Compare commits

..
Author SHA1 Message Date
SVN Migration dac069bb9e This commit was manufactured by cvs2svn to create tag 'php_5_0_0RC3RC2'. 2004-06-03 08:17:16 +00:00
Andi Gutmans 02032ccf9f - Prepare for RC3RC2 2004-06-03 08:17:15 +00:00
40b17e6c5c ChangeLog update 2004-06-03 03:03:17 +00:00
Ard Biesheuvel bf4af0f4ca Ton of fixes 2004-06-02 21:43:31 +00:00
Ard Biesheuvel 86aecbbe31 Initial revision of PHP/Interbase UDF lib
# This will allow users running the embedded engine
# to call PHP functions from inside their SQL statements
2004-06-02 21:15:27 +00:00
Andi Gutmans f7ca8821b2 - Don't use ZEND_MM in Windows 2004-06-02 15:05:10 +00:00
Stanislav Malyshev 176f6d8e6e fix incdec - make value's refcount non-zero when passing to
write_property - otherwise __set caller cleanup could kill it.
2004-06-02 12:48:19 +00:00
c59be44de1 ChangeLog update 2004-06-02 00:32:03 +00:00
Ard Biesheuvel 39edbe5192 Don't be too strict if the number of binding arguments provided exceeds the expected number 2004-06-01 23:31:43 +00:00
Ilia Alshanetsky 6b35037ca2 No need to NULL terminate manually, snprintf() does it for us already. 2004-06-01 21:04:33 +00:00
Ilia Alshanetsky 98a6986d97 Fixed bug #28597 (xmlrpc_encode_request() incorrectly encodes chars in
200-210 range).
Patch by: fernando dot nemec at folha dot com dot br
2004-06-01 20:16:06 +00:00
Ilia Alshanetsky db9f1fafa5 Fixed leak inside MINFO function.
Fixed crash inside enchant_dict_suggest() when there are no suggestions.
Added missing safe_mode/open_basedir check inside
enchant_broker_request_pwl_dict().
Fixed various function prototypes.
2004-06-01 18:59:49 +00:00
Ard Biesheuvel b027552ca3 Removed debugging code 2004-06-01 17:14:47 +00:00
Greg Beaver 5b565c1eb1 update dependency to PEAR 1.4.0dev5 2004-06-01 14:51:49 +00:00
Greg Beaver 27a4b575e8 test files for PEAR are now installable! 2004-06-01 14:29:59 +00:00
Greg Beaver cb0b01f7c2 file needed for registry test 2004-06-01 14:27:54 +00:00
Greg Beaver a0ebaab052 add needed package.xml files for channel tests 2004-06-01 14:15:41 +00:00
Greg Beaver e78e1dd5e8 update to include all new unit tests and files 2004-06-01 13:55:49 +00:00
Greg Beaver 58483c8776 begin work on making the tests installable 2004-06-01 13:45:55 +00:00
Greg Beaver 472de86f8d prepare for actual installable unit tests 2004-06-01 13:22:28 +00:00
Greg Beaver 86953ab0f5 fix unit tests for 1.4.0dev4 2004-06-01 13:11:15 +00:00
Derick Rethans 0ede231c76 - Reorder 2004-06-01 11:54:00 +00:00
Andi Gutmans 6f34d891f5 - NEWS 2004-06-01 11:47:14 +00:00
Andi Gutmans 2e19f82a7f - If user error handler returns "false" then we relay to the built in error
handler
2004-06-01 11:45:46 +00:00
Ard Biesheuvel ff3a363d7a Use constant IBASE_CREATE instead of just 0 2004-06-01 08:38:33 +00:00
Ard Biesheuvel 302fd9a77f Woops, missed one 2004-06-01 00:50:05 +00:00
Ard Biesheuvel 5a8a9a59e2 Fixed bug #28569 (connection id is not thread safe) 2004-06-01 00:44:20 +00:00
95910aa26c ChangeLog update 2004-06-01 00:32:37 +00:00
Marcus Boerger 9b8eee74d9 Refcount must not be set separatley again. 2004-05-31 21:49:52 +00:00
Marcus Boerger 20b60f49d9 Add missing initialization 2004-05-31 21:46:00 +00:00
Marcus Boerger 21315c08b7 Add missing initialization 2004-05-31 21:43:43 +00:00
Marcus Boerger 374ac86e33 #28589: Segfault in Reflection API 2004-05-31 21:38:01 +00:00
Pierre Joye f6354c3a1a MFB: missing ';' 2004-05-31 21:04:21 +00:00
Ilia Alshanetsky 9e970ef9a8 Added missing argument check. 2004-05-31 21:01:29 +00:00
Ilia Alshanetsky 22dfb88bf1 Fix build. 2004-05-31 20:25:37 +00:00
Ard Biesheuvel 3be22062fa Fix typo in error message 2004-05-31 13:43:06 +00:00
Ard Biesheuvel e9125d6338 Improved handling of 'CREATE DATABASE ...' by ibase_query()
Improved param handling of ibase_query() and ibase_execute()
2004-05-31 13:40:25 +00:00
Rob Richards 5b0f34ae80 Fix bug #28584: DOMText::splitText() does not split text properly (benjcarson)
Prototype fixes
2004-05-31 12:50:28 +00:00
Zeev Suraski 7d04465b74 Fix prototypes 2004-05-31 12:27:49 +00:00
Rob Richards 1d82c42493 fix leak when using relaxng
interim fix for isolating our streams handling
- once libxml supports overriding streams this should be changed
  for security reasons
2004-05-31 11:20:46 +00:00
Zeev Suraski 846c5a252e Fix typo 2004-05-31 08:58:32 +00:00
468ae7b88a ChangeLog update 2004-05-31 00:33:13 +00:00
Brad House cae0fd23f0 Update the mcve module for libmonetra 4.0
A compatability layer has been introduced which should mean all
scripts written for v 3.2 of the module should continue working,
as well as compilation should still work against libmcve 3.2.x.
This module eventually needs to be renamed to 'monetra' to reflect
the naming change of the underlying library.
2004-05-30 22:41:24 +00:00
Ard Biesheuvel fda04a0ed3 Restrict 'CREATE DATABASE' in sql safe mode 2004-05-30 20:40:36 +00:00
Ard Biesheuvel 17da85ba9b Fix Win32 build
Added missing 'break'
2004-05-30 20:24:46 +00:00
Ilia Alshanetsky 4a7962b31f Fixed memory leak on ifx_error(). 2004-05-30 18:58:47 +00:00
Ilia Alshanetsky 33d72ede4e Fixed bug #28564 (Problem building informix as a shared extension).
Patch by: roques at mti dot ag
2004-05-30 17:56:52 +00:00
Zeev Suraski a2ea2d7173 Fix prototypes 2004-05-30 17:53:12 +00:00
Ard Biesheuvel 18fa78842d Fix unregistered bug (segfault on uninitialised pointer)
Return string("0 ") from ibase_query() if query succeeded but did not affect any rows
2004-05-30 17:51:19 +00:00
Zeev Suraski e54165e406 No meaning for unsigned 2004-05-30 17:34:11 +00:00
Zeev Suraski e11b518c95 Fix prototype 2004-05-30 17:32:32 +00:00
Greg Beaver 2e7e8f30fc fix unit tests for 1.4.0dev3 2004-05-30 17:02:34 +00:00
Ard Biesheuvel f7ce70672c Use default character set in generated test DB 2004-05-30 16:59:43 +00:00
Ard Biesheuvel bd2ddd9fae Fix HTML/table layout in info() entry 2004-05-30 16:41:28 +00:00
Ard Biesheuvel 56ca01da1f Removed ibase_timefmt() - use ini_set() instead
Improved phpinfo() appearance
2004-05-30 16:20:25 +00:00
Zeev Suraski 8b861ec798 Update to PHP-style prototypes
(a PHP function returning char *?  What were you smoking? :)
2004-05-30 15:12:08 +00:00
Brad House 43db887482 manually check for egrep 2004-05-30 14:33:45 +00:00
39729083ee ChangeLog update 2004-05-30 00:32:48 +00:00
Wez Furlong bd818c0118 Turn this off then 2004-05-29 09:27:18 +00:00
Greg Beaver a865b5d0c7 testing file 2004-05-29 09:21:31 +00:00
Greg Beaver 09ee88f9bf modify php_dump.php, .cvsignore ignores *.php
move include to the place where it is used
2004-05-29 09:09:46 +00:00
Greg Beaver 71e0c354ff update _installFile() test for channels 2004-05-29 09:06:09 +00:00
Greg Beaver 32fd0f3ffa update checkDeps/extractDownloadFilename tests for channels 2004-05-29 09:03:43 +00:00
Greg Beaver 478aff5c22 update registry test for channels 2004-05-29 09:02:47 +00:00
Greg Beaver 73124c04be use fake pearweb - now anyone can run the download unit tests.
These tests require channels to pass
2004-05-29 09:02:26 +00:00
Greg Beaver d4070174d8 fake pearweb package files, for unit testing downloads without an installed pearweb 2004-05-29 09:00:52 +00:00
Greg Beaver d87e221f44 config unit tests, ready for channels 2004-05-29 08:59:26 +00:00
Greg Beaver 918d45198a new unit tests
pearweb mock object is complete
2004-05-29 08:51:59 +00:00
Greg Beaver 8c5c17c3a1 update for conflicting file test 2004-05-29 08:49:01 +00:00
Greg Beaver 1f31e7ddea new package.xml needed to test conflicting files error 2004-05-29 08:48:01 +00:00
ba2b5623c3 ChangeLog update 2004-05-29 00:32:22 +00:00
Wez Furlong 7171429f21 Don't rely on TIOCNOTTY. 2004-05-29 00:30:11 +00:00
Ard Biesheuvel 5f53ee1537 Changed default date format to ISO
Enable sync flag in connect()
2004-05-28 23:39:33 +00:00
John Coggeshall 6b02a01c20 'tidy' should not be final, but 'tidyNode' should be. 2004-05-28 20:32:52 +00:00
Ard Biesheuvel 850c6a27f6 Fix commit/rollback of multi-link transactions
Some CS
2004-05-28 20:11:34 +00:00
Andrei Zmievski 915a990330 Allow user-defined error handlers to indicate whether default error
handler should be re-invoked, by returning true or false.
2004-05-28 17:28:33 +00:00
Ilia Alshanetsky 6544f8d47e Fixed memory leak on error. 2004-05-28 14:17:46 +00:00
Ilia Alshanetsky e389e255e6 The engine will take care out-of-memory situation for us. 2004-05-28 14:14:26 +00:00
Stefan Esser 23813d603c Fixed off-by-one in http_fopen_wrapper 2004-05-28 13:38:06 +00:00
Wez Furlong 54bbe548fe Hopefully resolve proc_open build issues.
If we need anything more elaborate than this, then we can move to a configure
time check as Sascha suggests.
2004-05-28 13:25:51 +00:00
Christian Stocker c59471cd1f fix memleak in php callbacks 2004-05-28 13:04:19 +00:00
Stefan Esser 2e3b9ec278 Fixed off-by-one in php_parse_url. 2004-05-28 11:33:23 +00:00
Derick Rethans 27344aaed6 - Added date/time parser thingy. 2004-05-28 10:47:15 +00:00
Derick Rethans f964cc09d2 - Fixed ip2long() behavior if an invalid IP address was passed to the
function. This makes it possible to distingiush between "255.255.255.255"
  and a wrong one.
2004-05-28 10:45:18 +00:00
Marcus Boerger 9797f49466 Add more outstanding patches 2004-05-28 09:14:44 +00:00
Marcus Boerger 0aceba0a8d Remove finished tasks 2004-05-28 09:12:07 +00:00
Marcus Boerger a8ced60e04 Remove finished tasks 2004-05-28 09:06:56 +00:00
Marcus Boerger 9d76829963 Add more things 2004-05-28 09:03:00 +00:00
Marcus Boerger 0ef420a71e Prevent possible problems with illegal properties 2004-05-28 08:55:10 +00:00
Derick Rethans 877ecb3c81 - Make the default mask for user defined error handlers include ALL errors,
including E_STRICT.
2004-05-28 08:08:56 +00:00
7489718769 ChangeLog update 2004-05-28 00:31:45 +00:00
Ilia Alshanetsky df71910d0e Better skip condition check for session tests. 2004-05-27 20:53:26 +00:00
Andrei Zmievski 844e7eb945 5.1 tasks. 2004-05-27 16:22:47 +00:00
Andi Gutmans e51105c6a6 - Back to RC3-dev until we roll final 2004-05-27 15:03:46 +00:00
Wez Furlong b369925372 Fix #25939 for good this time.
# How could I miss this??
2004-05-27 13:04:14 +00:00
Derick Rethans ab34eb7330 Put similar items next to eachother 2004-05-27 12:28:41 +00:00
Andi Gutmans d470f93506 - More news 2004-05-27 12:01:14 +00:00
Andi Gutmans bca3e30484 - Fix problem with exceptions returning from include(). (Dmitry) 2004-05-27 11:59:58 +00:00
Andi Gutmans 5a9d648f1f - RC3RC1 2004-05-27 11:39:35 +00:00
Rob Richards edae935c26 namespace/tagname validation fixes (Adam Trachtenberg)
added new test
2004-05-27 11:15:45 +00:00
Andi Gutmans 7f887852a6 - NEWS 2004-05-27 08:30:14 +00:00
Dmitry Stogov 99a0504a6b Memory leaks were fixed 2004-05-27 08:19:29 +00:00
Dmitry Stogov 2b3e184245 BUGFIX: Prevent crash on error in send_http_soap_request() 2004-05-27 07:58:22 +00:00
e3e7ef94a5 ChangeLog update 2004-05-27 00:32:10 +00:00
Wez Furlong 6f5c0992a3 Fix leak on systems where alloca isn't really alloca. 2004-05-26 22:19:44 +00:00
Wez Furlong dd9ac710f1 Fix silly mistake.
Thanks Antony :)
2004-05-26 21:19:21 +00:00
Andrei Zmievski 81efd46186 Avoid unnecessary and silly copying of constant name when registering. 2004-05-26 21:01:37 +00:00
Andi Gutmans 97dee3a8c2 - Fix memory manager problem 2004-05-26 20:55:16 +00:00
Ilia Alshanetsky b59d5af951 Prepare for 0.2 release. 2004-05-26 20:25:58 +00:00
Ilia Alshanetsky 190227899a Turn off session.auto_start to prevent test failures. 2004-05-26 18:23:21 +00:00
Ilia Alshanetsky de58df089f Prevent test failure when fi_FI locale is not available. 2004-05-26 18:18:14 +00:00
Pierre Joye 07e4ab6946 - Remove this test, it still segfaults anyway (less noise in tests :) )
Already removed in PHP_4_3 branch
2004-05-26 18:12:43 +00:00
Andi Gutmans b5daf7078e - Use FREE_HASHTABLE instead of efree() 2004-05-26 18:00:27 +00:00
Edin Kadribasic 9cc4fb18b6 PQfreemem() is only available in 7.4 2004-05-26 17:45:03 +00:00
Wez Furlong 429bce6519 Apparently it is better to specify 500 here for unix98 bits and pieces. 2004-05-26 14:55:32 +00:00
Wez Furlong 6ef90672d8 Fix build... 2004-05-26 10:11:20 +00:00
Sebastian Bergmann 2fbfcd7482 Update Reflection API class names. Whitespace fixes. 2004-05-26 07:00:39 +00:00
Derick Rethans 17df3ec21b - Fixed bug #28523 (Typo in ext/sockets/sockets.c) 2004-05-26 06:53:04 +00:00
c50a4252cd ChangeLog update 2004-05-26 00:33:37 +00:00
Stefan Esser 7dc95709c8 break is better 2004-05-25 22:12:40 +00:00
Wez Furlong 2e73bbfdc1 Allow use of scrollable cursor for ODBC 2004-05-25 18:57:50 +00:00
Wez Furlong 70bd032076 Use the correct label for the error message 2004-05-25 18:34:46 +00:00
Wez Furlong d13d9c6047 Allow setting the cursor name for ODBC statements, so that:
UPDATE foo set .... WHERE CURRENT OF <NAME>

statements will work.
2004-05-25 18:33:51 +00:00
Wez Furlong d2a8d5a80f get/set attributes for statements 2004-05-25 18:32:48 +00:00
Wez Furlong 4d232fb17c Add flag to control the use of the ODBC cursor emulation library.
The default (which should be safe) is to use the cursor library if it is needed.
If for some reason either the driver or the emulation is broken, you may
override this from your script.
2004-05-25 17:44:36 +00:00
Wez Furlong 7a87af3321 Some definitions for cursors.
Define a mechanism for driver-specific attributes.
Use a refcount for the stmt structure.
2004-05-25 17:43:24 +00:00
Edin Kadribasic c7a2cf7385 Whitespace: editor in the wrong mode ;) 2004-05-25 17:38:58 +00:00
Edin Kadribasic 16a53a00ea Add transaction support 2004-05-25 17:36:22 +00:00
Brad House 7f44f8ee94 PHP_SETUP_OPENSSL is NOT SNMP_SHARED_LIBADD, it's MCVE_SHARED_LIBADD
requires AC_PROG_EGREP when you phpize
2004-05-25 17:08:42 +00:00
Ilia Alshanetsky cf75eb8a6f Cleanup. 2004-05-25 16:49:32 +00:00
Ilia Alshanetsky 402de24fc4 One more leak down. 2004-05-25 16:40:54 +00:00
Ilia Alshanetsky b7ecaca17f More leak fixes. 2004-05-25 16:38:28 +00:00
Edin Kadribasic ff1cbb8460 Use binary safe function for quoting 2004-05-25 16:24:29 +00:00
Antony Dovgal 737bc357cb fix couple of memory leaks 2004-05-25 14:57:56 +00:00
Ilia Alshanetsky 0c762dff03 More possible leak fixes (Thanks Tony). 2004-05-25 14:47:22 +00:00
Ilia Alshanetsky 2685fad6b7 Fixed memory leak. 2004-05-25 14:39:26 +00:00
Ilia Alshanetsky 9280b88a8c One more memory leak. 2004-05-25 14:35:49 +00:00
Ilia Alshanetsky d782abf416 More leak fixes. 2004-05-25 14:30:07 +00:00
Andi Gutmans 2917ff1e7d - Nuke unused decleration 2004-05-25 14:19:19 +00:00
Ilia Alshanetsky ce3891347f Fixed memory leak. 2004-05-25 14:12:15 +00:00
Ilia Alshanetsky 6304e5d7cb Kill unused var. 2004-05-25 13:51:00 +00:00
Wez Furlong 1360e3478c Merge that nicer error message here too 2004-05-25 13:25:22 +00:00
Wez Furlong 6873d6839d *sigh*, obviously, we need this to be able to use sapi_module.name 2004-05-25 13:23:20 +00:00
Wez Furlong ff0ee48537 DEBUG -> PHP_DEBUG 2004-05-25 13:17:01 +00:00
Wez Furlong 7916ef2ee1 Allow sqlite to build as a shared ext under win32 2004-05-25 13:01:05 +00:00
Wez Furlong 146255f35c check if it matches... not if it doesn't... 2004-05-25 13:00:25 +00:00
Wez Furlong c6dff79138 In debug mode, under CLI don't close stderr.
This is so that we can see any error reports.

# for extra paranoia, could limit this check to happen only after the script is
# finished running.
2004-05-25 12:59:15 +00:00
Wez Furlong 32956a25bf add "clean-pecl" rule for nuking pecl objects 2004-05-25 12:57:45 +00:00
Wez Furlong a4f03b8086 Tidy this up a little bit for win32. 2004-05-25 12:44:35 +00:00
Wez Furlong e6551f081d Throw exception during ctor 2004-05-25 12:03:41 +00:00
Andi Gutmans 02884a08f5 - More fixes 2004-05-25 10:09:46 +00:00
Andi Gutmans 6704ab4b35 - Make fix compile. 2004-05-25 09:25:22 +00:00
Andi Gutmans db90fc4c90 - Fix memory leak in mem cache in conjunction with Zend MM. How come no one
- noticed this? :)
2004-05-25 08:33:11 +00:00
1e36c786ae ChangeLog update 2004-05-25 00:32:04 +00:00
Pierre Joye 5b71225f1b - Fix #28506, negative angle returns "random arcs"
while (angle < 0) angle += 2*M_PI is used now
2004-05-24 19:52:28 +00:00
Ilia Alshanetsky 396bf39311 Fixed bug #28508 (Do not make hypot() available if not supported by libc). 2004-05-24 17:02:12 +00:00
Wez Furlong 81b3231b5d Moved pdflib extension to PECL 2004-05-24 16:41:41 +00:00
9926a97e26 ChangeLog update 2004-05-24 00:32:46 +00:00
Andi Gutmans 0b0c5d3fac - Fix problem with object being destroyed more than once 2004-05-23 20:33:09 +00:00
Andi Gutmans ef9878647d - Fix the following script (it crashed):
<?php
   class ErrorHandler {
     function __construct() {
       set_error_handler(array(&$this, 'handle'));
     }

     function __destruct() {
       restore_error_handler();
     }

     function handle($code, $msg, $file, $line, $locals) {
     }
   }

   new ErrorHandler();
?>
2004-05-23 20:27:32 +00:00
Ilia Alshanetsky e4c5e85697 Fixed leaks on fatal errors in tidy. 2004-05-23 17:22:21 +00:00
Andi Gutmans bd892a164b - NEWS 2004-05-23 16:24:21 +00:00
Andi Gutmans c495c54069 - Fix typo although it isn't being built 2004-05-23 16:05:09 +00:00
Andi Gutmans e410a0f5b1 - Fixed bug #27640 memory leak of registered_zend_ini_directives (Dmitry) 2004-05-23 16:02:36 +00:00
Andrey Hristov 4760dd4fc5 adding this 2004-05-23 15:26:55 +00:00
Andrey Hristov 794065776a Ansrei reverted this 2004-05-23 15:21:38 +00:00
Wez Furlong ad99c124c4 Finally a fix for #23220: IIS does not cleanly close SSL connections.
Also enable the safe and recommended bug work around options in the SSL
context.
2004-05-23 10:36:08 +00:00
Stefan Esser bed3f4ce0b This is more correct. 2004-05-23 10:00:59 +00:00
Greg Beaver ad57096a8b Fix #1395: PEAR_ErrorStack::staticCallback needs to instantiate the stack
Fix up default callback, so that it can be set for each package as well as for all packages.

Callbacks now have 3 levels of control, which may be a bit too complex, default callbacks might have to go for debugging reasons.  Either that or some kind of origination information should be appended to the error array describing which callbacks were called, so debugging is at least possible
2004-05-23 06:06:10 +00:00
Greg Beaver 6f7d0b2a6a in preparation for testing all remote functionality, use a mock object for a functioning pearweb server 2004-05-23 05:33:25 +00:00
a4de015ec7 ChangeLog update 2004-05-23 00:33:49 +00:00
Wez Furlong 055848d83a prep for release 2004-05-22 20:58:36 +00:00
Ard Biesheuvel 8b1fca9e3a Use dummy status vector in ibase_connect()
Added fbird_ aliases for all ibase_ functions
# See comment in code for more info
# Please let me know if there are any namespace issues involved
2004-05-22 18:50:58 +00:00
Wez Furlong d39117c234 Fix buglet in dbh closing. 2004-05-22 15:04:26 +00:00
Wez Furlong 35494bb569 Enable ODBC Connection Pooling.
Theoretically better than PHP persistent connections, since ODBC itself takes
care of resetting the connections back to a "ground" state.

Connection pooling defaults to ON, since this is generally useful.
You can turn it off by using:

pdo_odbc.connection_pooling=off

in your php.ini file.

You may configure how ODBC matches connection details to existing connections
by setting this value to "strict" (the default) or "relaxed".  You are
encouraged to read the ODBC specs before changing this value.
2004-05-22 14:51:26 +00:00
Wez Furlong ce5e317cc5 ok MSVC, why didn't you spot *that* one?? 2004-05-22 00:38:11 +00:00
e136b9311c ChangeLog update 2004-05-22 00:32:18 +00:00
Wez Furlong 8d9c384f7f Fix doer()
Implement error handling for ODBC
2004-05-22 00:30:00 +00:00
Ilia Alshanetsky b4ef3d186a Add self to credits. 2004-05-21 22:45:27 +00:00
George Schlossnagle 84cfbe5efe pierre's thingy 2004-05-21 22:36:52 +00:00
George Schlossnagle e872491f80 /me learns to read 2004-05-21 22:30:58 +00:00
George Schlossnagle 88942c9834 both places 2004-05-21 22:27:30 +00:00
George Schlossnagle 553698f35d drop the dev 2004-05-21 22:27:02 +00:00
Wez Furlong 758b7f1ad4 Bump the version number 2004-05-21 22:26:45 +00:00
George Schlossnagle 4d01a5c2d1 ok, apprently we _don't_ want to count the nulls. 2004-05-21 22:24:20 +00:00
George Schlossnagle 1ee89e1bea remove debugging 2004-05-21 22:20:25 +00:00
George Schlossnagle 518cf77f32 fix fubar'd emulated bindings 2004-05-21 22:19:33 +00:00
Wez Furlong dc57cff2a6 Prep for release 2004-05-21 21:20:00 +00:00
Timm Friebe 3a168b52e7 - Fixed expected return value from test #2
Invalid resources yield bool(false) in PHP5, NULL in PHP4
2004-05-21 21:01:21 +00:00
Timm Friebe 342d7b6968 - Removed currently leaking auto-cancel test
- Fixed expected return value from sybase_num_rows() when an
  invalid resource is passed (returns false instead of NULL)
2004-05-21 20:54:39 +00:00
Timm Friebe df5396677d - Fixed expected return value from var_dump()
- Cleaned up SQL statement
# This bug has been fixed, but this test should be kept anyways,
# just to make sure it does not reappear
2004-05-21 20:53:01 +00:00
Timm Friebe 8eac91345b - Fixed bug #28354 2004-05-21 20:29:38 +00:00
Timm Friebe b20be6a27b - Initial release 2004-05-21 19:45:55 +00:00
Edin Kadribasic 640bed4cf5 Prepare release 2004-05-21 19:09:43 +00:00
Wez Furlong 40ab777dc8 Update package/module 2004-05-21 17:33:58 +00:00
Wez Furlong 25049d6cf8 Add some blurb 2004-05-21 17:31:49 +00:00
Wez Furlong 9462eb6db5 Ok, so we do need to rinit here after all. 2004-05-21 17:17:55 +00:00
Wez Furlong fbccd1438c Update to reflect recent changes in dl() 2004-05-21 17:08:36 +00:00
Wez Furlong 597124e128 Update package/module 2004-05-21 16:53:32 +00:00
Wez Furlong 500922f9a2 Update package file 2004-05-21 16:38:41 +00:00
Wez Furlong e419d735c4 Better error message to save looking in the wrong place. 2004-05-21 16:36:37 +00:00
Ilia Alshanetsky 3a5e5ca4d4 Implement ODBC doer. 2004-05-21 16:17:22 +00:00
Wez Furlong 798d437b05 Fix return type here too 2004-05-21 15:33:18 +00:00
Wez Furlong a53edd047e Fix return type 2004-05-21 15:29:09 +00:00
Wez Furlong 5e408e4ee9 Fix setAttribute for oci.
Fix some compiler warnings
2004-05-21 15:25:22 +00:00
Derick Rethans 42bc9637b2 - Fixed order (again) 2004-05-21 15:09:34 +00:00
Dmitry Stogov b9bb0d77a0 Fixed bug #28239 (No results returned on SOAP call, no error given) 2004-05-21 14:50:19 +00:00
Wez Furlong d8d7dd7e14 Allow lazy fetch to work with numeric offsets.
Fix named parameters...
2004-05-21 14:31:51 +00:00
Ilia Alshanetsky 37d8a82b4d Fixed compiler warning. 2004-05-21 14:27:48 +00:00
Ard Biesheuvel c6773a06cd Removed strcpy() call from most common case
Added test for hash index generation
2004-05-21 14:24:34 +00:00
Wez Furlong 64f0ec7bde Update for placeholder flags 2004-05-21 14:15:03 +00:00
Wez Furlong 8f5b212612 store the name length in the same manner as it is stored in zvals 2004-05-21 14:14:32 +00:00
Wez Furlong ed83c5bee5 Tidy up placeholder flags 2004-05-21 14:09:51 +00:00
Ard Biesheuvel 27c3c301bd Added test for duplicate field names when returning rows as hashes or objects
# This change should be in 5.0.0, as it might break BC
2004-05-21 13:46:04 +00:00
Wez Furlong bf48daa8d5 Version 1 of PDO_FETCH_LAZY 2004-05-21 13:26:58 +00:00
Ard Biesheuvel 126531a44b Make sure METADATALENGTH is defined (used by IB 7) 2004-05-21 13:14:56 +00:00
Derick Rethans cb1e4ab6c8 - Fixed TSRM problem in latest commit. 2004-05-21 08:16:13 +00:00
Derick Rethans bc7ad69fbc - Fixed bug #28456 (Problem with enclosed / in uploaded file names) 2004-05-21 08:11:43 +00:00
Greg Beaver f30b95fcf0 fix missing assignment
$this->_errors = array_filter($this->_errors);
2004-05-21 03:43:58 +00:00
Greg Beaver 981948641c fix for BC break
staticGetErrors adds the parameter $level between $purge and $merge, as it will be as common (or more common) as $purge.
2004-05-21 03:33:51 +00:00
Greg Beaver aaa7263bdd Several issues resolved.
fix 1444: PEAR_ErrorStack->push() needs to validate $msg and $code as string/int
add error level checking to hasErrors() and getErrors().
BC break!!:
staticGetErrors adds the parameter $level between $purge and $merge, as it will be as common (or more common) as $purge.
2004-05-21 03:33:19 +00:00
3d9c47eed0 ChangeLog update 2004-05-21 00:39:44 +00:00
Ilia Alshanetsky 9cccfa57b6 Fixed stream leak on error. 2004-05-20 23:37:59 +00:00
Wez Furlong 221710e820 Specify that OCI returns column names in upper case by default 2004-05-20 22:29:26 +00:00
Wez Furlong f0a001a953 Implement case folding of column names as a portability option. 2004-05-20 22:28:53 +00:00
Ilia Alshanetsky 41784bfcff Kill unused var. 2004-05-20 22:24:30 +00:00
Wez Furlong e0ac3f66ae Implement PDO_FETCH_OBJ
# todo (after initial release) - specify a particular class, reuse existing
# objects etc.
2004-05-20 22:06:42 +00:00
Wez Furlong 4cdf143184 Fix build on win32 2004-05-20 21:50:25 +00:00
Andrey Hristov 19d0283ce8 for now removing ":public". Waiting for a decision? ":public" will require
quite a lot of phpt files changes.
2004-05-20 21:15:42 +00:00
Andrey Hristov 44de5a0e8e fixing the tests so to work with the new var_dump() (dumping private and
protected member variables)
2004-05-20 21:13:14 +00:00
Ilia Alshanetsky 43a04beb46 Make username & password parameters optional. 2004-05-20 20:25:22 +00:00
Ilia Alshanetsky afb3979882 Fixed parameter order. 2004-05-20 20:22:07 +00:00
Ilia Alshanetsky ebd608ba18 Added getAttribute() handler.
Fixed leak inside exec().
2004-05-20 20:04:11 +00:00
Edin Kadribasic 7f6343e60d Use native PostgreSQL connect string e.g.
$db = new PDO("pgsql:dbname=template1 user=postgres password=secret");
2004-05-20 19:58:51 +00:00
George Schlossnagle e155ad208a sigh... need to include the null byte in hash keys 2004-05-20 19:19:04 +00:00
Ilia Alshanetsky 15fb957c61 Added MySQL getAttribute() support. 2004-05-20 19:17:32 +00:00
Wez Furlong 5023a7c61c Enable setting the different error modes via PDO::setAttribute() 2004-05-20 19:16:49 +00:00
Ilia Alshanetsky 726e188cce Fixed typo. 2004-05-20 19:14:44 +00:00
Ilia Alshanetsky 42a2b22a4a Added missing user-land constants. 2004-05-20 19:12:24 +00:00
Edin Kadribasic 9cfeb25667 We quote with ' in real databases 2004-05-20 19:09:36 +00:00
Ilia Alshanetsky e596466a1f Added getAttribute() method. 2004-05-20 19:09:35 +00:00
George Schlossnagle b7b7bedabd remove debug 2004-05-20 18:50:21 +00:00
George Schlossnagle c22cb0477c off by one error 2004-05-20 18:44:12 +00:00
George Schlossnagle 3366916203 set active_query_string to null in case of failure 2004-05-20 18:29:59 +00:00
Ilia Alshanetsky 1c2b47c408 Make sure that the error string is freed. 2004-05-20 18:19:03 +00:00
Ilia Alshanetsky b7784d96b0 Fixed possible crash. 2004-05-20 18:10:16 +00:00
Ilia Alshanetsky cf33729c20 Better error message. 2004-05-20 18:05:44 +00:00
Ilia Alshanetsky f8d045619a Last insert id (oids) support. 2004-05-20 18:00:24 +00:00
Wez Furlong 3ec72d3ed9 Revert; obviously I missed the function at the bottom of the file... 2004-05-20 17:59:27 +00:00
George Schlossnagle d16625b803 Support ? as a bind in emulated prepares
Throw informative error when pdo_parse_param fails
2004-05-20 17:56:09 +00:00
Andrey Hristov aafb2b1581 var_dump() now shows private and protected member variables.
Not BC is that since now the public variables are explicitly shown as public
Example :

class a{ protected $a=1; private $b=2;var $c=3;} $a=new a(); var_dump($a);

object(a)#1 (3) {
  ["a:protected"]=>
  int(1)
  ["b:private"]=>
  int(2)
  ["c:public"]=>
  int(3)
}
2004-05-20 17:46:20 +00:00
Ilia Alshanetsky 38eb52b8a7 Make doer() work.
Make error reporting system work.
2004-05-20 17:43:56 +00:00
Wez Furlong 892ec5f535 Export this, so extensions may throw their own exception objects that
they have already instantiated.
2004-05-20 17:41:09 +00:00
George Schlossnagle e3e2370490 keys need to be null-terminated (how did this not get committed before???)
bind-by-name includes the leading : in the name
2004-05-20 17:34:52 +00:00
Wez Furlong 04ccc0134d Add methods for error handling 2004-05-20 17:22:13 +00:00
George Schlossnagle 76b7b5d1e2 iactually support :\w+ as binds 2004-05-20 17:04:57 +00:00
Derick Rethans ee9cc68848 - Removed unused INI sections. 2004-05-20 17:03:24 +00:00
Dmitry Stogov 38ef28e41b Allowing user defined SOAP transports with SoapClient::__doRequest() 2004-05-20 16:55:03 +00:00
Wez Furlong af2aa721df zts fix ;) 2004-05-20 16:17:37 +00:00
Ilia Alshanetsky 40b04cd54b Correctly report errors for statment problems. 2004-05-20 16:13:13 +00:00
Ilia Alshanetsky 0d6aa20880 Error handling support.
Fixed possible crash when trying to fetch data from a failed query.
2004-05-20 15:51:25 +00:00
Ilia Alshanetsky fbbb41a53b Fixed typo. 2004-05-20 15:45:16 +00:00
Ilia Alshanetsky e770b2b411 Fixed compiler warnings. 2004-05-20 13:57:09 +00:00
Wez Furlong d55e20660b Don't dup here either 2004-05-20 10:30:29 +00:00
Wez Furlong 0699938bc4 Don't dup here, PDO will do it as needed 2004-05-20 10:28:26 +00:00
Derick Rethans dcb0ee6ec4 - Allow extra parameters to mail to be forced also from virtual host settings. 2004-05-20 10:24:39 +00:00
Wez Furlong d9decf0dfc Fix prototype.
Use user-supplied path before the default when looking for headers
2004-05-20 10:24:17 +00:00
Edin Kadribasic fa1b0a51d3 Make it compile on windows 2004-05-20 03:02:58 +00:00
Edin Kadribasic 9d6c259988 PostgreSQL PDO driver. 2004-05-20 02:27:49 +00:00
9f5e4a19be ChangeLog update 2004-05-20 00:33:36 +00:00
Ilia Alshanetsky 28aca30c13 Free vars before calling E_ERROR. 2004-05-20 00:11:23 +00:00
Wez Furlong 04c35e3d91 re-jig error handling, and make it co-operate with the PDO error handling system.
Implement $dbh->exec() for OCI.
2004-05-20 00:06:30 +00:00
Wez Furlong e7c72f8455 First cut at a "unified" error handling API. The main thing that is missing
currently is a switch in the dbh to indicate what to do with the errors.
2004-05-20 00:05:22 +00:00
Wez Furlong 08ce920c9e Fix win32 build 2004-05-19 21:36:22 +00:00
Marcus Boerger 0a242a52b3 - Allow to build with ext/mysqli 2004-05-19 20:57:02 +00:00
Marcus Boerger fd90645613 - Allow to compile as builtin module 2004-05-19 20:56:06 +00:00
Ilia Alshanetsky 862247693f Row count cannot be calculated in MySQL without buffering the query. 2004-05-19 20:44:28 +00:00
Ilia Alshanetsky c98a99c263 Added fetchAll and fetchSingle methods for data retrieval. 2004-05-19 20:38:53 +00:00
Ilia Alshanetsky 676dfcf581 Timeout stuff. 2004-05-19 20:38:25 +00:00
Ilia Alshanetsky f4b5abc948 Added support for setting timeout value. 2004-05-19 20:34:57 +00:00
Ilia Alshanetsky 56abe4de4a Prevent possible crash when working with column containing NULL. 2004-05-19 20:34:01 +00:00
George Schlossnagle 38a409c02f exec() now returns affected row count 2004-05-19 19:31:33 +00:00
George Schlossnagle 129997216b exec() now returns row count 2004-05-19 19:27:53 +00:00
George Schlossnagle ee1241ab1a builds on stock rh9 now 2004-05-19 18:51:01 +00:00
Frank M. Kromann 7c5c0fbbea Set correct Win32 line endings and fix ZTS compilation 2004-05-19 18:04:47 +00:00
Ilia Alshanetsky 074ba3fbc0 Added lastInsertId() method for retrieving last insert id.
Made affectedRows() work for MySQL.
Populate error value in MySQL on error.
2004-05-19 17:35:39 +00:00
Ilia Alshanetsky 5a4c3234b9 Skip spaces between connection params. 2004-05-19 17:09:48 +00:00
Ard Biesheuvel fd7a92f046 Fixed unregistered bug (memory leak in printf() & friends) 2004-05-19 16:46:29 +00:00
Ilia Alshanetsky a5a908c4bf Better include path detection. 2004-05-19 16:26:06 +00:00
Wez Furlong 1a91f75193 Add simple error code values and a place to store them 2004-05-19 16:21:43 +00:00
Wez Furlong 641f2c0c40 Let it install correctly when built via phpize 2004-05-19 15:27:27 +00:00
Ilia Alshanetsky c328a15469 More errno stuff. 2004-05-19 15:17:52 +00:00
Ilia Alshanetsky 3dddc0bade Fixed possible crash on connection error. 2004-05-19 15:14:55 +00:00
Ilia Alshanetsky b5f8bd8e9e Simplify config via the use of mysql_config.
Fixed errno naming conflict.
2004-05-19 15:12:05 +00:00
Ilia Alshanetsky c11d6ca38b Copy the headers 2004-05-19 14:27:32 +00:00
Edin Kadribasic bbcf09a833 Typo 2004-05-19 14:23:59 +00:00
Edin Kadribasic e8abbca3a6 Fix configure 2004-05-19 14:02:36 +00:00
Wez Furlong fd6b885a19 Revise $dbh->exec().
The driver doer() method should populate dbh->affected_rows if it can determine its value.
2004-05-19 13:55:41 +00:00
Wez Furlong 6cd27ff8be Add $dbh->exec() method.
Rename $dbh->beginWork() to $dbh->beginTransaction().
2004-05-19 13:43:07 +00:00
Ilia Alshanetsky a0b3e87003 Abort if driver cannot be registered. 2004-05-19 13:34:40 +00:00
Edin Kadribasic 7a214b66ae Cosmetics 2004-05-19 13:28:05 +00:00
Ilia Alshanetsky 741e31bdf3 Removed unused vars. 2004-05-19 13:27:54 +00:00
Wez Furlong 777484b561 update prototype 2004-05-19 12:40:50 +00:00
Wez Furlong f7de5001e2 Update prototype 2004-05-19 12:40:31 +00:00
Wez Furlong 8759648192 Update prepare() prototype.
Attempt to hunt down the cause of a build warning under win32 by adjust the
name of the error function.
2004-05-19 12:40:11 +00:00
Wez Furlong 4116d9fb0e Expand the prepare() prototype to accept additional options. 2004-05-19 12:37:31 +00:00
Sebastian Bergmann 681ded13bc ZTS fix. 2004-05-19 09:23:15 +00:00
Marcus Boerger 29cfd6d24f - Remove unused blocks 2004-05-19 08:56:50 +00:00
Marcus Boerger d94136fc30 - Remove unused blocks 2004-05-19 08:45:46 +00:00
bd29f379e7 ChangeLog update 2004-05-19 00:34:15 +00:00
Ilia Alshanetsky 65e1741d2d Fixed possible memory leak. 2004-05-18 23:26:53 +00:00
Ilia Alshanetsky 46eb5401e7 Better header detection. 2004-05-18 23:07:22 +00:00
Ilia Alshanetsky aecad9e37b Fixed build. 2004-05-18 22:45:53 +00:00
Ilia Alshanetsky cb1239a338 Allow static builds. 2004-05-18 22:31:13 +00:00
Marcus Boerger 007a076cd0 Fix test 2004-05-18 21:27:08 +00:00
Marcus Boerger c8e72410be - Need to operate on module pointer in hash table 2004-05-18 21:19:15 +00:00
Wez Furlong 8d9ced8282 Fix #27638: not cleaning up object files in win32 build 2004-05-18 21:07:01 +00:00
George Schlossnagle f02fb4ada4 should be a strcmp, not a strncmp, thanks, wez 2004-05-18 20:57:19 +00:00
Marcus Boerger 6882000c53 - Make start and length parameter to Limititerator::__construct optional 2004-05-18 20:39:35 +00:00
George Schlossnagle 8233053d24 was leaking query_string's 2004-05-18 20:33:30 +00:00
George Schlossnagle 5f4cfcb009 support the read-only property 'queryString' 2004-05-18 20:26:24 +00:00
Wez Furlong d80297b251 Fix bug #28438: win32 build fails in non-zts mode 2004-05-18 20:14:54 +00:00
George Schlossnagle 2e4c3ea35f forgotten off the last commit 2004-05-18 19:30:43 +00:00
Wez Furlong c4ca0f3378 Give user a nice message when PDO isn't initialized prior to a driver. 2004-05-18 19:30:22 +00:00
Wez Furlong b54a4dfeeb Minor tweaks 2004-05-18 19:25:45 +00:00
Wez Furlong bdd4b84c29 typo.. 2004-05-18 19:25:23 +00:00
Wez Furlong df69bf6c06 mySQL, not Oracle ;) 2004-05-18 19:06:47 +00:00
Wez Furlong 9ec5c3526e Add to win32 build 2004-05-18 19:03:27 +00:00
Ilia Alshanetsky caed65f547 Fixed search path for MySQL. 2004-05-18 18:42:36 +00:00
George Schlossnagle 71728cc2b2 initial import of mysql 3.x pdo driver 2004-05-18 18:01:52 +00:00
Stanislav Malyshev da26db3054 Z_TYPE_P is for zvals 2004-05-18 16:13:57 +00:00
Wez Furlong 17d009c3b4 Update generated parser 2004-05-18 15:58:17 +00:00
Wez Furlong e37b622d3f Add parser to win32 build 2004-05-18 15:58:00 +00:00
Wez Furlong 2a9fa24458 Tweaks for win32 2004-05-18 15:57:46 +00:00
George Schlossnagle 85e3a1bc3b for those without re2c 2004-05-18 15:38:25 +00:00
Wez Furlong f76725902b Fix dl() and extension= 2004-05-18 15:26:32 +00:00
Wez Furlong b949bfe651 Register according to the type specified by the module.
(Helps to fix dl() bug)
2004-05-18 15:26:13 +00:00
George Schlossnagle 70f06be16a license/copyright block 2004-05-18 15:22:58 +00:00
George Schlossnagle a97e1a6646 handle binding/quoting of queries for drivers with emulated prepares 2004-05-18 15:19:31 +00:00
Ilia Alshanetsky 3e0cbfb077 Fixed command line escaping routines for win32. 2004-05-18 13:43:24 +00:00
Edin Kadribasic b1efed9dde Move declarations to the begining of function.
This allows it to actually compile on windows.
2004-05-18 12:32:05 +00:00
Edin Kadribasic e489d93abc TSRM fix 2004-05-18 10:53:53 +00:00
Edin Kadribasic 3b64493a3d No length parameter -> estrdup() 2004-05-18 10:49:06 +00:00
Wez Furlong 3455498219 Probe for some functions; allows pdo_oci to build on the snap machine again. 2004-05-18 10:00:01 +00:00
Wez Furlong 0460174a0d Primitive support for probing headers for functions using a regexp 2004-05-18 09:58:45 +00:00
Wez Furlong c9f736ab6e Skeleton for emulated prepare() 2004-05-18 08:59:27 +00:00
Wez Furlong 5a9864ed2b Update to match new prototype 2004-05-18 08:47:10 +00:00
Wez Furlong 940c896e15 Quoting here leads to problems with databases that really support bound parameters.
We should do this conditionally based on the emulate_prepare flag.
2004-05-18 08:45:28 +00:00
George Schlossnagle 2e36e9d06d only rewrite tmp if quoter returns true 2004-05-18 05:34:52 +00:00
George Schlossnagle 636cc3e1dc auto-quote values before binding them in at execute time 2004-05-18 05:31:01 +00:00
George Schlossnagle 7d40971563 use new prototype 2004-05-18 05:01:16 +00:00
George Schlossnagle 2e281baab9 we need the source string length for binary safe string handling 2004-05-18 05:00:52 +00:00
Wez Furlong 12acb64696 package.xml 2004-05-18 00:45:58 +00:00
Wez Furlong 2653f34210 Skeleton package file 2004-05-18 00:40:01 +00:00
4d7b0e114d ChangeLog update 2004-05-18 00:35:47 +00:00
Sara Golemon b094db390e Bugfix#28404 When type is double we need to access dval, not lval 2004-05-18 00:04:22 +00:00
Wez Furlong d4c5556b8b Let is build under unix.
Tested against IBM DB2 and unixODBC.
Could work with others.
2004-05-17 22:20:11 +00:00
George Schlossnagle fd73439882 include guard 2004-05-17 21:12:30 +00:00
Ilia Alshanetsky 0a38683b14 Correct output. 2004-05-17 20:58:57 +00:00
Sara Golemon cceecdbcdb BugFix# 27982: Provide error message when trying to overwrite an existant file without overwrite context option. 2004-05-17 20:31:59 +00:00
Andrei Zmievski 427561446f Revert the .ini vars patch. Will have to try again next Christmas
apparently.
2004-05-17 20:09:37 +00:00
Wez Furlong cf4127b6b9 Allow PDO OCI to build under unix.
Don't build by default under win32.
2004-05-17 18:17:39 +00:00
Wez Furlong dd84731577 Allow PDO to build as a self-contained extension.
Install headers so that other self-contained extensions may them.
2004-05-17 18:13:03 +00:00
Andrei Zmievski 26eaab7641 Fix the apparent bug (; at the end of parse rule block). 2004-05-17 17:12:07 +00:00
Wez Furlong 79c513db96 Some pedantic fixes for gcc. 2004-05-17 17:00:35 +00:00
Derick Rethans 255a5a8a5b - Document the smtp_port setting in php.ini 2004-05-17 16:30:22 +00:00
Wez Furlong d6c4dee168 ODBC (v3 ish) driver for PDO.
Will not build under unix yet.
2004-05-17 15:43:01 +00:00
Wez Furlong 1b1ced539b OCI driver for PDO, supporting bound input and output parameters.
Will not build under unix yet.
2004-05-17 15:42:33 +00:00
Wez Furlong 684be9cf36 Hello PDO.
Still more to come.  Give it a couple of days before starting to write drivers
for the other databases; a few things might change, so I'd like to coordinate
that, but in a couple of days.
2004-05-17 15:41:51 +00:00
Wez Furlong 3a4f33e31f As discussed with Andi, add this helper API for setting the object pointer from
within the constructor.

Please read the comment for notes about how to use it; in general, you don't
need it, so don't use it.
2004-05-17 11:27:16 +00:00
7d15d8cc3e ChangeLog update 2004-05-17 00:33:01 +00:00
Pierre Joye 9e9576ecfa - T_WHITESPACE for the 1st test... 2004-05-16 21:00:24 +00:00
Pierre Joye a937ae4762 - PHP allows spaces before :: (parent :: foo(); )
Nota bene, requires another change to really check the syntax:
  loop back to the first non white space element and valid it (parent,
  string or var)
2004-05-16 20:55:29 +00:00
Timm Friebe 77c75e786b - Fixed test for LONG_MIN / LONG_MAX for 64-bit platforms 2004-05-16 20:33:44 +00:00
Timm Friebe 425ae98916 - Fixed auto-conversion from long to double when LONG_MAX /
LONG_MIN where overflown
2004-05-16 20:30:35 +00:00
Timm Friebe 7bbe13ac4d - Initial release 2004-05-16 20:28:31 +00:00
Pierre Joye 915e9a555e - Fix #1329, closedir on exit (kameshj at fastmail dot fm) 2004-05-16 15:43:30 +00:00
Pierre Joye d049b24dfd - Fix #1330, unused variable 2004-05-16 15:39:07 +00:00
Pierre Joye 59727034b7 - Fix #1249 (wrong print out the wrong state with force option)
- some NL issues, sorry, commit now too
2004-05-16 15:37:13 +00:00
Ilia Alshanetsky bb88a86240 Do not allocate error buffer at the start of every request. 2004-05-16 15:34:53 +00:00
Marcus Boerger ed5ce047db - Add new test 2004-05-16 14:48:45 +00:00
Ilia Alshanetsky fbd3e0da40 Added missing safe_mode & open_basedir checks. 2004-05-16 14:38:19 +00:00
Marcus Boerger 251b627684 - Fix printf with floats 2004-05-16 14:01:45 +00:00
Wez Furlong 6d7346f4b9 ; 2004-05-16 12:10:35 +00:00
Wez Furlong 57cf4805a9 Add config.w32 template to ext_skel 2004-05-16 11:49:35 +00:00
Rob Richards 9e3956b313 constructors throw DOMException
add DOM_PHP_ERR DomException code
validate tagnames in constructors
use C style comments
update TODO
2004-05-16 10:30:16 +00:00
Brad House 92c72cb8d8 update config.m4 for libmonetra 4.0 compatability.
Library no longer has MCVE_ symbols, the header file has #define\'s to
convert MCVE_ -> M_ to reflect the Monetra name change from MCVE.
More updates to follow.
2004-05-16 02:59:34 +00:00
72d12fb320 ChangeLog update 2004-05-15 00:36:05 +00:00
Andrei Zmievski 66181dde3b .ini variables patch notice 2004-05-14 21:10:02 +00:00
Andrei Zmievski e97f733515 Adding ability to refer to existing .ini variables from within .ini
files. Example:

open_basedir = ${open_basedir} ":/new/dir"
2004-05-14 20:58:15 +00:00
Ilia Alshanetsky 5b4dc50c01 Fixed possible memory leak inside popen(). 2004-05-14 16:12:03 +00:00
01e92c81e7 ChangeLog update 2004-05-14 00:32:50 +00:00
Ilia Alshanetsky d24465ba8a Fixed bug #28386 (wordwrap() wraps lines 1 character too soon). 2004-05-13 17:44:23 +00:00
Ilia Alshanetsky 50260570b4 Make isapi more compatible with apache sapis as far as the creation
$_COOKIE super-global and various $_SERVER values.
2004-05-13 17:21:39 +00:00
Stanislav Malyshev 0821f8f7d9 add sqlite_exec() 2004-05-13 14:19:10 +00:00
Ilia Alshanetsky f7f966f96f Skip session tests if session.save_path is not writable. 2004-05-13 12:53:47 +00:00
Wez Furlong 6571a32c87 Add --enable-memory-limit configure option (defaults to off) 2004-05-13 12:14:56 +00:00
Marcus Boerger fbb28b36b7 - Once ts_free_id() will be used, we cannot call ctors for deleted ids
when creating new threads.
2004-05-13 06:53:21 +00:00
b30bc204c9 ChangeLog update 2004-05-13 00:59:25 +00:00
Marcus Boerger aa7454aba4 - Centralize register and hash operations for startup/register_module
in new zend_register_module_ex().
2004-05-12 23:05:28 +00:00
Marcus Boerger 950ddcc9c2 - Revert to 1.249 2004-05-12 23:03:38 +00:00
Marcus Boerger 88a02ba159 - More work on ts_free_id() but still keep it out 2004-05-12 22:28:28 +00:00
Marcus Boerger c0be906309 ifdef out the ts_free_id until php 5.1 and until it is complete 2004-05-12 22:17:01 +00:00
Ilia Alshanetsky d6ba95c618 Fixed various possible memory leaks. 2004-05-12 20:17:19 +00:00
Ilia Alshanetsky ca5c6a1e91 Fixed bug #28374 (Possible unterminated loop inside
_php_pgsql_trim_message()).
2004-05-12 16:49:47 +00:00
Ard Biesheuvel 8428d0088c Fixed a couple of inconsistencies in param binding
# Previously, empty strings were either rejected (for scaled integers)
# or silently converted to 0 (unscaled integers & floats). Also, in some
# cases, null zvals were converted to empty strings, which were
# consequently rejected as unconvertible values.
# In the new situation, empty strings will be handled as NULLs for
# fields that cannot distinguish between the two (numeric/date/time).
# Additionally, all range and value checking is now carried out by the
# database, so there is a consistent interface for error handling.
2004-05-12 15:16:51 +00:00
Ard Biesheuvel afc9cb151b Dropped support for ancient Interbase versions (< 6)
# This has no consequences for Firebird, as its initial release was based on IB 6
2004-05-12 14:29:42 +00:00
Ard Biesheuvel b4939dfa9a Made ibase_timefmt() check its args more thoroughly and nuked a pointless malloc() 2004-05-12 13:14:55 +00:00
Ard Biesheuvel ecfd014357 Made ibase_gen_id() bail out on incorrect args 2004-05-12 13:07:35 +00:00
Marcus Boerger 8e52e04c30 - Implement ts_free_id() 2004-05-12 10:30:46 +00:00
Marcus Boerger 40a9fd5f76 - Touch 2004-05-12 10:19:06 +00:00
Marcus Boerger 05a9f544a7 - Move hash table destruction to proper location 2004-05-12 10:17:12 +00:00
Marcus Boerger 2d6770f0e6 - Added missing UNREGISTER_INI_ENTRIES 2004-05-12 10:15:48 +00:00
8de360fdbe ChangeLog update 2004-05-12 00:33:00 +00:00
Ilia Alshanetsky bd92164eff Make vprintf() and printf() return the length of the string printed.
Make fprintf() and vfprints() return the correct length of the string
printed.
2004-05-11 19:51:46 +00:00
Ilia Alshanetsky 69b712410b Reset opt_name to NULL to ensure it's not re-used if numeric keys can be
found inside the options array.
2004-05-11 15:59:07 +00:00
Derick Rethans 500f634db9 - Fixed defines 2004-05-11 15:30:54 +00:00
Andi Gutmans 4f77a021ce - Don't allow passing NULL to type hinted parameter. 2004-05-11 14:28:40 +00:00
Ilia Alshanetsky 1842676706 Fixed bug #28355 (glob() does not return error on Linux when it does not
have permission to open the directory).
2004-05-11 13:34:19 +00:00
9540037bb7 ChangeLog update 2004-05-11 00:32:24 +00:00
Ilia Alshanetsky 97d91c7656 Fixed crash inside cpdf_place_inline_image() when working with truecolor
images.
2004-05-10 22:13:08 +00:00
Rob Richards d3b364fdc7 add chregu as maintainer
prep for next release
2004-05-10 20:46:32 +00:00
Christian Stocker 7f9a606b62 Adding next() method 2004-05-10 20:39:04 +00:00
Marcus Boerger 68c22fba72 - Documentation update
- Checkin doxygen config file
# A patched version of doxygen is needed, hopefully 1.3.8 will contain it
2004-05-10 17:26:03 +00:00
Zeev Suraski 428e722d88 - Fix comparison of objects
- Clarify convert_object_to_type()
2004-05-10 14:56:21 +00:00
Rob Richards dbe02eff78 check for dom support
remove comment
2004-05-10 14:38:32 +00:00
Christian Stocker 33cd5e9b43 - added expand support (see http://www.xmlsoft.org/xmlreader.html#Mixing for the details behind
that)
 CVS: ----------------------------------------------------------------------
2004-05-10 13:31:14 +00:00
Stefan Esser 2224276a13 Checking MEMORY_LIMIT before doing emalloc/erealloc solves several ugly problems. 2004-05-10 12:17:25 +00:00
Zeev Suraski 9518107e8e Fix Win32 build 2004-05-10 12:06:09 +00:00
Marcus Boerger b0d27f9e85 - Decouple NAN and INF 2004-05-10 07:23:38 +00:00
Ilia Alshanetsky 9a50bd2de1 Missing part of the upgrade patch. 2004-05-10 02:18:49 +00:00
Marcus Boerger 3988ee2df9 - Fix problems with c mode 2004-05-10 01:42:43 +00:00
5cbb4ab242 ChangeLog update 2004-05-10 00:32:12 +00:00
Ilia Alshanetsky 468e834ef1 Fixed bug #28289 (incorrect resolving of relative paths by glob() in
windows).
2004-05-09 19:01:13 +00:00
Ilia Alshanetsky a4c3c3cd47 GD bug fixing news. 2004-05-09 18:26:40 +00:00
Ilia Alshanetsky f11d064b6a Fixed bug #28304 (Missing bounds check inside imagefilter()). 2004-05-09 18:25:33 +00:00
Ilia Alshanetsky 9557b4013a Fixed bug #28311 (Transparency detection code is off by 1). 2004-05-09 17:47:31 +00:00
Ilia Alshanetsky d3fda74acf Fixed bug #28267 (php_image_filter_contrast calls gdImageBrightness). 2004-05-09 17:39:20 +00:00
Ilia Alshanetsky 6e9c4b3125 Upgrade bundled GD library to 2.0.23.
Fixed bug #28175 (build problem for people using FreeType 2.1.0-2.1.2).
2004-05-09 17:33:50 +00:00
Wez Furlong f8518cc83a Implement com_get_active_object() and a helper object for working with
persistent COM objects.
(That's the last of the stuff I want to sneak in before 5.0 is released).
2004-05-09 15:21:29 +00:00
Wez Furlong 6f8233897e Urgh!
Use the correct function to free messages from php_win_err(), otherwise
we say hello to Mr. S. Fault.
2004-05-09 14:28:19 +00:00
Derick Rethans ca47676650 - Fixed news 2004-05-09 14:22:02 +00:00
John Coggeshall 7b54f02f25 Tell ppl about it. 2004-05-09 14:00:30 +00:00
John Coggeshall 399022f3c5 Renamed tidy_node to tidyNode, removed the tidy_exception class and updated
the tests.
2004-05-09 14:00:14 +00:00
Stanislav Malyshev 255d87b1b8 Add __EXTENSIONS__ define - otherwise it won't compile on Solaris 2004-05-09 11:08:04 +00:00
c9dc23da36 ChangeLog update 2004-05-09 00:35:06 +00:00
Ilia Alshanetsky 28eaa612c1 Fixed typo. 2004-05-08 17:37:28 +00:00
Derick Rethans f7afbb9370 - Fixed type which prevented this extension from being loaded as shared
extension.
2004-05-08 17:34:07 +00:00
Marcus Boerger c7b2568269 - Docu updates
- Add missing example file
- Fix aggregation of inner iterators in examples
2004-05-08 12:35:21 +00:00
Marcus Boerger 629a25643c - Update docu 2004-05-08 12:26:28 +00:00
Marcus Boerger a6feb3f405 - Update examples
- Update documentation
- Move classes/interfaces already implemented in c to new subdir internal
2004-05-08 12:24:15 +00:00
Sergey Kartashoff 26fea0bd80 - mnoGoSearch extension was updated to support CachedCopies of
mnogosearch-3.2.16 or later. Udm_Get_Agent_Param and
  Udm_Store_Doc_Cgi functions were added. MnoGoSearch-3.2.3 stored API
  was removed.
2004-05-08 11:50:40 +00:00
Sara Golemon 96132bf4fe if statement logic would never eval to false. 2004-05-08 05:58:18 +00:00
55ec6950ce ChangeLog update 2004-05-08 00:33:46 +00:00
Rob Richards 0953c573ad allow ->open() and ->XML() to be called statically 2004-05-07 18:38:21 +00:00
Wez Furlong 6686b3f722 spot the vim user 2004-05-07 17:47:27 +00:00
Wez Furlong ce05cea7ee Fix Bug #28317: Avoid recursion in libpcre on windows platform. 2004-05-07 17:47:02 +00:00
Ard Biesheuvel bfcc12ef78 Fix unregistered bug in zval pointer/array juggling
# Thinko: element of a **zval[] is usually not a *zval[]
# I can't believe this has gone undetected for 4+ years!
2004-05-07 15:11:07 +00:00
Marcus Boerger bfc3e689de - Fix bug #28309 2004-05-07 06:13:21 +00:00
5927a5eb18 ChangeLog update 2004-05-07 00:31:54 +00:00
Marcus Boerger 7388b6b9ac - Update examples 2004-05-06 22:55:25 +00:00
Marcus Boerger af7d85db25 - interfaces 'extends' not 'implements' other interfaces 2004-05-06 21:46:40 +00:00
Marcus Boerger 592ee79fc1 - Update documentation 2004-05-06 21:20:50 +00:00
Derick Rethans 5b5207292b - Fixed test 2004-05-06 17:45:27 +00:00
Jay Smith 8f306fd749 Fixed a segfault. (It's possible for large offsets to make strrpos()
read past the end of the haystack string...)
2004-05-06 16:11:50 +00:00
Stanislav Malyshev c6bec7db3b fix line endings 2004-05-06 15:41:59 +00:00
Stanislav Malyshev 74ab20817a Fix fastCGI breakage: due to calling flush on unitialized requests,
request was aborted unless ignore_user_abort is set
2004-05-06 15:23:53 +00:00
Sara Golemon 0dae58bb2a Bugfix #28300 Userspace stream/filter names don't need to be lowercased. 2004-05-06 14:29:33 +00:00
Marc Boeren 35bdc36c5b Call functions by their new, proper names instead of what are now aliases.
Change OCIFetchInto (deprecated) to oci_fetch_array.
2004-05-06 12:22:14 +00:00
Marcus Boerger a9070ba130 Add protos 2004-05-06 09:01:31 +00:00
Marcus Boerger 635052875e Count support for ArrayIterator & ArrayObject 2004-05-06 08:57:20 +00:00
3e038d4398 ChangeLog update 2004-05-06 00:31:51 +00:00
Ard Biesheuvel 18d9462a22 Fixed unregistered bug: array count is incorrect when binding array ids
Fixed unregistered bug: empty numeric/datetime param argument is coerced to
	a string that cannot be handled by the IB API layer
2004-05-05 22:18:35 +00:00
Sara Golemon 0180c36951 BugFix#28287 stream_*_register() not calling __autoload(). 2004-05-05 18:18:57 +00:00
Dmitry Stogov 962ab19c99 Support for classes with __call() method on server side. 2004-05-05 10:52:33 +00:00
Dmitry Stogov 7bddbd7bd0 php_error() -> php_error_docref() (Marcus, Dmitry) 2004-05-05 10:31:26 +00:00
fd0ec1cb45 ChangeLog update 2004-05-05 01:16:24 +00:00
Wez Furlong 4a645e09af news 2004-05-04 15:11:06 +00:00
Wez Furlong 263723ec9b Update for count_elements handler for overloaded objects. 2004-05-04 15:03:48 +00:00
Wez Furlong d056b25c3f Add count_elements handler for overloaded objects. 2004-05-04 15:03:28 +00:00
Wez Furlong 5b5b10f0ca Just in case this header isn't present on the snaps machine. 2004-05-04 15:00:25 +00:00
Wez Furlong c921ceb49c Improve stability.
Give it a new CLSID and change the engine name to ActivePHP5.
Globals registered by the scripting host are now auto-globals and don't
need to be declared global when accessed from within functions.
2004-05-04 14:54:01 +00:00
Ard Biesheuvel d6838a86f3 ibase_query(): Be careful not to return true on error conditions 2004-05-04 12:42:54 +00:00
Martin Jansen 46f2330c19 * Providing the full URL to the coding standards. 2004-05-04 10:43:24 +00:00
Rob Richards adeb21cd8e add package.xml 2004-05-04 08:23:10 +00:00
711422e1e4 ChangeLog update 2004-05-04 00:35:07 +00:00
Wez Furlong 173cf83629 Enable writing to SafeArray dimensions. 2004-05-03 20:10:58 +00:00
Wez Furlong 92d87a6a8d Fix problem when assigning to a variable that holds an instance of
a COM/VARIANT/DOTNET object.
2004-05-03 18:19:07 +00:00
Wez Furlong 8ca144bba5 Fixup some constants and error handling.
Remove unfinished and un-needed function.
2004-05-03 15:51:41 +00:00
Uwe Schindler b39a1e5195 Security fix: Put '\0' string termination before loop 2004-05-03 12:23:25 +00:00
fc4500f7ec ChangeLog update 2004-05-03 00:36:07 +00:00
Marcus Boerger c122763bc0 - Look for missing classes in include_path 2004-05-02 22:55:22 +00:00
Marcus Boerger e72a305091 Update examples 2004-05-02 22:07:32 +00:00
Andi Gutmans 3317070941 - Fix comparison of two objects in non-compatibility mode. 2004-05-02 15:40:46 +00:00
Marcus Boerger 6a4e1fff78 Use caseinsensitive sort 2004-05-02 13:23:30 +00:00
Wez Furlong 4d5ce8cd08 Fix Bug #28251 2004-05-02 11:13:08 +00:00
Marcus Boerger 9216b3d182 Add a notice on STDIN 2004-05-02 09:14:02 +00:00
17a4cea930 ChangeLog update 2004-05-02 00:35:19 +00:00
Marcus Boerger f571b188f9 Don't load modules twice 2004-05-01 20:34:15 +00:00
5fbad6bed5 ChangeLog update 2004-05-01 00:36:00 +00:00
Marcus Boerger ecf8650a36 Autoload class as long as needed 2004-04-30 19:01:06 +00:00
Derick Rethans 5c9d3842bd - HTML entity to ISO char. 2004-04-30 18:00:24 +00:00
Greg Beaver d14b94b8df fix to work with only the installed version of PEAR 2004-04-30 16:45:46 +00:00
Greg Beaver 11be5f887b fix included files and put error messages in PEAR_Downloader where they are needed 2004-04-30 16:37:39 +00:00
Ilia Alshanetsky 91e9545f4f Fixed bug #28228 (number_format() does not allow empty decimal separator). 2004-04-30 13:26:01 +00:00
Marcus Boerger 6f699cea5f Bugfix #28229 (PATCH run-tests tripped up by spaces in names) 2004-04-30 08:18:54 +00:00
Greg Beaver bf87bf816c remove notices in E_ALL for config test in PHP 4.3.6 2004-04-30 03:39:04 +00:00
Greg Beaver 56d7d95c67 hopefully fix this test for all cases 2004-04-30 03:35:43 +00:00
Greg Beaver e349a5e41d update to begin process for next release (release is not imminent) 2004-04-30 02:09:03 +00:00
Greg Beaver 94ff299736 fix unit test to work with 1.3.2 (which will be needed) 2004-04-30 02:06:11 +00:00
Greg Beaver af03ecf9e1 fix 1186: notice in PEAR_Common undeclared $_packageName 2004-04-30 02:05:45 +00:00
Greg Beaver 65ecfc28cf fix unit test with PEAR 1.3.1 2004-04-30 01:57:35 +00:00
66f14d696e ChangeLog update 2004-04-30 00:35:30 +00:00
Marcus Boerger 7f01ec57bf SPL is meant to be in uppercase letters, do it now it works 2004-04-29 23:02:11 +00:00
Marcus Boerger 9aab7d7cdf An oumlaut doesn't work here, need ASCII only 2004-04-29 22:57:23 +00:00
Marcus Boerger a9bdb2ed88 - Fix protos and add notes to the docs
- Reorder func prototypes to show what is common and what is specific
2004-04-29 22:52:49 +00:00
Marcus Boerger 74f21310e3 - ArrayObject::append() must not be called when it refers to an object 2004-04-29 22:25:45 +00:00
Ilia Alshanetsky 6fd3a52665 Fixed bug #28196 (missing error constants in cURL extension). 2004-04-29 16:25:42 +00:00
Ilia Alshanetsky e81addb5ca C++ comments. 2004-04-29 12:59:26 +00:00
Wez Furlong 4b4fae6aa4 another down... 2004-04-29 10:19:16 +00:00
Stanislav Malyshev 239ae7b5fc Fix bug #27876 2004-04-29 09:47:29 +00:00
Marcus Boerger bf5f758c93 - Remove unused variable
- Respect visibility in count() and add a test for that
2004-04-29 07:22:02 +00:00
17d544632e ChangeLog update 2004-04-29 00:36:06 +00:00
Wez Furlong 38795b88ed Add "--disable-all" switch, which will force all arguments to "no" if
they are not specified explicitly. (like the snapshot build, but in
reverse).
2004-04-29 00:17:09 +00:00
Wez Furlong 1ee2b46d2f Should have tested this change before committing. 2004-04-28 23:24:33 +00:00
Marcus Boerger 1721e5d44e - More examples 2004-04-28 21:52:51 +00:00
Marcus Boerger 69e792ee7b Count() was missing 2004-04-28 21:45:41 +00:00
Marcus Boerger 1e264fc509 - Add tests for the examples 2004-04-28 20:10:21 +00:00
Marcus Boerger 4cdc3117c7 - DOS 2 UNIX 2004-04-28 19:58:47 +00:00
Marcus Boerger 63a490cd90 Fix c++ builds 2004-04-28 19:20:28 +00:00
Ilia Alshanetsky 738aa1099f Added missing skip condition. 2004-04-28 15:14:47 +00:00
Wez Furlong 027d450166 Fix for Bug #28161 (and probably others that I can't find in the bug db;
the search interface sucks).

Expand the proxy object so it can handle psuedo array style properties.

ASP/VB code like this:

	headObj.Attribute("RID") = rid

can be expressed like this in PHP:

	$headObj->Attribute['RID'] = $rid;

In theory, this feature can be used for "multi dimensional" properties:

	headObj.Attribute("RID", "Foo") = rid;

like this:

	$headObj->Attribute['RID']['Foo'] = $rid;
2004-04-28 08:23:22 +00:00
b97ecc1820 ChangeLog update 2004-04-28 00:33:46 +00:00
Sara Golemon 1335bc8fb8 Don't strip off those []s, it'll only create problems in wrappers and elsewhere. 2004-04-27 19:28:11 +00:00
Sara Golemon 99b6724a4c BugFix 28187 parse_url does not handle scheme://[0123:4567::89]:12345/etc style IPv6 embedded address URLs 2004-04-27 19:13:13 +00:00
Marcus Boerger e44c06c14e - More examples 2004-04-27 18:15:00 +00:00
Marcus Boerger 953a09969f - Optional parameter to class_exists() that can be used to bypass
__autoload() which can be helpfull in __autoload() itself.
2004-04-27 18:09:40 +00:00
Ilia Alshanetsky 32321488ab Removed C++ style comments. 2004-04-27 17:33:59 +00:00
Marcus Boerger 11690da164 - Some pretection against out-of-memory situations 2004-04-27 17:12:11 +00:00
Marcus Boerger c56ca79733 Fix test 2004-04-27 15:48:20 +00:00
Marcus Boerger 11ce65aeaf - Fix warnings 2004-04-27 15:47:55 +00:00
Marcus Boerger 7a5380297b - Fix ArrayIterator iteration
- Make it seekable
2004-04-27 15:42:45 +00:00
Marcus Boerger 7f37b3f651 Fix LimitIterator by using new handler 2004-04-27 15:41:26 +00:00
Marcus Boerger c896fa34a8 Fix documentation 2004-04-27 15:39:33 +00:00
Marcus Boerger e1cd098925 - no unneccessary retval initialization
- new c-level iterator handler invalidate_current that is optionally
  used to clear internal caching like in implementation of Iterator
2004-04-27 15:38:07 +00:00
Andi Gutmans e780c42f21 - Fix prototypes 2004-04-27 15:18:33 +00:00
Ilia Alshanetsky c527cc8708 Fixed bug #28184 (C++ comments in GD library sources). 2004-04-27 14:59:07 +00:00
Rob Richards 80fd6dcaa4 add relaxNG support
set xml base directory so it is consistant
add validation examples
2004-04-27 10:46:21 +00:00
Greg Beaver 1f22d848e9 fix bug 1242 - notice if multi-dimensional array is passed as a parameter
add optional parameter to staticHasErrors() that allows error determination for a single package
2004-04-27 04:31:39 +00:00
e744a448ab ChangeLog update 2004-04-27 00:35:21 +00:00
Marcus Boerger b526220462 Complete implementation 2004-04-26 22:01:12 +00:00
Marcus Boerger 5ffeb236f4 Update 2004-04-26 21:34:45 +00:00
Ilia Alshanetsky e7d225fda8 Removed pointless check. 2004-04-26 20:14:11 +00:00
Marcus Boerger 54e5ad6b6e Fix prototype 2004-04-26 18:54:18 +00:00
Antony Dovgal af96ad84b5 hmm. this comma is supposed to be a semicolon. 2004-04-26 14:49:41 +00:00
210244b339 ChangeLog update 2004-04-26 00:35:44 +00:00
Derick Rethans c452e275e7 - MFB: Fixed bug #28147 (Crash with drawing anti-alised lines) 2004-04-25 19:45:02 +00:00
Ilia Alshanetsky be901ebeaf Fixed test. 2004-04-25 16:50:47 +00:00
Marcus Boerger e058626c66 Add new iterator example AppendIterator and use it in findfile.php example.
# The initial idea came from a request by Sebastian
2004-04-25 13:06:15 +00:00
Marcus Boerger 9238d1bbbc With the new inheritance rules we need an explicit append method. 2004-04-25 13:04:36 +00:00
Marcus Boerger 5fff6fa361 Skip correct amount of stack entries 2004-04-25 11:28:46 +00:00
Marcus Boerger c5abb9b24c Capture potential problem by error message 2004-04-25 11:25:25 +00:00
Marcus Boerger 286f75c891 Show number of classes 2004-04-25 11:22:56 +00:00
Marcus Boerger 8116ba4249 BFN 2004-04-25 11:19:57 +00:00
Marcus Boerger 5b755c40ea Fix several issues
- bugfix #27063
- bugfix #27929
- bugfix #28099
- bugfix #28125
# The amount of code is needed to solve the return by reference problem.
# dual_it and derived also need their own iterator handlers to be able
# to return by reference.
2004-04-25 11:14:11 +00:00
Andi Gutmans 87a9f7bdbb - RC3-dev 2004-04-25 10:13:08 +00:00
Andi Gutmans 1ccf8dde15 - This was forgotten 2004-04-25 09:15:57 +00:00
Andi Gutmans 94c44ea9eb - RC2 2004-04-25 08:32:50 +00:00
Wez Furlong df14ec2fe2 Spell it out. 2004-04-25 00:41:34 +00:00
a4e94e33b3 ChangeLog update 2004-04-25 00:34:28 +00:00
Ilia Alshanetsky 4e4d861046 Fixed test. 2004-04-24 22:38:51 +00:00
f977f8a90b ChangeLog update 2004-04-24 00:34:14 +00:00
Andi Gutmans 399073f9d4 - Fixed bug #27923. foreach() without a key should not check if the key
- is a reference (Adam)
2004-04-23 21:53:46 +00:00
Andi Gutmans fa2e902436 NEWS 2004-04-23 21:51:39 +00:00
Derick Rethans 43aed8f70b This was already in NEWS for the branch, removing 2004-04-23 18:20:20 +00:00
Derick Rethans 858fc0015f Cleanup NEWS 2004-04-23 18:19:03 +00:00
Rasmus Lerdorf 191a661f8c MFB: Fix for bug #27810 2004-04-23 18:08:58 +00:00
Rob Richards 838d30a5cd move libxml error handler ro rinit/rshutdown to keep it local to php 2004-04-23 17:31:44 +00:00
Ilia Alshanetsky 7a11fe48b6 Fixed bug #28087 (Do not force mysql.trace_mode to 0 on every request). 2004-04-23 17:03:52 +00:00
Derick Rethans 9ee23d7066 - Fixed buffer overflow in phpinfo() for Zend Extension Api NO. 2004-04-23 13:28:25 +00:00
Wez Furlong 16f8b66e46 Another one bites the dust 2004-04-23 13:28:05 +00:00
Dmitry Stogov eba2aa9bd0 Support for <![CDATA[ ]]> for string/hexbinary/base64binary data 2004-04-23 12:22:41 +00:00
Sara Golemon d5e0742e8d In-HEAD bugfix# 28115 2004-04-23 03:37:20 +00:00
f1bad5dab7 ChangeLog update 2004-04-23 00:36:46 +00:00
Marcus Boerger af17964ef4 Avoid warning to interfere test result 2004-04-22 22:55:18 +00:00
Ilia Alshanetsky 9da8328bae Empty query checks, bug #28112. 2004-04-22 22:34:29 +00:00
Marcus Boerger 920e4235a4 Add test for bug #28112 2004-04-22 22:29:41 +00:00
Marcus Boerger ddfb337577 bugfix #28112 2004-04-22 22:26:02 +00:00
Wez Furlong 696663bc3d Add test 2004-04-22 14:29:33 +00:00
Wez Furlong 91dc1a516a A working fix for the safearray mapping bug. 2004-04-22 14:27:11 +00:00
Wez Furlong 73f49c16f4 The fix for the vc7 libc putenv bug is also needed here to avoid a crash. 2004-04-22 14:26:03 +00:00
Hartmut Holzgraefe 9833b429d6 Depercating mime_magic in favor of PECL::fileinfo 2004-04-22 01:24:12 +00:00
Wez Furlong c50726fa4b (probable) fix for Bug #27974: PHP Arrays are not mapped to VARIANTs. 2004-04-22 00:50:49 +00:00
f52e75742b ChangeLog update 2004-04-22 00:35:20 +00:00
Ilia Alshanetsky 8694cd135d Fixed possible crash inside pg_copy_(to|from) function if delimiter is more
then 1 character long.
2004-04-22 00:31:55 +00:00
Ilia Alshanetsky d641ba3eae More C++ comments. 2004-04-21 23:16:34 +00:00
Ilia Alshanetsky 1b80b33b87 C++ comments are ungood ;). 2004-04-21 23:06:26 +00:00
Wez Furlong 03b4f344a0 News about the ssl server socket bug 2004-04-21 23:02:56 +00:00
Wez Furlong e9920ede1f Fix bug #28096 - stream_socket_accept() on an SSL server socket doesn't
enable SSL on the accepted socket.

- Add cipher list context option
- Add helpful hint about why SSL server socket fails with mysterious
  error (eg: you need an SSL certificate for most ciphers).
2004-04-21 23:02:06 +00:00
Hartmut Holzgraefe 375b5df63d libmagic will only consume up to HOWMANY (hardcoded to 65536) bytes
from a file, so lets save bandwith and memory by limiting us to this
2004-04-21 22:49:35 +00:00
Dmitry Stogov c94f0276b0 Support for multiref data 2004-04-21 16:57:18 +00:00
Wez Furlong 0fb4bf9771 Fixed bug #19749 (shouldn't mmap() files larger than memory_limit) 2004-04-21 12:02:47 +00:00
Andi Gutmans 206f0da25a - RC2-dev 2004-04-21 10:34:27 +00:00
Andi Gutmans 40c20d3d72 - Prepare for RC2RC2 (if everything is OK especially Zeev's interface
- patch I'll roll RC2 tomorrow).
2004-04-21 09:59:52 +00:00
Wez Furlong d6cb1431ac yaz moved 2004-04-21 08:57:16 +00:00
Wez Furlong 8090684c5a Moved ext/yaz to PECL. 2004-04-21 08:56:34 +00:00
Zeev Suraski 242aa98b0a Restore fatal error in case a method that's supposed to implement an
interface/abstract method, breaks its prototype
2004-04-21 08:44:37 +00:00
Derick Rethans 142edcf01f - Reorder news 2004-04-21 07:23:40 +00:00
42f26b6fae ChangeLog update 2004-04-21 00:35:41 +00:00
Ilia Alshanetsky 8a23a020e9 Fixed possible memory leaks.
Prevent shm_attach() from destroying non-shm resources.
2004-04-21 00:11:28 +00:00
Frank M. Kromann bfdcc96274 mssql related fixes 2004-04-20 23:55:02 +00:00
Frank M. Kromann 9909a36992 Fix #28007. Compile fails when the SHORT type is undefined (older versions of FreeTDS) 2004-04-20 23:37:08 +00:00
Frank M. Kromann c5f8871734 Fix problem getting return value from stored procedure when it returns multiple results 2004-04-20 23:30:51 +00:00
John Coggeshall 04764e1942 minor update 2004-04-20 18:29:16 +00:00
John Coggeshall 8e1391ce49 No need for exception function, and renamed the 'error_buf' prop to
errorBuffer to conform with the rest of the ext.
2004-04-20 18:28:09 +00:00
Andi Gutmans 844b4738fd - Fix news 2004-04-20 14:18:56 +00:00
Andi Gutmans 71f99771b0 - More news 2004-04-20 14:15:57 +00:00
Andi Gutmans 173782b73e - Fix bug #27283 - Exceptions where the last catch() statement was sometimes
- skipped.
2004-04-20 14:14:55 +00:00
Christian Stocker 65bc57a81f - make static methods calls work from within xslt
- extended tests
2004-04-20 09:24:24 +00:00
e9c3ac04f5 ChangeLog update 2004-04-20 00:35:29 +00:00
Ilia Alshanetsky 39f820b8b8 Fixed compiler warnings. 2004-04-20 00:26:48 +00:00
Marcus Boerger dddbe6f60e Add new tests (by magnus) 2004-04-20 00:00:51 +00:00
Rob Richards f726dc7af1 add ext/libxml/ to the headers path 2004-04-19 19:46:00 +00:00
Rob Richards 5094e4e67c initial revision
requires PHP 5
2004-04-19 18:55:02 +00:00
Marcus Boerger be85c9049b show ini entries and classes for extensions. 2004-04-19 18:02:49 +00:00
Wez Furlong daa90c915c Fix #27865; don't dup STDIN, STDOUT or STDERR when running under CLI. 2004-04-19 17:41:39 +00:00
Derick Rethans 3326b8790e - Is it really this hard?</jani> 2004-04-19 15:15:49 +00:00
John Coggeshall bf937669e0 Adding tidy error handling news 2004-04-19 15:14:31 +00:00
Wez Furlong 73af3afdbe and the news 2004-04-19 15:08:11 +00:00
Wez Furlong 398b4a2fbb Add pty support to proc_open() for systems with Unix98 ptys.
# With permission from Andi
2004-04-19 15:07:30 +00:00
Edin Kadribasic 9bf6b05b87 No need to export anything. Fixes win32 build 2004-04-19 14:13:41 +00:00
7537d97280 ChangeLog update 2004-04-19 00:34:18 +00:00
Ilia Alshanetsky 60292114a0 Simplify code via the use of macros. 2004-04-18 21:49:10 +00:00
Derick Rethans abff9671fb - Whitespace 2004-04-18 14:04:48 +00:00
John Coggeshall 544cdffd90 Fixing a tidy_getopt() bug, and converting all exceptions to E_WARNING 2004-04-18 07:58:19 +00:00
20d52aa8dc ChangeLog update 2004-04-18 00:34:17 +00:00
Derick Rethans c8c5e8bbe6 - MFH: Fix for bug #28042 (greek letters in html to entitity mapping not
correct)
2004-04-17 23:08:02 +00:00
Marcus Boerger d58fe0357d Retval may not be set when zend_execute() is overloaded 2004-04-17 14:02:40 +00:00
57049aff26 ChangeLog update 2004-04-17 00:34:11 +00:00
John Coggeshall ba43e31e24 Fixed construct bug and Windows build. 2004-04-16 21:51:59 +00:00
Derick Rethans 2ed9c955b8 - Fix initializations 2004-04-16 18:55:19 +00:00
Uwe Schindler fb25210072 set Sybase default APPNAME to ("PHP " PHP_VERSION) 2004-04-16 16:27:19 +00:00
John Coggeshall 1fb0de4a6d Modified error handling:
- Trivial errors have been reduced to E_NOTICEs if possible
  - Bad, but not script-stopping errors (i.e. file not file) are E_WARNING
  - Truly bad things that make the extension unusable are not E_ERROR

  Exceptions are thrown only in a OO context for E_WARNINGs.
2004-04-16 15:46:41 +00:00
355678208d ChangeLog update 2004-04-16 00:36:43 +00:00
Marcus Boerger 43e44e4e9f Bugfix #28012, now for snprintf 2004-04-15 23:08:22 +00:00
Marcus Boerger c007130382 Bugfix #28012 spprintf() output inconsistent for %p 2004-04-15 23:04:49 +00:00
Marcus Boerger a455d7846d Handle failure in get_current_data 2004-04-15 21:32:34 +00:00
Andi Gutmans 14edc95ff8 - Temporary fix for bug #27869
- George, you need to implement clone in order for "clone" and
- compatibility mode to work.
2004-04-15 17:25:51 +00:00
Wez Furlong 8307c0204c Fix bug that prevented --without-gd from working 2004-04-15 16:09:36 +00:00
Hartmut Holzgraefe 1d444f9ad2 typo 2004-04-15 15:27:08 +00:00
Hartmut Holzgraefe 702ca7f53f be a bit more explanatory ... 2004-04-15 15:03:26 +00:00
Ilia Alshanetsky dda0dd4825 Fixed test failure if session.use_trans_sid is enabled. 2004-04-15 13:37:50 +00:00
foobar 4a45a8e948 Remove duplicate entries 2004-04-15 12:25:57 +00:00
Wez Furlong 81835bbf47 been stable for a long time now 2004-04-15 11:52:40 +00:00
Dmitry Stogov 8d8c50fed3 Fixed bug #27681 (soap extension fails without HAVE_TM_GMTOFF). 2004-04-15 10:27:53 +00:00
Dmitry Stogov 0d42248ad8 Calls to zend_exception_error() were removed. 2004-04-15 09:35:27 +00:00
foobar 724a221a7b reorder..is this so hard..? :) 2004-04-15 02:37:42 +00:00
c4435ad7b2 ChangeLog update 2004-04-15 00:35:44 +00:00
Marcus Boerger 1c7fdeac21 BFN 2004-04-14 23:41:22 +00:00
Marcus Boerger 00da44519c Bugfix #27997 2004-04-14 23:26:56 +00:00
Frank M. Kromann 6ba2e4bc51 Declare variables before calling functions. This makes tidy compile on Win32. 2004-04-14 19:01:45 +00:00
Andi Gutmans 4774563966 - Add comment 2004-04-14 17:12:04 +00:00
Edin Kadribasic d5c6825241 According to Wez, this is not needed.
It also breaks win32 build.
2004-04-14 13:56:18 +00:00
Andi Gutmans 245dd7367d - RC2-dev 2004-04-14 11:24:17 +00:00
Andi Gutmans acc4cd17ce - RC2RC1 2004-04-14 11:03:47 +00:00
Derick Rethans 3c28fbd6dd - Enable iconv by default 2004-04-14 07:42:38 +00:00
66f5637723 ChangeLog update 2004-04-14 00:35:36 +00:00
Marcus Boerger 087ed66b69 Classnames shall start with an uppercase character 2004-04-13 20:25:49 +00:00
Marcus Boerger 27aee6b1dd Update error messages in tests 2004-04-13 19:08:54 +00:00
Marcus Boerger f0c91bac50 New tests (and ordering of tests) 2004-04-13 19:06:39 +00:00
Marcus Boerger ad2471cbbb Bugfix #27979 2004-04-13 19:06:16 +00:00
Ilia Alshanetsky 793140873b Another setting leak in session code (bug #27963). 2004-04-13 18:18:22 +00:00
Sara Golemon a7ba08a0bd Export symbols needed by bz2_filter 2004-04-13 17:54:47 +00:00
Wez Furlong d16ad34368 This wasn't updated for new parameters for object handlers yet... 2004-04-13 17:51:36 +00:00
foobar e1c7a424ce BFN 2004-04-13 17:28:23 +00:00
Stanislav Malyshev 3c84c9c4bd fix bug #27979 2004-04-13 16:21:24 +00:00
Zeev Suraski 2310acb57a Fix debug_backtrace to show arguments again
We need to merge code from debug_backtrace & debug_print_backtrace at
some point!
2004-04-13 16:07:19 +00:00
Andi Gutmans 4f47f33402 - Fix API no of Engine 2. The first number is the engine version and the
- rest is the API_NO. This way engine2_api_no is always greater than
- engine1_api_no.
2004-04-13 15:27:36 +00:00
Andi Gutmans 979da66118 - Add hook for exception handler (Derick) 2004-04-13 15:19:21 +00:00
Ilia Alshanetsky 254c8d6ce9 Fixed bug #27963 (Session lifetime setting may leak between requests). 2004-04-13 00:39:05 +00:00
9d10977fd7 ChangeLog update 2004-04-13 00:34:35 +00:00
Derick Rethans 2c259a7979 - Add fontpath for win98/XP (Patch by Friedhelm Betz) 2004-04-12 21:42:42 +00:00
Marcus Boerger 33cdc9ed36 Fix order of macro parameter (synch with other macros) 2004-04-12 13:02:54 +00:00
Andi Gutmans 67502a2e7d - modifyable -> modifiable 2004-04-12 12:22:26 +00:00
John Coggeshall 9b21e0d0a9 - Removed things related to attribute classes / consts which no
longer exist in Tidy
- Changed protos in comment blocks to studlyCaps
- Fixed problem where Tidy would throw exceptions if called from
  a procedural context. Tidy will now cause E_ERRORs if called from
  procedural form.
2004-04-12 03:14:19 +00:00
15bc137fef ChangeLog update 2004-04-12 00:33:45 +00:00
Ilia Alshanetsky 8075d977e1 Open basedir & safe_mode exception when copying or attaching to a memory
only database.
2004-04-11 18:53:32 +00:00
14e2e82cf5 ChangeLog update 2004-04-11 00:33:36 +00:00
Marcus Boerger ad4755e257 studlyCaps 2004-04-10 13:56:27 +00:00
f95488a3c9 ChangeLog update 2004-04-10 00:34:29 +00:00
Sara Golemon 3feae65f70 BugFix: Copy/Paste mistake referenced undefined variable on platforms without gettimeofday() 2004-04-09 19:18:59 +00:00
Ard Biesheuvel ff66870b4c Changed ibase_user_[add|modify|delete]() to use service resources 2004-04-09 18:45:30 +00:00
Ilia Alshanetsky 824f9a4d11 Fixed bug #27928 (sqlite incorrectly handles invalid filenames). 2004-04-09 18:02:05 +00:00
Andi Gutmans 7bedd9f824 - NEWS 2004-04-09 14:43:20 +00:00
Andi Gutmans 4a24cbe276 - Fix bug #26441 (When __set() returned a value it corrupted it) 2004-04-09 14:42:06 +00:00
Greg Beaver 8a91c1d5b8 re-organize as per PEAR-Core discussion 2004-04-09 07:38:48 +00:00
Greg Beaver dfa4a5d927 as per PEAR-Core discussion, remove all but absolutely essential
packages for the installer, and for PEAR_Frontend_Web
2004-04-09 01:12:41 +00:00
ca8dc5aca3 ChangeLog update 2004-04-09 00:33:16 +00:00
Greg Beaver 7ab7b99ac1 oops, PHPUnit2, not PHPUnit 2004-04-08 23:52:36 +00:00
Marcus Boerger 6e3b81e385 Add new test 2004-04-08 22:47:13 +00:00
Marcus Boerger 42370213f7 Fix toString() issue again 2004-04-08 22:46:43 +00:00
Marcus Boerger 84ddc25df6 BFN 2004-04-08 20:38:17 +00:00
Marcus Boerger 8ccfca0c41 Bugfix #27519 Reflection_Function constructor crashes with non-existant
function's name
2004-04-08 20:37:06 +00:00
Derick Rethans 3ec166aba4 - Add missing "CEST" timezone 2004-04-08 19:21:05 +00:00
Frank M. Kromann b2913063e0 Remove debug output 2004-04-08 19:08:37 +00:00
Jon Parise ba863b4558 Include Mail 1.1.3 with PHP 5. 2004-04-08 18:27:26 +00:00
Derick Rethans 1f932c30d6 - Added reworded destructor change 2004-04-08 16:19:58 +00:00
Derick Rethans b91a947d5e - Added test and not the diff ;-) 2004-04-08 16:17:35 +00:00
foobar 5d3900a2e9 remove crap 2004-04-08 15:58:35 +00:00
Greg Beaver b3cec4d9d4 Dan wants tabs -> spaces 2004-04-08 15:03:21 +00:00
Greg Beaver eaa48d3743 forgot phpunit -> phpunit2 for php5 2004-04-08 14:59:31 +00:00
Stefan Esser 6b12a45247 Fixed: possible remote overflow and possible efree(NULL) crash 2004-04-08 14:58:04 +00:00
Greg Beaver fdc1b53183 this should update the list
# Pierre-Alain, have you tested frontend_web with pager 2 yet?
2004-04-08 14:30:13 +00:00
Derick Rethans 9d4f01a8af - Test case for bug #20382 2004-04-08 14:18:23 +00:00
Wez Furlong 5e8d0919cf Add code to fetch the pear bundle based on pear/go-pear-list.php
For the moment, this is turned off, but it should be turned on ready for
the next RC.
(waiting for feedback from Edin and the PEAR guys)
2004-04-08 13:36:11 +00:00
Wez Furlong 61144768ed Add this list here, so that pear-core guys can manipulate the PEAR bundle
for the win32 snapshot.
2004-04-08 13:32:50 +00:00
Wez Furlong a8757b11e6 Enable mbregex in win32 build 2004-04-08 11:01:51 +00:00
foobar bb276eb8d4 - Fix test file outputs. 2004-04-08 08:39:41 +00:00
foobar 1789e67088 pfft.. 2004-04-08 07:56:50 +00:00
456c023e83 ChangeLog update 2004-04-08 00:35:41 +00:00
Moriyoshi Koizumi d3a8b31310 - Add missing checks. Maybe fixes PR #27680 2004-04-08 00:30:06 +00:00
Edin Kadribasic 31de856abb Allow compilation with gdlib 1.8 2004-04-07 22:27:32 +00:00
Frank M. Kromann d956e33ed2 avoid deleting needed files when the .cvsignore file contains empty lines (mysqli) 2004-04-07 18:48:23 +00:00
Frank M. Kromann 9a10491752 Export symbols required by zlib_filter extension 2004-04-07 18:47:09 +00:00
Rob Richards fb39035e77 Fix class name 2004-04-07 16:48:11 +00:00
Rob Richards e8340dd2c5 BFN 2004-04-07 16:25:55 +00:00
Rob Richards e32f012e65 Fix bug #27821 xml_parse segfaults when xml_set_object called from class method
fix memleaks in compat.c
2004-04-07 16:24:17 +00:00
Andi Gutmans c534a9e782 - Hopefully fix the debug_backtrace() code. 2004-04-07 15:29:09 +00:00
foobar 99a2a59f01 cleanup 2004-04-07 15:25:29 +00:00
Andi Gutmans 7264ffe50d - Fix crash bug in zend_debug_backtrace(). No idea how come this survived
- for so long....
2004-04-07 14:02:29 +00:00
foobar f1823e58da Revert the patch to "fix" #27664 and added more informal error msg. 2004-04-07 13:56:33 +00:00
Ard Biesheuvel 59f0817205 Don't define ibase_service struct type unless its member types are defined 2004-04-07 10:36:00 +00:00
Stanislav Malyshev 72e2e4fea3 Fix incomplete class for the new object model 2004-04-07 08:06:09 +00:00
84930ecbdf ChangeLog update 2004-04-07 00:34:16 +00:00
Greg Beaver 0715add65f developer -> lead for cellog 2004-04-07 00:29:58 +00:00
Ilia Alshanetsky 9a98c38cbd Removed pointless check. 2004-04-06 23:14:06 +00:00
Greg Beaver e09aff93fb add PEAR_ErrorStack to description of PEAR 2004-04-06 22:18:37 +00:00
Greg Beaver f2e8c04e8a change release date 2004-04-06 22:08:51 +00:00
Rob Richards 7b1f927ef5 register_namespace changed to registerNamespace for consistency 2004-04-06 18:26:19 +00:00
Adam Dickmeiss 1afef889e2 Allow character set conversion for yaz_record's array method, e.g.
yaz_record($id,$pos,"array;charset=marc8,iso-8859-1")
2004-04-06 17:40:05 +00:00
foobar 4ee4d27cb4 reorder, reword, typos.. 2004-04-06 09:53:31 +00:00
foobar 338b9bfb2d Remove duplicate entry 2004-04-06 09:43:18 +00:00
d1aee77c5a ChangeLog update 2004-04-06 00:35:23 +00:00
Ard Biesheuvel 18fa461119 More divide & conquer 2004-04-05 13:22:34 +00:00
Dmitry Stogov f9c5fc6ecb Fix (using patterns) 2004-04-05 05:24:15 +00:00
1bee9e12fb ChangeLog update 2004-04-05 00:35:43 +00:00
Moriyoshi Koizumi 94ec5c2a64 - Let it work safely 2004-04-04 19:23:19 +00:00
Derick Rethans bebddbdd24 - Fixed test 2004-04-04 19:00:53 +00:00
Ilia Alshanetsky bf997c3eb3 Removed unused variable. 2004-04-04 18:28:59 +00:00
Moriyoshi Koizumi 7f5950ffb7 - Fix test: Any datetime value that exceeds the unix time range should
not be unserialized.
2004-04-04 18:07:36 +00:00
Ilia Alshanetsky 3b27b0f18b Fixed a bug that prevented building of gd extension against external GD
lib 1.X.
2004-04-04 17:59:08 +00:00
Ard Biesheuvel 2680fb4a9d CS 2004-04-04 13:51:56 +00:00
Derick Rethans f1141d79c6 - Fixed comment and double 0 2004-04-04 12:45:02 +00:00
Derick Rethans 794846e5c5 - One more test for a date/time related bug. 2004-04-04 12:42:13 +00:00
Marcus Boerger 8fd505f4b4 Add a comment why it is in 2004-04-04 12:31:12 +00:00
1ca4aca8fb ChangeLog update 2004-04-04 01:32:18 +00:00
Andi Gutmans 8838b38fcb Patch by Timm Friebe:
It changes
set_exception_handler() to accept the pseudo-type "callable" (instead of
a string referring to a global function).


Examples:
  set_exception_handler('function_name');
  set_exception_handler(array('class_name', 'static_method'));
  set_exception_handler(array($instance, 'instance_method'));


This also makes set_exception_handler() more consistent with all the
other callback functionality, e.g. set_error_handler().
2004-04-03 21:50:12 +00:00
Derick Rethans efb62ea35f - MFB: Fixed bug #27849 (configure craps out on trivial syntax error). 2004-04-03 17:23:53 +00:00
Andi Gutmans 911922432f - Nuke more old junk 2004-04-03 17:01:13 +00:00
Ard Biesheuvel e7eccf10e6 That should do it 2004-04-03 16:38:10 +00:00
Greg Beaver ae73e40808 fixed #534 for real (remove notice if state=stable doesn't exist, and use "none" for stable version number) 2004-04-03 15:56:00 +00:00
Ard Biesheuvel 4493bbb809 Skip on Windows 2004-04-03 15:29:10 +00:00
Ard Biesheuvel 2daf7303b2 Don't rely on OS-based authentication (as it is not supported under Win32) 2004-04-03 15:24:11 +00:00
Marcus Boerger de56cc51a8 Increase severity level and use a more precise error message. 2004-04-03 14:40:36 +00:00
Andi Gutmans 1c7cfe739d - Nuke code which hasn't been in use for ages. 2004-04-03 11:09:39 +00:00
Ard Biesheuvel b04eb1d3da fclose() tempfile so unlink() doesn't choke on Win32 2004-04-03 11:04:21 +00:00
Ard Biesheuvel cd7e8bdf8c Change definition of ISC_LONG_[MIN|MAX] to please MSVC. 2004-04-03 11:00:14 +00:00
Ard Biesheuvel 5367158046 MFB: more elaborate HUGE_VAL test 2004-04-03 10:42:42 +00:00
Marcus Boerger 53b4597fca Initialize to 0 to prevent valgrind warnings 2004-04-03 09:51:57 +00:00
Greg Beaver b79e803a43 fix Bug #937 throwError() treats every call as static
fix Bug #964 PEAR_ERROR_EXCEPTION causes fatal error
2004-04-03 06:28:54 +00:00
Greg Beaver 9d86149b01 fix #534: pear search doesn't list unstable releases 2004-04-03 06:06:17 +00:00
da4f2be35a ChangeLog update 2004-04-03 02:06:57 +00:00
Greg Beaver 361951bc01 not devel any more 2004-04-03 00:42:20 +00:00
Derick Rethans 95659890ba - Fixed expected shift/reduce conflict count nu,ber 2004-04-02 21:26:35 +00:00
Sara Golemon 60baea9671 Update sample SAPI locations. BugFix# 27829 2004-04-02 20:32:41 +00:00
Dmitry Stogov b010daa9c4 Support for domain cookies 2004-04-02 15:43:41 +00:00
Dmitry Stogov 794358f385 Test file was fixed (implicit cloning strict warnings) 2004-04-02 13:43:58 +00:00
Dmitry Stogov 6f6ef6deed SoapClint support for multiple hosts (through WSDL) with cookies. 2004-04-02 11:12:44 +00:00
Dmitry Stogov 7dae9e6cad Fixed bug #27742 (WDSL SOAP Parsing Schema bug) 2004-04-02 06:23:51 +00:00
9a6dad867d ChangeLog update 2004-04-02 01:32:15 +00:00
Ilia Alshanetsky c85843aec1 MFB: Revert patch for bug #27782. 2004-04-01 22:07:42 +00:00
Ilia Alshanetsky 962c8cc9ef Fixed reversed condition for error reporting. 2004-04-01 22:05:35 +00:00
Derick Rethans b2ed70e4e0 - MFB: Fixed bug #27780 (strtotime(+1 xxx) returns a wrong date/time) 2004-04-01 21:40:56 +00:00
Ard Biesheuvel 0956f5133c CS/WS 2004-04-01 18:23:45 +00:00
Ard Biesheuvel 75df505fe6 Test binding of numeric timestamps 2004-04-01 16:42:25 +00:00
Ard Biesheuvel 563e9dd664 Don't rely on isql anymore, as creating databases is now supported by the API
Changed tests to include ibase_query("SET TRANSACTION ...")
2004-04-01 16:25:51 +00:00
Dmitry Stogov 6a6096ec11 StudlyCaps fix. 2004-04-01 14:37:03 +00:00
Dmitry Stogov f712d46b50 Fixed possible crash 2004-04-01 14:05:55 +00:00
Dmitry Stogov 9dd0826623 Fixed bug #27722 (Segfault on schema without targetNamespace). 2004-04-01 13:44:12 +00:00
Ard Biesheuvel 0d5a3f0b91 WS 2004-04-01 11:38:23 +00:00
Ard Biesheuvel 1eb428e76d Fix unregistered bug (crash when closing db opened with "CREATE DATABASE ...") 2004-04-01 10:56:28 +00:00
Dmitry Stogov 40bb734452 Some small improvments, support for new style constructors, support for exceptions other then SoapFault 2004-04-01 10:47:44 +00:00
Derick Rethans 88c17817a9 - Fixed bug #27822 (is_resource() returns TRUE for closed resources) 2004-04-01 08:54:44 +00:00
Sara Golemon fac9416797 Only wind filters when appending to the read chain. 2004-04-01 03:52:34 +00:00
1d5a6d3f9f ChangeLog update 2004-04-01 01:32:08 +00:00
Sara Golemon 002f7ef393 This leaks when a stream opener proxy opens another stream. 2004-04-01 01:07:54 +00:00
Sara Golemon 72616e6eae BugFix#27619
Filters not applied to pre-buffered stream data.
(esp. http:// streams)
2004-03-31 23:48:59 +00:00
Derick Rethans 29273ca7a9 - Align help output for configure. 2004-03-31 21:11:23 +00:00
Ilia Alshanetsky dbc60edabf Fixed bug #27809 (ftp_systype returns null on some ftp servers). 2004-03-31 20:43:40 +00:00
Hartmut Holzgraefe f8708f369d disallow negative timestamps on windows only 2004-03-31 17:57:33 +00:00
Rob Richards 010c340f29 use new style constructors
fix return for nodelist item
2004-03-31 17:18:59 +00:00
Ilia Alshanetsky 39a43c994e Fixed bug #27802 (default number of children to 8 when PHP_FCGI_CHILDREN is
not defined).
2004-03-31 17:01:01 +00:00
Dmitry Stogov d00b6c7c99 Fixed BUG in zend_post_incdec_property 2004-03-31 15:16:00 +00:00
Andi Gutmans 1c5ea0d7df - Fix typo 2004-03-31 13:11:19 +00:00
5de30d1066 ChangeLog update 2004-03-31 01:32:01 +00:00
Ard Biesheuvel 81cfb1b312 Make time tests more robust against differences in implementation
# FreeBSD mktime() returns -1 if is_dst==1 and no DST timezone is set
2004-03-31 01:00:55 +00:00
Ilia Alshanetsky 8ecdc90763 Fixed generate_array_diff(). 2004-03-30 23:58:47 +00:00
Marcus Boerger 9f8ba2e8a1 Fix tests 2004-03-30 21:17:52 +00:00
Marcus Boerger 76ae4e10bf Fix test 2004-03-30 21:13:05 +00:00
Marcus Boerger 1ffa3cf65d Add more statistics 2004-03-30 19:33:22 +00:00
Ilia Alshanetsky ec4655f864 Fixed bug #27782 (Wrong behaviour of next(), prev() and each()). 2004-03-30 19:08:43 +00:00
Marcus Boerger a5c94d0184 The test script to search for underscores 2004-03-30 18:50:39 +00:00
Marcus Boerger b4bc994680 TSRM fix 2004-03-30 18:39:53 +00:00
Marcus Boerger 5230321731 - Fix Reflection class names
- Add ability to get the extension an internal class was defined in
# This is the patch Andi and me used to search for underscrores...
2004-03-30 18:36:53 +00:00
Frank M. Kromann b4f64e7f7b Fix for #27764. Get return value from a stored procedure not returning any result sets 2004-03-30 17:54:10 +00:00
Stanislav Malyshev 07266a10ab Disabled calling dtors on tsrm_shutdown - calling dtors in tsrm_shutdown makes
modules registering TSRM ids to crash, if they have dtors, since the module
is unloaded before tsrm_shutdown is called. Can be re-enabled after
tsrm_free_id is implemented.
2004-03-30 16:56:01 +00:00
Ard Biesheuvel 04d178f79c Prevent test from failing on least significant digit 2004-03-30 12:36:44 +00:00
Dmitry Stogov 1ed6bb3e63 Using studlyCaps names. 2004-03-30 09:08:23 +00:00
Andi Gutmans 9094dd7a5e - Tiny improvement. 2004-03-30 08:56:29 +00:00
ddb1fdaaa9 ChangeLog update 2004-03-30 01:31:57 +00:00
Marcus Boerger dddf796edf NAN==NAN doest work (Ard) 2004-03-29 23:08:36 +00:00
Ilia Alshanetsky f7fd3a7dcc Removed extra spaces that cause the test to fail. 2004-03-29 21:57:29 +00:00
Wez Furlong 32be6f268b Fix for Bug #26757: session.save_path defaults to bogus value on win32
Merge from branch with one main difference: the default save_path is
set to the empty string on all platforms, whereas the code in the
branch only does so for win32.
2004-03-29 21:44:07 +00:00
Marcus Boerger 904dac52e2 DOM_RET_OBJ for return_value needs to be followed by return 2004-03-29 21:05:16 +00:00
Marcus Boerger 585af2418b Remove debug code 2004-03-29 20:54:46 +00:00
Marcus Boerger 4dc6fe7f62 Fix tests 2004-03-29 20:54:13 +00:00
Marcus Boerger b6321d4e8a Fix class names 2004-03-29 19:58:01 +00:00
Ilia Alshanetsky 0d0fffe98b Fixed compiler warnings. 2004-03-29 19:57:51 +00:00
Marcus Boerger 2ce2300d76 Fix class names 2004-03-29 19:49:17 +00:00
Marcus Boerger 43d3d8a0a4 Fix class names 2004-03-29 19:31:29 +00:00
Marcus Boerger 96b6c7f5f8 Windows part of NAN/INF 2004-03-29 18:58:28 +00:00
Marcus Boerger 8b15b46aa8 Found a NAN/INF solution that should be portable everywhere(?) (Ard,Marcus) 2004-03-29 18:51:47 +00:00
Marcus Boerger afe794c0d6 Allow mixed case search for extensions 2004-03-29 18:48:59 +00:00
Frank M. Kromann 87779f127a Fix for #27743. Make sure Money types are converted and returned correct 2004-03-29 18:32:27 +00:00
Ilia Alshanetsky 8b079070a3 Synchronized bundled GD library with GD 2.0.22. 2004-03-29 18:20:33 +00:00
Sebastian Bergmann c29e9277d0 -clonning+cloning 2004-03-29 15:20:50 +00:00
Dmitry Stogov 75d1e4ca7d Implicit clonning strict warning was added for ze1_compatibility_mode 2004-03-29 15:00:31 +00:00
Jan Lehnardt 775387e32d - be more verbose 2004-03-29 07:49:32 +00:00
Hartmut Holzgraefe 5e3b2e3d31 Test updated to test for additional libxml2/expat inconsistencies 2004-03-29 05:56:18 +00:00
31b042714e ChangeLog update 2004-03-29 01:32:05 +00:00
Ilia Alshanetsky 62c80d5e6e Fixed bug #27731 (error_reporting() inside @ block fails to set
error_reporting level).
2004-03-29 00:50:52 +00:00
Marcus Boerger 16a4376f53 Use lowercasing here 2004-03-28 23:56:18 +00:00
Marcus Boerger 4da754e868 Add ability to pass -n to the executed php 2004-03-28 23:04:53 +00:00
Marcus Boerger 4f855044c7 Improve portability (idea by Ard) 2004-03-28 21:46:43 +00:00
Marcus Boerger 1bf1b64c37 Initialize the complete struct 2004-03-28 21:09:37 +00:00
Marcus Boerger f8ff2ccf20 Fix writing of SQLite and SimpleXMl extension and add Rob to the credits
line of the latter. Add ext/SPL.
2004-03-28 20:27:18 +00:00
Marcus Boerger dce131ebcd Add agrument type info 2004-03-28 17:04:11 +00:00
Stanislav Malyshev 1293330175 check writability on =& too 2004-03-28 16:37:57 +00:00
Marcus Boerger d7cea0945c Fix XSL (Rob/Marcus) 2004-03-28 15:35:01 +00:00
Rasmus Lerdorf 1ece5eb5ad MFB test case for bug #27719 and improve comments in this tricky DST code 2004-03-28 15:03:56 +00:00
Stanislav Malyshev 9be3c9388b - call set handler if assigning to object having this handler
- cleanup: use macros to access object internal vars
2004-03-28 14:57:29 +00:00
Stanislav Malyshev 1cc4a69bbe preserve ZEND_API in definition 2004-03-28 14:32:32 +00:00
Stanislav Malyshev d61d11381b declare as extern 2004-03-28 14:30:49 +00:00
Marcus Boerger 0019c60902 Show progress 2004-03-28 14:12:14 +00:00
Marcus Boerger a7b9cb454e Adapt ecpectations to 5.0 reality 2004-03-28 14:09:47 +00:00
Marcus Boerger 83675b6622 Fix memleak found by Timm 2004-03-28 13:55:06 +00:00
Stanislav Malyshev 9091bf8e5f centralize object-to-scalar conversion, make it work with get handler 2004-03-28 12:08:26 +00:00
Stanislav Malyshev 3b8b43a947 try get handler on printable conversion 2004-03-28 12:06:10 +00:00
Stanislav Malyshev bcf30a04f5 some more clear comments 2004-03-28 12:05:36 +00:00
Stanislav Malyshev c331afa267 Use macros for object parts access 2004-03-28 10:44:48 +00:00
Dmitry Stogov 09d1d232fc fix of fix related to __autoload. (ext/standard/tests/network/bug20134.phpt passes again) 2004-03-28 09:37:30 +00:00
Andrey Hristov 58a52b1641 - Fixed the explanation and example about "classes must be declared before used".
- Added new entry about get_class() (Thanks Lukas for reminding (toStudlyCapOrNotToStudlyCap.txt).
2004-03-28 09:30:21 +00:00
3a836aafd9 ChangeLog update 2004-03-28 01:33:56 +00:00
Marcus Boerger c9c13a7336 Add new test 2004-03-27 15:49:23 +00:00
Marcus Boerger 63338975d4 Even though it is uncommented it should be right 2004-03-27 14:06:28 +00:00
Rui Hirokawa 9018537919 added missing files of oniguruma to mbstring.dsp. 2004-03-27 10:51:34 +00:00
Ard Biesheuvel 437840e85d Put AC_DEFINE in correct place so caching will work properly 2004-03-27 02:03:44 +00:00
Marcus Boerger 4b82cb500f BFN: MFHed #27687 2004-03-27 01:48:39 +00:00
Marcus Boerger e4a6365181 Move defines to proper location 2004-03-27 01:41:32 +00:00
78900ab0f9 ChangeLog update 2004-03-27 01:32:30 +00:00
Marcus Boerger 141049a2e2 Touch after .c 2004-03-27 01:27:53 +00:00
Marcus Boerger 6424efa54a BFN: MFHed 2004-03-27 01:19:02 +00:00
Marcus Boerger 861790dede atof("NAN")/atof("INF") do not work there 2004-03-27 01:00:52 +00:00
Marcus Boerger bc0373b880 Portable solution for bug #27646 that works correct on Windows, too 2004-03-27 00:50:41 +00:00
Marcus Boerger 90c80958b8 Commit the header, too. 2004-03-27 00:39:07 +00:00
Marcus Boerger d508cecfe3 Follow ming_xy naming convention 2004-03-27 00:38:35 +00:00
Frank M. Kromann 3d6ca9f2cc Fix complation errors after convertion to new macro's 2004-03-26 21:56:31 +00:00
Marcus Boerger f956b50f65 Change to studlyCaps convention
# Hopefully discussed enough this time
2004-03-26 21:16:50 +00:00
Marcus Boerger 26b75f56c6 Use studlyCaps and new macros (that should be it) 2004-03-26 21:10:17 +00:00
Marcus Boerger aea24b2a79 Force destructors to have empty signatures 2004-03-26 20:05:35 +00:00
Marcus Boerger 92d8c3d06e Correct that name 2004-03-26 19:53:07 +00:00
Ilia Alshanetsky 9a04c0f956 Fixed bug #27664 (--disable-cli doesn't force --without-pear). 2004-03-26 19:47:19 +00:00
Marcus Boerger 86d3e496f0 let inf be generated by INF constant (thanks to Wez) 2004-03-26 19:45:09 +00:00
Rasmus Lerdorf a40518164b MFB: The 2am offset was a bad choice as this hour doesn't necessarily exist
on a DST switch.  So use 4am instead.  Fixes bug #27719
2004-03-26 19:32:49 +00:00
Sara Golemon c52cc1c333 BugFix 27675 and add regression test. 2004-03-26 19:23:42 +00:00
33b6d03bfe ChangeLog update 2004-03-26 01:34:48 +00:00
Andi Gutmans 43d04ee291 - Fix build (thanks to Timm) 2004-03-26 00:26:19 +00:00
Marcus Boerger a4fba990a4 Pending touch 2004-03-25 22:40:25 +00:00
Marcus Boerger 3450ed948f -Make NAN and INF more portable (atof() doesn't work on MSVC.6 for example)
-Change test to use constants without prior conversion
2004-03-25 22:36:36 +00:00
Marcus Boerger 37a44999d3 Really use studlyCaps here 2004-03-25 22:06:36 +00:00
Derick Rethans fe576c7acb - Stopped file uploads from throwing E_WARNINGs and E_NOTICEs which can not be
hidden from within scripts (and a result value in the $_FILES global can be
  used to see the real failure anyway).
2004-03-25 21:27:23 +00:00
Derick Rethans b2ac395957 - Remove old and deprecated <?php_track_vars?> scanner token. 2004-03-25 21:11:57 +00:00
Ilia Alshanetsky 94d68252d3 Corrected package file. 2004-03-25 20:01:18 +00:00
Hartmut Holzgraefe 33490fdbaa another package description 2004-03-25 19:51:54 +00:00
Andi Gutmans 7313bcd1f4 - Update NEWS 2004-03-25 18:04:08 +00:00
Andi Gutmans e3eb8bdd78 - If __construct() is defined then it will always take precedence over
- old style constructors.
2004-03-25 18:00:50 +00:00
Stanislav Malyshev 7a98f60e1b no need to use result for RECV's - as in PHP4 2004-03-25 14:03:34 +00:00
Stanislav Malyshev 3c3dbc8873 Use get/set handlers for increment.decrement ops on objects 2004-03-25 13:03:04 +00:00
Andi Gutmans d6d52f6f2e /* The compiler is not-reentrant. Make sure we __autoload() only during run-time
* (doesn't impact fuctionality of __autoload()
     */
2004-03-25 11:30:02 +00:00
Marcus Boerger bca4347064 Fixed bug #27687 (Bug Adding Default Charset to 'text/*' Content-Type Header 2004-03-25 08:42:00 +00:00
Dmitry Stogov 2bbba73606 Using ALLOC_HASHTABLE/FREE_HASHTABLE instead of emalloc/free. 2004-03-25 08:14:33 +00:00
e973875d98 ChangeLog update 2004-03-25 01:35:42 +00:00
Hartmut Holzgraefe cc0894b788 more visa to sibira ;) 2004-03-24 18:43:23 +00:00
George Schlossnagle 8b2a760004 added test for property_exists checks. 2004-03-24 15:20:32 +00:00
Dmitry Stogov 55cf45abf5 New autoload protection schema was implemented (Using HashTable instead of boolean flag) 2004-03-24 14:30:59 +00:00
Derick Rethans 9ff10d086a - Revert bogus commit 2004-03-24 14:28:41 +00:00
Dmitry Stogov 6d9d08bf55 Fixed (strict warning was added to expected output) 2004-03-24 14:14:16 +00:00
Stanislav Malyshev 550da4ae7c and set module startup flag on startup 2004-03-24 13:33:26 +00:00
Stanislav Malyshev b514ab2ee9 reset module shutdown flag on startup 2004-03-24 13:31:34 +00:00
Derick Rethans 2face60bef - Fixed NEWS
#- Can we *please* keep this in order?
2004-03-24 13:31:20 +00:00
Dmitry Stogov 7baa132194 Fixed bug #27641 (Object cloning in ze1_compatibility_mode was reimplemented) 2004-03-24 13:16:07 +00:00
Dmitry Stogov ec53815b0f Object cloning in ze1 compatibility mode (zend.ze1_compatibility_mode) was reimplemented (Dmitry, Andi) 2004-03-24 10:55:04 +00:00
Antony Dovgal e001a041f3 add account names & emails 2004-03-24 07:46:18 +00:00
George Schlossnagle b9c04fe19a fixed non-existent elements check
ref: http://news.php.net/article.php?group=php.internals&article=8660
2004-03-24 05:04:26 +00:00
b12f5f7e45 ChangeLog update 2004-03-24 01:33:50 +00:00
Marcus Boerger 962b8d480c Revert studlyCaps change for now
# until we reach a point where the majority knows what they want
2004-03-23 23:30:56 +00:00
Ilia Alshanetsky 0bdfab022a Fixed bug #27661 (snmpget() does not close the socket in some cases). 2004-03-23 23:12:50 +00:00
Marcus Boerger 3f8a43989d Update .c output after .re 2004-03-23 22:33:29 +00:00
Marcus Boerger fdcff80c16 - Allow negative infinity
- Register missing constants, they work anyway but cause an E_NOTICE
# generation by atof() should be portable enough (afaik)
2004-03-23 22:30:25 +00:00
Marcus Boerger b6e3da9b65 BFN 2004-03-23 21:19:53 +00:00
Marcus Boerger c64376bda5 Bugfix #27646: Cannot serialize/unserialize non-finite numeric values 2004-03-23 20:54:00 +00:00
Hartmut Holzgraefe 04c36565eb make sure that all extensions ignore build system helper files
(both autotools and VisualStudio) and common editor backup files
(especially usefull in combination with 'cvsclean')
2004-03-23 19:53:16 +00:00
Hartmut Holzgraefe eeb172b29f "The Visa to Sibiria" (work in progress)
Adding a package.xml to a bundled extension does not only
ease the transition to PECL whereever suitable but also
allows to build and install an extension as "shared" using
the PEAR installer without having to deal with phpize and
friends by hand
2004-03-23 19:46:10 +00:00
Marcus Boerger 82e2b354ac Consitency rules 2004-03-23 08:48:36 +00:00
Marcus Boerger e6a1f04677 Changed sqlite's OO API to studlyCaps. 2004-03-23 08:03:11 +00:00
4507e314af ChangeLog update 2004-03-23 01:32:21 +00:00
Wez Furlong 719d336b4f export libtidy symbols 2004-03-22 23:07:55 +00:00
Wez Furlong 27d7cd8594 update for read handler api change 2004-03-22 22:47:05 +00:00
Ilia Alshanetsky 83e9b7eeee Fixes to allow curl extension to compile against libcurl 7.11.1 2004-03-22 18:42:03 +00:00
Ilia Alshanetsky fc419f10ef Revert patch to imagefillborder. 2004-03-22 17:26:03 +00:00
Andi Gutmans 34667c4b58 - Fix bug 2004-03-22 15:51:07 +00:00
Andi Gutmans 94dc9af5a0 - Remove whitespace 2004-03-22 11:16:24 +00:00
f34db1b437 ChangeLog update 2004-03-22 01:33:55 +00:00
Greg Beaver 578c28fb0c update naming of tests - forgot to rename files before committing,
but this is not a big deal, as the name 'Error_Stack' still makes sense
2004-03-21 23:06:20 +00:00
Greg Beaver 9b530c04f1 added in wrong directory, move to tests/ 2004-03-21 23:02:29 +00:00
Greg Beaver 57b32bdf57 small changes
Use '' instead of ""
allow subclasses to easily change the exception class used just by
overriding the _exceptionClass property
2004-03-21 23:00:54 +00:00
Greg Beaver 4039adabf4 new package.xml to be used for installing tests, to make it easy to collect all tests in the same location for all PEAR packages 2004-03-21 22:57:33 +00:00
Stig Bakken c9a5a75fef * fit copyright header on 80 columns 2004-03-21 22:11:18 +00:00
Andi Gutmans 4ccca568bb - Improve consistency 2004-03-21 21:29:17 +00:00
Georg Richter 460ec22808 ups - changed alias instead of method before 2004-03-21 20:45:57 +00:00
Georg Richter 535b190ac1 renamed get_metadata method to get_result_metadata.
(We have to differentiate between result_metadata and param_metdata.
 mysql_stmt_param_metadata will be added in libmysql 4.1.3)
2004-03-21 20:43:44 +00:00
Stanislav Malyshev 5b0f6b1f34 Update for new read_property API 2004-03-21 18:28:38 +00:00
Stanislav Malyshev 7cf92e79ed return zval *, to make it useful for read_property 2004-03-21 18:27:58 +00:00
Stanislav Malyshev b372b86b89 update to new API 2004-03-21 18:21:46 +00:00
Stanislav Malyshev bd9b600c3c API change for read_property:
instead of bool silent it now gets fetch type
This can be used for creating proxy objects for write contexts
2004-03-21 18:07:27 +00:00
Ilia Alshanetsky ac7283a602 Fixed a possible crash inside libgd's gdImageFillToBorder() due to a stack
overflow.
2004-03-21 18:02:19 +00:00
Andi Gutmans f0b5eeb17b - Nuke unused code 2004-03-21 17:48:51 +00:00
91e3e2ed5c ChangeLog update 2004-03-21 01:33:32 +00:00
Marcus Boerger 9f4be8d2cd Fix test 2004-03-20 16:13:37 +00:00
Marcus Boerger af9788eb32 Fix return value to match std array func behavior 2004-03-20 16:09:42 +00:00
Marcus Boerger bad2a4bca9 Fix test 2004-03-20 12:30:57 +00:00
258f2e3f48 ChangeLog update 2004-03-20 01:32:55 +00:00
Sara Golemon dd28c137f6 Cleanup, minor refactor, and CS 2004-03-19 22:21:53 +00:00
Sara Golemon 75268270d6 Bug Fix #27657: TXT records longer than MAXHOSTNAMELEN cause segfaults. 2004-03-19 21:42:29 +00:00
Marcus Boerger dd5d497541 Fix test
# removing string conversion was a stupid idea
2004-03-19 20:05:39 +00:00
Marcus Boerger edde872904 Fix test 2004-03-19 20:00:18 +00:00
Marcus Boerger 0c8d7457c5 Make test work when user has memory limit setting 2004-03-19 19:56:31 +00:00
Frank M. Kromann 3e7a8e08eb Fix for #26589. Crash when selecting many columns of type Money 2004-03-19 18:45:07 +00:00
Ilia Alshanetsky d45b2c6bc3 MFH: Fixed bug #27628 (Simplify the process of making a POST request via
stream context).
2004-03-19 15:41:26 +00:00
Greg Beaver a145c1b4ce update to 1.3.1dev 2004-03-19 03:16:12 +00:00
85009fd76f ChangeLog update 2004-03-19 01:32:25 +00:00
Greg Beaver 4180b972ae phpunit tests for PEAR_ErrorStack 2004-03-19 00:48:39 +00:00
Greg Beaver 0ba63371ed new Error Stack for PEAR, EXPERIMENTAL until proven solid and stable 2004-03-19 00:48:18 +00:00
Pierre Joye 9bd83f2d81 - Fix the test description and $Id$ 2004-03-18 18:41:32 +00:00
Derick Rethans 9ebaa24aac - Fixed layout 2004-03-18 18:25:22 +00:00
Dmitry Stogov c17d6970b6 *** empty log message *** 2004-03-18 17:34:57 +00:00
Ilia Alshanetsky b176ee99d3 Fixed bug #27633 (Incorrect EOL translation by ftp_get() in ASCII mode). 2004-03-18 17:12:07 +00:00
Dmitry Stogov 7767bacaf8 *** empty log message *** 2004-03-18 17:01:46 +00:00
Dmitry Stogov deb84befae BUG #27469 was fixed (serialize() objects of incomplete class) 2004-03-18 16:54:36 +00:00
Andi Gutmans 814000305a - Back to RC2-dev 2004-03-18 15:27:28 +00:00
Pierre Joye 3d331bc64c - Test for possible data corruption with __set 2004-03-18 15:14:02 +00:00
Zeev Suraski 4f313c79c2 Add missing bug updates 2004-03-18 14:14:26 +00:00
Zeev Suraski aac5c1f6c5 Prepare to roll RC1 2004-03-18 14:12:27 +00:00
Zeev Suraski b8275175ff Fix possible data corruption with __set() 2004-03-18 14:03:58 +00:00
Uwe Schindler fcfe11e9e4 hint to raise stacksize (bug #27231) 2004-03-18 13:37:16 +00:00
Stanislav Malyshev f52edc19a7 Improve error message - on E_STRICT, method is actually called,
so the error shouldn't say it cannot be called.
2004-03-18 13:28:05 +00:00
Georg Richter e6ac744282 fixed problems in mysql_stmt_init (missing alloc from stmt) 2004-03-18 13:04:55 +00:00
Georg Richter 848f123645 removed if type=string: val is allocated for any type of data 2004-03-18 13:03:17 +00:00
Martin Jansen ba7d6efe7b * Converting tabs to spaces 2004-03-18 12:23:57 +00:00
Martin Jansen 254456a4a6 * Typo fixes 2004-03-18 12:21:28 +00:00
Derick Rethans 6a4099ccdd - Reorganize 2004-03-18 10:39:39 +00:00
Dmitry Stogov 787f0bbbb2 *** empty log message *** 2004-03-18 10:21:28 +00:00
Dmitry Stogov 6e63ea45c7 BUG #27457 was fixed (using temporary hash table with string keys only) 2004-03-18 09:48:37 +00:00
Andi Gutmans ed6cbcb480 - Change redefinition of constructor from E_COMPILE_ERROR to E_STRICT. 2004-03-18 08:52:51 +00:00
Andi Gutmans 2004c25041 - Update Changes 2004-03-18 08:12:19 +00:00
Ilia Alshanetsky d0a4801579 s/emalloc/safe_emalloc/ where appropriate. 2004-03-18 02:16:35 +00:00
Ilia Alshanetsky 5442d722c3 Fixed bug #27300 (Improved regex for pg_convert()).
# Patch by benjcarson at digitaljunkies dot ca
2004-03-18 01:34:58 +00:00
9b614ccb5a ChangeLog update 2004-03-18 01:32:14 +00:00
Sascha Schumann 7aa832aba2 Readd x86 implementation 2004-03-17 22:23:15 +00:00
Sara Golemon 4341ee6061 Userspace Directory Stream Test 2004-03-17 20:48:12 +00:00
Marcus Boerger 851c254ef8 Fix CachingIterator's ability to cache string conversion results.
Add a test for that.
2004-03-17 19:58:32 +00:00
Marcus Boerger b967853eb3 Go with implicit call 2004-03-17 19:14:15 +00:00
Marcus Boerger 8cdd2ed319 Explicit cast needed for now 2004-03-17 19:00:44 +00:00
Pierre Joye f223262bcd - Fix crash when an invalid color index is used with imagecolortransparent 2004-03-17 17:07:31 +00:00
Andi Gutmans cedd0296e0 - Improved patch for support multiplication on 64bit machines 2004-03-17 16:40:56 +00:00
Andi Gutmans 5569ad0626 - Fix tiny bug (one of the reasons we can't support __toString() for
- regular objects).
2004-03-17 16:18:24 +00:00
Dmitry Stogov 67a0ff81ae Test was fixed 2004-03-17 16:06:18 +00:00
Andi Gutmans 09341786dc - Stop make_printable_zval() from calling __toString() 2004-03-17 15:49:34 +00:00
Andi Gutmans ccb515afc7 - Fixed problem with __toString(). Due to the engine's architecture it is
- currently not possible to call __toString() anywhere besides print & eval.
- Follow up will be on internals@
2004-03-17 15:48:49 +00:00
Stanislav Malyshev c18c5be1e0 fix typo 2004-03-17 11:10:37 +00:00
Andi Gutmans 29ee03aa55 - Apply Ard's patch to support multiplication & overflow on both 32bit
and 64bit machines
2004-03-17 09:25:52 +00:00
8aea19c345 ChangeLog update 2004-03-17 01:34:14 +00:00
Sara Golemon 581948ab00 Provide a meaningful error message when registration fails 2004-03-17 00:08:22 +00:00
Ilia Alshanetsky 88058e5715 Fixed bug #27498 (bogus safe_mode error on nonexistent directories for
chdir() and opendir() functions).
2004-03-16 23:23:17 +00:00
Ilia Alshanetsky 39baa271b6 Fixed bug #27580 (pre-initialization errors in ap2 handler are not being
written to vhost error log).
Stop using depreciated and ignored APLOG_NOERRNO directive.
Make file not found & directory as script invocation error messages more
descriptive.
2004-03-16 22:38:07 +00:00
Derick Rethans 1ef3c8c74a - Replaced the exec_finished hook by the zend_post_deactive hook for
extensions. The new hook will be run after the symbol table and destructors
  are run. (PHP part)
2004-03-16 22:27:57 +00:00
Derick Rethans 6535933f7c - Replaced the exec_finished hook by the zend_post_deactive hook for
extensions. The new hook will be run after the symbol table and destructors
  are run. (Derick)
2004-03-16 22:27:26 +00:00
Derick Rethans 6b7224cc74 - Update news with fugbix 2004-03-16 21:47:27 +00:00
Georg Richter e3077eadef fixed stmt->stmt->query which was removed in libmysql 4.1.2
added query buffer in internal stmt structure to copy string
after prepare
2004-03-16 21:43:25 +00:00
Derick Rethans f66c62cef8 - Fixed compilation on the 'broken' IRIX native compiler. 2004-03-16 21:39:43 +00:00
Derick Rethans f59ac64430 - Bump API number so that it actually differs from PHP 4. This is needed
because we don't want PHP 4 and PHP 5 extensions to be in the same directory
  when doing "make install" for shared, or phpize'd extensions.
2004-03-16 21:32:40 +00:00
Marcus Boerger cbaa43ff12 Fix SEGV in certain conditions while calling static methods 2004-03-16 21:29:22 +00:00
Derick Rethans 1e8e284c6b - Fixed typo 2004-03-16 20:58:01 +00:00
Zeev Suraski 02344b1dae Improve the way auto-globals JIT works, and add the ability to turn it off 2004-03-16 19:49:19 +00:00
Zeev Suraski e2a5ebf597 Add ability to disable JIT for a particular auto global 2004-03-16 19:46:04 +00:00
Marcus Boerger 6d7f04307d Update message 2004-03-16 18:09:52 +00:00
Marcus Boerger 6e8c176a9d TSRM fix 2004-03-16 18:04:25 +00:00
Sascha Schumann b74128db59 Enable ptr format check for GCC 3.1 and higher 2004-03-16 17:35:57 +00:00
Pierre Joye fd8cea693a - initial commit
test case for #27504 (http://bugs.php.net/bug.php?id=27504)
2004-03-16 16:45:44 +00:00
foobar 1eba738ee8 fix typos 2004-03-16 16:44:51 +00:00
Ilia Alshanetsky 365f0120fe Do not allow 3.0.4 for __attribute__. 2004-03-16 16:42:12 +00:00
Ilia Alshanetsky fa5f52718a Fixed bug #27600 (GCC 3.0.4 does not like __attribute__ directive) 2004-03-16 16:36:54 +00:00
Andi Gutmans 6a31fb9bb0 - Fix problem when using old-style constructors it wasn't being inherited
correctly.
2004-03-16 15:22:44 +00:00
Derick Rethans b0dbd2abcc - Spaces to tabs 2004-03-16 14:59:06 +00:00
Andi Gutmans e551584c57 - NEWS 2004-03-16 14:52:22 +00:00
Andi Gutmans 833b97d4c2 - If the called method is static then don't define $this 2004-03-16 14:49:52 +00:00
Andi Gutmans 0041aff953 - Error out if get_method() isn't defined.
- Use calling scope of internal function callee when calling a method
  using static syntax (array("A", "func"));
2004-03-16 14:39:07 +00:00
Marcus Boerger 426649067c Make use of zend_make_printable_zval() instead of 'manually' calling
__toString().
2004-03-16 10:17:59 +00:00
Marcus Boerger cde333aca6 This workaround is no longer needed 2004-03-16 10:16:52 +00:00
Marcus Boerger 09e76476ef Improve error message 2004-03-16 10:14:57 +00:00
3b2f56275a ChangeLog update 2004-03-16 01:32:56 +00:00
Ilia Alshanetsky 542b034efa Fixed bug #27559 (Corrected open_basedir resolving logic). 2004-03-16 00:31:22 +00:00
Jay Smith 83b2d923f8 Fixed bug #27291 (get_browser matches browscap.ini patterns incorrectly). 2004-03-15 21:26:39 +00:00
Marcus Boerger b83663e0f2 Keep BC of pg_fetch_object 2004-03-15 20:16:59 +00:00
Marcus Boerger 0ace9f4885 Bugfix #27597 pg_fetch_array not returning false . 2004-03-15 19:47:18 +00:00
Frank M. Kromann 05158095ce Fix for #27594. Comuted columns does not return a column source 2004-03-15 19:41:48 +00:00
Rasmus Lerdorf f3907111c1 Missing NEWS entries 2004-03-15 18:22:01 +00:00
Andi Gutmans dae7093d93 - Restore E_NOTICE for longs and doubles. 2004-03-15 16:55:20 +00:00
foobar 97f81830b8 - Fixed bug #24582 (extensions can not be loaded dynamically in Solaris/iPlanet) 2004-03-15 16:06:29 +00:00
foobar e389c25850 - Fix test (wrong expected result..) 2004-03-15 15:53:28 +00:00
Andi Gutmans 14d711b9bb - Nuke E_NOTICE. This caused a notice when doing if ($obj == NULL) 2004-03-15 14:15:47 +00:00
Adam Dickmeiss 9a04d51b4a Use MAKE_STD_ZVAL instead of ALLOC_ZVAL 2004-03-15 10:01:12 +00:00
Jon Parise 633c95aa40 Fixed crash in php_ini_scanned_files() when no additional INI files were
actually parsed.

I'll merge this into the PHP_4_3 branch as soon as I receive permission
from the release master.
2004-03-15 07:45:25 +00:00
Sebastian Bergmann 111d0466c9 Fugbix typo. 2004-03-15 05:53:51 +00:00
7c0a993cc3 ChangeLog update 2004-03-15 01:33:46 +00:00
Marcus Boerger 97b5bb474e Guard display_startup_errors with checking for default (working) output
functions.
2004-03-14 23:56:07 +00:00
foobar 04a242541b typo 2004-03-14 23:22:51 +00:00
Marcus Boerger 7a67839d33 BFN 2004-03-14 23:01:21 +00:00
Marcus Boerger 15e1d817be Fix strval to use __toString if necessary 2004-03-14 22:59:04 +00:00
Marcus Boerger 4efbb35067 Make object parameter optional 2004-03-14 22:40:25 +00:00
Derick Rethans 56fe1a38bf - That change was unintentional, but it would be the right thing to do ;-) 2004-03-14 22:00:22 +00:00
Derick Rethans 4e7e611ca8 - The extension list is ordered alphabetically, also moved the tidy section
to a more suitable place (new things go at the end, not at the start).
2004-03-14 21:36:17 +00:00
Derick Rethans 1b197a9399 - Reorder 2004-03-14 21:27:21 +00:00
Andi Gutmans cf0ca48779 - Typo 2004-03-14 21:23:48 +00:00
Andi Gutmans 3155073efb - Add all of the fixes from the past week. Almost ready for RC1 now. 2004-03-14 21:21:21 +00:00
Ilia Alshanetsky 4c283fff27 Fixed bug #27590 (crash during shutdown when freeing persistent resources
in ZTS mode).
2004-03-14 20:11:13 +00:00
Andi Gutmans 1aedb9615a - Fix windows build 2004-03-14 18:00:40 +00:00
Jan Lehnardt 4ed1b9a193 - improve error message 2004-03-14 17:53:28 +00:00
Andi Gutmans 37d713ea49 - Fix for bug #27504 2004-03-14 17:52:58 +00:00
Sascha Schumann f04f78b50f Renaming cvsclean target; IRIX make seems to ignore .PHONY 2004-03-14 17:44:36 +00:00
Andi Gutmans 47cb3323a8 - Fixing bug #27123 2004-03-14 17:16:31 +00:00
Andi Gutmans f11c819ddb - Improve compatibility mode and compare objects according to property
- comparison (sucky but this is how PHP 4 behaved).
2004-03-14 15:56:03 +00:00
Andi Gutmans 7901a2218c - Fix flow of logic 2004-03-14 15:50:51 +00:00
Andi Gutmans 515e28ed5b - Support old style of converting objects to long/double/bool.
- This is only enabled in compatibility mode, else it calls cast_object()
- and if that is not available we return 1 (true) so that the following
- code would work:
if ($obj) {
}
2004-03-14 15:45:09 +00:00
Marcus Boerger decc3fc6e6 Add new test 2004-03-14 15:33:15 +00:00
Marcus Boerger 2917102e3f Fix: Add return type void 2004-03-14 15:27:56 +00:00
Andi Gutmans 88de69b97c - Support Cast operator in convert_to_* so that we support internal
- extensions such as SimpleXML. This is for Sterling.
2004-03-14 13:52:36 +00:00
Andi Gutmans 4f897b2f3c - Fix memory leak in the following code (Dmitry):
<?php
$a = array();
$a .= "x";
?>
2004-03-14 13:14:48 +00:00
Andi Gutmans 52cd980702 - Initial commit which allows comparing overloaded objects with native
- types (only for internal classes and not for user-land classes).
2004-03-14 12:44:28 +00:00
Melvyn Sopacua 21ecfd57fd Fix a typo, dating back from 1.145. 2004-03-14 11:42:17 +00:00
Pierre Joye f4f1fe553a - add a 2nd test for #27582 2004-03-14 03:21:26 +00:00
3afb382a5c ChangeLog update 2004-03-14 01:34:44 +00:00
John Coggeshall be3a537411 Adding extension=php_tidy.dll 2004-03-14 01:26:33 +00:00
Pierre Joye 9be8aeb690 - add tests for the bug #27582 (imagefilltoborder crashes) 2004-03-13 23:22:56 +00:00
Pierre Joye 197b48322e - restore too the alphablending if we do not reach the end of the function
Notice: This function still crashes (stack overflow), to reproduce it
  see bug27582_2.phpt
2004-03-13 23:21:25 +00:00
Marcus Boerger 0763dfa16f Update test with check for [] assignment 2004-03-13 20:07:22 +00:00
Marcus Boerger 96cb40a072 Check for ext/spl being available 2004-03-13 20:03:02 +00:00
Marcus Boerger 462bb8b83a Add new test 2004-03-13 20:01:23 +00:00
Marcus Boerger b95d8d14d5 Bugfix #27586 ArrayObject::getIterator crashes with [] assignment 2004-03-13 20:01:00 +00:00
Pierre Joye 9fc9639c83 - fix #27582 (http://bugs.php.net/bug.php?id=27582)
The problem was that the colors were changed endlessly, blending over
  and over. An endless loop and recursive calls filled the stack=>segfault
2004-03-13 18:28:19 +00:00
Greg Beaver e3c0e33f11 fix #1008: safe mode raises warning
fix register_argc_argv in pear.bat
2004-03-13 17:37:23 +00:00
4685a6687f ChangeLog update 2004-03-13 01:33:18 +00:00
Sara Golemon 1c7d6b229c MFB: Test getaddrinfo() for brokenness. Pretend it doesn't exist if it misbehaves. 2004-03-12 21:45:55 +00:00
Sterling Hughes e71590ef68 zval **, not a zval * 2004-03-12 20:04:31 +00:00
Sterling Hughes 94a1728de0 avoid a memory leak when a php_curl handle is allocated, but the initialization
of a CURL handle fails.
2004-03-12 18:41:19 +00:00
Sterling Hughes 177db33c63 add the curl_copy_handle() function which will exactly duplicate a cURL handle.
Useful when you have multiple "similair" transforms as with a multi handle with
only small variances (like the URL)
2004-03-12 18:37:55 +00:00
Pierre Joye 4a31a6a88b - revert previous commit:
- Features freeze period
 - No agreement on this change
 - Even if an agreement exists, this change is not enough to allow the
   usage of this new tag
2004-03-12 18:22:48 +00:00
Martin Jansen c653c6d1d9 * Adding new state "emeritus", which can be used for former maintainers of
packages.

Submitted by: Daniel Convissor

# The necessary updates for the website and the manual will follow in a
# few hours or at least tomorrow morning.
2004-03-12 18:05:08 +00:00
Ilia Alshanetsky 4eafea278f Simplify check. 2004-03-12 17:37:04 +00:00
Ilia Alshanetsky 2c9098a78f Additional checks of return values from user callback functions. 2004-03-12 17:31:10 +00:00
Rasmus Lerdorf 8f58b974b2 Fix/workaround for http://bugs.php.net/27533 2004-03-12 17:29:52 +00:00
Sterling Hughes ad84ce6233 leave length as -1, no need to strdup() 2004-03-12 16:36:30 +00:00
John Coggeshall 1c7ea2045b Opps. Shouldn't look at the value, just the type 2004-03-12 16:28:28 +00:00
John Coggeshall 4c76273d88 CURLOPT_INFILE === CURLOPT_READDATA 2004-03-12 16:12:47 +00:00
John Coggeshall 2009e4e83b Fixed a crash which happens if your READFUNCTION callback doesn't actually
return a string as promised.
2004-03-12 16:08:11 +00:00
Ilia Alshanetsky ed2b1770ab Invalid response code when force-cgi-redirect safety mechanism is triggered 2004-03-12 14:05:59 +00:00
Ilia Alshanetsky 3787740cbc Fixed compiler warning. 2004-03-12 01:59:46 +00:00
3b9cbffeec ChangeLog update 2004-03-12 01:34:03 +00:00
Frank M. Kromann 542dc54ce4 Hack to check for ming version 0.2 and 0.3 to inclue the right libs. 2004-03-11 18:48:30 +00:00
foobar 66b03bdf61 update 2004-03-11 15:08:46 +00:00
Andi Gutmans a87cc63aaa - Real fix for bug #27535 (Dmitry) 2004-03-11 13:40:19 +00:00
Andi Gutmans aa472500e1 - Attempt to fix bug #27535 2004-03-11 13:27:18 +00:00
Pierre Joye 68f1108b53 - prepare 0.2.1 2004-03-11 11:37:04 +00:00
ab56341dbe ChangeLog update 2004-03-11 01:32:04 +00:00
Ilia Alshanetsky 6a1a3ecc36 Readability++ 2004-03-11 00:27:16 +00:00
Ilia Alshanetsky 21a7e57ae7 Fixed memory leak in the multi interface.
Fixed proto of curl_multi_exec().
Fixed crash in curl resource attached to curl multi resource is manually
freed via curl_close().
2004-03-11 00:11:18 +00:00
Frank M. Kromann a5fec66463 More ZLIB exports needed by the ming extension 2004-03-10 21:59:29 +00:00
Moriyoshi Koizumi e84334a597 - Revert ini setting patch, as I notified in
http://news.php.net/article.php?group=php.internals&article=8451
2004-03-10 20:55:42 +00:00
Rasmus Lerdorf 05f8b4e6bc getopt() doesn't work if variables_order does not include "S" because it
only looks in $_SERVER for argv.  So, if we don't find argv in $_SERVER
fall back to looking in the global symbol table where register_argc_argv
would have put it.
2004-03-10 19:12:49 +00:00
Frank M. Kromann 579a7dd0c9 Reexport some zlib symbols so we can avoid linking with zlib.lib in shared extensions (on win32) 2004-03-10 18:30:44 +00:00
Ard Biesheuvel cc924cad9d Nuke unused vars 2004-03-10 15:59:50 +00:00
Ard Biesheuvel e6281ab38b Don't use fp arithmetic for int results
# FP arithmetic is not accurate enough on 64-bit archs
# This patch relies on ZEND_SIGNED_MULTIPLY_LONG(),
# so that should be fixed as well.
2004-03-10 15:57:49 +00:00
Martin Kraemer b63def4dfc Typo 2004-03-10 11:24:11 +00:00
Georg Richter a3bd712b78 added new function mysql_stmt_free_result 2004-03-10 09:50:05 +00:00
25adeaf77c ChangeLog update 2004-03-10 01:32:01 +00:00
Marcus Boerger 5f5a8172be Update 2004-03-09 17:47:28 +00:00
Marcus Boerger bf2cf5041c Drop copydoc and add more classes/methods 2004-03-09 17:36:32 +00:00
Marcus Boerger 1b060f3614 Access to inner iterator was missing 2004-03-09 17:35:18 +00:00
Rasmus Lerdorf 3189068f4e Make curl_setopt($ch,CURLOPT_RETURNTRANSFER,0) reset the RETURNTRANSFER to
stdout as is implied in the documentation.  Currently it simply does
absolutely nothing and there is no way to reset it to stdout.
2004-03-09 17:11:22 +00:00
Marcus Boerger 56834c958d Update 2004-03-09 17:01:21 +00:00
Marcus Boerger 6a8a25567f Rename hasMore() to valid() as discussed. (Part VI) 2004-03-09 16:53:12 +00:00
Marcus Boerger 2bdcfe4d0e Update test 2004-03-09 16:51:02 +00:00
Marcus Boerger 50ee116f08 Clearify the different method/class flags (as discussed with Andi). 2004-03-09 16:38:37 +00:00
Marcus Boerger 494d8207fe No longer needed 2004-03-09 15:53:42 +00:00
Andi Gutmans f30b51f5b9 - Fix crash:
<?php
class ResourceFormat
{
     const IMG           = 1;
}

class Image
{
     const RESOURCE_FORMAT   = ResourceFormat::IMG;
}

print_r(constant('Image::RESOURCE_FORMAT'));
?>
2004-03-09 15:37:18 +00:00
Andi Gutmans 0fc9d5861d - Nuke unused code. 2004-03-09 15:27:39 +00:00
Ilia Alshanetsky e33168207e Fixed memory leak with curl_multi_init() de-initialization. 2004-03-09 15:04:17 +00:00
Ilia Alshanetsky f677b6032a Fixed define. 2004-03-09 14:56:34 +00:00
Ilia Alshanetsky d196309341 Fixed bug #27338 (memory leak inside tsrm_virtual_cwd.c on win32). 2004-03-09 14:50:11 +00:00
Marcus Boerger e1127cb514 Make run-tests.php work with xdebug being loaded.
# Lots of ppl use that as a built-in extension already.
2004-03-09 14:39:35 +00:00
Marcus Boerger 1651be020a Show the connect result 2004-03-09 14:37:49 +00:00
Marcus Boerger 59804de32e Missing buffer->val change 2004-03-09 14:29:20 +00:00
foobar 3bd12064ef test for bug #27457 2004-03-09 14:19:50 +00:00
Georg Richter 612ab199ad fixed memleaks in bind functions
added 4.1.2 support (renamed functions)
2004-03-09 12:01:23 +00:00
Derick Rethans 360b98566c - Added test for bug #27535 (Objects pointing to each other cause Apache to
crash).
2004-03-09 08:19:19 +00:00
Ilia Alshanetsky 35f695954a Cleaned up phpinfo() output. 2004-03-09 02:36:23 +00:00
Ilia Alshanetsky 09517318b1 Fixed bug #27530 (broken http auth when safe_mode is on and PCRE is
disabled).
2004-03-09 02:24:02 +00:00
Pierre Joye 451e295d09 - Fix sugg only if it exists... 2004-03-09 01:57:53 +00:00
Pierre Joye 3093399928 - free sugg 2004-03-09 01:57:01 +00:00
7f74901434 ChangeLog update 2004-03-09 01:34:32 +00:00
Ilia Alshanetsky a073ba979f Fix function declaration. 2004-03-09 01:28:29 +00:00
Ilia Alshanetsky 7bc8bdec79 Change float operations to safe_emalloc().
Original idea by Sascha (see sess_sqlite.c)
2004-03-09 01:09:35 +00:00
Ilia Alshanetsky e375ffddb4 Added enchant_dict_quick_check() function.
Made enchant_dict_check() return a boolean.
2004-03-09 00:31:17 +00:00
Ard Biesheuvel b303ba089c More wordsize fixes 2004-03-08 23:11:45 +00:00
Pierre Joye f1ff65c155 - Fixes protos 2004-03-08 23:08:17 +00:00
Ard Biesheuvel b703fe79f6 Fix warning 2004-03-08 23:04:33 +00:00
Ilia Alshanetsky d2d091b2af Cleanup 2004-03-08 22:21:36 +00:00
Derick Rethans b3b2192a1e - Added mb_list_encoding() to return an array with all mbstring supported
encodings.
2004-03-08 22:18:05 +00:00
Pierre Joye 14bdcf810a - sources cleanup:
- merge the tests of broker/dict pointers, I can always set them back if
   we like to raise warnings here
 - proto fixes
 - remove printf() debug
2004-03-08 21:34:12 +00:00
Marcus Boerger 7dd5b1f126 Rename hasMore() to valid() as discussed. (Part V) 2004-03-08 21:17:39 +00:00
Marcus Boerger 979ef59b7c Rename hasMore() to valid() as discussed. (Part IV) 2004-03-08 21:15:39 +00:00
Pierre Joye c2689fe35b - Initial commit 2004-03-08 20:12:13 +00:00
Ard Biesheuvel 1950bdd42c MFB fix #27408 2004-03-08 19:08:25 +00:00
Marcus Boerger 8685972af2 Rename hasMore() to valid() as discussed. (Part III) 2004-03-08 19:00:21 +00:00
Marcus Boerger 6b0f57ee50 Rename hasMore() to valid() as discussed. (Part II) 2004-03-08 18:05:41 +00:00
Marcus Boerger b6b7c9eb65 Rename hasMore() to valid() as discussed. (Part I) 2004-03-08 17:33:31 +00:00
Marcus Boerger c3b06ea21e Check count. 2004-03-08 16:52:59 +00:00
Ard Biesheuvel 6bfc0d06cf Merged some more odd fixes from my own branch 2004-03-08 10:49:17 +00:00
Ard Biesheuvel 48d16437d6 Cleaned up array handling and optimize for the case where no array fields are used
Fix timestamp binding for Win32 (which doesn't have gmtime_r())
CS
2004-03-08 10:32:26 +00:00
Derick Rethans 0d4352ced8 - Fixed bug #24550 (tokenizing with __METHOD__ crash) (Patch by Greg Beaver) 2004-03-08 08:02:02 +00:00
Ilia Alshanetsky c828007fdf Fixed bug #27424 (headers missing on flush() in apache 2 SAPIs). 2004-03-08 03:15:45 +00:00
Ilia Alshanetsky 6112260738 Fixed compiler warnings. 2004-03-08 03:06:56 +00:00
07b90fa1ba ChangeLog update 2004-03-08 01:32:05 +00:00
Marcus Boerger 5208baee49 Add another missing conversion 2004-03-08 00:19:43 +00:00
Marcus Boerger 4ee3282ec6 Search for db-4.2.x 2004-03-07 23:45:31 +00:00
Sascha Schumann 048e66b2a9 Avoid using floating point arithmetic and rely on safe_emalloc
for the multiplication.

The actual size requirement is spelled out as:

** The result is written into a preallocated output buffer "out".
** "out" must be able to hold at least 2 +(257*n)/254 bytes.
** In other words, the output will be expanded by as much as 3
** bytes for every 254 bytes of input plus 2 bytes of fixed overhead.
** (This is approximately 2 + 1.0118*n or about a 1.2% size increase.)
2004-03-07 22:35:26 +00:00
Wez Furlong 70757063a7 add cast for qsort compare function.
Kinda ugly, but helps assert that we are doing the right thing as well as
kill the warning there.
2004-03-07 22:06:36 +00:00
Wez Furlong 1e35cf4f32 Connect feof() call to user-space stream feof() method.
Fixes Bug #27417 and #27508
2004-03-07 22:05:21 +00:00
Ilia Alshanetsky 0eb7000b0a Corrected string escape calculation. 2004-03-07 21:57:50 +00:00
Wez Furlong 0dd2280102 Less magic please 2004-03-07 21:36:55 +00:00
Ard Biesheuvel 4fffb84005 Simplify / fix 2004-03-07 18:01:12 +00:00
Ard Biesheuvel 67cdc2c12f Added missing support for binding timestamps
# Returning timestamps was already supported
2004-03-07 14:25:08 +00:00
5d93908766 ChangeLog update 2004-03-07 01:32:00 +00:00
Moriyoshi Koizumi 9a0e4fae4c - Forgot to commit this one. 2004-03-07 00:03:50 +00:00
Moriyoshi Koizumi 91b39a6538 - Fix test, take 2 2004-03-06 23:11:25 +00:00
Ilia Alshanetsky 02cdf5a87a Fixed bug #27421 (mbstring.func_overload should be system ini setting). 2004-03-06 19:29:52 +00:00
Ilia Alshanetsky 72a3bb18d1 Fixed bug #27460 (base64_decode() does not handle extra padding). 2004-03-06 19:06:04 +00:00
Ilia Alshanetsky bf6b0dc5e6 Fixed bug #27505 (htmlentities() does not handle BIG5 correctly). 2004-03-06 18:35:41 +00:00
Ilia Alshanetsky e57c749ecc Use correct variable name. 2004-03-06 18:29:54 +00:00
Ilia Alshanetsky 53e56151fe Fixed bug #27437 (wrong freetype include inside GD library). 2004-03-06 18:24:41 +00:00
Ilia Alshanetsky 215f0763d0 Fixed a possible memory leaks inside sqlite_popen() &
sqlite_fetch_column_types().
Resolve the file path inside sqlite_factory().
2004-03-06 18:14:54 +00:00
Ilia Alshanetsky 2d630bb6ae Fixed possible crash due to an integer overflow. 2004-03-06 18:11:59 +00:00
Ilia Alshanetsky f60d104c09 Better extension availability check. 2004-03-06 18:10:32 +00:00
Pierre Joye a8b6b2102b - fix #27238 2004-03-06 17:31:51 +00:00
e37f4db03d ChangeLog update 2004-03-06 01:32:09 +00:00
Andi Gutmans 2af86692ea - Fix some small problems I introduce in last patch. 2004-03-05 17:18:34 +00:00
Andi Gutmans 74775aa41a - Finally fix the following:
$xml_mem = simplexml_load_string('<bookbody><part><chapter><page>1</page></chapter></part></bookbody>');
/* The following works fine */
foreach ($xml_mem->part as $part) {
  foreach($part->chapter->page as $page) {
 print $page;
  }
}
/* The following segfaults */
foreach ($xml_mem->part as $part) {
  foreach($part->chapter as $chapter) { // Difference here from previous example
 print $chapter;
  }
}
2004-03-05 13:04:21 +00:00
Dmitry Stogov 09a7d5bb2f Test files were fixed acording to new constructor redeclaration semantic 2004-03-05 12:18:16 +00:00
Dmitry Stogov 215c71ee7c Test file was fixed (stack trace is removed) 2004-03-05 12:16:28 +00:00
c851067bf9 ChangeLog update 2004-03-05 01:31:59 +00:00
Moriyoshi Koizumi 26799b851f - typo (must have sleep.) 2004-03-04 22:53:09 +00:00
Moriyoshi Koizumi c0aabb79b2 - Fix memleak when scanner is called from within tokenizer extension.
# (only happens with zend multibyte feature enabled)
2004-03-04 22:50:55 +00:00
Moriyoshi Koizumi e5fb0e3fbd - Prevent cli from printing multiple "Interactive mode enabled" if
the command line option is given more than once (like -aaaaaa).
2004-03-04 22:49:54 +00:00
Sara Golemon 85aa47efab Don't rely on ANSI tmpfile(), use the streams layer instead, it'll deal with platform issues. 2004-03-04 22:24:27 +00:00
Moriyoshi Koizumi ab204a36e0 - Fix compiler warnings. (Patch by K.Kosako <kosako@sofnec.co.jp>) 2004-03-04 21:50:21 +00:00
Derick Rethans 88dffe4b6c - No maintainer anymore. 2004-03-04 15:55:44 +00:00
Christian Stocker c18b8dcd2d - fix a linefeed problem, if there are more than one configureoption 2004-03-04 13:37:37 +00:00
Stanislav Malyshev 97e7ce733a fix the fix 2004-03-04 13:11:03 +00:00
Stanislav Malyshev 99edaa3a4f oops, fix cut&paste gone bad 2004-03-04 13:09:03 +00:00
Stanislav Malyshev f9c65203d2 Fix object true value: if we are in compat mode and it's Zend object -
use PHP4 rules. Otherwise, object is always true.
2004-03-04 13:06:02 +00:00
Derick Rethans 39ac9579f7 - Fixed a 64bit issue (for zend_builtin_functions.c, module_number is an int).
- Change the MAX_LENGTH_OF_LONG constant to 20, as LONG_MAX is 20 characters.
  (Patches by Ard Biesheuven)
2004-03-04 11:02:05 +00:00
Derick Rethans f88b286888 - Added instance_of test (patch by Ard Biesheuvel) 2004-03-04 10:58:49 +00:00
Stanislav Malyshev 78a36b50a1 Disallow redefining ctors and cleanup 2004-03-04 10:02:59 +00:00
Stanislav Malyshev 9731d9f303 Handle out of memory/bad size situation gracefully, without getting into loop 2004-03-04 09:18:05 +00:00
62670bd1af ChangeLog update 2004-03-04 01:36:39 +00:00
Rob Richards 4ce377064a Fix bug #27467: domDocument::load() called from class method crashes
the methods can be called statically only from within classes which
  are not extending DomDocument
2004-03-03 20:59:02 +00:00
Edin Kadribasic 865903a2a4 Attempt at fixing win32 link errors 2004-03-03 18:54:20 +00:00
Edin Kadribasic fb861026d8 Add missing source file 2004-03-03 18:36:30 +00:00
Edin Kadribasic 664998fa50 Replace mysql with mysqli in paths to allow building both mysql and mysqli 2004-03-03 18:15:56 +00:00
Moriyoshi Koizumi a91e44c830 - Add missing include path. 2004-03-03 10:27:19 +00:00
Andi Gutmans 1c180ba3e8 - Fix crash:
<?
class foo {
        function __destruct() {
                foreach ($this->x as $x);
        }
}
new foo();
echo 'OK';
?>
2004-03-03 09:58:58 +00:00
ef39d84bbb ChangeLog update 2004-03-03 01:33:18 +00:00
Moriyoshi Koizumi 9e9d7d1743 - proper DLL linkage specifier.
# oniguruma.h:34-
#
# #ifndef ONIG_EXTERN
# #if defined(_WIN32) && !defined(__CYGWIN__)
# #if defined(EXPORT) || defined(RUBY_EXPORT)
# #define ONIG_EXTERN   extern __declspec(dllexport)
# #else
# #define ONIG_EXTERN   extern __declspec(dllimport)
# #endif
# #endif
# #endif
2004-03-02 22:38:21 +00:00
Derick Rethans 596efe5197 - Fixed bug in gdImageFilledRectangle in the bundled GD library, that required
x1 < x2 and y1 < y2 for coordinates.
2004-03-02 21:56:30 +00:00
Derick Rethans 21141e1378 - Fixed timing issues in test 2004-03-02 21:14:10 +00:00
Derick Rethans 5f7553e24c - Added testcase for bug #27468 2004-03-02 21:03:24 +00:00
Moriyoshi Koizumi bc4d64477a - Fix typo. 2004-03-02 20:18:14 +00:00
Derick Rethans d4fc693702 - CLONE, not CLOSE 2004-03-02 17:51:46 +00:00
Derick Rethans 0d6131cf4a - Added "clone" to the list of tokens. (Patch by Greg Beaver) 2004-03-02 17:49:49 +00:00
Marcus Boerger 8d45fece42 Fix zend_parse_method_parameters_ex() and make it consistant with
zend_parse_method_parameters().
# Obviously its only place of use is in pdo just right now.
2004-03-02 16:17:58 +00:00
Derick Rethans 17790a0369 - Consistent naming 2004-03-02 16:12:25 +00:00
Pierre Joye 2fba0d7b7a - initial test for #27439, covers more cases we got during
foreach($this->foo as $bar) bug
2004-03-02 16:00:49 +00:00
Moriyoshi Koizumi 1dfd0bd901 - Really fix the build.
# Should be fixed now :|
2004-03-02 15:59:30 +00:00
Moriyoshi Koizumi e3b4faf793 - Revisit config.h for win32 build.
# apologies for messing.
2004-03-02 15:58:39 +00:00
Pierre Joye 0132cc897b - include exception.inc not .php 2004-03-02 15:57:41 +00:00
Derick Rethans 6644d38e35 - Fixed yacc file 2004-03-02 13:12:44 +00:00
Edin Kadribasic f067c0479f Temporary fix for win32 build 2004-03-02 11:50:10 +00:00
Andi Gutmans 41b7211539 - Fix leaks (although there might be still a problem here). 2004-03-02 11:03:48 +00:00
Andi Gutmans 7c9694d26e - Fix leak (Dmitry) 2004-03-02 10:13:43 +00:00
Derick Rethans 026b92df42 - Added .cvsignore file 2004-03-02 08:55:36 +00:00
Andi Gutmans 576e16b03f - Fix crash in:
<?php
  class Foo {
    public $attributes=  array();

    function export() {
      foreach ($this->attributes as $name => $attr) {
      }
    }
  }

  $f= new Foo();
  $f->export();
?>
2004-03-02 08:28:12 +00:00
Andi Gutmans 3333380bf0 - Improve fix for protecting destructor's from exceptions.
- I was killing the current exception completely which was wrong.
2004-03-02 08:13:15 +00:00
ee768a2fe6 ChangeLog update 2004-03-02 01:31:41 +00:00
Pierre Joye dd7ba93e19 - excpetion.php => exception.inc (derick) 2004-03-01 20:44:11 +00:00
Pierre Joye 6f68407894 - initial release, reflection tests suite 2004-03-01 20:40:51 +00:00
Moriyoshi Koizumi 03bdd13560 - Fix win32 build.
# Thanks Nuno Lopes & Derick for letting me know.
2004-03-01 20:25:33 +00:00
Andi Gutmans 8912a50bf4 - Fix crash in destructors(). You can't throw an exception in destructors
as there is no guaranteed time when the destructor will be called.
2004-03-01 19:45:07 +00:00
Andi Gutmans 161ed69721 - Fix leak 2004-03-01 17:43:57 +00:00
Andi Gutmans 0f1382e126 - Fix crash in reflection API (pierre) 2004-03-01 15:19:38 +00:00
Andi Gutmans 7c72f6ff61 - Fix crash in exception handling (zend_exception_error(...) and
zend_eval_string_ex() were buggy (Dmitry, Andi)
2004-03-01 13:29:45 +00:00
Rob Richards 5e4b287463 use php_libxml_import_node for transform functions 2004-03-01 12:43:34 +00:00
Derick Rethans afc35efcf6 - Typo fix (by Jan) 2004-03-01 12:25:03 +00:00
Rob Richards 76ee5707f7 Fix bug #27436 dom_import_simplexml innaccurate
extensions register callbacks to export nodes
prevents segfault passing invalid objects to import functions
2004-03-01 12:09:24 +00:00
Moriyoshi Koizumi 9f9151473c - Use past tense 2004-03-01 10:46:58 +00:00
Moriyoshi Koizumi a48e59749c - NFN 2004-03-01 10:46:14 +00:00
Moriyoshi Koizumi bf1ed3de73 - Fix test. 2004-03-01 10:44:22 +00:00
Moriyoshi Koizumi df8ee549f5 - Add support for more ISO8601 style formats.
. Timezone specifier (ex. 20040301T00:00:00+1900)
 . Week specifier "W"  (ex. 1997W021)
- Modified test case to test new features.
2004-03-01 10:42:28 +00:00
Derick Rethans a84efbe923 - Fixed bug #27443 (defined() returns wrong type). 2004-03-01 08:07:25 +00:00
Jon Parise 4db900732d Cast the php_stream_dirent to a 'const char *' for estrndup() to avoid a
compiler warning.
2004-03-01 07:02:23 +00:00
Sara Golemon d9d38900b6 context parameter for opendir() and dir() 2004-03-01 05:40:14 +00:00
Sara Golemon 860daac5d8 Must addref the resource when we make a new zval reference to it that will be exported to userspace. 2004-03-01 05:33:19 +00:00
9cf988c201 ChangeLog update 2004-03-01 01:32:12 +00:00
Moriyoshi Koizumi c4a079e803 - Yet another BFN 2004-02-29 19:07:56 +00:00
Andi Gutmans 37ddf8e922 - Apply fixes by Timm. 2004-02-29 18:31:29 +00:00
Andi Gutmans 63e263f32a - Change prototype isA check not to check the constructor.
- Only give an E_STRICT for non-isA compliant code as opposed to
  E_COMPILE_ERROR.
2004-02-29 18:25:50 +00:00
Stanislav Malyshev edb21137de add ZEND_API there too for opcode handlers 2004-02-29 16:01:21 +00:00
Derick Rethans ed242f7e9e - Initialize memory to \0 so that we can reliable detect whether a specific
opcode element is in use.
#- Stas thinks it's OK ;-)
2004-02-29 16:00:50 +00:00
Anil Madhavapeddy b49e8fe865 Move the _prependPath function into PEAR_Downloader from PEAR_Installer,
as PEAR_Downloader uses it (and PEAR_Installer inherits PEAR_Downloader).

Unbreaks 'pear install -R'
2004-02-29 15:58:17 +00:00
Stanislav Malyshev deba01c64e export opcode table 2004-02-29 15:04:22 +00:00
Moriyoshi Koizumi 5e0da10217 - BFN 2004-02-29 05:22:57 +00:00
Moriyoshi Koizumi 3d83a4db04 - Bugfix #27287 (wddx segfaults during deserialization) 2004-02-29 05:21:36 +00:00
5f1e30823f ChangeLog update 2004-02-29 01:32:18 +00:00
Moriyoshi Koizumi 75f83f7bb4 - Fix segfaults on deserialisation of referenced variables.
# ALLOC_INIT_ZVAL() initialises the type field to IS_NULL, while
# MAKE_STD_ZVAL() doesn't. This caused a kind of random crash
# when zval_ptr_dtor() was applied on an intact zval created by
# the latter method.
#
# Please check relevant bugs again. There should be some that
# have already been marked as bogus.
2004-02-29 00:26:36 +00:00
Ilia Alshanetsky 0f116e7524 Remove unused variable. 2004-02-28 22:58:51 +00:00
Moriyoshi Koizumi 6a40d2de2b - Reordering. 2004-02-28 21:08:29 +00:00
Ilia Alshanetsky deeb7dd039 Memory allocation check. 2004-02-28 21:00:16 +00:00
Moriyoshi Koizumi a1fb66d296 - BFN & misc. 2004-02-28 20:58:48 +00:00
Moriyoshi Koizumi f9302aca13 - Remove redundant files that are irrelevant to the build. 2004-02-28 20:52:05 +00:00
Moriyoshi Koizumi f87f2ed4b4 - Forgot to add those. 2004-02-28 20:46:06 +00:00
Moriyoshi Koizumi 11b0f469f0 - Upgrade bundled oniguruma regex library to 2.2.2 (Rui, Moriyoshi)
. Supports various encodings such as BIG5, GB2312 and ISO-8859-*
  . Fixes bug #26677 (mbstring compile errors with IRIX)
  . Many thanks to K.Kosako.
- Remove redundant files that are not relevant to the build.
2004-02-28 20:45:27 +00:00
dc03dbc699 ChangeLog update 2004-02-28 01:32:09 +00:00
Rasmus Lerdorf 2a44432e8c As discussed a while ago. There is no reason to disallow command-line
arguments for the cgi version when run in a cgi context.  Our own test
framework is in fact broken because of this unnecessary restriction.
2004-02-27 23:31:28 +00:00
Frank M. Kromann 1e5869c660 Define buffer size macro and add a comment about the buffer size. 2004-02-27 23:03:07 +00:00
Marcus Boerger 7fdd68af8b Add some comments 2004-02-27 18:20:53 +00:00
Dmitry Stogov df29576af6 win32 specific fixes 2004-02-27 14:52:24 +00:00
Dmitry Stogov d05665a57e fix: Incorrect error message 2004-02-27 12:49:00 +00:00
Marcus Boerger ced7dfddbd The order of error has changed here. So the expectations must change too. 2004-02-27 09:17:55 +00:00
Marcus Boerger f449c8fdf7 Fixes for abstract classes/methods 2004-02-27 09:14:55 +00:00
Greg Beaver 7c6b73ce38 fix #640, error in comment for getStaticProperty 2004-02-27 02:27:00 +00:00
Greg Beaver 3e56af98e0 get_class -> is_a 2004-02-27 02:24:06 +00:00
44f0fce255 ChangeLog update 2004-02-27 01:32:32 +00:00
Ilia Alshanetsky c856e821d0 Fixed possible crash inside sqlite_escape_string() and
sqlite_udf_encode_binary().
2004-02-27 00:29:10 +00:00
Frank M. Kromann 29500c867d Adding function to change user passwords 2004-02-26 20:31:14 +00:00
Marcus Boerger 9346ff2de4 Fixes for abstract classes 2004-02-26 20:11:28 +00:00
Marcus Boerger 059c533b4a Fix __METHOD__ (noticed by Davey Sahfik) 2004-02-26 19:59:49 +00:00
Marcus Boerger cd7833ec81 Add new test (from pierre) 2004-02-26 19:51:08 +00:00
foobar c9d3f3250c Fix typo 2004-02-26 13:22:11 +00:00
foobar ac5fa854f3 ws & cs fixes 2004-02-26 12:33:23 +00:00
Georg Richter 700bb4dbb4 prototype fix for mysqli_ping 2004-02-26 12:24:21 +00:00
Georg Richter 8e52a1a8a3 added MySQLI ini entries
added ini parameter for mysql->reconnect
2004-02-26 11:40:35 +00:00
Georg Richter 5ffccfffda removed blocking calls to mysql_set_server_option (MYSQLI_DISABLE_MQ)
added mysqli_multi_query to function table
changed stmt->affected_rows property (http://bugs.mysql.com/?id=2247) for 4.1.2
2004-02-26 08:27:24 +00:00
1085c6c7f1 ChangeLog update 2004-02-26 01:32:27 +00:00
foobar a79c7c7c84 Remove bogus test: see bug #20993 2004-02-26 01:08:04 +00:00
Marcus Boerger 3e1f3b2124 Fix problem with Reflection_Property (patch from Timm slightly modified). 2004-02-26 01:06:18 +00:00
foobar 639073bd2a MFB: typofix 2004-02-26 00:13:30 +00:00
Ilia Alshanetsky 0f5f7c6dd0 Handle situation where feof() occurs before the HTTP header is retrieved. 2004-02-26 00:02:27 +00:00
foobar 44dfac9d96 - Fixed bug #27368 (php.ini-* has lone CR in the end)
# regex taken from win32/sendmail.c (suggested by Sara)
# And Andrei invited Wez to his speech on the cruise.. :)
2004-02-25 23:38:03 +00:00
Derick Rethans f954677e54 - Fix tests after change to highlight_string() 2004-02-25 22:55:47 +00:00
Ilia Alshanetsky 337b23bd93 Fixed bug #21760 (Use of uninitialized pointer inside php_read()).
Fixed 3 possible crashes due to integer overflow or invalid user input
inside the sockets extension.
2004-02-25 22:10:09 +00:00
Marcus Boerger ccef2cfb67 As Andi found out the dtor may increase the refcount. 2004-02-25 21:39:59 +00:00
foobar b87a245207 ws + cs 2004-02-25 21:06:59 +00:00
Marcus Boerger 8be7457b6c Temp fix for ctor signature until inheritance fix is complete 2004-02-25 20:38:56 +00:00
foobar cd2d5c4631 Revert and add the compatibility option. 2004-02-25 20:37:11 +00:00
foobar 43a1469151 typofix 2004-02-25 20:23:15 +00:00
Ard Biesheuvel 81f05c18f5 Wordsize fixes 2004-02-25 20:16:27 +00:00
foobar b1d8f10450 style 2004-02-25 19:42:56 +00:00
foobar 4a32ba458c Test for bug #27395 2004-02-25 18:54:15 +00:00
Andi Gutmans 85edb21e3a - More NEWS 2004-02-25 17:48:20 +00:00
Zeev Suraski 62e921f824 Fix leak in foreach ($o->mthd()->arr) 2004-02-25 17:23:50 +00:00
Zeev Suraski bec3adb801 Fix signature
Marcus - please make sure that this is ok.  Generally you are no longer
allowed to override a method and with an incompatible signature
2004-02-25 14:58:47 +00:00
Zeev Suraski 982b44e073 This is no longer valid out of the box PHP 5 code.
We tried to enable compatibility mode but the test engine doesn't appear
to take the --INI-- section into account in compile time, so it didn't
work...
2004-02-25 14:57:43 +00:00
Zeev Suraski 7086634a0b - Improve ARG_INFO() macros to support supplying required_num_args
- Initial fix for foreach($o->mthd()->arr) crash (now leaks)
2004-02-25 14:56:45 +00:00
Dmitry Stogov ab968b3d03 HTTP compression (memory leak was fixed) 2004-02-25 14:37:06 +00:00
Dmitry Stogov b1fa3214f0 fix: XMLSchema <choice> support was improved to support elements with minOccurs=0 2004-02-25 14:34:50 +00:00
Derick Rethans 9be67e5a42 - Use <span> instead of <font> in highlight_string(). (Patch by mg@iceni.pl) 2004-02-25 14:14:47 +00:00
Dmitry Stogov 32b6d2fbf8 HTTP compression support (gzip and deflate) 2004-02-25 14:04:41 +00:00
foobar cae6ae8250 Do not corrupt mysql build with mysqli build stuff. (should fix #27387) 2004-02-25 13:29:30 +00:00
foobar c0885c93fe Improve error messages 2004-02-25 13:11:00 +00:00
Zeev Suraski 5b51a57317 update 2004-02-25 12:45:07 +00:00
Zeev Suraski 3f514ccb79 - Rename compatiblity mode to zend.ze2_compatibility_mode (it doesn't only affect auto-clone).
- Perform implementation checks even with simple inheritance (off when
    compatibility mode is enabled).
  - Restore default arguments in interfaces and handle it correctly.
  - Move registration of internal classes later in the startup sequence
    in order to have INI options available.
2004-02-25 10:58:06 +00:00
Zeev Suraski eb6fd52e21 - Rename compatiblity mode to zend.ze2_compatibility_mode (it doesn't only affect auto-clone).
- Perform implementation checks even with simple inheritance (off when
  compatibility mode is enabled).
- Restore default arguments in interfaces and handle it correctly.
- Move registration of internal classes later in the startup sequence
  in order to have INI options available.
2004-02-25 10:57:10 +00:00
Derick Rethans ca64573e1b - Fixed bug #27391 (typo in Fatal Error message). 2004-02-25 10:43:36 +00:00
Sebastian Bergmann 184b379fd7 ZTS fix. 2004-02-25 09:36:46 +00:00
Zeev Suraski 36a751840d - Abstract methods cannot have defaults for arguments
- Make function foo($a, $b=null) satisfy both foo($a) and foo($a, $b)
  prototypes
2004-02-25 09:25:37 +00:00
Sebastian Bergmann 0cfb59fce4 Proto fixes. 2004-02-25 08:58:56 +00:00
Marcus Boerger b0529e5485 Fix object destruction/free in shutdown
- set destructor_called even when no dtor is given
- use free_storage even when no dtor hat to be called
2004-02-25 08:16:54 +00:00
Marcus Boerger 98f725b0e0 Checking once for dtor is enough 2004-02-25 07:47:56 +00:00
da0c739eac ChangeLog update 2004-02-25 01:32:26 +00:00
Marcus Boerger ce8f77f7b1 Fix class flags when handling abstract methods 2004-02-24 23:39:12 +00:00
Ilia Alshanetsky 895f244236 Fixed bug #27383 (Potential crash inside fopen_wrapper, while parsing
response code).
2004-02-24 21:52:40 +00:00
George Schlossnagle a38761cd68 fix for bug 27384 2004-02-24 21:49:28 +00:00
Frank M. Kromann d147e65186 Add missing export. 2004-02-24 19:08:28 +00:00
Ard Biesheuvel 5c0cf2311d More wordsize/alignment fixes 2004-02-24 15:47:38 +00:00
Dmitry Stogov 6b0a18ba7b Documentation update 2004-02-24 15:35:53 +00:00
Zeev Suraski e5e120460a Remove empty comment 2004-02-24 15:13:13 +00:00
Dmitry Stogov 0b0eb80fdf WSDL support for <soap:headerfault> was implemented 2004-02-24 15:06:42 +00:00
Rob Richards f5dbafafed fix win32 compile with libxml 2.6
fix mem leaks
2004-02-24 12:03:32 +00:00
Dmitry Stogov 78b63f9df1 Fixed value of attribute is default value of attribute 2004-02-24 10:14:09 +00:00
Dmitry Stogov 9da18c12cf fix: anotaion -> anotation 2004-02-24 10:13:25 +00:00
Dmitry Stogov f15dcfacc1 constants for MIME/DIME encoding were added 2004-02-24 10:12:45 +00:00
Dmitry Stogov feed42e062 XML Schema support was improved: support for <element> default, fixed and nillable 2004-02-24 09:02:33 +00:00
foobar ac92c47b84 Fix bug #26005 (Random "cannot change the session ini settings" errors) 2004-02-24 08:47:35 +00:00
409c06738f ChangeLog update 2004-02-24 01:32:27 +00:00
Wez Furlong 0619eee6d0 test case for statcache corruption of BG 2004-02-23 21:07:10 +00:00
Wez Furlong 2b95eccf7e Ooops, these should not be pointers ;) 2004-02-23 21:03:58 +00:00
Sara Golemon ba8ad292d9 Make today's changes work w/ str_ireplace() as well. 2004-02-23 20:34:59 +00:00
Sara Golemon 1c82797664 Short circuit str_replaces when we already know that needle does not occur in haystack.
Note: Prior bugfix was for #27176 not #27276
2004-02-23 20:13:14 +00:00
Sara Golemon 5144a1f522 Bugfix #27276: When using str_replace to expand a string, count occurances of needle in haystack to avoid massive overallocation 2004-02-23 20:06:01 +00:00
Ilia Alshanetsky 11366f4886 Fixed bug #27341 (HEAD requests fail to return data). 2004-02-23 19:50:07 +00:00
Derick Rethans 769dc0be75 - Added testcase for bug #27276 2004-02-23 19:45:16 +00:00
foobar 09d5b95871 Fix bug #27337 (missing sapi_shutdown() causing memory leak) 2004-02-23 19:12:22 +00:00
Andi Gutmans 4f05437e08 - Improve precendence:
<?php

$obj->foo = "Blah";

if (!$obj instanceof StdClass) {
    print "No";
} else {
    print "Yes";
}
2004-02-23 18:17:16 +00:00
Georg Richter c65d7997c3 fixed prototypes for mysqli_connect_err* functions
(thx to Mehdi Achour)
2004-02-23 16:49:18 +00:00
Ard Biesheuvel b2bc520067 64-bit fixes 2004-02-23 16:26:34 +00:00
Christian Stocker 1d0596dbef - omit WARNING instead of ERROR for x_p_c_ns
- fix SKIPIF code in tests
2004-02-23 16:19:40 +00:00
Christian Stocker 9e6de31645 skip tests, if xml_parser_create_ns is not supported. 2004-02-23 16:01:15 +00:00
Christian Stocker a3b1085f06 test for attributes 2004-02-23 15:55:16 +00:00
Christian Stocker 0c7143efe9 - mixed up name and value... fixed 2004-02-23 15:54:45 +00:00
Christian Stocker 0c942d06e6 fix attribute handling in combination with sax2 2004-02-23 15:43:49 +00:00
Adam Dickmeiss 2fdd9a9757 Use ZOOM_resultset_sort for yaz_sort. Require YAZ 2.0.13 or later. 2004-02-23 10:48:46 +00:00
Christian Stocker 830d453a2f remove compiler warnings 2004-02-23 09:19:25 +00:00
Andi Gutmans 4a14e5c30d - Decrease precedence of instanceof so that the following is true:
php -r 'var_export((object)1 instanceof stdClass);';
Patch by Jan Lehnardt
2004-02-23 08:40:39 +00:00
Christian Stocker 2f310c3e4f - make it compile with libxml2 2.5 again
- disable xml_parser_create_ns with libxml2 2.5 for the time being
- the #if s can be removed, once we insist on libxml2 2.6
2004-02-23 08:21:07 +00:00
Georg Richter b3979e76ba fixed report message
Disabled reconnect option
2004-02-23 06:35:18 +00:00
foobar 0bf907b1e6 - Added PHP_TEST_BUILD macro which can be used to test whether build
works / would work with current LIBS (+ additional extra-libs)
2004-02-23 03:24:58 +00:00
Ard Biesheuvel 154893115a 64-bit fix 2004-02-23 02:09:48 +00:00
Ard Biesheuvel 29053cc6d5 64-bit fix 2004-02-23 01:53:39 +00:00
0d28e63189 ChangeLog update 2004-02-23 01:32:39 +00:00
Ard Biesheuvel 9816c8a4e4 64-bit fix 2004-02-23 01:21:16 +00:00
foobar 9b13b215fb - Moved internally used includes/macros/structs/etc. into tidy.c to prevent
any conflicts with any other library/header/extension.

# Never EVER put this stuff in extension's php_*.h file if possible!
2004-02-23 00:59:29 +00:00
Derick Rethans b9d56576bf - Added testcase for bug #27354 (Modulus operator crashes PHP). 2004-02-22 20:04:30 +00:00
Derick Rethans e2c9926923 - Fixed bug #27354 (Modulus operator crashes PHP). 2004-02-22 20:02:26 +00:00
Marcus Boerger 1fbe07c9e0 Add some more obviously needed information 2004-02-22 18:50:47 +00:00
Christian Stocker 4e4cb3fcd2 add test for default namespaces and same-prefix/different-namespaceURI 2004-02-22 18:27:10 +00:00
Ilia Alshanetsky 52b962ca2f wbmp conversion warning fix. 2004-02-22 18:03:09 +00:00
Christian Stocker 2343df52d2 Fix broken Namespace support, use libxml2 namespace methods instead of
homebrown solution:
- default namespaces are recognized
- different namespaces with same prefix in different nodes are treated correctly
- libxml2 parser warnings are not errors anymore
2004-02-22 17:51:01 +00:00
Rob Richards 081e773f86 add optional third parameter to support namespace in constructor 2004-02-22 13:05:49 +00:00
Ard Biesheuvel 3a91737c73 Fix 64-bit crash 2004-02-22 12:10:00 +00:00
990fcad9b0 ChangeLog update 2004-02-22 01:32:09 +00:00
Sara Golemon c23305e184 Avoid use of memcpy(), reply on struct in_addr to be right sized instead 2004-02-21 19:37:37 +00:00
Ilia Alshanetsky cc2dc6c85e Set correct default threshold for image2wbmp(). 2004-02-21 16:49:39 +00:00
Sebastian Bergmann 7af39b1aad Can't test whether it works (no current >=mysql-4.1.2 available on Windows), but it should. 2004-02-21 15:05:52 +00:00
Georg Richter 12c6378412 fixed typo in method alias 2004-02-21 07:37:41 +00:00
60812423da ChangeLog update 2004-02-21 01:32:48 +00:00
Sara Golemon 4113da3f86 s_addr is always unsigned 32bit, long is not. 2004-02-20 21:05:37 +00:00
Sara Golemon 15cd6762f8 Bug Fix #27335: Numeric indexes crashing http_build_query() 2004-02-20 20:38:14 +00:00
Greg Beaver 4be7974f82 stupid oversight, no 4.2 dep 2004-02-20 17:15:07 +00:00
Dmitry Stogov 8fc285275c BUGFIX: bug in HTTP chunked encoding was fixed 2004-02-20 15:38:39 +00:00
Pierre Joye 081fa78b08 - Remove DB 1.6.0RC6 2004-02-20 15:37:33 +00:00
Pierre Joye a120b56aaf - Update to DB-1.6.0 stable 2004-02-20 15:36:24 +00:00
Pierre Joye 6123f87e25 - MFB 2004-02-20 15:35:44 +00:00
Georg Richter 1f67407f84 Moved functions for replication support in to file mysqli_repl.c
- these functions are marked as experimental now in documentation
    not sure if we will replace or extend them with NDB support in
    April
2004-02-20 13:09:14 +00:00
Antony Dovgal 7837416c2b this should really fix compile failure with gcc 2.96 2004-02-20 12:47:56 +00:00
Ard Biesheuvel 8747289066 Fix some issues with persistent links 2004-02-20 10:59:24 +00:00
Hartmut Holzgraefe 8c32fa79d7 EXTERN_C wrapping for PHPAPI prototypes
(Zend and main should now be ok)
2004-02-20 08:22:12 +00:00
Hartmut Holzgraefe b8f7d9f9f5 wrap all PHPAPI prototypes into BEGIN_EXTERN_C/END_EXTERN_C blocks
(else they won't be usable from C++ extensions)
2004-02-20 08:04:30 +00:00
Hartmut Holzgraefe 1727c6a2bb more EXTERN_C wrapping of ZEND_API prototypes 2004-02-20 08:03:27 +00:00
Hartmut Holzgraefe 767450164e A script that searches for PHPAPI and ZEND_API prototypes
not enclosed by BEGIN_EXTERN_C/END_EXTERN_C
2004-02-20 08:01:58 +00:00
foobar acf7a5e262 ws fix 2004-02-20 06:59:37 +00:00
foobar 26332c0436 Fix compile failure 2004-02-20 03:16:51 +00:00
foobar 6e15162724 Only use Z_TYPE* with zvals.. 2004-02-20 03:05:42 +00:00
6c0e948b8c ChangeLog update 2004-02-20 01:32:34 +00:00
Ilia Alshanetsky 2bc288bb0c Added missing safe_mode & open_basedir checks. 2004-02-20 01:09:00 +00:00
Dmitry Stogov 8b9607cff1 Don't try to use <input> name instead of <opeartion> name for encoding RPC call 2004-02-19 18:49:50 +00:00
Dmitry Stogov bac453038a Reading HTTP responses without "Content-Length:" but with "Connection: close" 2004-02-19 16:49:50 +00:00
Dmitry Stogov 2d61e3622d WSDL caching bugs were fixed 2004-02-19 16:46:52 +00:00
Dmitry Stogov 0dadb2bbab fix: prevent possible crash 2004-02-19 16:45:25 +00:00
Dmitry Stogov 9ebc56dd50 Passing arguments to "anyType" cause passing type information in literal encoding. Receiver gets sach parameters as SoapVar objects. 2004-02-19 11:32:42 +00:00
Dmitry Stogov 15ccb3be8d Support for SOAP Fault encoding according to WSDL <fault> and <soap:fault> 2004-02-19 08:21:13 +00:00
Ilia Alshanetsky 0e692f9506 Fixed possible resource/memory leak. 2004-02-19 02:19:11 +00:00
foobar 4441da2754 Improve error messages 2004-02-19 01:54:21 +00:00
b21569dead ChangeLog update 2004-02-19 01:32:24 +00:00
Hartmut Holzgraefe 3a3f95a399 wrap ZEND_API prototypes into BEGIN_EXTERN_C/END_EXTERN_C
for C++ extension support
2004-02-18 22:44:40 +00:00
Rob Richards 7deeb0f96a always return domnodelist unless error 2004-02-18 22:42:30 +00:00
Hartmut Holzgraefe d303509e05 be nice to C++ extensions 2004-02-18 21:34:15 +00:00
Rob Richards 4051591cfe correct implementation of prefix write property 2004-02-18 20:37:30 +00:00
foobar e3c437d378 register_list_destructors -> zend_register_list_destructors_ex 2004-02-18 20:22:40 +00:00
Ilia Alshanetsky 95cbb0046c Fixed bug #27295 (memory leak inside sscanf()). 2004-02-18 19:48:13 +00:00
Georg Richter a12c95e1be changed return value of mysql_fetch
- instead of MYSQL_NO_DATA mysql_fetch will now return NULL
2004-02-18 13:26:57 +00:00
Zeev Suraski 666b44c11e Forward-port fixlet from PHP 4 (thanks to Michael Sisolak) 2004-02-18 08:53:56 +00:00
Dmitry Stogov cbec795c0b fix: SoapFault constructor fixed to confirm documentation. 2004-02-18 07:35:34 +00:00
Dmitry Stogov 9cb54cb232 BUGFIX: HTTP chunked transfer-encoding support 2004-02-18 06:58:33 +00:00
Sara Golemon da55c00362 Show registered transports in phpinfo() 2004-02-18 05:07:13 +00:00
7cb2086ea1 ChangeLog update 2004-02-18 01:32:10 +00:00
foobar abb9ac9d5f Test for bug #27287 2004-02-18 00:00:36 +00:00
foobar 2b8611ae3b MFB: - Fix bug #26753 (zend_fetch_list_dtor_id() does not check NULL strings) 2004-02-17 22:04:05 +00:00
Ilia Alshanetsky cb5c9156c2 Fixed bug #27293 (two crashes inside image2wbmp()). 2004-02-17 21:30:00 +00:00
Rob Richards 43eb077107 add dtor to cleanup iterator related data 2004-02-17 19:57:48 +00:00
Dmitry Stogov b17eab9a31 Using element namesapces with literal encoding. 2004-02-17 18:54:30 +00:00
Dmitry Stogov 7edf9bc2c3 support for XMLSchema <element> nillable attribute 2004-02-17 15:10:16 +00:00
Ard Biesheuvel c796a47690 Fixed unregistered bugs in event handling
Cleaned up some of the code
Removed ISC_QUAD from static initializers because it looks different on
	some platforms
2004-02-17 12:53:54 +00:00
Ard Biesheuvel 3cc26de38d Added event handling test
CS
2004-02-17 12:24:42 +00:00
Wez Furlong 66fa4e74ea Fix:
#27269 php_gettext.dll extension will not load
2004-02-17 11:15:19 +00:00
Rob Richards ec2ea131fb implement clone functionality to fix segfault
DomNode->clone() creates new doc proxy if document is cloned
remove printf from xpath
fix remaining invalid object state issues
2004-02-17 11:13:47 +00:00
Dmitry Stogov 0ecd198dc5 fix: Using proper namespace for <soap:header> if it is not specified. 2004-02-17 09:23:28 +00:00
Dmitry Stogov 168dc362df Encoding of ommited tail parameters as NULLs 2004-02-17 08:18:53 +00:00
Georg Richter f7ca7c469a changed output 2004-02-17 07:45:15 +00:00
Stig Bakken cdad10a21a * apply bold escape codes only if output is going to a terminal/tty 2004-02-17 05:49:16 +00:00
9551966c85 ChangeLog update 2004-02-17 01:32:28 +00:00
Moriyoshi Koizumi 097bfda39d - Add "zbacktrace" user-defined command. 2004-02-16 20:20:55 +00:00
foobar 7a7927c146 shorten the description a bit 2004-02-16 17:44:27 +00:00
Ilia Alshanetsky 4a954193e4 Fixed bug #27278 (*printf() functions treat arguments as if passed by
reference).
2004-02-16 17:09:37 +00:00
Ilia Alshanetsky dc9f52f039 Fix test. 2004-02-16 17:09:08 +00:00
foobar 7fd4bdbec4 nuke copypaste rubbish 2004-02-16 16:50:53 +00:00
foobar 173794732b test for bug #27278 2004-02-16 16:50:11 +00:00
Dmitry Stogov 3e002aa66d specal case of array encoding. If object has only one inner element and this element has max_occurs > 1, then array can be passed directly. 2004-02-16 16:35:59 +00:00
Dmitry Stogov 1350643b8c BUGFIX: incorrect restoring of negative integers from WSDL cache 2004-02-16 16:32:52 +00:00
Sergey Kartashoff 25956876a7 - A fix to make UDM_LIMIT_DATE work was applied. Thanx to
d.rousseau at nnx.com
2004-02-16 16:11:59 +00:00
foobar 0eda6a05fe this was MFHd.. 2004-02-16 16:00:15 +00:00
Georg Richter d23dff1220 fixed some tests
added skip section for prepared statements when using SHOW command
2004-02-16 15:32:46 +00:00
Ilia Alshanetsky 4f388ba849 Better gmp fix. 2004-02-16 15:13:40 +00:00
Jan Lehnardt bf807f6d69 - fix typo 2004-02-16 14:41:38 +00:00
Rob Richards 602c786aa9 issue warning if object is in invalid state when dealing with properties 2004-02-16 13:06:33 +00:00
Derick Rethans 5dcf37b618 - Clearify clone behavior, fixed clone example (Patch by Jan Lehnardt) 2004-02-16 12:08:20 +00:00
Dmitry Stogov 939a8d43cf Prevent processing SOAP headers with invalid namespace in WSDL mode. 2004-02-16 12:04:48 +00:00
Stanislav Malyshev 794975d97f ce is not used, don't get it 2004-02-16 11:21:31 +00:00
Dmitry Stogov 6aad56d4a2 fix: prevent of possible crash 2004-02-16 09:56:30 +00:00
foobar 6e06620089 - fix test 2004-02-16 06:39:13 +00:00
710cf3eaf6 ChangeLog update 2004-02-16 01:32:11 +00:00
Marcus Boerger b438902cd2 BFN 2004-02-16 00:34:35 +00:00
Marcus Boerger b0ef896f0e Bugfix #27227 Mixed case class names causes Fatal Error in Constructor call 2004-02-16 00:34:23 +00:00
Ilia Alshanetsky 2e2c4375d0 For get_data iterator do not force numeric keys, return keys the user
requests.
2004-02-15 20:42:58 +00:00
Georg Richter d5084182ce fixed several binding problems 2004-02-15 20:23:05 +00:00
Ilia Alshanetsky d438dad1b2 Fixed a crash inside create_aggregate() method due to incorrect argument
parsing.
2004-02-15 20:15:34 +00:00
Rob Richards 2a32e4328a switch to zend_parse_method_parameters for consistancy
insure object parameters are correct class types
convert zvals to correct type if needed for property writes
fix a few segfaults found while testing
2004-02-15 18:57:10 +00:00
Ard Biesheuvel 595d6a2d84 Reintroduce param NULL testing (see bug #26777) 2004-02-15 18:34:47 +00:00
foobar 47c49ee013 Prevent bug reports like #27260 2004-02-15 17:54:19 +00:00
Stig Bakken 2fd0f86c73 * don't cut lines when wrapping output 2004-02-15 17:43:00 +00:00
Ilia Alshanetsky b7329c8456 Fixed bug #27258 (moved FPE check to correct location).
Fixed several possible FPE.
2004-02-15 17:22:57 +00:00
Rob Richards c3a57206cc allow certain methods to be called statically again:
domdocument (all load methods)
   domimplementation (all methods)
switch to zend_parse_method_parameters for consistancy
insure object parameters are correct class types
convert zvals to correct type if needed for property writes
fix a few segfaults found while testing
2004-02-15 17:07:34 +00:00
Marcus Boerger b59989e716 Fix startup errors 2004-02-15 17:00:42 +00:00
Rob Richards c1418894dd switch to zend_parse_method_parameters for consistancy
insure object parameters are correct class types
convert zvals to correct type if needed for property writes
2004-02-15 14:05:17 +00:00
Zeev Suraski 7c710a9f9b Use zval_ptr_dtor() to free variables as soon as they hit refcount of 0.
Note:  You should not be using ZVAL_DELREF() in day to day usage.  Instead,
       you should use zval_ptr_dtor().  Use ZVAL_DELREF() only if you're
       messing with the refcount directly and know what you're doing.
Note #2:  For clarity, if you want to initialize a new zval with a refcount
          of 0, it's best to do that directly, instead of using ZVAL_DELREF
          after allocating the zval...
2004-02-15 12:58:19 +00:00
Rob Richards a2e1844de9 start of dom update
switch to zend_parse_method_parameters for consistancy
insure object parameters are correct class types
convert zvals to correct type if needed for property writes
2004-02-15 10:54:37 +00:00
Timm Friebe 104f2b5ff4 - Fixed bug #26407 (Result set fetching broken around transactions) 2004-02-15 10:53:45 +00:00
Timm Friebe e0c7f10ef5 - Changed initialization of function arguments to message handler
# Hopefully fixes bug #27157 (Compile Failure on Solaris 8), user does
# not know how to use patch and therefore couldn't verify this works.
2004-02-15 10:37:09 +00:00
36315ded6b ChangeLog update 2004-02-15 01:33:34 +00:00
Jan Lehnardt 4d0ad7fbb7 - improve error message 2004-02-14 19:02:23 +00:00
Jan Lehnardt 905f4e98a2 - silence warning 2004-02-14 17:31:00 +00:00
foobar cbb1e6e4fb bfn 2004-02-14 16:25:20 +00:00
Marcus Boerger ce984d7667 dtor's may not be called from free_storage handlers 2004-02-14 13:33:36 +00:00
Derick Rethans ac9f4cc2af - We always need to destroy the llist though. 2004-02-14 12:35:59 +00:00
Derick Rethans 3781af53cd - Fixed zero bytes memory allocation when no extra ini files are found in the
--with-config-file-scan-dir specified directory. (patch by Eric Colinet
  <e.colinet@laposte.net>)
2004-02-14 12:29:04 +00:00
ee42c23ce0 ChangeLog update 2004-02-14 01:32:09 +00:00
Dmitry Stogov b21756c1ca Source cleanup 2004-02-13 15:19:09 +00:00
Rob Richards 16136dfe93 Fix bug #27237: Working with simplexml crashes apache2
object dtor must be used to cleanup iterator data correctly
Fix asXML() outputing incorrect node
2004-02-13 15:05:18 +00:00
Dmitry Stogov 81af85c380 Old in-memory WSDL cache was removed (it was already switched off by #ifdef) 2004-02-13 11:03:58 +00:00
Dmitry Stogov 2d1ae249a8 Cleanup 2004-02-13 10:29:55 +00:00
Dmitry Stogov dcb3189df2 SoapClient::__getTypes and SoapClient::__getFunctions were fixed to return proper information 2004-02-13 08:30:13 +00:00
Dmitry Stogov 9b29737f44 BUGFIX 2004-02-13 08:29:11 +00:00
Ilia Alshanetsky 36f27848a6 Fixed compile warnings. 2004-02-13 02:20:20 +00:00
7e7630aeb0 ChangeLog update 2004-02-13 01:32:15 +00:00
Ilia Alshanetsky 472599ec75 Added cvsingore 2004-02-13 01:20:15 +00:00
Ilia Alshanetsky 5a38078385 Fixes for PHP 4.3.X. 2004-02-13 01:19:57 +00:00
Ilia Alshanetsky b93acb023d Added package.xml 2004-02-13 01:14:15 +00:00
Ilia Alshanetsky eb06e0c425 Initial commit of the fileinfo extension. 2004-02-13 01:06:06 +00:00
Frank M. Kromann cf2c4b26bb Adding mising declaration (needed for Win32 compilation) 2004-02-13 00:02:19 +00:00
Derick Rethans cd4a39edf9 - Fixed start-up problem if both SPL and SimpleXML were enabled. The
double initialization of apache 1.3 was causing problems here.
2004-02-12 23:39:46 +00:00
Marcus Boerger 1507a4a677 Fix (thx Andi) 2004-02-12 21:43:10 +00:00
Marcus Boerger ab1e2e7c06 Fix ArrayObject 2004-02-12 20:52:48 +00:00
Stig Bakken 4127b304ea * email address update 2004-02-12 19:05:41 +00:00
Stig Bakken f8125ed92d * update my email address 2004-02-12 19:03:03 +00:00
Stefan Esser debf069a58 better write into the correct buffer 2004-02-12 18:27:33 +00:00
Wez Furlong 6d131cefc0 name the pecl bundle pecl-foo instead of php-foo-pecl. 2004-02-12 17:58:52 +00:00
Dmitry Stogov 563e769dff WSDL support for unknown extensibility elements and wsdl:required attribute (Interop Round3 GroupF) 2004-02-12 16:42:34 +00:00
Dmitry Stogov 69eb0041b1 fix: possible crash was fixed 2004-02-12 16:41:58 +00:00
Andi Gutmans efe864dc34 - We are RC1-dev now 2004-02-12 16:26:59 +00:00
Andi Gutmans 82ad916386 - Roll Beta 4 2004-02-12 15:59:18 +00:00
Andi Gutmans 5cad7a2b4a - Remove old code 2004-02-12 15:23:06 +00:00
Hartmut Holzgraefe 92f355d733 making sure that the provided examples actualy work (or at least do not
generate no parse errors) unless they are really expected to fail
2004-02-12 14:44:58 +00:00
foobar 1526710ce1 reorder 2004-02-12 14:34:25 +00:00
Andi Gutmans 62b81df9b0 - This was too strict. 2004-02-12 14:31:13 +00:00
Zeev Suraski fe4239d0d7 Fix test 2004-02-12 14:12:37 +00:00
Pierre Joye 77e432c6ac - Update to DB-1.6.0RC6 (stable)
notabene: No more RC with stable state will be bundled with stable
  php release. It's ok for php5 beta4.
2004-02-12 14:09:53 +00:00
Pierre Joye c2d135276c - Remove old DB 2004-02-12 14:08:19 +00:00
Zeev Suraski f041e73a67 Fix prototype/warning 2004-02-12 13:53:51 +00:00
Andi Gutmans c46ccc01fd - More news 2004-02-12 13:52:47 +00:00
Zeev Suraski e7e0f7d4b4 - Check return-by-reference bit when implementing interface prototypes
- Add infrastructure for built-in functions to hint whether they
  return by reference or not.  It is NOT currently used for anything,
  except for interface prototypes (you can use it to request that the
  function that implements your prototype returns by reference or
  doesn't return by reference).
  For downwards compatibility - by default, interface prototypes are
  agnostic as to whether the function that implements them returns
  by reference or not.  Use ZEND_BEGIN_ARG_INFO_EX() with
  ZEND_RETURN_VALUE/ZEND_RETURN_REFERENCE to change that.
- Fix ArrayAccess::getOffset() to conduct additional checks.
  If your getOffset() should work with multidimensional arrays - it
  must return by reference.
2004-02-12 13:49:55 +00:00
Wez Furlong 2c3c75ae55 ensure that install exists before copying files. 2004-02-12 13:01:14 +00:00
Andi Gutmans d60d7777d1 - Add News entry 2004-02-12 12:37:13 +00:00
Zeev Suraski 59a5701a8e extend Exception 2004-02-12 12:37:04 +00:00
Wez Furlong 08a1b6c476 Tidy up "nmake clean" for people that don't have a PECL checkout.
Be paranoid when building a snapshot: if the module is not a core
module (eg: it comes from outside of ext or sapi) and it defaults to "yes",
then force it to become shared.  This will prevent a pecl ext from
accidentally being compiled statically into the core, and prevent that
ext from breaking the core build.  You can still manually force a static
build by explicitly specifying the args for that extension on your configure
line.
2004-02-12 12:30:41 +00:00
Andi Gutmans 7d3215d333 - Add comments to read/write property/dimension for extension authors 2004-02-12 12:22:45 +00:00
Zeev Suraski 229aa6351f extend Exception 2004-02-12 12:21:16 +00:00
Wez Furlong 08ed2cb9f7 fix copy-n-past error in constructor.
Spotted by Eric Colinet.
2004-02-12 12:11:21 +00:00
Wez Furlong fed6471bb7 Fix build; line continuation character should be the very last character
on a line, otherwise things b0rk.
2004-02-12 11:55:16 +00:00
Zeev Suraski 3221aea978 Update configure 2004-02-12 11:47:53 +00:00
Dmitry Stogov 866816efef Caching of temorary WSDL files was disabled. 2004-02-12 11:02:16 +00:00
Edin Kadribasic 5979799de0 Added zend_exceptions.c to the build 2004-02-12 10:53:08 +00:00
Zeev Suraski 30171a7590 zend_default_classes.h -> zend_exceptions.h 2004-02-12 10:43:27 +00:00
Dmitry Stogov 07e3413e99 Using zend_throw_exception_object() instead of EG(exception). 2004-02-12 10:39:20 +00:00
Andi Gutmans 61a049ba3b - Add zend_exceptions.c 2004-02-12 10:39:12 +00:00
Zeev Suraski 00ed3bad29 Centralize exceptions code in zend_exceptions.[ch].
Remove zend_default_classes.h (use zend_exceptions.h instead)

NOTE:  This currently breaks the build, fixes to php-src and pecl coming
       soon
2004-02-12 10:38:14 +00:00
Andi Gutmans e189d89672 - Use zend_throw_exception_object() in throw_handler to make sure it
- does all the checks
2004-02-12 10:28:33 +00:00
Zeev Suraski d9630a595b Exceptions updates:
- Enforce exceptions to be derived from class Exception.  This allows
  users to perform catch-all.  It's not yet complete, so don't get
  comfortable with it just yet :)  Updates are coming soon.
- Implement zend_throw_exception() using zend_throw_exception_ex()
2004-02-12 10:24:40 +00:00
Andi Gutmans 559b14611d - Add API function to throw exception by using an object 2004-02-12 09:50:08 +00:00
Dmitry Stogov 71380e7d7f "Runtime Configuration" and "Exceptions" were added. 2004-02-12 09:05:56 +00:00
Andi Gutmans eca1fdc821 - Go with b4 RC 1 (Sanity package) 2004-02-12 08:46:02 +00:00
35e8577db4 ChangeLog update 2004-02-12 01:36:26 +00:00
foobar 785d780283 ws fix 2004-02-12 01:31:57 +00:00
foobar b10ce1155c - Fixed bug #23467 (Showing incorrect Time Zone)
# patch by scottmacvicar at ntlworld dot com
2004-02-12 01:28:12 +00:00
Marcus Boerger 7258bff325 Cleanup 2004-02-11 23:36:25 +00:00
Marcus Boerger 2a8426a664 Must be initialized in ZTS mode 2004-02-11 22:58:03 +00:00
Marcus Boerger 39894ea7c1 Update 2004-02-11 22:42:53 +00:00
Marcus Boerger 4256448a5f Update 2004-02-11 22:38:05 +00:00
Marcus Boerger c6cbafa273 Fix: <interface> [extends <interface> [, <ineterface>]* ] 2004-02-11 22:13:39 +00:00
foobar e9e1494a59 There is CODING_STANDARDS..at least NEW code should respect those.. 2004-02-11 21:20:22 +00:00
foobar db0854a952 style 2004-02-11 21:17:35 +00:00
Marcus Boerger 1c00296cc7 Bugfix #27104 CLI/CGI SAPI module variable name conflict 2004-02-11 21:00:46 +00:00
Zeev Suraski c8c0e97982 Prevent SimpleXML from silently modifying types of variables that are
assigned to its objects.

Implementation notes for overloaded object modules:

- If you return a zval which is not otherwise referenced by the extension
  or the engine's symbol table, its reference count should be 0.
- If you receive a value zval in write_property/write_dimension, you
  may only modify it if its reference count is 1.  Otherwise, you must
  create a copy of that zval before making any changes.  You should NOT
  modify the reference count of the value passed to you.

Have fun!
2004-02-11 19:15:30 +00:00
Zeev Suraski d91fc5fa3c Fix leaks in assignments to overloaded objects 2004-02-11 19:12:16 +00:00
Brian France 8a3d87f766 - Added checks for invalid characters in a cookie name or cookie data
from setrawcookie. (Brian)
	- Added new pspell functions to set the dict-dir and data-dir options. (Brian)
2004-02-11 19:02:39 +00:00
Brian France d5b6608da5 Added checks for invalid characters in a cookie name or cookie data from setrawcookie 2004-02-11 19:00:42 +00:00
Brian France e6ae5c3318 Added two new functions to set the dict-dir and data-dir options. 2004-02-11 18:50:16 +00:00
Ilia Alshanetsky 8b97d9d7f1 'Touch' the file to make sure re2c is not needed. 2004-02-11 17:32:38 +00:00
Ilia Alshanetsky 0fc2bb9d49 Fixed bug #26862 (ob_flush() followed by output_reset_rewrite_vars() may
result in data loss).
2004-02-11 17:00:48 +00:00
Zeev Suraski 3d4c7922e1 Fix leak with overloaded objects, when they're used just "for the hell
of it" :)
2004-02-11 16:28:46 +00:00
Ard Biesheuvel b625b03493 Look in the right place for lib 2004-02-11 16:20:48 +00:00
Dmitry Stogov f3ed4a27a0 support for command line interface was improved 2004-02-11 16:13:15 +00:00
Dmitry Stogov f46638ae28 Cache files access rights were changed. 2004-02-11 16:12:31 +00:00
Zeev Suraski b70f942189 Get rid of some yucky past, and reenable these tests 2004-02-11 16:09:46 +00:00
Zeev Suraski aac72ce090 Fixed a bug the caused overloaded array indices to be converted to strings 2004-02-11 15:56:13 +00:00
Zeev Suraski 30f1be78c2 Turn off bogus warnings with overloaded dimensions and += (and friends) 2004-02-11 15:50:23 +00:00
Ilia Alshanetsky c6a2a19051 Proper win32 fix. 2004-02-11 14:52:12 +00:00
Zeev Suraski cc8c9ef2ec Improve the implementation of unset() on array dimensions to be more
consistent with that of regular variables and string offsets
2004-02-11 13:58:29 +00:00
Dmitry Stogov 6096b09159 Now SoapClient uses excptions as default method for error reporting 2004-02-11 13:53:50 +00:00
Zeev Suraski 75390796be Fix bug #25038 2004-02-11 13:01:39 +00:00
Rob Richards 5731108c55 Fix test 2004-02-11 13:00:19 +00:00
Zeev Suraski fde9bac476 Fix crash (patch by Rob Richards) 2004-02-11 12:35:24 +00:00
Zeev Suraski 6b6fe2f76e Fix exceptions thrown without a stack frame
Always enable set_exception_handler()
2004-02-11 12:31:18 +00:00
Rob Richards 6e4a4e8a9a Fix compiler warnings
Update tests
2004-02-11 12:19:26 +00:00
Ard Biesheuvel a3dd0efee2 Add version info about run-time client library
# A number of user crashes appear to be caused
# by using incorrect combinations of libraries
2004-02-11 12:08:44 +00:00
Ard Biesheuvel 9925c63be5 CS/WS 2004-02-11 11:59:08 +00:00
Andi Gutmans d93f899271 - Change to b4 2004-02-11 11:53:45 +00:00
Zeev Suraski 3d622f99c1 Change FETCH_RESOURCE to return false on error instead of null, for
consistency with other error situations
2004-02-11 11:52:33 +00:00
Zeev Suraski 0018eed69f Finally add a notice to hint people that using dl() is a bad idea... 2004-02-11 11:46:20 +00:00
Zeev Suraski c01c44c2e2 Fix bug #26802 (the right aspects of it found by Marcus, anyway :) 2004-02-11 10:51:05 +00:00
Zeev Suraski 0f3106ad17 Fix and clarify the test case 2004-02-11 10:48:20 +00:00
Zeev Suraski 73a6bcf5cf Complete the fix for handling of exceptions happening during the
argument passing phase of function calls (fixes bug #26866)
2004-02-11 09:42:58 +00:00
Zeev Suraski 4b632eba46 whitespace 2004-02-11 09:42:10 +00:00
Georg Richter 9e93ac6005 removed printfs :)
Thx Andi!
2004-02-11 08:34:08 +00:00
Georg Richter 3e2907d614 changed first param in mysqli_bind_param 2004-02-11 07:39:28 +00:00
Georg Richter c0a1ec4210 changed first parameter in mysqli_bind_param from array to string
(as discussed on berlin db meeting)
2004-02-11 07:38:43 +00:00
8d102800b3 ChangeLog update 2004-02-11 01:32:14 +00:00
Rui Hirokawa 815fe886b8 fixed a compilation error. 2004-02-11 00:45:07 +00:00
Zeev Suraski 816d15252b Ignore the memleak in this test 2004-02-10 22:13:07 +00:00
Timm Friebe b3a55e95de - Removed pointless call to error_reporting() 2004-02-10 20:39:08 +00:00
Zeev Suraski ed113a65b0 Clear that up 2004-02-10 18:50:10 +00:00
Zeev Suraski acb1f365d2 Cleanup 2004-02-10 18:46:53 +00:00
Zeev Suraski b8a990ace7 Fix report_memleaks 2004-02-10 17:55:32 +00:00
Ilia Alshanetsky 9c1be88844 Fixed win32 build.
Fixed building of libfcgi when PHP is built from another directory.
Added missing headers needed for wait().
Removed duplicate signal.h header.
Removed unneeded variables.
2004-02-10 17:44:31 +00:00
Zeev Suraski f069be85bf Whitespace 2004-02-10 17:44:18 +00:00
Zeev Suraski 79a58abbbf Fix bug #26698 (exceptions handled properly during argument passing to functions) 2004-02-10 17:01:55 +00:00
Ilia Alshanetsky e8beeecf3e Fixed bug #26653 (open_basedir incorrectly resolved on win32). 2004-02-10 16:08:54 +00:00
Zeev Suraski b6e14b44b4 Fix bug #27186 2004-02-10 16:08:01 +00:00
Zeev Suraski da36a7c249 Fix bug #26869 2004-02-10 15:30:32 +00:00
Andi Gutmans 597410a0e0 Fix a couple of tests 2004-02-10 15:20:51 +00:00
Zeev Suraski 57aaad0dec Fix refcounting of ++/+= overloading (fix leak in __get()/__set()
based classes)
2004-02-10 14:52:14 +00:00
Jan Lehnardt 023e12cf3a - fix #27197 for Greg (cellog@php.net) 2004-02-10 14:40:39 +00:00
Dmitry Stogov 20add786ae WSDL caching was implemented 2004-02-10 13:41:21 +00:00
foobar 6529000fff Add test case for bug #26866 2004-02-10 12:58:36 +00:00
Andi Gutmans 91ee6c0ceb - Nuke more unused code 2004-02-10 11:44:17 +00:00
Zeev Suraski de583b2f91 Fix handling in assignment using multidimensional array syntax to string
offset ($s = "FUBAR"; $s[0][0] = 1;)
2004-02-10 11:39:52 +00:00
Andi Gutmans 70c418d064 - We will go with PHP 4 behavior. With the new object model assigning by
reference has lost a lot of its importance.
2004-02-10 11:20:52 +00:00
Andi Gutmans 041b5dc2f7 - Remove junk 2004-02-10 10:44:09 +00:00
Zeev Suraski d082fb03ee Fix exception handling in opcodes spanned across multiple oplines (fixes the crash in __set()) 2004-02-10 10:07:46 +00:00
Zeev Suraski 5feca6a388 Update NEWS 2004-02-10 09:37:11 +00:00
Zeev Suraski e8e9b2afee Implement get callback for SimpleXML (it now supports pre/post increment
as well as binary-assign-ops)
2004-02-10 09:30:38 +00:00
Zeev Suraski 439396188c - Fix pre/post increment for overloaded objects
- Fix binary-assign-op for overloaded objects

NOTE:  This requires the implementation of the 'get' callback!
2004-02-10 09:29:42 +00:00
Moriyoshi Koizumi e88babe8ac - Correcting test.
# still segfaults though.
2004-02-10 09:15:01 +00:00
fa0d19caa7 ChangeLog update 2004-02-10 01:34:00 +00:00
Ilia Alshanetsky 242296faeb Fixed bug #26758 (FastCGI exits immediately with status 255). 2004-02-10 00:29:46 +00:00
Ilia Alshanetsky 0f9d01d8ac Fixed bug #27026 (Added cgi.nph that allows forcing of the Status: 200
header that is not normally needed).
2004-02-10 00:02:38 +00:00
Ilia Alshanetsky 67dd730546 Fixed bug #27196 (Missing content_length initialization in apache 2 sapis). 2004-02-09 23:27:43 +00:00
foobar 1b6b63c3f9 ws 2004-02-09 18:18:00 +00:00
Frank M. Kromann d7961b69e2 Delay creation of exec handle til it's needed 2004-02-09 17:58:04 +00:00
Dmitry Stogov a55f6cb66c Allowing to report SOAP Fault with "return new SoapFault(...)" 2004-02-09 09:31:18 +00:00
Dmitry Stogov 3b19e196fa Allowing to pass request to SoapServer::handle direct (not through $HTTP_RAW_POST_DATA). 2004-02-09 07:51:07 +00:00
Ilia Alshanetsky 0e5020fdad Fixed bug #27172 (Possible floating point exception in gmp_powm()). 2004-02-09 04:27:35 +00:00
Ilia Alshanetsky ec09b090f9 Fixed bug #27175 (tzset() is not being called by PHP on startup). 2004-02-09 04:04:24 +00:00
9d21d82024 ChangeLog update 2004-02-09 01:32:12 +00:00
Timm Friebe fbc3eda353 - Initial release 2004-02-09 00:32:39 +00:00
Timm Friebe a8bd293005 - Changed error_reporting setting to E_ALL so we get the notices 2004-02-09 00:14:24 +00:00
Timm Friebe 06ab4e69db - Made server name and credentials contain something obviously incorrect.
- Made charset parameter default to "iso_1" (fixed "Sybase: Unable to
  update character set." warnings which were failing all tests when the
  official Sybase libraries were used - FreeTDS ignores this).
2004-02-08 23:58:46 +00:00
Andi Gutmans 3bf293ff89 - Change from PHP5 -> PHP 5 2004-02-08 22:49:47 +00:00
Zeev Suraski 2a9e1294bc Update to new API 2004-02-08 17:25:54 +00:00
Zeev Suraski 473927ece8 Fix write-mode of overloaded objects when using array dimensions 2004-02-08 17:23:20 +00:00
Andi Gutmans 8a129bfc47 - Check if free_storage exists 2004-02-08 17:08:11 +00:00
c952eb4bd8 ChangeLog update 2004-02-08 01:32:14 +00:00
foobar 6b8616889d Fixed bug #27171 2004-02-07 19:14:49 +00:00
Georg Richter e3d0e587b8 fixed cast warning 2004-02-07 13:45:44 +00:00
Stig Bakken aa8572cfba * obsolete 2004-02-07 08:31:09 +00:00
Greg Beaver 71b6a816f6 fix PATH_SEPARATOR issues - was defined in PHP 4.3.0, but documentation never showed this. 2004-02-07 04:42:07 +00:00
fed3044000 ChangeLog update 2004-02-07 01:32:11 +00:00
Dmitry Stogov 79dc8d5ef6 fix 2004-02-06 16:54:34 +00:00
Dmitry Stogov 59ab20b23b optimization 2004-02-06 16:52:14 +00:00
Ard Biesheuvel 9415013456 Fix build with Win32 Interbase 5.x 2004-02-06 15:11:17 +00:00
foobar b8e6cde6c6 fine tune 2004-02-06 14:59:51 +00:00
Dmitry Stogov 6ae97a5b25 WSDL cache was disabled by default (see WSDL_CACHE macro)
WSDL related memory leaks were fixed
2004-02-06 14:22:33 +00:00
Dmitry Stogov 88c1168941 Free XML documents after WSDL parsing (they no longer need). 2004-02-06 11:56:03 +00:00
Wez Furlong 2cf588a0a9 prefer != "no" over = "yes". (it doesn't really matter for ext/soap, but
it's still the best practice).
2004-02-06 09:18:51 +00:00
Dmitry Stogov c22d7cf883 PHP5 and WIN32 support was improved 2004-02-06 08:01:35 +00:00
Ilia Alshanetsky dfde3095e4 Possible fix for bug #27165. 2004-02-06 03:14:06 +00:00
Ilia Alshanetsky c858a4e93c Fixed possible memory leak with INI values. 2004-02-06 03:08:27 +00:00
Ilia Alshanetsky 1eb6a18289 Do not initialize & create vars unless they will be used. 2004-02-06 03:07:59 +00:00
f6b9419d2c ChangeLog update 2004-02-06 01:32:19 +00:00
Andrey Hristov e5bd298bbc typo 2004-02-05 21:11:26 +00:00
Dmitry Stogov 508273780c PHP API was changed (see readme.html for more details). 2004-02-05 20:26:05 +00:00
Sebastian Bergmann 0e3ce62c7b Committing for Jan. 2004-02-05 10:41:55 +00:00
Dmitry Stogov 2c1dcf32a0 WSDL parsing speedup. Source cleanup. 2004-02-05 09:28:09 +00:00
Stanislav Malyshev 1c433049ca fix serialization 2004-02-05 09:07:46 +00:00
Stanislav Malyshev 8487383ede fix test - remove warning 2004-02-05 09:03:37 +00:00
Antony Dovgal d3cd05c95a fix bug #27149
(offset should start with 1)
2004-02-05 08:29:16 +00:00
Ilia Alshanetsky 5b0c9335d3 Bug fixing news. 2004-02-05 02:17:33 +00:00
Ilia Alshanetsky 157a4e289a Fixed bug #27145 (Unmangle private/protected property names before printing
then inside error messages).
2004-02-05 02:16:08 +00:00
John Coggeshall fac5939f42 Updating tests that got left behind when we changed to studlyCaps
and fixed another test
2004-02-05 01:38:59 +00:00
e92f95346b ChangeLog update 2004-02-05 01:32:18 +00:00
Zeev Suraski e28ab687d2 Fix exceptions happening inside internal functions called through
zend_user_function()
2004-02-04 23:48:39 +00:00
Marcus Boerger 4a3c015dd7 Fix annoying warning 2004-02-04 23:41:58 +00:00
Zeev Suraski 14ac17fa95 Remove double initialization 2004-02-04 23:28:40 +00:00
Ilia Alshanetsky ffd3b1dd0a Parse command line ini directives passed using -d before -i, to ensure
correct settings output.
2004-02-04 22:49:28 +00:00
Wez Furlong a44838e8a3 Fix a bug in the persistent socket liveness checks and feof(); they were
using the default socket timeout of 60 seconds before returning the socket
to the calling script.  The reason they were using that value is that the
same code is used for feof(), so the fix is allowing the caller to
indicate the timeout value for liveness checks.

A possible remaining issue now is that 0 second timeout[1] for pfsockopen
is possibly too short; it's impossible to specify a sane value for all
possible uses, so maybe we need a stream context or an .ini option to
control this, or maybe use the timeout value that was passed to
pfsockopen().

# [1] by timeout, I mean the time that PHP will wait for data on a
# persistent socket before deciding if a new connection should be made;
# NOT the timeout while waiting for a new connection to be established.
2004-02-04 22:46:44 +00:00
Marcus Boerger 7fa5cdcb72 Add new prototype 2004-02-04 22:22:30 +00:00
Marcus Boerger 63c964c40f Fix reflection 2004-02-04 22:19:00 +00:00
Marcus Boerger 629c3da19d Add test 2004-02-04 22:18:35 +00:00
Marcus Boerger 8710688358 The &new is no longer needed, prevent E_STRICT message 2004-02-04 21:34:10 +00:00
Andi Gutmans ac4dc68608 - Added recent stuff to NEWS 2004-02-04 21:29:28 +00:00
Marcus Boerger 09fe52c687 Fix Warning 2004-02-04 21:04:39 +00:00
Marcus Boerger dd58eb3f6d Fix warnings 2004-02-04 21:04:12 +00:00
Zeev Suraski d3c9467432 Fixlet 2004-02-04 18:24:44 +00:00
Zeev Suraski bab3acc37b Fix handling of $this in some cases 2004-02-04 17:57:48 +00:00
Zeev Suraski 75d1fbec60 Update test (reason: can no longer assign to $this) 2004-02-04 17:55:44 +00:00
Zeev Suraski aa4fa62fc8 Update test (reason: early binding changes its behavior) 2004-02-04 17:47:35 +00:00
Zeev Suraski 4b4351c2d9 Update test (reason: early binding changes its behavior) 2004-02-04 17:45:08 +00:00
Zeev Suraski 52b5f3fea1 Handle additional cases 2004-02-04 17:10:44 +00:00
Dmitry Stogov 1f68c98aba Unnecesurry namespaces was removed form SOAP fault responces 2004-02-04 16:50:29 +00:00
Dmitry Stogov 62572919d8 SoapServer::fault() method was implemented
Unnecesurry namespaces was removed form SOAP fault responces
2004-02-04 16:49:48 +00:00
Zeev Suraski c5d842279c Reinstate early-binding for classes.
Note that this is available for downwards compatibility only - and it doesn't
work if you use new features (namely, interfaces).  Generally, people should
declare their classes before using them, but we just didn't want hell to break
loose (c)
2004-02-04 16:30:15 +00:00
Zeev Suraski 723641590a Optimize 2004-02-04 15:51:07 +00:00
Dmitry Stogov 9fa7d1c24a SOAP Headers was implemented (near complete) 2004-02-04 14:46:12 +00:00
Zeev Suraski 3df50001e1 - Improve $this assignment detection and generalize some code in zend_compile.c 2004-02-04 14:25:25 +00:00
Ilia Alshanetsky 91f46b7880 Fixed compile warnings. 2004-02-04 14:15:16 +00:00
Zeev Suraski e1fc3963ee -Error out when trying to re-assign $this 2004-02-04 13:56:41 +00:00
Zeev Suraski d77bbe344c kill warning 2004-02-04 12:45:56 +00:00
Zeev Suraski d89b7b23f9 API updates 2004-02-04 12:45:47 +00:00
Zeev Suraski 5c3e03a2ff The valid bit was necessary after all - restored 2004-02-04 12:30:48 +00:00
Zeev Suraski 6584dca194 Fixlets 2004-02-04 12:17:57 +00:00
Zeev Suraski 3ac58bffcf - Small fixes 2004-02-04 11:56:07 +00:00
Zeev Suraski 27f54a4c13 - Improve wording 2004-02-04 11:47:54 +00:00
Zeev Suraski 8424be849f - Update with new destructor code 2004-02-04 11:14:47 +00:00
Zeev Suraski f5f7d569a0 Change destructor implementation (details will follow on internals@) 2004-02-04 09:56:20 +00:00
Moriyoshi Koizumi 24eb1f6eb2 - Update libmbfl to the latest. This fixes several serious issues in the html
entity encoder and the encoding detection facility. There should be no
  problem with mailparse() as API change was made so carefully that it
  would be as small as possible.
2004-02-04 07:24:08 +00:00
c4ec00a46d ChangeLog update 2004-02-04 01:32:17 +00:00
Greg Beaver 570edb04a7 re-adding as binary - file is unmodified 2004-02-03 23:59:16 +00:00
Greg Beaver 6d44a96a83 remove in order to re-add as binary 2004-02-03 23:58:20 +00:00
Marcus Boerger dfad2955ee Update tests 2004-02-03 22:07:29 +00:00
Marcus Boerger 4137d77ca9 No longer needed 2004-02-03 22:05:30 +00:00
Marcus Boerger 38e5a2a374 Update tests 2004-02-03 21:52:46 +00:00
Marcus Boerger 363c587871 Nuke unused variable 2004-02-03 21:15:08 +00:00
Marcus Boerger 60a4a48e4e Fix Warning 2004-02-03 21:13:04 +00:00
Sebastian Bergmann e2e5c69f47 clone/__clone() related changes. 2004-02-03 16:56:37 +00:00
Dmitry Stogov 75e4f43d0c Initial support for client-part SOAP headers (very incomlete) 2004-02-03 16:44:57 +00:00
Dmitry Stogov f3a114a97f SoapServer constructor was extended by default SOAP version. 2004-02-03 16:43:38 +00:00
Zeev Suraski e4db2fb890 Remove unused variable 2004-02-03 15:51:09 +00:00
foobar 1f34bc0f10 touch 2004-02-03 15:50:21 +00:00
Zeev Suraski 3be75ceda2 Remove more garbage - valid bit was not really necessary 2004-02-03 15:49:15 +00:00
Zeev Suraski c5a7b668cd - Clean garbage (delete was nuked a long time ago) 2004-02-03 15:37:37 +00:00
Ilia Alshanetsky 871d8bdb57 More unneeded code removed. 2004-02-03 14:33:32 +00:00
Zeev Suraski 60bb89c505 Abort on parse error in an include file (patch by Ilia) 2004-02-03 14:32:02 +00:00
Zeev Suraski e1bf9cc4c2 Remove redundant code 2004-02-03 14:31:07 +00:00
Antony Dovgal f1c40a4a22 -remove obsolete types
-changes in config.m4 to make oci8 to compile with Oracle 10g
(thanks to cjbj at hotmail dot com for reporting both problems)
2004-02-03 14:21:09 +00:00
Stanislav Malyshev 3fd027c5ac fix bug #27120 and bug #25975 - preserve is_ref when bound
objects are serialized
2004-02-03 14:12:59 +00:00
Zeev Suraski 8013d5fa39 Fix try/catch block logic 2004-02-03 13:42:41 +00:00
Zeev Suraski 848d4aed8a Perform a bitwise copy of the object even when __clone() is defined.
__clone() is back to not requiring any arguments, as $that is no longer
needed ($this already contains a copy of the original object, by the time
we __clone() is executed).
Calling the parent clone is done using parent::__clone()
2004-02-03 12:36:13 +00:00
Zeev Suraski 9e60cb553f Rewrote exception support. Fixes a few limitations and bugs in the old
implementation, and allows exceptions to 'fire' much earlier than before.

Instructions on how to use the new mechanism will follow on internals@
shortly...

Note - this (most probably) breaks the current implementation of
set_exception_handler()
2004-02-03 12:17:09 +00:00
Stig Bakken 330d9f6352 SQLITE_ENCODING should be UTF8 rather than UTF-8 2004-02-03 08:38:22 +00:00
Martin Kraemer 3470ddc089 Prevent cvsclean from being removed on interrupts 2004-02-03 08:23:40 +00:00
foobar 1c593b7646 order 2004-02-03 06:44:45 +00:00
Vlad Krupin 66ebc334d6 This should allow us to read dictionary locations from the win32 registry when we use a custom config.
Not doing so when I added win32 support was an oversight.
Now all pspell_new_* functions should be usable on win32.
2004-02-03 05:40:25 +00:00
Ilia Alshanetsky 6dca37c50c Fixed possible overflow. 2004-02-03 03:10:28 +00:00
538d5199ea ChangeLog update 2004-02-03 01:32:21 +00:00
Andrey Hristov ab43b68476 typo fix 2004-02-02 22:41:56 +00:00
Marcus Boerger b1c77fcce3 TSRM fixes 2004-02-02 21:27:13 +00:00
Marcus Boerger 391494c0ef Tests are executed with E_STRICT 2004-02-02 19:26:52 +00:00
Dmitry Stogov a70a620a01 fix: proper handling of SOAP 1.1 href and unresolved attributes references 2004-02-02 17:39:10 +00:00
Dmitry Stogov 862bf61de9 *** empty log message *** 2004-02-02 16:21:09 +00:00
Dmitry Stogov 840526f1d3 Server-part support for SOAP Headers was implemented (incomplete) 2004-02-02 16:19:39 +00:00
Ard Biesheuvel c9941f9d20 Interbase news 2004-02-02 15:44:03 +00:00
Ard Biesheuvel 1db65dfa93 Use correct flag for repair options 2004-02-02 14:57:20 +00:00
Ard Biesheuvel f7e1724096 Fix Win32 build 2004-02-02 14:01:41 +00:00
Ard Biesheuvel 80e3384756 Use php_ prefix for header files
Added nearly complete implementation of service API
2004-02-02 13:49:48 +00:00
Ard Biesheuvel 2430a27d7f Use php_ prefix for header files. 2004-02-02 13:47:56 +00:00
Zeev Suraski 8e30d96ad8 Redesign the clone() feature to fix some fundamental flaws in the previous
implementation.

Using clone directly is now done using
$replica = clone $src;

Clone methods must now be declared as follows:
function __clone($that)
{
}

Clone methods in derived classes can call the __clone method of their parent
classes using parent::__clone($that)
2004-02-02 12:28:19 +00:00
Antony Dovgal c7699856fc add missing alias for ocifreecursor() 2004-02-02 08:26:15 +00:00
foobar 7ad385b109 CS fix (functions should not be available if they are not available :) 2004-02-02 08:10:31 +00:00
Antony Dovgal fec01159b1 fix yet another possible segfault 2004-02-02 08:09:53 +00:00
59369e08ab ChangeLog update 2004-02-02 01:32:08 +00:00
Ilia Alshanetsky 25053ba01b Fixed possible overflows. 2004-02-02 00:06:17 +00:00
Ard Biesheuvel 1932317844 No explicit inline (fixes Win32 linkage issue) 2004-02-01 18:42:47 +00:00
Ard Biesheuvel 52578bc37f Whoops line endings 2004-02-01 17:54:56 +00:00
Ard Biesheuvel 7b606b98d4 Remove extension internals from php_interbase.h 2004-02-01 17:52:36 +00:00
Ard Biesheuvel 254eb0f05d Test for Interbase version 6 API in 'configure'
# Always enable in Win32 for the time being
2004-02-01 17:42:26 +00:00
Ard Biesheuvel 69d53a7676 Added backup/restore functions
Split interbase.c into several files
# It was becoming too big to handle
2004-02-01 16:13:07 +00:00
Sebastian Bergmann e4ad9209ed ZTS fix. 2004-02-01 08:34:47 +00:00
Moriyoshi Koizumi 65e22c3316 - Forgot to add test case. 2004-02-01 03:03:15 +00:00
Moriyoshi Koizumi 5d9495dfe7 - Binary compatibility stuff, for safety. 2004-02-01 03:02:47 +00:00
343d4314b4 ChangeLog update 2004-02-01 01:32:26 +00:00
Greg Beaver 20c8e629a4 make pear run-tests work with PEAR core tests, allow it to work for Windows users as well 2004-01-31 22:39:25 +00:00
Moriyoshi Koizumi 0330fb2cbf - Fix bug #27103 (preg_split('//u') incorrectly splits UTF-8 strings into octets). 2004-01-31 22:36:33 +00:00
Moriyoshi Koizumi 8e44a6ba0a - POSIX / ISOX compliancy. This is needed to correctly handle UTF-8 characters. 2004-01-31 21:56:42 +00:00
Marcus Boerger 46be4c2626 Throw an exception in case a reflection object cannot be found and do not
override the exception from constructors in static method calls.
2004-01-31 12:20:20 +00:00
Georg Richter cccb92b233 Corrected binding:
if column has type DECIMAL it will converted to string now.
  Thanks to Brian Aker for pointing this out.
2004-01-31 07:51:03 +00:00
5eb038002e ChangeLog update 2004-01-31 01:31:58 +00:00
Georg Richter 1baf3d3478 added nuw_rows property for statement object 2004-01-30 22:45:19 +00:00
Dmitry Stogov 4b74d4fbba Server part support for "document" style encoding was implemented 2004-01-30 16:32:53 +00:00
Dmitry Stogov 92aa602af0 Some tests from official SOAP 1.2 specification was added 2004-01-30 15:08:52 +00:00
Dmitry Stogov b81645edd3 SOAP 1.2 specification conformity was improved 2004-01-30 15:07:19 +00:00
Wez Furlong 356e8f9b7d word fix 2004-01-30 10:15:24 +00:00
Dmitry Stogov 134faf074c Support for https:// through proxy was implemented 2004-01-30 09:26:56 +00:00
foobar 47f2943d0e order 2004-01-30 09:21:05 +00:00
Marcus Boerger bfed0430fa Include Sascha's indendation hint 2004-01-30 07:53:12 +00:00
Marcus Boerger 9a3355608d Newer compilers don't need this so many people don't know. Hence we make
it a coding standard.
2004-01-30 07:01:25 +00:00
Ilia Alshanetsky b4e882d013 Apply the same parse error handling to (include|require)_once as the one for
their non-once counterparts.
2004-01-30 02:22:17 +00:00
41c43230da ChangeLog update 2004-01-30 01:32:51 +00:00
Sara Golemon 18588497d7 Fix potential bug in http:// proxy support.
Some proxy servers require entire URI be sent in request string.

Add context option "http"/"request_fulluri" to allow this behavior.
2004-01-30 00:24:18 +00:00
Dmitry Stogov 26cb17718c *** empty log message *** 2004-01-29 17:24:03 +00:00
Ilia Alshanetsky 4b1fadbf1c Proper configure switch for sqlite. 2004-01-29 17:21:16 +00:00
Dmitry Stogov 05114460ba Rollback: persistent PHP streams (dont work with "kafka") 2004-01-29 15:32:06 +00:00
Ilia Alshanetsky dfaa06dbd7 Apache 2 portion of the fix for bug #25753. 2004-01-29 15:18:26 +00:00
Dmitry Stogov c33d480386 PHP4 support
HTTP proxy support for PHP4
Using persistent PHP streams for HTTP connections
2004-01-29 15:11:16 +00:00
Dmitry Stogov e439a1af7f fix: "Authors" corrected 2004-01-29 11:51:11 +00:00
Dmitry Stogov 5ab77a9268 Support for HTTP proxies was implemented 2004-01-29 11:26:52 +00:00
Derick Rethans 9d2f84e411 - Add our standard header 2004-01-29 09:27:06 +00:00
Dmitry Stogov 49b9c59518 Support for nonWSDL mode was improved (SoapVal,SoapVar,SOAPAction...) 2004-01-29 09:03:28 +00:00
Dmitry Stogov c7cfe9f8e3 fix: possible crash was fixed 2004-01-29 06:37:51 +00:00
Ilia Alshanetsky 194509f093 Fixed bug #27007 (missing connection closure when connect fails in pgsql). 2004-01-29 02:54:30 +00:00
Ilia Alshanetsky 7d31f3772c Fixed bug #27037 (fixed possible crash in apache2handler output code). 2004-01-29 02:16:47 +00:00
580c439c6e ChangeLog update 2004-01-29 01:32:20 +00:00
Rob Richards 109ea54871 fix corruption when cloneDocument is not defined 2004-01-29 00:33:20 +00:00
Marcus Boerger 37cf05d1b8 Update 2004-01-29 00:10:33 +00:00
Sara Golemon a172481869 This should not have been an INI_ALL directive. 2004-01-29 00:08:21 +00:00
Marcus Boerger 760e43e373 removed experimental status 2004-01-28 23:00:31 +00:00
Marcus Boerger 390ae1a8b8 - Fix second issue with #27042
- Little improvement
- Update test
2004-01-28 22:59:03 +00:00
Georg Richter 7782a4b425 removed experimental status
fixed bug in mysqli_data_seek (thx to Andrey "Effendi" Hristov)
various prototype fixes
moved some methods to properties which are part of mysql struct
added function mysqli_get_server_version
2004-01-28 22:51:54 +00:00
Sara Golemon c603f3112e FTP dirstream_read should not leave whitespace/newlines on dirents 2004-01-28 22:50:12 +00:00
Zeev Suraski d45541b4fb Tweak checks to detect some additional cases.
Reorder checks to make more sense.
2004-01-28 22:27:39 +00:00
Sara Golemon 6d10371ec6 'Bug Fix': scandir, being a new function in PHP5 should have always been wrapper aware. 2004-01-28 22:21:54 +00:00
Ilia Alshanetsky e691cbd4ee Fixed bug #27011 (64bit int/long confusion in preg_match*() functions). 2004-01-28 21:47:36 +00:00
Andrey Hristov eaab3ef8cd this should not belong to HEAD 2004-01-28 20:25:30 +00:00
Rasmus Lerdorf a61c2d667c Fix applies to apache_hooks sapi as well. See bug #25753 for details. 2004-01-28 17:59:07 +00:00
Rasmus Lerdorf 44df89f00d MFB - see bug #25753 for details 2004-01-28 17:49:49 +00:00
Dmitry Stogov 6cf3c8586e Error reoprting improved by prefix
New 'HTTP' fault code
Source cleanup
2004-01-28 16:47:49 +00:00
Martin Kraemer 01c6257c5c Bug fix: Images would be broken on big-endian machines because the putc
function wrote the first (instead of "the low order") byte. That resulted
in unexpected zero bytes.
2004-01-28 16:25:12 +00:00
Dmitry Stogov 381d4e4ffa Source cleanup 2004-01-28 13:36:31 +00:00
Dmitry Stogov 84f259b448 Test suite for XML Schema and SOAP encoding/decoding 2004-01-28 13:33:48 +00:00
Dmitry Stogov 43f0131ea1 Source cleanup 2004-01-28 13:31:28 +00:00
Dmitry Stogov 2238e4b9f0 Add namespaces to <Envelope> (not ot subnodes) 2004-01-28 13:30:21 +00:00
Zeev Suraski be7d41b905 - Error message fix
- Prevent inheritance of the same constant from two interfaces
2004-01-28 11:53:52 +00:00
Zeev Suraski a7ff369cac Fixlets 2004-01-28 10:52:27 +00:00
Zeev Suraski 2adaa11f2f Prevent classes from implementing interfaces that have the same function 2004-01-28 10:25:45 +00:00
Zeev Suraski ae0e9e62dd Whitespace 2004-01-28 10:24:57 +00:00
Zeev Suraski 673e6e23e7 Code relayout 2004-01-28 09:13:41 +00:00
Zeev Suraski c15d4ddb2b Forward-port fix for timeouts under Windows 2004-01-28 09:07:02 +00:00
Antony Dovgal fab593566e two fixes:
-oci_lob_load shouldn't reset LOB's length to zero
-Oracle feels bad, but reports no error, when trying to erase LOB with offset bigger than LOB
2004-01-28 07:15:55 +00:00
Ilia Alshanetsky 7bbe518f8b Fixed bug #27058 (crash in sybase_connect() with 2 arguments). 2004-01-28 01:43:45 +00:00
Ilia Alshanetsky 472a3a2446 Fixed bug #27056 (ints used instead of longs inside some GD functions). 2004-01-28 01:36:53 +00:00
1c347eccf8 ChangeLog update 2004-01-28 01:32:12 +00:00
Andrey Hristov 463f510796 message about that mysql_list_tables() is deprecated 2004-01-27 23:14:42 +00:00
Wez Furlong e1ae61802b Fix segfault for scripts like this:
<?php
pfsockopen("foo");
pfsockopen("foo");
?>
Where the transport fails to connect (since args are bogus);
the problem was that the persistent stream entry was not
correctly freed.
2004-01-27 22:40:44 +00:00
Dmitry Stogov 4af9e35316 fix: HTTP keep-alive 2004-01-27 16:19:22 +00:00
Dmitry Stogov c10038a9ee enabling HTTP status code 100 (used by Delphi SOAP) 2004-01-27 16:07:58 +00:00
Dmitry Stogov a6c94a8bf9 SOAP Fault uses HTTP status code 500 2004-01-27 15:49:34 +00:00
Dmitry Stogov 1b6f176281 Support for relative path in WSDL and XML Schema <import> 2004-01-27 15:48:19 +00:00
Georg Richter 692726cdd3 changed prototype mysql_dataseek from void to bool
add check for specified offset
2004-01-27 13:56:03 +00:00
Georg Richter 429aa55248 prototype fixes
removed method field_tell (which is already property current_field)
2004-01-27 13:23:54 +00:00
Dmitry Stogov 5294a539e2 Allow <element>s with same names 2004-01-27 12:07:57 +00:00
Dmitry Stogov 6eeec41c4d fix: error handling 2004-01-27 10:24:48 +00:00
Dmitry Stogov 3787c94c2a XML Schema support was improved
support for <attribite> default and fixed values
	support for encoding of list elements
2004-01-27 10:23:20 +00:00
Dmitry Stogov b0b60d945f Proper handling of SOAPAction in SOAP 1.1 and SOAP 1.2 2004-01-27 06:54:14 +00:00
Ilia Alshanetsky 4cc62a06f6 Removed unused variable. 2004-01-27 03:20:35 +00:00
69038b6d18 ChangeLog update 2004-01-27 01:32:27 +00:00
Marcus Boerger a43693eaf0 Must use zval* here 2004-01-26 23:59:50 +00:00
Marcus Boerger 617b8df6c0 Remove test code 2004-01-26 23:20:00 +00:00
Marcus Boerger 6186617571 - Export struct zend_user_iterator
- Ad 'it' to function prefix to prevent naming clashes
- Export zend_user_it_free_current
2004-01-26 22:33:52 +00:00
Marcus Boerger 5ac404eb64 Fixed bug #27042 (SPL: SeekableIterator seek() broken). 2004-01-26 22:30:25 +00:00
Georg Richter c139c48a99 fixed compiler warning (thx to Marcus Boerger) 2004-01-26 20:08:16 +00:00
Dmitry Stogov d23a557d9d <Fault> encoding was changed 2004-01-26 17:14:32 +00:00
Dmitry Stogov c25df9d8c6 fix 2004-01-26 17:14:07 +00:00
Dmitry Stogov 1e5ebeb95d Support for SOAP 1.2 Fault/Code/Value and Fault/Reason/Text 2004-01-26 17:11:05 +00:00
Dmitry Stogov fd773c92cb fix: memory leaks 2004-01-26 16:20:19 +00:00
Dmitry Stogov 9387d78fd0 SOAP 1.2 Fault support (Code,Reason,Datail instead of faultcode,faultstring,...) 2004-01-26 16:19:29 +00:00
Antony Dovgal 6fe26e966d change to use different allocator (Sascha, thanks =) ) 2004-01-26 15:42:24 +00:00
Antony Dovgal 83a1eaf75a fix this annoying notice about limited range 2004-01-26 15:25:32 +00:00
Antony Dovgal f64928bdce improve debug messages 2004-01-26 15:21:52 +00:00
Dmitry Stogov fbead642ad Support for SOAP 1.2 RPC binding (<rpc:result>) 2004-01-26 15:13:45 +00:00
Dmitry Stogov adb3562d8e XML Schema support was improved
support for unsignedLong standard type was fixed
  restrictions checking was disabled
  support for standard list types (IDREFS, IDS, NOTATIONS)
2004-01-26 15:12:34 +00:00
Antony Dovgal 9fcb1dd2c9 oops =(
forgot these brackets..
2004-01-26 14:02:08 +00:00
Antony Dovgal 15f22a5796 fix oci_field_type_raw's proto
oci_collection_element_get should return FALSE only if there is no such element and NULL, if it's null
2004-01-26 13:59:42 +00:00
Adam Dickmeiss 79d42d1e91 New function yaz_es that creates Z39.50 Extended Service Package to
facilitate record update, database create, database drop.
2004-01-26 13:40:52 +00:00
Georg Richter 5066f521db proto fixes
removed mysqli_read_query_result (will be removed in libmysql)
2004-01-26 13:38:13 +00:00
Sebastian Bergmann 29fa2036ef Update URL. 2004-01-26 12:37:48 +00:00
Dmitry Stogov 6309dd4c26 Apache namespace was removed 2004-01-26 09:51:45 +00:00
Dmitry Stogov e3cfa02b4e XML Schema support (decoding of xsi:nil with attributes)
Source Cleanup
2004-01-26 09:51:07 +00:00
Marcus Boerger 7e6b108a96 Add README 2004-01-26 08:37:23 +00:00
Marcus Boerger ed650274eb We are in c not c++ 2004-01-26 07:52:52 +00:00
Georg Richter 85510ff3a1 more prototype fixes.
fixed a bug in mysqli_send_long_data
2004-01-26 07:39:57 +00:00
foobar f869e198e8 - Fixed compile problem with CURLOPT_HTTPAUTH 2004-01-26 04:59:59 +00:00
foobar dbff3d8b97 test for bug #26900 2004-01-26 04:37:50 +00:00
foobar e3c80d52da - Remove gpc_order since it doesn't serve any purpose. 2004-01-26 04:15:08 +00:00
Pierre Joye 3507f04062 - "Fix" the command name in the usage text 2004-01-26 01:59:14 +00:00
Pierre Joye e3af7958a5 - # 521 entry 2004-01-26 01:36:51 +00:00
48a98f78ee ChangeLog update 2004-01-26 01:33:25 +00:00
Pierre Joye f9bfd58bd7 - Remove useless property 2004-01-26 00:57:30 +00:00
Pierre Joye 477de56f71 - Fix #521, incorrect filename in CS warnings 2004-01-26 00:49:16 +00:00
Moriyoshi Koizumi b2402396a9 - Suppress a compiler warning by a rather useless typecasting. 2004-01-26 00:27:24 +00:00
Moriyoshi Koizumi e226ed0e21 - Fix bug #26699 (mbstring encoding types does not include "binary"). 2004-01-26 00:19:25 +00:00
foobar 03e4695d3d - Fixed bug #27040 (passing an array of form-fields to CURLOPT_POSTFIELDS does not work). 2004-01-26 00:16:16 +00:00
Ilia Alshanetsky 0cb89236a3 Fixed bug #26814 (On parse error include included file, terminate
execution script).
2004-01-25 23:54:12 +00:00
Pierre Joye 48fb978f72 - Use is_a 2004-01-25 23:53:13 +00:00
Pierre Joye 2b88a7b667 WS 2004-01-25 23:36:28 +00:00
Pierre Joye bff0e9df23 - Update Mail, HTTP and DB. Adding new archives 2004-01-25 23:09:05 +00:00
Pierre Joye 8fad852352 - Update HTTP, DB and Mail packages 2004-01-25 23:08:09 +00:00
Timm Friebe 426c34b355 - Initial release 2004-01-25 20:04:24 +00:00
Timm Friebe 64ef58f483 - Added test for case when incorrect argument type is
passed to sybase_set_message_handler()
2004-01-25 20:04:08 +00:00
Timm Friebe 35409efd9a @- Added ability to define a message handler not only globally, but also
@  per connection (Timm)
@- Made sybct.login_timeout changeable at runtime (Timm)
@- Added ini option sybct.packet_size which lets you control the packet
@  size (Timm)
2004-01-25 20:03:10 +00:00
Marcus Boerger 0711fdcede Show supported classes & interfaces in -i and phpinfo() 2004-01-25 17:30:19 +00:00
Ard Biesheuvel e0c0c9f620 MySQL is no longer built in by default 2004-01-25 15:18:02 +00:00
Ard Biesheuvel 86fe4ab6a1 CS 2004-01-25 15:08:31 +00:00
Andrey Hristov ca3001faf8 entrt about feature request #24258 2004-01-25 14:00:59 +00:00
Marcus Boerger d51218f221 BFN 2004-01-25 13:33:43 +00:00
Marcus Boerger 6e2cf148a4 Respect proeprty visibility in foreach 2004-01-25 13:32:02 +00:00
Marcus Boerger db86475367 Update test 2004-01-25 13:19:16 +00:00
Marcus Boerger bec76cab71 Update examples 2004-01-25 13:03:24 +00:00
Ard Biesheuvel eb7aca4ea8 Check for both Firebird 1+ and Interbase/FB1 2004-01-25 12:03:24 +00:00
Georg Richter a2380e901b prototype fix for mysqli_fetch 2004-01-25 12:01:36 +00:00
Marcus Boerger 386310ea02 BFN 2004-01-25 11:54:28 +00:00
foobar 2a05750281 Fixed bug #27020 (Compile failure; sys/select.h: No such file or directory) 2004-01-25 06:09:36 +00:00
733e2dae08 ChangeLog update 2004-01-25 01:32:26 +00:00
Ard Biesheuvel 6b8c406481 Changed prototypes to allow parsing of string literals and constant strings
Minor CS/WS
2004-01-25 00:30:50 +00:00
Marcus Boerger 8045b9c6fd TSRM fix 2004-01-24 17:07:50 +00:00
Marcus Boerger 3ca44539a1 Switch from ZEND_ACC_DYNAMIC to ZEND_ACC_ALLOW_STATIC and disallow calling
internal non-static methods statically.
# As discussed with Zeev:
# - For BC standard userspace methods allow this with an E_STRICT message.
# - If you want to implement an internal method taht can be called both
#   statically and non-statically then use flag ZEND_ACC_ALLOW_STATIC.
# - Magic user space methods __*() cannot and __construct, __destruct,
# __clone can never be called statically.
2004-01-24 16:59:24 +00:00
Timm Friebe e36cfeb0a9 - Added test on char type 2004-01-24 15:18:52 +00:00
Georg Richter ed135edbda prototype fixes 2004-01-24 14:38:16 +00:00
Sebastian Bergmann 1e902b696d Change message as proposed by Jon. 2004-01-24 04:59:47 +00:00
Timm Friebe c5df5b7507 - Initial release 2004-01-24 02:54:33 +00:00
Timm Friebe 96b80f86a1 - Initial release 2004-01-24 02:42:26 +00:00
Timm Friebe 095e82fe28 - Initial release 2004-01-24 02:18:13 +00:00
Timm Friebe 4cb85d4bc1 @- Fixed bug #22403 "PHP crashes when executing a sql procedure without
@  parameters" (Timm)
@- Fixed memory leak in sybase_set_message_handler() (Timm)
# Fixed bug with large numerics correctly (initial fix in r. 1.76 failed
# for MAX_LONG + 1, for example)
2004-01-24 02:17:42 +00:00
6b7e6992a2 ChangeLog update 2004-01-24 01:32:18 +00:00
Marcus Boerger d39bd31291 This is a definitive 'must' 2004-01-24 00:42:40 +00:00
Andrey Hristov 9957fc6305 Added third parameter (optional) to array_keys for strictness. It behaves
like the "strict" parameter of in_array().
#Closing feature request #24258
2004-01-24 00:25:58 +00:00
Andrey Hristov 85de35e470 Adding note about declaration first use after that for classes.
#I had no time recently to add this but since a user complained on
#internals....
2004-01-24 00:14:43 +00:00
Marcus Boerger eff2006e4e Fix this example 2004-01-23 22:33:45 +00:00
Marcus Boerger 6020ffd007 Simplify detection of methods that must be called dynamic (with object) 2004-01-23 22:04:42 +00:00
Marcus Boerger 4c0b1fddab Builtin recursion protection (by disallow to follow links by default). 2004-01-23 21:33:56 +00:00
Marcus Boerger bd294582c3 Fix. Found by adam 2004-01-23 21:03:20 +00:00
Marcus Boerger 79e7145cc7 Disallow calling __clone/__construct/__destruct static
Send an E_STRICT when calling a non static method static
2004-01-23 20:58:23 +00:00
Marcus Boerger 7c2e02d380 Disallow static declaration of clone 2004-01-23 20:52:39 +00:00
Dmitry Stogov 3eb16bc3a9 fix 2004-01-23 15:34:52 +00:00
Dmitry Stogov 2a5593dd0d disabling import if file was already loaded 2004-01-23 15:29:59 +00:00
Dmitry Stogov 695436b709 XML Schema support was improved
support for type extension
	support for attribute encoding/decoding
	support for SOAP 1.2 array encoding/decoding
2004-01-23 14:43:15 +00:00
Dmitry Stogov 6277204a35 XML Schema support was improved
suport for type extension
2004-01-23 09:15:58 +00:00
foobar ad1ccd68eb typofix (thanks to Mehdi Achour for noticing this) 2004-01-23 07:02:15 +00:00
foobar 6a1d0114a7 Silence some compile warnings 2004-01-23 03:28:59 +00:00
ddfe5648fe ChangeLog update 2004-01-23 01:32:09 +00:00
Rob Richards b5e7a6dae0 update test 2004-01-22 22:12:21 +00:00
Marcus Boerger 95c15b024a Add new test 2004-01-22 21:55:09 +00:00
Marcus Boerger 66ed0a49fa Update tests 2004-01-22 21:47:54 +00:00
Rob Richards bc2521b662 Fix bug #27010: segfault after returning nodes with children()
Fix segfault in match_ns when matching prefix and node without ns
some general cleanup and code consilidation
better write handling - engine support dependent
better isset handling - engine support dependent
namespace fixes for reading/writing
2004-01-22 21:30:14 +00:00
Rob Richards 7e619b7f5f update constructors so they cant be called statically 2004-01-22 21:16:05 +00:00
Marcus Boerger c4c6d5213a Fix internal access to exception properties 2004-01-22 19:53:09 +00:00
Dmitry Stogov ec2950854a XML Schema support was improved
support for content model (<sequence>,<all>,<choice>)
	support for top-level <group>
	support for <group> 'ref' attribute
	support for content model encoding/decoding (incomplete)
	support for attribute encoding/decoding (incomplete)
	support for <attribute> with inline anonymous <simpleType>
2004-01-22 15:58:03 +00:00
Pierre Joye 0dd6bd1d9f - Update examples to studlyCaps syntax 2004-01-22 15:45:50 +00:00
Antony Dovgal a729ce0434 add collections support to win32 build 2004-01-22 14:42:17 +00:00
Antony Dovgal dbb29baefe add missing protos
and some minor changes
2004-01-22 08:39:50 +00:00
Antony Dovgal 261726099c MFB
oci_lob_save() should be removed indeed, but we're already in feature freeze =(
2004-01-22 08:05:14 +00:00
cd96ff5496 ChangeLog update 2004-01-22 01:32:08 +00:00
foobar 8cd863f738 test case for bug #26938 2004-01-21 22:48:28 +00:00
Marcus Boerger a3a19e915a Change to correct syntax.
# The test will still fail though.
2004-01-21 22:36:49 +00:00
Marcus Boerger 2a8300e03d All technical reasons that prevented us from studlyCaps are solved
and all current extensions as well as the whole PEAR framework follow
this rule. So for consistency i readd it.
# Also we had the discussion onece and decided for this.
# Lookup the archieves
2004-01-21 20:18:09 +00:00
Ilia Alshanetsky 17d420e5f7 Fixed bug #26938 (exec() has problems reading long lines). 2004-01-21 16:57:13 +00:00
Antony Dovgal 02ded9766a *change constant name, coz it doesn't comply with others
*add constant's alias, coz others do have aliases
*change protos (oops =))
*add notices to collection functions
*change coll_element_get & coll_assign to inform user, that this type of element is not supported yet.
2004-01-21 16:18:58 +00:00
Dmitry Stogov abeaffbde6 Source cleanup 2004-01-21 16:04:37 +00:00
Rob Richards a4c2f31751 Fix namespace regression bug
Read attributes correctly
Update sxe_prop_dim_exists logic
Update profile
2004-01-21 14:04:47 +00:00
Dmitry Stogov a592b7ef0a XML Schema support was improved
xml tree cleanup (save memory and parsing time)
	support for <inclide> and <import>
	support for top-level <attribute>
	support for <attribute> 'ref' attribute
	support for top-level <attributeGroup>
	support for <attributeGroup> 'ref' attribute
2004-01-21 14:00:55 +00:00
Antony Dovgal c375c68073 fix potential segfault in oci_lob_write()
change oci_lob_trim() - truncate length should be 0 by default.
2004-01-21 12:30:05 +00:00
Rob Richards 500fa86c1b Fix Bug #26976 (Can not access array elements using array indices)
return index 0 as non iterable object
update test
2004-01-21 11:32:30 +00:00
Ard Biesheuvel 8992afd3dc MFB 2004-01-21 10:22:04 +00:00
Hartmut Holzgraefe c280629023 News update on new streams method 2004-01-21 10:20:45 +00:00
John Coggeshall 1bad08a80f Moving the OO syntax to studlyCaps.
I am *not* changing this back :)
2004-01-21 10:19:56 +00:00
Hartmut Holzgraefe 234e8a76c4 stream_lock() method added to userspace streams wrapper 2004-01-21 10:17:12 +00:00
Jon Parise 9dd817bbd6 Adding dependencies on sqlite.h for the rest of the source files in the
libsqlite distribution.
2004-01-21 08:51:28 +00:00
foobar 6fa3a49e6f Last php4 occurances.. 2004-01-21 07:47:11 +00:00
Marcus Boerger b77413bdd0 Fix TSRM 2004-01-21 07:07:34 +00:00
foobar e23a1b8a5c Break out the test with first hit. 2004-01-21 05:04:30 +00:00
Sara Golemon 1fb629de8a Typo 2004-01-21 04:08:10 +00:00
foobar 56373e08d6 - Fixed bug #26973 (*printf() + modifier broken) 2004-01-21 04:00:07 +00:00
foobar 6f56bc3b8d extend a bit 2004-01-21 03:58:30 +00:00
foobar d7a54202d8 test case for bug #26973 2004-01-21 03:49:15 +00:00
foobar 21d5052f70 typo fix 2004-01-21 03:18:13 +00:00
foobar 4716c724d2 test for bug #26976 2004-01-21 03:17:07 +00:00
Ilia Alshanetsky eb3ff409b0 Fixed bug #26974 (rename() doesn't check the destination file
against safe_mode/open_basedir).
2004-01-21 02:28:50 +00:00
e36f5fb08b ChangeLog update 2004-01-21 01:32:05 +00:00
foobar bdd3b13c53 Goto targets should not be indented (some compilers choke on this, iirc) 2004-01-21 01:09:41 +00:00
Marcus Boerger 3b207ccb12 Add cvs tags 2004-01-20 20:59:45 +00:00
Marcus Boerger fe03687b00 Fix a warning 2004-01-20 20:16:30 +00:00
Marcus Boerger b0320c6032 Prevent shared builds under windows too 2004-01-20 19:49:21 +00:00
Wez Furlong 8691f86cb8 default to compiled in to match unix. 2004-01-20 17:18:41 +00:00
Dmitry Stogov 67886b8321 XML Schema support
- support for <element> 'ref' attibute was implemented
  - support for inline types
  - support for <list> and <union> (incompleate)
2004-01-20 16:30:38 +00:00
Rob Richards a4815f7c8e Warn when empty string supplied to load methods (by Pierre-Alain)
Fix refcount on xpath iterators
xpath_query should return nodelist even when empty
2004-01-20 11:35:32 +00:00
Wez Furlong 42110742b7 update todo part of readme 2004-01-20 11:01:16 +00:00
Marcus Boerger 920358a0cc Fix warning (and possible problem) 2004-01-20 07:27:47 +00:00
Sterling Hughes bd306c8b52 - 2004-01-20 05:31:50 +00:00
495860928a ChangeLog update 2004-01-20 01:32:06 +00:00
foobar d2e8751f86 - Fixed Bug #26969 (shared openssl build fails) 2004-01-20 01:11:04 +00:00
foobar 5908334ea3 BfN 2004-01-20 00:26:23 +00:00
foobar a5ad026469 test case for bug #26696 2004-01-20 00:25:30 +00:00
Frank M. Kromann 0d6fcd02cb Fix compilation of simplexml when spl is build as shared object 2004-01-19 23:44:03 +00:00
Frank M. Kromann 25cb3d01d5 Fix compilation of spl as shared object 2004-01-19 23:43:03 +00:00
Christian Stocker 6b70f9d1b3 Fix leaks in dom_xpath_query (create retval only if requiered) by Pierre-Alain 2004-01-19 21:08:29 +00:00
Christian Stocker 00af01bb94 fixes segfault, if file doesn't exist (by Pierre-Alain) 2004-01-19 20:54:40 +00:00
foobar dde4c166c9 - Make sure srand() / mt_srand() are really called. 2004-01-19 19:01:17 +00:00
Ilia Alshanetsky 39b62f26cf Fixed bug #26967 (make various file operations return FALSE on error). 2004-01-19 18:40:39 +00:00
Christian Stocker ab26ac118d really fix this test... 2004-01-19 17:38:47 +00:00
Christian Stocker efed27ae1b fix test 2004-01-19 17:35:38 +00:00
Christian Stocker 37cc0df732 added missing dots.. 2004-01-19 17:30:35 +00:00
Christian Stocker d4488ccf2d Cosmetics and NEWS entry 2004-01-19 17:27:22 +00:00
Moriyoshi Koizumi e4d90e60fc - Turn off mbstring.func_overload as this test uses plain strlen() for
comparison.
2004-01-19 16:53:34 +00:00
Dmitry Stogov 039d88ac99 XML Schema support was impoved 2004-01-19 16:40:37 +00:00
Christian Stocker 23b30e9a30 @- added XsltProcessor->registerPhpFunctions() (Christian)
without that method call, it is not allowed to call php functions from
xslt stylesheets for security reasons.
2004-01-19 15:07:08 +00:00
Christian Stocker c0a1f294e9 adjust test 2004-01-19 15:00:59 +00:00
Martin Jansen 36137aefe0 * CS 2004-01-19 13:57:38 +00:00
Andi Gutmans 21f09643ec - Hopefully fix bug #26696.
- Please let me know if hell-breaks loose
2004-01-19 12:22:02 +00:00
Christian Stocker 04c2e1e8c4 fix typo 2004-01-19 11:07:19 +00:00
Marcus Boerger 6b8f137905 Must be buitin 2004-01-19 08:48:30 +00:00
Marcus Boerger 10d48448a4 Add spl_sxe to prackage 2004-01-19 08:32:58 +00:00
Derick Rethans ff86abeab6 - Being picky :) 2004-01-19 08:32:26 +00:00
Sebastian Bergmann 32f7ba2bd6 Add spl_sxe.c. 2004-01-19 08:31:16 +00:00
Derick Rethans 067dfa7029 - SPL lives now in ext/ 2004-01-19 08:28:15 +00:00
Dmitry Stogov a68777e954 XML Scheam support 2004-01-19 07:22:53 +00:00
Ilia Alshanetsky 608db4728b Added fgetcsv() tests. 2004-01-19 03:55:29 +00:00
Greg Beaver b0494146b6 fix -m argument to mkDir(). Conversion to octal was not being made,
and a string should never be passed into mkdir().

Thanks to Alex Hayes
2004-01-19 03:32:12 +00:00
foobar e0782e2519 - Moved php_srand() call into php_rand().
# Makes shuffle() and str_shuffle() to be random without having to
# call srand() in scripts.
# They don't internally call php_srand() at all and it would be silly
# to start adding php_srand() calls all over the place..
2004-01-19 03:14:58 +00:00
foobar dce4e4c4b2 BFN 2004-01-19 02:43:25 +00:00
foobar c7f8c84f36 - Fixed bug #26949 (rand(min,max) always returns min when ZTS enabled) 2004-01-19 02:30:54 +00:00
8ee117f877 ChangeLog update 2004-01-19 01:32:11 +00:00
Marcus Boerger 805dfab890 Add zend_get_module_started() to quickly check whether a module is present
and its MINIT function has been called.
2004-01-19 00:39:29 +00:00
Marcus Boerger 3ee59febe7 Fix test by adding expectations 2004-01-19 00:27:06 +00:00
Marcus Boerger a5d11dc943 Fix refcounting in ZE2 2004-01-19 00:26:33 +00:00
Marcus Boerger ba4c4cddc2 Fix some warnings 2004-01-19 00:10:41 +00:00
Marcus Boerger 3df0288490 Improove debug capabilities 2004-01-18 23:47:10 +00:00
Marcus Boerger b0620b27be Rename header to prevent name clashes with external files 2004-01-18 23:35:13 +00:00
Marcus Boerger a7974a876e Fix memory corruption 2004-01-18 23:22:20 +00:00
Marcus Boerger 00325e3271 Add .cvsignore 2004-01-18 23:20:10 +00:00
Marcus Boerger f0aacc09d2 Fix a warning 2004-01-18 23:19:36 +00:00
Marcus Boerger 517c5f5fc5 Necessary as long as SPL is shared/dll 2004-01-18 22:20:54 +00:00
Marcus Boerger c7c9c72d49 Update, id_l is unique 2004-01-18 21:11:55 +00:00
Marcus Boerger 90515ee22a Add spl interaction test. 2004-01-18 20:57:42 +00:00
Moriyoshi Koizumi abfda09eda Fix fgetcsv() to reflect the change on 4.3.5 behaviour. 2004-01-18 20:29:34 +00:00
Marcus Boerger c1df34cae0 Update 2004-01-18 19:55:50 +00:00
Derick Rethans a3adb776ad - This define is not used anymore 2004-01-18 19:21:23 +00:00
Marcus Boerger 43ee98f9fa Not needed 2004-01-18 19:17:50 +00:00
Marcus Boerger 94e64e3d8b Fix problems with manual iteration 2004-01-18 16:25:26 +00:00
Timm Friebe 348abec29d - Fixed compiler warnings (int format, long int arg) 2004-01-18 16:01:02 +00:00
Marcus Boerger 309f54384d Add class SimpleXMLIterator 2004-01-18 15:33:38 +00:00
Marcus Boerger 913f5ce8ec Fix Warning 2004-01-18 15:21:49 +00:00
Marcus Boerger 8f4e9d9e42 Enable inherited classes inside SPL and respect order of module init. 2004-01-18 15:16:26 +00:00
Marcus Boerger bb678c07b5 Use external files only in 001.phpt & tests for bugs 2004-01-18 15:14:03 +00:00
Marcus Boerger 9d5ef0070f Export access to class_entry by function. 2004-01-18 13:19:41 +00:00
Christian Stocker 743a830102 - fix for bug #26947 Crash by using DomDocument::getElementById() 2004-01-18 12:56:23 +00:00
Christian Stocker c9bd0195a3 -test for more than one argument (this segfaulted before) 2004-01-18 12:30:52 +00:00
Marcus Boerger 0a210d7976 Fix some casing issues 2004-01-18 10:45:36 +00:00
2d5b7f7c27 ChangeLog update 2004-01-18 01:35:28 +00:00
Sterling Hughes 6bd7c45f74 update the tests proper-like 2004-01-17 21:47:43 +00:00
Sterling Hughes 594f6433af update the examples 2004-01-17 21:44:22 +00:00
Sterling Hughes cb7e90119f namespace accesses are now soley URI based as opposed to prefix based. 2004-01-17 21:22:26 +00:00
Jon Parise e91fdf570f Make the compilation of vdbeaux.c dependent on the generation of sqlite.h.
An incremental 'make -j' build will now complete successfully.
2004-01-17 21:03:26 +00:00
Andrey Hristov 0fa195d29e use Rasmus' words 2004-01-17 20:28:09 +00:00
Derick Rethans c74bb58721 - Fix typoes 2004-01-17 20:20:18 +00:00
Jon Parise c303c352d0 Spell 'element' correctly. 2004-01-17 20:02:01 +00:00
Andrey Hristov 1a5599242f adding info about $argc and $argv in CLI mode 2004-01-17 19:45:25 +00:00
Marcus Boerger 9e29f17493 Major bugfix for consistency.
# After long discussions we came to a conclusion on how to make this
# extension consistent in itself.
# Thanks to Rob for all the work
2004-01-17 19:41:32 +00:00
Andrey Hristov d5d2d9ef49 Clarification about phpDoc comments. Spotted by Greag Beaver. 2004-01-17 19:14:46 +00:00
Marcus Boerger 1ee90db6e6 No longer needed
# Found by Andrey
2004-01-17 18:04:06 +00:00
Andrey Hristov 8b763f14b7 HEAD is bundled with ZE2 2004-01-17 17:44:27 +00:00
Marcus Boerger 4ee7ba05bc Drop the external xml files no longer needed 2004-01-17 17:34:22 +00:00
Andrey Hristov 9e5df0c666 HEAD is now bundled only with ZE2 2004-01-17 17:33:11 +00:00
Marcus Boerger c28af3a660 No external xml files 2004-01-17 17:33:10 +00:00
Marcus Boerger 253c97fbfe Don't use external xml files 2004-01-17 17:24:58 +00:00
Greg Beaver a440ed6935 fix Bug #594 PEAR_Common::analyzeSourceCode fails on string with $var and {
also fixes SOAP packaging error
2004-01-17 17:20:36 +00:00
Marcus Boerger 64c7645009 #where has my bracket been gone? 2004-01-17 16:50:54 +00:00
Sterling Hughes d022278068 remove the parser errors here, so they accurately reflect what should happen. 2004-01-17 16:39:52 +00:00
Marcus Boerger 3edabd01bb Fix inheritance rule for interface Traversable 2004-01-17 16:38:25 +00:00
Marcus Boerger 665a834a76 Fix parameter list and protos 2004-01-17 16:36:04 +00:00
Marcus Boerger 9c2e37e89a Add test for inherited simplexml classes 2004-01-17 15:57:06 +00:00
Marcus Boerger 9df72efb7c Make inherited sxe classes work 2004-01-17 15:56:29 +00:00
foobar f4983c0d3f - Renamed all *php4* files to *php5*, changed all php4/PHP4 to php5/PHP5 2004-01-17 13:00:38 +00:00
Tim Toohey b851f37123 (gdImageSetPixel) Tidied 'normal' blending effect
# libgd-2.0.12 fixed the problem with alpha-blending on semi-transparent backgrounds so
# gdFullAlphaBlend() and friends are no longer needed
2004-01-17 09:19:14 +00:00
foobar f584b9e168 typofix 2004-01-17 06:18:09 +00:00
92f9989ad8 ChangeLog update 2004-01-17 01:32:11 +00:00
Ilia Alshanetsky 0a8a950fcf Expose zend_std_call_user_call(), needed for implementation of things like
__call handlers.
2004-01-17 00:39:28 +00:00
foobar 796938ec7f Nuke compile warning by using the LANG_SCNG macro instead 2004-01-17 00:26:12 +00:00
foobar 2c71464b40 Fixed bug #26923 (ext/imap: pam and crypt libraries missing when build as shared) 2004-01-17 00:00:11 +00:00
Wez Furlong a017b4c5e6 update file for win32 build 2004-01-16 23:48:39 +00:00
Sterling Hughes a895106606 update the profile of how namespaces should work after discussions with
shane and rob richards.  there were a lot of race conditions with regards
to the way namespaces have been handled in XML documents so far, this new
method removes the race conditions, and gives me a real reason to add the
children() and attributes() methods.
2004-01-16 22:26:09 +00:00
foobar b6b3443d0a - Fixed bug #26640 (__autoload() not invoked by Reflection classes)
# Also removed double call of reflection_register_implement() on
# reflection_extension_ptr.
# Fixed also case-insensitive lookup of property names,
# now Reflection_Property('Classname', 'FooBar'); works too.
2004-01-16 21:11:58 +00:00
Sterling Hughes 7f5b508f26 Add a "profile" of simplexml's expected behaviour in the form of tests.
This will be expanded as issues arise and will be a formal definition
(in code) of simplexml's behaviour.
2004-01-16 20:50:29 +00:00
foobar 69e6b296e0 Kill warning (bug #26937) 2004-01-16 19:11:33 +00:00
foobar 07cf808861 Added test case for bug #26640 2004-01-16 18:24:31 +00:00
Ilia Alshanetsky d8d76f0fcc Update TODO 2004-01-16 17:50:02 +00:00
Ilia Alshanetsky b779a27852 Added Antony Dovgal as OCI8 maintainer. 2004-01-16 16:46:48 +00:00
Ilia Alshanetsky a0664d54d1 Fixed division by zero warning. 2004-01-16 15:17:37 +00:00
Ilia Alshanetsky 1d86ea8851 Added missing skip condition. 2004-01-16 15:16:26 +00:00
Dmitry Stogov 4add085d23 fix 2004-01-16 15:06:23 +00:00
Dmitry Stogov 1dcf2467cf WSDL support was improved
support for message/part element attribute was implemented
 support for portType operation input/output name attribute was implemented
2004-01-16 12:31:10 +00:00
foobar 88b2348f9f BFN 2004-01-16 11:18:37 +00:00
foobar 99bc88b7c0 Fix the mime_magic.debug option init 2004-01-16 11:15:13 +00:00
Antony Dovgal 88ccaf664e Add myself at last =) 2004-01-16 10:03:27 +00:00
Dmitry Stogov 9bf8d5bfe9 faultcode/faultstring mismatch was fixed 2004-01-16 07:55:27 +00:00
Dmitry Stogov 7e19a67247 Support for SOAP 1.2 HTTP binding namespase was added 2004-01-16 07:54:48 +00:00
Dmitry Stogov 501ac09f08 Tests where updated. 2004-01-16 07:12:23 +00:00
Dmitry Stogov ad648d82e5 SOAP 1.2: enc:id & enc:ref attributes support and fault codes (Sender/Receiver) where implemented 2004-01-16 07:11:59 +00:00
Ilia Alshanetsky 0715651785 Fixed Bug #26927 (preg_quote() does not escape \0). 2004-01-16 02:29:50 +00:00
c1ac285760 ChangeLog update 2004-01-16 01:32:07 +00:00
Marcus Boerger a19a36551b Fix shutdown 2004-01-15 21:30:31 +00:00
Pierre Joye 5ecbbf0a8d - Fix the php dependency
(wide copy/paste is not that good no? ;) )
2004-01-15 19:33:10 +00:00
Dmitry Stogov d0f5bd0b68 SOAP 1.2 support was improved 2004-01-15 16:56:29 +00:00
Zeev Suraski 32007b19d8 Nice patch Christian, but it wasn't at all enabled? :)
Fix bug #26883
2004-01-15 16:47:32 +00:00
Antony Dovgal 649b844c3c Fix bug #26892, ORA-21301 in ocinewcollection() call.
pEnv should be initialized in object mode too.
2004-01-15 15:06:57 +00:00
Alex Leigh 036e3663f0 Changed to mixed-case response header codes. This is in keeping with
the changes to >= Continuity mk4 mod1.
2004-01-15 15:04:59 +00:00
Dmitry Stogov 7c01c773b0 Support for SOAP 1.2 array encoding/decoding was implemented 2004-01-15 13:20:58 +00:00
Dmitry Stogov ef9e734593 SOAP 1.2 support was improved 2004-01-15 10:59:24 +00:00
Marcus Boerger 43b0a9e96b Drop userspace iteration correctly.
# People if you do such things then please fix the class tree.
2004-01-15 09:28:01 +00:00
Dmitry Stogov fb52edb194 SOAP 1.2 support was improved 2004-01-15 08:38:14 +00:00
foobar ad11617f29 Fix typo 2004-01-15 06:30:23 +00:00
foobar 124e6c8b6d - Fixed bug #26844 (ext/mime_magic: magic file validation broken). 2004-01-15 06:09:16 +00:00
97a741e578 ChangeLog update 2004-01-15 01:32:13 +00:00
Ilia Alshanetsky 827a79ad8d Fixed bug #26909 (crash in imap_mime_header_decode() when no encoding is
used).
2004-01-15 00:35:04 +00:00
Greg Beaver 7dc2bf3605 fix get_class() case-sensitive incompatibility in PHP5 2004-01-14 22:43:12 +00:00
Marcus Boerger 6915f5a2f5 This is no longer usefull in any way. 2004-01-14 22:07:28 +00:00
Ilia Alshanetsky b3853af0b7 MFH: Fixed bug #26911 (crash in sqlite extension when fetching data from
empty queries).
2004-01-14 21:17:09 +00:00
Rob Richards 8a40a946de test user define namespace aliases 2004-01-14 19:00:16 +00:00
Ilia Alshanetsky 02ea3938be touch generated parser. 2004-01-14 17:53:07 +00:00
Ilia Alshanetsky 6e350b553b Upgraded bundled libsqlite to 2.8.11 (fixed critical bug of *NIX systems). 2004-01-14 17:08:27 +00:00
Dmitry Stogov 49b698c67e WSDL: restrictions support (whiteSpace, minLength, maxLength, length) 2004-01-14 16:24:09 +00:00
Dmitry Stogov 51cbc1f84f array/object encoding 2004-01-14 15:36:01 +00:00
Dmitry Stogov fc69cc8ccf SOAP message must not contain a Document Type Declaration 2004-01-14 15:35:27 +00:00
Wez Furlong 09fb5dc1e6 Remove stale code from flock();
spotted by Hartmut.
2004-01-14 14:37:38 +00:00
Wez Furlong cd4262eedd Fix #26772: fgets returns NULL instead of FALSE. 2004-01-14 14:25:01 +00:00
Zeev Suraski 59d168eda7 Don't allow interfaces to implement anything 2004-01-14 14:00:11 +00:00
Dmitry Stogov 8f0ea19fcb WSDL: encoding rpc/document and encoded/literal 2004-01-14 12:49:02 +00:00
Wez Furlong 39ac35b083 touch 2004-01-14 12:47:04 +00:00
Wez Furlong c69945961f fix crash when throwing an exception 2004-01-14 12:19:17 +00:00
Pierre Joye bbc746c29c - Fix package.xml file 2004-01-14 10:24:26 +00:00
Andi Gutmans 0458bf10e4 - Remove bogus macros 2004-01-14 08:50:17 +00:00
Andi Gutmans 3286cb35bd - Remove use of bogus macro 2004-01-14 08:50:02 +00:00
John Coggeshall f3932751d8 Apparently MSVC is not C99 compatible making variable marco arguments
in the TIDY_THROW() marco broken in (at least) Win32. This provides a suitable
workaround for non-C99 compatible compilers.
2004-01-14 08:15:57 +00:00
John Coggeshall 0878fa901f Doh.. snuck by me! 2004-01-14 06:57:51 +00:00
John Coggeshall a06377c32d Forgot to add these tests 2004-01-14 06:57:23 +00:00
Wez Furlong 31f7699a85 Add optional php-win.exe variation of the CLI sapi.
php-win.exe runs in the windows GUI subsystem, and thus
has no console; stdio handles are effectively set to /dev/null
and no "dos box" will appear on screen when running scripts
using this sapi (php-gtk people will be familiar with this concept).

Aside from those differences, php-win.exe is 100% identical to
regular CLI
2004-01-14 03:14:18 +00:00
John Coggeshall 6048907029 With the approval of Andi, changing the Tidy API to reduce the possible
amount of confusion when setting Tidy configuration options. All
configuration must now be done pre-parsing of the document. Removed
references to the tidy_attr class, as it is no longer used (since tidy 2.0)
and made tidy throw exceptions for all truly non-fatal errors.
2004-01-14 02:43:33 +00:00
bc9cbe2715 ChangeLog update 2004-01-14 01:32:09 +00:00
Ilia Alshanetsky 43becc02f1 Fixed bug #26878 (problem with multiple references to the same variable
with different types).
2004-01-13 23:11:31 +00:00
Rob Richards ad47abf0f6 add support for $foo["a:bar"]
fix xsearch to only return values for text,element and attribute nodes
fix getChildren and return array
remove most methods
update test
2004-01-13 21:28:41 +00:00
foobar 5b59254761 - Fixed bug #26896 (ext/ftp does not work as shared extension) 2004-01-13 18:58:23 +00:00
foobar c2785ecbf9 BFN 2004-01-13 18:06:31 +00:00
Dmitry Stogov c708524676 FIX: memory leak 2004-01-13 17:43:09 +00:00
Dmitry Stogov bee92aa395 WSDL: support for "http://schemas.xmlsoap.org/wsdl/soap12/" binding was added 2004-01-13 17:25:47 +00:00
Dmitry Stogov 86d0b7a1ed bugfix 2004-01-13 17:20:10 +00:00
Wez Furlong d4deb460bd Don't treat strings containing : as potential constant names in
the .ini parser.
This fixes Bug #26893
2004-01-13 17:00:10 +00:00
Wez Furlong c205153a0a reinstate this ifdef for people without .Net SDK 2004-01-13 16:05:38 +00:00
Wez Furlong bba1ded0b2 Fix refcount on these return values to avoid a leak and allow object dtor's to be called.
This in turn prevents a massive slow-down in CoUninitialize which would have to
forcibly destroy the COM objects in request shutdown.
2004-01-13 16:02:56 +00:00
Dmitry Stogov 3961fec217 Source ceanup 2004-01-13 15:58:01 +00:00
Rob Richards 38f8ed0e0a fix getElementsByTagName and getElementsByTagNameNS - allow * 2004-01-13 14:13:21 +00:00
Dmitry Stogov 98ff80dba9 WSDL: support for multiple services/ports/bindings was implemented 2004-01-13 13:50:09 +00:00
Wez Furlong 4573a562a3 Fix leaking constructors.
Implement a cache for method signatures and DISPID's to
greatly improve performance when repeatedly accessing
members with the same names.
2004-01-13 13:38:11 +00:00
Dmitry Stogov 5ebcab9da3 Check for "<?xml" header was removed 2004-01-13 10:27:13 +00:00
Dmitry Stogov ccd3f39e98 WSDL support: using types before declaration was fixed 2004-01-13 10:26:44 +00:00
Dmitry Stogov fceb95f12a XML parsing warnings and notices were disabled. 2004-01-13 09:31:50 +00:00
Dmitry Stogov 51c86ab73f Support for WSDL <operation> without <input> message 2004-01-13 07:59:13 +00:00
Dmitry Stogov 964d9c586d HTTP Cookies support (see interop round2 base kafka) 2004-01-13 07:57:29 +00:00
Sara Golemon af4f949483 Don't even define this. 2004-01-13 05:30:53 +00:00
John Coggeshall 646389a1ff Whoops... Ilia forgot a ')' 2004-01-13 05:23:07 +00:00
Wez Furlong 848684fa96 make usleep actually work properly 2004-01-13 02:07:04 +00:00
24f5ca6ab5 ChangeLog update 2004-01-13 01:32:17 +00:00
Wez Furlong b7d0b397bc Support automatic handling of byref parameters 2004-01-13 00:40:14 +00:00
Ilia Alshanetsky 47dddfa4ff Fixed a bug that would cause the sqlite session database to grow endlessly. 2004-01-12 22:48:58 +00:00
Ard Biesheuvel fad3a6e42f More handsome solution for previous fix 2004-01-12 20:03:49 +00:00
Ard Biesheuvel 961f398db5 Added sanity check on ibase_[p]connect() dialect argument (fixes obscure unregistered bug) 2004-01-12 19:47:28 +00:00
Martin Kraemer a116666bc4 Avoid duplicate symbols; definition is in bz2.c 2004-01-12 16:30:55 +00:00
Dmitry Stogov ebc3266327 fix 2004-01-12 16:15:37 +00:00
Dmitry Stogov 6285b174c1 fix 2004-01-12 16:08:24 +00:00
Dmitry Stogov 3afeac3627 Date comparsion was fixed to compare dates with different time zones. 2004-01-12 15:18:13 +00:00
Dmitry Stogov d32ef43c3a Timezone support 2004-01-12 15:15:48 +00:00
Dmitry Stogov a02de43dbb Small error reporting fixes 2004-01-12 15:15:26 +00:00
Dmitry Stogov 6b32938b20 WSDL support: schema import 2004-01-12 12:54:22 +00:00
Dmitry Stogov 29fe458872 WSDL support: support for wsdl import 2004-01-12 11:46:01 +00:00
John Coggeshall 9116f27504 This was way out of date. 2004-01-12 10:02:04 +00:00
Dmitry Stogov 2b0ed79607 WSDL support: use of type before declaration (see interop round2 base OpenLink echoStructArray) 2004-01-12 08:48:00 +00:00
Andi Gutmans 92eb129bd9 - Return the PHP 4 behavior of not allowing class declerations within
- class declerations. This happened when declaring a class within a
- method.
class A {
	function foo() {
		class B {
		}
	}
}
2004-01-12 07:15:55 +00:00
Marcus Boerger 3fb99f62e0 Synch mysql_fetch_object with mysqli, sqlite and pgsql 2004-01-12 02:34:55 +00:00
Marcus Boerger d129242ad5 Add some tests 2004-01-12 02:31:08 +00:00
ac8b58603b ChangeLog update 2004-01-12 01:31:59 +00:00
Marcus Boerger 635e3b1980 Proto fix 2004-01-12 00:34:37 +00:00
Marcus Boerger 9c41d8e7b5 No longer needed 2004-01-12 00:21:14 +00:00
Marcus Boerger 61fc2a9209 Add missing macro
# by popular demand, more and more exts need this
2004-01-12 00:19:40 +00:00
Wez Furlong 910e20064a TSRMLS fix 2004-01-11 21:39:40 +00:00
Ilia Alshanetsky 3b7da77480 Fixed bug #26864 (pg_(update|delete) ignore PGSQL_DML_EXEC option). 2004-01-11 21:18:19 +00:00
Andi Gutmans ac5d5c7f35 - Re-allow conditional class declerations. Needless to say that I also
- think it's not great coding.. Use polymorphism instead :)
2004-01-11 19:37:15 +00:00
Andi Gutmans e69f4f6f25 - This should fix the problem of conditional function decleration on the
- same line of code not to work. You should re-evaluate your coding style
- if you really code this way :)
2004-01-11 19:27:13 +00:00
foobar 028fcd7ec3 oops.. 2004-01-11 14:06:37 +00:00
foobar a201e10c9b BFN 2004-01-11 14:06:16 +00:00
foobar fcf131ce23 add test case for bug #26869 2004-01-11 13:59:48 +00:00
Andrey Hristov 4b2a32b701 fixing test 2004-01-11 11:55:33 +00:00
Rui Hirokawa de07b4bbc1 added utf8 support option for sqlite >= 2.8.9. 2004-01-11 02:07:46 +00:00
a4872e0c31 ChangeLog update 2004-01-11 01:32:20 +00:00
Tal Peer a3dc201d1e typos 2004-01-10 23:49:26 +00:00
Andrey Hristov 9ca6b7448d fixing tests after last Derick's commit that changed the behaviour of
var_export() :)
2004-01-10 23:38:45 +00:00
Ilia Alshanetsky 0e32fbb4dd Do not run test if session extension is not avaliable. 2004-01-10 18:32:46 +00:00
Marcus Boerger cc5773e775 Update attribute tests.
# There is a memory leak with += when accessing the attributes directly
# But yet ->elem[$n] is not fails in the engine
2004-01-10 13:45:10 +00:00
Marcus Boerger fffdd96865 - Cleanup class_entry
- allow derived classes
- fix new SimpleXML_Element()
2004-01-10 13:25:31 +00:00
Marcus Boerger c66c9e7102 Fix memory corruption with libxml's error handling. 2004-01-10 13:23:58 +00:00
Zeev Suraski f5e9ca64b1 Remove conflict 2004-01-10 12:48:04 +00:00
Rob Richards 840979858c Update tests 2004-01-10 11:50:49 +00:00
Rob Richards 394bf2ba5b XPath query returns nodelist object rather than array 2004-01-10 11:50:25 +00:00
Zeev Suraski a72c1ab93b Added error mask to set_error_handler()
Patch by Christian Schneider <cschneid@cschneid.com>
2004-01-10 11:43:42 +00:00
Dmitry Stogov 170476d9ea BUGFIX: server006.phpt 2004-01-10 09:27:52 +00:00
Dmitry Stogov 1101a375c3 *** empty log message *** 2004-01-10 08:36:45 +00:00
b04960746d ChangeLog update 2004-01-10 01:33:36 +00:00
Wez Furlong 4a7577e4ab include PECL targets in snap build... 2004-01-10 01:11:42 +00:00
Wez Furlong 57e2ef89e4 support for building asm in the unix buildsys.
Also, when ZEND_ACCONFIG_H_NO_C_PROTOS is defined,
omit the C prototypes from the configuration header
so that it can be included into asm files.
2004-01-09 23:37:29 +00:00
Marcus Boerger 686281d087 this one is declined 2004-01-09 18:55:49 +00:00
Marcus Boerger b460ae868e Use pg_config if it can be found. 2004-01-09 18:44:33 +00:00
Dmitry Stogov 9a3cdc6491 Source cleanup. 2004-01-09 18:22:03 +00:00
Wez Furlong e3baf1a07d must be extern to avoid problems with some compilers 2004-01-09 18:09:51 +00:00
Dmitry Stogov 9f8d30f215 BUGFIX: WSDL support (complexType/complexContent/restiction/atttibute) 2004-01-09 16:36:13 +00:00
Dmitry Stogov d9328fb38e BUGFIX: close string with smart_str_0() 2004-01-09 16:35:04 +00:00
Wez Furlong 5e57f973cc let soap build with php5 2004-01-09 15:31:09 +00:00
Wez Furlong 6ac364048b export tsrm id for session globals. 2004-01-09 15:30:07 +00:00
Wez Furlong 143ca63846 let informix build 2004-01-09 15:11:31 +00:00
Dmitry Stogov 6af0639c92 Tests were improved (https:// support) 2004-01-09 14:56:24 +00:00
Stanislav Malyshev b9052251e7 fix expect 2004-01-09 14:32:32 +00:00
Ilia Alshanetsky caf47aee99 Fixed test 2004-01-09 14:27:14 +00:00
Ilia Alshanetsky 577439e975 Fixed build. 2004-01-09 14:23:35 +00:00
Dmitry Stogov 792b0e8f0b SOAP Encoding/Decoding were improved. 2004-01-09 14:16:30 +00:00
Edin Kadribasic cf7afb8f18 Fix ZTS build 2004-01-09 14:13:46 +00:00
Dmitry Stogov 498254e17a Support for persistent HTTP connections was implemented (keep-alive) 2004-01-09 14:11:34 +00:00
Stanislav Malyshev c4b6a637e5 Bug #25816 - disallow arrays in class constants 2004-01-09 14:02:33 +00:00
Stanislav Malyshev 209497cfdf add test 2004-01-09 13:55:02 +00:00
Stanislav Malyshev e321eba06b Fix Bug #26077 - memory leak when new() result is not assigned
and no constructor defined
2004-01-09 13:52:19 +00:00
Wez Furlong 9e229aa09d let mhash build 2004-01-09 13:42:14 +00:00
Wez Furlong fc1d460a99 add a rule to clean pecl things; split up the command line into 3 to
try to avoid possible problems with line-length under VC6
2004-01-09 13:32:20 +00:00
Wez Furlong 2aa33945fc Separate pecl extensions and sapi into their own target, and have mkdist.php
create a separate pecl dir and zip when building a win32 snapshot.
2004-01-09 13:17:58 +00:00
Wez Furlong af1522ad2d fix PHP_SPL problem when you don't have a pecl checkout. 2004-01-09 11:19:40 +00:00
Sterling Hughes 5ca7c382c9 Remove these initializers as they are unused. 2004-01-09 06:12:29 +00:00
foobar bbd9449e6b - Fix build 2004-01-09 04:22:42 +00:00
Ilia Alshanetsky f4828675eb sqlite news 2004-01-09 01:38:13 +00:00
Ilia Alshanetsky 2736c55e3e Fixed bug #26847 (memory leak in mail() when to/subject contain only spaces) 2004-01-09 01:35:44 +00:00
47c81de40f ChangeLog update 2004-01-09 01:32:33 +00:00
Ilia Alshanetsky f5a3f25159 Fixed compile failure of session extension is not present. 2004-01-09 01:05:01 +00:00
Sterling Hughes 406c2156d1 Fix dumping, when dumping a text element, for example:
<?php
$doc = simplexml_load_string('<?xml version="1.0"?>
<namelist>
 <name>
  <first>helly</first>
 </name>
 <name>
  <first>sterling</first>
 </name>
</namelist>');
var_dump($doc->name[0]->first);

Used to not display the node's content, now it does.
2004-01-08 22:40:08 +00:00
Wez Furlong 510dd7cca5 add optional dep on spl for simplexml.
Fix dep handling in buildconf
2004-01-08 21:53:48 +00:00
Marcus Boerger 3fc4dc44ae Add some minimalistic documentation 2004-01-08 21:14:38 +00:00
Marcus Boerger 526c6bd09c Fix windows build issue 2004-01-08 20:27:35 +00:00
Marcus Boerger fb38ee26a4 Cannot use shared SPL 2004-01-08 19:30:37 +00:00
Marcus Boerger 6e798706e3 There's no more interaction with SPL 2004-01-08 19:28:55 +00:00
foobar 4293b03948 touch generated files 2004-01-08 19:17:50 +00:00
foobar 6ae12f1aa8 touch to make build work without lemon.. 2004-01-08 18:23:52 +00:00
Marcus Boerger 37d23de6d6 Fix dependancy 2004-01-08 18:23:03 +00:00
Marcus Boerger 0e5b87c5a2 Update copyright 2004-01-08 18:17:39 +00:00
Dmitry Stogov 807d4bebc6 Handling of "position" and "offset" array attributes was implemented 2004-01-08 17:42:32 +00:00
foobar ccfc46b0aa - Happy new year and PHP 5 for rest of the files too..
# Should the LICENSE and Zend/LICENSE dates be updated too?
2004-01-08 17:33:29 +00:00
Wez Furlong f83b27face fix tests for win32 2004-01-08 16:55:37 +00:00
foobar 17fd860e5e correct header 2004-01-08 16:47:18 +00:00
foobar bcbc4ab0e0 Happy new year! 2004-01-08 16:46:52 +00:00
Wez Furlong 5294ef06c8 add new files to .dsp 2004-01-08 16:23:47 +00:00
Wez Furlong 2f6c4ce81d Update win32 build for new version of libsqlite 2004-01-08 16:18:38 +00:00
Dmitry Stogov dd5ce0c4d7 SOAP versioning model was implemented (support for SOAP 1.1 and SOAP 1.2) 2004-01-08 15:27:50 +00:00
Ilia Alshanetsky a4ea8eb44e Upgrade bundled libsqlite to 2.8.9 2004-01-08 14:25:01 +00:00
Dmitry Stogov 2cf3cb6407 Support for "xsd:anyType" was implemented 2004-01-08 12:32:28 +00:00
Wez Furlong 611c69b816 update copyright year in win32 resource template 2004-01-08 10:58:27 +00:00
Wez Furlong 7b40de6fd0 fix fastcgi build 2004-01-08 10:56:39 +00:00
Dmitry Stogov ecbad181b9 HTTP Authentication was implemented 2004-01-08 09:56:49 +00:00
John Coggeshall 962edd2d2e tidy_repair_string/file() don't get called from an existing tidy resource. 2004-01-08 09:21:05 +00:00
Andi Gutmans 6b87194bd9 - - A belated happy holidays (by two years) 2004-01-08 08:23:23 +00:00
Andi Gutmans dbeb4158d2 - A belated happy holidays and PHP 5 2004-01-08 08:18:22 +00:00
foobar 8d236fc234 - remove non-existing project 2004-01-08 01:46:13 +00:00
cfca1234a4 ChangeLog update 2004-01-08 01:31:55 +00:00
foobar fa82c2afc4 Added missing constants (bug #26831) 2004-01-08 01:01:39 +00:00
Wez Furlong 4a17522353 Change ordering of CFLAGS for built sources, so that extension specific include dirs
occur before more global include dirs.
This avoids problems when building a bundled lib and you have headers from an
external version of that lib in your global include dir.
2004-01-08 00:25:48 +00:00
Frank M. Kromann b4fab399f7 Adding new com_dotnet source files to project 2004-01-08 00:22:20 +00:00
Frank M. Kromann 64e404229b Fix ZTS build 2004-01-08 00:03:54 +00:00
foobar 4db2d84efa BFN 2004-01-07 23:53:48 +00:00
Wez Furlong 772875537f win32 build:
gd should build shared by default
don't use php.ini when running mkdist.php
2004-01-07 23:36:36 +00:00
Wez Furlong f5e4590fd5 tweak snap build 2004-01-07 23:11:54 +00:00
Wez Furlong 86f7fad719 Make activescript SAPI build under php5.
Untested...!
2004-01-07 21:01:13 +00:00
Wez Furlong e10c206dac Port other major parts of PHP 4 COM extension into PHP 5 com_dotnet
extension.
This enables:
- iteration of SafeArray types via foreach()
- proxying of multi-dimensional SafeArray types so that multi-dimension
  array accesses work (untested!)
- Fix COM exceptions, and expose them as their own class of exception
  "com_exception"
- auto typelib file import (com.typelib_file ini option)
- event sinking
- wrapper to map PHP objects to COM
- fix mapping of variant values to PHP values

# Could someone please add com_saproxy.c and com_wrapper.c to the .dsp
# file?
2004-01-07 21:00:07 +00:00
Wez Furlong 48b96c10d2 glob-ify lib checks; this simplifies writing of config.w32 files a little. 2004-01-07 20:06:32 +00:00
Rob Richards 6e65e1d821 Fix bug #26815 (foreach (DOM) childnodes causes error using Xinclude)
update xinclude test
2004-01-07 15:33:25 +00:00
Ard Biesheuvel ee8f019b68 Let DB handle NULL params, fixes bug #26777 2004-01-07 09:43:55 +00:00
0204ac5a27 ChangeLog update 2004-01-07 01:32:03 +00:00
Marcus Boerger 1d2b4bcc48 Reimplement part of Bug #24608 that was reverted too 2004-01-07 00:24:58 +00:00
Marcus Boerger 82f0c9e7aa Revert patch that allowed to call sttaic methods via $method() 2004-01-07 00:02:04 +00:00
Ilia Alshanetsky 68a096f84e Check if realloc() succeeds or not. (Noticed by Andrey) 2004-01-06 22:44:40 +00:00
foobar 03c09f200c no need for double #include of same header file 2004-01-06 22:23:36 +00:00
Zeev Suraski 215c3275de Fix C++ style declaration 2004-01-06 20:38:00 +00:00
Ilia Alshanetsky d4c19ed2d2 Fixed bug #26819 (http_build_query() crashes on NULL output).
Fixed bug #26817 (http_build_query() does not handle private & protected
object properties correctly).
2004-01-06 20:07:07 +00:00
John Coggeshall d900d73763 Added an optional array parameter to tidy_parse_file/string to
fix a bug. Apparently some libtidy config options must be set
prior to parsing in order to work properly.
2004-01-06 18:24:17 +00:00
Dmitry Stogov 107a87ca85 WSDL support was improved 2004-01-06 17:14:30 +00:00
Dmitry Stogov ea2f4b7ac0 https:// support was implemented for PHP5 2004-01-06 17:12:52 +00:00
Ilia Alshanetsky d2b89ae32b Revert proto 'fix'. 2004-01-06 15:45:52 +00:00
Moriyoshi Koizumi 06232e4818 Prevent a character from being wrongly doubled in the buffer. 2004-01-06 14:22:54 +00:00
Ilia Alshanetsky 10889a3084 Proto fixes. 2004-01-06 03:55:57 +00:00
6b27ed4d8d ChangeLog update 2004-01-06 01:31:55 +00:00
Marcus Boerger 6118a91849 Update 2004-01-06 00:51:43 +00:00
Marcus Boerger 18ea05b746 Fixed bug #26802 2004-01-05 22:45:11 +00:00
Marcus Boerger f16aed2d7a Fix test 2004-01-05 22:40:24 +00:00
Marcus Boerger 780b420797 Add new test 2004-01-05 22:17:14 +00:00
Dmitry Stogov de6184edee PHP5 support, better encoding and WSDL support, interop round 2 base and groupB 2004-01-05 16:44:01 +00:00
foobar 2e2d5d78f0 BFN 2004-01-05 14:31:48 +00:00
Marcus Boerger b5e5c845bf Update test 2004-01-05 14:01:09 +00:00
Stanislav Malyshev bced21b357 Fix bug #26543 - check parent:: and self:: in class names 2004-01-05 12:10:35 +00:00
Stanislav Malyshev 1e11e7401c Bug #24608 - fix interaction between __accessors and get_property_ptr 2004-01-05 11:45:46 +00:00
Andrey Hristov 7baf31fc83 another example 2004-01-05 05:54:12 +00:00
6485ed84b5 ChangeLog update 2004-01-05 01:31:52 +00:00
Moriyoshi Koizumi 27f47eb173 "seq" isn't available for all platforms. 2004-01-04 03:06:11 +00:00
69b6c15158 ChangeLog update 2004-01-04 01:32:43 +00:00
Jan Lehnardt 84b8ffd491 - remove unneeded subroutine call 2004-01-03 14:03:46 +00:00
Derick Rethans 16eb6ece84 - Added test results to .cvsignore file 2004-01-03 13:51:55 +00:00
Derick Rethans 6923a16c26 - Fixed var_export() to show public, protected and private modifiers properly.
- Exported (un)mangle_property_name.
2004-01-03 13:51:02 +00:00
Derick Rethans 22843351bf - Show the API numbers again while phpizing. 2004-01-03 13:45:12 +00:00
John Coggeshall 4ddb3d194d Added examples for tidy v2.0 (in PHP5) and a few more tests.. 2004-01-03 05:23:24 +00:00
f37c9932ba ChangeLog update 2004-01-03 01:32:06 +00:00
Ilia Alshanetsky 939a70a86d s/then/than/ Thanks Jani & Andi 2004-01-03 00:48:55 +00:00
Edin Kadribasic d2317fc110 Disable output buffering in CLI overriding php.ini setting.
Fixes #26755.
2004-01-02 22:31:32 +00:00
Andrei Zmievski 85f62caad2 Do not show exception message if it's empty.
# Is there a way to preserve the case of the exception class here?
2004-01-02 19:27:02 +00:00
foobar 0eead3672c ws + cs 2004-01-02 15:32:09 +00:00
foobar 2cf5871377 another ZTS fix 2004-01-02 14:09:49 +00:00
Marcus Boerger 5d58aff217 BFN 2004-01-02 03:27:43 +00:00
Marcus Boerger 0cd13bf423 Bugfix #26762 unserialize() produces lowercase classnames 2004-01-02 03:27:32 +00:00
Marcus Boerger 3ab7b87143 Add new test 2004-01-02 03:24:38 +00:00
foobar 926504978b dotdotdot.. 2004-01-02 02:34:53 +00:00
foobar 3c73c91e7a fix ZTS build 2004-01-02 02:21:44 +00:00
988ee78f90 ChangeLog update 2004-01-02 01:31:53 +00:00
Ilia Alshanetsky 6f7fe1dfa0 Fixed bug #26752 (Silent unterminated loop when length parameter for
fgets(), fread() and fgetss() is 0).
2004-01-02 00:57:23 +00:00
Marcus Boerger 6bfa014748 Fix ZTS build 2004-01-01 19:25:02 +00:00
Georg Richter 27319233e5 fixed bug(s) in macro call for statement properties 2004-01-01 15:46:39 +00:00
Georg Richter 1733557ac8 Added Macro for longlong values
added property stmt->affected_rows
2004-01-01 14:04:35 +00:00
Derick Rethans e754721692 - Compress 2003 changelog 2004-01-01 11:41:18 +00:00
06a60f2949 ChangeLog update 2004-01-01 01:32:07 +00:00
Ilia Alshanetsky b658a26874 emalloc() -> safe_emalloc() 2003-12-31 19:45:46 +00:00
Andrei Zmievski 87c2ba22f1 Make default message look better. 2003-12-31 19:44:41 +00:00
Frank M. Kromann 0b91485ed5 Make sure zlib.lib is found 2003-12-31 19:28:31 +00:00
Marcus Boerger 865738238f BFN 2003-12-31 12:21:02 +00:00
Derick Rethans 0cfadb914c - Fixed bug #26751 (PHP can't find the MySQL socket on a case sensitive file
system).
2003-12-31 11:27:52 +00:00
Andrey Hristov 2e474e90c3 proto fix 2003-12-31 10:56:32 +00:00
Georg Richter 9285d613f5 fixed problems with longlong values in mysqli 2003-12-31 08:57:09 +00:00
Georg Richter c10072d067 fixed memleak and segfault when constructor call failed 2003-12-31 08:34:02 +00:00
cd9342fb84 ChangeLog update 2003-12-31 01:33:06 +00:00
foobar 4a94097986 cleanup 2003-12-31 01:27:35 +00:00
Ilia Alshanetsky f4a07dd9a5 Replace regular malloc with safe_emalloc in several places. 2003-12-31 01:01:44 +00:00
Georg Richter 51fc89e49c fixed a bug in mysqli_num_rows (added support for longlong values) 2003-12-30 19:19:13 +00:00
Georg Richter 17f6ef5106 fixed a bug in insert_id property 2003-12-30 19:08:33 +00:00
foobar 2b06ad1389 Fix the include path for Zend 2003-12-30 15:40:23 +00:00
Andi Gutmans fc835b4a46 - Fix typos 2003-12-30 13:28:31 +00:00
Marcus Boerger 5e9279bb44 Update 2003-12-30 13:14:14 +00:00
b8f3838753 ChangeLog update 2003-12-30 01:31:58 +00:00
Ilia Alshanetsky f0fa1781ee Added test case for bug #26696. 2003-12-30 00:23:28 +00:00
Marcus Boerger 2fc7a07e62 Use __tostring() in all printing functions. 2003-12-29 22:26:48 +00:00
Marcus Boerger c6755e8394 No Notices here 2003-12-29 22:24:01 +00:00
Marcus Boerger a572d79e0a Fix data source 2003-12-29 22:18:40 +00:00
Marcus Boerger 046859493e Fix (string) conversion 2003-12-29 22:01:47 +00:00
Marcus Boerger c0b8e35997 Add missing notice 2003-12-29 21:58:03 +00:00
Rob Richards db9af58184 BFN 2003-12-29 16:45:59 +00:00
Rob Richards 66c68da22b Fixed bug #26743 (getElementsByTagName doesn't work properly) 2003-12-29 16:44:47 +00:00
Marcus Boerger d001928aa2 Align output if one section shows 100% and display percentages when not
counting skipped tests.
2003-12-29 16:07:08 +00:00
Ilia Alshanetsky fae56fca30 Removed a useless define. 2003-12-29 15:58:01 +00:00
Marcus Boerger 2788bb8a15 BFN 2003-12-29 12:39:07 +00:00
Marcus Boerger 23191fb208 Add some __autoload() tests. 2003-12-29 12:36:31 +00:00
Marcus Boerger 03e039b19d Fix __autoload() with derived classes 2003-12-29 12:35:44 +00:00
049fda207d ChangeLog update 2003-12-29 01:32:05 +00:00
Georg Richter 703921ab36 updated todo list (removed finished tasks) 2003-12-29 00:11:14 +00:00
Georg Richter 36b65c4ed0 fixed prototype for mysqli_bind_result 2003-12-28 22:26:59 +00:00
Derick Rethans 287834a5af - Fix typo 2003-12-28 21:56:15 +00:00
Ilia Alshanetsky 8ec2fd0c54 Last bit of CS fixes. 2003-12-28 21:08:46 +00:00
Ilia Alshanetsky 36db28c8db CS fixes. 2003-12-28 20:11:08 +00:00
Marcus Boerger e29f589d46 Add more tests. 2003-12-28 18:03:05 +00:00
Marcus Boerger 442c2b4eec Add a test 2003-12-28 16:26:21 +00:00
Marcus Boerger 1a48fd929d Fix a memleak
Improve error messages
2003-12-28 16:26:04 +00:00
Marcus Boerger 2a6ec5ccb4 WS 2003-12-28 16:20:06 +00:00
Marcus Boerger 15964bb35d Fix order of class_entry member initialization (needed for example for DOM)
# You need to completley rebuild PHP after this patch.
2003-12-28 15:18:05 +00:00
Rui Hirokawa 05c78af854 revert my previous patch because utf-8 support is still in experimental status. 2003-12-28 14:38:28 +00:00
Rui Hirokawa 585a12d3be added warning message. 2003-12-28 14:26:57 +00:00
Rui Hirokawa af9b015afc added a option to select character encoding for sqlite. 2003-12-28 14:07:33 +00:00
Georg Richter 95bda90038 fixed bug in properties for longlong values 2003-12-28 09:18:51 +00:00
af3e587d1e ChangeLog update 2003-12-28 01:31:59 +00:00
Sara Golemon 4af0ba44d9 Test additional wrapper methods [unlink, rename, mkdir, rmdir, url_stat] 2003-12-28 01:06:38 +00:00
Moriyoshi Koizumi 3d618a2f00 Just laugh at me :) 2003-12-27 23:07:47 +00:00
Moriyoshi Koizumi 07469af0d9 - Add missing sanity check. 2003-12-27 23:05:23 +00:00
Marcus Boerger 7980195d7c BFN 2003-12-27 23:01:04 +00:00
Marcus Boerger 885eafac61 Fixed bug #26065 (Crash when nesting classes) 2003-12-27 22:59:49 +00:00
Marcus Boerger 01b255f0ef Correct in order 2003-12-27 22:16:13 +00:00
Marcus Boerger a876c54d1c Bugfix #25329 2003-12-27 22:11:48 +00:00
Marcus Boerger fd7fca402b Not needed 2003-12-27 21:57:16 +00:00
Marcus Boerger da29458469 Add new test related to bug #25329. 2003-12-27 21:45:50 +00:00
Marcus Boerger a84f8156ff Bugfix #25038 (call_user_func issues warning if function throws exception) 2003-12-27 21:10:34 +00:00
Marcus Boerger c49b657084 Add new test 2003-12-27 20:45:36 +00:00
Marcus Boerger e20f534ee5 Simplify 2003-12-27 20:33:14 +00:00
Marcus Boerger db36fd0200 Fix __tostring() and concatenation 2003-12-27 20:16:49 +00:00
Rob Richards c7e945888b fix libxml mem leak 2003-12-27 12:39:10 +00:00
Rob Richards 563be668b8 Fixed bug #26723 2003-12-27 10:33:26 +00:00
Rob Richards 84b90f639d Fixed bug #26723 (domNode::appendChild() changes child node namespace)
apply fix to insertBefore and replaceChild
2003-12-27 10:29:52 +00:00
20a59f9759 ChangeLog update 2003-12-26 01:31:54 +00:00
Ilia Alshanetsky 8d6cfb797b Synchronized bundled GD library with GD 2.0.17
. GD is now thread-safe thanks to wrappers around freetype library
 . Significant optimization to png writing code.
 . Miscellaneous fixes.
Fixed memory leak inside php_imagettftext_common()
Make ext/gd compile with GD 2.0.17+ (gdFreeFontCache() is not avaliable)
2003-12-25 22:12:12 +00:00
Marcus Boerger 1dec2d85d6 Fix warning 2003-12-25 20:08:22 +00:00
Marcus Boerger d28d247c4a Fix warning 2003-12-25 19:59:38 +00:00
Ilia Alshanetsky 0688205940 Fixed Bug #26703 (Certain characters inside strings incorrectly treated as
keywords). Original patch by vrana@php.net.
2003-12-25 18:57:26 +00:00
Antony Dovgal 12c7ae9f55 workaround for possible ORA-22280 warning if buffers were not flushed 2003-12-25 13:54:50 +00:00
6d8a0a89f3 ChangeLog update 2003-12-25 01:31:50 +00:00
Moriyoshi Koizumi 93cc95e9db - fixes for compatibility. now fgetcsv() treats a null line to be a single
null component.
2003-12-24 21:30:43 +00:00
Ilia Alshanetsky be5670af2b Fixed bug #26707 (Incorrect error for disabled functions/classes). 2003-12-24 16:38:22 +00:00
Antony Dovgal f95db00d6c separate oci_lob_flush() to use it in oci_lob_append() etc. in the future 2003-12-24 15:01:54 +00:00
Moriyoshi Koizumi 529dd348b6 - Supply some comments. Hope those help when you have to debug this dead beef.
- Fix iconv_mime_decode() to correctly handle "malformed" headers :)
- Fix iconv_mime_decode() bug, that the result is mangled when
  ICONV_MIME_CONTINUE_ON_ERROR is enabled and the function encounters an
  unconvertable encoded chunk.
2003-12-24 02:36:21 +00:00
6d50eca0db ChangeLog update 2003-12-24 01:31:55 +00:00
Wez Furlong cb6e4c5e13 Fix segfault in ZTS mode 2003-12-23 20:12:55 +00:00
Ilia Alshanetsky bdc30961d0 Properly detect bundled libtool when PHP is built in a separate directory.
Detect version of system libtool, which is used by phpize.
2003-12-23 18:20:46 +00:00
Ilia Alshanetsky 20d64aa24e Make test work with PostgreSQL 7.4 2003-12-23 17:33:06 +00:00
Wez Furlong 9720a31bd6 A more general check for dirs under Release or Debug. 2003-12-23 17:20:50 +00:00
Moriyoshi Koizumi 3b7dcf5e65 Those are not structures :-) 2003-12-23 17:10:54 +00:00
Ilia Alshanetsky 39df1011f1 Compiler warning fixes. 2003-12-23 17:08:44 +00:00
Ilia Alshanetsky cf40d9243d Fixed compiler warnings. 2003-12-23 17:05:43 +00:00
Antony Dovgal 107221252c add oci_fetch_assoc(), oci_fetch_object(), oci_fetch_array() & oci_fetch_row()
change ocifetchinto() to use php_oci_fetch_row()
2003-12-23 16:02:53 +00:00
Wez Furlong 5d5f2619b3 Proper check for resolv.lib 2003-12-23 16:01:41 +00:00
Antony Dovgal 7aac9069d4 huge patch
change almost all func names to match naming conventions
keep ocifetchinto & *buffering for awhile - they will be rewritten soon
old names are kept as aliases
2003-12-23 15:45:36 +00:00
Wez Furlong 03d426f6a6 implement our own tiny little dependcy tracker and use
it to build distros.
2003-12-23 15:33:13 +00:00
Wez Furlong 46c4147ab7 enable inifile handler under new win32 build too 2003-12-23 14:05:33 +00:00
Wez Furlong 8f3f09f315 Attempt to work around apparent problems with WshShell.CurrentDirectory.
# Andi, please try this now
2003-12-23 13:10:54 +00:00
Wez Furlong b8978cad26 Better implementation of the prefix thing 2003-12-23 12:40:41 +00:00
Andi Gutmans 3eadb12f7e - Commit fixes to PHP man page 2003-12-23 11:06:50 +00:00
Marcus Boerger c6cb00fe59 Fixed bug #26697 (calling class_exists on a nonexistent class in __autoload
results in segfault).
2003-12-23 10:45:10 +00:00
Antony Dovgal cf45beedb5 do not delete connection ids, we need them 2003-12-23 09:21:14 +00:00
Georg Richter bbae05b957 #fixed bug #26680 2003-12-23 06:28:12 +00:00
Frank M. Kromann 835f6beab8 Adding install target that follows the prefix 2003-12-23 05:43:19 +00:00
Wez Furlong 9b80e46e45 Now that it has matured somewhat, don't discourage questions about it
quite so strongly.
Add note about snapshot building.
# If you are building "official" snapshots, you need Edin's treasure-trove
# of libraries/headers and the snapshot template
2003-12-23 02:51:18 +00:00
Wez Furlong 8d011cba6d fix API exports 2003-12-23 01:57:26 +00:00
Wez Furlong 475821225d Implement a glob() function for use by win32 configure. 2003-12-23 01:55:33 +00:00
Wez Furlong 482ae86d1f win32 buildconf now honours extension dependencies and will
try its best to ensure that the config.w32 files are amalgamated
in such a way that modules are processed before their dependents.
2003-12-23 01:54:07 +00:00
3fc3d625e5 ChangeLog update 2003-12-23 01:31:50 +00:00
Frank M. Kromann 86c302f590 Use a variable name so this actually works. 2003-12-23 00:36:32 +00:00
Frank M. Kromann 3a6a3dd816 Fix build when both a path and the keyword shared is given
Now works for both <path>,shared and shared,<path>
2003-12-23 00:17:15 +00:00
Marcus Boerger 8a072165f5 Typos found by Petras Kudaras. 2003-12-22 23:45:53 +00:00
Frank M. Kromann 3aad8267a8 No need for these trick when linking with a correct cclient.lib 2003-12-22 23:30:20 +00:00
Marcus Boerger 68251516ad Fix test 2003-12-22 23:23:06 +00:00
Marcus Boerger 45277ec5d7 Preserve casing 2003-12-22 23:17:17 +00:00
Marcus Boerger b89ce361fc Fix test 2003-12-22 23:15:34 +00:00
Marcus Boerger 4e24057380 Update 2003-12-22 22:59:44 +00:00
Marcus Boerger 717604ea70 Add more tests 2003-12-22 22:53:48 +00:00
Marcus Boerger 26a0abbd0c Fix tests now that class names are shown in correct casing 2003-12-22 22:50:02 +00:00
Wez Furlong 4b76493f1e Don't annoy people building snaps/dists using VC6 2003-12-22 22:48:29 +00:00
Wez Furlong d163ec27af Allow FrontBase to build against my local version of the headers 2003-12-22 22:41:59 +00:00
Wez Furlong 719d659e89 Proper header check for yaz. 2003-12-22 22:39:57 +00:00
Marcus Boerger 50888a100c Preserve class name casing. 2003-12-22 22:34:28 +00:00
Marcus Boerger 37d9a9f150 BFN 2003-12-22 22:33:45 +00:00
Wez Furlong fc292fc259 For GD, build the extension as php_gd2.dll instead of php_gd.dll.
Thanks again Frank :-)
2003-12-22 22:33:43 +00:00
Wez Furlong f936f2983d It seems that making the NewAPIs.h header globally visible causes
problems when compiling the com_dotnet extension, so I'm moving
it to be visible only to the VCWD code.
Thanks Frank :-)
2003-12-22 22:30:50 +00:00
Marcus Boerger b58d371927 Fixed bug #26695 (Reflection API does not recognize mixed-case class hints)
# The exception part
2003-12-22 20:03:01 +00:00
Frank M. Kromann e6f386df9f Convert to windows line endings 2003-12-22 18:23:39 +00:00
Georg Richter 5bf9b63c5b beautifying :) 2003-12-22 17:00:54 +00:00
Georg Richter ba7d400fa1 fixed bug #26680 2003-12-22 16:56:14 +00:00
Rob Richards ab29ed006c rollback to previouos version
bug #26690 fixed in libxml.c
2003-12-22 16:49:54 +00:00
Rob Richards 620cb2e2eb only test url_stat in read mode 2003-12-22 16:46:26 +00:00
Ilia Alshanetsky a8c58f1d79 Fixed bug #26690 (make xsltProcessor->transformToUri use streams wrappers). 2003-12-22 16:32:29 +00:00
Marcus Boerger 06788f0438 Fixed bug #26675 (Segfault on ArrayAccess use)
Update NEWS
2003-12-22 16:27:14 +00:00
Ilia Alshanetsky 1a53f3c5e0 Define INADDR_NONE for systems that don't have it (apparently solaris). 2003-12-22 16:00:52 +00:00
Ilia Alshanetsky 57b7eb9dc3 Missing bit for bug #26625. 2003-12-22 15:56:51 +00:00
Wez Furlong 4534d0d0c4 Verify that new build system works with Pi3Web 2.0.2 2003-12-22 15:32:11 +00:00
Wez Furlong 42ed91f94c Fix bug #26692; Could not find GetLongPathNameA under NT4.
This fix relies on you having the Platform SDK headers.
Using the new build system, the NewAPIs.h header will be detected
automatically, however, for people building using .dsp files,
you will need to add /DHAVE_NEWAPIS_H=1 to the TSRM project
if you have those newer headers.
2003-12-22 15:01:05 +00:00
Wez Furlong 3b450ec431 Add dependencies for these extensions 2003-12-22 13:16:43 +00:00
Wez Furlong 113165bd95 Add --enable-snapshot-build configure option for win32 build.
Using it will attempt to switch on any configure options that
were left to their default value of "no".

Add a "snap" target to the makefile which will run a sub-process
to make each SAPI and EXT independently, so that the whole process
does not bail out if a particular extension is broken.

Add a way to specify dependencies between extensions in the
config.w32 files so that the makefile will include appropriate rules
and linkage.
2003-12-22 13:13:39 +00:00
Wez Furlong 273c19334b export these symbols for use by SPL as a shared extension 2003-12-22 13:09:15 +00:00
Wez Furlong d756e1db23 add win32 configure option for CLI to switch on CRT heap debugging 2003-12-22 13:08:04 +00:00
Jon Parise 85735c23c6 Correcting the description field. 2003-12-22 06:19:01 +00:00
1dc6e59dcc ChangeLog update 2003-12-22 01:31:56 +00:00
Moriyoshi Koizumi 1b239fc970 - Fix multibyte handling errors in iconv_mime_encode() when quoted-printable
encoding scheme is used.
- Fix segfault that occurs in iconv_mime_encode() when input_charset or
  output_charset parameter is not specified in the associative array.
2003-12-22 01:30:00 +00:00
Derick Rethans 0041a5798b - Fix version number so that people are not mistaking our development
version for RC1.
2003-12-21 18:57:59 +00:00
Ilia Alshanetsky c8de14b375 Corrected argument parsing. 2003-12-21 18:46:15 +00:00
Zeev Suraski 6ac233f975 B3 here we go (away) 2003-12-21 18:30:57 +00:00
Zeev Suraski 86e776470c Update date 2003-12-21 18:30:31 +00:00
Zeev Suraski bb531436c8 B3 here we come 2003-12-21 18:26:29 +00:00
Ilia Alshanetsky 72da689340 Compiler warning fixes. 2003-12-21 18:22:14 +00:00
Ilia Alshanetsky cba426ca13 Fixed uninitialized usage of mdtype when unknown signature algorithm is
found.
2003-12-21 18:17:20 +00:00
ebeedaf6f5 ChangeLog update 2003-12-21 01:31:46 +00:00
Andi Gutmans d53caa9618 - Make the world a better place.
- Will roll b3 tomorrow.
2003-12-20 21:27:49 +00:00
Wez Furlong ab11c8c5ba MFB fix for #25597 2003-12-20 20:25:55 +00:00
Wez Furlong 76828b3024 new win32 build tweaks 2003-12-20 01:44:53 +00:00
d8f6bb7efa ChangeLog update 2003-12-20 01:31:55 +00:00
Wez Furlong deb3bff21a Forgot to add embed config.w32, and tweak version resource when CREDITS file is missing. 2003-12-19 23:19:19 +00:00
Wez Furlong 4084ed9edf Export flock for win32 2003-12-19 23:18:14 +00:00
Wez Furlong 331dc79254 More things for the new build system.
Pi3Web and aolserver build untested (no headers and libs for those here)
2003-12-19 20:39:04 +00:00
Wez Furlong 7930ddce0a Make apache2handler build with new build system.
Perhaps also make it build with .dsp system too...
2003-12-19 18:28:56 +00:00
Wez Furlong 1402825b3d Moved ext/notes to PECL.
(win32 only, and doesn't build on snaps.php.net)
2003-12-19 17:13:20 +00:00
Antony Dovgal f5bd0b73cf add tests to HEAD 2003-12-19 17:03:12 +00:00
Wez Furlong 51c342efae Make these build with new win32 build system. 2003-12-19 17:00:14 +00:00
Wez Furlong 836e786ddd Make xmlrpc build using our expat compat functions.
Would be good if someone could verify that it actually
works in this configuration.
2003-12-19 16:59:37 +00:00
Wez Furlong 19c8a69148 add config.w32 for ext/yaz
Edin: we need to update the yaz stuff in php-win32-dev
so that this extension will build.
2003-12-19 16:59:09 +00:00
Wez Furlong 06f448cf61 Export expat compat functions.
"Implement" XML_GetCurrentByteCount(); probably not 100%
correct, but the only usage of it is by xmlrpc extension when
reporting an error; it should be safe.
2003-12-19 16:57:36 +00:00
Wez Furlong 9ecd238b6b don't overwrite internal_functions.c if the content did not change;
this saves re-linking php*.dll when you add shared extensions to
your config.
2003-12-19 16:55:59 +00:00
Derick Rethans 4845b205fc - Test commit 2003-12-19 15:29:34 +00:00
Derick Rethans 9dd1d8bfc8 - Test 3 2003-12-19 15:26:47 +00:00
Derick Rethans cd46b43506 - test 2 2003-12-19 15:22:43 +00:00
Dmitry Stogov f06cbb764c Using INI section. 2003-12-19 15:09:40 +00:00
Dmitry Stogov df76eba657 New tests for memory leaks 2003-12-19 15:08:56 +00:00
Wez Furlong 0c126e1233 make these build with new win32 build system.
mcve untested (I don't have those libs/headers)
2003-12-19 15:04:31 +00:00
Derick Rethans da4a9eea92 - Test new commit info file 2003-12-19 15:02:15 +00:00
Andi Gutmans 535653ee8e - Nuke another rule (thanks to Jan for noticing this) 2003-12-19 14:39:17 +00:00
Ilia Alshanetsky 90a5af75f6 Fixed memory leak in tidy_getopt() when fetching string values.
Removed unnecessary check in tidy_diagnose().
2003-12-19 14:24:59 +00:00
Ilia Alshanetsky 9f50065edd Fixed tidy tests. 2003-12-19 14:24:04 +00:00
Dmitry Stogov 02a9316731 Bug #25547 (error_handler and array index with function call) was fixed
tests/lang/bug25547.phpt
2003-12-19 14:08:22 +00:00
Jan Lehnardt 1e1e3436f3 - restructured phpize
- added -v and --version to print out API numbers
 - discussed with Jani and Andi
2003-12-19 14:01:24 +00:00
Pierre Joye 5f16e61f05 - date==today() 2003-12-19 13:56:11 +00:00
Ilia Alshanetsky c6b04cb48a Check correction (Thanks Andi). 2003-12-19 13:49:59 +00:00
Pierre Joye fbfde0fc0e - prepare 1.3b5 2003-12-19 13:39:40 +00:00
Andi Gutmans a43d420f0a - Update date 2003-12-19 13:37:39 +00:00
Andi Gutmans e7bdc15148 - Prepare for RC2 2003-12-19 13:36:38 +00:00
Andi Gutmans f9f19c99b3 - Nuke unused code 2003-12-19 13:35:42 +00:00
Ilia Alshanetsky c9a9dee298 Fixed bug #26667 (Added safety checks to ip2long()). 2003-12-19 13:33:51 +00:00
Wez Furlong 95c48c740c don't enable by default; causes simplexml build to fail 2003-12-19 13:02:57 +00:00
Wez Furlong 8da99a195e we only use zlib.lib 2003-12-19 12:54:49 +00:00
Wez Furlong a599438a73 detect c-client headers correctly using Edin's php-win32-dev layout 2003-12-19 12:53:41 +00:00
Wez Furlong 441181e9c2 copy-n-paste error 2003-12-19 12:52:39 +00:00
Wez Furlong 6fd8bd2367 Explicitly depend on oleaut32.lib 2003-12-19 12:52:08 +00:00
Wez Furlong ee44dd3d79 "Real" cvsclean, works as the unix version does 2003-12-19 12:51:19 +00:00
Wez Furlong a3075773ee Refinements for new build system:
- Add major + minor version to .dll and .exe headers during linking
- Handle pecl build dir correctly when pecl is a sibling of php-src
- try and guess where your cygwin utils are installed (if you have them)
  so that we can detect bison, flex etc.
- other little refinements
2003-12-19 12:50:11 +00:00
Wez Furlong 7027baee22 this should be an int 2003-12-19 12:44:22 +00:00
Wez Furlong 2ad5943282 add prototype 2003-12-19 12:43:39 +00:00
Wez Furlong d408ae3abd ignore .tmp files created by tests 2003-12-19 12:42:59 +00:00
Wez Furlong 085ceca8e1 be slightly nicer when defining R_OK 2003-12-19 12:41:24 +00:00
Dmitry Stogov 7c39ab9374 Memory limit overflow was fixed 2003-12-19 11:29:27 +00:00
Dmitry Stogov 5adf502a69 Error reporting on unset string offset was added (Bug #24773 Zend/tests/bug24773.phpt) 2003-12-19 11:26:52 +00:00
Dmitry Stogov 25a811da65 Assign_op operators (+=) were fixed for elements of overloaded objects 2003-12-19 11:22:13 +00:00
Marcus Boerger e515b246cb Fix test 2003-12-19 10:23:05 +00:00
Marcus Boerger 06aad2d22d Add test for foreach visibility 2003-12-19 10:16:08 +00:00
fbebdb4685 ChangeLog update 2003-12-19 01:31:43 +00:00
Andi Gutmans 38beff5c92 - Nuke C++ comment 2003-12-18 23:30:22 +00:00
Andi Gutmans 3546d86052 - Revert patch 1.566 2003-12-18 23:28:15 +00:00
Andrey Hristov df4e15b153 test case for array_sum 2003-12-18 22:12:29 +00:00
Stig Bakken 9fd18029a9 * PHP 4 fix for the E_STRICT check 2003-12-18 22:09:17 +00:00
Ilia Alshanetsky 79848fa885 Added sqlite_fetch_column_types() function. 2003-12-18 21:28:00 +00:00
Marcus Boerger 3203957864 Add this file too 2003-12-18 20:32:39 +00:00
Marcus Boerger c69fb4133d dded qdbm handler (http://qdbm.sourceforge.net). 2003-12-18 20:25:21 +00:00
Marcus Boerger 0283b50316 Centralize ability to drop APPEND flag. This probably fixes some ini file
issues.
2003-12-18 20:14:15 +00:00
Marcus Boerger a6dd097484 Improve dba tests: check in both modes external and database locking. 2003-12-18 20:10:24 +00:00
Marcus Boerger 49efcd4f27 Fixed bug #24837 Incorrect behaviour of PPP using foreach. 2003-12-18 20:07:30 +00:00
foobar 48200cbee6 ws & cs 2003-12-18 19:59:58 +00:00
Moriyoshi Koizumi 63ae8079ea "a" 2003-12-18 19:54:28 +00:00
Greg Beaver cab4d7137b fix #449: XML_SVG and VFS fail to install properly using PEAR command
fix #455: PEAR_Downloader does not set $ui
2003-12-18 18:09:13 +00:00
Greg Beaver b1362a53ab remove retarded use of numbers (REALLY bad idea) for error handling, add check for E_STRICT and ignore all of those errors 2003-12-18 17:48:54 +00:00
Marcus Boerger b766beaac9 Update tests to see where they fail now exactly 2003-12-18 13:35:39 +00:00
Dmitry Stogov eb973da1d3 two new methods were added
$node->count($subnode_name) - returns count of subnodes with specified name
  $node->attributes() - returns array of attributes
2003-12-18 13:28:00 +00:00
Wez Furlong 33ed73cb51 make it totally safe again 2003-12-18 11:32:19 +00:00
Wez Furlong 12b0501f55 Counteract brain-death in Apache headers
(they #define strtoul to something that will break compilation,
and it successfully breaks the win32 IPv6 headers)
2003-12-18 11:26:00 +00:00
Wez Furlong 09907c6b93 Fix use of the CorRuntimeHost; once it has been stopped for a process, it cannot be restarted, so we keep it alive for the duration of the process, and instead close down the application domain in
request shutdown.
2003-12-18 11:23:21 +00:00
Wez Furlong 48a2b2a3d3 ZTS build and speling fix 2003-12-18 11:20:19 +00:00
Wez Furlong b978ec134f add news about tidy 2003-12-18 11:18:51 +00:00
Wez Furlong 8959c7bc0d make sure this is initialized to NULL as we don't check the return
value of the FormatMessage function; we could end up using a stale
pointer.
2003-12-18 11:16:16 +00:00
Marcus Boerger e649692565 Leak for b3 and find a better solution until RC1 2003-12-18 11:05:20 +00:00
Moriyoshi Koizumi b8ea4e6fd2 Fix bug #26639 (mb_convert_variables() clutters variables beyond the references) 2003-12-18 09:50:20 +00:00
Rasmus Lerdorf 749cf47ef7 Fix remaining gd build issue 2003-12-18 08:17:45 +00:00
John Coggeshall 6abf31f09c Adding the tidy.default_config and tidy.clean_output options to the .ini
files
2003-12-18 02:06:00 +00:00
893fa6c137 ChangeLog update 2003-12-18 01:32:36 +00:00
Rasmus Lerdorf 0f6cafa7e6 MFB compile fix 2003-12-17 22:47:02 +00:00
Andrey Hristov f083d42581 proto fix 2003-12-17 22:21:05 +00:00
Andrey Hristov 4b5caaa04a entry for microtime()'s new clothes 2003-12-17 22:17:15 +00:00
Marcus Boerger 73b895ca5f Add new test 2003-12-17 22:14:59 +00:00
Andi Gutmans 1e8ed7889b - Update NEWS for tomorrow morning so that I don't forget when I'm sleepy 2003-12-17 22:13:57 +00:00
Andrey Hristov a0e930cff4 Added optional parameter to microtime so now it can return float if it
the user wants. This prevents from getting string representation exploding
it and then creating a float.
2003-12-17 22:03:33 +00:00
Andi Gutmans 3573c13552 Roll RC1 of B3 2003-12-17 20:20:34 +00:00
Rob Richards d1b8a0f2a9 no longer need to cleanup temp var 2003-12-17 18:59:05 +00:00
Ilia Alshanetsky fec7c2997a Update test. 2003-12-17 17:25:00 +00:00
Zeev Suraski 24298e523f This part of the if was necessary after all.
Refix bug #22510
2003-12-17 17:06:34 +00:00
Ilia Alshanetsky 664268b037 Always user Zend memory allocation wrappers. 2003-12-17 16:34:10 +00:00
Dmitry Stogov ae4a09b239 *** empty log message *** 2003-12-17 15:08:13 +00:00
Dmitry Stogov 4fd476ee43 accessing singular subnode as array 2003-12-17 15:06:40 +00:00
Dmitry Stogov 1292337356 *** empty log message *** 2003-12-17 14:49:10 +00:00
Dmitry Stogov 3c4cfd3ec8 Dynamic function call from object's property was fixed
(See "tests/lang/bug24926.phpt" and "tests/lang/bug25652.phpt")
2003-12-17 14:45:59 +00:00
Dmitry Stogov 20f73cd267 Access to globals/autoglobals from class __destructor was fixed.
(see "tests/lang/bug24908.phpt" and "tests/classes/destructor_and_globals.phpt")
2003-12-17 14:25:12 +00:00
Marcus Boerger 490fd0eaf2 Fix a memleak: A second call to *nix version of dlerror() frees the error
string. This behavior is also adapted to the win build so that the buffer
returned by FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER) can be freed too.
2003-12-17 11:20:35 +00:00
Rob Richards 094861db8c free nodes correctly to clear node proxies 2003-12-17 10:28:29 +00:00
Marcus Boerger a841334860 Fix warning 2003-12-17 09:07:11 +00:00
Marcus Boerger fb37c4306a Fix warnings 2003-12-17 08:50:50 +00:00
00c012804e ChangeLog update 2003-12-17 01:31:48 +00:00
Derick Rethans e7fd0bdf03 - Added 'c' modifier to date() which returns the date in ISO 8601 format. 2003-12-16 22:52:48 +00:00
Andrei Zmievski 9fc9e4b2cf MFB 2003-12-16 22:20:30 +00:00
Andrei Zmievski e9fb9a7fa7 *** empty log message *** 2003-12-16 21:53:27 +00:00
Marcus Boerger b4e4d81777 Add inifile 2003-12-16 21:50:03 +00:00
Marcus Boerger 42ad99b62f Fix winbuild 2003-12-16 21:40:19 +00:00
Marcus Boerger 9e29f2dfcf Not needed here (copy'n'paste) 2003-12-16 21:02:54 +00:00
foobar bb8b077ce7 Fix some compile warnings (patch by Joe Orton) 2003-12-16 21:00:21 +00:00
Marcus Boerger 23bab357de Add missing .cvsignore 2003-12-16 20:55:41 +00:00
Marcus Boerger 5b712c890c Add a test to check split text content collecting 2003-12-16 20:50:20 +00:00
Marcus Boerger a08a37dda3 Better comment 2003-12-16 20:40:24 +00:00
foobar f0c110d4bf nuke unused code 2003-12-16 20:39:40 +00:00
Marcus Boerger 1f60a44563 Add myself 2003-12-16 20:36:46 +00:00
Marcus Boerger 4dd4bcdbb5 Add error handling for element/attribute creation/changing 2003-12-16 20:34:19 +00:00
Marcus Boerger 7ef8b1226e Add test for string conversion capabilities when used with echo/print. 2003-12-16 19:49:33 +00:00
Sara Golemon d516184885 Fail loudly, silence bogus bugs. 2003-12-16 19:41:26 +00:00
Ilia Alshanetsky 45cd627569 ZTS fix. 2003-12-16 17:23:15 +00:00
Ilia Alshanetsky bf36e351ba Removed duplicate php_libxml_(init|shutdown) they are already done by
ext/libxml.
2003-12-16 17:14:06 +00:00
Antony Dovgal c002553d7c fix bug #26133 (thanks to Harald)
rename constant and add library check to config.m4
add info lines to see if Collection & Temp Lob support enabled or not
add OCI_THREADED to use thread safe OCI mode with ZTS (should fix bug #26558)
2003-12-16 15:58:10 +00:00
Antony Dovgal c0e519e6ea fix warning, concerned to second _oci_close_server() call 2003-12-16 15:48:20 +00:00
Derick Rethans f7b3e30fe1 - Remove debug info :) 2003-12-16 15:00:24 +00:00
Derick Rethans 76ec811b35 - Added %e modifier which gets replaced by the current value of
DIRECTORY_SEPARATOR.
2003-12-16 14:53:43 +00:00
Sebastian Bergmann 9c909f41fd Sync: Export externally used functions. 2003-12-16 11:44:19 +00:00
Dmitry Stogov fca9c0c669 Incorrect test file was fixed. (Use pattern insted of absolute filename) 2003-12-16 11:19:20 +00:00
Harald Radi e0a0e9d831 fix non-zts build errors 2003-12-16 11:15:55 +00:00
Stanislav Malyshev 6d5eb809be export class initialization function 2003-12-16 10:51:51 +00:00
Stanislav Malyshev 052032f5ec export externally used functions 2003-12-16 10:51:21 +00:00
Stanislav Malyshev d22fcfbc03 export function 2003-12-16 10:50:52 +00:00
Dmitry Stogov c0fbcc0bf7 Improper test file was fixed. 2003-12-16 10:41:40 +00:00
Harald Radi 85b4b63a47 @- fixed #20006, #22674 and #24531 (harald)
@- added ZTS connection pooling support to the oci extension
@  connections will now be pooled per process and not
@  per thread anymore. the number of persistent and active
@  connections is now also shown in the phpinfo() output (harald)
2003-12-16 10:29:11 +00:00
Harald Radi b2f953768c add myself 2003-12-16 10:28:00 +00:00
Harald Radi 39e8a904e9 fix include path 2003-12-16 10:27:48 +00:00
Georg Richter 317e4b0d90 added properties
- insert_id
	- server_status
fixed bug in mysqli_execute (report func)
2003-12-16 08:18:31 +00:00
foobar 04611c1287 BFN 2003-12-16 08:06:09 +00:00
Sebastian Bergmann aaeb8f4394 Fix ZTS build. 2003-12-16 06:29:01 +00:00
Greg Beaver e353289cfc remove optional dep on xmlrpc, not really useful at this point
add required dep on pcre, as it is used without reservation in PEAR_Config, and other places
2003-12-16 02:12:55 +00:00
39d19a5b0f ChangeLog update 2003-12-16 01:31:45 +00:00
Ilia Alshanetsky 82ec523a75 Fixed Bug #26625 (pg_convert sets NULL incorrectly for character data
types).
2003-12-16 01:00:34 +00:00
Marcus Boerger 4911e83bec Check validity of seeks.
WS/CS
2003-12-15 22:47:37 +00:00
Ilia Alshanetsky b6a3f48d86 Always set panic call handler, allows us to address critical libtidy errors
from inside PHP.
When memory_limit is enabled use e* memory allocation macros to control
memory usage.
2003-12-15 21:56:55 +00:00
Ilia Alshanetsky e440d4fbea Fixed bug #26635 (fixed look up for fonts in the current directory w/ZTS) 2003-12-15 20:34:48 +00:00
Marcus Boerger d4f64f88ba Reenable __tostring() magic for print,echo,concatenation,function naming...
but not for other internal things.
# As discussed with Andi
2003-12-15 16:59:21 +00:00
Antony Dovgal 18096396d2 add new functions:
ocitelllob(); [ OCI_Lob->tell(); ] - ftell(); analogue for Lobs
ociwritelob(); [ OCI_Lob->write(); ] - fwrite(); analogue for Lobs
ocitruncatelob(); [ OCI_Lob->truncate(); ] - ftruncate(); analogue for Lobs
ocieraselob(); [ OCI_Lob->erase(); ] - erases specified part of a Lob (for BLOBs it means zero-filling, for CLOBs - space-filling)
ociflushlob(); [ OCI_Lob->flush(); ] - flushes Lob buffer (if buffering was enabled before)
ocisetbufferinglob(); [ OCI_Lob->setBuffering(); ] - turns on/off buffering for the current Lob
ocigetbufferinglob(); [ OCI_Lob->getBuffering(); ] - gets buffering' current state
ocirewindlob(); [ OCI_Lob->rewind(); ] - rewind(); analogue for Lobs
ocireadlob(); [ OCI_Lob->read(); ] - fread(); analogue for Lobs
ocieoflob(); [ OCI_Lob->eof(); ] - feof(); analogue for Lobs
ociseeklob(); [ OCI_Lob->seek(); ] - fseek(); analogue for Lobs
ocilobgetlength(); [ OCI_Lob->getLength(); ] - filesize(); analogue for Lobs

ociappendlob(); - appends data from a Lob to another Lob
ocicopylob(); - copies data from a Lob to another Lob
ociisequallob(); - compares 2 Lobs and checks if they are equal

TODO cleanup
and other minor fixes
2003-12-15 13:53:01 +00:00
foobar a1a69ae16b ws + cs (no c++ comments in c code) 2003-12-15 13:20:53 +00:00
Dmitry Stogov ceb7c536d5 Bug #24773 was fixed (Zend/tests/bug24773.phpt)
Assign_op operators (+=) were fixed for elements of overloaded objects
Memory leaks during accessing ptoperies/elements of overloaded objects were fixed
2003-12-15 07:22:09 +00:00
Dmitry Stogov 2d9281352b Memory corruptions were fixed in zend_str_tolower_copy() 2003-12-15 07:17:27 +00:00
Sara Golemon e90f85e45d Scan for : in host:port pair from right instead of left.
This will allow handling of http://[fe80::1]:443/foo.html
IPv6 Numeric addressing with port number to parse correctly.
2003-12-15 06:54:31 +00:00
Ilia Alshanetsky c3043fb2e4 Removed unused variable. 2003-12-15 03:15:50 +00:00
John Coggeshall 39e56b5ff6 Applying some minor fixes / CS changes by ilia 2003-12-15 01:43:45 +00:00
fa4726e3b3 ChangeLog update 2003-12-15 01:31:56 +00:00
foobar 1139f1b525 lalalaa.. 2003-12-15 00:43:28 +00:00
Ilia Alshanetsky 5264d34578 Update test to reflect new functionality. 2003-12-14 23:27:32 +00:00
Ilia Alshanetsky d3639b1aa7 Fixed bug #24693 (Allow session.use_trans_sid to be enabled/disabled from
inside the script).
2003-12-14 23:24:50 +00:00
Marcus Boerger 661b203e89 Change to more complicated 'c' more 2003-12-14 22:09:28 +00:00
Marcus Boerger 43d06f50e0 - Fix Bug #26304 Unexpected data loss when opening dba file
- Correct handling for flatfile handler
2003-12-14 22:08:18 +00:00
Marcus Boerger 620bf0c37f Not needed 2003-12-14 22:07:29 +00:00
Moriyoshi Koizumi 61e6cd2a1a Reorganization. 2003-12-14 20:00:15 +00:00
Moriyoshi Koizumi 5ce35b8253 Note about Apache2 SAPI change. 2003-12-14 19:02:14 +00:00
Ilia Alshanetsky bebaa5b00f Do not mangle column names. 2003-12-14 18:45:37 +00:00
Ilia Alshanetsky 097ed939a6 Fixed test. 2003-12-14 18:25:13 +00:00
Ilia Alshanetsky 1128955aa4 Fixed compiler warnings. 2003-12-14 18:23:15 +00:00
Marcus Boerger 1e2349a1f1 Fix test 2003-12-14 17:42:57 +00:00
Zeev Suraski 3a42babad6 Fix behavior of return-by-reference functions. Remove erroneous warnings,
add E_STRICT warnings in case you return something by reference that you're
not supposed to (anything that's not a variable, or a return-value of a
function that returned by reference).
2003-12-14 16:09:07 +00:00
Marcus Boerger c1e905dfc1 Removed doubled loop from wrongly applied patch 2003-12-14 15:41:50 +00:00
Zeev Suraski cb0fe5786e Cleanup 2003-12-14 12:32:35 +00:00
Zeev Suraski e94e3e1775 Some cleanup 2003-12-14 12:32:02 +00:00
Zeev Suraski 3788ddb383 Fix from Michael Sisolak (destructors weren't always properly called) 2003-12-14 09:36:23 +00:00
John Coggeshall 95cb88e5d0 Modified package.xml to reflect 2.0's beta status 2003-12-14 06:04:51 +00:00
John Coggeshall 3ab2935250 Tons of changes for Tidy 2.0 -- output buffering, multiple documents,
dual nature ($a->parse_file() and $a = tidy_parse_file()), etc.
2003-12-14 06:02:33 +00:00
4c8eb214fd ChangeLog update 2003-12-14 01:31:56 +00:00
Sara Golemon 822ea95785 Export STREAM_MKDIR_RECURSIVE constant 2003-12-13 23:13:51 +00:00
Moriyoshi Koizumi 033bc12d86 Fixes for POSIX compliancy. 2003-12-13 19:28:30 +00:00
Derick Rethans 112f424f70 - Fixed bug #26615 (patch by runekl at opoint dot com) 2003-12-13 18:55:53 +00:00
Sebastian Bergmann cd73a63655 Add shortcut for 'nmake /I clean'. 2003-12-13 18:50:38 +00:00
Sara Golemon a67bf6ecc9 Fix Win32 Build. mkdir/rmdir are macros 2003-12-13 18:48:39 +00:00
Georg Richter ec5b38fae9 minor fixes for embedded 2003-12-13 16:08:13 +00:00
Hartmut Holzgraefe 47a32a57e8 test case for BC bug 26614 2003-12-13 15:42:39 +00:00
Marcus Boerger 70ca95aa0e Revert: need a PHP4.3 solution.
# This solution cannot be backported to PHP 4.3 -- damn!
2003-12-13 15:00:04 +00:00
Marcus Boerger d1a6deb785 - Fixed bug #26304 (Unexpected data loss when opening dba file). 2003-12-13 14:50:06 +00:00
Marcus Boerger 9a98ff3ab5 Add standard file info functions to DirectoryIterator 2003-12-13 14:40:56 +00:00
Marcus Boerger afc15ffde9 Show classname 2003-12-13 14:40:06 +00:00
Marcus Boerger 04d0d99b11 ZTS fixes 2003-12-13 13:44:56 +00:00
Andrey Hristov 32f41d172d add an example for illegal string offset. the example is stolen from Marcus
and Markus should be now satisfied :). Currently this code segfaults with
PHP_4_3.
2003-12-13 12:33:14 +00:00
Georg Richter ec7ddff5c7 removed old profiler stuff for embedded server 2003-12-13 10:15:45 +00:00
f076fea779 ChangeLog update 2003-12-13 04:08:11 +00:00
Sara Golemon c56647833b Route mkdir()/rmdir() via wrapper ops.
Move current rmdir()/rmdir() code to plain_wrappers.c
Implement mkdir()/rmdir() in ftp:// wrapper
2003-12-13 04:07:18 +00:00
Georg Richter bef6368dee removed profiler stuff 2003-12-13 00:46:48 +00:00
Georg Richter 8b3b1c192b removed profiler
added mysqli_report
	- better support for errors
	- support for no_index_used and bad_index_used
typos and prototype fixes
2003-12-13 00:28:21 +00:00
Sara Golemon b1f8236b63 Route rename() via wrapper ops.
Move current rename() code to main/streams/plain_wrapper.c
Implement ftp/rename()
Implement userstreams/rename()
2003-12-12 23:06:42 +00:00
Andrey Hristov 23afd9b166 added entry about mysqli_fetch functions 2003-12-12 20:50:12 +00:00
Ilia Alshanetsky 1628eb1074 Fixed bug #26604 (Apache2 SAPIs implicitly disable Keep-Alive). (Ilia) 2003-12-12 17:19:11 +00:00
Uwe Schindler 844d63081c remove revision tag from module version entry 2003-12-12 16:21:28 +00:00
Rob Richards 6dfd1c190c use error handling from libxml ext 2003-12-12 13:54:52 +00:00
Rob Richards 4dd0dbfd79 consolidate error handling 2003-12-12 13:54:06 +00:00
Marcus Boerger a251361849 Free is needed in non ZTS too 2003-12-12 11:14:44 +00:00
Marcus Boerger 8fb5ea3081 Fix memleaks in ZTS mode 2003-12-12 10:50:23 +00:00
Marcus Boerger f96427a044 Actually register the class 2003-12-12 08:45:51 +00:00
Marcus Boerger a54c7dcb20 Fix memleaks 2003-12-12 08:25:58 +00:00
Marcus Boerger 2f9be5d518 Do not use before they are initialized. 2003-12-12 08:25:22 +00:00
Marcus Boerger 2c7c86bc60 Add some comments here 2003-12-12 07:59:46 +00:00
Marcus Boerger fc5c73897d BFN 2003-12-12 06:34:06 +00:00
foobar c3ea5b122e Fixed bug #26461 (-lssl missing from LIBS) 2003-12-12 05:19:30 +00:00
fb7f1aa71e ChangeLog update 2003-12-12 01:31:49 +00:00
Ilia Alshanetsky f341b2f381 Fixed extra byte allocation in constant creation code. 2003-12-12 00:23:15 +00:00
Ilia Alshanetsky 7f9d1a1f6b Do not copy extra byte. 2003-12-12 00:16:58 +00:00
Greg Beaver af2f43c75e update notes 2003-12-12 00:02:32 +00:00
Greg Beaver ad747ba2e3 MFB 2003-12-11 23:57:15 +00:00
Ilia Alshanetsky a643675b43 Fixed extra byte allocation for STD* constants and replace magic numbers
with sizeof().
2003-12-11 23:51:24 +00:00
Ilia Alshanetsky e2012609d6 Fixed extra byte allocation for TRUE/FALSE/ZEND_THREAD_SAFE/NULL constants. 2003-12-11 23:50:13 +00:00
Greg Beaver 0134c5c3ab add missing not relation 2003-12-11 23:30:52 +00:00
Andrei Zmievski f25486922f MFB 2003-12-11 19:37:03 +00:00
Marcus Boerger 39544e1c7f Bugfix: #26591 [NEW]: "__autoload threw an exception" during an uncaught
Exception
2003-12-11 18:18:52 +00:00
Greg Beaver 2272c11d80 fix #391, PHP 5 reference fix 2003-12-11 16:07:01 +00:00
Greg Beaver 117698b4c6 add failure test for non-existing file 2003-12-11 15:59:08 +00:00
Greg Beaver 541ebbeaeb new unit test for PEAR_Packager 2003-12-11 15:56:08 +00:00
Dmitry Stogov 70c9d3332a Dir seaparator "\" was removed. 2003-12-11 13:36:42 +00:00
Edin Kadribasic c7ad4d1e4d MFB: Use standard header locations 2003-12-11 11:19:15 +00:00
Andi Gutmans 5ba810ee46 - Refix bug #24773 2003-12-11 10:21:16 +00:00
Marcus Boerger 904373a830 Handle getter failure and allow to bypass thrown exceptions. 2003-12-11 09:56:06 +00:00
Marcus Boerger b8afd8343a read_dimension() handler might return 0, handle this. 2003-12-11 09:52:33 +00:00
Greg Beaver ab3afbfdf5 since nobody has taken any action, fix Console_Getopt to be BC, and update the PEAR core to take advantage of the new way. Use 1.2 to avoid any problems with versioning.
The core passes all unit tests with these changes, so they should work.

Andrei: feel free to change anything you don't like, this is just a make it work fix.
2003-12-11 05:54:35 +00:00
Greg Beaver 3cd16913a8 update test cases for new error messages 2003-12-11 05:49:37 +00:00
Greg Beaver fa07b7a09c new test case for directory tree deletion on uninstall 2003-12-11 05:30:57 +00:00
a36a6a4b6e ChangeLog update 2003-12-11 01:36:11 +00:00
Christian Stocker 87bd1f4d02 fix crashes when you call php:functionString() with a
non-string handler (by adam)
2003-12-10 22:32:36 +00:00
Ilia Alshanetsky 56f046a67a Fixed ZTS build. 2003-12-10 21:23:35 +00:00
Derick Rethans d78e453c36 - Test before commit - test before commit 2003-12-10 21:02:33 +00:00
Moriyoshi Koizumi cb33fc2c1c oops. 2003-12-10 19:02:34 +00:00
Moriyoshi Koizumi 1338978d3b NFN 2003-12-10 19:01:52 +00:00
Ilia Alshanetsky 9165dc414e The changes() method should be that of the database object not that of
a result.
Added a test case for this bug.
2003-12-10 18:56:05 +00:00
Derick Rethans 009e8498c3 - Added support for MacRoman encoding to htmlentities(). (Marcus Bointon) 2003-12-10 18:17:23 +00:00
Moriyoshi Koizumi c77302fd04 Eliminate compiler warnings. 2003-12-10 17:38:45 +00:00
Moriyoshi Koizumi 698ab70ae4 Remove leftover 2003-12-10 17:09:14 +00:00
foobar 6f4cc5c1c9 Fixed bug #26565 (strtotime("this month") resolving to the wrong month) 2003-12-10 14:08:06 +00:00
Marcus Boerger 310d6c567a Do not double copy the string 2003-12-10 10:24:35 +00:00
Marcus Boerger 47012601af Make these inline 2003-12-10 10:21:24 +00:00
Marcus Boerger c212ddd5ec Fix a (single) leak
# -> iterators cannot keep current data as zval**, only zval * is possible.
2003-12-10 10:19:43 +00:00
Georg Richter 1be7176c7b freeing result and stmt properties in MSHUTDOWN 2003-12-10 10:06:07 +00:00
Moriyoshi Koizumi b2cd08f33d Fix bug #26574 (basename() doesn't work properly with multibyte characters) 2003-12-10 07:15:28 +00:00
Moriyoshi Koizumi 35c3a7f525 Expose the macro globally 2003-12-10 06:08:39 +00:00
Moriyoshi Koizumi c4c586a652 Fix typo. 2003-12-10 06:04:15 +00:00
1ecf87238f ChangeLog update 2003-12-10 01:32:01 +00:00
Ilia Alshanetsky 06b528aa54 Fixed a crash in SQLite when fetching data using sqlite_fetch_object() in
a loop.
2003-12-10 01:02:20 +00:00
Wez Furlong bfdc1fcac0 consistency with unix build.... 2003-12-10 00:47:02 +00:00
foobar a08c1e4dce - Brought ext/bcmath to the new millennium
# consistency..
2003-12-09 23:59:33 +00:00
Greg Beaver 398ab9756a remove references to global variables in validatePackageInfo, remove extraneous summary that is never reached in the switch 2003-12-09 23:43:58 +00:00
Rob Richards 4756b5e05f fix possible mem leak when element has children 2003-12-09 21:56:42 +00:00
Rob Richards 1f33239c91 buffer error messages until newline is hit 2003-12-09 21:55:02 +00:00
Pierre Joye 85ce95847f - MFB (fix pecl install) 2003-12-09 20:54:58 +00:00
foobar e4c1ae0e67 Fixed bug #26564 (ncurses5 has headers in PREFIX/include/ncurses) 2003-12-09 20:33:08 +00:00
Wez Furlong a35a82ddcd allow assignment to $node->nodeValue to work for more
objects and in situations where the rvalue is not a string.
(Fixes a segfault in that case)
2003-12-09 20:19:44 +00:00
Rob Richards 49494dee00 fix issues when passing in mulitple arguments 2003-12-09 20:12:39 +00:00
foobar f02936c683 Fix the configure output.. 2003-12-09 20:10:22 +00:00
foobar 8b73ca2c60 Removed unnecessary outputs 2003-12-09 20:04:17 +00:00
Marcus Boerger d4a55f1ace Add missing dtor call. 2003-12-09 19:03:38 +00:00
Marcus Boerger 5b7d1623ae - Initialize for refcounting.
- Simplify.
2003-12-09 19:02:34 +00:00
foobar 6291a7f995 - Update credits. 2003-12-09 16:33:05 +00:00
foobar 218a3a3f16 correct credits 2003-12-09 16:32:14 +00:00
foobar 63df219b31 - Update header + added missing Id tags. 2003-12-09 16:29:54 +00:00
foobar abea022255 Correct header.. 2003-12-09 16:24:03 +00:00
Andi Gutmans d0d7badfb9 - Fix overallocation (thanks to Ilia) 2003-12-09 08:56:04 +00:00
Ilia Alshanetsky 1393ad9a35 Kill unused variables. 2003-12-09 01:54:56 +00:00
fd6270d515 ChangeLog update 2003-12-09 01:34:47 +00:00
Hartmut Holzgraefe 0141080ff5 reduce/reduce conflicts resolved 2003-12-08 22:22:57 +00:00
Frank M. Kromann 34a596b051 Adding config file for win32. This allows to build with c-client 2002e 2003-12-08 22:15:20 +00:00
Frank M. Kromann 819b2e56f9 Exporting symbols used in the imap extension 2003-12-08 22:10:42 +00:00
foobar 3c0eb788fa ws 2003-12-08 18:57:09 +00:00
Alex Leigh b3db0ed516 Removed extraneous php4_close() function and Windows compile checks. 2003-12-08 18:18:03 +00:00
Rob Richards 3084e72ef1 fix getElementsByTagname iteration 2003-12-08 17:08:10 +00:00
Alex Leigh 862a7e589d New SAPI module for Continuity HTTP server (ashpool.com) 2003-12-08 16:54:18 +00:00
Derick Rethans 03f8baa87e - Make it compile again 2003-12-08 13:26:03 +00:00
Rob Richards c821c5b189 export libxml2 and iconv symbols
extensions no longer link against either of those
2003-12-08 12:56:47 +00:00
foobar 8fa4e39eda typofix 2003-12-08 10:12:42 +00:00
Marcus Boerger f3a3990ca8 Implement CahingIterator and CachingRecursiveIterator as C-code.
#Script examples/directorytree.php has a few memleaks though but besides
#that all works fine.
2003-12-08 08:39:18 +00:00
Marcus Boerger 1c13018702 Use better name for the constant 2003-12-08 08:31:08 +00:00
Marcus Boerger 3aa3f744f1 Update examples to new parameter handling 2003-12-08 08:28:18 +00:00
Sergey Kartashoff 1a898490ae - A bug in Udm_Hash32 function was fixed. 2003-12-08 08:12:34 +00:00
Moriyoshi Koizumi ed2fd39d0a Avoid using non-portable test syntax. This was causing problems on
Solaris. (Reported by Uwe Schindler. Thanks!)
2003-12-08 07:18:20 +00:00
Moriyoshi Koizumi cbddbca787 NULL pointers can be passed to free_fcn. This is the correct behaviour. 2003-12-08 07:15:32 +00:00
9ad6aaea63 ChangeLog update 2003-12-08 01:30:07 +00:00
Moriyoshi Koizumi dcbc570649 Fix iconv stream filter to properly handle multibyte characters that
span at the alignment of a hunk.
2003-12-08 00:38:00 +00:00
Moriyoshi Koizumi b6c0003ffd Fix a convert filters bug that occurs when multiple buckets are coming in. 2003-12-08 00:22:22 +00:00
Andrey Hristov 79ad7aeb6d entries for get_declared_interfaces/get_declared_classes 2003-12-07 22:24:22 +00:00
Stanislav Malyshev dc6a849a2f Apply Andrey Hristov's patch adding get_declared_interfaces() 2003-12-07 18:54:31 +00:00
Ilia Alshanetsky 669b421c11 Removed unused variable. 2003-12-07 18:39:09 +00:00
foobar 36b255fa66 ws 2003-12-07 18:19:30 +00:00
foobar fddacedfa0 BFN 2003-12-07 16:59:32 +00:00
foobar bade2e7df6 Remove unnecessary #include 2003-12-07 16:56:51 +00:00
foobar ea77adf1e5 bfn reorder 2003-12-07 16:54:09 +00:00
foobar 67070c47bd The correct (tm) way. 2003-12-07 16:16:02 +00:00
Marcus Boerger 923d0bcfb4 revert here too 2003-12-07 15:59:13 +00:00
foobar 2e8b1c01fe revert, not needed 2003-12-07 15:41:50 +00:00
Marcus Boerger b88ad57b73 Revert this part, too 2003-12-07 15:39:56 +00:00
foobar b03cb681f6 Fix logic 2003-12-07 15:33:19 +00:00
Marcus Boerger d57004274b Revert, not needed here 2003-12-07 15:26:09 +00:00
Marcus Boerger 1765271499 Use a single bit field for the flags here 2003-12-07 15:03:11 +00:00
Derick Rethans 8eb22d7b8d - Add comment, I put this ina week ago and it already confused me :) 2003-12-07 14:47:35 +00:00
Derick Rethans 71f9227cc5 - Fixed bug #26548 (Malformed HTTP dates in headers). 2003-12-07 14:29:43 +00:00
Marcus Boerger cca2a74462 Update examples 2003-12-07 13:21:47 +00:00
Stanislav Malyshev facea7fb70 fix potential buffer overrun 2003-12-07 12:59:54 +00:00
Wez Furlong a98892900b allow $node['not_yet_existing_attribute'] = $value; to work 2003-12-07 11:32:40 +00:00
Rob Richards 44f59d6d7f fix warning for shared debug
fix test bug26384 - WS issue
2003-12-07 11:11:47 +00:00
Wez Furlong 72f73b7785 tweak build so that it mirrors the source filesystem layout under the build dir. This allows GD extension to build. 2003-12-07 02:58:56 +00:00
Edin Kadribasic 96a745f2e2 First attemt at win32 build with the new build system.
#No workie yet, the build sys needs tweaking
2003-12-07 01:59:28 +00:00
Marcus Boerger 1ee7d70b9e Enable shared build 2003-12-07 01:58:54 +00:00
e7bad9e272 ChangeLog update 2003-12-07 01:32:57 +00:00
Edin Kadribasic a256705044 Added filepro to the new win32 build. Works both as shared
and built-in extension on windows.
2003-12-07 00:59:35 +00:00
Edin Kadribasic 10b53557db Fixed win32 build (no such include on windows). 2003-12-07 00:59:16 +00:00
Edin Kadribasic ee47ad0c2a Added fdf to the new win32 build. Works both as shared
and built-in extension on windows.
2003-12-07 00:49:25 +00:00
Greg Beaver 06ef18bed9 fix #279 2003-12-07 00:29:46 +00:00
Edin Kadribasic 6a847a797e Added dbx to the new win32 build. Works both as shared
and built-in extension on windows.
2003-12-07 00:23:18 +00:00
Marcus Boerger 9c8678eb7b Fix enabling shared builds. 2003-12-07 00:21:47 +00:00
Greg Beaver 3148e2e9be fix #205, wider column names for pear list 2003-12-07 00:10:40 +00:00
Edin Kadribasic fbe2b4bbc3 Added dbase to the new win32 build. Works both as shared
and built-in extension on windows.
2003-12-07 00:09:48 +00:00
Greg Beaver bd766fc7e5 fix #167 2003-12-07 00:02:34 +00:00
Greg Beaver 8161b2f742 MFB 2003-12-06 23:45:36 +00:00
Edin Kadribasic a05a42c8ea Added dba to the new win32 build. Works both as shared
and built-in extension on windows.
2003-12-06 23:39:07 +00:00
Greg Beaver cfb05861b9 CS 2003-12-06 23:37:30 +00:00
Greg Beaver 59b98030bc (try again)
fix 2 bugs

- optional dependencies not supported
- incorrect index determination
2003-12-06 23:32:30 +00:00
Greg Beaver 8425c2a16b fix 3 bugs
- optional dependencies not supported
- PHP 5 references (#362)
- incorrect index determination
2003-12-06 23:07:52 +00:00
Greg Beaver 5e0b0b147b finished unit test for _processDependency failure test 2003-12-06 22:33:53 +00:00
Greg Beaver 68c7403a13 stupid me - this was a circular reference, removing 2003-12-06 22:17:22 +00:00
Greg Beaver d9f4fd0757 slightly clearer error messages 2003-12-06 22:14:11 +00:00
Greg Beaver fc3cb93064 fix arg parsing to work with Console_Getopt 2.0 2003-12-06 22:07:49 +00:00
Greg Beaver 9e361c0278 remove unnecessary experimental code 2003-12-06 21:52:20 +00:00
Greg Beaver 107d75d86b getting ready for both packages to be released 2003-12-06 21:47:53 +00:00
Marcus Boerger 4b9a4509c4 MFB: PHP_PQ_ERROR() change 2003-12-06 21:36:21 +00:00
Greg Beaver 8cd5e9ec6e fix for Console_GetOpt 2.0 (what was 1.1 - re-release being negotiated) 2003-12-06 21:35:02 +00:00
Marcus Boerger 37bcfda978 #args, reinsert skipif for extension check 2003-12-06 20:41:07 +00:00
Marcus Boerger 4a66bd9394 Do not dynamically load the extension in skipif 2003-12-06 20:35:41 +00:00
Marcus Boerger 7046afb542 Implement SeekableIterator and LimitIterator as C code. 2003-12-06 19:21:02 +00:00
Marcus Boerger 8e188f9d03 Update examples 2003-12-06 19:03:17 +00:00
Marcus Boerger 8a8deee8a0 This test is against interfaces not abstract classes. 2003-12-06 19:02:12 +00:00
Marcus Boerger 30af3ba523 Show the exception message again after __toString() magic has been dropped. 2003-12-06 18:12:26 +00:00
Wez Furlong 59823eca66 com_create_guid() returns... 2003-12-06 17:31:40 +00:00
Andrey Hristov df137ad240 ups, i forgot this entry 2003-12-06 16:49:13 +00:00
Andrey Hristov 1fa7458687 A small start for so called "not-yet-written faq" about small changes that
may make someone's life a nightmare for some time. It will be good when a
change is made a line in this file to be written and then it will be easier
for the doc team to write comprehensive and pretty FAQ for the end users.
2003-12-06 16:46:29 +00:00
foobar 6743861b0c There is no maintainer atm. 2003-12-06 16:27:44 +00:00
Wez Furlong 3be2b8d7e4 Add dist target to makefile that will generate the file layout for
a win32 binary distro under build_dir/_dist_.
This isn't finalized yet, and you need Edin's distro template.
2003-12-06 16:14:03 +00:00
Wez Furlong bf033aa5a8 Fix ftp build when openssl is built as a shared extension. 2003-12-06 16:12:10 +00:00
Wez Furlong fcdda2e8f8 Fix a problem resolving the php.ini path under win32 terminal services environment.
Remove config-file-path option from configure under win32; it is not used except to display what might have been chosen, so lets default to the getenv() thingy.
2003-12-06 16:04:34 +00:00
Wez Furlong 45eb5a8d03 use quotes if the user specifies a path, but don't otherwise (since we don't want the getenv calls quoted). 2003-12-06 15:16:17 +00:00
Moriyoshi Koizumi a682e0a5c6 Add missing iconv_close() call 2003-12-06 11:10:13 +00:00
foobar c28a7bd7da fix proto 2003-12-06 10:48:56 +00:00
Wez Furlong 6b679cd6ef fix ipv6 stuff under vc6 2003-12-06 10:32:35 +00:00
Wez Furlong 54dd8d2bbf bah 2003-12-06 10:31:02 +00:00
Greg Beaver bb861773a9 forgot to have it delete the directory it creates 2003-12-06 06:56:55 +00:00
Greg Beaver 61bd893e0d update phpdoc comment 2003-12-06 06:08:56 +00:00
Greg Beaver 33aa36fb8d add todo for known issue that isn't yet critical but will be 2003-12-06 06:06:50 +00:00
Greg Beaver c46abac9bd new test case - test invalid download conditions
TODO:
- tests for _processDependency
2003-12-06 06:05:04 +00:00
Greg Beaver 29df86f2d1 improve error message, it was both terrible grammar and unclear. 2003-12-06 05:59:25 +00:00
Greg Beaver d1770cc57f fix error message - was printing an empty preferred state 2003-12-06 05:35:52 +00:00
Greg Beaver 49a2893adb simple fix for core bug #362 - raiseError() doesn't return a reference, why should throwError()? 2003-12-06 02:00:33 +00:00
6ae1f19387 ChangeLog update 2003-12-06 01:31:45 +00:00
Wez Furlong 62d3cccfc9 make it build under win32 2003-12-06 00:09:55 +00:00
Wez Furlong dbb152b96a Detect and enable IPv6 support under win32.
The ws2tcpip.h header links to IPv6 functions dynamically
and the generated binary will run on win98 and later.
2003-12-06 00:00:31 +00:00
Wez Furlong 190d8e85b5 2003, not 2002. 2003-12-05 23:13:57 +00:00
Wez Furlong 43b0ae0a04 openssl support for the new build 2003-12-05 23:13:30 +00:00
Andrei Zmievski a3d2fd336c MFB 2003-12-05 22:02:48 +00:00
Rob Richards 2f9e039c53 Fix the xsl warnings 2003-12-05 21:24:48 +00:00
Wez Furlong 08218f5082 Tweak xml related build.
Still some warnings for ext/xsl, but I'll leave that to someone else for now.
2003-12-05 21:16:47 +00:00
Wez Furlong 7a9cf22ed1 Probable fix for #26534 2003-12-05 20:25:14 +00:00
Wez Furlong 952e0db997 Use Rob's static libxml+libiconv library; new build no longer
requires libxml2.dll or iconv.dll at runtime.
Since we have iconv built in, enable iconv extension by
default too.
2003-12-05 20:17:47 +00:00
Frank M. Kromann 29e47dc7e4 Move the echo off statement to the top of the file. This removes commens from the final def file 2003-12-05 19:51:52 +00:00
Rob Richards 44bd3bf47a libxml2 and iconv export file 2003-12-05 19:26:05 +00:00
Moriyoshi Koizumi 3980fd822e A trivial implement for dos-like platforms 2003-12-05 18:39:04 +00:00
Moriyoshi Koizumi fe20585443 Add regression test for iconv stream filters 2003-12-05 18:35:17 +00:00
Wez Furlong c191a40ba4 dos line endings 2003-12-05 17:46:04 +00:00
Wez Furlong 9ec9ffece8 convert to DOS line endings to solve win98 issues 2003-12-05 17:45:15 +00:00
Wez Furlong a6ed27afe6 rewrite 2003-12-05 17:44:37 +00:00
Andi Gutmans f4d6a5c7cf - Remove two unneeded convert_to_string() (found by Marcus)
- Change illegal use of string offset to E_ERROR
2003-12-05 16:28:54 +00:00
Christian Stocker a016546e4c fix test 2003-12-05 14:52:51 +00:00
Wez Furlong c29b17b81e fix unix build.... 2003-12-05 13:48:40 +00:00
Wez Furlong c92a2219ef Add optional array argument to proc_open() to specify additional
options for the child process.
The first option is "suppress_errors" which will disable any
dialog boxes that arise from missing DLL's and suppress the
GPF dialog.
Use this new feature in the test suite, so that crashing tests don't block the test run; useful for un-attended execution.
2003-12-05 13:45:00 +00:00
Wez Furlong 98f1021dd8 Make these tests work under win32 2003-12-05 13:42:04 +00:00
Wez Furlong ab0029cabf Be smarter about which systems should register unix transports.
Fix skip conditions in these network tests
2003-12-05 13:41:02 +00:00
Wez Furlong c976456071 fix uninitialized variable 2003-12-05 13:39:24 +00:00
Sebastian Bergmann ef9dfc00ff Fix for the problem I posted to internals@. 2003-12-05 11:32:24 +00:00
Moriyoshi Koizumi 657b7e08d0 xmlCtxtSetOptions() isn't available in the versions up to 2.6.x
# Thanks Rob
2003-12-05 10:53:59 +00:00
Moriyoshi Koizumi 50dad38cd4 Fix libexpat build.
Improve replaceEntities patch.
2003-12-05 10:11:06 +00:00
Moriyoshi Koizumi f9470dafe0 Add a missing marker 2003-12-05 09:35:21 +00:00
Marcus Boerger 5ee54820de Update test 2003-12-05 08:07:14 +00:00
Frank M. Kromann 075ee21165 Include exif in the new win32 build system 2003-12-05 07:17:11 +00:00
Sebastian Bergmann dea716a4e1 Support for new Win32 build bliss. 2003-12-05 06:09:29 +00:00
Wez Furlong 1982ae6246 fix zts build 2003-12-05 03:14:54 +00:00
Wez Furlong 24e54d43e6 check for .net headers 2003-12-05 02:58:31 +00:00
Wez Furlong 6201a56070 use /Ox flag for release build (all optimizations on).
If no php_build dir is specified, then look for either of the two
"standard" things in reasonable locations.
Allow CHECK_LIB to search for the "same" library using a ; separated
list of alternatives.
Tweak nsapi config and remove redundant or unused flags.
Add ZTS checks for both isapi and nsapi configs.
2003-12-05 02:41:00 +00:00
Edin Kadribasic b842917d84 Made test work on windows 2003-12-05 02:12:21 +00:00
Ilia Alshanetsky aa1b20614b Fixed crash demonstrated with ext/dom/tests/dom003.phpt test case. 2003-12-05 01:44:45 +00:00
036e8dea10 ChangeLog update 2003-12-05 01:31:47 +00:00
Ilia Alshanetsky ce0b3dec4c Fixed bug #26528 (HTML entities are not being decoded by
xml_parse()/xml_parse_into_struct()).
2003-12-05 01:16:16 +00:00
Edin Kadribasic 32eb4f78c2 Get rid of PHPAPI usage.
Enable shared build in the new php5 build system
Check for the correct header.
2003-12-05 01:03:35 +00:00
Uwe Schindler 6abf2179c1 First version... Wez: can you check this... 2003-12-05 00:00:31 +00:00
Moriyoshi Koizumi 4f14ee67fb Type-punning is evil. 2003-12-04 23:46:53 +00:00
Moriyoshi Koizumi b4f1f652b2 NFN 2003-12-04 23:32:22 +00:00
Moriyoshi Koizumi 6fc73dda11 Add iconv stream filter.
# a quick synopsis:
#
# <?php
#     stream_filter_append(STDIN, 'convert.iconv.UTF-8/ISO-8859-15');
#
#     fpassthru(STDIN);
# ?>
#
2003-12-04 23:31:31 +00:00
Moriyoshi Koizumi 7d3e351383 This part is accidentially left on the previous commit. 2003-12-04 22:53:16 +00:00
Moriyoshi Koizumi 0d2c100a4f It'd be a bad idea to make subpackages dependent on the php build system. 2003-12-04 22:49:46 +00:00
Wez Furlong 40a573445c Work around a bug in putenv() in the VS.Net C run time library (MSVCRT71) where it will double free a string. 2003-12-04 22:38:22 +00:00
Marcus Boerger 5ae70cc44a Update __toString() issues 2003-12-04 20:56:32 +00:00
Marcus Boerger dc6f211967 __toString() must be called explicitly now 2003-12-04 20:24:06 +00:00
Marcus Boerger d79ca1c853 Update 2003-12-04 20:01:46 +00:00
Marcus Boerger aaa81ea211 Add package file 2003-12-04 19:53:33 +00:00
Marcus Boerger 707681218b No longer true 2003-12-04 19:47:10 +00:00
Marcus Boerger f679b5c935 Update documentation 2003-12-04 19:39:46 +00:00
Marcus Boerger 2216eb4511 Update 2003-12-04 17:45:36 +00:00
Moriyoshi Koizumi 4a38020ddd Revert crap. 2003-12-04 17:38:21 +00:00
Marcus Boerger 320a87e4f9 No longer needed 2003-12-04 17:33:08 +00:00
Wez Furlong a93d20b443 Avoid killing files that we didn't generate when making clean. 2003-12-04 17:28:08 +00:00
Frank M. Kromann d0624948ff fix remaining ext/ 2003-12-04 17:03:20 +00:00
Wez Furlong 9a1ddeae65 Fix Andi's GetLongPathName code so that virtual_file_ex doesn't
fail if the file does not exist.
2003-12-04 17:02:09 +00:00
foobar e13e315a10 - Only add 'install-modules' into install targets when there are such
modules to install.
2003-12-04 15:57:55 +00:00
Wez Furlong 9555db802d Make this build using new build system 2003-12-04 15:32:31 +00:00
foobar 2438b43eff - remove non-existing files 2003-12-04 15:14:03 +00:00
foobar e095ae8629 - remove non-existing files 2003-12-04 15:02:48 +00:00
foobar 518f6a849b - Update after moving extensions to PECL 2003-12-04 15:01:10 +00:00
foobar f1bf598edb - remove non-existing modules 2003-12-04 14:53:27 +00:00
foobar bdfb58f6c6 - Fixed "make install" when INSTALL_IT is empty, like when configured
with "./configure --disable-cgi" (CLI has it's own build target)
2003-12-04 13:41:48 +00:00
Wez Furlong a5cf836260 Fix libxml to use static lib if found.
Disable apache and isapi by default.
Add some smarts so that we can really build extensions and SAPI found in php-src/pecl and/or php-src/../pecl.
Only include a logo in the resources if we are building an .exe.
2003-12-04 13:38:47 +00:00
Moriyoshi Koizumi bcbc036ac1 Raise error in case dereference is performed on a scalar value. 2003-12-04 13:38:30 +00:00
Rob Richards c09003a910 test for dom extension 2003-12-04 13:32:22 +00:00
Rob Richards 2fb978a773 correct test 2003-12-04 12:46:20 +00:00
Rob Richards d5e9e09515 Add xsl config for new win build 2003-12-04 12:37:04 +00:00
Rob Richards c561f2f722 return status of have so extra libs return correct status 2003-12-04 12:34:29 +00:00
foobar c389f67e91 - Moved ext/crack and ext/mcal to PECL. 2003-12-04 12:05:57 +00:00
Uwe Schindler ae4e11d861 MFB 2003-12-04 09:00:24 +00:00
foobar a07650e78d stylepolizei 2003-12-04 06:40:08 +00:00
Wez Furlong 39305a50d6 allow these extensions to build with new system 2003-12-04 03:46:12 +00:00
Wez Furlong 213f528aad Fixup bz2 extension so it builds as shared and static under win32 2003-12-04 02:58:33 +00:00
Wez Furlong 1635a2bdf5 put PHPDLL objects into BUILD_DIR/php so that it is a little
easier to see the main outputs (sapi and extensions)
2003-12-04 02:24:23 +00:00
Wez Furlong 7e73ae1b5e fix a couple of buglets and set version number on DLLs to whatever the PHP major version is. 2003-12-04 02:12:36 +00:00
Greg Beaver 5252f3faa9 merge downloader code into HEAD - it works
fix bug found in uninstall
2003-12-04 02:11:40 +00:00
Greg Beaver d2ad2841bd unit test for new code - proves it works 2003-12-04 02:01:46 +00:00
Greg Beaver 07a0281d00 add helper methods needed - now it is 100% unit tested 2003-12-04 02:00:39 +00:00
Wez Furlong 90fe3fbf7f be safe... 2003-12-04 01:59:46 +00:00
Wez Furlong 35117fdf1b default install path is c:/php5 for PHP 5 2003-12-04 01:40:59 +00:00
Wez Furlong fb84259217 Search for pecl extensions under php-src/pecl as a convenience for
pecl developers.
Add automatic version info resource generation for SAPI and extension
modules, based on PHP version numbers and info found in the CREDITS file.
As a nice side effect, this lets us add a logo icon to .exe files.
2003-12-04 01:37:52 +00:00
Greg Beaver e8468911ed fixed minor bug 2003-12-04 01:35:45 +00:00
Greg Beaver ad9629d2bf finished unit test 2003-12-04 01:35:27 +00:00
ab5066008f ChangeLog update 2003-12-04 01:31:59 +00:00
Greg Beaver 1558f748e3 fix bugs found in unit-testing, one BC issue also 2003-12-04 01:22:50 +00:00
Greg Beaver 2ab2d8263c fix notice 2003-12-04 01:22:12 +00:00
Greg Beaver dba21314ce another segment working 2003-12-04 01:22:00 +00:00
Frank M. Kromann 27e3d27565 add error message when libs and headers are missing 2003-12-04 01:04:36 +00:00
Ilia Alshanetsky 9947a3e7ce Fixed typo (thanks Frank) 2003-12-04 00:14:39 +00:00
Frank M. Kromann ca6502866b copy and paste error 2003-12-03 23:48:02 +00:00
Greg Beaver 172bf25830 another test case, small fix for XML_RPC caching borking working tests 2003-12-03 23:46:10 +00:00
Greg Beaver ed3167eada another tgz for test case comparison 2003-12-03 23:36:00 +00:00
Greg Beaver 604dcdd256 add part of a test case 2003-12-03 23:24:47 +00:00
Ilia Alshanetsky 54a73a6c06 Test case for bug #24773. 2003-12-03 23:00:30 +00:00
Greg Beaver 577cf36f91 remove unnecessary notice generator in certain cases 2003-12-03 23:00:05 +00:00
Wez Furlong 4ffdb4253a This should solve a few problems with static vs. shared builds for extensions (such as mssql) that require certain CFLAGS to be defined, but not pull in other flags that would affect DLL linkage.
Also fix the iconv file; MSVC doesn't seem to like the #include SYMBOL syntax.
2003-12-03 22:59:48 +00:00
Greg Beaver 4e5e628637 new unit test for downloader - incomplete.
WARNING: this test requires a fully functional pearweb server at address pear.Chiara, with several packages available for download.  This one will fail until Martin has time to set up test.pear.php.net as the server.
2003-12-03 22:53:58 +00:00
Ilia Alshanetsky 81e41e3cb9 Remove unnecessary casts. 2003-12-03 22:51:51 +00:00
Greg Beaver 35bdc2f7eb duhhh... 2003-12-03 22:39:55 +00:00
Christian Stocker e969b7897e fix test to the changes made regarding __toString() 2003-12-03 22:18:49 +00:00
Andi Gutmans 54996089f3 - Add news about include_once fix for Windows 2003-12-03 22:13:11 +00:00
Moriyoshi Koizumi 5fe26e76eb This kind of error should be caught. (suggested by Andi, thanks) 2003-12-03 22:08:58 +00:00
Rob Richards 198c09f775 fix notations - forgot to create iterator 2003-12-03 21:27:01 +00:00
Moriyoshi Koizumi 247f991443 Possible fix for bug #26391 (parse_url() destroys strings that contain
a character in range of \x80-\xff))
2003-12-03 20:58:12 +00:00
Moriyoshi Koizumi 110044b5f1 Add a win32 build script. Not tested, but should work :) 2003-12-03 19:46:27 +00:00
Moriyoshi Koizumi 7ac854e710 Fix bug #24773 (unset()ing string offsets crashes PHP) 2003-12-03 19:10:38 +00:00
Wez Furlong 883815a9ec VC stores lib path in LIB not LIBS.
Add --with-extra-includes and --with-extra-libs to be able to specify
general additions to those paths from the environment.
2003-12-03 18:31:04 +00:00
Wez Furlong 03afe54c44 avoid breaking paths with spaces when we generate the makefile, and ensure that libs found in the default path are added to the link line 2003-12-03 17:04:30 +00:00
Wez Furlong c2bd62fcd7 add rule for parsedate 2003-12-03 16:51:23 +00:00
Ilia Alshanetsky 22142c392c Fixed compiler warning due to unused variables. 2003-12-03 15:50:27 +00:00
Derick Rethans 611219208c - Remove newline from error message 2003-12-03 15:01:04 +00:00
Wez Furlong 1653fbfff6 fix typo 2003-12-03 14:58:05 +00:00
Wez Furlong 93bce45485 Propogate LDFLAGS from extensions to PHPDLL when building them statically.
Move ZendEngine2 to Zend while running buildconf
2003-12-03 14:55:03 +00:00
Wez Furlong ad84dfa937 Build adjustments. 2003-12-03 14:29:45 +00:00
Wez Furlong f7a86e5b5e Explicitly include this header for SHFILEINFO.
# no need to MFH
2003-12-03 14:26:41 +00:00
Derick Rethans 61e8ab4e8d - I am sure I reverted this before 2003-12-03 09:12:38 +00:00
Frank M. Kromann 1dd6e3ab61 Adding missing defines and lib/include paths 2003-12-03 06:50:19 +00:00
Frank M. Kromann 26768fdff6 look for FrontBase files in the default location 2003-12-03 06:42:16 +00:00
Sara Golemon 5ad67a9215 Add http proxy support via context option. 2003-12-03 05:30:16 +00:00
Jon Parise 20658020bd Removing the DB extension warning message. The DB extension is no longer
included in the PHP distribution.
2003-12-03 05:06:04 +00:00
Wez Furlong 34df2ae239 some tweaks for Frank 2003-12-03 02:47:45 +00:00
4dce55f28b ChangeLog update 2003-12-03 01:32:23 +00:00
Sara Golemon feee37a17a Optimize strrpos/strripos for single char strings and fix offset to report correctly 2003-12-03 01:31:56 +00:00
Sara Golemon 3d6fcddfd2 Restore ability to use strrpos/strripos with an ordinal needle 2003-12-03 01:11:36 +00:00
Wez Furlong 86c8a87283 avoid vs.net specific option for now 2003-12-03 01:10:03 +00:00
Wez Furlong 68f77f37ba Avoid death when wrapping null/undefined values 2003-12-03 00:56:14 +00:00
Wez Furlong 5b7e8bb4f6 make help more useful 2003-12-03 00:46:40 +00:00
Wez Furlong ccb682b652 add win32 build readme 2003-12-03 00:32:25 +00:00
Ilia Alshanetsky 4e483f9d35 Adding shmop config file for the new build system 2003-12-03 00:32:19 +00:00
Frank M. Kromann a829089e25 Adding FrontBase config file for the new build system 2003-12-03 00:30:54 +00:00
Wez Furlong 0e0f78df63 Fix build if you don't have apache headers and want to disable apache... 2003-12-03 00:27:44 +00:00
Frank M. Kromann 305d2a3948 oops. this should be with and not enable 2003-12-03 00:22:40 +00:00
Frank M. Kromann de96d34adb Adding mssql config file for the new build system 2003-12-03 00:17:04 +00:00
Wez Furlong 2d0eaa3989 Clarify a little. 2003-12-03 00:15:10 +00:00
Wez Furlong 05b9b20ed8 Add new (optional!) win32 build infrastructure.
Will follow up to internals@ shortly.
2003-12-02 23:17:04 +00:00
Wez Furlong 30b631d9f6 Export this so that shared session modules can use it under win32. 2003-12-02 23:14:31 +00:00
Wez Furlong 5e4eac57bd Export these so that ftp extension can be build as shared ext. 2003-12-02 23:13:43 +00:00
Marcus Boerger ff57d33fe2 Remove automatic call to __toString() since it is supposed to cause too
much trouble. See discussion on the mailing list.
2003-12-02 22:08:51 +00:00
Andi Gutmans 5620f21dd5 - Uncomment my code which improves Windows behavior of TSRM file paths.
- This will now not work on Windows 95 anymore.
2003-12-02 21:12:17 +00:00
Andi Gutmans 23b231d0eb - Revert the revert of these patches. This overloading can only be used
- by C extensions such as SimpleXML and *NOT* PHP code. Reasons given
- on the mailing list and problem with reentrancy inside the opcodes.
2003-12-02 21:09:24 +00:00
Sara Golemon dacb3a68fe Register url_stat flag constants in userspace 2003-12-02 20:06:40 +00:00
Sara Golemon 1aaf7da2ce Populate userstream objects with context property 2003-12-02 19:14:31 +00:00
Sara Golemon 88ccc6a630 Update userspace/url_stat proto 2003-12-02 18:52:58 +00:00
Frank M. Kromann a7e2f95247 set freed pointer to null to avoid reuse 2003-12-02 18:38:30 +00:00
Jon Parise 4f51656de9 Improving the wording of the "don't use the DB extension" warning. 2003-12-02 16:50:02 +00:00
Wez Furlong da9093be3a this can't be persistent 2003-12-02 16:35:19 +00:00
Rob Richards 6fa6d3c470 check node type for ->attributes and ->childNodes 2003-12-02 15:17:02 +00:00
foobar 49af06e7b4 - Updated credits 2003-12-02 14:50:37 +00:00
foobar 0377c1fab2 removed some non-existing extensions/sapis 2003-12-02 14:48:22 +00:00
foobar c7b3a02c85 Moved qtdom to PECL 2003-12-02 13:55:27 +00:00
Andi Gutmans d7f839cce7 - Fix for bug #26182 2003-12-02 12:06:03 +00:00
Andi Gutmans 393376d936 - Don't include E_STRICT in E_ALL. 2003-12-02 09:14:18 +00:00
Wez Furlong e68b2fa5fe Fix MBSTRING_API for non-shared win32 builds 2003-12-02 08:54:39 +00:00
foobar e4c614285f Revert undiscussed / undecided patch 2003-12-02 08:00:23 +00:00
Moriyoshi Koizumi 9fd1395546 Fix test so it fits the expected behaviour 2003-12-02 07:38:11 +00:00
Moriyoshi Koizumi 3c02eb1ffe all '_' (underscores) should be replaced by '\x20' (whitespaces)
in encoding.
# should I bump API version?
2003-12-02 07:36:42 +00:00
Marcus Boerger e9f7e14460 Remove debug code 2003-12-02 07:19:31 +00:00
Marcus Boerger 37d7555f98 Add classes from examples: FilterIterator, ParentIterator 2003-12-02 07:18:05 +00:00
Marcus Boerger a7217431be Move object struct to header. 2003-12-02 07:13:53 +00:00
Marcus Boerger 32927a9ffb Free the zval container only if it should be freed and was not copied. 2003-12-02 07:09:46 +00:00
2d3800bdd7 ChangeLog update 2003-12-02 01:31:57 +00:00
Sara Golemon dbfe62117b CS 2003-12-02 01:04:14 +00:00
Moriyoshi Koizumi 0bd11e2a05 Add regression test for iconv_mime_decode_headers() 2003-12-02 00:05:54 +00:00
Moriyoshi Koizumi ca2aaeee5e Loosen error check. There's no reason to forbid a single '=' occurrence
in an unencoded string.
Fix white space handing. Meaningful spaces have got stripped wrongly
before this patch.
2003-12-01 23:49:20 +00:00
Moriyoshi Koizumi 1b8dd3ba21 Allow iconv_mime_decode_headers() to handle multiple occurence of a header. 2003-12-01 23:25:06 +00:00
Ilia Alshanetsky 5a4dda42e3 Optimize substr_replace (this makes it 3-8 times faster depending on the
string length).
2003-12-01 23:17:22 +00:00
Moriyoshi Koizumi 36f5926434 Update test. 2003-12-01 22:59:28 +00:00
Moriyoshi Koizumi 344c29e0c7 Forgot about this one 2003-12-01 22:47:03 +00:00
Moriyoshi Koizumi 869493d4e6 Add iconv_mime_decode_headers() to parse multiple MIME headers.
A few trivial fixes.
2003-12-01 22:46:45 +00:00
Ilia Alshanetsky 089aa3639d Remove debug code. 2003-12-01 22:10:46 +00:00
Moriyoshi Koizumi 93e0d690ee More RFC2047 conformance. Add ability to forcefully continue processing
on error.
2003-12-01 21:47:19 +00:00
Ilia Alshanetsky 6bb5ff7137 The least intrusive way to 'import' PECL extensions into the main tree.
For the moment this deals with tidy, further extensions can be added at a
later point.
2003-12-01 21:37:35 +00:00
Andi Gutmans 16002532b7 - Fix indentation 2003-12-01 20:18:55 +00:00
Sara Golemon 681d18effd Move safemode/basedir checks for url_stat to plain_wrapper. 2003-12-01 19:47:05 +00:00
Derick Rethans 74eed61504 - Fix the default SAPI filter too; all weird problems should be gone again. 2003-12-01 19:25:07 +00:00
foobar e05fbfa253 WS fix 2003-12-01 16:37:11 +00:00
foobar 45ac4a7141 - Fixed bug #26488 (Missing declaration of CRTSCTS in ext/dio/dio.c) 2003-12-01 16:36:00 +00:00
foobar e01ab8c9cf - Made --program-prefix and --program-suffix work. (See bug #23030) 2003-12-01 15:17:13 +00:00
foobar 73b276ad76 missing config.h include 2003-12-01 14:01:38 +00:00
Andi Gutmans 98e1a3dbcb - Change to E_STRICT so as not to break existing scripts.
- Thanks Edin
2003-12-01 12:35:46 +00:00
foobar c6c4c4fbc4 - Nuke property_exists() calls
- Fix the test. (this is BUG in PHP 5, works in PHP 4)
2003-12-01 12:07:36 +00:00
Andi Gutmans 709060e161 - Nuke property_exists(). We need to fix isset() and this is already
- supported in reflection API. In any case, it's best not to add new
- functions in the general namespace except for keeping engine consistency
(which would have been true in this case)
2003-12-01 11:53:42 +00:00
Andi Gutmans ee64b61e94 - Revert auto-conversion in parameter API 2003-12-01 11:50:57 +00:00
Andi Gutmans a411d608fa - Don't automatically call __toString() in convert_to_string_ex().
- use __toString() in your code.
- Keep the auto-case in make_printable_zval.
2003-12-01 11:47:52 +00:00
foobar 91b7cc2079 - Moved ext/db to PECL.
# Derick copied the sources in CVS repository to preserve CVS log.
2003-12-01 10:47:08 +00:00
Christian Stocker 80d552496c Fix Bug, if parser input is not a filename (By Adam) 2003-12-01 08:18:35 +00:00
Greg Beaver 036ac99eef new test case and supporting files - incomplete, but works as it is 2003-12-01 04:51:21 +00:00
Greg Beaver cd4baaf654 potential major booboo in unit test, probably won't affect this one 2003-12-01 04:04:07 +00:00
42f04fbd43 ChangeLog update 2003-12-01 01:31:51 +00:00
Greg Beaver cde3509868 2 bugs found here, added deprecation warning for those who have written their own PEAR application 2003-12-01 01:02:40 +00:00
Greg Beaver 3e60df640e 2 bugs found here 2003-12-01 01:00:57 +00:00
Greg Beaver 1b95c31c77 2 bugs found 2003-12-01 00:59:14 +00:00
Greg Beaver b27f71ca58 fclose() might be needed 2003-12-01 00:43:34 +00:00
Greg Beaver 87365b0149 new unit test 2003-12-01 00:36:47 +00:00
Greg Beaver 2939c3539d fix bug found by unit testing in package ordering 2003-12-01 00:15:53 +00:00
Greg Beaver 21714261a6 fix unit test 2003-12-01 00:14:37 +00:00
Greg Beaver 3db2e9bdcc minor booboo 2003-12-01 00:14:16 +00:00
Greg Beaver df5317e336 new unit test - test works, but there is a serious bug in sortPkgDeps to be fixed, as unearthed by this test 2003-11-30 23:43:19 +00:00
Greg Beaver bfc02f7223 finish unit test with non-working download test with callback 2003-11-30 22:51:17 +00:00
Greg Beaver 398dec718a add in skip condition for internet offline, and callback test 2003-11-30 22:49:33 +00:00
Greg Beaver 685e7a365a first unsuccessful test works 2003-11-30 22:39:24 +00:00
Greg Beaver 2276704637 first successful download test works :) 2003-11-30 22:37:47 +00:00
Greg Beaver a7d7f311f0 beginning framework for PEAR_Common::downloadHttp test - binary test file 2003-11-30 22:31:35 +00:00
Greg Beaver 5c60fe3a0e beginning framework for PEAR_Common::downloadHttp test 2003-11-30 22:31:00 +00:00
Greg Beaver 44e2b42692 tweak tests 2003-11-30 22:24:14 +00:00
Greg Beaver 0b24e0a404 remove old holdover code that has no purpose 2003-11-30 22:01:22 +00:00
Greg Beaver 76e83f576c ...and with these changes, 100% BC is maintained. 2003-11-30 22:00:59 +00:00
Derick Rethans c73641afd7 - And fix the README too. 2003-11-30 20:13:03 +00:00
Derick Rethans 630e1692d6 - Fixed standard wrapper for input filter. 2003-11-30 20:07:58 +00:00
Ilia Alshanetsky d9edc99fbe MFB: Fix for possible uninitialized usage of subject_r. 2003-11-30 19:56:30 +00:00
Ilia Alshanetsky c344754d48 Removed unused variables. 2003-11-30 19:43:30 +00:00
Marcus Boerger 34a3019acd Fix macros 2003-11-30 17:05:10 +00:00
Marcus Boerger 8ef69cf369 Update 2003-11-30 16:31:35 +00:00
Marcus Boerger c5fba4c957 Require inner iterator to be RecursiveIterator 2003-11-30 16:20:03 +00:00
Marcus Boerger 01f5277002 Remove old files 2003-11-30 16:14:56 +00:00
Marcus Boerger c3fddcab62 Fix tests for E_STRICT and check for E_STRICT in run-tests.php. 2003-11-30 13:57:20 +00:00
Marcus Boerger 0091b5ca1d Check return value of exception::__tostring() 2003-11-30 13:53:19 +00:00
Marcus Boerger 71ec2db198 Fix tests 2003-11-30 13:20:26 +00:00
Marcus Boerger e0946d9609 Fix test 2003-11-30 13:18:56 +00:00
Rob Richards 2a5092c03a remove call to xmlMemoryDump 2003-11-30 12:30:29 +00:00
Christian Stocker fbc8f35778 fixed typos 2003-11-30 11:13:00 +00:00
Christian Stocker 8b315dddd4 output of uncaught exception changed 2003-11-30 10:58:18 +00:00
Georg Richter 10b60148c9 prototype fix for mysqli_ssl_set 2003-11-30 10:56:55 +00:00
foobar 4eff99ad4b New funcs 2003-11-30 09:41:32 +00:00
Greg Beaver c7c5d7689d experimental code shuffling, moved download() into a new class, PEAR_Downloader.
Reasons:
- 7 parameters for a method with lots of pass by reference
  implies the need to save state, i.e. use an object
- cleaner code.  download() can be easily split into 4 separate but related methods
- Installer.php is now exclusively used for installation
- future extensibility: switching to channels or local package repositories from
  using PEAR_Remote is easy.  Simply extend the API for PEAR_Downloader:
  no changes needed to the installer at all

to install for testing purposes, use

pear upgrade --force package-PEAR-new-Downloader.xml

to uninstall, use

pear upgrade --force package-PEAR.xml
2003-11-30 05:39:02 +00:00
6dd2f536a4 ChangeLog update 2003-11-30 01:31:13 +00:00
Greg Beaver cc27a3f03d got it - the pattern ONLY needs addslashes for windows paths 2003-11-30 00:14:22 +00:00
Greg Beaver 6f1625d29b fix one part - can't get the ereg() to match on windows, will fix when I figure out why 2003-11-29 23:37:56 +00:00
Greg Beaver 2c4e1f1d4a fix up unit tests - registry was ridiculously out of date. Guess nobody ever runs these... 2003-11-29 23:36:46 +00:00
Wez Furlong 7a7713eaeb Fix build for new usleep implementation.
NB: we now depend on windows 98 and later;
windows 95 does not have these timing functions.
2003-11-29 22:59:33 +00:00
Wez Furlong dd60413c61 implement usleep for win32 2003-11-29 22:48:42 +00:00
Wez Furlong 37f135ceef Add stream_socket_sendto and stream_socket_recvfrom which work very much
like sendto() and recvfrom() syscalls.
2003-11-29 21:46:50 +00:00
Sebastian Bergmann fe93c2ac09 Add dom_iterators.c to project. 2003-11-29 20:55:18 +00:00
Greg Beaver e882ab4817 new test case 2003-11-29 20:45:09 +00:00
Rob Richards 8293923841 guess this file should be added too :) 2003-11-29 20:41:41 +00:00
Rob Richards 8c700ad546 fix ZTS build 2003-11-29 20:40:54 +00:00
Rob Richards 6ac34646ac implement namednodemap and nodelist
fix xsl/dom integration under windows
update tests and examples
2003-11-29 20:40:18 +00:00
Greg Beaver 154db581ae finish unit test 2003-11-29 20:35:43 +00:00
Sara Golemon e9a1d12f71 Add in missing stat element and fix win32 build 2003-11-29 20:01:00 +00:00
Greg Beaver e39e452e30 add in environment variable for easy non-skipping 2003-11-29 19:43:05 +00:00
Greg Beaver 24409dc035 fix some bugs found in the unit test 2003-11-29 19:42:19 +00:00
Greg Beaver 595b433b25 start on a new unit test 2003-11-29 19:39:51 +00:00
Marcus Boerger 056c654f4f Fix memleak 2003-11-29 19:26:41 +00:00
Ilia Alshanetsky 99dec6927c Fixed bug #26463 (Incorrect handling of semicolons after heredoc) 2003-11-29 19:05:14 +00:00
Marcus Boerger bfa36a8ea7 Caanot use REPLACE_ZVAL_VALUE here. 2003-11-29 18:31:24 +00:00
Marcus Boerger 6344f662a5 This takes the address of a zval ptr 2003-11-29 18:23:35 +00:00
Ilia Alshanetsky 9e195d1040 Fixed a memory leak when tokenizing scripts with heredoc. 2003-11-29 18:22:44 +00:00
Marcus Boerger fd7b38d752 Fix return value. 2003-11-29 18:16:03 +00:00
Marcus Boerger c7d27ad938 Add macros to return values of other zvals.
This is needed because one cannot use REPLACE_ZVAL_VALUE with return_value.
2003-11-29 18:15:11 +00:00
Greg Beaver 56908214ab add dependency on xml extension - we need it for every installation/package function 2003-11-29 17:56:36 +00:00
Marcus Boerger 68e218e85c Remove test code 2003-11-29 17:48:44 +00:00
Ilia Alshanetsky cf196ac625 Restore original patch for bug #26281.
# Andi if you have a time & interest please see if perhaps a better
# solution can be implemented. Thanks.
2003-11-29 17:33:25 +00:00
Sara Golemon 9defdab180 Finish off ftp://'s url_stat support 2003-11-29 17:16:58 +00:00
Marcus Boerger af5489d91b Revert accidential commit until decision 2003-11-29 17:05:17 +00:00
Marcus Boerger 9ffd44e94a Make exception code more robust:
- Fix error in calculation of trace-string length
- Allow to overload __strostring() and make it work for uncaught exceptions
- Show exception thrown while displaying exceptions
2003-11-29 17:03:45 +00:00
Ilia Alshanetsky b761414540 The removed NEWS entry is already in 4.X news file. 2003-11-29 17:00:53 +00:00
Christian Stocker 0d6ccfbe69 a dot too many 2003-11-29 16:44:12 +00:00
Christian Stocker f8356270c8 Some news from ext/xsl 2003-11-29 16:41:59 +00:00
Christian Stocker 146e88ac02 testcase for bug26384 2003-11-29 16:38:09 +00:00
Christian Stocker 5c039bbad9 Fixed for Bug #26384 (domxslt->process causes segfault with xsl:key) 2003-11-29 16:37:37 +00:00
Greg Beaver e57b75eff4 fix Bug #324 pear -G gives Fatal Error (PHP-GTK not installed, but error is at engine level) 2003-11-29 16:33:54 +00:00
Wez Furlong c31d958d5a typofix 2003-11-29 15:54:07 +00:00
Derick Rethans 350d755e33 - Update NEWS and README for input_filters 2003-11-29 15:30:50 +00:00
Derick Rethans 750b0338bf - Fix sapi_input_filter patch. Returning 1 from the filter handler should
make PHP register the variable, returning 0 shouldn't. The new length of
  the variables being filtered is now returned in the new_val_len argument
  of the function.
2003-11-29 15:24:35 +00:00
foobar f7830195c0 - Fixed bug #26462 (phpize + ext/bcmath -> compile error) 2003-11-29 13:33:34 +00:00
Christian Stocker df63bcddda follow coding standards. 2003-11-29 13:31:51 +00:00
Christian Stocker d699569f5a it's now possible to return a DomNode from userland functions back to the xsl-processor 2003-11-29 13:07:20 +00:00
foobar 647741c8d0 missing .cvsignore 2003-11-29 13:05:22 +00:00
Christian Stocker 38b12e7f97 fixed wrong check 2003-11-29 13:01:19 +00:00
Christian Stocker 2ff82ae2ed move some definitions to xml_common.h 2003-11-29 13:00:54 +00:00
Marcus Boerger af3f48b7e1 Research reveals that the error text depends on the tools and their
versions used to create the language parser.
2003-11-29 12:51:37 +00:00
foobar b0d921697d test for bug #24908 2003-11-29 07:54:19 +00:00
foobar d0f9ba8955 - Fix expected output. 2003-11-29 07:29:42 +00:00
foobar 3e7dd7eb29 oops.. 2003-11-29 07:16:58 +00:00
foobar 5ff5a9fbb3 test for bug #25652 2003-11-29 07:15:31 +00:00
foobar ee50f6034e - remove non-existing servlet entry 2003-11-29 05:12:23 +00:00
Ilia Alshanetsky 91052eb93b Fixed bug #26458 (var_dump(), var_export(), debug_zval_dump() not binary
safe for array keys).
2003-11-29 04:43:06 +00:00
Sara Golemon ef9949ff37 Update php.ini-* with E_STRICT error reporting level. -dist excludes E_STRICT, -recommended includes it. 2003-11-29 02:49:57 +00:00
foobar e34b689ef3 news for xslt 2003-11-29 02:49:03 +00:00
foobar 5faa087a0e test for bug #24926 2003-11-29 02:28:49 +00:00
Sara Golemon ad868f447a Handle dirty script exit. 2003-11-29 02:04:37 +00:00
55775e5273 ChangeLog update 2003-11-29 01:32:19 +00:00
Sara Golemon 026d4c9e4c Route php_stat() via streams/url_stat API (php_stream_stat_path).
This enables fopen-wrappers support on stat() and related family calls.
2003-11-28 23:25:28 +00:00
Wez Furlong 6d86bb9e40 (sort of) MFB, feof fix for sockets. 2003-11-28 23:20:23 +00:00
Christian Stocker 3f07e4364c @- Added possibility to call php functions as XSLT-functions (chregu)
- Added possibility to call php functions as XSLT-functions
  eg: <xsl:value-of select="php:function('date','r')"/>
  Namespace is http://php.net/functions
2003-11-28 22:08:16 +00:00
Christian Stocker 29a46b2ff6 changing dom_object_get_data to php_dom_object_get_data and PHP_DOM_EXPORT it
(by Rob Richards)
2003-11-28 21:55:59 +00:00
Ilia Alshanetsky e1bdc33d18 More memory leak fixes for stream contexts. 2003-11-28 18:33:14 +00:00
Ilia Alshanetsky 9b526291e4 Bug fixing news. 2003-11-28 18:17:13 +00:00
Wez Furlong cab6d93bdd Fix #25664 - COM crashes when calling a Delphi implementations of ITypeInfo.
Problem was that our extension assumes that the first param to ITypeInfo::Invoke was a reference to the COM object; this is not necessarily true and caused a crash in this instance.
Problem solved by removing the ITypeInfo::Invoke call, as it doesn't buy us anything anyway.
2003-11-28 17:11:16 +00:00
Wez Furlong 28277f1d00 fix #26001; serialize crashes when accessing an overloaded
object that has no properties (NULL hashtable).
2003-11-28 15:42:58 +00:00
Wez Furlong 440c4d983f fix memleak 2003-11-28 15:41:45 +00:00
Ilia Alshanetsky 7203684680 Add removed lcname, it is still needed. 2003-11-28 14:42:25 +00:00
9870f005e1 ChangeLog update 2003-11-28 01:31:59 +00:00
Ilia Alshanetsky baced1d63d Fixed a memory leak. 2003-11-28 00:00:28 +00:00
foobar e4323fa6ea - Fixed bug #26438 (error in thttpd SAPI installation) 2003-11-27 23:04:10 +00:00
Ilia Alshanetsky e898ae955e Added image_type_to_extension() function. 2003-11-27 22:03:35 +00:00
Marcus Boerger 1586f714fe Convert objects to string if string is required by newer parameter parsing
since we do this for older parameter parsing does so too.
2003-11-27 19:24:38 +00:00
Marcus Boerger 87577dd881 The macro REPLACE_ZVAL_VALUE cannot be used since we only have zval *
writeobj. to allow it the api needs to be changed to zval **writeobj.
2003-11-27 19:08:28 +00:00
Wez Furlong 2a9d2d5f73 re-implement the win32 select code.
The old code implicitly set any sockets into non-blocking mode,
and since there is no way to probe a socket to determine its
blocking status using the win32 API, this was a real pain in the ass.

The New implementation will hand off any sockets to winsock and
use the WaitForObject API in win32 to probe other types of handle.
2003-11-27 18:01:12 +00:00
Wez Furlong 6c0584d8f1 fix win32 build - thanks Sebastian. 2003-11-27 17:58:58 +00:00
Wez Furlong eaf0942c8b Port liveness and SSL CA validation from 4.3 branch.
Make stream_select() work on ssl-enabled sockets again.
2003-11-27 17:40:16 +00:00
Wez Furlong 3ee72aa5be port "liveness" checks and a couple of other things from the 4.3 branch.
Liveness checks are used to validate persistent socket connects when they
are re-used.
2003-11-27 17:39:01 +00:00
Wez Furlong 43698d6dbb initialize this one to be safe 2003-11-27 17:37:35 +00:00
Marcus Boerger 3be27ecc78 Add a support function to check for property existance which is different
from checking a property from being empty/set.
Update test #26182.
2003-11-27 17:06:26 +00:00
Marcus Boerger 7850dddf7c Remove problematic configure option 2003-11-27 16:06:58 +00:00
Marcus Boerger c41dc8864b - Fix requirements for older systems.
- Fix rpm build directory for the major distributions.
- Fix config dir.
- Rename package to php.
- Add gd extension.
- Support building of shared extensions.
- Build CLI only once.
2003-11-27 13:51:25 +00:00
Uwe Steinmann 6b81317509 - set precision to 0 unless the field is of type N or I 2003-11-27 11:32:05 +00:00
Uwe Steinmann 3977fdd7b0 - fixed indenting 2003-11-27 10:15:20 +00:00
95078ae354 ChangeLog update 2003-11-27 01:31:47 +00:00
Ilia Alshanetsky cd482c502c Removed dead code. 2003-11-27 01:08:42 +00:00
Marcus Boerger 0f2f745393 Cleanup 2003-11-26 23:28:35 +00:00
Greg Beaver 6c9fa67eca fix Bug #293 [Patch] PEAR_Error not calling static method callbacks for error-handler 2003-11-26 15:08:42 +00:00
Derick Rethans 370dfd39a9 - Prevent registration of the variable when a zero-length is returned
from the sapi_input_filter.
2003-11-26 09:53:22 +00:00
Marcus Boerger 7780cbc9f3 In PHP5 this will create an implicit public property 2003-11-26 08:47:58 +00:00
Marcus Boerger f40ecad640 Errro message has changed 2003-11-26 08:45:42 +00:00
Marcus Boerger 06cdd3e4cc Remove interfaces implemented in engine now 2003-11-26 08:18:26 +00:00
a537eadf4a ChangeLog update 2003-11-26 01:31:41 +00:00
foobar 78cb38105d style fix 2003-11-25 20:02:22 +00:00
Sebastian Bergmann 8dd6cded76 'Fix' for bison 1.875. 2003-11-25 15:36:38 +00:00
foobar f280bc3735 test case for bug #26182 2003-11-25 09:20:56 +00:00
foobar 7a3ad4172f - Fixed bug #26376 (typo in ext/odbc/config.m4: DBMaker test fails) 2003-11-25 08:07:35 +00:00
47bbc0de9f ChangeLog update 2003-11-25 01:31:49 +00:00
Marcus Boerger 4dba05d9cc Add new interface ArrayAccess to use objects as Arrays 2003-11-24 20:57:54 +00:00
Andi Gutmans bc4d0082d6 - Fix newly introduced bug which stopped class constants from working.
- Thanks to Jan Lehnardt for reporting it.
2003-11-24 20:47:53 +00:00
foobar 77297a2b01 fixed -> fixed section, added -> added section..etc. 2003-11-24 19:01:45 +00:00
Sebastian Bergmann e712007972 No longer needed. 2003-11-24 18:31:47 +00:00
Ilia Alshanetsky d1a04493bb Make sure zend stuff is built first. 2003-11-24 18:23:36 +00:00
Andi Gutmans a319c41bb1 - Now we're getting closer to an RC we should start giving more detail
- about engine changes in NEWS.
2003-11-24 18:22:55 +00:00
Andi Gutmans d344648b07 - Fix __autoload() to preserve class case.
- Heads up, this patch might break stuff so please let me know if you
- bump into any problems.
2003-11-24 18:13:29 +00:00
foobar 83650e4e67 Fix the build for other than x86 archs. 2003-11-24 16:09:45 +00:00
Georg Richter e664af1943 added/fixed write property 2003-11-24 11:31:26 +00:00
Rob Richards be974aff6e Fix bug #26159 - SimpleXML XPath support (patch by Adam Trachtenberg)
a few fixes to memory corruption
2003-11-24 11:24:40 +00:00
Moriyoshi Koizumi 4b439176da Partial fix for bug #25803 (xml_get_current_byte_index() always returns 0) 2003-11-24 06:04:39 +00:00
Ilia Alshanetsky c722ab91ee Fixed bug #26355 (flock() doesn't initialize the wouldblock argument) 2003-11-24 01:42:43 +00:00
0c5c01ad9d ChangeLog update 2003-11-24 01:32:05 +00:00
Ilia Alshanetsky b03d3fa5b7 Added php_strip_whitespace() and php_check_syntax() functions. 2003-11-24 01:17:27 +00:00
Sara Golemon 0831f2b03a Fix for file:// wrapper parsing.
(Cristiano Duarte <cunha17@uol.com.br>)
2003-11-23 17:35:00 +00:00
Marcus Boerger a7a9ec079a Add new test 2003-11-23 16:22:11 +00:00
Marcus Boerger fc117add30 Several improvements to the simplexml_element object:
- Allow to use it as an instance of Iterator
- Prepareto use it as a normal object, including spcialization
2003-11-23 16:20:58 +00:00
Andi Gutmans ceaddf238b - Allocation optimizations by Timm Friebe 2003-11-23 12:55:22 +00:00
Georg Richter fee99f6b29 fixed mem leak in constructor 2003-11-23 07:50:04 +00:00
432bf1ab81 ChangeLog update 2003-11-23 01:31:45 +00:00
Georg Richter 230b207849 - Added multiquery support:
mysqli_multi_query
	mysqli_more_results
	mysqli_next_results

- added read-only properties (and removed methods)
	object mysql
		affected_rows
		client_flags
		client_version
		errno, error,
		host, host_info, info
		server_capabilities, server_version
		sqlstate, port, protocol_version,
		server_language
		thread_id, user, warning_count

	object result
		current_field, field_count,
		lengths, num_rows, type

	object stmt
		query, param_count, field_count,
		id, errno, error, sqlstate


- added constructor

- minor fixes, prototypes
2003-11-22 21:20:07 +00:00
Stefan Esser 28b6c35d80 On error do not leave content_type_dup unitialised. 2003-11-22 21:10:47 +00:00
Marcus Boerger 95c0c36525 Add missing files 2003-11-22 20:52:06 +00:00
Marcus Boerger 3d9ec63384 Update examples 2003-11-22 20:51:15 +00:00
Marcus Boerger eca139ec52 - rename getLevel() to getDepth()
- make parameter to getSubIterator() optinal
- refcount fix
2003-11-22 20:49:15 +00:00
Marcus Boerger 9ed350cf67 - current() returns self
- add __toString() casting
2003-11-22 20:46:46 +00:00
Marcus Boerger e3cbda9789 Disable interfaces ArrayRead and ArrayAccess 2003-11-22 20:44:44 +00:00
Moriyoshi Koizumi fd28ad3e8c Fixed bug #26194 (iconv() not properly defined with libiconv).
# Thank you Steph and Frank!
2003-11-22 13:36:55 +00:00
4508d7dcce ChangeLog update 2003-11-22 01:31:47 +00:00
Christian Stocker 6f8746a14d added test for exslt support 2003-11-21 12:22:48 +00:00
Christian Stocker 44ae81871b - Added $proc->hasExsltSupport() 2003-11-21 12:21:35 +00:00
Ilia Alshanetsky 44a03df926 Cleaner patch for bug #26281. 2003-11-21 04:45:43 +00:00
7ed1525cf3 ChangeLog update 2003-11-21 01:31:47 +00:00
Hartmut Holzgraefe ead7c2388d debug mode no longer needed 2003-11-20 19:01:33 +00:00
Andi Gutmans fea31127ec - Fix Windows build 2003-11-20 09:14:51 +00:00
foobar 6f6df4f9a4 Removed entries which no longer have no function 2003-11-20 07:46:46 +00:00
eda457fe19 ChangeLog update 2003-11-20 01:32:12 +00:00
Sara Golemon 0101c27823 New function: headers_list(). Ennumerate headers sent to SAPI engine 2003-11-19 21:10:33 +00:00
Hartmut Holzgraefe f992fbfa2c proto fix 2003-11-19 20:13:49 +00:00
Hartmut Holzgraefe 7eb2471565 XSchema stuff finally done right ... (at least i hope so ...) 2003-11-19 19:55:13 +00:00
Hartmut Holzgraefe 8053a324aa typo fix 2003-11-19 17:38:42 +00:00
Hartmut Holzgraefe 47ee4d5e88 regression test for bug # 26320
"strtotime() does not understand ISO6801 datetime format as used in XMLSchema"
2003-11-19 16:37:50 +00:00
Hartmut Holzgraefe 5339f9134f Testcase done right ... 2003-11-19 16:19:28 +00:00
Hartmut Holzgraefe 8cc9c96cef regression test for http://bugs.php.net/bug.php?id=26317
"military timezones and strtotime()"
2003-11-19 16:01:25 +00:00
Ilia Alshanetsky 44e180b286 Fixed bug #26309 (Fixed argument parsing for imageftbbox()). 2003-11-19 15:49:55 +00:00
Ilia Alshanetsky 2b7b909e16 Fixed bug #26285 (escapeshellarg() uses wrong quotes on windows). 2003-11-19 15:34:30 +00:00
Christian Stocker b63803a06c added exslt support 2003-11-19 12:07:59 +00:00
Andi Gutmans 2fefe6148b - Commit patch by standards 2003-11-19 06:11:47 +00:00
foobar 398b9048dd ws fix 2003-11-19 05:00:56 +00:00
foobar 56ca2bb6c1 - Fixed bug #26267 (gmp_random() leaks memory and does not produce random numbers)
# ..and mpz_random() is obsolete according to the GNU MP manual.
2003-11-19 04:44:06 +00:00
55b83c36e3 ChangeLog update 2003-11-19 01:36:15 +00:00
Ilia Alshanetsky fdd902f0dd Possible fix for bug #26281 & test case. 2003-11-19 00:41:14 +00:00
Marcus Boerger a16ca5a1c2 Dont't stop if directory can't be openedbecause of user rights etc 2003-11-19 00:18:30 +00:00
foobar 9964911cb7 Fix build 2003-11-19 00:09:45 +00:00
Marcus Boerger e9d0b04588 Must use hasNext() here 2003-11-18 22:34:51 +00:00
Marcus Boerger 43d4079590 update directory examples 2003-11-18 22:18:38 +00:00
Marcus Boerger dc42ce8cf2 - Rename DirectoryTreeIterator to RecursiveDirectoryiterator (what it
effectively is).
- Add DirectoryIterator::__toString ->getFilename
- Add RecursiveDirecetoryIterator::__toString ->getPathname
- Add RecursiveIteratorIterator::getSubIterator.
2003-11-18 22:14:19 +00:00
Marcus Boerger c21d597426 Add method alias macro 2003-11-18 19:18:54 +00:00
foobar 97886632ad - Fix the parameter setting. (this function has 1 optional parameter) 2003-11-18 10:28:13 +00:00
Andi Gutmans c0df450203 - Add E_STRICT, to be used to warn purists (like Jani :) 2003-11-18 09:25:04 +00:00
Uwe Schindler 26b5772455 change names to php5_xxx in NSAPI 2003-11-18 09:04:31 +00:00
Marcus Boerger cf1a6108eb Add new iterator test inspired by bug #26527 2003-11-18 07:33:30 +00:00
Marcus Boerger 1eaf126a7a Backpatch the correct opcode for list(), property overloading needs more
opcodes (Bugfix #26257).
2003-11-18 07:19:55 +00:00
Hartmut Holzgraefe 45a07a546f the military time zone offsets where pointing in the wrong direction 2003-11-18 06:46:07 +00:00
Hartmut Holzgraefe f4d669d712 make strtotime() understand the datetime format used with XML Schema 2003-11-18 06:45:01 +00:00
Ilia Alshanetsky 2a58fb80e7 Fixed Bug #25694 (round() and number_format() give inconsistent results). 2003-11-18 02:50:41 +00:00
875695f680 ChangeLog update 2003-11-18 01:34:41 +00:00
Marcus Boerger c978cc2ae8 Use correct order 2003-11-18 00:18:48 +00:00
foobar ee997ddbfa fix the docs 2003-11-18 00:06:37 +00:00
Marcus Boerger b29834a5be Use correct macro/function 2003-11-18 00:01:34 +00:00
Frank M. Kromann 02ea233faa MFB: Fix for bug #25817
Check for a return value from a stored procedure right after fetching rows
Replace code with some Z_ macros
2003-11-17 20:56:53 +00:00
foobar d240eea0d8 - Fixed bug #26253 (ext/tokenizer: build as shared extension fails) 2003-11-17 19:31:17 +00:00
Sebastian Bergmann a10f238cb3 SAPI/Servlet has been moved to PECL. 2003-11-17 16:48:43 +00:00
Martin Jansen 6ff584e2fb * Fix potential warning 2003-11-17 09:15:28 +00:00
Greg Beaver 137adbb708 necessary refinement 2003-11-17 06:07:15 +00:00
Greg Beaver 82bd0915f5 fix bug #248, --force does not work as expected 2003-11-17 05:56:50 +00:00
Greg Beaver c05dfddda4 fix bug #249 2003-11-17 05:45:49 +00:00
Marcus Boerger 5757ae3d24 Rename ArrayClass to ArrayObject 2003-11-17 05:32:43 +00:00
Marcus Boerger b904d296c9 Fix ArrayClass and provide missing has_dimension handler. 2003-11-17 05:25:47 +00:00
Ilia Alshanetsky ace83a8262 Silence warning. 2003-11-17 04:54:27 +00:00
Stig Bakken c67848319a * "chmod +x" when extracting archived executable files 2003-11-17 02:27:23 +00:00
1dbb879bdc ChangeLog update 2003-11-17 01:31:45 +00:00
Marcus Boerger 54352a63ad Fix RecursiveIteratorIterator 2003-11-17 00:57:01 +00:00
Marcus Boerger 3bfa497254 WS 2003-11-17 00:56:15 +00:00
Marcus Boerger 883777623a Make it an interface with an code example as comment 2003-11-17 00:55:37 +00:00
Marcus Boerger 39df192788 Correct destruction 2003-11-17 00:36:41 +00:00
Ilia Alshanetsky 8845a0300f Added myself to credits. 2003-11-16 20:43:57 +00:00
8711f1ca1f ChangeLog update 2003-11-16 01:32:53 +00:00
Frank M. Kromann 4394ccf358 Fix win32 compilation. This will import the core_globals_id 2003-11-15 05:42:57 +00:00
9ae0d49814 ChangeLog update 2003-11-15 01:31:51 +00:00
Frank M. Kromann 72297f444b Adding missing class init's for new ming 0.3a functions 2003-11-15 00:53:39 +00:00
Ilia Alshanetsky c53b53f926 Rename nanosleep() to time_nanosleep(). 2003-11-14 22:55:54 +00:00
Moriyoshi Koizumi 6b7bd4be8f ctime (#10) may differ on several filesystems.
# I confirmed it on Darwin
2003-11-14 08:59:30 +00:00
Marcus Boerger 86676d4d12 Adjust to latest conversion cast changes 2003-11-14 07:41:05 +00:00
foobar 8fec4cc3ec Missing "confdefs.h" in the cleanup-files-list 2003-11-14 03:21:00 +00:00
4d16f8f4bc ChangeLog update 2003-11-14 01:31:43 +00:00
Ilia Alshanetsky 64bc9176e1 Fixed bug #26235 (yp_first/yp_next do not specify correct key length). 2003-11-14 00:32:25 +00:00
Marcus Boerger 3733cf409e Fix testcase name 2003-11-13 21:16:57 +00:00
Rasmus Lerdorf 8afe759fa8 proto fix 2003-11-13 20:55:00 +00:00
Moriyoshi Koizumi 47c38dcd55 BFN 2003-11-13 20:54:25 +00:00
Moriyoshi Koizumi 138b1c7be3 Bugfix #26156 (REPLACE_ZVAL_VALUE works on uninit stack-based zvals) 2003-11-13 20:53:55 +00:00
Marcus Boerger 2b35596d7f Fix classname, CDATA handling (semantically identical to text) and
iterators (Return sub elements as objects, converted to string you get
the text).
2003-11-13 20:32:38 +00:00
Marcus Boerger 2bed6c2b8a Proto fixes (Friedhelm Betz <holliwell|gmx.net>) 2003-11-13 19:08:41 +00:00
John Coggeshall 365f0638fc Releasing 1.0.... 2003-11-13 17:50:39 +00:00
foobar 4eab4158cd - Fixed build of shared extensions which require openssl and when you only
have static openssl libraries.
2003-11-13 14:17:47 +00:00
Edin Kadribasic 45f12cc61f Windows compile fix (patch by sfox@php.net). 2003-11-13 10:32:05 +00:00
Marcus Boerger a18bd05f32 Bugfix #25794: Cannot open existing hash db3 file with write 2003-11-13 08:59:02 +00:00
Marcus Boerger 58246412a7 IteratorAggregate::getIterator() cannot return anythingy else than objects 2003-11-13 08:23:49 +00:00
Marcus Boerger 4d752bd78e Pass eof 2003-11-13 07:53:15 +00:00
Andi Gutmans db2a1f4590 - Make sure internal clasess are malloced 2003-11-13 06:40:34 +00:00
bfd79169c2 ChangeLog update 2003-11-13 01:31:49 +00:00
Ilia Alshanetsky 127ed194b7 Added configure check for nanosleep() availability. 2003-11-12 23:43:46 +00:00
foobar 32b5a41941 - Fixed bug #26072 (--disable-libxml does not work). 2003-11-12 23:42:38 +00:00
Marcus Boerger 81d1a19d0b Bugfix #26216: ("getimagesize(): stream does not support seeking" when
using remote files)
2003-11-12 22:51:22 +00:00
Stefan Esser befbd6d793 Fix odd increments to repair the boundary checks. 2003-11-12 22:34:58 +00:00
Ilia Alshanetsky 3691ab699c Added nanosleep(), in addition to allowing setting of very short states.
This function is signal safe.
2003-11-12 22:02:37 +00:00
Jay Smith 544fe688c5 Plugged a small memleak when errstr isn't efree()'d. 2003-11-12 22:01:02 +00:00
Marcus Boerger 9e865e4fb4 Update 2003-11-12 21:48:19 +00:00
Marcus Boerger daaef88047 Add helper function that splits inifile keys into an array which again
can be used in dba_fetch calls.
2003-11-12 21:43:03 +00:00
Ard Biesheuvel 2dd35c0e8f Added new ibase array handling (was already present in b2) 2003-11-12 11:29:25 +00:00
Marcus Boerger 038cb2dc9a Compiler fixes for older ming versions 2003-11-12 09:12:51 +00:00
Sergey Kartashoff 228918223e - A bug in WORDINFO calculation in mnogosearch extension was fixed. 2003-11-12 07:40:17 +00:00
Ilia Alshanetsky 770a111a43 Fixed bug #26198 (strtotime() handling of M/F Y date format). 2003-11-12 02:55:03 +00:00
3d8028d985 ChangeLog update 2003-11-12 01:31:46 +00:00
Ilia Alshanetsky d2564b401e Compiler warning fix (patch by Joe Orton). 2003-11-11 20:04:09 +00:00
Marcus Boerger e480d10021 Fix this 2003-11-11 18:33:34 +00:00
Marcus Boerger 91ab36096e Add shortcut interface SeekableIterator to LimitIterator 2003-11-11 18:31:50 +00:00
Moriyoshi Koizumi f8e6e5dad3 Compiler warning fix (patch by Joe Orton) 2003-11-11 17:35:32 +00:00
Ilia Alshanetsky beffc71b3f Fix ZTS build. 2003-11-11 01:51:22 +00:00
66f5f3371f ChangeLog update 2003-11-11 01:31:39 +00:00
Marcus Boerger ab05faf5b1 Implement different recursion modes as statemachine and have an optional
parameter to choose the mode in the constructor.
2003-11-11 00:25:26 +00:00
Marcus Boerger bdc339d30d Don't use zend_class_entry indirection 2003-11-10 22:06:26 +00:00
Marcus Boerger 7cc93e121b Bugfix #26010 (Bug on get_object_vars() function) 2003-11-10 21:03:04 +00:00
Marcus Boerger e7365f316c Correct default handlers 2003-11-10 20:44:50 +00:00
Marcus Boerger bfb73676de Split into element=property and attribute=dimension overloading. 2003-11-10 20:27:16 +00:00
Marcus Boerger ec9ea44f59 Update test expectations 2003-11-10 18:09:07 +00:00
Marcus Boerger ea3eec9133 Need to update iterators handler table too. 2003-11-10 18:05:02 +00:00
Marcus Boerger 48d249de46 Fix those warnings 2003-11-10 16:23:12 +00:00
Marcus Boerger 296529b886 Split isset/isempty for object property and object dimension hooking. 2003-11-10 16:14:44 +00:00
Marcus Boerger da6d68d919 Little iterator improvement: ability to store index in iterator 2003-11-10 16:13:38 +00:00
Ilia Alshanetsky 099adae29c Fixed bug #26168 (shtool availability check in phpize). 2003-11-10 04:33:49 +00:00
Ilia Alshanetsky 7fe481c9d0 Fixed bug #26176 (Fixed handling of numeric keys in INI files). 2003-11-10 04:12:38 +00:00
a21ab978fb ChangeLog update 2003-11-10 01:31:47 +00:00
Marcus Boerger c300480441 Synch exposed functions with c-level iterator functions 2003-11-09 23:00:50 +00:00
Marcus Boerger 159c538bcf Major update:
- Remove all overloading hooks -> array_read/array_access must be rewritten
- Remove all basic iterators
- Remove all 'spl_' prefixing exposed to user level
- Add RecursiveIterator, RecursiveIteratorIterator
- Add DirectoryIterator, DirectoryTreeIterator
- Add some examples
2003-11-09 14:05:36 +00:00
44dc9eb3e4 ChangeLog update 2003-11-09 01:32:00 +00:00
Marcus Boerger e72339284f Add method reflection_class::implementsInterface()
Allow string & reflection_class in isSubclassOf()
2003-11-08 21:41:42 +00:00
Marcus Boerger ab6b1adf0b Fix reflection_class::isSubclassOf() 2003-11-08 21:02:21 +00:00
Sergey Kartashoff 899b960ed1 - Mnogosearch Extension was updated to include mnogosearch-3.2.16 features 2003-11-08 14:36:32 +00:00
Marcus Boerger 316854323d Handle exceptions in casting more gracefully.
This fixes bug #26166
2003-11-08 14:06:08 +00:00
Moriyoshi Koizumi ed45157047 Remove NEWS entry since the fix went to the branch as well. 2003-11-08 04:44:26 +00:00
a245f3b7a2 ChangeLog update 2003-11-08 01:32:13 +00:00
Ilia Alshanetsky 44c09f8401 Bug fixing news. 2003-11-07 19:19:15 +00:00
Ilia Alshanetsky 2016ac0a73 Fixed write support. 2003-11-07 19:12:46 +00:00
Ilia Alshanetsky d9bf51b17c 10-18% optimization of fetch_array(), when both number & string indexes are
created.

# Do we want to MFH the change (for ext/mysql) into 4.3.X?
2003-11-07 17:20:49 +00:00
Marcus Boerger f3d385a587 Make __autoload() faster 2003-11-07 11:47:50 +00:00
Marcus Boerger 5112a4ae24 Update Iterators: Call next at the correct point in time. 2003-11-07 10:47:47 +00:00
Marcus Boerger 77923b0eb1 Add missing initialization. 2003-11-07 10:22:16 +00:00
Marcus Boerger 1e44370536 Make these class entries available for inheriting classes 2003-11-07 09:33:06 +00:00
Marcus Boerger 220e41a421 Move typedef to where it is needed now. 2003-11-07 09:26:18 +00:00
Marcus Boerger ccb6311406 Make php_stat() available for extensions. 2003-11-07 09:16:16 +00:00
23d16aa99b ChangeLog update 2003-11-07 01:32:20 +00:00
Ilia Alshanetsky 648a1e0d78 Added mandatory safe_mode & open_basedir checks. 2003-11-07 01:17:32 +00:00
Ilia Alshanetsky c258f9c8a2 Fixed bug #26148 (Print the notice before modifying variable on type
mismatch).

# This only crashes in ZE1, however logic dictates that it may also crash
# in ZE2 because variable does not have a correct type.

Patch by: morten-bugs dot php dot net at afdelingp dot dk
2003-11-06 20:33:47 +00:00
Frank M. Kromann f68114414b Getting rid of c++ style comments 2003-11-06 16:50:40 +00:00
Sascha Schumann db56268231 WS 2003-11-06 14:31:33 +00:00
Sascha Schumann 5a32c21f46 Fix a format string
Nuke a sprintf (slooow)

And embed the charset as part of the hashed details (persistent conn key),
because the function otherwise happily returns incompatible connections.
(e.g. US7ASCII vs. UTF8; the client-side charset is not alterable once a
 connection has been established.)
2003-11-06 14:29:09 +00:00
Frank M. Kromann 2c3edcea09 MFB: Adding new features from ming 0.3a. 2003-11-06 07:29:38 +00:00
9ebc91b513 ChangeLog update 2003-11-06 01:31:42 +00:00
Ilia Alshanetsky f884a5b437 Kill unused variables. 2003-11-05 23:44:09 +00:00
Rui Hirokawa 744212ab45 added buffer reallocation for filename. 2003-11-05 23:27:41 +00:00
Uwe Schindler 614fec8dbb remove unix crap 2003-11-05 08:33:46 +00:00
c3b9e5811c ChangeLog update 2003-11-05 01:32:23 +00:00
Marcus Boerger f9d13098e7 Prevent some SEGV's when Exceptions are thorown inside iterators. 2003-11-04 22:07:59 +00:00
Marcus Boerger e912635f82 Removedouble efree call 2003-11-04 22:01:37 +00:00
Ilia Alshanetsky 046904f2b1 Fixed bug #26113 (remove leftover local file when ftp_get/ftp_nb_get fails) 2003-11-04 20:56:47 +00:00
Moriyoshi Koizumi 68bab385cb __tostring() handler should be binary-safe 2003-11-04 17:34:56 +00:00
Moriyoshi Koizumi aef5f793b8 Fix one more test 2003-11-04 17:14:07 +00:00
Moriyoshi Koizumi 668e8a87e6 Fix tests 2003-11-04 16:18:21 +00:00
Moriyoshi Koizumi f0725828f0 Add XML_SAX_IMPL constant to determine which implementation (libxml / expat)
is selected for SAX interface.
2003-11-04 16:15:52 +00:00
Moriyoshi Koizumi 595426ac8d BFN 2003-11-04 16:09:16 +00:00
Moriyoshi Koizumi bb6f3a115e Fixed bug #24394 (serializing cross-referenced objects causes segfault) 2003-11-04 16:08:10 +00:00
Stanislav Malyshev e69aaa8b05 add zend_iterators.c zend_interfaces.c to make 2003-11-04 15:27:08 +00:00
Uwe Steinmann 89f7e98f8f ignore some files 2003-11-04 09:16:40 +00:00
Uwe Steinmann e0c99ce247 - added more files 2003-11-04 09:15:47 +00:00
Uwe Schindler c22ddad21e SunONE servers 2003-11-04 09:02:56 +00:00
foobar 5b4e619cdd - Moved all the mime_magic.c specific stuff into their own header file
to prevent possible compile failures.

# Should fix bug #26103
2003-11-04 05:15:19 +00:00
Ilia Alshanetsky b520c9d42c Fixed bug #26097 (gdImageColorClosestAlpha() returns incorrect results). 2003-11-04 01:55:50 +00:00
6d5ddf6b78 ChangeLog update 2003-11-04 01:32:36 +00:00
foobar 84e18a6f68 Missing file 2003-11-03 23:36:05 +00:00
Moriyoshi Koizumi 8572fc2af5 Add regression test for XPath support 2003-11-03 22:49:24 +00:00
Moriyoshi Koizumi 2a3e05e865 Fix test 2003-11-03 22:42:56 +00:00
John Coggeshall 5d0f70a004 Should've added a few more cases to that bugfix switch. 2003-11-03 22:34:44 +00:00
John Coggeshall 8a36e954f0 Fixed a bug -- Nodes of certain types don't actually have ID values and PHP
would segv trying to read one.
2003-11-03 16:35:58 +00:00
Derick Rethans 3ab8d263b8 - Always store the URI path in the streams structure, and expose it with
stream_get_meta_data().
2003-11-03 14:12:46 +00:00
Sterling Hughes 040d945fb7 make this macro safe 2003-11-03 13:55:19 +00:00
Sterling Hughes 6ab221b3f6 remove attributes from this check 2003-11-03 13:50:43 +00:00
Sterling Hughes e963f0b168 - Stop a crash in xpath
- Remove the ability to access attributes via the -> operator, attributes
are accessed via the array indicators
2003-11-03 13:36:23 +00:00
Stefan Esser b763dd42c3 Fixed possible crashbug. 2003-11-03 11:46:33 +00:00
Marc Boeren 22872bb8fa Make life for the doc-team easier, without causing harm ;-) 2003-11-03 11:15:23 +00:00
Stefan Esser f670f9c683 It is usually a good idea to write only into allocated bufferspace. 2003-11-03 09:16:24 +00:00
ab676c88dc ChangeLog update 2003-11-03 01:34:42 +00:00
Moriyoshi Koizumi 8e1bbd9aea Proto fix 2003-11-02 18:54:08 +00:00
8abeb68cbb ChangeLog update 2003-11-02 01:31:52 +00:00
Greg Beaver 997db6551a checkExtension() was a complete disaster, can't believe it didn't cause any problems before. 2003-11-01 05:06:27 +00:00
Greg Beaver 1e2a437c0c new unit test 2003-11-01 05:05:34 +00:00
Greg Beaver 43d1ad8372 new unit test 2003-11-01 03:32:15 +00:00
Greg Beaver 48bca64444 fix bug found by unit test 2003-11-01 03:31:52 +00:00
05dfdf1961 ChangeLog update 2003-11-01 01:31:52 +00:00
Greg Beaver 014d039459 add optional dependencies to test 2003-10-31 22:53:31 +00:00
Greg Beaver 6d0360204d better error messages, fix potential problems in the future 2003-10-31 22:53:20 +00:00
Greg Beaver 5d0cc08805 fix warning 2003-10-31 22:52:33 +00:00
Greg Beaver 70a852ebdc fix test 2003-10-31 22:51:43 +00:00
Greg Beaver d4150d6095 add fancy SKIPIF code, fix test 2003-10-31 22:46:57 +00:00
Greg Beaver 6c403c7794 add fancy SKIPIF code 2003-10-31 22:39:43 +00:00
Greg Beaver f51b3c0cb1 fix test 1, add in nifty SKIPIF code 2003-10-31 22:30:37 +00:00
Greg Beaver 5754cfe68c deleted code says it all 2003-10-31 22:22:17 +00:00
Greg Beaver 3caf118763 add in skip to match other tests 2003-10-31 17:41:57 +00:00
Greg Beaver 4da5da699e new test case 2003-10-31 17:39:59 +00:00
Uwe Schindler d3d94ff2f3 fix header handler 2003-10-31 17:31:46 +00:00
Greg Beaver 25e1f920d1 major bug - "not" dependency check would completely fail. Guess nobody ever tried it before :) 2003-10-31 17:22:15 +00:00
Moriyoshi Koizumi 2f27fe3574 Add test case for bug #26010 2003-10-31 17:12:16 +00:00
Greg Beaver f3102f9d6b was checking the wrong parameter for a v. - should be checking version 2003-10-31 17:01:39 +00:00
Greg Beaver 8c77fbe743 phpdoc fix 2003-10-31 16:50:56 +00:00
Moriyoshi Koizumi 06d541a63a SKIP tests if compress.zlib wrapper is not available. 2003-10-31 16:12:27 +00:00
foobar 2c9f29b9b6 cosmetics 2003-10-31 13:48:34 +00:00
Uwe Schindler 4dca199a98 Send correct default content type from php.ini not static text/html (important for other charsets than iso-8859-1) 2003-10-31 12:20:33 +00:00
Marcus Boerger 91b3f34874 Make this work again 2003-10-31 07:41:53 +00:00
Greg Beaver 899432fac8 finished unit test 2003-10-31 05:14:32 +00:00
Greg Beaver 9ed1956bfa bump to 1.3b4, add note about fix for #171 2003-10-31 04:56:08 +00:00
Greg Beaver 5c76e88d0e fix #171, --alldeps with a rel="eq" should install the required version, if possible 2003-10-31 04:52:00 +00:00
Ilia Alshanetsky 00635d0807 Fixed bug #26042 (memory leak if mcrypt_generic_deinit() is not called
after every mcrypt_generic_init() call).

# This will be MFHed into 4.3.X tree after release.
2003-10-31 04:33:51 +00:00
4adbd1dbf6 ChangeLog update 2003-10-31 01:32:21 +00:00
foobar b4c05a5068 MFB 2003-10-31 01:29:59 +00:00
Greg Beaver 76d66203f4 add some error control to analyzeSourceCode() for really rare cases - invalid PHP 2003-10-31 01:17:47 +00:00
Greg Beaver f244e77f6b start on unit test for PEAR_Common 2003-10-31 01:17:04 +00:00
foobar 9e0da5e741 Next is beta3.. 2003-10-30 15:14:31 +00:00
Zak Greant 8802c3ad8c Ensure that INI entries are unregistered on shutdown 2003-10-30 13:32:18 +00:00
Georg Richter 8f1f9b2f6d changed return value from long to boolean for mysql_execute 2003-10-30 12:35:16 +00:00
Stanislav Malyshev 44c3f0066b make CATCH opcode use "class" T like other opcodes do - via IS_CONST 2003-10-30 11:11:48 +00:00
Andi Gutmans 42a2bc6e6c - Typo 2003-10-30 10:15:59 +00:00
Andi Gutmans 0b3fe78906 - Beta 2 2003-10-30 10:07:26 +00:00
Christian Stocker 038a7c4831 make test work with libxml2 2.6.x and lower
(I used lowercase html again in the EXPECT part, as this is now the default
behaviour for newer libxml2 releases)
2003-10-30 10:06:00 +00:00
Andi Gutmans b72364ccc1 - Beta 2 2003-10-30 10:00:44 +00:00
Andi Gutmans bb12ffe41f - Move uuencode to the right place (ext/standard) 2003-10-30 09:58:52 +00:00
3543 changed files with 812209 additions and 32 deletions

No files matched your search

+359
View File
@@ -0,0 +1,359 @@
set $zts = 0
define ____executor_globals
if $zts
set $eg = ((zend_executor_globals) (*((void ***) tsrm_ls))[executor_globals_id-1])
else
set $eg = executor_globals
end
end
document ____executor_globals
portable way of accessing executor_globals
type "set $zts = 1" if you use --enable-maintainer-zts on your configure line
end
define dump_bt
set $t = $arg0
while $t
printf "[0x%08x] ", $t
if $t->function_state.function->common.function_name
printf "%s() ", $t->function_state.function->common.function_name
else
printf "??? "
end
if $t->op_array != 0
printf "%s:%d ", $t->op_array->filename, $t->opline->lineno
end
set $t = $t->prev_execute_data
printf "\n"
end
end
document dump_bt
dumps the current execution stack. usage: dump_bt executor_globals.current_execute_data
end
define printzv
set $ind = 1
____printzv $arg0 0
end
document printzv
prints content of zval
end
define ____printzv_contents
____executor_globals
set $zvalue = $arg0
if $zvalue.type == 0
set $typename = "NULL"
end
if $zvalue.type == 1
set $typename = "long"
end
if $zvalue.type == 2
set $typename = "double"
end
if $zvalue.type == 3
set $typename = "string"
end
if $zvalue.type == 4
set $typename = "array"
end
if $zvalue.type == 5
set $typename = "object"
end
if $zvalue.type == 6
set $typename = "bool"
end
if $zvalue.type == 7
set $typename = "resource"
end
if $zvalue.type == 8
set $typename = "constant"
end
if $zvalue.type == 9
set $typename = "const_array"
end
printf "(refcount=%d) %s: ", $zvalue.refcount, $typename
if $zvalue.type == 1
printf "%ld", $zvalue.value.lval
end
if $zvalue->type == 2
printf "%lf", $zvalue.value.dval
end
if $zvalue.type == 3
printf "\"%s\"(%d)", $zvalue.value.str.val, $zvalue.value.str.len
end
if $zvalue.type == 4
if ! $arg1
printf "{\n"
set $ind = $ind + 1
____print_ht $zvalue.value.ht
set $ind = $ind - 1
set $i = $ind
while $i > 0
printf " "
set $i = $i - 1
end
printf "}"
end
end
if $zvalue.type == 5
if ! $arg1
printf "(prop examination disabled due to a gdb bug)"
if $zvalue.value.obj.handlers->get_properties
# set $ht = $zvalue->value.obj.handlers->get_properties($zvalue)
# printf "{\n"
# set $ind = $ind + 1
# ____print_ht $ht
# set $ind = $ind - 1
# set $i = $ind
# while $i > 0
# printf " "
# set $i = $i - 1
# end
# printf "}"
end
end
end
if $zvalue.type == 6
if $zvalue.value.lval
printf "true"
else
printf "false"
end
end
if $zvalue.type == 7
printf "#%d", $zvalue.value.lval
end
printf "\n"
end
define ____printzv
____executor_globals
set $zvalue = $arg0
printf "[0x%08x] ", $zvalue
if $zvalue == $eg.uninitialized_zval_ptr
printf "*uninitialized* "
end
set $zcontents = *(struct _zval_struct *) $zvalue
if $arg1
____printzv_contents $zcontents $arg1
else
____printzv_contents $zcontents 0
end
end
define ____print_const_table
set $ht = $arg0
set $p = $ht->pListHead
while $p != 0
set $const = *(zend_constant *) $p->pData
set $i = $ind
while $i > 0
printf " "
set $i = $i - 1
end
if $p->nKeyLength > 0
printf "\"%s\" => ", $p->arKey
else
printf "%d => ", $p->h
end
____printzv_contents $const.value 0
set $p = $p->pListNext
end
end
define print_const_table
set $ind = 1
printf "[0x%08x] {\n", $arg0
____print_const_table $arg0
printf "}\n"
end
define ____print_ht
set $ht = $arg0
set $p = $ht->pListHead
while $p != 0
set $zval = *(struct _zval_struct **)$p->pData
set $i = $ind
while $i > 0
printf " "
set $i = $i - 1
end
if $p->nKeyLength > 0
printf "\"%s\" => ", $p->arKey
else
printf "%d => ", $p->h
end
____printzv $zval 1
set $p = $p->pListNext
end
end
define print_ht
set $ind = 1
printf "[0x%08x] {\n", $arg0
____print_ht $arg0
printf "}\n"
end
document print_ht
dumps elements of HashTable made of zval
end
define printzn
____executor_globals
set $ind = 0
set $znode = $arg0
if $znode->op_type == 1
set $optype = "IS_CONST"
end
if $znode->op_type == 2
set $optype = "IS_TMP_VAR"
end
if $znode->op_type == 4
set $optype = "IS_VAR"
end
if $znode->op_type == 8
set $optype = "IS_UNUSED"
end
printf "[0x%08x] %s", $znode, $optype
if $znode->op_type == 1
printf ": "
____printzv &$znode->u.constant 0
end
if $znode->op_type == 2
printf ": "
set $tvar = (union _temp_variable *)((char *)$eg.current_execute_data->Ts + $znode->u.var)
____printzv ((union _temp_variable *)$tvar)->tmp_var 0
end
if $znode->op_type == 4
printf ": "
set $tvar = (union _temp_variable *)((char *)$eg.current_execute_data->Ts + $znode->u.var)
____printzv *$tvar->var.ptr_ptr 0
end
if $znode->op_type == 8
printf "\n"
end
end
document printzn
print type and content of znode.
usage: printzn &opline->op1
end
define printzops
printf "op1 => "
printzn &execute_data->opline.op1
printf "op2 => "
printzn &execute_data->opline.op2
printf "result => "
printzn &execute_data->opline.result
end
document printzops
dump operands of the current opline
end
define zbacktrace
____executor_globals
dump_bt $eg.current_execute_data
end
document zbacktrace
prints backtrace.
This command is almost a short cut for
> (gdb) ____executor_globals
> (gdb) dump_bt $eg.current_execute_data
end
define zmemcheck
set $p = alloc_globals.head
set $stat = "?"
set $total_size = 0
if $arg0 != 0
set $not_found = 1
else
set $not_found = 0
end
printf " block size status file:line\n"
printf "-------------------------------------------------------------------------------\n"
while $p
set $aptr = $p + sizeof(struct _zend_mem_header) + sizeof(align_test)
if $arg0 == 0 || (void *)$aptr == (void *)$arg0
if $p->magic == 0x7312f8dc
set $stat = "OK"
end
if $p->magic == 0x99954317
set $stat = "FREED"
end
if $p->magic == 0xfb8277dc
set $stat = "CACHED"
end
set $filename = strrchr($p->filename, '/')
if !$filename
set $filename = $p->filename
else
set $filename = $filename + 1
end
printf " 0x%08x ", $aptr
if $p->size == sizeof(struct _zval_struct) && ((struct _zval_struct *)$aptr)->type >= 0 && ((struct _zval_struct *)$aptr)->type < 10
printf "ZVAL?(%-2d) ", $p->size
else
printf "%-9d ", $p->size
end
set $total_size = $total_size + $p->size
printf "%-06s %s:%d", $stat, $filename, $p->lineno
if $p->orig_filename
set $orig_filename = strrchr($p->orig_filename, '/')
if !$orig_filename
set $orig_filename = $p->orig_filename
else
set $orig_filename = $orig_filename + 1
end
printf " <= %s:%d\n", $orig_filename, $p->orig_lineno
else
printf "\n"
end
if $arg0 != 0
set $p = 0
set $not_found = 0
else
set $p = $p->pNext
end
else
set $p = $p->pNext
end
end
if $not_found
printf "no such block that begins at 0x%08x.\n", $aptr
end
if $arg0 == 0
printf "-------------------------------------------------------------------------------\n"
printf " total: %d bytes\n", $total_size
end
end
document zmemcheck
show status of a memory block.
usage: zmemcheck [ptr].
if ptr is 0, all blocks will be listed.
end
+272
View File
@@ -0,0 +1,272 @@
PHP Coding Standards
====================
This file lists several standards that any programmer, adding or changing
code in PHP, should follow. Since this file was added at a very late
stage of the development of PHP v3.0, the code base does not (yet) fully
follow it, but it's going in that general direction. Since we are now
well into the version 4 releases, many sections have been recoded to use
these rules.
Code Implementation
-------------------
[0] Document your code in source files and the manual. [tm]
[1] Functions that are given pointers to resources should not free them
For instance, function int mail(char *to, char *from) should NOT free
to and/or from.
Exceptions:
- The function's designated behavior is freeing that resource. E.g. efree()
- The function is given a boolean argument, that controls whether or not
the function may free its arguments (if true - the function must free its
arguments, if false - it must not)
- Low-level parser routines, that are tightly integrated with the token
cache and the bison code for minimum memory copying overhead.
[2] Functions that are tightly integrated with other functions within the
same module, and rely on each other non-trivial behavior, should be
documented as such and declared 'static'. They should be avoided if
possible.
[3] Use definitions and macros whenever possible, so that constants have
meaningful names and can be easily manipulated. The only exceptions
to this rule are 0 and 1, when used as false and true (respectively).
Any other use of a numeric constant to specify different behavior
or actions should be done through a #define.
[4] When writing functions that deal with strings, be sure to remember
that PHP holds the length property of each string, and that it
shouldn't be calculated with strlen(). Write your functions in a such
a way so that they'll take advantage of the length property, both
for efficiency and in order for them to be binary-safe.
Functions that change strings and obtain their new lengths while
doing so, should return that new length, so it doesn't have to be
recalculated with strlen() (e.g. php_addslashes())
[5] NEVER USE strncat(). If you're absolutely sure you know what you're doing,
check its man page again, and only then, consider using it, and even then,
try avoiding it.
[6] Use PHP_* macros in the PHP source, and ZEND_* macros in the Zend
part of the source. Although the PHP_* macro's are mostly aliased to the
ZEND_* macros it gives a better understanding on what kind of macro you're
calling.
[7] When commenting out code using a #if statement, do NOT use 0 only. Instead
use "<cvs username here>_0". For example, #if FOO_0, where FOO is your
cvs user foo. This allows easier tracking of why code was commented out,
especially in bundled libraries.
[8] Do not define functions that are not available. For instance, if a
library is missing a function, do not define the PHP version of the
function, and do not raise a run-time error about the function not
existing. End users should use function_exists() to test for the
existence of a function
[9] Prefer emalloc(), efree(), estrdup(), etc. to their standard C library
counterparts. These functions implement an internal "safety-net"
mechanism that ensures the deallocation of any unfreed memory at the
end of a request. They also provide useful allocation and overflow
information while running in debug mode.
In almost all cases, memory returned to the engine must be allocated
using emalloc().
The use of malloc() should be limited to cases where a third-party
library may need to control or free the memory, or when the memory in
question needs to survive between multiple requests.
Naming Conventions
------------------
[1] Function names for user-level functions should be enclosed with in
the PHP_FUNCTION() macro. They should be in lowercase, with words
underscore delimited, with care taken to minimize the letter count.
Abbreviations should not be used when they greatly decrease the
readability of the function name itself.
Good:
'mcrypt_enc_self_test'
'mysql_list_fields'
Ok:
'mcrypt_module_get_algo_supported_key_sizes'
(could be 'mcrypt_mod_get_algo_sup_key_sizes'?)
'get_html_translation_table'
(could be 'html_get_trans_table'?)
Bad:
'hw_GetObjectByQueryCollObj'
'pg_setclientencoding'
'jf_n_s_i'
[2] If they are part of a "parent set" of functions, that parent should
be included in the user function name, and should be clearly related
to the parent program or function family. This should be in the form
of parent_*.
A family of 'foo' functions, for example:
Good:
'foo_select_bar'
'foo_insert_baz'
'foo_delete_baz'
Bad:
'fooselect_bar'
'fooinsertbaz'
'delete_foo_baz'
[3] Function names used by user functions should be prefixed
with "_php_", and followed by a word or an underscore-delimited list of
words, in lowercase letters, that describes the function. If applicable,
they should be declared 'static'.
[4] Variable names must be meaningful. One letter variable names must be
avoided, except for places where the variable has no real meaning or
a trivial meaning (e.g. for (i=0; i<100; i++) ...).
[5] Variable names should be in lowercase. Use underscores to separate
between words.
[6] Method names follow the 'studlyCaps' (also referred to as 'bumpy case'
or 'camel caps') naming convention, with care taken to minimize the
letter count. The initial letter of the name is lowercase, and each
letter that starts a new 'word' is capitalized.
Good:
'connect()'
'getData()'
'buildSomeWidget()'
Bad:
'get_Data()'
'buildsomewidget'
'getI()'
[7] Classes should be given descriptive names. Avoid using abbreviations
where possible. Each word in the class name should start with a capital
letter, with words underscore delimited. The class name should be prefixed
with the name of the 'parent set'.
Good:
'Curl'
'Foo_Bar'
Bad:
'foobar'
'foo_bar'
'FooBar'
Syntax and indentation
----------------------
[1] Never use C++ style comments (i.e. // comment). Always use C-style
comments instead. PHP is written in C, and is aimed at compiling
under any ANSI-C compliant compiler. Even though many compilers
accept C++-style comments in C code, you have to ensure that your
code would compile with other compilers as well.
The only exception to this rule is code that is Win32-specific,
because the Win32 port is MS-Visual C++ specific, and this compiler
is known to accept C++-style comments in C code.
[2] Use K&R-style. Of course, we can't and don't want to
force anybody to use a style he or she is not used to, but,
at the very least, when you write code that goes into the core
of PHP or one of its standard modules, please maintain the K&R
style. This applies to just about everything, starting with
indentation and comment styles and up to function declaration
syntax.
(see also http://www.catb.org/~esr/jargon/html/I/indent-style.html)
[3] Be generous with whitespace and braces. Always prefer:
if (foo) {
bar;
}
to:
if(foo)bar;
Keep one empty line between the variable declaration section and
the statements in a block, as well as between logical statement
groups in a block. Maintain at least one empty line between
two functions, preferably two.
[4] When indenting, use the tab character. A tab is expected to represent
four spaces. It is important to maintain consistency in indenture so
that definitions, comments, and control structures line up correctly.
[5] Preprocessor statements (#if and such) MUST start at column one. To
indent preprocessor directives you should put the # at the beginning
of a line, followed by any number of whitespace.
Documentation and Folding Hooks
-------------------------------
In order to make sure that the online documentation stays in line with
the code, each user-level function should have its user-level function
prototype before it along with a brief one-line description of what the
function does. It would look like this:
/* {{{ proto int abs(int number)
Returns the absolute value of the number */
PHP_FUNCTION(abs)
{
...
}
/* }}} */
The {{{ symbols are the default folding symbols for the folding mode in
Emacs and vim (set fdm=marker). Folding is very useful when dealing with
large files because you can scroll through the file quickly and just unfold
the function you wish to work on. The }}} at the end of each function marks
the end of the fold, and should be on a separate line.
The "proto" keyword there is just a helper for the doc/genfuncsummary script
which generates a full function summary. Having this keyword in front of the
function prototypes allows us to put folds elsewhere in the code without
messing up the function summary.
Optional arguments are written like this:
/* {{{ proto object imap_header(int stream_id, int msg_no [, int from_length [, int subject_length [, string default_host]]])
Returns a header object with the defined parameters */
And yes, please keep the prototype on a single line, even if that line
is massive.
New and Experimental Functions
-----------------------------------
To reduce the problems normally associated with the first public
implementation of a new set of functions, it has been suggested
that the first implementation include a file labeled 'EXPERIMENTAL'
in the function directory, and that the functions follow the
standard prefixing conventions during their initial implementation.
The file labelled 'EXPERIMENTAL' should include the following
information:
Any authoring information (known bugs, future directions of the module).
Ongoing status notes which may not be appropriate for CVS comments.
Aliases & Legacy Documentation
-----------------------------------
You may also have some deprecated aliases with close to duplicate
names, for example, somedb_select_result and somedb_selectresult. For
documentation purposes, these will only be documented by the most
current name, with the aliases listed in the documentation for
the parent function. For ease of reference, user-functions with
completely different names, that alias to the same function (such as
highlight_file and show_source), will be separately documented. The
proto should still be included, describing which function is aliased.
Backwards compatible functions and names should be maintained as long
as the code can be reasonably be kept as part of the codebase. See
/phpdoc/README for more information on documentation.
+2
View File
@@ -0,0 +1,2 @@
For the list of people who've put work into PHP, please see
http://www.php.net/credits.php
+12032
View File
File diff suppressed because it is too large. Load diff
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+456
View File
@@ -0,0 +1,456 @@
List of PHP maintainers
=======================
Maintenance legend
------------------
Supported: Someone is actually paid to look after this.
Maintained: Someone actually looks after it.
Odd Fixes: It has a maintainer but they don't have time to do
much other than throw the odd patch in. See below.
Orphan: No current maintainer [but maybe you could take the
role as you write your new code].
Obsolete: Old code. Something tagged obsolete generally means
it has been replaced by a better system and you
should be using that.
Unknown: Not known at this time.
Status legend
-------------
Working: Working under both Windows and Unix.
Windows: Working only under Windows.
Unix: Working only under Unix.
Experimental: Under development or initial release.
Not Working: Not working.
Unknown: Status unknown.
== Server APIs ==
-------------------------------------------------------------------------------
EXTENSION: activescript
PRIMARY MAINTAINER: Wez Furlong <wez@php.net>
MAINTENANCE: Odd Fixes
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: aolserver
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: apache
PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: apache2handler / apache2filter
PRIMARY MAINTAINER: Aaron Bannert <aaron@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: apache_hooks
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: caudium
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: cgi
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: cli
MAINTENANCE: Marcus Boerger <helly@php.net>, Edin Kadribasic <edink@php.net>
STATUS: Working
SINCE: 4.3.0
-------------------------------------------------------------------------------
EXTENSION: embed
PRIMARY MAINTAINER: Edin Kadribasic <edink@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: isapi
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: milter
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: nsapi
PRIMARY MAINTAINER: Uwe Schindler <thetaphi@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: phttpd
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: pi3web
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: roxen
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: thttpd
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
MAINTENANCE: Odd fixes
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: tux
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: webjames
PRIMARY MAINTAINER: Alex Waugh <alex@alexwaugh.com>
MAINTENANCE: Maintained
STATUS: Experimental
-------------------------------------------------------------------------------
== Database extensions ==
-------------------------------------------------------------------------------
EXTENSION: dba
PRIMARY MAINTAINER: Marcus Börger <helly@php.net>
MAINTENANCE: Maintained
STATUS: Working
COMMENT: DBM abstraction for db2, db3, db4, dbm, ndbm, gdbm, ini
-------------------------------------------------------------------------------
EXTENSION: dbase
MAINTENANCE: Orphaned
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: dbx
PRIMARY MAINTAINER: Marc Boeren <M.Boeren@guidance.nl>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.0.6
COMMENT: DB abstraction for odbc, mysql, pgsql, mssql, fbsql and more, see documentation
-------------------------------------------------------------------------------
EXTENSION: filepro
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: hwapi
PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: informix
PRIMARY MAINTAINER: Danny Heijl <Danny.Heijl@cevi.be>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: ingres_ii
PRIMARY MAINTAINER: David Hénot <henot@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: interbase
PRIMARY MAINTAINER: Ard Biesheuvel <ard@ard.nu>, Jouni Ahto <jouni.ahto@exdec.fi>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: msql
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: mssql
PRIMARY MAINTAINER: Frank M. Kromann <fmk@swwwing.com>
MAINTENANCE: Maintained
STATUS: Working
COMMENT: Tested on phpts and isapi versions
-------------------------------------------------------------------------------
EXTENSION: mysql
PRIMARY MAINTAINER: Zak Greant <zak@mysql.com>, Georg Richter <georg@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: mysqli
PRIMARY MAINTAINER: Georg Richter <georg@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 5.0
-------------------------------------------------------------------------------
EXTENSION: pgsql
PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>, Yasuo Ohgaki <yohgaki@php.net>
MAINTENANCE: Maintained
STATUS: Working
COMMENT: Use PostgreSQL 7.0.x or later. PostgreSQL 6.5.3 or less have fatal bug.
-------------------------------------------------------------------------------
EXTENSION: sqlite
PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>, Wez Furlong <wez@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.0 (Since 4.3.2 in PECL)
COMMENT: Integrates SQLite embeddable SQL database engine.
-------------------------------------------------------------------------------
EXTENSION: sybase
MAINTENANCE: Unknown
STATUS: Not Working
-------------------------------------------------------------------------------
EXTENSION: sybase_ct
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: oci8
PRIMARY MAINTAINER: Antony Dovgal <tony2001@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: odbc
PRIMARY MAINTAINER: Daniel R. Kalowsky <kalowsky@php.net>
MAINTENANCE: Maintained
STATUS: Working
COMMENT: Working
-------------------------------------------------------------------------------
EXTENSION: oracle
MAINTENANCE: Orphaned
STATUS: Working
COMMENT: Using the new OCI8 driver is encouraged where possible.
-------------------------------------------------------------------------------
== XML extensions ==
-------------------------------------------------------------------------------
EXTENSION: dom
PRIMARY MAINTAINER: Christian Stocker <chregu@php.net>, Rob Richards <rrichards@php.net>, Marcus Boerger <helly@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 5.0
-------------------------------------------------------------------------------
EXTENSION: simplexml
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 5.0
-------------------------------------------------------------------------------
EXTENSION: wddx
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: xml
PRIMARY MAINTAINER: Thies C. Arntzen <thies@thieso.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: xmlrpc
PRIMARY MAINTAINER: Dan Libby
MAINTENANCE: UNKNOWN
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: xsl
PRIMARY MAINTAINER: Christian Stocker <chregu@php.net>, Rob Richards <rrichards@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 5.0
-------------------------------------------------------------------------------
== Other extensions ==
-------------------------------------------------------------------------------
EXTENSION: bcmath
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: bz2
PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
MAINTENANCE: Odd Fixes
STATUS: Working
SINCE: 4.0.3
-------------------------------------------------------------------------------
EXTENSION: dio
MAINTENANCE: Orphaned
STATUS: Working
SINCE: 4.0.6
-------------------------------------------------------------------------------
EXTENSION: calendar
PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
MAINTENANCE: Odd Fixes
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: com_dotnet
PRIMARY MAINTAINER: Wez Furlong <wez@php.net>
MAINTENANCE: Maintained
STATUS: Windows
SINCE: 5.0
-------------------------------------------------------------------------------
EXTENSION: cpdf
PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: ctype
PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: curl
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: exif
PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.2
-------------------------------------------------------------------------------
EXTENSION: fdf
PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
MAINTENANCE: Maintained
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: ftp
PRIMARY MAINTAINER: Stefan Esser (sesser@php.net)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: gd
PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: gettext
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: gmp
MAINTENANCE: Unknown
STATUS: Unknown
SINCE: 4.0.4
-------------------------------------------------------------------------------
EXTENSION: iconv
PRIMARY MAINTAINER: Moriyoshi Koizumi <moriyoshi@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: imap
PRIMARY MAINTAINER: Chuck Hagenbuch <chuck@horde.org>
MAINTENANCE: Odd Fixes
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: ldap
PRIMARY MAINTAINER: Stig Venaas <venaas@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: mbstring
PRIMARY MAINTAINER: Rui Hirokawa <hirokawa@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: mcrypt
PRIMARY MAINTAINER: Derick Rethans <derick@derickrethans.nl>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: mhash
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: msession
PRIMARY MAINTAINER Mark L. Woodward mlwmohawk@mohawksoft.com
MAINTENANCE: Maintained
STATUS: Working/Experimental
COMMENT: Tested on Linux, should work on other UNIX platforms. Backend server code can compile under Windows.
-------------------------------------------------------------------------------
EXTENSION: openssl
PRIMARY MAINTAINER: Wez Furlong <wez@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 4.0.4
-------------------------------------------------------------------------------
EXTENSION: pcre
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: pdf
PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: pfpro
PRIMARY MAINTAINER: David Croft <david@infotrek.co.uk>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: posix
PRIMARY MAINTAINER: Kristian Köhntopp <kris@koehntopp.de>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: pspell
PRIMARY MAINTAINER: Vlad Krupin <phpdevel@echospace.com>
MAINTENANCE: Unknown
STATUS: Unknown
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: readline
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: recode
PRIMARY MAINTAINER: Kristian Köhntopp <kris@koehntopp.de>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: session
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: shmop
PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 4.0.3
-------------------------------------------------------------------------------
EXTENSION: snmp
PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
MAINTENANCE: Odd Fixes
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: sockets
PRIMARY MAINTAINER: Chris Vandomelen <chrisv@b0rked.dhs.org>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: sysvmsg
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: sysvsem
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: sysvshm
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: yaz
PRIMARY MAINTAINER: Adam Dickmeiss <adam@indexdata.dk>
MAINTENANCE: Maintained
STATUS: Unknown
SINCE: 4.0.1
-------------------------------------------------------------------------------
EXTENSION: yp
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: zlib
PRIMARY MAINTAINER: Stefan Roehrich <sr@linux.de>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
+422
View File
@@ -0,0 +1,422 @@
Installation Instructions for PHP 5
-----------------------------------
STOP!
Before going any further, please remember you are going to find more
up to date instructions in the online manual, located here:
http://www.php.net/manual/en/install.apache.php
For Apache 2, instructions and up-to-date information regarding it's
support status, is available here:
http://www.php.net/manual/en/install.apache2.php
It is strongly recommended that you read the manual page before going
further. However, for the impatient, here is a quick set of steps that
will build PHP as (first) a dynamic Apache module (DSO) for Apache 1.3.x
with MySQL support and then a static module. A more verbose explanation follows.
For installing PHP on other web servers, refer to one of the following
files:
sapi/aolserver/README
sapi/pi3web/README
sapi/servlet/README
sapi/thttpd/README
README.Zeus
Some notes:
1: Only install either the static module or the dynamic one. Do not
install both.
2: If you are recompiling PHP to add new extensions or upgrading
something like GD, remove the config.cache file before you re-run
configure.
3: If you are on Linux and have installed shared libraries, make
sure the location of these shared libraries are listed in your
/etc/ld.so.conf file. For example, if you have:
/usr/local/lib/mysql/libmysqlclient.so
Make sure /etc/ld.so.conf contains:
/usr/local/lib/mysql
Then run ldconfig.
If you want both PHP 3 and 4 modules in the same Apache server, check the
bottom of this file for instructions.
INSTALLATION WITH THE ZEUS WEB SERVER:
--Please see the 'README.Zeus' file included in this distribution
QUICK INSTALL (DSO)
For this to work your Apache httpd must have mod_so enabled.
Check using httpd -l. You should see something like:
Compiled-in modules:
http_core.c
mod_so.c
Chances are you will see a lot more modules than these two. That's ok,
as long as mod_so.c shows up you can proceed with the following steps:
$ gunzip -c php-4.x.y.tar.gz | tar xf -
$ cd php-4.x.y
$ ./configure --with-mysql --with-apxs
$ make
$ make install
If you get an error telling you that the apxs script could not be found,
look for it on your system and if you find it, provide the full path to it
as: --with-apxs=/path/to/apxs
Make sure you specify the version of apxs that is actually installed on
your system and NOT the one that is in the apache source tarball.
Next you must copy php.ini-dist to the appropriate place (normally
/usr/local/lib/php.ini) and edit it as necessary to set PHP options.
The only thing left to do is to edit your httpd.conf file and make sure the
PHP 4 mime type is there and uncommented. You need a line that looks like
this:
AddType application/x-httpd-php .php
Then restart your server (apachectl restart) and you should be able to
serve up PHP files now. Make a test file called test.php and put some
PHP tags in it. Like <?phpinfo()?>, for example.
QUICK INSTALL (Static)
$ gunzip -c apache_1.3.x.tar.gz | tar xf -
$ cd apache_1.3.x
$ ./configure
$ cd ..
$ gunzip -c php-4.x.y.tar.gz | tar xf -
$ cd php-4.x.y
$ ./configure --with-mysql --with-apache=../apache_1.3.x
$ make
$ make install
$ cd ../apache_1.3.x
$ ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a
(The above line is correct! Yes, we know libphp5.a does not exist at this
stage. It isn't supposed to. It will be created.)
$ make
(you should now have an httpd binary which you can copy to your Apache bin dir if
is is your first install then you need to "make install" as well)
$ cd ../php-4.x.y
$ cp php.ini-dist /usr/local/lib/php.ini
You can edit /usr/local/lib/php.ini file to set PHP options.
Edit your httpd.conf or srm.conf file and add:
AddType application/x-httpd-php .php
VERBOSE INSTALL
Chances are you are reading this because the quick install steps above
did not work for you. If this is the case, congratulations, you are
among the elite few that actually reads documentation. It really is
not a difficult install and once you have done it once you will fly
through it.
Installing PHP can be done in four simple steps:
1. Unpack your distribution file.
You will have downloaded a file named something like php-4.x.y.tar.gz.
Unzip this file with a command like: gunzip php-4.x.y.tar.gz
Next you have to untar it with: tar -xvf php-4.x.y.tar
This will create a php-4.x.y directory. cd into this new directory.
2a. Configure PHP (Dynamic Module) - Skip to 2b if you wish to build
a static module
You now have to choose the options you would like. There are quite
a few of them. To see a list, type: ./configure --help
The only options that you are likely to want to use are the ones in
the last section entitled, "--enable and --with options recognized:"
A popular choice is to build the Apache module version. In order to
build PHP as a dynamic module for Apache-1.3.x you have to first have
Apache installed. Assuming Apache is already installed, make sure
the shared object module is enabled. To check this, type: httpd -l
You should see something like:
Compiled-in modules:
http_core.c
mod_so.c
You will most likely have a lot more modules than what is shown here.
As long as mod_so.c shows up in the list, PHP should be happy.
Now, type: ./configure --with-mysql --with-apxs
If you get an error telling you that the apxs script could not be found,
look for it on your system and if you find it, provide the full path to it
as: --with-apxs=/path/to/apxs
Make sure you specify the version of apxs that is actually installed on
your system and NOT the one that is in the apache source tarball.
You might also want other flags on this configure line. --with-mysql
is just an example.
There are a few things that can go wrong during this configure step.
The most common is that you have asked for an option and that the
configure script can not find the files required to enable this
option in PHP. Chances are you can provide the full path to the
base directory under which the related files were installed. For
example, if you have installed the GD library in /opt/gd which means
that /opt/gd/include has your GD header files and /opt/gd/lib contains
your GD library files, you would use --with-gd=/opt/gd
Skip to step 3 for compilation and installation instructions.
2b. Configure PHP (Static Module) - Skip if you performed 2a
You now have to choose the options you would like. There are quite
a few of them. To see a list, type: ./configure --help
The only options that you are likely to want to use are the ones in
the last section entitled, "--enable and --with options recognized:"
A popular choice is to build the Apache module version. You need
to know where the source code directory for your Apache server is
located. Then use an option like: --with-apache=/usr/local/src/apache
if that is your Apache source code directory. If you only specify
--with-apache, then it will default to look for your Apache source
in /usr/local/etc/httpd.
NOTE: The directory you specify should be the top-level of the
unpacked Apache (or Stronghold) distribution. The configure program
will automatically look for httpd.h in different directories under that
location depending on which version of Apache, including Stronghold,
you are running.
For MySQL support, since newer versions of MySQL installs its various
components under /usr/local, this is the default. If you have
changed the location you can specify it with: --with-mysql=/opt/local
for example. Otherwise just use: --with-mysql
*NOTE* If you are using Apache 1.3b6 or later, you should run the
Apache Configure script at least once before compiling PHP. It
doesn't matter how you have Apache configured at this point.
Skip to step 3b at this point.
3. Compile and install the files. Simply type: make install
3a. Dynamic Module Installation
Nothing else is needed here. Proceed to step 4a.
3b. Static Module Installation
For the Apache module version this will copy the appropriate files
to the src/modules/php5 directory in your Apache distribution if
you are using Apache 1.3.x. If you are still running Apache 1.2.x
these files will be copied directly to the main src directory.
For Apache 1.3b6 and later, you can use the new APACI configuration
mechanism. To automatically build Apache with PHP support, use:
cd apache_1.3.x
./configure --prefix=/<path>/apache \
--activate-module=src/modules/php5/libphp5.a
make
make install
If you do not wish to use this new configuration tool, the old
install procedure (src/Configure) will work fine.
If you are using the old Apache ./Configure script, you will have to
edit the Apache src/Configuration file manually. If you do not have
this file, copy Configuration.tmpl to Configuration.
For Apache 1.3.x add:
AddModule modules/php5/libphp5.a
For Apache 1.3.x don't do anything else. Just add this line and then
run "./Configure" followed by "make".
For Apache 1.2.x add:
Module php5_module mod_php5.o
For Apache 1.2.x you will also have to look in the libphp5.module file,
which was copied to the src directory. The EXTRA_LIBS line in the Apache
Configuration file needs to be set to use the same libs as specified on
the LIBS line in libphp5.module. You also need to make sure to add
"-L." to the beginning of the EXTRA_LIBS line.
So, as an example, your EXTRA_LIBS line might look like:
EXTRA_LIBS=-L. -lphp5 -lgdbm -ldb -L/usr/local/mysql/lib -lmysqlclient
NOTE: You should not enclose the EXTRA_LIBS line in double-quotes, as it
is in the libphp5.module file.
Also, look at the RULE_WANTHSREGEX setting in the libphp5.module file
and set the WANTHSREGEX directive accordingly in your Configuration file.
This last step applies to versions of Apache prior to 1.3b3.
This is a bit of a hassle, but should serve as incentive to move to
Apache 1.3.x where this step has been eliminated.
Once you are satisfied with your Configuration settings, type: ./Configure
If you get errors, chances are that you forgot a library or made a typo
somewhere. Re-edit Configuration and try again. If it goes well,
type: make
Assuming it compiles without errors, proceed to step 4b.
4a. Setting up the server. (Dynamic Module)
The make install command in step 3 should have done most of your
work for you. It actually edits your httpd.conf file and tries to
enable the dynamic PHP module. To verify this, look for a line that
looks like this:
LoadModule php5_module libexec/libphp5.so
The actual path before the libphp5.so part might differ slightly. This
is likely fine. If you are paranoid you can examine the output from the
make install step to see where the libphp5.so file was actually put and
place the full path to this file on this LoadModule line.
If somewhere in your httpd.conf file you have a ClearModuleList line
then you also need this line:
AddModule mod_php5.c
And finally you need to tell Apache which file extension should trigger
PHP. You do this by creating a special mime type and associating it
with an extension. We suggest using:
AddType application/x-httpd-php .php
You are however free to use any extension you wish, including .html.
Note! If a line has a # at the beginning, then it is commented out
and you need to remove the # for that line to take effect.
Finally you need to copy php.ini-dist to the appropriate place
(normally /usr/local/lib/php.ini) and edit if necessary.
Once you have made these changes you should be ready to restart your
server and try it out. Type: apachectl restart
4b. Setting up the server. (Static Module)
You should now have a new httpd binary. Shut down your existing server,
if you have one, and copy this new binary overtop of it. Perhaps make
a backup of your previous one first. Then edit your conf/httpd.conf file
and add the line:
AddType application/x-httpd-php .php
There is also an interesting feature which can be quite instructive and
helpful while debugging. That is the option of having colour syntax
highlighting. To enable this, add the following line:
AddType application/x-httpd-php-source .phps
Any file ending in .phps will now be displayed with full colour syntax
highlighting instead of being executed.
Note that on some older server setups, the AddType lines are in the
conf/srm.conf file instead of conf/httpd.conf.
Note! If a line has a # at the beginning, then it is commented out
and you need to remove the # for that line to take effect.
When you are finished making changes to your httpd.conf file, you need
to copy php.ini-dist to the appropriate place (normally
/usr/local/lib/php.ini) and edit if necessary. You can then
start up your server.
5. Testing it all worked
Create a test file named test.php in your web tree somewhere and
put some test PHP tags in it. <?phpinfo()?> is a good first test.
This tag tells PHP to do a braindump and tells you all sorts of things
about itself.
WHY DISABLING -fPIC WORKS ON LINUX
From: Martin v. Loewis <martin@loewis.home.cs.tu-berlin.de>
To: glibc-linux@ricardo.ecn.wfu.edu
Subject: Re: Shared library -shared vs. -fpic
[In reply to Kaz Kylheku <kaz@ashi.footprints.net>]
> PIC stands for Position-Independent Code.
Correct.
> Code isn't position-independent (or ``relocatable'') cannot be
> loaded at an arbitrary address;
Wrong.
> it requires some references to be patched at load time.
Correct.
> Shared libraries need to be relocatable because it's not known
> beforehand what address they will be loaded at
Correct, depending on the meaning of "relocatable". PIC code typically
does not contain relocations; that's why its position-independent.
> Just because you don't specify -fPIC doesn't mean that the compiler
> won't emit position-independent code; the option prevents it from
> emitting position-dependent code in situations where it otherwise
> would.
Correct. However, a non-trivial shared library typically won't be
position-independent unless explicitly compiled with
-fPIC. Linux/glibc indeed does not require a shared library to be
position-independent; instead, it will perform the relocations in the
binary, even if they refer to code pages. As a result, those relocated
pages won't be shared across processes, anymore.
Regards,
Martin
USING PHP 3 AND PHP 4 AS CONCURRENT APACHE MODULES
With some (newer) installations of Apache, it's possible to compile both
PHP 3 and PHP 4, and run them concurrently.
Note, it's only really wise to do this if you need to use the PHP 3 engine
to maintain backwards compatibility.
To enable it, configure PHP 3 and PHP 4 to use APXS (--with-apxs) and the
necessary link extensions (--enable-versioning). Otherwise, all standard
installations instructions apply. For example:
$ ./configure \
--with-apxs=/apache/bin/apxs \
--enable-versioning \
--with-mysql \
+68
View File
@@ -0,0 +1,68 @@
--------------------------------------------------------------------
The PHP License, Version 3.0
Copyright (c) 1999 - 2003 The PHP Group. All rights reserved.
--------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
modification, is permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
3. The name "PHP" must not be used to endorse or promote products
derived from this software without prior written permission. For
written permission, please contact group@php.net.
4. Products derived from this software may not be called "PHP", nor
may "PHP" appear in their name, without prior written permission
from group@php.net. You may indicate that your software works in
conjunction with PHP by saying "Foo for PHP" instead of calling
it "PHP Foo" or "phpfoo"
5. The PHP Group may publish revised and/or new versions of the
license from time to time. Each version will be given a
distinguishing version number.
Once covered code has been published under a particular version
of the license, you may always continue to use it under the terms
of that version. You may also choose to use such covered code
under the terms of any subsequent version of the license
published by the PHP Group. No one other than the PHP Group has
the right to modify the terms applicable to covered code created
under this License.
6. Redistributions of any form whatsoever must retain the following
acknowledgment:
"This product includes PHP, freely available from
<http://www.php.net/>".
THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND
ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PHP
DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------
This software consists of voluntary contributions made by many
individuals on behalf of the PHP Group.
The PHP Group can be contacted via Email at group@php.net.
For more information on the PHP Group and the PHP project,
please see <http://www.php.net>.
This product includes the Zend Engine, freely available at
<http://www.zend.com>.
+23
View File
@@ -0,0 +1,23 @@
#
# Zend
#
$(builddir)/zend_language_scanner.lo: $(builddir)/zend_language_parser.h
$(builddir)/zend_ini_scanner.lo: $(builddir)/zend_ini_parser.h
$(builddir)/zend_language_scanner.c: $(srcdir)/zend_language_scanner.l
$(LEX) -Pzend -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_language_scanner.l
$(builddir)/zend_language_parser.h: $(builddir)/zend_language_parser.c
$(builddir)/zend_language_parser.c: $(srcdir)/zend_language_parser.y
$(YACC) -p zend -v -d $(srcdir)/zend_language_parser.y -o $@
$(builddir)/zend_ini_parser.h: $(builddir)/zend_ini_parser.c
$(builddir)/zend_ini_parser.c: $(srcdir)/zend_ini_parser.y
$(YACC) -p ini_ -v -d $(srcdir)/zend_ini_parser.y -o $@
$(builddir)/zend_ini_scanner.c: $(srcdir)/zend_ini_scanner.l
$(LEX) -Pini_ -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_ini_scanner.l
$(builddir)/zend_indent.lo $(builddir)/zend_highlight.lo $(builddir)/zend_compile.lo: $(builddir)/zend_language_parser.h
+76
View File
@@ -0,0 +1,76 @@
mkinstalldirs = $(top_srcdir)/build/shtool mkdir -p
INSTALL = $(top_srcdir)/build/shtool install -c
INSTALL_DATA = $(INSTALL) -m 644
DEFS = -DPHP_ATOM_INC -I$(top_builddir)/include -I$(top_builddir)/main -I$(top_srcdir)
COMMON_FLAGS = $(DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CPPFLAGS) $(PHP_FRAMEWORKPATH)
all: $(all_targets)
@echo
@echo "Build complete."
@echo "(It is safe to ignore warnings about tempnam and tmpnam)."
@echo
build-modules: $(PHP_MODULES)
libphp5.la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
$(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
-@$(LIBTOOL) --silent --mode=install cp libphp5.la $(phptempdir)/libphp5.la >/dev/null 2>&1
libs/libphp5.bundle: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
$(CC) $(MH_BUNDLE_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o) $(PHP_FRAMEWORKS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ && cp $@ libs/libphp5.so
install: $(all_targets) $(install_targets)
install-sapi: $(OVERALL_TARGET)
@echo "Installing PHP SAPI module: $(PHP_SAPI)"
-@$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
-@if test ! -r $(phptempdir)/libphp5.$(SHLIB_SUFFIX_NAME); then \
for i in 0.0.0 0.0 0; do \
if test -r $(phptempdir)/libphp5.$(SHLIB_SUFFIX_NAME).$$i; then \
$(LN_S) $(phptempdir)/libphp5.$(SHLIB_SUFFIX_NAME).$$i $(phptempdir)/libphp5.$(SHLIB_SUFFIX_NAME); \
break; \
fi; \
done; \
fi
@$(INSTALL_IT)
install-modules: build-modules
@test -d modules && \
$(mkinstalldirs) $(INSTALL_ROOT)$(EXTENSION_DIR)
@echo "Installing shared extensions: $(INSTALL_ROOT)$(EXTENSION_DIR)/"
@rm -f modules/*.la >/dev/null 2>&1
@$(INSTALL) modules/* $(INSTALL_ROOT)$(EXTENSION_DIR)
install-tester:
@echo "Installing regression tester: $(INSTALL_ROOT)$(PEAR_INSTALLDIR)/"
@$(mkinstalldirs) $(INSTALL_ROOT)$(PEAR_INSTALLDIR)
@$(INSTALL) -m 755 $(top_srcdir)/run-tests.php $(INSTALL_ROOT)$(PEAR_INSTALLDIR)
install-su: install-pear install-tester
test:
-@if test -x $(SAPI_CLI_PATH) && test ! -z $(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' $(top_srcdir)/run-tests.php $(TESTS); \
else \
echo "ERROR: Cannot run tests without CLI sapi."; \
fi
clean:
find . -name \*.lo -o -name \*.o | xargs rm -f
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
find . -name .libs -a -type d|xargs rm -rf
rm -f libphp5.la $(SAPI_CLI_PATH) $(OVERALL_TARGET) modules/* libs/*
distclean: clean
rm -f config.cache config.log config.status Makefile.objects Makefile.fragments libtool main/php_config.h stamp-h php5.spec sapi/apache/libphp5.module buildmk.stamp
egrep define'.*include/php' configure|sed 's/.*>//'|xargs rm -f
find . -name Makefile | xargs rm -f
.PHONY: all clean install distclean test
.NOEXPORT:
+499
View File
@@ -0,0 +1,499 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2004, PHP 5 Release Candidate 3
- Moved the PDFLib extension to PECL. (Wez)
- Added support for dumping private/protected properties to var_dump().
(Andrey)
- Added count() support for COM arrays. (Wez)
- Changed user error handler mechanism to relay to built-in error handler if it
returns false. (Andrei)
- Changed class type hints for function parameters to not allow the passing of
NULL values. (Andi)
- Changed tidy_node to tidyNode and removed tidy_exception. (John)
- Fixed ip2long() to return FALSE if an IP address passed to this function
is not valid. (Derick)
- Fixed memory leak in memory manager. (Andi)
- Fixed problem with exceptions returning from include(). (Dmitry)
- Fixed bug #28311 (Transparency detection code is off by 1).
(Ilia, pikeman at pikeman dot sytes dot net)
- Fixed bug #28304 (Missing bounds check inside imagefilter()). (Ilia)
- Fixed bug #28300 (Userspace stream/filter names forced to lowercase). (Sara)
- Fixed bug #28287 (stream_*_register() not calling __autoload()). (Sara)
- Fixed bug #28267 (php_image_filter_contrast calls gdImageBrightness). (Ilia)
- Fixed bug #28239 (No results returned on SOAP call, no error given). (Dmitry)
- Fixed bug #28161 (COM: Array style properties could not be accessed). (Wez)
- Fixed bug #28125 (ArrayObject leaks when accessing elements). (Marcus)
- Fixed bug #28099 (ArrayObject doesn't implement ArrayAccess). (Marcus)
- Fixed bug #27929 (SPL: change visibility of ArrayIterator::__construct).
(Marcus)
- Fixed bug #27640 (memory leak of registered_zend_ini_directives). (Dmitry)
- Fixed bug #27063 (SPL: ArrayObject does not handle PPP correctly). (Marcus)
25 Apr 2004, PHP 5 Release Candidate 2
- Implementing an interface/abstract method with the wrong prototype is now
a fatal error. (Zeev)
- Reimplemented zend.ze1_compatibility_mode to have better PHP 4 compliance.
(Dmitry, Andi)
- Under CLI, fclose() on php://stdin, php://stdout and php://stderr will now
close the real stream. Please update your CLI scripts to use STDIN, STDOUT
and STDERR constants instead of fopen()/fclose(). (Wez)
- Moved yaz extension to PECL. (Wez)
- Added pty support to proc_open(). (Wez)
- Added possibility to check in which extension an internal class was defined
in using reflection API. (Marcus)
- Changed tidy error handling to no longer use exceptions and
renamed the "error_buf" property to errorBuffer. (John)
- Changed class and method names to use studlyCaps convention. (Marcus)
- Changed language parser to throw errors when a non-empty signature is used in
a destructor definition. (Marcus)
- Changed HTTP file uploads not to throw E_WARNINGs and E_NOTICEs. The error
value in the $_FILES global should be used for error handling. (Derick)
- Changed __construct() to always take precedence over old style constructor.
(Dmitry)
- Fixed handling of return values from storred procedures in mssql_execute()
with multiple result sets returned. (Frank)
- Fixed bug #28096 (stream_socket_accept() doesn't work with ssl). (Wez)
- Fixed bug #28007 (compile mssql extension with old versions of FreeTDS
fails). (Frank)
- Fixed bug #27997 (SPL: Crash with getInnerIterator()). (Marcus)
- Fixed bug #27974 (COM doesn't pass array parameters). (Wez)
- Fixed bug #27928 (sqlite incorrectly handles invalid filenames). (Ilia)
- Fixed bug $27923 (in some cases using foreach() to iterate over values
led to a false error message about the key being a reference). (Adam)
- Fixed bug #27865 (STDIN, STDOUT, STDERR are dup()d under CLI). (Wez)
- Fixed bug #27821 (xml_parse() segfaults when xml_set_object() is called from
class method). (Andi, Rob)
- Fixed bug #27742 (WDSL SOAP Parsing Schema bug). (Dmitry)
- Fixed bug #27722 (Segfault on schema without targetNamespace). (Dmitry)
- Fixed bug #27719 (mktime issues on and around DST changeover). (Rasmus)
- Fixed bug #27681 (soap extension fails without HAVE_TM_GMTOFF). (Dmitry)
- Fixed bug #27641 (Object cloning in ze1_compatibility_mode was reimplemented)
(Dmitry, Andi)
- Fixed bug #27628 (Simplify the process of making a POST request via stream
context). (Ilia)
- Fixed bug #27619 (filters not applied to pre-buffered stream data). (Sara)
- Fixed bug #27519 (Reflection_Function constructor crashes with non-existant
function's name). (Marcus)
- Fixed bug #27469 (serialize() objects of incomplete class). (Dmitry)
- Fixed bug #27457 (handling of numeric indexes in strtr()). (Dmitry)
- Fixed bug #27397 (debug_backtrace() not showing function arguments). (Zeev)
- Fixed bug #27283 (The last catch statement was sometimes skipped). (Andi)
- Fixed bug #26441 (When __set() returned a value it corrupted it). (Andi)
- Fixed bug #19749 (shouldn't mmap() files larger than memory_limit). (Wez)
18 March 2004, PHP 5 Release Candidate 1
- Fixed numerous bugs with the just-in-time auto-global initialization, that
could cause $_SERVER, $argv/$argc and other variables not to work properly.
(Zeev)
- Fixed data corruption with constant assignments to object properties. (Zeev)
- Changed __toString() to be called automatically only with print and echo
statements. (Andi)
- Replaced the exec_finished hook by the zend_post_deactive hook for
extensions. The new hook will be run after the symbol table and destructors
are run. (Derick)
- Fixed possible crash when internal get_method() is not defined. (Andi)
- Fixed calling methods using call_user_func() in conjunction with
the array("Class","Method") syntax to use the scope of the PHP user function.
(Dmitry)
- Fixed php-cgi to not ignore command-line switches when run in a web context.
This fixes our test cases allowing INI with GET sections to work. (Rasmus)
- Fixed getopt() so it works without $_SERVER. (Rasmus, bfrance)
- Added support for PHP 4 style object comparisons which is enabled in
ze1_compatiblity_mode. (Andi)
- Added support for PHP 4 style object conversion to long, double, and boolean
values which is enabled in ze1_compatibility_mode. (Andi, Stas)
- Allow object oriented extensions to overload comparison functions and other
operations. Solves problems using SimpleXML values. (Andi, Zeev)
- Fixed crash when accessing a class constant with a value which in turn is
also a constant. (Dmitry)
- Fixed object's truth value conversion. It is always true unless
ze1_compatibility_mode is on in which it behaves like in PHP 4. (Stas)
- Improved out of memory handling in new memory manager. (Stas)
- Fixed crash when an object references itself during destructor call. (Andi)
- Fixed crash in foreach() when iterating over object properties or a method's
return values. (Andi)
- Fixed crash when an exception is thrown in a destructor. Such exceptions are
now ignored as destruction happens out of context at no definite time. (Andi)
- Fixed crashes in exception handling. (Dmitry, Andi)
- Changed prototype checks so that they aren't done on constructors. (Andi)
- Changed prototype checks to output an E_STRICT message instead of
an E_COMPILE_ERROR. (Andi)
- Changed Iterator::has_more() to Iterator::valid(). (Marcus)
- Upgraded bundled oniguruma library to version 2.2.2. (Rui, Moriyoshi)
- Added mb_list_encoding() to return an array with all mbstring supported
encodings. (Derick)
- Added support for more ISO8601 datetime formats in strtotime(). (Moriyoshi)
. Timezone specifier (ex. "20040301T02:00:00+19:00")
. Week specifier (ex. "1997W021")
- Renamed php.ini option "zend2.implicit_clone" to
"zend.ze1_compatibility_mode" as it doesn't only affect implicit cloning.
(Andi, Zeev)
- Methods that override parent methods are now subject to prototype checking,
and have to be compatible with the method they're overriding - this check is
disabled in compatibility mode. (Andi, Zeev)
- Fixed crash in php_ini_scanned_files() when no additional INI files were
actually parsed. (Jon)
- Fixed bug in gdImageFilledRectangle in the bundled GD library, that required
x1 < x2 and y1 < y2 for coordinates. (Derick)
- Fixed crash with foreach() and temporary objects($obj->method()->a ...) where
method returns a non-referenced object. (Andi, Zeev)
- Fixed problem preventing startup errors from being displayed. (Marcus)
- Fixed start-up problem if both SPL and SimpleXML were enabled. The double
initialization of apache 1.3 was causing problems here. (Marcus, Derick)
- Fixed bug #27606 (Expression must be a modifiable lvalue compiler error).
(Derick)
- Fixed bug #27597 (pg_fetch_array not returning false). (Marcus)
- Fixed bug #27586 (ArrayObject::getIterator crashes with [] assignment).
(Marcus)
- Fixed bug #27537 (Objects pointing to each other segfaults). (Dmitry)
- Fixed bug #27535 (Problem with object freeing mechanism). (Dmitry)
- Fixed bug #27504 (Visibility bugs in call_user_function()). (Dmitry)
- Fixed bug #27338 (memory leak inside tsrm_virtual_cwd.c on win32). (Ilia)
- Fixed bug #27291 (get_browser matches browscap.ini patterns incorrectly).
(Jay)
- Fixed bug #27287 (wddx segfaults during deserialization). (Moriyoshi)
- Fixed bug #27263 (session extension crashes when unserializing referenced
values / objects). (Moriyoshi)
- Fixed bug #27237 (Working with simplexml crashes apache2). (Rob)
- Fixed bug #27227 (Mixed case class names causes Fatal Error in Constructor
call). (Marcus)
- Fixed bug #27125 (strval() doesn't work for objects with __toString()).
(Marcus)
- Fixed bug #27123 (Fix crash caused by bug in get_object_vars()). (Andi)
- Fixed bug #26677 (mbstring compile errors with IRIX compiler).
(K.Kosako <kosako at sofnec dot co dot jp>, Rui, Moriyoshi)
- Fixed bug #26206 (register_long_arrays breaks superglobals). (Zeev)
- Fixed bug #25724 (argv and argc not defined). (Zeev)
12 Feb 2004, PHP 5 Beta 4
- Changed exceptions so that they must now inherit from the built-in Exception
class. This allows for a general catch(Exception $e) statement to catch all
exceptions. (Andi, Zeev)
- Added SPL extension. (Marcus, Derick)
- Added checks for invalid characters in a cookie name and cookie data
into set[raw]cookie(). (Brian)
- Added support for ++ and += (and similar) to SimpleXML. (Andi, Zeev)
- Added infrastructure for ++ and += (and similar) to object overloading
modules. (Andi, Zeev)
- Added error message when trying to re-assign to $this variable. (Zeev, Andi)
- Added support for an interface to extend another interface. (Zeev)
- Added new pspell functions: (Brian)
. pspell_config_dict_dir()
. pspell_config_data_dir()
- Added new Interbase functions: (Ard)
. ibase_service_attach() and ibase_service_detach().
. ibase_backup() and ibase_restore().
. ibase_maintain_db(), ibase_db_info() and ibase_server_info().
- Added context option "http"/"request_fulluri" to send entire URI in request
which is required format for some proxies. (Sara)
- Added optional third parameter 'strict' to array_keys(). (Andrey)
- Added stream_lock() method to userspace streams interface. (Hartmut, Wez)
- Added xsltprocessor->registerPHPFunctions(). (Christian)
- Readded support for using classes before they are declared according to
the behavior in PHP 4. This won't work with classes who are using PHP 5
features such as interfaces. (Zeev, Andi)
- Completely overhauled SimpleXML extension. (Marcus, Rob, Sterling)
- Upgraded bundled SQLite library to version 2.8.11. (Ilia, Wez)
- Improved destructor implementation to always call destructors on clean
shutdown. An order of destruction is not guaranteed. (Zeev, Andi)
- Redesigned exception support. This fixes many bugs in the previous design
such as nested try's and problems with overloaded extensions. (Zeev, Andi)
- Redesigned clone by adding a clone keyword (clone $obj) and copying all
properties before __clone() is called. Also allows calling parent __clone
function by using parent::__clone(). (Zeev, Andi)
- Fixed interfaces to check for function return-by-reference equality when
inheriting and implementing interfaces. (Andi, Zeev)
- Fixed foreach() to respect property visibility. (Marcus)
- Fixed problem with parse error in include() file not stopping PHP's
execution. (Ilia)
- Fixed var_export() to show public, protected and private modifiers properly.
(Derick)
- Fixed problems with longlong values in mysqli. (Georg)
- Fixed class name case preserving of user defined classes. (Marcus)
- Fixed bug #27145 (Unmangle private/protected property names before printing
them inside error messages). (Ilia)
- Fixed bug #27103 (preg_split('//u') incorrectly splits UTF-8 strings into
octets). (Moriyoshi)
- Fixed bug #27042 (SPL: SeekableIterator seek() broken). (Marcus)
- Fixed bug #27008 (Every class method can be called as static). (Marcus)
- Fixed bug #26938 (exec() has problems reading long lines).
(Ilia, runekl[at]opoint[dot]com
- Fixed bug #26947 (ext/dom: Crash when using DomDocument::getElementById()).
(Christian)
- Fixed bug #26911 (crash in sqlite extension when fetching data from empty
queries). (Ilia)
- Fixed bug #26844 (ext/mime_magic: magic file validation broken). (Jani)
- Fixed bug #26819 (http_build_query() crashes on NULL output). (Ilia)
- Fixed bug #26817 (http_build_query() does not handle private & protected
object properties correctly). (Ilia)
- Fixed bug #26815 (foreach of (DOM) childnodes crashes when Xinclude is used).
(Rob)
- Fixed bug #26796 (SQLite causes crashes with other extensions *connect()
calls). (Marcus)
- Fixed bug #26762 (unserialize() produces lowercase classnames). (Marcus)
- Fixed bug #26743 (getElementsByTagName doesn't work properly). (Rob)
- Fixed bug #26736 (__autoload not invoked for parent classes). (Marcus)
- Fixed bug #26723 (domNode::appendChild() changes child node namespace). (Rob)
- Fixed bug #26697 (calling class_exists() on a nonexistent class in __autoload
results in segfault). (Marcus)
- Fixed bug #26696 (string index in a switch() crashes with multiple matches).
(Andi)
- Fixed bug #26695 (Reflection API does not recognize mixed-case class hints).
(Marcus)
- Fixed bug #26690 (make xsltProcessor->transformToUri use streams wrappers).
(Ilia)
- Fixed bug #26680 (Added version check in mysqli_report_index). (Georg)
- Fixed bug #26675 (Segfault on ArrayAccess use). (Marcus)
- Fixed bug #26640 (__autoload() not invoked by Reflection classes). (Jani)
- Fixed bug #26543 (call_user_func() broken for self, parent). (Stanislav)
- Fixed bug #26077 (memory leak when new() result is not assigned and no
constructor is defined). (Stanislav)
- Fixed bug #26065 (Crash when nesting classes). (Marcus)
- Fixed bug #25816 (disallow arrays in class constants). (Stanislav)
- Fixed bug #25329 (sqlite_create_function with method and reference to $this).
(Marcus)
- Fixed bug #25038 (call_user_func() issues a warning if function throws an
exception). (Marcus)
- Fixed bug #24608 (__set not triggered when overloading with array).
(Stanislav)
- Fixed bug #24243 (enabling browscap causes segfault). (Wez)
21 Dec 2003, PHP 5 Beta 3
- Bundled new tidy extension (John, Wez)
- Upgraded PCRE library to version 4.5. (Andrei)
- Dropped Windows 95 support. (Andi)
- Moved extensions to PECL:
. ext/crack (Jani, Derick)
. ext/db (Jani, Derick)
. ext/mcal (Jani, Derick)
. ext/qtdom (Jani, Derick)
. ext/notes (Wez)
- Added 'c' modifier to date() which returns the date in the ISO 8601 format.
(Derick, Manuzhai)
- Added an optional parameter to microtime() to get the time as float. (Andrey)
- Added MacRoman encoding support to htmlentities(). (Derick, Marcus Bointon)
- Added possibility to call PHP functions as XSLT-functions. (Christian)
- Added possibility to prevent PHP from registering variables when input filter
support is used. (Derick)
- Added iconv stream filter (convert.iconv.*). (Moriyoshi)
- Added EXSLT support in ext/xsl. (Christian)
- Added qdbm handler for dba extension. (mg at iceni dot pl, Marcus)
- Added new functions:
. dba_key_split() to split inifile keys in an array. (Marcus)
. time_nanosleep() signal safe sleep (Magnus, Ilia)
. headers_list(). (Sara)
. php_strip_whitespace(). strip whitespace & comments from a script. (Ilia)
. php_check_syntax(). check php script for parse errors. (Ilia)
. image_type_to_extension(). return extension based on image type. (Ilia)
. stream_socket_sendto() and stream_socket_recvfrom(). (Wez)
. iconv_mime_decode_headers(). (Moriyoshi)
. get_declared_interfaces(). (Andrey, Marcus)
. sqlite_fetch_column_types(). (Ilia)
- Added proxy support to http:// wrapper. (Sara)
- Added rename(), rmdir() and mkdir() support to userstreams. (Sara)
- Added rename(), rmdir() and mkdir() support to ftp:// wrapper. (Sara)
- Changed rename(), rmdir() and mkdir() to be routed via streams API. (Sara)
- Changed stat() and family to be routed via streams API. (Sara)
- Fixed include_once() / require_once() on Windows to honor case-insensitivity
of files. (Andi)
- Fixed get_declared_classes() to return only classes. (Andrey, Marcus)
- Fixed __autoload() to preserve case of the passed class name. (Andi)
- Fixed bug #26615 () (runekl at opoint dot com, Derick)
- Fixed bug #26591 ("__autoload threw an exception" during an uncaught).
(Marcus)
- Fixed bug #26534 (stream_get_meta_data() -> Access Violation). (Wez)
- Fixed bug #26528 (HTML entities are not being decoded by
xml_parse()/xml_parse_into_struct()). (Ilia)
- Fixed bug #26182 (Object properties created redundantly). (Andi)
- Fixed bug #26156 (REPLACE_ZVAL_VALUE works on uninit stack-based zvals).
(Moriyoshi)
- Fixed bug #26083 (Non-working write support in ext/dom). (Ilia)
- Fixed bug #26072 (--disable-libxml does not work). (Jani)
- Fixed bug #26001 (serialize crashes when accessing an overloaded object that
has no properties (NULL hashtable)). (Wez)
- Fixed bug #25664 (COM crashes when calling a Delphi implementations of
ITypeInfo). (Wez)
- Fixed bug #24837 (Incorrect behaviour of PPP using foreach). (Marcus)
- Fixed bug #24693 (Allow session.use_trans_sid to be enabled/disabled from
inside the script). (Ilia)
- Fixed bug #24394 (Serializing cross-referenced objects causes segfault).
(Moriyoshi)
30 Oct 2003, PHP 5 Beta 2
- Lots and lots of changes in the Zend Engine 2 since beta 1:
. Added Iterators
. Improved memory manager
. Added Reflection API
. Removed the not so working namespaces support
. Removed support for expressions within constant declarations.
. You can read about most changes in ZEND_CHANGES under the Zend directory.
- Improved the DBX extension: (Marc)
. Added DBX_RESULT_UNBUFFERED flag for dbx_query().
. Added dbx_fetch_row()
. Added SQLite support.
- Improved the Interbase extension: (Ard Biesheuvel)
. Added support for multiple databases into ibase_trans()
. Added support for CREATE DATABASE, SET TRANSACTION and EXECUTE PROCEDURE
statements into ibase_query()
. Added ability to bind PHP arrays to native Interbase arrays
. Added ibase_commit_ret() and ibase_rollback_ret()
. Added ibase_drop_db()
. Added ibase_gen_id()
. Added ibase_name_result()
. Added ibase_errcode()
. Added ibase_affected_rows() and ibase_num_params()
. Added ibase_param_info()
. Added ibase_wait_event()
. Added ibase_set_event_handler() and ibase_free_event_handler()
- Added new COM extension with integrated .Net support. (Wez)
- Added new functions:
. setrawcookie(). (Brian)
. pg_version(). (Marcus)
. dbase_get_header_info(). (Zak)
. snmp_read_mib(). (Jani)
. http_build_query(). (Sara)
. ftp_alloc(). (Sara)
. array_udiff(). (Andrey)
. array_udiff_assoc(). (Andrey)
. array_udiff_uassoc(). (Andrey)
. array_diff_uassoc(). (Andrey)
. convert_uuencode(). (Ilia)
. convert_uudecode(). (Ilia)
. substr_compare(). (Ilia)
. pcntl_wait(). (GeorgeS)
- Added "resume_pos" context option to "ftp://" wrapper. (Sara)
- Added optional parameter to OCIWriteTemporaryLob() to specify the type of LOB
(Patch by Novicky Marek <novicky@aarongroup.cz>). (Thies)
- Added reflection API. (Andrei, George, Timm)
- Changed length parameter in fgetcsv() to be optional. (Moriyoshi)
- Fixed IPv6 support in MacOSX Panther. (Dan, Marko)
- Fixed fgetcsv() to correctly handle international (non-ascii) characters.
(Moriyoshi)
- Fixed support for <![CDATA[]]> fields within XML documents in ext/xml.
(Sterling)
- Fixed visibility of __construct and __clone. (Marcus)
- Fixed bug #25756 (SimpleXML's validate_schema_file() broken). (Moriyoshi)
- Fixed bug #25581 (getimagesize() returns incorrect values on bitmap (os2)
files). (Marcus)
- Fixed bug #25494 (array_merge*() allows non-arrays as argument). (Jay)
- Fixed bug #24766 (strange result array from unpack()). (Moriyoshi)
- Fixed bug #24729 ($obj = new $className; causes crash when $className is not
set). (Marcus)
- Fixed bug #24565 (cannot read array elements received via $_REQUEST). (Zeev)
- Fixed bug #24445 (get_parent_class() returns different values).
(Sterling, Stanislav)
- Fixed bug #24403 (preg_replace() problem: Using $this when not in object
context). (Zeev)
- Fixed bug #24399 (PEAR DB isError crash [instanceof_function fault?]).
(Sterling, Marcus)
- Fixed bug #24396 (foreach ($k=>$v), the key $k is missing). (Zeev)
- Fixed bug #24279 (__get() crash when no value is returned). (Ilia)
- Fixed bug #22367 (undefined variable has a value). (Zeev)
- Fixed bug #19859 (allow fast_call_user_function to support __call).
(Stanislav)
- Fixed bug #17997 (Warning when switch() and reference are combined). (Zeev)
- Fixed bug #17988 (strtotime failed to parse postgresql timestamp). (Derick)
29 Jun 2003, PHP 5 Beta 1
- Removed the bundled MySQL client library. (Sterling)
- Switched to Zend Engine 2, which includes numerous engine level improvements.
A full list is available at http://www.php.net/zend-engine-2.php.
- Added SQLite (http://www.hwaci.com/sw/sqlite/) extension: (Wez, Marcus, Tal)
. Includes bundled SQLite library
. Enabled by default
- Completely Overhauled XML support:
. New simplexml extension. (Sterling)
. New DOM extension. (Rob, Chregu, Marcus)
. New XSL extension. (Chregu, Rob)
. Moved the old DOM-XML and XSLT extensions to PECL. (James, Sterling)
. ext/xml can now use either libxml2 or expat to parse XML. (Sterling)
. Removed bundled expat library. (Jani)
- New php.ini options:
. "session.hash_function" and "session.hash_bits_per_character". (Sascha)
. "mail.force_extra_paramaters". (Derick)
. "register_long_arrays". (Zeev)
- Improved the speed of internal functions that use callbacks by 40% due to a
new internal fast_call_user_function() function. (Sterling)
- Improved the streams support: (Wez)
. Improved performance of readfile(), fpassthru() and some internal streams
operations under Win32.
. stream_socket_client() - similar to fsockopen(), but more powerful.
. stream_socket_server() - Creates a server socket.
. stream_socket_accept() - Accept a client connection.
. stream_socket_get_name() - Get local or remote name of socket.
. stream_copy_to_stream()
. stream_get_line() - Reads either the specified number of bytes or until
the ending string is found. (Ilia)
. Added context property to userspace streams object. (Sara)
. Added generic crypto interface for streams.
(supports dynamic loading of OpenSSL)
. Added lightweight streaming input abstraction to the Zend Engine scanners
to provide uniform support for include()'ing data from PHP streams across
all platforms.
. Added 'string.base64' stream filter. (Moriyoshi)
. Renamed stream_register_wrapper() to stream_wrapper_register(). (Derick)
- Improved the GD extension: (Pierre-Alain Joye, Ilia)
. imagefilter() - Apply different filters to image.
(Only available with bundled GD library)
. Antialiased drawing support:
o imageantialias() - (de)active antialias
o imageline() and imagepolygon() antialias support
- Changed the length parameter in fgetss() to be optional. (Moriyoshi)
- Changed ini parser to allow for handling of quoted multi-line values. (Ilia)
- Changed get_extension_funcs() to return list of the built-in Zend Engine
functions if "zend" is specified as the module name. (Ilia)
- Changed array_search() to accept also objects as a needle. (Moriyoshi)
- Changed ext/mcrypt to require libmcrypt version 2.5.6 or greater. (Derick)
- Changed uniqid() parameters to be optional and allow any prefix length.
(Marcus)
- Added new iconv functions. (Moriyoshi)
. iconv_strlen()
. iconv_substr()
. iconv_strpos()
. iconv_strrpos()
. iconv_mime_decode()
. iconv_mime_encode()
- Added misc. new functions:
. ldap_sasl_bind(). (peter_c60@hotmail.com, Jani)
. imap_getacl(). (Dan, Holger Burbach)
. file_put_contents(). (Sterling)
. proc_nice() - Changes priority of the current process. (Ilia)
. pcntl_getpriority() and pcntl_setpriority(). (Ilia)
. idate(), date_sunrise() and date_sunset(). (Moshe Doron)
. strpbrk() - Searches a string for a list of characters. (Ilia)
. get_headers() - Returns headers sent by the server of the specified URL.
(Ilia)
. str_split() - Breaks down a string into an array of elements based on
length. (Ilia)
. array_walk_recursive(). (Ilia)
. array_combine(). (Andrey)
- Added optional parameter to get_browser() to make it return an array. (Jay)
- Added optional parameter to openssl_sign() to specify the hashing algorithm.
(scott@planetscott.ca, Derick)
- Added optional parameter to sha1(), sha1_file(), md5() and md5_file() which
makes them return the digest as binary data. (Michael Bretterklieber, Derick)
- Added optional parameter to mkdir() to make directory creation recursive.
(Ilia)
- Added optional parameter to file() which makes the result array not contain
the line endings and to skip empty lines. (Ilia)
- Added new range() functionality:
. Support for float modifier. (Ilia)
. Detection of numeric values inside strings passed as high & low. (Ilia)
. Proper handle the situations where high == low. (Ilia)
. Added an optional step parameter. (Jon)
- Added encoding detection feature for expat XML parser.
(Adam Dickmeiss, Moriyoshi)
- Added missing multibyte (unicode) support and numeric entity support to
html_entity_decode(). (Moriyoshi)
- Added IPv6 support to ext/sockets. (Sara)
- Added "ftp://" wrapper support to opendir(), stat() and unlink(). (Sara)
- Added context options 'method', 'header' and 'content' for "http://" fopen
wrapper. (Sara)
- Added input filter support. See README.input_filter for more info. (Rasmus)
- Added a replace count for str_[i]replace(), see bug #8218. (Sara)
- Fixed is_executable() to be available also on Windows. (Shane)
- Fixed dirname() and strip_tags() to be binary-safe. (Moriyoshi)
- Fixed bug #24098 (crash in pathinfo()). (Ilia)
- Fixed bug #21985 and #22064 (various mb_send_mail() issues). (Moriyoshi)
- Fixed bug #21600 (Assign by reference function call changes variable
contents). (Zeev)
+115
View File
@@ -0,0 +1,115 @@
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.
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. Also see
the note below about automatically updating NEWS in your commit message.
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.
If a line begins with #, it is taken to be a comment and will not appear
in the ChangeLog. If the line begins with @, it will be redirected to the
NEWS file. 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 # or @ at the beginning of _every_ such line. Every
entry in NEWS has to have a name after it, so if you did it with someone's
help, put both your names there. Your name WILL NOT be automatically put
at the end of the NEWS entry - so, please provide it yourself.
Example. Say you modified two files, datetime.c and string.c. In datetime.c
you added a new format option for 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:
(PHP date) Added new 'K' format modifier for printing out number of
days until New Year's Eve.
@- Added new 'K' format modifier that will output the number of days
@ until New Year's Eve. (Bob)
For string.c:
(php_trim) Fixed a memory leak resulting from improper use of zval_dtor().
# Man, that thing was leaking all over the place!
@- Fixed memory leak in trim(). (Bob)
The lines above marked with @ will go into NEWS file automagically, and the
# lines will be omitted from the ChangeLog. Alternatively, you might want
to modify NEWS file directly and not use the @ lines.
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 pgsql notice handler double free crash bug. Bug #14016
@ Fixed pgsql notice handler double free crash bug. Bug #14016
If you don't see your messages in ChangeLog and NEWS right away, don't worry!
These files are updated once a day, so your stuff will not show up until
somewhat later. Don't go adding stuff to NEWS by hand if you already put @
lines in the commit message.
You can use LXR (http://lxr.php.net/) and Bonsai (http://bonsai.php.net/)
to look at PHP CVS repository in various ways.
To receive daily updates to ChangeLog and NEWS, send an empty message to
php-cvs-daily-subscribe@lists.php.net.
Happy hacking,
PHP Team
+39
View File
@@ -0,0 +1,39 @@
Between PHP 4.0.6 and 4.1.0, the Zend module struct changed in a way
that broke both source and binary compatibility. If you are
maintaining a third party extension, here's how to update it:
If this was your old module entry:
zend_module_entry foo_module_entry = {
"foo", /* extension name */
foo_functions, /* extension function list */
NULL, /* extension-wide startup function */
NULL, /* extension-wide shutdown function */
PHP_RINIT(foo), /* per-request startup function */
PHP_RSHUTDOWN(foo), /* per-request shutdown function */
PHP_MINFO(foo), /* information function */
STANDARD_MODULE_PROPERTIES
};
Here's how it should look if you want your code to build with PHP
4.1.0 and up:
zend_module_entry foo_module_entry = {
#if ZEND_MODULE_API_NO >= 20010901
STANDARD_MODULE_HEADER,
#endif
"foo", /* extension name */
foo_functions, /* extension function list */
NULL, /* extension-wide startup function */
NULL, /* extension-wide shutdown function */
PHP_RINIT(foo), /* per-request startup function */
PHP_RSHUTDOWN(foo), /* per-request shutdown function */
PHP_MINFO(foo), /* information function */
#if ZEND_MODULE_API_NO >= 20010901
FOO_VERSION, /* extension version number (string) */
#endif
STANDARD_MODULE_PROPERTIES
};
If you don't care about source compatibility with earlier PHP releases
than 4.1.0, you can drop the #if/#endif lines.
+194
View File
@@ -0,0 +1,194 @@
(NOTE: you may also want to take a look at the pear package
PECL_Gen, a PHP-only alternative for this script that
supports way more extension writing tasks and is
supposed to replace ext_skel completely in the long run ...)
WHAT IT IS
It's a tool for automatically creating the basic framework for a PHP module
and writing C code handling arguments passed to your functions from a simple
configuration file. See an example at the end of this file.
HOW TO USE IT
Very simple. First, change to the ext/ directory of the PHP 4 sources. If
you just need the basic framework and will be writing all the code in your
functions yourself, you can now do
./ext_skel --extname=module_name
and everything you need is placed in directory module_name.
[ Note that GNU awk is likely required for this script to work. Debian
systems seem to default to using mawk, so you may need to change the
#! line in skeleton/create_stubs and the cat $proto | awk line in
ext_skel to use gawk explicitly. ]
If you don't need to test the existence of any external header files,
libraries or functions in them, the module is already almost ready to be
compiled in PHP. Just remove 3 comments in your_module_name/config.m4,
change back up to PHP sources top directory, and do
./buildconf; ./configure --enable-module_name; make
But if you already have planned the overall scheme of your module, what
functions it will contain, their return types and the arguments they take
(a very good idea) and don't want to bother yourself with creating function
definitions and handling arguments passed yourself, it's time to create a
function definitions file, which you will give as an argument to ext_skel
with option
--proto=filename.
FORMAT OF FUNCTION DEFINITIONS FILE
All the definitions must be on one line. In it's simplest form, it's just
the function name, e.g.
my_function
but then you'll be left with an almost empty function body without any
argument handling.
Arguments are given in parenthesis after the function name, and are of
the form 'argument_type argument_name'. Arguments are separated from each
other with a comma and optional space. Argument_type can be one of int,
bool, double, float, string, array, object or mixed.
An optional argument is separated from the previous by an optional space,
then '[' and of course comma and optional space, like all the other
arguments. You should close a row of optional arguments with same amount of
']'s as there where '['s. Currently, it does not harm if you forget to do it
or there is a wrong amount of ']'s, but this may change in the future.
An additional short description may be added after the parameters.
If present it will be filled into the 'proto' header comments in the stubs
code and the <refpurpose> tag in the XML documentation.
An example:
my_function(int arg1, int arg2 [, int arg3 [, int arg4]]) this is my 1st
Arguments arg3 and arg4 are optional.
If possible, the function definition should also contain it's return type
in front of the definition. It's not actually used for any C code generating
purposes but PHP in-source documentation instead, and as such, very useful.
It can be any of int, double, string, bool, array, object, resource, mixed
or void.
The file must contain nothing else but function definitions, no comments or
empty lines.
OTHER OPTIONS
--no-help
By default, ext_skel creates both comments in the source code and a test
function to help first time module writers to get started and testing
configuring and compiling their module. This option turns off all such things
which may just annoy experienced PHP module coders. Especially useful with
--stubs=file
which will leave out also all module specific stuff and write just function
stubs with function value declarations and passed argument handling, and
function entries and definitions at the end of the file, for copying and
pasting into an already existing module.
--assign-params
--string-lens
By default, function proto 'void foo(string bar)' creates the following:
...
zval **bar;
... (zend_get_parameters_ex() called in the middle...)
convert_to_string_ex(bar);
Specifying both of these options changes the generated code to:
...
zval **bar_arg;
int bar_len;
char *bar = NULL;
... (zend_get_parameters_ex() called in the middle...)
convert_to_string_ex(bar_arg);
bar = Z_STRVAL_PP(bar_arg);
bar_len = Z_STRLEN_PP(bar_arg);
You shouldn't have to ask what happens if you leave --string-lens out. If you
have to, it's questionable whether you should be reading this document.
--with-xml[=file]
Creates the basics for phpdoc .xml file.
--full-xml
Not implemented yet. When or if there will ever be created a framework for
self-contained extensions to use phpdoc system for their documentation, this
option enables it on the created xml file.
CURRENT LIMITATIONS, BUGS AND OTHER ODDITIES
Only arguments of types int, bool, double, float, string and array are
handled. For other types you must write the code yourself. And for type
mixed, it wouldn't even be possible to write anything, because only you
know what to expect.
It can't handle correctly, and probably never will, variable list of
of arguments. (void foo(int bar [, ...])
Don't trust the generated code too much. It tries to be useful in most of
the situations you might encounter, but automatic code generation will never
beat a programmer who knows the real situation at hand. ext_skel is generally
best suited for quickly generating a wrapper for c-library functions you
might want to have available in PHP too.
This program doesn't have a --help option. It has --no-help instead.
EXAMPLE
The following _one_ line
bool my_drawtext(resource image, string text, resource font, int x, int y [, int color])
will create this function definition for you (note that there are a few
question marks to be replaced by you, and you must of course add your own
value definitions too):
/* {{{ proto bool my_drawtext(resource image, string text, resource font, int x, int y[, int color])
*/
PHP_FUNCTION(my_drawtext)
{
zval **image, **text, **font, **x, **y, **color;
int argc;
int image_id = -1;
int font_id = -1;
argc = ZEND_NUM_ARGS();
if (argc < 5 || argc > 6 || zend_get_parameters_ex(argc, &image, &text, &font, &x, &y, &color) == FAILURE) {
WRONG_PARAM_COUNT;
}
ZEND_FETCH_RESOURCE(???, ???, image, image_id, "???", ???_rsrc_id);
ZEND_FETCH_RESOURCE(???, ???, font, font_id, "???", ???_rsrc_id);
switch (argc) {
case 6:
convert_to_long_ex(color);
/* Fall-through. */
case 5:
convert_to_long_ex(y);
convert_to_long_ex(x);
/* font: fetching resources already handled. */
convert_to_string_ex(text);
/* image: fetching resources already handled. */
break;
default:
WRONG_PARAM_COUNT;
}
php_error(E_WARNING, "my_drawtext: not yet implemented");
}
/* }}} */
+127
View File
@@ -0,0 +1,127 @@
New parameter parsing functions
===============================
It should be easier to parse input parameters to an extension function.
Hence, borrowing from Python's example, there are now a set of functions
that given the string of type specifiers, can parse the input parameters
and store the results in the user specified variables. This avoids most
of the IS_* checks and convert_to_* conversions. The functions also
check for the appropriate number of parameters, and try to output
meaningful error messages.
Prototypes
----------
/* Implemented. */
int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...);
int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...);
The zend_parse_parameters() function takes the number of parameters
passed to the extension function, the type specifier string, and the
list of pointers to variables to store the results in. The _ex() version
also takes 'flags' argument -- current only ZEND_PARSE_PARAMS_QUIET can
be used as 'flags' to specify that the function should operate quietly
and not output any error messages.
Both functions return SUCCESS or FAILURE depending on the result.
The auto-conversions are performed as necessary. Arrays, objects, and
resources cannot be auto-converted.
Type specifiers
---------------
l - long
d - double
s - string (with possible null bytes) and its length
b - boolean, stored in zend_bool
r - resource (stored in zval)
a - array
o - object (of any type)
O - object (of specific type, specified by class entry)
z - the actual zval
The following characters also have a meaning in the specifier string:
| - indicates that the remaining parameters are optional, they
should be initialized to default values by the extension since they
will not be touched by the parsing function if they are not
passed to it.
/ - use SEPARATE_ZVAL_IF_NOT_REF() on the parameter it follows
! - the parameter it follows can be of specified type or NULL (only applies
to 'a', 'o', 'O', 'r', and 'z'). If NULL is passed, the results
pointer is set to NULL as well.
Examples
--------
/* Gets a long, a string and its length, and a zval */
long l;
char *s;
int s_len;
zval *param;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lsz",
&l, &s, &s_len, &param) == FAILURE) {
return;
}
/* Gets an object of class specified by my_ce, and an optional double. */
zval *obj;
double d = 0.5;
zend_class_entry my_ce;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|d",
&obj, my_ce, &d) == FAILURE) {
return;
}
/* Gets an object or null, and an array.
If null is passed for object, obj will be set to NULL. */
zval *obj;
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o!a",
&obj, &arr) == FAILURE) {
return;
}
/* Gets a separated array which can also be null. */
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/!",
&arr) == FAILURE) {
return;
}
/* Get only the first three parameters (useful for varargs functions). */
zval *z;
zend_bool b;
zval *r;
if (zend_parse_parameters(3 TSRMLS_CC, "zbr!",
&z, &b, &r) == FAILURE) {
return;
}
/* Get either a set of 3 longs or a string. */
long l1, l2, l3;
char *s;
/*
* The function expects a pointer to a integer in this case, not a long
* or any other type. If you specify a type which is larger
* than a 'int', the upper bits might not be initialized
* properly, leading to random crashes on platforms like
* Tru64 or Linux/Alpha.
*/
int length;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
"lll", &l1, &l2, &l3) == SUCCESS) {
/* manipulate longs */
} else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
"s", &s, &length) == SUCCESS) {
/* manipulate string */
} else {
/* output error */
return;
}
+107
View File
@@ -0,0 +1,107 @@
1. strrpos() and strripos() now use the entire string as a needle. Be aware
that the existing scripts may no longer work as you expect.
EX :
<?php
var_dump(strrpos("ABCDEF","DEF"));
var_dump(strrpos("ABCDEF","DAF"));
?>
Will give you different results. The former returns 3 while the latter
returns false rather than the position of the last occurrence of 'D'.
The same applies to strripos().
2. Illegal use of string offsets causes E_ERROR instead of E_WARNING.
EX :
<?php
$a = "foo";
unset($a[0][1][2]);
?>
Fatal error: Cannot use string offset as an array in ... on line 1
3. array_merge() was changed to accept only arrays. If a non-array variable is
passed, a E_WARNING will be thrown for every such parameter. Be careful
because your code may start emitting E_WARNING out of the blue.
4. Be careful when porting from ext/mysql to ext/mysqli. The following
functions return NULL when no more data is available in the result set
(ext/mysql's functions return FALSE).
- mysqli_fetch_row()
- mysqli_fetch_array()
- mysqli_fetch_assoc()
5. PATH_TRANSLATED server variable is no longer set implicitly under
Apache2 SAPI in contrast to the situation in PHP 4, where it is set to the
same value as the SCRIPT_FILENAME server variable when it is not populated
by Apache. This change was made to comply with the CGI specification.
Please refer to bug #23610 for further information.
6. Starting PHP 5.0.0 the T_ML_CONSTANT constant is no longer defined by the
ext/tokenizer extension. If error_reporting is set to E_ALL notices will
be produced. Instead of T_ML_CONSTANT for /* */ the T_COMMENT constant
is used, thus both // and /* */ are resolved as the T_COMMENT constant.
However the PHPDoc style comments /** */ ,which starting PHP 5 are parsed
by PHP, are recongnized as T_DOC_COMMENT.
7. $_SERVER should be populated with argc and argv if variables_order
includes "S". If you have specifically configured your system to not
create $_SERVER, then of course it shouldn't be there. The change was to
always make argc and argv available in the CLI version regardless of the
variables_order setting. As in, the CLI version will now always populate
the global $argc and $argv variables.
8. In some cases classes must be declared before used. It only happens only
if some of the new features of PHP 5 are used. Otherwise the behaviour is
the old.
Example 1 (works with no errors):
<?php
$a = new a();
class a {
}
?>
Example 2 (throws an error):
<?php
$a = new a();
interface b{
}
class a implements b {
}
?>
Output (example 2) :
Fatal error: Class 'a' not found in /tmp/cl.php on line 2
9. get_class() starting PHP 5 returns the name of the class as it was
declared which may lead to problems in older scripts that rely on
the previous behaviour - the class name is lowercased.
Example :
<?php
class FooBar {
}
$a = new FooBar();
var_dump(get_class($a));
?>
Output (PHP 4):
string(6) "foobar"
Output (PHP 5):
string(6) "FooBar"
----------------------------------------------------------------------
Example code that will break :
//....
function someMethod($p) {
if (get_class($p) != 'helpingclass') {
return FALSE;
}
//...
}
//...
Possible solution is to search for get_class() in all your scripts and
use strtolower().
+57
View File
@@ -0,0 +1,57 @@
QNX4 Installation Notes
-----------------------
NOTE: General installation instructions are in the INSTALL file
1. To compile and test PHP3 you have to grab, compile and install:
- GNU dbm library or another db library;
- GNU bison (1.25 or later; 1.25 tested);
- GNU flex (any version supporting -o and -P options; 2.5.4 tested);
- GNU diffutils (any version supporting -w option; 2.7 tested);
2. To use CVS version you may need also:
- GNU CVS (1.9 tested);
- GNU autoconf (2.12 tested);
- GNU m4 (1.3 or later preferable; 1.4 tested);
3. To run configure define -lunix in command line:
LDFLAGS=-lunix ./configure
4. To use Sybase SQL Anywhere define ODBC_QNX and CUSTOM_ODBC_LIBS in
command line and run configure with --with-custom-odbc:
CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50
If you have SQL Anywhere version 5.5.00, then you have to add
CFLAGS=-DSQLANY_BUG
to workaround its SQLFreeEnv() bug. Other versions has not been tested,
so try without this flag first.
5. To build the Apache module, you may have to hardcode an include path for
alloc.h in your Apache base directory:
- APACHE_DIRECTORY/src/httpd.h:
change #include "alloc.h"
to #include "APACHE_DIRECTORY/src/alloc.h"
Unless you want to use system regex library, you have to hardcode also
a path to regex.h:
- APACHE_DIRECTORY/src/conf.h:
change #include <regex.h>
to #include "APACHE_DIRECTORY/src/regex/regex.h"
I don't know so far why this required for QNX, may be it is Watcom
compiler problem.
If you building Apache module with SQL Anywhere support, you'll get
symbol conflict with BOOL. It is defined in Apache (httpd.h) and in
SQL Anywhere (odbc.h). This has nothing to do with PHP, so you have to
fix it yourself someway.
6. With above precautions, it should compile as is and pass regression
tests completely:
make
make check
make install
Don't bother me unless you really sure you made that all but it
still doesn't work.
June 28, 1998
Igor Kovalenko -- owl@infomarket.ru
+155
View File
@@ -0,0 +1,155 @@
$Id$
=============================================================================
HOW TO CREATE A SELF-CONTAINED PHP EXTENSION
A self-contained extension can be distributed independently of
the PHP source. To create such an extension, two things are
required:
- Configuration file (config.m4)
- Source code for your module
We will describe now how to create these and how to put things
together.
PREPARING YOUR SYSTEM
While the result will run on any system, a developer's setup needs these
tools:
GNU autoconf
GNU automake
GNU libtool
GNU m4
All of these are available from
ftp://ftp.gnu.org/pub/gnu/
CONVERTING AN EXISTING EXTENSION
Just to show you how easy it is to create a self-contained
extension, we will convert an embedded extension into a
self-contained one. Install PHP and execute the following
commands.
$ mkdir /tmp/newext
$ cd /tmp/newext
You now have an empty directory. We will copy the files from
the mysql extension:
$ cp -rp php-4.0.X/ext/mysql/* .
It is time to finish the module. Run:
$ phpize
You can now ship the contents of the directory - the extension
can live completely on its own.
The user instructions boil down to
$ ./configure \
[--with-php-config=/path/to/php-config] \
[--with-mysql=MYSQL-DIR]
$ make install
The MySQL module will either use the embedded MySQL client
library or the MySQL installation in MYSQL-DIR.
DEFINING THE NEW EXTENSION
Our demo extension is called "foobar".
It consists of two source files "foo.c" and "bar.c"
(and any arbitrary amount of header files, but that is not
important here).
The demo extension does not reference any external
libraries (that is important, because the user does not
need to specify anything).
LTLIBRARY_SOURCES specifies the names of the sources files. You can
name an arbitrary number of source files here.
CREATING THE M4 CONFIGURATION FILE
The m4 configuration can perform additional checks. For a
self-contained extension, you do not need more than a few
macro calls.
------------------------------------------------------------------------------
PHP_ARG_ENABLE(foobar,whether to enable foobar,
[ --enable-foobar Enable foobar])
if test "$PHP_FOOBAR" != "no"; then
PHP_NEW_EXTENSION(foobar, foo.c bar.c, $ext_shared)
fi
------------------------------------------------------------------------------
PHP_ARG_ENABLE will automatically set the correct variables, so
that the extension will be enabled by PHP_NEW_EXTENSION in shared mode.
The first argument of PHP_NEW_EXTENSION describes the name of the
extension. The second names the source-code files. The third passes
$ext_shared which is set by PHP_ARG_ENABLE/WITH to PHP_NEW_EXTENSION.
Please use always PHP_ARG_ENABLE or PHP_ARG_WITH. Even if you do not
plan to distribute your module with PHP, these facilities allow you
to integrate your module easily into the main PHP module framework.
CREATING SOURCE FILES
ext_skel can be of great help when creating the common code for all modules
in PHP for you and also writing basic function definitions and C code for
handling arguments passed to your functions. See README.EXT_SKEL for further
information.
As for the rest, you are currently alone here. There are a lot of existing
modules, use a simple module as a starting point and add your own code.
CREATING THE SELF-CONTAINED EXTENSION
Put config.m4 and the source files into one directory. Then, run phpize
(this is installed during make install by PHP 4.0).
For example, if you configured PHP with --prefix=/php, you would run
$ /php/bin/phpize
This will automatically copy the necessary build files and create
configure from your config.m4.
And that's it. You now have a self-contained extension.
INSTALLING A SELF-CONTAINED EXTENSION
An extension can be installed by running:
$ ./configure \
[--with-php-config=/path/to/php-config]
$ make install
ADDING SHARED MODULE SUPPORT TO A MODULE
In order to be useful, a self-contained extension must be loadable
as a shared module. I will explain now how you can add shared module
support to an existing module called foo.
1. In config.m4, use PHP_ARG_WITH/PHP_ARG_ENABLE. Then you will
automatically be able to use --with-foo=shared[,..] or
--enable-foo=shared[,..].
2. In config.m4, use PHP_NEW_EXTENSION(foo,.., $ext_shared) to enable
building the extension.
3. Add the following lines to your C source file:
#ifdef COMPILE_DL_FOO
ZEND_GET_MODULE(foo)
#endif
+379
View File
@@ -0,0 +1,379 @@
An Overview of the PHP Streams abstraction
==========================================
$Id$
WARNING: some prototypes in this file are out of date.
The information contained here is being integrated into
the PHP manual - stay tuned...
Please send comments to: Wez Furlong <wez@thebrainroom.com>
Why Streams?
============
You may have noticed a shed-load of issock parameters flying around the PHP
code; we don't want them - they are ugly and cumbersome and force you to
special case sockets and files every time you need to work with a "user-level"
PHP file pointer.
Streams take care of that and present the PHP extension coder with an ANSI
stdio-alike API that looks much nicer and can be extended to support non file
based data sources.
Using Streams
=============
Streams use a php_stream* parameter just as ANSI stdio (fread etc.) use a
FILE* parameter.
The main functions are:
PHPAPI size_t php_stream_read(php_stream * stream, char * buf, size_t count);
PHPAPI size_t php_stream_write(php_stream * stream, const char * buf, size_t
count);
PHPAPI size_t php_stream_printf(php_stream * stream TSRMLS_DC,
const char * fmt, ...);
PHPAPI int php_stream_eof(php_stream * stream);
PHPAPI int php_stream_getc(php_stream * stream);
PHPAPI char *php_stream_gets(php_stream * stream, char *buf, size_t maxlen);
PHPAPI int php_stream_close(php_stream * stream);
PHPAPI int php_stream_flush(php_stream * stream);
PHPAPI int php_stream_seek(php_stream * stream, off_t offset, int whence);
PHPAPI off_t php_stream_tell(php_stream * stream);
PHPAPI int php_stream_lock(php_stream * stream, int mode);
These (should) behave in the same way as the ANSI stdio functions with similar
names: fread, fwrite, fprintf, feof, fgetc, fgets, fclose, fflush, fseek, ftell, flock.
Opening Streams
===============
In most cases, you should use this API:
PHPAPI php_stream *php_stream_open_wrapper(char *path, char *mode,
int options, char **opened_path TSRMLS_DC);
Where:
path is the file or resource to open.
mode is the stdio compatible mode eg: "wb", "rb" etc.
options is a combination of the following values:
IGNORE_PATH (default) - don't use include path to search for the file
USE_PATH - use include path to search for the file
IGNORE_URL - do not use plugin wrappers
REPORT_ERRORS - show errors in a standard format if something
goes wrong.
STREAM_MUST_SEEK - If you really need to be able to seek the stream
and don't need to be able to write to the original
file/URL, use this option to arrange for the stream
to be copied (if needed) into a stream that can
be seek()ed.
opened_path is used to return the path of the actual file opened,
but if you used STREAM_MUST_SEEK, may not be valid. You are
responsible for efree()ing opened_path. opened_path may be (and usually
is) NULL.
If you need to open a specific stream, or convert standard resources into
streams there are a range of functions to do this defined in php_streams.h.
A brief list of the most commonly used functions:
PHPAPI php_stream *php_stream_fopen_from_file(FILE *file, const char *mode);
Convert a FILE * into a stream.
PHPAPI php_stream *php_stream_fopen_tmpfile(void);
Open a FILE * with tmpfile() and convert into a stream.
PHPAPI php_stream *php_stream_fopen_temporary_file(const char *dir,
const char *pfx, char **opened_path TSRMLS_DC);
Generate a temporary file name and open it.
There are some network enabled relatives in php_network.h:
PHPAPI php_stream *php_stream_sock_open_from_socket(int socket, int persistent);
Convert a socket into a stream.
PHPAPI php_stream *php_stream_sock_open_host(const char *host, unsigned short port,
int socktype, int timeout, int persistent);
Open a connection to a host and return a stream.
PHPAPI php_stream *php_stream_sock_open_unix(const char *path, int persistent,
struct timeval *timeout);
Open a UNIX domain socket.
Stream Utilities
================
If you need to copy some data from one stream to another, you will be please
to know that the streams API provides a standard way to do this:
PHPAPI size_t php_stream_copy_to_stream(php_stream *src,
php_stream *dest, size_t maxlen);
If you want to copy all remaining data from the src stream, pass
PHP_STREAM_COPY_ALL as the maxlen parameter, otherwise maxlen indicates the
number of bytes to copy.
This function will try to use mmap where available to make the copying more
efficient.
If you want to read the contents of a stream into an allocated memory buffer,
you should use:
PHPAPI size_t php_stream_copy_to_mem(php_stream *src, char **buf,
size_t maxlen, int persistent);
This function will set buf to the address of the buffer that it allocated,
which will be maxlen bytes in length, or will be the entire length of the
data remaining on the stream if you set maxlen to PHP_STREAM_COPY_ALL.
The buffer is allocated using pemalloc(); you need to call pefree() to
release the memory when you are done.
As with copy_to_stream, this function will try use mmap where it can.
If you have an existing stream and need to be able to seek() it, you
can use this function to copy the contents into a new stream that can
be seek()ed:
PHPAPI int php_stream_make_seekable(php_stream *origstream, php_stream **newstream);
It returns one of the following values:
#define PHP_STREAM_UNCHANGED 0 /* orig stream was seekable anyway */
#define PHP_STREAM_RELEASED 1 /* newstream should be used; origstream is no longer valid */
#define PHP_STREAM_FAILED 2 /* an error occurred while attempting conversion */
#define PHP_STREAM_CRITICAL 3 /* an error occurred; origstream is in an unknown state; you should close origstream */
make_seekable will always set newstream to be the stream that is valid
if the function succeeds.
When you have finished, remember to close the stream.
NOTE: If you only need to seek forward, there is no need to call this
function, as the php_stream_seek can emulate forward seeking when the
whence parameter is SEEK_CUR.
NOTE: Writing to the stream may not affect the original source, so it
only makes sense to use this for read-only use.
NOTE: If the origstream is network based, this function will block
until the whole contents have been downloaded.
NOTE: Never call this function with an origstream that is referenced
as a resource! It will close the origstream on success, and this
can lead to a crash when the resource is later used/released.
NOTE: If you are opening a stream and need it to be seekable, use the
STREAM_MUST_SEEK option to php_stream_open_wrapper();
PHPAPI int php_stream_supports_lock(php_stream * stream);
This function will return either 1 (success) or 0 (failure) indicating whether or
not a lock can be set on this stream. Typically you can only set locks on stdio streams.
Casting Streams
===============
What if your extension needs to access the FILE* of a user level file pointer?
You need to "cast" the stream into a FILE*, and this is how you do it:
FILE * fp;
php_stream * stream; /* already opened */
if (php_stream_cast(stream, PHP_STREAM_AS_STDIO, (void*)&fp, REPORT_ERRORS) == FAILURE) {
RETURN_FALSE;
}
The prototype is:
PHPAPI int php_stream_cast(php_stream * stream, int castas, void ** ret, int
show_err);
The show_err parameter, if non-zero, will cause the function to display an
appropriate error message of type E_WARNING if the cast fails.
castas can be one of the following values:
PHP_STREAM_AS_STDIO - a stdio FILE*
PHP_STREAM_AS_FD - a generic file descriptor
PHP_STREAM_AS_SOCKETD - a socket descriptor
If you ask a socket stream for a FILE*, the abstraction will use fdopen to
create it for you. Be warned that doing so may cause buffered data to be lost
if you mix ANSI stdio calls on the FILE* with php stream calls on the stream.
If your system has the fopencookie function, php streams can synthesize a
FILE* on top of any stream, which is useful for SSL sockets, memory based
streams, data base streams etc. etc.
In situations where this is not desirable, you should query the stream
to see if it naturally supports FILE *. You can use this code snippet
for this purpose:
if (php_stream_is(stream, PHP_STREAM_IS_STDIO)) {
/* can safely cast to FILE* with no adverse side effects */
}
You can use:
PHPAPI int php_stream_can_cast(php_stream * stream, int castas)
to find out if a stream can be cast, without actually performing the cast, so
to check if a stream is a socket you might use:
if (php_stream_can_cast(stream, PHP_STREAM_AS_SOCKETD) == SUCCESS) {
/* it can be a socket */
}
Please note the difference between php_stream_is and php_stream_can_cast;
stream_is tells you if the stream is a particular type of stream, whereas
can_cast tells you if the stream can be forced into the form you request.
The former doesn't change anything, while the later *might* change some
state in the stream.
Stream Internals
================
There are two main structures associated with a stream - the php_stream
itself, which holds some state information (and possibly a buffer) and a
php_stream_ops structure, which holds the "virtual method table" for the
underlying implementation.
The php_streams ops struct consists of pointers to methods that implement
read, write, close, flush, seek, gets and cast operations. Of these, an
implementation need only implement write, read, close and flush. The gets
method is intended to be used for streams if there is an underlying method
that can efficiently behave as fgets. The ops struct also contains a label
for the implementation that will be used when printing error messages - the
stdio implementation has a label of "STDIO" for example.
The idea is that a stream implementation defines a php_stream_ops struct, and
associates it with a php_stream using php_stream_alloc.
As an example, the php_stream_fopen() function looks like this:
PHPAPI php_stream * php_stream_fopen(const char * filename, const char * mode)
{
FILE * fp = fopen(filename, mode);
php_stream * ret;
if (fp) {
ret = php_stream_alloc(&php_stream_stdio_ops, fp, 0, 0, mode);
if (ret)
return ret;
fclose(fp);
}
return NULL;
}
php_stream_stdio_ops is a php_stream_ops structure that can be used to handle
FILE* based streams.
A socket based stream would use code similar to that above to create a stream
to be passed back to fopen_wrapper (or it's yet to be implemented successor).
The prototype for php_stream_alloc is this:
PHPAPI php_stream * php_stream_alloc(php_stream_ops * ops, void * abstract,
size_t bufsize, int persistent, const char * mode)
ops is a pointer to the implementation,
abstract holds implementation specific data that is relevant to this instance
of the stream,
bufsize is the size of the buffer to use - if 0, then buffering at the stream
level will be disabled (recommended for underlying sources that implement
their own buffering - such a FILE*),
persistent controls how the memory is to be allocated - persistently so that
it lasts across requests, or non-persistently so that it is freed at the end
of a request (it uses pemalloc),
mode is the stdio-like mode of operation - php streams places no real meaning
in the mode parameter, except that it checks for a 'w' in the string when
attempting to write (this may change).
The mode parameter is passed on to fdopen/fopencookie when the stream is cast
into a FILE*, so it should be compatible with the mode parameter of fopen().
Writing your own stream implementation
======================================
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
RULE #1: when writing your own streams: make sure you have configured PHP with
--enable-debug.
I've taken some great pains to hook into the Zend memory manager to help track
down allocation problems. It will also help you spot incorrect use of the
STREAMS_DC, STREAMS_CC and the semi-private STREAMS_REL_CC macros for function
definitions.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
RULE #2: Please use the stdio stream as a reference; it will help you
understand the semantics of the stream operations, and it will always
be more up to date than these docs :-)
First, you need to figure out what data you need to associate with the
php_stream. For example, you might need a pointer to some memory for memory
based streams, or if you were making a stream to read data from an RDBMS like
MySQL, you might want to store the connection and rowset handles.
The stream has a field called abstract that you can use to hold this data.
If you need to store more than a single field of data, define a structure to
hold it, allocate it (use pemalloc with the persistent flag set
appropriately), and use the abstract pointer to refer to it.
For structured state you might have this:
struct my_state {
MYSQL conn;
MYSQL_RES * result;
};
struct my_state * state = pemalloc(sizeof(struct my_state), persistent);
/* initialize the connection, and run a query, using the fields in state to
* hold the results */
state->result = mysql_use_result(&state->conn);
/* now allocate the stream itself */
stream = php_stream_alloc(&my_ops, state, 0, persistent, "r");
/* now stream->abstract == state */
Once you have that part figured out, you can write your implementation and
define the your own php_stream_ops struct (we called it my_ops in the above
example).
For example, for reading from this weird MySQL stream:
static size_t php_mysqlop_read(php_stream * stream, char * buf, size_t count)
{
struct my_state * state = (struct my_state*)stream->abstract;
if (buf == NULL && count == 0) {
/* in this special case, php_streams is asking if we have reached the
* end of file */
if (... at end of file ...)
return EOF;
else
return 0;
}
/* pull out some data from the stream and put it in buf */
... mysql_fetch_row(state->result) ...
/* we could do something strange, like format the data as XML here,
and place that in the buf, but that brings in some complexities,
such as coping with a buffer size too small to hold the data,
so I won't even go in to how to do that here */
}
Implement the other operations - remember that write, read, close and flush
are all mandatory. The rest are optional. Declare your stream ops struct:
php_stream_ops my_ops = {
php_mysqlop_write, php_mysqlop_read, php_mysqlop_close,
php_mysqlop_flush, NULL, NULL, NULL,
"Strange MySQL example"
}
Thats it!
Take a look at the STDIO implementation in streams.c for more information
about how these operations work.
The main thing to remember is that in your close operation you need to release
and free the resources you allocated for the abstract field. In the case of
the example above, you need to use mysql_free_result on the rowset, close the
connection and then use pefree to dispose of the struct you allocated.
You may read the stream->persistent field to determine if your struct was
allocated in persistent mode or not.
vim:tw=78:et
+126
View File
@@ -0,0 +1,126 @@
Submitting Patch for PHP
========================
This document describes how to submit a patch for PHP. Since you are
reading this document, you are willing to submit a patch for PHP.
Please keep reading! Submitting a patch for PHP is easy. The hard
part is making it acceptable for inclusion into our repository. :-)
How to create patch?
--------------------
We are working with CVS. You need to get CVS source to create a patch
that we accept. Visit http://www.php.net/anoncvs.php to get CVS
source. You can check out older versions, but make sure you get
the default branch (i.e. Do not use -r option when you check out the
CVS source)
Read CODING_STANDARDS file before you start working.
Now you are ready to create a patch. Modify source to fix a bug in PHP or
add a new feature to PHP. After you finished editing, please test your
patch. Read README.TESTING for testing.
After you finish testing your patch, take diff file using
"cvs diff > your.patch" command.
Read README.TESTING for submitting a test script for your patch. This is
not strictly required, but it is preferred to submit a test script along
with your patch. Making new test script is very easy. It also helps us
to understand what you have been fixed or added to PHP.
Tips for creating patch
-----------------------
If you would like to fix multiple bugs. It is easier for us if you
could create 1 patch for 1 bug, but this is not strictly required.
Note though that you might get little response, if your patch is
too hard to review.
If you would like change/add many lines, it is better to ask module
maintainer and/or internals@lists.php.net, or pear-dev@lists.php.net if
you are patching PEAR. Official module maintainers can be found in
EXTENSIONS file in PHP source.
If you are new to CVS (Concurrent Versions System), visit
http://cvshome.org/ for details.
Recommended CVS client settings for creating patch file
------------------------------------------------------
Recommended ~/.cvsrc file setting is:
------
cvs -z3
update -d -P
checkout -P
diff -u
------
diff -u means:
-u Use the unified output format.
With this CVS setting, you don't have to worry about adding/deleting
newlines and spaces.
Check list for submitting patch
-------------------------------
- Did you run "make test" to check if your patch didn't break
other features?
- Did you compile PHP with --enable-debug and check the PHP and
web server error logs when you test your patch?
- Did you build PHP for multi-threaded web servers. (Optional)
- Did you create test script for "make test"? (Recommended)
- Did you check your patch is unified format and it does not
contain white space changes? (If you are not using recommended
cvs setting)
- Did you update CVS source before you take final patch?
- Did you read the patch again?
Where to send your patch?
-------------------------
If you are patching C source, send the patch to internals@lists.php.net.
If you are patching a module, you should also send the patch to the
maintainer. Official module maintainers are listed in EXTENSION file
in source.
If you are patching PEAR, send the patch to pear-dev@lists.php.net.
Please add the prefix "[PATCH]" to your email subject and make sure
to include the patch as a MIME attachment even if it is short.
NOTE: only MIME attachments of type 'text/*' are accepted. The
easiest way to accomplish this, is to make the extension
'.txt'.
Test scripts should be included in the same email.
Explain what has been fixed/added/changed by your patch.
Finally, add the bug Id(s) which can be closed by your patch, if any.
What happens after you submit your patch
----------------------------------------
If your patch is easy to review and has obviously no side-effects,
it might take up to a few hours until someone commits it.
Because this is a volunteer-driven effort, more complex patches will
require more patience on your side.
If you did not receive any feedback in a few days, please consider
resubmitting the description of your patch, along-side with
these questions:
- Is my patch too hard to review? Because of which factors?
- Should I split it up in multiple parts?
- Are there any unwanted whitespace changes?
What happens when your patch is applied?
----------------------------------------
Your name will be included together with your email address in the CVS
commit log. If your patch affects end-users, a brief description
and your name might be added to the NEWS file.
Thank you for submitting patch for PHP!
+179
View File
@@ -0,0 +1,179 @@
[IMPORTANT NOTICE]
------------------
Failed tests usualy indicate a problem with your local system setup
and not within PHP itself (at least for official PHP release versions).
You may decide to automaticaly submit a test summary to our QA workflow
at the end of a test run.
Please do *not* submit a failed test as a bug or ask for help on why
it failed on your system without providing substantial backup information
on *why* the test failed on your special setup. Thank you :-)
[Testing Basics]
----------------
The easiest way to test your PHP build is to run "make test" from the
command line after successfully compiling. This will run the complete
tests for all enabled functionalities and extensions using the PHP
CLI binary.
To execute test scripts, you must build PHP with some SAPI, then you
type "make test" to execute all or some test scripts saved under
"tests" directory under source root directory.
Usage:
make test
"make test" basically executes "run-tests.php" script
under the source root (parallel builds will not work). Therefore you
can execute the script as follows:
TEST_PHP_EXECUTABLE=sapi/cli/php \
sapi/cli/php [-c /path/to/php.ini] run-tests.php [ext/foo/tests/GLOB]
[Which "php" executable "make test" look for]
---------------------------------------------
You must use TEST_PHP_EXECUTABLE environment variable to explicitly
select the php executable to be used to run the tests. That can either
be the CLI or CGI executable.
"make test" executes "run-tests.php" script with "php" binary. Some
test scripts such as session must be executed by CGI SAPI. Therefore,
you must build PHP with CGI SAPI to perform all tests.
NOTE: PHP binary executing "run-tests.php" and php binary used for
executing test scripts may differ. If you use different PHP binary for
executing "run-tests.php" script, you may get errors.
[Which php.ini is used]
-----------------------
"make test" uses the same php.ini file as it would once installed.
The tests have been written to be independent of that php.ini file,
so if you find a test that is affected by a setting, please report
this, so we can address the issue.
[Which test scripts are executed]
---------------------------------
"run-tests.php" ("make test"), without any arguments executes all
test scripts by extracting all directories named "tests"
from the source root and any subdirectories below. If there are files,
which have a "phpt" extension, "run-tests.php" looks at the sections
in these files, determines whether it should run it, by evaluating
the 'SKIP' section. If the test is eligible for execution, the 'FILE'
section is extracted into a ".php" file (with the same name besides
the extension) and gets executed.
When an argument is given or TESTS environment variable is set, the
GLOB is expanded by the shell and any file with extension "*.phpt" is
regarded as a test file.
Tester can easily execute tests selectively with as follows.
Examples:
./sapi/cli/php run-tests.php ext/mbstring/*
./sapi/cli/php run-tests.php ext/mbstring/020.phpt
[Test results]
--------------
Test results are printed to standard output. If there is a failed test,
the "run-tests.php" script saves the result, the expected result and the
code executed to the test script directory. For example, if
ext/myext/tests/myext.phpt fails to pass, the following files are created:
ext/myext/tests/myext.php - actual test file executed
ext/myext/tests/myext.log - log of test execution (L)
ext/myext/tests/myext.exp - expected output (E)
ext/myext/tests/myext.out - output from test script (O)
ext/myext/tests/myext.diff - diff of .out and .exp (D)
Failed tests are always bugs. Either the test is bugged or not considering
factors applying to the tester's environment, or there is a bug in PHP.
If this is a known bug, we strive to provide bug numbers, in either the
test name or the file name. You can check the status of such a bug, by
going to: http://bugs.php.net/12345 where 12345 is the bug number.
For clarity and automated processing, bug numbers are prefixed by a hash
sign '#' in test names and/or test cases are named bug12345.phpt.
NOTE: The files generated by tests can be selected by setting the
environment variable TEST_PHP_LOG_FORMAT. For each file you want to be
generated use the character in brackets as shown above (default is LEOD).
The php file will be generated always.
NOTE: You can set environment variable TEST_PHP_DETAILED to enable
detailed test information.
[Automated testing]
If you like to keep up to speed, with latest developments and quality
assurance, setting the environment variable NO_INTERACTION to 1, will not
prompt the tester for any user input.
Normally, the exit status of "make test" is zero, regardless of the results
of independent tests. Set the environment variable REPORT_EXIT_STATUS to 1,
and "make test" will set the exit status ("$?") to non-zero, when an
individual test has failed.
Example script to be run by cron(1):
========== qa-test.sh =============
#!/bin/sh
CO_DIR=$HOME/cvs/php5
MYMAIL=qa-test@domain.com
TMPDIR=/var/tmp
TODAY=`date +"%Y%m%d"`
# Make sure compilation enviroment is correct
CONFIGURE_OPTS='--disable-all --enable-cli --with-pcre'
export MAKE=gmake
export CC=gcc
# Set test environment
export NO_INTERACTION=1
export REPORT_EXIT_STATUS=1
cd $CO_DIR
cvs update . >>$TMPDIR/phpqatest.$TODAY
./cvsclean ; ./buildconf ; ./configure $CONFIGURE_OPTS ; $MAKE
$MAKE test >>$TMPDIR/phpqatest.$TODAY 2>&1
if test $? -gt 0
then
cat $TMPDIR/phpqatest.$TODAY | mail -s"PHP-QA Test Failed for $TODAY" $MYMAIL
fi
========== end of qa-test.sh =============
NOTE: the exit status of run-tests.php will be 1 when
REPORT_EXIT_STATUS is set. The result of "make test" may be higher
than that. At present, gmake 3.79.1 returns 2, so it is
advised to test for non-zero, rather then a specific value.
[Creating new test files]
-------------------------
Writing test file is very easy if you are used to PHP.
See the HOWTO at http://qa.php.net/write-test.php
[How to help us]
----------------
If you find bug in PHP, you can submit bug report AND test script
for us. You don't have to write complete script, just give us test
script with following format. Please test the script and make sure
you write the correct ACTUAL OUTPUT and EXPECTED OUTPUT before you
submit.
<?php
/*
Bug #12345
substr() bug. Do not return expected string.
ACTUAL OUTPUT
XYXA
EXPECTED OUTPUT
ABCD
*/
$str = "XYZABCD";
echo substr($str,3,7);
?>
+137
View File
@@ -0,0 +1,137 @@
[IMPORTANT NOTICE]
------------------
This is an addendum to README.TESTING with additional information
specific to run-tests2.php.
run-tests2.php is backward compatible with tests developed for
the original run-tests.php script. run-tests2 is *not* used by
'make test'. run-tests2 was developed to provide support for
testing PHP under it's primary environment, HTTP, and can run the
PHP tests under any of the SAPI modules that are direct executables,
or are accessable via HTTP.
[New features]
----------------
* Command line interface:
You can run 'php run-tests2.php -h' to get all the possible options.
* Configuration file:
the -c argument will allow you to use a configuration file. This is
handy if you are testing multiple environments and need various options
depending on the environment.
see run-tests-config.php for details.
* CGI Emulation:
Will emulate a CGI environment when testing with the cgi sapi executable.
* HTTP testing:
can be configured to run test scripts through an HTTP server running
on localhost. localhost is required since either the web server must
alias a directory to the php source directory, or the test scripts
must be copied to a directory under the web server
(see config options TEST_WEB_BASE_URL, TEST_BASE_PATH, and TEST_WEB_EXT)
* New sections supported for test files (see below)
When running tests over http, tests that require ini settings different that what
the web server runs under will be skipped. Since the test harness defines a number
of ini settings by default, the web server may require special configuration to
make testing work.
[Example Usage]
----------------
Some (but not all!) examples of usage:
1. run tests from the php source directory
php run-tests2.php -p /path/to/php-cli
2. run tests using cgi emulation
php run-tests2.php -p /path/to/php-cgi
3. run tests over http, copying test files into document root
php run-tests2.php -w -u http://localhost/test -m /path/to/htdocs/test
4. run tests over http, php sources have been aliased in web server
php run-tests2.php -w -u http://localhost/test
5. run tests using configuration file
php run-tests2.php -c /path/to/run-tests-config.php
6. run tests using configuration file, but overriding some settings:
(config file must be first)
php run-tests2.php -c /path/to/run-tests-config.php -w -t 3 -d /path/to/testdir
NOTE: configuration as described in README.TESTING still works.
[New Test Sections]
----------------
In addition to the traditional test sections
(see http://qa.php.net/write-test.php), several new sections are available
under run-tests2.
--POST--
This is not a new section, but not multipart posts are supported for testing
file uploads, or other types of POST data.
--CGI--
This section takes no value. It merely provides a simple marker for tests
that MUST be run as CGI, even if there is no --POST-- or --GET-- sections
in the test file.
--DESCRIPTION--
Not used for anything, just a section for documenting the test
--ENV--
This section get's eval()'d to help build an environment for the
execution of the test. This can be used to change environment
vars that are used for CGI emulation, or simply to set env vars
for cli testing. A full example looks like:
--ENV--
return <<<END
PATH_TRANSLATED=$filename
PATH_INFO=$scriptname
SCRIPT_NAME=$scriptname
END;
Some variables are made easily available for use in this section, they
include:
$filename full native path to file, will become PATH_TRANSLATED
$filepath =dirname($filename)
$scriptname this is what will become SCRIPT_NAME unless you override it
$docroot the equivelant of DOCUMENT_ROOT under Apache
$cwd the directory that the test is being initiated from
$this->conf all run-tests2 configuration vars
$this->env all environment variables that will get passed to the test
--REQUEST--
This section is also eval'd, and is similar in nature to --ENV--. However,
this section is used to build the url used in an HTTP request. Valid values
to set in this section would include:
SCRIPT_NAME The inital part of the request url
PATH_INFO The pathinfo part of a request url
FRAGMENT The fragment section of a url (after #)
QUERY_STRING The query part of a url (after ?)
--REQUEST--
return <<<END
PATH_INFO=/path/info
END;
--HEADERS--
This section is also eval'd. It is used to provide additional headers sent
in an HTTP request, such as content type for multipart posts, cookies, etc.
--HEADERS--
return <<<END
Content-Type=multipart/form-data; boundary=---------------------------240723202011929
Content-Length=100
END;
--EXPECTHEADERS--
This section can be used to define what headers are required to be
received back from a request, and is checked in addition to the
regular expect sections. For example:
--EXPECTHEADERS--
Status: 404
+123
View File
@@ -0,0 +1,123 @@
PHP Build System V5 Overview
- supports Makefile.ins during transition phase
- not-really-portable Makefile includes have been eliminated
- supports separate build directories without VPATH by using
explicit rules only
- does not waste disk-space/CPU-time for building temporary libraries
=> especially noticeable on slower systems
- slow recursive make replaced with one global Makefile
- eases integration of proper dependencies
- adds PHP_DEFINE(what[, value]) which creates a single include-file
per what. This will allow more fine-grained dependencies.
- abandoning the "one library per directory" concept
- improved integration of the CLI
- several new targets
build-modules: builds and copies dynamic modules into modules/
install-cli: installs the CLI only, so that the install-sapi
target does only what its name says
- finally abandoned automake (still requires aclocal at this time)
- changed some configure-time constructs to run at buildconf-time
- upgraded shtool to 1.5.4
- removed $(moduledir) (use EXTENSION_DIR)
The Reason For a New System
It became more and more apparent that there is a severe need
for addressing the portability concerns and improving the chance
that your build is correct (how often have you been told to
"make clean"? When this is done, you won't need to anymore).
If You Build PHP on a Unix System
You, as a user of PHP, will notice no changes. Of course, the build
system will be faster, look better and work smarter.
If You Are Developing PHP
Extension developers:
Makefile.ins are abandoned. The files which are to be compiled
are specified in the config.m4 now using the following macro:
PHP_NEW_EXTENSION(foo, foo.c bar.c baz.cpp, $ext_shared)
E.g. this enables the extension foo which consists of three source-code
modules, two in C and one in C++. And, depending on the user's wishes,
the extension will even be built as a dynamic module.
The full syntax:
PHP_NEW_EXTENSION(extname, sources [, shared [,sapi_class[, extra-cflags]]])
Please have a look at acinclude.m4 for the gory details and meanings
of the other parameters.
And that's basically it for the extension side.
If you previously built sub-libraries for this module, add
the source-code files here as well. If you need to specify
separate include directories, do it this way:
PHP_NEW_EXTENSION(foo, foo.c mylib/bar.c mylib/gregor.c,,,-I@ext_srcdir@/lib)
E.g. this builds the three files which are located relative to the
extension source directory and compiles all three files with the
special include directive (@ext_srcdir@ is automatically replaced).
Now, you need to tell the build system that you want to build files
in a directory called $ext_builddir/lib:
PHP_ADD_BUILD_DIR($ext_builddir/lib)
Make sure to call this after PHP_NEW_EXTENSION, because $ext_builddir
is only set by the latter.
If you have a complex extension, you might to need add special
Make rules. You can do this by calling PHP_ADD_MAKEFILE_FRAGMENT
in your config.m4 after PHP_NEW_EXTENSION.
This will read a file in the source-dir of your extension called
Makefile.frag. In this file, $(builddir) and $(srcdir) will be
replaced by the values which are correct for your extension
and which are again determined by the PHP_NEW_EXTENSION macro.
Make sure to prefix *all* relative paths correctly with either
$(builddir) or $(srcdir). Because the build system does not
change the working directory anymore, we must use either
absolute paths or relative ones to the top build-directory.
Correct prefixing ensures that.
SAPI developers:
Instead of using PHP_SAPI=foo/PHP_BUILD_XYZ, you will need to type
PHP_SELECT_SAPI(name, type, sources.c)
I.e. specify the source-code files as above and also pass the
information regarding how PHP is supposed to be built (shared
module, program, etc).
For example for APXS:
PHP_SELECT_SAPI(apache, shared, sapi_apache.c mod_php5.c php_apache.c)
General info
The foundation for the new system is the flexible handling of
sources and their contexts. With the help of macros you
can define special flags for each source-file, where it is
located, in which target context it can work, etc.
Have a look at the well documented macros
PHP_ADD_SOURCES(_X) in acinclude.m4.
+174
View File
@@ -0,0 +1,174 @@
The Win32 Build System.
$Id$
Wez Furlong <wez@thebrainroom.com>
If you need help with the build system, send mail to
internals@lists.php.net; please don't email me directly.
===========================================================
Contents:
1. How to build PHP under windows
a. Requirements
b. Opening a command prompt
c. Generating configure.js
d. Configuring
e. Building
f. Cleaning up
g. Running the test suite
h. snapshot building
2. How to write config.w32 files
x. to be written.
===========================================================
1. How to build PHP under windows
a. Requirements
You need:
- Windows Scripting Host (cscript.exe)
- Microsoft Build Tools from:
Microsoft Visual Studio (VC6) or later
You also need:
- bindlib_w32 [http://www.php.net/extra/bindlib_w32.zip]
- win32build [http://www.php.net/extra/win32build.zip]
b. Opening the Build Environment Command Prompt:
- Using Visual Studio (VC6)
1. Install it
2. If you have a VC++ Command Prompt icon on your start menu,
click on it to get a Command Prompt with the env vars
set up correctly.
If not, create a new shortcut and set the Target to:
%comspec% /k "C:\Program Files\Microsoft Visual Studio\VC98\Bin\vcvars32.bat"
You might also want to set the prompt to start in
a convenient location (such as the root of your
PHP source checkout).
- Using Visual Studio .Net
1. Install it.
2. Under the Visual Studio .Net Tools sub menu of your start
menu, you should have a Visual Studio .Net Command Prompt
icon. If not, create a new shortcut and set the Target to:
%comspec% /k "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"
You might also want to set the prompt to start in
a convenient location (such as the root of your
PHP source checkout).
- Using the Platform SDK tools
1. Download the Platform SDK:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
- You need the Core SDK, which is approx 200MB to download
and requires approx 500MB of disk space.
- The other components of the SDK are not required by PHP
- You might be able to reduce the download size by downloading
the installer control component first and then selecting
only the Build Environment (around 30MB), but I haven't
tried this.
** Note: it seems that MS don't include the 32 bit
build tools in the platform SDK any longer, so
you will probably have very limited luck if you
don't also have VC++ or VS.Net already installed.
2. Once installed, you will have an icon on your start menu
that will launch the build environment; the latest SDK's
install a number of different versions of this; you probably
want to choose the Windows 2000 Retail build environment.
Clicking on this will open a command prompt with its Path,
Include and Lib env vars set to point to the build tools
and win32 headers.
c. Generating configure
Change directory to where you have your PHP 5 sources.
Run buildconf.bat.
d. Configuring
cscript /nologo configure.js --help
Will give you a list of configuration options; these will
have the form:
--enable-foo or --disable-foo or --with-foo or --without-foo.
--enable-foo will turn something on, and is equivalent to
specifying --enable-foo=yes
--disable-foo will turn something off, and is equivalent to
specifying --enable-foo=no
--enable-foo=shared will attempt to build that feature as
a shared, dynamically loadable module.
Sometimes a configure option needs additional information
about where to find headers and libraries; quite often
you can specify --enable-foo=option where option could be
the path to where to find those files. If you want to
specify a parameter and build it as shared, you can use
this syntax instead: --enable-foo=shared,option
The same rules all apply to --with-foo and --without-foo;
the only difference is the way the options are named;
the convention is that --enable-foo means that you are
switching on something that comes with PHP, whereas
--with-foo means that you want to build in something
external to PHP.
e. Building
Once you have successfully configured your build (make
sure you read the output from the command to make sure
it worked correctly), you can build the code; simply type
"nmake" at the command prompt, and it will build everthing
you asked for.
Once the build has completed, you will find your binaries
in the build dir determined by configure; this is typically
Release_TS for release builds or Debug_TS for debug builds.
If you build a non-thread-safe build, it will use Release
or Debug to store the files. Also in this build dir you
will find sub directories for each module that went into
your PHP build. The files you'll want to keep are the
.exe and .dll files directly in your build dir.
f. Cleaning Up
You can automatically delete everything that was built
by running "nmake clean". This will delete everything
that was put there when you ran nmake, including the
.exe and .dll files.
g. Running the test suite
You can verify that your build is working well by running
the regression test suite. You do this by typing
"nmake test". You can specify the tests you want to run
by defing the TESTS variable - if you wanted to run the
sqlite test suite only, you would type
"nmake /D TESTS=ext/sqlite/tests test"
h. Snapshot Building
If you want to set up an automated build that will tolerate
breakages in some of the modules, you can use the
--enable-snapshot-build configure option to generate a
makefile optimized for that purpose. A snapshot build will
switch the argument parser so that the default option for
configure switches that your don't specify will be set
to "shared". The effect of this is to turn on all options
unless you explicitly disable them. When you have configured
your snapshot build, you can use "nmake build-snap" to build
everything, ignoring build errors in individual extensions
or SAPI.
vim:tw=78:sw=1:ts=1:et
+112
View File
@@ -0,0 +1,112 @@
Using PHP 5 with the Zeus Web Server
-----------------------------------
Zeus fully supports running PHP in combination with our
webserver. There are three different interfaces that can be used to
enable PHP:
* CGI
* ISAPI
* FastCGI
Of the three, we recommend using FastCGI, which has been tested and
benchmarked as providing the best performance and reliability.
Full details of how to install PHP are available from our
website, at:
http://support.zeus.com/products/php.html
If you have any problems, please check the support site for more
up-to-date information and advice.
Quick guide to installing CGI/FastCGI with Zeus
-----------------------------------------------
Step 1 - Compile PHP as FastCGI.
Compile as follows:
./configure --enable-fastcgi
make
Note that PHP has many options to the configure script -
e.g. --with-mysql. You will probably want to select your usual options
before compiling; the above is just a bare minimum, for illustration.
After compilation finishes, you will be left with an executable
program called 'php'. Copy this into your document root, under a
dedicated FastCGI directory (e.g. $DOCROOT/fcgi-bin/php)
Step 2 - configure Zeus
Four stages:
- enable FastCGI
- configure FastCGI
- setup alias for FastCGI
- setup alias for PHP
1) Using the admin server, go to the 'module configuration' page for
your virtual server, and ensure that 'fastcgi' is enabled (select the
tickbox to the left).
2) While we can run FastCGI's locally, there are known problems with
some OS's (specifically, the communication between web server and
FastCGI happens over a unix domain socket, and some OS's have trouble
sustaining high connection rates over these sockets). So instead, we
are going to set up the PHP FastCGI to run 'remotely' over localhost
(this uses TCP sockets, which do not suffer this problem). Go to the
'fastcgi configuration' page, and under 'add remote fastcgi':
Add Remote FastCGI
Docroot path /fcgi-bin/php
Remote machine localhost:8002
The first entry is where you saved PHP, above.
The second entry is localhost:<any unused port>
We will start the FastCGI listening on this port shortly.
Click 'update' to commit these changes.
3) Go to the path mapping module and add an alias for FastCGI:
Add Alias
Docroot path /fcgi-bin
Filesystem directory /path/to/docroot/fcgi-bin
Alias type fastcgi
Click 'update' to commit these changes
4) Also on the path mapping module, add a handler for PHP:
Add handler
File extension php
Handler /fcgi-bin/php
Click 'update' to commit these changes
Finally restart your virtual server for these changes to take effect.
Step 3 - start PHP as a FastCGI runner
When you start PHP, it will pre-fork a given number of child processes
to handle incoming PHP requests. Each process will handle a given
number of requests before exiting (and being replaced by a newly
forked process). You can control these two parameters by setting the
following environment variables BEFORE starting the FastCGI runner:
PHP_FCGI_CHILDREN - the number of child processes to pre-fork. This
variable MUST be set, if not then the PHP will not run as a FastCGI.
We recommend a value of 8 for a fairly busy site. If you have many,
long-running PHP scripts, then you may need to increase this further.
PHP_FCGI_MAX_REQUESTS - the number of requests each PHP child process
handles before exiting. If not set, defaults to 500.
To start the FastCGI runner, execute '$ZEUSHOME/web/bin/fcgirunner
8002 $DOCROOT/fcgi-bin/php'. Substitute the appropriate values for
$ZEUSHOME and $DOCROOT; also substitute for 8002 the port you chose,
above.
To stop the runner (e.g. to experiment with the above environment
variables) you will need to manually stop and running PHP
processes. (Use 'ps' and 'kill'). As it is PHP which is forking lots
of children and not the runner, Zeus unfortunately cannot keep track
of what processes are running, sorry. A typical command line may look
like 'ps -efl | grep $DOCROOT/fcgi-bin/php | grep -v grep | awk
'{print $4}' | xargs kill'
+193
View File
@@ -0,0 +1,193 @@
Input Filter Support in PHP 5
-----------------------------
XSS (Cross Site Scripting) hacks are becoming more and more prevalent,
and can be quite difficult to prevent. Whenever you accept user data
and somehow display this data back to users, you are likely vulnerable
to XSS hacks.
The Input Filter support in PHP 5 is aimed at providing the framework
through which a company-wide or site-wide security policy can be
enforced. It is implemented as a SAPI hook and is called from the
treat_data and post handler functions. To implement your own security
policy you will need to write a standard PHP extension.
A simple implementation might look like the following. This stores the
original raw user data and adds a my_get_raw() function while the normal
$_POST, $_GET and $_COOKIE arrays are only populated with stripped
data. In this simple example all I am doing is calling strip_tags() on
the data. If register_globals is turned on, the default globals that
are created will be stripped ($foo) while a $RAW_foo is created with the
original user input.
ZEND_BEGIN_MODULE_GLOBALS(my_input_filter)
zval *post_array;
zval *get_array;
zval *cookie_array;
ZEND_END_MODULE_GLOBALS(my_input_filter)
#ifdef ZTS
#define IF_G(v) TSRMG(my_input_filter_globals_id, zend_my_input_filter_globals *, v)
#else
#define IF_G(v) (my_input_filter_globals.v)
#endif
ZEND_DECLARE_MODULE_GLOBALS(my_input_filter)
function_entry my_input_filter_functions[] = {
PHP_FE(my_get_raw, NULL)
{NULL, NULL, NULL}
};
zend_module_entry my_input_filter_module_entry = {
STANDARD_MODULE_HEADER,
"my_input_filter",
my_input_filter_functions,
PHP_MINIT(my_input_filter),
PHP_MSHUTDOWN(my_input_filter),
NULL,
PHP_RSHUTDOWN(my_input_filter),
PHP_MINFO(my_input_filter),
"0.1",
STANDARD_MODULE_PROPERTIES
};
PHP_MINIT_FUNCTION(my_input_filter)
{
ZEND_INIT_MODULE_GLOBALS(my_input_filter, php_my_input_filter_init_globals, NULL);
REGISTER_LONG_CONSTANT("POST", PARSE_POST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("GET", PARSE_GET, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("COOKIE", PARSE_COOKIE, CONST_CS | CONST_PERSISTENT);
sapi_register_input_filter(my_sapi_input_filter);
return SUCCESS;
}
PHP_RSHUTDOWN_FUNCTION(my_input_filter)
{
if(IF_G(get_array)) {
zval_ptr_dtor(&IF_G(get_array));
IF_G(get_array) = NULL;
}
if(IF_G(post_array)) {
zval_ptr_dtor(&IF_G(post_array));
IF_G(post_array) = NULL;
}
if(IF_G(cookie_array)) {
zval_ptr_dtor(&IF_G(cookie_array));
IF_G(cookie_array) = NULL;
}
return SUCCESS;
}
PHP_MINFO_FUNCTION(my_input_filter)
{
php_info_print_table_start();
php_info_print_table_row( 2, "My Input Filter Support", "enabled" );
php_info_print_table_row( 2, "Revision", "$Revision$");
php_info_print_table_end();
}
/* The filter handler. If you return 1 from it, then PHP also registers the
* (modified) variable. Returning 0 prevents PHP from registering the variable;
* you can use this if your filter already registers the variable under a
* different name, or if you just don't want the variable registered at all. */
SAPI_INPUT_FILTER_FUNC(my_sapi_input_filter)
{
zval new_var;
zval *array_ptr = NULL;
char *raw_var;
int var_len;
assert(*val != NULL);
switch(arg) {
case PARSE_GET:
if(!IF_G(get_array)) {
ALLOC_ZVAL(array_ptr);
array_init(array_ptr);
INIT_PZVAL(array_ptr);
}
IF_G(get_array) = array_ptr;
break;
case PARSE_POST:
if(!IF_G(post_array)) {
ALLOC_ZVAL(array_ptr);
array_init(array_ptr);
INIT_PZVAL(array_ptr);
}
IF_G(post_array) = array_ptr;
break;
case PARSE_COOKIE:
if(!IF_G(cookie_array)) {
ALLOC_ZVAL(array_ptr);
array_init(array_ptr);
INIT_PZVAL(array_ptr);
}
IF_G(cookie_array) = array_ptr;
break;
}
Z_STRLEN(new_var) = val_len;
Z_STRVAL(new_var) = estrndup(*val, val_len);
Z_TYPE(new_var) = IS_STRING;
var_len = strlen(var);
raw_var = emalloc(var_len+5); /* RAW_ and a \0 */
strcpy(raw_var, "RAW_");
strlcat(raw_var,var,var_len+5);
php_register_variable_ex(raw_var, &new_var, array_ptr TSRMLS_DC);
php_strip_tags(*val, val_len, NULL, NULL, 0);
*new_val_len = strlen(*val);
return 1;
}
PHP_FUNCTION(my_get_raw)
{
long arg;
char *var;
int var_len;
zval **tmp;
zval *array_ptr = NULL;
HashTable *hash_ptr;
char *raw_var;
if(zend_parse_parameters(2 TSRMLS_CC, "ls|l", &arg, &var, &var_len) == FAILURE) {
return;
}
switch(arg) {
case PARSE_GET:
array_ptr = IF_G(get_array);
break;
case PARSE_POST:
array_ptr = IF_G(post_array);
break;
case PARSE_COOKIE:
array_ptr = IF_G(post_array);
break;
}
if(!array_ptr) RETURN_FALSE;
/*
* I'm changing the variable name here because when running with register_globals on,
* the variable will end up in the global symbol table
*/
raw_var = emalloc(var_len+5); /* RAW_ and a \0 */
strcpy(raw_var, "RAW_");
strlcat(raw_var,var,var_len+5);
hash_ptr = HASH_OF(array_ptr);
if(zend_hash_find(hash_ptr, raw_var, var_len+5, (void **)&tmp) == SUCCESS) {
*return_value = **tmp;
zval_copy_ctor(return_value);
} else {
RETVAL_FALSE;
}
efree(raw_var);
}
+155
View File
@@ -0,0 +1,155 @@
Things to do or at least think about doing in the future. Name in
parenthesis means that person has taken on this project.
Zend
----
* Allow foreach ($array as $k => list($a, $b)) syntax for multi
dimensional arrays.
* Look at replacing c-lib call tolower().
* Make hash API functions work with HASH_OF() to save time.
* Add configure test to determine if dlsym() requires underscore and set
DLSYM_NEEDS_UNDERSCORE accordingly. Perl and zsh have it in configure,
for example. (DONE?)
* Native large number support (probably with GNU GMP)
* Const'ify APIs. Right now, many functions leave parameters untouched,
but don't declare those as const. This makes interaction with other
interfaces difficult which pass const parameters to us.
global
------
* Make sure that all ZTS globals get destructed. Most ts_allocate_id()
calls should have a dtor entry.
* on some platforms unimplemented function will just do nothing
(e.g. symlink) they should print a warning or not even be defined!
(DONE ?)
* --enable-all in configure. (--enable-shared=max ...)
* make configure print out a summary when it's done (like XEmacs)
* replace standard functions which work on static data with
reentrancy-safe functions (DONE?).
* make SAPI conform to CGI/1.1. Currently, all SAPI modules
define REMOTE_ADDR etc. themselves and reach only various level
of compliance.
* see what functions might need to be changed to use HashPosition, so
that the internal array pointer is not affected.
* Move most extensions and PEAR packages out of the PHP CVS tree,
include them again during release packaging.
Other
* use thread-safe resolver functions (either require BIND 8 or adns).
* implement javadoc based function docs template system.
* provide optional IPv6 support (seems to be done?).
* find a better way to implement script timeouts. SIGVTALRM is used
by some POSIX threads implementations (i.e. OpenBSD) and is not
available in ZTS mode.
* Implement flush feature suitable for nested output buffers.
Streams
-------
* Route filestat.c through the wrapper layer; isolate the statcache code
so that it is independent of php functions and can be applied to any
stream/path.
* Implement generalized connection pool for stated protocols such as
ftp and http/1.1 (using keep-alive) to avoid having to negotiate
new command/request stream for each subsequent call; Possibly store
resources in contexts (creating a default context if necessary) to
allow segmentation of connection pools.
* Add a method to take ownership of the memory buffer in memory streams so
that generating string values for zvals doesn't require an estrdup.
* bundle and use curl lib for fopen wrapper.
documentation
-------------
* Add remarks in the documentation which functions are not implemented
on win32.
* Add remarks in the documentation which functions are not binary-safe.
* Update curl documentation (DONE?)
* Add developer documentation.
* Add detailed documentation for Java extension.
ext/bz2
-------
* Add an ini directive to specify the size of decompression buffer.
The default 4k is too small for large files and also requires much time
for decompression. 40k is suitable for such files, however it may be too
much under certain environments. There should be appropriate default
settings for the various SAPI modules (e.g. apache and cli).
ext/curl
--------
* Have a warning scheme for when people use unsupported features.
ext/oci8
--------
* All OCIFetch*() functions should return 0 for no more data and false on
error.
* Have a flag that trims trailing spaces from CHAR fields on retrieval.
* Make allow_call_time_pass_reference=Off working.
* For additional todo information, see oci8.c, in ext/oci8
ext/odbc
--------
For PHP 4.3.0:
* update all php_error calls to php_error_docref where valid
* integrate EXPERIMENTAL ODBC update for use in PHP 5.0, use for
testing purposes only.
For PHP 5.0.0
* Activate EXPERIMENTAL ODBC codebase update
ext/pcre
--------
* Allow user to set PCRE_NOTEMPTY, PCRE_ANCHORED at execution time, maybe
ext/pcntl
---------
* Change internal callback handler to use TICKS
* Remove all zend_extension code
* Add object callback support to pcntl_signal()
ext/pgsql
---------
For PHP 4.3.0:
* Add pg_metadata() with metadata cache feature.
* Add pg_convert() to check and convert array value for query.
* Add pg_insert/pg_update/pg_delete/pg_select for simple query.
ext/session
-----------
For PHP 4.3.0:
* session_abort() to abort session. ie: Do not save session data.
* Allow unset($_SESSION) or unset($HTTP_SESSION_VARS) to unset
session vars regardless of register_globals setting.
Other:
* Maybe implement finer-grained session variables that could be
locked individually.
* Write a network-transparent storage back-end with fallover
facilities
* Provide a callback facility which is executed upon encountering
an unknown class name during deserialization
ext/standard
------------
* Add a version number to data serialized via serialize().
* Possibly modify parsing of GPC data to automatically create arrays if
variable name is seen more than once.
* Implement regex-cache for url-functions.
* Move socket related functions to fsock.c.
ext/wddx
--------
* See if we can support the remaining data types:
dateTime
binary
http://www.wddx.org/WDDX_SDK_10a/7__References/WDDX_DTD.htm
(Andrei)
* implement wddx_packet_as_javascript(). (Andrei)
other cool stuff
----------------
* PVM extension
vim:et:sw=4:ts=4
+17
View File
@@ -0,0 +1,17 @@
Zend Engine
-----------
- Look at making zend_constant value member be a zval* instead of zval. (Andi)
- Add the patch for referring to existing .ini vars in .ini files. (Andrei)
- Implement inheritance rules for type hints. (Marcus)
- Implement true/false/NULL as keywords (apply the patch). (Andi, Marcus)
- Implement typehinting for arrays (apply the patch). (Andi, Marcus)
- Find a keyword for the if-set-or operator (apply the patch). (Marcus, all)
- Fix ZTS destruction (apply the patch). (Marcus)
Build System
------------
- Implement load order of built-in extensions (apply the patch). (Wez)
Standard Library
----------------
- Implement new time/date parsing and handling functions. (Derick)
+109
View File
@@ -0,0 +1,109 @@
Component: Zend Engine 2
Important stuff to finish: PPP members/PPP methods,
support of overloaded extensions, possibly differentiate
between class and namespace as discussed with Stig in
Germany.
Responsibility: Zeev, Andi, Stas
Time frame: Couple of months for first part and extensions will be
ongoing while PHP is being fixed.
Things to leave for later versions: Native aggregation
support, accessing static members via object and not class.
Component: Aggregation
Responsibility: Andi, Stig?
Time frame: ?
Component: Redesign of API Versioning
Responsibility: ?
Time frame: 1 month
Component: Thread Safety
Identify the extensions that are not thread safe by design
or due to dependant libraries and identify them as such.
If possible try to resolve thread safety issue via code
improvements (if php code or patches will be accepted by
library maintainers). For situations where thread safety
cannot easily be acheived a flag in the extension API is
set so PHP can identify non-thread safe extensions. These
extensions will not be loaded in a ZTS compiled binary
(unless it is cli/cgi).
Responsibility: ?
Time frame: ?
Component: SAPI
Environment variables defined in the CGI spec need to be
verified in each SAPI module that they conform to the CGI
spec correctly. If they do not, the SAPI module needs to
fix the variable prior to script execution. Having this
conformity will aid in having PHP scripts run correctly
under different sapi modules.
Responsibility: Shane Caraveo & each sapi module owner
Timeframe: ? (but shouldn't be much effort, most modules are probably ok)
Component: Input Filtering
- Implement a SAPI input filter hook that will get called
just before registering a variable in the
treat_data/post_handler hooks. (done)
- Make sure this is also done in mbstring (done)
- Provide access functions, or perhaps a new
$_RAW_GET/POST/Cookie set of superglobals to get at the
unfiltered data
- Provide a .ini directive which allows people to set their
input filter to one of the built-in strip_tags,
htmlspecialchars or whatever other internal function might
be useful here.
- (The main benefit of this is to make it easier for people
to solve the XSS problem once and for all without having
to go through every line of their code and adding input
validation/filtering everywhere)
Responsibility: Rasmus
Timeframe: Yesterday
Component: RPC Abstraction Layer
Porting java, com, dotnet, xmlrpc, corba, soap and python, srm
(are there more ?) to work with the new oo api and preferably
by using ext/rpc.
Responsibility: Harald
Time frame: 2 months (but i have to wait for a few engine features first)
Component: OO Extensions
Each OO extension has to be revised and rewritten to fit into
the new OO model. We should decide which extensions are a must
to have for the release and which can be ported by the maintainer
later as a separate pecl release.
A list of extensions to be extended that have to be investigated:
* browscap
* aggregate
* all *sql extensions (*_fetch_object)
* domxml (seems like christian is rewriting it anyways)
* ming
Responsibility: Harald (, extension maintainers)
Component: Abstract Data Types (ADT)
Responsibility: Sterling, Harald
Time frame: ?
Component: Test Suite
Extending the test suite with atleast a test for every
function in an extension that doesn't require external
resources. Also developing an automated test thing which
cvs ups's, compiles and tests the build on a daily base on
as much platforms/extensions as possible.
The test suite will also be extended to support threaded
testing and testing for differing sapi modules (via http
calls or other methods).
Reponsibility: Derick (, extension maintainers)
Time frame: 3 months
+3
View File
@@ -0,0 +1,3 @@
- clean up .cvsignores
- purge Makefile.ins and replace PHP_EXTENSION in config.m4s
with appropiate calls to PHP_NEW_EXTENSION
+54 -7
View File
@@ -34,6 +34,9 @@ typedef struct {
size_t size;
ts_allocate_ctor ctor;
ts_allocate_dtor dtor;
#ifdef MBO_0
int done;
#endif
} tsrm_resource_type;
@@ -157,11 +160,15 @@ TSRM_API void tsrm_shutdown(void)
int j;
next_p = p->next;
for (j=0; j<id_count; j++) {
if (resource_types_table && resource_types_table[j].dtor) {
resource_types_table[j].dtor(p->storage[j], &p->storage);
for (j=0; j<p->count; j++) {
if (p->storage[j]) {
#ifdef MBO_0
if (resource_types_table && !resource_types_table[j].done && resource_types_table[j].dtor) {
resource_types_table[j].dtor(p->storage[j], &p->storage);
}
#endif
free(p->storage[j]);
}
free(p->storage[j]);
}
free(p->storage);
free(p);
@@ -219,6 +226,9 @@ TSRM_API ts_rsrc_id ts_allocate_id(ts_rsrc_id *rsrc_id, size_t size, ts_allocate
resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].size = size;
resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].ctor = ctor;
resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].dtor = dtor;
#ifdef MBO_0
resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].done = 0;
#endif
/* enlarge the arrays for the already active threads */
for (i=0; i<tsrm_tls_table_size; i++) {
@@ -273,9 +283,16 @@ static void allocate_new_resource(tsrm_tls_entry **thread_resources_ptr, THREAD_
tsrm_new_thread_begin_handler(thread_id, &((*thread_resources_ptr)->storage));
}
for (i=0; i<id_count; i++) {
(*thread_resources_ptr)->storage[i] = (void *) malloc(resource_types_table[i].size);
if (resource_types_table[i].ctor) {
resource_types_table[i].ctor((*thread_resources_ptr)->storage[i], &(*thread_resources_ptr)->storage);
#if MBO_0
if (resource_types_table[i].done) {
(*thread_resources_ptr)->storage[i] = NULL;
} else
#endif
{
(*thread_resources_ptr)->storage[i] = (void *) malloc(resource_types_table[i].size);
if (resource_types_table[i].ctor) {
resource_types_table[i].ctor((*thread_resources_ptr)->storage[i], &(*thread_resources_ptr)->storage);
}
}
}
@@ -420,6 +437,36 @@ void ts_free_thread(void)
/* deallocates all occurrences of a given id */
void ts_free_id(ts_rsrc_id id)
{
#ifdef MBO_0
int i;
int j = TSRM_UNSHUFFLE_RSRC_ID(id);
tsrm_mutex_lock(tsmm_mutex);
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Freeing resource id %d", id));
if (tsrm_tls_table) {
for (i=0; i<tsrm_tls_table_size; i++) {
tsrm_tls_entry *p = tsrm_tls_table[i];
while (p) {
if (p->count > j && p->storage[j]) {
if (resource_types_table && resource_types_table[j].dtor) {
resource_types_table[j].dtor(p->storage[j], &p->storage);
}
free(p->storage[j]);
p->storage[j] = NULL;
}
p = p->next;
}
}
}
resource_types_table[j].done = 1;
tsrm_mutex_unlock(tsmm_mutex);
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Successfully freed resource id %d", id));
#endif
}
+1
View File
@@ -41,6 +41,7 @@
# define WIN32_LEAN_AND_MEAN
# endif
# include <windows.h>
# include <shellapi.h>
#elif defined(NETWARE)
# include <nks/thread.h>
#ifdef USE_MPK
+10
View File
@@ -0,0 +1,10 @@
// vim:ft=javascript
// $Id$
if (CHECK_HEADER_ADD_INCLUDE("NewAPIs.h", "CFLAGS_PHP", php_usual_include_suspects)) {
// Need to add the flag directly, since TSRM doesn't include the config
// header
ADD_FLAG("CFLAGS_PHP", "/DHAVE_NEWAPIS_H=1");
}
ADD_SOURCES("TSRM", "TSRM.c tsrm_strtok_r.c tsrm_virtual_cwd.c tsrm_win32.c");
+2 -2
View File
@@ -1,8 +1,8 @@
/*
+----------------------------------------------------------------------+
| PHP Version 4 |
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2003 The PHP Group |
| Copyright (c) 1997-2004 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.0 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
+2 -2
View File
@@ -1,8 +1,8 @@
/*
+----------------------------------------------------------------------+
| PHP Version 4 |
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2003 The PHP Group |
| Copyright (c) 1997-2004 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.0 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
+21 -10
View File
@@ -1,8 +1,8 @@
/*
+----------------------------------------------------------------------+
| PHP Version 4 |
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2003 The PHP Group |
| Copyright (c) 1997-2004 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.0 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -34,6 +34,11 @@
#ifdef TSRM_WIN32
#include <io.h>
#include "tsrm_win32.h"
# if HAVE_NEWAPIS_H
# define WANT_GETLONGPATHNAME_WRAPPER
# define COMPILE_NEWAPIS_STUBS
# include <NewAPIs.h>
# endif
#endif
#ifdef NETWARE
@@ -297,6 +302,8 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
unsigned char is_absolute = 0;
#ifndef TSRM_WIN32
char resolved_path[MAXPATHLEN];
#else
char *new_path;
#endif
if (path_length == 0)
@@ -332,10 +339,9 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
free(tmp);
}
#endif
#if 0 && defined(TSRM_WIN32)
#if defined(TSRM_WIN32)
{
char *dummy;
char *new_path;
char *dummy = NULL;
int new_path_length;
new_path_length = GetLongPathName(path, dummy, 0) + 1;
@@ -347,12 +353,13 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
return 1;
}
if (GetLongPathName(path, new_path, new_path_length) == 0) {
if (GetLongPathName(path, new_path, new_path_length) != 0) {
path = new_path;
path_length = new_path_length;
} else {
free(new_path);
return 1;
new_path = NULL;
}
path = new_path;
path_length = new_path_length;
}
#endif
free_path = path_copy = tsrm_strndup(path, path_length);
@@ -458,7 +465,11 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
}
free(old_state);
#ifdef TSRM_WIN32
if (new_path) {
free(new_path);
}
#endif
free(free_path);
#if VIRTUAL_CWD_DEBUG
fprintf (stderr, "virtual_file_ex() = %s\n",state->cwd);
+2 -2
View File
@@ -1,8 +1,8 @@
/*
+----------------------------------------------------------------------+
| PHP Version 4 |
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2003 The PHP Group |
| Copyright (c) 1997-2004 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.0 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
+9 -7
View File
@@ -1,8 +1,8 @@
/*
+----------------------------------------------------------------------+
| PHP Version 4 |
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2003 The PHP Group |
| Copyright (c) 1997-2004 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.0 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -29,6 +29,7 @@
#include "TSRM.h"
#ifdef TSRM_WIN32
#include "tsrm_win32.h"
#ifdef ZTS
@@ -377,10 +378,11 @@ TSRM_API int shmctl(int key, int cmd, struct shmid_ds *buf) {
TSRM_API char *realpath(char *orig_path, char *buffer)
{
int ret = GetFullPathName(orig_path, _MAX_PATH, buffer, NULL);
if(!ret || ret > _MAX_PATH) {
return NULL;
}
return buffer;
int ret = GetFullPathName(orig_path, _MAX_PATH, buffer, NULL);
if(!ret || ret > _MAX_PATH) {
return NULL;
}
return buffer;
}
#endif
+2 -2
View File
@@ -1,8 +1,8 @@
/*
+----------------------------------------------------------------------+
| PHP Version 4 |
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2003 The PHP Group |
| Copyright (c) 1997-2004 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.0 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
+17455
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
+56
View File
@@ -0,0 +1,56 @@
--------------------------------------------------------------------
The Zend Engine License, Version 2.00
Copyright (c) 1999-2003 Zend Technologies Ltd. All rights reserved.
--------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
modification, is permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
3. The names "Zend" and "Zend Engine" must not be used to endorse
or promote products derived from this software without prior
permission from Zend Technologies Ltd. For written permission,
please contact license@zend.com.
4. Zend Technologies Ltd. may publish revised and/or new versions
of the license from time to time. Each version will be given a
distinguishing version number.
Once covered code has been published under a particular version
of the license, you may always continue to use it under the
terms of that version. You may also choose to use such covered
code under the terms of any subsequent version of the license
published by Zend Technologies Ltd. No one other than Zend
Technologies Ltd. has the right to modify the terms applicable
to covered code created under this License.
5. Redistributions of any form whatsoever must retain the following
acknowledgment:
"This product includes the Zend Engine, freely available at
http://www.zend.com"
6. All advertising materials mentioning features or use of this
software must display the following acknowledgment:
"The Zend Engine is freely available at http://www.zend.com"
THIS SOFTWARE IS PROVIDED BY ZEND TECHNOLOGIES LTD. ``AS IS'' AND
ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ZEND
TECHNOLOGIES LTD. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
--------------------------------------------------------------------
+53
View File
@@ -0,0 +1,53 @@
## Process this file with automake to produce Makefile.in -*- makefile -*-
#CLEANFILES = zend_language_parser.c zend_language_parser.h zend_language_scanner.c zend_language_parser.output zend_ini_parser.c zend_ini_parser.h zend_ini_scanner.c zend_ini_parser.output
AUTOMAKE_OPTIONS=foreign
noinst_LTLIBRARIES=libZend.la
libZend_la_SOURCES=\
zend_language_parser.y zend_language_scanner.l \
zend_ini_parser.y zend_ini_scanner.l \
zend_alloc.c zend_compile.c zend_constants.c zend_dynamic_array.c \
zend_execute.c zend_execute_API.c zend_highlight.c zend_llist.c \
zend_opcode.c zend_operators.c zend_ptr_stack.c zend_stack.c \
zend_variables.c zend.c zend_API.c zend_extensions.c zend_hash.c \
zend_list.c zend_indent.c zend_builtin_functions.c zend_sprintf.c \
zend_ini.c zend_qsort.c zend_objects.c zend_object_handlers.c \
zend_objects_API.c zend_ts_hash.c zend_stream.c zend_mm.c \
zend_default_classes.c zend_reflection_api.c \
zend_iterators.c zend_interfaces.c zend_exceptions.c
libZend_la_LDFLAGS =
libZend_la_LIBADD = @ZEND_EXTRA_LIBS@
# automake isn't too clever about "non-standard" use of lex and yacc
$(libZend_la_OBJECTS): zend_language_parser.h
zend_ini_scanner.lo: zend_ini_parser.h
# Language parser/scanner rules
zend_language_scanner.c: $(srcdir)/zend_language_scanner.l
$(LEX) -Pzend -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_language_scanner.l
zend_language_parser.h: zend_language_parser.c
zend_language_parser.c: $(srcdir)/zend_language_parser.y
$(YACC) -p zend -v -d $(srcdir)/zend_language_parser.y -o zend_language_parser.c
# INI parser/scanner rules
zend_ini_parser.c: $(srcdir)/zend_ini_parser.y
$(YACC) -p ini_ -v -d $(srcdir)/zend_ini_parser.y -o zend_ini_parser.c
zend_ini_scanner.c: $(srcdir)/zend_ini_scanner.l
$(LEX) -Pini_ -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_ini_scanner.l
zend_ini_parser.h: zend_ini_parser.c
depend:
zend_execute.lo: $(srcdir)/zend_execute.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(INLINE_CFLAGS) -c $(srcdir)/zend_execute.c
+195
View File
@@ -0,0 +1,195 @@
Creating an object
------------------
Object can be created in the following ways:
1. As a result of a function call. E.g.:
$foo = create_new_foo("parameter");
$foo->run();
The function should create a new zval, create new object and get the
handle for it, set handle and handler table as needed. Note that the
handle is the only ID of the object, so it should be enough to
identify it.
2. Overriding create_object handler for class. E.g.:
$foo = new Java("some.Class.here", "parameter");
$foo->run();
The create_object handler function should create a new zval, create
new object and get the handle for it, set handle and handler table as
needed, and also provide constructor method that would handle
constructor call. The get_constructor handler table entry should be
used for that. Do not rely class entry's constructor, unless you refer
to it from get_constructor handler.
Object maintenance
------------------
The handlers add_ref and del_ref are called when a new zval referring
to the object is created. This does not create a new object - both
zvals still refer to the same object.
clone_obj handler should create a new object, identical to an old one,
but being a separate entity.
delete_obj should destroy an object, all references to it become
invalid.
Object access - read
--------------------
read_property is used to read object's property. This value is not
meant to be changed. The handler returns zval * with the value.
Object access - write
---------------------
write_property is used to directly write object's property by
name. This handler is used to assign property variables or to change them
in operations like += or ++ (unless get_property_zval_ptr is also set).
get_property_zval_ptr is used to obtain pointer to modifiable zval for
operations like += or ++. This should be used only if your object model
stores properties as real zval's that can be modified from outside.
Otherwise this handler should be NULL and the engine will use
read_property and write_property instead.
get_property_ptr is used to obtain zval ** for future writing to
it. If your object properties are stored as zval*, return real place
where the property is stored. If the aren't, the best way is to create
proxy object and handle it via get and set methods (see below).
This method is meant to be used for send-by-reference and assign-by-reference
use of object properties. If you don;t want to implement property
referencing for your objects, you can set this handler to NULL.
get and set handlers are used when engine needs to access the object
as a value. E.g., in the following situation:
$foo =& $obj->bar;
$foo = 1;
if $foo is an object (e.g., proxy object from get_property_ptr) it
would be accessed using write handler.
Object access - method call
---------------------------
get_method handler is used to find method description by name. It
should set right type, function name and parameter mask for the
method. If the type is ZEND_OVERLOADED_FUNCTION, the method would be
called via call_method handler, otherwise it would be called with
standard Zend means.
get_constructor performs the same function as get_method, but for the
object constructor.
call_method handler is used to perform method call. Parameters are
passed like to any other Zend internal function.
Object - comparison
-------------------
Objects can be compared via compare_objects handler. This is used with
== operation, === compares objects by handles, i.e., return true if
and only if it's really the same object. Note that objects from
different object types (i.e., having different handlers) can not be
compared.
Objects - reflection
--------------------
get_class_name is used to retrieve class name of the object.
get_class_entry returns class entry (zend_class_entry) for the object,
in case there exists PHP class for it.
No other reflection functions are currently implemented.
Objects - data structures and handlers
---------------------------------------
The object is represented by the following structure:
struct _zend_object_value {
zend_object_handle handle;
zend_object_handlers *handlers;
};
handle is an ID of the object among the objects of the same type (not
class!). The type of the object and how it behaves is determined by
the handler table.
typedef struct _zend_object_handlers {
zend_object_add_ref_t add_ref;
zend_object_del_ref_t del_ref;
zend_object_delete_obj_t delete_obj;
zend_object_clone_obj_t clone_obj;
zend_object_read_property_t read_property;
zend_object_write_property_t write_property;
zend_object_get_property_ptr_t get_property_ptr;
zend_object_get_property_zval_ptr_t get_property_zval_ptr;
zend_object_get_t get;
zend_object_set_t set;
zend_object_has_property_t has_property;
zend_object_unset_property_t unset_property;
zend_object_get_properties_t get_properties;
zend_object_get_method_t get_method;
zend_object_call_method_t call_method;
zend_object_get_constructor_t get_constructor;
zend_object_get_class_entry_t get_class_entry;
zend_object_get_class_name_t get_class_name;
zend_object_compare_t compare_objects;
} zend_object_handlers;
See zend_object_handlers.h for prototypes. All objects are passed as zval's.
Handlers explained:
add_ref - called when a copy of the object handle is created.
del_ref - called when a copy of the object handle is destroyed.
delete_obj - called when an object needs to be destroyed.
clone_obj - called when a new object identical to an old one should be
created (unlike Zend Engine 1, this never happens unless explicitly
asked for).
read_property - returns zval *, containing the value of the
property. Is used when value of the property should be retrieved for
reading.
write_property - assigns value to certain property of the object.
get_property_zval_ptr - retrieves zval** for being directly modified by
the engine. If your properties are not zval's, don't define it.
get_property_ptr - retrieves zval** for the property of the value, to
be used for read and write. If object properties are not zval's
natively, this method should create and return proxy object for use
with get and set methods.
get - retrieves zval* for object contents. To be used mainly with
proxy objects from get_property_ptr, but also may be used for
convert_to_* functions.
set - sets value for object contents. To be used mainly with
proxy objects from get_property_ptr.
has_property - checks if the object has certain property set.
unset_property - removes value for the property of the object
get_method - retrieves description of the method
call_method - calls the method (parameters should be put on stack like
for any other PHP internal function).
get_constructor - get description for the object constructor method
get_class_entry - should return the class entry for the object
get_class_name - get the name of the class the object belongs to
compare_objects - compares if two objects are equal
+136
View File
@@ -0,0 +1,136 @@
Revamped object model using object handles
===========================================
Background
----------
In the Zend Engine 1.0 (and its predecessor the PHP 3 scripting
engine) the object model's design is that instantiated objects are
language values. This means that when programmers are performing
operations, such variable assignment and passing parameters to
functions, objects are handled very similarly to the way other
primitive types are handled such as integers and strings.
Semantically this means that the whole object is being copied. The
approach Java takes is different where one refers to objects by handle
and not by value (one can think of a handle as an objects' ID).
Need
----
Unfortunately, the approach taken up to now has severely limited the
Zend Engine's object oriented model, both feature and simplicity
wise. One of the main problems with the former approach is that object
instantiation and duplication is very hard to control, a problem which
can not only lead to inefficient development but also often to strange
run-time behavior. Changing the object model to a handle oriented
model will allow the addressing of many needs such as destructors,
de-referencing method return values, tight control of object
duplication and more.
Overview
--------
The proposed object model is very much influenced by the Java
model. In general, when you create a new object you will be getting a
handle to the object instead of the object itself. When this handle is
sent to functions, assigned and copied it is only the handle which is
copied/sent/assigned. The object itself is never copied nor
duplicated. This results in all handles of this object to always point
at the same object making it a very consistent solution and saving
unnecessary duplication and confusing behavior.
Functionality
-------------
After this change the basic use of objects will be almost identical to
previous versions of the scripting engine. However, you won't bump
into awkward and confusing copying & destructing of objects. In order
to create and use a new object instance you will do the following:
$object = new MyClass(); $object->method();
The previous code will assign $object the handle of a new instance of
the class MyClass and call one of its methods.
Consider the following code:
1 class MyClass
2 {
3 function setMember($value)
4 {
5 $this->member = $value;
6 }
7
8 function getMember()
9 {
10 return $this->member;
11 }
12 }
13
14 function foo($obj)
15 {
16 $obj->setMember("foo");
17 }
18
19 $object = new MyClass();
20 $object->setMember("bar");
21 foo($object);
22 print $object->getMember();
Without the new Java-like handles, at line 20 the objects' data member
member is set to the string value of "bar". Because of the internal
representation of objects in the Zend Engine 1.0, the object is marked
as a reference, and when it is sent by value to the function foo, it
is duplicated (!). Therefore, the call to foo() on line 21 will
result in the $obj->setMember("foo") call being called on a duplicate
of $object. Line 22 will then result in "bar" being printed.
This is how the scripting engine has worked until today. Most
developers are probably unaware of the fact that they aren't always
talking to the same object but often duplicates; others may have
realized this can usually be solved by always passing objects by
reference (unless a replica is actually desired, which is uncommon).
The new object model will allow for a much more intuitive
implementation of the code. On line 21, the object's handle (ID) is
passed to foo() by value. Inside foo(), the object is fetched
according to this handle and, therefore, the setMember() method is
called on the originally instantiated object and not a copy. Line 22
will therefore result in "foo" being printed. This approach gives
developers tighter control of when objects are created and duplicated.
An additional not-as-important benefit is that the object handle will
be passed to foo() by value, which most probably will also save
unnecessary duplication of the value containing the ID itself and thus
additionally improving run-time performance.
This was just a simple description of why the new object model solves
awkward behavior and makes object handling much easier, intuitive and
efficient. The importance of this change goes far beyond what is
mentioned in this section as you will see in further sections which
describe new features with a majority of them being based on this
change.
Compatibility Notes
--------------------
Many PHP programmers aren't even aware of the copying quirks of the
current object model and, therefore, there is a relatively good chance
that the amount of PHP applications that will work out of the box or
after a very small amount of modifications would be high.
To simplify migration, version 2.0 will support an optional
'auto-clone' feature, which will perform a cloning of the object
whenever it would have been copied in version 1.0. Optionally, it
will also be possible to request that the engine will emit an E_NOTICE
message whenever such an automatic clone occurs, in order to allow
developers to gradually migrate to the version 2.0-style behavior
(without automatic clones).
Dependencies
------------
The new object model is not dependent on other features. Many of the
other Zend Engine 2.0 features, such as the $foo->bar()->barbara()
syntax, destructors and others completely rely on this new object
model.
+169
View File
@@ -0,0 +1,169 @@
Title: Zend 2.0 Namespaces
Version: $Revision$
Status: declined
Maintainer: Stig S. Bakken <ssb@php.net>
Created: 2001-09-08
Modified: 2001-09-08
1. Background/Need
==================
PHP and Zend 1.0 have come to a point where a lot of reusable code is
being written; from simple functions and classes to entire application
frameworks. It is becoming increasingly difficult to avoid symbol
name collisions with the current scoping methods.
The symbol scopes available in Zend 1.0 are the global scope, the
class scope and the function scope. All scopes but classes may
contain variables, only the class and global scopes may contain
functions, while only the global scope may contain constants and
classes. This means that all of Zend 1.0's scoping methods are
inherently limited for solving symbol name collision problems.
2. Overview
===========
Namespaces in Zend 2.0 provide a way to manage the symbol collision
problem by making it possible to define multiple symbol tables able to
contain all types of symbols. Zend will get the notion of a current
namespace, defaulting to the current global one. The current name
space may be changed on a file-by-file basis. Symbols in other name
spaces than the current one may be referenced using a new namespace
operator. It will be possible to "import" symbols from one namespace
into another.
3. Functionality
================
3.1. Namespace Syntax
=====================
The namespace operator ":" is used to refer to symbols in other
namespaces than the current one:
Class: Namespace:class
Function: Namespace:function
Static method: Namespace:class::method
Variable: $Namespace:variable
Constant: Namespace:CONSTANT
Class variable: $Namespace:class::variable
To refer to symbols in the global namespace, symbols are prefixed with
only the namespace operator:
Class: :class
Function: :function
Static method: :class::method
Variable: $:variable
Constant: :CONSTANT
Class variable: $:class::variable
Note: $:variable will effectively be just another syntax for
$GLOBALS['variable'].
A namespace may have a name containing a ":", it is always the last
":" character in the symbol qualifier that is the actual namespace
operator:
Class: Name:Space:class
Function: Name:Space:function
Static method: Name:Space:class::method
Variable: $Name:Space:variable
Constant: Name:Space:CONSTANT
Class variable: $Name:Space:class::variable
(Here, the ":" between "Name" and "Space" is part of the name, it is
the one after "Space" that is the namespace operator.)
3.2. Defining Namespaces
========================
Individual files may define a namespace that will apply to the entire
file. If no "namespace" operator occurs in the file, it will be in
the global namespace:
1 namespace HTML;
2
3 class Form {
4 function Form() {
5 // constructor
6 }
7 // ...
8 }
Or with the "nested" name syntax:
1 namespace HTML:Form;
2
3 class Image {
4 var $src;
5 function Image($src) {
6 $this->src = $src;
7 }
8 // ...
9 }
Code executed within the "HTML" namespace may refer to the Form class
as just "Form". Code executed from within other namespaces has to
refer to it as "HTML:Form". The "namespace" statement must occur
before any other statements in the file.
# [ssb 2001-09-08]:
# Should it be possible to "add" symbols to a namespace by including a
# second file with the same namespace statement?
3.3. Importing Symbols
======================
It is possible to import symbols from another namespace into the
current one with the "import" statement:
import * from HTML; // all symbols
import Form from HTML; // single symbols
import Form,Table from HTML; // multiple symbols
There is a potential for name clashes between symols of different
types that have the same qualifier syntax. These are resolved in this
order: class, function, constant.
Optionally, the symbol type may be explicitly given to import (as
"class", "function", "variable" or "constant"):
import class Form from HTML;
And finally, you may import all symbols of a given type:
import constant * from HTML:Table;
The namespace with its symbols must already be defined before using
"import".
4. Compatibility Notes
======================
Old code that does not take advantage of namespaces will run without
modifications.
5. Dependencies
===============
The class variable syntax depends on this class variables being
implemented in the new ZE2 object model.
6. Acknowledgements
===================
Andi Gutmans <andi@zend.com> and Zeev Suraski <zeev@zend.com> for
initial ZE2 namespaces proposal
Dean Hall <php@apt7.com> for the initial symbol qualification syntax
+72
View File
@@ -0,0 +1,72 @@
Title: Loose type requirements for functions
Version: $Revision$
Status: draft
Maintainer: Brian Moon <brianm@dealnews.com>
Created: 2001-09-17
Modified: 2001-09-17
1. Background/Need
==================
Many internal function of PHP will reject parameters because of their
type (the array and variable function come to mind). For userland
this is not an easy task as there is no uniform way to do it. An
addition to the engine for requiring loose types would allow
delevopers to know that the data passed to their functions is of the
correct type and reduce the need for duplicating the same code in
every function to check for the type of data.
2. Overview
===========
Loose typing mostly means evaluating the contents of the variable and
not the type of the variable itself. The requirements for this would
and should work much like several of the is_* functions do now.
The typing of parameters would be optional and those not typed would
simply continue to be treated as they are now.
3. Functionality
================
3.1. Allowed Types
==================
Only loose types should be needed to ensure the data is usable by the
function. Duplicating the functionallity of is_scalar, is_resource,
is_array and is_object should give developers all the information they
need to use a variable correctly.
3.2. Syntax
===========
The current function syntax should be expanded to allow typing of
variables inline in a C style.
function foo ($var){
}
could be changed to require an array such as:
function foo (array $var){
}
3.3. Errors
===========
Mis-matches in type should be reported as fatal errors and should halt
the execution of a script as that function can not be run and code
following could not reliably run.
4. Compatibility Notes
======================
Old code that does not take advantage of this will run without
modifications.
+1125
View File
File diff suppressed because it is too large. Load diff
+602
View File
@@ -0,0 +1,602 @@
# Microsoft Developer Studio Project File - Name="Zend" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=Zend - Win32 Release_inline
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "Zend.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "Zend.mak" CFG="Zend - Win32 Release_inline"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "Zend - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "Zend - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE "Zend - Win32 Release_inline" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "Zend - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDebug" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug" /D "_LIB" /D "Zend_EXPORTS" /D ZEND_DEBUG=0 /D "LIBZEND_EXPORTS" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /D "ZEND_WIN32" /FR /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x40d /d "NDebug"
# ADD RSC /l 0x40d /d "NDebug"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "Zend - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_Debug" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /D "_Debug" /D "_LIB" /D "LIBZEND_EXPORTS" /D "TSRM_EXPORTS" /D ZEND_DEBUG=1 /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c
# ADD BASE RSC /l 0x40d /d "_Debug"
# ADD RSC /l 0x40d /d "_Debug"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "Zend - Win32 Release_inline"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "Zend___Win32_Release_inline"
# PROP BASE Intermediate_Dir "Zend___Win32_Release_inline"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Release_inline"
# PROP Intermediate_Dir "Release_inline"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug" /D "_LIB" /D "Zend_EXPORTS" /D ZEND_DEBUG=0 /D "LIBZEND_EXPORTS" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /FR /FD /c
# SUBTRACT BASE CPP /YX
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug" /D "_LIB" /D "Zend_EXPORTS" /D "LIBZEND_EXPORTS" /D "TSRM_EXPORTS" /D ZEND_DEBUG=0 /D "ZEND_WIN32_FORCE_INLINE" /D "WIN32" /D "_MBCS" /D "ZEND_WIN32" /FR /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x40d /d "NDebug"
# ADD RSC /l 0x40d /d "NDebug"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
# Name "Zend - Win32 Release"
# Name "Zend - Win32 Debug"
# Name "Zend - Win32 Release_inline"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\zend.c
# End Source File
# Begin Source File
SOURCE=.\zend_alloc.c
# End Source File
# Begin Source File
SOURCE=.\zend_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_builtin_functions.c
# End Source File
# Begin Source File
SOURCE=.\zend_compile.c
# End Source File
# Begin Source File
SOURCE=.\zend_constants.c
# End Source File
# Begin Source File
SOURCE=.\zend_default_classes.c
# End Source File
# Begin Source File
SOURCE=.\zend_interfaces.c
# End Source File
# Begin Source File
SOURCE=.\zend_dynamic_array.c
# End Source File
# Begin Source File
SOURCE=.\zend_execute.c
# End Source File
# Begin Source File
SOURCE=.\zend_execute_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_extensions.c
# End Source File
# Begin Source File
SOURCE=.\zend_hash.c
# End Source File
# Begin Source File
SOURCE=.\zend_highlight.c
# End Source File
# Begin Source File
SOURCE=.\zend_indent.c
# End Source File
# Begin Source File
SOURCE=.\zend_ini.c
# End Source File
# Begin Source File
SOURCE=.\zend_ini_parser.c
# End Source File
# Begin Source File
SOURCE=.\zend_ini_scanner.c
# End Source File
# Begin Source File
SOURCE=".\zend_language_parser.c"
# End Source File
# Begin Source File
SOURCE=".\zend_language_scanner.c"
# End Source File
# Begin Source File
SOURCE=.\zend_list.c
# End Source File
# Begin Source File
SOURCE=.\zend_llist.c
# End Source File
# Begin Source File
SOURCE=.\zend_mm.c
# End Source File
# Begin Source File
SOURCE=.\zend_object_handlers.c
# End Source File
# Begin Source File
SOURCE=.\zend_objects.c
# End Source File
# Begin Source File
SOURCE=.\zend_objects_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_opcode.c
# End Source File
# Begin Source File
SOURCE=.\zend_operators.c
# End Source File
# Begin Source File
SOURCE=.\zend_ptr_stack.c
# End Source File
# Begin Source File
SOURCE=.\zend_qsort.c
# End Source File
# Begin Source File
SOURCE=.\zend_reflection_api.c
# End Source File
# Begin Source File
SOURCE=.\zend_sprintf.c
# End Source File
# Begin Source File
SOURCE=.\zend_stack.c
# End Source File
# Begin Source File
SOURCE=.\zend_stream.c
# End Source File
# Begin Source File
SOURCE=.\zend_ts_hash.c
# End Source File
# Begin Source File
SOURCE=.\zend_variables.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\FlexLexer.h
# End Source File
# Begin Source File
SOURCE=.\zend.h
# End Source File
# Begin Source File
SOURCE=.\zend_alloc.h
# End Source File
# Begin Source File
SOURCE=.\zend_API.h
# End Source File
# Begin Source File
SOURCE=.\zend_builtin_functions.h
# End Source File
# Begin Source File
SOURCE=.\zend_compile.h
# End Source File
# Begin Source File
SOURCE=.\zend_config.w32.h
# End Source File
# Begin Source File
SOURCE=.\zend_constants.h
# End Source File
# Begin Source File
SOURCE=.\zend_default_classes.h
# End Source File
# Begin Source File
SOURCE=.\zend_interfaces.h
# End Source File
# Begin Source File
SOURCE=.\zend_dynamic_array.h
# End Source File
# Begin Source File
SOURCE=.\zend_errors.h
# End Source File
# Begin Source File
SOURCE=.\zend_execute.h
# End Source File
# Begin Source File
SOURCE=.\zend_execute_locks.h
# End Source File
# Begin Source File
SOURCE=.\zend_extensions.h
# End Source File
# Begin Source File
SOURCE=.\zend_fast_cache.h
# End Source File
# Begin Source File
SOURCE=.\zend_globals.h
# End Source File
# Begin Source File
SOURCE=.\zend_globals_macros.h
# End Source File
# Begin Source File
SOURCE=.\zend_hash.h
# End Source File
# Begin Source File
SOURCE=.\zend_highlight.h
# End Source File
# Begin Source File
SOURCE=.\zend_indent.h
# End Source File
# Begin Source File
SOURCE=.\zend_ini.h
# End Source File
# Begin Source File
SOURCE=.\zend_ini_parser.h
# End Source File
# Begin Source File
SOURCE=.\zend_ini_scanner.h
# End Source File
# Begin Source File
SOURCE=.\zend_istdiostream.h
# End Source File
# Begin Source File
SOURCE=".\zend_language_parser.h"
# End Source File
# Begin Source File
SOURCE=".\zend_language_scanner.h"
# End Source File
# Begin Source File
SOURCE=.\zend_list.h
# End Source File
# Begin Source File
SOURCE=.\zend_llist.h
# End Source File
# Begin Source File
SOURCE=.\zend_mm.h
# End Source File
# Begin Source File
SOURCE=.\zend_modules.h
# End Source File
# Begin Source File
SOURCE=.\zend_object_handlers.h
# End Source File
# Begin Source File
SOURCE=.\zend_objects.h
# End Source File
# Begin Source File
SOURCE=.\zend_objects_API.h
# End Source File
# Begin Source File
SOURCE=.\zend_operators.h
# End Source File
# Begin Source File
SOURCE=.\zend_ptr_stack.h
# End Source File
# Begin Source File
SOURCE=.\zend_qsort.h
# End Source File
# Begin Source File
SOURCE=.\zend_reflection_api.h
# End Source File
# Begin Source File
SOURCE=.\zend_stack.h
# End Source File
# Begin Source File
SOURCE=.\zend_stream.h
# End Source File
# Begin Source File
SOURCE=.\zend_ts_hash.h
# End Source File
# Begin Source File
SOURCE=.\zend_variables.h
# End Source File
# End Group
# Begin Group "Parsers"
# PROP Default_Filter "y"
# Begin Source File
SOURCE=.\zend_ini_parser.y
!IF "$(CFG)" == "Zend - Win32 Release"
!ELSEIF "$(CFG)" == "Zend - Win32 Debug"
# Begin Custom Build
InputDir=.
InputPath=.\zend_ini_parser.y
BuildCmds= \
bison --output=zend_ini_parser.c -v -d -p ini_ zend_ini_parser.y
"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_ini_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "Zend - Win32 Release_inline"
!ENDIF
# End Source File
# Begin Source File
SOURCE=".\zend_language_parser.y"
!IF "$(CFG)" == "Zend - Win32 Release"
# Begin Custom Build
InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_language_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "Zend - Win32 Debug"
# Begin Custom Build
InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_language_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "Zend - Win32 Release_inline"
# Begin Custom Build
InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_language_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ENDIF
# End Source File
# End Group
# Begin Group "Scanners"
# PROP Default_Filter "l"
# Begin Source File
SOURCE=.\flex.skl
# End Source File
# Begin Source File
SOURCE=.\zend_ini_scanner.l
!IF "$(CFG)" == "Zend - Win32 Release"
!ELSEIF "$(CFG)" == "Zend - Win32 Debug"
# Begin Custom Build
InputPath=.\zend_ini_scanner.l
"zend_ini_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pini_ -ozend_ini_scanner.c zend_ini_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "Zend - Win32 Release_inline"
!ENDIF
# End Source File
# Begin Source File
SOURCE=".\zend_language_scanner.l"
!IF "$(CFG)" == "Zend - Win32 Release"
# Begin Custom Build
InputPath=".\zend_language_scanner.l"
"zend_language_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -i -Pzend -ozend_language_scanner.c zend_language_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "Zend - Win32 Debug"
# Begin Custom Build
InputPath=".\zend_language_scanner.l"
"zend_language_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -i -Pzend -ozend_language_scanner.c zend_language_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "Zend - Win32 Release_inline"
# Begin Custom Build
InputPath=".\zend_language_scanner.l"
"zend_language_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -i -Pzend -ozend_language_scanner.c zend_language_scanner.l
# End Custom Build
!ENDIF
# End Source File
# End Group
# Begin Group "Text Files"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\ZEND_BUGS
# End Source File
# Begin Source File
SOURCE=.\ZEND_CHANGES
# End Source File
# Begin Source File
SOURCE=.\ZEND_TODO
# End Source File
# End Group
# Begin Group "Resources"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\zend.ico
# End Source File
# End Group
# End Target
# End Project
+250
View File
@@ -0,0 +1,250 @@
dnl
dnl $Id$
dnl
dnl This file contains Zend specific autoconf functions.
dnl
AC_DEFUN(LIBZEND_BISON_CHECK,[
if test "$YACC" != "bison -y"; then
AC_MSG_WARN(You will need bison if you want to regenerate the Zend parser.)
else
AC_MSG_CHECKING(bison version)
set `bison --version| grep 'GNU Bison' | cut -d ' ' -f 4 | sed -e 's/\./ /' | tr -d 'a-z'`
if test "${1}" = "1" -a "${2}" -lt "28"; then
AC_MSG_WARN(You will need bison 1.28 if you want to regenerate the Zend parser (found ${1}.${2}).)
fi
AC_MSG_RESULT(${1}.${2} (ok))
fi
])
AC_DEFUN(LIBZEND_BASIC_CHECKS,[
AC_REQUIRE([AC_PROG_YACC])
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_PROG_CC_C_O])
AC_REQUIRE([AC_PROG_LEX])
AC_REQUIRE([AC_HEADER_STDC])
LIBZEND_BISON_CHECK
dnl Ugly hack to get around a problem with gcc on AIX.
if test "$CC" = "gcc" -a "$ac_cv_prog_cc_g" = "yes" -a \
"`uname -sv`" = "AIX 4"; then
CFLAGS=`echo $CFLAGS | sed -e 's/-g//'`
fi
dnl Hack to work around a Mac OS X cpp problem
dnl Known versions needing this workaround are 5.3 and 5.4
if test "$ac_cv_prog_gcc" = "yes" -a "`uname -s`" = "Rhapsody"; then
CPPFLAGS="$CPPFLAGS -traditional-cpp"
fi
AC_CHECK_HEADERS(
limits.h \
malloc.h \
string.h \
unistd.h \
stdarg.h \
sys/types.h \
sys/time.h \
signal.h \
unix.h \
stdlib.h \
mach-o/dyld.h \
dlfcn.h)
AC_TYPE_SIZE_T
AC_TYPE_SIGNAL
AC_DEFUN(LIBZEND_LIBDL_CHECKS,[
AC_CHECK_LIB(dl, dlopen, [LIBS="-ldl $LIBS"])
AC_CHECK_FUNC(dlopen,[AC_DEFINE(HAVE_LIBDL, 1,[ ])])
])
AC_DEFUN(LIBZEND_DLSYM_CHECK,[
dnl
dnl Ugly hack to check if dlsym() requires a leading underscore in symbol name.
dnl
AC_MSG_CHECKING([whether dlsym() requires a leading underscore in symbol names])
_LT_AC_TRY_DLOPEN_SELF([
AC_MSG_RESULT(no)
], [
AC_MSG_RESULT(yes)
AC_DEFINE(DLSYM_NEEDS_UNDERSCORE, 1, [Define if dlsym() requires a leading underscore in symbol names. ])
], [
AC_MSG_RESULT(no)
], [])
])
dnl This is required for QNX and may be some BSD derived systems
AC_CHECK_TYPE( uint, unsigned int )
AC_CHECK_TYPE( ulong, unsigned long )
dnl Checks for library functions.
AC_FUNC_VPRINTF
AC_FUNC_MEMCMP
AC_FUNC_ALLOCA
AC_CHECK_FUNCS(memcpy strdup getpid kill strtod strtol finite fpclass)
AC_ZEND_BROKEN_SPRINTF
AC_CHECK_FUNCS(finite isfinite isinf isnan)
ZEND_FP_EXCEPT
])
AC_DEFUN(LIBZEND_ENABLE_DEBUG,[
AC_ARG_ENABLE(debug,
[ --enable-debug Compile with debugging symbols],[
ZEND_DEBUG=$enableval
],[
ZEND_DEBUG=no
])
])
AC_DEFUN(LIBZEND_OTHER_CHECKS,[
AC_ARG_ENABLE(maintainer-zts,
[ --enable-maintainer-zts Enable thread safety - for code maintainers only],[
ZEND_MAINTAINER_ZTS=$enableval
],[
ZEND_MAINTAINER_ZTS=no
])
AC_ARG_ENABLE(inline-optimization,
[ --disable-inline-optimization
If building zend_execute.lo fails, try this switch.],[
ZEND_INLINE_OPTIMIZATION=$enableval
],[
ZEND_INLINE_OPTIMIZATION=yes
])
AC_ARG_ENABLE(memory-limit,
[ --enable-memory-limit Compile with memory limit support. ], [
ZEND_MEMORY_LIMIT=$enableval
],[
ZEND_MEMORY_LIMIT=no
])
AC_ARG_ENABLE(zend-multibyte,
[ --enable-zend-multibyte Compile with zend multibyte support. ], [
ZEND_MULTIBYTE=$enableval
],[
ZEND_MULTIBYTE=no
])
AC_MSG_CHECKING(whether to enable thread-safety)
AC_MSG_RESULT($ZEND_MAINTAINER_ZTS)
AC_MSG_CHECKING(whether to enable inline optimization for GCC)
AC_MSG_RESULT($ZEND_INLINE_OPTIMIZATION)
AC_MSG_CHECKING(whether to enable a memory limit)
AC_MSG_RESULT($ZEND_MEMORY_LIMIT)
AC_MSG_CHECKING(whether to enable Zend debugging)
AC_MSG_RESULT($ZEND_DEBUG)
AC_MSG_CHECKING(whether to enable Zend multibyte)
AC_MSG_RESULT($ZEND_MULTIBYTE)
if test "$ZEND_DEBUG" = "yes"; then
AC_DEFINE(ZEND_DEBUG,1,[ ])
echo " $CFLAGS" | grep ' -g' >/dev/null || DEBUG_CFLAGS="-g"
if test "$CFLAGS" = "-g -O2"; then
CFLAGS=-g
fi
test -n "$GCC" && DEBUG_CFLAGS="$DEBUG_CFLAGS -Wall"
test -n "$GCC" && test "$USE_MAINTAINER_MODE" = "yes" && \
DEBUG_CFLAGS="$DEBUG_CFLAGS -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations"
else
AC_DEFINE(ZEND_DEBUG,0,[ ])
fi
test -n "$DEBUG_CFLAGS" && CFLAGS="$CFLAGS $DEBUG_CFLAGS"
if test "$ZEND_MAINTAINER_ZTS" = "yes"; then
AC_DEFINE(ZTS,1,[ ])
CFLAGS="$CFLAGS -DZTS"
LIBZEND_CPLUSPLUS_CHECKS
fi
if test "$ZEND_MEMORY_LIMIT" = "yes"; then
AC_DEFINE(MEMORY_LIMIT, 1, [Memory limit])
else
AC_DEFINE(MEMORY_LIMIT, 0, [Memory limit])
fi
if test "$ZEND_MULTIBYTE" = "yes"; then
AC_DEFINE(ZEND_MULTIBYTE, 1, [ ])
fi
changequote({,})
if test -n "$GCC" && test "$ZEND_INLINE_OPTIMIZATION" != "yes"; then
INLINE_CFLAGS=`echo $ac_n "$CFLAGS $ac_c" | sed s/-O[0-9s]*//`
else
INLINE_CFLAGS="$CFLAGS"
fi
changequote([,])
AC_C_INLINE
AC_SUBST(INLINE_CFLAGS)
dnl test and set the alignment define for ZEND_MM
dnl this also does the logarithmic test for ZEND_MM.
AC_MSG_CHECKING(for MM alignment and log values)
AC_TRY_RUN([
#include <stdio.h>
typedef union _mm_align_test {
void *ptr;
double dbl;
long lng;
} mm_align_test;
#if (defined (__GNUC__) && __GNUC__ >= 2)
#define ZEND_MM_ALIGNMENT (__alignof__ (mm_align_test))
#else
#define ZEND_MM_ALIGNMENT (sizeof(mm_align_test))
#endif
int main()
{
int i = ZEND_MM_ALIGNMENT;
int zeros = 0;
FILE *fp;
while (i & ~0x1) {
zeros++;
i = i >> 1;
}
fp = fopen("conftest.zend", "w");
fprintf(fp, "%d %d\n", ZEND_MM_ALIGNMENT, zeros);
fclose(fp);
exit(0);
}
], [
LIBZEND_MM_ALIGN=`cat conftest.zend | cut -d ' ' -f 1`
LIBZEND_MM_ALIGN_LOG2=`cat conftest.zend | cut -d ' ' -f 2`
AC_DEFINE_UNQUOTED(ZEND_MM_ALIGNMENT, $LIBZEND_MM_ALIGN, [ ])
AC_DEFINE_UNQUOTED(ZEND_MM_ALIGNMENT_LOG2, $LIBZEND_MM_ALIGN_LOG2, [ ])
])
AC_MSG_RESULT(done)
])
AC_DEFUN(LIBZEND_CPLUSPLUS_CHECKS,[
])
+258
View File
@@ -0,0 +1,258 @@
# Microsoft Developer Studio Generated Dependency File, included by ZendCore.mak
.\zend_alloc.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
.\alloca.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_config.w32.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_compile.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
.\zend_constants.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_constants.h"\
".\zend_operators.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_execute.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_constants.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
.\zend_highlight.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_highlight.h"\
".\zend_llist.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_language_parser.tab.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
.\zend_llist.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_llist.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_opcode.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
.\zend_operators.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
.\zend_ptr_stack.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_ptr_stack.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_stack.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_stack.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_variables.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_constants.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
".\zend_list.h"\
.\zend.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_operators.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_API.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_constants.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
".\zend_list.h"\
.\zend_hash.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_config.w32.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_ini.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
".\zend_ini.h"\
!IF "$(CFG)" == "ZendCore - Win32 Release"
!ELSEIF "$(CFG)" == "ZendCore - Win32 Debug"
!ENDIF
!IF "$(CFG)" == "ZendCore - Win32 Release"
!ELSEIF "$(CFG)" == "ZendCore - Win32 Debug"
!ENDIF
!IF "$(CFG)" == "ZendCore - Win32 Release"
!ELSEIF "$(CFG)" == "ZendCore - Win32 Debug"
!ENDIF
!IF "$(CFG)" == "ZendCore - Win32 Release"
!ELSEIF "$(CFG)" == "ZendCore - Win32 Debug"
!ENDIF
+735
View File
@@ -0,0 +1,735 @@
# Microsoft Developer Studio Project File - Name="ZendTS" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=ZendTS - Win32 Release_TSDbg
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "ZendTS.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "ZendTS.mak" CFG="ZendTS - Win32 Release_TSDbg"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "ZendTS - Win32 Release_TS" (based on "Win32 (x86) Static Library")
!MESSAGE "ZendTS - Win32 Debug_TS" (based on "Win32 (x86) Static Library")
!MESSAGE "ZendTS - Win32 Release_TS_inline" (based on "Win32 (x86) Static Library")
!MESSAGE "ZendTS - Win32 Release_TSDbg" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "ZendTS - Win32 Release_TS"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "Release_TS"
# PROP BASE Intermediate_Dir "Release_TS"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Release_TS"
# PROP Intermediate_Dir "Release_TS"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDebug_TS" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug_TS" /D ZEND_DEBUG=0 /D _WIN32_WINNT=0x400 /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x40d /d "NDebug_TS"
# ADD RSC /l 0x40d /d "NDebug_TS"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "ZendTS - Win32 Debug_TS"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "Debug_TS"
# PROP BASE Intermediate_Dir "Debug_TS"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Debug_TS"
# PROP Intermediate_Dir "Debug_TS"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_Debug_TS" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /D "_Debug_TS" /D ZEND_DEBUG=1 /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c
# ADD BASE RSC /l 0x40d /d "_Debug_TS"
# ADD RSC /l 0x40d /d "_Debug_TS"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TS_inline"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "ZendTS___Win32_Release_TS_inline"
# PROP BASE Intermediate_Dir "ZendTS___Win32_Release_TS_inline"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Release_TS_inline"
# PROP Intermediate_Dir "Release_TS_inline"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug_TS" /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "WIN32" /D "_MBCS" /D ZEND_DEBUG=0 /FR /FD /c
# SUBTRACT BASE CPP /YX
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug_TS" /D ZEND_DEBUG=0 /D "ZEND_WIN32_FORCE_INLINE" /D _WIN32_WINNT=0x400 /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x40d /d "NDebug_TS"
# ADD RSC /l 0x40d /d "NDebug_TS"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TSDbg"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "ZendTS___Win32_Release_TSDbg"
# PROP BASE Intermediate_Dir "ZendTS___Win32_Release_TSDbg"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Release_TSDbg"
# PROP Intermediate_Dir "Release_TSDbg"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug_TS" /D ZEND_DEBUG=0 /D _WIN32_WINNT=0x400 /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /FD /c
# SUBTRACT BASE CPP /YX
# ADD CPP /nologo /MD /W3 /GX /Zi /Od /I "." /D "NDebug_TS" /D ZEND_DEBUG=0 /D _WIN32_WINNT=0x400 /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x40d /d "NDebug_TS"
# ADD RSC /l 0x40d /d "NDebug_TS"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
# Name "ZendTS - Win32 Release_TS"
# Name "ZendTS - Win32 Debug_TS"
# Name "ZendTS - Win32 Release_TS_inline"
# Name "ZendTS - Win32 Release_TSDbg"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\zend.c
# End Source File
# Begin Source File
SOURCE=.\zend_alloc.c
# End Source File
# Begin Source File
SOURCE=.\zend_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_builtin_functions.c
# End Source File
# Begin Source File
SOURCE=.\zend_compile.c
# End Source File
# Begin Source File
SOURCE=.\zend_constants.c
# End Source File
# Begin Source File
SOURCE=.\zend_default_classes.c
# End Source File
# Begin Source File
SOURCE=.\zend_dynamic_array.c
# End Source File
# Begin Source File
SOURCE=.\zend_exceptions.c
# End Source File
# Begin Source File
SOURCE=.\zend_execute.c
# End Source File
# Begin Source File
SOURCE=.\zend_execute_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_extensions.c
# End Source File
# Begin Source File
SOURCE=.\zend_hash.c
# End Source File
# Begin Source File
SOURCE=.\zend_highlight.c
# End Source File
# Begin Source File
SOURCE=.\zend_indent.c
# End Source File
# Begin Source File
SOURCE=.\zend_ini.c
# End Source File
# Begin Source File
SOURCE=.\zend_ini_parser.c
# End Source File
# Begin Source File
SOURCE=.\zend_ini_scanner.c
# End Source File
# Begin Source File
SOURCE=.\zend_interfaces.c
# End Source File
# Begin Source File
SOURCE=.\zend_iterators.c
# End Source File
# Begin Source File
SOURCE=".\zend_language_parser.c"
# End Source File
# Begin Source File
SOURCE=".\zend_language_scanner.c"
# End Source File
# Begin Source File
SOURCE=.\zend_list.c
# End Source File
# Begin Source File
SOURCE=.\zend_llist.c
# End Source File
# Begin Source File
SOURCE=.\zend_mm.c
# End Source File
# Begin Source File
SOURCE=.\zend_object_handlers.c
# End Source File
# Begin Source File
SOURCE=.\zend_objects.c
# End Source File
# Begin Source File
SOURCE=.\zend_objects_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_opcode.c
# End Source File
# Begin Source File
SOURCE=.\zend_operators.c
# End Source File
# Begin Source File
SOURCE=.\zend_ptr_stack.c
# End Source File
# Begin Source File
SOURCE=.\zend_qsort.c
# End Source File
# Begin Source File
SOURCE=.\zend_reflection_api.c
# End Source File
# Begin Source File
SOURCE=.\zend_sprintf.c
# End Source File
# Begin Source File
SOURCE=.\zend_stack.c
# End Source File
# Begin Source File
SOURCE=.\zend_stream.c
# End Source File
# Begin Source File
SOURCE=.\zend_ts_hash.c
# End Source File
# Begin Source File
SOURCE=.\zend_variables.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\FlexLexer.h
# End Source File
# Begin Source File
SOURCE=.\zend.h
# End Source File
# Begin Source File
SOURCE=.\zend_alloc.h
# End Source File
# Begin Source File
SOURCE=.\zend_API.h
# End Source File
# Begin Source File
SOURCE=.\zend_builtin_functions.h
# End Source File
# Begin Source File
SOURCE=.\zend_compile.h
# End Source File
# Begin Source File
SOURCE=.\zend_config.w32.h
# End Source File
# Begin Source File
SOURCE=.\zend_constants.h
# End Source File
# Begin Source File
SOURCE=.\zend_default_classes.h
# End Source File
# Begin Source File
SOURCE=.\zend_dynamic_array.h
# End Source File
# Begin Source File
SOURCE=.\zend_errors.h
# End Source File
# Begin Source File
SOURCE=.\zend_exceptions.h
# End Source File
# Begin Source File
SOURCE=.\zend_execute.h
# End Source File
# Begin Source File
SOURCE=.\zend_extensions.h
# End Source File
# Begin Source File
SOURCE=.\zend_fast_cache.h
# End Source File
# Begin Source File
SOURCE=.\zend_globals.h
# End Source File
# Begin Source File
SOURCE=.\zend_globals_macros.h
# End Source File
# Begin Source File
SOURCE=.\zend_hash.h
# End Source File
# Begin Source File
SOURCE=.\zend_highlight.h
# End Source File
# Begin Source File
SOURCE=.\zend_indent.h
# End Source File
# Begin Source File
SOURCE=.\zend_ini.h
# End Source File
# Begin Source File
SOURCE=.\zend_ini_parser.h
# End Source File
# Begin Source File
SOURCE=.\zend_ini_scanner.h
# End Source File
# Begin Source File
SOURCE=.\zend_interfaces.h
# End Source File
# Begin Source File
SOURCE=.\zend_istdiostream.h
# End Source File
# Begin Source File
SOURCE=.\zend_iterators.h
# End Source File
# Begin Source File
SOURCE=".\zend_language_parser.h"
# End Source File
# Begin Source File
SOURCE=".\zend_language_scanner.h"
# End Source File
# Begin Source File
SOURCE=.\zend_list.h
# End Source File
# Begin Source File
SOURCE=.\zend_llist.h
# End Source File
# Begin Source File
SOURCE=.\zend_mm.h
# End Source File
# Begin Source File
SOURCE=.\zend_modules.h
# End Source File
# Begin Source File
SOURCE=.\zend_object_handlers.h
# End Source File
# Begin Source File
SOURCE=.\zend_objects.h
# End Source File
# Begin Source File
SOURCE=.\zend_objects_API.h
# End Source File
# Begin Source File
SOURCE=.\zend_operators.h
# End Source File
# Begin Source File
SOURCE=.\zend_ptr_stack.h
# End Source File
# Begin Source File
SOURCE=.\zend_qsort.h
# End Source File
# Begin Source File
SOURCE=.\zend_reflection_api.h
# End Source File
# Begin Source File
SOURCE=.\zend_stack.h
# End Source File
# Begin Source File
SOURCE=.\zend_stream.h
# End Source File
# Begin Source File
SOURCE=.\zend_ts_hash.h
# End Source File
# Begin Source File
SOURCE=.\zend_variables.h
# End Source File
# End Group
# Begin Group "Parsers"
# PROP Default_Filter "y"
# Begin Source File
SOURCE=.\zend_ini_parser.y
!IF "$(CFG)" == "ZendTS - Win32 Release_TS"
# Begin Custom Build
InputDir=.
InputPath=.\zend_ini_parser.y
BuildCmds= \
bison --output=zend_ini_parser.c -v -d -p ini_ zend_ini_parser.y
"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_ini_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Debug_TS"
# Begin Custom Build
InputDir=.
InputPath=.\zend_ini_parser.y
BuildCmds= \
bison --output=zend_ini_parser.c -v -d -p ini_ zend_ini_parser.y
"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_ini_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TS_inline"
# Begin Custom Build
InputDir=.
InputPath=.\zend_ini_parser.y
BuildCmds= \
bison --output=zend_ini_parser.c -v -d -p ini_ zend_ini_parser.y
"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_ini_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TSDbg"
# Begin Custom Build
InputDir=.
InputPath=.\zend_ini_parser.y
BuildCmds= \
bison --output=zend_ini_parser.c -v -d -p ini_ zend_ini_parser.y
"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_ini_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ENDIF
# End Source File
# Begin Source File
SOURCE=".\zend_language_parser.y"
!IF "$(CFG)" == "ZendTS - Win32 Release_TS"
# Begin Custom Build
InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_language_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Debug_TS"
# Begin Custom Build
InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_language_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TS_inline"
# Begin Custom Build
InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_language_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TSDbg"
# Begin Custom Build
InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_language_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ENDIF
# End Source File
# End Group
# Begin Group "Scanners"
# PROP Default_Filter "l"
# Begin Source File
SOURCE=.\flex.skl
# End Source File
# Begin Source File
SOURCE=.\zend_ini_scanner.l
!IF "$(CFG)" == "ZendTS - Win32 Release_TS"
# Begin Custom Build
InputPath=.\zend_ini_scanner.l
"zend_ini_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pini_ -ozend_ini_scanner.c zend_ini_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Debug_TS"
# Begin Custom Build
InputPath=.\zend_ini_scanner.l
"zend_ini_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pini_ -ozend_ini_scanner.c zend_ini_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TS_inline"
# Begin Custom Build
InputPath=.\zend_ini_scanner.l
"zend_ini_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pini_ -ozend_ini_scanner.c zend_ini_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TSDbg"
# Begin Custom Build
InputPath=.\zend_ini_scanner.l
"zend_ini_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pini_ -ozend_ini_scanner.c zend_ini_scanner.l
# End Custom Build
!ENDIF
# End Source File
# Begin Source File
SOURCE=".\zend_language_scanner.l"
!IF "$(CFG)" == "ZendTS - Win32 Release_TS"
# Begin Custom Build
InputPath=".\zend_language_scanner.l"
"zend_language_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pzend -ozend_language_scanner.c zend_language_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Debug_TS"
# Begin Custom Build
InputPath=".\zend_language_scanner.l"
"zend_language_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pzend -ozend_language_scanner.c zend_language_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TS_inline"
# Begin Custom Build
InputPath=".\zend_language_scanner.l"
"zend_language_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pzend -ozend_language_scanner.c zend_language_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TSDbg"
# Begin Custom Build
InputPath=".\zend_language_scanner.l"
"zend_language_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pzend -ozend_language_scanner.c zend_language_scanner.l
# End Custom Build
!ENDIF
# End Source File
# End Group
# Begin Group "Text Files"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\LICENSE
# End Source File
# Begin Source File
SOURCE=.\ZEND_BUGS
# End Source File
# Begin Source File
SOURCE=.\ZEND_CHANGES
# End Source File
# End Group
# Begin Group "Resources"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\zend.ico
# End Source File
# End Group
# End Target
# End Project
+107
View File
@@ -0,0 +1,107 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2004 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 2.00 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.zend.com/license/2_00.txt. |
| If you did not receive a copy of the Zend license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@zend.com so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andi Gutmans <andi@zend.com> |
| Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#define ZEND_API
#define ZEND_DLEXPORT
#define ZEND_DLIMPORT
#ifndef NETWARE
@TOP@
#endif
#undef uint
#undef ulong
/* Define if you want to enable memory limit support */
#define MEMORY_LIMIT 0
#ifndef NETWARE
@BOTTOM@
#endif
#ifndef ZEND_ACCONFIG_H_NO_C_PROTOS
#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_IEEEFP_H
# include <ieeefp.h>
#endif
#ifdef HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#if ZEND_BROKEN_SPRINTF
int zend_sprintf(char *buffer, const char *format, ...);
#else
# define zend_sprintf sprintf
#endif
#include <math.h>
#ifndef zend_isnan
#ifdef HAVE_ISNAN
#define zend_isnan(a) isnan(a)
#elif defined(HAVE_FPCLASS)
#define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
#else
#define zend_isnan(a) 0
#endif
#endif
#ifdef HAVE_ISINF
#define zend_isinf(a) isinf(a)
#elif defined(INFINITY)
/* Might not work, but is required by ISO C99 */
#define zend_isinf(a) (((a)==INFINITY)?1:0)
#elif defined(HAVE_FPCLASS)
#define zend_isinf(a) ((fpclass(a) == FP_PINF) || (fpclass(a) == FP_NINF))
#else
#define zend_isinf(a) 0
#endif
#ifdef HAVE_FINITE
#define zend_finite(a) finite(a)
#elif defined(HAVE_ISFINITE) || defined(isfinite)
#define zend_finite(a) isfinite(a)
#elif defined(fpclassify)
#define zend_finite(a) ((fpclassify((a))!=FP_INFINITE&&fpclassify((a))!=FP_NAN)?1:0)
#else
#define zend_finite(a) (zend_isnan(a) ? 0 : zend_isinf(a) ? 0 : 1)
#endif
#endif /* ifndef ZEND_ACCONFIG_H_NO_C_PROTOS */
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* indent-tabs-mode: t
* End:
*/
+47
View File
@@ -0,0 +1,47 @@
dnl $Id$
dnl
dnl This file contains local autoconf functions.
AC_DEFUN(ZEND_FP_EXCEPT,[
AC_CACHE_CHECK(whether fp_except is defined, ac_cv_type_fp_except,[
AC_TRY_COMPILE([
#include <floatingpoint.h>
],[
fp_except x = (fp_except) 0;
],[
ac_cv_type_fp_except=yes
],[
ac_cv_type_fp_except=no
],[
ac_cv_type_fp_except=no
])])
if test "$ac_cv_type_fp_except" = "yes"; then
AC_DEFINE(HAVE_FP_EXCEPT, 1, [whether floatingpoint.h defines fp_except])
fi
])
dnl
dnl Check for broken sprintf()
dnl
AC_DEFUN(AC_ZEND_BROKEN_SPRINTF,[
AC_CACHE_CHECK(whether sprintf is broken, ac_cv_broken_sprintf,[
AC_TRY_RUN([main() {char buf[20];exit(sprintf(buf,"testing 123")!=11); }],[
ac_cv_broken_sprintf=no
],[
ac_cv_broken_sprintf=yes
],[
ac_cv_broken_sprintf=no
])
])
if test "$ac_cv_broken_sprintf" = "yes"; then
ac_result=1
else
ac_result=0
fi
AC_DEFINE_UNQUOTED(ZEND_BROKEN_SPRINTF, $ac_result, [Whether sprintf is broken])
])
AC_DEFUN(AM_SET_LIBTOOL_VARIABLE,[
LIBTOOL='$(SHELL) $(top_builddir)/libtool $1'
])
+43
View File
@@ -0,0 +1,43 @@
# Makefile to generate build tools
#
# Standard usage:
# make -f build.mk
#
# Written by Sascha Schumann
#
# $Id$
LT_TARGETS = ltmain.sh ltconfig
config_h_in = zend_config.h.in
makefile_am_files = Makefile.am
makefile_in_files = $(makefile_am_files:.am=.in)
makefile_files = $(makefile_am_files:e.am=e)
targets = $(makefile_in_files) $(LT_TARGETS) configure $(config_h_in)
all: $(targets)
clean:
rm -f $(targets)
$(LT_TARGETS):
rm -f $(LT_TARGETS)
libtoolize --automake $(AMFLAGS) -f
$(makefile_in_files): $(makefile_am_files)
automake -a -i $(AMFLAGS) $(makefile_files)
aclocal.m4: configure.in acinclude.m4
aclocal
$(config_h_in): configure.in acconfig.h
# explicitly remove target since autoheader does not seem to work
# correctly otherwise (timestamps are not updated)
@rm -f $@
autoheader
configure: aclocal.m4 configure.in
autoconf
Executable
+33
View File
@@ -0,0 +1,33 @@
#!/bin/sh
case "$1" in
--copy)
automake_flags=--copy
shift
;;
esac
libtoolize --force --automake $automake_flags
mv aclocal.m4 aclocal.m4.old 2>/dev/null
aclocal
if cmp aclocal.m4.old aclocal.m4 > /dev/null 2>&1; then
echo "buildconf: keeping ${1}aclocal.m4"
mv aclocal.m4.old aclocal.m4
else
echo "buildconf: created or modified ${1}aclocal.m4"
fi
autoheader
automake --add-missing --include-deps $automake_flags
mv configure configure.old 2>/dev/null
autoconf
if cmp configure.old configure > /dev/null 2>&1; then
echo "buildconf: keeping ${1}configure"
mv configure.old configure
else
echo "buildconf: created or modified ${1}configure"
fi
+47
View File
@@ -0,0 +1,47 @@
dnl $Id$
dnl Process this file with autoconf to produce a configure script.
AC_INIT(zend.c)
AM_INIT_AUTOMAKE(zend, 0.80A, nodefine)
AM_CONFIG_HEADER(zend_config.h)
AM_SANITY_CHECK
AM_MAINTAINER_MODE
AC_PROG_CC
AM_PROG_LEX
AM_PROG_CC_STDC
ZEND_VERSION=$VERSION
dnl We want this one before the checks, so the checks can modify CFLAGS.
test -z "$CFLAGS" && auto_cflags=1
sinclude(Zend.m4)
LIBZEND_BASIC_CHECKS
LIBZEND_LIBDL_CHECKS
LIBZEND_DLSYM_CHECK
AM_PROG_LIBTOOL
if test "$enable_debug" != "yes"; then
AM_SET_LIBTOOL_VARIABLE([--silent])
fi
dnl
dnl Check for /usr/pkg/{lib,include} which is where NetBSD puts binary
dnl and source packages. This should be harmless on other OSs.
dnl
if test -d /usr/pkg/include -a -d /usr/pkg/lib ; then
CFLAGS="$CFLAGS -I/usr/pkg/include"
LDFLAGS="$LDFLAGS -L/usr/pkg/lib"
fi
LIBZEND_ENABLE_DEBUG
LIBZEND_OTHER_CHECKS
ZEND_EXTRA_LIBS="$LIBS"
LIBS=""
AC_SUBST(ZEND_EXTRA_LIBS)
AC_OUTPUT(Makefile)
# Local Variables:
# tab-width: 4
# End:
+1648
View File
File diff suppressed because it is too large. Load diff
+22
View File
@@ -0,0 +1,22 @@
--TEST--
Bug #19859 (__call() does not catch call_user_func_array() calls)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--FILE--
<?php
class test
{
function __call($method,$args)
{
print "test::__call invoked for method '$method'\n";
}
}
$x = new test;
$x->fake(1);
call_user_func_array(array($x,'fake'),array(1));
call_user_func(array($x,'fake'),2);
?>
--EXPECT--
test::__call invoked for method 'fake'
test::__call invoked for method 'fake'
test::__call invoked for method 'fake'
+43
View File
@@ -0,0 +1,43 @@
--TEST--
Bug #20240 (order of destructor calls)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--FILE--
<?php
class test
{
public $member;
function test() {
$this->member = 1;
register_shutdown_function(array($this, 'destructor'));
}
function destructor() {
print __METHOD__ . "\n";
}
function __destruct() {
print __METHOD__ . "\n";
}
function add() {
$this->member += 1;
print $this->member."\n";
}
}
$t = new test();
$t->add();
$t->add();
echo "Done\n";
?>
--EXPECT--
2
3
Done
test::destructor
test::__destruct
+26
View File
@@ -0,0 +1,26 @@
--TEST--
Bug #20242 (Method call in front of class definition)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '>=')) die('skip ZendEngine 2 does not support this'); ?>
--FILE--
<?php
// THIS IS A WON'T FIX FOR ZE2
test::show_static();
$t = new test;
$t->show_method();
class test {
static function show_static() {
echo "static\n";
}
function show_method() {
echo "method\n";
}
}
?>
--EXPECT--
static
method
+37
View File
@@ -0,0 +1,37 @@
--TEST--
Bug #21478 (Zend/zend_alloc.c :: shutdown_memory_manager produces segfault)
--SKIPIF--
<?php
if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed');
if (!function_exists('stream_filter_register')) die('skip stream_filter_register() not available');
?>
--FILE--
<?php
class debugfilter extends php_user_filter {
function filter($in, $out, &$consumed, $closing) {
while ($bucket = stream_bucket_make_writeable($in)) {
$bucket->data = strtoupper($bucket->data);
stream_bucket_append($out, $bucket);
$consumed += strlen($bucket->data);
}
return PSFS_PASS_ON;
}
}
stream_filter_register("myfilter","debugfilter");
$fp = fopen(dirname(__FILE__)."/test.txt","w");
stream_filter_append($fp, "myfilter");
stream_filter_append($fp, "myfilter");
stream_filter_append($fp, "myfilter");
fwrite($fp, "This is a test.\n");
print "Done.\n";
fclose($fp);
// Uncommenting the following 'print' line causes the segfault to stop occuring
// print "2\n";
readfile(dirname(__FILE__)."/test.txt");
unlink(dirname(__FILE__)."/test.txt");
?>
--EXPECT--
Done.
THIS IS A TEST.
+39
View File
@@ -0,0 +1,39 @@
--TEST--
Bug #21888 (protected property and protected method of the same name)
--SKIPIF--
<?php
if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed');
?>
--FILE--
<?php
class mom {
protected $prot = "protected property\n";
protected function prot() {
print "protected method\n";
}
}
class child extends mom {
public function callMom() {
$this->prot();
}
public function viewMom() {
print $this->prot;
}
}
$c = new child();
$c->callMom();
$c->viewMom();
?>
--EXPECT--
protected method
protected property
--EXPECT--
protected method
protected property
+31
View File
@@ -0,0 +1,31 @@
--TEST--
bug #22725 (A derived class can call a parent's protected method that calls a private method)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
--FILE--
<?php
class Foo {
private function aPrivateMethod() {
echo "Foo::aPrivateMethod() called.\n";
}
protected function aProtectedMethod() {
echo "Foo::aProtectedMethod() called.\n";
$this->aPrivateMethod();
}
}
class Bar extends Foo {
public function aPublicMethod() {
echo "Bar::aPublicMethod() called.\n";
$this->aProtectedMethod();
}
}
$o = new Bar;
$o->aPublicMethod();
?>
--EXPECT--
Bar::aPublicMethod() called.
Foo::aProtectedMethod() called.
Foo::aPrivateMethod() called.
+74
View File
@@ -0,0 +1,74 @@
--TEST--
Bug #22836 (returning references to NULL)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--FILE--
<?php
function &f()
{
$x = "foo";
var_dump($x);
print "'$x'\n";
return ($a);
}
for ($i = 0; $i < 8; $i++) {
$h =& f();
}
?>
--EXPECTF--
string(3) "foo"
'foo'
Notice: Undefined variable: a in %s on line %d
Strict Standards: Only variable references should be returned by reference in %s on line %d
string(3) "foo"
'foo'
Notice: Undefined variable: a in %s on line %d
Strict Standards: Only variable references should be returned by reference in %s on line %d
string(3) "foo"
'foo'
Notice: Undefined variable: a in %s on line %d
Strict Standards: Only variable references should be returned by reference in %s on line %d
string(3) "foo"
'foo'
Notice: Undefined variable: a in %s on line %d
Strict Standards: Only variable references should be returned by reference in %s on line %d
string(3) "foo"
'foo'
Notice: Undefined variable: a in %s on line %d
Strict Standards: Only variable references should be returned by reference in %s on line %d
string(3) "foo"
'foo'
Notice: Undefined variable: a in %s on line %d
Strict Standards: Only variable references should be returned by reference in %s on line %d
string(3) "foo"
'foo'
Notice: Undefined variable: a in %s on line %d
Strict Standards: Only variable references should be returned by reference in %s on line %d
string(3) "foo"
'foo'
Notice: Undefined variable: a in %s on line %d
Strict Standards: Only variable references should be returned by reference in %s on line %d
string(3) "foo"
'foo'
Notice: Undefined variable: a in %s on line %d
Strict Standards: Only variable references should be returned by reference in %s on line %d
+12
View File
@@ -0,0 +1,12 @@
--TEST--
Bug #23104 (Hash position not reset for constant arrays)
--FILE--
<?php
function foo($bar = array("a", "b", "c"))
{
var_dump(current($bar));
}
foo();
?>
--EXPECT--
string(1) "a"
+24
View File
@@ -0,0 +1,24 @@
--TEST--
Bug #24436 (isset()/empty() produce errors with non-existent variables in classes)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--INI--
error_reporting=2047
--FILE--
<?php
class test {
function __construct() {
if (empty($this->test[0][0])) { print "test1\n";}
if (!isset($this->test[0][0])) { print "test2\n";}
if (empty($this->test)) { print "test1\n";}
if (!isset($this->test)) { print "test2\n";}
}
}
$test1 = new test();
?>
--EXPECT--
test1
test2
test1
test2
+30
View File
@@ -0,0 +1,30 @@
--TEST--
Bug #24635 (crash on dtor calling other functions)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--FILE--
<?php
class SiteClass {
function __construct() { $this->page = new PageClass(); }
}
class PageClass {
function Display() {
$section = new SectionClass("PageClass::Display");
}
}
class SectionClass {
function __construct($comment) {
$this->Comment = $comment;
}
function __destruct() {
out($this->Comment); // this line doesn't crash PHP
out("\n<!-- End Section: " . $this->Comment . "-->"); // this line
}
}
function out($code) { return; }
$site = new SiteClass();
$site->page->Display();
echo "OK\n";
?>
--EXPECT--
OK
+13
View File
@@ -0,0 +1,13 @@
--TEST--
Bug #24699 (Memory Leak with per-class constants)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--FILE--
<?php
class TEST { const FOO = SEEK_CUR; };
class TEST2 { const FOO = 1; };
class TEST3 { const FOO = PHP_VERSION; };
print TEST::FOO."\n";
?>
--EXPECT--
1
+9
View File
@@ -0,0 +1,9 @@
--TEST--
Bug #24773 (unset() of integers treated as arrays causes a crash)
--FILE--
<?php
$array = 'test';
unset($array["lvl1"]["lvl2"]["b"]);
?>
--EXPECTF--
Fatal error: Cannot unset string offsets in %s on line %d
+28
View File
@@ -0,0 +1,28 @@
--TEST--
Bug #24884 (calling $this->__clone(); crashes php)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
--FILE--
<?php
class Test {
function __copy()
{
$string = PHP_VERSION;
$version = $string{0};
if($string < 5)
{
return $this;
}
else
{
return clone $this;
}
}
}
$test = new Test();
$test2 = $test->__copy();
var_dump($test2);
?>
--EXPECT--
object(Test)#2 (0) {
}
+19
View File
@@ -0,0 +1,19 @@
--TEST--
Bug #26010 (private / protected variables get exposed by get_object_vars())
--FILE--
<?php
class foo {
private $private = 'private';
protected $protected = 'protected';
public $public = 'public';
}
$data = new foo();
$obj_vars = get_object_vars($data);
var_dump($obj_vars);
?>
--EXPECT--
array(1) {
["public"]=>
string(6) "public"
}
+9
View File
@@ -0,0 +1,9 @@
--TEST--
Bug #26077 Memory leaks when creating an instance of an object
--FILE--
<?php
class foo {} new foo();
?>
===DONE===
--EXPECT--
===DONE===
+67
View File
@@ -0,0 +1,67 @@
--TEST--
Bug #26166 (__toString() crash when no values returned)
--FILE--
<?php
class Foo
{
function __toString()
{
return "Hello World!\n";
}
}
class Bar
{
private $obj;
function __construct()
{
$this->obj = new Foo();
}
function __toString()
{
return $this->obj->__toString();
}
}
$o = new Bar;
echo $o;
echo "===THROW===\n";
class Error
{
function __toString() {
throw new Exception("This is an error!");
}
}
$o = new Error;
try {
echo $o;
}
catch (Exception $e) {
echo "Got the exception\n";
}
echo "===NONE===\n";
class None
{
function __toString() {
}
}
$o = new None;
echo $o;
?>
===DONE===
--EXPECTF--
Hello World!
===THROW===
Got the exception
===NONE===
Fatal error: Method None::__toString() must return a string value in %sbug26166.php on line %d
+21
View File
@@ -0,0 +1,21 @@
--TEST--
Bug #26229 (getIterator() segfaults when it returns arrays or scalars)
--FILE--
<?php
class array_iterator implements IteratorAggregate {
public function getIterator() {
return array('foo', 'bar');
}
}
$obj = new array_iterator;
foreach ($obj as $property => $value) {
var_dump($value);
}
?>
===DONE===
--EXPECTF--
Warning: Objects returned by array_iterator::getIterator() must be traversable or implement interface Iterator in %sbug26229.php on line %d
===DONE===
+13
View File
@@ -0,0 +1,13 @@
--TEST--
Bug #26281 (switch() crash when condition is a string offset)
--FILE--
<?php
$x = 'abc';
switch ($x{0}) {
case 'a':
echo "no crash\n";
break;
}
?>
--EXPECT--
no crash
+22
View File
@@ -0,0 +1,22 @@
--TEST--
Bug #26696 (crash in switch() when string index is used)
--FILE--
<?php
$str = 'asdd/?';
$len = strlen($str);
for ($i = 0; $i < $len; $i++) {
switch ($str[$i]) {
case '?':
echo "?+\n";
break;
default:
echo $str[$i].'-';
break;
}
}
?>
===DONE===
--EXPECT--
a-s-d-d-/-?+
===DONE===
+24
View File
@@ -0,0 +1,24 @@
--TEST--
Bug #26697 (calling class_exists on a nonexistent class in __autoload results in segfault)
--SKIPIF--
<?php if (function_exists('__autoload')) die('skip __autoload() declared in auto_prepend_file');?>
--FILE--
<?php
function __autoload($name)
{
echo __METHOD__ . "($name)\n";
var_dump(class_exists('NotExistingClass'));
echo __METHOD__ . "($name), done\n";
}
var_dump(class_exists('NotExistingClass'));
?>
===DONE===
--EXPECTF--
__autoload(NotExistingClass)
bool(false)
__autoload(NotExistingClass), done
bool(false)
===DONE===
+73
View File
@@ -0,0 +1,73 @@
--TEST--
Bug #26698 (Thrown exceptions while evaluting argument to pass as parameter crash PHP)
--FILE--
<?php
ini_set("report_memleaks", 0); // the exception thrown in this test results in a memory leak, which is fine
class Object
{
function getNone()
{
throw new Exception('NONE');
}
}
class Proxy
{
function three($a, $b, $c)
{
}
function callOne()
{
try
{
$res = new Object();
$this->three($res->getNone());
}
catch(Exception $e)
{
echo 'Caught: '.$e->getMessage()."\n";
}
}
function callTwo()
{
try
{
$res = new Object();
$this->three(1, $res->getNone());
}
catch(Exception $e)
{
echo 'Caught: '.$e->getMessage()."\n";
}
}
function callThree()
{
try
{
$res = new Object();
$this->three(1, 2, $res->getNone());
}
catch(Exception $e)
{
echo 'Caught: '.$e->getMessage()."\n";
}
}
}
$p = new Proxy();
$p->callOne();
$p->callTwo();
$p->callThree();
?>
===DONE===
--EXPECT--
Caught: NONE
Caught: NONE
Caught: NONE
===DONE===
+22
View File
@@ -0,0 +1,22 @@
--TEST--
Bug #26801 (switch ($a{0}) crash)
--FILE--
<?php
$a = '11';
$b = $a{0};
switch ($b) {
case '-':
break;
}
$a = '22';
switch ($a{0}) {
case '-':
break;
}
?>
===DONE===
--EXPECT--
===DONE===
+37
View File
@@ -0,0 +1,37 @@
--TEST--
Bug #26802 (Can't call static method using a variable)
--FILE--
<?php
function global_func()
{
echo __METHOD__ . "\n";
}
$function = 'global_func';
$function();
class foo
{
static $method = 'global_func';
static public function foo_func()
{
echo __METHOD__ . "\n";
}
}
/* The following is a BC break with PHP 4 where it would
* call foo::fail. In PHP 5 we first evaluate static class
* properties and then do the function call.
*/
$method = 'foo_func';
foo::$method();
?>
===DONE===
--EXPECT--
global_func
foo::foo_func
===DONE===
+13
View File
@@ -0,0 +1,13 @@
--TEST--
Bug #27145 (Errors messages print unmangled PPP property names)
--FILE--
<?php
class a {
protected static $v = "aa";
}
class b extends a {
protected static $v = "bb";
}
?>
--EXPECTF--
Fatal error: Cannot redeclare property static protected a::$v in class b in %s on line %d
+42
View File
@@ -0,0 +1,42 @@
--TEST--
Bug #27641 (zend.ze1_compatibility_mode = On causes object properties to be misreported)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--FILE--
<?php
class A {
public $a = "Default for A";
public $b = "Default for B";
function __construct($a, $b) {
$this->a = $a;
$this->b = $b;
}
function A() {
$args = func_get_args();
call_user_func_array(Array(&$this, '__construct'), $args);
}
}
$t = new A("New A", "New B");
print_r($t);
print_r(get_class_vars(get_class($t)));
print_r(get_object_vars($t));
?>
--EXPECTF--
Strict Standards: Redefining already defined constructor for class A in %sbug27641.php on line %d
A Object
(
[a] => New A
[b] => New B
)
Array
(
[a] => Default for A
[b] => Default for B
)
Array
(
[a] => New A
[b] => New B
)
+10
View File
@@ -0,0 +1,10 @@
--TEST--
Bug #27731 (error_reporing() call inside @ block does not work correctly)
--FILE--
<?php
error_reporting(E_ALL ^ E_NOTICE);
@error_reporting(E_WARNING);
var_dump(error_reporting());
?>
--EXPECT--
int(2)
+34
View File
@@ -0,0 +1,34 @@
--TEST--
Scoping in destructor call
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
--FILE--
<?php
class T
{
private $var = array();
public function add($a)
{
array_push($this->var, $a);
}
public function __destruct()
{
print_r($this->var);
}
}
class TT extends T
{
}
$t = new TT();
$t->add("Hello");
$t->add("World");
?>
--EXPECT--
Array
(
[0] => Hello
[1] => World
)
+275
View File
@@ -0,0 +1,275 @@
Example 1: A singleton (static members)
=======================================
<?php
class Counter {
var $counter = 0;
function increment_and_print()
{
print ++$this->counter;
print "\n";
}
}
class SingletonCounter {
static $m_instance = NULL;
function Instance()
{
if (self::$m_instance == NULL) {
self::$m_instance = new Counter();
}
return self::$m_instance;
}
}
SingletonCounter::Instance()->increment_and_print();
SingletonCounter::Instance()->increment_and_print();
SingletonCounter::Instance()->increment_and_print();
?>
Example 2: Factory method (derefencing objects returned from functions)
=======================================================================
<?php
class Circle {
function draw()
{
print "Circle\n";
}
}
class Square {
function draw()
{
print "Square\n";
}
}
function ShapeFactoryMethod($shape)
{
switch ($shape) {
case "Circle":
return new Circle();
case "Square":
return new Square();
}
}
ShapeFactoryMethod("Circle")->draw();
ShapeFactoryMethod("Square")->draw();
?>
Example 3: Class constants and class scope
==========================================
<?php
class ErrorCodes {
const FATAL = "Fatal error\n";
const WARNING = "Warning\n";
const INFO = "Informational message\n";
function print_fatal_error_codes()
{
print "FATAL = " . FATAL;
print "self::FATAL = " . self::FATAL;
}
}
/* Call the static function and move into the ErrorCodes scope */
ErrorCodes::print_fatal_error_codes();
?>
Example 4: Regular object method using both local and global functions
======================================================================
<?php
class HelloWorld {
const HELLO_WORLD = "Hello, World!\n";
function get_hello_world()
{
return HELLO_WORLD;
}
function length_of_hello_world()
{
$str = $this->get_hello_world();
return strlen($str);
}
}
$obj = new HelloWorld();
print "length_of_hello_world() = " . $obj->length_of_hello_world();
print "\n";
?>
Example 5: Multiple derefencing of objects returned from methods
================================================================
<?php
class Name {
function Name($_name)
{
$this->name = $_name;
}
function display()
{
print $this->name;
print "\n";
}
}
class Person {
function Person($_name, $_address)
{
$this->name = new Name($_name);
}
function getName()
{
return $this->name;
}
}
$person = new Person("John", "New York");
$person->getName()->display();
?>
Example 6: Exception handling
=============================
<?
class MyException {
function MyException($_error) {
$this->error = $_error;
}
function getException()
{
return $this->error;
}
}
function ThrowException()
{
throw new MyException("'This is an exception!'");
}
try {
} catch (MyException $exception) {
print "There was an exception: " . $exception->getException();
print "\n";
}
try {
ThrowException();
} catch (MyException $exception) {
print "There was an exception: " . $exception->getException();
print "\n";
}
?>
Example 7: __clone()
===================
<?
class MyCloneable {
static $id = 0;
function MyCloneable()
{
$this->id = self::$id++;
}
function __clone()
{
$this->name = $that->name;
$this->address = "New York";
$this->id = self::$id++;
}
}
$obj = new MyCloneable();
$obj->name = "Hello";
$obj->address = "Tel-Aviv";
print $obj->id;
print "\n";
$obj = $obj->__clone();
print $obj->id;
print "\n";
print $obj->name;
print "\n";
print $obj->address;
print "\n";
?>
Example 8: Unified constructors
===============================
<?
class BaseClass {
function __construct()
{
print "In BaseClass constructor\n";
}
}
class SubClass extends BaseClass {
function __construct()
{
parent::__construct();
print "In SubClass constructor\n";
}
}
$obj = new BaseClass();
$obj = new SubClass();
?>
Example 9: Destructors
=======================
<?php
class MyDestructableClass {
function __construct()
{
print "In constructor\n";
$this->name = "MyDestructableClass";
}
function __destruct()
{
print "Destroying " . $this->name . "\n";
}
}
$obj = new MyDestructableClass();
?>
+12
View File
@@ -0,0 +1,12 @@
--TEST--
Operator precedence
--FILE--
<?php /* $Id$ */
var_dump((object)1 instanceof stdClass);
var_dump(! (object)1 instanceof Exception);
?>
--EXPECT--
bool(true)
bool(true)
+1153
View File
File diff suppressed because it is too large. Load diff
+615
View File
@@ -0,0 +1,615 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2004 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 2.00 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.zend.com/license/2_00.txt. |
| If you did not receive a copy of the Zend license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@zend.com so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andi Gutmans <andi@zend.com> |
| Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#ifndef ZEND_H
#define ZEND_H
#define ZEND_VERSION "2.0.0RC3RC2"
#define ZEND_ENGINE_2
#ifdef __cplusplus
#define BEGIN_EXTERN_C() extern "C" {
#define END_EXTERN_C() }
#else
#define BEGIN_EXTERN_C()
#define END_EXTERN_C()
#endif
#include <stdio.h>
/*
* general definitions
*/
#ifdef ZEND_WIN32
# include "zend_config.w32.h"
# define ZEND_PATHS_SEPARATOR ';'
#elif defined(NETWARE)
# include "zend_config.nw.h"
# include "acconfig.h"
#elif defined(__riscos__)
# include "zend_config.h"
# define ZEND_PATHS_SEPARATOR ';'
#else
# include "zend_config.h"
# define ZEND_PATHS_SEPARATOR ':'
#endif
#ifdef ZEND_WIN32
/* Only use this macro if you know for sure that all of the switches values
are covered by its case statements */
#define EMPTY_SWITCH_DEFAULT_CASE() \
default: \
__assume(0); \
break;
#else
#define EMPTY_SWITCH_DEFAULT_CASE()
#endif
/* all HAVE_XXX test have to be after the include of zend_config above */
#ifdef HAVE_UNIX_H
# include <unix.h>
#endif
#ifdef HAVE_STDARG_H
# include <stdarg.h>
#endif
#ifdef HAVE_DLFCN_H
# include <dlfcn.h>
#endif
#if HAVE_MACH_O_DYLD_H
#include <mach-o/dyld.h>
/* MH_BUNDLE loading functions for Mac OS X / Darwin */
void *zend_mh_bundle_load (char* bundle_path);
int zend_mh_bundle_unload (void *bundle_handle);
void *zend_mh_bundle_symbol(void *bundle_handle, const char *symbol_name);
const char *zend_mh_bundle_error(void);
#endif /* HAVE_MACH_O_DYLD_H */
#if defined(HAVE_LIBDL)
# ifndef RTLD_LAZY
# define RTLD_LAZY 1 /* Solaris 1, FreeBSD's (2.1.7.1 and older) */
# endif
# ifndef RTLD_GLOBAL
# define RTLD_GLOBAL 0
# endif
# if defined(RTLD_GROUP) && defined(RTLD_WORLD) && defined(RTLD_PARENT)
# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL | RTLD_GROUP | RTLD_WORLD | RTLD_PARENT)
# else
# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL)
# endif
# define DL_UNLOAD dlclose
# if defined(DLSYM_NEEDS_UNDERSCORE)
# define DL_FETCH_SYMBOL(h,s) dlsym((h), "_" s)
# else
# define DL_FETCH_SYMBOL dlsym
# endif
# define DL_ERROR dlerror
# define DL_HANDLE void *
# define ZEND_EXTENSIONS_SUPPORT 1
#elif defined(HAVE_MACH_O_DYLD_H)
# define DL_LOAD(libname) zend_mh_bundle_load(libname)
# define DL_UNLOAD(handle) zend_mh_bundle_unload(handle)
# define DL_FETCH_SYMBOL(h,s) zend_mh_bundle_symbol(h,s)
# define DL_ERROR zend_mh_bundle_error
# define DL_HANDLE void *
# define ZEND_EXTENSIONS_SUPPORT 1
#elif defined(ZEND_WIN32)
# define DL_LOAD(libname) LoadLibrary(libname)
# define DL_FETCH_SYMBOL GetProcAddress
# define DL_UNLOAD FreeLibrary
# define DL_HANDLE HMODULE
# define ZEND_EXTENSIONS_SUPPORT 1
#else
# define DL_HANDLE void *
# define ZEND_EXTENSIONS_SUPPORT 0
#endif
#if HAVE_ALLOCA_H && !defined(_ALLOCA_H)
# include <alloca.h>
#endif
/* AIX requires this to be the first thing in the file. */
#ifndef __GNUC__
# ifndef HAVE_ALLOCA_H
# ifdef _AIX
#pragma alloca
# else
# ifndef alloca /* predefined by HP cc +Olibcalls */
char *alloca ();
# endif
# endif
# endif
#endif
/* GCC x.y.z supplies __GNUC__ = x and __GNUC_MINOR__ = y */
#ifdef __GNUC__
# define ZEND_GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
#else
# define ZEND_GCC_VERSION 0
#endif
#if ZEND_GCC_VERSION >= 2096
# define ZEND_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
#else
# define ZEND_ATTRIBUTE_MALLOC
#endif
#if ZEND_GCC_VERSION >= 2007
# define ZEND_ATTRIBUTE_FORMAT(type, idx, first) __attribute__ ((format(type, idx, first)))
#else
# define ZEND_ATTRIBUTE_FORMAT(type, idx, first)
#endif
#if ZEND_GCC_VERSION >= 3001
# define ZEND_ATTRIBUTE_PTR_FORMAT(type, idx, first) __attribute__ ((format(type, idx, first)))
#else
# define ZEND_ATTRIBUTE_PTR_FORMAT(type, idx, first)
#endif
#if (HAVE_ALLOCA || (defined (__GNUC__) && __GNUC__ >= 2)) && !(defined(ZTS) && defined(ZEND_WIN32)) && !(defined(ZTS) && defined(NETWARE)) && !(defined(ZTS) && defined(HPUX)) && !defined(__darwin__) && !defined(__APPLE__)
# define do_alloca(p) alloca(p)
# define free_alloca(p)
#else
# define do_alloca(p) emalloc(p)
# define free_alloca(p) efree(p)
#endif
#if ZEND_DEBUG
#define ZEND_FILE_LINE_D char *__zend_filename, uint __zend_lineno
#define ZEND_FILE_LINE_DC , ZEND_FILE_LINE_D
#define ZEND_FILE_LINE_ORIG_D char *__zend_orig_filename, uint __zend_orig_lineno
#define ZEND_FILE_LINE_ORIG_DC , ZEND_FILE_LINE_ORIG_D
#define ZEND_FILE_LINE_RELAY_C __zend_filename, __zend_lineno
#define ZEND_FILE_LINE_RELAY_CC , ZEND_FILE_LINE_RELAY_C
#define ZEND_FILE_LINE_C __FILE__, __LINE__
#define ZEND_FILE_LINE_CC , ZEND_FILE_LINE_C
#define ZEND_FILE_LINE_EMPTY_C NULL, 0
#define ZEND_FILE_LINE_EMPTY_CC , ZEND_FILE_LINE_EMPTY_C
#define ZEND_FILE_LINE_ORIG_RELAY_C __zend_orig_filename, __zend_orig_lineno
#define ZEND_FILE_LINE_ORIG_RELAY_CC , ZEND_FILE_LINE_ORIG_RELAY_C
#else
#define ZEND_FILE_LINE_D
#define ZEND_FILE_LINE_DC
#define ZEND_FILE_LINE_ORIG_D
#define ZEND_FILE_LINE_ORIG_DC
#define ZEND_FILE_LINE_RELAY_C
#define ZEND_FILE_LINE_RELAY_CC
#define ZEND_FILE_LINE_C
#define ZEND_FILE_LINE_CC
#define ZEND_FILE_LINE_EMPTY_C
#define ZEND_FILE_LINE_EMPTY_CC
#define ZEND_FILE_LINE_ORIG_RELAY_C
#define ZEND_FILE_LINE_ORIG_RELAY_CC
#endif /* ZEND_DEBUG */
#ifdef ZTS
#define ZTS_V 1
#else
#define ZTS_V 0
#endif
#include "zend_errors.h"
#include "zend_alloc.h"
#include "zend_types.h"
#ifdef HAVE_LIMITS_H
# include <limits.h>
#endif
#ifndef LONG_MAX
#define LONG_MAX 2147483647L
#endif
#ifndef LONG_MIN
#define LONG_MIN (- LONG_MAX - 1)
#endif
#undef SUCCESS
#undef FAILURE
#define SUCCESS 0
#define FAILURE -1 /* this MUST stay a negative number, or it may affect functions! */
#include "zend_hash.h"
#include "zend_ts_hash.h"
#include "zend_llist.h"
#define INTERNAL_FUNCTION_PARAMETERS int ht, zval *return_value, zval *this_ptr, int return_value_used TSRMLS_DC
#define INTERNAL_FUNCTION_PARAM_PASSTHRU ht, return_value, this_ptr, return_value_used TSRMLS_CC
/*
* zval
*/
typedef struct _zval_struct zval;
typedef struct _zend_class_entry zend_class_entry;
typedef struct _zend_object {
zend_class_entry *ce;
HashTable *properties;
unsigned int in_get:1;
unsigned int in_set:1;
} zend_object;
typedef unsigned int zend_object_handle;
typedef struct _zend_object_value zend_object_value;
#include "zend_object_handlers.h"
struct _zend_object_value {
zend_object_handle handle;
zend_object_handlers *handlers;
};
typedef union _zvalue_value {
long lval; /* long value */
double dval; /* double value */
struct {
char *val;
int len;
} str;
HashTable *ht; /* hash table value */
zend_object_value obj;
} zvalue_value;
struct _zval_struct {
/* Variable information */
zvalue_value value; /* value */
zend_uint refcount;
zend_uchar type; /* active type */
zend_uchar is_ref;
};
/* excpt.h on Digital Unix 4.0 defines function_table */
#undef function_table
/* A lot of stuff needs shifiting around in order to include zend_compile.h here */
union _zend_function;
#include "zend_iterators.h"
struct _zend_class_entry {
char type;
char *name;
zend_uint name_length;
struct _zend_class_entry *parent;
int refcount;
zend_bool constants_updated;
zend_uint ce_flags;
HashTable function_table;
HashTable default_properties;
HashTable properties_info;
HashTable *static_members;
HashTable constants_table;
struct _zend_function_entry *builtin_functions;
union _zend_function *constructor;
union _zend_function *destructor;
union _zend_function *clone;
union _zend_function *__get;
union _zend_function *__set;
union _zend_function *__call;
zend_class_iterator_funcs iterator_funcs;
/* handlers */
zend_object_value (*create_object)(zend_class_entry *class_type TSRMLS_DC);
zend_object_iterator *(*get_iterator)(zend_class_entry *ce, zval *object TSRMLS_DC);
int (*interface_gets_implemented)(zend_class_entry *iface, zend_class_entry *class_type TSRMLS_DC); /* a class implements this interface */
zend_class_entry **interfaces;
zend_uint num_interfaces;
char *filename;
zend_uint line_start;
zend_uint line_end;
char *doc_comment;
zend_uint doc_comment_len;
struct _zend_module_entry *module;
};
#include "zend_stream.h"
typedef struct _zend_utility_functions {
void (*error_function)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 4, 0);
int (*printf_function)(const char *format, ...) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 1, 2);
int (*write_function)(const char *str, uint str_length);
FILE *(*fopen_function)(const char *filename, char **opened_path);
void (*message_handler)(long message, void *data);
void (*block_interruptions)(void);
void (*unblock_interruptions)(void);
int (*get_configuration_directive)(char *name, uint name_length, zval *contents);
void (*ticks_function)(int ticks);
void (*on_timeout)(int seconds TSRMLS_DC);
int (*stream_open_function)(const char *filename, zend_file_handle *handle TSRMLS_DC);
int (*vspprintf_function)(char **pbuf, size_t max_len, const char *format, va_list ap);
} zend_utility_functions;
typedef struct _zend_utility_values {
char *import_use_extension;
uint import_use_extension_length;
zend_bool html_errors;
} zend_utility_values;
typedef int (*zend_write_func_t)(const char *str, uint str_length);
#undef MIN
#undef MAX
#define MAX(a, b) (((a)>(b))?(a):(b))
#define MIN(a, b) (((a)<(b))?(a):(b))
#define ZEND_STRL(str) (str), (sizeof(str)-1)
#define ZEND_STRS(str) (str), (sizeof(str)-1)
#define ZEND_NORMALIZE_BOOL(n) \
((n) ? (((n)>0) ? 1 : -1) : 0)
#define ZEND_TRUTH(x) ((x) ? 1 : 0)
#define ZEND_LOG_XOR(a, b) (ZEND_TRUTH(a) ^ ZEND_TRUTH(b))
/* data types */
#define IS_NULL 0
#define IS_LONG 1
#define IS_DOUBLE 2
#define IS_STRING 3
#define IS_ARRAY 4
#define IS_OBJECT 5
#define IS_BOOL 6
#define IS_RESOURCE 7
#define IS_CONSTANT 8
#define IS_CONSTANT_ARRAY 9
/* Ugly hack to support constants as static array indices */
#define IS_CONSTANT_INDEX 0x80
/* overloaded elements data types */
#define OE_IS_ARRAY (1<<0)
#define OE_IS_OBJECT (1<<1)
#define OE_IS_METHOD (1<<2)
int zend_startup(zend_utility_functions *utility_functions, char **extensions, int start_builtin_functions);
void zend_shutdown(TSRMLS_D);
void zend_register_standard_ini_entries(TSRMLS_D);
#ifdef ZTS
void zend_post_startup(TSRMLS_D);
#endif
void zend_set_utility_values(zend_utility_values *utility_values);
BEGIN_EXTERN_C()
ZEND_API void _zend_bailout(char *filename, uint lineno);
END_EXTERN_C()
#define zend_bailout() _zend_bailout(__FILE__, __LINE__)
#define zend_try \
{ \
jmp_buf orig_bailout; \
zend_bool orig_bailout_set=EG(bailout_set); \
\
EG(bailout_set) = 1; \
memcpy(&orig_bailout, &EG(bailout), sizeof(jmp_buf)); \
if (setjmp(EG(bailout))==0)
#define zend_catch \
else
#define zend_end_try() \
memcpy(&EG(bailout), &orig_bailout, sizeof(jmp_buf)); \
EG(bailout_set) = orig_bailout_set; \
}
#define zend_first_try EG(bailout_set)=0; zend_try
BEGIN_EXTERN_C()
ZEND_API char *get_zend_version(void);
ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_copy);
ZEND_API int zend_print_zval(zval *expr, int indent);
ZEND_API int zend_print_zval_ex(zend_write_func_t write_func, zval *expr, int indent);
ZEND_API void zend_print_zval_r(zval *expr, int indent TSRMLS_DC);
ZEND_API void zend_print_flat_zval_r(zval *expr TSRMLS_DC);
ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int indent TSRMLS_DC);
ZEND_API void zend_output_debug_string(zend_bool trigger_break, char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3);
END_EXTERN_C()
void zend_activate(TSRMLS_D);
void zend_deactivate(TSRMLS_D);
void zend_activate_modules(TSRMLS_D);
void zend_deactivate_modules(TSRMLS_D);
void zend_post_deactivate_modules(TSRMLS_D);
#if ZEND_DEBUG
#define Z_DBG(expr) (expr)
#else
#define Z_DBG(expr)
#endif
ZEND_API extern char *empty_string;
BEGIN_EXTERN_C()
ZEND_API void free_estring(char **str_p);
END_EXTERN_C()
#define STR_FREE(ptr) if (ptr && ptr!=empty_string) { efree(ptr); }
#define STR_FREE_REL(ptr) if (ptr && ptr!=empty_string) { efree_rel(ptr); }
#define STR_REALLOC(ptr, size) \
if (ptr!=empty_string) { \
ptr = (char *) erealloc(ptr, size); \
} else { \
ptr = (char *) emalloc(size); \
memset(ptr, 0, size); \
}
/* output support */
#define ZEND_WRITE(str, str_len) zend_write((str), (str_len))
#define ZEND_PUTS(str) zend_write((str), strlen((str)))
#define ZEND_PUTC(c) zend_write(&(c), 1), (c)
BEGIN_EXTERN_C()
extern ZEND_API int (*zend_printf)(const char *format, ...) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 1, 2);
extern ZEND_API zend_write_func_t zend_write;
extern ZEND_API FILE *(*zend_fopen)(const char *filename, char **opened_path);
extern ZEND_API void (*zend_block_interruptions)(void);
extern ZEND_API void (*zend_unblock_interruptions)(void);
extern ZEND_API void (*zend_ticks_function)(int ticks);
extern ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 4, 0);
extern void (*zend_on_timeout)(int seconds TSRMLS_DC);
extern ZEND_API int (*zend_stream_open_function)(const char *filename, zend_file_handle *handle TSRMLS_DC);
extern int (*zend_vspprintf)(char **pbuf, size_t max_len, const char *format, va_list ap);
ZEND_API void zend_error(int type, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3);
void zenderror(char *error);
/* The following #define is used for code duality in PHP for Engine 1 & 2 */
#define ZEND_STANDARD_CLASS_DEF_PTR zend_standard_class_def
extern ZEND_API zend_class_entry *zend_standard_class_def;
extern ZEND_API zend_utility_values zend_uv;
extern ZEND_API zval zval_used_for_init;
END_EXTERN_C()
#define ZEND_UV(name) (zend_uv.name)
#define HANDLE_BLOCK_INTERRUPTIONS() if (zend_block_interruptions) { zend_block_interruptions(); }
#define HANDLE_UNBLOCK_INTERRUPTIONS() if (zend_unblock_interruptions) { zend_unblock_interruptions(); }
BEGIN_EXTERN_C()
ZEND_API void zend_message_dispatcher(long message, void *data);
ZEND_API int zend_get_configuration_directive(char *name, uint name_length, zval *contents);
END_EXTERN_C()
/* Messages for applications of Zend */
#define ZMSG_FAILED_INCLUDE_FOPEN 1L
#define ZMSG_FAILED_REQUIRE_FOPEN 2L
#define ZMSG_FAILED_HIGHLIGHT_FOPEN 3L
#define ZMSG_MEMORY_LEAK_DETECTED 4L
#define ZMSG_MEMORY_LEAK_REPEATED 5L
#define ZMSG_LOG_SCRIPT_NAME 6L
#define ZMSG_MEMORY_LEAKS_GRAND_TOTAL 7L
#define ZVAL_ADDREF(pz) (++(pz)->refcount)
#define ZVAL_DELREF(pz) (--(pz)->refcount)
#define ZVAL_REFCOUNT(pz) ((pz)->refcount)
#define INIT_PZVAL(z) \
(z)->refcount = 1; \
(z)->is_ref = 0;
#define INIT_ZVAL(z) z = zval_used_for_init;
#define ALLOC_INIT_ZVAL(zp) \
ALLOC_ZVAL(zp); \
INIT_ZVAL(*zp);
#define MAKE_STD_ZVAL(zv) \
ALLOC_ZVAL(zv); \
INIT_PZVAL(zv);
#define PZVAL_IS_REF(z) ((z)->is_ref)
#define SEPARATE_ZVAL(ppzv) \
{ \
zval *orig_ptr = *(ppzv); \
\
if (orig_ptr->refcount>1) { \
orig_ptr->refcount--; \
ALLOC_ZVAL(*(ppzv)); \
**(ppzv) = *orig_ptr; \
zval_copy_ctor(*(ppzv)); \
(*(ppzv))->refcount=1; \
(*(ppzv))->is_ref = 0; \
} \
}
#define SEPARATE_ZVAL_IF_NOT_REF(ppzv) \
if (!PZVAL_IS_REF(*ppzv)) { \
SEPARATE_ZVAL(ppzv); \
}
#define SEPARATE_ZVAL_TO_MAKE_IS_REF(ppzv) \
if (!PZVAL_IS_REF(*ppzv)) { \
SEPARATE_ZVAL(ppzv); \
(*(ppzv))->is_ref = 1; \
}
#define COPY_PZVAL_TO_ZVAL(zv, pzv) \
(zv) = *(pzv); \
if ((pzv)->refcount>1) { \
zval_copy_ctor(&(zv)); \
(pzv)->refcount--; \
} else { \
FREE_ZVAL(pzv); \
} \
INIT_PZVAL(&(zv));
#define REPLACE_ZVAL_VALUE(ppzv_dest, pzv_src, copy) { \
int is_ref, refcount; \
\
SEPARATE_ZVAL_IF_NOT_REF(ppzv_dest); \
is_ref = (*ppzv_dest)->is_ref; \
refcount = (*ppzv_dest)->refcount; \
zval_dtor(*ppzv_dest); \
**ppzv_dest = *pzv_src; \
if (copy) { \
zval_copy_ctor(*ppzv_dest); \
} \
(*ppzv_dest)->is_ref = is_ref; \
(*ppzv_dest)->refcount = refcount; \
}
#define ZEND_MAX_RESERVED_RESOURCES 4
#endif /* ZEND_H */
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* indent-tabs-mode: t
* End:
*/
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

+1973
View File
File diff suppressed because it is too large. Load diff
+545
View File
@@ -0,0 +1,545 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2004 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 2.00 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.zend.com/license/2_00.txt. |
| If you did not receive a copy of the Zend license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@zend.com so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andi Gutmans <andi@zend.com> |
| Zeev Suraski <zeev@zend.com> |
| Andrei Zmievski <andrei@php.net> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#ifndef ZEND_API_H
#define ZEND_API_H
#include "zend_modules.h"
#include "zend_list.h"
#include "zend_fast_cache.h"
#include "zend_operators.h"
#include "zend_variables.h"
#include "zend_execute.h"
BEGIN_EXTERN_C()
typedef struct _zend_function_entry {
char *fname;
void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
struct _zend_arg_info *arg_info;
zend_uint num_args;
zend_uint flags;
} zend_function_entry;
#define ZEND_FN(name) zif_##name
#define ZEND_NAMED_FUNCTION(name) void name(INTERNAL_FUNCTION_PARAMETERS)
#define ZEND_FUNCTION(name) ZEND_NAMED_FUNCTION(ZEND_FN(name))
#define ZEND_METHOD(classname, name) ZEND_NAMED_FUNCTION(ZEND_FN(classname##_##name))
#define ZEND_FENTRY(zend_name, name, arg_info, flags) { #zend_name, name, arg_info, (zend_uint) (sizeof(arg_info)/sizeof(struct _zend_arg_info)-1), flags },
#define ZEND_NAMED_FE(zend_name, name, arg_info) ZEND_FENTRY(zend_name, name, arg_info, 0)
#define ZEND_FE(name, arg_info) ZEND_FENTRY(name, ZEND_FN(name), arg_info, 0)
#define ZEND_FALIAS(name, alias, arg_info) ZEND_FENTRY(name, ZEND_FN(alias), arg_info, 0)
#define ZEND_ME(classname, name, arg_info, flags) ZEND_FENTRY(name, ZEND_FN(classname##_##name), arg_info, flags)
#define ZEND_ABSTRACT_ME(classname, name, arg_info) ZEND_FENTRY(name, NULL, arg_info, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
#define ZEND_MALIAS(classname, name, alias, arg_info, flags) \
ZEND_FENTRY(name, ZEND_FN(classname##_##alias), arg_info, flags)
#define ZEND_ME_MAPPING(name, func_name, arg_types) ZEND_NAMED_FE(name, ZEND_FN(func_name), arg_types)
#define ZEND_ARG_INFO(pass_by_ref, name) { #name, sizeof(#name)-1, NULL, 0, 0, pass_by_ref, 0, 0 },
#define ZEND_ARG_PASS_INFO(pass_by_ref) { NULL, 0, NULL, 0, 0, pass_by_ref, 0, 0 },
#define ZEND_ARG_OBJ_INFO(pass_by_ref, name, classname, allow_null) { #name, sizeof(#name)-1, #classname, sizeof(#classname)-1, allow_null, pass_by_ref, 0, 0 },
#define ZEND_BEGIN_ARG_INFO_EX(name, pass_rest_by_reference, return_reference, required_num_args) \
zend_arg_info name[] = { \
{ NULL, 0, NULL, 0, 0, pass_rest_by_reference, return_reference, required_num_args },
#define ZEND_BEGIN_ARG_INFO(name, pass_rest_by_reference) \
ZEND_BEGIN_ARG_INFO_EX(name, pass_rest_by_reference, ZEND_RETURN_REFERENCE_AGNOSTIC, -1)
#define ZEND_END_ARG_INFO() };
/* Name macros */
#define ZEND_MODULE_STARTUP_N(module) zm_startup_##module
#define ZEND_MODULE_SHUTDOWN_N(module) zm_shutdown_##module
#define ZEND_MODULE_ACTIVATE_N(module) zm_activate_##module
#define ZEND_MODULE_DEACTIVATE_N(module) zm_deactivate_##module
#define ZEND_MODULE_POST_ZEND_DEACTIVATE_N(module) zm_post_zend_deactivate_##module
#define ZEND_MODULE_INFO_N(module) zm_info_##module
/* Declaration macros */
#define ZEND_MODULE_STARTUP_D(module) int ZEND_MODULE_STARTUP_N(module)(INIT_FUNC_ARGS)
#define ZEND_MODULE_SHUTDOWN_D(module) int ZEND_MODULE_SHUTDOWN_N(module)(SHUTDOWN_FUNC_ARGS)
#define ZEND_MODULE_ACTIVATE_D(module) int ZEND_MODULE_ACTIVATE_N(module)(INIT_FUNC_ARGS)
#define ZEND_MODULE_DEACTIVATE_D(module) int ZEND_MODULE_DEACTIVATE_N(module)(SHUTDOWN_FUNC_ARGS)
#define ZEND_MODULE_POST_ZEND_DEACTIVATE_D(module) int ZEND_MODULE_POST_ZEND_DEACTIVATE_N(module)(void)
#define ZEND_MODULE_INFO_D(module) void ZEND_MODULE_INFO_N(module)(ZEND_MODULE_INFO_FUNC_ARGS)
#define ZEND_GET_MODULE(name) \
BEGIN_EXTERN_C()\
ZEND_DLEXPORT zend_module_entry *get_module(void) { return &name##_module_entry; }\
END_EXTERN_C()
#define ZEND_BEGIN_MODULE_GLOBALS(module_name) \
typedef struct _zend_##module_name##_globals {
#define ZEND_END_MODULE_GLOBALS(module_name) \
} zend_##module_name##_globals;
#ifdef ZTS
#define ZEND_DECLARE_MODULE_GLOBALS(module_name) \
ts_rsrc_id module_name##_globals_id;
#define ZEND_EXTERN_MODULE_GLOBALS(module_name) \
extern ts_rsrc_id module_name##_globals_id;
#define ZEND_INIT_MODULE_GLOBALS(module_name, globals_ctor, globals_dtor) \
ts_allocate_id(&module_name##_globals_id, sizeof(zend_##module_name##_globals), (ts_allocate_ctor) globals_ctor, (ts_allocate_dtor) globals_dtor);
#else
#define ZEND_DECLARE_MODULE_GLOBALS(module_name) \
zend_##module_name##_globals module_name##_globals;
#define ZEND_EXTERN_MODULE_GLOBALS(module_name) \
extern zend_##module_name##_globals module_name##_globals;
#define ZEND_INIT_MODULE_GLOBALS(module_name, globals_ctor, globals_dtor) \
globals_ctor(&module_name##_globals);
#endif
#define INIT_CLASS_ENTRY(class_container, class_name, functions) INIT_OVERLOADED_CLASS_ENTRY(class_container, class_name, functions, NULL, NULL, NULL)
#define INIT_OVERLOADED_CLASS_ENTRY(class_container, class_name, functions, handle_fcall, handle_propget, handle_propset) \
{ \
class_container.name = strdup(class_name); \
class_container.name_length = sizeof(class_name) - 1; \
class_container.builtin_functions = functions; \
class_container.constructor = NULL; \
class_container.destructor = NULL; \
class_container.clone = NULL; \
class_container.create_object = NULL; \
class_container.interface_gets_implemented = NULL; \
class_container.__call = handle_fcall; \
class_container.__get = handle_propget; \
class_container.__set = handle_propset; \
class_container.parent = NULL; \
class_container.num_interfaces = 0; \
class_container.interfaces = NULL; \
class_container.get_iterator = NULL; \
class_container.iterator_funcs.funcs = NULL; \
class_container.module = NULL; \
}
int zend_next_free_module(void);
BEGIN_EXTERN_C()
ZEND_API int zend_get_parameters(int ht, int param_count, ...);
ZEND_API int _zend_get_parameters_array(int ht, int param_count, zval **argument_array TSRMLS_DC);
ZEND_API int zend_get_parameters_ex(int param_count, ...);
ZEND_API int _zend_get_parameters_array_ex(int param_count, zval ***argument_array TSRMLS_DC);
#define zend_get_parameters_array(ht, param_count, argument_array) \
_zend_get_parameters_array(ht, param_count, argument_array TSRMLS_CC)
#define zend_get_parameters_array_ex(param_count, argument_array) \
_zend_get_parameters_array_ex(param_count, argument_array TSRMLS_CC)
/* Parameter parsing API -- andrei */
#define ZEND_PARSE_PARAMS_QUIET 1<<1
ZEND_API int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...);
ZEND_API int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...);
ZEND_API char *zend_zval_type_name(zval *arg);
ZEND_API int zend_parse_method_parameters(int num_args TSRMLS_DC, zval *this_ptr, char *type_spec, ...);
ZEND_API int zend_parse_method_parameters_ex(int flags, int num_args TSRMLS_DC, zval *this_ptr, char *type_spec, ...);
/* End of parameter parsing API -- andrei */
ZEND_API int zend_register_functions(zend_class_entry *scope, zend_function_entry *functions, HashTable *function_table, int type TSRMLS_DC);
ZEND_API void zend_unregister_functions(zend_function_entry *functions, int count, HashTable *function_table TSRMLS_DC);
ZEND_API int zend_register_module(zend_module_entry *module_entry);
ZEND_API zend_class_entry *zend_register_internal_class(zend_class_entry *class_entry TSRMLS_DC);
ZEND_API zend_class_entry *zend_register_internal_class_ex(zend_class_entry *class_entry, zend_class_entry *parent_ce, char *parent_name TSRMLS_DC);
ZEND_API zend_class_entry *zend_register_internal_interface(zend_class_entry *orig_class_entry TSRMLS_DC);
ZEND_API void zend_class_implements(zend_class_entry *class_entry TSRMLS_DC, int num_interfaces, ...);
ZEND_API int zend_disable_function(char *function_name, uint function_name_length TSRMLS_DC);
ZEND_API int zend_disable_class(char *class_name, uint class_name_length TSRMLS_DC);
ZEND_API void zend_wrong_param_count(TSRMLS_D);
ZEND_API zend_bool zend_is_callable(zval *callable, zend_bool syntax_only, char **callable_name);
ZEND_API zend_bool zend_make_callable(zval *callable, char **callable_name TSRMLS_DC);
ZEND_API char *zend_get_module_version(char *module_name);
ZEND_API int zend_get_module_started(char *module_name);
ZEND_API int zend_declare_property(zend_class_entry *ce, char *name, int name_length, zval *property, int access_type TSRMLS_DC);
ZEND_API int zend_declare_property_null(zend_class_entry *ce, char *name, int name_length, int access_type TSRMLS_DC);
ZEND_API int zend_declare_property_long(zend_class_entry *ce, char *name, int name_length, long value, int access_type TSRMLS_DC);
ZEND_API int zend_declare_property_string(zend_class_entry *ce, char *name, int name_length, char *value, int access_type TSRMLS_DC);
ZEND_API void zend_update_property(zend_class_entry *scope, zval *object, char *name, int name_length, zval *value TSRMLS_DC);
ZEND_API void zend_update_property_null(zend_class_entry *scope, zval *object, char *name, int name_length TSRMLS_DC);
ZEND_API void zend_update_property_long(zend_class_entry *scope, zval *object, char *name, int name_length, long value TSRMLS_DC);
ZEND_API void zend_update_property_string(zend_class_entry *scope, zval *object, char *name, int name_length, char *value TSRMLS_DC);
ZEND_API zval *zend_read_property(zend_class_entry *scope, zval *object, char *name, int name_length, zend_bool silent TSRMLS_DC);
ZEND_API zend_class_entry *zend_get_class_entry(zval *zobject TSRMLS_DC);
#define getThis() (this_ptr)
#define WRONG_PARAM_COUNT ZEND_WRONG_PARAM_COUNT()
#define WRONG_PARAM_COUNT_WITH_RETVAL(ret) ZEND_WRONG_PARAM_COUNT_WITH_RETVAL(ret)
#define ARG_COUNT(dummy) (ht)
#define ZEND_NUM_ARGS() (ht)
#define ZEND_WRONG_PARAM_COUNT() { zend_wrong_param_count(TSRMLS_C); return; }
#define ZEND_WRONG_PARAM_COUNT_WITH_RETVAL(ret) { zend_wrong_param_count(TSRMLS_C); return ret; }
#ifndef ZEND_WIN32
#define DLEXPORT
#endif
ZEND_API int zend_startup_module(zend_module_entry *module);
#define array_init(arg) _array_init((arg) ZEND_FILE_LINE_CC)
#define object_init(arg) _object_init((arg) ZEND_FILE_LINE_CC TSRMLS_CC)
#define object_init_ex(arg, ce) _object_init_ex((arg), (ce) ZEND_FILE_LINE_CC TSRMLS_CC)
#define object_and_properties_init(arg, ce, properties) _object_and_properties_init((arg), (ce), (properties) ZEND_FILE_LINE_CC TSRMLS_CC)
ZEND_API int _array_init(zval *arg ZEND_FILE_LINE_DC);
ZEND_API int _object_init(zval *arg ZEND_FILE_LINE_DC TSRMLS_DC);
ZEND_API int _object_init_ex(zval *arg, zend_class_entry *ce ZEND_FILE_LINE_DC TSRMLS_DC);
ZEND_API int _object_and_properties_init(zval *arg, zend_class_entry *ce, HashTable *properties ZEND_FILE_LINE_DC TSRMLS_DC);
ZEND_API void zend_merge_properties(zval *obj, HashTable *properties, int destroy_ht TSRMLS_DC);
/* no longer supported */
ZEND_API int add_assoc_function(zval *arg, char *key, void (*function_ptr)(INTERNAL_FUNCTION_PARAMETERS));
ZEND_API int add_assoc_long_ex(zval *arg, char *key, uint key_len, long n);
ZEND_API int add_assoc_null_ex(zval *arg, char *key, uint key_len);
ZEND_API int add_assoc_bool_ex(zval *arg, char *key, uint key_len, int b);
ZEND_API int add_assoc_resource_ex(zval *arg, char *key, uint key_len, int r);
ZEND_API int add_assoc_double_ex(zval *arg, char *key, uint key_len, double d);
ZEND_API int add_assoc_string_ex(zval *arg, char *key, uint key_len, char *str, int duplicate);
ZEND_API int add_assoc_stringl_ex(zval *arg, char *key, uint key_len, char *str, uint length, int duplicate);
ZEND_API int add_assoc_zval_ex(zval *arg, char *key, uint key_len, zval *value);
#define add_assoc_long(__arg, __key, __n) add_assoc_long_ex(__arg, __key, strlen(__key)+1, __n)
#define add_assoc_null(__arg, __key) add_assoc_null_ex(__arg, __key, strlen(__key) + 1)
#define add_assoc_bool(__arg, __key, __b) add_assoc_bool_ex(__arg, __key, strlen(__key)+1, __b)
#define add_assoc_resource(__arg, __key, __r) add_assoc_resource_ex(__arg, __key, strlen(__key)+1, __r)
#define add_assoc_double(__arg, __key, __d) add_assoc_double_ex(__arg, __key, strlen(__key)+1, __d)
#define add_assoc_string(__arg, __key, __str, __duplicate) add_assoc_string_ex(__arg, __key, strlen(__key)+1, __str, __duplicate)
#define add_assoc_stringl(__arg, __key, __str, __length, __duplicate) add_assoc_stringl_ex(__arg, __key, strlen(__key)+1, __str, __length, __duplicate)
#define add_assoc_zval(__arg, __key, __value) add_assoc_zval_ex(__arg, __key, strlen(__key)+1, __value)
/* unset() functions are only suported for legacy modules and null() functions should be used */
#define add_assoc_unset(__arg, __key) add_assoc_null_ex(__arg, __key, strlen(__key) + 1)
#define add_index_unset(__arg, __key) add_index_null(__arg, __key)
#define add_next_index_unset(__arg) add_next_index_null(__arg)
#define add_property_unset(__arg, __key) add_property_null(__arg, __key)
ZEND_API int add_index_long(zval *arg, uint idx, long n);
ZEND_API int add_index_null(zval *arg, uint idx);
ZEND_API int add_index_bool(zval *arg, uint idx, int b);
ZEND_API int add_index_resource(zval *arg, uint idx, int r);
ZEND_API int add_index_double(zval *arg, uint idx, double d);
ZEND_API int add_index_string(zval *arg, uint idx, char *str, int duplicate);
ZEND_API int add_index_stringl(zval *arg, uint idx, char *str, uint length, int duplicate);
ZEND_API int add_index_zval(zval *arg, uint index, zval *value);
ZEND_API int add_next_index_long(zval *arg, long n);
ZEND_API int add_next_index_null(zval *arg);
ZEND_API int add_next_index_bool(zval *arg, int b);
ZEND_API int add_next_index_resource(zval *arg, int r);
ZEND_API int add_next_index_double(zval *arg, double d);
ZEND_API int add_next_index_string(zval *arg, char *str, int duplicate);
ZEND_API int add_next_index_stringl(zval *arg, char *str, uint length, int duplicate);
ZEND_API int add_next_index_zval(zval *arg, zval *value);
ZEND_API int add_get_assoc_string_ex(zval *arg, char *key, uint key_len, char *str, void **dest, int duplicate);
ZEND_API int add_get_assoc_stringl_ex(zval *arg, char *key, uint key_len, char *str, uint length, void **dest, int duplicate);
#define add_get_assoc_string(__arg, __key, __str, __dest, __duplicate) add_get_assoc_string_ex(__arg, __key, strlen(__key)+1, __str, __dest, __duplicate)
#define add_get_assoc_stringl(__arg, __key, __str, __length, __dest, __duplicate) add_get_assoc_stringl_ex(__arg, __key, strlen(__key)+1, __str, __length, __dest, __duplicate)
ZEND_API int add_get_index_long(zval *arg, uint idx, long l, void **dest);
ZEND_API int add_get_index_double(zval *arg, uint idx, double d, void **dest);
ZEND_API int add_get_index_string(zval *arg, uint idx, char *str, void **dest, int duplicate);
ZEND_API int add_get_index_stringl(zval *arg, uint idx, char *str, uint length, void **dest, int duplicate);
ZEND_API int add_property_long_ex(zval *arg, char *key, uint key_len, long l TSRMLS_DC);
ZEND_API int add_property_null_ex(zval *arg, char *key, uint key_len TSRMLS_DC);
ZEND_API int add_property_bool_ex(zval *arg, char *key, uint key_len, int b TSRMLS_DC);
ZEND_API int add_property_resource_ex(zval *arg, char *key, uint key_len, long r TSRMLS_DC);
ZEND_API int add_property_double_ex(zval *arg, char *key, uint key_len, double d TSRMLS_DC);
ZEND_API int add_property_string_ex(zval *arg, char *key, uint key_len, char *str, int duplicate TSRMLS_DC);
ZEND_API int add_property_stringl_ex(zval *arg, char *key, uint key_len, char *str, uint length, int duplicate TSRMLS_DC);
ZEND_API int add_property_zval_ex(zval *arg, char *key, uint key_len, zval *value TSRMLS_DC);
#define add_property_long(__arg, __key, __n) add_property_long_ex(__arg, __key, strlen(__key)+1, __n TSRMLS_CC)
#define add_property_null(__arg, __key) add_property_null_ex(__arg, __key, strlen(__key) + 1 TSRMLS_CC)
#define add_property_bool(__arg, __key, __b) add_property_bool_ex(__arg, __key, strlen(__key)+1, __b TSRMLS_CC)
#define add_property_resource(__arg, __key, __r) add_property_resource_ex(__arg, __key, strlen(__key)+1, __r TSRMLS_CC)
#define add_property_double(__arg, __key, __d) add_property_double_ex(__arg, __key, strlen(__key)+1, __d TSRMLS_CC)
#define add_property_string(__arg, __key, __str, __duplicate) add_property_string_ex(__arg, __key, strlen(__key)+1, __str, __duplicate TSRMLS_CC)
#define add_property_stringl(__arg, __key, __str, __length, __duplicate) add_property_stringl_ex(__arg, __key, strlen(__key)+1, __str, __length, __duplicate TSRMLS_CC)
#define add_property_zval(__arg, __key, __value) add_property_zval_ex(__arg, __key, strlen(__key)+1, __value TSRMLS_CC)
ZEND_API int call_user_function(HashTable *function_table, zval **object_pp, zval *function_name, zval *retval_ptr, zend_uint param_count, zval *params[] TSRMLS_DC);
ZEND_API int call_user_function_ex(HashTable *function_table, zval **object_pp, zval *function_name, zval **retval_ptr_ptr, zend_uint param_count, zval **params[], int no_separation, HashTable *symbol_table TSRMLS_DC);
END_EXTERN_C()
typedef struct _zend_fcall_info {
size_t size;
HashTable *function_table;
zval *function_name;
HashTable *symbol_table;
zval **retval_ptr_ptr;
zend_uint param_count;
zval ***params;
zval **object_pp;
zend_bool no_separation;
} zend_fcall_info;
typedef struct _zend_fcall_info_cache {
zend_bool initialized;
zend_function *function_handler;
zend_class_entry *calling_scope;
zval **object_pp;
} zend_fcall_info_cache;
BEGIN_EXTERN_C()
ZEND_API extern zend_fcall_info_cache empty_fcall_info_cache;
ZEND_API int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TSRMLS_DC);
ZEND_API int zend_set_hash_symbol(zval *symbol, char *name, int name_length,
zend_bool is_ref, int num_symbol_tables, ...);
#define add_method(arg, key, method) add_assoc_function((arg), (key), (method))
ZEND_API ZEND_FUNCTION(display_disabled_function);
ZEND_API ZEND_FUNCTION(display_disabled_class);
END_EXTERN_C()
#if ZEND_DEBUG
#define CHECK_ZVAL_STRING(z) \
if ((z)->value.str.val[ (z)->value.str.len ] != '\0') { zend_error(E_WARNING, "String is not zero-terminated (%s)", (z)->value.str.val); }
#define CHECK_ZVAL_STRING_REL(z) \
if ((z)->value.str.val[ (z)->value.str.len ] != '\0') { zend_error(E_WARNING, "String is not zero-terminated (%s) (source: %s:%d)", (z)->value.str.val ZEND_FILE_LINE_RELAY_CC); }
#else
#define CHECK_ZVAL_STRING(z)
#define CHECK_ZVAL_STRING_REL(z)
#endif
#define ZVAL_RESOURCE(z, l) { \
(z)->type = IS_RESOURCE; \
(z)->value.lval = l; \
}
#define ZVAL_BOOL(z, b) { \
(z)->type = IS_BOOL; \
(z)->value.lval = ((b) != 0); \
}
#define ZVAL_NULL(z) { \
(z)->type = IS_NULL; \
}
#define ZVAL_LONG(z, l) { \
(z)->type = IS_LONG; \
(z)->value.lval = l; \
}
#define ZVAL_DOUBLE(z, d) { \
(z)->type = IS_DOUBLE; \
(z)->value.dval = d; \
}
#define ZVAL_STRING(z, s, duplicate) { \
char *__s=(s); \
(z)->value.str.len = strlen(__s); \
(z)->value.str.val = (duplicate?estrndup(__s, (z)->value.str.len):__s); \
(z)->type = IS_STRING; \
}
#define ZVAL_STRINGL(z, s, l, duplicate) { \
char *__s=(s); int __l=l; \
(z)->value.str.len = __l; \
(z)->value.str.val = (duplicate?estrndup(__s, __l):__s); \
(z)->type = IS_STRING; \
}
#define ZVAL_EMPTY_STRING(z) { \
(z)->value.str.len = 0; \
(z)->value.str.val = empty_string; \
(z)->type = IS_STRING; \
}
#define ZVAL_ZVAL(z, zv, copy, dtor) { \
int is_ref, refcount; \
is_ref = (z)->is_ref; \
refcount = (z)->refcount; \
*(z) = *(zv); \
if (copy) { \
zval_copy_ctor(z); \
} \
if (dtor) { \
if (!copy) { \
ZVAL_NULL(zv); \
} \
zval_ptr_dtor(&zv); \
} \
(z)->is_ref = is_ref; \
(z)->refcount = refcount; \
}
#define ZVAL_FALSE(z) ZVAL_BOOL(z, 0)
#define ZVAL_TRUE(z) ZVAL_BOOL(z, 1)
#define RETVAL_RESOURCE(l) ZVAL_RESOURCE(return_value, l)
#define RETVAL_BOOL(b) ZVAL_BOOL(return_value, b)
#define RETVAL_NULL() ZVAL_NULL(return_value)
#define RETVAL_LONG(l) ZVAL_LONG(return_value, l)
#define RETVAL_DOUBLE(d) ZVAL_DOUBLE(return_value, d)
#define RETVAL_STRING(s, duplicate) ZVAL_STRING(return_value, s, duplicate)
#define RETVAL_STRINGL(s, l, duplicate) ZVAL_STRINGL(return_value, s, l, duplicate)
#define RETVAL_EMPTY_STRING() ZVAL_EMPTY_STRING(return_value)
#define RETVAL_ZVAL(zv, copy, dtor) ZVAL_ZVAL(return_value, zv, copy, dtor)
#define RETVAL_FALSE ZVAL_BOOL(return_value, 0)
#define RETVAL_TRUE ZVAL_BOOL(return_value, 1)
#define RETURN_RESOURCE(l) { RETVAL_RESOURCE(l); return; }
#define RETURN_BOOL(b) { RETVAL_BOOL(b); return; }
#define RETURN_NULL() { RETVAL_NULL(); return;}
#define RETURN_LONG(l) { RETVAL_LONG(l); return; }
#define RETURN_DOUBLE(d) { RETVAL_DOUBLE(d); return; }
#define RETURN_STRING(s, duplicate) { RETVAL_STRING(s, duplicate); return; }
#define RETURN_STRINGL(s, l, duplicate) { RETVAL_STRINGL(s, l, duplicate); return; }
#define RETURN_EMPTY_STRING() { RETVAL_EMPTY_STRING(); return; }
#define RETURN_ZVAL(zv, copy, dtor) { RETVAL_ZVAL(zv, copy, dtor); return; }
#define RETURN_FALSE { RETVAL_FALSE; return; }
#define RETURN_TRUE { RETVAL_TRUE; return; }
#define SET_VAR_STRING(n, v) { \
{ \
zval *var; \
ALLOC_ZVAL(var); \
ZVAL_STRING(var, v, 0); \
ZEND_SET_GLOBAL_VAR(n, var); \
} \
}
#define SET_VAR_STRINGL(n, v, l) { \
{ \
zval *var; \
ALLOC_ZVAL(var); \
ZVAL_STRINGL(var, v, l, 0); \
ZEND_SET_GLOBAL_VAR(n, var); \
} \
}
#define SET_VAR_LONG(n, v) { \
{ \
zval *var; \
ALLOC_ZVAL(var); \
ZVAL_LONG(var, v); \
ZEND_SET_GLOBAL_VAR(n, var); \
} \
}
#define SET_VAR_DOUBLE(n, v) { \
{ \
zval *var; \
ALLOC_ZVAL(var); \
ZVAL_DOUBLE(var, v); \
ZEND_SET_GLOBAL_VAR(n, var); \
} \
}
#define ZEND_SET_SYMBOL(symtable, name, var) \
{ \
char *_name = (name); \
\
ZEND_SET_SYMBOL_WITH_LENGTH(symtable, _name, strlen(_name)+1, var, 1, 0); \
}
#define ZEND_SET_SYMBOL_WITH_LENGTH(symtable, name, name_length, var, _refcount, _is_ref) \
{ \
zval **orig_var; \
\
if (zend_hash_find(symtable, (name), (name_length), (void **) &orig_var)==SUCCESS \
&& PZVAL_IS_REF(*orig_var)) { \
(var)->refcount = (*orig_var)->refcount; \
(var)->is_ref = 1; \
\
if (_refcount) { \
(var)->refcount += _refcount-1; \
} \
zval_dtor(*orig_var); \
**orig_var = *(var); \
FREE_ZVAL(var); \
} else { \
(var)->is_ref = _is_ref; \
if (_refcount) { \
(var)->refcount = _refcount; \
} \
zend_hash_update(symtable, (name), (name_length), &(var), sizeof(zval *), NULL); \
} \
}
#define ZEND_SET_GLOBAL_VAR(name, var) \
ZEND_SET_SYMBOL(&EG(symbol_table), name, var)
#define ZEND_SET_GLOBAL_VAR_WITH_LENGTH(name, name_length, var, _refcount, _is_ref) \
ZEND_SET_SYMBOL_WITH_LENGTH(&EG(symbol_table), name, name_length, var, _refcount, _is_ref)
#define ZEND_DEFINE_PROPERTY(class_ptr, name, value, mask) \
{ \
char *_name = (name); \
int namelen = strlen(_name); \
zend_declare_property(class_ptr, _name, namelen, value, mask TSRMLS_CC); \
}
#define HASH_OF(p) ((p)->type==IS_ARRAY ? (p)->value.ht : (((p)->type==IS_OBJECT ? Z_OBJ_HT_P(p)->get_properties((p) TSRMLS_CC) : NULL)))
#define ZVAL_IS_NULL(z) ((z)->type==IS_NULL)
/* For compatibility */
#define ZEND_MINIT ZEND_MODULE_STARTUP_N
#define ZEND_MSHUTDOWN ZEND_MODULE_SHUTDOWN_N
#define ZEND_RINIT ZEND_MODULE_ACTIVATE_N
#define ZEND_RSHUTDOWN ZEND_MODULE_DEACTIVATE_N
#define ZEND_MINFO ZEND_MODULE_INFO_N
#define ZEND_MINIT_FUNCTION ZEND_MODULE_STARTUP_D
#define ZEND_MSHUTDOWN_FUNCTION ZEND_MODULE_SHUTDOWN_D
#define ZEND_RINIT_FUNCTION ZEND_MODULE_ACTIVATE_D
#define ZEND_RSHUTDOWN_FUNCTION ZEND_MODULE_DEACTIVATE_D
#define ZEND_MINFO_FUNCTION ZEND_MODULE_INFO_D
END_EXTERN_C()
#endif /* ZEND_API_H */
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* indent-tabs-mode: t
* End:
*/
+792
View File
@@ -0,0 +1,792 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2004 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 2.00 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.zend.com/license/2_00.txt. |
| If you did not receive a copy of the Zend license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@zend.com so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andi Gutmans <andi@zend.com> |
| Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#include "zend.h"
#include "zend_alloc.h"
#include "zend_globals.h"
#include "zend_fast_cache.h"
#ifdef HAVE_SIGNAL_H
# include <signal.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#include "zend_mm.h"
#ifndef ZTS
ZEND_API zend_alloc_globals alloc_globals;
#endif
#ifdef ZEND_MM
#define ZEND_DISABLE_MEMORY_CACHE 0
#else
#define ZEND_DISABLE_MEMORY_CACHE 0
#endif
#ifdef ZEND_MM
#define ZEND_DO_MALLOC(size) zend_mm_alloc(&AG(mm_heap), size)
#define ZEND_DO_FREE(ptr) zend_mm_free(&AG(mm_heap), ptr)
#define ZEND_DO_REALLOC(ptr, size) zend_mm_realloc(&AG(mm_heap), ptr, size)
#elif defined(ZEND_WIN32)
#define ZEND_DO_MALLOC(size) (AG(memory_heap) ? HeapAlloc(AG(memory_heap), HEAP_NO_SERIALIZE, size) : malloc(size))
#define ZEND_DO_FREE(ptr) (AG(memory_heap) ? HeapFree(AG(memory_heap), HEAP_NO_SERIALIZE, ptr) : free(ptr))
#define ZEND_DO_REALLOC(ptr, size) (AG(memory_heap) ? HeapReAlloc(AG(memory_heap), HEAP_NO_SERIALIZE, ptr, size) : realloc(ptr, size))
#else
#define ZEND_DO_MALLOC(size) malloc(size)
#define ZEND_DO_FREE(ptr) free(ptr)
#define ZEND_DO_REALLOC(ptr, size) realloc(ptr, size)
#endif
#if ZEND_DEBUG
# define END_MAGIC_SIZE sizeof(long)
static long mem_block_end_magic = MEM_BLOCK_END_MAGIC;
#else
# define END_MAGIC_SIZE 0
#endif
# if MEMORY_LIMIT
# if ZEND_DEBUG
#define CHECK_MEMORY_LIMIT(s, rs) _CHECK_MEMORY_LIMIT(s, rs, __zend_filename, __zend_lineno)
# else
#define CHECK_MEMORY_LIMIT(s, rs) _CHECK_MEMORY_LIMIT(s, rs, NULL, 0)
# endif
#define _CHECK_MEMORY_LIMIT(s, rs, file, lineno) { AG(allocated_memory) += rs;\
if (AG(memory_limit)<AG(allocated_memory)) {\
int php_mem_limit = AG(memory_limit); \
if (AG(memory_limit)+1048576 > AG(allocated_memory) - rs) { \
AG(memory_limit) = AG(allocated_memory) + 1048576; \
if (file) { \
zend_error(E_ERROR,"Allowed memory size of %d bytes exhausted at %s:%d (tried to allocate %d bytes)", php_mem_limit, file, lineno, s); \
} else { \
zend_error(E_ERROR,"Allowed memory size of %d bytes exhausted (tried to allocate %d bytes)", php_mem_limit, s); \
} \
} else { \
if (file) { \
fprintf(stderr, "Allowed memory size of %d bytes exhausted at %s:%d (tried to allocate %d bytes)\n", php_mem_limit, file, lineno, s); \
} else { \
fprintf(stderr, "Allowed memory size of %d bytes exhausted (tried to allocate %d bytes)\n", php_mem_limit, s); \
} \
exit(1); \
} \
} \
}
# endif
#ifndef CHECK_MEMORY_LIMIT
#define CHECK_MEMORY_LIMIT(s, rs)
#endif
#if ZEND_DEBUG || !defined(ZEND_MM)
#define REMOVE_POINTER_FROM_LIST(p) \
if (p==AG(head)) { \
AG(head) = p->pNext; \
} else { \
p->pLast->pNext = p->pNext; \
} \
if (p->pNext) { \
p->pNext->pLast = p->pLast; \
}
#else
#define REMOVE_POINTER_FROM_LIST(p)
#endif
#if ZEND_DEBUG || !defined(ZEND_MM)
#define ADD_POINTER_TO_LIST(p) \
p->pNext = AG(head); \
if (AG(head)) { \
AG(head)->pLast = p; \
} \
AG(head) = p; \
p->pLast = (zend_mem_header *) NULL;
#else
#define ADD_POINTER_TO_LIST(p)
#endif
#define DECLARE_CACHE_VARS() \
unsigned int real_size; \
unsigned int cache_index
#define REAL_SIZE(size) ((size+7) & ~0x7)
#define CALCULATE_REAL_SIZE_AND_CACHE_INDEX(size) \
real_size = REAL_SIZE(size); \
cache_index = real_size >> 3;
#define SIZE real_size
#define CACHE_INDEX cache_index
ZEND_API void *_emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
zend_mem_header *p;
DECLARE_CACHE_VARS();
TSRMLS_FETCH();
CALCULATE_REAL_SIZE_AND_CACHE_INDEX(size);
#if !ZEND_DISABLE_MEMORY_CACHE
if ((CACHE_INDEX < MAX_CACHED_MEMORY) && (AG(cache_count)[CACHE_INDEX] > 0)) {
p = AG(cache)[CACHE_INDEX][--AG(cache_count)[CACHE_INDEX]];
#if ZEND_DEBUG
p->filename = __zend_filename;
p->lineno = __zend_lineno;
p->orig_filename = __zend_orig_filename;
p->orig_lineno = __zend_orig_lineno;
p->magic = MEM_BLOCK_START_MAGIC;
p->reported = 0;
/* Setting the thread id should not be necessary, because we fetched this block
* from this thread's cache
*/
AG(cache_stats)[CACHE_INDEX][1]++;
memcpy((((char *) p) + sizeof(zend_mem_header) + MEM_HEADER_PADDING + size), &mem_block_end_magic, sizeof(long));
#endif
p->cached = 0;
p->size = size;
return (void *)((char *)p + sizeof(zend_mem_header) + MEM_HEADER_PADDING);
} else {
#endif
#if ZEND_DEBUG
if (CACHE_INDEX<MAX_CACHED_MEMORY) {
AG(cache_stats)[CACHE_INDEX][0]++;
}
#endif
#if MEMORY_LIMIT
CHECK_MEMORY_LIMIT(size, SIZE);
if (AG(allocated_memory) > AG(allocated_memory_peak)) {
AG(allocated_memory_peak) = AG(allocated_memory);
}
#endif
p = (zend_mem_header *) ZEND_DO_MALLOC(sizeof(zend_mem_header) + MEM_HEADER_PADDING + SIZE + END_MAGIC_SIZE);
#if !ZEND_DISABLE_MEMORY_CACHE
}
#endif
HANDLE_BLOCK_INTERRUPTIONS();
if (!p) {
fprintf(stderr,"FATAL: emalloc(): Unable to allocate %ld bytes\n", (long) size);
#if ZEND_DEBUG && defined(HAVE_KILL) && defined(HAVE_GETPID)
kill(getpid(), SIGSEGV);
#else
exit(1);
#endif
HANDLE_UNBLOCK_INTERRUPTIONS();
return (void *)p;
}
p->cached = 0;
ADD_POINTER_TO_LIST(p);
p->size = size; /* Save real size for correct cache output */
#if ZEND_DEBUG
p->filename = __zend_filename;
p->lineno = __zend_lineno;
p->orig_filename = __zend_orig_filename;
p->orig_lineno = __zend_orig_lineno;
p->magic = MEM_BLOCK_START_MAGIC;
p->reported = 0;
# ifdef ZTS
p->thread_id = tsrm_thread_id();
# endif
memcpy((((char *) p) + sizeof(zend_mem_header) + MEM_HEADER_PADDING + size), &mem_block_end_magic, sizeof(long));
#endif
HANDLE_UNBLOCK_INTERRUPTIONS();
return (void *)((char *)p + sizeof(zend_mem_header) + MEM_HEADER_PADDING);
}
#include "zend_multiply.h"
ZEND_API void *_safe_emalloc(size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
if (nmemb < LONG_MAX
&& size < LONG_MAX
&& offset < LONG_MAX
&& nmemb >= 0
&& size >= 0
&& offset >= 0) {
long lval;
double dval;
int use_dval;
ZEND_SIGNED_MULTIPLY_LONG(nmemb, size, lval, dval, use_dval);
if (!use_dval
&& lval < (long) (LONG_MAX - offset)) {
return emalloc_rel(lval + offset);
}
}
zend_error(E_ERROR, "Possible integer overflow in memory allocation (%zd * %zd + %zd)", nmemb, size, offset);
return 0;
}
ZEND_API void _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
zend_mem_header *p = (zend_mem_header *) ((char *)ptr - sizeof(zend_mem_header) - MEM_HEADER_PADDING);
DECLARE_CACHE_VARS();
TSRMLS_FETCH();
#if defined(ZTS) && TSRM_DEBUG
if (p->thread_id != tsrm_thread_id()) {
tsrm_error(TSRM_ERROR_LEVEL_ERROR, "Memory block allocated at %s:(%d) on thread %x freed at %s:(%d) on thread %x, ignoring",
p->filename, p->lineno, p->thread_id,
__zend_filename, __zend_lineno, tsrm_thread_id());
return;
}
#endif
CALCULATE_REAL_SIZE_AND_CACHE_INDEX(p->size);
#if ZEND_DEBUG
if (!_mem_block_check(ptr, 1 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC)) {
return;
}
memset(ptr, 0x5a, p->size);
#endif
#if !ZEND_DISABLE_MEMORY_CACHE
if ((CACHE_INDEX < MAX_CACHED_MEMORY) && (AG(cache_count)[CACHE_INDEX] < MAX_CACHED_ENTRIES)) {
AG(cache)[CACHE_INDEX][AG(cache_count)[CACHE_INDEX]++] = p;
p->cached = 1;
#if ZEND_DEBUG
p->magic = MEM_BLOCK_CACHED_MAGIC;
#endif
return;
}
#endif
HANDLE_BLOCK_INTERRUPTIONS();
REMOVE_POINTER_FROM_LIST(p);
#if MEMORY_LIMIT
AG(allocated_memory) -= SIZE;
#endif
ZEND_DO_FREE(p);
HANDLE_UNBLOCK_INTERRUPTIONS();
}
ZEND_API void *_ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
void *p;
int final_size = size*nmemb;
HANDLE_BLOCK_INTERRUPTIONS();
p = _emalloc(final_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
if (!p) {
HANDLE_UNBLOCK_INTERRUPTIONS();
return (void *) p;
}
memset(p, 0, final_size);
HANDLE_UNBLOCK_INTERRUPTIONS();
return p;
}
ZEND_API void *_erealloc(void *ptr, size_t size, int allow_failure ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
zend_mem_header *p;
zend_mem_header *orig;
DECLARE_CACHE_VARS();
TSRMLS_FETCH();
if (!ptr) {
return _emalloc(size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
p = orig = (zend_mem_header *) ((char *)ptr-sizeof(zend_mem_header)-MEM_HEADER_PADDING);
#if defined(ZTS) && TSRM_DEBUG
if (p->thread_id != tsrm_thread_id()) {
void *new_p;
tsrm_error(TSRM_ERROR_LEVEL_ERROR, "Memory block allocated at %s:(%d) on thread %x reallocated at %s:(%d) on thread %x, duplicating",
p->filename, p->lineno, p->thread_id,
__zend_filename, __zend_lineno, tsrm_thread_id());
new_p = _emalloc(size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
memcpy(new_p, ptr, p->size);
return new_p;
}
#endif
CALCULATE_REAL_SIZE_AND_CACHE_INDEX(size);
HANDLE_BLOCK_INTERRUPTIONS();
#if MEMORY_LIMIT
CHECK_MEMORY_LIMIT(size - p->size, SIZE - REAL_SIZE(p->size));
if (AG(allocated_memory) > AG(allocated_memory_peak)) {
AG(allocated_memory_peak) = AG(allocated_memory);
}
#endif
REMOVE_POINTER_FROM_LIST(p);
p = (zend_mem_header *) ZEND_DO_REALLOC(p, sizeof(zend_mem_header)+MEM_HEADER_PADDING+SIZE+END_MAGIC_SIZE);
if (!p) {
if (!allow_failure) {
fprintf(stderr,"FATAL: erealloc(): Unable to allocate %ld bytes\n", (long) size);
#if ZEND_DEBUG && HAVE_KILL && HAVE_GETPID
kill(getpid(), SIGSEGV);
#else
exit(1);
#endif
}
ADD_POINTER_TO_LIST(orig);
HANDLE_UNBLOCK_INTERRUPTIONS();
return (void *)NULL;
}
ADD_POINTER_TO_LIST(p);
#if ZEND_DEBUG
p->filename = __zend_filename;
p->lineno = __zend_lineno;
p->magic = MEM_BLOCK_START_MAGIC;
memcpy((((char *) p) + sizeof(zend_mem_header) + MEM_HEADER_PADDING + size), &mem_block_end_magic, sizeof(long));
#endif
p->size = size;
HANDLE_UNBLOCK_INTERRUPTIONS();
return (void *)((char *)p+sizeof(zend_mem_header)+MEM_HEADER_PADDING);
}
ZEND_API char *_estrdup(const char *s ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
int length;
char *p;
length = strlen(s)+1;
HANDLE_BLOCK_INTERRUPTIONS();
p = (char *) _emalloc(length ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
if (!p) {
HANDLE_UNBLOCK_INTERRUPTIONS();
return (char *)NULL;
}
HANDLE_UNBLOCK_INTERRUPTIONS();
memcpy(p, s, length);
return p;
}
ZEND_API char *_estrndup(const char *s, uint length ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
char *p;
HANDLE_BLOCK_INTERRUPTIONS();
p = (char *) _emalloc(length+1 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
if (!p) {
HANDLE_UNBLOCK_INTERRUPTIONS();
return (char *)NULL;
}
HANDLE_UNBLOCK_INTERRUPTIONS();
memcpy(p, s, length);
p[length] = 0;
return p;
}
ZEND_API char *zend_strndup(const char *s, uint length)
{
char *p;
p = (char *) malloc(length+1);
if (!p) {
return (char *)NULL;
}
if (length) {
memcpy(p, s, length);
}
p[length] = 0;
return p;
}
ZEND_API int zend_set_memory_limit(unsigned int memory_limit)
{
#if MEMORY_LIMIT
TSRMLS_FETCH();
AG(memory_limit) = memory_limit;
return SUCCESS;
#else
return FAILURE;
#endif
}
ZEND_API void start_memory_manager(TSRMLS_D)
{
AG(head) = NULL;
#if MEMORY_LIMIT
AG(memory_limit) = 1<<30; /* ridiculous limit, effectively no limit */
AG(allocated_memory) = 0;
AG(memory_exhausted) = 0;
AG(allocated_memory_peak) = 0;
#endif
#if ZEND_ENABLE_FAST_CACHE
memset(AG(fast_cache_list_head), 0, sizeof(AG(fast_cache_list_head)));
#endif
#if !ZEND_DISABLE_MEMORY_CACHE
memset(AG(cache_count), 0, sizeof(AG(cache_count)));
#endif
#ifdef ZEND_MM
zend_mm_startup(&AG(mm_heap), 256*1024);
#elif defined(ZEND_WIN32)
AG(memory_heap) = HeapCreate(HEAP_NO_SERIALIZE, 256*1024, 0);
#endif
#if ZEND_DEBUG
memset(AG(cache_stats), 0, sizeof(AG(cache_stats)));
memset(AG(fast_cache_stats), 0, sizeof(AG(fast_cache_stats)));
#endif
}
ZEND_API void shutdown_memory_manager(int silent, int full_shutdown TSRMLS_DC)
{
#if ZEND_DEBUG || !defined(ZEND_MM)
zend_mem_header *p, *t;
#endif
#if ZEND_DEBUG
zend_uint grand_total_leaks=0;
#endif
#if !ZEND_DISABLE_MEMORY_CACHE
/* Free memory cache even on partial shutdown to avoid fragmentation */
if (1 || full_shutdown) {
unsigned int i, j;
zend_mem_header *ptr;
for (i=1; i<MAX_CACHED_MEMORY; i++) {
for (j=0; j<AG(cache_count)[i]; j++) {
ptr = (zend_mem_header *) AG(cache)[i][j];
# if MEMORY_LIMIT
AG(allocated_memory) -= REAL_SIZE(ptr->size);
# endif
REMOVE_POINTER_FROM_LIST(ptr);
ZEND_DO_FREE(ptr);
}
AG(cache_count)[i] = 0;
}
}
#endif /* !ZEND_DISABLE_MEMORY_CACHE */
#if defined(ZEND_MM) && !ZEND_DEBUG
if (full_shutdown) {
zend_mm_shutdown(&AG(mm_heap));
return;
}
#elif defined(ZEND_WIN32) && !ZEND_DEBUG
if (full_shutdown && AG(memory_heap)) {
HeapDestroy(AG(memory_heap));
return;
}
#endif
#if ZEND_ENABLE_FAST_CACHE
{
zend_fast_cache_list_entry *fast_cache_list_entry, *next_fast_cache_list_entry;
unsigned int fci;
for (fci=0; fci<MAX_FAST_CACHE_TYPES; fci++) {
fast_cache_list_entry = AG(fast_cache_list_head)[fci];
while (fast_cache_list_entry) {
next_fast_cache_list_entry = fast_cache_list_entry->next;
efree(fast_cache_list_entry);
fast_cache_list_entry = next_fast_cache_list_entry;
}
AG(fast_cache_list_head)[fci] = NULL;
}
}
#endif /* ZEND_ENABLE_FAST_CACHE */
#if ZEND_DEBUG || !defined(ZEND_MM)
p = AG(head);
t = AG(head);
while (t) {
if (!t->cached) {
#if ZEND_DEBUG
if (!t->reported) {
zend_mem_header *iterator;
int total_leak=0, total_leak_count=0;
grand_total_leaks++;
if (!silent) {
zend_message_dispatcher(ZMSG_MEMORY_LEAK_DETECTED, t);
}
t->reported = 1;
for (iterator=t->pNext; iterator; iterator=iterator->pNext) {
if (!iterator->cached
&& iterator->filename==t->filename
&& iterator->lineno==t->lineno) {
total_leak += iterator->size;
total_leak_count++;
iterator->reported = 1;
}
}
if (!silent && total_leak_count>0) {
zend_message_dispatcher(ZMSG_MEMORY_LEAK_REPEATED, (void *) (long) (total_leak_count));
}
grand_total_leaks += total_leak_count;
}
#endif
#if MEMORY_LIMIT
AG(allocated_memory) -= REAL_SIZE(t->size);
#endif
p = t->pNext;
REMOVE_POINTER_FROM_LIST(t);
ZEND_DO_FREE(t);
t = p;
} else {
t = t->pNext;
}
}
#if ZEND_DEBUG
if (!silent && grand_total_leaks > 0) {
zend_message_dispatcher(ZMSG_MEMORY_LEAKS_GRAND_TOTAL, &grand_total_leaks);
}
#endif
#if MEMORY_LIMIT
AG(memory_exhausted)=0;
AG(allocated_memory_peak) = 0;
#endif
#if (ZEND_DEBUG)
do {
zval display_memory_cache_stats;
int i, j;
if (full_shutdown) {
/* we're shutting down completely, don't even touch the INI subsystem */
break;
}
if (zend_get_configuration_directive("display_memory_cache_stats", sizeof("display_memory_cache_stats"), &display_memory_cache_stats)==FAILURE) {
break;
}
if (!atoi(display_memory_cache_stats.value.str.val)) {
break;
}
fprintf(stderr, "Memory cache statistics\n"
"-----------------------\n\n"
"[zval, %2ld]\t\t%d / %d (%.2f%%)\n"
"[hash, %2ld]\t\t%d / %d (%.2f%%)\n",
(long) sizeof(zval),
AG(fast_cache_stats)[ZVAL_CACHE_LIST][1], AG(fast_cache_stats)[ZVAL_CACHE_LIST][0]+AG(fast_cache_stats)[ZVAL_CACHE_LIST][1],
((double) AG(fast_cache_stats)[ZVAL_CACHE_LIST][1] / (AG(fast_cache_stats)[ZVAL_CACHE_LIST][0]+AG(fast_cache_stats)[ZVAL_CACHE_LIST][1]))*100,
(long) sizeof(HashTable),
AG(fast_cache_stats)[HASHTABLE_CACHE_LIST][1], AG(fast_cache_stats)[HASHTABLE_CACHE_LIST][0]+AG(fast_cache_stats)[HASHTABLE_CACHE_LIST][1],
((double) AG(fast_cache_stats)[HASHTABLE_CACHE_LIST][1] / (AG(fast_cache_stats)[HASHTABLE_CACHE_LIST][0]+AG(fast_cache_stats)[HASHTABLE_CACHE_LIST][1]))*100);
for (i=0; i<MAX_CACHED_MEMORY; i+=2) {
fprintf(stderr, "[%2d, %2d]\t\t", i, i+1);
for (j=0; j<2; j++) {
fprintf(stderr, "%d / %d (%.2f%%)\t\t",
AG(cache_stats)[i+j][1], AG(cache_stats)[i+j][0]+AG(cache_stats)[i+j][1],
((double) AG(cache_stats)[i+j][1] / (AG(cache_stats)[i+j][0]+AG(cache_stats)[i+j][1]))*100);
}
fprintf(stderr, "\n");
}
} while (0);
#endif
#endif
#if defined(ZEND_MM) && ZEND_DEBUG
if (full_shutdown) {
zend_mm_shutdown(&AG(mm_heap));
return;
}
#elif defined(ZEND_WIN32) && ZEND_DEBUG
if (full_shutdown && AG(memory_heap)) {
HeapDestroy(AG(memory_heap));
return;
}
#endif
}
#if ZEND_DEBUG
void zend_debug_alloc_output(char *format, ...)
{
char output_buf[256];
va_list args;
va_start(args, format);
vsprintf(output_buf, format, args);
va_end(args);
#ifdef ZEND_WIN32
OutputDebugString(output_buf);
#else
fprintf(stderr, "%s", output_buf);
#endif
}
ZEND_API int _mem_block_check(void *ptr, int silent ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
zend_mem_header *p = (zend_mem_header *) ((char *)ptr - sizeof(zend_mem_header) - MEM_HEADER_PADDING);
int no_cache_notice=0;
int valid_beginning=1;
int had_problems=0;
long end_magic;
if (silent==2) {
silent = 1;
no_cache_notice = 1;
}
if (silent==3) {
silent = 0;
no_cache_notice = 1;
}
if (!silent) {
zend_message_dispatcher(ZMSG_LOG_SCRIPT_NAME, NULL);
zend_debug_alloc_output("---------------------------------------\n");
zend_debug_alloc_output("%s(%d) : Block 0x%0.8lX status:\n" ZEND_FILE_LINE_RELAY_CC, (long) p);
if (__zend_orig_filename) {
zend_debug_alloc_output("%s(%d) : Actual location (location was relayed)\n" ZEND_FILE_LINE_ORIG_RELAY_CC);
}
zend_debug_alloc_output("%10s\t","Beginning: ");
}
switch (p->magic) {
case MEM_BLOCK_START_MAGIC:
if (!silent) {
zend_debug_alloc_output("OK (allocated on %s:%d, %d bytes)\n", p->filename, p->lineno, p->size);
}
break; /* ok */
case MEM_BLOCK_FREED_MAGIC:
if (!silent) {
zend_debug_alloc_output("Freed\n");
had_problems = 1;
} else {
return _mem_block_check(ptr, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
break;
case MEM_BLOCK_CACHED_MAGIC:
if (!silent) {
if (!no_cache_notice) {
zend_debug_alloc_output("Cached (allocated on %s:%d, %d bytes)\n", p->filename, p->lineno, p->size);
had_problems = 1;
}
} else {
if (!no_cache_notice) {
return _mem_block_check(ptr, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
}
break;
default:
if (!silent) {
zend_debug_alloc_output("Overrun (magic=0x%0.8lX, expected=0x%0.8lX)\n", p->magic, MEM_BLOCK_START_MAGIC);
} else {
return _mem_block_check(ptr, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
had_problems = 1;
valid_beginning = 0;
break;
}
memcpy(&end_magic, (((char *) p)+sizeof(zend_mem_header)+MEM_HEADER_PADDING+p->size), sizeof(long));
if (valid_beginning && (end_magic != MEM_BLOCK_END_MAGIC)) {
char *overflow_ptr, *magic_ptr=(char *) &mem_block_end_magic;
int overflows=0;
long i;
if (silent) {
return _mem_block_check(ptr, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
had_problems = 1;
overflow_ptr = (char *) &end_magic;
for (i=0; i<(int)sizeof(long); i++) {
if (overflow_ptr[i]!=magic_ptr[i]) {
overflows++;
}
}
zend_debug_alloc_output("%10s\t", "End:");
zend_debug_alloc_output("Overflown (magic=0x%0.8lX instead of 0x%0.8lX)\n", end_magic, MEM_BLOCK_END_MAGIC);
zend_debug_alloc_output("%10s\t","");
if (overflows>=(int)sizeof(long)) {
zend_debug_alloc_output("At least %d bytes overflown\n", sizeof(long));
} else {
zend_debug_alloc_output("%d byte(s) overflown\n", overflows);
}
} else if (!silent) {
zend_debug_alloc_output("%10s\t", "End:");
if (valid_beginning) {
zend_debug_alloc_output("OK\n");
} else {
zend_debug_alloc_output("Unknown\n");
}
}
if (!silent) {
zend_debug_alloc_output("---------------------------------------\n");
}
return ((!had_problems) ? 1 : 0);
}
ZEND_API void _full_mem_check(int silent ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
zend_mem_header *p;
int errors=0;
TSRMLS_FETCH();
p = AG(head);
zend_debug_alloc_output("------------------------------------------------\n");
zend_debug_alloc_output("Full Memory Check at %s:%d\n" ZEND_FILE_LINE_RELAY_CC);
while (p) {
if (!_mem_block_check((void *)((char *)p + sizeof(zend_mem_header) + MEM_HEADER_PADDING), (silent?2:3) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC)) {
errors++;
}
p = p->pNext;
}
zend_debug_alloc_output("End of full memory check %s:%d (%d errors)\n" ZEND_FILE_LINE_RELAY_CC, errors);
zend_debug_alloc_output("------------------------------------------------\n");
}
#endif
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* indent-tabs-mode: t
* End:
*/
+153
View File
@@ -0,0 +1,153 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2004 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 2.00 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.zend.com/license/2_00.txt. |
| If you did not receive a copy of the Zend license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@zend.com so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andi Gutmans <andi@zend.com> |
| Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#ifndef ZEND_ALLOC_H
#define ZEND_ALLOC_H
#include <stdio.h>
#include "../TSRM/TSRM.h"
#include "zend_globals_macros.h"
#include "zend_mm.h"
#define MEM_BLOCK_START_MAGIC 0x7312F8DCL
#define MEM_BLOCK_END_MAGIC 0x2A8FCC84L
#define MEM_BLOCK_FREED_MAGIC 0x99954317L
#define MEM_BLOCK_CACHED_MAGIC 0xFB8277DCL
typedef struct _zend_mem_header {
#if ZEND_DEBUG
long magic;
char *filename;
uint lineno;
int reported;
char *orig_filename;
uint orig_lineno;
# ifdef ZTS
THREAD_T thread_id;
# endif
#endif
#if ZEND_DEBUG || !defined(ZEND_MM)
struct _zend_mem_header *pNext;
struct _zend_mem_header *pLast;
#endif
unsigned int size:31;
unsigned int cached:1;
} zend_mem_header;
typedef union _align_test {
void *ptr;
double dbl;
long lng;
} align_test;
#define MAX_CACHED_MEMORY 11
#define MAX_CACHED_ENTRIES 256
#define PRE_INIT_CACHE_ENTRIES 32
#if ZEND_GCC_VERSION >= 2000
# define PLATFORM_ALIGNMENT (__alignof__ (align_test))
#else
# define PLATFORM_ALIGNMENT (sizeof(align_test))
#endif
#define MEM_HEADER_PADDING (((PLATFORM_ALIGNMENT-sizeof(zend_mem_header))%PLATFORM_ALIGNMENT+PLATFORM_ALIGNMENT)%PLATFORM_ALIGNMENT)
BEGIN_EXTERN_C()
ZEND_API char *zend_strndup(const char *s, unsigned int length) ZEND_ATTRIBUTE_MALLOC;
ZEND_API void *_emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
ZEND_API void *_safe_emalloc(size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
ZEND_API void _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
ZEND_API void *_ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
ZEND_API void *_erealloc(void *ptr, size_t size, int allow_failure ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
ZEND_API char *_estrdup(const char *s ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
ZEND_API char *_estrndup(const char *s, unsigned int length ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC;
/* Standard wrapper macros */
#define emalloc(size) _emalloc((size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define safe_emalloc(nmemb, size, offset) _safe_emalloc((nmemb), (size), (offset) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define efree(ptr) _efree((ptr) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define ecalloc(nmemb, size) _ecalloc((nmemb), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define erealloc(ptr, size) _erealloc((ptr), (size), 0 ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define erealloc_recoverable(ptr, size) _erealloc((ptr), (size), 1 ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define estrdup(s) _estrdup((s) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define estrndup(s, length) _estrndup((s), (length) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
/* Relay wrapper macros */
#define emalloc_rel(size) _emalloc((size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define safe_emalloc_rel(nmemb, size, offset) _safe_emalloc((nmemb), (size), (offset) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define efree_rel(ptr) _efree((ptr) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define ecalloc_rel(nmemb, size) _ecalloc((nmemb), (size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define erealloc_rel(ptr, size) _erealloc((ptr), (size), 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define erealloc_recoverable_rel(ptr, size) _erealloc((ptr), (size), 1 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define estrdup_rel(s) _estrdup((s) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define estrndup_rel(s, length) _estrndup((s), (length) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
/* Selective persistent/non persistent allocation macros */
#define pemalloc(size, persistent) ((persistent)?malloc(size):emalloc(size))
#define pefree(ptr, persistent) ((persistent)?free(ptr):efree(ptr))
#define pecalloc(nmemb, size, persistent) ((persistent)?calloc((nmemb), (size)):ecalloc((nmemb), (size)))
#define perealloc(ptr, size, persistent) ((persistent)?realloc((ptr), (size)):erealloc((ptr), (size)))
#define perealloc_recoverable(ptr, size, persistent) ((persistent)?realloc((ptr), (size)):erealloc_recoverable((ptr), (size)))
#define pestrdup(s, persistent) ((persistent)?strdup(s):estrdup(s))
#define pemalloc_rel(size, persistent) ((persistent)?malloc(size):emalloc_rel(size))
#define pefree_rel(ptr, persistent) ((persistent)?free(ptr):efree_rel(ptr))
#define pecalloc_rel(nmemb, size, persistent) ((persistent)?calloc((nmemb), (size)):ecalloc_rel((nmemb), (size)))
#define perealloc_rel(ptr, size, persistent) ((persistent)?realloc((ptr), (size)):erealloc_rel((ptr), (size)))
#define perealloc_recoverable_rel(ptr, size, persistent) ((persistent)?realloc((ptr), (size)):erealloc_recoverable_rel((ptr), (size)))
#define pestrdup_rel(s, persistent) ((persistent)?strdup(s):estrdup_rel(s))
#define safe_estrdup(ptr) ((ptr)?(estrdup(ptr)):(empty_string))
#define safe_estrndup(ptr, len) ((ptr)?(estrndup((ptr), (len))):(empty_string))
ZEND_API int zend_set_memory_limit(unsigned int memory_limit);
ZEND_API void start_memory_manager(TSRMLS_D);
ZEND_API void shutdown_memory_manager(int silent, int full_shutdown TSRMLS_DC);
#if ZEND_DEBUG
ZEND_API int _mem_block_check(void *ptr, int silent ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
ZEND_API void _full_mem_check(int silent ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
void zend_debug_alloc_output(char *format, ...);
#define mem_block_check(ptr, silent) _mem_block_check(ptr, silent ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define full_mem_check(silent) _full_mem_check(silent ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#else
#define mem_block_check(type, ptr, silent)
#define full_mem_check(silent)
#endif
END_EXTERN_C()
#endif
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* indent-tabs-mode: t
* End:
*/
+27
View File
@@ -0,0 +1,27 @@
ZEND_BEGIN_ARG_INFO(first_arg_force_ref, 0)
ZEND_ARG_PASS_INFO(1)
ZEND_END_ARG_INFO();
ZEND_BEGIN_ARG_INFO(second_arg_force_ref, 0)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(1)
ZEND_END_ARG_INFO();
ZEND_BEGIN_ARG_INFO(third_arg_force_ref, 0)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(1)
ZEND_END_ARG_INFO();
ZEND_BEGIN_ARG_INFO(fourth_arg_force_ref, 0)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(1)
ZEND_END_ARG_INFO();
ZEND_BEGIN_ARG_INFO(all_args_by_ref, 1)
ZEND_END_ARG_INFO();
File diff suppressed because it is too large. Load diff
Loaded 100 of 3543 files, more files were not shown because too many files have changed in this diff. Show more