Compare commits

..
Author SHA1 Message Date
SVN Migration bd7f307a53 This commit was manufactured by cvs2svn to create tag 'RELEASE_0_2_4'. 2005-02-18 15:39:23 +00:00
Wez Furlong cdbe7b7afa add this note. 2005-02-18 15:39:22 +00:00
Wez Furlong 9653864fbd prep for release 2005-02-18 15:32:14 +00:00
Wez Furlong 86708673fb Fix connecting to remote host, patch by Tim Friebe 2005-02-18 15:11:27 +00:00
Derick Rethans ff1687731d - Fixed bug #32021: Crash caused by range('', 'z') 2005-02-18 13:37:23 +00:00
Rob Richards b1157ff8d9 Fragment must have associated document to append xml otherwise it is read-only 2005-02-18 11:57:24 +00:00
Rob Richards e46e7309f8 Fixed bug #32011 (Fragments which replaced Nodes are not globaly useable) 2005-02-18 11:47:20 +00:00
Wez Furlong 3f0f701639 Update for pending PEAR release. 2005-02-18 01:39:36 +00:00
81ef9ee5ee ChangeLog update 2005-02-18 01:36:34 +00:00
Ilia Alshanetsky 6af3197b90 Improved search paths. 2005-02-17 22:56:47 +00:00
Marcus Boerger c17d3dbbb7 - A little optimization to prevent problems when trying to reimplement an
interface inherited from an interfaces that was just implemented......
2005-02-17 21:05:04 +00:00
Marcus Boerger c88da2bd92 - No C++ ruleZ here 2005-02-17 20:54:56 +00:00
Marcus Boerger 82ccc25113 - Actually we must do this in two steps: 1st resize the table and set all
interfaces, 2nd implement the interfaces
2005-02-17 20:49:56 +00:00
Marcus Boerger 02c35975c0 - Incrementation is done elsewhere 2005-02-17 20:28:46 +00:00
Marcus Boerger a7e4f84c5d - Fix windows build (funny MS compiler) 2005-02-17 20:15:40 +00:00
Andi Gutmans 27b13ba47c - Fix Bug #31960: msql_fetch_row() and msql_fetch_array() dropping columns with NULL values 2005-02-17 20:11:20 +00:00
Ilia Alshanetsky f2eb0acfcf Fixed bug #27633 (Double \r\r problem on ftp_get in ASCII mode on Win32). 2005-02-17 15:37:24 +00:00
Joe Orton 4f4cb65300 Declare error_mapping array as static and more const. 2005-02-17 15:05:16 +00:00
Anantha Kesari H Y 5f243d7af7 NetWare LibC has pwd.h 2005-02-17 13:57:21 +00:00
Anantha Kesari H Y 67a2998335 NetWare libc has pwd.h 2005-02-17 13:56:49 +00:00
Wez Furlong 9296eb0fd2 George too 2005-02-17 04:50:49 +00:00
Wez Furlong ede312933c ran ./scripts/dev/credits to update credits to reflect recent removals and
additions.
2005-02-17 04:49:52 +00:00
foobar 640bc001e5 - Compile fix for systems without int32_t typedef 2005-02-17 04:44:52 +00:00
Ilia Alshanetsky ed9e8c7c81 Fixed bug #31440 ($GLOBALS can be overwritten via GPC when register_globals
is enabled).
2005-02-17 04:44:11 +00:00
Wez Furlong 55f53a5a96 symlinked pdo drivers under ext.
Enabled PDO and PDO_SQLITE by default.
Fixup PDO header detection so that it searches in the correct order, and
correctly picks up the headers when building from outside of the source
tree.

TODO: make pdo_XXX auto-enable when XXX is enabled.  Volunteers welcome.
2005-02-17 04:23:15 +00:00
foobar 4585c15cb0 - Fixed bug #29554 (compile failure when using --with-pspell=/usr/local) 2005-02-17 03:51:19 +00:00
0b9addb57b ChangeLog update 2005-02-17 01:37:26 +00:00
Marcus Boerger 80af3ac83d - Add version information 2005-02-17 00:24:57 +00:00
Marcus Boerger e9b635b6e7 - For now we need the simple way 2005-02-17 00:16:00 +00:00
foobar 3f9dc8814e PHP_WIN32 is defined or not defined. 2005-02-16 23:47:38 +00:00
Wez Furlong 7215b2b8fb use a number here, fixes PECL #3493 2005-02-16 18:09:26 +00:00
Edin Kadribasic d388e4dc16 Enable mbstring use on windows. We were linking against mbstring for
some time now, but have never actually used it on Windows.
Fixes #31980.
2005-02-16 09:53:26 +00:00
f4ea74d828 ChangeLog update 2005-02-16 01:35:10 +00:00
Ilia Alshanetsky 43d1785ea1 Fixed bug #31986 (Max nesting limit set too low). 2005-02-15 21:56:17 +00:00
Marcus Boerger 7956ca0211 - SQLite depends on SPL if it is present
- Add SQLiteResult::count()
- SQLiteResult implements Countable if present
2005-02-15 21:09:42 +00:00
Edin Kadribasic 8ff4a1002c Really disable zend multibyte by default. mbstring is using #ifdef all over the place so defining to '0' doesn't help much 2005-02-15 13:57:49 +00:00
Edin Kadribasic 2c306869c5 Fixed bug #3478: handling of 64bit return values on 32bit machine 2005-02-15 12:41:24 +00:00
foobar 3f5055efab - Applied some patches to fix issues with e.g. ia_64 and s390 2005-02-15 08:51:10 +00:00
foobar 67a965a7e0 No tabs here 2005-02-15 01:44:10 +00:00
1eb0693385 ChangeLog update 2005-02-15 01:34:46 +00:00
foobar 731b04dd54 Missing .libs entry 2005-02-15 01:30:40 +00:00
Ilia Alshanetsky 7ee1fdb657 Prune uploaded file names to \ on all OSes, read comments for explanation. 2005-02-15 00:25:38 +00:00
foobar b6b3659224 - More sock->error resets 2005-02-14 23:44:23 +00:00
Edin Kadribasic 4a133ae725 ws fix 2005-02-14 23:40:24 +00:00
Edin Kadribasic 70e0849416 Added pg_field_type_oid() function 2005-02-14 23:36:16 +00:00
Edin Kadribasic 84a6e90b7d Added missing defines (#31751) 2005-02-14 23:01:57 +00:00
foobar a66b053ac9 - Removed duplicate error + reset error in new sockets 2005-02-14 22:16:06 +00:00
Marcus Boerger 3ab88a4718 - Disallow illegal class names (.c part) 2005-02-14 21:03:09 +00:00
Marcus Boerger ff8055fc5c - Disallow illegal class names 2005-02-14 20:58:22 +00:00
Wez Furlong 6c1c64c2e7 experimental hooks for alan.
Off limits to everyone else... pretend they are not there :)
2005-02-14 15:52:06 +00:00
Antony Dovgal 47e1961561 add markers for nice vim foldings 2005-02-14 13:38:09 +00:00
Antony Dovgal 7d4bf3ccd9 free errmsg & prevent leaks 2005-02-14 13:31:34 +00:00
Antony Dovgal ff23184893 fix indentation and add check for PDO includes 2005-02-14 12:52:34 +00:00
Anantha Kesari H Y 3c1e2e15b8 NetWare Libc has php.h so no need of having netware specific block here 2005-02-14 11:10:07 +00:00
foobar d20e2cf0fc Nuke non-existing ini option 2005-02-14 08:23:54 +00:00
foobar 28f0397803 Nuke unused code 2005-02-14 08:21:34 +00:00
0992be8577 ChangeLog update 2005-02-14 01:39:25 +00:00
Edin Kadribasic 6ff3368e1b Simplify 2005-02-13 23:40:30 +00:00
Edin Kadribasic 14819d0f14 Allow pdo to be statically compiled in, while modules remain dynamic 2005-02-13 23:19:00 +00:00
Wez Furlong 06cf185298 fix pdo_mssql.dll build 2005-02-13 23:13:14 +00:00
Marcus Boerger a57b6bad69 - Be more gracious in reflection API 2005-02-13 23:04:49 +00:00
Wez Furlong a92ae61cb8 fix snaps 2005-02-13 21:38:39 +00:00
Ilia Alshanetsky cd0435b15a Fixed test. 2005-02-13 19:23:53 +00:00
Marcus Boerger 21705a45bf - Little code reordering 2005-02-13 18:30:26 +00:00
Marcus Boerger f04134aee0 - Drop unneccessary rinit/rshutown,mshutdown
- Add protos
2005-02-13 18:14:34 +00:00
Marcus Boerger ef2b59f772 - Expand tests to have it work inside PHP 5.0 2005-02-13 18:13:44 +00:00
foobar 3ca8ad73a4 - Missing $Id$ tags 2005-02-13 17:54:04 +00:00
Ilia Alshanetsky f57b8d6dc5 Set auto-commit after establishing the connection, otherwise we have a crash. 2005-02-13 17:16:24 +00:00
Marcus Boerger f860c70362 - In fetch mode PDO_FETCH_CLASS handle constructor args
- Add PDOStatement::fetchObject
2005-02-13 17:04:04 +00:00
Marcus Boerger 746d5490cf - Use runtimeException as base if present (synch with other dbs) 2005-02-13 15:40:15 +00:00
Hartmut Holzgraefe aedea8539c no need to check for all functions of a group,
added check for prepared statement functions
2005-02-13 14:42:46 +00:00
Marcus Boerger d308d6d462 - Rename 2005-02-13 13:57:51 +00:00
Marcus Boerger e3a5c9f1d7 - Fix doc comment handling 2005-02-13 13:50:48 +00:00
Marcus Boerger 0a9e940ab7 - Add new test 2005-02-13 13:50:30 +00:00
Rui Hirokawa c7ebef660a added --enable-zend-multibute for win32 2005-02-13 13:03:03 +00:00
foobar 7281cd8082 MFB_4_3: cvs diff -r1.84.2.5 -r1.84.2.6 php_session.h 2005-02-13 07:55:27 +00:00
Hartmut Holzgraefe 1f98a966c5 fix aclocal "underquoted argument" warnings 2005-02-13 07:31:02 +00:00
Hartmut Holzgraefe fc20765c5e fix aclocal warning (newer versions are more strict about this) 2005-02-13 07:17:06 +00:00
Hartmut Holzgraefe e087455493 add function existance check 2005-02-13 07:15:02 +00:00
Wez Furlong 427c5e0e4f tidy up error case 2005-02-13 07:00:29 +00:00
Wez Furlong 0be93c95c9 prep for release 2005-02-13 06:56:16 +00:00
Hartmut Holzgraefe b6828f5949 Fixed domain socket / named pipe handling 2005-02-13 06:52:45 +00:00
Wez Furlong 81999fdeba Fix variable declaration 2005-02-13 06:42:19 +00:00
Wez Furlong f2d2da300f zts 2005-02-13 06:41:46 +00:00
Wez Furlong 47d1c2ad65 autocommit flag gets set always by PDO before invoking this method;
we should unconditionally inspect it here.
2005-02-13 06:37:29 +00:00
Wez Furlong 078b77619a commit generated version of the .re 2005-02-13 06:30:36 +00:00
Wez Furlong 0da6a84edf implement mapping of :name to ? parameters for drivers that only support ?
placeholders.
The current restriction is that you may not use the same named parameter
more than one in a given query, as there is a danger of scary things happen
with the zval if it gets bound multiple times.
2005-02-13 06:29:35 +00:00
Wez Furlong 2a32b478f9 typo-fix error message 2005-02-13 06:27:03 +00:00
Wez Furlong 5edd570b94 Correct the pdo header search order 2005-02-13 06:26:48 +00:00
Wez Furlong fc51fd11b6 it's only an error in emulation mode; rewrite happens in prepare, which
happens before bindParam
2005-02-13 04:00:22 +00:00
Edin Kadribasic ab9821d8c3 Do not shout :) 2005-02-13 03:27:48 +00:00
Wez Furlong 1051e7076f Fixes the crash part of PECL Bug #3434. 2005-02-13 03:26:43 +00:00
Wez Furlong 0aa82c3c83 same fix here 2005-02-13 03:15:11 +00:00
Wez Furlong bee7f3d0ac correct backwards logic 2005-02-13 03:01:38 +00:00
Wez Furlong 08f683a645 Probably fix pecl vs bundled-shared build 2005-02-13 02:51:11 +00:00
Wez Furlong 4d80aaf47a try to handle OSX issues more gracefully 2005-02-13 01:54:59 +00:00
b0ca477655 ChangeLog update 2005-02-13 01:38:06 +00:00
Wez Furlong 4dc3b75569 possible fix for snaps box 2005-02-13 01:32:27 +00:00
Edin Kadribasic 68de0d75b0 Unix line endings 2005-02-13 01:02:18 +00:00
Antony Dovgal 175bf7e9a3 set username && password only if they were specified 2005-02-13 00:57:48 +00:00
Hartmut Holzgraefe 486370dc7c autocommit setting done right 2005-02-13 00:55:16 +00:00
Hartmut Holzgraefe 5d4fb518ae added MySQL transaction support 2005-02-13 00:51:17 +00:00
Hartmut Holzgraefe c6761bfe11 DOS -> Unix line endings 2005-02-13 00:48:00 +00:00
Ilia Alshanetsky 5904d59ffd Fixed compiler warnings. 2005-02-12 20:58:29 +00:00
Ilia Alshanetsky 9b394af973 Simplify code and fix compiler warning. 2005-02-12 20:55:28 +00:00
Ilia Alshanetsky e5a906dcb9 Updated version without compiler warnings. 2005-02-12 20:34:20 +00:00
Marcus Boerger 1a35bcfcbc - Add new test 2005-02-12 18:40:19 +00:00
foobar f485fc1a83 Missed one place.. 2005-02-12 18:29:42 +00:00
foobar 751712628a This was not good idea. 2005-02-12 18:27:22 +00:00
foobar 30deea4d30 Remove unused set_h_errno 2005-02-12 18:14:03 +00:00
Marcus Boerger 6159f69023 - Bugfix #30682 (autoconversion from false/true to 0/1 missing in case of
static property default value)
2005-02-12 16:38:47 +00:00
Wez Furlong 9e31b10531 prep for release 2005-02-12 08:23:32 +00:00
Wez Furlong 002545fffb Fix bundled sqlite build (doh!) 2005-02-12 08:20:17 +00:00
33347d3264 ChangeLog update 2005-02-12 01:32:51 +00:00
Marcus Boerger a29f5391db - Cleanup foreach handling 2005-02-11 22:26:45 +00:00
Wez Furlong 91eab3e5bc typo 2005-02-11 02:05:05 +00:00
foobar 59db0751fc Revert previous patch 2005-02-11 02:03:51 +00:00
a29e968e1e ChangeLog update 2005-02-11 01:37:02 +00:00
Wez Furlong 1f06eb1c5c update in anticipation of a release later tonight 2005-02-11 01:22:44 +00:00
Wez Furlong ccd242665b Fix PDO::query() for drivers that emulate bound parameters. 2005-02-11 01:20:59 +00:00
Rob Richards bb9ba8e36e fix segfault when retval_ptr is empty - such as when exception thrown 2005-02-10 22:59:26 +00:00
Hartmut Holzgraefe 2c6b600a90 test case for Bug #30266 2005-02-10 22:55:52 +00:00
foobar 378817d367 - Fixed bug #31920 (zend_strtod.c error: conflicting types for 'int8_t') 2005-02-10 22:19:32 +00:00
Antony Dovgal 5b78e4c025 hm..
fix #28324 _properly_
2005-02-10 20:22:07 +00:00
Antony Dovgal 94982058b6 fix bug #28324 (HTTP_SESSION_VARS appear when register_long_arrays is Off) 2005-02-10 19:38:11 +00:00
Rob Richards 4967138514 initial cut of new error handling 2005-02-10 15:52:38 +00:00
Pierre Joye 162b91136c - fix #30745 and #31853 (php-bugs at demark dot org, pierre) 2005-02-10 14:31:32 +00:00
Ilia Alshanetsky f257e10d48 Removed unused vars. 2005-02-10 14:11:06 +00:00
Dmitry Stogov 5764d6f41b Fixed bug #30407 (Strange behaviour of default arguments) 2005-02-10 11:45:24 +00:00
Wez Furlong 877a2bd690 prep for release 2005-02-10 02:06:49 +00:00
Wez Furlong 69cbb7f958 prep for release 2005-02-10 01:56:20 +00:00
Wez Furlong e9f5fb53f3 only do this magic on non-win32 platforms 2005-02-10 01:34:39 +00:00
042f9081a8 ChangeLog update 2005-02-10 01:33:08 +00:00
Wez Furlong 3b857ea987 rename ancient method 2005-02-09 23:34:53 +00:00
Frank M. Kromann d2ae18d76e change return value from false to true, when a statement was executed with warnings 2005-02-09 19:32:03 +00:00
Frank M. Kromann 4b0d9e2319 Check for warnings and return the warning texts 2005-02-09 18:49:38 +00:00
Ilia Alshanetsky ee0e2d0ea3 Touch file. 2005-02-09 17:06:13 +00:00
Ilia Alshanetsky cd6d5fb18f Fixed compile warnings. 2005-02-09 16:33:00 +00:00
Rasmus Lerdorf 4909775f04 Fix for bug #31901 2005-02-09 16:22:48 +00:00
Ilia Alshanetsky 2196c4335b kill unused var 2005-02-09 16:14:50 +00:00
Ilia Alshanetsky 1b3dd5db8b remove unused vars. 2005-02-09 15:56:27 +00:00
Wez Furlong 94d5261f73 cosmetic changes 2005-02-09 15:12:41 +00:00
Wez Furlong ad60999858 proper fix for PECL Bug #3412 2005-02-09 14:32:04 +00:00
Rob Richards 08592b38da Fixed bug #31878 (Segmentation fault using clone keyword on nodes) 2005-02-09 11:46:43 +00:00
Wez Furlong 1cdde9e3ed update with changes 2005-02-09 07:02:00 +00:00
Wez Furlong 211206b2e4 Add PDO_ATTR_TIMEOUT support.
Fix PECL Bug #3391
2005-02-09 07:00:00 +00:00
Wez Furlong f6aa8f5d90 keep a log here for now 2005-02-09 06:44:08 +00:00
Wez Furlong 902ca8c1cf Expose the quoter method of the driver as PDO::quote().
Closes PECL Bug #3393
2005-02-09 06:43:15 +00:00
Wez Furlong d57a169500 typo fix 2005-02-09 06:14:48 +00:00
Wez Furlong dbaa3bfdfa hope it works! 2005-02-09 05:26:38 +00:00
Wez Furlong c28a0b9fcb disable dep 2005-02-09 05:18:02 +00:00
Wez Furlong 44cec3d456 disable dep for pecl release 2005-02-09 05:12:41 +00:00
Wez Furlong 201ec3dc02 prep for release 2005-02-09 05:04:40 +00:00
Wez Furlong 3047ced496 prep for possible release 2005-02-09 05:00:58 +00:00
Wez Furlong 229ea4bbfc update ready for release.
Disable dependency macro for compatibility with existing PHP 5.0.x releases.
2005-02-09 04:57:32 +00:00
Wez Furlong b9a951aa1a be realistic... 2005-02-09 04:56:10 +00:00
Wez Furlong 5a2cb4154a update ready for release
# includes big hack to help guide people into running "make install" so
# that the headers get installed; works around a pear bug.
2005-02-09 04:54:56 +00:00
5f026d026a ChangeLog update 2005-02-09 01:33:26 +00:00
Moriyoshi Koizumi 352fc43ec9 - Complement for Jani's fix. Likely fix the iconv issue. 2005-02-09 00:49:45 +00:00
Wez Furlong 5304374fc5 fix typo 2005-02-09 00:38:11 +00:00
Marcus Boerger 3fb1c65a41 - Initial Observer implementation 2005-02-08 20:42:48 +00:00
Marcus Boerger 2e8b9c005b - Update to 2005 2005-02-08 19:10:06 +00:00
Marcus Boerger 2f9662d156 - Fix year and speling 2005-02-08 19:05:25 +00:00
Marcus Boerger e5fe40eac9 - Actually these are private 2005-02-08 19:00:19 +00:00
Ilia Alshanetsky 891745776e Removed pointless operations/declarations. 2005-02-08 15:30:42 +00:00
Ilia Alshanetsky 55fd7ac601 Added optional maxlen parameter to file_get_contents(). 2005-02-08 15:25:45 +00:00
Antony Dovgal bc27a2af7a move ext/cpdf to PECL 2005-02-08 13:40:37 +00:00
Rasmus Lerdorf bf7cb1179a Don't need MSHUTDOWN either here 2005-02-08 05:25:48 +00:00
d8ad6ff49b ChangeLog update 2005-02-08 01:35:38 +00:00
Rasmus Lerdorf 3baf795c17 Get rid of more useless RINIT/RSHUTDOWN calls 2005-02-07 23:04:00 +00:00
Ilia Alshanetsky aa6cb1055b Fixed bug #31527 (crash in msg_send() when non-string is stored without
being serialized).
2005-02-07 22:31:19 +00:00
Rasmus Lerdorf 9c530d79e7 No reason to call empty RINIT, RSHUTDOWN and MSHUTDOWN functions here 2005-02-07 22:16:46 +00:00
Dmitry Stogov c91218ae8a Fixed bug introduced with foreach() optimization patch 2005-02-07 17:54:58 +00:00
Dmitry Stogov 625e06f454 Fixed FE_RESET/FE_FETCH bug.
Now FE_RESET instruction takes jump-address from itself, not from the following FE_FETCH instruction.
2005-02-07 16:44:00 +00:00
Marcus Boerger a8552cb2f9 - Add missing '?>' 2005-02-07 16:27:41 +00:00
Dmitry Stogov fc96c7f7fa foreash($a as $key => $val) optimization
Removed temorary array creation on each iteration.
2005-02-07 16:09:54 +00:00
Marcus Boerger 2d13dd0ef0 - Remove part of the cleanup which causes a problem with unnormal code
like tests/lang/040.phpt
# However there is a memleak introduced somewhen after august 04 for such
# code now, 5.0 and 4.3 are fine though.
2005-02-07 15:22:38 +00:00
Marcus Boerger d1fc7ad4d9 - Add new test 2005-02-07 15:16:08 +00:00
Antony Dovgal 96610aee08 fix leaks on shutdown
fix leaks appearing when trying to open several "databases"
2005-02-07 13:30:45 +00:00
foobar 066d1b4d53 - Fixed bug #31858 (--disable-cli does not force --without-pear) 2005-02-07 12:48:11 +00:00
Wez Furlong dbcf51b5a8 a working implementation of LOB input parameters for ODBC.
however: when sending in a string from the script, we get a 1 byte overflow
of the pdo parameter structure... Need to install valgrind on the test box
2005-02-07 04:13:32 +00:00
Wez Furlong ac018c38a8 This might allow piecewise sending of LOB data for input parameters. 2005-02-07 03:27:54 +00:00
149d9e8407 ChangeLog update 2005-02-07 01:33:17 +00:00
Wez Furlong ae5958570b update 2005-02-07 01:21:58 +00:00
Wez Furlong 29380a8e54 update for input/output parameters change 2005-02-07 01:17:24 +00:00
Wez Furlong 501000f129 Implement input/output parameters 2005-02-07 01:16:16 +00:00
Wez Furlong 36e3ea8cb2 add input/output parameter type flag 2005-02-07 01:12:49 +00:00
Wez Furlong 504afcfc5a and the generated file 2005-02-07 00:26:38 +00:00
Wez Furlong 2bd3536041 handle input LOBs (which are passed as streams) in bound parameter emulation.
Update error handling.
2005-02-07 00:26:22 +00:00
Wez Furlong af162668e5 fix pointer indirection (and thus leak) 2005-02-07 00:04:20 +00:00
Wez Furlong 7279fe8ab0 centralize this define 2005-02-07 00:02:51 +00:00
Wez Furlong 61981912f8 hmmm 2005-02-06 23:58:53 +00:00
Zeev Suraski 17537ac500 Correct fix for #28804 2005-02-06 23:51:59 +00:00
Wez Furlong 668740aada even less noise 2005-02-06 23:23:05 +00:00
Wez Furlong d134fb2a8d update for api changes 2005-02-06 23:22:37 +00:00
Wez Furlong 0569078901 Avoid bug where stream_copy_to_stream() call for precisely 2000000 bytes would
result in entire resource being copied.
The mmap brake is already present inside mmap_range() and is set to 1MB.
2005-02-06 23:17:09 +00:00
Wez Furlong 1069cefada support sucking data from streams in file_put_contents() 2005-02-06 23:05:24 +00:00
Ilia Alshanetsky 917648a232 Fixed possible un-initialized var on error. 2005-02-06 22:58:46 +00:00
Wez Furlong c3eae192dc less noise 2005-02-06 22:48:36 +00:00
Edin Kadribasic 22ff90f7ba Adjust for the new get_col api 2005-02-06 22:48:35 +00:00
Wez Furlong d87c5ec288 update for api changes 2005-02-06 22:34:53 +00:00
Wez Furlong 3130ed3066 make configure smarter.
Update for new get_col() signature
2005-02-06 22:25:33 +00:00
Wez Furlong ccf0a6a557 add a caller_frees parameter to get_col() to allow drivers that need
to allocate data on demand to do so without worrying about cleaning it up.

Spec out how LOB parameters are returned.
2005-02-06 22:11:12 +00:00
Wez Furlong f400f0e665 add an open mode for the memory streams that allows the stream to take
ownership of the passed-in buffer
2005-02-06 21:41:36 +00:00
Wez Furlong e3ba31e899 better handling of pdo-level errors 2005-02-06 21:05:59 +00:00
Wez Furlong ec98e744be touch again 2005-02-06 21:05:28 +00:00
Wez Furlong 474a65e277 update todo 2005-02-06 19:59:32 +00:00
Wez Furlong c56419ed78 support getting some more attributes 2005-02-06 17:49:48 +00:00
Wez Furlong ca4dc0361c this one too 2005-02-06 17:33:12 +00:00
Wez Furlong 9ba84360e3 handle some generic attributes here 2005-02-06 17:25:09 +00:00
Wez Furlong b2126a848a This will probably fix PECL Bug #3273 2005-02-06 16:46:18 +00:00
Wez Furlong 257dfcdde7 touch file 2005-02-06 16:29:33 +00:00
Timm Friebe 5eb673d1cb - Made error handler not output anything if error was not in error_reporting() mask 2005-02-06 14:08:11 +00:00
Timm Friebe ca250d16dc - Fixed error handler for situations in which an error
was raised in an include file
2005-02-06 14:06:21 +00:00
Timm Friebe 6a4d498af4 - Initial release
# Used for being able to run .phpt-files in a webserver environment
# Incomplete and pretty basic but serves its purpose ATM
2005-02-06 13:35:09 +00:00
Timm Friebe 57fa001979 - Prefixed all temporary names with "phpt_" 2005-02-06 12:59:03 +00:00
Timm Friebe 2a595d116e - Initial release
# Works perfectly with php-cli
2005-02-06 11:58:53 +00:00
Timm Friebe e47835b90e - "Unified" test name 2005-02-06 11:58:18 +00:00
ba9e818d57 ChangeLog update 2005-02-06 01:43:36 +00:00
Edin Kadribasic accdde8c19 Finalized pgsql LOB support using native pgsql bytea type.
If paramater is bound with type PDO_PARAM_LOB the quoter function
gets a hint that specific LOB type quoting should be used:

$stmt->bindParam(":lob", $lob, PDO_PARAM_LOB);
2005-02-06 01:27:27 +00:00
Edin Kadribasic 0d9b0606b9 Don't segault when we have placeholders but no bound params 2005-02-06 00:46:17 +00:00
Edin Kadribasic bf77a39349 Decode pgsql LOB objects (bytea type) on fetch 2005-02-05 22:55:23 +00:00
Edin Kadribasic 64e8c3105c Return lobs as strings for now 2005-02-05 22:46:26 +00:00
Wez Furlong 74821473e2 update separately 2005-02-05 21:30:19 +00:00
Wez Furlong 15e754201f pass param type to quoter functions 2005-02-05 21:29:42 +00:00
Edin Kadribasic 95cc208464 Removed unused variebles.
Return OID as int.
2005-02-05 20:38:47 +00:00
Marcus Boerger 662cd8262e - Cleanup foreach statement 2005-02-05 14:01:59 +00:00
Georg Richter ef6f0f00a6 fix for bug #29329 2005-02-05 10:59:38 +00:00
9321218742 ChangeLog update 2005-02-05 01:34:50 +00:00
foobar 71b9c41a6b fix test 2005-02-04 23:23:34 +00:00
Hartmut Holzgraefe d88c2b18d4 added some missing zend_[declare|update]_property_...() convenience
functions for bool, double and binary safe string data
2005-02-04 20:24:21 +00:00
Dmitry Stogov 625b79c3ba Fixed bug #31832 (SOAP encoding problem with complex types in WSDL mode with multiple parts) 2005-02-04 15:42:46 +00:00
Derick Rethans 0242ae498e - Fixed bug #31754 (dbase_open() fails for mode = 1). (Mehdi, Derick) 2005-02-04 14:28:50 +00:00
foobar b61a63d008 - Fixed bug #31842 (*date('r') does not return RFC2822 conforming date string). 2005-02-04 13:08:56 +00:00
foobar 951eb23e9a - Fixed bug #28227 (PHP CGI depends upon non-standard SCRIPT_FILENAME)
# patch by: lukem at NetBSD dot org
2005-02-04 10:39:33 +00:00
Edin Kadribasic 1a962e9d98 Get OID of the last inserted row 2005-02-04 01:48:01 +00:00
443dcdbb60 ChangeLog update 2005-02-04 01:34:25 +00:00
Ilia Alshanetsky 779edcb01d Proper fix for bug #31796 . 2005-02-04 00:21:50 +00:00
Ilia Alshanetsky 5879c5cf21 Fixed bug #31796 (readline completion handler does not handle empty return
values).
2005-02-03 22:45:36 +00:00
Ilia Alshanetsky 996b464e30 Use the created connection string. 2005-02-03 22:24:50 +00:00
foobar 996c9d85d7 - Fix buildconf with BSD make 2005-02-03 17:42:42 +00:00
Magnus M��tt� fda27b4465 Fix typos. 2005-02-03 17:02:42 +00:00
foobar fe0e3b39f8 cleanup 2005-02-03 15:46:15 +00:00
foobar 77ee4950dd - Fixed bug #28804 (ini-file section parsing pattern is buggy). 2005-02-03 03:01:56 +00:00
foobar 91962aafad ws fix 2005-02-03 02:58:21 +00:00
4d0f0d308f ChangeLog update 2005-02-03 01:33:55 +00:00
Ilia Alshanetsky e55938b6a8 Fixed bug #31514 (open_basedir uses path_translated rather then cwd for .
translation).
2005-02-02 23:43:17 +00:00
Zeev Suraski 11339ee42e Removing this file has been long due...
API's and functionality are stable.
2005-02-02 17:22:19 +00:00
foobar ebd3f9673d pecl movement 2005-02-02 14:44:36 +00:00
foobar 75b4e2c832 - Moved ext/w32api to PECL. 2005-02-02 14:43:26 +00:00
foobar c919fac568 PECL 2005-02-02 14:33:53 +00:00
foobar 0741be6f3c - Moved ext/yp to PECL. 2005-02-02 14:33:23 +00:00
foobar 51ba2cdce9 NEWS 2005-02-02 14:32:23 +00:00
foobar 439c5f4f33 - Moved ext/dio to PECL. 2005-02-02 14:29:58 +00:00
Stanislav Malyshev 7b241027fa fix memory leak if function call fails 2005-02-02 10:37:50 +00:00
Stanislav Malyshev 3925337a55 Fix #31720 Invalid object callbacks not caught in array_walk() (patch from Antony Dovgal) 2005-02-02 10:36:02 +00:00
Dmitry Stogov 3c31410074 Fixed bug #31747 (SOAP Digest Authentication doesn't work with "HTTP/1.1 100 Continue" response) 2005-02-02 10:34:39 +00:00
Stanislav Malyshev d38eed95ea test for Bug #31720 2005-02-02 10:31:53 +00:00
Dmitry Stogov 83e6e40438 Fixed bug #31755 (Cannot create SOAP header in no namespace) 2005-02-02 09:11:46 +00:00
Dmitry Stogov fd4fe1c8d3 Fixed bugs #29767 and #31683 (__get and __set methods must not modify property name). 2005-02-02 07:19:22 +00:00
24a834dfa4 ChangeLog update 2005-02-02 01:33:27 +00:00
Ilia Alshanetsky 8c97b9dc73 Fixed bug #31797 (exif_read_data() uses too low nesting limit). 2005-02-01 23:27:33 +00:00
Stanislav Malyshev 1088e28dfa Fix debug_trace with eval (patch from Antony Dovgal) 2005-02-01 19:05:56 +00:00
Stanislav Malyshev 13cd138683 test for eval debug_backtrace bug 2005-02-01 19:03:50 +00:00
Anantha Kesari H Y bcbca0e397 NetWare has a compliant pthread implementation 2005-02-01 13:04:26 +00:00
Ilia Alshanetsky d179e6aa40 Final version of filename upload handling. 2005-02-01 02:33:07 +00:00
38775706eb ChangeLog update 2005-02-01 01:33:19 +00:00
Marcus Boerger 0bb81ce1d6 - Add ReclectionClass:hasProperty(), ReflectionClass::hasConstant()
to complete api (johannes@php.net)
2005-01-31 22:56:01 +00:00
Dmitry Stogov fea1b5b3a0 Fixed SIGSEGV when restoring WSDL without functions from cache 2005-01-31 15:08:24 +00:00
Antony Dovgal 5e8cd3a2da fix segfault when failed to open magic file 2005-01-31 15:01:47 +00:00
Dmitry Stogov 950632519b Empty "detail" was removed from SoapFault object. 2005-01-31 14:26:06 +00:00
Dmitry Stogov 6e8d3e9023 Fixed memory allocation bug 2005-01-31 14:02:19 +00:00
4a77ca046a ChangeLog update 2005-01-31 01:34:53 +00:00
Ilia Alshanetsky 112eb3b35d Fix handling of INF/NAN in unserialize(). 2005-01-30 16:38:53 +00:00
c73882617e ChangeLog update 2005-01-29 01:38:40 +00:00
Marcus Boerger 0236e31313 - Fix severity (found by johannes) 2005-01-28 20:24:20 +00:00
Georg Richter 32aaa6a7be fixed a bug in mysql_affected_rows and mysql_stmt_affected_rows
in case affected_rows function returns (my_ulonglong) -1 for errors.
(Thanks to Antony Dovgal for reporting this bug)
2005-01-28 17:35:37 +00:00
Antony Dovgal 999c63d9d7 improve CS & error messages 2005-01-28 16:42:26 +00:00
Antony Dovgal c61ce71a01 MFB: explain why ftok() failed 2005-01-28 16:36:46 +00:00
Dmitry Stogov d5d127c3ad Memory leak was fixed 2005-01-28 10:33:46 +00:00
Antony Dovgal f7326d6279 MFB: fix #31732 2005-01-28 02:00:39 +00:00
Antony Dovgal 3ff7f46fd4 change return type from NULL to FALSE when parameter parsing failed
(as was requested by Ilia)
2005-01-28 01:38:56 +00:00
968bd31c92 ChangeLog update 2005-01-28 01:35:59 +00:00
Antony Dovgal 75725c57a5 MFB: fix posix_getsid() & posix_getpgid() 2005-01-28 00:27:48 +00:00
Frank M. Kromann a13734d2f7 Hack to fix crash caused by FBCAccess not returning errors when creating an index that exists in the database. 2005-01-27 20:13:04 +00:00
Ilia Alshanetsky 42155f6028 Fixed bug #31705 (parse_url() does not recognize http://foo.com#bar) 2005-01-27 16:37:34 +00:00
Antony Dovgal 6ffd569410 MFB: fix leak in mysqli_fetch_array() 2005-01-27 14:41:48 +00:00
Georg Richter 7148919940 fix for bug #31710 (return value for mysql_rollback is reverted)
fixed also same behaviour for mysql_commit and mysql_autocommit
2005-01-27 10:18:28 +00:00
969860b570 ChangeLog update 2005-01-27 01:35:48 +00:00
Antony Dovgal 9d9e4379af MFB: fix segfault when invalid field offset is passed to mysqli_fetch_field_direct() 2005-01-27 01:14:43 +00:00
Marcus Boerger 5cabd2f12b - Move tests to proper location now that the tested classes are hardcoded 2005-01-27 00:34:13 +00:00
Marcus Boerger faba10853f - Unify 2005-01-27 00:26:13 +00:00
Marcus Boerger f1e34911a9 - Add new test 2005-01-27 00:22:28 +00:00
Marcus Boerger f18aa85252 - Know whether ew refer to an external array (is_ref) or not 2005-01-27 00:22:06 +00:00
Derick Rethans 7b27263e16 - There is no --with-apache2, only apxs2 2005-01-26 18:03:04 +00:00
Ilia Alshanetsky 4a5294788e Fixed bug #31699 (unserialize() float problem on non-English locales). 2005-01-26 16:55:17 +00:00
51ca0e7bbb ChangeLog update 2005-01-26 01:42:26 +00:00
Ilia Alshanetsky c85a9abc4c Fixed bug #29733 (printf() handles repeated placeholders wrong).
# Original patch by bugs dot php dot net at bluetwanger dot de
2005-01-26 00:01:26 +00:00
Andrei Zmievski 9ab8deb33c Don't depend on empty_string. 2005-01-25 23:58:22 +00:00
Ilia Alshanetsky 8c22d51070 Fixed bug #31465 (False warning in unpack() when working with *). 2005-01-25 22:50:39 +00:00
Andrei Zmievski 27b1a27faf MFB (Fix several egregious leaks in ext/browscap and sapi/embed). 2005-01-25 21:33:58 +00:00
Marcus Boerger 1c2b14b92f - Proto fix 2005-01-25 19:08:38 +00:00
Antony Dovgal c404bdb9f8 check body for NULL before using and prevent segfaults 2005-01-25 14:20:02 +00:00
foobar af854a8409 - Fixed bug #31684 (dio_tcsetattr(): misconfigured termios settings) 2005-01-25 13:42:52 +00:00
foobar 601140cbe9 New versions of glibc support a RTLD_DEEPBIND flag to dlopen. The
effect of this flag when loading a "foo.so" with undefined symbols is
that the search that symbol starts at foo.so and its dependencies
*before* the loading process' global symbol table.

This is an effective workaround for symbol namespace collisions between
various modules and the libraries on which they depend (where fixing the
respective modules or libraries is not possible e.g. due to API
constraints).

(By: Joe Orton)
2005-01-25 13:08:05 +00:00
foobar 25ab28c48f - Fix macosx shared extension build 2005-01-25 13:02:25 +00:00
foobar 0576cdc942 - Return of the automake requirement.
# Unfortunately we can't control what macros are used by the 3rd party
# extensions so..
2005-01-25 12:53:43 +00:00
Dmitry Stogov 2d8e73b963 Fixed bug #28041 (SOAP HTTP Digest Access Authentication was implemented) 2005-01-25 11:03:20 +00:00
Marcus Boerger 82193adc09 - Bugfix #26229 (getIterator() segfaults when it returns arrays or scalars) 2005-01-25 10:40:51 +00:00
Marcus Boerger 14e54cdc1e - Fix dependency 2005-01-25 10:39:49 +00:00
Marcus Boerger ccca7df1ea - Use correct freeing (thx Dmitry) 2005-01-25 10:07:52 +00:00
838ab371d9 ChangeLog update 2005-01-25 01:34:05 +00:00
foobar 91f68f0130 massage 2005-01-25 00:09:44 +00:00
Ilia Alshanetsky 25fd4c3bc2 Fixed ZTS build 2005-01-24 23:53:00 +00:00
Ilia Alshanetsky 71695f8159 Use multibyte specific code for handling files and generic basename based
code in all other instances.
2005-01-24 22:35:23 +00:00
Marcus Boerger b570ad759b - Unify 2005-01-24 21:28:56 +00:00
Marcus Boerger e1737ca88a - Bugfix #31346 2005-01-24 21:27:36 +00:00
Marcus Boerger 06dbcb22a1 - Update 2005-01-24 21:13:52 +00:00
Marcus Boerger 36e6841ef5 - Add new test 2005-01-24 20:22:56 +00:00
Marcus Boerger 3c36e73b95 - bugfix 31348 2005-01-24 20:21:11 +00:00
Marcus Boerger 3cf4eae4aa - Second and last part of #30725 fix 2005-01-24 20:02:55 +00:00
Marcus Boerger 5206e9c9cf - Allow getIterator() to fail 2005-01-24 19:18:37 +00:00
Marcus Boerger be86e1696e - Add new test 2005-01-24 19:16:06 +00:00
Marcus Boerger 2f55df7d10 - mysqli/sqlite changes 2005-01-24 18:49:01 +00:00
Marcus Boerger 7ec2fe9dcd - Synch with MYSQLi extension and use RuntimeException as base for
SQLiteException if SPL is present.
2005-01-24 18:46:50 +00:00
Moriyoshi Koizumi 76d91f2a3d - Revert irrelevant part. 2005-01-24 16:47:18 +00:00
Antony Dovgal 5a559e9a57 add test 2005-01-24 14:19:53 +00:00
Antony Dovgal 9e55579cb0 fix msg_recieve() returning TRUE instead of FALSE when unserialize failed
(patch by Andrey Hristov)
2005-01-24 14:12:01 +00:00
Joe Orton 62121a1840 Fixed regression #31645 - only flush before running the subrequest. 2005-01-24 11:44:56 +00:00
66a24ad4f5 ChangeLog update 2005-01-24 01:35:53 +00:00
Wez Furlong ebaf95b13a make this the right size... 2005-01-23 15:34:48 +00:00
Sergey Kartashoff 618b7c267c - A bug in mnogosearch module in ispell loading code was fixed 2005-01-23 15:01:20 +00:00
Edin Kadribasic 60f5e66aa9 Add support for fetching meta data 2005-01-23 14:50:06 +00:00
Edin Kadribasic d8aa131ca0 Store pgsql_type, intval and boolav per column 2005-01-23 10:57:11 +00:00
8839b8b3ec ChangeLog update 2005-01-23 01:36:14 +00:00
Edin Kadribasic 902c2b43cb Remove debug stuff 2005-01-22 23:51:09 +00:00
Edin Kadribasic e58a8671a2 Support for native nulls, bools and ints 2005-01-22 23:31:19 +00:00
foobar 5264cfb853 - Remove also autom4te.cache dir with phpize --clean 2005-01-22 20:30:05 +00:00
foobar af1f60e601 - Compile fix for systems without uint32_t typedef 2005-01-22 20:28:17 +00:00
Marcus Boerger 1d5c13bdad - Fix #31651 (ReflectionClass::getDefaultProperties segfaults with arrays.) 2005-01-22 12:23:01 +00:00
Marcus Boerger bad986232b - Update after fixing it 2005-01-22 12:22:01 +00:00
Marcus Boerger a01e3435de _ Add test for bug 31651 2005-01-22 11:46:56 +00:00
Edin Kadribasic afcd94f22d Generate files needed for php5ts.dll build 2005-01-22 03:36:38 +00:00
Andi Gutmans 8838c0f860 - Two new API calls for Derick (retreive CV name and value) by Dmitry 2005-01-22 02:29:18 +00:00
eba6a36290 ChangeLog update 2005-01-22 01:34:16 +00:00
foobar f8a540d105 - Typofix + removed unnecessary unsets caused by it 2005-01-22 01:31:54 +00:00
Andrei Zmievski ecb9f8668d MFB (bugfix for 24851) 2005-01-22 00:01:33 +00:00
Stefan Esser 581265f4d1 Correctly initialize ZVAL 2005-01-21 16:03:47 +00:00
Antony Dovgal 5e1b127864 destruct return_value 2005-01-21 10:55:41 +00:00
Wez Furlong 0162d0093d picky picky.
Lets make those OUTPUT rather than INPUT-OUTPUT.
We need some flag from the user if they want that.
2005-01-21 06:11:10 +00:00
Wez Furlong e5b6b0dbee Allow static build (better detection of PDO headers).
Copy error code into driver code, so PDO can handle it correctly.
Less leaks
2005-01-21 04:43:06 +00:00
Wez Furlong 7a137a5f84 fix leak 2005-01-21 04:41:52 +00:00
Wez Furlong 8ebcbfdf1b hrmm. Really really really really touch the timestamp in CVS to avoid
crappy makefile annoyance.
2005-01-21 04:34:41 +00:00
Wez Furlong bc55e7f3e2 make use of the query rewriter (even though it doesn't do anything yet) 2005-01-21 04:22:06 +00:00
Wez Furlong 53af3dc4f2 update 2005-01-21 04:02:41 +00:00
Wez Furlong dede3c59fe fix encoding nastiness that snuck in from the copy-n-paste of error code
descriptions from a web page.
2005-01-21 03:59:41 +00:00
Wez Furlong 88640832be and check in the generated c file later, to avoid remaking it in fresh checkouts. 2005-01-21 03:58:09 +00:00
Wez Furlong 6ddbfa0733 Revise query parser so that it can rewrite from one bind syntax to another.
Expose it as PDO_API.  No drivers utilize this feature yet.
2005-01-21 03:57:06 +00:00
1c0479f3f9 ChangeLog update 2005-01-21 01:36:01 +00:00
Wez Furlong 26f97a911b Eliminate unused parameter.
Don't start a transaction when asking for a cursor with pgsql.
Fix parameter binding for sqlite3
2005-01-21 00:39:03 +00:00
Wez Furlong dcd3d84ddb Eliminate unused parameter 2005-01-21 00:38:09 +00:00
Wez Furlong 08fa032b80 fix backslash 2005-01-21 00:04:50 +00:00
Antony Dovgal d0427feee4 fix bug #31623 (OCILogin does not support password grace period) 2005-01-20 18:39:48 +00:00
Antony Dovgal 84a8849a3a fix error message 2005-01-20 18:08:08 +00:00
Antony Dovgal 4f3e113e38 fix segfault in imap_sort() - it segfaults when options is less than 0.
it looks like c-client bug, but we still need a workaround.
also, convert_to_string search criteria.
2005-01-20 18:03:35 +00:00
Ilia Alshanetsky 844cc09cd1 Fixed bug #31398 (When magic_guotes_gpc are enabled filenames with '
get cutoff).
2005-01-20 17:44:58 +00:00
Dmitry Stogov a343fc848d Support for HTTP error codes 2005-01-20 17:29:16 +00:00
Edin Kadribasic 93e4213bfe Add support for the 'official' build machine layout 2005-01-20 15:54:35 +00:00
Dmitry Stogov c35353ea20 Fixed bug #30901 (can't send cookies with soap envelop).
void SoapClient::__setCookie(string name [, string value])
2005-01-20 14:29:19 +00:00
Antony Dovgal 9812f55289 fix segfault in imap_headerinfo() when fromlength or subjectlength are less than 0
+ fix protos
2005-01-20 14:04:50 +00:00
Dmitry Stogov a830b0fc6b Fixed bug #31422 (No Error-Logging on SoapServer-Side). 2005-01-20 12:48:01 +00:00
Rob Richards dd2f5ed142 Fixed bug #28817 (Var problem when extending domDocument). 2005-01-20 11:47:05 +00:00
Antony Dovgal 6a9579bd7e fix typos in error messages 2005-01-20 09:59:23 +00:00
Antony Dovgal 5aa42a202a fix typos in error messages & resource name 2005-01-20 09:57:57 +00:00
Dmitry Stogov 56025c6a1a Support for HTTPS with digital certificates. 2005-01-20 06:08:04 +00:00
Wez Furlong 1312fe469e Fix segfault on stmt close.
Make scrollable cursors actually work
2005-01-20 06:06:26 +00:00
Wez Furlong e21e1c65e3 Juggle/enhance mssql library detection 2005-01-20 05:09:06 +00:00
Wez Furlong 84aa902015 Generate pdo_oci.dll for modern SDKs and pdo_oci8.dll for ye-olde oci805 libs.
I'm told that oci805 is required for connectivity to oci805 servers, which are
no longer supported in more recent SDK releases.

Edin: please grab:

http://download.oracle.com/otn/nt/instantclient/instantclient-basic-win32-10.1.0.3-20050113.zip
http://download.oracle.com/otn/nt/instantclient/instantclient-sdk-win32-10.1.0.3-20050113.zip

and extract them under php_build, so that you end up with php_build/instantclient10_1
2005-01-20 03:33:17 +00:00
Wez Furlong 9fe37737f9 generate dblib and mssql variants in the same build 2005-01-20 03:29:53 +00:00
Wez Furlong 968d2ef830 A couple more adjustments for building multiple output variants of the same
extension source.
2005-01-20 03:24:50 +00:00
foobar 2c65e09a4b - Revert the weird change of ZEND_STRS() macro and use the correct
ZEND_STRL() macro.
# ZEND_STRS was changed to be same as ZEND_STRL..someone on crack? :)
2005-01-20 02:02:09 +00:00
foobar 480a3b08d5 - Changed phpize not to require automake and libtool.
- Fixed build system to always use bundled libtool files.
2005-01-20 01:41:20 +00:00
aaf344e642 ChangeLog update 2005-01-20 01:35:55 +00:00
foobar 76906e0443 - Add --with-libdir to phpized builds too 2005-01-20 00:54:18 +00:00
foobar 39b7569614 - Removed obsolete AC_PROG_RANLIB (AC_PROG_LIBTOOL does it)
- configure --help output cleanup for --with-libdir
2005-01-20 00:51:41 +00:00
foobar 52e00b8f03 Added --debug option to buildconf 2005-01-19 23:03:29 +00:00
foobar ed25ab62f5 Revert the multiple autoconf versions patch 2005-01-19 22:27:39 +00:00
Ilia Alshanetsky e8300c82a0 Stricter cc header check. 2005-01-19 18:54:23 +00:00
Derick Rethans c5b7fe878c - Add the patched libtool.m4 from snaps so that Jani can play with it. 2005-01-19 17:52:32 +00:00
foobar 9feb47d70e - Fixed bug #28976 (use From: from headers if sendmail_from is empty) 2005-01-19 17:38:20 +00:00
foobar 6faa433d58 - Fix the pic patch 2005-01-19 17:35:55 +00:00
Wez Furlong e28d2c8032 Take a stab at implementing out parameters for odbc 2005-01-19 05:27:15 +00:00
Wez Furlong a39d50c95f don't propogate an unspecified length to the driver.
Drivers will used a 0 length as a hint that the parameter is an in-out or out
parameter.
2005-01-19 05:25:40 +00:00
Wez Furlong 769d399be5 add dep 2005-01-19 03:50:32 +00:00
Wez Furlong ffd35bb63d allow static linkage.
Avoid segv when no username is passed
2005-01-19 03:45:21 +00:00
Wez Furlong a536e31fb1 leak/segv less 2005-01-19 03:44:49 +00:00
foobar 20be664666 - Fixed bug #29183 (Undefined symbol zend_check_private with Solaris CC) 2005-01-19 01:46:26 +00:00
57463e1509 ChangeLog update 2005-01-19 01:34:40 +00:00
foobar 91ea475f4d - Fixed bug #29136 (make test - libtool failure on MacOSX) 2005-01-19 01:30:23 +00:00
Wez Furlong 434d068994 *compile before commit *
*compile before commit *
*compile before commit *
2005-01-19 01:17:13 +00:00
Wez Furlong af8bb16ec1 implement nextRowset for ODBC
# this might even work first time
2005-01-19 01:13:39 +00:00
Wez Furlong 544d61873d proto bool PDOStatement::nextRowset()
Advances to the next rowset in a multi-rowset statement handle. Returns true if
it succeded, false otherwise
2005-01-19 01:12:52 +00:00
Marcus Boerger 406e85a8d8 - Fix memleak 2005-01-19 00:55:56 +00:00
Wez Furlong 9b36089838 let it compile again 2005-01-19 00:33:56 +00:00
foobar c245e1f0f7 - ldap_start_tls() requires ldapv3 protocol -> force it 2005-01-19 00:27:21 +00:00
Ilia Alshanetsky c78db34489 Fixed bug #31142 (crash, memory leak and data loss by imap_mail_compose). 2005-01-18 23:36:08 +00:00
Frank M. Kromann 736ff0319a Set the MSSQL_VERSION to FreeTDS when that lib is used 2005-01-18 22:39:01 +00:00
Frank M. Kromann 4b4cde0702 Rename php_freetds.dll to php_dblib.dll (still using the freetds libs).
Allow the build of both versions in the same process
2005-01-18 22:38:24 +00:00
Frank M. Kromann e296197362 Allow the build system to generate multiple extensions from the same extension directory 2005-01-18 22:37:12 +00:00
Antony Dovgal 84fe72612e add checks for libs & headers required by IBM DB2 2005-01-18 21:16:32 +00:00
Ilia Alshanetsky 023c1bccb3 Fixed bug #31480 (Possible infinite loop in imap_mail_compose()). 2005-01-18 16:32:53 +00:00
Ilia Alshanetsky 1e6454a67b Fixed bug #31479 (Fixed crash in chunk_split(), when chunklen > strlen). 2005-01-18 15:47:57 +00:00
foobar 64e40c2271 - Make sure FD_CLOEXEC is always defined. 2005-01-18 15:44:33 +00:00
Antony Dovgal 63fbc27466 fix bug #30430 (odbc_next_result() doesn't bind values and that results in segfault)
fix protos
2005-01-18 15:03:51 +00:00
Dmitry Stogov 57a0c3e159 Fixed patch for bug #31478 (SegFault/Memory Leak with empty()) 2005-01-18 12:01:31 +00:00
foobar 0503943150 - Sanitize output 2005-01-18 11:53:49 +00:00
foobar 197711bb7d Add test for bug #31402 2005-01-18 11:36:44 +00:00
foobar bed68d8828 Touch the generated file. 2005-01-18 10:57:05 +00:00
Dmitry Stogov ea6ea21939 Fixed bug #31190 (exceptions in call_user_func_array()) 2005-01-18 10:38:04 +00:00
Magnus M��tt� 5c98efddae Add test case for bug #30726. 2005-01-18 09:56:31 +00:00
Dmitry Stogov 30445fb661 Fixed bug #28444 (Cannot access undefined property for object with overloaded property access). 2005-01-18 09:05:39 +00:00
Frank M. Kromann 25917d5885 Make this compile with the generic ntwdblib from Microsoft 2005-01-18 07:17:01 +00:00
Frank M. Kromann 14821bb8cf use the static dblib.lib to avoid the need for extra dll's 2005-01-18 06:42:08 +00:00
Frank M. Kromann 008d859df9 add --with-freetds option to win32 build.
TODO make it work when both mssql and freetds is included or bail out with an error
2005-01-18 06:32:11 +00:00
Frank M. Kromann 01b426c452 make the mssql extension work with freetds on win32 2005-01-18 06:29:45 +00:00
Frank M. Kromann d56b42bec4 make the mssql extension work with freetds on win32 2005-01-18 06:09:48 +00:00
Wez Furlong a9d98544de Allow drivers to select bind emulation on a per statement basis 2005-01-18 04:58:50 +00:00
Wez Furlong d911f19862 doh 2005-01-18 04:35:47 +00:00
Wez Furlong 505fbb1966 nice and fluffy error handling 2005-01-18 02:42:52 +00:00
5089dc049a ChangeLog update 2005-01-18 01:36:51 +00:00
Wez Furlong 8b35436cb1 remove error and hook up rowCount 2005-01-18 00:58:15 +00:00
Ilia Alshanetsky 9839614829 Fixed bug #30726 (-.1 like numbers are not being handled correctly). 2005-01-18 00:29:43 +00:00
Wez Furlong 37ea5fbeb5 Tidy up driver specific method handling 2005-01-17 23:59:16 +00:00
Antony Dovgal 7c152b6a8e fix weird DB2 issue:
DB2's SQLDataSources() returns _max available_ length of result string instead of
_real_ length and that results in strings a-la "\0                  "
2005-01-17 18:08:54 +00:00
foobar 37d820b03f - Fixed bug #31444 (Memory leak in zend_language_scanner.c) 2005-01-17 17:20:56 +00:00
foobar e82eb93cf2 - Added some sanity checks by changing to the parameter parsing API 2005-01-17 17:07:28 +00:00
Christian Stocker 8d10b52ddf fix protos (by Mehdi Achour ) 2005-01-17 15:56:17 +00:00
Antony Dovgal acbdbe1e65 fix leak appearing when odbc_errormsg() got invalid resource 2005-01-17 15:05:11 +00:00
Joe Orton 8288c451c0 Fixed bug #31519: Set r->status_line to SAPI-provided status-line. 2005-01-17 12:24:40 +00:00
Stefan Esser da7001a6c3 Fix compiler warning. 2005-01-17 11:45:09 +00:00
Edin Kadribasic 095a6f1eb3 Use PQescapeBytea() for quoting. Need to think how to add binary safe
quoting for blobls (pgsql bytea type).
Fixes #2818
2005-01-17 10:37:41 +00:00
Wez Furlong 3a751f37c6 don't raise errors for the no-error case 2005-01-17 05:28:46 +00:00
Wez Furlong b234f1e415 tidy up a few things 2005-01-17 05:28:13 +00:00
dc73af8351 ChangeLog update 2005-01-17 01:40:52 +00:00
Wez Furlong 44e77380fb Missing 1 2005-01-17 01:31:14 +00:00
Wez Furlong ca98805935 Add a PDO driver for Sybase style DB-lib (including MS SQL).
Only the basics are here right now.
2005-01-17 01:15:14 +00:00
Zak Greant f3d39ff406 Added standard emacs and vim modelines 2005-01-16 19:28:55 +00:00
Moriyoshi Koizumi b1ddbcbef9 - Fix a critical bug that request-local settings leak to another request. 2005-01-16 15:55:17 +00:00
78306883e2 ChangeLog update 2005-01-16 01:34:48 +00:00
Stefan Esser 135fee7f10 and use it... 2005-01-15 18:30:16 +00:00
Stefan Esser f8787a67ed finally use what we calculated 2005-01-15 18:19:49 +00:00
Stefan Esser 2c25b9d866 Restore unserialize() speed 2005-01-15 18:18:08 +00:00
foobar 58c6ed3583 CS fix 2005-01-15 04:50:26 +00:00
foobar 0e9866bfd6 ws fix 2005-01-15 04:34:30 +00:00
0bea91bbcb ChangeLog update 2005-01-15 01:33:59 +00:00
Andi Gutmans 4908642c8c - Unload on MAC OS X (shouldn't be a reason not to) 2005-01-15 00:11:20 +00:00
foobar 330746480e - Fixed bug #31060 (imageftbbox() does not use linespacing parameter) 2005-01-14 23:07:46 +00:00
foobar 68ca0ed6d8 - Fixed bug #30120 (imagettftext() and imagettfbbox() accept too many parameters) 2005-01-14 22:43:15 +00:00
foobar 14058c83e6 - Fix another generated header include 2005-01-14 20:44:28 +00:00
Dmitry Stogov 9de934c210 Fixed SIGSEGV in ext/standard/tests/network/tcp4loop.phpt and ext/standard/tests/network/unixloop.phpt 2005-01-14 09:02:02 +00:00
Dmitry Stogov 72d02269a9 Restore behavior of $str["str"]. (Now $str["str"] is equivalent to $str[0] again) 2005-01-14 09:01:22 +00:00
0d6b05eb8d ChangeLog update 2005-01-14 01:36:11 +00:00
Wez Furlong 10eb5a1098 fix compile.
Someone with firebird needs to sit down and give this extension some love
2005-01-13 18:02:13 +00:00
Dmitry Stogov ce0884c287 Additional fix for fix of bug #29883 2005-01-13 08:49:06 +00:00
Wez Furlong d056f96a2f Add configure support for Oracle InstantClient SDK 2005-01-13 04:55:56 +00:00
Wez Furlong f17311c9dd Add support for ODBCRouter 2005-01-13 02:06:39 +00:00
Wez Furlong ef0de01b62 Take a blind stab at implementing scrollable cursors for pgsql.
We allocate a unique cursor name for each statement, so that we
don't interfere with other open statement handles on the same dbh.

Note, however, that we force a new transaction for each open scrollable cursor
(postgres requires cursors to be used inside a transaction).  This is okay,
except for the case where a scrollable cursor is opened, an update is made and
the cursor is closed; closing the cursor commits the transaction that was begun
when it was opened.

It might well be better to avoid the transaction in PDO and force the user to
be aware of the requirements of cursors and explicitly initiate the transaction
themselves.

This is all untested code; it compiles and looks like it will work, but I
encourage someone with a real postgres setup to actually sit down and try to
use it.
2005-01-13 01:59:39 +00:00
10cba41a70 ChangeLog update 2005-01-13 01:35:42 +00:00
Wez Furlong 0db373883f detect funky kerberos deps that chain on from openssl deps on RH distros 2005-01-13 01:12:34 +00:00
Dmitry Stogov 6fa37163f2 Fixed bug #31098 (isset false positive) 2005-01-12 09:18:31 +00:00
Wez Furlong 222e5f9cbc stub out scrollable cursors here too 2005-01-12 06:12:26 +00:00
Wez Furlong d3ab27f7cc stub out scrollable cursors 2005-01-12 06:11:33 +00:00
Wez Furlong be616317c7 stub out scrollable cursor change 2005-01-12 06:10:31 +00:00
Wez Furlong c77bd71315 be aware of scrollable cursors; sqlite doesn't support them 2005-01-12 06:08:59 +00:00
Wez Furlong 4d5c40cd9a touch generated file to avoid implicit yacc rule from eating it 2005-01-12 06:08:36 +00:00
Wez Furlong 81664bd2db Remove bogus scroll attribute.
Expose cursor constants to the script
2005-01-12 05:59:27 +00:00
Wez Furlong 7552fe23ff make scrollable cursors consistent with odbc; removing bogus attribute 2005-01-12 05:58:58 +00:00
Wez Furlong b2fe675636 Support scrollable cursors 2005-01-12 05:58:19 +00:00
Wez Furlong 459b4f85d3 Add support for scrollable cursors.
Enable PDO_ATTR_PREFETCH and default it to 100Kb of prefetch buffer.
2005-01-12 05:47:03 +00:00
Wez Furlong dd842e4bf4 API support for scrollable cursors 2005-01-12 04:49:12 +00:00
Wez Furlong 076bc75c01 add theoretical support for returning ints as ints and bools as bools.
individual drivers need to support returning data in these formats.
2005-01-12 03:26:46 +00:00
Wez Furlong f9d3469e4f Add configure support for ODBCRouter and generic ODBC libs.
Note that ODBCRouter doesn't directly implement ODBC 3.0, so
using it here won't really work.

Expand the ODBC 3 check to better explain what happened and
how to make progress (e.g.: use an ODBC manager library like
unixODBC).
2005-01-12 02:19:30 +00:00
c13ec603b8 ChangeLog update 2005-01-12 01:35:50 +00:00
Moriyoshi Koizumi e5786084e1 - Test renaming 2005-01-11 21:57:01 +00:00
Moriyoshi Koizumi 9b77de63ed - Fix bug #31436 (isset() incorrectly returns true in dereference of a wrong type) 2005-01-11 21:53:11 +00:00
Moriyoshi Koizumi 87ddc9d06b - BFN 2005-01-11 21:10:47 +00:00
Moriyoshi Koizumi 20a5a1d61c - Fix the fix :) 2005-01-11 20:58:46 +00:00
Moriyoshi Koizumi ee18958f98 - Fix htmlentities() / html_decode_entity() UTF-8 related bugs
initially reported by Kamesh Jayachandran
2005-01-11 20:44:04 +00:00
Moriyoshi Koizumi 357b0c34b6 - Fix bug #31478 (segfault with empty()) 2005-01-11 17:17:48 +00:00
Wez Furlong 166ca20bed Fix build 2005-01-11 14:28:37 +00:00
Joe Orton cb6605c1a5 Fixed bug #30446 - virtual() includes files out of sequence,
work around 2.0 subrequest/internal redirect issue.
2005-01-11 14:01:32 +00:00
foobar 376d5f6910 Fix ZTS build 2005-01-11 13:35:56 +00:00
Rob Richards a3335dba69 revert fix for bug #28817 - fix is bad 2005-01-11 10:36:08 +00:00
foobar b298098307 - Added check for IMAP 2005 version 2005-01-11 04:56:06 +00:00
Wez Furlong c55b4ab516 update for recent adjustments 2005-01-11 02:59:52 +00:00
0e8b1d6864 ChangeLog update 2005-01-11 01:35:48 +00:00
Rasmus Lerdorf 2a3ca10a61 Fix OSX DL_UNLOAD macro and actually use it to make shared extensions
work on OSX.
2005-01-10 21:57:30 +00:00
Antony Dovgal 6074423330 fix Konstantin's last name Chugeuv -> Chuguev 2005-01-10 21:37:17 +00:00
foobar 32d86482cc update test to include negative floats as strings too 2005-01-10 16:00:08 +00:00
foobar 40b9c63da1 - Fixed bug #28074 (FastCGI: stderr should be written in a FCGI stderr stream). 2005-01-10 15:38:24 +00:00
foobar 71ea389f74 Missing $Id$ tag 2005-01-10 15:20:53 +00:00
foobar 2b407ef934 - Update credits 2005-01-10 15:11:17 +00:00
foobar 6e84232e62 - Compressed 2004 Changelog 2005-01-10 15:07:51 +00:00
foobar a96507c1ec - Added missing header sections. 2005-01-10 14:57:36 +00:00
Joe Orton 9a8114e388 Don't scribble over the stack; icc compiler warning fix
from dcb314@hotmail.com via Red Hat bugzilla #143795.
2005-01-10 11:26:56 +00:00
Marcus Boerger 4a76003201 - Fix proto 2005-01-10 07:19:08 +00:00
Marcus Boerger 0f44e8a722 - Bugfix #31342: SQLite OO interface with Exceptions (hugo dot pl at gmail dot com) 2005-01-10 07:16:25 +00:00
Marcus Boerger 4494f0892b - Implement iterator interface in sqlite 2005-01-10 07:13:56 +00:00
41f1e96817 ChangeLog update 2005-01-10 01:35:59 +00:00
foobar 4589cef5e1 - Added AC_ZEND_C_BIGENDIAN macro (as requested by Andi) 2005-01-10 01:33:29 +00:00
foobar 931810629c - The pic/no-pic patch by Joe Orton. 2005-01-10 01:11:09 +00:00
foobar a139dbf9cc - Fix outside-source-tree builds. Always include generated header files
with #include <some_header.h> to make sure the correct file is used.
2005-01-09 21:05:06 +00:00
Antony Dovgal 37d3ea836e add skipif section 2005-01-09 18:22:12 +00:00
Antony Dovgal 68d73f8cf9 add test for bug #31454 2005-01-09 18:15:49 +00:00
Antony Dovgal d7072f8a9d efree(name) 2005-01-09 17:49:51 +00:00
Antony Dovgal c644b2a5a1 fix bug #31454 (session_set_save_handler crashes PHP when supplied non-existent object ref) 2005-01-09 17:42:02 +00:00
foobar 6ffb0dcaf2 - Fix leaks with registered shutdown functions. 2005-01-09 16:30:09 +00:00
foobar 2da8b014af MFB: - Rationalize code a bit 2005-01-09 16:18:39 +00:00
54e954f852 ChangeLog update 2005-01-09 01:36:09 +00:00
foobar fc9d60b66a Remove done stuff 2005-01-09 00:18:28 +00:00
foobar 4db9db0cc7 - Fix possible crash (PR#26223). Leaks remain. 2005-01-08 20:44:23 +00:00
Georg Richter 6b49e2d9e7 fixed compile bug under Windows (libmysql.def currently doesn't export mysql_server_init/end).
Thanks to Sebastian Bergmann for reporting
2005-01-08 15:11:37 +00:00
Dmitry Stogov 0854cad7a2 Unnecesary check was removed 2005-01-08 13:53:45 +00:00
Marcus Boerger 5516915115 - Add new test 2005-01-08 13:47:05 +00:00
Marcus Boerger 344d2210c2 - Unify 2005-01-08 13:46:18 +00:00
Marcus Boerger 01d6db92fc - Fix shared build 2005-01-08 13:36:17 +00:00
Marcus Boerger 8045f834d4 - Remove double destroy (which is definitively wrong and prevents php from
normal execution).
2005-01-08 13:34:03 +00:00
Marcus Boerger 79687e9b7d - Fix dependency 2005-01-08 13:24:39 +00:00
Marcus Boerger 1875caf1ab - Fix warning
- Fix tsrm usage
2005-01-08 12:35:50 +00:00
foobar 901e4f78ec NN 2005-01-08 12:16:31 +00:00
foobar 9ea10c5cec - Fix some memory leaks 2005-01-08 12:02:22 +00:00
688baca5a5 ChangeLog update 2005-01-08 01:35:57 +00:00
Antony Dovgal 5eeb444b8b remove duplicated include 2005-01-07 20:55:46 +00:00
Magnus M��tt� 5ec0e49497 Argh.. Committed old patch.
Add safe_mode check and fix error code.
2005-01-07 17:38:03 +00:00
Antony Dovgal c71c8e7604 fix PHP_CHECK_64BIT macro (finally got 64bit machine to test it) 2005-01-07 16:57:23 +00:00
Georg Richter f16db40af2 forgot to remove some comments in last commit:( 2005-01-07 16:34:55 +00:00
Sebastian Bergmann 683515596b ZTS fix. 2005-01-07 16:24:51 +00:00
Sebastian Bergmann aca657eca2 Sync with config.m4. 2005-01-07 16:23:13 +00:00
Magnus M��tt� 0dddd923c7 Added new function: posix_access()
Feature requests: #29615, #14924
2005-01-07 16:05:06 +00:00
Georg Richter 500d0e3bd2 new mysqli stuff 2005-01-07 15:05:09 +00:00
Georg Richter 0b4c108bd7 Added new classes:
mysqli_driver
	mysqli_warning
	mysqli_exception
	mysqli_sql_exception

Improved embedded server support
changed testsuite to work also with embedded server

Made statement and resultset classes extendable

minor fixes
2005-01-07 14:59:59 +00:00
foobar 05adbd51b4 - Fixed bug #31055 (apache2filter: per request leak proportional to the full path of the request URI) 2005-01-07 06:28:08 +00:00
foobar 7a3d9addb8 - Make sure $host_alias is never empty 2005-01-07 06:12:42 +00:00
Wez Furlong f5c452989d update by steph 2005-01-07 05:39:27 +00:00
Wez Furlong e6c282a766 jumbo commit; implement sqlstate error codes.
Bundle sqlite3
2005-01-07 05:27:27 +00:00
Wez Furlong 02d6b65c67 lame implementation of SQLSTATE error codes 2005-01-07 05:25:57 +00:00
Wez Furlong 70da739031 remove error map; odbc speaks SQLSTATE natively 2005-01-07 05:25:35 +00:00
Wez Furlong fe1a87d02d half-hearted adjustment for sqlstate error codes; will do a better job
when I'm sitting down with a working oci env
2005-01-07 05:25:02 +00:00
Wez Furlong 0f12bfece7 tidy up some parts of the build (could do with more work)
Partially implement SQLSTATE error codes
2005-01-07 05:24:21 +00:00
Wez Furlong 4486666209 half-update for sqlstate error codes 2005-01-07 05:23:48 +00:00
Wez Furlong 6e0d8dd06f implement SQLSTATE style error codes.
Allow drivers to add methods to dbh and stmt objects
(note that we can't use a class, because the use only sees the PDO class).
Clarify the api slightly:
  PDO::exec() is used for one-shot queries that don't return rows
  PDO::query() is a convenience function for returning a rowset without
  having to go through the steps of preparing and executing.
2005-01-07 05:23:10 +00:00
1c9200da92 ChangeLog update 2005-01-07 01:35:24 +00:00
10696169b2 ChangeLog update 2005-01-06 01:35:51 +00:00
Joe Orton 792032c6bb Fix #31413: curl POSTFIELDS usage on 64-bit platforms. 2005-01-05 21:33:56 +00:00
f243fccfd4 ChangeLog update 2005-01-05 01:35:56 +00:00
Frank M. Kromann a6ce3e17e4 Allow gmp to compile under Win32 2005-01-04 22:39:29 +00:00
Wez Furlong c4bc5b7f33 Fix #31408: memory leak in stream_socket_recvfrom 2005-01-04 15:30:45 +00:00
foobar a2177b2e8e - Fixed bug #31396 (compile fails with gd 2.0.33 without freetype) 2005-01-04 06:51:45 +00:00
85f9f047cf ChangeLog update 2005-01-04 01:36:40 +00:00
Stanislav Malyshev 9fa1ee360b merge patch from http://www.sqlite.org/cvstrac/chngview?cn=1953
bug led to PHP exiting on queries with unknown columns
2005-01-03 11:29:27 +00:00
Stanislav Malyshev 52ffca0b27 Fix the following nasty bug:
- if compile bails out from the middle of compiling, current_buffer is not restored
- if current_buffer is not null, yy_switch_to_buffer will do: *yy_c_buf_p = yy_hold_char; on
the next request
- which would lead to memory corruption on next request
2005-01-03 10:01:03 +00:00
33cd288edc ChangeLog update 2005-01-03 01:37:14 +00:00
Ilia Alshanetsky ea7b61dfe5 Fixed bug #31371 (highlight_file() trims new line after heredoc). 2005-01-02 23:53:43 +00:00
Rob Richards 6bbb254ecc allow parser flags to be passed to xinclude() 2005-01-02 12:22:36 +00:00
Rob Richards 6a64418809 add NONET flag to disable network access when loading xml 2005-01-02 12:21:14 +00:00
Rob Richards 8450fae834 Fixed bug #31361 (simplexml/domxml segfault when adding node twice) 2005-01-02 12:08:41 +00:00
Moriyoshi Koizumi 88ce94a3c2 - Add testcases for bug #29493 and #31213. 2005-01-02 06:51:03 +00:00
fc64a7ae57 ChangeLog update 2005-01-02 01:36:26 +00:00
Wez Furlong 126e524635 Fix build... 2005-01-01 14:32:59 +00:00
8747e6e1b4 ChangeLog update 2005-01-01 01:35:57 +00:00
Wez Furlong 1f75a34f76 add proper dep 2004-12-31 17:45:08 +00:00
c1e5e2c74c ChangeLog update 2004-12-31 01:36:44 +00:00
Rasmus Lerdorf b1db6ed28d Safer libtoolize version check 2004-12-30 15:53:57 +00:00
foobar 4cf9d27072 - Fixed bug #28930 (PHP sources pick wrong header files generated by bison) 2004-12-30 15:18:24 +00:00
foobar a3943d9be5 - Fix buildconf failure with autoconf versions > 2.13 2004-12-30 14:56:00 +00:00
foobar 5ac375a40d - Fixed bug #31101 (missing kerberos header file path with --with-openssl) 2004-12-30 14:50:06 +00:00
Antony Dovgal 8596934a39 tidy_repair_string() should not try to load config file if there was no config parameter 2004-12-30 11:56:18 +00:00
foobar 69eec3f3b9 MFB_4_3: Quote macro names in AC_DEFUN() 2004-12-30 07:08:39 +00:00
foobar 57eddbd7d0 - Fixed the crash and leak. 2004-12-30 05:31:55 +00:00
foobar f47d6bc193 missing .cvsignore file 2004-12-30 04:43:51 +00:00
Ilia Alshanetsky a7bc501d90 MFH: A leak is better(?) then a crash. 2004-12-30 04:39:17 +00:00
Ilia Alshanetsky 4bef3dde2d MFB: fixed test case 2004-12-30 04:11:33 +00:00
00a1b5d546 ChangeLog update 2004-12-30 01:34:40 +00:00
Ilia Alshanetsky 585833ab7e Fixed proto. 2004-12-30 01:23:44 +00:00
foobar 5abd0518dd cleanup.. 2004-12-30 00:59:28 +00:00
Ilia Alshanetsky 8f7f00178f Fixed typo. 2004-12-29 21:56:42 +00:00
Ilia Alshanetsky 12c2113b3e Fixed compiler warnings. 2004-12-29 21:40:34 +00:00
Ilia Alshanetsky ed64463bdb Fixed memory leaks. 2004-12-29 21:33:03 +00:00
Ilia Alshanetsky 742f8c2502 MFB: don't perform pointless operations. 2004-12-29 21:25:00 +00:00
Ilia Alshanetsky 3f79dfbb04 Don't forget to unload t1lib. 2004-12-29 21:07:59 +00:00
Frank M. Kromann 70c51c4ee6 Fix typo 2004-12-29 20:18:34 +00:00
Antony Dovgal 6528b1b0b4 more typos 2004-12-29 16:11:42 +00:00
Antony Dovgal 0460f73db2 MFB: fix typos 2004-12-29 13:53:40 +00:00
Georg Richter 57fa54af2d added property 'id' to retrieve statement id (required by PEAR DB, to support
mysqli prepared statements)
2004-12-29 11:46:13 +00:00
e8a505bd3d ChangeLog update 2004-12-29 01:37:10 +00:00
Derick Rethans 7f12445175 - MFB: Add dom/xml_common.h header as installed header in order to be able to build pecl/xml_reader 2004-12-28 15:20:42 +00:00
Andi Gutmans c2913c977a - Revert expose_php change 2004-12-28 03:48:18 +00:00
Ilia Alshanetsky 5acd33001a Turn off sending of PHP identifying header. This is complete useless for
any practical application and is a total wasting bandwidth/cpu.
2004-12-28 02:42:23 +00:00
69b2401099 ChangeLog update 2004-12-28 01:35:50 +00:00
Wez Furlong 73186934d8 more get_method signature changes 2004-12-27 22:04:54 +00:00
Zeev Suraski 6b1f070907 MFB 2004-12-27 18:53:27 +00:00
Zeev Suraski f64c4f4569 MFB - description fix 2004-12-27 18:22:50 +00:00
Georg Richter dc63cb7feb fixed testcase 047
fixed windows compile error
2004-12-27 15:39:35 +00:00
Marcus Boerger 7be33a225e - Need to unmangle the class name here 2004-12-27 15:13:26 +00:00
Dmitry Stogov beaff87d50 "Undefined variable: %s" noticies were fixed to use one space 2004-12-27 13:43:26 +00:00
Marcus Boerger 03af7c8abc - More proto/error message fixes 2004-12-27 13:32:22 +00:00
Georg Richter 698c0361d6 Fix for feature request #31015: added length for field length 2004-12-27 11:48:57 +00:00
Marcus Boerger 4b80deed8e - Small fixlet (by Tony) 2004-12-27 11:41:45 +00:00
Ilia Alshanetsky 4da21882fd Fixed spelling. 2004-12-27 07:19:25 +00:00
2971f422da ChangeLog update 2004-12-27 01:35:30 +00:00
Wez Furlong 823d48bd37 hmmmmm. Bound params *were* working this way before, but now it seems that
I have to bind them as text.
2004-12-26 18:13:52 +00:00
Georg Richter c2ef1ad438 added constructors for mysqli_stmt and mysqli_resultset classes 2004-12-26 13:17:03 +00:00
Georg Richter 683f6c879c added constructors for mysqli_stmt and mysqli_result classes 2004-12-26 13:16:40 +00:00
Wez Furlong b44785e958 don't blow up under HEAD 2004-12-26 04:50:09 +00:00
Wez Furlong 63ee853b74 bump PHP API number.
This is so that we can work around the signature change in the get_method
overloaded object handler in our portable extensions.

Yes, you could argue that the zend api number needs bumping, but then you could
argue which one to bump, as neither of them is specific or generic enough.

Besides all that, the PHP API number really needs a good old bump anyway.
2004-12-26 04:46:09 +00:00
Georg Richter ea22bf6063 fix for bug 31141 2004-12-25 16:42:53 +00:00
Marcus Boerger 8c7bd30a7b - Add ReflectionClass::hasMethod() (thanks to Johannes S.) 2004-12-25 16:27:27 +00:00
Wez Furlong c8b2f43005 fix build issues 2004-12-25 04:01:30 +00:00
Wez Furlong 843807c647 When a socket is non-blocking, don't block ssl enabled sockets.
Allow for non-blocking negotiation when calling stream_socket_enable_crypto().
That function will return the foolowing values:

false - negotiation failed
0     - try again when more data is available (only for non-blocking sockets)
true  - ssl was enabled
2004-12-25 02:02:56 +00:00
4deaf7e243 ChangeLog update 2004-12-25 01:35:07 +00:00
Antony Dovgal ffb2cf7a94 return empty string when got empty parameter 2004-12-24 19:45:54 +00:00
Dmitry Stogov f91088459b New sarbage collector's bug was fixed (the behavior should be the same as in PHP_5_0) 2004-12-24 09:00:29 +00:00
Dmitry Stogov e986a1f47e "Undefined variable: %s" noticies were fixed to be compatible with PHP_5_0 2004-12-24 08:24:55 +00:00
c2e70dbe9e ChangeLog update 2004-12-24 01:37:05 +00:00
Wez Furlong e1f3beaa13 really don't blow up 2004-12-23 19:39:22 +00:00
Ilia Alshanetsky d0f606f11d Fixed several buffer overflows. 2004-12-23 19:29:12 +00:00
Antony Dovgal 38d8e20f68 destroy return_value and fix leak in array_fill() 2004-12-23 16:35:48 +00:00
Antony Dovgal 78edc7e65a add Oracle Instant Client support (initial patch by cjbj at hotmail dot com) 2004-12-23 16:20:09 +00:00
Wez Furlong d3d757d95a don't crash... 2004-12-23 05:56:50 +00:00
63f659637f ChangeLog update 2004-12-23 01:34:51 +00:00
Ilia Alshanetsky b19e666946 Fixed bug #31142 (imap_mail_compose() fails to generate correct output). 2004-12-22 17:27:39 +00:00
287dc7a32b ChangeLog update 2004-12-22 01:36:38 +00:00
Ilia Alshanetsky 4ab69902dc Fixed possible crash in imap_mail_compose(). 2004-12-21 15:47:14 +00:00
Edin Kadribasic ea07d448a5 MFB: Avoid autoheader warning 2004-12-21 15:41:22 +00:00
foobar b6823b673e - Fixed bug #28248 (Can not compile --with-sybase and freetds) 2004-12-21 06:57:01 +00:00
foobar c9f552923a - Fixed bug #28385 (files in $(prefix)/lib/php/build/* installed with wrong
permissions). (Jani, ramsy at ramix dot jp)
2004-12-21 04:58:50 +00:00
Magnus M��tt� 774a978ea9 Fix test so it doesn't hang make test on HP-UX. 2004-12-21 04:34:22 +00:00
foobar b8056095c6 - Fixed bug #31145 (configure is using -lcpdf instead of -lcpdfm) 2004-12-21 04:21:43 +00:00
61bf7a23ce ChangeLog update 2004-12-21 01:34:54 +00:00
foobar 20fce0ba3e - Use correct header files (in c99 compliant way). uint32_t is preferred. 2004-12-21 01:07:24 +00:00
Wez Furlong 0a42a1f422 Errr... fix leak 2004-12-21 00:37:01 +00:00
foobar 4157e50c00 Better fix for endian compile problems. 2004-12-20 20:37:45 +00:00
foobar bc3f6c94d4 Fix buildconf when multiple autoconf versions installed 2004-12-20 20:23:57 +00:00
Rasmus Lerdorf fdaa130f3a Add the new request_time sapi struct entry to all the sapis. Some of these
may have ways of getting the request time without the extra syscall, but
for now let's just make sure we don't crash and people will eventually
fill these in where applicable.
2004-12-20 19:33:41 +00:00
Georg Richter 5c50f0bb30 prevent type conversion during mysql_stmt_execute for NULL variables 2004-12-20 16:39:14 +00:00
7152b3811e ChangeLog update 2004-12-20 01:36:49 +00:00
Ilia Alshanetsky ec83570232 Fixed bug #31103 (Better error message when c-client cannot be found). 2004-12-19 18:16:50 +00:00
6a05ad04d9 ChangeLog update 2004-12-19 01:39:08 +00:00
foobar a903822561 Missing cvs id tag 2004-12-18 03:14:39 +00:00
95467a3a25 ChangeLog update 2004-12-18 01:35:26 +00:00
Andi Gutmans 235e6c0afe - Fixed Bug #30562 Segmentation fault with __call() 2004-12-17 22:24:51 +00:00
Derick Rethans 13c2cbb515 - MF43: Fixed bug #31072 (var_export() does not output an array element with an
empty string key). (Derick)
2004-12-17 14:40:39 +00:00
Derick Rethans 4394c6f441 - MF43: Fixed strtod for Irix and some other strange platform 2004-12-17 13:17:32 +00:00
Derick Rethans 6386777fe3 - MF43: Fixed weird types, this also makes it compile on IRIX again. 2004-12-17 13:08:44 +00:00
Rob Richards b462fc8bd2 Fixed bug #31139 (XML Parser Functions seem to drop &amp; when parsing) 2004-12-17 12:20:50 +00:00
3f835d67ba ChangeLog update 2004-12-17 01:36:38 +00:00
Ilia Alshanetsky 77c0395968 Fixed bug #31087 (broken php_url_encode_hash macro). 2004-12-16 22:39:39 +00:00
Derick Rethans 1c23efeff4 - MF43: Make it compile on HPUX on Itanium 2 2004-12-16 22:22:51 +00:00
Frank M. Kromann 4f8973fcdc Fix #31120 and #31135. mssql_query returns false on successfill inserts and stored procedures 2004-12-16 21:47:23 +00:00
Antony Dovgal 33c24b5436 fix leak (init array only if we got valid start key) 2004-12-16 19:13:58 +00:00
Derick Rethans 16c6679125 - MF43: Fixed bug #31107 (strtod on solaris9/intel) 2004-12-16 13:06:58 +00:00
foobar ce742b08b0 - Fix typo (avaliable -> available). (bug #28725) 2004-12-16 12:34:32 +00:00
foobar eb0c45d572 - Fixed compile error with HP-UX using GCC. 2004-12-16 11:49:48 +00:00
Derick Rethans 2689533db9 - MF43: Fixed bug #31110 and #31111 (Zend/zend_strtod.c problems) 2004-12-16 10:38:48 +00:00
5d2b6c784e ChangeLog update 2004-12-16 01:35:24 +00:00
Frank M. Kromann 7800086169 Adding missing zend_list_addref() and make SWFShape::drawArc() work 2004-12-15 18:01:31 +00:00
foobar e4fa4fcdd9 missing files 2004-12-15 02:29:40 +00:00
89fac1e1e2 ChangeLog update 2004-12-15 01:51:40 +00:00
Ilia Alshanetsky cc17322c14 MFB: test fix. 2004-12-14 17:43:53 +00:00
Dmitry Stogov b20a007aa0 Fixed build with custom libming 2004-12-14 16:15:58 +00:00
Dmitry Stogov 860754f0f9 Fixed build on linux-glibc21-i386 2004-12-14 14:01:06 +00:00
Dmitry Stogov 3f0c2347ff Fixed bug #30994 (SOAP server unable to handle request with references). 2004-12-14 13:58:57 +00:00
Derick Rethans c0edc48a08 - MFH: Fixed compile error related to bug #28605.
#- But it does not *fix* bug #28605.
2004-12-14 08:43:01 +00:00
b952c194f6 ChangeLog update 2004-12-14 01:33:41 +00:00
Ilia Alshanetsky 6d7cac7731 Fixed bug #28228 (NULL decimal separator is not being handled correctly). 2004-12-14 00:37:19 +00:00
Wez Furlong 419bbffeef Make it really build... 2004-12-13 13:52:01 +00:00
Joe Orton 7263c220dd More PHP_LIBDIR fixes for lib64 platforms. 2004-12-13 10:30:21 +00:00
Derick Rethans d91a531d2e - Added "G" modifier to ini setting number format. 2004-12-13 09:09:06 +00:00
eafd2ef88e ChangeLog update 2004-12-13 01:39:15 +00:00
Wez Furlong d213b67cdf Add missing constants for socketpair().
I thought I had included these...
Good catch Nuno :)
2004-12-12 23:21:53 +00:00
Moriyoshi Koizumi 28cc55be0a - Apply the same fix to apache2filter too. 2004-12-12 23:06:06 +00:00
Wez Furlong d10b86f8f4 Add stream_socket_pair(), a streams based version of socketpair().
Modified patch from Vincent [six at t0x dot net]
2004-12-12 16:10:35 +00:00
Ilia Alshanetsky c96a1e0ddf Fixed bug #31056 (php_std_date() returns invalid formatted date if
y2k_compliance is On).

# will MFH to 5.0.X and 4.3.X after release
2004-12-12 15:50:06 +00:00
Moriyoshi Koizumi a0975f8dcf - Fixlet for httpd-2.1 on Darwin platforms 2004-12-12 02:11:27 +00:00
7d7aa0f99d ChangeLog update 2004-12-12 01:41:02 +00:00
Derick Rethans b68803c08e - Generate all iconv headers by default 2004-12-11 11:16:55 +00:00
8208e517f8 ChangeLog update 2004-12-11 01:33:25 +00:00
Andi Gutmans 4e942cb07f - Fix bug #27728 (Can't return within a zend_try{} or the previous
state isn't restored.
2004-12-10 22:59:25 +00:00
Antony Dovgal 01b996b98b fix buffer overrun & segfault in get_meta_tags() when there is no tag value 2004-12-10 10:30:01 +00:00
e6f64862c1 ChangeLog update 2004-12-10 01:32:20 +00:00
Ilia Alshanetsky 5484568c5c Avoid causing a crash. 2004-12-10 00:36:51 +00:00
Antony Dovgal ad76be844b CS changes (as suggested by Ilia) 2004-12-09 17:15:52 +00:00
Antony Dovgal 5dbe3f6f4f fix 1-byte leak 2004-12-09 15:07:56 +00:00
Antony Dovgal e76824c91f fix segfault in session_module_name() when session.save_handler is empty 2004-12-09 14:14:21 +00:00
Derick Rethans 1266735cd0 - MF43: Fixed bug #31034 (Problem with non-existing iconv header file). 2004-12-09 09:06:06 +00:00
Antony Dovgal 01f31dcccb fix buffer overrun and remove debug printf() call 2004-12-09 08:22:06 +00:00
3996f37651 ChangeLog update 2004-12-09 01:32:56 +00:00
Frank M. Kromann 49f88bc05a Fix logic for file checking. Bug #31019 2004-12-08 18:57:48 +00:00
Joe Orton 7b547a393a Fix VPATH build again. 2004-12-08 12:50:00 +00:00
foobar 4366854783 Fix build. This was not supposed to halt configure if test fails. 2004-12-08 06:46:34 +00:00
Brad House ab6faef7ee Newer versions of libmonetra broke compatability with one function. Make workaround that detects version, and works with both. 2004-12-08 03:02:34 +00:00
c861ce463d ChangeLog update 2004-12-08 01:32:56 +00:00
Dmitry Stogov a22fa4d109 Fixed crash in phpinfo() after graceful Apache restart. 2004-12-07 18:02:25 +00:00
Dmitry Stogov ca3c82bbb5 Fixed bug #30928 (When Using WSDL, SoapServer doesn't handle private or protected properties) 2004-12-07 17:29:42 +00:00
Antony Dovgal 0582a631fe fix leak 2004-12-07 16:54:25 +00:00
Derick Rethans 8dc461f854 - Tidy up NEWS a bit 2004-12-07 08:46:14 +00:00
Dmitry Stogov 5b18b931d0 Fixed bug #30904 (segfault when recording soapclient into session). 2004-12-07 07:46:12 +00:00
e32da28bd5 ChangeLog update 2004-12-07 01:31:57 +00:00
Ilia Alshanetsky d0cbaa911f Fixed bug #30995 (snmp extension does not build with net-snmp 5.2). 2004-12-07 00:33:24 +00:00
Ilia Alshanetsky 35540fdee6 Added -d option which allows ini options to be specified via command line.
Patch by: Sean Coates
2004-12-06 23:37:20 +00:00
Ilia Alshanetsky 6883a3f09c Fixed bug #30990 (allow popen() on *NIX to accept 'b' flag). 2004-12-06 23:30:37 +00:00
Derick Rethans 48b118968f - MF43: Install the iconv extension headers to <installpath>/ext/iconv so that
external extensions can use them.
2004-12-06 20:39:20 +00:00
Ilia Alshanetsky 2980ab0cdc MFB: revert 2004-12-06 19:46:23 +00:00
Stanislav Malyshev 9baa92c596 fix startup - if startup did not succeed, do not continue with execution 2004-12-06 18:55:30 +00:00
Stanislav Malyshev f9c2324cd0 do not zero out peak - MM shutdown would do that 2004-12-06 18:48:35 +00:00
Stanislav Malyshev 11ae876f34 add test 2004-12-06 16:08:08 +00:00
Stanislav Malyshev 9e9c193e1b port fix for #30998: Crash when user error handler returns false on amd64 2004-12-06 15:50:27 +00:00
Dmitry Stogov 7c83c4e418 Fixed bug #30922 (reflective functions crash PHP when interfaces extend themselves) 2004-12-06 11:53:30 +00:00
Georg Richter f0f08ec32b fixed windows compile errors (Thx to Sebastian Bergmann) 2004-12-06 05:15:03 +00:00
cd39bb55f6 ChangeLog update 2004-12-06 01:35:04 +00:00
Rob Richards cb72e23c14 add optional parameter to pass libxml document load options 2004-12-05 12:02:35 +00:00
Rob Richards 4cea708b21 define options that can be used when loading documents 2004-12-05 11:59:46 +00:00
Holger Zimmermann b36a4c57ca Replaced static server variables by function call and configurable list at the Pi3Web server side. 2004-12-05 09:52:25 +00:00
4026a3ce7e ChangeLog update 2004-12-05 01:32:43 +00:00
Rasmus Lerdorf 3d297bf881 Fix proto 2004-12-04 13:47:13 +00:00
Rob Richards 28076f78ed add test 2004-12-04 11:40:10 +00:00
Rob Richards 25554b8118 Fixed bug #28817 (Var problem when extending domDocument). (Georg) 2004-12-04 11:39:34 +00:00
Georg Richter 6d27573ec2 added skipif section 2004-12-04 08:50:33 +00:00
Georg Richter 9751d9afaa Fixed bug #30890 (testsuite)
Fixed bug #28817 (property problems in extended class)
2004-12-04 08:16:04 +00:00
Rasmus Lerdorf 224d2479b3 Add apache_reset_timeout() function for Apache1. This is needed because
Apache1 only resets the write timer, which defaults to 300 seconds, on
a successful write.  That is, if the client has gone away and Apache
attempts a write which fails it will set the conn->aborted flag but not
reset the timeout.  Assuming the PHP script is running in ignore_user_abort
mode we ignore the aborted flag, but we'll still get blown out of the water
300 seconds after the failed write unless we periodically reset the timer.
With set_time_limit(0), ignore_user_abort(true) and periodic
apache_reset_timeout() calls we can theoretically run forever which is
why I disabled this call in safe mode.
2004-12-04 07:16:44 +00:00
9ff0d0818e ChangeLog update 2004-12-04 01:32:05 +00:00
Antony Dovgal b6b8bf0010 fix array_walk_recursive() so it doesn't reuse cached fci between calls
and add test for it
2004-12-03 17:43:23 +00:00
Stefan Esser 9a18fb197d Handle already existing elements correctly 2004-12-03 16:02:48 +00:00
Georg Richter 30dd61abb7 Fixed bug #30967 (properties in extended mysqli classes don't work) 2004-12-03 07:56:19 +00:00
Ilia Alshanetsky e99526eb7e Fixed bug #30962 (mssql returns space for NULL columns). 2004-12-03 02:26:04 +00:00
2844354634 ChangeLog update 2004-12-03 01:32:51 +00:00
Antony Dovgal ccc6462cc5 revert my previous patch as it breaks more than fixes 2004-12-02 16:35:02 +00:00
Antony Dovgal ed5638bf77 fix tests 2004-12-02 16:33:36 +00:00
ecac37514c ChangeLog update 2004-12-02 01:33:36 +00:00
Stefan Esser 1a319ae1ac Fixed: virtual_popen in ZTS mode 2004-12-02 01:04:23 +00:00
Stefan Esser b08147d46a Partly reverted because of problems with some realpath() implementations 2004-12-02 00:44:07 +00:00
Stefan Esser 6076a4a66c Fixed behaviour of TSRM in case of realpath() failure 2004-12-01 22:56:05 +00:00
Stefan Esser 1094a0d243 Beware of negative indices 2004-12-01 22:42:00 +00:00
Stefan Esser b1bb6f1735 Do not silently truncate 2004-12-01 22:37:33 +00:00
Ilia Alshanetsky 4c5d71917e MFB: Removed extra space that causes problems for some compilers. 2004-12-01 18:52:13 +00:00
Dmitry Stogov a1c85ca6f2 Fixed bug #30329 (Error Fetching http body, No Content-Length, connection closed or chunked data). 2004-12-01 18:22:40 +00:00
Dmitry Stogov 5b074c048d Port 443 is default for https, so we shouldn't put it into Host: 2004-12-01 17:33:32 +00:00
Dmitry Stogov ec4b6f713d Fixed bug #30359 (SOAP client requests have no port in "Host" field ). 2004-12-01 16:59:48 +00:00
Derick Rethans 9c14e2235c - Fixed MacOSX compilation (Patch by Christian) 2004-12-01 15:05:02 +00:00
Dmitry Stogov ec36f7dc69 Fixed bug #29883 (isset gives invalid values on strings). 2004-12-01 14:02:35 +00:00
Derick Rethans 1039fdebb1 - MF43: Update install instructions 2004-12-01 09:15:49 +00:00
Greg Beaver eaad3a9f7b remove old test files 2004-12-01 06:09:06 +00:00
8bc100cdae ChangeLog update 2004-12-01 01:32:00 +00:00
Ilia Alshanetsky 349c134061 Fixed bug #30945 (make ctype_* functions return FALSE on empty strings).
Slight performance improvement of multi-byte string checking via ctype_*.
2004-11-30 16:55:55 +00:00
5f949d21c2 ChangeLog update 2004-11-30 01:33:45 +00:00
Ilia Alshanetsky 46745e31ed This test is conditional on the libTidy library. On some configurations
tidy crashes due to a bug in the lib.
2004-11-30 00:01:30 +00:00
Derick Rethans b6f9b5c693 - Added testcase for bug #30695 2004-11-29 10:15:03 +00:00
Derick Rethans ebca90f075 - MFH: Revert Joe's work around a bug in GCC patch as it breaks too many things. 2004-11-29 09:32:15 +00:00
463204f9b3 ChangeLog update 2004-11-29 01:35:51 +00:00
Ilia Alshanetsky 0e46666591 Save test result file inside the build directory. 2004-11-28 20:40:16 +00:00
Sergey Kartashoff 1907f0ab8b - MnoGoSearch extension updated to fix compilation issues with
mnogosearch-3.2.25+
2004-11-28 20:03:05 +00:00
Antony Dovgal dbc0bb7514 fix #29954 (array_reduce segfaults when initial value is array) 2004-11-28 17:03:45 +00:00
Stefan Esser c02b2d2d45 Fixed: Correctly Initialize fields 2004-11-28 13:32:29 +00:00
Antony Dovgal 9fb623c312 fix #30314 2004-11-28 13:21:09 +00:00
Stefan Esser 6d98fc38b5 Fixed: removed possible integer over-/underflows 2004-11-28 12:44:28 +00:00
e0e157e6de ChangeLog update 2004-11-28 01:35:04 +00:00
Ilia Alshanetsky 9379801c9a Improve offset check inside shmop_write(). 2004-11-27 18:17:58 +00:00
Marcus Boerger c51e49147e BFN 2004-11-27 10:16:13 +00:00
adbca0b92e ChangeLog update 2004-11-27 01:32:02 +00:00
Stanislav Malyshev 808d9b035f 'l' is long - int won't work on 64-bit 2004-11-26 13:17:30 +00:00
2ec1f4d16a ChangeLog update 2004-11-26 01:33:14 +00:00
Ilia Alshanetsky 5796326d5a CS 2004-11-25 23:44:20 +00:00
75ab06e855 ChangeLog update 2004-11-25 01:33:25 +00:00
Ilia Alshanetsky 07db7765a1 Fixed compilation when PHP is built in separate directory. 2004-11-24 23:12:18 +00:00
Marcus Boerger 520097b065 - Fix Bug #30856 (ReflectionClass::getStaticProperties segfaults) 2004-11-24 19:56:54 +00:00
Marcus Boerger 4ab537fc61 - Add new test 2004-11-24 19:56:25 +00:00
98f9906c59 ChangeLog update 2004-11-24 01:33:16 +00:00
Dmitry Stogov 5ece0ecdfb Test was fixed. 2004-11-23 17:21:33 +00:00
Derick Rethans 9b9ae8ee70 - We need to install the headers too. 2004-11-23 13:05:24 +00:00
Edin Kadribasic 6d23aae34e Only dllexport during the compilation of iconv.c 2004-11-23 12:04:07 +00:00
Derick Rethans ce022d2723 - Export "php_iconv_string()". 2004-11-23 09:44:54 +00:00
Derick Rethans a6ded1178e - Added test for bug #28599 2004-11-23 09:40:07 +00:00
3630c4d1e0 ChangeLog update 2004-11-23 01:36:07 +00:00
Ilia Alshanetsky 0e138423d4 Fixed compile warning. 2004-11-22 23:29:59 +00:00
Frank M. Kromann b38b068302 Adding fbsql_set_characterset.
Change PHP_INI_USER to PHP_INI_ALL on fbsql.batchsize
2004-11-22 22:40:21 +00:00
Andi Gutmans 7c3eaef39d - Don't reuse Oracle connections in multi-threaded environments until
- we decide to either not support ZTS connection pooling (kind of
- pointless as PHP isn't stable in ZTS mode) or fix the 100% reproducable
- crash bug on oci_connect() under Windows most probably due to this
- problem.
2004-11-22 21:44:42 +00:00
Derick Rethans a07c080ce8 - Added test case for bug #30862. 2004-11-22 21:41:16 +00:00
Frank M. Kromann 82cd4789a7 Fix #30860 configure fails when tds is compiled as shared 2004-11-22 19:41:43 +00:00
Dmitry Stogov 139933fe59 Test was fixed. 2004-11-22 17:43:03 +00:00
Dmitry Stogov 107da542ae Skip condition was fixed. 2004-11-22 15:15:50 +00:00
Dmitry Stogov c6fad655a0 Tests were fixed. 2004-11-22 15:12:32 +00:00
f7585a2cb3 ChangeLog update 2004-11-22 01:36:34 +00:00
Ilia Alshanetsky 496031df78 emalloc -> safe_emalloc. 2004-11-21 20:43:10 +00:00
Rob Richards a7cd9768d1 internal entities get expanded if no default handler but cdata handler exists 2004-11-21 14:25:15 +00:00
Antony Dovgal 39b25e4f3d fix yet another typo 2004-11-21 13:35:32 +00:00
Antony Dovgal d9dd604ae7 fix typo (bug #30857) 2004-11-21 13:33:20 +00:00
Andi Gutmans 737568997b *** empty log message *** 2004-11-21 06:17:32 +00:00
8a1f6b537a ChangeLog update 2004-11-21 01:36:52 +00:00
Stefan Esser 224201e635 Fixed: strip quotes from filename 2004-11-20 18:49:36 +00:00
Pierre Joye f3b74fe9ac - Attempt to fix #28598, bug introduced in GD (around php 4.3.4)
The way they fix MS Symbol are wrong, multiple faces support hould added
  later, safer.

  Please test it with your weird fonts, if it works, MFH will be done.
2004-11-20 13:09:45 +00:00
Rob Richards 8f32b61acb fix crash when calling com methods
- due to change in Zend
2004-11-20 11:40:49 +00:00
2e1f2f8852 ChangeLog update 2004-11-20 01:36:16 +00:00
Antony Dovgal 2a588879ef fix bug #30587 (array_multisort doesn't separate zvals before changing them) 2004-11-19 16:55:37 +00:00
94f8379545 ChangeLog update 2004-11-19 01:35:44 +00:00
Rob Richards 83a6b8c762 Fixed bug #30061 (xml_set_start_namespace_decl_handler not called)
hopefully resolve a bunch of entity issues
2004-11-18 19:59:23 +00:00
Rob Richards b87d8cdfd0 prototype fixes (Jakub Vrána) 2004-11-18 19:54:30 +00:00
Rob Richards 1e0212ef8e Fixed bug #30832 ("!" stripped off comments in xml parser)
reset sax->initialized flag when not using SAX2
2004-11-18 18:26:13 +00:00
Rob Richards 2496f4f882 fix SAX2 handling to work with libxml 2.6.16 2004-11-18 16:36:00 +00:00
Rob Richards bd8aba8c8d fix typo so it compiles 2004-11-18 16:35:04 +00:00
Antony Dovgal ee31c94bc7 run-test2 should be able to emulate POST & GET in the same time 2004-11-18 14:57:45 +00:00
867517fa5d ChangeLog update 2004-11-18 01:34:33 +00:00
Ilia Alshanetsky 54ff6af758 Gracefully handle allocation failure. 2004-11-17 23:42:14 +00:00
Pierre Joye 32ff83e4da - Really fix imagefill, part of my previous (old) fix was not applied
(blame me), bak the alphablending and restore it on exit
2004-11-17 20:19:35 +00:00
Pierre Joye d9f08cb7ce - MFB: fix #30739, imagefill did not set back alphablending mode 2004-11-17 17:21:22 +00:00
Stanislav Malyshev e9003696bd fix crash 2004-11-17 12:06:27 +00:00
Dmitry Stogov 6bb5705619 namespace was renamed 2004-11-17 06:18:18 +00:00
22519a360a ChangeLog update 2004-11-17 01:37:20 +00:00
Ilia Alshanetsky df4911561b Fixed possible usage of un-initialized variable. 2004-11-16 21:04:10 +00:00
Dmitry Stogov 62ce05fb49 indentation fixed. 2004-11-16 13:51:09 +00:00
Dmitry Stogov 94a372b992 Fixed bug #30799 (SoapServer doesn't handle private or protected properties) 2004-11-16 13:04:39 +00:00
Dmitry Stogov a9a5dbd9b8 Class mapping was implemented (Bug #29385 Soapserver always uses std class). 2004-11-16 12:07:32 +00:00
Derick Rethans ccc7c3b48e - Make this compile for the Mac again 2004-11-16 07:48:25 +00:00
c224f6fba2 ChangeLog update 2004-11-16 01:36:15 +00:00
Frank M. Kromann b1c6c89d97 Fix one-shot builds. 2004-11-15 23:59:22 +00:00
Ilia Alshanetsky d98a44d483 Fixed bug #29801 (Set limit on the size of mmapable data). 2004-11-15 23:43:12 +00:00
Ilia Alshanetsky a04722b1b0 MFB: fixed build. 2004-11-15 23:37:05 +00:00
Edin Kadribasic 372a69fded iconv is built-in in php5 2004-11-15 23:27:48 +00:00
Frank M. Kromann 4893e3c505 Adding most of the changes suggested in #30280. Mostly fix's for possible leaks. 2004-11-15 22:45:29 +00:00
Frank M. Kromann 11363296be Avoid renaming of sprintf to php_sprintf 2004-11-15 21:13:25 +00:00
Frank M. Kromann 816bcd3aff Fix win32 build. 2004-11-15 21:04:09 +00:00
Derick Rethans 4916f58540 - Fixed bug #30779 (Compile of Zend/zend_strtod.c fails on Sparc) 2004-11-15 19:26:45 +00:00
Sergey Kartashoff 0314fa1c3b # Unix EOLs fixed 2004-11-15 19:08:19 +00:00
Sergey Kartashoff 89b2866758 # Copyright header & version info changed to PHP 5 standard notice 2004-11-15 19:03:20 +00:00
Frank M. Kromann e1e29cefc4 Adding php_sprintf.c to Win32 build 2004-11-15 18:27:10 +00:00
Derick Rethans d79407f4fd - MF5.0: Fixed bug #28599 (strtotime fails with zero base time). 2004-11-15 16:31:12 +00:00
Antony Dovgal 71d9afee0c fix CLI leaks when using malformed option string 2004-11-15 14:00:48 +00:00
Derick Rethans 61364b5bb1 - MFH4.3: Cleaned up some of the locale mess:
* all internal use of sprintf, snprintf and the like will always
    use the . as thousands seperator (if php.h is included only!).
  * echo, printf() and sprintf() always render locale-aware
  * added the %F modifier for non-locale aware rendering for floats
2004-11-15 13:42:22 +00:00
48fe8cf7bc ChangeLog update 2004-11-15 01:36:53 +00:00
Ilia Alshanetsky fae64ba40c Added support for better control over FTP encryption protocols. 2004-11-14 20:00:16 +00:00
Sergey Kartashoff 2b80314c3f # Unix EOLs fixed 2004-11-14 19:29:59 +00:00
Sergey Kartashoff acc517cd5c - More mnogosearch-3.2.23+ compatibility 2004-11-14 18:30:40 +00:00
Marcus Boerger 95ff205e6c - Bugix #30783: Apache crash when using ReflectionFunction::getStaticVariables() 2004-11-14 18:01:44 +00:00
Antony Dovgal f85a11f280 fix #30780 (tidy segfaults on 'new tidyNode;') 2004-11-14 13:33:59 +00:00
d29cc93a6f ChangeLog update 2004-11-14 01:36:55 +00:00
Rob Richards db2c5275a1 Fixed bug #30566 (attribute namespace URIs are inconsistent when parsing). 2004-11-13 14:32:44 +00:00
49ac2e74f2 ChangeLog update 2004-11-13 01:51:05 +00:00
Frank M. Kromann a62b69b9c5 fix ZTS builds 2004-11-12 20:32:43 +00:00
Ilia Alshanetsky 613db6ee30 Simplify and cleanup code. 2004-11-12 02:22:01 +00:00
68faef668b ChangeLog update 2004-11-12 01:51:37 +00:00
Marcus Boerger 08cc69dbf4 - Correct exception throwing 2004-11-11 20:06:23 +00:00
Marcus Boerger 4c8bca469f - Use exceptions now they work 2004-11-11 19:42:11 +00:00
Marcus Boerger 9c0f5e8887 - Use appropriate exception class where possible 2004-11-11 19:36:27 +00:00
Marcus Boerger 5dbb0aaa24 - Drop debug message 2004-11-11 19:31:27 +00:00
Rob Richards d563495a24 add support for file://localhost/
support file:/// under windows again
2004-11-11 13:08:32 +00:00
Dmitry Stogov e370219e2a Support for lists in non-WSDL mode was implemented
Support for "xsi:type" was improved
2004-11-11 09:17:10 +00:00
Antony Dovgal d33eb14569 fix #30751 (phpinfo() shows the same ini path after reconfigure with --with-config-file-path) 2004-11-11 06:57:06 +00:00
57e0902c59 ChangeLog update 2004-11-11 01:55:43 +00:00
Ilia Alshanetsky f41c40f63e Fixed bug #30750 (Meaningful error message when upload directory is not
accessible).
2004-11-11 00:38:04 +00:00
Frank M. Kromann fb543df1a8 No need to ude /Fo twice.
Unbreak the build be readding the compile only flag
2004-11-10 23:52:56 +00:00
Frank M. Kromann d589e61204 Make sure files are stored in the right directory 2004-11-10 20:12:42 +00:00
Wez Furlong be4778b87e Fix leaking handle.
Thanks to ilya77 at gmail dot com
2004-11-10 19:47:15 +00:00
Marcus Boerger a59551d771 - Add new tests 2004-11-10 19:22:26 +00:00
Ard Biesheuvel bb5ce07f8c Fixed return value of ibase_execute() 2004-11-10 11:21:50 +00:00
e52d178674 ChangeLog update 2004-11-10 01:49:49 +00:00
Ilia Alshanetsky 8992aa0bcf Fixed possible overflow. 2004-11-10 01:43:04 +00:00
Andrei Zmievski 44468214b5 Revert inadvertent commit. 2004-11-09 20:59:02 +00:00
Andrei Zmievski c2f8c1a79b .dylib extension are Mach-O shared libraries that meant for linking
against. Loadable modules (aka bundles) can have any extension, so we
should probably stick with .so

http://fink.sourceforge.net/doc/porting/shared.php?phpLang=en#lib-and-mod
2004-11-09 20:58:24 +00:00
Joe Orton 20f63ecb7a Fix --with-recode since PHP_YAZ is never defined. 2004-11-09 16:11:13 +00:00
Joe Orton 0f858fc744 Make the "rounding fuzz" check work again with gcc 3.3 and later,
fixing the bug24142 test.
2004-11-09 15:58:16 +00:00
Frank M. Kromann 1d04952b1d Fix typo in man page. Bug #30727. Patch by Jakub Vrana 2004-11-09 15:05:20 +00:00
Dmitry Stogov 9c5661f05d Fixed bug #29211 (SoapClient doesn't request wsdl through proxy). (Rob) 2004-11-09 08:13:35 +00:00
d61a7f1207 ChangeLog update 2004-11-09 01:47:08 +00:00
Ilia Alshanetsky 500690f235 Fixed crash inside cpdf_setdash() if called before page init. 2004-11-09 00:44:12 +00:00
Marcus Boerger 31165806f8 - Simplify construction of RecursiveIteratorIterator 2004-11-08 13:44:34 +00:00
Marcus Boerger 118d5a7d5b - Fix constructors
- This fixes exceptions in spl
2004-11-08 13:42:53 +00:00
Ilia Alshanetsky cb16f5e815 Fixed possible crash on fstat() failure. 2004-11-08 04:54:27 +00:00
890afc455c ChangeLog update 2004-11-06 01:51:41 +00:00
808243230b ChangeLog update 2004-11-05 01:36:27 +00:00
Ilia Alshanetsky 92a641e5e7 Simplify and cleanup code. 2004-11-05 00:05:55 +00:00
Marcus Boerger 4b76d82fe3 - Add new test 2004-11-04 22:07:18 +00:00
Marcus Boerger 28ced40c63 Bug #30627 2004-11-04 20:13:30 +00:00
Dmitry Stogov 75c2a2e527 Fixed bug #30685 (Malformed SOAPClient http header reequest). 2004-11-04 15:30:28 +00:00
Edin Kadribasic d2b5b62af5 MySQL is releasing client libraries that compile out of the box
with mysqli extension, so there is no need for a specially compiled
client library anymore.
2004-11-04 02:41:40 +00:00
Edin Kadribasic 34e4dae95c Added zend_strtod.c to the new build 2004-11-04 02:06:04 +00:00
Edin Kadribasic 9c754364a6 Added zend_strtod.* to the build 2004-11-04 02:05:36 +00:00
Edin Kadribasic 5675c50dc2 Make zend_strtod compile on windows 2004-11-04 02:04:39 +00:00
adfebe8c6f ChangeLog update 2004-11-04 01:32:26 +00:00
Moriyoshi Koizumi 47dec40bd5 - Add entry for zend_strtod.c in belief that this is still active. 2004-11-04 00:13:08 +00:00
Derick Rethans 59651c4e58 - Fixed bug #30630: Added a BSD based strtod function that is
locale-independent. (PHP part)
2004-11-03 23:36:51 +00:00
Moriyoshi Koizumi dbf2c8abd5 - Don't show grep outputs 2004-11-03 23:25:33 +00:00
Derick Rethans e612284ea4 - Fixed bug #30630: Added a BSD based strtod function that is
locale-independent.
2004-11-03 23:13:32 +00:00
Moriyoshi Koizumi ae78d7d4bf - Checks for Darwin'ish systems that uses Mach-O, which apparently doesn't
support weak symbol aliasing at this time.
2004-11-03 23:05:18 +00:00
Ilia Alshanetsky 9a9815a123 emalloc() failures are handled by zend engine. 2004-11-03 22:17:45 +00:00
Marcus Boerger fcbd8c4f99 - Trying to invoke function not methot here 2004-11-03 21:18:44 +00:00
Marcus Boerger 63b288c464 - Fix invokeargs() with static methods 2004-11-03 21:11:48 +00:00
Joe Orton 2685ca935f Update extensions to use /path/to/$PHP_LIBDIR rather than /path/to/lib
to support multi-ABI platforms.
2004-11-03 14:32:52 +00:00
Joe Orton 557cda47a0 Core changes to support multi-ABI platforms with libraries in
/usr/lib64 rather than /usr/lib.

* configure.in: Add --with-libdir flag; define PHP_LIBDIR.

* acinclude.m4 (PHP_REMOVE_USR_LIB, PHP_RUNPATH_SWITCH,
PHP_ADD_LIBPATH): Check for /usr/$PHP_LIBDIR rather than /usr/lib.
(PHP_SETUP_OPENSSL, PHP_SETUP_ICONV): Use /path/to/$PHP_LIBDIR in
place of /path/to/lib.
2004-11-03 14:07:09 +00:00
Joe Orton ee39ec7d0a Remove unused variable. 2004-11-03 13:12:41 +00:00
Joe Orton 2469701b87 Fix extraction of httpd version if httpd is linked against -lefence. 2004-11-03 13:04:10 +00:00
Dmitry Stogov 9fb0e11de5 Fixed "isset() and the new VM" bug. 2004-11-03 07:11:49 +00:00
Antony Dovgal b5c1040240 fix build 2004-11-03 06:22:08 +00:00
e16f0c6996 ChangeLog update 2004-11-03 01:38:35 +00:00
Frank M. Kromann 6a15a50d35 oops missed a couple!
Add termination block to function table. This will allow the engine to stop registreting functions at the end.
This fixes the - duplicate name - warning
2004-11-03 01:20:16 +00:00
Frank M. Kromann 93da44811e Add termination block to function table. This will allow the engine to stop registreting functions at the end.
This fixes the - duplicate name - warning
2004-11-03 01:16:10 +00:00
Andrey Hristov 494d665955 make sleep() return it's return value when possible
#on some *nix systems sleep() is implemented with SIGALRM. When SIGALRM
#interrupts sleep() it returns the number of seconds that has to be slept
#till the number of seconds wanted by the script. Sleep() on Windows is
# void.
2004-11-02 17:03:20 +00:00
Ilia Alshanetsky 8091bfb84c MFB: Fixed bug #30658 (Ensure that temporary files created by GD are removed). 2004-11-02 16:41:41 +00:00
Sebastian Bergmann 9a92e31cdd Patch by Joe Orton <jorton@redhat.com>. 2004-11-02 13:10:37 +00:00
4a3f24e0e0 ChangeLog update 2004-11-02 01:50:23 +00:00
Ilia Alshanetsky 5f9d72c431 Fixed open_basedir & safe_mode bypass inside readlink() function. 2004-11-02 00:37:32 +00:00
Marcus Boerger e1dfbfc695 - Don't call beginChildren/endChildren if they don't do anything 2004-11-01 23:16:43 +00:00
Marcus Boerger 533e39ecf7 - Cache function lookup 2004-11-01 23:02:10 +00:00
Marcus Boerger 3b7e24cab2 - Add RecursiveIteratorIterator::beginChildren(), endChildren() 2004-11-01 22:54:12 +00:00
Marcus Boerger 36a9455a48 - Update examples 2004-11-01 22:31:11 +00:00
Marcus Boerger c18e248e60 - Remove doubled definition 2004-11-01 22:28:59 +00:00
Marcus Boerger b0c2af58f7 - Add some comment 2004-11-01 21:06:42 +00:00
Marcus Boerger 2ce7bcd742 - Allow direct access to spl class entries (SPL cannot be build shared) 2004-11-01 20:57:23 +00:00
Marcus Boerger 4dbf6a530d - Update docu 2004-11-01 18:11:39 +00:00
Marcus Boerger 07ed0872fb - Update docu 2004-11-01 18:01:06 +00:00
Marcus Boerger bd40510b62 - Two new exceptions
- Make use of new exception classes
2004-11-01 17:39:59 +00:00
Marcus Boerger 623f564abc - Fix macro usage 2004-11-01 17:26:15 +00:00
Marcus Boerger cae8eeba8d - Update docu 2004-11-01 17:05:45 +00:00
Marcus Boerger 638b0515b3 - Update docu 2004-11-01 16:31:19 +00:00
Marcus Boerger fe1909b591 - Implement basic exception classes 2004-11-01 15:50:25 +00:00
Marcus Boerger db47e478c5 - Use new way for global variables
- Cache class lookup
2004-11-01 12:09:46 +00:00
Marcus Boerger 8e3a8b1e8e - Add interface Countable (PECL #30113) 2004-11-01 10:45:54 +00:00
Georg Richter b557bdb665 added multi resultset support in mysql_connect 2004-11-01 09:53:16 +00:00
Georg Richter b8863135a2 Fixed tests for empty dates (see http://bugs.mysql.com/?id=6058)
Fixed memleak in mysqli_stmt_bind_result
Fixed error handling for mysqli_multi_query
2004-11-01 07:19:26 +00:00
Ilia Alshanetsky 5b95dc5faf MFB: Fixed bug #30613 (Prevent infinite recursion in url redirection). 2004-11-01 04:55:01 +00:00
8ee7205c78 ChangeLog update 2004-11-01 01:55:54 +00:00
Marcus Boerger e0196d11a4 - Do not autoload if require does the trick 2004-11-01 01:29:06 +00:00
Marcus Boerger 846666109b - Update 2004-11-01 00:33:41 +00:00
Marcus Boerger b9470609ad - Minor fixes
- Implement AppendIterator in C
2004-11-01 00:26:59 +00:00
Marcus Boerger 9626e9859a - Implement EmptyIterator in C 2004-10-31 20:59:39 +00:00
Marcus Boerger b87f16bfbe - Update docu 2004-10-31 19:51:34 +00:00
Marcus Boerger de3a8ea3e1 - Implement InfiniteIterator in C 2004-10-31 19:49:18 +00:00
Marcus Boerger 081dac3026 - Update docu 2004-10-31 19:05:37 +00:00
Marcus Boerger a872cb0d8d - Aggregate inner iterator for RecursiveIteratorIterator 2004-10-31 19:05:19 +00:00
Marcus Boerger 90012aa3cc - Implement classes IteratorIterator and NoRewindIterator in C 2004-10-31 18:43:00 +00:00
Marcus Boerger 6166a4a49d - Update 2004-10-31 15:36:08 +00:00
Marcus Boerger 41b87ab486 - Add ReflectionFunction::invokeArgs(array)
- Add ReflectionMethod::invokeArgs(obj, array)
2004-10-31 15:30:53 +00:00
Sebastian Bergmann e1a941b486 Invokation -> Invocation 2004-10-31 10:19:53 +00:00
d64c25ce2e ChangeLog update 2004-10-31 00:52:50 +00:00
Marcus Boerger 4b10a2562a Bump version (as discussed with Andi) 2004-10-30 22:56:59 +00:00
Marcus Boerger 9d7cba9db0 - Be consistent and use names as keys (found by johannes) 2004-10-30 19:53:25 +00:00
Marcus Boerger 260fb777e2 - Bump API version 2004-10-30 19:27:42 +00:00
Marcus Boerger 0e6d7d652e - Update to new API 2004-10-30 19:14:05 +00:00
Marcus Boerger 861bad634a - Fix inner iterator aggregation 2004-10-30 19:12:14 +00:00
Marcus Boerger c5a9a5a284 - Change zend_object_handlers->get_method() to allow aggregation for internal classes 2004-10-30 19:11:37 +00:00
Marcus Boerger 9dcce367e0 WS (ups) 2004-10-30 14:34:43 +00:00
Marcus Boerger e2ba10a727 strip trailing (back)slash from path 2004-10-30 14:33:25 +00:00
Marcus Boerger 4fd5931e70 - New architecture needs one more dependency 2004-10-30 13:48:29 +00:00
Marcus Boerger 8bf02ee681 - Fix protos 2004-10-30 10:18:10 +00:00
Marcus Boerger 7c4760d421 - Fix proto 2004-10-30 10:04:37 +00:00
5a54f79283 ChangeLog update 2004-10-30 00:46:12 +00:00
Marcus Boerger b67ca452c3 - Update docu 2004-10-29 20:58:58 +00:00
Marcus Boerger 208a97a221 - Implement OuterIterator in C 2004-10-29 20:12:57 +00:00
Marcus Boerger 85cae78988 - Abstract no longer valid here 2004-10-29 19:50:51 +00:00
Andi Gutmans b86cdbbddb - For Ilia:
- MFH: Fixed bug #30572 (crash when comparing SimpleXML attribute to a boolean).
- Hope this works well. I will MFH tomorrow if no one complains.
2004-10-29 00:55:11 +00:00
11e64bafbc ChangeLog update 2004-10-29 00:48:12 +00:00
Andi Gutmans 939a0f136e - [PATCH] Bug fix for #29770, but for PHP 4.3.9 (Vladimir Zidar) 2004-10-29 00:37:22 +00:00
Ilia Alshanetsky 321cd10977 Simplify code. 2004-10-28 22:22:22 +00:00
Marcus Boerger dbd717591a - TSRM Fix 2004-10-28 07:47:46 +00:00
Dmitry Stogov 64baaf8f7f --without-lines changed to --with-lines 2004-10-28 06:48:59 +00:00
Antony Dovgal aa35b11afe fix Win32 & Netware build 2004-10-28 05:05:20 +00:00
Andi Gutmans 72558f2673 - Fix typo 2004-10-28 01:19:33 +00:00
4d5fd77412 ChangeLog update 2004-10-28 00:35:35 +00:00
Ilia Alshanetsky 23344ea427 Simplify and cleanup code. 2004-10-27 23:12:05 +00:00
Andi Gutmans 657e5d0fbc - Oops missed this one 2004-10-27 20:13:59 +00:00
Andi Gutmans a4dff681c8 - Revert Fixed bug #30228 (crash when comparing SimpleXML attribute to a boolean).
- Need to discuss where the real problem is.
2004-10-27 18:15:03 +00:00
Andi Gutmans 47a4a96d23 - Tiny fixes 2004-10-27 18:08:56 +00:00
Andi Gutmans a904c1dabc - Improve comments, docs, code... 2004-10-27 17:58:46 +00:00
Antony Dovgal ceacc834fb fix bug #30388 (rename across filesystems loses ownership and permission info) 2004-10-27 11:58:49 +00:00
Wez Furlong c8cc96e6fe Fix possible crash; patch by Kamesh Jayachandran 2004-10-27 11:07:26 +00:00
Wez Furlong 35b00ffdab Synopsis:
PDOStatement::setFetchMode()
	reset default fetch() mode for a statement to PDO_FETCH_BOTH

PDOStatement::setFetchMode(PDO_FETCH_NUM)
PDOStatement::setFetchMode(PDO_FETCH_ASSOC)
PDOStatement::setFetchMode(PDO_FETCH_BOTH)
PDOStatement::setFetchMode(PDO_FETCH_OBJ)
	set default fetch() mode for a statement.

PDOStatement::setFetchMode(PDO_FETCH_COLUMN, int colno)
	set default fetch() mode to retrieve colno-th column on each fetch() call.

PDOStatement::setFetchMode(PDO_FETCH_CLASS, string classname [, array ctor args])
	set default fetch() mode to create an instance of classname,
	calling it's ctor, passing the optional ctor args.
	The names of the columns in the result set will be used as property names on
	the object instance.  PPP rules apply.

	[NOTE: calling ctor is not yet implemented]
	[TODO: this might crash PHP for persistent PDO handles]

PDOStatement::setFetchMode(PDO_FETCH_INTO, object obj)
	Similar to PDO_FETCH_CLASS, except that each iteration will update the
	supplied object properties.

	[TODO: this might crash PHP for persistent PDO handles]

The default fetch() mode is used when no parameters are passed to
PDOStatement::fetch().  When using a statement in an iterator context,
PDOStatement::fetch() is called implicitly on each iteration.

object PDO::queryAndIterate(string sql, <PDOStatement::setFetchMode args>)
	This is semantically equivalent to:

	$stmt = $pdo->prepare($sql);
	$stmt->execute();
	$stmt->setFetchMode($args);
	return $stmt;


Example/Intended usage:

/* fetch an array with numeric and string keys */
foreach ($pdo->queryAndIterate("select NAME, VALUE from test") as $row) {
	debug_zval_dump($row);
}

/* fetch the value of column 1 into $row on each iteration */
foreach ($pdo->queryAndIterate("select NAME, VALUE from test",
		PDO_FETCH_COLUMN, 1) as $row) {
	debug_zval_dump($row); // string(3) "foo"
}

/* create a new instance of class Foo on each iteration */
foreach ($pdo->queryAndIterate("select NAME, VALUE from test",
		PDO_FETCH_CLASS, 'Foo') as $row) {
	debug_zval_dump($row);
/*
	Object(Foo)#4 (2) refcount(2){
		["NAME"]=>
  		string(12) "foo220051429" refcount(2)
		["VALUE"]=>
		string(12) "bar789825748" refcount(2)
	}
*/
}

etc.
2004-10-27 10:26:27 +00:00
dc8078b191 ChangeLog update 2004-10-27 00:36:13 +00:00
Andi Gutmans 6a16f3eb1d - Patch from Andrey Hristov:
I have cooked a small patch which allows is_subclass_of() the accept
not only an object as first parameter but a string as well. When string
is passed the function checks whether the class specified is subclass of
the second parameter
class a{}
class b{} extends a{}
is_subclass_of("a", "a") //false
is_subclass_of("b", "a") //true
currently only objects are allowed as first parameter
2004-10-26 23:25:05 +00:00
Ilia Alshanetsky bb928e70a7 Fixed bug #30228 (crash when comparing SimpleXML attribute to a boolean). 2004-10-26 22:38:34 +00:00
Wez Furlong 12a678ca6a *cough* de-bogusify driver registration.
(what was I smoking??)
2004-10-26 22:00:15 +00:00
Wez Furlong 0a4127a610 Fix for Bug #29418 (double free when openssl_csr_new fails).
Also hook up MSHUTDOWN function which appears to have never been enabled.

Patch by Kamesh Jayachandran
2004-10-26 09:24:07 +00:00
506c2e2e5b ChangeLog update 2004-10-26 00:48:48 +00:00
Ilia Alshanetsky 852170d740 Merge gettimeofday() based code to prevent duplication. 2004-10-25 13:28:56 +00:00
bbebe4bc3f ChangeLog update 2004-10-25 00:36:45 +00:00
Ilia Alshanetsky 0802b1286d Make request start time be available via $_SERVER['REQUEST_TIME'].
# As discussed on internals.
2004-10-24 17:41:13 +00:00
aeac86458c ChangeLog update 2004-10-24 00:36:26 +00:00
Hartmut Holzgraefe 7fc2e6ca5b Make ldap_parse_reference() available on Windows (Bug #29492) 2004-10-23 23:03:52 +00:00
Joe Orton 1f364c1ee1 - always convert apr_time_t to time_t using apr_time_sec() to be future-proof.
- print apr_time_t values using APR_TIME_T and apr_snprintf.
- remove redundant add_property_long calls.
2004-10-23 13:48:05 +00:00
Joe Orton 516a19f1ec Fix the get_request_time implementation for the 2.0 SAPIs to return
seconds not microseconds and to use TSRM stuff correctly.
2004-10-23 12:56:20 +00:00
Antony Dovgal 07f84de680 commit fixes by <mikael dot suvi at trigger dot ee>
(segfaults under heavy load)
2004-10-23 09:32:44 +00:00
Andi Gutmans f4be622502 - Add missing file 2004-10-23 07:30:18 +00:00
4727b2dd11 ChangeLog update 2004-10-23 00:35:20 +00:00
Andi Gutmans e86edc5f1b - Nuke another two files 2004-10-22 22:01:34 +00:00
Andi Gutmans e50a6fde11 - Commit new VM
- Old one is tagged as PRE_NEW_VM_GEN_PATCH
- Still doing work so more commits to come. Don't complain (yet) :)
2004-10-22 21:42:14 +00:00
Rob Richards b20d2ba86c fix windows build 2004-10-22 13:11:33 +00:00
Edin Kadribasic 1fc379a76c Revert Linux LFS patch 2004-10-22 10:46:42 +00:00
Andi Gutmans fd92acac4f - Fix crash (MFB PHP5_0) 2004-10-22 01:55:39 +00:00
7889c7b97e ChangeLog update 2004-10-22 00:35:53 +00:00
Edin Kadribasic 7f7ce47553 MFB: Linux LFS support, fixes 27792 2004-10-21 23:50:28 +00:00
Ilia Alshanetsky 4b947b0525 Allow gettimeofday() return a float if optional argument is specified. 2004-10-21 21:20:52 +00:00
54aa881075 ChangeLog update 2004-10-21 00:37:45 +00:00
Andi Gutmans 086e951387 - Fix test 2004-10-20 22:55:57 +00:00
Ilia Alshanetsky 0818faee7f Slight optimization in str_split() when split length is the same or greater
then the string length.
2004-10-20 22:44:43 +00:00
Andi Gutmans 14fac3dd02 - One more test fix 2004-10-20 22:36:32 +00:00
Andi Gutmans 14e547516c - Fix interface tests. Interfaces should not use access modifiers 2004-10-20 22:13:44 +00:00
Andi Gutmans abd42847b1 - If object handles are equal then save the comparison of properties in
- the == operator.
2004-10-20 17:57:28 +00:00
Stanislav Malyshev f799da0a21 MF4: fix double bailout in HEAD when output is attempted from shutdown 2004-10-20 15:31:06 +00:00
Joe Orton 1ef6c7add1 Fix case where php_handle_aborted_connection was called outside a
try/end_try block (#25570).
2004-10-20 09:28:47 +00:00
ed6025327c ChangeLog update 2004-10-20 00:37:11 +00:00
Ilia Alshanetsky c5e2e02b0a Simplify code. 2004-10-19 22:25:15 +00:00
Anantha Kesari H Y 2559c94740 As NetWare LibC don't have the implementation of chown and chgrp there is no point in exposing this function to PHP 2004-10-19 08:21:24 +00:00
Georg Richter f4f84ac9ab Minor fix for mysqli_connect: checking socket_len for NULL Values
(Thx to Paul DuBois)
2004-10-19 05:14:09 +00:00
d2f6707429 ChangeLog update 2004-10-19 00:36:32 +00:00
Ilia Alshanetsky 8c8fba0841 Fixed bug #30475 (curl_getinfo() may crash in some situations). 2004-10-18 22:41:24 +00:00
Antony Dovgal e865bc2bc5 fix bug #30442 ( segmentation fault when parsing ?getvariable[][ ) 2004-10-18 15:05:06 +00:00
Anantha Kesari H Y d608f1a0e0 including zend_compile.h for NetWare as NetWare uses MetroWerks Code warrior compiler which does not allow declarations of following kind before defining the types.
extern struct _zend_arg_info first_arg_force_ref[2];
2004-10-18 12:06:57 +00:00
Anantha Kesari H Y 5bf2be3461 removing inclusion of platform specific config files as they are already included from php_scandir.h 2004-10-18 10:42:16 +00:00
Anantha Kesari H Y 6021286c5d removing php_output_activate Fix for bug#30397 2004-10-18 10:26:45 +00:00
Derick Rethans 3b2879b3c1 - Revert patch until it is discussed 2004-10-18 06:04:02 +00:00
c94cc82ebb ChangeLog update 2004-10-18 00:36:09 +00:00
5573922f0f ChangeLog update 2004-10-17 00:35:52 +00:00
Andi Gutmans f2c7379ca7 - One more test (WS) 2004-10-16 23:17:58 +00:00
Andi Gutmans 30ff6d2836 - WS fix to test commit 2004-10-16 23:16:50 +00:00
Anantha Kesari H Y d5eb399b5e Fix for Bug #30397 2004-10-16 10:32:42 +00:00
Anantha Kesari H Y c3dbe168fb Fix for 30457 2004-10-16 09:28:45 +00:00
82dfe6f07e ChangeLog update 2004-10-15 00:36:38 +00:00
Ilia Alshanetsky 7d18ca4c93 Added sqlite_fetch_column_types() 3rd argument for arrays. 2004-10-14 23:19:38 +00:00
Marcus Boerger b52ab41ca7 - Allow to omit object/classname in get_parent_class() which makes it
compatible with the signature and behavior of get_class()
2004-10-14 07:26:04 +00:00
d06579e714 ChangeLog update 2004-10-14 00:49:13 +00:00
Ilia Alshanetsky 51ffc01776 Added optional offset parameter to file_get_contents(). 2004-10-13 23:26:29 +00:00
Andi Gutmans 3e382a7d06 - Don't allow access modifiers in interfaces. Explicitly stating public
- should also be disallowed but we don't have a way to detect it today.
2004-10-13 01:04:08 +00:00
cce41cb736 ChangeLog update 2004-10-13 00:37:00 +00:00
Ilia Alshanetsky 2390ca71f1 MFH: Added optional offset parameter to stream_get_contents(). 2004-10-12 23:25:24 +00:00
Marcus Boerger 0c40e2a06e Bug #30381 Strange results with get_class_vars() 2004-10-12 22:19:43 +00:00
Marcus Boerger a4c387508e - Fix visibility in get_class_vars() and get_class_methods()
# Still there is a problem/error in the executor, i'll have a look
2004-10-12 11:01:08 +00:00
Marcus Boerger 0f9b3de234 - Fix set_exception_handler
# unsettign with '' never worked so we use NULL now which is much better
# because it matches the the return NULL in case no handler was defined
# and can't lead to problems with wrong string operations.
2004-10-12 09:13:20 +00:00
04f75f2357 ChangeLog update 2004-10-12 00:35:59 +00:00
Ilia Alshanetsky 5c04e39383 Fixed bug #30362 (stream_get_line() not handling end string correctly). 2004-10-11 18:31:49 +00:00
Ilia Alshanetsky f8a4d8a4d5 Fixed bug #30375 (cal_info() does not work without a parameter). 2004-10-11 06:39:41 +00:00
Wez Furlong b7182e85c7 Fix the return value check too 2004-10-11 01:40:41 +00:00
Wez Furlong 7cb4e769ff check the correct flag for async connect 2004-10-11 01:30:19 +00:00
7f9f359105 ChangeLog update 2004-10-11 00:36:26 +00:00
Sebastian Bergmann 53fa8699fc Add *.gcda and *.gcno (from gcc -fprofile-{use|generate}) to .cvsignore. 2004-10-10 16:10:38 +00:00
Antony Dovgal 3a5822585e fix possible segfault 2004-10-10 15:04:21 +00:00
Antony Dovgal b0b4b6eff2 prevent deadlocks when re-using previously established persistent connection 2004-10-10 10:54:26 +00:00
f26d0f234f ChangeLog update 2004-10-10 00:39:53 +00:00
Wez Furlong 9bffcfb407 Fix crash bug.
# how the f*** did this work in the first place!?
2004-10-09 13:08:16 +00:00
Moriyoshi Koizumi a86095fe07 - Fix test. I have no idea why the test was left this way. 2004-10-09 08:16:29 +00:00
Wez Furlong b3d9c5bea6 Improve .Net support; this should reduce "failed to init .net" errors.
Improve error reporting while we're at it too.
2004-10-09 04:39:58 +00:00
e38fe93975 ChangeLog update 2004-10-09 00:36:00 +00:00
Marcus Boerger 2ffbbb1588 Revert for now 2004-10-08 22:19:03 +00:00
Marcus Boerger f71644b480 - Revert automatic pass arg_info
# We need to find a better solutions to prevent havy extension writer probs
2004-10-08 22:17:32 +00:00
Marcus Boerger 1546a578ec - Make RecursiveFilterIterator work by using reflection
- Add docu
- Add new example
2004-10-08 21:49:39 +00:00
Marcus Boerger 1a7051f913 Add new example 2004-10-08 21:17:53 +00:00
Marcus Boerger 5832635b68 Use OuterIterator to simplify conversion to C code 2004-10-08 21:12:15 +00:00
Marcus Boerger f0c9f998d3 speling 2004-10-08 19:02:00 +00:00
Andi Gutmans f9aef18c86 - Fix BC break with default in switch() having to be at the end. 2004-10-08 18:50:00 +00:00
Rob Richards 1aa7fda66b Fix bug #2482 (xmlwriter_start_document chrashes apache)
Fix other function parameters
prep for release
2004-10-08 14:54:15 +00:00
Christian Stocker c118443546 this NEWS entry should have gone into PHP_5_0 branch. sorry 2004-10-08 14:51:55 +00:00
Moriyoshi Koizumi 4f247de89b - Sync with the latest codebase (fixes bug #28220). 2004-10-08 14:40:46 +00:00
Christian Stocker bd99d77bf6 - Fixed bug #27183 (Userland stream wrapper segfaults on stream_write)
Was applied to PHP 4 ages ago, but not to PHP 5 branch
2004-10-08 14:40:11 +00:00
Moriyoshi Koizumi 756ee85bec - Avoid doubly symbol definition. Codes in the removed file has never been
used anywhere.
2004-10-08 14:24:06 +00:00
Anantha Kesari H Y 315e58f2f6 As NetWare LibC has optind and optarg macros defined in unistd.h our local variables were getting mistakenly preprocessed so undeffing optind and optarg 2004-10-08 12:22:35 +00:00
Anantha Kesari H Y b140c80396 removed redundant CLIB_STAT_PATCH checks. defined the IS_ABSOLUTE_PATH macros to suit the NetWare filesystem convention 2004-10-08 09:48:20 +00:00
Anantha Kesari H Y a980f7babe removed redundant NEW_LIBC checks and added the code to recognize the file naming convention in NetWare(supports Windows based drive names like sys: data: and unix like / (sys: being root) 2004-10-08 08:59:11 +00:00
Anantha Kesari H Y 7ab517bcbf explicitly including sys/select.h as NetWare LibC sys/types.h does not include sys/select.h implicitly as other LibC 2004-10-08 07:43:41 +00:00
df06803187 ChangeLog update 2004-10-08 00:36:09 +00:00
Ilia Alshanetsky 2476198086 Fixed bug #30356 (str_ireplace() does not work on all strings). 2004-10-07 23:10:35 +00:00
Marcus Boerger 6349f46e38 - Added iterator_to_array() and iterator_count() 2004-10-07 23:08:19 +00:00
Anantha Kesari H Y 940c5b393d removed unwanted NEW_LIBC checks for NETWARE and removing custom mktemp.h as LibC itself supports mkstemp functionality 2004-10-07 12:22:16 +00:00
Rob Richards 7dced12c32 add DOMDocument xmlEncoding, xmlStandalone, xmlVersion (spec name changes)
add DOMText isElementContentWhitespace (spec name change)
 - old props/method kept for BC.
 - spec names changed when Level 3 went from Draft to Recommendation
nuke some unused code
2004-10-07 11:40:20 +00:00
Rob Richards b0ffa2497b fix segfault in appendXML due to libxml bug 2004-10-07 10:00:39 +00:00
d8cd7e848d ChangeLog update 2004-10-07 00:49:15 +00:00
Ilia Alshanetsky 1594170f85 Fixed compiler warning. 2004-10-06 23:56:29 +00:00
Marcus Boerger ee40e4dc90 Style... 2004-10-06 21:31:00 +00:00
Marcus Boerger ca6558a406 - Fix Bug #30344 2004-10-06 21:23:18 +00:00
Anantha Kesari H Y 1d7a8a9e69 removed unwanted NEW_LIBC checks 2004-10-06 13:22:21 +00:00
f63340acba ChangeLog update 2004-10-06 00:35:43 +00:00
Andi Gutmans a952a1bf76 - If we're going to mention the low level stuff then also give credit
- to Thies and Sterling
2004-10-06 00:01:38 +00:00
Ilia Alshanetsky e35adfe522 Fixed bug #30027 (Possible crash inside ftp_get()).
# Patch by cfield at affinitysolutions dot com
2004-10-05 23:53:09 +00:00
Marcus Boerger d9ad917fe7 Add more improvements done so far 2004-10-05 18:58:26 +00:00
Marcus Boerger 0358d81ecf Update 2004-10-05 18:40:06 +00:00
Marcus Boerger 476013cebd - Use ZEND_ARG_SEND_AUTOMATIC for several array functions 2004-10-05 18:37:17 +00:00
Marcus Boerger f916d603ef - Add arginfo ZEND_ARG_SEND_AUTOMATIC which lets the compiler automatically
determine whether pass by ref is possible or pass by value is needed.
# This is usefull when functions take array or string parameters as
# expressions. In such a case force by ref is not applicable and the
# executor would copy the variable unnecessarily as soon as it is at least
# once referenced.
2004-10-05 18:36:46 +00:00
Dmitry Stogov fb6072e10d Fixed bug #30175 (SOAP results aren't parsed correctly) 2004-10-05 16:00:40 +00:00
Dmitry Stogov 6414c8606a Test files are fixed. 2004-10-05 13:29:43 +00:00
Dmitry Stogov 0f99c02070 Test files are fixed. 2004-10-05 13:21:06 +00:00
Dmitry Stogov 3d383e45dc Fixed unset() bug that was introduced with CV optimization patch 2004-10-05 09:09:18 +00:00
Dmitry Stogov 3f35c6a6cc Added test cases for CV optimization patch 2004-10-05 06:53:39 +00:00
Andi Gutmans 216853c0db - Apply realpath() cache patch. We don't use it if we're in safe_mode and
- friends (which are quite slow anyway).
- If it proves to be stable I'll remove the #ifdef's in a few weeks.
2004-10-05 00:42:25 +00:00
01fda447c5 ChangeLog update 2004-10-05 00:35:08 +00:00
Ilia Alshanetsky 5316f7bf25 Fixed bug #30281 (Prevent non-wbmp images from being detected as such). 2004-10-04 20:42:30 +00:00
Andi Gutmans 11bcaedfc8 - Rename delete_global_variable() to zend_delete_global_variable() 2004-10-04 20:17:06 +00:00
Andi Gutmans db507dd153 - Commit the variable fetch optimization.
- Extensions which delete global variables need to use new special function
- delete_global_variable() (I'm about to rename it) to remove them.
- Will post to internals@ or via commit messages if there's anything else.
2004-10-04 19:54:35 +00:00
Marcus Boerger bb77132391 - Add new test 2004-10-04 17:53:55 +00:00
Marcus Boerger dc2d342b24 - Add new test 2004-10-04 17:30:53 +00:00
Marcus Boerger 4b395a168b - Bugfix #27798 2004-10-04 08:59:29 +00:00
Marcus Boerger 3d29cd72d5 - Add new test 2004-10-04 08:58:47 +00:00
Anantha Kesari H Y 47e4f575c2 modified to 3rd argument of fcntl to FD_CLOEXEC 2004-10-04 08:52:53 +00:00
6eafaed7e8 ChangeLog update 2004-10-04 00:34:36 +00:00
Rob Richards 5f630e1935 add evaluate() method to support all xpath expressions 2004-10-03 09:55:29 +00:00
d4c7c87afb ChangeLog update 2004-10-03 00:35:29 +00:00
Marcus Boerger 1e3aa55b1e - Add new test 2004-10-02 14:22:52 +00:00
Marcus Boerger 6762c9f0e0 - Add new test 2004-10-02 14:13:35 +00:00
4bd7b33e1b ChangeLog update 2004-10-02 00:35:13 +00:00
Marcus Boerger 2f5985335b - Add makefile fragment which simplifies working on the executer 2004-10-01 22:32:15 +00:00
Rasmus Lerdorf 3d85a5d876 Slightly different fix for HEAD for the ming output method BC breaking
change.
2004-10-01 19:28:45 +00:00
Sebastian Bergmann b4a5314dc3 Fugbix typo. 2004-10-01 10:35:26 +00:00
1507a660b1 ChangeLog update 2004-10-01 00:34:08 +00:00
Andi Gutmans 1a4bfd6561 - Small improvement to DVAL_TO_ZVAL macro 2004-09-30 18:36:03 +00:00
Anantha Kesari H Y ee43ab18b0 enabling few functionalities as the LibC starts supporting them 2004-09-30 15:55:18 +00:00
Anantha Kesari H Y 93be400da9 Including config.nw.h file for NetWare 2004-09-30 14:46:03 +00:00
Anantha Kesari H Y 142e92bb70 NetWare specific stat structure access incorporated 2004-09-30 14:31:30 +00:00
Anantha Kesari H Y ccbeace1ff handled NetWare F_SETFD and stat differences 2004-09-30 14:23:51 +00:00
Antony Dovgal 0ea23249da fix error message 2004-09-30 14:20:02 +00:00
Antony Dovgal fcd702efe4 fix segfault when using unknown/unsupported save_handler and/or serialize_handler (bug #30282) 2004-09-30 12:19:59 +00:00
Marcus Boerger 9d28fc6643 - CS: Use PHP_* instead of ZEND_* macros 2004-09-30 08:04:29 +00:00
Marcus Boerger 854b3ebdc3 - Add missing macro 2004-09-30 08:03:38 +00:00
Ilia Alshanetsky c7cd1d708f Fixed bug #30276 (Possible crash in ctype_digit on large numbers). 2004-09-30 01:22:56 +00:00
464ebb7843 ChangeLog update 2004-09-30 00:41:24 +00:00
Marcus Boerger aa247a3276 - MFB (synch correctly not only for one problem) 2004-09-29 20:57:07 +00:00
Marcus Boerger 1619178f5e - Speling 2004-09-29 20:27:36 +00:00
Marcus Boerger e109ab5492 - Fix docu 2004-09-29 20:25:28 +00:00
Marcus Boerger 0ec6eb7aad - Refix the fix
# This somehow got lost and was then readded by Andi in 1.258 at the wrong
# position. Obviously we need to separate the argument first and convert it
# afterwards as done in 5.0.*.
2004-09-29 20:24:35 +00:00
Marcus Boerger 35e78f43a1 - Add missing --SKIPIF-- 2004-09-29 20:10:12 +00:00
Marcus Boerger d748f8ecf2 - Fix tests (atm preg_match() is wrong) 2004-09-29 20:09:52 +00:00
Marcus Boerger c9d32d9b71 - Update test 2004-09-29 19:36:30 +00:00
Andi Gutmans 5efcdba2d0 - Move bench.php to Zend/ 2004-09-29 17:08:46 +00:00
Anantha Kesari H Y 379bb867cb NetWare LibC don't have search.h 2004-09-29 16:11:47 +00:00
Anantha Kesari H Y 5dbf49e314 removed unwanted NEW_LIBC checks 2004-09-29 14:42:16 +00:00
Anantha Kesari H Y 06a4be43a3 NetWare don't have uid for a file so modified the php_checkuid to return 1 for NetWAre 2004-09-29 12:35:13 +00:00
Anantha Kesari H Y b38de145ac removed unneccessary inclusion of headers for NetWare 2004-09-29 12:25:56 +00:00
Anantha Kesari H Y a93f75ce6b NETWARE has a proper stat structure Now no need of CLIB_STAT_PATCH checks 2004-09-29 10:54:56 +00:00
Anantha Kesari H Y 0903dcdcf7 removed redundant NEW_LIBC checks for NETWARE 2004-09-29 10:36:24 +00:00
Anantha Kesari H Y 7387db4366 Included select.h for NetWare 2004-09-29 10:28:17 +00:00
Anantha Kesari H Y 474c53348c removed unwanted comments, NEW_LIBC checks and NetWare specific stat structure population 2004-09-29 10:21:41 +00:00
Anantha Kesari H Y 745beb2deb removed redundant NEW_LIBC and CLIB_STAT_PATCH checks for NETWARE 2004-09-29 09:47:15 +00:00
Marcus Boerger 2f40d61bed - Fix test 2004-09-29 09:43:33 +00:00
Marcus Boerger 7133858532 - Fix test by removing corrupt --SKIPIF-- 2004-09-29 09:41:18 +00:00
Marcus Boerger 1ac9923c63 - Fix tests by removing erroneous check from --SKIPIF-- 2004-09-29 09:39:43 +00:00
Marcus Boerger 0a74684b3a - Fix tests by removing corrupt --SKIPIF-- 2004-09-29 09:36:56 +00:00
Marcus Boerger 13f3e07ff2 - Add new tests 2004-09-29 09:36:23 +00:00
Marcus Boerger a898c2dd28 Fix classnames 2004-09-29 08:55:45 +00:00
Marcus Boerger 93753e19b1 Add new test 2004-09-29 08:48:16 +00:00
Anantha Kesari H Y ec42c1432c implemented proc_open for NETWARE 2004-09-29 06:04:36 +00:00
Sterling Hughes 8f1a327edb Add strptime function. 2004-09-29 04:57:19 +00:00
f890909ac4 ChangeLog update 2004-09-29 00:34:42 +00:00
Marcus Boerger aa8da8daf1 - Fix warnign 2004-09-28 23:10:39 +00:00
Marcus Boerger e39f3f3f48 Simplify/Optmize magic method calls (__get/__set/__call/__clone/__destruct) 2004-09-28 22:55:22 +00:00
foobar 72b2d1c9ee MFB: - Fixed bug #30205 (Missing <unistd.h> in crypt() configure test). 2004-09-28 20:42:56 +00:00
Andi Gutmans 3e2b49ab5b - Return the warning until we check if we can change the type of str.len 2004-09-28 19:46:57 +00:00
Marcus Boerger b907755e3c - publish reflection_class_factory() as zend_reflection_class_factory() 2004-09-28 19:06:15 +00:00
Frank M. Kromann 81c8d3132b Fix compilation 2004-09-28 18:38:29 +00:00
Antony Dovgal 454b9659c5 fix bug #29652 (number of FD to ocius.msb is growing)
many thanks to Sergei V. Rozinov <S dot Rozinov at sibron dot ru> for testing
2004-09-28 16:59:10 +00:00
Ilia Alshanetsky 183126535c Fixed bug #30224 (Sybase date strings are sometimes not null terminated). 2004-09-28 14:07:23 +00:00
Wez Furlong ab2dead053 update ignore files 2004-09-28 09:44:56 +00:00
31902806a8 ChangeLog update 2004-09-28 00:34:17 +00:00
Marcus Boerger 3fec3a916b - Make internally used properties read-only and fix default properties 2004-09-27 22:24:57 +00:00
Marcus Boerger 0e68cf3cdb - Add new test 2004-09-27 22:23:31 +00:00
Edin Kadribasic c48f96a790 MFB: bugfix #30133 2004-09-27 22:23:11 +00:00
Andrey Hristov b76deb94a3 give credits to David 2004-09-27 22:13:36 +00:00
Marcus Boerger f775ea0ae3 - Fix memeleak 2004-09-27 22:06:10 +00:00
Marcus Boerger 8d587ce308 - Declare properties 2004-09-27 21:25:12 +00:00
Marcus Boerger 5ab692da02 - Add new test 2004-09-27 21:24:45 +00:00
Andi Gutmans 84f248761f - Document zend_vm_use_old_executor() for Derick. 2004-09-27 18:21:39 +00:00
Ilia Alshanetsky 52ee529ef4 Make test more generic.
# Thanks Marcus.
2004-09-27 17:52:25 +00:00
Ilia Alshanetsky 479af1e75d Fixed bug #30249 (Incorrect timeout check). 2004-09-27 17:30:46 +00:00
Anantha Kesari H Y 549ec65eee removed redundant NEW_LIBC checks 2004-09-27 15:55:04 +00:00
Anantha Kesari H Y 32788092da removed redundant NEW_LIBC and CLIB_STAT_PATCH checks 2004-09-27 15:37:33 +00:00
Anantha Kesari H Y 09d305c1ff removed redundant NEW_LIBC checks 2004-09-27 14:51:17 +00:00
Anantha Kesari H Y 5da74deab9 removed unwanted NEW_LIBC checks 2004-09-27 14:29:55 +00:00
Anantha Kesari H Y e12ea3c30d removed redundant NEW_LIBC check 2004-09-27 14:25:13 +00:00
Anantha Kesari H Y e510e26aa6 removed unwanted NEW_LIBC checks and comments 2004-09-27 14:19:07 +00:00
Marcus Boerger 9291a7fa98 Fix Reflection_Class to ReflectionClass in docu/messages 2004-09-27 09:11:40 +00:00
Marcus Boerger 920b706142 - Fix warning 2004-09-27 09:03:40 +00:00
Marcus Boerger 04fe8184f8 - Fix warnings 2004-09-27 09:01:18 +00:00
Marcus Boerger 16c1f0ae74 - Fix warning
# What's the reason _zvalue_value.str.len is int instead of uint/zend_uint?
2004-09-27 08:50:41 +00:00
Marcus Boerger 8e09f92917 - Fix warning 2004-09-27 08:46:12 +00:00
Marcus Boerger 4bcd155285 - Fix warnings 2004-09-27 08:43:05 +00:00
Marcus Boerger 01af2c3f73 Fix warnign 2004-09-27 08:33:11 +00:00
Andi Gutmans 4a03738225 - Use zval_ctor_func() for wrapper and update the prototype to void 2004-09-27 07:04:36 +00:00
Andi Gutmans 67fc0f2bfe - Make zval_copy_ctor() return void like dtor(). No one ever checks the
- return value which is SUCCESS always.
2004-09-27 02:29:01 +00:00
23ecf60129 ChangeLog update 2004-09-27 00:34:15 +00:00
Marcus Boerger 32a0465214 - Fix warning 2004-09-26 22:23:14 +00:00
Marcus Boerger cc7ef25e4a fix build 2004-09-26 22:20:24 +00:00
Marcus Boerger e0ec7c981e - Fix build 2004-09-26 22:19:57 +00:00
Marcus Boerger 32e478b9fc - Add fputcsv() (David Sklar) 2004-09-26 21:55:22 +00:00
Marcus Boerger 5177691e4a - Add missing .cvsignore 2004-09-26 21:51:58 +00:00
Marcus Boerger 881c2f05f5 - Earlier detection of failure (.c now) 2004-09-26 21:49:16 +00:00
Marcus Boerger abe47301c1 - Earlier detection of failure 2004-09-26 21:47:27 +00:00
Marcus Boerger ace462334e Fix TSRM build 2004-09-26 21:45:17 +00:00
Marcus Boerger 42bc4cd0ca Add new examples 2004-09-26 21:21:45 +00:00
Wez Furlong 1f08a96f5a add ignore file 2004-09-26 20:53:31 +00:00
Wez Furlong 69a91aae8e Removing clucking debug and tweak the reset call 2004-09-26 20:52:07 +00:00
Wez Furlong e7a6eca69d rough cut at mysql meta data 2004-09-26 20:47:03 +00:00
Wez Furlong 486b426947 meta data for sqlite3.
Fix repeated executes when the entire rowset has not been consumed.
2004-09-26 20:46:35 +00:00
Wez Furlong eb0cd48d60 Add rough cut at fetching meta data. 2004-09-26 20:45:44 +00:00
Andi Gutmans f17aa81edc - Apply Thies and Sterling's patch which doesn't call ctor/dtor functions
- for types which don't require it (BOOL/NULL/LONG/DOUBLE)
- Breaks serialization!!!
2004-09-26 20:03:54 +00:00
Ilia Alshanetsky d5bac133ee Return FALSE when file cannot be found.
Specify full paths to the files used for the test.
2004-09-26 19:24:18 +00:00
Ilia Alshanetsky d6501f756a fixed test output. 2004-09-26 19:12:06 +00:00
Marcus Boerger 3cdd2bcb01 - Add more tests 2004-09-26 18:28:07 +00:00
Marcus Boerger 617de19912 - Add new test (related to #30234) 2004-09-26 18:16:33 +00:00
Wez Furlong 429b37d750 compile fix from Timm 2004-09-26 13:52:09 +00:00
Wez Furlong 64f3120598 Finalize fix for #30057 2004-09-26 01:10:05 +00:00
10dd36d959 ChangeLog update 2004-09-26 00:35:24 +00:00
Wez Furlong 0c1a436917 Probable fix for Bug #30147 2004-09-25 23:13:49 +00:00
Anantha Kesari H Y cc45f504d4 removing the unwanted inclusion of headers 2004-09-25 15:39:26 +00:00
Anantha Kesari H Y b35e507884 removing unwanted comment 2004-09-25 15:36:47 +00:00
Anantha Kesari H Y 293ab565b5 removing unwanted inclusion of socket header file 2004-09-25 15:33:57 +00:00
Anantha Kesari H Y 80a4042a5c removed NEW_LIBC checks in NETWARE 2004-09-25 15:30:26 +00:00
Marcus Boerger 16f30e1951 - Fix lib substitution (rurban at x-ray dot at ) 2004-09-25 15:29:19 +00:00
Anantha Kesari H Y 7d57757a8a removed redundant NEW_LIBC checks 2004-09-25 15:26:55 +00:00
Anantha Kesari H Y 6692794433 removed redundance LIBC checks for NETWARE 2004-09-25 15:23:35 +00:00
Anantha Kesari H Y 78ecac2569 removed unwanted NEW_LIBC checks as they are no more needed for NETAWRE 2004-09-25 14:54:41 +00:00
Anantha Kesari H Y 146cb29054 removing unwanted header files getting included 2004-09-25 14:48:44 +00:00
Anantha Kesari H Y bc90ecb7e2 removed unwanted NEW_LIBC checks 2004-09-25 14:46:24 +00:00
Anantha Kesari H Y c4b57bc16b Now NetWare LibC supports proper stat structure no need of CLIB_STAT_PATCH and all such checks 2004-09-25 14:23:32 +00:00
Anantha Kesari H Y 595268403a removed the redundant NEW_LIBC checks 2004-09-25 14:19:38 +00:00
Anantha Kesari H Y 00760e1343 removed the redundant NEW_LIBC checks 2004-09-25 14:09:45 +00:00
Anantha Kesari H Y 24437ccb75 cleaned up confusing NetWare specific check. disabled chown and chgrp for NetWare 2004-09-25 13:19:45 +00:00
0ec80db02a ChangeLog update 2004-09-25 00:35:03 +00:00
Wez Furlong 2416481fd1 More sensible error codes in the exceptions we throw for broken transactions 2004-09-24 18:49:33 +00:00
Anantha Kesari H Y ac5b702b91 removed redundant CLIB_STAT_PATCH checks for NETWARE 2004-09-24 15:44:57 +00:00
Anantha Kesari H Y b82a18c8da selectively avoiding module cleanup code for apache 1 build and removing a duplicate code 2004-09-24 15:40:22 +00:00
Dmitry Stogov aeab5f8723 Fixed specializer bug. 2004-09-24 06:06:39 +00:00
8799fed634 ChangeLog update 2004-09-24 00:34:15 +00:00
Andi Gutmans f82ed13625 - Commit new VM architecture. This one allows people (aka Derick) to
- ask the engine to use function handler mode. Will update the README
- about that.
2004-09-23 21:43:32 +00:00
Ilia Alshanetsky 1fc2b79172 Make handle error messages handle persistent situations better. 2004-09-23 21:15:51 +00:00
Ilia Alshanetsky 626caf0292 Make error messages handle persistent environments properly. 2004-09-23 21:03:41 +00:00
Wez Furlong 72040f7f2a more method table adjustments.
mysql driver needs work with the error message stuff.
Other drivers need a bit more auditing...
2004-09-23 20:43:11 +00:00
Wez Furlong b42c14f07e placeholder for someone to implement a ping for persistent connections 2004-09-23 20:20:23 +00:00
Wez Furlong 53ed3475ce add entry for liveness check 2004-09-23 20:09:00 +00:00
Ilia Alshanetsky a4df842974 Fixed test. 2004-09-23 20:08:07 +00:00
Wez Furlong 7937f0a229 Implement persistent connections
$dbh->exec --> $dbh->query
2004-09-23 20:07:02 +00:00
Marcus Boerger 2e49a2d960 Add test description 2004-09-23 18:43:21 +00:00
Marcus Boerger c0b62ca36d Add new test 2004-09-23 18:38:34 +00:00
Marcus Boerger e13eb1d6c0 Bugfix # 30209 2004-09-23 18:37:53 +00:00
Andi Gutmans 97b796d0aa - Commit synthetic benchmark 2004-09-23 16:42:21 +00:00
Anantha Kesari H Y c914bff745 removed unwanted NetWare specific changes 2004-09-23 15:57:30 +00:00
Anantha Kesari H Y 9b0489ac47 removed redundant checks for NETWARE 2004-09-23 15:43:54 +00:00
Anantha Kesari H Y 13163ad5e4 TSRMLS_FETCH should be called prior to accessing any of the SG members 2004-09-23 15:08:31 +00:00
Anantha Kesari H Y d2e85c5c9a NetWare now has a POSIX compliant stat structure so no need of CLIB_STAT_PATCH and all such macros 2004-09-23 14:36:42 +00:00
Anantha Kesari H Y b855337d39 CLIB_STAT_PATCH check is redundant. So removing it 2004-09-23 13:07:43 +00:00
Anantha Kesari H Y b04db9d9e0 Reverted the NetWare Specific Stack limit related patches as asked by Andi 2004-09-23 06:23:36 +00:00
921cdf4fb9 ChangeLog update 2004-09-23 00:34:44 +00:00
Wez Furlong bfe9871c83 fix for pecl modules; runs "make install" and correctly adds the files to the
transaction and package.

(as far as I know).
2004-09-22 19:04:56 +00:00
Anantha Kesari H Y b66e7aec62 NetWare specific stack limit checks 2004-09-22 15:51:56 +00:00
Anantha Kesari H Y 5af07c3c8b Aligned the ifdef NETWARE blocks to first column. 2004-09-22 14:31:21 +00:00
Anantha Kesari H Y 8eb7503078 Stack limit will be checked while executing the script 2004-09-22 14:20:19 +00:00
Anantha Kesari H Y b0b1a57fc4 To avoid redefinition (of free, alloca etc.) compilation errors in Zend. 2004-09-22 13:42:32 +00:00
Anantha Kesari H Y 8478f5e38e When Apache is unloaded, it calls dlclose on all the PHP extensions
that are loaded in memory. In the case of Apache 1.3, this call is blocking indefinitely. As a work around, this call is bypassed for Apache 1.3 build on NetWare only. This means that none of the loaded PHP extensions are unloaded. They will have to be manually unloaded before re-loading the Apache 1.3 again.
2004-09-22 13:29:08 +00:00
Anantha Kesari H Y ff40ceab56 defined ZEND_PATHS_SEPERATOR to semicolon for NetWare 2004-09-22 12:49:08 +00:00
Anantha Kesari H Y 4fe1927183 enabled macros to call the proper LibC functions 2004-09-22 12:45:28 +00:00
Dmitry Stogov 480f4e3565 Specializer was updated with executor's fixes. 2004-09-22 08:45:21 +00:00
Dmitry Stogov 3009a073b0 Fixed bug #29566 (foreach/string handling strangeness (crash)). 2004-09-22 07:14:26 +00:00
Dmitry Stogov 81a5af36a1 Fixed bug in fix for bug #29707 2004-09-22 06:32:19 +00:00
Dmitry Stogov b027850ba4 Fixed bug #30182 (SOAP module processing WSDL file dumps core). 2004-09-22 05:58:40 +00:00
24961c73ac ChangeLog update 2004-09-22 00:34:14 +00:00
Andi Gutmans d9252aa1ea - Fix for bug #29707 2004-09-21 22:09:22 +00:00
Frank M. Kromann 62fbbd1494 Fix win32 build 2004-09-21 18:09:29 +00:00
e62484fa09 ChangeLog update 2004-09-21 00:34:37 +00:00
Wez Furlong 31a17d9044 Enable hypot for all 2004-09-20 22:08:06 +00:00
Edin Kadribasic 3da64fa20a Add additional include search path 2004-09-20 21:26:24 +00:00
Uwe Schindler 74fe4ec0cb changed order of processing of ini entries 2004-09-20 13:30:13 +00:00
Ilia Alshanetsky 4af4cf0914 Fixed bug #29913 (parse_url() is now binary safe). 2004-09-20 05:13:35 +00:00
4017713fc2 ChangeLog update 2004-09-20 00:34:18 +00:00
Wez Furlong 9ce9605723 Use the correct free() here... 2004-09-19 22:20:55 +00:00
Wez Furlong eb5e0d6d12 Add package.xml
(not quite ready for release)
2004-09-19 19:50:06 +00:00
Wez Furlong ceb551024a Add support for:
$d = new PDO('foobar');  // name has no : character

This will indirect via the entry "pdo.dsn.foobar" from the php.ini file,
so if you have:

pdo.dsn.foobar=sqlite::memory:

the above is equivalent to this:

$d = new PDO('sqlite::memory:');

which creates an in-memory sqlite db.
2004-09-19 19:28:02 +00:00
Wez Furlong f40608230b Use NO_PERM code here 2004-09-19 18:13:09 +00:00
Wez Furlong 797303d23a un-bogusify uri: stuff... 2004-09-19 18:11:27 +00:00
Wez Furlong 34d10931e2 Add "no permission" error code.
Add a uri: psuedo driver; it specifies the name of a resource that contains,
as its first line, the actual data source to connect to.
The resource can be a local file, or it can be any resource for which PHP
has a wrapper.

// loads connection data from the file "myapp"
$d = new PDO('uri:myapp');

// lets say that public.db.com has a read-only db open for the public
// their connection data is also published via the web:
// (not so great to resolve this on each request though...)
$d = new PDO('uri:http://public.db.com/pdo-connection-data');
2004-09-19 16:58:13 +00:00
Wez Furlong 6fa469f367 make it build on win32 2004-09-19 15:47:13 +00:00
Wez Furlong 0d4869f24b Add transaction support.
Add authorizer/safe_mode support
2004-09-19 12:42:39 +00:00
Marcus Boerger d0cfb7d3fd Bugfix #30146 (ReflectionProperty->getValue() requires instance for static property) 2004-09-19 11:54:08 +00:00
Marcus Boerger dfe23e34d9 Add new test 2004-09-19 11:53:30 +00:00
Marcus Boerger 980424a834 Add new test 2004-09-19 11:26:05 +00:00
Marcus Boerger 43d9ade92b Bugfix #30148 (ReflectionMethod->isConstructor() fails for inherited classes) 2004-09-19 11:25:39 +00:00
Wez Furlong 2f161ab79d First cut at a PDO driver for SQLite 3.x
Features:
- native prepare/execute and bound parameters.
- finally supports binary data (via bound parameter api)
- full unicode/utf-8 support

Missing:
- UDF functions
- authorizer hooks for safe_mode/open_basedir restrictions

You need to download, compile and install sqlite3 yourself; we're not bundling
it (at least, not yet).
2004-09-19 10:55:41 +00:00
db7af4d8f0 ChangeLog update 2004-09-18 00:35:27 +00:00
Wez Furlong ff4e970fb1 Make new poll stuff work on win32 (and still be safe on unix) 2004-09-17 14:36:55 +00:00
Wez Furlong 99e290f882 Fix for Bug #24189: possibly unsafe select(2) usage.
We avoid the problem by using poll(2).

On systems without poll(2) (older bsd-ish systems, and win32), we emulate
poll(2) using select(2) and check for valid descriptors before attempting
to access them via the descriptor sets.

If an out-of-range descriptor is detected, an E_WARNING is raised suggesting
that PHP should be recompiled with a larger FD_SETSIZE (and also with a
suggested value).

Most uses of select(2) in the source are to poll a single descriptor, so
a couple of handy wrapper functions have been added to make this easier.

A configure option --enable-fd-setsize has been added to both the unix and
win32 builds; on unix we default to 16384 and on windows we default to 256.
Windows FD_SETSIZE imposes a limit on the maximum number of descriptors that
can be select()ed at once, whereas the unix FD_SETSIZE limit is based on the
highest numbered descriptor; 256 should be plenty for PHP scripts under windows
(the default OS setting is 64).

The win32 specific parts are untested; will do that now.
2004-09-17 12:44:56 +00:00
Wez Furlong 9085689d6f standardize the callback support to allow array($obj, 'method') callbacks.
Add a couple of utility functions.
2004-09-17 11:26:43 +00:00
Stanislav Malyshev 3755c03291 fix crash when dtor is fialing on shutdown 2004-09-17 10:13:52 +00:00
Ilia Alshanetsky 2a2d49b947 Fixed bug #30050 (Possible crash inside php_shutdown_config()).
# Patch suggestion by nw at softwarekombinat dot de
2004-09-17 02:48:41 +00:00
1775e980ea ChangeLog update 2004-09-17 00:33:44 +00:00
Andi Gutmans 16d79b79d6 - Add test for bug #27669 2004-09-16 19:36:56 +00:00
Dmitry Stogov 7a149080d8 Fixed crash with SoapFault and register_shutdown_function(). 2004-09-16 08:12:27 +00:00
Sebastian Bergmann 6ccbb6b51b ZTS fix. 2004-09-16 05:43:29 +00:00
Andi Gutmans daa52df47a - Only 5.0.x news which we'll copy over before 5.1.0 release 2004-09-16 00:47:25 +00:00
Andi Gutmans d098a077e4 - News 2004-09-16 00:46:20 +00:00
Andi Gutmans d8efe626b5 - Fix bug #27669 (Dmitry).
Fixes:
<?
        class A
        {
                function hello()
                {
                        echo "Hello World\n";
                }
        }
        $y[0] = 'hello';
        A::$y[0]();
?>
2004-09-16 00:40:38 +00:00
5fc85f6c61 ChangeLog update 2004-09-16 00:33:09 +00:00
Uwe Schindler 5e1f396849 Fixed bug #29805 (HTTP Authentication Issues) 2004-09-15 21:28:30 +00:00
Dmitry Stogov 37a66d6d3b Fixed invalid test name 2004-09-15 14:36:59 +00:00
foobar 36a76f403a Test for bug #30069 2004-09-15 13:54:16 +00:00
Ilia Alshanetsky da136e6106 MFH: Fixed a bug causing ".123" * "90" and alike to return a 0. 2004-09-15 13:41:45 +00:00
Derick Rethans c68f4bde30 - Windows support strcoll too. 2004-09-15 12:28:55 +00:00
Derick Rethans 7795da58e6 - Added new boolean (fourth) parameter to array_slice() that turns on the
preservation of keys in the returned array.
2004-09-15 11:50:27 +00:00
Dmitry Stogov 2a63e78eed Fixed possible crash 2004-09-15 10:43:07 +00:00
7438337fdd ChangeLog update 2004-09-15 00:34:26 +00:00
Ilia Alshanetsky 6784176b9c Fixed compiler warnings. 2004-09-14 23:57:53 +00:00
Dmitry Stogov ffc2278d6e Fixed bug #30045 (Cannot pass big integers (> 2147483647) in SOAP requests) 2004-09-14 12:15:30 +00:00
Sara Golemon 34550382d8 Added stream_filter_remove() to cancel a stream filter.
Register filters as resources when
instantiated by stream_filter_(ap|pre)pend().

Export php_stream_filter_flush() internal function to wind buffered data
out of a particular filter until consumed by a later filter or sent to
stream->readbuffer or stream->ops->write()
2004-09-14 03:48:17 +00:00
41c4fd66d9 ChangeLog update 2004-09-14 00:33:34 +00:00
Sara Golemon 9cd4320b65 Allocating hash tables should be done via macro, not directly 2004-09-13 21:07:22 +00:00
Magnus M��tt� 17c77a54bf Add missing stream unregister for sslv2 and 3. 2004-09-13 18:30:30 +00:00
Stefan Esser 0f860d8f34 only allow valid arrays at this point 2004-09-13 16:00:23 +00:00
Dmitry Stogov 12752a4044 Change soap's ctors to __construct(),
rename SoapClient->__call() to SoapClinet->__soapCall().
2004-09-13 11:55:24 +00:00
Stanislav Malyshev 29fec3febc Antony Dovgal's error message improvement - #27290 2004-09-13 10:41:39 +00:00
dd12885897 ChangeLog update 2004-09-13 00:32:56 +00:00
Marcus Boerger 61bbeabdfa - Moe changed from .re to .c 2004-09-12 12:45:01 +00:00
Marcus Boerger 8564352f59 - Readd check for nested data (but correct this time) 2004-09-12 12:43:05 +00:00
Marcus Boerger 06ade1ab1c - Check for legal key types 2004-09-12 12:23:16 +00:00
Marcus Boerger 6200c9a5a1 - Remove wrong test 2004-09-12 11:51:13 +00:00
Stefan Esser e7d698c7d8 New Rule: Never try to repair potential malicious user input 2004-09-12 10:45:14 +00:00
Antony Dovgal e2568f0a4f 64-bit related changes
./configure will now behave differently if $ORACLE_HOME/lib32 exists
(this mostly happens at Solaris AFAIK)
2004-09-12 06:38:31 +00:00
Antony Dovgal 0e2100ca58 add PHP_CHECK_64BIT macro to be able to detect 64-bit platform in ./configure 2004-09-12 06:35:51 +00:00
49b1208120 ChangeLog update 2004-09-12 00:33:34 +00:00
Derick Rethans 4bae5cb4d0 - MFB: Added the sorting flag SORT_LOCALE_STRING to the sort() functions which
makes them sort based on the current locale. (Derick)
2004-09-11 14:22:35 +00:00
b3a32e6d21 ChangeLog update 2004-09-11 00:33:56 +00:00
Andi Gutmans 3e201ac281 - Resolve undefined behavior (joe at redhat) 2004-09-11 00:23:20 +00:00
Sara Golemon ed5dcbff9b A little extra code to allow overriding plainfiles wrapper as well 2004-09-10 21:50:29 +00:00
Sara Golemon 955b43ba12 Add stream_wrapper_unregister()
Disables a wrapper (user-defined or built-in) for the life of the request.

Add stream_wrapper_restore()
Restores the wrapper originally defined at the time the request started
to the protocol name mentioned.
2004-09-10 20:45:35 +00:00
Sterling Hughes 58cb0d77a0 fix wrong check from return value, binary content should not be \0'd,
non-binary content should be \0'd.
2004-09-10 20:36:45 +00:00
Antony Dovgal 663e46eee5 add testcase for bug #29446 2004-09-10 13:55:26 +00:00
Wez Furlong 0bc0ccce2b Fix Bug #29296: add explicit sslv2 and sslv3 transports 2004-09-10 11:43:47 +00:00
Dmitry Stogov f8181ba7b5 SoapClient->__call() is renamed to SoapClient->__soap_call(). 2004-09-10 09:02:06 +00:00
Dmitry Stogov f93560ddc9 Using php_libxml_xmlCheckUTF8() from ext/libxml. 2004-09-10 08:59:45 +00:00
Andi Gutmans ab52308356 - This one fixes rather strange problem - ZE allows multiple declarations of the same class constant.
- It could be a minor BC break, but I'm sure it's a bug. (Antony Dovgal aka tony2001)
2004-09-10 06:13:13 +00:00
0a72ea8d70 ChangeLog update 2004-09-10 00:35:29 +00:00
Wez Furlong 751f67d5d1 avoid ANSI stdio when calling tempnam() to avoid limitations of AT&T libc. 2004-09-09 19:41:07 +00:00
Timm Friebe 8e5d8e6679 - Defaulted ini variable "sybct.deadlock_retry_count" to 0
# For details on why this was changed, see
# http://zend.com/lists/php-dev/200409/msg00108.html
2004-09-09 19:17:50 +00:00
Marcus Boerger 8b30b8da98 Fix test script 2004-09-09 17:08:45 +00:00
Andi Gutmans db07396fe8 - Revert API bump 2004-09-09 17:08:25 +00:00
Andi Gutmans 3d438cc06a - Commit VM explanation. 2004-09-09 17:04:12 +00:00
Andi Gutmans ec4f64344c - Recommit 2004-09-09 16:52:24 +00:00
Andi Gutmans 6bd3c36a53 - Recommit:
- Check signature of magic methods
  - Register __get/__set/__call for internal classes
2004-09-09 16:51:45 +00:00
Andi Gutmans 8aed222d93 - Recommit:
- Bump the API number to work around this major breakage.
2004-09-09 16:50:04 +00:00
Andi Gutmans 96ab56e146 - Roll back VM commit 2004-09-09 16:47:22 +00:00
Rasmus Lerdorf bb8167cda3 Stop at the index on an unmatched [ 2004-09-09 16:10:24 +00:00
Marcus Boerger 7bfb397338 - Drop namespace relict 2004-09-09 13:29:08 +00:00
Marcus Boerger 621795ef4b Fix __call's method signature 2004-09-09 09:53:53 +00:00
Marcus Boerger be24e2455c - Check signature of magic methods
- Register __get/__set/__call for internal classes
2004-09-09 09:51:43 +00:00
Marcus Boerger 8e56b3b6a6 Proper #ifdef'ing 2004-09-09 09:08:33 +00:00
Marcus Boerger b16ae3b73a add new test 2004-09-09 07:46:19 +00:00
Derick Rethans 7d2302830f - Bump the API number to work around this major breakage. 2004-09-09 07:41:32 +00:00
Dmitry Stogov f6206c5050 We will use CALL dispatch method for compilers other then GCC. It is more safe. 2004-09-09 06:05:11 +00:00
ea4dbef1b7 ChangeLog update 2004-09-09 00:34:46 +00:00
Andi Gutmans f20f992ddd - Fix the fix. 2004-09-09 00:15:39 +00:00
Andi Gutmans 2e286e7374 - Fix bug #28054 by preventing printing out bogus information in backtrace
when in error handler (still doesn't know all information but at least
  it's not bogus)
2004-09-08 23:46:37 +00:00
Sara Golemon 532a79aa52 *** empty log message *** 2004-09-08 23:37:55 +00:00
Andi Gutmans 8eb8850c90 - Some architectural changes:
a) We specialize opcodes according to op_type fields. Each opcode has to
    be marked with which op_type's it uses.
 b) We support different execution methods. Function handlers, switch()
    and goto dispatching. goto seems to be the fastest but it really
    depends on the compiler and how well it optimizes. I suggest playing
    around with optimization flags.

- Warning: Things might break so keep us posted on how things are going.
  (Dmitry, Andi)
2004-09-08 22:14:12 +00:00
Sara Golemon d179ac771c Handle maxlen when stream can't be mmaped 2004-09-08 18:42:15 +00:00
Rob Richards da5ff5d9f1 fix issue with multiple xsl objects using registerPHPfunctions
- also fixes threading issue
2004-09-08 16:54:17 +00:00
Rob Richards ccb99d0a1e implement php_libxml_xmlCheckUTF8
- workaround for pre libxml2-2.6.13 function
2004-09-08 10:15:41 +00:00
9ed4b04f6a ChangeLog update 2004-09-08 00:32:37 +00:00
Sara Golemon 92c4a37a6a Chunk Length may optionally be followed by whitespace 2004-09-07 22:46:24 +00:00
Frank M. Kromann aa25757136 Make it possible to return VideoStream and PrebuiltClip 2004-09-07 19:40:18 +00:00
Sara Golemon a85bff9796 Protocol version context option and chunked transfer encoding 2004-09-07 19:27:11 +00:00
Dmitry Stogov 7e53511ec8 Make ext/soap work around libxml2 bug in xmlCheckUTF8 (2.6.7-2.6.13) 2004-09-07 14:34:46 +00:00
882a4c4d2c ChangeLog update 2004-09-07 00:34:14 +00:00
Marcus Boerger dd5652e4c1 - Fix handling of exceptions in dtors 2004-09-06 19:13:33 +00:00
Rob Richards 963200c74c Fixed bug #29945 (simplexml_load_file URL limitation 255 char) 2004-09-06 10:16:34 +00:00
Dmitry Stogov 4c4d9102e8 Fix: interfac -> interface 2004-09-06 08:40:04 +00:00
85a9b2283f ChangeLog update 2004-09-06 00:35:08 +00:00
Zeev Suraski 85a36e2bc3 Fix reverse dependency 2004-09-05 22:40:35 +00:00
Marcus Boerger 2f5990a5c4 Touch 2004-09-05 17:44:15 +00:00
Marcus Boerger 338e3357ae - Bugfix #29985 2004-09-05 17:37:57 +00:00
Marcus Boerger efea880e6f - Add some checks to unserialize() to prevent bufferoverflows 2004-09-05 17:16:02 +00:00
Marcus Boerger 91af7f394f - Add some checks when unserializing data to prevent buffer overflows 2004-09-05 16:29:05 +00:00
Andrey Hristov 945f7d68b9 remove "." at the end of messages 2004-09-05 13:27:58 +00:00
Moshe Doron 9632e324b6 make autogenerated docs happy (Friedhelm Betz) 2004-09-05 08:13:56 +00:00
895b4a2825 ChangeLog update 2004-09-05 00:32:42 +00:00
Andi Gutmans d7422e3821 - Don't destroy object when calling overloaded cast method in
- zend_parse_parameters()
2004-09-04 17:03:45 +00:00
Georg Richter eb3900b77a forgot to remove comment in last commit 2004-09-04 14:16:52 +00:00
bb6422a83f ChangeLog update 2004-09-04 00:33:13 +00:00
Marcus Boerger ef3e8fa852 - Add link to chm version
- Change wording
2004-09-03 18:46:29 +00:00
Marcus Boerger d265cdffbf - Fix protoe's 2004-09-03 18:39:30 +00:00
Marcus Boerger 4d3894178d Update docu 2004-09-03 06:16:34 +00:00
Ilia Alshanetsky 6ad651afbe Adjusted input check. 2004-09-03 03:35:22 +00:00
69a4d841a9 ChangeLog update 2004-09-03 00:34:03 +00:00
Frank M. Kromann 57f3b2504e Adding swfvideostreamp and swfprebuiltclipp, available in ming 0.3 2004-09-02 20:56:39 +00:00
Marcus Boerger 72000ecda9 Fix memleak in serialize 2004-09-02 18:28:47 +00:00
Marcus Boerger 94c4feef12 Fix test 2004-09-02 18:24:58 +00:00
Sebastian Bergmann aab4ad1a8e Fugbix typo. 2004-09-02 17:27:44 +00:00
Stanislav Malyshev dbc1cb5e92 MF4: fix crash if shutdown uses file stats 2004-09-02 09:39:55 +00:00
Derick Rethans 00b9ace829 - Added test for bug #29944. 2004-09-02 06:36:35 +00:00
Georg Richter 62ed6a0f2b fixed bug #29283 2004-09-02 04:53:01 +00:00
Ilia Alshanetsky 197d65770a Fixed bug #29925 (Added a check to prevent illegal characters in session
key).
2004-09-02 02:44:04 +00:00
4369785d6d ChangeLog update 2004-09-01 00:34:13 +00:00
Marcus Boerger 1cd7013517 Add new test for seeking 2004-08-31 20:54:31 +00:00
Marcus Boerger 819127b74b Fix seeking 2004-08-31 20:54:00 +00:00
Sara Golemon 579575e430 Use user_agent ini setting if it's available. 2004-08-31 20:11:18 +00:00
Joe Orton 0d3884fed1 Move global symbols defined by bundled copy of libgd into private
php_gd_* namespace, to avoid symbol conflicts with, for instance,
another Apache module which loads a different copy of libgd.
2004-08-31 16:41:29 +00:00
Antony Dovgal fd6d9cbeac fix bug #29723 (file_get_contents() fails with the file:// wrapper under Win32) 2004-08-31 11:37:02 +00:00
Joe Orton 8b4929818f Do not rely on behaviour of integers which might be greater than
LONG_MAX on 32-bit architectures.
2004-08-31 10:23:22 +00:00
Antony Dovgal fdb578219b this file shouldn't be in the repository at all 2004-08-31 08:31:09 +00:00
322ed7d092 ChangeLog update 2004-08-31 00:32:38 +00:00
Ilia Alshanetsky 142ac728dd Added missing input validation to dio_write(). 2004-08-30 22:21:09 +00:00
Frank M. Kromann a1cf684b55 Fif for #28047. Set correct debug options for debug_ts build 2004-08-30 19:01:58 +00:00
Marcus Boerger 8867010b22 Add some information about array overloading 2004-08-30 18:48:52 +00:00
Rob Richards a50166004d remove cloning under ze1_compatibility_mode
- minor BC break but doesnt work right under compat mode anyways
2004-08-30 17:29:22 +00:00
Rob Richards 02fa5aa0dc remove cloning under ze1_compatibility_mode
- minor BC break but doesnt work right under compat mode anyways
2004-08-30 15:07:20 +00:00
Rob Richards d39cca1530 remove clone functionality 2004-08-30 14:59:30 +00:00
Antony Dovgal 513c93b9ae add testcase for bug #29893 2004-08-30 09:07:17 +00:00
Stanislav Malyshev 4f68f3774c fix crash #29893 2004-08-30 08:57:40 +00:00
22f796e55f ChangeLog update 2004-08-30 00:33:06 +00:00
Marcus Boerger 0eaa26fc31 String offset starts with 0, fix isset($str[$len]) 2004-08-29 19:15:08 +00:00
Ilia Alshanetsky 9996b5f731 Fixed leak when serializing protected & private properties. 2004-08-29 17:16:20 +00:00
George Schlossnagle 1901b9d90e A little cleanup on the language refinements. 2004-08-29 13:37:10 +00:00
Marcus Boerger 1e708a5aeb Bugfix #29882 isset crashes on arrays 2004-08-29 13:28:03 +00:00
Jan Lehnardt d402f6fab3 - language refinements 2004-08-29 11:54:38 +00:00
Sergey Kartashoff 505144b844 - A fix for building of shared mnogosearch module 2004-08-29 10:59:33 +00:00
Marcus Boerger 1d1d20ced2 Add more docu 2004-08-29 10:33:24 +00:00
Antony Dovgal fdb29f9fa5 fix leak 2004-08-29 06:10:47 +00:00
b799e6cbaf ChangeLog update 2004-08-29 00:34:14 +00:00
John Coggeshall 2f4ca9a2d4 Removed examples which don't actually work anymore for PHP 4, and
updated those that do for PHP 5.
2004-08-28 18:10:21 +00:00
Derick Rethans 52d6a64efa - Fixed bug #29873 (No defines around pcntl_*priority definitions). 2004-08-28 12:20:06 +00:00
48335493eb ChangeLog update 2004-08-28 00:34:05 +00:00
Marcus Boerger eeb4e150e7 Fix by (mathieu dot bruneau at argontechnologies dot ca) 2004-08-27 20:38:15 +00:00
Andi Gutmans ec3aac1e86 - Fix leak report for 0 byte allocations (Dmitry) 2004-08-27 16:49:14 +00:00
Dmitry Stogov dae2423d11 Fixed bug #29842 (soapclient return null value) 2004-08-27 07:07:46 +00:00
7280d303f4 ChangeLog update 2004-08-27 00:32:42 +00:00
Ilia Alshanetsky ee8a0fc8f8 Fixed a nasty resource/memory/disk-space leak when opening zlib files
via wrapper stacking ala compress.zlib://http://...
2004-08-26 23:36:05 +00:00
Marcus Boerger ec4f576cb3 Enforce semantics: Classes cannot extend Interfaces 2004-08-26 22:59:25 +00:00
Marcus Boerger b1d43bac61 Fix test: Classes cannot extend Interfaces 2004-08-26 22:58:12 +00:00
Marcus Boerger dcd10fb714 Add new test 2004-08-26 22:53:51 +00:00
Marcus Boerger 08c344c293 Drop doubled check 2004-08-26 22:32:38 +00:00
Marcus Boerger 690b45afaa - Bugfix #29828 Interfaces no longer work 2004-08-26 22:25:55 +00:00
Marcus Boerger 5960786cc6 Add new test 2004-08-26 22:24:48 +00:00
Rob Richards 74259c9124 no longer experimental
update package info
2004-08-26 20:17:20 +00:00
Rob Richards 518145133f not experimental 2004-08-26 20:13:33 +00:00
Dmitry Stogov 855f3591a6 Memory leaks were fixed 2004-08-26 18:52:57 +00:00
Dmitry Stogov 0384e2ae27 Fixed bug #29839 (incorrect convert (xml:lang to lang)) 2004-08-26 18:43:06 +00:00
Dmitry Stogov dedab09c32 Fixed bug #29839 (incorrect convert (xml:lang to lang)) 2004-08-26 18:40:10 +00:00
Dmitry Stogov 0835c34572 Fixed bug #29795 (SegFault with Soap and Amazon's Web Services)
Fixed bug #27994 (segfault with Soapserver when WSDL-Cache is enabled)
2004-08-26 15:26:32 +00:00
Dmitry Stogov 6078001f12 Merged bug fixes from PHP_5_0. 2004-08-26 12:24:54 +00:00
b8ed424ed3 ChangeLog update 2004-08-26 00:33:05 +00:00
Ilia Alshanetsky fe73e4d851 Fixed bug #29808 (array_count_values() breaks with numeric strings). 2004-08-26 00:26:19 +00:00
Andrei Zmievski ace6ff598c MFB. 2004-08-25 20:48:48 +00:00
Georg Richter 616d49aaf6 test for local_infile_handler 2004-08-25 13:58:03 +00:00
Georg Richter c8572b0bba changed local_infile_handler:
mysql client lib now uses php_local_infile functions by default, which allows
  to use php_fopen_wrapper: e.g. LOAD DATA LOCAL INFILE 'http://foo.com/bar.csv' ...

  mysql_set_local_infile_handler now only supports a callback function for read.
2004-08-25 13:57:35 +00:00
Christian Stocker b96ebb376f if $doc->recover = true; set error_reporting to (old | E_WARNING)
This way, you can't silence XML parse errors with the @ character
2004-08-25 08:27:07 +00:00
Marcus Boerger 7ec9245c74 No short tags 2004-08-25 07:25:54 +00:00
Derick Rethans ea5d8fcf1d - Those two are already in the NEWS for 5.0.2. 2004-08-25 06:37:47 +00:00
Andi Gutmans 69aa60a947 - Improve wording 2004-08-25 01:06:18 +00:00
Andi Gutmans 99cae17cd0 - MFB 2004-08-25 01:04:41 +00:00
Andi Gutmans 709c5bd2d5 - Add interface_exists() and differentiate between classes and interfaces
(Andrey Hristov)
2004-08-25 00:41:43 +00:00
d800816f94 ChangeLog update 2004-08-25 00:33:08 +00:00
Andrey Hristov b8b1b35904 new incompatibilities. maybe someone from the doc group will update the
migrating guide. also Derick may add new slides to his talk :)
2004-08-24 22:01:58 +00:00
Marcus Boerger 1d913a9c0b MFB: TSRM fix 2004-08-24 21:49:09 +00:00
Marcus Boerger 965783b7c1 Add new test 2004-08-24 21:35:46 +00:00
Andrei Zmievski f30355a7df MFB. 2004-08-24 20:58:59 +00:00
Marcus Boerger 87187da066 - Add missing brackets 2004-08-24 18:47:18 +00:00
Frank M. Kromann 381d3f8e62 Add fbsql_rows_fetched() - returns the total number of rows fetched.
Fix a possible crash in fbsql_database() if the function was called before a connection was made.
2004-08-24 17:59:01 +00:00
Ilia Alshanetsky f95c1df583 Fixed bug #29821 (Fixed possible crashes in convert_uudecode() on invalid
data).
2004-08-24 15:25:48 +00:00
Rob Richards 53d0c7a753 fix segfault when object cloned 2004-08-24 13:33:11 +00:00
Wez Furlong bbd6dec20c Add support for the readline callback interface, allowing you to interleave
IO and user input.  Sample script:

<?php
dl("readline.so");

function handle_user_input($line)
{
   echo "You typed: '$line'\n";
   if ($line == 'exit')
      exit;
}

readline_callback_handler_install('type! > ', 'handle_user_input');

while (true) {
   $n = stream_select($r = array(STDIN), $w = null, $e = null, null);

   if ($n && in_array(STDIN, $r)) {
      readline_callback_read_char();
   }
}
2004-08-24 12:52:07 +00:00
Derick Rethans 0bfb0fad92 - No tabs here please 2004-08-24 12:28:46 +00:00
Wez Furlong 5ed8e63591 use dependent libs while probing for functions 2004-08-24 12:06:37 +00:00
Christian Stocker ce65982ec1 This extension is no more experimental 2004-08-24 11:50:26 +00:00
Andi Gutmans e762b69ccb - Fix typo 2004-08-24 01:04:57 +00:00
ce84626a7f ChangeLog update 2004-08-24 00:36:07 +00:00
Marcus Boerger efbfaec0a3 - Drop unused variable 2004-08-23 20:58:48 +00:00
Marcus Boerger b7a8297bc1 - Boost up __autoload() calls by caching the lookup 2004-08-23 20:57:40 +00:00
Andi Gutmans 88b9c69cb2 - Improve wording 2004-08-23 20:19:37 +00:00
Andi Gutmans 4c5fd67f7c - NEWS 2004-08-23 20:18:10 +00:00
Andi Gutmans 51501e8de0 - Improve performance of switch() 2004-08-23 20:16:35 +00:00
Ilia Alshanetsky 4ca88997f7 Fixed possible crash inside dio_read(). 2004-08-23 17:27:33 +00:00
Ilia Alshanetsky 8eacea8b48 Fixed proto of headers_list(). 2004-08-23 16:58:11 +00:00
Derick Rethans 6ffc1c291a - MFB: Fixed Apache 2.0 SAPI build against Apache 2 HEAD. (Patch by Joe Orton) 2004-08-23 09:01:27 +00:00
Derick Rethans 05bf7d9c65 - Little changes. 2004-08-23 09:01:08 +00:00
51b7d3a1c0 ChangeLog update 2004-08-23 00:34:43 +00:00
Ilia Alshanetsky c84bd49fb5 Using int when long should be used. 2004-08-22 18:05:24 +00:00
d6dd2c26fa ChangeLog update 2004-08-22 00:33:22 +00:00
Timm Friebe 7035a224b5 - Fixed packet size setting
# Patch by Alex Kiesel
2004-08-21 17:54:11 +00:00
Andrey Hristov dd5538566e fix for bug 26737 : private & protected member variables not serialized
when user defined __sleep() is declared. Additionally E_NOTICE is
being thrown if __sleep() returns a non-existing member variable name
2004-08-21 13:49:19 +00:00
Frank M. Kromann e398e6b7d6 Fix win32 compilation. Missing uid_t and gid_t definitions. 2004-08-21 03:09:45 +00:00
20db6b2dcb ChangeLog update 2004-08-21 00:33:39 +00:00
Sara Golemon b5547442e5 Bugfix#29777 Some compilers don't like // style comments 2004-08-21 00:00:16 +00:00
Sara Golemon 5a81efa31f Fix compile 2004-08-20 23:53:59 +00:00
Ilia Alshanetsky 3849411fa2 Adjust magic path ordering. 2004-08-20 15:11:49 +00:00
Ilia Alshanetsky 823e4029f7 MFB: Removed unneeded bits. 2004-08-20 13:53:16 +00:00
Ilia Alshanetsky 420a8cd50a Added /usr/share/misc/file/magic to the possible magic paths (used by Debian) 2004-08-20 13:48:19 +00:00
Derick Rethans 998f5221b5 - Order and removed a bugfix which was already in 5.0.2/ 2004-08-20 06:14:42 +00:00
Ilia Alshanetsky 67e3288a5d Added more missing cURL options. 2004-08-20 00:55:56 +00:00
9b09af54d9 ChangeLog update 2004-08-20 00:34:05 +00:00
Andi Gutmans a36e7b0ab1 - Cleanup 2004-08-19 20:42:20 +00:00
Andi Gutmans 57ba9b8ccf - Second wave of garbage removal. 2004-08-19 20:29:04 +00:00
Brian France 2f97097e0f If you send a post with a content-type header and then the next post without the content-type header, raw_post_data will not be set. This is because SG(request_info).post_entry is set to the first requests function pointer which makes it follow the wrong code path. 2004-08-19 20:26:39 +00:00
Andi Gutmans edb7c7d4f5 - Stop using garbage. Please let me know if you find any bugs resulting
- of this patch (very likely). (Dmitry, Andi)
2004-08-19 20:03:06 +00:00
Marcus Boerger 4319872812 Janify [tm] 2004-08-19 18:15:48 +00:00
Antony Dovgal 5d7d4a55aa BFN 2004-08-19 15:22:17 +00:00
Antony Dovgal ca28e37be1 fix #29737 in the right way with performance in mind 2004-08-19 15:14:04 +00:00
Antony Dovgal e156ed7433 fix #29737 (ip2long should return -1 if IP is 255.255.255.255 and FALSE on error) 2004-08-19 13:59:29 +00:00
Christian Stocker 5950725144 fix for bug #29657 xml_* functions throw non descriptive error, compared to php4
fix for bug #29711 libxml and non iso-8859-1.
If no encoding specified, it defaults to UTF-8 now
2004-08-19 12:18:25 +00:00
Marcus Boerger ba75dd7877 Fix issue in test 2004-08-19 08:04:20 +00:00
Marcus Boerger f97066dc17 BFN + reorder 2004-08-19 07:45:24 +00:00
Marcus Boerger 308081cd11 - Implement #29728: Reflection API Feature: Default parameter value.
. ReflectionParameter::isDefaultValueAvailable()
  . ReflectionParameter::getDefaultValue()
2004-08-19 07:42:02 +00:00
Marcus Boerger 5e1a0f4c0c - Nedd to work on copy 2004-08-19 07:16:02 +00:00
77319b779a ChangeLog update 2004-08-19 00:32:47 +00:00
Marcus Boerger 35fec42377 - Show default value of optional parameters of user defined functions. 2004-08-18 23:07:12 +00:00
Ilia Alshanetsky 5520636b17 Fixed bug #29727 (Added missing CURL authentication directives). 2004-08-18 21:27:24 +00:00
Andrei Zmievski f60dc4699f Forgot to turn off debugging. 2004-08-18 18:10:31 +00:00
Andrei Zmievski fe5c131a0d Re-add my patch for .ini variable access. 2004-08-18 16:58:20 +00:00
Antony Dovgal ad503c814b MFB: typo in config.m4 (potential configuration problem with Stronghold) 2004-08-18 07:22:54 +00:00
97360bacd5 ChangeLog update 2004-08-18 00:36:55 +00:00
Andi Gutmans 48b766d500 - Fix typos 2004-08-17 23:08:44 +00:00
Antony Dovgal b3da1422bb fix typo 2004-08-17 10:57:40 +00:00
d3cf46ca1d ChangeLog update 2004-08-17 00:33:20 +00:00
Ilia Alshanetsky 4d360ead0c Fixed bug #29594 (Use PHP's own tmpfile() implementation). 2004-08-16 23:07:42 +00:00
Zeev Suraski b9310261d7 Fix an oldie fd leak 2004-08-16 12:24:52 +00:00
Marcus Boerger 041d23d7b6 - Fix bug #29447: Reflection API issues 2004-08-16 08:48:25 +00:00
Ilia Alshanetsky 60fc9c050a Fixed bug #29678 (opendir() with ftp:// wrapper segfaults if path does not
have trailing slash).
2004-08-16 01:41:14 +00:00
be00addf85 ChangeLog update 2004-08-16 00:33:22 +00:00
Marcus Boerger 44a9c3188e Make clear this is PDO support 2004-08-15 19:17:58 +00:00
Marcus Boerger d16571328f Fix extension name 2004-08-15 15:56:33 +00:00
Marcus Boerger ce8331f9a5 Remove unnecessary check 2004-08-15 15:48:32 +00:00
Marcus Boerger 295ae448b1 - Synch names with other extensions 2004-08-15 13:43:56 +00:00
Georg Richter 1c6f49006b fixed default for mysqli_fetch_array 2004-08-15 05:48:16 +00:00
8840250fa0 ChangeLog update 2004-08-15 00:34:53 +00:00
Marcus Boerger e45270dd2f Add missing check 2004-08-14 19:02:17 +00:00
7ccbed42c8 ChangeLog update 2004-08-14 00:34:06 +00:00
Dan Kalowsky 206c05dc47 Checking in a patch by Dave Lawson (dlawson@masterytech.com) to correct
some of the behavior found in the odbc_fetch_*() functions.  This patch
NEEDS to be tested on MS Access before a release is done with it.  This
submission is to get it into the daily builds for testing.
2004-08-13 19:33:24 +00:00
Georg Richter 1593aa0e5e fixed bug #29656 (segfault on result and statement properties) 2004-08-13 16:25:29 +00:00
Antony Dovgal e511b57e2a fix yet another annoying compile warning 2004-08-13 14:59:58 +00:00
Antony Dovgal f370d0290f fix compile warning 2004-08-13 14:52:27 +00:00
Christian Stocker 98dd7282be Forgot to add DomDocumentFragment->appendXML(), when I commited it back then 2004-08-13 12:35:56 +00:00
Christian Stocker e99c375606 Added DomDocument->recover property for parsing not well-formed XML Documents. 2004-08-13 12:32:55 +00:00
Derick Rethans 566230a01b - Added the PHP_EOL constant (Patch by Paul Hudson) 2004-08-13 07:02:50 +00:00
e5cb1fa4e4 ChangeLog update 2004-08-13 00:33:48 +00:00
Georg Richter 8ff9528138 minor fix in mysqli_prepare: copying stmt errormessag to mysql structure 2004-08-12 22:14:06 +00:00
Chuck Hagenbuch 6639ab8469 More spaces -> tabs. 2004-08-12 19:31:36 +00:00
Ilia Alshanetsky 5b58b9af6b Properly fix the msgno check inside imap_fetchbody(). 2004-08-12 19:20:15 +00:00
Chuck Hagenbuch 0bf1525bc8 fix. 2004-08-12 18:01:45 +00:00
Marcus Boerger 1dda0f263a Fix tests after foreach patch 2004-08-12 08:01:41 +00:00
Andi Gutmans 0286913937 - Use FREE_HASHTABLE() 2004-08-12 06:17:42 +00:00
Andi Gutmans 993f70c1d2 - Don't use magic numbers 2004-08-12 05:54:11 +00:00
Andi Gutmans de25255b6d - Significantly improve performance of foreach($arr as $data). (Marcus) 2004-08-12 05:41:01 +00:00
Marcus Boerger 5310de975c Change to use md5_file() 2004-08-12 00:38:01 +00:00
fb9b63de23 ChangeLog update 2004-08-12 00:37:05 +00:00
Ilia Alshanetsky 61d60153b2 Fixed memory leak. 2004-08-11 23:25:50 +00:00
Ilia Alshanetsky bf8a6a07d8 MFH: Fixed bug #29607 (highlighting code with HEREDOC produces invalid
output).
2004-08-11 22:38:32 +00:00
Marcus Boerger 3bca709fbc Add missing module deps 2004-08-11 21:04:36 +00:00
Marcus Boerger 364c2fe5a2 TSRM fix 2004-08-11 20:51:41 +00:00
Ilia Alshanetsky af77fdb9bf It's stable now. 2004-08-11 20:31:39 +00:00
Ilia Alshanetsky e8f10e2694 Prepare for 1.0 release of enchant. 2004-08-11 20:30:44 +00:00
Marcus Boerger be022a813f More meaningfull error message 2004-08-11 20:19:49 +00:00
Derick Rethans 318be175a4 - Added a notice to getimagesize in case zlib is not available and a compressed
SWF movie has been passed to the function.
2004-08-11 12:33:03 +00:00
Christian Stocker 786ffab310 fix test 2004-08-11 08:23:26 +00:00
Rasmus Lerdorf 3166314d89 Reset global request_time in sapi_activate. Reset it in sapi_deactivate
too, although I can't see why that would be necessary, but most of the
other sapi globals are reset there as well.
2004-08-11 06:18:25 +00:00
Derick Rethans 4894978500 - Added missing defines.
#- I did say the patch was for 4.3 ;-)
2004-08-11 06:11:07 +00:00
Sara Golemon 883e096ce6 Minor format specifier fixes 2004-08-11 04:27:01 +00:00
Sara Golemon 74de8bdb02 Don't require the user to specify as a reference 2004-08-11 03:57:15 +00:00
a13424db00 ChangeLog update 2004-08-11 00:33:29 +00:00
Ilia Alshanetsky 60b6ac053e Fixed bug #29606 (php_strip_whitespace() prints to stdout rather then
returning the value).
2004-08-10 22:16:46 +00:00
Rasmus Lerdorf cad60c3760 Add SAPI hook to get the request time if provided by the web server,
otherwise call time(0) on the first call and store it so subsequent
calls will get the same time.  Hook support for Apache1/2 included.
2004-08-10 17:40:00 +00:00
Dmitry Stogov 426443cc18 Changed bugs order. 2004-08-10 16:43:20 +00:00
Dmitry Stogov fa6079ea25 Fixed bug #28969 (Wrong data encoding of special characters) 2004-08-10 16:18:08 +00:00
Dmitry Stogov de46ba2ea5 Fixed bug #28969 (Wrong data encoding of special characters). 2004-08-10 16:11:41 +00:00
Dmitry Stogov bcdab8f7e6 Fixed bug #29256 (SOAP HTTP Error when envelop size is more than 24345 bytes) 2004-08-10 14:57:47 +00:00
Wez Furlong b21a7357fc Fix for #29256 from Dmitry, very slightly modified 2004-08-10 13:44:43 +00:00
Dmitry Stogov db855e2c74 Test is fixed. (__call() requires two parameters). 2004-08-10 09:57:16 +00:00
Christian Stocker 32613f510c Fix segfault on error in xslt 2004-08-10 08:00:06 +00:00
Marcus Boerger 51505045e6 - Fix warnings 2004-08-10 07:01:54 +00:00
Moriyoshi Koizumi 51fc7b8ea5 - Bugfix #29493 (extract(array, EXTR_REFS) misbehaves with elements referred
twice or more times). (Patch inspired by Michael Manley. Thanks.)
2004-08-10 06:00:30 +00:00
Andi Gutmans b4faef2fe3 - MFB 2004-08-10 05:42:21 +00:00
Ilia Alshanetsky 636eb109ad Fixed bug #29581 (Typo inside php.ini comments for mysql.trace_mode). 2004-08-10 00:44:20 +00:00
96209e6cad ChangeLog update 2004-08-10 00:34:28 +00:00
Derick Rethans 92df5e9af9 - Fixed speling and some reordering 2004-08-09 15:56:51 +00:00
Georg Richter 2454194424 fixed bug #29577 (MYSQLI_CLIENT_FOUND_ROWS undefined) 2004-08-09 04:34:01 +00:00
7374258dc1 ChangeLog update 2004-08-09 00:34:17 +00:00
Ilia Alshanetsky f268ada2f3 When skip condition is met, stop. 2004-08-08 21:31:50 +00:00
Ilia Alshanetsky 93b21c6ed4 MFB: removed \r characters. 2004-08-08 21:26:29 +00:00
Christian Stocker 264fd866a1 - Fix bug #29573: Segmentation fault when php function(called from XSLT templat) throw exception
- Fix some 0 Byte Memory Leaks
2004-08-08 18:01:33 +00:00
79187b1360 ChangeLog update 2004-08-08 00:34:33 +00:00
Wez Furlong 8c4b687769 Fix for Bug #29490 from Michael Sisolak.
Another fine patch; thanks Michael.
2004-08-07 21:00:59 +00:00
Sara Golemon 37b8c079d6 Fix inet_pton/ntop() on BSD 2004-08-07 15:59:59 +00:00
Sara Golemon 592b17d4d1 Binary safety fix for inet_pton() 2004-08-07 05:11:26 +00:00
Sara Golemon 75f4ec8879 New Functions inet_pton() and inet_ntop() 2004-08-07 04:50:24 +00:00
Andi Gutmans f3d6620f00 - Commit Derick's patch for allowing Zend to use regular libc memory
- allocation functions. Mainly useful in conjunction with tools such as
- valgrind which enables us to find bugs we might not find with the
- current memory managers boundary protection.
2004-08-07 00:45:34 +00:00
b86a6d448a ChangeLog update 2004-08-07 00:35:48 +00:00
Sara Golemon d1341b1c15 Add A6 support, fix IPv6 address parsing, and improve define compatability 2004-08-06 18:38:35 +00:00
Sara Golemon b48af415cd ZTS Fix 2004-08-06 16:36:00 +00:00
Wez Furlong d0ce6368b1 Avoid possible segfault when using stream_socket_client with bogus flags. 2004-08-06 14:08:17 +00:00
b7b1440330 ChangeLog update 2004-08-06 00:33:59 +00:00
Ilia Alshanetsky ee656c4b32 php_error() -> php_error_docref() 2004-08-05 23:57:51 +00:00
Gabor Hojtsy 15e14aeca5 update documentation credits, mentioning that more contributors are listed in the manual 2004-08-05 16:26:15 +00:00
Antony Dovgal 5a10841059 remove all references to @ thing, as it's not recommended.
always add it to NEWS yourself please (c) Derick =)
2004-08-05 14:15:36 +00:00
Antony Dovgal 22bbf75b5f news entry 2004-08-05 14:13:13 +00:00
Antony Dovgal e63a7d893b change xsl_xsltprocessor_set_parameter() to support parameter->value arrays
add test for it
@Change xsl_xsltprocessor_set_parameter() to support parameter->value arrays (Tony)
2004-08-05 13:31:17 +00:00
Wez Furlong a60a6c5209 Generate a .reg file for the syslog stuff
NB: still need a solution for zts and non-zts on the same machine.
2004-08-05 12:15:17 +00:00
Ilia Alshanetsky b1c45f61ad Eliminate unneeded variable. 2004-08-05 00:44:30 +00:00
91e6402230 ChangeLog update 2004-08-05 00:35:34 +00:00
Marcus Boerger 90e4fd0a0a - Fix bug #29523 (ReflectionParameter::isOptional() is incorrect) 2004-08-04 22:47:56 +00:00
Frank M. Kromann 5c412842d9 Move iconv exports to the iconv extension and make libxml depend on iconv 2004-08-04 16:47:17 +00:00
Frank M. Kromann 3944483cac Move iconv exports to the iconv extension 2004-08-04 16:46:48 +00:00
Zeev Suraski 99e343d250 Update prototypes 2004-08-04 16:41:13 +00:00
Antony Dovgal 58f9ed3a8e nuke unused variable 2004-08-04 14:57:40 +00:00
Zeev Suraski 84e6f8f075 Fix prototypes 2004-08-04 14:41:56 +00:00
Georg Richter 40defd5f2c forgot to remove debug variable :( (Thx to Derick) 2004-08-04 13:15:48 +00:00
Georg Richter b6da3465bc fixed bug #29522 2004-08-04 12:59:26 +00:00
Georg Richter 5caeacc9c3 fixed properties when connect wasn't called 2004-08-04 12:59:09 +00:00
Georg Richter 161b37ffbc fixed bug #29522 2004-08-04 12:28:09 +00:00
46baa28aaf ChangeLog update 2004-08-04 00:34:06 +00:00
Ilia Alshanetsky e7b73ddce7 Fixed argument handling in sun* functions. 2004-08-04 00:28:03 +00:00
Edin Kadribasic a0a046ca09 New libxml2 version for windows build.
Version 2.6.11.
http://ctindustries.net/dom/libxml/
2004-08-03 22:45:36 +00:00
Marcus Boerger ae2d914580 Update 2004-08-03 17:10:40 +00:00
Marcus Boerger 8ff8c8cc49 MFHed 2004-08-03 17:07:40 +00:00
Marcus Boerger c4508c377e Add new test 2004-08-03 16:59:53 +00:00
Marcus Boerger 7bfc91c3a9 - Fixed Bug #29505 get_class_vars() severely broken when used with arrays 2004-08-03 16:59:25 +00:00
Marcus Boerger 546b9b97ca BFN 2004-08-03 16:41:12 +00:00
Wez Furlong 4d39a171ee Even more verbosity... 2004-08-03 12:41:26 +00:00
Wez Furlong f765acea59 Even more verbosity in case of error 2004-08-03 09:44:04 +00:00
Antony Dovgal cc39d06e4e fix typo in mail.c: mail_force_extra_parameters -> mail.force_extra_parameters 2004-08-03 06:25:25 +00:00
Antony Dovgal addc7161b9 fix typo in php.ini: paramAters -> paramEters 2004-08-03 06:19:16 +00:00
Greg Beaver c0fd859688 commit for win32 - binary so line endings are always preserved - this time on HEAD, where it belongs 2004-08-03 04:36:00 +00:00
Frank M. Kromann 2acc314e6f sys/stat.h is includes in php_streams.h no need to do that again. 2004-08-03 04:15:34 +00:00
Wez Furlong 93cdab8b96 Catch exceptions from broken config.w32 files 2004-08-03 01:23:35 +00:00
Wez Furlong bfbd57905e Explicitly check PATH before cygwin for mc.exe, as we want MS message compiler,
not GNU Midnight Commander.
2004-08-03 01:03:32 +00:00
Wez Furlong bb099765a3 Revert the search path tweak; it broke the snap build for ming 2004-08-03 00:58:29 +00:00
Wez Furlong 99639f79b6 Avoid possible exception 2004-08-03 00:47:57 +00:00
a27afba6ff ChangeLog update 2004-08-03 00:34:47 +00:00
Wez Furlong e7aeb7a4c8 A better fix for the VC 2k max literal string limit
(also affects vc7)
2004-08-03 00:02:48 +00:00
Marcus Boerger 70268f05ef - Expand to test number of parameters 2004-08-02 23:10:53 +00:00
Marcus Boerger 84b90d6803 - Add methods to check parameter count 2004-08-02 23:10:29 +00:00
Marcus Boerger 2803965525 Correct test name 2004-08-02 23:00:35 +00:00
Marcus Boerger ef9e7e5d9e Add test 2004-08-02 22:59:58 +00:00
Ilia Alshanetsky cd7dafab7c Allow sqlite_fetch_column_types() to properly handle table names with
spaces in them.
2004-08-02 22:43:40 +00:00
Marcus Boerger a0ff48dbd3 - Change to use memcmp instead of strcmp 2004-08-02 22:41:34 +00:00
Frank M. Kromann 30cad86a8d VC6 hack to avoid CONFIGURE_COMMAND string length over 2048 when building many extensions 2004-08-02 18:48:49 +00:00
Wez Furlong d38f944d1c Better error reporting 2004-08-02 18:02:48 +00:00
Frank M. Kromann 07979b3ce4 Search in PATH before explicit_path. This resolves conflict between Microsoft and cygwin tools with the same name. 2004-08-02 17:54:49 +00:00
Frank M. Kromann 78306b2d1d Fix line endings 2004-08-02 17:45:54 +00:00
Andi Gutmans 57d57237cf - Fix typo 2004-08-02 17:36:45 +00:00
Marcus Boerger dc7cb19993 - Remove all for now
# - the optimization part can be done in apc or compareable products
# - NULL can be reintroduced later when needed
2004-08-02 16:38:09 +00:00
Marcus Boerger 1e6c12c919 MFB Enforce protocol of magic methods/classes 2004-08-02 08:29:59 +00:00
Marcus Boerger 5f0433db83 MFB: Enforce protocol on magic methods/functions 2004-08-02 08:27:57 +00:00
Sascha Schumann 5890197024 fix empty_string issue
Patch submitted by Antony Dovgal <tony2001@phpclub.net>
2004-08-02 08:27:46 +00:00
Sascha Schumann 26cb5355e0 don't read empty files
0 malloc noticed by Antony Dovgal <tony2001@phpclub.net>
2004-08-02 08:27:24 +00:00
Ilia Alshanetsky d746343928 A gentler (performance wise) allocation of buffer for temp variables. 2004-08-02 02:35:01 +00:00
dc2552a3ac ChangeLog update 2004-08-02 00:33:46 +00:00
Wez Furlong d898a7418b More hoops for VC6 2004-08-01 12:32:03 +00:00
Wez Furlong f93193ccff snap this rule in half for vc6 2004-08-01 11:33:58 +00:00
Wez Furlong 2a90ba3642 Juggle deps 2004-08-01 11:19:33 +00:00
2bf08d7d7d ChangeLog update 2004-08-01 00:33:37 +00:00
Wez Furlong 8085f48575 Enable usleep under win32 2004-08-01 00:29:50 +00:00
Wez Furlong 2c9d87c2f6 Fix bug #8314: sane syslog output to the WinNT event log.
Big fat note: if you're building from a .dsp, you need to replicate
the custom build step that uses MC to generate the message catalog

To make use of this fix, you need to register the event source; running "nmake
install" will handle this for you (if you also build the win32std extension
from pecl).

I'll arrange with Phil to have the installer handle this registration too.
2004-07-31 23:59:46 +00:00
Wez Furlong d45d690164 Go with new go-pear infrastructure 2004-07-31 18:59:50 +00:00
Wez Furlong c8c9add3be Un-bork 2004-07-31 18:52:04 +00:00
Wez Furlong 83472de48e Fix some misbehaving pecls (my own included ;-) 2004-07-31 18:46:18 +00:00
Wez Furlong 47e7fef08e Allow win32 stuff to build non-zts.
Fix stream crypto func (again? didn't I already commit that?)
2004-07-31 17:28:27 +00:00
Wez Furlong d4ad4ac370 Allow COM to build under non-zts.
Thanks Frank.
2004-07-31 17:27:03 +00:00
Wez Furlong d0be029908 zts fix... 2004-07-31 16:34:44 +00:00
Wez Furlong ae7285d658 Misc sendto/recvfrom tweaks that have been pending here for a while... 2004-07-31 10:56:55 +00:00
Wez Furlong 05a3fabacb Make sure this is initialized... 2004-07-31 10:49:09 +00:00
Wez Furlong 71078de71a Implement an fstat cache for plain files. 2004-07-31 10:09:25 +00:00
a701436da6 ChangeLog update 2004-07-31 00:34:20 +00:00
Andi Gutmans 79279dce97 - Add globals.c 2004-07-30 22:52:32 +00:00
Frank M. Kromann 62cd02c5a7 Adding missing PHPAPI for non ZTS builds 2004-07-30 22:49:02 +00:00
Andi Gutmans d7c839d54f - More ptr_stack optimizations and cleanups 2004-07-30 21:00:37 +00:00
Andi Gutmans 138ef9a43e - Improve performance by inlining zend_ptr_stack_n_push(). var_args can
usually not be inlined by compilers.
2004-07-30 20:16:40 +00:00
Frank M. Kromann 18896d510d Fix line endings 2004-07-30 16:49:55 +00:00
Edin Kadribasic 60a2ea476b Nuke references to InstallShield 2004-07-30 12:40:35 +00:00
Edin Kadribasic 6b8544ace5 Update for php5 2004-07-30 09:59:26 +00:00
Edin Kadribasic bef5858483 s/php.exe/php-cgi.exe 2004-07-30 09:29:43 +00:00
Ilia Alshanetsky 972940509f Fixed bug #29443 (Sanity check for wbmp detection). 2004-07-30 01:10:41 +00:00
381adeadff ChangeLog update 2004-07-30 00:33:59 +00:00
Edin Kadribasic 5ec7c94a95 Fixed bug #29264. Newer libintl redefines function names so all
PHP gettext function names become prefixed with libintl_
2004-07-29 22:23:23 +00:00
Edin Kadribasic 8a582fa707 Fix compilation on Windows (bug #29340) 2004-07-29 21:09:23 +00:00
Edin Kadribasic 7941b599fc No PECL should be enabled by default 2004-07-29 20:43:00 +00:00
Timm Friebe a75203a278 - Fixed bug #29064 (Exact numeric/decimal/money datatypes lose precision)
- Fixed bug #27843 (sybase_query() triggers (spurious?) notices when
  query is a stored procedure)
- Fixed multiple memory leaks with sybase_unbuffered_query()
- Changed sybase_query() to ignore store_results = false in  buffering
  mode, it would yield unpredictable results
- Fixed sybase_unbuffered_query() when used with store_results = false
- Changed sybase_fetch_object() to ignore second argument when passed
  as NULL
- Made sybase_data_seek() error message more verbose
- Fixed memory leak in shutdown when not all rows where selected in an
  unbuffered query
2004-07-29 19:32:46 +00:00
Marcus Boerger dcf007c6da - Increase performance of *sort() and some internal sort operations.
# This patch increases the performance of small arrays/hashes by up to ~15%
# The performance increase during the performance talk :-)
2004-07-29 19:18:46 +00:00
Sara Golemon d96e7a170c Revert goto opcode 2004-07-29 17:45:31 +00:00
Sara Golemon 37acb31c1a &tmp and label are the same thing, don't free it till we're done with it. 2004-07-29 16:49:59 +00:00
Sara Golemon 8c844fdde3 Plug some memory leaks and promote unknown label to E_ERROR.
If someone tries to jump to a non-existant label execution really
shouldn't try to carry on.
2004-07-29 16:36:00 +00:00
Sara Golemon 5865b3680a Add goto operator by popular request. 2004-07-29 15:23:47 +00:00
Wez Furlong 7b1d95adba Fix my favourite call user func mistake 2004-07-29 14:06:24 +00:00
Wez Furlong ff531cca4d Missing ifdef; thanks Tony 2004-07-29 11:54:12 +00:00
Christian Stocker 274dbb1b75 Remove News entry, which is already in 5.0 2004-07-29 06:40:45 +00:00
Wez Furlong 4da80ed1de Use the correct lengths when building the name -> dispid mapping 2004-07-29 06:19:27 +00:00
Wez Furlong dafda8936b Missing return statement 2004-07-29 03:58:00 +00:00
Wez Furlong cde7423cde Misc. win32 thread safety fixes. 2004-07-29 02:59:44 +00:00
c7f22e5aca ChangeLog update 2004-07-29 00:36:09 +00:00
Ilia Alshanetsky 739696d2d7 Fixed but #29437 (Possible crash inside array_walk_recursive()). 2004-07-29 00:35:07 +00:00
Ilia Alshanetsky 65ae35729d Proper parameter separators for PostgreSQL connection initialization. 2004-07-29 00:18:02 +00:00
Ilia Alshanetsky 45ddc6a5cd Better address availability check. 2004-07-28 23:34:27 +00:00
Wez Furlong f1072c2ae9 Ensure that port numbers get set in the peer/socket name functions.
(duh!)
2004-07-28 23:30:23 +00:00
Ilia Alshanetsky 445daac3ab Fixed possible crash in stream_socket_recvfrom() when length parameter has
a negative value.
2004-07-28 23:21:54 +00:00
Wez Furlong 637c424d64 Fix #29431: crash when parsing an invalid network address 2004-07-28 23:15:25 +00:00
Wez Furlong b1667b579b Fix: ini entries for dl()'d modules now work under ZTS
Side-effect: avoid possible crashes when multiple threads load/unload
modules and mess with the global hash table.
2004-07-28 22:56:01 +00:00
Marcus Boerger b1326c1c24 - Fix problem when inner constructor isn't called from derived constructor
(foound by david)
2004-07-28 22:53:10 +00:00
Marcus Boerger 171d01dfcf - Update examples 2004-07-28 22:52:11 +00:00
Andi Gutmans 7d80f82e70 - Fix MAC OSX to always use native DSO loading 2004-07-28 19:05:40 +00:00
Christian Stocker 5f888422d9 Fix for bug #29409 (Segfault in PHP functions called from XSLT). (by Rob) 2004-07-28 12:40:53 +00:00
Wez Furlong 3d9eeb4538 Move activescript sapi to PECL 2004-07-28 12:35:52 +00:00
Wez Furlong 9a19f065af - Rename ProgID from ActivePHP (tm) to PHPScript (bah)
- Convert line-endings for error messages to CRLF
- Misc other tweaks
2004-07-28 12:32:49 +00:00
Ilia Alshanetsky 89989f4e62 Fixed bug #29342 (strtotime() does not handle empty date string properly). 2004-07-28 01:44:39 +00:00
Marcus Boerger 0b40c1d82b - Trim error messages 2004-07-28 00:51:48 +00:00
Marcus Boerger 7557b388de - Fix shutdown problems 2004-07-28 00:40:01 +00:00
8059173ad3 ChangeLog update 2004-07-28 00:34:08 +00:00
Wez Furlong d5923d9121 equivalent segv/shutdown fix for failed connect 2004-07-28 00:15:19 +00:00
Wez Furlong d6bfe18b20 looks like this approach will give us our exceptions back 2004-07-28 00:10:28 +00:00
Marcus Boerger 23475d4147 - Add missing include 2004-07-28 00:03:44 +00:00
Marcus Boerger af900cb1d0 - Fix SEGV in case ctor failed 2004-07-28 00:01:12 +00:00
Wez Furlong 7d788aeba4 fix possible segv on failed connect 2004-07-27 23:58:19 +00:00
Wez Furlong 20eac88e58 Tidy up a few loose ends.
Override normal php.ini behaviour so that only the launching applications
folder is searched; this avoids picking up a default php.ini with an execution
time limit set.
2004-07-27 22:36:56 +00:00
Wez Furlong a783891e76 that's not my copy of the exception ctor, do don't fiddle its flags. 2004-07-27 22:17:40 +00:00
Wez Furlong aa74430ee0 "better" "fix" for #29392.
This fixes the crash; the sample script:

	$c = new COM('ADODB.Connection');
	echo $c;

still does not work because the engine tries to call $c->__toString() and the
ADODB object *might* implement that method, but doesn't know until you open the
connection.
2004-07-27 22:17:00 +00:00
Rob Richards 4897bbe125 prep for stable release 2004-07-27 21:06:04 +00:00
Ilia Alshanetsky fe50278d0a Fixed bug 29395 (sqlite_escape_string() returns bogus data on empty
strings).

Original Patch by: Tony
2004-07-27 16:40:43 +00:00
Marcus Boerger e9549a4f9c - Be specific about visibility 2004-07-27 16:21:56 +00:00
Ilia Alshanetsky 47bf193c53 Added missing comma. Thanks Tony. 2004-07-27 12:44:25 +00:00
Wez Furlong ac87800760 Major re-jig.
With thanks to Rob Richards for tracking down a couple of big bugs caused by
teeny bits of code.
2004-07-27 03:57:31 +00:00
Wez Furlong 3e327b6e21 protect caller from a potential bailout 2004-07-27 03:44:40 +00:00
Wez Furlong 530d41732d Revert last fix, because it breaks dynamic methods 2004-07-27 02:37:54 +00:00
Wez Furlong 20534bc445 Fix #29392 COM behaved badly for non-existant methods 2004-07-27 01:59:44 +00:00
Wez Furlong 03e298ec47 Fix two possible crashes. Latter is unlikely unless you are doing scary
things, but former looks nasty.
2004-07-27 01:33:25 +00:00
f5ddb60764 ChangeLog update 2004-07-27 00:34:31 +00:00
Ilia Alshanetsky 69a5253284 Fixed bug #29349 (imagecreatefromstring() crashes with external GD library)
Original Patch By: adconrad at debian dot org
2004-07-27 00:27:06 +00:00
Stanislav Malyshev 46455027fc quick fix for #29382 2004-07-26 17:12:17 +00:00
George Schlossnagle c7b7791029 allow pdo to be functionally inherited from. 2004-07-26 07:42:46 +00:00
Georg Richter 485f862b35 fixed bug #29335 2004-07-26 07:19:05 +00:00
Andrey Hristov e64af9a898 proto fix
(thanks to dave%php.net for spotting)
2004-07-26 06:32:54 +00:00
Georg Richter dede51adf6 fixed bug in mysql->client_version
added mysql->client_info property
2004-07-26 05:44:06 +00:00
7223a1bc88 ChangeLog update 2004-07-26 00:32:29 +00:00
Marcus Boerger 806245e185 - Do not autoload classes in skip code 2004-07-25 19:23:17 +00:00
Marcus Boerger 03c19c2b8f - Add new test 2004-07-25 19:21:21 +00:00
Marcus Boerger fd83c1ea41 - Add test 2004-07-25 19:20:47 +00:00
Ilia Alshanetsky 86efab2cc4 Fixed bug #29369 (Uploaded files with ' or " in their names get their names
truncated at those characters).
2004-07-25 19:19:26 +00:00
Marcus Boerger aae7a83df4 - Fixed Bug #29354 Exception constructor marked as both public and
protected
# If the constructor should be protected then it needs to be overwritten
# with a method that simply calls the parent, this function simply changes
# the visibility of the original function and makes that (public+protected)
2004-07-25 18:50:24 +00:00
Marcus Boerger 7e914380c9 - Show visibility errors (try to fix #29354) 2004-07-25 18:20:33 +00:00
Marcus Boerger f5cf052225 - Fix bug #29368 : The destructor is called when an exception is thrown from the constructor 2004-07-25 17:25:44 +00:00
Marcus Boerger ba55871325 - Add new patch for reordered shutdown sequence 2004-07-25 16:12:18 +00:00
Christian Stocker 0936bfa42c renamed registerNamespace() to registerXPathNamespace() 2004-07-25 14:59:21 +00:00
Rob Richards a1c33af793 export php_libxml_error_handler for win32 build 2004-07-25 12:00:28 +00:00
Christian Stocker 0b244def73 added new method SimpleXMLElement->registerNamespace(string prefix, string uri)
"registers a prefix <-> namespaceURI combination for use in a later xpath query. "
2004-07-25 11:02:43 +00:00
Christian Stocker a497e9bf75 use php_error_docref for libxml2 errors 2004-07-25 10:37:27 +00:00
Christian Stocker 6bd845e365 set errorhandler to generic php_libxml_error_handler 2004-07-25 08:37:39 +00:00
Marcus Boerger 0cd2da0309 - Execute destructors earlier (Florian Schaper, fschaper at intux org) 2004-07-25 07:14:49 +00:00
Marcus Boerger 40bf10319b - Add ReflectionParameter::isOptional() to test whether a parameter is
optional and also show this information in export.
2004-07-25 07:06:53 +00:00
Marcus Boerger 2b9c90efd3 - Add optional parameters $filename and $lineno to ErrorException
constructor to allow overwriting automatically retrieved information.
# It may be reasonable to delete the trace in case that feature is used.
2004-07-25 07:05:48 +00:00
b9638a4a50 ChangeLog update 2004-07-25 00:32:53 +00:00
Rob Richards 6b0cc4b54d fix build for VC++ 6
update dsp (Enable IObjectSafety)
2004-07-24 14:07:08 +00:00
Wez Furlong e67ad79599 Enable IObjectSafety so that we can be used in the M$ scripting control.
Thanks to Rob for checking this out.
2004-07-24 13:18:56 +00:00
Andrey Hristov d77a3f92e6 make behavior a bit field 2004-07-24 09:25:52 +00:00
Sara Golemon b0f344e493 Oh by the way, only use proxy mode for reading... 2004-07-24 04:14:26 +00:00
Sara Golemon 93f795bb9e Add proxy support to ftp using http wrapper 2004-07-24 04:01:48 +00:00
49e31e4b0f ChangeLog update 2004-07-24 00:32:58 +00:00
Andi Gutmans d1b29ad4c2 - There's no reason why gettimeofday() shouldn''t return the same time in
successive calls; this test fails spuriously on Linux/x86_64 (which has
a particularly fast gettimeofday() implementation).
- Joe Orton <jorton@redhat>
2004-07-23 21:53:16 +00:00
Georg Richter 8c6ab178e4 fixed bug #29311
added support for Cursors (MySQL 5.0.x)
2004-07-23 12:47:36 +00:00
Marcus Boerger 5ff2111a59 Fix 0 Byte leak after alloca to emalloc change 2004-07-23 07:13:54 +00:00
Edin Kadribasic 67c42a4a9b Updated version number 2004-07-23 02:28:18 +00:00
Ilia Alshanetsky 70d78cf7dd Fixed bug #29333 (output_buffering + trans_sess_id can corrupt output). 2004-07-23 02:05:49 +00:00
b5a926f78d ChangeLog update 2004-07-23 00:36:00 +00:00
Stefan Esser da3d9f8e25 Fix .dsp 2004-07-22 22:42:35 +00:00
Stefan Esser e58e6efd4d Merge changes from GD 2.0.28 2004-07-22 22:38:59 +00:00
Marcus Boerger 170c92dfbe Fix testcase 2004-07-22 18:40:19 +00:00
Rob Richards 950f950ecd add optional name parameter to next()
move to next named sibling skipping subtrees
2004-07-22 15:50:44 +00:00
Wez Furlong bb23e0d7cc news... 2004-07-22 12:15:12 +00:00
Wez Furlong 17adf438a2 Added stream_context_get_default() which returns the default context option.
You may then set options that affect streams operations for the whole script.

Added stream_socket_enable_crypto() which allows you to turn on or off a crypto
layer (eg: SSL/TLS) on stream, if supported by the underlying transport.

Registered a bunch of constants for that.
2004-07-22 12:12:28 +00:00
Zeev Suraski 34b00ca22a Fix bug in handling of protected properties 2004-07-22 11:54:27 +00:00
Zeev Suraski 2682bbd2b0 Fix Windows build 2004-07-22 08:06:52 +00:00
Georg Richter 96c002e07c changed warning (bug #29298) for outdated client library 2004-07-22 07:24:55 +00:00
Sara Golemon f064a2c8b9 This should fix binary safety for bound results or may coogle strike me down. 2004-07-22 03:23:33 +00:00
6789bcfed2 ChangeLog update 2004-07-22 00:34:33 +00:00
Edin Kadribasic 4162f81c88 HEAD is 5.1.0-dev now 2004-07-21 23:02:28 +00:00
Edin Kadribasic 728b849529 Fix for #28929 by Michael Sisolak 2004-07-21 22:52:50 +00:00
Edin Kadribasic d42361630f Fixed build 2004-07-21 22:13:31 +00:00
Ilia Alshanetsky 1c2a22025d Fixed bug #29209 (imap_fetchbody() doesn't check message index).
# Initial Patch by tony2001 at phpclub dot net
2004-07-21 21:57:03 +00:00
Andrey Hristov 5e5d2640fb add array_:
intersect_key()
intersect_ukey()
diff_key()
diff_ukey()
The first two by a patch of Cristiano Duarte. The second two were
implemented in almost the same way except one small difference.
2004-07-21 21:17:56 +00:00
Marcus Boerger 08fa8849b2 - Fixded #29291: get_class_vars() return names with NULLs 2004-07-21 18:36:51 +00:00
Christian Stocker 7b292e2fba Fix for Bug 29010 "make test does not wait to email address" (by Sebastian Nohn) 2004-07-21 11:19:09 +00:00
Sara Golemon dee534efba MDTM added to ftp_url_stat 2004-07-21 04:38:47 +00:00
Sara Golemon e5ed53b00a Add MTDM support to ftp_fopen_wrapper::url_stat() 2004-07-21 04:37:47 +00:00
Sara Golemon f502f56613 Oops, copy/paste typo 2004-07-21 02:39:53 +00:00
Sara Golemon ee93ed0aaa Persistent mallocs can return NULL (on failure) 2004-07-21 02:38:40 +00:00
a03447092d ChangeLog update 2004-07-21 00:34:28 +00:00
Ilia Alshanetsky 633ce3039f Abort earlier on invalid format. 2004-07-21 00:14:48 +00:00
Moriyoshi Koizumi 182e93ab6e - Add safe_pemalloc() 2004-07-20 21:55:57 +00:00
Rob Richards 23d202bd36 prep for alpha release 2004-07-20 20:57:10 +00:00
Moriyoshi Koizumi fbfd50bd1f - Correct range checks.
- Normalize negative values.
2004-07-20 20:08:08 +00:00
Moriyoshi Koizumi e87fe59e96 - Cleanups. 2004-07-20 19:41:37 +00:00
Moriyoshi Koizumi e25a206e87 oops... 2004-07-20 19:35:38 +00:00
Marcus Boerger 514dfbfbed - Need to set handle prior to calling zend_register_module_ex()
(Marcus, Kamesh Jayachandran <kameshj at fastmail dot fm>)
2004-07-20 19:23:55 +00:00
Moriyoshi Koizumi f89486a3a0 - Fix possible leaks / segfaults in persistent filter 2004-07-20 18:46:39 +00:00
Marcus Boerger 446cc107b8 - Fixed bug 28895 again (long live the dead) 2004-07-20 18:22:31 +00:00
Moriyoshi Koizumi c210c68add - Add more null checks. 2004-07-20 18:16:36 +00:00
Moriyoshi Koizumi 3e026f08ae - pemalloc() might return NULL. 2004-07-20 18:03:19 +00:00
Rob Richards 180306cf88 add optional flush paramter to xmlwriter_output_memory 2004-07-20 15:13:53 +00:00
Zeev Suraski 8a153add90 Fix prototypes 2004-07-20 10:43:19 +00:00
Zeev Suraski 7601484612 Add descriptions 2004-07-20 09:24:22 +00:00
Stanislav Malyshev 7bdc6d4bf4 add todo 2004-07-20 08:58:18 +00:00
Dmitry Stogov 31757a6aa8 Fixed incorrect HTTP headers in SOAP response 2004-07-20 07:39:32 +00:00
Sara Golemon f92797f4e0 Add bz2 stream filter support 2004-07-20 05:26:33 +00:00
Sara Golemon fc7197322c Make persistency safe 2004-07-20 05:08:52 +00:00
Ilia Alshanetsky f3f7b6242d Fixed bug #29226 (ctype_* functions missing validation of numeric string
representations).
2004-07-20 01:03:16 +00:00
6b2e7f941a ChangeLog update 2004-07-20 00:33:57 +00:00
Ilia Alshanetsky 0d085b253f Allow pgsql driver to accept login & password as separate parameters like
other PDO drivers can.
2004-07-20 00:33:21 +00:00
Frank M. Kromann 15b6714595 Fix compilation with older versions of libMing. Thanks Markus 2004-07-19 22:23:13 +00:00
Marcus Boerger 1f57188741 Add missing .cvsignore 2004-07-19 21:30:22 +00:00
Frank M. Kromann d889a123db Sync. with the API of libMing 0.3b1 2004-07-19 21:10:10 +00:00
Sebastian Bergmann fb3c30574e Fix prototypes: Reflection_* -> Reflection*. 2004-07-19 19:17:32 +00:00
Sebastian Bergmann 045d395d4a Make ReflectionClass::getMethod() and ReflectionClass::getProperty() raise an ReflectionException instead of returning NULL on failure. 2004-07-19 19:14:10 +00:00
Sebastian Bergmann 32e125e2b8 Do not use contracted forms. 2004-07-19 19:02:11 +00:00
Moriyoshi Koizumi 5ff410efdf - Fix test name 2004-07-19 18:49:20 +00:00
Moriyoshi Koizumi fae637021d - Oops, actual PR # is 29119, not 29199... 2004-07-19 17:51:41 +00:00
Moriyoshi Koizumi 46bc2c5ae2 - Fix bug #29199 (html_entity_decode() misbehaves with UTF-8) 2004-07-19 17:46:30 +00:00
Stanislav Malyshev d84702836a export INI parser 2004-07-19 16:32:24 +00:00
Dmitry Stogov 96fc48b606 Fixed bug #28985 (__getTypes() returning nothing on complex WSDL). 2004-07-19 14:55:35 +00:00
Wez Furlong 86b0967775 fix for empty_string changes.
Don't forget to allocate bytes for NUL terminators
2004-07-19 14:40:46 +00:00
Stanislav Malyshev e000da960b __set and __get will be called not only when variable doesn't exist but also when it's
invisible
2004-07-19 14:26:53 +00:00
Andi Gutmans f17aba3062 - Bump API number due to empty_string change 2004-07-19 14:19:21 +00:00
Dmitry Stogov 71b7a54377 Fixed bugs #29109 and #29236. (WSDL cache failure) 2004-07-19 13:58:10 +00:00
Wez Furlong 8a8b20877c Possible fix for #29258 (unverified)
win32 people, please test (I have no working win32 build env right now)
2004-07-19 13:39:57 +00:00
Dmitry Stogov e0f33c589f Fixed bug #29061 (soap extension segfaults). 2004-07-19 12:53:29 +00:00
Dmitry Stogov e35bc2e2b4 Fixed memory leak (related to new implementation of empty strings) 2004-07-19 11:38:40 +00:00
Wez Furlong 0d002664fb Implement empty-string-to-null conversion option for oracle compat.
This can be enabled using:
	$dbh->setAttribute(PDO_ATTR_ORACLE_NULLS, true);
2004-07-19 09:35:36 +00:00
Moriyoshi Koizumi 967c72865f - Fix a bug in iconv stream filter that prevents pending buckets from being
processed on flush operation (same issue pollita fixed several days ago).
2004-07-19 08:34:18 +00:00
Antony Dovgal cbd5396cbb fix build 2004-07-19 07:35:41 +00:00
Andi Gutmans 56f8195fe5 - Nuke empty_string. It is a reminanent from the time where RETURN_FALSE()
used to return "" and not bool(false). It's not worth keeping it because
  STR_FREE() and zval_dtor() always have to check for it and it slows down
  the general case. In addition, it seems that empty_string has been abused
  quite a lot, and was used not only for setting zval's but generally in
  PHP code instead of "", which wasn't the intention. Last but not least,
  nuking empty_string should improve stability as I doubt every place
  correctly checked if they are not mistakenly erealloc()'ing it or
  calling efree() on it.
  NOTE: Some code is probably broken. Each extension maintainer should
  check and see that my changes are OK. Also, I haven't had time to touch
  PECL yet. Will try and do it tomorrow.
2004-07-19 07:19:50 +00:00
Moriyoshi Koizumi 599ae4b1b5 - Fix VPATH build. (patch by Joe Orton) 2004-07-19 05:07:40 +00:00
Moriyoshi Koizumi 83d2cbd36e - Rename php_compat.h to php_onig_compat.h to avoid name conflict.
(reported by Joe Orton, thanks.)
2004-07-19 05:04:33 +00:00
fa958958c3 ChangeLog update 2004-07-19 00:35:14 +00:00
Ilia Alshanetsky 8840191d91 Fixed bug #28633 (sprintf incorrectly adding padding to floats). 2004-07-18 17:27:49 +00:00
Marcus Boerger 1ea073fb7a Update 2004-07-18 14:04:36 +00:00
Marcus Boerger 8860787ad9 - DOS 2 UNIX 2004-07-18 14:01:54 +00:00
Rob Richards 5c17925a7c add appendXML() to DOMFragment (chregu) 2004-07-18 13:47:44 +00:00
Marcus Boerger a7f36a5825 Update 2004-07-18 13:37:23 +00:00
Wez Furlong a5b697826b not safe for persistent streams 2004-07-18 13:23:40 +00:00
Rob Richards 42ade33fa6 MFB: enable exslt support for win32 builds
WS fixes for exslt tests
2004-07-18 13:23:33 +00:00
Rob Richards 8925d6573e MFB: add missing optional value param to createElementNS (chregu) 2004-07-18 13:16:15 +00:00
Marcus Boerger d19914a2aa remove this entry 2004-07-18 12:08:35 +00:00
Wez Furlong ed682e570a Implement extension load-order deps. 2004-07-18 12:03:51 +00:00
Rob Richards 22b70fcb31 MFB: Fixed bug #29221 (Segfault using DOM ownerDocument in a PHP object) 2004-07-18 11:45:12 +00:00
Andrey Hristov 96f5c697dd Add support for negative values of limit of explode(). If limit is negative
then all components are returned except the last abs(limit) ones.
2004-07-18 11:34:28 +00:00
Sergey Kartashoff 29ba20eea0 - A Bug #29147 was fixed. Thanks to Antony Dovgal <tony2001 at phpclub.net>
for his patch.
2004-07-18 11:18:04 +00:00
Wez Furlong 07a17df386 touch to avoid weird implicit makefile rule 2004-07-18 10:34:12 +00:00
Wez Furlong a0191f0505 don't allocate 0 bytes here either 2004-07-18 09:55:46 +00:00
Wez Furlong af9c0b84cd No point allocating 0 bytes 2004-07-18 09:55:02 +00:00
9f50e40643 ChangeLog update 2004-07-18 00:33:38 +00:00
Moriyoshi Koizumi 2af6d0e1ab - request_dtor() should be called if a fatal error occurs during activation
phase.
2004-07-17 21:29:50 +00:00
Georg Richter 15ef63b39a fixed paraenthesis warning in mysql_stmt_attr_set/get 2004-07-17 10:48:28 +00:00
394a0aea16 ChangeLog update 2004-07-17 00:32:34 +00:00
Sara Golemon b63393dea0 Update windows build files for filter support 2004-07-17 00:21:04 +00:00
Sara Golemon 5289adbe99 Add zlib stream filter support 2004-07-17 00:05:31 +00:00
Sara Golemon d40e78ad6f convert.* filters not consuming buckets_in on PSFS_FLUSH_* 2004-07-16 23:40:21 +00:00
Anantha Kesari H Y d725f3af91 NetWare specific openssl build file 2004-07-16 08:59:24 +00:00
Sebastian Bergmann d1106bb4dc (IMO) Better NEWS entry for true/false/null implementation change. 2004-07-16 07:31:34 +00:00
Marcus Boerger 5c0cd5c47e Correct version 2004-07-16 07:17:51 +00:00
Marcus Boerger 53697aeb0d BFN 2004-07-16 07:16:53 +00:00
Marcus Boerger 86d46f7cc1 - Speed up by making null/false/true reserved word which allows to drop
an opcode (FETCH_CONSTANT) for every usage.
2004-07-16 06:50:57 +00:00
Marcus Boerger 381a3b234f Bugfix #28464 catch() does not catch exceptions by interfaces 2004-07-16 06:39:50 +00:00
Ilia Alshanetsky 6dd2613d7b MFB: Fixed bug #28800 (strings beginning with "inf" improperly converted). 2004-07-16 02:03:25 +00:00
10d903343f ChangeLog update 2004-07-16 00:33:02 +00:00
Andi Gutmans eb2e53be99 - Improve performance of zend_alloc by stopping the size from being a bit
- field.
2004-07-15 22:59:54 +00:00
Zeev Suraski ce6717965e Fix sqlite build 2004-07-15 22:34:45 +00:00
Marcus Boerger 7722837517 - Use ErrorException instead of Exception 2004-07-15 22:22:06 +00:00
Marcus Boerger 1cdf7e66f4 - Add new class ErrorException to encapsulate errors in exceptions 2004-07-15 22:21:36 +00:00
Marcus Boerger 32bdaae133 Apply the fix 2004-07-15 22:17:55 +00:00
Marcus Boerger 1916223883 - Fix prototype 2004-07-15 19:41:22 +00:00
Marcus Boerger f2377c4d1f Synch comments 2004-07-15 19:09:37 +00:00
Dan Kalowsky f20849d12e Bug 29058 (patch submitted by bug reporter) 2004-07-15 15:09:12 +00:00
Magnus M��tt� cfc8accd3e Test for bug 26737:
Protected and private variables are not saved on serialization
when a user defined __sleep is used.
2004-07-15 11:52:04 +00:00
Antony Dovgal f6eb507b2c fix #29012 (Potential race during first connection) thanks to cjbj at hotmail dot com 2004-07-15 11:00:14 +00:00
Ilia Alshanetsky a75608c1de Fixed Bug #29075 (strnatcmp() incorrectly handles whitespace).
# Original Patch by: curt@php.net
2004-07-15 01:26:03 +00:00
5a9875f293 ChangeLog update 2004-07-15 00:33:10 +00:00
Edin Kadribasic 546e5bbc43 Made php -m output sorted case-insensitevly 2004-07-14 22:30:29 +00:00
Stefan Esser 90f151470c same bug. 2004-07-14 09:55:24 +00:00
Derick Rethans edce707f3b - Fixed text. 2004-07-14 09:54:02 +00:00
Stefan Esser 446f4d1bc2 Security Fix broken! Destroyed Basic auth. Blame: me
4.3.x not affected
2004-07-14 09:43:26 +00:00
Stanislav Malyshev d673ec0184 be consistent with write_dimension 2004-07-14 09:04:13 +00:00
Stanislav Malyshev 28d72ce2fd fix #28957 2004-07-14 09:01:58 +00:00
John Coggeshall 51ae1cc7bd Changing the Tidy version to 2.0 2004-07-14 02:41:53 +00:00
12c826c2e7 ChangeLog update 2004-07-14 00:33:30 +00:00
Sara Golemon c4bf45e39a Bugfix# 28829 bcmath values for 0, 1, and 2 initialized/freed at wrong time for threaded sapis. 2004-07-14 00:14:43 +00:00
Zeev Suraski 2ec89aa8e1 Add {{{ proto's 2004-07-13 20:41:55 +00:00
Andi Gutmans c18badbfbf - 5.0.1-dev 2004-07-13 19:56:49 +00:00
Marcus Boerger 1ea22c9004 Bugfix #29116 Zend constant warning uses memory after free (jdolecek at NetBSD dot org) 2004-07-13 19:22:11 +00:00
Andi Gutmans 399e2ca69f - Roll PHP 5.0.0 2004-07-13 19:05:31 +00:00
Wez Furlong cfb84391d0 add missing break 2004-07-13 17:14:49 +00:00
Georg Richter bfd3c9ecfb prototype fixes 2004-07-13 17:04:16 +00:00
Rob Richards d64a00da04 initial xmlwriter code 2004-07-13 17:01:30 +00:00
Wez Furlong 971fcd4254 Looks like Sara forgot to change this too. 2004-07-13 16:34:56 +00:00
Georg Richter f61dbf06a1 changed mysqli_stmt_reset (returns now bool instead of void) 2004-07-13 16:12:28 +00:00
Stefan Esser 0b9d614988 Fixed typo 2004-07-13 11:30:50 +00:00
Alan Knowles 6284b34e6e remove test dependance on postgres ** this still fails however 2004-07-13 07:20:45 +00:00
Alan Knowles ad2b89c9a3 ensure that test passes on systems without postgres built in. 2004-07-13 07:12:06 +00:00
196259d334 ChangeLog update 2004-07-13 00:32:43 +00:00
Wez Furlong ae40d0ef2a Fix file_get_contents() bug... 2004-07-12 20:59:24 +00:00
Timm Friebe e532feb29c - Initial release 2004-07-12 20:26:53 +00:00
Ilia Alshanetsky 905fbfd85e Added missing constant and correct bound column retrieval. When bound
columns are specified only return status (TRUE/FALSE) indicator.
2004-07-12 20:12:39 +00:00
Ilia Alshanetsky ddb32b11b2 Fixed a bug that could result in false failed query reporting on
INSERT/UPDATE/DELETE queries.
2004-07-12 20:09:19 +00:00
Ilia Alshanetsky 11371cd0a8 Missing patch. 2004-07-12 18:49:47 +00:00
Ilia Alshanetsky 7daa1cfecc Fixed bug #28999 (fixed behaviour of exec() to work as it did in 4.X). 2004-07-12 18:48:30 +00:00
Ilia Alshanetsky a8996a8ac6 Fixed bug #29086 & #28064 (PHP crashes on extremly long scripts). 2004-07-12 17:47:29 +00:00
Ilia Alshanetsky 0ad4c5037c Touch the file so that build system does not try to rebuild it. 2004-07-12 17:44:40 +00:00
Andi Gutmans 334ddd1248 - Convert zend_class_entry -> zend_class_entry * 2004-07-12 16:38:45 +00:00
Christian Stocker 14a61929b9 implement the clone code for the XSLTProcessor object and fix #29108
"xslt segfaults when ze1_compatibility_mode is on" (By Rob Richards)
2004-07-12 13:04:01 +00:00
Antony Dovgal 08486a0ea3 fix #28978 (multiple OCIBindByName on the same placeholder eats memory) 2004-07-12 07:40:05 +00:00
83e4bb727b ChangeLog update 2004-07-12 00:32:48 +00:00
Andrey Hristov c401890d17 reorder + add 2004-07-11 21:41:33 +00:00
Andrey Hristov 0eef82a733 fixing bug #28974 : overflow in array_slice()
The same kind of overflow appeared in array_splice(), substr() and
substr_replace()
2004-07-11 21:15:04 +00:00
Stefan Esser 0e8de752fd Ooups... 2004-07-11 21:14:50 +00:00
Stefan Esser 8c075de7c7 Fixed: PARSE_TYPE parameter to input_filter
Fixed: input_filter should also be able to filter empty variables by name
2004-07-11 20:13:39 +00:00
Andrey Hristov 268d3d7ba3 fixing bug #28739
array_*diff() and array_*intersect() not clearing the fci cache before work.
FCI call cache was introduced in HEAD. All functions that perform sorting
of arrays clear the fci cache before work. array_*diff() and\ array_*intersect()
were somehow missed to be updated.
2004-07-11 19:20:05 +00:00
Andrey Hristov bc69bdb01a fixing the name of the test 2004-07-11 18:19:43 +00:00
Andrey Hristov 7af08c0c34 fixing bug 29038:
EXTR_PREFIX_SAME is prevented from creating a new variable when the key
is a empty string. EXTR_PREFIX_ALL is also prevented from doing that,
but works for numbers.
2004-07-11 18:18:05 +00:00
Timm Friebe cd75bd4f65 - Initial release 2004-07-11 16:57:38 +00:00
Timm Friebe a14c66445a - Added simple test for float exceeding the float precision
# See bug #29064
2004-07-11 16:57:12 +00:00
Timm Friebe 1e6ccabd5f - Initial release 2004-07-11 16:31:32 +00:00
Timm Friebe d6c0fdfd2f - Initial release 2004-07-11 16:10:03 +00:00
Ilia Alshanetsky 4ebcb2ecfe Fixed bug #29008 (array_combine() does not handle non-numeric/string keys). 2004-07-11 15:23:57 +00:00
ed6ebf011b ChangeLog update 2004-07-11 00:33:01 +00:00
Jon Parise d46f8078f5 DragonFly BSD is derived from FreeBSD and requires the same floating point
precision fix.
2004-07-10 19:29:01 +00:00
Wez Furlong a0957e24b7 Fix #28402: no need for -ldl 2004-07-10 12:49:34 +00:00
Wez Furlong b52f7a01af Bump PHP 5 sqlite extension number to 2.0
(put some distance between it and the 4.3 version)
2004-07-10 12:30:18 +00:00
Wez Furlong e563b4eafa Upgrade bundled library to 2.8.14 + misc fixes
(http://www.sqlite.org/cvstrac/chngview?cn=1742)
2004-07-10 12:27:51 +00:00
Wez Furlong cd732f1a3f RIP: greedy ready problems
This allows people to use fread($fp, filesize($filename)) for regular files,
but packet-based non-greedy reads for everything else.
2004-07-10 10:54:09 +00:00
Andi Gutmans e5cfb1d05c - Better stability during premature shutdown of request startup 2004-07-10 07:46:17 +00:00
Ilia Alshanetsky 41b639fffe Fixed function proto. 2004-07-09 17:49:08 +00:00
69e20cf219 ChangeLog update 2004-07-09 00:33:24 +00:00
Ilia Alshanetsky 79c28f7618 Fixed bug #29049 (array sorting via user function/method does not validate
it).
2004-07-08 17:07:22 +00:00
Sergey Kartashoff c176a0ae20 - A bugfix in search words hilightling code (mnogosearch extension). 2004-07-08 05:22:14 +00:00
Ilia Alshanetsky f28b063c28 Last dangerous alloca() bits. 2004-07-08 01:18:43 +00:00
e080db4303 ChangeLog update 2004-07-08 00:32:27 +00:00
Edin Kadribasic 5e605e6dc2 Added memory-limit to the list of excluded force-on options 2004-07-07 12:25:10 +00:00
Georg Richter 9db1075c0e added check in config.m4 for deprecated library
added support for new 4.1.3-beta functions
	mysqli_stmt_field_count
	mysqli_stmt_attr_set
	mysqli_stmt_attr_get
removed support for deprecated/old api functions
fixed bug in constructor_get
2004-07-07 08:02:27 +00:00
1d89ed6ee3 ChangeLog update 2004-07-07 00:32:37 +00:00
Ilia Alshanetsky 5201e62d0d Fixed bug #29034 (wordwrap() returns a boolean when passed empty string). 2004-07-06 22:16:42 +00:00
Sergey Kartashoff c144fdf680 - Some fixes in mnogosearch extension 2004-07-06 19:08:45 +00:00
Marcus Boerger a2592aa5fb - Revert storing handle, got lost in 1.92, noticed by Kamesh Jayachandran
<kameshj at fastmail dot fm>
2004-07-06 18:48:39 +00:00
Ard Biesheuvel 1b4e0b81e3 Don't copy ini items to module globals
(fixed unregistered bug with mangled default_db setting)
2004-07-06 13:46:19 +00:00
Sebastian Bergmann b5aa8db6a3 Fix ZTS build. 2004-07-06 08:01:07 +00:00
Dmitry Stogov 8ad22e4279 Fixed bug #28751 (SoapServer does not call _autoload()) 2004-07-06 07:30:33 +00:00
ea5dc3d577 ChangeLog update 2004-07-06 00:33:32 +00:00
Ilia Alshanetsky 7f7f566318 Eliminate alloca() calls where they can be affected by the users. 2004-07-05 21:31:35 +00:00
Ilia Alshanetsky 2ba792cd0b Don't use alloca() where it can reached by the users. 2004-07-05 21:16:29 +00:00
Marcus Boerger c884ad017c - Bugfix: #29019 Database not closing 2004-07-05 19:36:10 +00:00
Andi Gutmans 82b4d74fd4 - Disable zend_mm for 5.0.0 2004-07-05 17:06:41 +00:00
Sascha Schumann f51ff68dfa - revert to proper behaviour 2004-07-05 11:41:31 +00:00
Moriyoshi Koizumi 8989a96789 - Add test for bug #28325. 2004-07-05 07:53:41 +00:00
447223f48a ChangeLog update 2004-07-05 00:32:17 +00:00
Ilia Alshanetsky d5fc8152f3 Eliminate potentially dangerous alloca(). 2004-07-04 17:13:58 +00:00
Ilia Alshanetsky a41a54f7fa Fixed bug #28963 (Missing space for \0 in address allocation). 2004-07-04 16:52:59 +00:00
Marcus Boerger c5b9577df8 Fix TSRM build 2004-07-04 11:14:17 +00:00
beb3674b7a ChangeLog update 2004-07-04 00:32:20 +00:00
Moriyoshi Koizumi 0f2c97f627 BFN 2004-07-03 16:14:46 +00:00
Moriyoshi Koizumi a92af73136 - Bugfix #28325 (circular reference serialisation). 2004-07-03 16:10:28 +00:00
ac3b484388 ChangeLog update 2004-07-03 00:32:18 +00:00
Andi Gutmans c3e9cd9c91 - Should fix mem leak with ZEND_MM. I made this change a while ago and
- rolled it back but I don't remember why. Please test!
2004-07-03 00:16:39 +00:00
ae5301c5d5 ChangeLog update 2004-07-02 00:32:17 +00:00
Ilia Alshanetsky 2ba0608e48 Do not use alloca() where it can be easily abused by the users.
# This probably should go into reflection code as well.
2004-07-01 16:28:32 +00:00
Sterling Hughes e8f984d77a fix bug wrt to CURLOPT_POSTFIELDS where if you passed it code like:
$fields = array('foo' => 'bar');
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_exec($ch);
as opposed to :

curl_setopt($ch, CURLOPT_POSTFIELDS, array('foo' => 'bar'));

you'll get a segv or no results, depending on the mood and cycle of the
moon.
2004-07-01 06:50:46 +00:00
Sara Golemon 76766f2d31 That hashtable should never have been an argument.... 2004-07-01 04:43:29 +00:00
d24e005477 ChangeLog update 2004-07-01 00:32:13 +00:00
Frank M. Kromann e0fe48e8a0 Fix for #28512. news entry 2004-06-30 19:51:28 +00:00
Frank M. Kromann 2067ce4079 Fix for #28512. Allocate enough space to store data 2004-06-30 19:46:57 +00:00
Ilia Alshanetsky bdfd8c60ea Another instance where alloca() is not needed. 2004-06-30 13:43:16 +00:00
Ard Biesheuvel 81dbc2fcef Fixed Ilia's alloca() issue/exploit
Removed pointless RINIT()
Use macros for consistent resource type names
2004-06-30 10:55:03 +00:00
Ilia Alshanetsky 690ca62dd3 Do not use alloca() where it can be abused through user input. 2004-06-30 01:12:06 +00:00
0850c7a348 ChangeLog update 2004-06-30 00:32:27 +00:00
Wez Furlong 8f435013ff Fix for Bug #28964 fread "greedy" behaviour 2004-06-29 21:51:53 +00:00
2aa678b088 ChangeLog update 2004-06-29 00:32:44 +00:00
Ilia Alshanetsky ed7d1e82c6 Removed pointless allocation check. 2004-06-28 22:31:28 +00:00
Sebastian Bergmann b163696106 Fix #28921 (Bad grammar in INSTALL). 2004-06-28 16:41:01 +00:00
Derick Rethans da2a1977b5 - Fixed bug with leap year checking. 2004-06-28 14:33:57 +00:00
Ard Biesheuvel 77804efa77 Revert at Derick's request 2004-06-28 11:41:08 +00:00
Ard Biesheuvel d1efeb2e58 BFN 2004-06-28 11:28:12 +00:00
Ard Biesheuvel 16e2d61435 MFB Fixed bug #28897 (-1 returned as -0.000 for 64-bit scaled int) 2004-06-28 11:27:05 +00:00
98672f41ba ChangeLog update 2004-06-28 00:33:21 +00:00
Ilia Alshanetsky 53bf5ccbea Removed unneeded if(). 2004-06-27 21:49:47 +00:00
Marcus Boerger 91f0369c80 Add more tests 2004-06-27 13:28:01 +00:00
Marcus Boerger 46e9abe602 Add more tests 2004-06-27 13:15:31 +00:00
99b5263afd ChangeLog update 2004-06-27 00:32:20 +00:00
Marcus Boerger 962b593455 BFN 2004-06-26 22:08:19 +00:00
Moriyoshi Koizumi d200a703e7 *** empty log message *** 2004-06-26 17:04:39 +00:00
Uwe Schindler 3bb7e73656 replace strncpy with strlcpy 2004-06-26 10:30:07 +00:00
Stefan Esser 59d55efb17 As long we pass values by reference this is needed. Ugly! 2004-06-26 08:09:28 +00:00
Stefan Esser ff716cbd3e Fixed input_filter functions need emalloc()ed values. 2004-06-26 07:57:37 +00:00
Stefan Esser 9e5ea7d229 strip_tags() news 2004-06-26 07:46:08 +00:00
Stefan Esser a27d5d842a IE we love you all... 2004-06-26 07:43:02 +00:00
Moriyoshi Koizumi 4eccf848ec - WS 2004-06-26 05:41:14 +00:00
Moriyoshi Koizumi b33f7ab671 - Fix bug #28466 (mbstring_convert_variables() problem). 2004-06-26 05:39:00 +00:00
f125cb60cc ChangeLog update 2004-06-26 00:32:25 +00:00
Edin Kadribasic 42f7b8026c MFB: Memory leak fix (patch by Joe Orton)
Fixes #28113. Adapted to php5 by Magnus Määttä.
2004-06-25 13:00:48 +00:00
Wez Furlong 5aa568254a export zend stream functions for zend extensions under windows 2004-06-25 12:55:11 +00:00
2f94546824 ChangeLog update 2004-06-25 00:32:18 +00:00
Sara Golemon a4032b68c6 Ease off on severity of new error (Using Resources as array offsets) 2004-06-24 16:35:34 +00:00
Ilia Alshanetsky e4e71fd8ba MFB: Fixed bug #1713 (possible crash inside tidy_get_error_buffer()). 2004-06-24 14:20:59 +00:00
Stefan Esser 476c9a3b3d Fixed zend_parse_parameters arguments... 2004-06-24 08:49:00 +00:00
Ilia Alshanetsky 81abbc66fc Added missing safe_mode & open_basedir checks. 2004-06-24 00:48:58 +00:00
ca14c9b1af ChangeLog update 2004-06-24 00:32:21 +00:00
Sara Golemon 56b153390b BugFix #28879 Inconsistent behavior between explicit and implicit array creation.
Changes:

Throw E_WARNING "Illegal offset type" when explicitly creating
array elements with objects, arrays, or resorces as indexes.
This matches implicit creation w/ obj/arr indices.

Throw E_WARNING "Resource ID#%ld used as offset, casting to integer (%ld)"
when implicitly creating array with resource as index. (BC)
2004-06-23 23:20:44 +00:00
George Schlossnagle 9e187415f9 fix for inheritability 2004-06-23 18:06:00 +00:00
Georg Richter f063bdec06 added php_mysqli_construct_get to support __construct in extended classes 2004-06-23 16:47:25 +00:00
Ard Biesheuvel dc701bfdab Changed name to all caps 2004-06-23 13:42:06 +00:00
Ard Biesheuvel 391cbac1f2 Return all results as strings until I can convince the other guys that
it should be otherwise
2004-06-23 13:26:09 +00:00
Ard Biesheuvel 18cd69ef74 Fixed some int-long issues 2004-06-23 13:20:54 +00:00
Uwe Schindler 8327d4e2bd Addendum to bug #28878: change ini keys as PHP_INI_SYSTEM
Also: Adding "bucket" parameter to non-ini-keys, Elemination of double CONTENT_TYPE/_LENGTH environment variables
2004-06-23 13:02:01 +00:00
Dmitry Stogov 2b216967f2 Added SOAP configuration directives 2004-06-23 08:18:42 +00:00
d632106e6e ChangeLog update 2004-06-23 00:32:34 +00:00
Andrei Zmievski 279770743f MFB (better error checking in pcre_fullinfo() calls). 2004-06-22 22:21:58 +00:00
Ilia Alshanetsky 869a90f015 Fixed possible buffer overflow. 2004-06-22 20:27:46 +00:00
Alex Leigh ef81373201 Updated the author's contact information. 2004-06-22 18:08:03 +00:00
Uwe Schindler e276023d82 Fix bug #28878: php.ini values in php5_execute 2004-06-22 15:37:40 +00:00
Dmitry Stogov 4ea8f4b9f2 BUGFIX: Segfault if server's URL has no path. ("http://192.168.8.1:180") 2004-06-22 12:42:17 +00:00
c055a54343 ChangeLog update 2004-06-22 00:32:17 +00:00
Ilia Alshanetsky a3bd8bcd7b Added missing safe_mode check. 2004-06-21 22:53:52 +00:00
Sara Golemon 8f2686df35 BFN 2004-06-21 21:09:13 +00:00
Sara Golemon a2c24ae90e BugFix#28868 (Part Two): This fixes thread unsafety in the userspace
filters which relates to the fix just applied for userspace wrappers.
2004-06-21 21:08:05 +00:00
Marcus Boerger dc66fb1f10 Fixed bug #28822: ArrayObject::offsetExists() works inverted 2004-06-21 19:15:27 +00:00
Sara Golemon 7fcfa8865e BugFix#28868: Wrapper hash not thread-safe.
Userdefined wrappers were being registered into a global wrapper hash
which can cross threads.  Termination of once instance then has the
potential to leave an active stream in another instance with no wrapper
leading to segfault.
2004-06-21 18:58:55 +00:00
Dmitry Stogov d9226a1dd0 Support for HTTP redirection. 2004-06-21 12:56:33 +00:00
Tomas V.V.Cox 1fb65c4c29 More output magic on nested exceptions 2004-06-21 04:36:17 +00:00
Tomas V.V.Cox 24ec6e5a5c Be more consistent with CS 2004-06-21 04:06:18 +00:00
Tomas V.V.Cox 8957eac122 Some API changes:
- addObserver() params order switched
- signal() -> _signal()
- public:getCauseMessage() -> private:_getCauseMessage()
- some more docs
2004-06-21 03:53:39 +00:00
907bdcbc7e ChangeLog update 2004-06-21 00:32:07 +00:00
Ilia Alshanetsky a99e4b5969 Removed unneeded checks around Zend allocation macros. 2004-06-20 21:40:43 +00:00
Tomas V.V.Cox d3de81fb00 First release of the PEAR_Exception class
(dedicated to otherbird)
2004-06-20 19:08:37 +00:00
Marcus Boerger 3df3aedbe0 BFN 2004-06-20 16:49:49 +00:00
Marcus Boerger de8b457181 Fix 2nd issue of bug #28831 2004-06-20 16:46:27 +00:00
Marcus Boerger 9219b746bb BFN 2004-06-20 09:39:09 +00:00
Marcus Boerger 43b4b086db Bugfix #28851: call_user_func_array has typo in error message 2004-06-20 09:37:35 +00:00
0e6607aa51 ChangeLog update 2004-06-20 00:32:22 +00:00
Jan Lehnardt 536e7448f6 - do it right (phpize path issue) 2004-06-19 20:32:07 +00:00
Jan Lehnardt f4f844af19 - phpize now can handle directories with spaces in their name (#28847) 2004-06-19 19:39:56 +00:00
Sebastian Bergmann f0903895c1 Reflection_* -> Reflection*. Patch by Timm Friebe. 2004-06-19 16:52:04 +00:00
8586e6505f ChangeLog update 2004-06-19 00:32:22 +00:00
Sara Golemon 2f7c5d30b5 Another typo in converting array index doubles to long. 2004-06-18 18:33:46 +00:00
George Schlossnagle 6cc2073d91 tests for the crash in bug 28213 2004-06-18 18:10:52 +00:00
George Schlossnagle 6d182a8456 fix for 28213.
class_name and call_type should be reinitialized on every loop iter.
2004-06-18 17:34:58 +00:00
Martin Jansen 6910e6432a * Replaced the nonexistent word "postfix" with "suffix". 2004-06-18 14:41:01 +00:00
Sara Golemon 851b6d4475 String lengths should never be char pointers. 2004-06-18 00:44:37 +00:00
Ilia Alshanetsky 0c72b185fd Fixed possible memory leak. 2004-06-18 00:44:35 +00:00
Ilia Alshanetsky cfbf5b24b7 Fixed bug #28818 (Apache 2 sapis do not export st_dev). 2004-06-18 00:36:58 +00:00
cf8a8a3189 ChangeLog update 2004-06-18 00:32:27 +00:00
Sara Golemon 96a8b63865 String length in parse_parameters should be int 2004-06-17 18:23:47 +00:00
ad2651a74a ChangeLog update 2004-06-17 00:32:34 +00:00
Ilia Alshanetsky 23d71171cf Properly handly high ascii values in soundex(). 2004-06-17 00:17:49 +00:00
Ard Biesheuvel 5232a5afea 64-bit bugsquash party 2004-06-16 23:57:25 +00:00
Stig Bakken 6527a454c6 * don't register object on destructors list if it does not define its
own emulated destructor
2004-06-16 16:26:12 +00:00
c9908cf81d ChangeLog update 2004-06-16 00:32:45 +00:00
Stefan Esser 585628ba67 Fixed: made 3rd parameter to strrpos 64bit safe. 2004-06-15 22:38:18 +00:00
Marcus Boerger 47c72816d3 BFN 2004-06-15 20:40:58 +00:00
Marcus Boerger 4fec06587b #28789: ReflectionProperty getValue() fails on public static members 2004-06-15 20:39:49 +00:00
Pierre Joye 0f5e09c192 - Fix #1602 (reported by Cox)
Do not display var=value using config-get (easy scripting)
2004-06-15 16:48:49 +00:00
Pierre Joye 98e59d58ba - Fix licence (#1645)
- update my status there, reflecting the fact for the past 11 months
2004-06-15 16:33:46 +00:00
Ard Biesheuvel 350e5aa862 Refactored statement allocation
Added emulated support for named input parameters
2004-06-15 14:16:22 +00:00
Rob Richards 196506caa1 BFN 2004-06-15 11:51:09 +00:00
Rob Richards 7c7c353b1e Fixed bug #28771 (Segfault when using xslt and clone)
Add test case for bug #28721
2004-06-15 11:50:56 +00:00
Ard Biesheuvel f91395898c Un-revert param index fix 2004-06-15 10:22:21 +00:00
Ard Biesheuvel e48d127244 Revert (at Wez's request) 2004-06-15 10:06:41 +00:00
313c153274 ChangeLog update 2004-06-15 00:32:13 +00:00
Antony Dovgal 0a896dd987 add tests 2004-06-14 20:10:27 +00:00
Antony Dovgal 73060a89ee fix config.m4
add fold markers
2004-06-14 19:58:35 +00:00
Marcus Boerger afc5a6145c Need {} here 2004-06-14 19:09:42 +00:00
Ard Biesheuvel 2cc63714a0 Added support for fetching and binding to blob fields 2004-06-14 10:56:49 +00:00
533cdf740f ChangeLog update 2004-06-14 00:32:15 +00:00
Ard Biesheuvel 2b21476207 Release isc statement handle when dtor is called
Don't separate() bound zvals
2004-06-13 23:24:31 +00:00
Ard Biesheuvel 1d7a4ed492 Report param binding error 2004-06-13 22:09:54 +00:00
Ilia Alshanetsky d26ddca966 Standardize error reporting. 2004-06-13 17:04:36 +00:00
Pierre Joye 495925381e - Typo (#1627) (cox) 2004-06-13 14:06:01 +00:00
Ard Biesheuvel cb4612c735 Added double param type 2004-06-13 10:35:01 +00:00
Rob Richards ac772dcf53 BFN 2004-06-13 10:13:12 +00:00
Rob Richards e73d498947 Fix bug #28721 (appendChild() and insertBefore() unset DOMText) 2004-06-13 10:12:47 +00:00
7fefbbb177 ChangeLog update 2004-06-13 00:32:14 +00:00
Ard Biesheuvel e1519d6f17 GCC fixes 2004-06-12 22:17:16 +00:00
Ard Biesheuvel c84c5640e7 Revert 2004-06-12 20:52:07 +00:00
Ard Biesheuvel 6b3cda310a Added client/server info attributes 2004-06-12 18:56:07 +00:00
Ard Biesheuvel 8a3975191e Hope I finally got it right this time 2004-06-12 18:42:13 +00:00
Ard Biesheuvel a312bb5ee3 Folding markers 2004-06-12 17:09:33 +00:00
Ard Biesheuvel ad568aab6f Improved error handling
Added some comments
2004-06-12 16:58:20 +00:00
Ard Biesheuvel c8c0ddb73d Removed dependency on regular interbase extension
Added support for all datatypes except BLOBs
2004-06-12 16:07:52 +00:00
Ard Biesheuvel 1fb48b5091 Removed dependency on regular interbase extension 2004-06-12 16:05:49 +00:00
Ard Biesheuvel 216c8ffdcd Use snaps. LIB path 2004-06-12 14:59:45 +00:00
Ard Biesheuvel 15fa07f0f6 Changed LIB path 2004-06-12 10:23:31 +00:00
Greg Beaver 22fa023c88 fix bug #1610: pear package doesn't validate deps
It was never validating deps at all!
2004-06-12 06:15:55 +00:00
Greg Beaver 9873fa5e42 fix bug #1615: installer must create extension dir if it doesn't exist, patch by Tomas 2004-06-12 05:48:10 +00:00
Greg Beaver 37b73ad2d4 fix bug #1617, exception never returned from PEAR_ErrorStack->push() 2004-06-12 05:36:40 +00:00
Ard Biesheuvel c29704e066 New test 2004-06-12 03:11:16 +00:00
Ard Biesheuvel 493b89c3b1 Nearly complete implementation
No date/time fields yet ...
2004-06-12 03:09:48 +00:00
Ard Biesheuvel 39a690321a Added export macros 2004-06-12 02:49:47 +00:00
Ard Biesheuvel 50ac5db2b4 Added double param type
Added param struct initialiser
Reversed param parsing order (long <=> string)
2004-06-12 02:35:34 +00:00
Ard Biesheuvel 1e3854597c Initial revision (incomplete) 2004-06-11 01:37:06 +00:00
d0c4b3d3ec ChangeLog update 2004-06-11 00:34:13 +00:00
Ilia Alshanetsky b9fc9a6ad1 hypot() is not experimental. 2004-06-10 19:38:24 +00:00
Ilia Alshanetsky af5501027f Fixed bug #28723 (Fixed mbstring config.m4 to work on OSes where test
command does not support -e parameter).
2004-06-10 14:06:17 +00:00
Marcus Boerger 7318238236 Changed that a bit 2004-06-10 13:39:30 +00:00
Marcus Boerger 4da11644de - Require a single white-space char after /** to start a doc comment that
way we prevent /*** from becoming a doc comment (as requested Derick).
2004-06-10 13:38:31 +00:00
Marcus Boerger c756609658 Add missing declaration 2004-06-10 12:32:09 +00:00
Marcus Boerger eb0cb6f6ed Small code layout change 2004-06-10 12:11:16 +00:00
Marcus Boerger 2784cf206d BFN 2004-06-10 11:57:04 +00:00
Marcus Boerger eefdd0ea49 Do not require NEWLINE at start of doccomment 2004-06-10 11:40:34 +00:00
Marcus Boerger 17a363a8f8 BFN 2004-06-10 11:29:15 +00:00
Marcus Boerger e8e4ff0aa1 Bugfix #28699: Reflection api bugs 2004-06-10 11:28:29 +00:00
Dmitry Stogov 0282ad792a Fixed bug #28702 (SOAP does not parse WSDL service address correctly). 2004-06-10 09:07:09 +00:00
622f7679f7 ChangeLog update 2004-06-10 00:32:42 +00:00
Frank M. Kromann 36702d5f41 Allow compilation on Win32.
Need to implement a few Windows specific functions.
2004-06-09 19:27:36 +00:00
Marcus Boerger bd05792560 BFN 2004-06-09 19:26:55 +00:00
Marcus Boerger 4213153365 Fix Bug #28694 ReflectionExtension::getFunctions() crashes PHP 2004-06-09 19:25:42 +00:00
Ilia Alshanetsky f0ffe7c85b Fixed bug #28175 (Allow bundled GD to compile against freetype 2.1.2). 2004-06-09 14:50:05 +00:00
Ilia Alshanetsky 3e638c84c0 Fixed bug #28525 (gmp_powm() does not work with hexadecimal string modulo
represented as a string).
Patch by: pickett at sumu dot org
2004-06-09 14:39:33 +00:00
Ilia Alshanetsky ccc580f408 Fixed memory leak on error in win32's opendir() emulation. (Patch by Wez) 2004-06-09 14:18:14 +00:00
1f73efcaab ChangeLog update 2004-06-09 00:32:35 +00:00
Ard Biesheuvel 4713ce294d Interbase news 2004-06-08 20:25:49 +00:00
Greg Beaver 1f20b7a626 partial fix, bug #1163: rpm build doesn't build properly 2004-06-08 18:26:20 +00:00
Greg Beaver d14e259823 fix bug #1550: Builder does not set path to match bin_dir 2004-06-08 18:15:11 +00:00
Greg Beaver 29a09f984c fix bug #1378: user/pass must be urldecoded from parse_url in Remote.php 2004-06-08 18:03:46 +00:00
Greg Beaver 628e5530b9 fix bug #1153: PEAR command doesn't work after upgrading
reverting earlier fix - people must have register_argc_argv=on set in php.ini for PEAR to work.
2004-06-08 17:56:22 +00:00
Greg Beaver b175cdfd71 fix bug #1581: unhelpful error message if "pear blatch" is typed 2004-06-08 17:49:19 +00:00
Ilia Alshanetsky 49fb6260b6 Fixed bug #1580 (Tidy configuration settings leak memory). 2004-06-08 14:55:14 +00:00
Ilia Alshanetsky b8c9e83664 Fixed bug #28692 (\0 in Authenticate header passed via safe_mode). 2004-06-08 13:23:38 +00:00
Ard Biesheuvel 4ea43fe019 ... back from the dead 2004-06-08 10:04:09 +00:00
Georg Richter 202d2990a9 fixed crash (changed MYSQL TO MY_MYSQL in mysql_stmt_init) 2004-06-08 06:20:58 +00:00
3fc91aff97 ChangeLog update 2004-06-08 00:32:15 +00:00
Andi Gutmans 0bdbbd379e - Go back to -dev (Shouldn't need another RC) 2004-06-07 18:57:34 +00:00
Ilia Alshanetsky ceb70dbc68 Fixed bug #28668 (glob() does not work with relative paths on Windows). 2004-06-07 18:30:16 +00:00
Frank M. Kromann f05924db37 Fix build on win32 2004-06-07 18:03:51 +00:00
Andi Gutmans 6f47156228 - Roll RC3 2004-06-07 14:23:45 +00:00
Ilia Alshanetsky ff5b2d27ae Fixed bug #28670 (WWW-Authentication header mangling with PCRE in safe_mode
adds extra spaces).
2004-06-07 13:51:50 +00:00
Georg Richter 1b40042b35 forgot to remove Win32 restrictions for mysql methods 2004-06-07 08:34:52 +00:00
Derick Rethans bcca5b8cb5 - Reorder (again :) 2004-06-07 07:05:33 +00:00
Sara Golemon 3838fb99de MFB: Missing length limit parameter. 2004-06-07 05:00:37 +00:00
1b80f44cf1 ChangeLog update 2004-06-07 00:32:20 +00:00
Pierre Joye d7e86a5669 - No more Pager 2004-06-06 22:49:46 +00:00
Pierre Joye 8217b64a33 - Update for 5.0RC3 2004-06-06 22:49:10 +00:00
Ilia Alshanetsky 9c1e668593 Fixed bug #28649 (Proper glob() return value on Linux when there are no
matches).
2004-06-06 16:21:11 +00:00
Greg Beaver b4ae74ae2c update unit tests for PEAR 1.4.0dev6, using new getDownloadURL() xml-rpc call 2004-06-06 16:05:30 +00:00
Greg Beaver 9304645cf3 add missing $tmp to PEAR::isError() 2004-06-06 15:52:41 +00:00
Greg Beaver 84d9651b61 eliminate the annoyance of upgrading from crapster versions of PEAR once and for all.
Now, if getopt2 exists, it is used, otherwise getopt is used.
2004-06-06 15:04:16 +00:00
Georg Richter f0468116c0 removed conditional defines for load_data_infile_handlers on windows
(4.1.2 windows build is fixed now on mysql.com)
2004-06-06 08:52:19 +00:00
Stefan Esser fb5cb59035 Fixed Zend Function Destructor to use correct TSRM handle. 2004-06-06 08:37:12 +00:00
Sebastian Bergmann 14deb9dd04 ZTS fixes. 2004-06-06 06:40:19 +00:00
ff5fca9aa0 ChangeLog update 2004-06-06 00:33:20 +00:00
Georg Richter 216eb9f82b added mysqli changes 2004-06-05 18:43:31 +00:00
Georg Richter 93bf6517df Major changes for 4.1.2-alpha/4.1.3-beta:
- added container for mysql structure
- added load data infile callback functions (currently disabled under win)
Bug fixes:
- fixed property changes (4.1.1 -> 4.1.2)
- fixed memleak in mysqli_connect
- fixed bug #28100
- fixed bug #28205
- fixed bug #28430
2004-06-05 18:31:56 +00:00
Marcus Boerger 120625548d BFN 2004-06-05 14:59:32 +00:00
Marcus Boerger a6276a2414 Fix #28641: Instance of Interface 2004-06-05 14:59:21 +00:00
Ard Biesheuvel 9579de34d7 Added support for date/time types
Added support for compiling/executing PHP code stored in the database
Added support for TSRM
2004-06-05 10:03:42 +00:00
85c9a200fa ChangeLog update 2004-06-05 00:32:05 +00:00
Ard Biesheuvel 2c97bc2632 Fixed unregistered bug [crash in http_build_query()] 2004-06-04 16:54:14 +00:00
Ilia Alshanetsky f9cec029c8 Fixed bug #28632 (Prevent open_basedir bypass in MySQL's LOAD DATA LOCAL). 2004-06-04 15:26:54 +00:00
Ard Biesheuvel a37ffd814d Added support for scaled integers 2004-06-04 14:26:33 +00:00
Ilia Alshanetsky 0e443166e0 Fixed bug #28627 (When multiple MySQL links are used default link is
leaked).
Patch by: gavin at ipalsoftware dot com
2004-06-04 13:49:31 +00:00
Ard Biesheuvel f1a4a14ccb Added support for arbitrary input types
Added support for NULL input/output values
2004-06-04 13:33:56 +00:00
Sara Golemon ceb73ca019 MFB BugFix# 28626 You can't #ifdef check a typedef. Just give it another name since it's only used once anyway. 2004-06-04 01:03:38 +00:00
89ee6b45ad ChangeLog update 2004-06-04 00:34:01 +00:00
Ard Biesheuvel f4777d14e3 Let DB handle type coercion instead of PHP 2004-06-03 23:18:36 +00:00
Ard Biesheuvel 0223de2c39 Added support for other return types besides VARCHAR 2004-06-03 15:31:17 +00:00
Ard Biesheuvel 38030dac08 Fixed blob ID format 2004-06-03 12:00:23 +00:00
Ard Biesheuvel 5be358667b news 2004-06-03 10:55:27 +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
3515 changed files with 5436 additions and 806960 deletions

No files matched your search

-359
View File
@@ -1,359 +0,0 @@
set $zts = 0
define ____executor_globals
if $zts
set $eg = ((zend_executor_globals) (*((void ***) tsrm_ls))[executor_globals_id-1])
else
set $eg = executor_globals
end
end
document ____executor_globals
portable way of accessing executor_globals
type "set $zts = 1" if you use --enable-maintainer-zts on your configure line
end
define dump_bt
set $t = $arg0
while $t
printf "[0x%08x] ", $t
if $t->function_state.function->common.function_name
printf "%s() ", $t->function_state.function->common.function_name
else
printf "??? "
end
if $t->op_array != 0
printf "%s:%d ", $t->op_array->filename, $t->opline->lineno
end
set $t = $t->prev_execute_data
printf "\n"
end
end
document dump_bt
dumps the current execution stack. usage: dump_bt executor_globals.current_execute_data
end
define printzv
set $ind = 1
____printzv $arg0 0
end
document printzv
prints content of zval
end
define ____printzv_contents
____executor_globals
set $zvalue = $arg0
if $zvalue.type == 0
set $typename = "NULL"
end
if $zvalue.type == 1
set $typename = "long"
end
if $zvalue.type == 2
set $typename = "double"
end
if $zvalue.type == 3
set $typename = "string"
end
if $zvalue.type == 4
set $typename = "array"
end
if $zvalue.type == 5
set $typename = "object"
end
if $zvalue.type == 6
set $typename = "bool"
end
if $zvalue.type == 7
set $typename = "resource"
end
if $zvalue.type == 8
set $typename = "constant"
end
if $zvalue.type == 9
set $typename = "const_array"
end
printf "(refcount=%d) %s: ", $zvalue.refcount, $typename
if $zvalue.type == 1
printf "%ld", $zvalue.value.lval
end
if $zvalue->type == 2
printf "%lf", $zvalue.value.dval
end
if $zvalue.type == 3
printf "\"%s\"(%d)", $zvalue.value.str.val, $zvalue.value.str.len
end
if $zvalue.type == 4
if ! $arg1
printf "{\n"
set $ind = $ind + 1
____print_ht $zvalue.value.ht
set $ind = $ind - 1
set $i = $ind
while $i > 0
printf " "
set $i = $i - 1
end
printf "}"
end
end
if $zvalue.type == 5
if ! $arg1
printf "(prop examination disabled due to a gdb bug)"
if $zvalue.value.obj.handlers->get_properties
# set $ht = $zvalue->value.obj.handlers->get_properties($zvalue)
# printf "{\n"
# set $ind = $ind + 1
# ____print_ht $ht
# set $ind = $ind - 1
# set $i = $ind
# while $i > 0
# printf " "
# set $i = $i - 1
# end
# printf "}"
end
end
end
if $zvalue.type == 6
if $zvalue.value.lval
printf "true"
else
printf "false"
end
end
if $zvalue.type == 7
printf "#%d", $zvalue.value.lval
end
printf "\n"
end
define ____printzv
____executor_globals
set $zvalue = $arg0
printf "[0x%08x] ", $zvalue
if $zvalue == $eg.uninitialized_zval_ptr
printf "*uninitialized* "
end
set $zcontents = *(struct _zval_struct *) $zvalue
if $arg1
____printzv_contents $zcontents $arg1
else
____printzv_contents $zcontents 0
end
end
define ____print_const_table
set $ht = $arg0
set $p = $ht->pListHead
while $p != 0
set $const = *(zend_constant *) $p->pData
set $i = $ind
while $i > 0
printf " "
set $i = $i - 1
end
if $p->nKeyLength > 0
printf "\"%s\" => ", $p->arKey
else
printf "%d => ", $p->h
end
____printzv_contents $const.value 0
set $p = $p->pListNext
end
end
define print_const_table
set $ind = 1
printf "[0x%08x] {\n", $arg0
____print_const_table $arg0
printf "}\n"
end
define ____print_ht
set $ht = $arg0
set $p = $ht->pListHead
while $p != 0
set $zval = *(struct _zval_struct **)$p->pData
set $i = $ind
while $i > 0
printf " "
set $i = $i - 1
end
if $p->nKeyLength > 0
printf "\"%s\" => ", $p->arKey
else
printf "%d => ", $p->h
end
____printzv $zval 1
set $p = $p->pListNext
end
end
define print_ht
set $ind = 1
printf "[0x%08x] {\n", $arg0
____print_ht $arg0
printf "}\n"
end
document print_ht
dumps elements of HashTable made of zval
end
define printzn
____executor_globals
set $ind = 0
set $znode = $arg0
if $znode->op_type == 1
set $optype = "IS_CONST"
end
if $znode->op_type == 2
set $optype = "IS_TMP_VAR"
end
if $znode->op_type == 4
set $optype = "IS_VAR"
end
if $znode->op_type == 8
set $optype = "IS_UNUSED"
end
printf "[0x%08x] %s", $znode, $optype
if $znode->op_type == 1
printf ": "
____printzv &$znode->u.constant 0
end
if $znode->op_type == 2
printf ": "
set $tvar = (union _temp_variable *)((char *)$eg.current_execute_data->Ts + $znode->u.var)
____printzv ((union _temp_variable *)$tvar)->tmp_var 0
end
if $znode->op_type == 4
printf ": "
set $tvar = (union _temp_variable *)((char *)$eg.current_execute_data->Ts + $znode->u.var)
____printzv *$tvar->var.ptr_ptr 0
end
if $znode->op_type == 8
printf "\n"
end
end
document printzn
print type and content of znode.
usage: printzn &opline->op1
end
define printzops
printf "op1 => "
printzn &execute_data->opline.op1
printf "op2 => "
printzn &execute_data->opline.op2
printf "result => "
printzn &execute_data->opline.result
end
document printzops
dump operands of the current opline
end
define zbacktrace
____executor_globals
dump_bt $eg.current_execute_data
end
document zbacktrace
prints backtrace.
This command is almost a short cut for
> (gdb) ____executor_globals
> (gdb) dump_bt $eg.current_execute_data
end
define zmemcheck
set $p = alloc_globals.head
set $stat = "?"
set $total_size = 0
if $arg0 != 0
set $not_found = 1
else
set $not_found = 0
end
printf " block size status file:line\n"
printf "-------------------------------------------------------------------------------\n"
while $p
set $aptr = $p + sizeof(struct _zend_mem_header) + sizeof(align_test)
if $arg0 == 0 || (void *)$aptr == (void *)$arg0
if $p->magic == 0x7312f8dc
set $stat = "OK"
end
if $p->magic == 0x99954317
set $stat = "FREED"
end
if $p->magic == 0xfb8277dc
set $stat = "CACHED"
end
set $filename = strrchr($p->filename, '/')
if !$filename
set $filename = $p->filename
else
set $filename = $filename + 1
end
printf " 0x%08x ", $aptr
if $p->size == sizeof(struct _zval_struct) && ((struct _zval_struct *)$aptr)->type >= 0 && ((struct _zval_struct *)$aptr)->type < 10
printf "ZVAL?(%-2d) ", $p->size
else
printf "%-9d ", $p->size
end
set $total_size = $total_size + $p->size
printf "%-06s %s:%d", $stat, $filename, $p->lineno
if $p->orig_filename
set $orig_filename = strrchr($p->orig_filename, '/')
if !$orig_filename
set $orig_filename = $p->orig_filename
else
set $orig_filename = $orig_filename + 1
end
printf " <= %s:%d\n", $orig_filename, $p->orig_lineno
else
printf "\n"
end
if $arg0 != 0
set $p = 0
set $not_found = 0
else
set $p = $p->pNext
end
else
set $p = $p->pNext
end
end
if $not_found
printf "no such block that begins at 0x%08x.\n", $aptr
end
if $arg0 == 0
printf "-------------------------------------------------------------------------------\n"
printf " total: %d bytes\n", $total_size
end
end
document zmemcheck
show status of a memory block.
usage: zmemcheck [ptr].
if ptr is 0, all blocks will be listed.
end
-272
View File
@@ -1,272 +0,0 @@
PHP Coding Standards
====================
This file lists several standards that any programmer, adding or changing
code in PHP, should follow. Since this file was added at a very late
stage of the development of PHP v3.0, the code base does not (yet) fully
follow it, but it's going in that general direction. Since we are now
well into the version 4 releases, many sections have been recoded to use
these rules.
Code Implementation
-------------------
[0] Document your code in source files and the manual. [tm]
[1] Functions that are given pointers to resources should not free them
For instance, function int mail(char *to, char *from) should NOT free
to and/or from.
Exceptions:
- The function's designated behavior is freeing that resource. E.g. efree()
- The function is given a boolean argument, that controls whether or not
the function may free its arguments (if true - the function must free its
arguments, if false - it must not)
- Low-level parser routines, that are tightly integrated with the token
cache and the bison code for minimum memory copying overhead.
[2] Functions that are tightly integrated with other functions within the
same module, and rely on each other non-trivial behavior, should be
documented as such and declared 'static'. They should be avoided if
possible.
[3] Use definitions and macros whenever possible, so that constants have
meaningful names and can be easily manipulated. The only exceptions
to this rule are 0 and 1, when used as false and true (respectively).
Any other use of a numeric constant to specify different behavior
or actions should be done through a #define.
[4] When writing functions that deal with strings, be sure to remember
that PHP holds the length property of each string, and that it
shouldn't be calculated with strlen(). Write your functions in a such
a way so that they'll take advantage of the length property, both
for efficiency and in order for them to be binary-safe.
Functions that change strings and obtain their new lengths while
doing so, should return that new length, so it doesn't have to be
recalculated with strlen() (e.g. php_addslashes())
[5] NEVER USE strncat(). If you're absolutely sure you know what you're doing,
check its man page again, and only then, consider using it, and even then,
try avoiding it.
[6] Use PHP_* macros in the PHP source, and ZEND_* macros in the Zend
part of the source. Although the PHP_* macro's are mostly aliased to the
ZEND_* macros it gives a better understanding on what kind of macro you're
calling.
[7] When commenting out code using a #if statement, do NOT use 0 only. Instead
use "<cvs username here>_0". For example, #if FOO_0, where FOO is your
cvs user foo. This allows easier tracking of why code was commented out,
especially in bundled libraries.
[8] Do not define functions that are not available. For instance, if a
library is missing a function, do not define the PHP version of the
function, and do not raise a run-time error about the function not
existing. End users should use function_exists() to test for the
existence of a function
[9] Prefer emalloc(), efree(), estrdup(), etc. to their standard C library
counterparts. These functions implement an internal "safety-net"
mechanism that ensures the deallocation of any unfreed memory at the
end of a request. They also provide useful allocation and overflow
information while running in debug mode.
In almost all cases, memory returned to the engine must be allocated
using emalloc().
The use of malloc() should be limited to cases where a third-party
library may need to control or free the memory, or when the memory in
question needs to survive between multiple requests.
Naming Conventions
------------------
[1] Function names for user-level functions should be enclosed with in
the PHP_FUNCTION() macro. They should be in lowercase, with words
underscore delimited, with care taken to minimize the letter count.
Abbreviations should not be used when they greatly decrease the
readability of the function name itself.
Good:
'mcrypt_enc_self_test'
'mysql_list_fields'
Ok:
'mcrypt_module_get_algo_supported_key_sizes'
(could be 'mcrypt_mod_get_algo_sup_key_sizes'?)
'get_html_translation_table'
(could be 'html_get_trans_table'?)
Bad:
'hw_GetObjectByQueryCollObj'
'pg_setclientencoding'
'jf_n_s_i'
[2] If they are part of a "parent set" of functions, that parent should
be included in the user function name, and should be clearly related
to the parent program or function family. This should be in the form
of parent_*.
A family of 'foo' functions, for example:
Good:
'foo_select_bar'
'foo_insert_baz'
'foo_delete_baz'
Bad:
'fooselect_bar'
'fooinsertbaz'
'delete_foo_baz'
[3] Function names used by user functions should be prefixed
with "_php_", and followed by a word or an underscore-delimited list of
words, in lowercase letters, that describes the function. If applicable,
they should be declared 'static'.
[4] Variable names must be meaningful. One letter variable names must be
avoided, except for places where the variable has no real meaning or
a trivial meaning (e.g. for (i=0; i<100; i++) ...).
[5] Variable names should be in lowercase. Use underscores to separate
between words.
[6] Method names follow the 'studlyCaps' (also referred to as 'bumpy case'
or 'camel caps') naming convention, with care taken to minimize the
letter count. The initial letter of the name is lowercase, and each
letter that starts a new 'word' is capitalized.
Good:
'connect()'
'getData()'
'buildSomeWidget()'
Bad:
'get_Data()'
'buildsomewidget'
'getI()'
[7] Classes should be given descriptive names. Avoid using abbreviations
where possible. Each word in the class name should start with a capital
letter, with words underscore delimited. The class name should be prefixed
with the name of the 'parent set'.
Good:
'Curl'
'Foo_Bar'
Bad:
'foobar'
'foo_bar'
'FooBar'
Syntax and indentation
----------------------
[1] Never use C++ style comments (i.e. // comment). Always use C-style
comments instead. PHP is written in C, and is aimed at compiling
under any ANSI-C compliant compiler. Even though many compilers
accept C++-style comments in C code, you have to ensure that your
code would compile with other compilers as well.
The only exception to this rule is code that is Win32-specific,
because the Win32 port is MS-Visual C++ specific, and this compiler
is known to accept C++-style comments in C code.
[2] Use K&R-style. Of course, we can't and don't want to
force anybody to use a style he or she is not used to, but,
at the very least, when you write code that goes into the core
of PHP or one of its standard modules, please maintain the K&R
style. This applies to just about everything, starting with
indentation and comment styles and up to function declaration
syntax.
(see also http://www.catb.org/~esr/jargon/html/I/indent-style.html)
[3] Be generous with whitespace and braces. Always prefer:
if (foo) {
bar;
}
to:
if(foo)bar;
Keep one empty line between the variable declaration section and
the statements in a block, as well as between logical statement
groups in a block. Maintain at least one empty line between
two functions, preferably two.
[4] When indenting, use the tab character. A tab is expected to represent
four spaces. It is important to maintain consistency in indenture so
that definitions, comments, and control structures line up correctly.
[5] Preprocessor statements (#if and such) MUST start at column one. To
indent preprocessor directives you should put the # at the beginning
of a line, followed by any number of whitespace.
Documentation and Folding Hooks
-------------------------------
In order to make sure that the online documentation stays in line with
the code, each user-level function should have its user-level function
prototype before it along with a brief one-line description of what the
function does. It would look like this:
/* {{{ proto int abs(int number)
Returns the absolute value of the number */
PHP_FUNCTION(abs)
{
...
}
/* }}} */
The {{{ symbols are the default folding symbols for the folding mode in
Emacs and vim (set fdm=marker). Folding is very useful when dealing with
large files because you can scroll through the file quickly and just unfold
the function you wish to work on. The }}} at the end of each function marks
the end of the fold, and should be on a separate line.
The "proto" keyword there is just a helper for the doc/genfuncsummary script
which generates a full function summary. Having this keyword in front of the
function prototypes allows us to put folds elsewhere in the code without
messing up the function summary.
Optional arguments are written like this:
/* {{{ proto object imap_header(int stream_id, int msg_no [, int from_length [, int subject_length [, string default_host]]])
Returns a header object with the defined parameters */
And yes, please keep the prototype on a single line, even if that line
is massive.
New and Experimental Functions
-----------------------------------
To reduce the problems normally associated with the first public
implementation of a new set of functions, it has been suggested
that the first implementation include a file labeled 'EXPERIMENTAL'
in the function directory, and that the functions follow the
standard prefixing conventions during their initial implementation.
The file labelled 'EXPERIMENTAL' should include the following
information:
Any authoring information (known bugs, future directions of the module).
Ongoing status notes which may not be appropriate for CVS comments.
Aliases & Legacy Documentation
-----------------------------------
You may also have some deprecated aliases with close to duplicate
names, for example, somedb_select_result and somedb_selectresult. For
documentation purposes, these will only be documented by the most
current name, with the aliases listed in the documentation for
the parent function. For ease of reference, user-functions with
completely different names, that alias to the same function (such as
highlight_file and show_source), will be separately documented. The
proto should still be included, describing which function is aliased.
Backwards compatible functions and names should be maintained as long
as the code can be reasonably be kept as part of the codebase. See
/phpdoc/README for more information on documentation.
-2
View File
@@ -1,2 +0,0 @@
For the list of people who've put work into PHP, please see
http://www.php.net/credits.php
-9937
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
@@ -1,456 +0,0 @@
List of PHP maintainers
=======================
Maintenance legend
------------------
Supported: Someone is actually paid to look after this.
Maintained: Someone actually looks after it.
Odd Fixes: It has a maintainer but they don't have time to do
much other than throw the odd patch in. See below.
Orphan: No current maintainer [but maybe you could take the
role as you write your new code].
Obsolete: Old code. Something tagged obsolete generally means
it has been replaced by a better system and you
should be using that.
Unknown: Not known at this time.
Status legend
-------------
Working: Working under both Windows and Unix.
Windows: Working only under Windows.
Unix: Working only under Unix.
Experimental: Under development or initial release.
Not Working: Not working.
Unknown: Status unknown.
== Server APIs ==
-------------------------------------------------------------------------------
EXTENSION: 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
@@ -1,422 +0,0 @@
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
@@ -1,68 +0,0 @@
--------------------------------------------------------------------
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
@@ -1,23 +0,0 @@
#
# Zend
#
$(builddir)/zend_language_scanner.lo: $(builddir)/zend_language_parser.h
$(builddir)/zend_ini_scanner.lo: $(builddir)/zend_ini_parser.h
$(builddir)/zend_language_scanner.c: $(srcdir)/zend_language_scanner.l
$(LEX) -Pzend -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_language_scanner.l
$(builddir)/zend_language_parser.h: $(builddir)/zend_language_parser.c
$(builddir)/zend_language_parser.c: $(srcdir)/zend_language_parser.y
$(YACC) -p zend -v -d $(srcdir)/zend_language_parser.y -o $@
$(builddir)/zend_ini_parser.h: $(builddir)/zend_ini_parser.c
$(builddir)/zend_ini_parser.c: $(srcdir)/zend_ini_parser.y
$(YACC) -p ini_ -v -d $(srcdir)/zend_ini_parser.y -o $@
$(builddir)/zend_ini_scanner.c: $(srcdir)/zend_ini_scanner.l
$(LEX) -Pini_ -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_ini_scanner.l
$(builddir)/zend_indent.lo $(builddir)/zend_highlight.lo $(builddir)/zend_compile.lo: $(builddir)/zend_language_parser.h
-76
View File
@@ -1,76 +0,0 @@
mkinstalldirs = $(top_srcdir)/build/shtool mkdir -p
INSTALL = $(top_srcdir)/build/shtool install -c
INSTALL_DATA = $(INSTALL) -m 644
DEFS = -DPHP_ATOM_INC -I$(top_builddir)/include -I$(top_builddir)/main -I$(top_srcdir)
COMMON_FLAGS = $(DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CPPFLAGS) $(PHP_FRAMEWORKPATH)
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:
-470
View File
@@ -1,470 +0,0 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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
@@ -1,115 +0,0 @@
This is the first file you should be reading after you get your CVS account.
We'll assume you're basically familiar with CVS, but feel free to post
your questions on the mailing list. Please have a look at
http://cvsbook.red-bean.com/ for more detailed information on CVS.
PHP is developed through the efforts of a large number of people.
Collaboration is a Good Thing(tm), and CVS lets us do this. Thus, following
some basic rules with regards to CVS usage will:
a. Make everybody happier, especially those responsible for maintaining
the CVS itself.
b. Keep the changes consistently well documented and easily trackable.
c. Prevent some of those 'Oops' moments.
d. Increase the general level of good will on planet Earth.
Having said that, here are the organizational rules:
1. Respect other people working on the project.
2. Discuss any significant changes on the list before committing.
3. Look at EXTENSIONS file to see who is the primary maintainer of
the code you want to contribute to.
4. If you "strongly disagree" about something another person did, don't
start fighting publicly - take it up in private email.
5. If you don't know how to do something, ask first!
6. Test your changes before committing them. We mean it. Really.
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
@@ -1,39 +0,0 @@
Between PHP 4.0.6 and 4.1.0, the Zend module struct changed in a way
that broke both source and binary compatibility. If you are
maintaining a third party extension, here's how to update it:
If this was your old module entry:
zend_module_entry foo_module_entry = {
"foo", /* extension name */
foo_functions, /* extension function list */
NULL, /* extension-wide startup function */
NULL, /* extension-wide shutdown function */
PHP_RINIT(foo), /* per-request startup function */
PHP_RSHUTDOWN(foo), /* per-request shutdown function */
PHP_MINFO(foo), /* information function */
STANDARD_MODULE_PROPERTIES
};
Here's how it should look if you want your code to build with PHP
4.1.0 and up:
zend_module_entry foo_module_entry = {
#if ZEND_MODULE_API_NO >= 20010901
STANDARD_MODULE_HEADER,
#endif
"foo", /* extension name */
foo_functions, /* extension function list */
NULL, /* extension-wide startup function */
NULL, /* extension-wide shutdown function */
PHP_RINIT(foo), /* per-request startup function */
PHP_RSHUTDOWN(foo), /* per-request shutdown function */
PHP_MINFO(foo), /* information function */
#if ZEND_MODULE_API_NO >= 20010901
FOO_VERSION, /* extension version number (string) */
#endif
STANDARD_MODULE_PROPERTIES
};
If you don't care about source compatibility with earlier PHP releases
than 4.1.0, you can drop the #if/#endif lines.
-194
View File
@@ -1,194 +0,0 @@
(NOTE: you may also want to take a look at the pear package
PECL_Gen, a PHP-only alternative for this script that
supports way more extension writing tasks and is
supposed to replace ext_skel completely in the long run ...)
WHAT IT IS
It's a tool for automatically creating the basic framework for a PHP module
and writing C code handling arguments passed to your functions from a simple
configuration file. See an example at the end of this file.
HOW TO USE IT
Very simple. First, change to the ext/ directory of the PHP 4 sources. If
you just need the basic framework and will be writing all the code in your
functions yourself, you can now do
./ext_skel --extname=module_name
and everything you need is placed in directory module_name.
[ Note that GNU awk is likely required for this script to work. Debian
systems seem to default to using mawk, so you may need to change the
#! line in skeleton/create_stubs and the cat $proto | awk line in
ext_skel to use gawk explicitly. ]
If you don't need to test the existence of any external header files,
libraries or functions in them, the module is already almost ready to be
compiled in PHP. Just remove 3 comments in your_module_name/config.m4,
change back up to PHP sources top directory, and do
./buildconf; ./configure --enable-module_name; make
But if you already have planned the overall scheme of your module, what
functions it will contain, their return types and the arguments they take
(a very good idea) and don't want to bother yourself with creating function
definitions and handling arguments passed yourself, it's time to create a
function definitions file, which you will give as an argument to ext_skel
with option
--proto=filename.
FORMAT OF FUNCTION DEFINITIONS FILE
All the definitions must be on one line. In it's simplest form, it's just
the function name, e.g.
my_function
but then you'll be left with an almost empty function body without any
argument handling.
Arguments are given in parenthesis after the function name, and are of
the form 'argument_type argument_name'. Arguments are separated from each
other with a comma and optional space. Argument_type can be one of int,
bool, double, float, string, array, object or mixed.
An optional argument is separated from the previous by an optional space,
then '[' and of course comma and optional space, like all the other
arguments. You should close a row of optional arguments with same amount of
']'s as there where '['s. Currently, it does not harm if you forget to do it
or there is a wrong amount of ']'s, but this may change in the future.
An additional short description may be added after the parameters.
If present it will be filled into the 'proto' header comments in the stubs
code and the <refpurpose> tag in the XML documentation.
An example:
my_function(int arg1, int arg2 [, int arg3 [, int arg4]]) this is my 1st
Arguments arg3 and arg4 are optional.
If possible, the function definition should also contain it's return type
in front of the definition. It's not actually used for any C code generating
purposes but PHP in-source documentation instead, and as such, very useful.
It can be any of int, double, string, bool, array, object, resource, mixed
or void.
The file must contain nothing else but function definitions, no comments or
empty lines.
OTHER OPTIONS
--no-help
By default, ext_skel creates both comments in the source code and a test
function to help first time module writers to get started and testing
configuring and compiling their module. This option turns off all such things
which may just annoy experienced PHP module coders. Especially useful with
--stubs=file
which will leave out also all module specific stuff and write just function
stubs with function value declarations and passed argument handling, and
function entries and definitions at the end of the file, for copying and
pasting into an already existing module.
--assign-params
--string-lens
By default, function proto 'void foo(string bar)' creates the following:
...
zval **bar;
... (zend_get_parameters_ex() called in the middle...)
convert_to_string_ex(bar);
Specifying both of these options changes the generated code to:
...
zval **bar_arg;
int bar_len;
char *bar = NULL;
... (zend_get_parameters_ex() called in the middle...)
convert_to_string_ex(bar_arg);
bar = Z_STRVAL_PP(bar_arg);
bar_len = Z_STRLEN_PP(bar_arg);
You shouldn't have to ask what happens if you leave --string-lens out. If you
have to, it's questionable whether you should be reading this document.
--with-xml[=file]
Creates the basics for phpdoc .xml file.
--full-xml
Not implemented yet. When or if there will ever be created a framework for
self-contained extensions to use phpdoc system for their documentation, this
option enables it on the created xml file.
CURRENT LIMITATIONS, BUGS AND OTHER ODDITIES
Only arguments of types int, bool, double, float, string and array are
handled. For other types you must write the code yourself. And for type
mixed, it wouldn't even be possible to write anything, because only you
know what to expect.
It can't handle correctly, and probably never will, variable list of
of arguments. (void foo(int bar [, ...])
Don't trust the generated code too much. It tries to be useful in most of
the situations you might encounter, but automatic code generation will never
beat a programmer who knows the real situation at hand. ext_skel is generally
best suited for quickly generating a wrapper for c-library functions you
might want to have available in PHP too.
This program doesn't have a --help option. It has --no-help instead.
EXAMPLE
The following _one_ line
bool my_drawtext(resource image, string text, resource font, int x, int y [, int color])
will create this function definition for you (note that there are a few
question marks to be replaced by you, and you must of course add your own
value definitions too):
/* {{{ proto bool my_drawtext(resource image, string text, resource font, int x, int y[, int color])
*/
PHP_FUNCTION(my_drawtext)
{
zval **image, **text, **font, **x, **y, **color;
int argc;
int image_id = -1;
int font_id = -1;
argc = ZEND_NUM_ARGS();
if (argc < 5 || argc > 6 || zend_get_parameters_ex(argc, &image, &text, &font, &x, &y, &color) == FAILURE) {
WRONG_PARAM_COUNT;
}
ZEND_FETCH_RESOURCE(???, ???, image, image_id, "???", ???_rsrc_id);
ZEND_FETCH_RESOURCE(???, ???, font, font_id, "???", ???_rsrc_id);
switch (argc) {
case 6:
convert_to_long_ex(color);
/* Fall-through. */
case 5:
convert_to_long_ex(y);
convert_to_long_ex(x);
/* font: fetching resources already handled. */
convert_to_string_ex(text);
/* image: fetching resources already handled. */
break;
default:
WRONG_PARAM_COUNT;
}
php_error(E_WARNING, "my_drawtext: not yet implemented");
}
/* }}} */
-127
View File
@@ -1,127 +0,0 @@
New parameter parsing functions
===============================
It should be easier to parse input parameters to an extension function.
Hence, borrowing from Python's example, there are now a set of functions
that given the string of type specifiers, can parse the input parameters
and store the results in the user specified variables. This avoids most
of the IS_* checks and convert_to_* conversions. The functions also
check for the appropriate number of parameters, and try to output
meaningful error messages.
Prototypes
----------
/* Implemented. */
int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...);
int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...);
The zend_parse_parameters() function takes the number of parameters
passed to the extension function, the type specifier string, and the
list of pointers to variables to store the results in. The _ex() version
also takes 'flags' argument -- current only ZEND_PARSE_PARAMS_QUIET can
be used as 'flags' to specify that the function should operate quietly
and not output any error messages.
Both functions return SUCCESS or FAILURE depending on the result.
The auto-conversions are performed as necessary. Arrays, objects, and
resources cannot be auto-converted.
Type specifiers
---------------
l - long
d - double
s - string (with possible null bytes) and its length
b - boolean, stored in zend_bool
r - resource (stored in zval)
a - array
o - object (of any type)
O - object (of specific type, specified by class entry)
z - the actual zval
The following characters also have a meaning in the specifier string:
| - indicates that the remaining parameters are optional, they
should be initialized to default values by the extension since they
will not be touched by the parsing function if they are not
passed to it.
/ - use SEPARATE_ZVAL_IF_NOT_REF() on the parameter it follows
! - the parameter it follows can be of specified type or NULL (only applies
to 'a', 'o', 'O', 'r', and 'z'). If NULL is passed, the results
pointer is set to NULL as well.
Examples
--------
/* Gets a long, a string and its length, and a zval */
long l;
char *s;
int s_len;
zval *param;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lsz",
&l, &s, &s_len, &param) == FAILURE) {
return;
}
/* Gets an object of class specified by my_ce, and an optional double. */
zval *obj;
double d = 0.5;
zend_class_entry my_ce;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|d",
&obj, my_ce, &d) == FAILURE) {
return;
}
/* Gets an object or null, and an array.
If null is passed for object, obj will be set to NULL. */
zval *obj;
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o!a",
&obj, &arr) == FAILURE) {
return;
}
/* Gets a separated array which can also be null. */
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/!",
&arr) == FAILURE) {
return;
}
/* Get only the first three parameters (useful for varargs functions). */
zval *z;
zend_bool b;
zval *r;
if (zend_parse_parameters(3 TSRMLS_CC, "zbr!",
&z, &b, &r) == FAILURE) {
return;
}
/* Get either a set of 3 longs or a string. */
long l1, l2, l3;
char *s;
/*
* The function expects a pointer to a integer in this case, not a long
* or any other type. If you specify a type which is larger
* than a 'int', the upper bits might not be initialized
* properly, leading to random crashes on platforms like
* Tru64 or Linux/Alpha.
*/
int length;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
"lll", &l1, &l2, &l3) == SUCCESS) {
/* manipulate longs */
} else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
"s", &s, &length) == SUCCESS) {
/* manipulate string */
} else {
/* output error */
return;
}
-107
View File
@@ -1,107 +0,0 @@
1. strrpos() and strripos() now use the entire string as a needle. Be aware
that the existing scripts may no longer work as you expect.
EX :
<?php
var_dump(strrpos("ABCDEF","DEF"));
var_dump(strrpos("ABCDEF","DAF"));
?>
Will give you different results. The former returns 3 while the latter
returns false rather than the position of the last occurrence of 'D'.
The same applies to strripos().
2. Illegal use of string offsets causes E_ERROR instead of E_WARNING.
EX :
<?php
$a = "foo";
unset($a[0][1][2]);
?>
Fatal error: Cannot use string offset as an array in ... on line 1
3. array_merge() was changed to accept only arrays. If a non-array variable is
passed, a E_WARNING will be thrown for every such parameter. Be careful
because your code may start emitting E_WARNING out of the blue.
4. Be careful when porting from ext/mysql to ext/mysqli. The following
functions return NULL when no more data is available in the result set
(ext/mysql's functions return FALSE).
- mysqli_fetch_row()
- mysqli_fetch_array()
- mysqli_fetch_assoc()
5. PATH_TRANSLATED server variable is no longer set implicitly under
Apache2 SAPI in contrast to the situation in PHP 4, where it is set to the
same value as the SCRIPT_FILENAME server variable when it is not populated
by Apache. This change was made to comply with the CGI specification.
Please refer to bug #23610 for further information.
6. Starting PHP 5.0.0 the T_ML_CONSTANT constant is no longer defined by the
ext/tokenizer extension. If error_reporting is set to E_ALL notices will
be produced. Instead of T_ML_CONSTANT for /* */ the T_COMMENT constant
is used, thus both // and /* */ are resolved as the T_COMMENT constant.
However the PHPDoc style comments /** */ ,which starting PHP 5 are parsed
by PHP, are recongnized as T_DOC_COMMENT.
7. $_SERVER should be populated with argc and argv if variables_order
includes "S". If you have specifically configured your system to not
create $_SERVER, then of course it shouldn't be there. The change was to
always make argc and argv available in the CLI version regardless of the
variables_order setting. As in, the CLI version will now always populate
the global $argc and $argv variables.
8. In some cases classes must be declared before used. It only happens only
if some of the new features of PHP 5 are used. Otherwise the behaviour is
the old.
Example 1 (works with no errors):
<?php
$a = new a();
class a {
}
?>
Example 2 (throws an error):
<?php
$a = new a();
interface b{
}
class a implements b {
}
?>
Output (example 2) :
Fatal error: Class 'a' not found in /tmp/cl.php on line 2
9. get_class() starting PHP 5 returns the name of the class as it was
declared which may lead to problems in older scripts that rely on
the previous behaviour - the class name is lowercased.
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
@@ -1,57 +0,0 @@
QNX4 Installation Notes
-----------------------
NOTE: General installation instructions are in the INSTALL file
1. To compile and test PHP3 you have to grab, compile and install:
- GNU dbm library or another db library;
- GNU bison (1.25 or later; 1.25 tested);
- GNU flex (any version supporting -o and -P options; 2.5.4 tested);
- GNU diffutils (any version supporting -w option; 2.7 tested);
2. To use CVS version you may need also:
- GNU CVS (1.9 tested);
- GNU autoconf (2.12 tested);
- GNU m4 (1.3 or later preferable; 1.4 tested);
3. To run configure define -lunix in command line:
LDFLAGS=-lunix ./configure
4. To use Sybase SQL Anywhere define ODBC_QNX and CUSTOM_ODBC_LIBS in
command line and run configure with --with-custom-odbc:
CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50
If you have SQL Anywhere version 5.5.00, then you have to add
CFLAGS=-DSQLANY_BUG
to workaround its SQLFreeEnv() bug. Other versions has not been tested,
so try without this flag first.
5. To build the Apache module, you may have to hardcode an include path for
alloc.h in your Apache base directory:
- APACHE_DIRECTORY/src/httpd.h:
change #include "alloc.h"
to #include "APACHE_DIRECTORY/src/alloc.h"
Unless you want to use system regex library, you have to hardcode also
a path to regex.h:
- APACHE_DIRECTORY/src/conf.h:
change #include <regex.h>
to #include "APACHE_DIRECTORY/src/regex/regex.h"
I don't know so far why this required for QNX, may be it is Watcom
compiler problem.
If you building Apache module with SQL Anywhere support, you'll get
symbol conflict with BOOL. It is defined in Apache (httpd.h) and in
SQL Anywhere (odbc.h). This has nothing to do with PHP, so you have to
fix it yourself someway.
6. With above precautions, it should compile as is and pass regression
tests completely:
make
make check
make install
Don't bother me unless you really sure you made that all but it
still doesn't work.
June 28, 1998
Igor Kovalenko -- owl@infomarket.ru
-155
View File
@@ -1,155 +0,0 @@
$Id$
=============================================================================
HOW TO CREATE A SELF-CONTAINED PHP EXTENSION
A self-contained extension can be distributed independently of
the PHP source. To create such an extension, two things are
required:
- Configuration file (config.m4)
- Source code for your module
We will describe now how to create these and how to put things
together.
PREPARING YOUR SYSTEM
While the result will run on any system, a developer's setup needs these
tools:
GNU autoconf
GNU automake
GNU libtool
GNU m4
All of these are available from
ftp://ftp.gnu.org/pub/gnu/
CONVERTING AN EXISTING EXTENSION
Just to show you how easy it is to create a self-contained
extension, we will convert an embedded extension into a
self-contained one. Install PHP and execute the following
commands.
$ mkdir /tmp/newext
$ cd /tmp/newext
You now have an empty directory. We will copy the files from
the mysql extension:
$ cp -rp php-4.0.X/ext/mysql/* .
It is time to finish the module. Run:
$ phpize
You can now ship the contents of the directory - the extension
can live completely on its own.
The user instructions boil down to
$ ./configure \
[--with-php-config=/path/to/php-config] \
[--with-mysql=MYSQL-DIR]
$ make install
The MySQL module will either use the embedded MySQL client
library or the MySQL installation in MYSQL-DIR.
DEFINING THE NEW EXTENSION
Our demo extension is called "foobar".
It consists of two source files "foo.c" and "bar.c"
(and any arbitrary amount of header files, but that is not
important here).
The demo extension does not reference any external
libraries (that is important, because the user does not
need to specify anything).
LTLIBRARY_SOURCES specifies the names of the sources files. You can
name an arbitrary number of source files here.
CREATING THE M4 CONFIGURATION FILE
The m4 configuration can perform additional checks. For a
self-contained extension, you do not need more than a few
macro calls.
------------------------------------------------------------------------------
PHP_ARG_ENABLE(foobar,whether to enable foobar,
[ --enable-foobar Enable foobar])
if test "$PHP_FOOBAR" != "no"; then
PHP_NEW_EXTENSION(foobar, foo.c bar.c, $ext_shared)
fi
------------------------------------------------------------------------------
PHP_ARG_ENABLE will automatically set the correct variables, so
that the extension will be enabled by PHP_NEW_EXTENSION in shared mode.
The first argument of PHP_NEW_EXTENSION describes the name of the
extension. The second names the source-code files. The third passes
$ext_shared which is set by PHP_ARG_ENABLE/WITH to PHP_NEW_EXTENSION.
Please use always PHP_ARG_ENABLE or PHP_ARG_WITH. Even if you do not
plan to distribute your module with PHP, these facilities allow you
to integrate your module easily into the main PHP module framework.
CREATING SOURCE FILES
ext_skel can be of great help when creating the common code for all modules
in PHP for you and also writing basic function definitions and C code for
handling arguments passed to your functions. See README.EXT_SKEL for further
information.
As for the rest, you are currently alone here. There are a lot of existing
modules, use a simple module as a starting point and add your own code.
CREATING THE SELF-CONTAINED EXTENSION
Put config.m4 and the source files into one directory. Then, run phpize
(this is installed during make install by PHP 4.0).
For example, if you configured PHP with --prefix=/php, you would run
$ /php/bin/phpize
This will automatically copy the necessary build files and create
configure from your config.m4.
And that's it. You now have a self-contained extension.
INSTALLING A SELF-CONTAINED EXTENSION
An extension can be installed by running:
$ ./configure \
[--with-php-config=/path/to/php-config]
$ make install
ADDING SHARED MODULE SUPPORT TO A MODULE
In order to be useful, a self-contained extension must be loadable
as a shared module. I will explain now how you can add shared module
support to an existing module called foo.
1. In config.m4, use PHP_ARG_WITH/PHP_ARG_ENABLE. Then you will
automatically be able to use --with-foo=shared[,..] or
--enable-foo=shared[,..].
2. In config.m4, use PHP_NEW_EXTENSION(foo,.., $ext_shared) to enable
building the extension.
3. Add the following lines to your C source file:
#ifdef COMPILE_DL_FOO
ZEND_GET_MODULE(foo)
#endif
-379
View File
@@ -1,379 +0,0 @@
An Overview of the PHP Streams abstraction
==========================================
$Id$
WARNING: some prototypes in this file are out of date.
The information contained here is being integrated into
the PHP manual - stay tuned...
Please send comments to: Wez Furlong <wez@thebrainroom.com>
Why Streams?
============
You may have noticed a shed-load of issock parameters flying around the PHP
code; we don't want them - they are ugly and cumbersome and force you to
special case sockets and files every time you need to work with a "user-level"
PHP file pointer.
Streams take care of that and present the PHP extension coder with an ANSI
stdio-alike API that looks much nicer and can be extended to support non file
based data sources.
Using Streams
=============
Streams use a php_stream* parameter just as ANSI stdio (fread etc.) use a
FILE* parameter.
The main functions are:
PHPAPI size_t php_stream_read(php_stream * stream, char * buf, size_t count);
PHPAPI size_t php_stream_write(php_stream * stream, const char * buf, size_t
count);
PHPAPI size_t php_stream_printf(php_stream * stream TSRMLS_DC,
const char * fmt, ...);
PHPAPI int php_stream_eof(php_stream * stream);
PHPAPI int php_stream_getc(php_stream * stream);
PHPAPI char *php_stream_gets(php_stream * stream, char *buf, size_t maxlen);
PHPAPI int php_stream_close(php_stream * stream);
PHPAPI int php_stream_flush(php_stream * stream);
PHPAPI int php_stream_seek(php_stream * stream, off_t offset, int whence);
PHPAPI off_t php_stream_tell(php_stream * stream);
PHPAPI int php_stream_lock(php_stream * stream, int mode);
These (should) behave in the same way as the ANSI stdio functions with similar
names: fread, fwrite, fprintf, feof, fgetc, fgets, fclose, fflush, fseek, ftell, flock.
Opening Streams
===============
In most cases, you should use this API:
PHPAPI php_stream *php_stream_open_wrapper(char *path, char *mode,
int options, char **opened_path TSRMLS_DC);
Where:
path is the file or resource to open.
mode is the stdio compatible mode eg: "wb", "rb" etc.
options is a combination of the following values:
IGNORE_PATH (default) - don't use include path to search for the file
USE_PATH - use include path to search for the file
IGNORE_URL - do not use plugin wrappers
REPORT_ERRORS - show errors in a standard format if something
goes wrong.
STREAM_MUST_SEEK - If you really need to be able to seek the stream
and don't need to be able to write to the original
file/URL, use this option to arrange for the stream
to be copied (if needed) into a stream that can
be seek()ed.
opened_path is used to return the path of the actual file opened,
but if you used STREAM_MUST_SEEK, may not be valid. You are
responsible for efree()ing opened_path. opened_path may be (and usually
is) NULL.
If you need to open a specific stream, or convert standard resources into
streams there are a range of functions to do this defined in php_streams.h.
A brief list of the most commonly used functions:
PHPAPI php_stream *php_stream_fopen_from_file(FILE *file, const char *mode);
Convert a FILE * into a stream.
PHPAPI php_stream *php_stream_fopen_tmpfile(void);
Open a FILE * with tmpfile() and convert into a stream.
PHPAPI php_stream *php_stream_fopen_temporary_file(const char *dir,
const char *pfx, char **opened_path TSRMLS_DC);
Generate a temporary file name and open it.
There are some network enabled relatives in php_network.h:
PHPAPI php_stream *php_stream_sock_open_from_socket(int socket, int persistent);
Convert a socket into a stream.
PHPAPI php_stream *php_stream_sock_open_host(const char *host, unsigned short port,
int socktype, int timeout, int persistent);
Open a connection to a host and return a stream.
PHPAPI php_stream *php_stream_sock_open_unix(const char *path, int persistent,
struct timeval *timeout);
Open a UNIX domain socket.
Stream Utilities
================
If you need to copy some data from one stream to another, you will be please
to know that the streams API provides a standard way to do this:
PHPAPI size_t php_stream_copy_to_stream(php_stream *src,
php_stream *dest, size_t maxlen);
If you want to copy all remaining data from the src stream, pass
PHP_STREAM_COPY_ALL as the maxlen parameter, otherwise maxlen indicates the
number of bytes to copy.
This function will try to use mmap where available to make the copying more
efficient.
If you want to read the contents of a stream into an allocated memory buffer,
you should use:
PHPAPI size_t php_stream_copy_to_mem(php_stream *src, char **buf,
size_t maxlen, int persistent);
This function will set buf to the address of the buffer that it allocated,
which will be maxlen bytes in length, or will be the entire length of the
data remaining on the stream if you set maxlen to PHP_STREAM_COPY_ALL.
The buffer is allocated using pemalloc(); you need to call pefree() to
release the memory when you are done.
As with copy_to_stream, this function will try use mmap where it can.
If you have an existing stream and need to be able to seek() it, you
can use this function to copy the contents into a new stream that can
be seek()ed:
PHPAPI int php_stream_make_seekable(php_stream *origstream, php_stream **newstream);
It returns one of the following values:
#define PHP_STREAM_UNCHANGED 0 /* orig stream was seekable anyway */
#define PHP_STREAM_RELEASED 1 /* newstream should be used; origstream is no longer valid */
#define PHP_STREAM_FAILED 2 /* an error occurred while attempting conversion */
#define PHP_STREAM_CRITICAL 3 /* an error occurred; origstream is in an unknown state; you should close origstream */
make_seekable will always set newstream to be the stream that is valid
if the function succeeds.
When you have finished, remember to close the stream.
NOTE: If you only need to seek forward, there is no need to call this
function, as the php_stream_seek can emulate forward seeking when the
whence parameter is SEEK_CUR.
NOTE: Writing to the stream may not affect the original source, so it
only makes sense to use this for read-only use.
NOTE: If the origstream is network based, this function will block
until the whole contents have been downloaded.
NOTE: Never call this function with an origstream that is referenced
as a resource! It will close the origstream on success, and this
can lead to a crash when the resource is later used/released.
NOTE: If you are opening a stream and need it to be seekable, use the
STREAM_MUST_SEEK option to php_stream_open_wrapper();
PHPAPI int php_stream_supports_lock(php_stream * stream);
This function will return either 1 (success) or 0 (failure) indicating whether or
not a lock can be set on this stream. Typically you can only set locks on stdio streams.
Casting Streams
===============
What if your extension needs to access the FILE* of a user level file pointer?
You need to "cast" the stream into a FILE*, and this is how you do it:
FILE * fp;
php_stream * stream; /* already opened */
if (php_stream_cast(stream, PHP_STREAM_AS_STDIO, (void*)&fp, REPORT_ERRORS) == FAILURE) {
RETURN_FALSE;
}
The prototype is:
PHPAPI int php_stream_cast(php_stream * stream, int castas, void ** ret, int
show_err);
The show_err parameter, if non-zero, will cause the function to display an
appropriate error message of type E_WARNING if the cast fails.
castas can be one of the following values:
PHP_STREAM_AS_STDIO - a stdio FILE*
PHP_STREAM_AS_FD - a generic file descriptor
PHP_STREAM_AS_SOCKETD - a socket descriptor
If you ask a socket stream for a FILE*, the abstraction will use fdopen to
create it for you. Be warned that doing so may cause buffered data to be lost
if you mix ANSI stdio calls on the FILE* with php stream calls on the stream.
If your system has the fopencookie function, php streams can synthesize a
FILE* on top of any stream, which is useful for SSL sockets, memory based
streams, data base streams etc. etc.
In situations where this is not desirable, you should query the stream
to see if it naturally supports FILE *. You can use this code snippet
for this purpose:
if (php_stream_is(stream, PHP_STREAM_IS_STDIO)) {
/* can safely cast to FILE* with no adverse side effects */
}
You can use:
PHPAPI int php_stream_can_cast(php_stream * stream, int castas)
to find out if a stream can be cast, without actually performing the cast, so
to check if a stream is a socket you might use:
if (php_stream_can_cast(stream, PHP_STREAM_AS_SOCKETD) == SUCCESS) {
/* it can be a socket */
}
Please note the difference between php_stream_is and php_stream_can_cast;
stream_is tells you if the stream is a particular type of stream, whereas
can_cast tells you if the stream can be forced into the form you request.
The former doesn't change anything, while the later *might* change some
state in the stream.
Stream Internals
================
There are two main structures associated with a stream - the php_stream
itself, which holds some state information (and possibly a buffer) and a
php_stream_ops structure, which holds the "virtual method table" for the
underlying implementation.
The php_streams ops struct consists of pointers to methods that implement
read, write, close, flush, seek, gets and cast operations. Of these, an
implementation need only implement write, read, close and flush. The gets
method is intended to be used for streams if there is an underlying method
that can efficiently behave as fgets. The ops struct also contains a label
for the implementation that will be used when printing error messages - the
stdio implementation has a label of "STDIO" for example.
The idea is that a stream implementation defines a php_stream_ops struct, and
associates it with a php_stream using php_stream_alloc.
As an example, the php_stream_fopen() function looks like this:
PHPAPI php_stream * php_stream_fopen(const char * filename, const char * mode)
{
FILE * fp = fopen(filename, mode);
php_stream * ret;
if (fp) {
ret = php_stream_alloc(&php_stream_stdio_ops, fp, 0, 0, mode);
if (ret)
return ret;
fclose(fp);
}
return NULL;
}
php_stream_stdio_ops is a php_stream_ops structure that can be used to handle
FILE* based streams.
A socket based stream would use code similar to that above to create a stream
to be passed back to fopen_wrapper (or it's yet to be implemented successor).
The prototype for php_stream_alloc is this:
PHPAPI php_stream * php_stream_alloc(php_stream_ops * ops, void * abstract,
size_t bufsize, int persistent, const char * mode)
ops is a pointer to the implementation,
abstract holds implementation specific data that is relevant to this instance
of the stream,
bufsize is the size of the buffer to use - if 0, then buffering at the stream
level will be disabled (recommended for underlying sources that implement
their own buffering - such a FILE*),
persistent controls how the memory is to be allocated - persistently so that
it lasts across requests, or non-persistently so that it is freed at the end
of a request (it uses pemalloc),
mode is the stdio-like mode of operation - php streams places no real meaning
in the mode parameter, except that it checks for a 'w' in the string when
attempting to write (this may change).
The mode parameter is passed on to fdopen/fopencookie when the stream is cast
into a FILE*, so it should be compatible with the mode parameter of fopen().
Writing your own stream implementation
======================================
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
RULE #1: when writing your own streams: make sure you have configured PHP with
--enable-debug.
I've taken some great pains to hook into the Zend memory manager to help track
down allocation problems. It will also help you spot incorrect use of the
STREAMS_DC, STREAMS_CC and the semi-private STREAMS_REL_CC macros for function
definitions.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
RULE #2: Please use the stdio stream as a reference; it will help you
understand the semantics of the stream operations, and it will always
be more up to date than these docs :-)
First, you need to figure out what data you need to associate with the
php_stream. For example, you might need a pointer to some memory for memory
based streams, or if you were making a stream to read data from an RDBMS like
MySQL, you might want to store the connection and rowset handles.
The stream has a field called abstract that you can use to hold this data.
If you need to store more than a single field of data, define a structure to
hold it, allocate it (use pemalloc with the persistent flag set
appropriately), and use the abstract pointer to refer to it.
For structured state you might have this:
struct my_state {
MYSQL conn;
MYSQL_RES * result;
};
struct my_state * state = pemalloc(sizeof(struct my_state), persistent);
/* initialize the connection, and run a query, using the fields in state to
* hold the results */
state->result = mysql_use_result(&state->conn);
/* now allocate the stream itself */
stream = php_stream_alloc(&my_ops, state, 0, persistent, "r");
/* now stream->abstract == state */
Once you have that part figured out, you can write your implementation and
define the your own php_stream_ops struct (we called it my_ops in the above
example).
For example, for reading from this weird MySQL stream:
static size_t php_mysqlop_read(php_stream * stream, char * buf, size_t count)
{
struct my_state * state = (struct my_state*)stream->abstract;
if (buf == NULL && count == 0) {
/* in this special case, php_streams is asking if we have reached the
* end of file */
if (... at end of file ...)
return EOF;
else
return 0;
}
/* pull out some data from the stream and put it in buf */
... mysql_fetch_row(state->result) ...
/* we could do something strange, like format the data as XML here,
and place that in the buf, but that brings in some complexities,
such as coping with a buffer size too small to hold the data,
so I won't even go in to how to do that here */
}
Implement the other operations - remember that write, read, close and flush
are all mandatory. The rest are optional. Declare your stream ops struct:
php_stream_ops my_ops = {
php_mysqlop_write, php_mysqlop_read, php_mysqlop_close,
php_mysqlop_flush, NULL, NULL, NULL,
"Strange MySQL example"
}
Thats it!
Take a look at the STDIO implementation in streams.c for more information
about how these operations work.
The main thing to remember is that in your close operation you need to release
and free the resources you allocated for the abstract field. In the case of
the example above, you need to use mysql_free_result on the rowset, close the
connection and then use pefree to dispose of the struct you allocated.
You may read the stream->persistent field to determine if your struct was
allocated in persistent mode or not.
vim:tw=78:et
-126
View File
@@ -1,126 +0,0 @@
Submitting Patch for PHP
========================
This document describes how to submit a patch for PHP. Since you are
reading this document, you are willing to submit a patch for PHP.
Please keep reading! Submitting a patch for PHP is easy. The hard
part is making it acceptable for inclusion into our repository. :-)
How to create patch?
--------------------
We are working with CVS. You need to get CVS source to create a patch
that we accept. Visit http://www.php.net/anoncvs.php to get CVS
source. You can check out older versions, but make sure you get
the default branch (i.e. Do not use -r option when you check out the
CVS source)
Read CODING_STANDARDS file before you start working.
Now you are ready to create a patch. Modify source to fix a bug in PHP or
add a new feature to PHP. After you finished editing, please test your
patch. Read README.TESTING for testing.
After you finish testing your patch, take diff file using
"cvs diff > your.patch" command.
Read README.TESTING for submitting a test script for your patch. This is
not strictly required, but it is preferred to submit a test script along
with your patch. Making new test script is very easy. It also helps us
to understand what you have been fixed or added to PHP.
Tips for creating patch
-----------------------
If you would like to fix multiple bugs. It is easier for us if you
could create 1 patch for 1 bug, but this is not strictly required.
Note though that you might get little response, if your patch is
too hard to review.
If you would like change/add many lines, it is better to ask module
maintainer and/or internals@lists.php.net, or pear-dev@lists.php.net if
you are patching PEAR. Official module maintainers can be found in
EXTENSIONS file in PHP source.
If you are new to CVS (Concurrent Versions System), visit
http://cvshome.org/ for details.
Recommended CVS client settings for creating patch file
------------------------------------------------------
Recommended ~/.cvsrc file setting is:
------
cvs -z3
update -d -P
checkout -P
diff -u
------
diff -u means:
-u Use the unified output format.
With this CVS setting, you don't have to worry about adding/deleting
newlines and spaces.
Check list for submitting patch
-------------------------------
- Did you run "make test" to check if your patch didn't break
other features?
- Did you compile PHP with --enable-debug and check the PHP and
web server error logs when you test your patch?
- Did you build PHP for multi-threaded web servers. (Optional)
- Did you create test script for "make test"? (Recommended)
- Did you check your patch is unified format and it does not
contain white space changes? (If you are not using recommended
cvs setting)
- Did you update CVS source before you take final patch?
- Did you read the patch again?
Where to send your patch?
-------------------------
If you are patching C source, send the patch to internals@lists.php.net.
If you are patching a module, you should also send the patch to the
maintainer. Official module maintainers are listed in EXTENSION file
in source.
If you are patching PEAR, send the patch to pear-dev@lists.php.net.
Please add the prefix "[PATCH]" to your email subject and make sure
to include the patch as a MIME attachment even if it is short.
NOTE: only MIME attachments of type 'text/*' are accepted. The
easiest way to accomplish this, is to make the extension
'.txt'.
Test scripts should be included in the same email.
Explain what has been fixed/added/changed by your patch.
Finally, add the bug Id(s) which can be closed by your patch, if any.
What happens after you submit your patch
----------------------------------------
If your patch is easy to review and has obviously no side-effects,
it might take up to a few hours until someone commits it.
Because this is a volunteer-driven effort, more complex patches will
require more patience on your side.
If you did not receive any feedback in a few days, please consider
resubmitting the description of your patch, along-side with
these questions:
- Is my patch too hard to review? Because of which factors?
- Should I split it up in multiple parts?
- Are there any unwanted whitespace changes?
What happens when your patch is applied?
----------------------------------------
Your name will be included together with your email address in the CVS
commit log. If your patch affects end-users, a brief description
and your name might be added to the NEWS file.
Thank you for submitting patch for PHP!
-179
View File
@@ -1,179 +0,0 @@
[IMPORTANT NOTICE]
------------------
Failed tests usualy indicate a problem with your local system setup
and not within PHP itself (at least for official PHP release versions).
You may decide to automaticaly submit a test summary to our QA workflow
at the end of a test run.
Please do *not* submit a failed test as a bug or ask for help on why
it failed on your system without providing substantial backup information
on *why* the test failed on your special setup. Thank you :-)
[Testing Basics]
----------------
The easiest way to test your PHP build is to run "make test" from the
command line after successfully compiling. This will run the complete
tests for all enabled functionalities and extensions using the PHP
CLI binary.
To execute test scripts, you must build PHP with some SAPI, then you
type "make test" to execute all or some test scripts saved under
"tests" directory under source root directory.
Usage:
make test
"make test" basically executes "run-tests.php" script
under the source root (parallel builds will not work). Therefore you
can execute the script as follows:
TEST_PHP_EXECUTABLE=sapi/cli/php \
sapi/cli/php [-c /path/to/php.ini] run-tests.php [ext/foo/tests/GLOB]
[Which "php" executable "make test" look for]
---------------------------------------------
You must use TEST_PHP_EXECUTABLE environment variable to explicitly
select the php executable to be used to run the tests. That can either
be the CLI or CGI executable.
"make test" executes "run-tests.php" script with "php" binary. Some
test scripts such as session must be executed by CGI SAPI. Therefore,
you must build PHP with CGI SAPI to perform all tests.
NOTE: PHP binary executing "run-tests.php" and php binary used for
executing test scripts may differ. If you use different PHP binary for
executing "run-tests.php" script, you may get errors.
[Which php.ini is used]
-----------------------
"make test" uses the same php.ini file as it would once installed.
The tests have been written to be independent of that php.ini file,
so if you find a test that is affected by a setting, please report
this, so we can address the issue.
[Which test scripts are executed]
---------------------------------
"run-tests.php" ("make test"), without any arguments executes all
test scripts by extracting all directories named "tests"
from the source root and any subdirectories below. If there are files,
which have a "phpt" extension, "run-tests.php" looks at the sections
in these files, determines whether it should run it, by evaluating
the 'SKIP' section. If the test is eligible for execution, the 'FILE'
section is extracted into a ".php" file (with the same name besides
the extension) and gets executed.
When an argument is given or TESTS environment variable is set, the
GLOB is expanded by the shell and any file with extension "*.phpt" is
regarded as a test file.
Tester can easily execute tests selectively with as follows.
Examples:
./sapi/cli/php run-tests.php ext/mbstring/*
./sapi/cli/php run-tests.php ext/mbstring/020.phpt
[Test results]
--------------
Test results are printed to standard output. If there is a failed test,
the "run-tests.php" script saves the result, the expected result and the
code executed to the test script directory. For example, if
ext/myext/tests/myext.phpt fails to pass, the following files are created:
ext/myext/tests/myext.php - actual test file executed
ext/myext/tests/myext.log - log of test execution (L)
ext/myext/tests/myext.exp - expected output (E)
ext/myext/tests/myext.out - output from test script (O)
ext/myext/tests/myext.diff - diff of .out and .exp (D)
Failed tests are always bugs. Either the test is bugged or not considering
factors applying to the tester's environment, or there is a bug in PHP.
If this is a known bug, we strive to provide bug numbers, in either the
test name or the file name. You can check the status of such a bug, by
going to: http://bugs.php.net/12345 where 12345 is the bug number.
For clarity and automated processing, bug numbers are prefixed by a hash
sign '#' in test names and/or test cases are named bug12345.phpt.
NOTE: The files generated by tests can be selected by setting the
environment variable TEST_PHP_LOG_FORMAT. For each file you want to be
generated use the character in brackets as shown above (default is LEOD).
The php file will be generated always.
NOTE: You can set environment variable TEST_PHP_DETAILED to enable
detailed test information.
[Automated testing]
If you like to keep up to speed, with latest developments and quality
assurance, setting the environment variable NO_INTERACTION to 1, will not
prompt the tester for any user input.
Normally, the exit status of "make test" is zero, regardless of the results
of independent tests. Set the environment variable REPORT_EXIT_STATUS to 1,
and "make test" will set the exit status ("$?") to non-zero, when an
individual test has failed.
Example script to be run by cron(1):
========== qa-test.sh =============
#!/bin/sh
CO_DIR=$HOME/cvs/php5
MYMAIL=qa-test@domain.com
TMPDIR=/var/tmp
TODAY=`date +"%Y%m%d"`
# Make sure compilation enviroment is correct
CONFIGURE_OPTS='--disable-all --enable-cli --with-pcre'
export MAKE=gmake
export CC=gcc
# Set test environment
export NO_INTERACTION=1
export REPORT_EXIT_STATUS=1
cd $CO_DIR
cvs update . >>$TMPDIR/phpqatest.$TODAY
./cvsclean ; ./buildconf ; ./configure $CONFIGURE_OPTS ; $MAKE
$MAKE test >>$TMPDIR/phpqatest.$TODAY 2>&1
if test $? -gt 0
then
cat $TMPDIR/phpqatest.$TODAY | mail -s"PHP-QA Test Failed for $TODAY" $MYMAIL
fi
========== end of qa-test.sh =============
NOTE: the exit status of run-tests.php will be 1 when
REPORT_EXIT_STATUS is set. The result of "make test" may be higher
than that. At present, gmake 3.79.1 returns 2, so it is
advised to test for non-zero, rather then a specific value.
[Creating new test files]
-------------------------
Writing test file is very easy if you are used to PHP.
See the HOWTO at http://qa.php.net/write-test.php
[How to help us]
----------------
If you find bug in PHP, you can submit bug report AND test script
for us. You don't have to write complete script, just give us test
script with following format. Please test the script and make sure
you write the correct ACTUAL OUTPUT and EXPECTED OUTPUT before you
submit.
<?php
/*
Bug #12345
substr() bug. Do not return expected string.
ACTUAL OUTPUT
XYXA
EXPECTED OUTPUT
ABCD
*/
$str = "XYZABCD";
echo substr($str,3,7);
?>
-137
View File
@@ -1,137 +0,0 @@
[IMPORTANT NOTICE]
------------------
This is an addendum to README.TESTING with additional information
specific to run-tests2.php.
run-tests2.php is backward compatible with tests developed for
the original run-tests.php script. run-tests2 is *not* used by
'make test'. run-tests2 was developed to provide support for
testing PHP under it's primary environment, HTTP, and can run the
PHP tests under any of the SAPI modules that are direct executables,
or are accessable via HTTP.
[New features]
----------------
* Command line interface:
You can run 'php run-tests2.php -h' to get all the possible options.
* Configuration file:
the -c argument will allow you to use a configuration file. This is
handy if you are testing multiple environments and need various options
depending on the environment.
see run-tests-config.php for details.
* CGI Emulation:
Will emulate a CGI environment when testing with the cgi sapi executable.
* HTTP testing:
can be configured to run test scripts through an HTTP server running
on localhost. localhost is required since either the web server must
alias a directory to the php source directory, or the test scripts
must be copied to a directory under the web server
(see config options TEST_WEB_BASE_URL, TEST_BASE_PATH, and TEST_WEB_EXT)
* New sections supported for test files (see below)
When running tests over http, tests that require ini settings different that what
the web server runs under will be skipped. Since the test harness defines a number
of ini settings by default, the web server may require special configuration to
make testing work.
[Example Usage]
----------------
Some (but not all!) examples of usage:
1. run tests from the php source directory
php run-tests2.php -p /path/to/php-cli
2. run tests using cgi emulation
php run-tests2.php -p /path/to/php-cgi
3. run tests over http, copying test files into document root
php run-tests2.php -w -u http://localhost/test -m /path/to/htdocs/test
4. run tests over http, php sources have been aliased in web server
php run-tests2.php -w -u http://localhost/test
5. run tests using configuration file
php run-tests2.php -c /path/to/run-tests-config.php
6. run tests using configuration file, but overriding some settings:
(config file must be first)
php run-tests2.php -c /path/to/run-tests-config.php -w -t 3 -d /path/to/testdir
NOTE: configuration as described in README.TESTING still works.
[New Test Sections]
----------------
In addition to the traditional test sections
(see http://qa.php.net/write-test.php), several new sections are available
under run-tests2.
--POST--
This is not a new section, but not multipart posts are supported for testing
file uploads, or other types of POST data.
--CGI--
This section takes no value. It merely provides a simple marker for tests
that MUST be run as CGI, even if there is no --POST-- or --GET-- sections
in the test file.
--DESCRIPTION--
Not used for anything, just a section for documenting the test
--ENV--
This section get's eval()'d to help build an environment for the
execution of the test. This can be used to change environment
vars that are used for CGI emulation, or simply to set env vars
for cli testing. A full example looks like:
--ENV--
return <<<END
PATH_TRANSLATED=$filename
PATH_INFO=$scriptname
SCRIPT_NAME=$scriptname
END;
Some variables are made easily available for use in this section, they
include:
$filename full native path to file, will become PATH_TRANSLATED
$filepath =dirname($filename)
$scriptname this is what will become SCRIPT_NAME unless you override it
$docroot the equivelant of DOCUMENT_ROOT under Apache
$cwd the directory that the test is being initiated from
$this->conf all run-tests2 configuration vars
$this->env all environment variables that will get passed to the test
--REQUEST--
This section is also eval'd, and is similar in nature to --ENV--. However,
this section is used to build the url used in an HTTP request. Valid values
to set in this section would include:
SCRIPT_NAME The inital part of the request url
PATH_INFO The pathinfo part of a request url
FRAGMENT The fragment section of a url (after #)
QUERY_STRING The query part of a url (after ?)
--REQUEST--
return <<<END
PATH_INFO=/path/info
END;
--HEADERS--
This section is also eval'd. It is used to provide additional headers sent
in an HTTP request, such as content type for multipart posts, cookies, etc.
--HEADERS--
return <<<END
Content-Type=multipart/form-data; boundary=---------------------------240723202011929
Content-Length=100
END;
--EXPECTHEADERS--
This section can be used to define what headers are required to be
received back from a request, and is checked in addition to the
regular expect sections. For example:
--EXPECTHEADERS--
Status: 404
-123
View File
@@ -1,123 +0,0 @@
PHP Build System V5 Overview
- supports Makefile.ins during transition phase
- not-really-portable Makefile includes have been eliminated
- supports separate build directories without VPATH by using
explicit rules only
- does not waste disk-space/CPU-time for building temporary libraries
=> especially noticeable on slower systems
- slow recursive make replaced with one global Makefile
- eases integration of proper dependencies
- adds PHP_DEFINE(what[, value]) which creates a single include-file
per what. This will allow more fine-grained dependencies.
- abandoning the "one library per directory" concept
- improved integration of the CLI
- several new targets
build-modules: builds and copies dynamic modules into modules/
install-cli: installs the CLI only, so that the install-sapi
target does only what its name says
- finally abandoned automake (still requires aclocal at this time)
- changed some configure-time constructs to run at buildconf-time
- upgraded shtool to 1.5.4
- removed $(moduledir) (use EXTENSION_DIR)
The Reason For a New System
It became more and more apparent that there is a severe need
for addressing the portability concerns and improving the chance
that your build is correct (how often have you been told to
"make clean"? When this is done, you won't need to anymore).
If You Build PHP on a Unix System
You, as a user of PHP, will notice no changes. Of course, the build
system will be faster, look better and work smarter.
If You Are Developing PHP
Extension developers:
Makefile.ins are abandoned. The files which are to be compiled
are specified in the config.m4 now using the following macro:
PHP_NEW_EXTENSION(foo, foo.c bar.c baz.cpp, $ext_shared)
E.g. this enables the extension foo which consists of three source-code
modules, two in C and one in C++. And, depending on the user's wishes,
the extension will even be built as a dynamic module.
The full syntax:
PHP_NEW_EXTENSION(extname, sources [, shared [,sapi_class[, extra-cflags]]])
Please have a look at acinclude.m4 for the gory details and meanings
of the other parameters.
And that's basically it for the extension side.
If you previously built sub-libraries for this module, add
the source-code files here as well. If you need to specify
separate include directories, do it this way:
PHP_NEW_EXTENSION(foo, foo.c mylib/bar.c mylib/gregor.c,,,-I@ext_srcdir@/lib)
E.g. this builds the three files which are located relative to the
extension source directory and compiles all three files with the
special include directive (@ext_srcdir@ is automatically replaced).
Now, you need to tell the build system that you want to build files
in a directory called $ext_builddir/lib:
PHP_ADD_BUILD_DIR($ext_builddir/lib)
Make sure to call this after PHP_NEW_EXTENSION, because $ext_builddir
is only set by the latter.
If you have a complex extension, you might to need add special
Make rules. You can do this by calling PHP_ADD_MAKEFILE_FRAGMENT
in your config.m4 after PHP_NEW_EXTENSION.
This will read a file in the source-dir of your extension called
Makefile.frag. In this file, $(builddir) and $(srcdir) will be
replaced by the values which are correct for your extension
and which are again determined by the PHP_NEW_EXTENSION macro.
Make sure to prefix *all* relative paths correctly with either
$(builddir) or $(srcdir). Because the build system does not
change the working directory anymore, we must use either
absolute paths or relative ones to the top build-directory.
Correct prefixing ensures that.
SAPI developers:
Instead of using PHP_SAPI=foo/PHP_BUILD_XYZ, you will need to type
PHP_SELECT_SAPI(name, type, sources.c)
I.e. specify the source-code files as above and also pass the
information regarding how PHP is supposed to be built (shared
module, program, etc).
For example for APXS:
PHP_SELECT_SAPI(apache, shared, sapi_apache.c mod_php5.c php_apache.c)
General info
The foundation for the new system is the flexible handling of
sources and their contexts. With the help of macros you
can define special flags for each source-file, where it is
located, in which target context it can work, etc.
Have a look at the well documented macros
PHP_ADD_SOURCES(_X) in acinclude.m4.
-174
View File
@@ -1,174 +0,0 @@
The Win32 Build System.
$Id$
Wez Furlong <wez@thebrainroom.com>
If you need help with the build system, send mail to
internals@lists.php.net; please don't email me directly.
===========================================================
Contents:
1. How to build PHP under windows
a. Requirements
b. Opening a command prompt
c. Generating configure.js
d. Configuring
e. Building
f. Cleaning up
g. Running the test suite
h. snapshot building
2. How to write config.w32 files
x. to be written.
===========================================================
1. How to build PHP under windows
a. Requirements
You need:
- Windows Scripting Host (cscript.exe)
- Microsoft Build Tools from:
Microsoft Visual Studio (VC6) or later
You also need:
- bindlib_w32 [http://www.php.net/extra/bindlib_w32.zip]
- win32build [http://www.php.net/extra/win32build.zip]
b. Opening the Build Environment Command Prompt:
- Using Visual Studio (VC6)
1. Install it
2. If you have a VC++ Command Prompt icon on your start menu,
click on it to get a Command Prompt with the env vars
set up correctly.
If not, create a new shortcut and set the Target to:
%comspec% /k "C:\Program Files\Microsoft Visual Studio\VC98\Bin\vcvars32.bat"
You might also want to set the prompt to start in
a convenient location (such as the root of your
PHP source checkout).
- Using Visual Studio .Net
1. Install it.
2. Under the Visual Studio .Net Tools sub menu of your start
menu, you should have a Visual Studio .Net Command Prompt
icon. If not, create a new shortcut and set the Target to:
%comspec% /k "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"
You might also want to set the prompt to start in
a convenient location (such as the root of your
PHP source checkout).
- Using the Platform SDK tools
1. Download the Platform SDK:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
- You need the Core SDK, which is approx 200MB to download
and requires approx 500MB of disk space.
- The other components of the SDK are not required by PHP
- You might be able to reduce the download size by downloading
the installer control component first and then selecting
only the Build Environment (around 30MB), but I haven't
tried this.
** Note: it seems that MS don't include the 32 bit
build tools in the platform SDK any longer, so
you will probably have very limited luck if you
don't also have VC++ or VS.Net already installed.
2. Once installed, you will have an icon on your start menu
that will launch the build environment; the latest SDK's
install a number of different versions of this; you probably
want to choose the Windows 2000 Retail build environment.
Clicking on this will open a command prompt with its Path,
Include and Lib env vars set to point to the build tools
and win32 headers.
c. Generating configure
Change directory to where you have your PHP 5 sources.
Run buildconf.bat.
d. Configuring
cscript /nologo configure.js --help
Will give you a list of configuration options; these will
have the form:
--enable-foo or --disable-foo or --with-foo or --without-foo.
--enable-foo will turn something on, and is equivalent to
specifying --enable-foo=yes
--disable-foo will turn something off, and is equivalent to
specifying --enable-foo=no
--enable-foo=shared will attempt to build that feature as
a shared, dynamically loadable module.
Sometimes a configure option needs additional information
about where to find headers and libraries; quite often
you can specify --enable-foo=option where option could be
the path to where to find those files. If you want to
specify a parameter and build it as shared, you can use
this syntax instead: --enable-foo=shared,option
The same rules all apply to --with-foo and --without-foo;
the only difference is the way the options are named;
the convention is that --enable-foo means that you are
switching on something that comes with PHP, whereas
--with-foo means that you want to build in something
external to PHP.
e. Building
Once you have successfully configured your build (make
sure you read the output from the command to make sure
it worked correctly), you can build the code; simply type
"nmake" at the command prompt, and it will build everthing
you asked for.
Once the build has completed, you will find your binaries
in the build dir determined by configure; this is typically
Release_TS for release builds or Debug_TS for debug builds.
If you build a non-thread-safe build, it will use Release
or Debug to store the files. Also in this build dir you
will find sub directories for each module that went into
your PHP build. The files you'll want to keep are the
.exe and .dll files directly in your build dir.
f. Cleaning Up
You can automatically delete everything that was built
by running "nmake clean". This will delete everything
that was put there when you ran nmake, including the
.exe and .dll files.
g. Running the test suite
You can verify that your build is working well by running
the regression test suite. You do this by typing
"nmake test". You can specify the tests you want to run
by defing the TESTS variable - if you wanted to run the
sqlite test suite only, you would type
"nmake /D TESTS=ext/sqlite/tests test"
h. Snapshot Building
If you want to set up an automated build that will tolerate
breakages in some of the modules, you can use the
--enable-snapshot-build configure option to generate a
makefile optimized for that purpose. A snapshot build will
switch the argument parser so that the default option for
configure switches that your don't specify will be set
to "shared". The effect of this is to turn on all options
unless you explicitly disable them. When you have configured
your snapshot build, you can use "nmake build-snap" to build
everything, ignoring build errors in individual extensions
or SAPI.
vim:tw=78:sw=1:ts=1:et
-112
View File
@@ -1,112 +0,0 @@
Using PHP 5 with the Zeus Web Server
-----------------------------------
Zeus fully supports running PHP in combination with our
webserver. There are three different interfaces that can be used to
enable PHP:
* CGI
* ISAPI
* FastCGI
Of the three, we recommend using FastCGI, which has been tested and
benchmarked as providing the best performance and reliability.
Full details of how to install PHP are available from our
website, at:
http://support.zeus.com/products/php.html
If you have any problems, please check the support site for more
up-to-date information and advice.
Quick guide to installing CGI/FastCGI with Zeus
-----------------------------------------------
Step 1 - Compile PHP as FastCGI.
Compile as follows:
./configure --enable-fastcgi
make
Note that PHP has many options to the configure script -
e.g. --with-mysql. You will probably want to select your usual options
before compiling; the above is just a bare minimum, for illustration.
After compilation finishes, you will be left with an executable
program called 'php'. Copy this into your document root, under a
dedicated FastCGI directory (e.g. $DOCROOT/fcgi-bin/php)
Step 2 - configure Zeus
Four stages:
- enable FastCGI
- configure FastCGI
- setup alias for FastCGI
- setup alias for PHP
1) Using the admin server, go to the 'module configuration' page for
your virtual server, and ensure that 'fastcgi' is enabled (select the
tickbox to the left).
2) While we can run FastCGI's locally, there are known problems with
some OS's (specifically, the communication between web server and
FastCGI happens over a unix domain socket, and some OS's have trouble
sustaining high connection rates over these sockets). So instead, we
are going to set up the PHP FastCGI to run 'remotely' over localhost
(this uses TCP sockets, which do not suffer this problem). Go to the
'fastcgi configuration' page, and under 'add remote fastcgi':
Add Remote FastCGI
Docroot path /fcgi-bin/php
Remote machine localhost:8002
The first entry is where you saved PHP, above.
The second entry is localhost:<any unused port>
We will start the FastCGI listening on this port shortly.
Click 'update' to commit these changes.
3) Go to the path mapping module and add an alias for FastCGI:
Add Alias
Docroot path /fcgi-bin
Filesystem directory /path/to/docroot/fcgi-bin
Alias type fastcgi
Click 'update' to commit these changes
4) Also on the path mapping module, add a handler for PHP:
Add handler
File extension php
Handler /fcgi-bin/php
Click 'update' to commit these changes
Finally restart your virtual server for these changes to take effect.
Step 3 - start PHP as a FastCGI runner
When you start PHP, it will pre-fork a given number of child processes
to handle incoming PHP requests. Each process will handle a given
number of requests before exiting (and being replaced by a newly
forked process). You can control these two parameters by setting the
following environment variables BEFORE starting the FastCGI runner:
PHP_FCGI_CHILDREN - the number of child processes to pre-fork. This
variable MUST be set, if not then the PHP will not run as a FastCGI.
We recommend a value of 8 for a fairly busy site. If you have many,
long-running PHP scripts, then you may need to increase this further.
PHP_FCGI_MAX_REQUESTS - the number of requests each PHP child process
handles before exiting. If not set, defaults to 500.
To start the FastCGI runner, execute '$ZEUSHOME/web/bin/fcgirunner
8002 $DOCROOT/fcgi-bin/php'. Substitute the appropriate values for
$ZEUSHOME and $DOCROOT; also substitute for 8002 the port you chose,
above.
To stop the runner (e.g. to experiment with the above environment
variables) you will need to manually stop and running PHP
processes. (Use 'ps' and 'kill'). As it is PHP which is forking lots
of children and not the runner, Zeus unfortunately cannot keep track
of what processes are running, sorry. A typical command line may look
like 'ps -efl | grep $DOCROOT/fcgi-bin/php | grep -v grep | awk
'{print $4}' | xargs kill'
-193
View File
@@ -1,193 +0,0 @@
Input Filter Support in PHP 5
-----------------------------
XSS (Cross Site Scripting) hacks are becoming more and more prevalent,
and can be quite difficult to prevent. Whenever you accept user data
and somehow display this data back to users, you are likely vulnerable
to XSS hacks.
The Input Filter support in PHP 5 is aimed at providing the framework
through which a company-wide or site-wide security policy can be
enforced. It is implemented as a SAPI hook and is called from the
treat_data and post handler functions. To implement your own security
policy you will need to write a standard PHP extension.
A simple implementation might look like the following. This stores the
original raw user data and adds a my_get_raw() function while the normal
$_POST, $_GET and $_COOKIE arrays are only populated with stripped
data. In this simple example all I am doing is calling strip_tags() on
the data. If register_globals is turned on, the default globals that
are created will be stripped ($foo) while a $RAW_foo is created with the
original user input.
ZEND_BEGIN_MODULE_GLOBALS(my_input_filter)
zval *post_array;
zval *get_array;
zval *cookie_array;
ZEND_END_MODULE_GLOBALS(my_input_filter)
#ifdef ZTS
#define IF_G(v) TSRMG(my_input_filter_globals_id, zend_my_input_filter_globals *, v)
#else
#define IF_G(v) (my_input_filter_globals.v)
#endif
ZEND_DECLARE_MODULE_GLOBALS(my_input_filter)
function_entry my_input_filter_functions[] = {
PHP_FE(my_get_raw, NULL)
{NULL, NULL, NULL}
};
zend_module_entry my_input_filter_module_entry = {
STANDARD_MODULE_HEADER,
"my_input_filter",
my_input_filter_functions,
PHP_MINIT(my_input_filter),
PHP_MSHUTDOWN(my_input_filter),
NULL,
PHP_RSHUTDOWN(my_input_filter),
PHP_MINFO(my_input_filter),
"0.1",
STANDARD_MODULE_PROPERTIES
};
PHP_MINIT_FUNCTION(my_input_filter)
{
ZEND_INIT_MODULE_GLOBALS(my_input_filter, php_my_input_filter_init_globals, NULL);
REGISTER_LONG_CONSTANT("POST", PARSE_POST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("GET", PARSE_GET, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("COOKIE", PARSE_COOKIE, CONST_CS | CONST_PERSISTENT);
sapi_register_input_filter(my_sapi_input_filter);
return SUCCESS;
}
PHP_RSHUTDOWN_FUNCTION(my_input_filter)
{
if(IF_G(get_array)) {
zval_ptr_dtor(&IF_G(get_array));
IF_G(get_array) = NULL;
}
if(IF_G(post_array)) {
zval_ptr_dtor(&IF_G(post_array));
IF_G(post_array) = NULL;
}
if(IF_G(cookie_array)) {
zval_ptr_dtor(&IF_G(cookie_array));
IF_G(cookie_array) = NULL;
}
return SUCCESS;
}
PHP_MINFO_FUNCTION(my_input_filter)
{
php_info_print_table_start();
php_info_print_table_row( 2, "My Input Filter Support", "enabled" );
php_info_print_table_row( 2, "Revision", "$Revision$");
php_info_print_table_end();
}
/* The filter handler. If you return 1 from it, then PHP also registers the
* (modified) variable. Returning 0 prevents PHP from registering the variable;
* you can use this if your filter already registers the variable under a
* different name, or if you just don't want the variable registered at all. */
SAPI_INPUT_FILTER_FUNC(my_sapi_input_filter)
{
zval new_var;
zval *array_ptr = NULL;
char *raw_var;
int var_len;
assert(*val != NULL);
switch(arg) {
case PARSE_GET:
if(!IF_G(get_array)) {
ALLOC_ZVAL(array_ptr);
array_init(array_ptr);
INIT_PZVAL(array_ptr);
}
IF_G(get_array) = array_ptr;
break;
case PARSE_POST:
if(!IF_G(post_array)) {
ALLOC_ZVAL(array_ptr);
array_init(array_ptr);
INIT_PZVAL(array_ptr);
}
IF_G(post_array) = array_ptr;
break;
case PARSE_COOKIE:
if(!IF_G(cookie_array)) {
ALLOC_ZVAL(array_ptr);
array_init(array_ptr);
INIT_PZVAL(array_ptr);
}
IF_G(cookie_array) = array_ptr;
break;
}
Z_STRLEN(new_var) = val_len;
Z_STRVAL(new_var) = estrndup(*val, val_len);
Z_TYPE(new_var) = IS_STRING;
var_len = strlen(var);
raw_var = emalloc(var_len+5); /* RAW_ and a \0 */
strcpy(raw_var, "RAW_");
strlcat(raw_var,var,var_len+5);
php_register_variable_ex(raw_var, &new_var, array_ptr TSRMLS_DC);
php_strip_tags(*val, val_len, NULL, NULL, 0);
*new_val_len = strlen(*val);
return 1;
}
PHP_FUNCTION(my_get_raw)
{
long arg;
char *var;
int var_len;
zval **tmp;
zval *array_ptr = NULL;
HashTable *hash_ptr;
char *raw_var;
if(zend_parse_parameters(2 TSRMLS_CC, "ls|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);
}
-159
View File
@@ -1,159 +0,0 @@
Things to do or at least think about doing in the future. Name in
parenthesis means that person has taken on this project.
Zend
----
* Allow foreach ($array as $k => list($a, $b)) syntax for multi
dimensional arrays.
* Look at replacing c-lib call tolower().
* Make hash API functions work with HASH_OF() to save time.
* Allow to set a default value for call-by-reference-parameters.
eg: function hello (&$pallo = NULL) {}
* 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?)
* Allow foreach ($array as $k => &$val) syntax. right now we cannot
traverse an array without copying each element.
* 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
-211
View File
@@ -1,211 +0,0 @@
Component: Zend Engine 2
Important stuff to finish: PPP members/PPP methods,
support of overloaded extensions, possibly differentiate
between class and namespace as discussed with Stig in
Germany.
Responsibility: Zeev, Andi, Stas
Time frame: Couple of months for first part and extensions will be
ongoing while PHP is being fixed.
Things to leave for later versions: Native aggregation
support, accessing static members via object and not class.
Component: Aggregation
Responsibility: Andi, Stig?
Time frame: ?
Component: Introspection
get_function_definition(<is_callable> [field]) =>
array(
file => filename
line_start =>
line_end =>
parameters => array( name, byref, default )
static_variables => array( name, value/default )
scope => 'namespace' | 'class' | null
namespace => classname | namespacename | 'main'
protection => protection_flags
phpdoc => pre-scanned-phpdoc-string
type => 'internal' | 'user'
)
get_class_definition(<class> [field]) =>
array(
type => 'internal' | 'user'
file => filename
line_start =>
line_end =>
name => pretty-name
parent => classname | namespace | null
flags => bitfield (ABSTRACT)
methods => array( array( name, phpdoc ) )
default_properties => array( array( name, value, phpdoc ) )
private_properties => array( array( name, value, phpdoc ) )
protected_properties => array( array( name, value, phpdoc ) )
public_properties => array( array( name, value, phpdoc ) )
static_members => array( array( name, value, phpdoc ) )
constants => array( array( name, value, phpdoc ) )
classes => array( array( name, phpdoc ) )
phpdoc => pre-scanned-phpdoc-string
)
get_constant_definition(<constant> [field]) =>
array(
file => filename
line_start =>
line_end =>
name =>
value =>
phpdoc =>
)
get_global_variable_defintion(<name> [field]) =>
array(
file =>
line_start =>
line_end =>
name =>
phpdoc =>
)
We tried to take into account the implementation of each piece of
information, and there are some that are problematic, especially those
regarding constants and global variables (where do we store the extra
information?)
With "pre-scanned-phpdoc-string" we mean converting:
/**
* Blah blah blah
* @param foo ...
*/
to:
Blah blah blah
@param foo
The rest of the phpdoc handling should be left to an extension.
Responsibility: Stig, Andrei, Harald
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: MySQL Extension
Complete rewrite, leveraging the new MySQL 4 / MySQL 5
features.
Responsibility: Georg Richter, Zak Greant
Timeframe: ?
Component: XML
- Rewrite DOMXML and incorporate all (or most of) W3C-DOM2.
- Use the new ZE2 features (Exceptions, setter/getter).
- Add SAX(2), XML Schema.
- XSLT, HTML, XPath, XPointer, DTD Validation will still be
supported, have to find a meaningful API for it.
- Break BC, warn users now.
- Look at the libxml2 patch by lukas schröder and see if we can prevent
memory leaks with it (anyway, getting rid of mem-leaks and intelligent
memory management is on top prio...)
- In the longer term, domxml (or another name, as with todays features
domxml is a little bit misleading) shall be the main xml-class, which
covers most of what's needed for decent XML support in PHP ;)
But there is certainly place for others like Sablotron etc.
Responsibility: Christian Stocker
Timeframe: ?
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
@@ -1,3 +0,0 @@
- clean up .cvsignores
- purge Makefile.ins and replace PHP_EXTENSION in config.m4s
with appropiate calls to PHP_NEW_EXTENSION
-26
View File
@@ -1,26 +0,0 @@
Copyright (c) 1999, 2000, Andi Gutmans, Sascha Schumann, Zeev Suraski.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
- Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
- Neither name of the copyright holders nor the names of their contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-6
View File
@@ -1,6 +0,0 @@
## process this file with automake to produce Makefile.am
AUTOMAKE_OPTIONS=foreign
noinst_LTLIBRARIES=libtsrm.la
libtsrm_la_SOURCES = TSRM.c tsrm_strtok_r.c tsrm_virtual_cwd.c
depend:
-2
View File
@@ -1,2 +0,0 @@
- Improve the lock in ts_resource_ex() in order to cover less code.
This can probably be done by more careful hash table access
-675
View File
@@ -1,675 +0,0 @@
/*
+----------------------------------------------------------------------+
| Thread Safe Resource Manager |
+----------------------------------------------------------------------+
| Copyright (c) 1999, 2000, Andi Gutmans, Sascha Schumann, Zeev Suraski|
| This source file is subject to the TSRM license, that is bundled |
| with this package in the file LICENSE |
+----------------------------------------------------------------------+
| Authors: Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
#include "TSRM.h"
#ifdef ZTS
#include <stdio.h>
#if HAVE_STDARG_H
#include <stdarg.h>
#endif
typedef struct _tsrm_tls_entry tsrm_tls_entry;
struct _tsrm_tls_entry {
void **storage;
int count;
THREAD_T thread_id;
tsrm_tls_entry *next;
};
typedef struct {
size_t size;
ts_allocate_ctor ctor;
ts_allocate_dtor dtor;
} tsrm_resource_type;
/* The memory manager table */
static tsrm_tls_entry **tsrm_tls_table=NULL;
static int tsrm_tls_table_size;
static ts_rsrc_id id_count;
/* The resource sizes table */
static tsrm_resource_type *resource_types_table=NULL;
static int resource_types_table_size;
static MUTEX_T tsmm_mutex; /* thread-safe memory manager mutex */
/* New thread handlers */
static tsrm_thread_begin_func_t tsrm_new_thread_begin_handler;
static tsrm_thread_end_func_t tsrm_new_thread_end_handler;
/* Debug support */
int tsrm_error(int level, const char *format, ...);
/* Read a resource from a thread's resource storage */
static int tsrm_error_level;
static FILE *tsrm_error_file;
#if TSRM_DEBUG
#define TSRM_ERROR(args) tsrm_error args
#define TSRM_SAFE_RETURN_RSRC(array, offset, range) \
{ \
int unshuffled_offset = TSRM_UNSHUFFLE_RSRC_ID(offset); \
\
if (offset==0) { \
return &array; \
} else if ((unshuffled_offset)>=0 && (unshuffled_offset)<(range)) { \
TSRM_ERROR((TSRM_ERROR_LEVEL_INFO, "Successfully fetched resource id %d for thread id %ld - 0x%0.8X", \
unshuffled_offset, (long) thread_resources->thread_id, array[unshuffled_offset])); \
return array[unshuffled_offset]; \
} else { \
TSRM_ERROR((TSRM_ERROR_LEVEL_ERROR, "Resource id %d is out of range (%d..%d)", \
unshuffled_offset, TSRM_SHUFFLE_RSRC_ID(0), TSRM_SHUFFLE_RSRC_ID(thread_resources->count-1))); \
return NULL; \
} \
}
#else
#define TSRM_ERROR(args)
#define TSRM_SAFE_RETURN_RSRC(array, offset, range) \
if (offset==0) { \
return &array; \
} else { \
return array[TSRM_UNSHUFFLE_RSRC_ID(offset)]; \
}
#endif
#if defined(PTHREADS)
/* Thread local storage */
static pthread_key_t tls_key;
#elif defined(TSRM_ST)
static int tls_key;
#elif defined(TSRM_WIN32)
static DWORD tls_key;
#elif defined(BETHREADS)
static int32 tls_key;
#endif
/* Startup TSRM (call once for the entire process) */
TSRM_API int tsrm_startup(int expected_threads, int expected_resources, int debug_level, char *debug_filename)
{
#if defined(GNUPTH)
pth_init();
#elif defined(PTHREADS)
pthread_key_create( &tls_key, 0 );
#elif defined(TSRM_ST)
st_init();
st_key_create(&tls_key, 0);
#elif defined(TSRM_WIN32)
tls_key = TlsAlloc();
#elif defined(BETHREADS)
tls_key = tls_allocate();
#endif
tsrm_error_file = stderr;
tsrm_error_set(debug_level, debug_filename);
tsrm_tls_table_size = expected_threads;
tsrm_tls_table = (tsrm_tls_entry **) calloc(tsrm_tls_table_size, sizeof(tsrm_tls_entry *));
if (!tsrm_tls_table) {
TSRM_ERROR((TSRM_ERROR_LEVEL_ERROR, "Unable to allocate TLS table"));
return 0;
}
id_count=0;
resource_types_table_size = expected_resources;
resource_types_table = (tsrm_resource_type *) calloc(resource_types_table_size, sizeof(tsrm_resource_type));
if (!resource_types_table) {
TSRM_ERROR((TSRM_ERROR_LEVEL_ERROR, "Unable to allocate resource types table"));
free(tsrm_tls_table);
tsrm_tls_table = NULL;
return 0;
}
tsmm_mutex = tsrm_mutex_alloc();
tsrm_new_thread_begin_handler = tsrm_new_thread_end_handler = NULL;
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Started up TSRM, %d expected threads, %d expected resources", expected_threads, expected_resources));
return 1;
}
/* Shutdown TSRM (call once for the entire process) */
TSRM_API void tsrm_shutdown(void)
{
int i;
if (tsrm_tls_table) {
for (i=0; i<tsrm_tls_table_size; i++) {
tsrm_tls_entry *p = tsrm_tls_table[i], *next_p;
while (p) {
int j;
next_p = p->next;
for (j=0; j<p->count; j++) {
/*
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.
if (resource_types_table && resource_types_table[j].dtor) {
resource_types_table[j].dtor(p->storage[j], &p->storage);
}
*/
free(p->storage[j]);
}
free(p->storage);
free(p);
p = next_p;
}
}
free(tsrm_tls_table);
tsrm_tls_table = NULL;
}
if (resource_types_table) {
free(resource_types_table);
resource_types_table=NULL;
}
tsrm_mutex_free(tsmm_mutex);
tsmm_mutex = NULL;
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Shutdown TSRM"));
if (tsrm_error_file!=stderr) {
fclose(tsrm_error_file);
}
#if defined(GNUPTH)
pth_kill();
#elif defined(PTHREADS)
pthread_setspecific(tls_key, 0);
pthread_key_delete(tls_key);
#elif defined(TSRM_WIN32)
TlsFree(tls_key);
#endif
}
/* allocates a new thread-safe-resource id */
TSRM_API ts_rsrc_id ts_allocate_id(ts_rsrc_id *rsrc_id, size_t size, ts_allocate_ctor ctor, ts_allocate_dtor dtor)
{
int i;
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Obtaining a new resource id, %d bytes", size));
tsrm_mutex_lock(tsmm_mutex);
/* obtain a resource id */
*rsrc_id = TSRM_SHUFFLE_RSRC_ID(id_count++);
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Obtained resource id %d", *rsrc_id));
/* store the new resource type in the resource sizes table */
if (resource_types_table_size < id_count) {
resource_types_table = (tsrm_resource_type *) realloc(resource_types_table, sizeof(tsrm_resource_type)*id_count);
if (!resource_types_table) {
tsrm_mutex_unlock(tsmm_mutex);
TSRM_ERROR((TSRM_ERROR_LEVEL_ERROR, "Unable to allocate storage for resource"));
*rsrc_id = 0;
return 0;
}
resource_types_table_size = id_count;
}
resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].size = size;
resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].ctor = ctor;
resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].dtor = dtor;
/* enlarge the arrays for the already active threads */
for (i=0; i<tsrm_tls_table_size; i++) {
tsrm_tls_entry *p = tsrm_tls_table[i];
while (p) {
if (p->count < id_count) {
int j;
p->storage = (void *) realloc(p->storage, sizeof(void *)*id_count);
for (j=p->count; j<id_count; j++) {
p->storage[j] = (void *) malloc(resource_types_table[j].size);
if (resource_types_table[j].ctor) {
resource_types_table[j].ctor(p->storage[j], &p->storage);
}
}
p->count = id_count;
}
p = p->next;
}
}
tsrm_mutex_unlock(tsmm_mutex);
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Successfully allocated new resource id %d", *rsrc_id));
return *rsrc_id;
}
static void allocate_new_resource(tsrm_tls_entry **thread_resources_ptr, THREAD_T thread_id)
{
int i;
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Creating data structures for thread %x", thread_id));
(*thread_resources_ptr) = (tsrm_tls_entry *) malloc(sizeof(tsrm_tls_entry));
(*thread_resources_ptr)->storage = (void **) malloc(sizeof(void *)*id_count);
(*thread_resources_ptr)->count = id_count;
(*thread_resources_ptr)->thread_id = thread_id;
(*thread_resources_ptr)->next = NULL;
#if defined(PTHREADS)
/* Set thread local storage to this new thread resources structure */
pthread_setspecific(tls_key, (void *) *thread_resources_ptr);
#elif defined(TSRM_ST)
st_thread_setspecific(tls_key, (void *) *thread_resources_ptr);
#elif defined(TSRM_WIN32)
TlsSetValue(tls_key, (void *) *thread_resources_ptr);
#elif defined(BETHREADS)
tls_set(tls_key, (void*) *thread_resources_ptr);
#endif
if (tsrm_new_thread_begin_handler) {
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);
}
}
tsrm_mutex_unlock(tsmm_mutex);
if (tsrm_new_thread_end_handler) {
tsrm_new_thread_end_handler(thread_id, &((*thread_resources_ptr)->storage));
}
}
/* fetches the requested resource for the current thread */
TSRM_API void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id)
{
THREAD_T thread_id;
int hash_value;
tsrm_tls_entry *thread_resources;
#ifdef NETWARE
/* The below if loop is added for NetWare to fix an abend while unloading PHP
* when an Apache unload command is issued on the system console.
* While exiting from PHP, at the end for some reason, this function is called
* with tsrm_tls_table = NULL. When this happened, the server abends when
* tsrm_tls_table is accessed since it is NULL.
*/
if(tsrm_tls_table) {
#endif
if (!th_id) {
#if defined(PTHREADS)
/* Fast path for looking up the resources for the current
* thread. Its used by just about every call to
* ts_resource_ex(). This avoids the need for a mutex lock
* and our hashtable lookup.
*/
thread_resources = pthread_getspecific(tls_key);
#elif defined(TSRM_ST)
thread_resources = st_thread_getspecific(tls_key);
#elif defined(TSRM_WIN32)
thread_resources = TlsGetValue(tls_key);
#elif defined(BETHREADS)
thread_resources = (tsrm_tls_entry*)tls_get(tls_key);
#else
thread_resources = NULL;
#endif
if (thread_resources) {
TSRM_ERROR((TSRM_ERROR_LEVEL_INFO, "Fetching resource id %d for current thread %d", id, (long) thread_resources->thread_id));
/* Read a specific resource from the thread's resources.
* This is called outside of a mutex, so have to be aware about external
* changes to the structure as we read it.
*/
TSRM_SAFE_RETURN_RSRC(thread_resources->storage, id, thread_resources->count);
}
thread_id = tsrm_thread_id();
} else {
thread_id = *th_id;
}
TSRM_ERROR((TSRM_ERROR_LEVEL_INFO, "Fetching resource id %d for thread %ld", id, (long) thread_id));
tsrm_mutex_lock(tsmm_mutex);
hash_value = THREAD_HASH_OF(thread_id, tsrm_tls_table_size);
thread_resources = tsrm_tls_table[hash_value];
if (!thread_resources) {
allocate_new_resource(&tsrm_tls_table[hash_value], thread_id);
return ts_resource_ex(id, &thread_id);
} else {
do {
if (thread_resources->thread_id == thread_id) {
break;
}
if (thread_resources->next) {
thread_resources = thread_resources->next;
} else {
allocate_new_resource(&thread_resources->next, thread_id);
return ts_resource_ex(id, &thread_id);
/*
* thread_resources = thread_resources->next;
* break;
*/
}
} while (thread_resources);
}
tsrm_mutex_unlock(tsmm_mutex);
/* Read a specific resource from the thread's resources.
* This is called outside of a mutex, so have to be aware about external
* changes to the structure as we read it.
*/
TSRM_SAFE_RETURN_RSRC(thread_resources->storage, id, thread_resources->count);
#ifdef NETWARE
} /* if(tsrm_tls_table) */
#endif
}
/* frees all resources allocated for the current thread */
void ts_free_thread(void)
{
tsrm_tls_entry *thread_resources;
int i;
THREAD_T thread_id = tsrm_thread_id();
int hash_value;
tsrm_tls_entry *last=NULL;
tsrm_mutex_lock(tsmm_mutex);
hash_value = THREAD_HASH_OF(thread_id, tsrm_tls_table_size);
thread_resources = tsrm_tls_table[hash_value];
while (thread_resources) {
if (thread_resources->thread_id == thread_id) {
for (i=0; i<thread_resources->count; i++) {
if (resource_types_table[i].dtor) {
resource_types_table[i].dtor(thread_resources->storage[i], &thread_resources->storage);
}
}
for (i=0; i<thread_resources->count; i++) {
free(thread_resources->storage[i]);
}
free(thread_resources->storage);
if (last) {
last->next = thread_resources->next;
} else {
tsrm_tls_table[hash_value] = thread_resources->next;
}
#if defined(PTHREADS)
pthread_setspecific(tls_key, 0);
#elif defined(TSRM_WIN32)
TlsSetValue(tls_key, 0);
#endif
free(thread_resources);
break;
}
if (thread_resources->next) {
last = thread_resources;
}
thread_resources = thread_resources->next;
}
tsrm_mutex_unlock(tsmm_mutex);
}
/* deallocates all occurrences of a given id */
void ts_free_id(ts_rsrc_id id)
{
}
/*
* Utility Functions
*/
/* Obtain the current thread id */
TSRM_API THREAD_T tsrm_thread_id(void)
{
#ifdef TSRM_WIN32
return GetCurrentThreadId();
#elif defined(NETWARE)
/* There seems to be some problem with the LibC call: NXThreadGetId().
* Due to this, the PHPMyAdmin application is abending in PHP calls.
* Used the call, kCurrentThread instead and it works fine.
*/
/* return NXThreadGetId(); */
return kCurrentThread();
#elif defined(GNUPTH)
return pth_self();
#elif defined(PTHREADS)
return pthread_self();
#elif defined(NSAPI)
return systhread_current();
#elif defined(PI3WEB)
return PIThread_getCurrent();
#elif defined(TSRM_ST)
return st_thread_self();
#elif defined(BETHREADS)
return find_thread(NULL);
#endif
}
/* Allocate a mutex */
TSRM_API MUTEX_T tsrm_mutex_alloc(void)
{
MUTEX_T mutexp;
#ifdef NETWARE
#ifndef USE_MPK
/* To use the Recursive Mutex Locking of LibC */
long flags = NX_MUTEX_RECURSIVE;
NXHierarchy_t order = 0;
NX_LOCK_INFO_ALLOC (lockInfo, "PHP-TSRM", 0);
#endif
#endif
#ifdef TSRM_WIN32
mutexp = malloc(sizeof(CRITICAL_SECTION));
InitializeCriticalSection(mutexp);
#elif defined(NETWARE)
#ifdef USE_MPK
mutexp = kMutexAlloc((BYTE*)"PHP-TSRM");
#else
mutexp = NXMutexAlloc(flags, order, &lockInfo);
#endif
#elif defined(GNUPTH)
mutexp = (MUTEX_T) malloc(sizeof(*mutexp));
pth_mutex_init(mutexp);
#elif defined(PTHREADS)
mutexp = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
pthread_mutex_init(mutexp,NULL);
#elif defined(NSAPI)
mutexp = crit_init();
#elif defined(PI3WEB)
mutexp = PIPlatform_allocLocalMutex();
#elif defined(TSRM_ST)
mutexp = st_mutex_new();
#elif defined(BETHREADS)
mutexp = (beos_ben*)malloc(sizeof(beos_ben));
mutexp->ben = 0;
mutexp->sem = create_sem(1, "PHP sempahore");
#endif
#ifdef THR_DEBUG
printf("Mutex created thread: %d\n",mythreadid());
#endif
return( mutexp );
}
/* Free a mutex */
TSRM_API void tsrm_mutex_free(MUTEX_T mutexp)
{
if (mutexp) {
#ifdef TSRM_WIN32
DeleteCriticalSection(mutexp);
free(mutexp);
#elif defined(NETWARE)
#ifdef USE_MPK
kMutexFree(mutexp);
#else
NXMutexFree(mutexp);
#endif
#elif defined(GNUPTH)
free(mutexp);
#elif defined(PTHREADS)
pthread_mutex_destroy(mutexp);
free(mutexp);
#elif defined(NSAPI)
crit_terminate(mutexp);
#elif defined(PI3WEB)
PISync_delete(mutexp);
#elif defined(TSRM_ST)
st_mutex_destroy(mutexp);
#elif defined(BETHREADS)
delete_sem(mutexp->sem);
free(mutexp);
#endif
}
#ifdef THR_DEBUG
printf("Mutex freed thread: %d\n",mythreadid());
#endif
}
/* Lock a mutex */
TSRM_API int tsrm_mutex_lock(MUTEX_T mutexp)
{
TSRM_ERROR((TSRM_ERROR_LEVEL_INFO, "Mutex locked thread: %ld", tsrm_thread_id()));
#ifdef TSRM_WIN32
EnterCriticalSection(mutexp);
return 1;
#elif defined(NETWARE)
#ifdef USE_MPK
return kMutexLock(mutexp);
#else
return NXLock(mutexp);
#endif
#elif defined(GNUPTH)
return pth_mutex_acquire(mutexp, 0, NULL);
#elif defined(PTHREADS)
return pthread_mutex_lock(mutexp);
#elif defined(NSAPI)
return crit_enter(mutexp);
#elif defined(PI3WEB)
return PISync_lock(mutexp);
#elif defined(TSRM_ST)
return st_mutex_lock(mutexp);
#elif defined(BETHREADS)
if (atomic_add(&mutexp->ben, 1) != 0)
return acquire_sem(mutexp->sem);
return 0;
#endif
}
/* Unlock a mutex */
TSRM_API int tsrm_mutex_unlock(MUTEX_T mutexp)
{
TSRM_ERROR((TSRM_ERROR_LEVEL_INFO, "Mutex unlocked thread: %ld", tsrm_thread_id()));
#ifdef TSRM_WIN32
LeaveCriticalSection(mutexp);
return 1;
#elif defined(NETWARE)
#ifdef USE_MPK
return kMutexUnlock(mutexp);
#else
return NXUnlock(mutexp);
#endif
#elif defined(GNUPTH)
return pth_mutex_release(mutexp);
#elif defined(PTHREADS)
return pthread_mutex_unlock(mutexp);
#elif defined(NSAPI)
return crit_exit(mutexp);
#elif defined(PI3WEB)
return PISync_unlock(mutexp);
#elif defined(TSRM_ST)
return st_mutex_unlock(mutexp);
#elif defined(BETHREADS)
if (atomic_add(&mutexp->ben, -1) != 1)
return release_sem(mutexp->sem);
return 0;
#endif
}
TSRM_API void *tsrm_set_new_thread_begin_handler(tsrm_thread_begin_func_t new_thread_begin_handler)
{
void *retval = (void *) tsrm_new_thread_begin_handler;
tsrm_new_thread_begin_handler = new_thread_begin_handler;
return retval;
}
TSRM_API void *tsrm_set_new_thread_end_handler(tsrm_thread_end_func_t new_thread_end_handler)
{
void *retval = (void *) tsrm_new_thread_end_handler;
tsrm_new_thread_end_handler = new_thread_end_handler;
return retval;
}
/*
* Debug support
*/
#if TSRM_DEBUG
int tsrm_error(int level, const char *format, ...)
{
if (level<=tsrm_error_level) {
va_list args;
int size;
fprintf(tsrm_error_file, "TSRM: ");
va_start(args, format);
size = vfprintf(tsrm_error_file, format, args);
va_end(args);
fprintf(tsrm_error_file, "\n");
fflush(tsrm_error_file);
return size;
} else {
return 0;
}
}
#endif
void tsrm_error_set(int level, char *debug_filename)
{
tsrm_error_level = level;
#if TSRM_DEBUG
if (tsrm_error_file!=stderr) { /* close files opened earlier */
fclose(tsrm_error_file);
}
if (debug_filename) {
tsrm_error_file = fopen(debug_filename, "w");
if (!tsrm_error_file) {
tsrm_error_file = stderr;
}
} else {
tsrm_error_file = stderr;
}
#endif
}
#endif /* ZTS */
-186
View File
@@ -1,186 +0,0 @@
# Microsoft Developer Studio Project File - Name="TSRM" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=TSRM - Win32 Debug_TS
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "TSRM.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "TSRM.mak" CFG="TSRM - Win32 Debug_TS"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "TSRM - Win32 Debug_TS" (based on "Win32 (x86) Static Library")
!MESSAGE "TSRM - Win32 Release_TS" (based on "Win32 (x86) Static Library")
!MESSAGE "TSRM - Win32 Release_TS_inline" (based on "Win32 (x86) Static Library")
!MESSAGE "TSRM - Win32 Release_TSDbg" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "TSRM - Win32 Debug_TS"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "TSRM___Win32_Debug_TS"
# PROP BASE Intermediate_Dir "TSRM___Win32_Debug_TS"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug_TS"
# PROP Intermediate_Dir "Debug_TS"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "C:\Projects\TSRM" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /D "_DEBUG" /D "ZTS" /D "_LIB" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /D TSRM_DEBUG=1 /YX /FD /GZ /c
# ADD BASE RSC /l 0x40d /d "_DEBUG"
# ADD RSC /l 0x40d /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "TSRM - Win32 Release_TS"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "TSRM___Win32_Release_TS"
# PROP BASE Intermediate_Dir "TSRM___Win32_Release_TS"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_TS"
# PROP Intermediate_Dir "Release_TS"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "ZTS" /D "_LIB" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /D TSRM_DEBUG=0 /YX /FD /c
# ADD BASE RSC /l 0x40d /d "NDEBUG"
# ADD RSC /l 0x40d /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "TSRM - Win32 Release_TS_inline"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "TSRM___Win32_Release_TS_inline"
# PROP BASE Intermediate_Dir "TSRM___Win32_Release_TS_inline"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_TS_inline"
# PROP Intermediate_Dir "Release_TS_inline"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "TSRM_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "ZTS" /D "_LIB" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /D TSRM_DEBUG=0 /YX /FD /c
# ADD BASE RSC /l 0x40d /d "NDEBUG"
# ADD RSC /l 0x40d /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "TSRM - Win32 Release_TSDbg"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "TSRM___Win32_Release_TSDbg"
# PROP BASE Intermediate_Dir "TSRM___Win32_Release_TSDbg"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_TSDbg"
# PROP Intermediate_Dir "Release_TSDbg"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "ZTS" /D "_LIB" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /D TSRM_DEBUG=0 /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /Zi /Od /I "." /D "NDEBUG" /D "ZTS" /D "_LIB" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /D TSRM_DEBUG=0 /YX /FD /c
# ADD BASE RSC /l 0x40d /d "NDEBUG"
# ADD RSC /l 0x40d /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
# Name "TSRM - Win32 Debug_TS"
# Name "TSRM - Win32 Release_TS"
# Name "TSRM - Win32 Release_TS_inline"
# Name "TSRM - Win32 Release_TSDbg"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\TSRM.c
# End Source File
# Begin Source File
SOURCE=.\tsrm_strtok_r.c
# End Source File
# Begin Source File
SOURCE=.\tsrm_virtual_cwd.c
# End Source File
# Begin Source File
SOURCE=.\tsrm_win32.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\readdir.h
# End Source File
# Begin Source File
SOURCE=.\TSRM.h
# End Source File
# Begin Source File
SOURCE=.\tsrm_config.w32.h
# End Source File
# Begin Source File
SOURCE=.\tsrm_config_common.h
# End Source File
# Begin Source File
SOURCE=.\tsrm_strtok_r.h
# End Source File
# Begin Source File
SOURCE=.\tsrm_virtual_cwd.h
# End Source File
# Begin Source File
SOURCE=.\tsrm_win32.h
# End Source File
# End Group
# End Target
# End Project
-177
View File
@@ -1,177 +0,0 @@
/*
+----------------------------------------------------------------------+
| Thread Safe Resource Manager |
+----------------------------------------------------------------------+
| Copyright (c) 1999, 2000, Andi Gutmans, Sascha Schumann, Zeev Suraski|
| This source file is subject to the TSRM license, that is bundled |
| with this package in the file LICENSE |
+----------------------------------------------------------------------+
| Authors: Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
#ifndef TSRM_H
#define TSRM_H
/* #ifndef WIN32 */
#if !defined(WIN32) && !defined(NETWARE)
# include "tsrm_config.h"
#endif
#ifdef WIN32
# define TSRM_WIN32
# include "tsrm_config.w32.h"
#endif
#ifdef TSRM_WIN32
# ifdef TSRM_EXPORTS
# define TSRM_API __declspec(dllexport)
# else
# define TSRM_API __declspec(dllimport)
# endif
#else
# define TSRM_API
#endif
/* Only compile multi-threading functions if we're in ZTS mode */
#ifdef ZTS
#ifdef TSRM_WIN32
# ifndef TSRM_INCLUDE_FULL_WINDOWS_HEADERS
# define WIN32_LEAN_AND_MEAN
# endif
# include <windows.h>
# include <shellapi.h>
#elif defined(NETWARE)
# include <nks/thread.h>
#ifdef USE_MPK
# include <mpklib4php.h>
#else
# include <nks/synch.h>
#endif
#elif defined(GNUPTH)
# include <pth.h>
#elif defined(PTHREADS)
# include <pthread.h>
#elif defined(TSRM_ST)
# include <st.h>
#elif defined(BETHREADS)
#include <kernel/OS.h>
#include <TLS.h>
#endif
typedef int ts_rsrc_id;
/* Define THREAD_T and MUTEX_T */
#ifdef TSRM_WIN32
# define THREAD_T DWORD
# define MUTEX_T CRITICAL_SECTION *
#elif defined(NETWARE)
# define THREAD_T NXThreadId_t
#ifdef USE_MPK
# define MUTEX_T MUTEX
#else
# define MUTEX_T NXMutex_t *
#endif
#elif defined(GNUPTH)
# define THREAD_T pth_t
# define MUTEX_T pth_mutex_t *
#elif defined(PTHREADS)
# define THREAD_T pthread_t
# define MUTEX_T pthread_mutex_t *
#elif defined(NSAPI)
# define THREAD_T SYS_THREAD
# define MUTEX_T CRITICAL
#elif defined(PI3WEB)
# define THREAD_T PIThread *
# define MUTEX_T PISync *
#elif defined(TSRM_ST)
# define THREAD_T st_thread_t
# define MUTEX_T st_mutex_t
#elif defined(BETHREADS)
# define THREAD_T thread_id
typedef struct {
sem_id sem;
int32 ben;
} beos_ben;
# define MUTEX_T beos_ben *
#endif
typedef void (*ts_allocate_ctor)(void *, void ***);
typedef void (*ts_allocate_dtor)(void *, void ***);
#define THREAD_HASH_OF(thr,ts) (unsigned long)thr%(unsigned long)ts
#ifdef __cplusplus
extern "C" {
#endif
/* startup/shutdown */
TSRM_API int tsrm_startup(int expected_threads, int expected_resources, int debug_level, char *debug_filename);
TSRM_API void tsrm_shutdown(void);
/* allocates a new thread-safe-resource id */
TSRM_API ts_rsrc_id ts_allocate_id(ts_rsrc_id *rsrc_id, size_t size, ts_allocate_ctor ctor, ts_allocate_dtor dtor);
/* fetches the requested resource for the current thread */
TSRM_API void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id);
#define ts_resource(id) ts_resource_ex(id, NULL)
/* frees all resources allocated for the current thread */
TSRM_API void ts_free_thread(void);
/* deallocates all occurrences of a given id */
TSRM_API void ts_free_id(ts_rsrc_id id);
/* Debug support */
#define TSRM_ERROR_LEVEL_ERROR 1
#define TSRM_ERROR_LEVEL_CORE 2
#define TSRM_ERROR_LEVEL_INFO 3
typedef void (*tsrm_thread_begin_func_t)(THREAD_T thread_id, void ***tsrm_ls);
typedef void (*tsrm_thread_end_func_t)(THREAD_T thread_id, void ***tsrm_ls);
TSRM_API int tsrm_error(int level, const char *format, ...);
TSRM_API void tsrm_error_set(int level, char *debug_filename);
/* utility functions */
TSRM_API THREAD_T tsrm_thread_id(void);
TSRM_API MUTEX_T tsrm_mutex_alloc(void);
TSRM_API void tsrm_mutex_free(MUTEX_T mutexp);
TSRM_API int tsrm_mutex_lock(MUTEX_T mutexp);
TSRM_API int tsrm_mutex_unlock(MUTEX_T mutexp);
TSRM_API void *tsrm_set_new_thread_begin_handler(tsrm_thread_begin_func_t new_thread_begin_handler);
TSRM_API void *tsrm_set_new_thread_end_handler(tsrm_thread_end_func_t new_thread_end_handler);
#define TSRM_SHUFFLE_RSRC_ID(rsrc_id) ((rsrc_id)+1)
#define TSRM_UNSHUFFLE_RSRC_ID(rsrc_id) ((rsrc_id)-1)
#define TSRMLS_FETCH() void ***tsrm_ls = (void ***) ts_resource_ex(0, NULL)
#define TSRMLS_FETCH_FROM_CTX(ctx) void ***tsrm_ls = (void ***) ctx
#define TSRMLS_SET_CTX(ctx) (void ***) ctx = tsrm_ls
#define TSRMG(id, type, element) (((type) (*((void ***) tsrm_ls))[TSRM_UNSHUFFLE_RSRC_ID(id)])->element)
#define TSRMLS_D void ***tsrm_ls
#define TSRMLS_DC , TSRMLS_D
#define TSRMLS_C tsrm_ls
#define TSRMLS_CC , TSRMLS_C
#ifdef __cplusplus
}
#endif
#else /* non ZTS */
#define TSRMLS_FETCH()
#define TSRMLS_FETCH_FROM_CTX(ctx)
#define TSRMLS_SET_CTX(ctx)
#define TSRMLS_D void
#define TSRMLS_DC
#define TSRMLS_C
#define TSRMLS_CC
#endif /* ZTS */
#endif /* TSRM_H */
-1
View File
@@ -1 +0,0 @@
#undef PTHREADS
-5
View File
@@ -1,5 +0,0 @@
AC_DEFUN(AM_SET_LIBTOOL_VARIABLE,[
LIBTOOL='$(SHELL) $(top_builddir)/libtool $1'
])
-43
View File
@@ -1,43 +0,0 @@
# Makefile to generate build tools
#
# Standard usage:
# make -f build.mk
#
# Written by Sascha Schumann
#
# $Id$
LT_TARGETS = ltmain.sh ltconfig
config_h_in = tsrm_config.h.in
makefile_am_files = Makefile.am
makefile_in_files = $(makefile_am_files:.am=.in)
makefile_files = $(makefile_am_files:e.am=e)
targets = $(makefile_in_files) $(LT_TARGETS) configure $(config_h_in)
all: $(targets)
clean:
rm -f $(targets)
$(LT_TARGETS):
rm -f $(LT_TARGETS)
libtoolize --automake $(AMFLAGS) -f
$(makefile_in_files): $(makefile_am_files)
automake -a -i $(AMFLAGS) $(makefile_files)
aclocal.m4: configure.in acinclude.m4
aclocal
$(config_h_in): configure.in acconfig.h
# explicitly remove target since autoheader does not seem to work
# correctly otherwise (timestamps are not updated)
@rm -f $@
autoheader
configure: aclocal.m4 configure.in
autoconf
-33
View File
@@ -1,33 +0,0 @@
#!/bin/sh
case "$1" in
--copy)
automake_flags=--copy
shift
;;
esac
libtoolize --force --automake $automake_flags
mv aclocal.m4 aclocal.m4.old 2>/dev/null
aclocal
if cmp aclocal.m4.old aclocal.m4 > /dev/null 2>&1; then
echo "buildconf: keeping ${1}aclocal.m4"
mv aclocal.m4.old aclocal.m4
else
echo "buildconf: created or modified ${1}aclocal.m4"
fi
autoheader
automake --add-missing --include-deps $automake_flags
mv configure configure.old 2>/dev/null
autoconf
if cmp configure.old configure > /dev/null 2>&1; then
echo "buildconf: keeping ${1}configure"
mv configure.old configure
else
echo "buildconf: created or modified ${1}configure"
fi
-10
View File
@@ -1,10 +0,0 @@
// vim:ft=javascript
// $Id$
if (CHECK_HEADER_ADD_INCLUDE("NewAPIs.h", "CFLAGS_PHP", php_usual_include_suspects)) {
// Need to add the flag directly, since TSRM doesn't include the config
// header
ADD_FLAG("CFLAGS_PHP", "/DHAVE_NEWAPIS_H=1");
}
ADD_SOURCES("TSRM", "TSRM.c tsrm_strtok_r.c tsrm_virtual_cwd.c tsrm_win32.c");
-31
View File
@@ -1,31 +0,0 @@
dnl $Id$
dnl
dnl Minimalistic configure.in for TSRM.
dnl
AC_INIT(TSRM.c)
AM_INIT_AUTOMAKE(TSRM, 1.0, nodefine)
AM_CONFIG_HEADER(tsrm_config.h)
sinclude(tsrm.m4)
TSRM_BASIC_CHECKS
TSRM_THREADS_CHECKS
AM_PROG_LIBTOOL
if test "$enable_debug" != "yes"; then
AM_SET_LIBTOOL_VARIABLE([--silent])
fi
dnl TSRM_PTHREAD
AC_CHECK_HEADERS(
utime.h \
dirent.h \
stdarg.h \
alloca.h \
unistd.h \
limits.h
)
AC_OUTPUT(Makefile)
-44
View File
@@ -1,44 +0,0 @@
#ifndef READDIR_H
#define READDIR_H
/*
* Structures and types used to implement opendir/readdir/closedir
* on Windows 95/NT.
*/
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
/* struct dirent - same as Unix */
struct dirent {
long d_ino; /* inode (always 1 in WIN32) */
off_t d_off; /* offset to this dirent */
unsigned short d_reclen; /* length of d_name */
char d_name[_MAX_FNAME + 1]; /* filename (null terminated) */
};
/* typedef DIR - not the same as Unix */
typedef struct {
long handle; /* _findfirst/_findnext handle */
short offset; /* offset into directory */
short finished; /* 1 if there are not more files */
struct _finddata_t fileinfo; /* from _findfirst/_findnext */
char *dir; /* the dir we are reading */
struct dirent dent; /* the dirent to return */
} DIR;
/* Function prototypes */
DIR *opendir(const char *);
struct dirent *readdir(DIR *);
int readdir_r(DIR *, struct dirent *, struct dirent **);
int closedir(DIR *);
void rewinddir(DIR *);
#endif /* READDIR_H */
-165
View File
@@ -1,165 +0,0 @@
dnl Copyright (c) 1999, 2000 Sascha Schumann. All rights reserved.
dnl
dnl Redistribution and use in source and binary forms, with or without
dnl modification, are permitted provided that the following conditions
dnl are met:
dnl
dnl 1. Redistributions of source code must retain the above copyright
dnl notice, this list of conditions and the following disclaimer.
dnl
dnl 2. Redistributions in binary form must reproduce the above copyright
dnl notice, this list of conditions and the following disclaimer in
dnl the documentation and/or other materials provided with the
dnl distribution.
dnl
dnl THIS SOFTWARE IS PROVIDED BY SASCHA SCHUMANN ``AS IS'' AND ANY
dnl EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
dnl IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
dnl PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SASCHA SCHUMANN OR
dnl HIS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
dnl SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
dnl NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
dnl LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
dnl HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
dnl STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
dnl ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
dnl OF THE POSSIBILITY OF SUCH DAMAGE.
dnl
dnl PTHREADS_FLAGS
dnl
dnl Set some magic defines to achieve POSIX threads conformance
dnl
AC_DEFUN(PTHREADS_FLAGS,[
if test -z "$host_alias" && test -n "$host"; then
host_alias=$host
fi
if test -z "$host_alias"; then
AC_MSG_ERROR(host_alias is not set. Make sure to run config.guess)
fi
case $host_alias in
*solaris*)
PTHREAD_FLAGS="-D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT";;
*freebsd*)
PTHREAD_FLAGS="-D_REENTRANT -D_THREAD_SAFE";;
*linux*)
PTHREAD_FLAGS=-D_REENTRANT;;
*aix*)
PTHREAD_FLAGS=-D_THREAD_SAFE;;
*irix*)
PTHREAD_FLAGS=-D_POSIX_THREAD_SAFE_FUNCTIONS;;
*hpux*)
PTHREAD_FLAGS=-D_REENTRANT;;
*sco*)
PTHREAD_FLAGS=-D_REENTRANT;;
dnl Solves sigwait() problem, creates problems with u_long etc.
dnl PTHREAD_FLAGS="-D_REENTRANT -D_XOPEN_SOURCE=500 -D_POSIX_C_SOURCE=199506 -D_XOPEN_SOURCE_EXTENDED=1";;
esac
if test -n "$PTHREAD_FLAGS"; then
CPPFLAGS="$CPPFLAGS $PTHREAD_FLAGS"
fi
])dnl
dnl
dnl PTHREADS_CHECK_COMPILE
dnl
dnl Check whether the current setup can use POSIX threads calls
dnl
AC_DEFUN(PTHREADS_CHECK_COMPILE, [
AC_TRY_RUN( [
#include <pthread.h>
#include <stddef.h>
void *thread_routine(void *data) {
return data;
}
int main() {
pthread_t thd;
pthread_mutexattr_t mattr;
int data = 1;
pthread_mutexattr_init(&mattr);
return pthread_create(&thd, NULL, thread_routine, &data);
} ], [
pthreads_working=yes
], [
pthreads_working=no
], pthreads_working=no ) ] )dnl
dnl
dnl PTHREADS_CHECK()
dnl
dnl Try to find a way to enable POSIX threads
dnl
dnl Magic flags
dnl -kthread gcc (FreeBSD)
dnl -Kthread UDK cc (UnixWare)
dnl -mt WorkShop cc (Solaris)
dnl -mthreads gcc (AIX)
dnl -pthread gcc (Linux, FreeBSD, NetBSD, OpenBSD)
dnl -pthreads gcc (Solaris)
dnl -qthreaded AIX cc V5
dnl -threads gcc (HP-UX)
dnl
AC_DEFUN(PTHREADS_CHECK,[
if test "$beos_threads" = "1"; then
pthreads_working="yes"
ac_cv_pthreads_cflags=""
else
save_CFLAGS=$CFLAGS
save_LIBS=$LIBS
PTHREADS_ASSIGN_VARS
PTHREADS_CHECK_COMPILE
LIBS=$save_LIBS
CFLAGS=$save_CFLAGS
AC_CACHE_CHECK(for pthreads_cflags,ac_cv_pthreads_cflags,[
ac_cv_pthreads_cflags=
if test "$pthreads_working" != "yes"; then
for flag in -kthread -pthread -pthreads -mthreads -Kthread -threads -mt -qthreaded; do
ac_save=$CFLAGS
CFLAGS="$CFLAGS $flag"
PTHREADS_CHECK_COMPILE
CFLAGS=$ac_save
if test "$pthreads_working" = "yes"; then
ac_cv_pthreads_cflags=$flag
break
fi
done
fi
fi
])
AC_CACHE_CHECK(for pthreads_lib, ac_cv_pthreads_lib,[
ac_cv_pthreads_lib=
if test "$pthreads_working" != "yes"; then
for lib in pthread pthreads c_r; do
ac_save=$LIBS
LIBS="$LIBS -l$lib"
PTHREADS_CHECK_COMPILE
LIBS=$ac_save
if test "$pthreads_working" = "yes"; then
ac_cv_pthreads_lib=$lib
break
fi
done
fi
])
if test "$pthreads_working" = "yes"; then
threads_result="POSIX-Threads found"
else
threads_result="POSIX-Threads not found"
fi
])dnl
dnl
dnl
AC_DEFUN(PTHREADS_ASSIGN_VARS,[
if test -n "$ac_cv_pthreads_lib"; then
LIBS="$LIBS -l$ac_cv_pthreads_lib"
fi
if test -n "$ac_cv_pthreads_cflags"; then
CFLAGS="$CFLAGS $ac_cv_pthreads_cflags"
fi
])dnl
-129
View File
@@ -1,129 +0,0 @@
dnl TSRM_CHECK_GCC_ARG(ARG, ACTION-IF-FOUND, ACTION-IF-NOT_FOUND)
AC_DEFUN(TSRM_CHECK_GCC_ARG,[
gcc_arg_name=[ac_cv_gcc_arg]translit($1,A-Z-,a-z_)
AC_CACHE_CHECK([whether $CC supports $1], [ac_cv_gcc_arg]translit($1,A-Z-,a-z_), [
echo 'void somefunc() { };' > conftest.c
cmd='$CC $1 -c conftest.c'
if eval $cmd 2>&1 | egrep -e $1 >/dev/null ; then
ac_result=no
else
ac_result=yes
fi
eval $gcc_arg_name=$ac_result
rm -f conftest.*
])
if eval test "\$$gcc_arg_name" = "yes"; then
$2
else
:
$3
fi
])
AC_DEFUN(TSRM_BASIC_CHECKS,[
AC_REQUIRE([AC_PROG_CC])dnl
dnl AC_REQUIRE([AM_PROG_CC_STDC])dnl
AC_REQUIRE([AC_PROG_CC_C_O])dnl
AC_REQUIRE([AC_PROG_RANLIB])dnl
AC_CHECK_HEADERS(stdarg.h)
])
AC_DEFUN(TSRM_CHECK_PTH,[
AC_MSG_CHECKING(for GNU Pth)
PTH_PREFIX="`$1 --prefix`"
if test -z "$PTH_PREFIX"; then
AC_MSG_RESULT(Please check your Pth installation)
fi
CPPFLAGS="$CPPFLAGS `$1 --cflags`"
LDFLAGS="$LDFLAGS `$1 --ldflags`"
LIBS="$LIBS `$1 --libs`"
AC_DEFINE(GNUPTH, 1, [Whether you use GNU Pth])
AC_MSG_RESULT(yes - installed in $PTH_PREFIX)
])
AC_DEFUN(TSRM_CHECK_ST,[
if test -r "$1/include/st.h"; then
CPPFLAGS="$CPPFLAGS -I$1/include"
LDFLAGS="$LDFLAGS -L$1/lib"
elif test -r "$1/st.h"; then
CPPFLAGS="$CPPFLAGS -I$1"
LDFLAGS="$LDFLAGS -L$1"
fi
AC_CHECK_HEADERS(st.h,[],[
AC_MSG_ERROR([Sorry[,] I was unable to locate the State Threads header file. Please specify the prefix using --with-tsrm-st=/prefix])
])
LIBS="$LIBS -lst"
AC_MSG_CHECKING(for SGI's State Threads)
AC_MSG_RESULT(yes)
AC_DEFINE(TSRM_ST, 1, [ ])
])
sinclude(threads.m4)
sinclude(TSRM/threads.m4)
AC_DEFUN(TSRM_CHECK_PTHREADS,[
PTHREADS_CHECK
if test "$beos_threads" = "1"; then
AC_DEFINE(BETHREADS, 1, Whether to use native BeOS threads)
else
if test "$pthreads_working" != "yes"; then
AC_MSG_ERROR(Your system seems to lack POSIX threads.)
fi
AC_DEFINE(PTHREADS, 1, Whether to use Pthreads)
AC_MSG_CHECKING(for POSIX threads)
AC_MSG_RESULT(yes)
fi
])
AC_DEFUN(TSRM_THREADS_CHECKS,[
dnl For the thread implementations, we always use --with-*
dnl to maintain consistency
AC_ARG_WITH(tsrm-pth,
[ --with-tsrm-pth[=pth-config]
Use GNU Pth.],[
TSRM_PTH=$withval
],[
TSRM_PTH=no
])
AC_ARG_WITH(tsrm-st,
[ --with-tsrm-st Use SGI's State Threads],[
TSRM_ST=$withval
],[
TSRM_ST=no
])
AC_ARG_WITH(tsrm-pthreads,
[ --with-tsrm-pthreads Use POSIX threads (default)],[
TSRM_PTHREADS=$withval
],[
TSRM_PTHREADS=yes
])
test "$TSRM_PTH" = "yes" && TSRM_PTH=pth-config
if test "$TSRM_PTH" != "no"; then
TSRM_CHECK_PTH($TSRM_PTH)
elif test "$TSRM_ST" != "no"; then
TSRM_CHECK_ST($TSRM_ST)
elif test "$TSRM_PTHREADS" != "no"; then
TSRM_CHECK_PTHREADS
fi
])
-11
View File
@@ -1,11 +0,0 @@
#ifndef TSRM_CONFIG_NW_H
#define TSRM_CONFIG_NW_H
#define HAVE_UTIME 1
/* Though we have alloca(), this seems to be causing some problem
* with the stack pointer. Hence not using it
*/
/*#define HAVE_ALLOCA 1*/
#endif
-20
View File
@@ -1,20 +0,0 @@
#ifndef TSRM_CONFIG_W32_H
#define TSRM_CONFIG_W32_H
#define HAVE_UTIME 1
#define HAVE_ALLOCA 1
#define HAVE_REALPATH 1
#include <malloc.h>
#include <stdlib.h>
#include <crtdbg.h>
#undef inline
#ifdef ZEND_WIN32_FORCE_INLINE
# define inline __forceinline
#else
# define inline
#endif
#endif
-60
View File
@@ -1,60 +0,0 @@
#ifndef TSRM_CONFIG_COMMON_H
#define TSRM_CONFIG_COMMON_H
#if WINNT|WIN32
# define TSRM_WIN32
#endif
#ifdef TSRM_WIN32
# include "tsrm_config.w32.h"
#elif defined(NETWARE)
# include "tsrm_config.nw.h"
#else
# include "tsrm_config.h"
# include <sys/param.h>
#endif
#if HAVE_ALLOCA_H && !defined(_ALLOCA_H)
# include <alloca.h>
#endif
/* AIX requires this to be the first thing in the file. */
#ifndef __GNUC__
# ifndef HAVE_ALLOCA_H
# ifdef _AIX
#pragma alloca
# else
# ifndef alloca /* predefined by HP cc +Olibcalls */
# ifndef NETWARE
char *alloca ();
# endif
# endif
# endif
# endif
#endif
#if HAVE_UNISTD_H
#include <unistd.h>
#endif
#if HAVE_LIMITS_H
#include <limits.h>
#endif
#ifndef MAXPATHLEN
# ifdef PATH_MAX
# define MAXPATHLEN PATH_MAX
# else
# define MAXPATHLEN 256
# endif
#endif
#if (HAVE_ALLOCA || (defined (__GNUC__) && __GNUC__ >= 2))
# define tsrm_do_alloca(p) alloca(p)
# define tsrm_free_alloca(p)
#else
# define tsrm_do_alloca(p) malloc(p)
# define tsrm_free_alloca(p) free(p)
#endif
#endif /* TSRM_CONFIG_COMMON_H */
-240
View File
@@ -1,240 +0,0 @@
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-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 |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_0.txt. |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Venkat Raghavan S <rvenkat@novell.com> |
| Anantha Kesari H Y <hyanantha@novell.com> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include "TSRM.h"
#ifdef NETWARE
#ifdef USE_MKFIFO
#include <sys/stat.h>
#elif !defined(USE_PIPE_OPEN) /* NXFifoOpen */
#include <nks/fsio.h>
#endif
#include <nks/vm.h>
#include <nks/memory.h>
#include <string.h>
#include "mktemp.h"
/* strtok() call in LibC is abending when used in a different address space
* -- hence using PHP's version itself for now
*/
#include "tsrm_strtok_r.h"
#define tsrm_strtok_r(a,b,c) strtok((a),(b))
#define WHITESPACE " \t"
#define MAX_ARGS 10
TSRM_API FILE* popen(const char *commandline, const char *type)
{
char *command = NULL, *argv[MAX_ARGS] = {'\0'}, **env = NULL;
char *tempName = "sys:/php/temp/phpXXXXXX.tmp";
char *filePath = NULL;
char *ptr = NULL;
int ptrLen = 0, argc = 0, i = 0, envCount = 0, err = 0;
FILE *stream = NULL;
#if defined(USE_PIPE_OPEN) || defined(USE_MKFIFO)
int pipe_handle;
int mode = O_RDONLY;
#else
NXHandle_t pipe_handle;
NXMode_t mode = NX_O_RDONLY;
#endif
NXExecEnvSpec_t envSpec;
NXNameSpec_t nameSpec;
NXVmId_t newVM = 0;
/* Check for validity of input parameters */
if (!commandline || !type)
return NULL;
/* Get temporary file name */
filePath = mktemp(tempName);
if (!filePath)
return NULL;
/* Set pipe mode according to type -- for now allow only "r" or "w" */
if (strcmp(type, "r") == 0)
#if defined(USE_PIPE_OPEN) || defined(USE_MKFIFO)
mode = O_RDONLY;
#else
mode = NX_O_RDONLY;
#endif
else if (strcmp(type, "w") == 0)
#if defined(USE_PIPE_OPEN) || defined(USE_MKFIFO)
mode = O_WRONLY;
#else
mode = NX_O_WRONLY;
#endif
else
return NULL;
#ifdef USE_PIPE_OPEN
pipe_handle = pipe_open(filePath, mode);
if (pipe_handle == -1)
return NULL;
#elif defined(USE_MKFIFO)
pipe_handle = mkfifo(filePath, mode);
if (pipe_handle == -1)
return NULL;
#else
/* - NetWare doesn't require first parameter
* - Allowing LibC to choose the buffer size for now
*/
err = NXFifoOpen(0, filePath, mode, 0, &pipe_handle);
if (err)
return NULL;
#endif
/* Copy the environment variables in preparation for the spawn call */
envCount = NXGetEnvCount() + 1; /* add one for NULL */
env = (char **) NXMemAlloc(sizeof(char *) * envCount, 0);
if (!env)
return NULL;
err = NXCopyEnv(env, envCount);
if (err) {
NXMemFree (env);
return NULL;
}
/* Separate commandline string into words */
ptr = tsrm_strtok_r((char*)commandline, WHITESPACE, NULL);
ptrLen = strlen(ptr);
command = (char*)malloc(ptrLen + 1);
if (!command) {
NXMemFree (env);
return NULL;
}
strcpy (command, ptr);
ptr = tsrm_strtok_r(NULL, WHITESPACE, NULL);
while (ptr && (argc < MAX_ARGS)) {
ptrLen = strlen(ptr);
argv[argc] = (char*)malloc(ptrLen + 1);
if (!argv[argc]) {
NXMemFree (env);
if (command)
free (command);
for (i = 0; i < argc; i++) {
if (argv[i])
free (argv[i]);
}
return NULL;
}
strcpy (argv[argc], ptr);
argc++;
ptr = tsrm_strtok_r(NULL, WHITESPACE, NULL);
}
/* Setup the execution environment and spawn new process */
envSpec.esFlags = 0; /* Not used */
envSpec.esArgc = argc;
envSpec.esArgv = (void **) argv;
envSpec.esEnv = (void **) env;
/* envSpec.esStdin.ssType = */
envSpec.esStdout.ssType = NX_OBJ_FIFO;
envSpec.esStderr.ssType = NX_OBJ_FILE;
/* 'ssHandle' is not a struct/union/class member */
/*
envSpec.esStdin.ssHandle =
envSpec.esStdout.ssHandle =
envSpec.esStderr.ssHandle = -1;
*/
envSpec.esStdin.ssPathCtx = NULL;
envSpec.esStdout.ssPathCtx = NULL;
envSpec.esStderr.ssPathCtx = NULL;
#if defined(USE_PIPE_OPEN) || defined(USE_MKFIFO)
if (mode == O_RDONLY) {
#else
if (mode == NX_O_RDONLY) {
#endif
envSpec.esStdin.ssPath = filePath;
envSpec.esStdout.ssPath = stdout;
} else { /* Write Only */
envSpec.esStdin.ssPath = stdin;
envSpec.esStdout.ssPath = filePath;
}
envSpec.esStderr.ssPath = stdout;
nameSpec.ssType = NX_OBJ_FIFO;
/* nameSpec.ssHandle = 0; */ /* 'ssHandle' is not a struct/union/class member */
nameSpec.ssPathCtx = NULL; /* Not used */
nameSpec.ssPath = argv[0];
err = NXVmSpawn(&nameSpec, &envSpec, 0, &newVM);
if (!err)
/* Get file pointer corresponding to the pipe (file) opened */
stream = fdopen(pipe_handle, type);
/* Clean-up */
if (env)
NXMemFree (env);
if (pipe_handle)
#if defined(USE_PIPE_OPEN) || defined(USE_MKFIFO)
close(pipe_handle);
#else
NXClose(pipe_handle);
#endif
if (command)
free (command);
for (i = 0; i < argc; i++) {
if (argv[i])
free (argv[i]);
}
return stream;
}
TSRM_API int pclose(FILE* stream)
{
int err = 0;
NXHandle_t fd = 0;
/* Get the process associated with this pipe (file) handle and terminate it */
fd = fileno(stream);
NXClose (fd);
err = fclose(stream);
return err;
}
#endif /* NETWARE */
-29
View File
@@ -1,29 +0,0 @@
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-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 |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_0.txt. |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Venkat Raghavan S <rvenkat@novell.com> |
| Anantha Kesari H Y <hyanantha@novell.com> |
+----------------------------------------------------------------------+
*/
#ifndef TSRM_NW_H
#define TSRM_NW_H
#include "TSRM.h"
TSRM_API FILE* popen(const char *command, const char *type);
TSRM_API int pclose(FILE* stream);
#endif
-63
View File
@@ -1,63 +0,0 @@
#include <stdio.h>
#include "tsrm_config_common.h"
#include "tsrm_strtok_r.h"
static inline int in_character_class(char ch, const char *delim)
{
while (*delim) {
if (*delim == ch) {
return 1;
}
delim++;
}
return 0;
}
char *tsrm_strtok_r(char *s, const char *delim, char **last)
{
char *token;
if (s == NULL) {
s = *last;
}
while (*s && in_character_class(*s, delim)) {
s++;
}
if (!*s) {
return NULL;
}
token = s;
while (*s && !in_character_class(*s, delim)) {
s++;
}
if (!*s) {
*last = s;
} else {
*s = '\0';
*last = s + 1;
}
return token;
}
#if 0
main()
{
char foo[] = "/foo/bar//\\barbara";
char *last;
char *token;
token = tsrm_strtok_r(foo, "/\\", &last);
while (token) {
printf ("Token = '%s'\n", token);
token = tsrm_strtok_r(NULL, "/\\", &last);
}
return 0;
}
#endif
-6
View File
@@ -1,6 +0,0 @@
#ifndef TSRM_STRTOK_R
#define TSRM_STRTOK_R
char *tsrm_strtok_r(char *s, const char *delim, char **last);
#endif
-893
View File
@@ -1,893 +0,0 @@
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| 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 |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_0.txt. |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andi Gutmans <andi@zend.com> |
| Sascha Schumann <sascha@schumann.cx> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <stdio.h>
#include <limits.h>
#include <errno.h>
#include <stdlib.h>
#include <fcntl.h>
#include "tsrm_virtual_cwd.h"
#include "tsrm_strtok_r.h"
#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
/*#include "pipe.h"*/
#include "tsrm_nw.h"
#endif
#ifndef HAVE_REALPATH
#define realpath(x,y) strcpy(y,x)
#endif
#define VIRTUAL_CWD_DEBUG 0
#include "TSRM.h"
/* Only need mutex for popen() in Windows and NetWare because it doesn't chdir() on UNIX */
#if (defined(TSRM_WIN32) || defined(NETWARE)) && defined(ZTS)
MUTEX_T cwd_mutex;
#endif
#ifdef ZTS
static ts_rsrc_id cwd_globals_id;
#else
static virtual_cwd_globals cwd_globals;
#endif
cwd_state main_cwd_state; /* True global */
#ifndef TSRM_WIN32
#include <unistd.h>
#else
#include <direct.h>
#endif
#ifndef S_ISDIR
#define S_ISDIR(mode) ((mode) & _S_IFDIR)
#endif
#ifndef S_ISREG
#define S_ISREG(mode) ((mode) & _S_IFREG)
#endif
#ifdef TSRM_WIN32
#include <tchar.h>
#define tsrm_strtok_r(a,b,c) _tcstok((a),(b))
#define TOKENIZER_STRING "/\\"
static int php_check_dots(const char *element, int n)
{
while (n-- > 0) if (element[n] != '.') break;
return (n != -1);
}
#define IS_DIRECTORY_UP(element, len) \
(len >= 2 && !php_check_dots(element, len))
#define IS_DIRECTORY_CURRENT(element, len) \
(len == 1 && element[0] == '.')
#elif defined(NETWARE)
/* NetWare has strtok() (in LibC) and allows both slashes in paths, like Windows --
but rest of the stuff is like Unix */
/* strtok() call in LibC is abending when used in a different address space -- hence using
PHP's version itself for now */
/*#define tsrm_strtok_r(a,b,c) strtok((a),(b))*/
#define TOKENIZER_STRING "/\\"
#else
#define TOKENIZER_STRING "/"
#endif
/* default macros */
#ifndef IS_DIRECTORY_UP
#define IS_DIRECTORY_UP(element, len) \
(len == 2 && element[0] == '.' && element[1] == '.')
#endif
#ifndef IS_DIRECTORY_CURRENT
#define IS_DIRECTORY_CURRENT(element, len) \
(len == 1 && element[0] == '.')
#endif
/* define this to check semantics */
#define IS_DIR_OK(s) (1)
#ifndef IS_DIR_OK
#define IS_DIR_OK(state) (php_is_dir_ok(state) == 0)
#endif
#define CWD_STATE_COPY(d, s) \
(d)->cwd_length = (s)->cwd_length; \
(d)->cwd = (char *) malloc((s)->cwd_length+1); \
memcpy((d)->cwd, (s)->cwd, (s)->cwd_length+1);
#define CWD_STATE_FREE(s) \
free((s)->cwd);
static int php_is_dir_ok(const cwd_state *state)
{
#if !(defined(NETWARE) && defined(CLIB_STAT_PATCH))
struct stat buf;
if (stat(state->cwd, &buf) == 0 && S_ISDIR(buf.st_mode))
#else
struct stat_libc buf;
if (stat(state->cwd, (struct stat*)(&buf)) == 0 && S_ISDIR(buf.st_mode))
#endif
return (0);
return (1);
}
static int php_is_file_ok(const cwd_state *state)
{
#if !(defined(NETWARE) && defined(CLIB_STAT_PATCH))
struct stat buf;
if (stat(state->cwd, &buf) == 0 && S_ISREG(buf.st_mode))
#else
struct stat_libc buf;
if (stat(state->cwd, (struct stat*)(&buf)) == 0 && S_ISREG(buf.st_mode))
#endif
return (0);
return (1);
}
static void cwd_globals_ctor(virtual_cwd_globals *cwd_globals TSRMLS_DC)
{
CWD_STATE_COPY(&cwd_globals->cwd, &main_cwd_state);
}
static void cwd_globals_dtor(virtual_cwd_globals *cwd_globals TSRMLS_DC)
{
CWD_STATE_FREE(&cwd_globals->cwd);
}
static char *tsrm_strndup(const char *s, size_t length)
{
char *p;
p = (char *) malloc(length+1);
if (!p) {
return (char *)NULL;
}
if (length) {
memcpy(p,s,length);
}
p[length]=0;
return p;
}
CWD_API void virtual_cwd_startup(void)
{
char cwd[MAXPATHLEN];
char *result;
result = getcwd(cwd, sizeof(cwd));
if (!result) {
cwd[0] = '\0';
}
main_cwd_state.cwd = strdup(cwd);
main_cwd_state.cwd_length = strlen(cwd);
#ifdef ZTS
ts_allocate_id(&cwd_globals_id, sizeof(virtual_cwd_globals), (ts_allocate_ctor) cwd_globals_ctor, (ts_allocate_dtor) cwd_globals_dtor);
#else
cwd_globals_ctor(&cwd_globals TSRMLS_CC);
#endif
#if (defined(TSRM_WIN32) || defined(NETWARE)) && defined(ZTS)
cwd_mutex = tsrm_mutex_alloc();
#endif
}
CWD_API void virtual_cwd_shutdown(void)
{
#ifndef ZTS
cwd_globals_dtor(&cwd_globals TSRMLS_CC);
#endif
#if (defined(TSRM_WIN32) || defined(NETWARE)) && defined(ZTS)
tsrm_mutex_free(cwd_mutex);
#endif
free(main_cwd_state.cwd); /* Don't use CWD_STATE_FREE because the non global states will probably use emalloc()/efree() */
}
CWD_API char *virtual_getcwd_ex(size_t *length TSRMLS_DC)
{
cwd_state *state;
state = &CWDG(cwd);
if (state->cwd_length == 0) {
char *retval;
*length = 1;
retval = (char *) malloc(2);
retval[0] = DEFAULT_SLASH;
retval[1] = '\0';
return retval;
}
#ifdef TSRM_WIN32
/* If we have something like C: */
if (state->cwd_length == 2 && state->cwd[state->cwd_length-1] == ':') {
char *retval;
*length = state->cwd_length+1;
retval = (char *) malloc(*length+1);
memcpy(retval, state->cwd, *length);
retval[*length-1] = DEFAULT_SLASH;
retval[*length] = '\0';
return retval;
}
#endif
*length = state->cwd_length;
return strdup(state->cwd);
}
/* Same semantics as UNIX getcwd() */
CWD_API char *virtual_getcwd(char *buf, size_t size TSRMLS_DC)
{
size_t length;
char *cwd;
cwd = virtual_getcwd_ex(&length TSRMLS_CC);
if (buf == NULL) {
return cwd;
}
if (length > size-1) {
free(cwd);
errno = ERANGE; /* Is this OK? */
return NULL;
}
memcpy(buf, cwd, length+1);
free(cwd);
return buf;
}
/* Resolve path relatively to state and put the real path into state */
/* returns 0 for ok, 1 for error */
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath)
{
int path_length = strlen(path);
char *ptr, *path_copy;
char *tok = NULL;
int ptr_length;
cwd_state *old_state;
int ret = 0;
int copy_amount = -1;
char *free_path;
unsigned char is_absolute = 0;
#ifndef TSRM_WIN32
char resolved_path[MAXPATHLEN];
#else
char *new_path;
#endif
if (path_length == 0)
return (0);
#if !defined(TSRM_WIN32) && !defined(NETWARE)
/* cwd_length can be 0 when getcwd() fails.
* This can happen under solaris when a dir does not have read permissions
* but *does* have execute permissions */
if (IS_ABSOLUTE_PATH(path, path_length) || (state->cwd_length < 1)) {
if (use_realpath && realpath(path, resolved_path)) {
path = resolved_path;
path_length = strlen(path);
}
} else { /* Concat current directory with relative path and then run realpath() on it */
char *tmp;
char *ptr;
ptr = tmp = (char *) malloc(state->cwd_length+path_length+sizeof("/"));
if (!tmp) {
return 1;
}
memcpy(ptr, state->cwd, state->cwd_length);
ptr += state->cwd_length;
*ptr++ = DEFAULT_SLASH;
memcpy(ptr, path, path_length);
ptr += path_length;
*ptr = '\0';
if (use_realpath && realpath(tmp, resolved_path)) {
path = resolved_path;
path_length = strlen(path);
}
free(tmp);
}
#endif
#if defined(TSRM_WIN32)
{
char *dummy = NULL;
int new_path_length;
new_path_length = GetLongPathName(path, dummy, 0) + 1;
if (new_path_length == 0) {
return 1;
}
new_path = (char *) malloc(new_path_length);
if (!new_path) {
return 1;
}
if (GetLongPathName(path, new_path, new_path_length) != 0) {
path = new_path;
path_length = new_path_length;
} else {
free(new_path);
new_path = NULL;
}
}
#endif
free_path = path_copy = tsrm_strndup(path, path_length);
old_state = (cwd_state *) malloc(sizeof(cwd_state));
CWD_STATE_COPY(old_state, state);
#if VIRTUAL_CWD_DEBUG
fprintf(stderr,"cwd = %s path = %s\n", state->cwd, path);
#endif
if (IS_ABSOLUTE_PATH(path_copy, path_length)) {
copy_amount = COPY_WHEN_ABSOLUTE(path_copy);
is_absolute = 1;
#ifdef TSRM_WIN32
} else if (IS_SLASH(path_copy[0])) {
copy_amount = 2;
#endif
}
if (copy_amount != -1) {
state->cwd = (char *) realloc(state->cwd, copy_amount + 1);
if (copy_amount) {
if (is_absolute) {
memcpy(state->cwd, path_copy, copy_amount);
path_copy += copy_amount;
} else {
memcpy(state->cwd, old_state->cwd, copy_amount);
}
}
state->cwd[copy_amount] = '\0';
state->cwd_length = copy_amount;
}
if (state->cwd_length > 0 || IS_ABSOLUTE_PATH(path, path_length)) {
ptr = tsrm_strtok_r(path_copy, TOKENIZER_STRING, &tok);
while (ptr) {
ptr_length = strlen(ptr);
if (IS_DIRECTORY_UP(ptr, ptr_length)) {
char save;
save = DEFAULT_SLASH;
#define PREVIOUS state->cwd[state->cwd_length - 1]
while (IS_ABSOLUTE_PATH(state->cwd, state->cwd_length) &&
!IS_SLASH(PREVIOUS)) {
save = PREVIOUS;
PREVIOUS = '\0';
state->cwd_length--;
}
if (!IS_ABSOLUTE_PATH(state->cwd, state->cwd_length)) {
state->cwd[state->cwd_length++] = save;
state->cwd[state->cwd_length] = '\0';
} else {
PREVIOUS = '\0';
state->cwd_length--;
}
} else if (!IS_DIRECTORY_CURRENT(ptr, ptr_length)) {
state->cwd = (char *) realloc(state->cwd, state->cwd_length+ptr_length+1+1);
#ifdef TSRM_WIN32
/* Windows 9x will consider C:\\Foo as a network path. Avoid it. */
if ((state->cwd[state->cwd_length-1]!='\\' && state->cwd[state->cwd_length-1]!='/') ||
IsDBCSLeadByte(state->cwd[state->cwd_length-2])) {
state->cwd[state->cwd_length++] = DEFAULT_SLASH;
}
#elif defined(NETWARE)
/* If the token is a volume name, it will have colon at the end -- so, no slash before it */
if (ptr[ptr_length-1] != ':') {
state->cwd[state->cwd_length++] = DEFAULT_SLASH;
}
#else
state->cwd[state->cwd_length++] = DEFAULT_SLASH;
#endif
memcpy(&state->cwd[state->cwd_length], ptr, ptr_length+1);
state->cwd_length += ptr_length;
}
ptr = tsrm_strtok_r(NULL, TOKENIZER_STRING, &tok);
}
if (state->cwd_length == COPY_WHEN_ABSOLUTE(state->cwd)) {
state->cwd = (char *) realloc(state->cwd, state->cwd_length+1+1);
state->cwd[state->cwd_length] = DEFAULT_SLASH;
state->cwd[state->cwd_length+1] = '\0';
state->cwd_length++;
}
} else {
state->cwd = (char *) realloc(state->cwd, path_length+1);
memcpy(state->cwd, path, path_length+1);
state->cwd_length = path_length;
}
if (verify_path && verify_path(state)) {
CWD_STATE_FREE(state);
*state = *old_state;
ret = 1;
} else {
CWD_STATE_FREE(old_state);
ret = 0;
}
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);
#endif
return (ret);
}
CWD_API int virtual_chdir(const char *path TSRMLS_DC)
{
return virtual_file_ex(&CWDG(cwd), path, php_is_dir_ok, 1)?-1:0;
}
CWD_API int virtual_chdir_file(const char *path, int (*p_chdir)(const char *path TSRMLS_DC) TSRMLS_DC)
{
int length = strlen(path);
char *temp;
int retval;
if (length == 0) {
return 1; /* Can't cd to empty string */
}
while(--length >= 0 && !IS_SLASH(path[length])) {
}
if (length == -1) {
/* No directory only file name */
errno = ENOENT;
return -1;
}
if (length == COPY_WHEN_ABSOLUTE(path) && IS_ABSOLUTE_PATH(path, length+1)) { /* Also use trailing slash if this is absolute */
length++;
}
temp = (char *) tsrm_do_alloca(length+1);
memcpy(temp, path, length);
temp[length] = 0;
#if VIRTUAL_CWD_DEBUG
fprintf (stderr, "Changing directory to %s\n", temp);
#endif
retval = p_chdir(temp TSRMLS_CC);
tsrm_free_alloca(temp);
return retval;
}
CWD_API char *virtual_realpath(const char *path, char *real_path TSRMLS_DC)
{
cwd_state new_state;
char *retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
if (virtual_file_ex(&new_state, path, NULL, 1)==0) {
int len = new_state.cwd_length>MAXPATHLEN-1?MAXPATHLEN-1:new_state.cwd_length;
memcpy(real_path, new_state.cwd, len);
real_path[len] = '\0';
retval = real_path;
} else {
retval = NULL;
}
CWD_STATE_FREE(&new_state);
return retval;
}
CWD_API int virtual_filepath_ex(const char *path, char **filepath, verify_path_func verify_path TSRMLS_DC)
{
cwd_state new_state;
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
retval = virtual_file_ex(&new_state, path, verify_path, 1);
*filepath = new_state.cwd;
return retval;
}
CWD_API int virtual_filepath(const char *path, char **filepath TSRMLS_DC)
{
return virtual_filepath_ex(path, filepath, php_is_file_ok TSRMLS_CC);
}
CWD_API FILE *virtual_fopen(const char *path, const char *mode TSRMLS_DC)
{
cwd_state new_state;
FILE *f;
if (path[0] == '\0') { /* Fail to open empty path */
return NULL;
}
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, path, NULL, 1);
f = fopen(new_state.cwd, mode);
CWD_STATE_FREE(&new_state);
return f;
}
CWD_API int virtual_access(const char *pathname, int mode TSRMLS_DC)
{
cwd_state new_state;
int ret;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, pathname, NULL, 1);
#if defined(TSRM_WIN32)
ret = tsrm_win32_access(new_state.cwd, mode);
#else
ret = access(new_state.cwd, mode);
#endif
CWD_STATE_FREE(&new_state);
return ret;
}
#if HAVE_UTIME
CWD_API int virtual_utime(const char *filename, struct utimbuf *buf TSRMLS_DC)
{
cwd_state new_state;
int ret;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, filename, NULL, 0);
ret = utime(new_state.cwd, buf);
CWD_STATE_FREE(&new_state);
return ret;
}
#endif
CWD_API int virtual_chmod(const char *filename, mode_t mode TSRMLS_DC)
{
cwd_state new_state;
int ret;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, filename, NULL, 1);
ret = chmod(new_state.cwd, mode);
CWD_STATE_FREE(&new_state);
return ret;
}
#if !defined(TSRM_WIN32) && !defined(NETWARE)
CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group TSRMLS_DC)
{
cwd_state new_state;
int ret;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, filename, NULL, 0);
ret = chown(new_state.cwd, owner, group);
CWD_STATE_FREE(&new_state);
return ret;
}
#endif
CWD_API int virtual_open(const char *path TSRMLS_DC, int flags, ...)
{
cwd_state new_state;
int f;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, path, NULL, 1);
if (flags & O_CREAT) {
mode_t mode;
va_list arg;
va_start(arg, flags);
mode = (mode_t) va_arg(arg, int);
va_end(arg);
f = open(new_state.cwd, flags, mode);
} else {
f = open(new_state.cwd, flags);
}
CWD_STATE_FREE(&new_state);
return f;
}
CWD_API int virtual_creat(const char *path, mode_t mode TSRMLS_DC)
{
cwd_state new_state;
int f;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, path, NULL, 1);
f = creat(new_state.cwd, mode);
CWD_STATE_FREE(&new_state);
return f;
}
CWD_API int virtual_rename(char *oldname, char *newname TSRMLS_DC)
{
cwd_state old_state;
cwd_state new_state;
int retval;
CWD_STATE_COPY(&old_state, &CWDG(cwd));
virtual_file_ex(&old_state, oldname, NULL, 0);
oldname = old_state.cwd;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, newname, NULL, 0);
newname = new_state.cwd;
retval = rename(oldname, newname);
CWD_STATE_FREE(&old_state);
CWD_STATE_FREE(&new_state);
return retval;
}
#if !(defined(NETWARE) && defined(CLIB_STAT_PATCH))
CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC)
{
cwd_state new_state;
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, path, NULL, 1);
retval = stat(new_state.cwd, buf);
CWD_STATE_FREE(&new_state);
return retval;
}
#else
CWD_API int virtual_stat(const char *path, struct stat_libc *buf TSRMLS_DC)
{
cwd_state new_state;
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, path, NULL, 1);
retval = stat(new_state.cwd, (struct stat*)buf);
CWD_STATE_FREE(&new_state);
return retval;
}
#endif
#if !defined(TSRM_WIN32) && !defined(NETWARE)
CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC)
{
cwd_state new_state;
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, path, NULL, 0);
retval = lstat(new_state.cwd, buf);
CWD_STATE_FREE(&new_state);
return retval;
}
#endif
CWD_API int virtual_unlink(const char *path TSRMLS_DC)
{
cwd_state new_state;
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, path, NULL, 0);
retval = unlink(new_state.cwd);
CWD_STATE_FREE(&new_state);
return retval;
}
CWD_API int virtual_mkdir(const char *pathname, mode_t mode TSRMLS_DC)
{
cwd_state new_state;
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, pathname, NULL, 1);
#ifdef TSRM_WIN32
retval = mkdir(new_state.cwd);
#else
retval = mkdir(new_state.cwd, mode);
#endif
CWD_STATE_FREE(&new_state);
return retval;
}
CWD_API int virtual_rmdir(const char *pathname TSRMLS_DC)
{
cwd_state new_state;
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, pathname, NULL, 0);
retval = rmdir(new_state.cwd);
CWD_STATE_FREE(&new_state);
return retval;
}
#ifdef TSRM_WIN32
DIR *opendir(const char *name);
#endif
CWD_API DIR *virtual_opendir(const char *pathname TSRMLS_DC)
{
cwd_state new_state;
DIR *retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, pathname, NULL, 1);
retval = opendir(new_state.cwd);
CWD_STATE_FREE(&new_state);
return retval;
}
#ifdef TSRM_WIN32
CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC)
{
return popen_ex(command, type, CWDG(cwd).cwd, NULL);
}
#elif defined(NETWARE)
/* On NetWare, the trick of prepending "cd cwd; " doesn't work so we need to perform
a VCWD_CHDIR() and mutex it
*/
CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC)
{
char prev_cwd[MAXPATHLEN];
char *getcwd_result;
FILE *retval;
getcwd_result = VCWD_GETCWD(prev_cwd, MAXPATHLEN);
if (!getcwd_result) {
return NULL;
}
#ifdef ZTS
tsrm_mutex_lock(cwd_mutex);
#endif
VCWD_CHDIR(CWDG(cwd).cwd);
retval = popen(command, type);
VCWD_CHDIR(prev_cwd);
#ifdef ZTS
tsrm_mutex_unlock(cwd_mutex);
#endif
return retval;
}
#else /* Unix */
CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC)
{
int command_length;
char *command_line;
char *ptr;
FILE *retval;
command_length = strlen(command);
ptr = command_line = (char *) malloc(command_length + sizeof("cd ; ") + CWDG(cwd).cwd_length+1);
if (!command_line) {
return NULL;
}
memcpy(ptr, "cd ", sizeof("cd ")-1);
ptr += sizeof("cd ")-1;
if (CWDG(cwd).cwd_length == 0) {
*ptr++ = DEFAULT_SLASH;
} else {
memcpy(ptr, CWDG(cwd).cwd, CWDG(cwd).cwd_length);
ptr += CWDG(cwd).cwd_length;
}
*ptr++ = ' ';
*ptr++ = ';';
*ptr++ = ' ';
memcpy(ptr, command, command_length+1);
retval = popen(command_line, type);
free(command_line);
return retval;
}
#endif
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
*/
-293
View File
@@ -1,293 +0,0 @@
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| 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 |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_0.txt. |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andi Gutmans <andi@zend.com> |
| Sascha Schumann <sascha@schumann.cx> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#ifndef VIRTUAL_CWD_H
#define VIRTUAL_CWD_H
#include "TSRM.h"
#include "tsrm_config_common.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <ctype.h>
#ifdef HAVE_UTIME_H
#include <utime.h>
#endif
#ifdef HAVE_STDARG_H
#include <stdarg.h>
#endif
#ifndef TSRM_WIN32
#include <unistd.h>
#endif
#if defined(__osf__) || defined(_AIX)
#include <errno.h>
#endif
#ifdef TSRM_WIN32
#include "readdir.h"
#include <sys/utime.h>
/* mode_t isn't defined on Windows */
typedef unsigned short mode_t;
#define DEFAULT_SLASH '\\'
#define DEFAULT_DIR_SEPARATOR ';'
#define IS_SLASH(c) ((c) == '/' || (c) == '\\')
#define IS_SLASH_P(c) (*(c) == '/' || \
(*(c) == '\\' && !IsDBCSLeadByte(*(c-1))))
/* COPY_WHEN_ABSOLUTE is 2 under Win32 because by chance both regular absolute paths
in the file system and UNC paths need copying of two characters */
#define COPY_WHEN_ABSOLUTE(path) 2
#define IS_UNC_PATH(path, len) \
(len >= 2 && IS_SLASH(path[0]) && IS_SLASH(path[1]))
#define IS_ABSOLUTE_PATH(path, len) \
(len >= 2 && ((isalpha(path[0]) && path[1] == ':') || IS_UNC_PATH(path, len)))
#elif defined(NETWARE)
#ifdef HAVE_DIRENT_H
#include <dirent.h>
#endif
#define DEFAULT_SLASH '/'
#define DEFAULT_DIR_SEPARATOR ';'
#define IS_SLASH(c) ((c) == '/' || (c) == '\\')
#define IS_SLASH_P(c) IS_SLASH(*(c))
#define COPY_WHEN_ABSOLUTE(path) \
(strchr(path, ':') - path + 1) /* Take the volume name which ends with a colon */
#define IS_ABSOLUTE_PATH(path, len) \
(strchr(path, ':') != NULL) /* Colon indicates volume name */
#else
#ifdef HAVE_DIRENT_H
#include <dirent.h>
#endif
#define DEFAULT_SLASH '/'
#ifdef __riscos__
#define DEFAULT_DIR_SEPARATOR ';'
#else
#define DEFAULT_DIR_SEPARATOR ':'
#endif
#define IS_SLASH(c) ((c) == '/')
#define IS_SLASH_P(c) (*(c) == '/')
#endif
#ifndef COPY_WHEN_ABSOLUTE
#define COPY_WHEN_ABSOLUTE(path) 0
#endif
#ifndef IS_ABSOLUTE_PATH
#define IS_ABSOLUTE_PATH(path, len) \
(IS_SLASH(path[0]))
#endif
#ifdef TSRM_EXPORTS
#define CWD_EXPORTS
#endif
#ifdef TSRM_WIN32
# ifdef CWD_EXPORTS
# define CWD_API __declspec(dllexport)
# else
# define CWD_API __declspec(dllimport)
# endif
#else
#define CWD_API
#endif
typedef struct _cwd_state {
char *cwd;
int cwd_length;
} cwd_state;
typedef int (*verify_path_func)(const cwd_state *);
CWD_API void virtual_cwd_startup(void);
CWD_API void virtual_cwd_shutdown(void);
CWD_API char *virtual_getcwd_ex(size_t *length TSRMLS_DC);
CWD_API char *virtual_getcwd(char *buf, size_t size TSRMLS_DC);
CWD_API int virtual_chdir(const char *path TSRMLS_DC);
CWD_API int virtual_chdir_file(const char *path, int (*p_chdir)(const char *path TSRMLS_DC) TSRMLS_DC);
CWD_API int virtual_filepath(const char *path, char **filepath TSRMLS_DC);
CWD_API int virtual_filepath_ex(const char *path, char **filepath, verify_path_func verify_path TSRMLS_DC);
CWD_API char *virtual_realpath(const char *path, char *real_path TSRMLS_DC);
CWD_API FILE *virtual_fopen(const char *path, const char *mode TSRMLS_DC);
CWD_API int virtual_open(const char *path TSRMLS_DC, int flags, ...);
CWD_API int virtual_creat(const char *path, mode_t mode TSRMLS_DC);
CWD_API int virtual_rename(char *oldname, char *newname TSRMLS_DC);
#if !(defined(NETWARE) && defined(CLIB_STAT_PATCH))
CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC);
#else
CWD_API int virtual_stat(const char *path, struct stat_libc *buf TSRMLS_DC);
#endif
#if !defined(TSRM_WIN32) && !defined(NETWARE)
CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC);
#endif
CWD_API int virtual_unlink(const char *path TSRMLS_DC);
CWD_API int virtual_mkdir(const char *pathname, mode_t mode TSRMLS_DC);
CWD_API int virtual_rmdir(const char *pathname TSRMLS_DC);
CWD_API DIR *virtual_opendir(const char *pathname TSRMLS_DC);
CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC);
CWD_API int virtual_access(const char *pathname, int mode TSRMLS_DC);
#if defined(TSRM_WIN32)
/* these are not defined in win32 headers */
#ifndef W_OK
#define W_OK 0x02
#endif
#ifndef R_OK
#define R_OK 0x04
#endif
#ifndef X_OK
#define X_OK 0x01
#endif
#ifndef F_OK
#define F_OK 0x00
#endif
#endif
/* On AIX & Tru64 when a file does not exist realpath() returns
* NULL, and sets errno to ENOENT. Unlike in other libc implementations
* the destination is not filled and remains undefined. Therefor, we
* must populate it manually using strcpy as done on systems with no
* realpath() function.
*/
#if defined(__osf__) || defined(_AIX)
static char *php_realpath_hack(char *src, char *dest)
{
char *ret;
if ((ret = realpath(src, dest)) == NULL && errno == ENOENT) {
return strcpy(dest, src);
} else {
return ret;
}
}
#endif
#if HAVE_UTIME
CWD_API int virtual_utime(const char *filename, struct utimbuf *buf TSRMLS_DC);
#endif
CWD_API int virtual_chmod(const char *filename, mode_t mode TSRMLS_DC);
#if !defined(TSRM_WIN32) && !defined(NETWARE)
CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group TSRMLS_DC);
#endif
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath);
typedef struct _virtual_cwd_globals {
cwd_state cwd;
} virtual_cwd_globals;
#ifdef ZTS
# define CWDG(v) TSRMG(cwd_globals_id, virtual_cwd_globals *, v)
#else
# define CWDG(v) (cwd_globals.v)
#endif
/* The actual macros to be used in programs using TSRM
* If the program defines VIRTUAL_DIR it will use the
* virtual_* functions
*/
#ifdef VIRTUAL_DIR
#define VCWD_GETCWD(buff, size) virtual_getcwd(buff, size TSRMLS_CC)
#define VCWD_FOPEN(path, mode) virtual_fopen(path, mode TSRMLS_CC)
/* Because open() has two modes, we have to macros to replace it */
#define VCWD_OPEN(path, flags) virtual_open(path TSRMLS_CC, flags)
#define VCWD_OPEN_MODE(path, flags, mode) virtual_open(path TSRMLS_CC, flags, mode)
#define VCWD_CREAT(path, mode) virtual_creat(path, mode TSRMLS_CC)
#define VCWD_CHDIR(path) virtual_chdir(path TSRMLS_CC)
#define VCWD_CHDIR_FILE(path) virtual_chdir_file(path, virtual_chdir TSRMLS_CC)
#define VCWD_GETWD(buf)
#define VCWD_REALPATH(path, real_path) virtual_realpath(path, real_path TSRMLS_CC)
#define VCWD_RENAME(oldname, newname) virtual_rename(oldname, newname TSRMLS_CC)
#define VCWD_STAT(path, buff) virtual_stat(path, buff TSRMLS_CC)
#if !defined(TSRM_WIN32) && !defined(NETWARE)
#define VCWD_LSTAT(path, buff) virtual_lstat(path, buff TSRMLS_CC)
#endif
#define VCWD_UNLINK(path) virtual_unlink(path TSRMLS_CC)
#define VCWD_MKDIR(pathname, mode) virtual_mkdir(pathname, mode TSRMLS_CC)
#define VCWD_RMDIR(pathname) virtual_rmdir(pathname TSRMLS_CC)
#define VCWD_OPENDIR(pathname) virtual_opendir(pathname TSRMLS_CC)
#define VCWD_POPEN(command, type) virtual_popen(command, type TSRMLS_CC)
#define VCWD_ACCESS(pathname, mode) virtual_access(pathname, mode TSRMLS_CC)
#if HAVE_UTIME
#define VCWD_UTIME(path, time) virtual_utime(path, time TSRMLS_CC)
#endif
#define VCWD_CHMOD(path, mode) virtual_chmod(path, mode TSRMLS_CC)
#if !defined(TSRM_WIN32) && !defined(NETWARE)
#define VCWD_CHOWN(path, owner, group) virtual_chown(path, owner, group TSRMLS_CC)
#endif
#else
#define VCWD_GETCWD(buff, size) getcwd(buff, size)
#define VCWD_FOPEN(path, mode) fopen(path, mode)
#define VCWD_OPEN(path, flags) open(path, flags)
#define VCWD_OPEN_MODE(path, flags, mode) open(path, flags, mode)
#define VCWD_CREAT(path, mode) creat(path, mode)
#define VCWD_RENAME(oldname, newname) rename(oldname, newname)
#define VCWD_CHDIR(path) chdir(path)
#define VCWD_CHDIR_FILE(path) virtual_chdir_file(path, chdir)
#define VCWD_GETWD(buf) getwd(buf)
#define VCWD_STAT(path, buff) stat(path, buff)
#define VCWD_LSTAT(path, buff) lstat(path, buff)
#define VCWD_UNLINK(path) unlink(path)
#define VCWD_MKDIR(pathname, mode) mkdir(pathname, mode)
#define VCWD_RMDIR(pathname) rmdir(pathname)
#define VCWD_OPENDIR(pathname) opendir(pathname)
#define VCWD_POPEN(command, type) popen(command, type)
#if defined(TSRM_WIN32)
#define VCWD_ACCESS(pathname, mode) tsrm_win32_access(pathname, mode)
#else
#define VCWD_ACCESS(pathname, mode) access(pathname, mode)
#endif
#ifdef HAVE_REALPATH
#if defined(__osf__) || defined(_AIX)
#define VCWD_REALPATH(path, real_path) php_realpath_hack(path, real_path)
#else
#define VCWD_REALPATH(path, real_path) realpath(path, real_path)
#endif
#else
#define VCWD_REALPATH(path, real_path) strcpy(real_path, path)
#endif
#if HAVE_UTIME
#define VCWD_UTIME(path, time) utime(path, time)
#endif
#define VCWD_CHMOD(path, mode) chmod(path, mode)
#if !defined(TSRM_WIN32) && !defined(NETWARE)
#define VCWD_CHOWN(path, owner, group) chown(path, owner, group)
#endif
#endif
#endif /* VIRTUAL_CWD_H */
-388
View File
@@ -1,388 +0,0 @@
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-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 |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_0.txt. |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Daniel Beulshausen <daniel@php4win.de> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
#include <process.h>
#include <time.h>
#define TSRM_INCLUDE_FULL_WINDOWS_HEADERS
#include "TSRM.h"
#ifdef TSRM_WIN32
#include "tsrm_win32.h"
#ifdef ZTS
static ts_rsrc_id win32_globals_id;
#else
static tsrm_win32_globals win32_globals;
#endif
static void tsrm_win32_ctor(tsrm_win32_globals *globals TSRMLS_DC)
{
globals->process = NULL;
globals->shm = NULL;
globals->process_size = 0;
globals->shm_size = 0;
globals->comspec = _strdup((GetVersion()<0x80000000)?"cmd.exe":"command.com");
}
static void tsrm_win32_dtor(tsrm_win32_globals *globals TSRMLS_DC)
{
shm_pair *ptr;
if (globals->process) {
free(globals->process);
}
if (globals->shm) {
for (ptr = globals->shm; ptr < (globals->shm + globals->shm_size); ptr++) {
UnmapViewOfFile(ptr->addr);
CloseHandle(ptr->segment);
UnmapViewOfFile(ptr->descriptor);
CloseHandle(ptr->info);
}
free(globals->shm);
}
free(globals->comspec);
}
TSRM_API void tsrm_win32_startup(void)
{
#ifdef ZTS
ts_allocate_id(&win32_globals_id, sizeof(tsrm_win32_globals), (ts_allocate_ctor)tsrm_win32_ctor, (ts_allocate_ctor)tsrm_win32_dtor);
#else
tsrm_win32_ctor(&win32_globals TSRMLS_CC);
#endif
}
TSRM_API void tsrm_win32_shutdown(void)
{
#ifndef ZTS
tsrm_win32_dtor(&win32_globals TSRMLS_CC);
#endif
}
TSRM_API int tsrm_win32_access(const char *pathname, int mode)
{
SHFILEINFO sfi;
if (mode == 1 /*X_OK*/) {
return access(pathname, 0) == 0 &&
SHGetFileInfo(pathname, 0, &sfi, sizeof(SHFILEINFO), SHGFI_EXETYPE) != 0 ? 0 : -1;
} else {
return access(pathname, mode);
}
}
static process_pair *process_get(FILE *stream TSRMLS_DC)
{
process_pair *ptr;
process_pair *newptr;
for (ptr = TWG(process); ptr < (TWG(process) + TWG(process_size)); ptr++) {
if (ptr->stream == stream) {
break;
}
}
if (ptr < (TWG(process) + TWG(process_size))) {
return ptr;
}
newptr = (process_pair*)realloc((void*)TWG(process), (TWG(process_size)+1)*sizeof(process_pair));
if (newptr == NULL) {
return NULL;
}
TWG(process) = newptr;
ptr = newptr + TWG(process_size);
TWG(process_size)++;
return ptr;
}
static shm_pair *shm_get(int key, void *addr)
{
shm_pair *ptr;
shm_pair *newptr;
TSRMLS_FETCH();
for (ptr = TWG(shm); ptr < (TWG(shm) + TWG(shm_size)); ptr++) {
if (!ptr->descriptor) {
continue;
}
if (!addr && ptr->descriptor->shm_perm.key == key) {
break;
} else if (ptr->addr == addr) {
break;
}
}
if (ptr < (TWG(shm) + TWG(shm_size))) {
return ptr;
}
newptr = (shm_pair*)realloc((void*)TWG(shm), (TWG(shm_size)+1)*sizeof(shm_pair));
if (newptr == NULL) {
return NULL;
}
TWG(shm) = newptr;
ptr = newptr + TWG(shm_size);
TWG(shm_size)++;
return ptr;
}
static HANDLE dupHandle(HANDLE fh, BOOL inherit) {
HANDLE copy, self = GetCurrentProcess();
if (!DuplicateHandle(self, fh, self, &copy, 0, inherit, DUPLICATE_SAME_ACCESS|DUPLICATE_CLOSE_SOURCE)) {
return NULL;
}
return copy;
}
TSRM_API FILE *popen(const char *command, const char *type)
{
return popen_ex(command, type, NULL, NULL);
}
TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, char *env)
{
FILE *stream = NULL;
int fno, str_len = strlen(type), read, mode;
STARTUPINFO startup;
PROCESS_INFORMATION process;
SECURITY_ATTRIBUTES security;
HANDLE in, out;
char *cmd;
process_pair *proc;
TSRMLS_FETCH();
security.nLength = sizeof(SECURITY_ATTRIBUTES);
security.bInheritHandle = TRUE;
security.lpSecurityDescriptor = NULL;
if (!str_len || !CreatePipe(&in, &out, &security, 2048L)) {
return NULL;
}
memset(&startup, 0, sizeof(STARTUPINFO));
memset(&process, 0, sizeof(PROCESS_INFORMATION));
startup.cb = sizeof(STARTUPINFO);
startup.dwFlags = STARTF_USESTDHANDLES;
startup.hStdError = GetStdHandle(STD_ERROR_HANDLE);
read = (type[0] == 'r') ? TRUE : FALSE;
mode = ((str_len == 2) && (type[1] == 'b')) ? O_BINARY : O_TEXT;
if (read) {
in = dupHandle(in, FALSE);
startup.hStdInput = GetStdHandle(STD_INPUT_HANDLE);
startup.hStdOutput = out;
} else {
out = dupHandle(out, FALSE);
startup.hStdInput = in;
startup.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
}
cmd = (char*)malloc(strlen(command)+strlen(TWG(comspec))+sizeof(" /c "));
sprintf(cmd, "%s /c %s", TWG(comspec), command);
if (!CreateProcess(NULL, cmd, &security, &security, security.bInheritHandle, NORMAL_PRIORITY_CLASS, env, cwd, &startup, &process)) {
return NULL;
}
free(cmd);
CloseHandle(process.hThread);
proc = process_get(NULL TSRMLS_CC);
if (read) {
fno = _open_osfhandle((long)in, _O_RDONLY | mode);
CloseHandle(out);
} else {
fno = _open_osfhandle((long)out, _O_WRONLY | mode);
CloseHandle(in);
}
stream = _fdopen(fno, type);
proc->prochnd = process.hProcess;
proc->stream = stream;
return stream;
}
TSRM_API int pclose(FILE *stream)
{
DWORD termstat = 0;
process_pair *process;
TSRMLS_FETCH();
if ((process = process_get(stream TSRMLS_CC)) == NULL) {
return 0;
}
fflush(process->stream);
fclose(process->stream);
WaitForSingleObject(process->prochnd, INFINITE);
GetExitCodeProcess(process->prochnd, &termstat);
process->stream = NULL;
CloseHandle(process->prochnd);
return termstat;
}
TSRM_API int shmget(int key, int size, int flags)
{
shm_pair *shm;
char shm_segment[26], shm_info[29];
HANDLE shm_handle, info_handle;
BOOL created = FALSE;
if (size < 0) {
return -1;
}
sprintf(shm_segment, "TSRM_SHM_SEGMENT:%d", key);
sprintf(shm_info, "TSRM_SHM_DESCRIPTOR:%d", key);
shm_handle = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, shm_segment);
info_handle = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, shm_info);
if ((!shm_handle && !info_handle)) {
if (flags & IPC_EXCL) {
return -1;
}
if (flags & IPC_CREAT) {
shm_handle = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, size, shm_segment);
info_handle = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(shm->descriptor), shm_info);
created = TRUE;
}
if ((!shm_handle || !info_handle)) {
return -1;
}
}
shm = shm_get(key, NULL);
shm->segment = shm_handle;
shm->info = info_handle;
shm->descriptor = MapViewOfFileEx(shm->info, FILE_MAP_ALL_ACCESS, 0, 0, 0, NULL);
if (created) {
shm->descriptor->shm_perm.key = key;
shm->descriptor->shm_segsz = size;
shm->descriptor->shm_ctime = time(NULL);
shm->descriptor->shm_cpid = getpid();
shm->descriptor->shm_perm.mode = flags;
shm->descriptor->shm_perm.cuid = shm->descriptor->shm_perm.cgid= 0;
shm->descriptor->shm_perm.gid = shm->descriptor->shm_perm.uid = 0;
shm->descriptor->shm_atime = shm->descriptor->shm_dtime = 0;
shm->descriptor->shm_lpid = shm->descriptor->shm_nattch = 0;
shm->descriptor->shm_perm.mode = shm->descriptor->shm_perm.seq = 0;
}
if (shm->descriptor->shm_perm.key != key || size > shm->descriptor->shm_segsz ) {
CloseHandle(shm->segment);
UnmapViewOfFile(shm->descriptor);
CloseHandle(shm->info);
return -1;
}
return key;
}
TSRM_API void *shmat(int key, const void *shmaddr, int flags)
{
shm_pair *shm = shm_get(key, NULL);
if (!shm->segment) {
return (void*)-1;
}
shm->descriptor->shm_atime = time(NULL);
shm->descriptor->shm_lpid = getpid();
shm->descriptor->shm_nattch++;
shm->addr = MapViewOfFileEx(shm->segment, FILE_MAP_ALL_ACCESS, 0, 0, 0, NULL);
return shm->addr;
}
TSRM_API int shmdt(const void *shmaddr)
{
shm_pair *shm = shm_get(0, (void*)shmaddr);
if (!shm->segment) {
return -1;
}
shm->descriptor->shm_dtime = time(NULL);
shm->descriptor->shm_lpid = getpid();
shm->descriptor->shm_nattch--;
return UnmapViewOfFile(shm->addr) ? 0 : -1;
}
TSRM_API int shmctl(int key, int cmd, struct shmid_ds *buf) {
shm_pair *shm = shm_get(key, NULL);
if (!shm->segment) {
return -1;
}
switch (cmd) {
case IPC_STAT:
memcpy(buf, shm->descriptor, sizeof(struct shmid_ds));
return 0;
case IPC_SET:
shm->descriptor->shm_ctime = time(NULL);
shm->descriptor->shm_perm.uid = buf->shm_perm.uid;
shm->descriptor->shm_perm.gid = buf->shm_perm.gid;
shm->descriptor->shm_perm.mode = buf->shm_perm.mode;
return 0;
case IPC_RMID:
if (shm->descriptor->shm_nattch < 1) {
shm->descriptor->shm_perm.key = -1;
}
return 0;
default:
return -1;
}
}
TSRM_API char *realpath(char *orig_path, char *buffer)
{
int ret = GetFullPathName(orig_path, _MAX_PATH, buffer, NULL);
if(!ret || ret > _MAX_PATH) {
return NULL;
}
return buffer;
}
#endif
-106
View File
@@ -1,106 +0,0 @@
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-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 |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_0.txt. |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Daniel Beulshausen <daniel@php4win.de> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#ifndef TSRM_WIN32_H
#define TSRM_WIN32_H
#include "TSRM.h"
#include <windows.h>
struct ipc_perm {
int key;
unsigned short uid;
unsigned short gid;
unsigned short cuid;
unsigned short cgid;
unsigned short mode;
unsigned short seq;
};
struct shmid_ds {
struct ipc_perm shm_perm;
int shm_segsz;
time_t shm_atime;
time_t shm_dtime;
time_t shm_ctime;
unsigned short shm_cpid;
unsigned short shm_lpid;
short shm_nattch;
};
typedef struct {
FILE *stream;
HANDLE prochnd;
} process_pair;
typedef struct {
void *addr;
HANDLE info;
HANDLE segment;
struct shmid_ds *descriptor;
} shm_pair;
typedef struct {
process_pair *process;
shm_pair *shm;
int process_size;
int shm_size;
char *comspec;
} tsrm_win32_globals;
#ifdef ZTS
# define TWG(v) TSRMG(win32_globals_id, tsrm_win32_globals *, v)
#else
# define TWG(v) (win32_globals.v)
#endif
#define IPC_PRIVATE 0
#define IPC_CREAT 00001000
#define IPC_EXCL 00002000
#define IPC_NOWAIT 00004000
#define IPC_RMID 0
#define IPC_SET 1
#define IPC_STAT 2
#define IPC_INFO 3
#define SHM_R PAGE_READONLY
#define SHM_W PAGE_READWRITE
#define SHM_RDONLY FILE_MAP_READ
#define SHM_RND FILE_MAP_WRITE
#define SHM_REMAP FILE_MAP_COPY
TSRM_API void tsrm_win32_startup(void);
TSRM_API void tsrm_win32_shutdown(void);
TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, char *env);
TSRM_API FILE *popen(const char *command, const char *type);
TSRM_API int pclose(FILE *stream);
TSRM_API int tsrm_win32_access(const char *pathname, int mode);
TSRM_API int shmget(int key, int size, int flags);
TSRM_API void *shmat(int key, const void *shmaddr, int flags);
TSRM_API int shmdt(const void *shmaddr);
TSRM_API int shmctl(int key, int cmd, struct shmid_ds *buf);
TSRM_API char *realpath(char *orig_path, char *buffer);
#endif
-17166
View File
File diff suppressed because it is too large. Load diff
-186
View File
@@ -1,186 +0,0 @@
// $Header$
// FlexLexer.h -- define interfaces for lexical analyzer classes generated
// by flex
// Copyright (c) 1993 The Regents of the University of California.
// All rights reserved.
//
// This code is derived from software contributed to Berkeley by
// Kent Williams and Tom Epperly.
//
// Redistribution and use in source and binary forms with or without
// modification are permitted provided that: (1) source distributions retain
// this entire copyright notice and comment, and (2) distributions including
// binaries display the following acknowledgement: ``This product includes
// software developed by the University of California, Berkeley and its
// contributors'' in the documentation or other materials provided with the
// distribution and in all advertising materials mentioning features or use
// of this software. Neither the name of the University nor the names of
// its contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
// WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
// This file defines FlexLexer, an abstract class which specifies the
// external interface provided to flex C++ lexer objects, and yyFlexLexer,
// which defines a particular lexer class.
//
// If you want to create multiple lexer classes, you use the -P flag
// to rename each yyFlexLexer to some other xxFlexLexer. You then
// include <FlexLexer.h> in your other sources once per lexer class:
//
// #undef yyFlexLexer
// #define yyFlexLexer xxFlexLexer
// #include <FlexLexer.h>
//
// #undef yyFlexLexer
// #define yyFlexLexer zzFlexLexer
// #include <FlexLexer.h>
// ...
#ifndef FLEXLEXER_H
// Never included before - need to define base class.
#define FLEXLEXER_H
#include <iostream.h>
extern "C++" {
struct yy_buffer_state;
typedef int yy_state_type;
class FlexLexer {
public:
virtual ~FlexLexer() { }
const char* YYText() { return yytext; }
int YYLeng() { return yyleng; }
virtual void
yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0;
virtual struct yy_buffer_state*
yy_create_buffer( istream* s, int size ) = 0;
virtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0;
virtual void yyrestart( istream* s ) = 0;
virtual int yylex() = 0;
// Call yylex with new input/output sources.
int yylex( istream* new_in, ostream* new_out = 0 )
{
switch_streams( new_in, new_out );
return yylex();
}
// Switch to new input/output streams. A nil stream pointer
// indicates "keep the current one".
virtual void switch_streams( istream* new_in = 0,
ostream* new_out = 0 ) = 0;
int lineno() const { return yylineno; }
int debug() const { return yy_flex_debug; }
void set_debug( int flag ) { yy_flex_debug = flag; }
protected:
char* yytext;
int yyleng;
int yylineno; // only maintained if you use %option yylineno
int yy_flex_debug; // only has effect with -d or "%option debug"
};
}
#endif
#if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce)
// Either this is the first time through (yyFlexLexerOnce not defined),
// or this is a repeated include to define a different flavor of
// yyFlexLexer, as discussed in the flex man page.
#define yyFlexLexerOnce
class yyFlexLexer : public FlexLexer {
public:
// arg_yyin and arg_yyout default to the cin and cout, but we
// only make that assignment when initializing in yylex().
yyFlexLexer( istream* arg_yyin = 0, ostream* arg_yyout = 0 );
virtual ~yyFlexLexer();
void yy_switch_to_buffer( struct yy_buffer_state* new_buffer );
struct yy_buffer_state* yy_create_buffer( istream* s, int size );
void yy_delete_buffer( struct yy_buffer_state* b );
void yyrestart( istream* s );
virtual int yylex();
virtual void switch_streams( istream* new_in, ostream* new_out );
protected:
virtual int LexerInput( char* buf, int max_size );
virtual void LexerOutput( const char* buf, int size );
virtual void LexerError( const char* msg );
void yyunput( int c, char* buf_ptr );
int yyinput();
void yy_load_buffer_state();
void yy_init_buffer( struct yy_buffer_state* b, istream* s );
void yy_flush_buffer( struct yy_buffer_state* b );
int yy_start_stack_ptr;
int yy_start_stack_depth;
int* yy_start_stack;
void yy_push_state( int new_state );
void yy_pop_state();
int yy_top_state();
yy_state_type yy_get_previous_state();
yy_state_type yy_try_NUL_trans( yy_state_type current_state );
int yy_get_next_buffer();
istream* yyin; // input source for default LexerInput
ostream* yyout; // output sink for default LexerOutput
struct yy_buffer_state* yy_current_buffer;
// yy_hold_char holds the character lost when yytext is formed.
char yy_hold_char;
// Number of characters read into yy_ch_buf.
int yy_n_chars;
// Points to current character in buffer.
char* yy_c_buf_p;
int yy_init; // whether we need to initialize
int yy_start; // start state number
// Flag which is used to allow yywrap()'s to do buffer switches
// instead of setting up a fresh yyin. A bit of a hack ...
int yy_did_buffer_switch_on_eof;
// The following are not always needed, but may be depending
// on use of certain flex features (like REJECT or yymore()).
yy_state_type yy_last_accepting_state;
char* yy_last_accepting_cpos;
yy_state_type* yy_state_buf;
yy_state_type* yy_state_ptr;
char* yy_full_match;
int* yy_full_state;
int yy_full_lp;
int yy_lp;
int yy_looking_for_trail_begin;
int yy_more_flag;
int yy_more_len;
int yy_more_offset;
int yy_prev_more_offset;
};
#endif
-56
View File
@@ -1,56 +0,0 @@
--------------------------------------------------------------------
The Zend Engine License, Version 2.00
Copyright (c) 1999-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
@@ -1,53 +0,0 @@
## Process this file with automake to produce Makefile.in -*- makefile -*-
#CLEANFILES = zend_language_parser.c zend_language_parser.h zend_language_scanner.c zend_language_parser.output zend_ini_parser.c zend_ini_parser.h zend_ini_scanner.c zend_ini_parser.output
AUTOMAKE_OPTIONS=foreign
noinst_LTLIBRARIES=libZend.la
libZend_la_SOURCES=\
zend_language_parser.y zend_language_scanner.l \
zend_ini_parser.y zend_ini_scanner.l \
zend_alloc.c zend_compile.c zend_constants.c zend_dynamic_array.c \
zend_execute.c zend_execute_API.c zend_highlight.c zend_llist.c \
zend_opcode.c zend_operators.c zend_ptr_stack.c zend_stack.c \
zend_variables.c zend.c zend_API.c zend_extensions.c zend_hash.c \
zend_list.c zend_indent.c zend_builtin_functions.c zend_sprintf.c \
zend_ini.c zend_qsort.c zend_objects.c zend_object_handlers.c \
zend_objects_API.c zend_ts_hash.c zend_stream.c zend_mm.c \
zend_default_classes.c zend_reflection_api.c \
zend_iterators.c zend_interfaces.c zend_exceptions.c
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
@@ -1,195 +0,0 @@
Creating an object
------------------
Object can be created in the following ways:
1. As a result of a function call. E.g.:
$foo = create_new_foo("parameter");
$foo->run();
The function should create a new zval, create new object and get the
handle for it, set handle and handler table as needed. Note that the
handle is the only ID of the object, so it should be enough to
identify it.
2. Overriding create_object handler for class. E.g.:
$foo = new Java("some.Class.here", "parameter");
$foo->run();
The create_object handler function should create a new zval, create
new object and get the handle for it, set handle and handler table as
needed, and also provide constructor method that would handle
constructor call. The get_constructor handler table entry should be
used for that. Do not rely class entry's constructor, unless you refer
to it from get_constructor handler.
Object maintenance
------------------
The handlers add_ref and del_ref are called when a new zval referring
to the object is created. This does not create a new object - both
zvals still refer to the same object.
clone_obj handler should create a new object, identical to an old one,
but being a separate entity.
delete_obj should destroy an object, all references to it become
invalid.
Object access - read
--------------------
read_property is used to read object's property. This value is not
meant to be changed. The handler returns zval * with the value.
Object access - write
---------------------
write_property is used to directly write object's property by
name. This handler is used to assign property variables or to change them
in operations like += or ++ (unless get_property_zval_ptr is also set).
get_property_zval_ptr is used to obtain pointer to modifiable zval for
operations like += or ++. This should be used only if your object model
stores properties as real zval's that can be modified from outside.
Otherwise this handler should be NULL and the engine will use
read_property and write_property instead.
get_property_ptr is used to obtain zval ** for future writing to
it. If your object properties are stored as zval*, return real place
where the property is stored. If the aren't, the best way is to create
proxy object and handle it via get and set methods (see below).
This method is meant to be used for send-by-reference and assign-by-reference
use of object properties. If you don;t want to implement property
referencing for your objects, you can set this handler to NULL.
get and set handlers are used when engine needs to access the object
as a value. E.g., in the following situation:
$foo =& $obj->bar;
$foo = 1;
if $foo is an object (e.g., proxy object from get_property_ptr) it
would be accessed using write handler.
Object access - method call
---------------------------
get_method handler is used to find method description by name. It
should set right type, function name and parameter mask for the
method. If the type is ZEND_OVERLOADED_FUNCTION, the method would be
called via call_method handler, otherwise it would be called with
standard Zend means.
get_constructor performs the same function as get_method, but for the
object constructor.
call_method handler is used to perform method call. Parameters are
passed like to any other Zend internal function.
Object - comparison
-------------------
Objects can be compared via compare_objects handler. This is used with
== operation, === compares objects by handles, i.e., return true if
and only if it's really the same object. Note that objects from
different object types (i.e., having different handlers) can not be
compared.
Objects - reflection
--------------------
get_class_name is used to retrieve class name of the object.
get_class_entry returns class entry (zend_class_entry) for the object,
in case there exists PHP class for it.
No other reflection functions are currently implemented.
Objects - data structures and handlers
---------------------------------------
The object is represented by the following structure:
struct _zend_object_value {
zend_object_handle handle;
zend_object_handlers *handlers;
};
handle is an ID of the object among the objects of the same type (not
class!). The type of the object and how it behaves is determined by
the handler table.
typedef struct _zend_object_handlers {
zend_object_add_ref_t add_ref;
zend_object_del_ref_t del_ref;
zend_object_delete_obj_t delete_obj;
zend_object_clone_obj_t clone_obj;
zend_object_read_property_t read_property;
zend_object_write_property_t write_property;
zend_object_get_property_ptr_t get_property_ptr;
zend_object_get_property_zval_ptr_t get_property_zval_ptr;
zend_object_get_t get;
zend_object_set_t set;
zend_object_has_property_t has_property;
zend_object_unset_property_t unset_property;
zend_object_get_properties_t get_properties;
zend_object_get_method_t get_method;
zend_object_call_method_t call_method;
zend_object_get_constructor_t get_constructor;
zend_object_get_class_entry_t get_class_entry;
zend_object_get_class_name_t get_class_name;
zend_object_compare_t compare_objects;
} zend_object_handlers;
See zend_object_handlers.h for prototypes. All objects are passed as zval's.
Handlers explained:
add_ref - called when a copy of the object handle is created.
del_ref - called when a copy of the object handle is destroyed.
delete_obj - called when an object needs to be destroyed.
clone_obj - called when a new object identical to an old one should be
created (unlike Zend Engine 1, this never happens unless explicitly
asked for).
read_property - returns zval *, containing the value of the
property. Is used when value of the property should be retrieved for
reading.
write_property - assigns value to certain property of the object.
get_property_zval_ptr - retrieves zval** for being directly modified by
the engine. If your properties are not zval's, don't define it.
get_property_ptr - retrieves zval** for the property of the value, to
be used for read and write. If object properties are not zval's
natively, this method should create and return proxy object for use
with get and set methods.
get - retrieves zval* for object contents. To be used mainly with
proxy objects from get_property_ptr, but also may be used for
convert_to_* functions.
set - sets value for object contents. To be used mainly with
proxy objects from get_property_ptr.
has_property - checks if the object has certain property set.
unset_property - removes value for the property of the object
get_method - retrieves description of the method
call_method - calls the method (parameters should be put on stack like
for any other PHP internal function).
get_constructor - get description for the object constructor method
get_class_entry - should return the class entry for the object
get_class_name - get the name of the class the object belongs to
compare_objects - compares if two objects are equal
-136
View File
@@ -1,136 +0,0 @@
Revamped object model using object handles
===========================================
Background
----------
In the Zend Engine 1.0 (and its predecessor the PHP 3 scripting
engine) the object model's design is that instantiated objects are
language values. This means that when programmers are performing
operations, such variable assignment and passing parameters to
functions, objects are handled very similarly to the way other
primitive types are handled such as integers and strings.
Semantically this means that the whole object is being copied. The
approach Java takes is different where one refers to objects by handle
and not by value (one can think of a handle as an objects' ID).
Need
----
Unfortunately, the approach taken up to now has severely limited the
Zend Engine's object oriented model, both feature and simplicity
wise. One of the main problems with the former approach is that object
instantiation and duplication is very hard to control, a problem which
can not only lead to inefficient development but also often to strange
run-time behavior. Changing the object model to a handle oriented
model will allow the addressing of many needs such as destructors,
de-referencing method return values, tight control of object
duplication and more.
Overview
--------
The proposed object model is very much influenced by the Java
model. In general, when you create a new object you will be getting a
handle to the object instead of the object itself. When this handle is
sent to functions, assigned and copied it is only the handle which is
copied/sent/assigned. The object itself is never copied nor
duplicated. This results in all handles of this object to always point
at the same object making it a very consistent solution and saving
unnecessary duplication and confusing behavior.
Functionality
-------------
After this change the basic use of objects will be almost identical to
previous versions of the scripting engine. However, you won't bump
into awkward and confusing copying & destructing of objects. In order
to create and use a new object instance you will do the following:
$object = new MyClass(); $object->method();
The previous code will assign $object the handle of a new instance of
the class MyClass and call one of its methods.
Consider the following code:
1 class MyClass
2 {
3 function setMember($value)
4 {
5 $this->member = $value;
6 }
7
8 function getMember()
9 {
10 return $this->member;
11 }
12 }
13
14 function foo($obj)
15 {
16 $obj->setMember("foo");
17 }
18
19 $object = new MyClass();
20 $object->setMember("bar");
21 foo($object);
22 print $object->getMember();
Without the new Java-like handles, at line 20 the objects' data member
member is set to the string value of "bar". Because of the internal
representation of objects in the Zend Engine 1.0, the object is marked
as a reference, and when it is sent by value to the function foo, it
is duplicated (!). Therefore, the call to foo() on line 21 will
result in the $obj->setMember("foo") call being called on a duplicate
of $object. Line 22 will then result in "bar" being printed.
This is how the scripting engine has worked until today. Most
developers are probably unaware of the fact that they aren't always
talking to the same object but often duplicates; others may have
realized this can usually be solved by always passing objects by
reference (unless a replica is actually desired, which is uncommon).
The new object model will allow for a much more intuitive
implementation of the code. On line 21, the object's handle (ID) is
passed to foo() by value. Inside foo(), the object is fetched
according to this handle and, therefore, the setMember() method is
called on the originally instantiated object and not a copy. Line 22
will therefore result in "foo" being printed. This approach gives
developers tighter control of when objects are created and duplicated.
An additional not-as-important benefit is that the object handle will
be passed to foo() by value, which most probably will also save
unnecessary duplication of the value containing the ID itself and thus
additionally improving run-time performance.
This was just a simple description of why the new object model solves
awkward behavior and makes object handling much easier, intuitive and
efficient. The importance of this change goes far beyond what is
mentioned in this section as you will see in further sections which
describe new features with a majority of them being based on this
change.
Compatibility Notes
--------------------
Many PHP programmers aren't even aware of the copying quirks of the
current object model and, therefore, there is a relatively good chance
that the amount of PHP applications that will work out of the box or
after a very small amount of modifications would be high.
To simplify migration, version 2.0 will support an optional
'auto-clone' feature, which will perform a cloning of the object
whenever it would have been copied in version 1.0. Optionally, it
will also be possible to request that the engine will emit an E_NOTICE
message whenever such an automatic clone occurs, in order to allow
developers to gradually migrate to the version 2.0-style behavior
(without automatic clones).
Dependencies
------------
The new object model is not dependent on other features. Many of the
other Zend Engine 2.0 features, such as the $foo->bar()->barbara()
syntax, destructors and others completely rely on this new object
model.
-169
View File
@@ -1,169 +0,0 @@
Title: Zend 2.0 Namespaces
Version: $Revision$
Status: declined
Maintainer: Stig S. Bakken <ssb@php.net>
Created: 2001-09-08
Modified: 2001-09-08
1. Background/Need
==================
PHP and Zend 1.0 have come to a point where a lot of reusable code is
being written; from simple functions and classes to entire application
frameworks. It is becoming increasingly difficult to avoid symbol
name collisions with the current scoping methods.
The symbol scopes available in Zend 1.0 are the global scope, the
class scope and the function scope. All scopes but classes may
contain variables, only the class and global scopes may contain
functions, while only the global scope may contain constants and
classes. This means that all of Zend 1.0's scoping methods are
inherently limited for solving symbol name collision problems.
2. Overview
===========
Namespaces in Zend 2.0 provide a way to manage the symbol collision
problem by making it possible to define multiple symbol tables able to
contain all types of symbols. Zend will get the notion of a current
namespace, defaulting to the current global one. The current name
space may be changed on a file-by-file basis. Symbols in other name
spaces than the current one may be referenced using a new namespace
operator. It will be possible to "import" symbols from one namespace
into another.
3. Functionality
================
3.1. Namespace Syntax
=====================
The namespace operator ":" is used to refer to symbols in other
namespaces than the current one:
Class: Namespace:class
Function: Namespace:function
Static method: Namespace:class::method
Variable: $Namespace:variable
Constant: Namespace:CONSTANT
Class variable: $Namespace:class::variable
To refer to symbols in the global namespace, symbols are prefixed with
only the namespace operator:
Class: :class
Function: :function
Static method: :class::method
Variable: $:variable
Constant: :CONSTANT
Class variable: $:class::variable
Note: $:variable will effectively be just another syntax for
$GLOBALS['variable'].
A namespace may have a name containing a ":", it is always the last
":" character in the symbol qualifier that is the actual namespace
operator:
Class: Name:Space:class
Function: Name:Space:function
Static method: Name:Space:class::method
Variable: $Name:Space:variable
Constant: Name:Space:CONSTANT
Class variable: $Name:Space:class::variable
(Here, the ":" between "Name" and "Space" is part of the name, it is
the one after "Space" that is the namespace operator.)
3.2. Defining Namespaces
========================
Individual files may define a namespace that will apply to the entire
file. If no "namespace" operator occurs in the file, it will be in
the global namespace:
1 namespace HTML;
2
3 class Form {
4 function Form() {
5 // constructor
6 }
7 // ...
8 }
Or with the "nested" name syntax:
1 namespace HTML:Form;
2
3 class Image {
4 var $src;
5 function Image($src) {
6 $this->src = $src;
7 }
8 // ...
9 }
Code executed within the "HTML" namespace may refer to the Form class
as just "Form". Code executed from within other namespaces has to
refer to it as "HTML:Form". The "namespace" statement must occur
before any other statements in the file.
# [ssb 2001-09-08]:
# Should it be possible to "add" symbols to a namespace by including a
# second file with the same namespace statement?
3.3. Importing Symbols
======================
It is possible to import symbols from another namespace into the
current one with the "import" statement:
import * from HTML; // all symbols
import Form from HTML; // single symbols
import Form,Table from HTML; // multiple symbols
There is a potential for name clashes between symols of different
types that have the same qualifier syntax. These are resolved in this
order: class, function, constant.
Optionally, the symbol type may be explicitly given to import (as
"class", "function", "variable" or "constant"):
import class Form from HTML;
And finally, you may import all symbols of a given type:
import constant * from HTML:Table;
The namespace with its symbols must already be defined before using
"import".
4. Compatibility Notes
======================
Old code that does not take advantage of namespaces will run without
modifications.
5. Dependencies
===============
The class variable syntax depends on this class variables being
implemented in the new ZE2 object model.
6. Acknowledgements
===================
Andi Gutmans <andi@zend.com> and Zeev Suraski <zeev@zend.com> for
initial ZE2 namespaces proposal
Dean Hall <php@apt7.com> for the initial symbol qualification syntax
-72
View File
@@ -1,72 +0,0 @@
Title: Loose type requirements for functions
Version: $Revision$
Status: draft
Maintainer: Brian Moon <brianm@dealnews.com>
Created: 2001-09-17
Modified: 2001-09-17
1. Background/Need
==================
Many internal function of PHP will reject parameters because of their
type (the array and variable function come to mind). For userland
this is not an easy task as there is no uniform way to do it. An
addition to the engine for requiring loose types would allow
delevopers to know that the data passed to their functions is of the
correct type and reduce the need for duplicating the same code in
every function to check for the type of data.
2. Overview
===========
Loose typing mostly means evaluating the contents of the variable and
not the type of the variable itself. The requirements for this would
and should work much like several of the is_* functions do now.
The typing of parameters would be optional and those not typed would
simply continue to be treated as they are now.
3. Functionality
================
3.1. Allowed Types
==================
Only loose types should be needed to ensure the data is usable by the
function. Duplicating the functionallity of is_scalar, is_resource,
is_array and is_object should give developers all the information they
need to use a variable correctly.
3.2. Syntax
===========
The current function syntax should be expanded to allow typing of
variables inline in a C style.
function foo ($var){
}
could be changed to require an array such as:
function foo (array $var){
}
3.3. Errors
===========
Mis-matches in type should be reported as fatal errors and should halt
the execution of a script as that function can not be run and code
following could not reliably run.
4. Compatibility Notes
======================
Old code that does not take advantage of this will run without
modifications.
-1125
View File
File diff suppressed because it is too large. Load diff
-602
View File
@@ -1,602 +0,0 @@
# Microsoft Developer Studio Project File - Name="Zend" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=Zend - Win32 Release_inline
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "Zend.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "Zend.mak" CFG="Zend - Win32 Release_inline"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "Zend - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "Zend - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE "Zend - Win32 Release_inline" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "Zend - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDebug" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug" /D "_LIB" /D "Zend_EXPORTS" /D ZEND_DEBUG=0 /D "LIBZEND_EXPORTS" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /D "ZEND_WIN32" /FR /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x40d /d "NDebug"
# ADD RSC /l 0x40d /d "NDebug"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "Zend - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_Debug" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /D "_Debug" /D "_LIB" /D "LIBZEND_EXPORTS" /D "TSRM_EXPORTS" /D ZEND_DEBUG=1 /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c
# ADD BASE RSC /l 0x40d /d "_Debug"
# ADD RSC /l 0x40d /d "_Debug"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "Zend - Win32 Release_inline"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "Zend___Win32_Release_inline"
# PROP BASE Intermediate_Dir "Zend___Win32_Release_inline"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Release_inline"
# PROP Intermediate_Dir "Release_inline"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug" /D "_LIB" /D "Zend_EXPORTS" /D ZEND_DEBUG=0 /D "LIBZEND_EXPORTS" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /FR /FD /c
# SUBTRACT BASE CPP /YX
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug" /D "_LIB" /D "Zend_EXPORTS" /D "LIBZEND_EXPORTS" /D "TSRM_EXPORTS" /D ZEND_DEBUG=0 /D "ZEND_WIN32_FORCE_INLINE" /D "WIN32" /D "_MBCS" /D "ZEND_WIN32" /FR /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x40d /d "NDebug"
# ADD RSC /l 0x40d /d "NDebug"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
# Name "Zend - Win32 Release"
# Name "Zend - Win32 Debug"
# Name "Zend - Win32 Release_inline"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\zend.c
# End Source File
# Begin Source File
SOURCE=.\zend_alloc.c
# End Source File
# Begin Source File
SOURCE=.\zend_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_builtin_functions.c
# End Source File
# Begin Source File
SOURCE=.\zend_compile.c
# End Source File
# Begin Source File
SOURCE=.\zend_constants.c
# End Source File
# Begin Source File
SOURCE=.\zend_default_classes.c
# End Source File
# Begin Source File
SOURCE=.\zend_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
@@ -1,250 +0,0 @@
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
@@ -1,258 +0,0 @@
# Microsoft Developer Studio Generated Dependency File, included by ZendCore.mak
.\zend_alloc.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
.\alloca.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_config.w32.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_compile.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
.\zend_constants.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_constants.h"\
".\zend_operators.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_execute.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_constants.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
.\zend_highlight.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_highlight.h"\
".\zend_llist.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_language_parser.tab.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
.\zend_llist.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_llist.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_opcode.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
.\zend_operators.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
.\zend_ptr_stack.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_ptr_stack.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_stack.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_stack.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_variables.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_constants.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
".\zend_list.h"\
.\zend.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_operators.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_API.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_constants.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
".\zend_list.h"\
.\zend_hash.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_config.w32.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_ini.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
".\zend_ini.h"\
!IF "$(CFG)" == "ZendCore - Win32 Release"
!ELSEIF "$(CFG)" == "ZendCore - Win32 Debug"
!ENDIF
!IF "$(CFG)" == "ZendCore - Win32 Release"
!ELSEIF "$(CFG)" == "ZendCore - Win32 Debug"
!ENDIF
!IF "$(CFG)" == "ZendCore - Win32 Release"
!ELSEIF "$(CFG)" == "ZendCore - Win32 Debug"
!ENDIF
!IF "$(CFG)" == "ZendCore - Win32 Release"
!ELSEIF "$(CFG)" == "ZendCore - Win32 Debug"
!ENDIF
-735
View File
@@ -1,735 +0,0 @@
# Microsoft Developer Studio Project File - Name="ZendTS" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=ZendTS - Win32 Release_TSDbg
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "ZendTS.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "ZendTS.mak" CFG="ZendTS - Win32 Release_TSDbg"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "ZendTS - Win32 Release_TS" (based on "Win32 (x86) Static Library")
!MESSAGE "ZendTS - Win32 Debug_TS" (based on "Win32 (x86) Static Library")
!MESSAGE "ZendTS - Win32 Release_TS_inline" (based on "Win32 (x86) Static Library")
!MESSAGE "ZendTS - Win32 Release_TSDbg" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "ZendTS - Win32 Release_TS"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "Release_TS"
# PROP BASE Intermediate_Dir "Release_TS"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Release_TS"
# PROP Intermediate_Dir "Release_TS"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDebug_TS" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug_TS" /D ZEND_DEBUG=0 /D _WIN32_WINNT=0x400 /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x40d /d "NDebug_TS"
# ADD RSC /l 0x40d /d "NDebug_TS"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "ZendTS - Win32 Debug_TS"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "Debug_TS"
# PROP BASE Intermediate_Dir "Debug_TS"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Debug_TS"
# PROP Intermediate_Dir "Debug_TS"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_Debug_TS" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /D "_Debug_TS" /D ZEND_DEBUG=1 /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c
# ADD BASE RSC /l 0x40d /d "_Debug_TS"
# ADD RSC /l 0x40d /d "_Debug_TS"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TS_inline"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "ZendTS___Win32_Release_TS_inline"
# PROP BASE Intermediate_Dir "ZendTS___Win32_Release_TS_inline"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Release_TS_inline"
# PROP Intermediate_Dir "Release_TS_inline"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug_TS" /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "WIN32" /D "_MBCS" /D ZEND_DEBUG=0 /FR /FD /c
# SUBTRACT BASE CPP /YX
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug_TS" /D ZEND_DEBUG=0 /D "ZEND_WIN32_FORCE_INLINE" /D _WIN32_WINNT=0x400 /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x40d /d "NDebug_TS"
# ADD RSC /l 0x40d /d "NDebug_TS"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TSDbg"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "ZendTS___Win32_Release_TSDbg"
# PROP BASE Intermediate_Dir "ZendTS___Win32_Release_TSDbg"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Release_TSDbg"
# PROP Intermediate_Dir "Release_TSDbg"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug_TS" /D ZEND_DEBUG=0 /D _WIN32_WINNT=0x400 /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /FD /c
# SUBTRACT BASE CPP /YX
# ADD CPP /nologo /MD /W3 /GX /Zi /Od /I "." /D "NDebug_TS" /D ZEND_DEBUG=0 /D _WIN32_WINNT=0x400 /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x40d /d "NDebug_TS"
# ADD RSC /l 0x40d /d "NDebug_TS"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
# Name "ZendTS - Win32 Release_TS"
# Name "ZendTS - Win32 Debug_TS"
# Name "ZendTS - Win32 Release_TS_inline"
# Name "ZendTS - Win32 Release_TSDbg"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\zend.c
# End Source File
# Begin Source File
SOURCE=.\zend_alloc.c
# End Source File
# Begin Source File
SOURCE=.\zend_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_builtin_functions.c
# End Source File
# Begin Source File
SOURCE=.\zend_compile.c
# End Source File
# Begin Source File
SOURCE=.\zend_constants.c
# End Source File
# Begin Source File
SOURCE=.\zend_default_classes.c
# End Source File
# Begin Source File
SOURCE=.\zend_dynamic_array.c
# End Source File
# Begin Source File
SOURCE=.\zend_exceptions.c
# End Source File
# Begin Source File
SOURCE=.\zend_execute.c
# End Source File
# Begin Source File
SOURCE=.\zend_execute_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_extensions.c
# End Source File
# Begin Source File
SOURCE=.\zend_hash.c
# End Source File
# Begin Source File
SOURCE=.\zend_highlight.c
# End Source File
# Begin Source File
SOURCE=.\zend_indent.c
# End Source File
# Begin Source File
SOURCE=.\zend_ini.c
# End Source File
# Begin Source File
SOURCE=.\zend_ini_parser.c
# End Source File
# Begin Source File
SOURCE=.\zend_ini_scanner.c
# End Source File
# Begin Source File
SOURCE=.\zend_interfaces.c
# End Source File
# Begin Source File
SOURCE=.\zend_iterators.c
# End Source File
# Begin Source File
SOURCE=".\zend_language_parser.c"
# End Source File
# Begin Source File
SOURCE=".\zend_language_scanner.c"
# End Source File
# Begin Source File
SOURCE=.\zend_list.c
# End Source File
# Begin Source File
SOURCE=.\zend_llist.c
# End Source File
# Begin Source File
SOURCE=.\zend_mm.c
# End Source File
# Begin Source File
SOURCE=.\zend_object_handlers.c
# End Source File
# Begin Source File
SOURCE=.\zend_objects.c
# End Source File
# Begin Source File
SOURCE=.\zend_objects_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_opcode.c
# End Source File
# Begin Source File
SOURCE=.\zend_operators.c
# End Source File
# Begin Source File
SOURCE=.\zend_ptr_stack.c
# End Source File
# Begin Source File
SOURCE=.\zend_qsort.c
# End Source File
# Begin Source File
SOURCE=.\zend_reflection_api.c
# End Source File
# Begin Source File
SOURCE=.\zend_sprintf.c
# End Source File
# Begin Source File
SOURCE=.\zend_stack.c
# End Source File
# Begin Source File
SOURCE=.\zend_stream.c
# End Source File
# Begin Source File
SOURCE=.\zend_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
@@ -1,107 +0,0 @@
/*
+----------------------------------------------------------------------+
| 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
@@ -1,47 +0,0 @@
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
@@ -1,43 +0,0 @@
# Makefile to generate build tools
#
# Standard usage:
# make -f build.mk
#
# Written by Sascha Schumann
#
# $Id$
LT_TARGETS = ltmain.sh ltconfig
config_h_in = zend_config.h.in
makefile_am_files = Makefile.am
makefile_in_files = $(makefile_am_files:.am=.in)
makefile_files = $(makefile_am_files:e.am=e)
targets = $(makefile_in_files) $(LT_TARGETS) configure $(config_h_in)
all: $(targets)
clean:
rm -f $(targets)
$(LT_TARGETS):
rm -f $(LT_TARGETS)
libtoolize --automake $(AMFLAGS) -f
$(makefile_in_files): $(makefile_am_files)
automake -a -i $(AMFLAGS) $(makefile_files)
aclocal.m4: configure.in acinclude.m4
aclocal
$(config_h_in): configure.in acconfig.h
# explicitly remove target since autoheader does not seem to work
# correctly otherwise (timestamps are not updated)
@rm -f $@
autoheader
configure: aclocal.m4 configure.in
autoconf
-33
View File
@@ -1,33 +0,0 @@
#!/bin/sh
case "$1" in
--copy)
automake_flags=--copy
shift
;;
esac
libtoolize --force --automake $automake_flags
mv aclocal.m4 aclocal.m4.old 2>/dev/null
aclocal
if cmp aclocal.m4.old aclocal.m4 > /dev/null 2>&1; then
echo "buildconf: keeping ${1}aclocal.m4"
mv aclocal.m4.old aclocal.m4
else
echo "buildconf: created or modified ${1}aclocal.m4"
fi
autoheader
automake --add-missing --include-deps $automake_flags
mv configure configure.old 2>/dev/null
autoconf
if cmp configure.old configure > /dev/null 2>&1; then
echo "buildconf: keeping ${1}configure"
mv configure.old configure
else
echo "buildconf: created or modified ${1}configure"
fi
-47
View File
@@ -1,47 +0,0 @@
dnl $Id$
dnl Process this file with autoconf to produce a configure script.
AC_INIT(zend.c)
AM_INIT_AUTOMAKE(zend, 0.80A, nodefine)
AM_CONFIG_HEADER(zend_config.h)
AM_SANITY_CHECK
AM_MAINTAINER_MODE
AC_PROG_CC
AM_PROG_LEX
AM_PROG_CC_STDC
ZEND_VERSION=$VERSION
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
@@ -1,22 +0,0 @@
--TEST--
Bug #19859 (__call() does not catch call_user_func_array() calls)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--FILE--
<?php
class test
{
function __call($method,$args)
{
print "test::__call invoked for method '$method'\n";
}
}
$x = new test;
$x->fake(1);
call_user_func_array(array($x,'fake'),array(1));
call_user_func(array($x,'fake'),2);
?>
--EXPECT--
test::__call invoked for method 'fake'
test::__call invoked for method 'fake'
test::__call invoked for method 'fake'
-43
View File
@@ -1,43 +0,0 @@
--TEST--
Bug #20240 (order of destructor calls)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--FILE--
<?php
class test
{
public $member;
function test() {
$this->member = 1;
register_shutdown_function(array($this, 'destructor'));
}
function destructor() {
print __METHOD__ . "\n";
}
function __destruct() {
print __METHOD__ . "\n";
}
function add() {
$this->member += 1;
print $this->member."\n";
}
}
$t = new test();
$t->add();
$t->add();
echo "Done\n";
?>
--EXPECT--
2
3
Done
test::destructor
test::__destruct
-26
View File
@@ -1,26 +0,0 @@
--TEST--
Bug #20242 (Method call in front of class definition)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '>=')) die('skip ZendEngine 2 does not support this'); ?>
--FILE--
<?php
// THIS IS A WON'T FIX FOR ZE2
test::show_static();
$t = new test;
$t->show_method();
class test {
static function show_static() {
echo "static\n";
}
function show_method() {
echo "method\n";
}
}
?>
--EXPECT--
static
method
-37
View File
@@ -1,37 +0,0 @@
--TEST--
Bug #21478 (Zend/zend_alloc.c :: shutdown_memory_manager produces segfault)
--SKIPIF--
<?php
if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed');
if (!function_exists('stream_filter_register')) die('skip stream_filter_register() not available');
?>
--FILE--
<?php
class debugfilter extends php_user_filter {
function filter($in, $out, &$consumed, $closing) {
while ($bucket = stream_bucket_make_writeable($in)) {
$bucket->data = strtoupper($bucket->data);
stream_bucket_append($out, $bucket);
$consumed += strlen($bucket->data);
}
return PSFS_PASS_ON;
}
}
stream_filter_register("myfilter","debugfilter");
$fp = fopen(dirname(__FILE__)."/test.txt","w");
stream_filter_append($fp, "myfilter");
stream_filter_append($fp, "myfilter");
stream_filter_append($fp, "myfilter");
fwrite($fp, "This is a test.\n");
print "Done.\n";
fclose($fp);
// Uncommenting the following 'print' line causes the segfault to stop occuring
// print "2\n";
readfile(dirname(__FILE__)."/test.txt");
unlink(dirname(__FILE__)."/test.txt");
?>
--EXPECT--
Done.
THIS IS A TEST.
-39
View File
@@ -1,39 +0,0 @@
--TEST--
Bug #21888 (protected property and protected method of the same name)
--SKIPIF--
<?php
if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed');
?>
--FILE--
<?php
class mom {
protected $prot = "protected property\n";
protected function prot() {
print "protected method\n";
}
}
class child extends mom {
public function callMom() {
$this->prot();
}
public function viewMom() {
print $this->prot;
}
}
$c = new child();
$c->callMom();
$c->viewMom();
?>
--EXPECT--
protected method
protected property
--EXPECT--
protected method
protected property
-31
View File
@@ -1,31 +0,0 @@
--TEST--
bug #22725 (A derived class can call a parent's protected method that calls a private method)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
--FILE--
<?php
class Foo {
private function aPrivateMethod() {
echo "Foo::aPrivateMethod() called.\n";
}
protected function aProtectedMethod() {
echo "Foo::aProtectedMethod() called.\n";
$this->aPrivateMethod();
}
}
class Bar extends Foo {
public function aPublicMethod() {
echo "Bar::aPublicMethod() called.\n";
$this->aProtectedMethod();
}
}
$o = new Bar;
$o->aPublicMethod();
?>
--EXPECT--
Bar::aPublicMethod() called.
Foo::aProtectedMethod() called.
Foo::aPrivateMethod() called.
-74
View File
@@ -1,74 +0,0 @@
--TEST--
Bug #22836 (returning references to NULL)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--FILE--
<?php
function &f()
{
$x = "foo";
var_dump($x);
print "'$x'\n";
return ($a);
}
for ($i = 0; $i < 8; $i++) {
$h =& f();
}
?>
--EXPECTF--
string(3) "foo"
'foo'
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
@@ -1,12 +0,0 @@
--TEST--
Bug #23104 (Hash position not reset for constant arrays)
--FILE--
<?php
function foo($bar = array("a", "b", "c"))
{
var_dump(current($bar));
}
foo();
?>
--EXPECT--
string(1) "a"
-24
View File
@@ -1,24 +0,0 @@
--TEST--
Bug #24436 (isset()/empty() produce errors with non-existent variables in classes)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--INI--
error_reporting=2047
--FILE--
<?php
class test {
function __construct() {
if (empty($this->test[0][0])) { print "test1\n";}
if (!isset($this->test[0][0])) { print "test2\n";}
if (empty($this->test)) { print "test1\n";}
if (!isset($this->test)) { print "test2\n";}
}
}
$test1 = new test();
?>
--EXPECT--
test1
test2
test1
test2
-30
View File
@@ -1,30 +0,0 @@
--TEST--
Bug #24635 (crash on dtor calling other functions)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--FILE--
<?php
class SiteClass {
function __construct() { $this->page = new PageClass(); }
}
class PageClass {
function Display() {
$section = new SectionClass("PageClass::Display");
}
}
class SectionClass {
function __construct($comment) {
$this->Comment = $comment;
}
function __destruct() {
out($this->Comment); // this line doesn't crash PHP
out("\n<!-- End Section: " . $this->Comment . "-->"); // this line
}
}
function out($code) { return; }
$site = new SiteClass();
$site->page->Display();
echo "OK\n";
?>
--EXPECT--
OK
-13
View File
@@ -1,13 +0,0 @@
--TEST--
Bug #24699 (Memory Leak with per-class constants)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--FILE--
<?php
class TEST { const FOO = SEEK_CUR; };
class TEST2 { const FOO = 1; };
class TEST3 { const FOO = PHP_VERSION; };
print TEST::FOO."\n";
?>
--EXPECT--
1
-9
View File
@@ -1,9 +0,0 @@
--TEST--
Bug #24773 (unset() of integers treated as arrays causes a crash)
--FILE--
<?php
$array = 'test';
unset($array["lvl1"]["lvl2"]["b"]);
?>
--EXPECTF--
Fatal error: Cannot unset string offsets in %s on line %d
-28
View File
@@ -1,28 +0,0 @@
--TEST--
Bug #24884 (calling $this->__clone(); crashes php)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
--FILE--
<?php
class Test {
function __copy()
{
$string = PHP_VERSION;
$version = $string{0};
if($string < 5)
{
return $this;
}
else
{
return clone $this;
}
}
}
$test = new Test();
$test2 = $test->__copy();
var_dump($test2);
?>
--EXPECT--
object(Test)#2 (0) {
}
-19
View File
@@ -1,19 +0,0 @@
--TEST--
Bug #26010 (private / protected variables get exposed by get_object_vars())
--FILE--
<?php
class foo {
private $private = 'private';
protected $protected = 'protected';
public $public = 'public';
}
$data = new foo();
$obj_vars = get_object_vars($data);
var_dump($obj_vars);
?>
--EXPECT--
array(1) {
["public"]=>
string(6) "public"
}
-9
View File
@@ -1,9 +0,0 @@
--TEST--
Bug #26077 Memory leaks when creating an instance of an object
--FILE--
<?php
class foo {} new foo();
?>
===DONE===
--EXPECT--
===DONE===
-67
View File
@@ -1,67 +0,0 @@
--TEST--
Bug #26166 (__toString() crash when no values returned)
--FILE--
<?php
class Foo
{
function __toString()
{
return "Hello World!\n";
}
}
class Bar
{
private $obj;
function __construct()
{
$this->obj = new Foo();
}
function __toString()
{
return $this->obj->__toString();
}
}
$o = new Bar;
echo $o;
echo "===THROW===\n";
class Error
{
function __toString() {
throw new Exception("This is an error!");
}
}
$o = new Error;
try {
echo $o;
}
catch (Exception $e) {
echo "Got the exception\n";
}
echo "===NONE===\n";
class None
{
function __toString() {
}
}
$o = new None;
echo $o;
?>
===DONE===
--EXPECTF--
Hello World!
===THROW===
Got the exception
===NONE===
Fatal error: Method None::__toString() must return a string value in %sbug26166.php on line %d
-21
View File
@@ -1,21 +0,0 @@
--TEST--
Bug #26229 (getIterator() segfaults when it returns arrays or scalars)
--FILE--
<?php
class array_iterator implements IteratorAggregate {
public function getIterator() {
return array('foo', 'bar');
}
}
$obj = new array_iterator;
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
@@ -1,13 +0,0 @@
--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
@@ -1,22 +0,0 @@
--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
@@ -1,24 +0,0 @@
--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
@@ -1,73 +0,0 @@
--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
@@ -1,22 +0,0 @@
--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===
Loaded 100 of 3515 files, more files were not shown because too many files have changed in this diff. Show more