Compare commits

...
4554 Commits
Author SHA1 Message Date
SVN Migration 8b1e9acd2e This commit was manufactured by cvs2svn to create tag 'php_4_3_3'. 2003-08-24 19:44:48 +00:00
Ilia Alshanetsky d702e37902 Fixed typo. 2003-08-24 19:44:47 +00:00
Ilia Alshanetsky e0d22f195b Set 4.3.3 version bit. 2003-08-24 19:30:16 +00:00
Ilia Alshanetsky 88004a6208 Prepare NEWS file for 4.3.3 release. 2003-08-24 19:24:39 +00:00
Ilia Alshanetsky a2a30ca7d3 MFH: Fixed bug #25127 (reset memory_limit before terminating the request) 2003-08-22 20:02:11 +00:00
Jon Parise d7264e744d MFH configure.in:1.460, filestat.c:1.125:
Fix disk_total_space() and disk_free_space() under FreeBSD.
2003-08-22 05:11:31 +00:00
Ard Biesheuvel 7f04983ed3 MFH Fix false warning on zero-size BLOB fetch (introduced in RC3) 2003-08-20 23:01:32 +00:00
Brad House ac99c5ab03 allow destructor to clean up connection data 2003-08-20 19:43:07 +00:00
Ilia Alshanetsky 60097c2661 MFH: Fixed bug #25170 (Problem with generation of random numbers on solaris) 2003-08-20 16:40:46 +00:00
foobar 72f98037f4 MFH: - Fixed bug #25163 (OSX: phpize has to use glibtoolize instead) 2003-08-20 08:16:18 +00:00
foobar 6465017e05 MFH 2003-08-20 08:15:42 +00:00
Marcus Boerger f75ae95c8f MFH: Add test for #25145 2003-08-19 22:50:38 +00:00
SVN Migration 26ff74d670 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-08-19 22:47:31 +00:00
Moriyoshi Koizumi b34666a014 MFH(r-1.189): more accurate fix for bug #25140 2003-08-19 14:49:39 +00:00
Moriyoshi Koizumi d8bbff45c1 Revert the last patch. This patch should not be included in the forthcoming
release.
2003-08-19 14:32:10 +00:00
Derick Rethans 39a8fc274a - MFH: Fix for bug #25140 (mb_convert_encoding returns FALSE when it tries to
convert empty string)
2003-08-19 08:34:51 +00:00
SVN Migration b6006ed2fc This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-08-19 08:29:58 +00:00
Ilia Alshanetsky 4ceecd3e5e RC5 not RC4 2003-08-18 14:04:30 +00:00
Ilia Alshanetsky ab74b63ff2 Back to dev 2003-08-18 14:02:28 +00:00
Pierre Joye 3214d963ec - MFH 2003-08-18 13:28:38 +00:00
Ilia Alshanetsky 6bacb29c98 RC4 is a go 2003-08-18 12:27:01 +00:00
foobar 339427de12 fix typo 2003-08-17 21:27:55 +00:00
Ard Biesheuvel f1dd5c2406 MFH Fixed leak in _php_ibase_bind() 2003-08-17 16:43:49 +00:00
Ard Biesheuvel bb4ea41589 MFH 2003-08-17 16:40:26 +00:00
Ard Biesheuvel c5a669caa6 MFH 2003-08-17 15:01:07 +00:00
Ard Biesheuvel cee27dd710 MFH 2003-08-17 13:26:13 +00:00
foobar 879fb489f3 made some entries more meaningful for users.. 2003-08-17 05:57:10 +00:00
Ilia Alshanetsky 1ab01b470b BFN 2003-08-16 23:05:19 +00:00
Ard Biesheuvel e25d006476 MFH Fixed bug #24224 2003-08-16 20:12:43 +00:00
Ard Biesheuvel 2732fbadbe MFH 2003-08-16 20:10:51 +00:00
Ard Biesheuvel 418cada107 MFH 2003-08-16 20:05:36 +00:00
Ard Biesheuvel 850a158531 MFH Fixed bug #18744 2003-08-16 17:11:25 +00:00
foobar 4282e55dfe ws fix 2003-08-15 18:47:02 +00:00
foobar 05a0c36072 fix typo 2003-08-15 18:42:11 +00:00
Derick Rethans 05ae3f22ab - Fix library path problems 2003-08-14 20:12:51 +00:00
Ilia Alshanetsky 903275e887 MFH: Fixed bug #25093 (Various leaks due to non-freed queries) 2003-08-14 17:49:48 +00:00
Marcus Boerger 88b48b5376 MFH: Don't test other functionality than wddx here. 2003-08-14 17:25:17 +00:00
Ilia Alshanetsky 88e0b419f2 Set RC4 date 2003-08-14 14:38:50 +00:00
Ilia Alshanetsky 33d7423950 MFH: Fixed bug #25081 (odbc_fetch_array() may mangle numeric fields). 2003-08-14 14:37:33 +00:00
Ilia Alshanetsky 30c26df348 MFH: Fixed bug #25084 (Make refer check not dependant on register_globals) 2003-08-14 01:32:02 +00:00
Ilia Alshanetsky cadd668aac MFH: missing skip condition. 2003-08-14 00:54:42 +00:00
Ilia Alshanetsky b2c85181d0 MFH: Fixed a possible crash due to invalid handling of assert ini options. 2003-08-14 00:38:21 +00:00
Brian France 7da8651511 Reverted part of the last patch. It changed -prefer-pic to -prefer-non-pic.
Now back to -prefer-pic
2003-08-14 00:24:25 +00:00
foobar 22aab1e328 MFH: boolean (not long) 2003-08-13 23:39:03 +00:00
Edin Kadribasic 919f53ee51 Added standard location for the headers 2003-08-13 23:02:57 +00:00
Brian France 3b2cf9ddef Fixed two translit so they don't remove underscores 2003-08-13 22:50:34 +00:00
Tomas V.V.Cox 3f11a2a6a8 1.2b5 becomes 1.2 final, no more changes 2003-08-13 22:32:28 +00:00
Vlad Krupin 2725d3534f MFH adding win32 support 2003-08-13 20:59:44 +00:00
SVN Migration 48c975a333 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-08-13 18:57:20 +00:00
Moriyoshi Koizumi fe042a90b9 MFH(r-1.96): Slight improvement. Hope this will make some difference. 2003-08-13 18:22:17 +00:00
foobar fab70dea69 Be a bit more wordy.. 2003-08-13 18:16:00 +00:00
Ilia Alshanetsky 7b1548e798 BFN 2003-08-13 16:14:08 +00:00
Ard Biesheuvel e084903eab Fixed crash in _php_ibase_error() after request shutdown (also fixes #7014) 2003-08-13 13:27:36 +00:00
foobar 3f71921c58 MFH 2003-08-13 10:40:56 +00:00
foobar 806f9145de MFH 2003-08-13 09:48:32 +00:00
Ilia Alshanetsky bd3cb846c0 MFH: Don't forget to flush() buffers for -w -s 2003-08-13 02:01:59 +00:00
foobar 9356017daa MFH: revert previous commit 2003-08-13 01:37:58 +00:00
Ilia Alshanetsky 351a686a7c MFH: Fixed bug #20896 (-s -w modes with php-cli cause php to hang). 2003-08-13 01:30:39 +00:00
Ard Biesheuvel 61c05dfc9f Fixed bug #23936 (fail to select and fetch) MFH 2003-08-13 01:28:32 +00:00
foobar 553fb5a3be MFH 2003-08-13 01:24:48 +00:00
Ilia Alshanetsky 35f457c92e Fix compile warning (unused variable) 2003-08-12 15:04:52 +00:00
foobar b855ab0dd4 MFH: fix test results (negative indices are not strings anymore) 2003-08-11 23:56:18 +00:00
Marcus Boerger 238aa7baee BFN 2003-08-11 20:24:58 +00:00
Marcus Boerger 46174f8ac8 BFN 2003-08-11 20:19:50 +00:00
Marcus Boerger 379040771d MFH: Bugfix 21918 2003-08-11 20:19:19 +00:00
SVN Migration 37a02a3984 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-08-11 20:14:26 +00:00
Marcus Boerger 575b38ee2f MFH: Bugfix #25044 2003-08-11 19:40:52 +00:00
Ilia Alshanetsky 977ec5eb4a MFH: Fixed bug #22245 (References inside $_SESSION not being handled). 2003-08-11 19:21:22 +00:00
Marcus Boerger 064cab8ac8 Add Ard as interbase maintainer 2003-08-11 18:54:57 +00:00
Ilia Alshanetsky d5fe19eb92 MFH: Fixed bug #22947 (Ack() inside win32/sendmail.c may stall in certain
situations). (Ilia)
2003-08-11 18:08:35 +00:00
Ilia Alshanetsky c2eb068c8a MFH: Fixed bug #25037 (Possible infinite loop inside SendText()) 2003-08-11 16:38:08 +00:00
Ilia Alshanetsky efc550eea3 MFH: Fixed bug #21957 (serialize() mangles objects with __sleep). 2003-08-11 04:57:55 +00:00
SVN Migration 3f54dd40b6 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-08-11 03:22:25 +00:00
foobar 7c0dd1251c MFH: fix compile warning 2003-08-11 02:08:32 +00:00
foobar 0d8beb77f6 MFH: nuked unused variable 2003-08-11 01:57:10 +00:00
foobar 1cab24458b MFH: fix compile warnings about unused variables 2003-08-11 01:55:14 +00:00
foobar cfc97c7d71 MFH: moved RINIT(crypt) stuff to crypt() itself. 2003-08-11 00:53:26 +00:00
foobar 30f1001553 MFH: - Fixed bug #25007 (rand() & mt_rand() seed RNG every call). 2003-08-11 00:43:32 +00:00
Ilia Alshanetsky 92d3c2a08e MFH: timeout fix 2003-08-09 23:15:19 +00:00
Ilia Alshanetsky 9cfcbd137b MFH: fixed test 2003-08-09 21:00:53 +00:00
Ilia Alshanetsky b74daafbcd MFH: Fixed bug #24897 (inconsistent behavior of shuffle() &
array_multisort())
2003-08-09 20:50:25 +00:00
SVN Migration af01cf787d This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-08-09 20:49:01 +00:00
foobar 6da25bdae8 MFH 2003-08-09 18:43:58 +00:00
Ilia Alshanetsky 6ffa3e1780 MFH: test correction 2003-08-09 18:40:53 +00:00
Ilia Alshanetsky ff35f925b7 BFN 2003-08-09 16:49:08 +00:00
Ilia Alshanetsky 6b0aaabc98 MFH: Added/improved tests for bugs 24142, 24063, 24951, 24980 2003-08-09 16:48:30 +00:00
Ilia Alshanetsky e60da236ae MFH: Do not assume array contains numeric values. 2003-08-09 16:47:21 +00:00
SVN Migration d58f597885 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-08-09 16:44:34 +00:00
Ilia Alshanetsky a25742e18f MFH: Detection of buggy compiler (gcc) 2003-08-09 16:13:47 +00:00
foobar b75c57e521 MFH 2003-08-09 15:46:48 +00:00
foobar 77a22a2835 BFN 2003-08-09 15:41:09 +00:00
foobar 0690aff6b5 - Fix possible crashes if PHP is linked with external libexpat and also
the bundled one is compiled in.
2003-08-09 14:26:40 +00:00
Derick Rethans f877a76a0e - MFH: Memleak fix 2003-08-09 11:22:40 +00:00
Moriyoshi Koizumi 605563c0a8 Test updates. 2003-08-09 06:14:51 +00:00
Moriyoshi Koizumi b2a7d2ed4e MFH(r-1.186): fix wrong behaviour under ZTS that was inconsistent with the
behaviour under non-ZTS
2003-08-09 06:12:41 +00:00
Ilia Alshanetsky b2bd6e465c MFH: Fixed bug #24980 (array_reduce() uses first element as default running
total).
2003-08-08 23:54:25 +00:00
Ilia Alshanetsky ceb065f9eb MFH: Fixed bug #24951 (ob_flush() needlessly destroys output handler). 2003-08-08 23:44:04 +00:00
Ilia Alshanetsky c2302046dd MFH: Avoid a round() bug that occurs due to over optimization of C code by
gcc.
2003-08-08 23:42:10 +00:00
Marcus Boerger bd6bd53646 Bugfix #24063 2003-08-08 20:23:07 +00:00
Ilia Alshanetsky c95bd4ad87 BFN 2003-08-08 13:55:06 +00:00
Ilia Alshanetsky 1167e85cf3 MFH: Fixed bug #24977 (Revert mysql_select_db optimization) 2003-08-08 13:36:44 +00:00
Ilia Alshanetsky 77225b912f MFH: Fixed bug #24909 (Bad random numbers with ZTS builds on Solaris) 2003-08-08 13:34:52 +00:00
foobar aa3a1426e8 correct version 2003-08-08 12:39:11 +00:00
Masaki Fujimoto 0072a36646 BFN 2003-08-08 11:44:25 +00:00
SVN Migration cecfd0ace4 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-08-08 10:52:51 +00:00
Ilia Alshanetsky d7409a9797 RC4 (hopefully it'll actually be the final) 2003-08-07 18:42:40 +00:00
Moriyoshi Koizumi 1560aabbaf MFH(r-1.10): Tru64 requires TZ values be POSIX styled 2003-08-07 17:46:40 +00:00
Ilia Alshanetsky 6ff7c1cedf RC3 is a go. 2003-08-07 17:42:02 +00:00
Zeev Suraski 6c7394101b Remove 'proto' from internal functions 2003-08-07 16:44:11 +00:00
Zeev Suraski c4845a8b65 Another broken prototype 2003-08-07 16:03:05 +00:00
Zeev Suraski 728ca44dff Fix prototype 2003-08-07 16:02:04 +00:00
Zeev Suraski 1af7f512bc That's slightly more accurate 2003-08-07 15:50:18 +00:00
Ilia Alshanetsky 07ff7f16c7 MFH: Fixed bug #24839 (& -> & in php credits) 2003-08-07 15:41:43 +00:00
Ilia Alshanetsky bfcbf4bc19 BFN 2003-08-07 15:37:54 +00:00
Ilia Alshanetsky 69322ae43b MFH: Fixed bug #21958 (workaround for unusual realpath() on AIX & Tru64). 2003-08-07 15:32:37 +00:00
foobar 2dea730e08 MFH: dlfcn.h not found in solaris when using forte cc 2003-08-07 12:05:00 +00:00
Ilia Alshanetsky 84cc58d013 MFH: Fixed bug #24958 (Incorrect handling of 404s) 2003-08-06 22:34:20 +00:00
Moriyoshi Koizumi 165a1d62c8 Add missing NLS entry for German. 2003-08-06 21:59:42 +00:00
Vlad Krupin d5fba05f61 Fix for bug 23463. Dbase2 is not supported.
AFAICT, no newer versions of dbase, even those use
version byte as a bitmask will ever have it <3.
2003-08-06 19:01:08 +00:00
Pierre Joye 9868377fa0 - HTTP 1.2.1 2003-08-06 07:59:09 +00:00
Pierre Joye c25ed56914 - Remove old http 2003-08-06 07:58:16 +00:00
Tomas V.V.Cox a6aef8844f Added Mirror.php to PHP_4_3 branch 2003-08-06 02:13:05 +00:00
Tomas V.V.Cox 7d96d95a5e MFH for RC3 2003-08-06 01:58:30 +00:00
SVN Migration 79ff9f2fa3 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-08-05 23:22:09 +00:00
Brian France 79f338488e added include config.h so shared extensions builds work correctly 2003-08-05 20:54:43 +00:00
Ilia Alshanetsky 7c70a8f8c2 MFH: Fixed bug #18291 (escapeshellcmd() can now handle quoted arguments) 2003-08-05 20:16:47 +00:00
Ilia Alshanetsky 1e76a63719 MFH: Fixed bug #17414 (pthreads bug workaround). 2003-08-05 20:05:17 +00:00
foobar 29c92b6d91 MFH: fixed typos 2003-08-05 16:02:41 +00:00
Ilia Alshanetsky 7ec8b0bcba MFH: memory leak fix 2003-08-05 13:34:20 +00:00
foobar 370eecd336 correct blame :) 2003-08-05 12:36:57 +00:00
foobar f89eae47f2 BFN 2003-08-05 12:35:14 +00:00
foobar 3d598476ec MFH: - Fixed bug #21611 (version_compare() does not support "p" suffix) 2003-08-05 12:34:49 +00:00
Moriyoshi Koizumi b7d673db52 MFH(r-1.2): putenv() should be put here as well. 2003-08-05 12:29:41 +00:00
foobar e3d9b17e53 BFN 2003-08-05 11:22:24 +00:00
foobar dfba9a0ab0 MFH 2003-08-05 11:19:35 +00:00
foobar 47e16d8ad6 MFH: - Fixed bug #24936 (ext/fdf is not linked properly when compiled as shared extension). (Jani) 2003-08-05 11:17:25 +00:00
Ilia Alshanetsky f3618527a6 MFH: remove useless variable when mbstring is not used. 2003-08-05 01:01:40 +00:00
Edin Kadribasic ad2fa621bd Sync to LICENSE file in the distro 2003-08-04 22:30:04 +00:00
Sascha Schumann f2565109ea don't overwrite script_path_translated if no PATH_TRANSLATED was received 2003-08-04 19:05:05 +00:00
Ilia Alshanetsky b1a7a8d572 BFN 2003-08-04 17:15:06 +00:00
Ilia Alshanetsky 519c152527 MFH: Fixed bug #23104 (hash position of static arrays not being reset) 2003-08-04 17:14:16 +00:00
foobar 2e783c4dac MFH: Typo fixes 2003-08-04 14:36:52 +00:00
Uwe Schindler e95fbd1f2c MFH 2003-08-04 12:46:38 +00:00
Uwe Schindler fa40ecfec1 MFH 2003-08-03 19:31:13 +00:00
Moriyoshi Koizumi be27697628 MFH(r-1.3): disable the test temporarily because "-d" flags in the command
line doesn't take effect under CGI mode. (See the relevant portion of
cgi_main.c that begins at line 996)
2003-08-03 13:59:48 +00:00
Uwe Schindler 86842904be MFH 2003-08-03 11:23:25 +00:00
Ilia Alshanetsky 2556aa7b2a MFH: Fixed bug #24177 (Status not set correctly after flush() in Apache 2) 2003-08-02 18:30:22 +00:00
Ilia Alshanetsky 9f7f4f5bb8 MFH: Fixed bug #22072 (Apache2 sapis do not detect aborted connections) 2003-08-01 20:21:21 +00:00
Ilia Alshanetsky 85f4e2b191 MFH: Preserve exit status for non-php execution modes. 2003-08-01 16:53:03 +00:00
Ilia Alshanetsky e945608fa4 MFH: Fixed bug #23509 (exit code lost when exit() called from
register_shutdown_function())
2003-08-01 12:29:48 +00:00
foobar d892bf5333 MFH 2003-08-01 11:24:20 +00:00
foobar d3b271d04f hothothot 2003-08-01 10:08:57 +00:00
Ilia Alshanetsky 498c4ce19d Fixed bug #24871 (methods misidentified as constructors) 2003-08-01 02:17:31 +00:00
Ilia Alshanetsky 6f53bb90e4 Added skip condition 2003-08-01 02:15:56 +00:00
Ilia Alshanetsky e57d86daef MFH: Fixed bug #24883 (variables created through register_globals, ignore
gpc_order and variables_order).
2003-07-31 23:00:21 +00:00
Ilia Alshanetsky b050f6e430 MFH: Fixed bug #22154 (Possible crash when memory_limit is reached and
output buffering in addition to session.use_trans_sid is used).
2003-07-31 19:48:05 +00:00
foobar 8caea61bd3 MFH 2003-07-30 21:57:02 +00:00
Ilia Alshanetsky 8b2dc6853a BFN 2003-07-30 17:57:19 +00:00
Ilia Alshanetsky 02a1624d22 MFH: Fixed bug #24873 (incorrect handling of / inside open_basedir) 2003-07-30 17:55:21 +00:00
Ilia Alshanetsky c09cdb4a07 MFH: Fixed bug #23792 (8 bit graphics don't rotate properly) 2003-07-30 17:34:23 +00:00
Ilia Alshanetsky 2e870b76c6 Revert fix for bug #22836 2003-07-30 16:12:32 +00:00
foobar 687e73c7af MFH 2003-07-30 14:09:52 +00:00
Ilia Alshanetsky 71be643056 Set proper php4 sources tag 2003-07-30 13:21:15 +00:00
Ilia Alshanetsky e975382a82 Restore version. 2003-07-30 13:20:50 +00:00
Ilia Alshanetsky 35a8ad18a9 4.3.3RC2 is a go 2003-07-30 13:01:59 +00:00
Ilia Alshanetsky 349a98d388 MFH: persistent streams patch 2003-07-29 18:26:59 +00:00
Ilia Alshanetsky c65fd57a24 Test case & news for bug #22836. 2003-07-29 17:54:15 +00:00
foobar b459ec5cdb BFN 2003-07-29 11:20:39 +00:00
foobar e187fad2d1 MFZE2: made each() binary safe for keys 2003-07-29 11:19:47 +00:00
foobar 8182575647 past tense plus full name :) 2003-07-29 11:05:17 +00:00
Stefan Roehrich f9938a3e9a # Forgot NEWS entry for openssl change (rev. 1.52.2.15). 2003-07-29 09:40:04 +00:00
Ilia Alshanetsky ca50da933e MFH: Fixed a double free bug when freeing persistent streams. 2003-07-28 18:57:49 +00:00
Ilia Alshanetsky f43b7faec5 Backport virtual_realpath() from PHP5. This fixes a memory leak that would
occur inside every virtual_realpath() call.
2003-07-28 18:35:34 +00:00
Ilia Alshanetsky ba533a91c4 MFH: Make pclose() respect references. 2003-07-28 14:42:56 +00:00
foobar ae171ce2d2 MFH 2003-07-28 10:44:59 +00:00
Zeev Suraski 97662dc30e Fix nameclash with NSAPI API 2003-07-28 07:28:55 +00:00
Ilia Alshanetsky fc8b10cf71 MFH: Fixed bug #13142 (strtotime not handling "M d H:i:s Y" format) 2003-07-28 04:02:55 +00:00
SVN Migration a6901dc7ba This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-07-28 04:01:33 +00:00
Ilia Alshanetsky 7297a2b02e MFH: Fixed bug #24557 (make fclose() respect refcount on the resource). 2003-07-27 18:46:03 +00:00
Ilia Alshanetsky a4d484b478 MFH: Fixed bug #24827 (ob_gzhandler overrides Vary header) 2003-07-27 18:16:47 +00:00
Marcus Boerger d3399f8f25 MFH: Do show skipif's info 2003-07-27 16:59:04 +00:00
foobar 5b1dd1818c some missing static with internal funcs. 2003-07-25 12:45:05 +00:00
foobar 04e9bdd516 MFH 2003-07-25 12:16:04 +00:00
Edin Kadribasic f5c49771df Export symbols needed for shared extensions. 2003-07-25 11:27:39 +00:00
foobar 7759a36327 Fix BFN, this was really MY patch that fixed it. :-p 2003-07-25 09:47:06 +00:00
Harrie Hazewinkel fb51a889f4 Adding bugfix. 2003-07-25 07:36:42 +00:00
Harrie Hazewinkel facd6c20c8 Bug 24760 fix, in which the port number when non-default is not handled
correctly and ends up as the default port. This seems to be caused by
some buffer overflow where the port number is assign zero, even though
it it is not assigned to the port variable.
Fix was reported and a fix proposed by "chuck+php at 2003 dot snew dot com"

(Bugfixing branch)
2003-07-25 07:32:39 +00:00
Moriyoshi Koizumi 5e0da82b7f MFH(r-1.168): fix run-test.php so it can correctly handle skip conditions. 2003-07-25 05:52:26 +00:00
Jason Greene 9dbbc057c5 MFH: fix for #24629 2003-07-25 01:50:09 +00:00
foobar 886184c38e keep the style.. 2003-07-24 19:58:30 +00:00
Uwe Schindler 3da82597bb revert the shitty whitespace patch... 2003-07-24 19:16:25 +00:00
Uwe Schindler c2de8f4282 put $Id:...$ in readme 2003-07-24 17:46:57 +00:00
Ilia Alshanetsky 0ea41bf2b1 MFH:
When encountering a test that users GET/POST make run-tests.php
  use CGI sapi if it is avaliable.
  If CLI sapi is not avaliable print a clear error when make test
  is executed.
2003-07-24 17:45:15 +00:00
Uwe Schindler 7e3fa7bd59 MFH: Possibility to use php4_execute to display server error pages or directory listing pages 2003-07-24 17:42:40 +00:00
Wez Furlong cf9cec3562 BFN 2003-07-24 15:25:14 +00:00
Wez Furlong e680c28694 MFH: Fix for #24629 2003-07-24 15:23:14 +00:00
foobar 8db0c60f58 BFN 2003-07-24 10:50:49 +00:00
foobar fba6b0da53 MFH 2003-07-24 10:42:17 +00:00
foobar 916627208c MFH 2003-07-24 10:25:34 +00:00
SVN Migration 8da6929e93 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-07-24 10:25:16 +00:00
foobar 385db5abbd MFH 2003-07-24 10:13:44 +00:00
SVN Migration fd4d2df3e6 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-07-24 10:13:18 +00:00
foobar 7076a84b83 - No OnUpdateLong in this branch. 2003-07-24 09:15:05 +00:00
Zeev Suraski 957fcfac4b MFH fix for bug #19613 2003-07-24 08:04:20 +00:00
foobar 77ec263329 MFH: missing cvs Id tags, proto fixes 2003-07-24 02:53:46 +00:00
foobar d496c5f4a5 - MFH: Sync to HEAD (TSRMLS_FETCH() nukes, pval -> zval, php_error_docref) 2003-07-24 02:47:11 +00:00
foobar 372fe3128c nitpicking again :) 2003-07-24 01:56:06 +00:00
Ilia Alshanetsky ff8670e601 MFH: zlib fix 2003-07-24 00:03:51 +00:00
Wez Furlong 451deb0101 Fix this test, at least for Tru 64 where 1 second it just too small an
interval for the test to succeed.
2003-07-23 21:48:50 +00:00
Ilia Alshanetsky b278b99605 MFH: Fixed GLOB_ONLYDIR to work on GNU libc based system. 2003-07-23 21:41:53 +00:00
Ilia Alshanetsky 1d5ca2f45e BFN 2003-07-23 16:56:05 +00:00
Ilia Alshanetsky fc0799f0ca MFH: Removed unused variables. 2003-07-23 16:54:54 +00:00
Ilia Alshanetsky 3a43c4124f MFH: Fixed bug #24752 (Unhandled "uniqueidentifier" field type) 2003-07-23 16:53:38 +00:00
Ilia Alshanetsky d197a131db MFH: Fixed #24609 (segfault when using replace node across different docs)
Patch by: Rob Richards

# This patch somehow did not make it into 4.3.X, so on Rob's request in am
# MFHing it in.
2003-07-23 16:44:27 +00:00
Ilia Alshanetsky 7be9dcd263 BFN 2003-07-23 16:07:00 +00:00
Ilia Alshanetsky 117395ed23 MFH:
Fixed bug #23798 (Spaces were not being stripped from Bcc header)
Fixed bug #24663 (\n. sequences were not being escaped)
2003-07-23 16:03:27 +00:00
Pierre Joye 7d40544703 MFH (test #24594) 2003-07-23 15:37:47 +00:00
Pierre Joye 064e743014 MFH (#24594) 2003-07-23 15:37:14 +00:00
SVN Migration 701da1fa4d This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-07-23 00:17:30 +00:00
Marcus Boerger 224e070c74 MFH: The value might be a null pointer 2003-07-22 22:06:05 +00:00
Ilia Alshanetsky c1dc317791 BFN 2003-07-22 16:07:01 +00:00
Ilia Alshanetsky add133a4c6 MFH: r1.196: mysql_fixes 2003-07-22 16:06:09 +00:00
Zeev Suraski 383d813dd9 Fix potential crash (zend_hash_get_current_key_ex() doesn't touch the string arguments if
the key is not a string!)
2003-07-22 15:46:48 +00:00
Edin Kadribasic 9a53d1b4fe New curl lib needs additional libs to link (#24725) 2003-07-22 12:34:38 +00:00
Sascha Schumann 2fe43e8af8 fix typo, shorten line 2003-07-22 01:39:52 +00:00
Ilia Alshanetsky f55e1330d5 BFN + proper credit for session bug fix. 2003-07-22 01:35:02 +00:00
Ilia Alshanetsky 9e09a7c02b MFH: r1.165 safe_mode patch 2003-07-22 01:32:21 +00:00
Sascha Schumann 07b9f0c1d5 Proper fix for #24592
The core issue is that undefined variables are refcounted (refcount != 0)
while is_ref is still set to 0.  I don't know whether this is a bug in
the engine, but is it not the first time this irregularity has caused
problems for the session extension.

The irregularity confused ZEND_SET_SYMBOL_WITH_LENGTH which then did
the wrong thing WRT null values.

Fortunately, nulls can simply be ignored in this case, thus the old
code is restored and a new condition is added.
2003-07-22 01:10:30 +00:00
Ilia Alshanetsky 61fc0ba6b2 MFH: Fixed bug #24592 (Possible crash in session extnsion, with NULL values). 2003-07-21 21:49:52 +00:00
SVN Migration 10bb058051 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-07-21 21:47:53 +00:00
Uwe Schindler 7ba06d0145 some code cleanups 2003-07-21 14:20:30 +00:00
foobar 1b48b07ee4 nitpicking right from the start.. :) 2003-07-21 14:03:42 +00:00
Ilia Alshanetsky e941298e55 MFH: Fixed bug #24560 (parse_url() incorrectly handling certain file://
based schemas).
2003-07-21 13:37:10 +00:00
foobar be2763d13d expat upgrade news 2003-07-21 08:43:27 +00:00
foobar ef440f1b4e - Upgraded bundled Expat library to 1.95.6 (Jani)
# Fixes bug #20442 (and possibly others not reported to us)
2003-07-21 08:42:49 +00:00
foobar d990e2881b MFH 2003-07-21 08:27:47 +00:00
foobar 0c4cf5aff2 - CURLOPT_ENCODING is always defined, check the version instead. 2003-07-20 15:19:39 +00:00
foobar 38b3ef790b MFH: missing CVS Id tags and license headers 2003-07-20 10:54:03 +00:00
foobar fd7bb0b3da extra period :) 2003-07-19 15:37:08 +00:00
Moriyoshi Koizumi 2298aaef75 BFN 2003-07-19 15:11:12 +00:00
foobar 123a5c20d8 MFH 2003-07-18 12:29:54 +00:00
foobar d60fc0981b MFH: test case for bug #24573 2003-07-18 12:25:09 +00:00
SVN Migration 70491a7ea0 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-07-18 12:24:50 +00:00
foobar 0b49f0bea0 BFN 2003-07-18 12:19:17 +00:00
foobar 33108da1d0 BFN 2003-07-18 09:28:53 +00:00
Sergey Kartashoff 1674a79e11 - UDM_PARAM_SORT_ORDER has been added in Udm_Set_Agent_Param while
using with mnogosearch-3.2.14+ to set order of search results.
2003-07-18 09:15:09 +00:00
Sergey Kartashoff 6f581e803c - Coredump in Udm_Find was fixed. 2003-07-18 08:48:34 +00:00
foobar 9c7d125108 removed the extra CVS Id tag. 2003-07-18 01:40:50 +00:00
foobar 5fc1090dbe MFH: Fixed bug #24640 (var_export and var_dump can not output large float). (Marcus) 2003-07-18 01:37:44 +00:00
Marcus Boerger 2057041621 BFN 2003-07-17 22:23:16 +00:00
Marcus Boerger 3cadadee34 MFH 2003-07-17 22:14:44 +00:00
SVN Migration 660d1fe292 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-07-17 21:02:45 +00:00
Marcus Boerger d3cc1a3186 MFH: Fix handling of empty settings 2003-07-16 20:56:06 +00:00
Sebastian Bergmann 274237f4d2 MFH: /libpath directives for zlib 2003-07-16 14:50:26 +00:00
foobar 602241f936 bfn 2003-07-16 08:47:49 +00:00
foobar 7880b84ba7 MFH: Fixed bug #22690 (ob_start() broken with create_function() callbacks). (Marcus) 2003-07-16 08:45:31 +00:00
foobar e9c4ca1b61 MFH 2003-07-16 06:04:01 +00:00
foobar c0bc7b6c80 MFH: this is internal function -> static 2003-07-16 05:47:56 +00:00
foobar 0934f19c69 MFH 2003-07-16 05:46:46 +00:00
foobar 41441e017a MFH 2003-07-16 05:16:49 +00:00
foobar 1277a79544 Update credits. 2003-07-16 05:15:07 +00:00
foobar ce527f42cd Fix the credits (partial MFH) 2003-07-16 05:14:35 +00:00
foobar edb801394b MFH 2003-07-16 04:54:55 +00:00
foobar c40e1cbbfc MFH 2003-07-16 00:39:33 +00:00
SVN Migration faff0dbd45 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-07-16 00:38:55 +00:00
Uwe Schindler dff2f35098 MFH: safe mode fix 2003-07-15 22:19:23 +00:00
Uwe Schindler 261429dc52 MFH: Make virtual() an alias for nsapi_virtual() -- better for docs/naming in future 2003-07-15 17:31:03 +00:00
Hartmut Holzgraefe 2db6b7e8f1 MFH 2003-07-15 17:28:54 +00:00
Hartmut Holzgraefe 9aa1cce146 MFH 2003-07-15 17:05:03 +00:00
foobar 8c766b9670 MFH 2003-07-15 07:06:52 +00:00
Edin Kadribasic 0777e6062c BFN 2003-07-14 23:25:24 +00:00
Edin Kadribasic 8d4a2eabb8 Fixed bug #24949. 2003-07-14 23:20:01 +00:00
foobar 2a836845c8 MFH 2003-07-14 16:23:28 +00:00
foobar 5c4f19b7c5 - Sync with HEAD. (php_error -> php_error_docref, proto fixes, code cleanup) 2003-07-14 16:13:30 +00:00
foobar 63a8f46dda Bump year to 2003 2003-07-14 16:02:32 +00:00
foobar 3d972fcc0e Year update 2003-07-14 15:59:18 +00:00
Rui Hirokawa d69e7b6d04 fixed a typo. 2003-07-14 13:31:44 +00:00
Wez Furlong f0623f78eb less WTF factor 2003-07-14 10:43:51 +00:00
foobar 2891206718 MFH 2003-07-14 03:58:59 +00:00
Moriyoshi Koizumi c4ab6c2cad MFH: fixed leaks that occurs if the third parameter already contains a valid
value.
2003-07-13 19:46:39 +00:00
Stefan Roehrich 56b4205f38 MFH: fixed certificate version, serial number not always 0. 2003-07-13 10:13:24 +00:00
SVN Migration 35b40bdb2a This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-07-13 08:03:47 +00:00
Rui Hirokawa 63289837ae added strict detection mode in mb_detect_encoding to detect corrupted byte sequence. 2003-07-13 07:34:28 +00:00
Martin Jansen 439596bce5 * MFH 2003-07-12 15:18:02 +00:00
Moriyoshi Koizumi f725d7b180 MFH(r-1.393): fixed bug #24556 2003-07-12 09:33:58 +00:00
foobar 933ef3298a MFH 2003-07-11 07:49:10 +00:00
Frank M. Kromann 16b3e1e406 Sync protos with HEAD 2003-07-11 06:04:43 +00:00
Frank M. Kromann d560e58711 Allow the use of both ming 0.2a and 0.3a (API\s changed) 2003-07-11 05:54:45 +00:00
foobar 29a8e606f3 BFN 2003-07-11 04:32:31 +00:00
foobar b4f086b52a BFN 2003-07-11 04:30:40 +00:00
foobar cf33623715 BFN 2003-07-11 04:24:37 +00:00
foobar 894e2f15f0 MFH: Fixed bug #21074 (Apache2: "ErrorDocument xxx /error.php" broken). 2003-07-11 04:24:11 +00:00
foobar e7175cbecf MFH: Fixed bug #17291 (mssql_query does not update get_last_message) (patch by: mgruetzner at rw3 dot com) 2003-07-11 02:08:38 +00:00
foobar 241945e11f MFH: sync 2003-07-11 01:57:39 +00:00
foobar 1aecd0f1ff MFH: Use the proper way to get the max requests per child. 2003-07-10 22:45:34 +00:00
foobar 9cb84b6351 MFH: Fixed bug #24563 (preg_match() crashes PHP under Apache2) 2003-07-10 16:09:43 +00:00
Frank M. Kromann cc68ee790e Adding missing compression paramters to output functions 2003-07-10 05:07:46 +00:00
foobar e786476701 MFH: revert previous patch, it was not correct. 2003-07-10 01:40:10 +00:00
foobar a48ac52a7d MFH: Fix crash bug 2003-07-10 01:17:46 +00:00
foobar 9e33cdb499 MFH: Fixed bug #11924 (ibase_query() and ibase_execute() mangled passed parameters) 2003-07-10 00:17:40 +00:00
Pierre Joye 5de9ca91cb - MFH 2003-07-10 00:11:11 +00:00
foobar f2d8bb4c38 Fixed bug #24519 (aggregate_methods_by_list() does not increment refcount) 2003-07-09 23:16:21 +00:00
Frank M. Kromann bd719279db oops. fix spelling 2003-07-09 22:38:36 +00:00
Frank M. Kromann 4f16113988 Adding missing MSSQL Server ini settings 2003-07-09 22:36:28 +00:00
Jay Smith fb79cfb853 MFH: - fixed bug #24548 (get_browser() does not return platform) 2003-07-09 18:51:18 +00:00
Brad House 1a0e3b62e2 bugfixes: typecasting issues. don't assume long and int are the same size, as they are not on 64bit architectures. New CONSTANTS were not cast at all yet. MC_TTID was cast as a long, when it should have been a MCVE_int64 (normally long long). 2003-07-09 13:48:33 +00:00
Edin Kadribasic af30033599 How did this get uppercased ;) 2003-07-09 11:08:51 +00:00
Edin Kadribasic b6c6a8db3a For Pierre-Alain Joye. 2003-07-09 11:07:27 +00:00
Pierre Joye 07b70c743c - MFH 2003-07-09 10:43:01 +00:00
Pierre Joye ca7ad2ff2c - MFH 2003-07-09 10:38:22 +00:00
Pierre Joye 79e4f5a47f - MFH 2003-07-08 20:39:46 +00:00
foobar 2be22abf64 MFH 2003-07-08 14:13:10 +00:00
Sergey Kartashoff 2fafe59ed2 - Output of UDM_PARAM_WORDINFO_ALL was fixed 2003-07-08 14:00:58 +00:00
foobar 3687e5e953 MFH: - Fixed bug #24537 (apache2 compile missed include directories) 2003-07-08 13:54:14 +00:00
Sergey Kartashoff 4c1c759343 - Udm_Find function is fixed to be compatible with mnogosearch-3.2.13 2003-07-08 13:27:30 +00:00
Derick Rethans ef32b131ce - MFH: Fixed email addresses 2003-07-08 09:44:34 +00:00
Wez Furlong 792645aa6f update activescript info 2003-07-08 09:12:00 +00:00
Wez Furlong 8055bab946 Fix leak when loading constants from a type-library. 2003-07-08 09:10:42 +00:00
Sascha Schumann 19928d2509 grep -E -> egrep 2003-07-08 05:35:48 +00:00
Brad House c0f72d9fac update mcve ext from HEAD. Sync with libmcve-3.2 functionality 2003-07-08 03:16:39 +00:00
foobar 77b6cdb7dd Missing entries 2003-07-07 22:51:27 +00:00
foobar f71e66e50d MFH 2003-07-07 22:51:16 +00:00
Moriyoshi Koizumi 71461f74b2 MFH(r-1.9): updated test so it won't fail if the extension has been built with
libiconv
2003-07-06 21:45:00 +00:00
Moriyoshi Koizumi dfbeb6b786 oops again.. 2003-07-06 21:12:59 +00:00
Moriyoshi Koizumi 3e1affd647 MFH(r-1.22, r-1.90, r-1.18): avoid miscellaneous conflicts between glibc's
iconv and libiconv.
2003-07-06 21:11:51 +00:00
Moriyoshi Koizumi 1ba9226cb5 MFH(r-1.17): added missing includes 2003-07-06 18:09:21 +00:00
Jon Parise 7f2c03ed0e Upgrade the bundled Mail package to 1.1.1 (1.1.0 was a bit broken). 2003-07-05 21:47:09 +00:00
Hartmut Holzgraefe 251b1ad96b MFH 2003-07-04 15:07:56 +00:00
Hartmut Holzgraefe c8e7bc0542 MFH 2003-07-04 14:40:22 +00:00
SVN Migration ab3957bda7 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-07-04 14:38:08 +00:00
Pierre Joye 5320379dc0 - Fix broken installer 2003-07-04 11:04:07 +00:00
Sascha Schumann f6b36353a6 Quote all instances of ) when used in case..esac constructs
Some m4 versions appear to drop these when certain macros are used
recursively.
2003-07-03 22:54:07 +00:00
Frank M. Kromann e5523b4954 Change fetch functions and protos so they make more sense.
fetch_row or fetch_assoc should  not take the optional parameter
2003-07-03 16:47:10 +00:00
Moriyoshi Koizumi de9f401877 MFH(r-1.56): added missing protos 2003-07-03 15:39:51 +00:00
Marcus Boerger 46fd530566 MFH: Fix open mode (noticed by FutureQuest, Inc.) 2003-07-03 11:23:27 +00:00
Uwe Schindler b6b4369972 fix typo 2003-07-02 22:40:13 +00:00
Moriyoshi Koizumi 3aeaad418f MFH(r-1.4, r-1.2): s/cvs/csv/ 2003-07-02 17:09:26 +00:00
foobar b2bedbf40e BFN 2003-07-02 14:05:44 +00:00
Uwe Schindler 62ef1e2857 Prevent user from making nested PHP requests with virtual() 2003-07-02 13:37:39 +00:00
Pierre Joye 0d03073c89 - tabs... 2003-07-02 11:33:35 +00:00
Pierre Joye 1ebbe4d551 - MFH 2003-07-02 11:24:52 +00:00
Pierre Joye 1d14341231 - MFH 2003-07-02 10:38:09 +00:00
Sascha Schumann b4c03fb0a9 Always store temporary information in LDFLAGS
This also avoids use of PHP_RUN_ONCE which caused some config.m4s to fail.
2003-07-02 03:03:41 +00:00
foobar 9eeb62c4a3 MFH: Be more verbose about what is installed (and in CGI case, WHERE) 2003-07-02 02:48:16 +00:00
Ilia Alshanetsky 116f2fa00a MFH: crash fix 2003-07-02 02:04:22 +00:00
Sascha Schumann d6fbae0c27 Fix install-sapi dependency - it should depend on OVERALL_TARGET, of course. 2003-07-02 01:06:29 +00:00
Sascha Schumann 6c37499531 Make PHP_CHECK_LIBRARY use PHP_EVAL_LIBLINE which automatically
eliminates /usr/lib references
2003-07-01 23:54:44 +00:00
foobar 7a92fe4c4c MFH: Separate CGI install from install-sapi. 2003-07-01 17:03:55 +00:00
foobar 986b654098 MFH 2003-07-01 16:20:53 +00:00
foobar ef7c1af78d MFH: Added --help to phpize 2003-07-01 15:55:27 +00:00
foobar 2a8c1bb255 MFH 2003-07-01 13:34:04 +00:00
Corne' Cornelius ef2d599f45 - Removed unlink() from php_intifx_create_blob() and replaced with a php_copy_file() 2003-07-01 12:37:12 +00:00
Corne' Cornelius 627c9515b1 - Fxied bug in php_intifx_init_blob_infile() where blob.loc_loctype wasn't set 2003-07-01 10:56:17 +00:00
Edin Kadribasic fc846109ba Some more cvs cleanup 2003-07-01 08:10:33 +00:00
Edin Kadribasic 5775569f18 Touch 2003-07-01 08:08:43 +00:00
Sascha Schumann 55b41157cf properly restart syscalls 2003-07-01 05:28:53 +00:00
Sascha Schumann 5ba98ed5d3 MFH
(jason) Prevent lines following the version output from confusing
the version test
2003-07-01 04:25:32 +00:00
foobar 69e0f3bf48 MFH: Fixed bug #24025 (Can not build with shared ldap support) 2003-07-01 00:02:29 +00:00
Shane Caraveo 97422095ed MFH 2003-06-30 21:10:33 +00:00
Marcus Boerger 40acbc1ea5 MFH: Do not test postgres settings 2003-06-30 18:00:55 +00:00
Sergey Kartashoff 94a9447396 - A memory leaks at UdmCatPath and UdmCatList functions have been fixed. 2003-06-30 17:44:20 +00:00
foobar 8229beefa4 MFH 2003-06-30 17:30:47 +00:00
SVN Migration 6a62b9d5b7 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-06-30 17:30:17 +00:00
foobar bf6c5ff7c1 minor correction. :) 2003-06-30 13:37:43 +00:00
Andrei Zmievski e6177356ec *** empty log message *** 2003-06-30 13:28:20 +00:00
Ilia Alshanetsky 53b384c01d MFH: fix for bug #24063 2003-06-30 01:05:02 +00:00
SVN Migration b66f3b08bb This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-06-30 01:03:22 +00:00
Edin Kadribasic 92e30ad3df Fixed win32 build 2003-06-30 00:44:03 +00:00
Edin Kadribasic 17e89935c4 Winsock2 doesn't seem to work in PHP_4_3 2003-06-29 23:59:20 +00:00
Edin Kadribasic 04ced9d63d Fixed CVS screw-up leftovers 2003-06-29 23:49:39 +00:00
Edin Kadribasic 555173a263 MFH: extensions like imap need this exported 2003-06-29 23:29:49 +00:00
foobar 54391bb2ca reorder 2003-06-29 23:02:33 +00:00
Shane Caraveo ea0f710586 stuff 2003-06-29 21:37:11 +00:00
Shane Caraveo 5a2899b78e MFH
renable -b option (removed when longopts were added)
dissable -b on windows due to fastcgi lib bug
close stdin on linux when using socket server (bug 23664)
2003-06-29 20:45:53 +00:00
Shane Caraveo f26cc7bcd4 MFH
fix bug http://bugs.php.net/bug.php?id=24009
also do not use APPL_PHYSICAL_PATH as DOCUMENT_ROOT under IIS, it's
different depending on IIS configuration.  Code works fine without it, that
was just an attempt at a shortcut.
2003-06-29 20:09:56 +00:00
Pierre Joye 08bc2cde18 - Sync from head (DB 1.5RC1) 2003-06-29 19:42:57 +00:00
SVN Migration a5d361d9c4 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-06-29 19:40:14 +00:00
Ilia Alshanetsky 96d4171df7 Fixed bug #24340 (basename failure win32 with containing both \ and /) 2003-06-29 15:36:10 +00:00
foobar fd2aaa768a MFH: Fixed bug #24363 (plain "./configure && make install" failed) 2003-06-29 06:04:04 +00:00
foobar 24f73838f2 Note about PCRE upgrade 2003-06-29 02:08:16 +00:00
Andrei Zmievski 2b97f7ce7b - Added a new parameter to preg_match_* functions that can be used to
specify the offset to start matching from.
- Added support for named subpatterns.
2003-06-29 00:08:30 +00:00
Martin Jansen e7e577e05d * MFH: Silence warning 2003-06-28 18:15:35 +00:00
Sascha Schumann 52bdfd3dca Fix snprintf test.
C99 allows for the Single Unix Spec semantics which prescribe a return
value of -1 for n == 0 which is treated as an encoding error.
This reenables use of snprintf on Solaris at least.

Relevant excerpts from ection 7.19.6.5:

    Description

    [..] If n is zero, nothing is written, and s may be a null pointer. [..]

    Returns

    The snprintf function returns the number of characters that would have been
    written had n been sufficiently large, not counting the terminating null
    character, or a negative value if an encoding error occurred.

Single Unix Spec:

http://www.opengroup.org/onlinepubs/007908799/xsh/fprintf.html
2003-06-28 12:29:07 +00:00
Rui Hirokawa 0e29833fc7 deleted code for debuging. 2003-06-28 11:00:37 +00:00
Rui Hirokawa 92c07fbccc Fixed corruption of multibyte character including 0x5c as second
byte in multipart/form-data.
2003-06-28 08:51:05 +00:00
Ilia Alshanetsky bc3d6e90fa MFH: Added missing handling of dateTime 2003-06-28 06:59:31 +00:00
SVN Migration 056e268cb3 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-06-28 06:55:48 +00:00
Sascha Schumann 50eb9f576a Serialize headers for systems with low IOV_MAX (e.g. Solaris) 2003-06-27 18:40:55 +00:00
foobar 0db5048d6a MFH 2003-06-27 16:42:51 +00:00
Sebastian Bergmann eed604dce5 libpcre 4.X needs POSIX_MALLOC_THRESHOLD to be defined. 2003-06-27 16:42:49 +00:00
Sara Golemon 97b55a966d Plug the last (hopefully) of the PHP4 context leaks. This one regarding notifier->ptr 2003-06-27 16:16:46 +00:00
Andrei Zmievski 8d5a034c9d Upgrading PCRE library to version 4.3 2003-06-27 14:47:55 +00:00
Sascha Schumann de6e5e315d undefine macros before defining them 2003-06-27 07:43:05 +00:00
Sascha Schumann 8a44b6f251 Try to link the getaddrinfo test, so that one can disable it using
-Dgetaddrinfo=NO_getaddrinfo.
2003-06-27 07:07:03 +00:00
Sara Golemon e6770d6361 Plug *half* a leak in context notifiers.
We still need a check and zval_ptr_dtor(&context->notifier->ptr); in the
php_stream_context_free function, but since ptr is supposed to be a general
purpose container we need to define how that will be done.
2003-06-27 03:40:55 +00:00
Sara Golemon e5d8e11306 MFH: Plug memory leaks when freeing contexts (particularly options) 2003-06-27 01:46:30 +00:00
Sara Golemon 821b603ec2 MFH streamsfuncs.c r-1.22 2003-06-27 01:32:26 +00:00
Sascha Schumann 34363d77db MFH Don't add -L/usr/lib 2003-06-27 00:37:53 +00:00
Sascha Schumann 7a8260d5e0 Eliminate need for automake/aclocal 2003-06-27 00:19:26 +00:00
foobar 1f1d49bbd6 Fixed bug #24261 2003-06-26 18:06:46 +00:00
Pierre Joye 0e82616ea6 - reapply the fix about binary safe write mode (fix multiple sapi bug) 2003-06-26 14:38:04 +00:00
Pierre Joye 9a68a887f0 - MFH 2003-06-26 08:45:51 +00:00
foobar f2b405924d - Crap removal. 2003-06-25 23:09:12 +00:00
Ilia Alshanetsky eee7417f1f Missing bit of the previous patch. 2003-06-25 18:06:56 +00:00
Ilia Alshanetsky db48c076a6 Added sqlite_single_query() function
Fixed a typo in sqlite_array_query() that prevented the acceptance of the
decode_binary parameter.
2003-06-25 17:02:56 +00:00
SVN Migration 5a15aee0e0 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-06-25 16:59:25 +00:00
Edin Kadribasic d67afcc9c1 Fixed win32 build 2003-06-25 13:21:54 +00:00
Sascha Schumann b09f475602 make ze1/ze2 coexist 2003-06-25 13:00:46 +00:00
foobar c4e6c0aa83 BFN 2003-06-24 18:00:13 +00:00
Ilia Alshanetsky e459214613 MFH: Fixed bug #24312 (base64_decode() does not skip 0xF0-0xFF characters) 2003-06-24 15:26:10 +00:00
SVN Migration 3dbe3deb64 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-06-24 15:23:18 +00:00
Ilia Alshanetsky 701c81c7d1 MFH: typo fix. 2003-06-24 14:36:18 +00:00
Ilia Alshanetsky 557fd9b7a3 MFH: Fixed bug #24313 (file_exist() warning on non-existent files when
open_basedir is used).
2003-06-24 13:44:57 +00:00
Sascha Schumann ae3de7f0c0 Test commit 2003-06-24 01:03:07 +00:00
Ilia Alshanetsky 43b0c8adea Fixed a crash inside sqlite_array_query() when invalid query
is specified.
2003-06-23 19:30:42 +00:00
Pierre Joye c70f036024 - MFH packages 2003-06-22 20:11:27 +00:00
Ilia Alshanetsky d74a72d580 MFH: Fixed bug #24284 (Fixed memory leak inside pg_ping()) 2003-06-22 16:48:16 +00:00
Marcus Boerger 40d758b019 MFH: Fix possible SEGV 2003-06-22 15:55:31 +00:00
Wez Furlong b390e0ebf1 Don't raise two warnings when connection attempt failed. 2003-06-22 10:07:20 +00:00
Harrie Hazewinkel ab2ea18cb5 Applying the contributed patch of Johan hanne.
The patch enables control on the way the values are returned
into the PHP script, instaed of always strings. Also the type
of the value is now returned when configured to do so.
This enables better management scripts to do more automatic
processing and value calculations.
2003-06-21 21:50:01 +00:00
SVN Migration ea33b2824e This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-06-21 13:50:44 +00:00
Derick Rethans 140e562446 - MFH: Test for bug #17115 2003-06-21 12:05:45 +00:00
Ilia Alshanetsky 9209328fd3 Fixed bug #24253 (missing variables when register_globals is on)
Fixed a memory leak when more then 1 E|S flag is passed to gpc_order.
Fixed a memory leak when variables_order is not set and gpc_order has S|s
flag.
Optimized out duplicate parsing of the variables order string.
2003-06-20 17:00:16 +00:00
Sara Golemon 35938e4d90 MFH (r-1.391) When skipping blank searchvals we should advance the corresponding replace hash as well 2003-06-20 15:44:48 +00:00
Ilia Alshanetsky 316d124ec4 Added missing safe_mode checks 2003-06-19 22:18:58 +00:00
Wez Furlong b1f59b4703 Tidy up getaddrinfo() code so that it can handle broken ipv6 stacks and only
returns TCP addresses for TCP and UDP addresses for UDP requests respectively.

Also, when a connect call "returns" EINPROGRESS and the full timeout limit
has not yet been reached, retry the select with the remaining time interval.
This is a potential fix for Bug #21653.

# Note: atm, the fix is Linux specific; will do some more work to make this
# portable at the weekend.
2003-06-19 22:11:39 +00:00
Ilia Alshanetsky 08ce3d0ed5 MFH (possible streams crash) 2003-06-19 16:43:41 +00:00
Ilia Alshanetsky e39472c606 MFH: Fixed memory leak, when invalid context is specified. 2003-06-19 16:35:29 +00:00
Ilia Alshanetsky 3924c1eabf Fixed a possible crash in parse_context_options() 2003-06-19 16:10:37 +00:00
Marcus Boerger 929ab8b529 MFH: Allow the extension to reside elsewhere 2003-06-19 15:48:18 +00:00
Ilia Alshanetsky da55120b84 MFH: Fixed a crash inside php_imagettftext_common(); 2003-06-19 15:48:09 +00:00
foobar b1c0e42d00 - Added the 'header'. These 4.3.3RCx sections will be combined for the
final release, 4.3.3. just added them now to keep better track on changes
  between the RCs.
2003-06-18 23:24:13 +00:00
Pierre Joye b694edc23d MFH 2003-06-18 22:32:04 +00:00
foobar 0fe951a702 - Go to RC2-dev. 2003-06-18 22:04:41 +00:00
foobar 4cf62ff62c Correct version info. 2003-06-18 22:02:28 +00:00
foobar c6647fc0bf - Go with PHP 4.3.3RC1 2003-06-18 21:59:59 +00:00
foobar 50b17c0f7d This broke more than fixed. Fixes e.g. max_input_time. 2003-06-18 21:58:07 +00:00
foobar a0853a17ed MFH: Fixed bug #24231: ext/sybase_ct could not be build as shared 2003-06-18 18:29:04 +00:00
Rob Richards 35888b62f4 Fix for bug #24219 segfault during resource destruction
Used bug fix to optimize free_doc routine
2003-06-18 17:43:34 +00:00
Ilia Alshanetsky 6b74250915 MFH 2003-06-18 15:19:28 +00:00
Rasmus Lerdorf 1269ac0661 variables_order needs to include S for both of these to work 2003-06-17 22:32:51 +00:00
Ilia Alshanetsky a2f0a9c380 MFH: Handle numeric keys passed via GPC 2003-06-17 17:15:16 +00:00
Pierre Joye 434926a39e MFH,(4.3.3RC1) 2003-06-17 17:13:19 +00:00
foobar 4ccbb1b867 BFN 2003-06-17 15:53:33 +00:00
Ilia Alshanetsky 02af1ac144 MFH 2003-06-17 14:13:25 +00:00
Ilia Alshanetsky 1b747da374 MFH 2003-06-17 13:59:56 +00:00
Ilia Alshanetsky f82e06d4f8 MFH 2003-06-17 13:38:38 +00:00
Ilia Alshanetsky 7812b45b36 MFH: Fixed bug #24223 (missing variable initialization in bundled gd) 2003-06-17 13:37:57 +00:00
Ilia Alshanetsky 09c034c096 BFN 2003-06-17 13:20:54 +00:00
Ilia Alshanetsky 7473ff4698 Fixed bug #24220 (range() didn't handle numeric strings correctly) 2003-06-17 13:20:18 +00:00
SVN Migration 03468f3079 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-06-17 13:19:21 +00:00
foobar 138a1157ee MFH: Fixed bug #24207: phpize wrong exit code 2003-06-16 21:44:54 +00:00
foobar a63c981d70 broken caps-lock/shift key 2003-06-16 21:38:07 +00:00
Sara Golemon 9888224208 BFN 24210 2003-06-16 20:22:23 +00:00
Sara Golemon 33ba2503c6 MFH (r-1.14) Bug #24210 : assume misspelled (and thereby not found during configure) 2003-06-16 20:17:13 +00:00
foobar a9eea29b84 MFH 2003-06-16 20:00:11 +00:00
Ilia Alshanetsky c21de1dbe5 MFH: Fixed bug #24208 2003-06-16 19:25:06 +00:00
Sascha Schumann 6b8d3f6b01 Simplify/fix logging 2003-06-16 19:11:44 +00:00
Moriyoshi Koizumi e2ff71d2dd MFH(r-1.1): added test case for bug #24208 2003-06-16 19:10:48 +00:00
SVN Migration 36097f68a0 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-06-16 19:10:13 +00:00
Sascha Schumann 20088e34b5 Remove cast which hides a bug in the code. 2003-06-16 19:05:37 +00:00
Derick Rethans ad24ef01de - MFH: Added test for bug #24142 2003-06-16 17:50:49 +00:00
SVN Migration 304a39c793 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-06-16 17:50:08 +00:00
Ilia Alshanetsky 338ad09a44 Bug fixing news. 2003-06-16 17:43:11 +00:00
Ilia Alshanetsky 015712b9f1 MFH: Fixed bug #24150 (crash in imap_fetch_overview() &
imap_rfc822_write_address())
2003-06-16 17:42:04 +00:00
Ilia Alshanetsky 11cb016d39 MFH: Fixed bug #24198 (Invalid recursion detection in array_merge_recurcive()) 2003-06-16 17:37:15 +00:00
SVN Migration 327e5834d5 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-06-16 17:35:17 +00:00
Ilia Alshanetsky c984c80a7d Hopefully fix win32 build 2003-06-16 12:33:52 +00:00
Daniela Mariaschi fe43729707 proto fixes ibase_rollback and ibase_commit 2003-06-16 10:47:35 +00:00
Ilia Alshanetsky 54cee9cd1f MFH: compiler warnings 2003-06-16 03:07:08 +00:00
foobar ad98994e4a missing entries, cleanup 2003-06-15 21:59:03 +00:00
Marcus Boerger 87c57062c4 Remove that old thing 2003-06-14 19:27:01 +00:00
Edin Kadribasic 180e604534 Fixed win32 build 2003-06-14 18:51:17 +00:00
Sergey Kartashoff 47f2fb1832 @- Mnogosearch extension updated. Now can compile with mnogosearch-3.2.11+
- Mnogosearch extension updated. Now can compile with mnogosearch-3.2.11+
2003-06-14 18:45:26 +00:00
Daniela Mariaschi 96d9102630 MFH: Added IBASE_REC_VERSION/IBASE_REC_NO_VERSION transaction constants 2003-06-14 17:46:33 +00:00
Ilia Alshanetsky f6f08969d1 Bug fixing news 2003-06-14 15:09:26 +00:00
Ilia Alshanetsky 676b4c0362 MFH: Fixed bug #24007 (Problem with register_globals & arrays) 2003-06-14 15:08:37 +00:00
foobar a789f6bb85 MFH 2003-06-14 14:33:11 +00:00
foobar 1e71ec7613 MFH 2003-06-14 12:58:18 +00:00
Frank M. Kromann b3af6c9da5 Updating email address 2003-06-14 03:37:30 +00:00
foobar 0ce220d77a it rains here.. 2003-06-13 14:56:37 +00:00
Ilia Alshanetsky dc1f25d6fb proto 2003-06-13 14:56:23 +00:00
Andrey Hristov e8c057e33f proto fixes 2003-06-13 14:53:13 +00:00
Ilia Alshanetsky 80c568bb30 Bug fixing news. 2003-06-13 14:47:11 +00:00
Ilia Alshanetsky e6b637cd72 MFH:
Fixed bug #24161 (No timeout value for imap functions)
	Fixed bug #22505 (Allow imap_sort() and imap_search() to specify a charset)
2003-06-13 14:45:36 +00:00
Andrey Hristov 10228f3bb8 proto fix
and ws
2003-06-13 14:40:01 +00:00
Sascha Schumann e783c0b5a1 Fix test 2003-06-13 09:17:52 +00:00
foobar 626f3de608 MFH, fixed the test (second session init produces a notices) 2003-06-13 09:16:49 +00:00
Marcus Boerger 4cc45a7ba9 MFH: Bugfix #2397: dba_open locking error with db3 2003-06-12 19:55:16 +00:00
Ilia Alshanetsky 1c7f16c742 MFH: Fixed bug #24155 (gdImageRotate270 incorrectly use x parameter for y axis) 2003-06-12 19:33:19 +00:00
SVN Migration 60211ee3b3 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-06-12 19:31:45 +00:00
Andrei Zmievski 68accfe5c1 test 2003-06-12 13:56:03 +00:00
Andrey Hristov 3f824c7e1e proto fixes 2003-06-12 12:51:53 +00:00
Andrey Hristov ab037ed242 proto fixes 2003-06-12 12:37:03 +00:00
Andrey Hristov 4aec010451 proto fixes 2003-06-12 12:28:30 +00:00
Andrey Hristov 9f97891939 proto fixes 2003-06-12 12:23:10 +00:00
Andrey Hristov 9c9b10f047 proto fixes 2003-06-12 11:55:01 +00:00
Andrey Hristov 5f4e664e8b proto fixes 2003-06-12 11:34:31 +00:00
Andrey Hristov 220a5cb89f proto fixes 2003-06-12 10:24:43 +00:00
Andrey Hristov 2cf200c493 proto fixes 2003-06-12 10:03:39 +00:00
Derick Rethans d042cecbd9 - HTTP Request Types are case-sensitive 2003-06-12 08:33:45 +00:00
Ilia Alshanetsky cfc8c7a95e MFH: Added missing safe_mode/open_basedir checks. 2003-06-12 01:47:28 +00:00
Ilia Alshanetsky 6c7e5d9c18 MFH: proto fix 2003-06-11 02:16:49 +00:00
Andrey Hristov 3fdf998703 proto fixes 2003-06-10 14:46:00 +00:00
Sascha Schumann babbbb048b MFH E_NOTICE 2003-06-10 03:57:16 +00:00
Wez Furlong 36c9f3116e BFN 2003-06-09 17:04:57 +00:00
Moriyoshi Koizumi 451f0b2d07 MFH(r-1.137): fixed trivial typo 2003-06-09 08:12:03 +00:00
Edin Kadribasic da10d61faa Fix for #24022 2003-06-09 00:59:08 +00:00
foobar b4aeccba6d the blame..:) 2003-06-09 00:25:26 +00:00
Ilia Alshanetsky c60c1258e2 Fixed compile warnings. 2003-06-08 23:42:47 +00:00
Georg Richter cef32b1e2f fixed a bug in libmysql 2003-06-07 16:14:04 +00:00
Georg Richter 06d67f822b fixed mysql bug #564
(see http://bugs.mysql.com/bug.php?id=564)
2003-06-07 16:12:09 +00:00
foobar 97da8ca6bb hrm.. 2003-06-06 19:30:46 +00:00
Georg Richter 11a765e77d fixed bug 24060 2003-06-06 19:13:10 +00:00
Georg Richter 52dbb39ecd fixed #24060 2003-06-06 18:50:46 +00:00
Sascha Schumann 92b1fecc92 Refine error description 2003-06-06 12:21:26 +00:00
foobar 18c269209d BFN 2003-06-06 12:18:30 +00:00
foobar 808fc0a0bf MFH 2003-06-06 11:10:14 +00:00
SVN Migration 5e852417dd This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-06-06 11:09:56 +00:00
foobar 677375c0d1 ws 2003-06-06 08:11:38 +00:00
foobar 33a47baa0f MFH 2003-06-06 06:17:11 +00:00
Ilia Alshanetsky a788378ce2 Fix compile warnings (mostly MFH from 5.0 branch) 2003-06-05 23:48:17 +00:00
foobar d3728b5fff WS 2003-06-05 05:07:15 +00:00
foobar 79dc4f7a0c BFN 2003-06-05 05:06:57 +00:00
foobar a32672c1c5 Hopefully this list grows.. 2003-06-05 04:47:07 +00:00
foobar a384966f76 MFH: fix regex issues with apache2handler 2003-06-05 04:15:03 +00:00
Andrei Zmievski fd5d1094d3 Fix a couple of aggregation bugs:
- Needed to add a reference to a function when copying (#23574)
- Due to pecularity of ZE1 object zvals could be re-used, so we always
  set the new class entry explicitly.
2003-06-04 18:57:53 +00:00
Ilia Alshanetsky a4ff44794c Updated the todo to reflect the current situation. 2003-06-04 15:03:29 +00:00
Ilia Alshanetsky e2d057bd2c MFH (dupe macro) 2003-06-04 14:58:33 +00:00
Moriyoshi Koizumi 90eb73bb9d BFN updates 2003-06-04 14:53:31 +00:00
Moriyoshi Koizumi d6245c9e69 MFH(r-1.38): fixed base64_encode() integer overflow issue pointed out in TODO_SEGFAULTS 2003-06-04 14:42:04 +00:00
Moriyoshi Koizumi e99d47a3aa MFH(r-1.87): fixed ob_iconv_handler() type mismatch issue on 64bit platforms. 2003-06-04 14:29:53 +00:00
foobar 89e4c87e57 cleanup + BFN 2003-06-04 05:54:18 +00:00
foobar 8f50a67b87 MFH: no c++ comments and extra tabs. 2003-06-04 05:46:18 +00:00
foobar 269a3ad5ad Fix build 2003-06-04 05:30:45 +00:00
Sascha Schumann 533c499b44 Don't corrupt data during request body handling 2003-06-04 05:28:00 +00:00
Sascha Schumann 39f801b957 Don't return CRLF from broken clients 2003-06-04 05:13:41 +00:00
Ilia Alshanetsky 17d28abb62 MFH 2003-06-04 00:22:30 +00:00
Sascha Schumann 9fbee0b347 clean up macros 2003-06-04 00:01:00 +00:00
Ilia Alshanetsky e83404fea2 GD stuff 2003-06-03 23:57:59 +00:00
Ilia Alshanetsky 1a65bf61a8 MFH (Syncronize bunbled GD with gd 2.0.14) 2003-06-03 23:55:15 +00:00
Ilia Alshanetsky 6443fb2581 MFH (Last set of integer overflow checks.) 2003-06-03 23:42:49 +00:00
Ilia Alshanetsky 2112f46885 MFH: Integer overflow checks. 2003-06-03 23:23:25 +00:00
Edin Kadribasic 074aa05880 BFN: Make Jani happy 2003-06-03 14:47:03 +00:00
Edin Kadribasic 9afa0f3249 Fixed bug #23733.
#HAVE_OCI8_SHARED_MODE is more trouble than its worth.
2003-06-03 12:46:47 +00:00
Hartmut Holzgraefe 3b8f0741cb MFH 2003-06-03 11:07:40 +00:00
Edin Kadribasic 4f75f3bef1 MFH (bugfix #23902 by Shane). 2003-06-03 10:08:17 +00:00
Rasmus Lerdorf 28f4501f0a Fix a couple of closing folding tags 2003-06-03 05:41:49 +00:00
Ilia Alshanetsky 47acdced4c Bug fixing news. 2003-06-03 00:07:20 +00:00
Ilia Alshanetsky b2cf9fe953 MFH: Fixed bug #23912 (Invalid CSS in phpinfo() output) 2003-06-03 00:06:14 +00:00
Rob Richards 1505f6af03 Fix for 64 bit platforms (by Joe Orton) 2003-06-02 18:58:48 +00:00
Holger Zimmermann 35659b625f Merged with main trunk 1.53/1.5. 2003-06-02 17:14:10 +00:00
Daniela Mariaschi 5482637876 MFH: Fixed numeric/decimal +/-(x,y) +/-(x,0)
for all platforms
2003-06-02 12:59:20 +00:00
Derick Rethans 24e91108ba - MFH: Test for bug #23951 2003-06-02 11:13:00 +00:00
SVN Migration b130f77b94 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-06-02 11:12:26 +00:00
Uwe Schindler 84ebb3ae39 MFH: Messages for newer servers. 2003-06-01 21:45:26 +00:00
Uwe Schindler aa9d7d766e MFH: Update of README for newer servers; apache-similar functions nsapi_request_headers and nsapi_response_headers with apache_* aliases; hide authorization-header in save mode. 2003-06-01 21:15:52 +00:00
Rasmus Lerdorf 0718a54934 A very minor thing, but we should still make a note of this change. 2003-05-31 17:37:55 +00:00
Moriyoshi Koizumi b0884491ae MFH(r-1.231): CGI SAPI should honour this setting (arg_separator.input) 2003-05-31 17:02:01 +00:00
Uwe Schindler 2da81fefb8 zend_alter_ini_entry now with PHP_INI_USER 2003-05-31 15:32:38 +00:00
Marcus Boerger 651d262d43 Fix the fix 2003-05-31 15:10:03 +00:00
Marcus Boerger 22a9c4d448 Use ZE1 notation as expected result 2003-05-31 14:50:10 +00:00
Marcus Boerger b44ea85296 MFH: Synch latest fixes 2003-05-31 12:59:20 +00:00
Marcus Boerger 951e64a4bc This is needed though 2003-05-31 12:37:44 +00:00
Marcus Boerger 19081305e1 Showing info/warning once is enough 2003-05-31 12:13:15 +00:00
Marcus Boerger f189957991 MFH: make use of safe_estrdup 2003-05-31 10:24:15 +00:00
Georg Richter fb7f9eb420 suggestion by Wez :) 2003-05-31 06:54:53 +00:00
foobar 9085f883ad Re-add this entry 2003-05-31 03:03:00 +00:00
Marcus Boerger fe95410380 Reapply this one, too. 2003-05-31 02:31:10 +00:00
foobar 7ccfa69750 missed this one.. 2003-05-31 02:20:25 +00:00
Marcus Boerger 0b0a331e63 Reapply long opts 2003-05-31 02:20:08 +00:00
foobar 5a28c6dd94 BFN 2003-05-31 02:10:14 +00:00
foobar 8506ee1bfe - Re-added the FD lexer patch.
# Marcus is going to add the long-opts patches back in after this.
2003-05-31 01:37:45 +00:00
Ilia Alshanetsky 7cd254b070 Bug fixing news. 2003-05-31 00:34:14 +00:00
Ilia Alshanetsky 931f3abe4e MFH: Fixed bug #23913 (make rename() work across partitions on *nix) 2003-05-31 00:33:06 +00:00
Uwe Schindler 873f321cf7 Disable virtual() if zlib.output_compression is turned on. Better detection of ns-httpdXX.dll 2003-05-30 23:39:04 +00:00
Moriyoshi Koizumi 24a42bb761 Sync with head (r-1.153) 2003-05-30 22:33:43 +00:00
foobar 4168763049 Info about the improved NSAPI module 2003-05-30 21:40:13 +00:00
foobar 84707a7504 Cleanup, missing entries, BFN 2003-05-30 20:31:37 +00:00
Georg Richter 881414e0af better to test next time with the right version :) 2003-05-30 19:16:58 +00:00
Marcus Boerger d1cbbf62c9 MFH: Fix handling of ini settings 2003-05-30 17:50:06 +00:00
Derick Rethans 59b59d2651 - Added a "DEBUG" qualifier to 'php -v's version output, and made the CGI
version statement look the same as the CLI version. (Derick)
2003-05-30 17:03:10 +00:00
Moriyoshi Koizumi 1447af9522 MFH(r-1.152): refined the bz2 section as per Sascha's suggestion 2003-05-30 16:15:38 +00:00
Moriyoshi Koizumi 376c94c239 MFH(r-1.151): fixed a little typo. No germany.. 2003-05-30 15:33:06 +00:00
Ilia Alshanetsky b617f54d34 Bug fixing news. 2003-05-30 14:46:19 +00:00
Ilia Alshanetsky 4e38d42183 MFH (fix for bug #23898) 2003-05-30 14:45:20 +00:00
Moriyoshi Koizumi 5966ec08a9 I love dots too 2003-05-30 14:17:16 +00:00
Ilia Alshanetsky f7f36b4f37 MFH 2003-05-30 14:09:21 +00:00
Moriyoshi Koizumi 05e3f11ac5 BFN 2003-05-30 13:57:20 +00:00
Moriyoshi Koizumi be18fcec6b MFH(r-1.67): fixed bug #23894 (sprintf() decimal specifiers problem) 2003-05-30 13:50:09 +00:00
Moriyoshi Koizumi 0bf1fb6f19 MFH(r-1.1): added test case for bug #23894 2003-05-30 13:48:26 +00:00
SVN Migration 7bef1c1f2a This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-05-30 13:48:15 +00:00
Ilia Alshanetsky 77763cee25 Bug fixing news. 2003-05-30 13:20:55 +00:00
Ilia Alshanetsky 01d848075a MFH 2003-05-30 13:20:17 +00:00
Uwe Schindler f9f0c83b30 virtual() now works under windows, too 2003-05-30 13:15:04 +00:00
Georg Richter 90952aae2d fixed #23779 (CLIENT_LOCAL_FILES with open_basedir) 2003-05-30 13:00:17 +00:00
Marcus Boerger fab2534381 MFH: Add php_uname() to output 2003-05-30 12:42:17 +00:00
Adam Dickmeiss ea8eefdf72 Prevent yaz from logging unless yaz.log_file is set 2003-05-30 09:46:01 +00:00
Edin Kadribasic ae7fadf900 Nuke the rest of headers-sent code 2003-05-29 23:57:27 +00:00
Uwe Schindler c97e3bac2a fix of incomplete windows fix 2003-05-29 21:05:06 +00:00
Hartmut Holzgraefe 63130ca782 MFH 2003-05-29 20:24:00 +00:00
Uwe Schindler b653dfe7ba Changes for compilation on windows 2003-05-29 20:13:15 +00:00
Sascha Schumann 33d844496f fix prototype 2003-05-29 17:39:00 +00:00
Sascha Schumann 39267c2bf9 Always send a new session cookie upon regenerating id 2003-05-29 16:19:56 +00:00
Marcus Boerger 5430f7efa9 MFH-Update 2003-05-29 15:42:45 +00:00
Marcus Boerger f01b062a06 MFH: --style switches 2003-05-29 15:41:52 +00:00
Marcus Boerger db81c3d979 MFH: new switches and --style switches 2003-05-29 15:28:01 +00:00
Sascha Schumann 092b805de5 Fix VPATH builds 2003-05-29 14:55:07 +00:00
Marcus Boerger 2ab7673bb0 MFH ini file support 2003-05-29 14:24:10 +00:00
Marcus Boerger ee11982bcb MFH: ini file support 2003-05-29 14:16:25 +00:00
Marcus Boerger e0c3093711 MFH
@Changed exif extension to consider php.ini option magic_quotes_runtime. (Marcus)
2003-05-29 14:12:08 +00:00
Dan Kalowsky 7de28bdc6a ODBC standards compliance is a good thing.
# Should be MFB'd, but my PHP5 is drastically different right now..
2003-05-29 12:34:38 +00:00
Uwe Schindler c5ec799b2d MFH. 2003-05-29 12:29:50 +00:00
Uwe Schindler 3ae99689f7 MFH: php.ini values in magnus/obj.conf; virtual() similar to apache;... 2003-05-29 12:27:39 +00:00
foobar 210ce6796f Added the header for 4.3.3 2003-05-29 01:28:14 +00:00
Rasmus Lerdorf 9a9b55e60b I see no reason not to allow people to set the timeout on a mysql_connect
from inside a script with ini_set().  We allow user-settable timeouts on
other socket connections so having this as a system-settable only
directive doesn't make much sense to me.
2003-05-28 16:18:14 +00:00
foobar 2dc7873362 MFH 2003-05-28 14:12:04 +00:00
Wez Furlong 1ebb0b0785 On win32, always open in binary mode unless they asked for text mode using 't'.
This solves a number of apparent BC breaks that resulted from the move from
fopen() to open().
2003-05-28 10:15:00 +00:00
Hartmut Holzgraefe 01fa930e6b MFH 2003-05-28 09:45:22 +00:00
Hartmut Holzgraefe 28ce738ce7 MFH
@fdf crash with ZTS builds fixed (see Bug #14877)
2003-05-28 09:42:48 +00:00
SVN Migration c49dfb1007 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-05-28 09:35:46 +00:00
Pierre Joye 96559baede MFH 2003-05-28 01:52:45 +00:00
foobar 858c75805f There is no point using php_error_docref in MINIT. 2003-05-27 17:24:09 +00:00
Adam Dickmeiss f5b3d65f07 Fix close of log file. 2003-05-27 09:50:49 +00:00
foobar b5c6ea479d Nuke the php_header() call here. Fixes the rest of #14409. 2003-05-26 23:21:08 +00:00
Marcus Boerger 9990a0a301 MFH: In CLI log errors always 2003-05-26 23:07:09 +00:00
Moriyoshi Koizumi 43eda262be MFH(r-1.8): changed the test so it would not fail on some old platforms. 2003-05-26 22:16:40 +00:00
Melvyn Sopacua 9bc15253ad Make LC_MESSAGES available, for platforms that don't have it natively,
when gettext is compiled in.
2003-05-26 20:56:01 +00:00
Wez Furlong 5303587494 Plug a leak - noticed by Ilia. 2003-05-26 19:01:45 +00:00
Derick Rethans 33bed67b99 - Fixed a bug in reporting start-up errors with the CLI: No HTTP header shall
be shown.
2003-05-26 18:33:20 +00:00
Derick Rethans 3d3416d10e MFH: Typo 2003-05-26 09:46:34 +00:00
foobar 02c184dce8 MFH 2003-05-26 04:01:12 +00:00
SVN Migration 89f2c54773 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-05-26 03:55:09 +00:00
foobar 36e9a1582f BFN 2003-05-26 03:48:22 +00:00
Ilia Alshanetsky bd955dcb81 MFB 2003-05-26 02:00:37 +00:00
Shane Caraveo 653717b72c http://bugs.php.net/bug.php?id=14409
in the shell, if we get a filename on the commandline, never use stdin.
This fixes '\>php nonexistent.php'
will MTH once I get 5 building properly
2003-05-25 19:22:25 +00:00
Shane Caraveo 67ebb942b6 http://bugs.php.net/bug.php?id=23800
change the default for those who cannot
this was actually done a long time ago, but got reverted along the way
2003-05-25 18:35:18 +00:00
Marcus Boerger d9cf9e37fb MFH: speling 2003-05-24 12:00:59 +00:00
Wez Furlong 976f0d8303 Adjust error message to encourage people with apparently broken IPV6 systems to
build PHP without IPV6 support.
2003-05-24 03:15:53 +00:00
Marcus Boerger 7b514da372 Executing tests once is enough 2003-05-23 22:36:20 +00:00
Sara Golemon a0a3b47001 BFN 23765 2003-05-23 21:42:35 +00:00
Sara Golemon 97dd56a974 Bug#23765 File upload handler should not care about case sensitivity of header values. 2003-05-23 21:37:16 +00:00
Marcus Boerger 14fc7fa96c MFH: Make this a warning 2003-05-23 20:56:33 +00:00
Marcus Boerger 1a7e7165a7 MFH: Add warning level for tests. 2003-05-23 20:55:57 +00:00
Wez Furlong bdcd417ad6 Avoid greedy reads on FIFOs 2003-05-23 15:27:09 +00:00
Wez Furlong b3171064fd Fix Bug #23770: Odd output from file_get_contents().
php_stream_copy_to_mem couldn't handle the case when the read returned less
than chunk_size/4 bytes (except when it was the last chunk read).
2003-05-23 11:10:34 +00:00
Ilia Alshanetsky 31fe8c5c16 MFH 2003-05-23 02:42:22 +00:00
foobar 1c0ff3c97e MFH 2003-05-23 00:00:11 +00:00
SVN Migration 2e48996c64 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-05-22 23:59:38 +00:00
foobar 0ae1d743e6 fix the generated file. 2003-05-22 22:35:37 +00:00
Wez Furlong befce57664 Add --force so release package building works 2003-05-22 00:26:02 +00:00
foobar db082e4215 - This branch is now PHP 4.3.3-dev. (no more RCs!) 2003-05-21 23:31:20 +00:00
foobar a7290240a2 Go with PHP 4.3.2RC4 2003-05-21 23:22:01 +00:00
Jay Smith 6fee33722d MFH 2003-05-21 23:08:27 +00:00
Ilia Alshanetsky cb87994fcd Fixed bug #23744 2003-05-21 22:54:38 +00:00
foobar 961b1151c0 BFN 2003-05-21 22:37:01 +00:00
foobar a335bb813d MFH: Fixed bug #23738 (ifx_copy_blob() crash). (Jani) 2003-05-21 22:36:46 +00:00
foobar 0840b0ccf0 BFN 2003-05-21 21:57:58 +00:00
Ilia Alshanetsky 237bf7a69c MFH 2003-05-21 17:04:19 +00:00
Rasmus Lerdorf 022d058ce1 Revert bogus commit 2003-05-21 17:00:57 +00:00
Sander Roobol 5aaa0bcf64 MFH (ob_gzhandler and zlib.output_compression should send a Content-Length
header if the length of the complete compressed output is known)
2003-05-21 16:07:33 +00:00
Wez Furlong f41f376213 Allow win32 people to fopen($filename, 'rt') to explicitly chose text-mode
files again.

The functionality was accidentally dropped when we introduced our own fopen
mode string parser.
2003-05-21 12:02:55 +00:00
Zeev Suraski cbd712e8c9 Fix typo 2003-05-21 10:23:31 +00:00
Zeev Suraski b831413ba7 Remove php_stream_open_wrapper_as_file_handle, it was fd-patch specific 2003-05-21 10:19:03 +00:00
Zeev Suraski 2127840893 Revert PHP part of the fd patch 2003-05-21 09:34:21 +00:00
Marcus Boerger 2e34a6a9a6 MFH: This depends on libc and CPU used 2003-05-21 07:24:28 +00:00
Sascha Schumann f851db2531 readd essential line for multiple sessions inside one request 2003-05-21 02:33:13 +00:00
Ilia Alshanetsky 5d900b5171 MFH 2003-05-21 00:57:48 +00:00
foobar 25fcdb4304 BFN 2003-05-21 00:36:50 +00:00
Marcus Boerger b92cc3d806 MFH 2003-05-21 00:35:29 +00:00
Frank M. Kromann 09ddabb35e Fix for bug 23402. Crash when mssql?bind was used incorrectly 2003-05-21 00:06:41 +00:00
Marcus Boerger 4cb2b8e1fe MFH: Fix test (ssen by Dan Torop) 2003-05-20 22:28:29 +00:00
Wez Furlong 8eb3233f82 Implement socket liveness checking for SSL streams when recycling via
pfsockopen.
2003-05-20 22:14:47 +00:00
Sascha Schumann 8b4ff89345 Make error messages less ambiguous 2003-05-20 21:01:42 +00:00
Wez Furlong abd2b78275 Make fread() non-greedy for socket based streams 2003-05-20 20:47:39 +00:00
Sascha Schumann 67631ea57c Defensive programming 2003-05-20 20:01:54 +00:00
Andrei Zmievski 12ce650f03 MFH 2003-05-20 18:12:07 +00:00
Wez Furlong 549625a4c7 Touch and remove WS added by last touch.... 2003-05-20 16:53:58 +00:00
Wez Furlong 5ce5b396f7 Touch files 2003-05-20 16:53:24 +00:00
Sascha Schumann bddbce404f Better reinitialize session_status unconditionally 2003-05-20 14:20:14 +00:00
Sascha Schumann 4557989eff initialize err 2003-05-20 12:45:35 +00:00
Sascha Schumann 0f4b4c82de Fix use of ZEND_EXTERN_MODULE_GLOBALS which mysteriously includes a
trailing semicolon.

Also add a do {} while (0) construct in php_session.h
2003-05-20 12:38:04 +00:00
Moriyoshi Koizumi a9a7057448 Revisit the braindead patch only for this branch
# this behaviour is fixed in the php5 branch
2003-05-20 07:34:08 +00:00
Ilia Alshanetsky 5defe2dd7c MFH 2003-05-20 00:37:13 +00:00
Wez Furlong 1a6d970f7e Much better fix for refcount issues with contexts, and fix a leak in context
value storage.
2003-05-20 00:21:57 +00:00
Marcus Boerger 75144252c0 MFH: Fix Test (2nd time) 2003-05-20 00:10:01 +00:00
Wez Furlong cedd7ef4bf Fix refcounting problem with contexts.
Also, potentially fix stream_set_timeout issues on SSL streams.
2003-05-19 23:27:49 +00:00
Wez Furlong 9efa05b7c7 Fix persistent stream recycling within the same request.
function foo()
{
	$s = pfsockopen("localhost", "80");
	var_dump($s);
}
foo(); foo();
2003-05-19 22:55:56 +00:00
Marcus Boerger c00b313bee MFH: Fix protos 2003-05-19 22:53:35 +00:00
Marcus Boerger 8725a3147d MFH: Fix Test 2003-05-19 22:17:05 +00:00
Marcus Boerger d66fa199b4 MFH 2003-05-19 21:50:06 +00:00
Derick Rethans b3251de43f - Add alias for easier transition 2003-05-19 17:45:50 +00:00
foobar 2cab62fdc4 BFN 2003-05-19 14:20:28 +00:00
foobar 596b08b9a1 MFH: Fixed bug #23539 (curl_exec() produces strange results). (daniel@haxx.se) 2003-05-19 14:19:33 +00:00
Moriyoshi Koizumi 52c6a66274 MFH(r-1.86): fixed bug #23683 2003-05-19 13:27:05 +00:00
foobar ebfb3cb678 MFH 2003-05-19 13:14:06 +00:00
Wez Furlong 60434f91bd Add sanity check to buildconf to prevent it from being run in our released
packages.
2003-05-19 11:45:02 +00:00
foobar 396e830e72 BFN 2003-05-19 07:18:40 +00:00
Shane Caraveo 331f905e8a MFH
continuation on bugfix #13757
make argv/argc *and* query_string work correctly when running cgi in shell
2003-05-19 06:46:50 +00:00
Ilia Alshanetsky 3987509ac3 MFH 2003-05-19 04:57:08 +00:00
Shane Caraveo 818412a4a9 MFH
bugfix #13757 - passing query string on command line when run from shell
2003-05-19 03:40:53 +00:00
Sascha Schumann 45a703d3f1 Move awk detection before config.m4 inclusion 2003-05-19 01:42:13 +00:00
Sascha Schumann 55a52eb920 Use $AWK instead of awk, fixes build issue on Solaris with old-style ext 2003-05-19 01:33:29 +00:00
foobar e53ca2b5dd mfh 2003-05-18 14:55:56 +00:00
Marcus Boerger 86ce37ce21 MFH: Enable bundled submodules when enabling module 2003-05-18 12:36:34 +00:00
Marcus Boerger 68eef6b9f4 Update 2003-05-18 12:13:53 +00:00
Marcus Boerger dd866fdd82 MFH: Fix test (for now - need EXPECTF/EXPECTREGEX) 2003-05-18 12:10:15 +00:00
Marcus Boerger f53160138e Fix unserialize (commit later) 2003-05-18 12:04:52 +00:00
Marcus Boerger 9719a22ff8 Fix unserialize 2003-05-18 12:04:34 +00:00
Zeev Suraski 6a966b79d7 binary compat for 64-bit platforms shouldn't matter much as they were
fairly broken to begin with
2003-05-18 10:22:16 +00:00
Zeev Suraski 8dfb69ebca Restore binary compatibility with 4.3.0 2003-05-18 10:16:57 +00:00
Moriyoshi Koizumi ae30c7f4ab And this is needed indeed 2003-05-17 20:07:00 +00:00
Moriyoshi Koizumi eeb43eb1eb oops 2003-05-17 20:04:35 +00:00
Moriyoshi Koizumi c2660ef64a Fixed the test so it won't fail under safe mode 2003-05-17 20:00:46 +00:00
Moriyoshi Koizumi 41278da02f MFH(r-1.225): fixed bug #23669
# When the script is launched with the "Action" directive,
# PATH_TRANSLATED is then populated to indicate the virtual location of
# the script, and both REDIRECT_URL / PATH_INFO are set to the virtual URI.
# Otherwise, REDIRECT_URL may take an arbitrary value instead of the actual
# URI, which cannot be relied upon at all.
2003-05-17 18:55:23 +00:00
Georg Richter d76c684cef move to pecl 2003-05-17 15:11:17 +00:00
Georg Richter cf43cddba9 move to pecl 2003-05-17 15:06:02 +00:00
Georg Richter ac88c9cabd added ext/mysqli for PHP4. This version doesn't support OO-function calls 2003-05-17 14:15:58 +00:00
Marcus Boerger 444959cd81 Mail too 2003-05-17 11:32:22 +00:00
Wez Furlong 0ee4b1dd48 Fix segfault 2003-05-17 09:34:12 +00:00
Sascha Schumann 8053881211 protect against further surprises by initializing all zend_file_handle's 2003-05-17 08:06:53 +00:00
Sascha Schumann 0c376684c7 Initialize all zend_file_handle instances properly 2003-05-17 07:55:18 +00:00
Sara Golemon bab2866e21 Bug #14369. ftp extension allows circumvention of safe_mode restrictions 2003-05-17 04:20:12 +00:00
Sara Golemon f026645177 Bugfix 23654. If subject is an array and it contains other arrays, we want to pass those subarrays through unchanged rather than attempt to convert them to string. 2003-05-16 23:24:55 +00:00
Moriyoshi Koizumi d36a62dd0e MFH(r-1.43): fixed a syntax highlighter problem that happens when output buffering is turned on 2003-05-16 23:08:47 +00:00
Sascha Schumann a9930145fe MFH 2003-05-16 22:33:15 +00:00
Masaki Fujimoto 98e4c9aef4 - mbstring.h is no more needed 2003-05-16 20:33:18 +00:00
foobar eaeff2e939 typo fixing 2003-05-16 20:20:06 +00:00
Wez Furlong 67391df6f0 No typo... its tmpnam in one place, tempnam in another...
/home/wez/packages/imap-2002b/c-client/osdep.c:287:
the use of `tmpnam' is dangerous, better use `mkstemp'
2003-05-16 20:12:46 +00:00
Moriyoshi Koizumi b484bc253a Moved initialisation code to the proper place. 2003-05-16 19:28:17 +00:00
Wez Furlong 54c83ce7a3 Fix memory leak in the COM extension.
Patch from Michael Sisolak <msisolak at yahoo dot com>
2003-05-16 19:20:18 +00:00
Derick Rethans 37142b284f - Fixed bug #23661: mysql_fetch_array gives no warning on an invalid
result_type
2003-05-16 19:07:57 +00:00
Wez Furlong 217a213a5d Stronger validation of parameters to ob_start(). 2003-05-16 19:06:37 +00:00
foobar 9233c937ae We do not have to add entries for bugs that are introcuded between RCs.. 2003-05-16 15:30:57 +00:00
Ilia Alshanetsky c4690101a3 Bug fixing news. 2003-05-16 15:15:29 +00:00
Ilia Alshanetsky 129d6e940f MFH 2003-05-16 15:13:57 +00:00
Derick Rethans c8c6b2141e - Fix speling:
/dat/dev/php/php-4.3.2RC3/ext/mysql/libmysql/my_tempnam.c:115: the use of
  `tempnam' is dangerous, better use `mkstemp'
2003-05-16 15:03:45 +00:00
Moriyoshi Koizumi 97a0b51739 MFH(r-1.2): copy'n'paste failure 2003-05-16 06:25:12 +00:00
Moriyoshi Koizumi ee135e463c MFH(r-1.1): added test case for bug #23650 2003-05-16 06:21:57 +00:00
Moriyoshi Koizumi a5c040170c MFH(r-1.381): fixed bug #23650 2003-05-16 06:21:39 +00:00
SVN Migration 8e2ddfb9df This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-05-16 06:20:24 +00:00
Sascha Schumann 2c84b8acb8 forgot that 2003-05-16 06:16:16 +00:00
Ilia Alshanetsky 1fdb920299 Fixed proto 2003-05-16 01:09:10 +00:00
Moriyoshi Koizumi c1a6b4530b MFH(r-1.6): fixed test so it won't fail with the output_handler enabled 2003-05-15 19:20:55 +00:00
foobar daacfa367b - Now this is 4.3.2RC4-dev..hopefully we won't need it. :) 2003-05-15 18:50:48 +00:00
foobar 73d041e231 Bumb version. 2003-05-15 18:46:20 +00:00
foobar 5faf455502 fix this test for release.. 2003-05-15 18:36:59 +00:00
foobar 35fb4f2c20 better not confuse people with this test.. 2003-05-15 17:50:29 +00:00
Sascha Schumann 6c3f316db8 MFH 2003-05-15 16:55:21 +00:00
Sascha Schumann 3837327f43 MFH 2003-05-15 16:43:29 +00:00
foobar d568d3877a Added missing bracket. 2003-05-15 14:47:00 +00:00
Sascha Schumann 99515d905c MFH 2003-05-15 13:33:52 +00:00
foobar e06424afc7 wrapped the lines to be max. 80 chars as some people still use antique.. 2003-05-15 12:48:15 +00:00
foobar 1a5e210004 my back hurts.. 2003-05-15 12:28:46 +00:00
Sascha Schumann e1818aae0a Avoid using a stream which has already been freed 2003-05-15 12:01:01 +00:00
Ilia Alshanetsky 01aef58899 Bug fixing news. 2003-05-15 02:27:11 +00:00
Ilia Alshanetsky 670d72a64b MFH 2003-05-15 02:25:59 +00:00
Wez Furlong 0a837f8064 Better be sure to spell it out... 2003-05-14 19:10:27 +00:00
Wez Furlong 8307e2c329 4, not 3 :) 2003-05-14 19:10:02 +00:00
Wez Furlong 5c48a21bcc Avoid warning about casting as FD when including. This fixes the
fopencookie/userstream/include test.

Add label for new selectable descriptor cast mode.
2003-05-14 18:38:01 +00:00
foobar 39d03d8ab6 MFH 2003-05-14 18:23:41 +00:00
Moriyoshi Koizumi e674b5c6a4 MFH: reverted the patch for the PATH_TRANSLATE issue 2003-05-14 18:19:57 +00:00
foobar 395123dcc8 Added test case for bug #23624 2003-05-14 15:01:31 +00:00
Edin Kadribasic b484523d7f Credits update 2003-05-14 13:40:49 +00:00
Daniela Mariaschi 22e9844842 MFH: better fix bug #20641.
Overflow numeric/deciaml datatype on NT
2003-05-14 08:26:34 +00:00
Marcus Boerger 6dfca30ec9 Update 2003-05-14 06:42:21 +00:00
Marcus Boerger fd0b71760e MFH: Enable db<n> builds configured with --with-uniquename 2003-05-14 06:22:58 +00:00
Sascha Schumann 862edc6aae Fix file_get_contents segfault on empty file 2003-05-14 01:08:47 +00:00
Moriyoshi Koizumi fcffe5b582 MFH(r-1.4, r-1.4, r-1.5, r-1.4, r-1.4, r-1.4): fixed tests so they won't fail
in correct situations
2003-05-14 00:37:45 +00:00
Ilia Alshanetsky 32131681f7 Fixed a memory leak when -h flag is used. 2003-05-14 00:11:01 +00:00
foobar 2cd08683c8 - Fixed bug #23584 (error line numbers off by one when using #!php).
# already fixed in php5
2003-05-14 00:05:12 +00:00
Sascha Schumann 0e47b9242d Readd fd 0-2 protection, so that users cannot close them 2003-05-13 23:51:57 +00:00
Sascha Schumann 4066bd0a17 Supply STDIN/OUT/ERR_FILENO directly, instead of opening them through
stdio's fdopen.
2003-05-13 23:44:35 +00:00
Sascha Schumann bbf39825e1 Use POSIX IO here, mainly to fix interactive mode.
This also fixes a possible cpu-time hog bug where a file would consist
of "#" and nothing else.
2003-05-13 23:36:38 +00:00
Sascha Schumann 7017cc588c Use and supply zend_open func 2003-05-13 23:09:27 +00:00
foobar 057d36b789 MFH 2003-05-13 22:10:27 +00:00
Ilia Alshanetsky b811d30a74 MFH 2003-05-13 22:09:30 +00:00
foobar 8530516f40 reorder 2003-05-13 22:05:34 +00:00
Marcus Boerger 987d9aff6c MFH: Fix this test 2003-05-13 20:39:08 +00:00
Moriyoshi Koizumi 1a241fc6f6 made it slightly descriptive 2003-05-13 19:41:46 +00:00
Moriyoshi Koizumi a0a0ff10a4 BFN 2003-05-13 19:40:29 +00:00
Moriyoshi Koizumi ecf62dc44e MFH(r-1.112, r-1.18): fixed bug #23610 2003-05-13 19:38:04 +00:00
Sascha Schumann cfeebdf8c5 MFH 2003-05-13 18:48:18 +00:00
Christian Stocker cd1def8074 fix possible segfault 2003-05-13 14:42:23 +00:00
Adam Dickmeiss 99af37d2c8 Fix problem with yaz_record in array mode, when record is unavailable. 2003-05-13 11:05:59 +00:00
Sascha Schumann 10f2defb04 Ensure that we don't close a random fd
fchdir(0)                                       Err#20 ENOTDIR
close(0)                                        = 0
2003-05-13 02:25:29 +00:00
Ilia Alshanetsky d80e0fc48c MFH 2003-05-13 01:58:16 +00:00
Wez Furlong a159c212c4 BFN! 2003-05-13 00:21:50 +00:00
Wez Furlong 3b2f0b8ac4 Fix erroneous error status when attempting to use stream_select() on an SSL
stream.  As a by-product, this also fixes Bug #22238, stream_select() clobbers
read buffer for pipes.
2003-05-13 00:18:27 +00:00
Wez Furlong 6c0ee68f07 Probable fix for #23567 - pfsockopen returns dead connection.
# Just need to verify under win32
2003-05-12 23:44:48 +00:00
Moriyoshi Koizumi 46756f8caa MFH(r-1.175, r-1.53): applied the right fix for bug #23016 2003-05-12 13:31:16 +00:00
Ilia Alshanetsky 38beab8a1e ifdef away win32 only variables. 2003-05-12 04:05:54 +00:00
Sascha Schumann c53c056477 MFH 2003-05-12 01:29:41 +00:00
Sascha Schumann 6db735215a MFH 2003-05-12 01:03:47 +00:00
Moriyoshi Koizumi 52c52c1c3d MFH(r-1.228): fixed bug #22463 and bug #23581 2003-05-11 06:39:42 +00:00
Moriyoshi Koizumi 7d4a198992 MFH(r-1.1, r-1.1): added test cases for bug #22463 and bug #23581 2003-05-11 06:35:11 +00:00
SVN Migration 794994bfb5 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-05-11 06:33:36 +00:00
Moriyoshi Koizumi 1df318632d Fixed bug #23016 2003-05-10 20:55:44 +00:00
Rasmus Lerdorf b8af95533a Need to add the kerberos include dir here (fixes compile problem on RH9) 2003-05-10 17:11:33 +00:00
Sascha Schumann f695e50683 MFH 2003-05-10 16:49:53 +00:00
Hartmut Holzgraefe 4b3a23efa9 removing the crashbug on windows 2003-05-09 13:55:44 +00:00
Pierre Joye ad07d32fc7 MFH 2003-05-09 12:17:07 +00:00
Hartmut Holzgraefe 48ef3a2f55 MFH 2003-05-09 09:56:51 +00:00
Edin Kadribasic eafad14638 Reverting my last patch because user reports it does not help
solve the problem. (bug #23504)

# I cannot reproduce this myself so reverting the patch
# is probably the best thing to do at this point.
2003-05-09 09:08:09 +00:00
Ilia Alshanetsky 6503178113 MFH 2003-05-09 01:10:24 +00:00
Moriyoshi Koizumi a678dd0832 MFH(r-1.84): added "&euro;" support for htmlentities() and html_entity_decode() 2003-05-08 15:44:32 +00:00
Edin Kadribasic f601dff0c2 Fix for bug #23504. Read per_dir configuration before trying to open the
the php file for execution.
2003-05-08 09:19:44 +00:00
Ilia Alshanetsky 9acdb6b6c8 MFH 2003-05-08 01:23:36 +00:00
Sara Golemon e29c2b0872 MFH(r-1.72) 2003-05-07 20:32:28 +00:00
Moriyoshi Koizumi 96d9074817 MFH(r-1.16): possible fix for bug #23455 (patch by rrichards@digarc.com) 2003-05-07 14:12:57 +00:00
Sascha Schumann c959028440 update 2003-05-06 23:53:33 +00:00
foobar 8902f7fc3f update 2003-05-06 23:43:13 +00:00
Sascha Schumann b0fdf62d3c update 2003-05-06 23:26:09 +00:00
Rasmus Lerdorf c03591bbc0 Remind people that sending in their qa info may contain sensitive data. 2003-05-06 20:22:17 +00:00
Sascha Schumann 2b2187ea33 MFH 2003-05-06 19:18:07 +00:00
Marcus Boerger ee1f22f64e Change of roles 2003-05-06 15:07:09 +00:00
Sascha Schumann b790692180 Eliminate fsync calls which apply to files, not sockets.
Also disable the Win32 socket shutdown procedure for non-Win32 systems.

closesocket has quite different semantics on Win32 which requires
a certain shutdown procedure as outlined here:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/shutdown_2.asp
2003-05-06 14:39:31 +00:00
Sascha Schumann 62f0ea7954 Real fix for open() issue on Solaris 2003-05-06 13:18:38 +00:00
Sascha Schumann 648355a4cb When HAVE_BROKEN_GETCWD is in effect, open() will be called, so we need
to include unistd.h.
2003-05-06 13:06:53 +00:00
Sascha Schumann cf6352e82f Move persistent into ZEND_DEBUG section 2003-05-06 11:53:33 +00:00
Sascha Schumann b70f5ce50c Drop some TSRMLS_FETCH which are not used according to gcc 2003-05-06 11:52:11 +00:00
Sascha Schumann 09d0f92e05 Fix URL reading 2003-05-06 11:04:42 +00:00
Sascha Schumann 4e340d5e6c fix typo 2003-05-06 10:15:59 +00:00
Sascha Schumann 5696b0327f improve portability 2003-05-06 10:14:39 +00:00
Marcus Boerger ea7f0f7314 MFH 2003-05-06 09:34:20 +00:00
Marcus Boerger 97807d68e9 MFH new test layout 2003-05-06 01:26:21 +00:00
Daniela Mariaschi 908f56d375 MFH 2003-05-05 22:45:32 +00:00
Marcus Boerger decda2cb0e Bugfix #22367 2003-05-05 22:36:16 +00:00
Ilia Alshanetsky 83dbc17647 MFH 2003-05-05 22:21:37 +00:00
Ilia Alshanetsky 70369b3888 MFH 2003-05-05 19:57:40 +00:00
Moriyoshi Koizumi 314d0c288f MFH(r-1.81): added links to HTML entity resources 2003-05-05 19:51:16 +00:00
Wez Furlong 246300a60c Avoid potential segfault when preparing an SSL stream. 2003-05-05 16:30:04 +00:00
Christian Stocker 98baae88df xmlInitParser() at MINIT for better thread-safety (by Rob) 2003-05-05 14:46:49 +00:00
Christian Stocker 1e6865b38e Set the doc property to NULL if no parent is available (by Rob Richards) 2003-05-05 12:55:23 +00:00
Thies C. Arntzen 42e19bdbd7 fixed FMR 2003-05-05 12:17:03 +00:00
Sebastian Bergmann 44049a7e62 MFH: Add test case for bug #23489. 2003-05-05 10:17:14 +00:00
SVN Migration cbab7fcfea This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-05-05 10:16:05 +00:00
Moriyoshi Koizumi 727d97a95e Credit Jay's name 2003-05-04 19:34:52 +00:00
Ilia Alshanetsky ae6840dc31 MFH 2003-05-04 19:10:07 +00:00
Ilia Alshanetsky eef36a86dc Bug fixing news. 2003-05-04 18:42:19 +00:00
Ilia Alshanetsky 8eac6854f5 MFH 2003-05-04 18:41:37 +00:00
SVN Migration 2645704e4d This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-05-04 18:41:03 +00:00
Marcus Boerger de8c0e5070 BFN: #23162 2003-05-04 18:29:05 +00:00
Moriyoshi Koizumi c52b97c89f MFH(r-1.174): fixed an issue that zend-multibyte's behaviour doesn't reflect the change to mbstring.internal_encoding ini setting. 2003-05-04 13:12:26 +00:00
Moriyoshi Koizumi f63177b075 MFH(r-1.379,r-1.1): real fix and a test case for bug #22008 2003-05-04 12:45:12 +00:00
SVN Migration d1ae16818e This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-05-04 12:44:37 +00:00
Moriyoshi Koizumi 50e6fc68f4 BFN 2003-05-04 11:52:44 +00:00
Moriyoshi Koizumi ef2bc94ac4 MFH(r-1.378): a quick fix for bug #22008 2003-05-04 11:46:23 +00:00
Moriyoshi Koizumi 7a80b64960 MFH(r-1.109): added missing sanity check 2003-05-04 11:22:00 +00:00
Marcus Boerger 825c107f2b Fix test 2003-05-02 23:27:46 +00:00
Sascha Schumann 89cd013bd6 Rework text 2003-05-02 18:25:39 +00:00
Moriyoshi Koizumi 9d0951f2d7 MFH(r-1.80): fixed bug #23449 2003-05-02 11:01:00 +00:00
Thies C. Arntzen 8a5297e61c @ - Fixed bug #23376 OCINewDescriptor 2003-05-02 08:43:25 +00:00
Sara Golemon 631112ec2f MFH(r-1.227) 2003-05-02 01:05:16 +00:00
foobar c0b58291d2 MFH: - Fixed bug #22580 (ext/odbc compile failure with dbmaker) 2003-05-02 00:40:35 +00:00
foobar 6d9c0036b7 MFH: - Fixed bug #23427 (compile failure with GD 1.8.3) 2003-05-01 23:50:25 +00:00
Ilia Alshanetsky f4a30e483c MFH 2003-05-01 21:08:47 +00:00
Sascha Schumann 19e8346959 cleanup 2003-05-01 20:50:26 +00:00
Wez Furlong c3d353867a Really fix dll linkage, and fix TSRMLS usage. 2003-05-01 10:44:18 +00:00
Wez Furlong 8062aa164a MFH: Fix odbc_fetch_(array|object) for UnixODBC. 2003-04-30 23:33:18 +00:00
Ilia Alshanetsky 79577fadf9 MFH 2003-04-30 21:54:04 +00:00
Frank M. Kromann 458bcdc77e Fixing bit support. Bug #23324 2003-04-30 21:52:06 +00:00
Moriyoshi Koizumi d99e16a9be another oops. (sync with HEAD) 2003-04-30 16:32:15 +00:00
Moriyoshi Koizumi 2c1983f352 MFH(r-1.5): really fix the test 2003-04-30 16:31:01 +00:00
Rasmus Lerdorf f183abfd6a Fix gdCacheDelete() crashes in the bundled gd library 2003-04-30 16:23:59 +00:00
Wez Furlong c3a1a51f83 Fix leak in "php -m". 2003-04-30 13:07:18 +00:00
Wez Furlong c4e23fff2b Really fix the leak in the branch... 2003-04-30 11:12:03 +00:00
Wez Furlong 6454f5c3f2 MFH: Fix memory leak and enable for IBM DB2. 2003-04-30 10:46:43 +00:00
foobar 08a657f8fa MFH 2003-04-30 10:42:37 +00:00
foobar fb950ce0d5 BFN 2003-04-30 10:40:08 +00:00
foobar 034d61dbaa MFH: - Fixed bug #23371 (configure falsely detects c-client using SSL) 2003-04-30 10:35:06 +00:00
foobar 5edbe423b7 MFH 2003-04-30 10:23:06 +00:00
foobar 3220d2d769 MFH: compile fixes for < 9.2 oracle 2003-04-30 10:20:14 +00:00
Sascha Schumann 2bc6223a5f MFH fix for solaris find breakage 2003-04-30 07:08:32 +00:00
Ilia Alshanetsky 63693db502 MFH 2003-04-30 00:47:20 +00:00
Ilia Alshanetsky a2c87335ea MFH 2003-04-30 00:37:40 +00:00
Wez Furlong 87eaeb5363 Fix win32 build of shared openssl extension. 2003-04-29 13:48:06 +00:00
Moriyoshi Koizumi c7ae114bdf MFH(r-1.4): fixed typo 2003-04-29 13:06:12 +00:00
Moriyoshi Koizumi 968ed87454 MFH(r-1.3): fixed bogus skip condition 2003-04-29 13:04:57 +00:00
Moriyoshi Koizumi 886f9faaf3 dot 2003-04-28 23:39:15 +00:00
Ilia Alshanetsky f15b229e55 MFH 2003-04-28 22:42:36 +00:00
Wez Furlong 2878b23b14 BFN 2003-04-28 22:38:50 +00:00
Sascha Schumann d6302ef69d Fix Content-Encoding header lacking CRLF 2003-04-28 22:06:54 +00:00
foobar 1823f4748c - Change the version to 4.3.2-RC3-dev
# This should have been RC2-dev before..
# (if it was plain RC, we could not so easily know what versions people
# are testing from snapshots, for example)
2003-04-28 21:19:03 +00:00
foobar 7c495e9250 - Bumb the version to 4.3.2-RC2 2003-04-28 21:11:47 +00:00
foobar fcc7633bd0 MFH 2003-04-28 21:00:41 +00:00
Sascha Schumann 77d490c8fa usage fix 2003-04-28 19:42:30 +00:00
Derick Rethans 3005a78fbf - MFH 2003-04-28 18:53:46 +00:00
Moriyoshi Koizumi 7be8abe541 Removed bizarre tests for disgusting bugs which have kept annoying us.
- bug #22367 (http://bugs.php.net/22367)
 - bug #22510 (http://bugs.php.net/22510)
 - bug #22592 (http://bugs.php.net/22592)
2003-04-28 18:51:47 +00:00
Derick Rethans 427e27cc74 - MFH 2003-04-28 18:47:57 +00:00
Sascha Schumann f007536147 # on working disk again
reverting code, moving to correct branch
2003-04-28 16:18:34 +00:00
Sascha Schumann cf0b1ab2e3 # disk going bad, rescuing data
improve php_url_encode a bit
2003-04-28 15:17:00 +00:00
Moriyoshi Koizumi 302dc219c1 MFH(r-1.336): added missing sanity check in fgetcsv()
Partly synchronised indents with HEAD
# please merge CS fixes to branches too, or leave them as is :(
2003-04-28 15:11:14 +00:00
Wez Furlong 7aef25bc38 MFH: Fix for #23340; fopen on multiple urls from the same server crashes. 2003-04-28 14:41:54 +00:00
foobar 12e61e2ac4 MFH 2003-04-28 07:31:00 +00:00
Marcus Boerger 0371773312 MFH fix 2003-04-27 17:20:12 +00:00
Zeev Suraski fd913127ab This caused more mess than good, revert to the way it was in 4.3.0... 2003-04-27 16:35:53 +00:00
Stanislav Malyshev bb56953b8d fix TSRM 2003-04-27 16:18:01 +00:00
Stanislav Malyshev 5762d24683 Fix very nasty bug - session cookie kills one of the cookies
set before it on certain non-Apache SAPIs.
# for example, this code:
# <?
# setcookie("abc", 1);
# setcookie("def", 2);
# session_start();
# ?>
# would output only 'def' cookie on CGI and ISAPI
2003-04-27 16:02:44 +00:00
Wez Furlong 71a63bc126 Fix the lack of SSL certificate verification support for ssl:// sockets and
https:// streams.

This code is essential for people writing secure applications in order to avoid
man-in-the-middle attacks, and is thus regarded as a bug fix.

It is, however, optional; you need to explicitly turn on the verification
functionality, as it depends on you to specify your trusted certificate chain.

This sample demonstrates a secured https:// request, making use of the CA
bundle provided by curl:

<?php
$ctx = stream_context_create();
// Turn on verification
stream_context_set_option($ctx, "ssl", "verify_peer", true);
// Set the CA bundle (trusted certificate chain)
stream_context_set_option($ctx, "ssl", "cafile",
	"/usr/local/share/curl/curl-ca-bundle.crt");
$fp = fopen("https://www.zend.com", "rb", false, $ctx);
?>

This sample demonstrates how to roll your own https:// request, and specify a
certificate to use for authentication; the local_cert and passphrase options
will also work for fopen().

<?php
$ctx = stream_context_create();
stream_context_set_option($ctx, "ssl", "verify_peer", true);
stream_context_set_option($ctx, "ssl", "cafile",
	"/usr/local/share/curl/curl-ca-bundle.crt");

// set local cert.  it MUST be a PEM encoded file containing the certificate
// AND your private key.  It can also contain the certificate chain of issuers.
stream_context_set_option($ctx, "ssl", "local_cert", "/path/to/my/cert.pem");
stream_context_set_option($ctx, "ssl", "passphrase", "secret!");

// Set the common name that we are expecting; PHP will perform limited wildcard
// matching.  If the CN does not match this, the connection attempt will fail.
// The value to specify will always be the same as the Host: header you specify.
stream_context_set_option($ctx, "ssl", "CN_match", "secure.sample.domain");

$ssl = fsockopen("ssl://secure.sample.domain", 443, $errno, $errstr, 10, $ctx);

if ($ssl) {
	fwrite($ssl, "GET / HTTP/1.0\r\nHost: secure.sample.domain\r\n\r\n");
	fpassthru($ssl);
}

?>
2003-04-26 21:34:49 +00:00
Ilia Alshanetsky 582c2462ad MFH 2003-04-25 22:00:17 +00:00
foobar fd55fc78f4 MFH: compile fixes for AIX/HPUX 2003-04-25 21:31:49 +00:00
foobar 0fe880b867 MFH 2003-04-25 18:11:42 +00:00
Moriyoshi Koizumi 95c2ba883a MFH(r-1.172): moved copyright notice to the better place 2003-04-25 17:40:28 +00:00
Moriyoshi Koizumi fb743a3e27 MFH(r-1.171): added a bogus copyright notice 2003-04-25 17:35:30 +00:00
foobar 56fa94a6c0 MFH 2003-04-25 15:43:35 +00:00
SVN Migration 7756f1b7f2 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-04-25 15:43:29 +00:00
foobar be525968af MFH 2003-04-25 10:53:31 +00:00
foobar 2e3222d165 BFN 2003-04-25 10:15:17 +00:00
foobar 973651ae3b BFN 2003-04-25 09:00:00 +00:00
foobar 071b885744 MFH: Fixed bug #23099 (ext/interbase: "libgds.so: undefined reference to 'crypt'") 2003-04-25 08:59:00 +00:00
foobar bedd024310 MFH 2003-04-25 08:54:09 +00:00
foobar dd14eb51d4 MFH 2003-04-25 08:33:59 +00:00
SVN Migration caf1b545b8 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-04-25 08:33:26 +00:00
foobar bf0d23f985 MFH 2003-04-25 08:10:23 +00:00
Ilia Alshanetsky 1f433956b0 emalloc -> safe_emalloc 2003-04-25 00:59:03 +00:00
Ilia Alshanetsky d949f9d912 emalloc -> safe_emalloc 2003-04-25 00:50:31 +00:00
David Hill 8f7009f7f2 minor compiler incompatability fixes 2003-04-24 18:25:47 +00:00
Wez Furlong 2e4f176a6d Potential fix for problems during registration 2003-04-24 13:52:16 +00:00
Ilia Alshanetsky 694f5ed4de emalloc -> safe_emalloc 2003-04-24 01:42:09 +00:00
Marcus Boerger b882dbf5b9 MFH Synch: shutdown and ini defaults 2003-04-23 22:53:17 +00:00
foobar 982458f908 MFH 2003-04-23 08:55:09 +00:00
Ilia Alshanetsky 48e938368e emalloc -> safe_emalloc 2003-04-23 02:37:29 +00:00
Rasmus Lerdorf 9a57fc8cab &039; which is a single-quote may also come in as &39; I see no reason
not to handle both in html_entity_decode()
2003-04-22 20:44:55 +00:00
Sascha Schumann 0117c206d6 Drop php_info_print_table_row_ex from the 4.3 branch 2003-04-22 03:27:01 +00:00
Ilia Alshanetsky 0be78cd2b4 emalloc -> safe_emalloc. 2003-04-22 01:38:36 +00:00
Moriyoshi Koizumi 304409e520 MFH(r-1.136): the feature is less relevant to encoding conversion indeed 2003-04-21 19:07:50 +00:00
foobar 545b4cff3b MFH: Fixed bug #23198 2003-04-21 17:53:59 +00:00
Sascha Schumann 1719d0062c MFH 2003-04-21 01:09:33 +00:00
Sascha Schumann 1dafae56b9 MFH 2003-04-19 18:35:51 +00:00
Ilia Alshanetsky 720d8fdddc MFH (pcre sanity check) 2003-04-19 18:12:07 +00:00
Ilia Alshanetsky 2fa3048632 MFH 2003-04-19 18:10:58 +00:00
Ilia Alshanetsky 8b02b1eb7e MFH 2003-04-19 17:45:55 +00:00
Sascha Schumann c34c7433eb MFH 2003-04-19 17:41:12 +00:00
Marcus Boerger 2eb11eae36 MFH: The env-var TEST_PHP_EXECUTABLE is needed in tests 2003-04-19 17:23:11 +00:00
Moriyoshi Koizumi c629ac4600 MFH(r-1.135, r-1.268): made phpinfo() / gd_info() indicate availability of
JIS feature
2003-04-19 07:45:45 +00:00
Moriyoshi Koizumi a743a6dee6 MFH(r-1.134): fixed help text alignment 2003-04-19 07:16:06 +00:00
Sascha Schumann 460aba89f8 Don't spill our (PHP) HAVE_PGSQL/MYSQL into the mnogo header(s) 2003-04-19 05:10:35 +00:00
Sascha Schumann c465c5a3eb remove useless prototype 2003-04-19 05:09:52 +00:00
Rui Hirokawa 18144dffe9 added an option to support japanese encoding conversion in bundled gd. 2003-04-19 04:13:01 +00:00
Ilia Alshanetsky f896c7eeae MFH 2003-04-18 00:20:36 +00:00
foobar 74348caba2 MFH 2003-04-17 23:20:58 +00:00
Jay Smith bd62bcf18b MFH: fix some segfaults in some pg_lo_* functions 2003-04-17 16:55:56 +00:00
foobar 42c98ab6c8 touch 2003-04-17 02:46:02 +00:00
Ilia Alshanetsky 0ec69ef808 Integer overflow stuff. 2003-04-16 23:57:56 +00:00
Ilia Alshanetsky 59a1c7dcf5 safe_emalloc() and few other integer overflow fixes. 2003-04-16 23:49:45 +00:00
foobar c8e2b9ebfe BFN 2003-04-16 23:45:11 +00:00
Ilia Alshanetsky aac21de8ae Bug fixing news. 2003-04-16 23:32:20 +00:00
Ilia Alshanetsky db59a7414e MFH 2003-04-16 23:31:39 +00:00
Moriyoshi Koizumi dd6c7bb240 MFH(r-1.226, r-1.24, r-1.99, r-1.68): fixed implicit cast issue 2003-04-16 22:57:15 +00:00
Moriyoshi Koizumi e486cb60bc BFN 2003-04-16 21:13:28 +00:00
Moriyoshi Koizumi 9500c0c776 MFH(r-1.9): fixed bug #19795 2003-04-16 21:11:04 +00:00
Moriyoshi Koizumi 68cde46c9f MFH(r-1.10): fixed typo 2003-04-16 20:03:43 +00:00
Moriyoshi Koizumi 4c37bb0be8 MFH(r-1.137): compiler warning fix & possible 64bit fix 2003-04-16 19:19:13 +00:00
Marcus Boerger 3859a66d14 update 2003-04-16 19:17:27 +00:00
Marcus Boerger 486af716be safe_emalloc() 2003-04-16 19:14:29 +00:00
Marcus Boerger c0bffe6dcf MFH: prepare for safe_emalloc 2003-04-16 19:12:10 +00:00
Marcus Boerger b4b0bd3a69 Correcting fix for safe_emalloc 2003-04-16 18:25:35 +00:00
Marcus Boerger ae8c6a816a Use safe_emalloc but as macro until the function is fixed 2003-04-16 18:20:27 +00:00
Moriyoshi Koizumi e8713cc150 MFH(r-1.136): fixed bug #23080 2003-04-16 17:32:41 +00:00
Sascha Schumann e533fe138b fix two uninitialized reads 2003-04-16 13:44:05 +00:00
Sascha Schumann aa6e7433bc MFH 2003-04-16 13:37:54 +00:00
Sascha Schumann 90bb834ed1 Accessing "stream" after freeing it is not a good idea
==32692== Invalid read of size 4
==32692==    at 0x80CAFB3: _php_stream_free (/home/sas/src/php4/main/streams.c:395)
==32692==    by 0x80CE096: _php_stream_cast (/home/sas/src/php4/main/streams.c:2244)
==32692==    by 0x80CEDD4: _php_stream_open_wrapper_as_file (/home/sas/src/php4/main/streams.c:2684)
==32692==    by 0x80C1C6E: php_fopen_wrapper_for_zend (/home/sas/src/php4/main/main.c:761)
==32692==    Address 0x414487EC is 44 bytes inside a block of size 116 free'd
==32692==    at 0x401622FB: free (vg_clientfuncs.c:182)
==32692==    by 0x80DB337: _efree (/home/sas/src/php4/Zend/zend_alloc.c:265)
==32692==    by 0x80CAFAF: _php_stream_free (/home/sas/src/php4/main/streams.c:393)
==32692==    by 0x80CE096: _php_stream_cast (/home/sas/src/php4/main/streams.c:2244)
2003-04-16 12:55:21 +00:00
Sascha Schumann 86f292bc00 MFH 2003-04-16 12:44:54 +00:00
Jan Lehnardt f251532caa - MFH 2003-04-16 12:05:43 +00:00
Sascha Schumann 72a2ec5d85 MFH 2003-04-16 09:21:45 +00:00
Sascha Schumann 9ba9ff7b17 Simplify use of this header in external apps 2003-04-16 09:12:37 +00:00
Sascha Schumann 856b482bab add missing check 2003-04-16 05:23:21 +00:00
foobar 38cb520533 MFH 2003-04-16 02:24:53 +00:00
foobar 8e9b151720 MFH 2003-04-16 02:19:25 +00:00
foobar d720b0c631 missing dot. :) 2003-04-16 01:52:47 +00:00
Ilia Alshanetsky ee957ac447 Bug fixing news. 2003-04-16 01:08:11 +00:00
Ilia Alshanetsky b6972e5890 MFH 2003-04-16 01:07:20 +00:00
Ilia Alshanetsky e25f73df9c Bug fixes. 2003-04-16 00:59:44 +00:00
Ilia Alshanetsky e28bc16c5b MFH 2003-04-16 00:58:53 +00:00
foobar f95c4cb8bb BFN 2003-04-15 04:27:24 +00:00
Shane Caraveo 1ee0cac2d9 fix http://bugs.php.net/bug.php?id=22004
use Sascha's suggestion, works the same, likely better :)
2003-04-15 04:14:21 +00:00
Shane Caraveo 5c19a5499b fix http://bugs.php.net/bug.php?id=22004 2003-04-15 04:01:48 +00:00
Ilia Alshanetsky fb9e0bb965 Bug fixing news. 2003-04-15 01:34:54 +00:00
Ilia Alshanetsky 1a97d39a61 Fixed bug #23201 (set_file_buffer() crashes with stdio streams).
#Already in PHP 5.0 no need for MFH
2003-04-15 01:30:59 +00:00
Ilia Alshanetsky 9e37e7adfb MFH 2003-04-15 01:00:00 +00:00
Marcus Boerger 5c4dca7424 MFH: Fixed Bug #23188 CDB databases created with 'c' mode do not work. 2003-04-14 21:53:42 +00:00
Ilia Alshanetsky 5e0efd3caa bug fixing news. 2003-04-14 13:56:30 +00:00
Ilia Alshanetsky d346b4ba9b MFH 2003-04-14 13:55:53 +00:00
Jesus M. Castagnetto 31071bdd6c Updating the PHP_4_3 branch with the fix for bug #2306. 2003-04-14 12:37:59 +00:00
Masaki Fujimoto 12e8ae3adb - fixed bug-id 2003-04-14 05:29:22 +00:00
foobar 49f3b54810 style 2003-04-14 01:52:45 +00:00
Marcus Boerger e2fdfb6c19 MFH: make it static 2003-04-13 20:31:16 +00:00
Marcus Boerger dcdaf1e9a0 Inform abot.. 2003-04-13 20:27:45 +00:00
Marcus Boerger 7f5ff80c86 MFH: reenable dba_popen 2003-04-13 20:16:14 +00:00
Sascha Schumann 171aaf4e8d MFH 2003-04-13 20:14:08 +00:00
Marcus Boerger 9cc234e979 MFH: persistent stream closing 2003-04-13 20:13:34 +00:00
Sascha Schumann 500cf0a542 MFH bison 1.875b patch 2003-04-13 20:10:32 +00:00
SVN Migration b724a873e9 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-04-13 19:50:29 +00:00
Moriyoshi Koizumi c77c03b751 MFH 2003-04-12 22:29:14 +00:00
Moriyoshi Koizumi bbd9c931b0 MFH(r-1.141): strip_tags() is also binary-safe now.
# the change was already MFHed.
2003-04-12 21:30:47 +00:00
Stig Bakken 7bfabbae52 MFH 2003-04-11 23:48:39 +00:00
Wez Furlong c6db0221c4 BFN. 2003-04-11 11:12:14 +00:00
Wez Furlong e1a54c8d10 MFH: Fix for Bug #23069 2003-04-11 11:10:39 +00:00
Derick Rethans 3cba4261fa - MFH: proto fix 2003-04-11 09:54:39 +00:00
Ilia Alshanetsky 39c03bc2c5 segv fix. 2003-04-11 02:41:26 +00:00
Ilia Alshanetsky 22e0811f2c MFH 2003-04-11 02:40:28 +00:00
Christian Stocker d7a3529ead comment xmlMemoryDump() out (only needed for debugging) 2003-04-10 13:11:00 +00:00
Christian Stocker 7241d18de1 MFH.
- Fixed memleaks in domxml_doc_add_root, domxml_xslt_stylesheet
  and domxml_xslt_stylesheet_doc
- Completed implementation of domxml_doc_imported_node.
2003-04-10 12:46:11 +00:00
Stanislav Malyshev bf5d11b44e MFH path_translated 2003-04-10 11:35:07 +00:00
Ilia Alshanetsky 9ee32440ad MFH 2003-04-10 04:35:51 +00:00
Ilia Alshanetsky 729d43f733 More integer overflows. 2003-04-10 03:27:34 +00:00
Ilia Alshanetsky 0c0482d59c MFH (fix of Win32 build by Sebastian Bergmann) 2003-04-10 02:11:20 +00:00
Marcus Boerger 00366c63fc MFH 2003-04-09 20:36:44 +00:00
Marcus Boerger d8d9e16711 MFH: cli/ini/html_errors/info (they are related) 2003-04-09 20:27:55 +00:00
Rasmus Lerdorf a86c9bbd24 Oops, there is no _FORM auto-global. We changed this to _REQUEST ages ago. 2003-04-09 17:45:38 +00:00
Derick Rethans cb9a33bc14 - MFH: html output for Zend Extension version strings 2003-04-09 15:22:45 +00:00
Edin Kadribasic 9b0239178c Fixed bug #22521.
HAVE_OCI8_SHARED_MODE causes segfaults on startup on many configurations.
2003-04-09 12:00:54 +00:00
Christian Stocker 1a3e5a816b fixed some memleaks when using attribute nodes (Rob Richards) 2003-04-09 07:33:19 +00:00
Ilia Alshanetsky ff21c392f3 MFH 2003-04-09 01:55:56 +00:00
Marcus Boerger 99637508f9 MFH: erroneous newline at start 2003-04-08 23:04:36 +00:00
Christian Stocker c48e8e5116 MFH (fixes memleaks in element->get_elements_by_tagname & document->get_elements_by_tagname) 2003-04-08 19:30:46 +00:00
Christian Stocker 9b9ec7ad1e Fixes/Additions done for domxml 2003-04-08 18:41:38 +00:00
Christian Stocker d7f0682135 Big Patch with a lot of mem-leak fixes
- Attribute nodes are freed/generated correctly
- xsltstylesheets are freed correctly
- xpathregister doesn't leak anymore
- parser/xsltglobals cleanup at MSHUTDOWN
- Added DomDocument->free() for removing documents during script-time
2003-04-08 18:26:50 +00:00
Ilia Alshanetsky aa6810479e exif reminder 2003-04-08 00:22:37 +00:00
Ilia Alshanetsky 84e44e9759 Bug fixing news. 2003-04-08 00:20:08 +00:00
Ilia Alshanetsky e49440bb73 MFH 2003-04-08 00:19:29 +00:00
foobar 4f45925b23 BFN 2003-04-07 22:52:46 +00:00
foobar be8da1111e BFN 2003-04-06 22:42:38 +00:00
foobar 2527cce052 MFH: Fixed bug #23071 (when DST in effect, date("T") crashed PHP) 2003-04-06 22:37:58 +00:00
Moriyoshi Koizumi 18939dd676 MFH(r-1.5): improved zmemcheck macro so it displays the size of each memory
block too.
2003-04-06 18:40:46 +00:00
Moriyoshi Koizumi 1a645aa637 MFH(r-1.4): improved readability of zmemcheck output 2003-04-06 18:12:36 +00:00
Moriyoshi Koizumi 8b67ff4348 MFH(r-1.2) 2003-04-06 17:54:31 +00:00
SVN Migration 3a9322c32a This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-04-06 17:53:18 +00:00
Marcus Boerger c8ff4f2262 MFH: version collating 2003-04-05 20:49:09 +00:00
foobar d9fe90785e MFH 2003-04-05 17:47:17 +00:00
foobar a4fe7b11ee MFH 2003-04-05 17:34:04 +00:00
Ilia Alshanetsky 863a441fba GD news. 2003-04-05 17:24:48 +00:00
Ilia Alshanetsky edea55ecd7 MFH (gd upgrade). 2003-04-05 17:24:16 +00:00
Marcus Boerger bdd3fbf67a MFH: Include ldd output 2003-04-05 12:19:56 +00:00
Sascha Schumann 55c86cbdb9 MFH 2003-04-05 11:40:40 +00:00
Sascha Schumann 4bfdbfb167 MFH 2003-04-05 11:22:44 +00:00
Moriyoshi Koizumi 6ccaefd48d MFH: added check for struct cmsghdr. now sockets extension can be built
under cygwin
2003-04-04 18:40:38 +00:00
foobar fdee9fe213 MFH: Fixed bug #22944 (--with-java "make install" fails) 2003-04-04 17:43:13 +00:00
foobar 8e6f5fe353 Fix bug #23048, CURLOPT_ENCODING is not always available 2003-04-04 16:18:15 +00:00
Moriyoshi Koizumi aa00851aa4 MFH(r-1.135): fixed memleak in socket_select() 2003-04-04 14:18:31 +00:00
Moriyoshi Koizumi 2b85acd861 Sorry, forgot these ones 2003-04-04 09:15:18 +00:00
Moriyoshi Koizumi 004746d842 renumbering 2003-04-04 09:13:28 +00:00
Moriyoshi Koizumi 216784bcc3 segfault busting news
replacing one tab to 4 spaces
2003-04-04 09:11:28 +00:00
Moriyoshi Koizumi 1cdedb63bd MFH(r-1.55): added missing sanity check, which was causing segfault. 2003-04-04 09:07:02 +00:00
Ilia Alshanetsky 49f0382490 MFH 2003-04-04 01:34:08 +00:00
Ilia Alshanetsky 50f76f501c Notes about various possible integer overflows in bundled gd library. 2003-04-04 01:17:35 +00:00
Ilia Alshanetsky 1525ff177f More gd stuff. 2003-04-04 00:44:34 +00:00
Ilia Alshanetsky 2ea7d06455 Fixed segv as well as info about new segvs in gd. 2003-04-04 00:29:37 +00:00
Ilia Alshanetsky f5ea07ce61 MFH 2003-04-04 00:16:54 +00:00
foobar ce99003ae1 MFH 2003-04-03 23:10:17 +00:00
Sascha Schumann 0200c77d7e one in socket_select 2003-04-03 20:07:40 +00:00
Sascha Schumann 4033fe903d augment summary with fixes which predate the list 2003-04-03 19:46:26 +00:00
Sascha Schumann 4849145b66 add chunk_split 2003-04-03 19:33:55 +00:00
Sascha Schumann bfaf2a8f36 another one fixed, a new one found 2003-04-03 19:21:50 +00:00
Sascha Schumann f8b07fbbac MFH 2003-04-03 19:19:25 +00:00
Sascha Schumann 08abb7213c fix 2003-04-03 18:55:54 +00:00
Sascha Schumann f31d157ce7 update regarding dbase extension 2003-04-03 18:52:35 +00:00
Sascha Schumann 868602b5ab Update - we purged the full list\! 2003-04-03 18:22:14 +00:00
Sascha Schumann 5d420d7bb7 MFH 2003-04-03 18:19:52 +00:00
Sascha Schumann 50d2474660 MFH 2003-04-03 18:10:41 +00:00
Rasmus Lerdorf 92cc078907 Clean up the parameter handling here 2003-04-03 15:57:30 +00:00
Derick Rethans fe93cf1b9a - CS 2003-04-03 06:21:21 +00:00
Moriyoshi Koizumi 7333bc8f82 Unable to reproduce.. 2003-04-03 01:04:13 +00:00
Moriyoshi Koizumi 9f8701ac58 segfault busting news 2003-04-03 01:01:35 +00:00
Moriyoshi Koizumi 55c5c4b362 MFH(r-1.117): fixed segfault in xml_parser_create() 2003-04-03 01:01:09 +00:00
Ilia Alshanetsky 51f2ad15f4 Bug fixing news. 2003-04-03 00:56:45 +00:00
Ilia Alshanetsky f4dd99e8b8 Fixed bug #23004 (When ftp_close() is called, sent QUIT to the ftp server) 2003-04-03 00:55:45 +00:00
Moriyoshi Koizumi 485c71abf7 MFH(r-1.152): fixed memleak in output buffering facility 2003-04-03 00:51:14 +00:00
Moriyoshi Koizumi c8948bf677 Removed i18n_convert() from the entries because that is an alias for
mb_convert_encoding()
2003-04-03 00:20:15 +00:00
Rasmus Lerdorf 77102efc79 Update 2003-04-03 00:16:51 +00:00
Moriyoshi Koizumi e64002e9ef MFH(r-1.38): fixed segfault in mb_ereg_match() 2003-04-03 00:15:58 +00:00
Moriyoshi Koizumi 043a1f5b36 MFH(r-1.37): fixed lots of crashes in mbregex 2003-04-03 00:05:01 +00:00
Rasmus Lerdorf bb0637213f Negative precision makes no sense, so check for that, but let the memory
manager error out on huge non-negative precision args
2003-04-02 23:50:41 +00:00
Rasmus Lerdorf b3ac7b808d Fix unregister_tick_function crash 2003-04-02 23:09:39 +00:00
Rasmus Lerdorf ae3616fba8 Get rid of bogus dtors 2003-04-02 22:06:46 +00:00
Rasmus Lerdorf 50c22695cd Fix the setlocale() segfault 2003-04-02 21:31:52 +00:00
foobar 7a5badecbf BFN 2003-04-02 17:35:23 +00:00
Edin Kadribasic 21390b3bf6 BFN 2003-04-02 12:38:43 +00:00
Edin Kadribasic 95ee73b7bf MFH 2003-04-02 12:36:36 +00:00
foobar 086a4fda17 MFH. (See bug #21995) 2003-04-02 11:42:16 +00:00
Christian Stocker e131b99b2a Patch for Bug #22774 by Rob Richards 2003-04-02 10:30:05 +00:00
Marcus Boerger 7dab648426 MFH 'auto' 2003-04-02 08:34:56 +00:00
Ilia Alshanetsky cd2968d0db MFH 2003-04-02 00:25:57 +00:00
Jay Smith 930347763b @- Fixed bug #23009 (pg_select with timestamp). (Marcus, Jay)
MFH
2003-04-02 00:00:09 +00:00
Jay Smith 1548b1ebf4 MFH 2003-04-01 23:28:18 +00:00
Rasmus Lerdorf 7e8039ef0d Arbitrarily limit array_pad() to only do 1 million elements at a time.
Probably still too high, but it solves the segfault for now.
2003-04-01 21:44:47 +00:00
Sascha Schumann d1c0cc7f47 s/0/FAILURE/ 2003-04-01 19:15:47 +00:00
Sascha Schumann d484c0ebf8 Fix an uninitialised read for ob_start(array()) 2003-04-01 19:13:40 +00:00
Rasmus Lerdorf 8ff4b67307 Argh!!! I guess nobody has ever looked at this code. 2003-04-01 19:10:35 +00:00
Rasmus Lerdorf 14aa0e7495 Fix exif crashes 2003-04-01 18:47:01 +00:00
Rasmus Lerdorf bf0c1962d9 Update (not fixed in HEAD because the API for this function needs to
change in PHP5.  It is moronic the way it is now)
2003-04-01 18:26:14 +00:00
Rasmus Lerdorf 724429c759 Ok, really fix socket_iovec_alloc() this time 2003-04-01 18:12:24 +00:00
foobar 00d6a6d8c2 BFN 2003-04-01 15:38:40 +00:00
foobar 5d5755af7c MFH: Fixed bug #22987 (missing perror() check in configure) 2003-04-01 15:36:21 +00:00
Sascha Schumann f373bcafd3 more insight re. ob_start bug 2003-04-01 13:02:46 +00:00
Sascha Schumann 91fb452012 The ob_start issue is reproducible. 2003-04-01 12:54:48 +00:00
Sascha Schumann 6e84cdacd1 editing 2003-04-01 12:43:45 +00:00
Sascha Schumann b5da4730a3 Overview of open issues and how to reproduce 2003-04-01 12:38:35 +00:00
Moriyoshi Koizumi 2726272b68 MFH(r-1.170): fixed crash in mb_convert_encoding() that occurs when a void
array is passed as the third parameter.
# thanks Sascha
2003-04-01 11:50:31 +00:00
Sascha Schumann 9b8fbc368c fix VPATH builds 2003-04-01 10:16:50 +00:00
Sascha Schumann ac125fa07f MFH register_shutdown_function fix 2003-04-01 10:03:19 +00:00
Sascha Schumann 1f4e9b8eb7 No need for shtool 2003-04-01 08:05:39 +00:00
Sascha Schumann 5e0a6b43fc Fix segfault in flock() 2003-04-01 07:53:05 +00:00
Sara Golemon 640dc6721c MFH(r1.71) Bug #22962 2003-04-01 06:23:22 +00:00
foobar 086c418737 BFN & houshold 2003-03-31 23:29:30 +00:00
foobar 21a600c569 MFH: Fixed bug #22989 (sendmail not found by configure) 2003-03-31 23:21:56 +00:00
Brian France 5555498304 Fixes the problem where argv and argc are not populated unless S
is in the variables_order, even if register_argc_argv is on.
2003-03-31 21:24:59 +00:00
Moriyoshi Koizumi dd426eb391 MFH(r-1.161): fixed proto to sync with the documentation 2003-03-31 20:37:15 +00:00
Moriyoshi Koizumi 6ec674deb7 MFH(r-1.10): rearranged search order for the magic file to avoid further
confusions
2003-03-31 19:49:37 +00:00
David Hill 8e15876ed5 Changing parsedate to be reentrant using pure_parse (Dave) 2003-03-31 14:40:46 +00:00
Sander Roobol ec0b8b8639 MFH remove bogus test 2003-03-31 14:34:50 +00:00
David Hill e98163546d Correcting checking of flex version (Dave) 2003-03-31 14:01:55 +00:00
foobar 666d9dea2c cleanup 2003-03-31 08:49:30 +00:00
Sascha Schumann c334a7fe0b MFH TS issue, noticed by Sebastian Bergmann 2003-03-31 05:39:45 +00:00
Sascha Schumann 1f0a9a2c0c MFH 2003-03-31 03:24:45 +00:00
Ilia Alshanetsky 42f35b8783 Bug fixing news. 2003-03-30 20:48:48 +00:00
Ilia Alshanetsky 334da52d65 MFH 2003-03-30 20:48:14 +00:00
Sascha Schumann 9daf234fef MFH 2003-03-30 18:36:46 +00:00
Rasmus Lerdorf a6072a2b76 No point calling the RSHUTDOWN hook here unless we are actually going
to do something in it.
2003-03-30 18:05:40 +00:00
Moriyoshi Koizumi bb4a3f979b MFH 2003-03-29 16:18:11 +00:00
Moriyoshi Koizumi 651808e3dd MFH(r-1.223): CS & WS fixes 2003-03-29 16:14:41 +00:00
Moriyoshi Koizumi ecc0759032 MFH(r-1.436): improved bison check; now configure accepts 1.28, 1.35 and 1.75
only.
2003-03-29 15:56:25 +00:00
Moriyoshi Koizumi e9a6358d8d MFH: fixed test cases so it wouldn't be failed in case register_globals=on 2003-03-29 07:14:26 +00:00
Derick Rethans 80ba3f416f MFH 2003-03-28 21:08:58 +00:00
Moriyoshi Koizumi c4521dfb2f MFH(r-1.222): do the right fix.. 2003-03-28 18:25:01 +00:00
Moriyoshi Koizumi b7875715ce MFH(r-1.221): fixed bug #22773 2003-03-28 17:55:08 +00:00
Harald Radi ff65578160 fix #22899
invoke is called twice
2003-03-27 19:56:09 +00:00
Shane Caraveo ce2edd18c7 MFH 2003-03-27 17:57:58 +00:00
Edin Kadribasic f85ea33a98 BFN 2003-03-27 13:32:45 +00:00
Edin Kadribasic 9ff0a9f23e Fixed bug #22083. 2003-03-27 13:29:59 +00:00
foobar d9e4d36c48 MFH 2003-03-27 13:16:34 +00:00
Rasmus Lerdorf 15d4bfd607 Make sure we never pass a negative arg to emalloc
(once again, this API needs to be fixed, so this is just for 4.3)
2003-03-25 19:26:18 +00:00
Sebastian Bergmann b7cfe4b5a6 MFH 2003-03-25 17:18:24 +00:00
Rasmus Lerdorf f461ad12fb Restrict this function to a max of 65k io vectors to avoid weird
overflows.  Purely an arbitrary number.  This API needs cleaning up,
but it would break BC and I don't want to do that in 4.3.
2003-03-25 15:54:26 +00:00
Ilia Alshanetsky db230015b8 MFH 2003-03-25 15:35:27 +00:00
Martin Jansen 1ce0aca43e * MFH 2003-03-25 14:41:38 +00:00
foobar 1c0de7be96 MFH: Made "--with-pear" "--disable-all"-aware. Plus some cosmetics fixes. 2003-03-25 13:43:56 +00:00
Edin Kadribasic ec127efd14 php_fbsql.dll hasn't been successfully built at least from 4.1.x.
Related to #22859.
2003-03-25 10:19:44 +00:00
foobar 64e2082f39 - MFH: not pretty name (bug #22853) 2003-03-25 01:38:50 +00:00
Ilia Alshanetsky 86306178c5 MFH 2003-03-25 01:34:39 +00:00
Edin Kadribasic a5274daf1f Patch by Nathan Fredrickson <nathan@silverorange.com>:
Remove unneeded library from the link stage and add a couple of missing
defines which are part of libintl.
2003-03-24 21:46:58 +00:00
Moriyoshi Koizumi f8ff0d2cb4 MFH: fixed bug #22834 (compile failure due to ugly implicit casts) 2003-03-24 21:22:57 +00:00
Moriyoshi Koizumi 5f0e06e89c NFN 2003-03-24 19:42:20 +00:00
Rasmus Lerdorf e120dab4f2 Fix arg list segfault 2003-03-24 19:28:58 +00:00
Moriyoshi Koizumi 1d71c7b86e MFH(r-1.1): oops... 2003-03-24 19:25:14 +00:00
Moriyoshi Koizumi 88bbfc9975 MFH(initial): added test cases for new functionality 2003-03-24 19:22:18 +00:00
SVN Migration 9c617f52f6 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-03-24 19:21:21 +00:00
Moriyoshi Koizumi 5945ba1c6d MFH(r-1.76): added koi8-r, cp866, and cp1251 support for htmlentities()
Patch by Antony Dovgal <tony2001 at phpclub dot net>
2003-03-24 19:15:16 +00:00
Ilia Alshanetsky c89afb6539 MFH 2003-03-24 15:21:57 +00:00
Ilia Alshanetsky b544c99344 Bug fixing news. 2003-03-24 14:54:52 +00:00
foobar bb0a9b3208 MFH 2003-03-24 11:21:26 +00:00
foobar 718d337c64 blah.. 2003-03-24 10:59:47 +00:00
Uwe Schindler 25dc000e41 PHP_WIN32 included 2003-03-24 10:33:47 +00:00
foobar 1f77ab10fc MFH: Fixed bug #18640 properly 2003-03-24 10:18:16 +00:00
Wez Furlong ceed7b9d77 MFH curl detection when multiple installations exist 2003-03-23 18:16:12 +00:00
Moriyoshi Koizumi 7ebc888513 MFH(r-1.7): added some compiler check 2003-03-23 01:45:28 +00:00
Moriyoshi Koizumi 06b796783c MFH(r-1.5): fixed win32 build with non-SBCS locale settings. 2003-03-22 23:45:20 +00:00
Shane Caraveo cecc66d17b MFH 2003-03-22 18:54:56 +00:00
Christian Stocker c479e904dd fix for bug #22786 ("Crash when trying to call DomAttribute's set_namespace method") 2003-03-20 09:43:09 +00:00
Wez Furlong 893c567e35 Fix for persistent stream shutdown in debug builds. 2003-03-20 00:55:58 +00:00
Wez Furlong 6aecc88543 This little fragment didn't get merged from head... 2003-03-19 19:27:52 +00:00
foobar 7480c6ac91 MFH 2003-03-19 16:53:25 +00:00
foobar b5930ec988 BFN 2003-03-19 08:23:02 +00:00
foobar 2f47425d71 MFH: Fixed bug #22775 (Fatal errors exit with status 0 with CGI/CLI) 2003-03-19 08:22:35 +00:00
Wez Furlong a0b0182016 Fix my fix.
# The perils of manual merging :/
2003-03-19 01:34:38 +00:00
Wez Furlong ea59c6262d Manual merge of persistent stream sanity check from php5. 2003-03-19 00:18:12 +00:00
Wez Furlong 4a8de5c704 Manual merge of the persistent plain file streams code.
See http://news.php.net/article.php?group=php.cvs&article=19680 for
more information.
2003-03-18 23:39:31 +00:00
Marcus Boerger 8c86b7e323 MFH 2003-03-18 22:43:00 +00:00
Wez Furlong c51569c3b6 WS Fix: I forgot to apply Q} to my comment. 2003-03-18 22:25:02 +00:00
foobar aef81e78a0 MFH: fix for bug #22765 2003-03-18 17:31:55 +00:00
Wez Furlong ca552c2618 Avoid using FILE* unless we have to. 2003-03-18 16:39:06 +00:00
Wez Furlong 55b4052887 BFN 2003-03-18 15:21:33 +00:00
Wez Furlong 217d3e39c6 Fix my 64-bit casting fix.
MFH Fix for #22721 - poor performance for file() on systems without mmap
support.
2003-03-18 14:41:46 +00:00
foobar a6c9ed61a6 BFN 2003-03-18 02:15:22 +00:00
foobar fdc6b229a6 MFH: Fixed bug #22751 (Compile error in gdcache when external libgd is used) 2003-03-18 02:14:22 +00:00
foobar 0b4182d8ad BFN 2003-03-18 01:26:16 +00:00
foobar afa7fa58d7 MFH: Fix for bug #22672 2003-03-18 01:24:57 +00:00
Ilia Alshanetsky de93525d7d MFH 2003-03-17 22:26:51 +00:00
Ilia Alshanetsky c2c3eaf5a7 MFH 2003-03-17 18:47:29 +00:00
Ilia Alshanetsky 768f515afc Bug fixing news. 2003-03-17 18:33:30 +00:00
foobar 7ae1572b39 MFH 2003-03-17 15:56:31 +00:00
foobar af3950d196 BFN 2003-03-17 15:19:30 +00:00
Wez Furlong 03777d2784 MFH Fix for Bug #21310 2003-03-17 13:50:23 +00:00
foobar 25e8d3215d MFH 2003-03-17 12:43:36 +00:00
foobar ba7b405913 Note about apache2 change 2003-03-17 10:00:46 +00:00
foobar 183f99038a MFH: - Fixed bug #22709 (crash within interbase when database unavailable) 2003-03-16 00:38:51 +00:00
Marcus Boerger 388607dc2d MFH bugfix #21751 2003-03-16 00:03:27 +00:00
Moriyoshi Koizumi 273d7623a6 MFH: added test for bug #22592 2003-03-15 23:37:53 +00:00
SVN Migration 15703e7fb8 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-03-15 23:37:18 +00:00
Wez Furlong 37aafafc7d 64 bit fixes 2003-03-15 13:25:38 +00:00
foobar c4db6427f4 MFH 2003-03-15 00:45:44 +00:00
foobar 03188dfd50 MFH: "allow_webdav_methods" does not exist / is not needed anymore 2003-03-15 00:26:43 +00:00
foobar bac7bb82b0 MFH: No c++ comments 2003-03-14 17:50:02 +00:00
foobar d4a01a8524 MFH: no c++ comments 2003-03-14 17:40:55 +00:00
Moriyoshi Koizumi 2fdf127a6f MFH: fixed typo 2003-03-14 17:14:08 +00:00
Derick Rethans 9f2cd8d5f2 - Explain that it is interbase related (Thanks to Andrey) 2003-03-14 13:01:29 +00:00
Derick Rethans f7c7e4cadb - BFN 2003-03-14 11:51:31 +00:00
Daniela Mariaschi ff9fc7aa3f reverting to 1.8.4.1 2003-03-14 10:47:58 +00:00
Daniela Mariaschi 688f6d1b9d MFH 2003-03-13 23:21:49 +00:00
foobar 7cd06114f1 BFN shortening 2003-03-13 22:54:48 +00:00
Edin Kadribasic 6659396dc6 Document removal of gd1 support on windows. 2003-03-13 22:32:16 +00:00
Edin Kadribasic 5dc55d66fc Drop support for php_gd.dll (gd1).
The default build (gd.dsp) is now bundled gd2.
2003-03-13 22:23:10 +00:00
Edin Kadribasic 156ab40baa Disable building of apache2filter (obsoleted by handler). 2003-03-13 22:03:20 +00:00
Daniela Mariaschi 05afcba8e7 Numeric/decimal datatype overflow on Win32
Fixed bug #20641
2003-03-13 22:02:10 +00:00
Edin Kadribasic f38526321b Make apache2 handler produce php4apache2.dll which should work as a
drop in replacement for the filter. Remove max_request_per_child from
minfo() since that function is not exported by win32 version of apache2
lib.
2003-03-13 22:01:43 +00:00
Martin Jansen 288d19ae0a * Also fix #21845 in the release branch.
# This is *no* complete MFH, I just applied the patch in the other branch.
2003-03-13 21:10:26 +00:00
Sara Golemon 779cc0f8d4 BFN 2003-03-13 20:25:01 +00:00
Jay Smith 0af96031de MFH 2003-03-13 18:51:53 +00:00
Ilia Alshanetsky 84dcdc880f Bug fixing news. 2003-03-13 18:16:21 +00:00
Ilia Alshanetsky 57a32b2825 MFH 2003-03-13 18:15:39 +00:00
foobar 690439a295 MFH 2003-03-13 17:27:40 +00:00
Sara Golemon d03df22d4c MFH (Bug 21534) 2003-03-13 16:18:10 +00:00
foobar 4730528a95 We should get this out before April.. 2003-03-12 22:36:30 +00:00
foobar 1ab395eed3 - Backup to 4.3.2RC 2003-03-12 22:21:25 +00:00
foobar 9ea0fff51d - Bump the version to RC1. 2003-03-12 22:18:22 +00:00
Stefan Esser 60963ffe6c MFH 2003-03-12 12:01:01 +00:00
Ilia Alshanetsky 22e1885d29 MFH 2003-03-12 04:46:15 +00:00
foobar 900584ec7f MFH 2003-03-12 04:30:01 +00:00
foobar b1d3a4d6cd MFH 2003-03-12 04:16:31 +00:00
foobar bdaed8f51a MFH 2003-03-12 02:26:58 +00:00
foobar 367c917d80 MFH 2003-03-12 01:10:01 +00:00
Ilia Alshanetsky 062a5863c0 MFH (XBM patch by Marcus Börger) 2003-03-12 01:02:41 +00:00
SVN Migration 0a2f05f09b This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-03-12 00:51:04 +00:00
foobar 16106bd1f7 OnUpdateLong is only in php5/HEAD. (oops! :) 2003-03-11 17:22:31 +00:00
Moriyoshi Koizumi 2185951cbb Fixed bug #22634 (broken cygwin build) 2003-03-11 16:53:28 +00:00
foobar 06c9c4d205 BFN 2003-03-11 03:12:37 +00:00
foobar 8a3bd41416 MFH: - Fixed bug #20715 (odbc could not be compiled as shared extension) 2003-03-11 03:11:52 +00:00
Sascha Schumann 3aced8a7d4 fix sizeof(size_t) > sizeof(uint) issue 2003-03-11 02:32:29 +00:00
foobar e21f147cb9 BFN 2003-03-11 02:13:00 +00:00
foobar ff33d897d5 MFH: Fixed bug #22616 (Wrong order of -lssl and -lcrypto with IMAP) 2003-03-11 02:12:17 +00:00
Sascha Schumann bb30c3ad73 reverting jani's non-sense commits 2003-03-11 01:50:18 +00:00
foobar 9f34a5beca MFH 2003-03-10 23:13:03 +00:00
Ilia Alshanetsky 05ce493547 Bug fixing news. 2003-03-10 19:09:22 +00:00
Ilia Alshanetsky bfa3967c70 MFH 2003-03-10 19:07:49 +00:00
David Hill a9cf0f46fc fixing missed int to long with zend_parse_parameters 2003-03-10 15:57:07 +00:00
foobar cddddbe04c - MFH: use shtool mkdir always. 2003-03-10 14:33:10 +00:00
David Hill 9ec2c33e9d 64-bit corrections to parameters to OnUpdateInt Bug #20994 (Dave)
@64-bit corrections to parameters to OnUpdateInt Bug #20994 (Dave)
2003-03-10 13:35:36 +00:00
foobar 4648e756a9 - MFH: apache2handler sapi module
- Changed apache2filter to use --with-apxs2filter
2003-03-10 03:17:04 +00:00
Shane Caraveo 9dfd6c8779 fix line endings in file 2003-03-10 02:40:19 +00:00
Shane Caraveo 95987aedb2 fix using stdin. This was already fixed in php5. 2003-03-10 02:35:59 +00:00
foobar 4f7a06cf66 MFH 2003-03-10 02:17:06 +00:00
foobar 8c92d6574c no c++ comments.. 2003-03-10 02:10:18 +00:00
Shane Caraveo d1c5e9706f line endings on win32 made the var_dump'ed string 4 bytes longer. this should work on all platforms. 2003-03-10 01:23:10 +00:00
Shane Caraveo 4fc121ad7f splitting on whitespace will be different depending on platform, so be specific with the line ending. 2003-03-10 01:10:52 +00:00
Shane Caraveo 58c67323da make test happy by adding missing functions to avoid warnings, taken from user_stream.c 2003-03-10 00:14:11 +00:00
Derick Rethans f27049afb6 - No C++ comments! (Patch by Magnus) 2003-03-09 19:15:16 +00:00
Uwe Schindler da7b2d970d Changes for iPlanet Webserver 6 2003-03-09 12:08:36 +00:00
Derick Rethans a758078ce5 - MFH: Fixed a bug in GD's truecolor TTF handling. 2003-03-08 18:28:08 +00:00
Stefan Esser 20c9225f64 MFH 2003-03-08 15:24:47 +00:00
foobar 2492aba147 MFH: Fix for bug #22473 2003-03-07 18:58:34 +00:00
foobar cc44d7c3d6 Added note about the 64bit fixes 2003-03-07 18:41:42 +00:00
Uwe Schindler c138b63720 credits update 2003-03-07 17:08:06 +00:00
Ilia Alshanetsky e34d5dd3e8 Bug fixing news. 2003-03-07 14:08:54 +00:00
Ilia Alshanetsky 52967f54b9 MFH 2003-03-07 14:08:06 +00:00
David Hill 45a1a3037a 64-bit correction to variables passed to zend_parse_parameters
@64-bit correction to variables passed to zend_parse_parameters (Dave)
2003-03-07 13:42:30 +00:00
foobar f760f7b6b3 MFH 2003-03-07 06:18:27 +00:00
foobar 67b6b9781f MFH 2003-03-07 04:32:49 +00:00
Stefan Esser 5f142e88fb MFH 2003-03-06 20:59:27 +00:00
Moriyoshi Koizumi 011ea824da MFH 2003-03-06 19:37:32 +00:00
foobar 94e6ceec58 MFH 2003-03-06 16:29:15 +00:00
SVN Migration d391faffe6 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-03-06 16:29:06 +00:00
foobar 41ab6de3aa I was bored.. 2003-03-05 18:48:04 +00:00
Ilia Alshanetsky 7559d17ec1 Bug fixing news. 2003-03-05 17:03:03 +00:00
Ilia Alshanetsky 2cc9d8537f MFH 2003-03-05 17:00:25 +00:00
Ilia Alshanetsky 98c17e6cee GD news. 2003-03-05 16:24:05 +00:00
Ilia Alshanetsky 9b8cdd7fe9 MFH 2003-03-05 16:19:18 +00:00
SVN Migration 66736faf95 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-03-05 16:19:09 +00:00
foobar d63aa79f79 MFH 2003-03-05 16:12:41 +00:00
Ilia Alshanetsky 52e84a5f0b MFH 2003-03-05 16:08:21 +00:00
Ilia Alshanetsky 68679a9d0e Synchronized bundled gd with gd 2.0.11 (bug fixes).
MFH
  1) Use Zend allocation macros instead of native allocation functions.
  2) Better error reporting mechanism.
  3) Some style fixes, which allow easier code synchronization & maintenance.
2003-03-05 16:04:20 +00:00
Corne' Cornelius 81b97d6f8e - MFH: 1.88 2003-03-05 13:20:44 +00:00
Corne' Cornelius f42ff6e563 - MFH: 1.87 2003-03-05 09:39:53 +00:00
Moriyoshi Koizumi 3c0d44c580 MFH: added missing phpinfo entry (Russian support) 2003-03-05 06:16:54 +00:00
Wez Furlong c106213d5c Fix some signed/unsigned issues with read() and SSL_read() return values.
Allow SSL_connect() to retry for non-blocking sockets.
Correctly declare the char as unsigned for php_stream_getc(), as per
fgetc() semantics.
2003-03-05 01:28:45 +00:00
Moriyoshi Koizumi e46f133a2b MFH: Added a test case for bug #22510 2003-03-04 19:52:48 +00:00
SVN Migration 668d8f88c1 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-03-04 19:52:23 +00:00
foobar 3dece9cd5c MFH 2003-03-04 19:00:11 +00:00
Moriyoshi Koizumi 26cb6a8d20 MFH: 64bit fix 2003-03-04 17:20:27 +00:00
Moriyoshi Koizumi a8b620a91f MFH: 64bit long fix 2003-03-04 17:14:56 +00:00
Ilia Alshanetsky 802a410834 MFH 2003-03-04 16:35:02 +00:00
Ilia Alshanetsky ed2ea558a8 Bug fixing news. 2003-03-04 16:22:00 +00:00
Ilia Alshanetsky e32ebf58c7 MFH 2003-03-04 16:20:51 +00:00
Ilia Alshanetsky 276a43792c Compiler warning fix. 2003-03-04 16:20:24 +00:00
Ilia Alshanetsky 114afad93d MFH 2003-03-04 16:09:17 +00:00
foobar 47ea35f85b adding news entry for disable_classes addition 2003-03-04 14:24:48 +00:00
Christian Stocker 161db1b519 make it really W3C compatible (unlink node, when in tree...) 2003-03-04 13:29:18 +00:00
Edin Kadribasic 8d2773e188 Update credits. 2003-03-03 21:56:51 +00:00
Edin Kadribasic 03ab5315d5 BFN 2003-03-03 21:30:19 +00:00
Edin Kadribasic 17479b8a0f Enabled mcrypt_generic_deinit() on windows (#22520) 2003-03-03 21:23:48 +00:00
Harald Radi 9c4f6365b8 MFH: adding disable_classes ini directive 2003-03-03 01:54:29 +00:00
Harald Radi fc25077468 MFH: adding placeholder for the new disable_classes directive 2003-03-03 01:31:48 +00:00
foobar 3e983d2bc6 MFH 2003-03-02 18:52:37 +00:00
foobar 3daa76dd25 MFH 2003-03-02 18:51:10 +00:00
foobar 5ae27dbe85 MFH: fix bug #22485 2003-03-02 18:47:54 +00:00
Ilia Alshanetsky 095595dd61 New function news. 2003-03-02 14:38:54 +00:00
Pierre Joye d33ceff2a5 Update credits 2003-03-01 01:16:00 +00:00
Pierre Joye 61dd954da2 MFH imageistruecolor, imagesavealpha 2003-03-01 01:15:47 +00:00
Rasmus Lerdorf 70432e3bef @- Crash bug fix. If config-file-scan-dir is set and contains .ini files
but there is no top php.ini file, we would get a segfault.  (Rasmus)
2003-02-28 20:44:47 +00:00
Moriyoshi Koizumi 18e06aefee Was actually an ucwords() problem... 2003-02-28 13:32:46 +00:00
foobar 659a5ca923 BFN 2003-02-28 10:23:05 +00:00
Hartmut Holzgraefe dcb20d8fd6 MFphp5 2003-02-28 08:43:51 +00:00
foobar 488f38424e BFN 2003-02-28 07:35:58 +00:00
foobar 7323b80041 - MFH: Fixed bug #22312 (crash on failed connection when curl_getinfo() was called).
(Phil Oleson <poleson@verio.net>)
2003-02-28 07:35:11 +00:00
Hartmut Holzgraefe a14adbcafe MFphp5 2003-02-28 06:51:31 +00:00
Ilia Alshanetsky 0570451948 MFH 2003-02-27 20:38:22 +00:00
Ilia Alshanetsky c1170b27fc Bug fixing news. 2003-02-27 16:42:42 +00:00
Ilia Alshanetsky 01ad5f9b94 MFH 2003-02-27 16:41:44 +00:00
Sascha Schumann 97301cbc36 MFH 2003-02-27 10:07:59 +00:00
Corne' Cornelius 92600eeb76 - MFH: Segfault in ifx_errormsg() 2003-02-27 09:00:52 +00:00
Rasmus Lerdorf a731bd9f44 Get rid of an unnecessary syscall on non-Windows. We don't need two
setitimer() calls here in order to reset the timer.
2003-02-26 22:17:35 +00:00
Hartmut Holzgraefe af2589e943 MFphp5 2003-02-26 17:38:03 +00:00
Moriyoshi Koizumi 6b0adb932b BFN: the fix was actually done by Ilia. 2003-02-25 18:56:53 +00:00
Moriyoshi Koizumi 4308ba9e42 MFH(r1.72): int / long change
Fixed bug #22301 (htmlspecialchars crashes on Tru64)
2003-02-25 18:51:21 +00:00
Ilia Alshanetsky 87b3063593 MFH 2003-02-25 16:26:55 +00:00
SVN Migration 6d4e490ae1 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-02-25 16:21:01 +00:00
foobar 2fa25b8799 MFH 2003-02-25 11:48:57 +00:00
foobar 35839a5f96 BFN 2003-02-25 11:25:00 +00:00
foobar 0f88e33c05 MFH: Fixed bug #21224 (apache configure fails when using --enable-versioning) 2003-02-25 11:23:24 +00:00
foobar ee5fe8f38d BFN 2003-02-25 09:46:24 +00:00
foobar 2c486990c6 MFH: Fixed bug #20256 (snprintf() not defined on some systems) 2003-02-25 09:45:47 +00:00
foobar cf2fe4d2da MFH: typofix 2003-02-25 07:41:05 +00:00
Corne' Cornelius c3b452be51 MFH 2003-02-25 07:09:11 +00:00
Corne' Cornelius 1a920b4b19 MFH: 1.30 2003-02-25 06:56:28 +00:00
foobar e964bb3779 BFN 2003-02-25 06:37:18 +00:00
foobar fd5f2b33a9 MFH: Fixed bug #14245 ('make install' fails on AIX when using --with-apxs). 2003-02-25 06:36:21 +00:00
foobar 3d8e6218ef MFH 2003-02-25 04:37:08 +00:00
Ilia Alshanetsky f713b0d8b0 Bug fixing news. 2003-02-25 04:21:26 +00:00
Ilia Alshanetsky c0eb65d6be MFH 2003-02-25 04:20:44 +00:00
Ilia Alshanetsky 71d140e992 MFH (fix for crash in gdImageCopyMergeGray()). 2003-02-25 03:53:22 +00:00
Moriyoshi Koizumi 1cabc773e4 MFH: made fgetss() binary safe too 2003-02-24 22:48:39 +00:00
Moriyoshi Koizumi 6708c4d24d MFH: made strip_tags() binary safe 2003-02-24 22:47:12 +00:00
Ilia Alshanetsky c663066261 Bug fixing news. 2003-02-24 19:42:38 +00:00
Ilia Alshanetsky f19bd6bf3f MFH 2003-02-24 19:41:40 +00:00
Moriyoshi Koizumi 033bea7a29 MFH: added test case for bug #22367 2003-02-24 19:38:33 +00:00
SVN Migration 5112f925df This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-02-24 19:37:28 +00:00
Harald Radi 152bcb4e6d fix memleak and wrong refcounting 2003-02-24 18:30:20 +00:00
Moriyoshi Koizumi c6a8a1bf04 MFH 2003-02-24 16:56:25 +00:00
Moriyoshi Koizumi ea23f45b36 MFH(r1.74): fixed an signed / unsigned issue 2003-02-24 16:30:14 +00:00
Moriyoshi Koizumi e0217033e4 MFH(r1.73): style fix 2003-02-24 16:19:44 +00:00
foobar 1e8876bdad MFH: Possible fix for #22259 + part 1/2 for fixing AIX DSO bug 2003-02-24 16:16:57 +00:00
foobar f49b5760eb - Removing pointless tests. (both of these will be fixed in PHP 5)
# We don't need to get any test reports about these anymore
# for PHP_4_3 branch since these won't be fixed in 4.3.x.
2003-02-24 16:04:05 +00:00
foobar f89ebf69bf MFH 2003-02-24 15:12:11 +00:00
foobar c96af79b53 no c++ comments 2003-02-24 08:26:49 +00:00
Corne' Cornelius 3df90156fd - MFH: Fixed ifx_errormsg() Segfault 2003-02-24 07:45:59 +00:00
foobar 0c52aed751 MFH 2003-02-24 04:37:15 +00:00
foobar a9a4668b92 MFH: fixed compile warning 2003-02-24 03:27:16 +00:00
Ilia Alshanetsky bb2f10122c Bug fixing news. 2003-02-24 03:18:26 +00:00
Ilia Alshanetsky 1544debc9f MFH 2003-02-24 03:15:54 +00:00
SVN Migration 240b4d18e3 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-02-24 03:13:26 +00:00
foobar 49664eb29a BFN 2003-02-24 01:31:24 +00:00
George Schlossnagle e7155c5f3d MFH fix for 19919 2003-02-24 01:29:54 +00:00
Rasmus Lerdorf fc069fb51b open_basedir fixes from David Saez 2003-02-23 22:03:54 +00:00
Stig Bakken 18843133b8 * MFH: upgrading XML_Parser to 1.0.1 2003-02-23 11:05:17 +00:00
SVN Migration ef667d12e1 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-02-23 11:03:39 +00:00
foobar b8547bbff0 Fixed bug #22356 (Do not add empty -I flags). 2003-02-23 09:36:47 +00:00
foobar 51eac9d194 MFH 2003-02-23 08:14:34 +00:00
foobar a4ef92e0ec BFN 2003-02-23 07:35:57 +00:00
foobar ca2cd45607 MFH: - Fixed bug #22376 (wrong httpd.conf modified when using INSTALL_ROOT) 2003-02-23 07:34:32 +00:00
foobar b79c07099f MFH 2003-02-23 02:40:07 +00:00
SVN Migration a9b5596a02 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-02-23 02:39:52 +00:00
Wez Furlong 935a58c3a2 Correct a bug number - thanks to Philip... 2003-02-22 20:51:13 +00:00
Wez Furlong 753e0cf3dd Squashed those ugly bugs! 2003-02-22 11:30:06 +00:00
Wez Furlong bd55197721 Miscellaneous streams fixes, including probable fixes for:
Bug #21131 (fopen with 'a+' and rewind() doesn't work)
Bug #21713 (include remote files leaks temporary files + descriptors on Solaris)
Bug #21185 (move_uploaded_file() does not ignore open_basedir as it should)
Bug #22362 (combinations of fwrite(), fread() and fseek() produce unexpected results)
2003-02-22 02:43:58 +00:00
foobar 1abd496ccf fixed headers and cleaned up a bit 2003-02-21 10:42:01 +00:00
foobar a3ad6e8426 ZTS build fixes, style and ws fixes 2003-02-21 06:49:56 +00:00
foobar 193021f8f6 MFH 2003-02-21 06:49:36 +00:00
foobar fd2483fe83 MFH: ZTS build fixes 2003-02-21 06:46:55 +00:00
foobar 040839d34b Fix ZTS build 2003-02-21 04:58:09 +00:00
Moriyoshi Koizumi 3f67551437 BFN 2003-02-20 17:57:54 +00:00
Moriyoshi Koizumi 80aadb9e77 MFH(r1.165): Fixed bug #22330 (overloaded strrpos() weirdness) 2003-02-20 17:54:10 +00:00
Corne' Cornelius 395e90b16b @- Added Input Descriptor Binding to Informix driver. (Corne')
- Added Input Descriptor Binding
  . (php_intifx_init_blob) Added
  . (php_intifx_init_blob_inmem) Added
  . (php_intifx_init_blob_infile) Added
  . (php_intifx_release_blob) Added
  . (php_intifx2_free_blob) Removed
  . (php_intifx_create_tmpfile) Removed bid parameter
  . (php_intifx_alloc_ibind) Added
  . (php_intifx_preparse) Added
  . (php_intifx_count_descriptors) Added
  . (ifx_free_blob) Added as le_idresult resource destructor
  . (php_intifx_create_blob) Changed: added call to php_intifx_init_blob() and
                             removed blob initilisation in function
  . (php_intifx_copy_blob) Changed: added call to php_intifx_init_blob() and
                           removed blob initilisation in function
  . (php_intifx_update_blob) Changed mempy() to use lob_bufsize instead of loc_size
                             Changed filename to be memcpy() instead of creating
                             new file
  . (PHP ifx_query) Changed: added input descriptor binding
  . (PHP ifx_prepare) Changed: added input descriptor binding
  . (PHP ifx_do) Chagned: added input descriptor binding
  . (PHP ifx_fetch_row) Changed the way blobs are accessed/init'd from
                        Ifx_Result->res_id[]
2003-02-20 12:09:21 +00:00
Corne' Cornelius be563c3140 #- Changed sizes of char[] in IFX_RES: connecid, cursorid, descrpid, statemid
from 16 to 32 to prevents possible overflow
2003-02-20 11:57:29 +00:00
Harald Radi 41f25857bb fixing bugs #22295, #22218 and #22162 (duplicates) 2003-02-20 11:34:26 +00:00
Sascha Schumann f63d9b778f merge minor differences from head 2003-02-20 08:32:41 +00:00
foobar 8ea1d52d7a style fix 2003-02-20 07:14:23 +00:00
foobar c511afe310 BFN 2003-02-20 07:12:02 +00:00
foobar 77e48a2801 MFH: Fixed bug: #22306 (pg_lo_seek($h, 0, PGSQL_SEEK_SET) succeeds but returns false) 2003-02-20 07:10:48 +00:00
Sascha Schumann 9220edbf14 update 2003-02-20 06:55:35 +00:00
Sascha Schumann 8d9da24365 MFH general urlencoding
MFH session_regenerate_id, a change which is as important as the former one
2003-02-20 06:24:08 +00:00
foobar fdc6323b34 MFH 2003-02-20 06:17:11 +00:00
foobar 92d2462660 BFN 2003-02-20 05:36:54 +00:00
foobar c61f4fe7b3 MFH: - Fixed bug #22299 (gethostbyname() crash with non-existing domain on MacOSX) 2003-02-20 05:35:18 +00:00
Ilia Alshanetsky 7de39b3377 Bug fixing news. 2003-02-20 00:35:42 +00:00
Ilia Alshanetsky 3d67565aed MFH 2003-02-20 00:34:24 +00:00
foobar accaef402b BFN 2003-02-20 00:15:55 +00:00
foobar e7b71d3932 dirent.h needs to be included always. 2003-02-19 18:45:03 +00:00
Marc Boeren 157ab1fd10 MFH: Fix for bug #22221 2003-02-19 16:52:05 +00:00
Harald Radi 5a6bacea03 MFH 2003-02-19 16:17:34 +00:00
Harald Radi d39c73dba2 remove php5ts workspace from PHP_4_3 branch 2003-02-19 11:04:54 +00:00
Sascha Schumann 614a83e555 some improvements 2003-02-19 11:01:38 +00:00
foobar fd631013d9 MFH: prevent conflicts with other libraries (e.g. libc-client) 2003-02-19 09:28:37 +00:00
Moriyoshi Koizumi fe2506a5ff MFH: fix incorrect TSRMLS_CC 2003-02-19 08:12:25 +00:00
foobar 5f2c98c566 MFH: avoiding problems.. 2003-02-19 06:35:57 +00:00
Ilia Alshanetsky c2176e0843 Bug fixing news. 2003-02-19 00:50:36 +00:00
Ilia Alshanetsky eb4e27f356 MFH 2003-02-19 00:49:38 +00:00
Moriyoshi Koizumi 25eff603b1 BFN 2003-02-18 18:15:44 +00:00
Moriyoshi Koizumi 2c09220992 MFH(r1.359): Fixed bug #21708 2003-02-18 18:14:32 +00:00
Moriyoshi Koizumi c85abb1789 BFN 2003-02-18 15:26:20 +00:00
Moriyoshi Koizumi 42bf45cee1 MFH(r1.307): Fixed bug #21689 2003-02-18 15:22:46 +00:00
foobar e2c593c928 Sanity check to prevent errors in other extensions tests. 2003-02-17 22:44:47 +00:00
foobar d3f8b43799 MFH 2003-02-17 18:16:49 +00:00
foobar 9c6c9f8fcd Bump up the version. 2003-02-17 00:02:11 +00:00
Anil Madhavapeddy 5f607a11a9 MFH 2003-02-16 01:32:30 +00:00
foobar 3a2a0b1c4c - Remove all of it.
# Ian, this was really unnecessary..
2003-02-15 22:20:55 +00:00
Ian Holsman f6cf0fce5c After short discussion, the #php.bugs mob decided that we don't want
this in PHP_4_3 branch. At least as long as it doesn't work as well
    (or preferrably better :) than the apache2filter SAPI does.

    So please remove it from the branch for now..

    --Jani
2003-02-15 22:16:03 +00:00
foobar 6809236f2b BFN 2003-02-15 20:42:49 +00:00
Stig Bakken 5c988b679e * import PEAR 1.0.1 2003-02-15 20:28:54 +00:00
foobar ad54620a27 MFH: Fix for bug #22220 2003-02-15 20:23:12 +00:00
Moriyoshi Koizumi 4382065fad B.F.N. 2003-02-15 20:00:03 +00:00
Moriyoshi Koizumi b298ce0dd0 MFH(r1.155): Fixed bug #22234 2003-02-15 19:59:26 +00:00
Moriyoshi Koizumi af1432d9a8 B.F.N. 2003-02-15 16:00:20 +00:00
Moriyoshi Koizumi 68b0858da6 MFH(r1.65): Fixed bug #22227
MFH: Added test case for bug #22227
2003-02-15 15:59:13 +00:00
SVN Migration e572e41cff This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-02-15 15:57:32 +00:00
Wez Furlong f133f366e2 bug fixed. 2003-02-15 15:16:58 +00:00
Moriyoshi Koizumi 37a4fa83fb MFH: added test case for bug #22231 2003-02-15 15:15:45 +00:00
SVN Migration ac73fa6482 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-02-15 15:15:15 +00:00
Wez Furlong f695a4c3b6 MFH: Fix for Bug #21809 (select() never times out during socket shutdown) 2003-02-15 15:11:57 +00:00
Edin Kadribasic 9c90d59fc0 Option -b needs an argument. This fixes #22229.
# Note -b still seems to be broken:
# sapi/cgi/php -b 4444
# Status: 404
# Content-type: text/html
# X-Powered-By: PHP/4.3.1-dev
#
# No input file specified.
2003-02-15 13:26:05 +00:00
Ian Holsman dd15de6bda alternate apache2 SAPI. 2003-02-15 05:49:31 +00:00
Moriyoshi Koizumi d98f4b5a6a Slight fix for consistency 2003-02-14 19:48:57 +00:00
Marcus Boerger ba0a3f5673 MFH: xbm improvements 2003-02-14 19:46:21 +00:00
Moriyoshi Koizumi 7ad4a8f0b5 BFN 2003-02-14 19:44:02 +00:00
Moriyoshi Koizumi e62a2145bb Fixed wrong commit: s/&/*/ 2003-02-14 19:07:38 +00:00
Moriyoshi Koizumi 6d47746e5a MFH(r1.358): Fixed a str_replace() bug similar to bug #22224 2003-02-14 19:00:43 +00:00
Moriyoshi Koizumi c81a6322c1 MFH(r1.357): Fixed bug #22224
MFH: Added test case for the bug
2003-02-14 18:44:51 +00:00
SVN Migration 36bc1fb617 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-02-14 18:42:37 +00:00
foobar fdd1cf4772 Added missing $Id$ tag 2003-02-14 14:38:01 +00:00
foobar 20156b84eb - MFH, do not add libcrypt if crypt() is provided by libc. 2003-02-14 01:27:42 +00:00
Sara Golemon 261860cfec Buf #22052 More casual efree()ing causing segfaults 2003-02-13 22:18:20 +00:00
Wez Furlong c6fa04834c Fix for Bug #22199 (fputs() + fgets() destroys readbuffer for non-seekable streams). 2003-02-13 21:03:25 +00:00
foobar 9b4f865e5d MFH 2003-02-13 20:58:41 +00:00
foobar b3140b0218 typofix 2003-02-13 20:08:52 +00:00
Sara Golemon 4a27c8a032 MFH(Bug 22059, ftp.c-r1.77) 2003-02-13 19:51:02 +00:00
Ilia Alshanetsky faaaabb640 MFH 2003-02-13 19:07:55 +00:00
SVN Migration 8b9c2fbc66 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-02-13 19:07:21 +00:00
foobar bed6a98112 MFH 2003-02-13 18:50:44 +00:00
SVN Migration 5d0e8a70bb This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-02-13 18:49:58 +00:00
Shane Caraveo 40e365b239 MFH 2003-02-13 18:21:23 +00:00
Wez Furlong 45894683e9 MFH: Another IS_SLASH fix. 2003-02-13 17:37:17 +00:00
Wez Furlong 26d4841366 MFH: relative path fix for win32 2003-02-13 17:32:41 +00:00
Ilia Alshanetsky 7fd1152dea Bug fixing news. 2003-02-13 17:27:28 +00:00
Ilia Alshanetsky c2187f4f17 MFH 2003-02-13 17:26:02 +00:00
SVN Migration 10198da7d0 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-02-13 17:25:32 +00:00
foobar 66aa7f76d8 altering history.. 2003-02-13 17:00:28 +00:00
Harald Radi 4fb6c33182 add missing include 2003-02-13 16:48:44 +00:00
Wez Furlong 6f8da6f3b3 MFH: clarify error message 2003-02-13 14:43:19 +00:00
Wez Furlong 398b912ca5 partial MFH: avoid problems with auto_detect_line_endings. 2003-02-13 13:42:31 +00:00
Wez Furlong ffb1961064 MFH: cli should be allowed to use chroot() function. 2003-02-13 13:37:05 +00:00
Uwe Steinmann 991af2d2f0 - Some functions with objects as its parameters didn't recognize them
as such
2003-02-13 10:56:50 +00:00
foobar 7c5adc1bb8 MFH 2003-02-13 07:48:00 +00:00
foobar 2413a30578 MFH 2003-02-13 07:19:15 +00:00
foobar 840d327139 - MFH: improved jpeg 2000 and wbmp support for getimagesize() 2003-02-13 07:16:55 +00:00
foobar 8ea2a50279 clean.. 2003-02-13 05:45:01 +00:00
Sascha Schumann 69a24f699d MFH 2003-02-13 02:30:54 +00:00
Sascha Schumann ac9dd33e9a MFH 2003-02-13 02:25:35 +00:00
Wez Furlong 9ebca1715b Fixed that one... 2003-02-13 01:27:13 +00:00
Wez Furlong fa0e1a6363 MFH: Fix for Bug #21815 2003-02-13 01:23:39 +00:00
Sara Golemon c6b71544a4 Reverting earlier patch to reintroduce buggy behavior (yes, you heard that right) of filtered http streams in favor of
performance.  This has little consequence given limited filter support in 4.3 branch.  Filters will be redesigned in
5.0 release. For more information see Wez, Ilia, or myself.
2003-02-13 00:42:06 +00:00
Ilia Alshanetsky 7e94fe102c Bug fixing news. 2003-02-12 20:45:52 +00:00
Ilia Alshanetsky 8879087461 MFH 2003-02-12 20:44:26 +00:00
foobar 11260dc9d7 MFH 2003-02-12 17:09:47 +00:00
foobar 4a7e9488dd MFH 2003-02-12 16:19:08 +00:00
foobar 53532f9ec2 add blame tag 2003-02-12 16:03:48 +00:00
Ilia Alshanetsky 263c27f1ea Bug fixing news. 2003-02-12 14:59:54 +00:00
Ilia Alshanetsky b1593177fd MFH 2003-02-12 14:58:30 +00:00
foobar 983479603c MFH 2003-02-12 04:39:30 +00:00
SVN Migration cbd263dafe This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-02-12 04:38:31 +00:00
foobar 75efe4efbb MFH: Moved from HEAD :) 2003-02-12 04:08:50 +00:00
foobar fcace76909 MFH 2003-02-12 04:05:33 +00:00
foobar 4fc8d5412d MFH: Use $(INSTALL) for installing shared extensions. 2003-02-12 03:25:29 +00:00
foobar 7a7c43c72b MFH 2003-02-12 03:15:04 +00:00
Moriyoshi Koizumi 9c7635228f MFH: reverted my patch & applying a new patch by Stefan Esser 2003-02-11 23:30:13 +00:00
Ilia Alshanetsky 0aa95a722a Bug fixing news. 2003-02-11 22:59:39 +00:00
Ilia Alshanetsky 35ae0bfaa2 MFH 2003-02-11 22:57:50 +00:00
foobar 552da2b7f2 MFH 2003-02-11 21:11:51 +00:00
foobar 10c80a1344 fugbix news 2003-02-11 15:50:32 +00:00
foobar 948c33ba88 MFH 2003-02-11 03:24:56 +00:00
foobar ed36254fcc Moved one entry from HEAD here.. 2003-02-11 03:08:10 +00:00
foobar 4b541216e3 fugbix news 2003-02-11 02:45:28 +00:00
foobar 532ec10636 MFH: - Fixed bug: #21549 (problem with Ingres II persistent connections) 2003-02-11 02:43:25 +00:00
Sascha Schumann 01f0478750 MFH 2003-02-11 02:35:34 +00:00
Moriyoshi Koizumi c8d4018067 MFH: fixed zlib.output_compression 2003-02-11 02:26:37 +00:00
Sascha Schumann 04e25c59f7 MFH BUFF check 2003-02-11 02:25:48 +00:00
Frank M. Kromann b99ce6c644 Bug #20426. Convert SMALLDATETIME correct 2003-02-11 01:23:49 +00:00
Sascha Schumann eb09c03ae1 MFH prefix ps_module changes 2003-02-11 01:16:03 +00:00
Sascha Schumann 55d7aa9142 MFH, fully selfcontained, my risk 2003-02-11 01:00:59 +00:00
foobar 9d20219f73 dots..I love ya.. 2003-02-11 00:11:59 +00:00
Moriyoshi Koizumi 5173670675 MFH: fixed possible buffer overflow in 64bit systems 2003-02-10 20:13:36 +00:00
Moriyoshi Koizumi d4a0d6f6a5 dot dot dot.. 2003-02-10 19:55:39 +00:00
Moriyoshi Koizumi 8aa0debb6e Fixed typo 2003-02-10 19:52:56 +00:00
Sara Golemon 4b5fb9c99b Bug 22141 2003-02-10 19:47:04 +00:00
Sara Golemon d631657862 Partial MFH. Deprecated BM algo for str_replace can hang execution. See Bug#22141 2003-02-10 19:37:27 +00:00
Melvyn Sopacua 385729ef2a Make sure we're not buffering stuff 2003-02-10 18:49:02 +00:00
foobar 984380543e - MFH: libtool upgrade to 1.4.3
# For some reason those other files were not up-to-date in this branch..
2003-02-10 17:12:17 +00:00
Harald Radi e9d17fba59 18 times the speed of light 2003-02-10 00:58:07 +00:00
Harald Radi e7609d54be fixed memleak 2003-02-10 00:45:15 +00:00
foobar af8557850b MFH 2003-02-10 00:22:20 +00:00
foobar 3df73b303e MFH (ws fixes, but merged to ease any fix patch merging) 2003-02-09 23:48:59 +00:00
foobar b7e4606a73 MFH 2003-02-09 23:30:08 +00:00
foobar 8fc9bfc66e MFH: Fixed _SERVER[] variables, memleaks 2003-02-09 23:27:50 +00:00
foobar 4b2f06a0fa sex with punctuation mark.. 2003-02-09 22:56:47 +00:00
Kai Schroeder 77e3df17cc fix for #17928 2003-02-09 21:42:31 +00:00
Sascha Schumann 6cfa5ae855 MFH 0/-1 changes 2003-02-09 21:28:49 +00:00
Ilia Alshanetsky 7ec507dec2 Bug fixing news. 2003-02-09 20:51:16 +00:00
foobar fd66d44562 MFH 2003-02-09 19:58:18 +00:00
foobar 50ac9e5aef MFH: fixed compile failures when ZLIB/PCRE are compiled as shared in same
build.
2003-02-09 19:10:32 +00:00
foobar ac4554b8c8 MFH 2003-02-09 18:47:30 +00:00
foobar 2cd330b733 MFH: Fix for bug #22131 2003-02-09 14:59:29 +00:00
Kai Schroeder 33db0681c8 newlines changed 2003-02-09 13:26:00 +00:00
Kai Schroeder ddd2ce19ec getopt() is currently not available on Windows 2003-02-09 13:23:10 +00:00
Kai Schroeder f1f5996447 there are no symlinks on Windows 2003-02-09 13:20:34 +00:00
SVN Migration 215e66b8d6 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-02-09 13:20:18 +00:00
Kai Schroeder d956ec06f2 is_executable() does not exist on Windows 2003-02-09 13:18:13 +00:00
Kai Schroeder 24bbf22171 die() to skip second message 2003-02-09 12:34:07 +00:00
Kai Schroeder 9675190c46 MSVC's mktime() does not examine the existence of a daylight-saving-time zone 2003-02-09 12:28:31 +00:00
Derick Rethans eef3cdf70b - Whitespace fixes 2003-02-09 12:14:31 +00:00
Kai Schroeder bdde9d0aa2 test for mktime() 2003-02-09 12:11:01 +00:00
Kai Schroeder 2108d66d2b Windows does not support dates prior to midnight, January 1, 1970 2003-02-09 12:09:42 +00:00
Kai Schroeder 1306b02625 skip for Windows (does not support dates prior to midnight, January 1, 1970) 2003-02-09 12:07:42 +00:00
Kai Schroeder 7cb5be80be Windows doesn't know timezone CET 2003-02-09 12:05:58 +00:00
Frank M. Kromann bcf2e083cc cleanup variable initializations 2003-02-09 09:40:56 +00:00
Frank M. Kromann ed7d034849 Fixing coredump when no php.ini file is used 2003-02-09 08:32:54 +00:00
Yasuo Ohgaki f834ec6410 MFH 2003-02-09 07:50:31 +00:00
Frank M. Kromann 7ce83ed0ca DBFLT4 is not defined in FreeTDS. Needed for real data types 2003-02-09 07:49:34 +00:00
Frank M. Kromann f9712217d8 Fixing autodetect of FreeTDS 2003-02-09 07:48:40 +00:00
Yasuo Ohgaki e54ec4b8d2 MFH 2003-02-09 07:24:36 +00:00
Frank M. Kromann 7145b24e59 Bug #21707 problem with real 2003-02-09 07:18:27 +00:00
Frank M. Kromann 2b51649f74 Fixing build with GD 2.0.11 2003-02-09 06:27:08 +00:00
Frank M. Kromann a0a0428b34 Adding missing HAVE_GD_STRINGFTEX define 2003-02-09 06:26:45 +00:00
Frank M. Kromann 1ae32f0c2d Adding some missing defines to enable functions.
Fixing bug #22130
2003-02-09 05:47:06 +00:00
Sascha Schumann afaecf4140 MFH 2003-02-08 18:59:38 +00:00
Marcus Boerger 16add2cb7a MFH: manpage for this version 2003-02-08 15:27:33 +00:00
Pierre Joye 2475dbc759 MFH:
Add gdImageEllipse
Replace gdImageFilledEllipse by a new function (backported from
the new phpgd)
the new gdImageFilledEllipse fix bug bug #22103 (ellipse part)
2003-02-08 08:54:11 +00:00
Sara Golemon bc517aaa2a MFH(r-1.59) 2003-02-08 01:36:52 +00:00
SVN Migration 9547f33a8e This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-02-07 22:12:03 +00:00
Dan Kalowsky 8d1923852a Patch for Bug #21279 submitted by ernani@php.net 2003-02-07 02:58:31 +00:00
Sara Golemon 90175ea1d8 MFH(r-1.51) 2003-02-06 22:23:36 +00:00
foobar c6f204ab79 MFH 2003-02-06 16:21:24 +00:00
foobar 55090ad3f8 fugbix news 2003-02-06 15:29:27 +00:00
foobar 2e9cafa7e5 MFH: - Fixed bug #22088 (array_shift() leaves next index to be +1 too much) 2003-02-06 15:28:28 +00:00
foobar c9d1212cf2 MFH 2003-02-06 15:24:08 +00:00
foobar be72d3fe1b MFH 2003-02-06 15:05:19 +00:00
SVN Migration f3627d1d8d This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-02-06 15:04:54 +00:00
Andrey Hristov 6cd12c25ee added entry for memory_get_usage(). 2003-02-06 14:36:58 +00:00
Andrey Hristov 3d913d6143 Backporting memory_get_usage() from HEAD.
As far as the code is small there won't be any problems.
2003-02-06 14:34:07 +00:00
Sara Golemon f757c17b2f FMH(r-1.49/r-1.50) 2003-02-04 21:39:50 +00:00
foobar bf496a03cf reorder the bug fixes (reverse #). added missing bug fixing news 2003-02-04 19:07:09 +00:00
Sara Golemon d558e94c93 MFH(r-1.48) (Bug#13551) 2003-02-04 19:02:02 +00:00
Ilia Alshanetsky a6a0ae3e74 Bug fixing news. 2003-02-04 18:35:55 +00:00
Ilia Alshanetsky 16f626702d MFH 2003-02-04 18:34:10 +00:00
foobar bdfee70cec Added missing bugfix news entry. 2003-02-04 10:10:25 +00:00
Ilia Alshanetsky b6813a0898 MFH 2003-02-03 22:48:35 +00:00
Ilia Alshanetsky aa55dcf8f5 MFH 2003-02-03 21:24:48 +00:00
Ilia Alshanetsky d92f023f4d MFH 2003-02-03 20:56:28 +00:00
foobar a51420ddc8 MFH: Fix bug: #22035 (EXTRA_LDFLAGS for AIX not quite right) 2003-02-03 17:35:39 +00:00
foobar 90dce5bec5 fugbix news 2003-02-03 17:01:16 +00:00
foobar ef6658864a MFH: Fixed bug: #21998 (array_pop() did not reset the current array position) 2003-02-03 16:58:08 +00:00
Moriyoshi Koizumi af4be723b2 MFH: fixed proto 2003-02-03 16:54:38 +00:00
foobar d4223acfed MFH 2003-02-03 16:52:15 +00:00
Moriyoshi Koizumi e7a663d137 MFH: fixed test case for mb_strpos() 2003-02-03 16:17:29 +00:00
foobar 01ef5c86f1 MFH 2003-02-03 13:08:19 +00:00
foobar 34c712bae0 MFH: Fixed bug: #22011 (-n must ignore all ini files) 2003-02-03 12:25:47 +00:00
foobar 93ca6a350e MFH 2003-02-03 11:45:55 +00:00
Giuseppe Tanzilli 008dc0c248 Fix sapi/servlet build on Unix 2003-02-03 09:04:09 +00:00
foobar bfd4ad90ed MFH: added test for bug #21998 2003-02-03 06:44:21 +00:00
SVN Migration 06049c7753 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-02-03 06:43:09 +00:00
Sara Golemon 98f4eed1d4 MFH(r-1.50/r-1.51) 2003-02-03 03:47:00 +00:00
Ilia Alshanetsky 1baeaf9201 MFH 2003-02-02 23:09:40 +00:00
Ilia Alshanetsky e2b1618571 MFH 2003-02-02 20:27:01 +00:00
Zeev Suraski f70be2a9a7 Fix phpinfo() display of Zend extensions 2003-02-02 15:51:37 +00:00
Marcus Boerger c1e7c349c5 MFH: Change DBM detection order 2003-02-01 22:19:31 +00:00
Marcus Boerger 692fc9d24a MFH: include file handling and dbm fixes 2003-02-01 19:01:13 +00:00
Melvyn Sopacua 6b0b91474a MFH: Bug #21892 (links to apache2 install instructions missing) 2003-02-01 11:21:14 +00:00
Ilia Alshanetsky 43e6623c3d MFH 2003-01-31 22:27:28 +00:00
Marcus Boerger 13e162eb04 MFH: Version info 2003-01-31 20:10:11 +00:00
Marcus Boerger 05e397b330 MFH: Shared dba requires at least db-3.3 2003-01-31 20:07:23 +00:00
Frank M. Kromann 283efd226d Rename script.
Add check for CLI version
2003-01-31 18:50:41 +00:00
Melvyn Sopacua 4be86f6c14 "The ugly patch"
Make mcrypt compile, when we finally are free of -ltdl. Bug #20926.

# There's a variant, with a config option, but that's an ugly word(tm)
2003-01-31 15:06:45 +00:00
Moriyoshi Koizumi 56107bb783 MFH: fixed a mb_send_mail() bug.
# sorry for mixing WS fix
2003-01-31 14:28:44 +00:00
foobar 49ad4ad943 Moved from HEAD. 2003-01-31 14:23:56 +00:00
foobar 3744c31519 MFH all changes as requested by Maxim. 2003-01-31 14:21:19 +00:00
Sascha Schumann 34c7b71a89 MFH obsolete warning 2003-01-31 07:47:10 +00:00
Frank M. Kromann fcb3b7d6b9 Wrapper script to execute ext_skel on WIn32 2003-01-31 01:01:51 +00:00
Frank M. Kromann a7851234a7 Allow extensions to be loaded on win32 2003-01-31 01:01:06 +00:00
Frank M. Kromann 79dcd3c4cf Adding Win32 project file 2003-01-31 01:00:42 +00:00
Marcus Boerger e7605bb420 MFH: revert partly 2003-01-30 21:38:15 +00:00
Sascha Schumann 6eb3a0ff12 Partial MFH: Fix sticky eof issue, and avoid calling system stat macro 2003-01-30 21:11:29 +00:00
foobar 856dafbe36 MFH: fix bug: #21945 (zts build failed) 2003-01-30 19:30:34 +00:00
Marcus Boerger c4ba0d56d2 MFH: Allow to link against chosen modules correctly 2003-01-30 18:31:36 +00:00
Ilia Alshanetsky 998c64cc5d MFH 2003-01-29 19:33:56 +00:00
Edin Kadribasic 81586fed7d MFH 2003-01-29 15:42:43 +00:00
foobar d2549b91aa ordered all bug fixes by the number :) 2003-01-29 08:08:25 +00:00
foobar 5e63f36507 news entries for new options in phpize and php-config 2003-01-29 03:26:15 +00:00
Harald Radi 9f2275ec67 fix warnings 2003-01-29 00:59:54 +00:00
Harald Radi c23bb9ce4f ilia pointet me to a thread on php-dev saying that
Co(Un)Initialize should be called per thread
2003-01-29 00:46:31 +00:00
Harald Radi 339702a044 fix for bug #20282 (and propably some of the
other com bugs)

#credits also go to tzm.de for sponsoring me
2003-01-29 00:10:01 +00:00
Harald Radi bd731f1ed3 moved to php4/main 2003-01-28 23:46:13 +00:00
Harald Radi 309e5aacc1 somehow the module shutdown order got reversed since 4.3.0,
thus the CoInitialize / CoUninitialize calles are more sane here
than in the basic functions module.
2003-01-28 23:45:02 +00:00
foobar 67acb0fa9e fugbix news 2003-01-28 17:57:51 +00:00
Ilia Alshanetsky 6d7d365d3c Fixed compile warning. 2003-01-28 17:46:47 +00:00
Ilia Alshanetsky 63610854d5 Bug fixing news. 2003-01-28 16:36:50 +00:00
Ilia Alshanetsky 827b79d6c1 MFH 2003-01-28 16:34:41 +00:00
Derick Rethans b7010976f0 - Fix includes 2003-01-28 16:05:07 +00:00
Ilia Alshanetsky 6faa5e5bc4 Fixed compiler warning. 2003-01-28 16:02:33 +00:00
foobar 03caef107a - MFH: Fixed bug #13561 (--without-pear prevents install of php-config, phpize)
- MFH: Added --ldflags option to php-config
- MFH: Added --clean option to phpize
2003-01-28 15:02:08 +00:00
foobar 8650dda505 MFH: Typo fix 2003-01-28 15:00:15 +00:00
Edin Kadribasic 35876e07b3 MFH 2003-01-28 14:19:12 +00:00
SVN Migration 0cb305a4f8 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-01-28 10:59:13 +00:00
Edin Kadribasic 17c7216ee0 MFH 2003-01-28 10:54:17 +00:00
foobar 5a0738d82d MFH: typo fixes 2003-01-28 06:56:42 +00:00
foobar beed320140 MFH: typo fix 2003-01-28 06:52:33 +00:00
Marcus Boerger 97ab5eb4d4 MFH 2003-01-28 06:27:19 +00:00
Frank M. Kromann 694406816b Fix the setting of computer name and processor type for php_uname() on Win32 2003-01-28 05:01:46 +00:00
Ilia Alshanetsky 96f815aa74 MFH (scandir patch). 2003-01-28 01:51:26 +00:00
foobar 12e5f25ced MFH 2003-01-28 01:00:42 +00:00
SVN Migration 3835ea2241 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-01-28 00:42:55 +00:00
Marcus Boerger b5b59b7ee6 MFH: --without-flatfile, Berkeley DB version check 2003-01-28 00:12:19 +00:00
Edin Kadribasic 169ce6948d MFH: Fixed bug #21597 (made glob() understand Windows paths). 2003-01-27 16:32:48 +00:00
Andrey Hristov ed8ccb2911 MFH 2003-01-27 16:22:33 +00:00
foobar b36e230373 revert previous commit 2003-01-27 12:44:56 +00:00
foobar 956681d54a MFH: use grep -E instead of egrep. the latter is not defined by POSIX anymore 2003-01-27 11:33:47 +00:00
Moriyoshi Koizumi 736588313d MFH: test update 2003-01-27 01:16:34 +00:00
Marcus Boerger f660a474af MFH: Part 2, forgot the '@' 2003-01-26 17:23:00 +00:00
Marcus Boerger c8ee823db0 MFH: Simplify 2003-01-26 17:18:24 +00:00
Sander Roobol 39d29d68b2 MFH (well... it's not really an MFH... but who cares :) 2003-01-26 09:20:12 +00:00
Shane Caraveo 842fa7a716 MFH
fix broken build by adding scandir and alphasort
2003-01-26 01:46:40 +00:00
Shane Caraveo 839512558f MFH
fix bug 21261
    putenv on some platforms requires we provide the memory
    cleanup env parsing logic
fix bug 21367
    missed optargs in a previous patch
2003-01-25 22:02:45 +00:00
Ilia Alshanetsky f142761ab8 MFH 2003-01-25 21:15:41 +00:00
Marcus Boerger 375f71522b MFH: The builtin version was always used even if configured otherwise. 2003-01-25 19:51:05 +00:00
Marcus Boerger 2fb7ff2f43 MFH: Bug #21751: Part one never let this happen again... 2003-01-25 19:50:04 +00:00
Ilia Alshanetsky d5b75a2768 MFH 2003-01-25 18:55:40 +00:00
Ilia Alshanetsky 2a4f59ce8f MFH 2003-01-25 00:26:34 +00:00
Dan Kalowsky 0d29b1ef72 busted by the style police... 2003-01-24 22:49:22 +00:00
Dan Kalowsky 306918850b Patch for bug #21844 2003-01-24 22:43:42 +00:00
Ilia Alshanetsky 6695acbd23 MFH 2003-01-24 19:24:01 +00:00
Ilia Alshanetsky 3871b272fd MFH 2003-01-24 19:16:28 +00:00
foobar a630f7cf1d MFH: Fix bug #21795, Undeclared statement in oci8.c (OCI_ATTR_STATEMENT) 2003-01-24 17:51:40 +00:00
Ilia Alshanetsky 98536a9d8b MFH (memory leak in quota functions). 2003-01-24 17:10:40 +00:00
foobar eb15881a94 MFH: typofix 2003-01-24 10:13:16 +00:00
foobar 9aea9970bb MFH: Fix potential problem for 64-bit architectures. 2003-01-24 10:00:18 +00:00
foobar 7ce609a045 figbug news 2003-01-24 09:54:30 +00:00
foobar 8d5ade4cef MFH: Fixed bug: #20857, snmpset() fails 2003-01-24 09:53:16 +00:00
Derick Rethans 8e5d7f67ef - MFH: memleak 2003-01-24 08:50:59 +00:00
foobar 1c3f186c11 Remove unused GET/POST entries 2003-01-24 05:56:03 +00:00
foobar cea7bd34ca MFH 2003-01-23 16:30:07 +00:00
foobar 6cd646e939 MFH 2003-01-23 06:42:51 +00:00
foobar e506353517 Enable building with freetype 2.1.3 2003-01-23 06:22:42 +00:00
foobar c7c6ddf6e1 MFH 2003-01-23 05:33:19 +00:00
foobar 0eb7973e96 fugbix news 2003-01-23 05:20:34 +00:00
foobar 1d6714eea4 MFH: Added test for bug: #21513 2003-01-23 03:29:22 +00:00
SVN Migration 5849307944 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-01-23 03:28:42 +00:00
Frank M. Kromann e2dd22e13f adding missing zlib.lib and path to bindlib 2003-01-22 20:12:47 +00:00
Ilia Alshanetsky 4bbff1f82d MFH 2003-01-22 19:53:40 +00:00
Moriyoshi Koizumi ba1e0fbf46 MFH: reverted the wrong patch 2003-01-21 22:09:55 +00:00
Moriyoshi Koizumi d78df15074 MFH: fixed a mb_regex_replace() bug 2003-01-21 22:04:28 +00:00
Moriyoshi Koizumi 77821ecb75 MFH: fixed mb_ereg_search() segfault 2003-01-21 19:32:18 +00:00
foobar 8fdf6abb81 MFH: Fixed bug: #21698, httpd.conf not modified with "make install" 2003-01-21 06:03:16 +00:00
Edin Kadribasic 2070287f64 MFH 2003-01-21 03:04:38 +00:00
SVN Migration 35382136b4 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-01-21 02:46:08 +00:00
Moriyoshi Koizumi 875814b68b MFH: fixed bug #21758 2003-01-20 16:46:34 +00:00
foobar 591b6e7d59 MFH 2003-01-20 10:39:39 +00:00
Moriyoshi Koizumi d3a2e6852c MFH: fixed bug #21744 2003-01-19 12:56:26 +00:00
SVN Migration 65b0cbbfeb This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-01-19 11:32:55 +00:00
Moriyoshi Koizumi 95122f3209 MFH: added test case for bug #21730 2003-01-18 21:21:32 +00:00
Moriyoshi Koizumi 16670b2d42 MFH: fixed bug #21726 and #21730 2003-01-18 21:20:47 +00:00
Ilia Alshanetsky 6c7c785e9d MFH 2003-01-18 20:49:02 +00:00
SVN Migration 14b549692e This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-01-18 19:02:22 +00:00
foobar 4affc10629 MFH: Fix bug: #21687, imap extension does not include gss authentication mechanism 2003-01-18 07:01:11 +00:00
Sascha Schumann 6b398307a3 MFH POST fixes 2003-01-17 19:11:38 +00:00
Derick Rethans eb8f7ccead - MFH: Fixed a bug that made that no newline was displayed when there was no
value for a row.
2003-01-17 18:12:38 +00:00
Ilia Alshanetsky 2ed8d327b8 MFH 2003-01-16 21:18:59 +00:00
Edin Kadribasic f7b9d75e18 MFH: recent fixes to number_format() 2003-01-16 13:21:54 +00:00
Ilia Alshanetsky 5295f6e657 MFH 2003-01-16 02:54:07 +00:00
Harald Radi eaa9026f2d removing this stuff from the php 4.3 branch 2003-01-15 21:52:29 +00:00
Sascha Schumann 5360b2e876 MFH 2003-01-15 21:20:05 +00:00
foobar 55f12ed0bb MFH: handle ERANGE from strtol properly 2003-01-15 15:53:34 +00:00
Sascha Schumann 18d55a08b3 MFH 2003-01-15 11:32:31 +00:00
Sascha Schumann 29db4eaa2c MFH 1.150 2003-01-15 11:29:05 +00:00
Sascha Schumann 9c9d4b2177 MFH 1.161 2003-01-15 11:28:25 +00:00
foobar 0c51c2b3dc Fixed the bad MFH 2003-01-15 09:31:41 +00:00
Sebastian Bergmann 6a547ff74b MFH: zlib build fix 2003-01-15 09:10:56 +00:00
Ilia Alshanetsky a21aa4991d MFH 2003-01-15 00:52:20 +00:00
Edin Kadribasic a97cbb59e2 Bugfixing news 2003-01-14 14:49:41 +00:00
Edin Kadribasic 3ae6ab890d Made bind_textdomain_codeset() available on windows (fixes #21525). 2003-01-14 14:45:16 +00:00
foobar 7bd89a17dd Fixed bug: #21543, Informix version detection fails 2003-01-13 23:31:33 +00:00
Moriyoshi Koizumi 18a5dc440f MFH
# The typo I made in the previous commit log is not intentional :)
2003-01-13 19:21:44 +00:00
Moriyoshi Koizumi c7050f9f93 MFH 2003-01-12 23:57:20 +00:00
SVN Migration 093b043bca This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-01-12 23:56:05 +00:00
Frank M. Kromann 57a3edd204 MFH 2003-01-12 06:29:33 +00:00
Frank M. Kromann a712b3f5f4 MFH 2003-01-12 03:17:44 +00:00
Ilia Alshanetsky 0ec6f5f3e9 MFH 2003-01-11 23:50:59 +00:00
Ilia Alshanetsky debdc829df MFH 2003-01-11 23:07:13 +00:00
Christian Stocker 4214d95e6f Throw error if object is not a XML_DOCUMENT_NODE 2003-01-10 18:05:02 +00:00
Ilia Alshanetsky 5eaeb31845 MFH 2003-01-10 02:00:52 +00:00
Ilia Alshanetsky 2c92e3f983 Bug fixing news. 2003-01-10 01:17:03 +00:00
Ilia Alshanetsky e566262369 MFH 2003-01-09 23:09:41 +00:00
Frank M. Kromann 6ea06ad338 MFH 2003-01-09 22:36:02 +00:00
Ilia Alshanetsky 8fb3f4a199 MFH 2003-01-09 22:34:27 +00:00
Sara Golemon e1c35b0f16 MFH 2003-01-09 22:29:02 +00:00
Ilia Alshanetsky 0faa05d744 MFH 2003-01-09 16:54:15 +00:00
Sebastian Bergmann 82e8134fc6 MFH: Revert config.w32.h.in -> config.w32.h build step. 2003-01-09 16:52:14 +00:00
foobar 70e5f19ff8 MFH: Fix bug #21511 2003-01-09 16:38:28 +00:00
SVN Migration 5cd68e4606 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-01-09 15:44:50 +00:00
Frank M. Kromann 7917d26b57 MFH 2003-01-09 08:28:19 +00:00
Ilia Alshanetsky 0cc6d8fccf MFH 2003-01-09 03:33:44 +00:00
Frank M. Kromann ab84d192be MFH 2003-01-08 23:21:42 +00:00
Ilia Alshanetsky 73bf754530 MFH 2003-01-08 18:11:58 +00:00
Ilia Alshanetsky d20ee838f0 Bug fixing news. 2003-01-08 15:01:59 +00:00
Georg Richter c687f71c5a fixed bug 21498 2003-01-08 11:15:12 +00:00
Ilia Alshanetsky 8994f31b03 MFH 2003-01-08 02:44:50 +00:00
Ilia Alshanetsky 7a16fdbd27 MFH 2003-01-08 00:44:58 +00:00
Edin Kadribasic 4978b31363 Bugfix #17098 in the branch 2003-01-07 15:28:13 +00:00
Edin Kadribasic 20a2136350 MFH:
Fixed bug #17098 (make Apache aware that PHP scripts represent dynamic data
and should not be cached). Fix suggested by daniel.eckl@gmx.de.
2003-01-07 15:23:45 +00:00
Edin Kadribasic 2dfed948a1 Bugfixing news 2003-01-07 11:26:03 +00:00
Edin Kadribasic 8b5cb40c24 Fixed bug #21442 (Crash of mail() on Windows when the first parameter
is empty).
2003-01-07 11:20:50 +00:00
Frank M. Kromann 1d819f780c MFH 2003-01-07 05:20:42 +00:00
Ilia Alshanetsky 296bc367dc MFH 2003-01-07 03:53:56 +00:00
Ilia Alshanetsky 794f365e4e Changed perror() to php_error_docref(), fixed bug #21309.
Made extension use ZE memory allocation wrappers, fixed a memory leak in
ftp_mkdir.
Removed duplicate ftp_syst() call inside ftp_systype().

# A larger patch with CS fixes will be applied to HEAD shortly.
2003-01-07 02:21:58 +00:00
Ilia Alshanetsky d9afe5c129 MFH 2003-01-06 22:16:30 +00:00
SVN Migration 6c44faecfd This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-01-06 22:13:04 +00:00
Ilia Alshanetsky 544be4d557 MFH 2003-01-06 21:43:50 +00:00
Georg Richter 9a2babf4b6 fixed a missing & (Thx to Sebastian Bergmann 2003-01-06 14:12:40 +00:00
Edin Kadribasic b89acbbc31 Bugfixing news. 2003-01-06 10:53:35 +00:00
Edin Kadribasic b37cbba31d Fixed bug #20503 (imagesetbrush() availability on windows). 2003-01-06 10:42:10 +00:00
Christian Stocker 562fa5b78f - fix crash in domxml_node_insert_before() (by Lukas Schröder) 2003-01-06 10:00:34 +00:00
Christian Stocker 1fcbd36e6d partly MFH from 1.288 (Fixed segfault, when trying to add a node to itself) 2003-01-06 08:48:38 +00:00
Edin Kadribasic 7be4d4640a Mention gif read-only support on windows. 2003-01-06 01:49:17 +00:00
Edin Kadribasic 7802d1e61c MFH: Added missing flags and .c files for gif read support on Windows. 2003-01-06 01:44:50 +00:00
Ilia Alshanetsky 65029af613 Bug fixing news. 2003-01-06 00:49:24 +00:00
Ilia Alshanetsky f600d3e481 MFH 2003-01-06 00:47:47 +00:00
Derick Rethans ada8f84019 - MFH (Fix for bug #21435) 2003-01-05 21:11:39 +00:00
Edin Kadribasic 73cac507ad Made xslt_set_encoding() available on windows (bug #20640). 2003-01-05 13:52:21 +00:00
Edin Kadribasic 063c192a12 Fixed ZTS build. 2003-01-05 13:02:02 +00:00
Ilia Alshanetsky b2576fd44f MFH 2003-01-05 04:29:35 +00:00
Marcus Boerger 48c8f7c55b MFH 2003-01-04 19:53:53 +00:00
Marcus Boerger b05115978c Fix ZTS-ZE2 (After Cygwin now for the rest) 2003-01-04 19:51:46 +00:00
Marcus Boerger bb74381c49 Fix ZTS-ZE2 build 2003-01-04 19:42:37 +00:00
Marcus Boerger dc8e2ab453 MFH: Fix ZTS-ZE2 build 2003-01-04 19:21:22 +00:00
Derick Rethans c71f17295c - MFH: Fixed bug #21232 (Unresolved references to PQsetnonblocking). (Patch by
Floyd <floyd@studiodust.com>)
2003-01-04 12:34:27 +00:00
Alex Waugh 4033a44b95 MFH 2003-01-03 22:07:05 +00:00
Derick Rethans 6f533a3d8a - Fix docrefs 2003-01-03 21:32:24 +00:00
Derick Rethans 1bfe97474f - Remove broken lines (due to MFH) 2003-01-03 18:57:37 +00:00
Ilia Alshanetsky ae6d79eae3 MFH (fix for bug #21267 & memory leak fix on reidrects). 2003-01-03 17:19:46 +00:00
Derick Rethans 71a5313fc5 - MFH for bug #21311 2003-01-03 12:31:13 +00:00
Derick Rethans 7daca337be Bugfixing news 2003-01-03 09:19:49 +00:00
Moriyoshi Koizumi da497ecb88 Updated the test so it reflects the recent change on iconv.c 2003-01-03 05:15:54 +00:00
Moriyoshi Koizumi 655a3126a2 Fixed shift-out sequence unawareness issue 2003-01-03 05:13:11 +00:00
Moriyoshi Koizumi ae0519643e MFH 2003-01-03 05:12:06 +00:00
foobar f01f0ff5e0 Group these entries a bit to make NEWS easier to read. 2003-01-03 00:05:07 +00:00
Ilia Alshanetsky 8e64a1c73f Bug fixing news. 2003-01-02 19:52:18 +00:00
Ilia Alshanetsky c4fc154089 MFH 2003-01-02 19:50:37 +00:00
SVN Migration de38a0eca4 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-01-02 19:49:31 +00:00
Ilia Alshanetsky da85b57c61 MFH 2003-01-02 19:21:53 +00:00
Derick Rethans 514996363e *** empty log message *** 2003-01-02 17:58:57 +00:00
Derick Rethans 4e4a4036cf - MFH: Fix warnings on UnixWare 2003-01-02 13:31:30 +00:00
Derick Rethans 680e256d17 - MFH: Fix "make test" when CC was set to something with a parameter 2003-01-02 13:01:53 +00:00
Derick Rethans a50d3f2029 - MFH: Fix tests if Zend Optimizer is loaded 2003-01-01 12:44:47 +00:00
SVN Migration 8c761c73ad This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2003-01-01 12:44:00 +00:00
Wez Furlong f8721992dd Workaround a bug in glibc 2.2.9x and later that causes it not to seek to EOF
for stdio streams opened with a mode of "a+".
2003-01-01 09:55:38 +00:00
Ilia Alshanetsky 525bb0ed7e MFH 2002-12-31 18:54:38 +00:00
Ilia Alshanetsky fe18a0e9b1 Added bug fix entries. 2002-12-31 18:39:31 +00:00
Sebastian Bergmann ec46829b38 MFH: Bump year. 2002-12-31 16:37:36 +00:00
Sebastian Bergmann 03d440e1c0 MFH: Bump year. 2002-12-31 16:27:40 +00:00
Marcus Boerger a412c510d4 Do it manually after problems with the commit message 2002-12-31 12:12:30 +00:00
Wez Furlong ac07cbb0ca MFH: Fix for 21304 (gzopen not reporting errors, "a" mode broken). 2002-12-31 11:43:02 +00:00
Ilia Alshanetsky ce2ae19703 MFH 2002-12-31 00:05:19 +00:00
Ilia Alshanetsky ca8772a059 MFH 2002-12-30 19:41:00 +00:00
Marcus Boerger 23a44e86ce MFH: (configure problems & db4 sub module
@- Improved dba extension (Marcus)
@
  . Added support for internal error handling of Berkeley db libraries.
@
  . Disallow Berkeley db versions 4.1.0 to 4.1.24 due to locking problems.
@
  . Disallow linkage of Berkeley db submodules against libraries with
@
    different major version.
@
  . Disallow configuring of more than one Berkeley db handler.
2002-12-30 19:13:45 +00:00
Ilia Alshanetsky 5c5c577359 MFH 2002-12-30 18:29:25 +00:00
SVN Migration 15675d6f49 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-12-30 17:42:56 +00:00
Ilia Alshanetsky 4cb293e5a1 MFH 2002-12-30 16:43:31 +00:00
Ilia Alshanetsky c3e88c6d59 MFH 2002-12-30 15:35:55 +00:00
Moriyoshi Koizumi d39471b761 WS 2002-12-30 15:04:36 +00:00
Moriyoshi Koizumi ddcf71c483 just MFH 2002-12-30 15:03:27 +00:00
Moriyoshi Koizumi 28624bb7f6 MFH: Ilia's patch for bug #21268 (session_decode() returned FALSE on success) 2002-12-30 13:56:28 +00:00
Derick Rethans d74b967c9e - MFH: Align mssql comment and clarify DBA handler selection 2002-12-30 09:23:33 +00:00
Edin Kadribasic cdb8029c39 Live goes on :) 2002-12-27 22:11:40 +00:00
Ilia Alshanetsky 8ef253d9dc MFH 2002-12-27 04:47:45 +00:00
Andrei Zmievski d91ac3b7b8 Go with 4.3.0. 2002-12-27 04:07:19 +00:00
08f7cfae71 Update. 2002-12-27 04:02:52 +00:00
dd734b5a5d update 2002-12-27 04:00:09 +00:00
Sterling Hughes d8b14bd700 mfh 2002-12-27 03:22:42 +00:00
Andrei Zmievski 4e395f36af MFH 2002-12-27 03:22:13 +00:00
Edin Kadribasic b9ad07ca0b MFB:
Mention the fact that zlib extension is now built-in in win32 distro.
2002-12-27 03:17:17 +00:00
Georg Richter 6497cc956c ISO-8601 bug, typo 2002-12-27 00:21:17 +00:00
Ilia Alshanetsky ee3e6f12ae MFH 2002-12-27 00:09:35 +00:00
Derick Rethans 4f7f46d0b8 All on one line 2002-12-26 23:41:59 +00:00
Derick Rethans 991ca2274f - update credits 2002-12-26 23:39:51 +00:00
Georg Richter b72ea915ab added Wez, Ilia and myself 2002-12-26 23:36:57 +00:00
Wez Furlong 055f1f483e MFH: get_meta_tags() stream leak 2002-12-26 22:36:21 +00:00
Georg Richter a493c51949 fixed some compiler warnings when using external libmysqlclient 4.x 2002-12-26 13:47:59 +00:00
Edin Kadribasic 45cb9dc7b1 Made ZLIB extension built in on Windows. Fixes #21139.
# Approved by the release master.
# Will merge this patch into HEAD a bit later.
2002-12-26 13:27:08 +00:00
George Schlossnagle 45f5605f38 mfh (bug #21177) 2002-12-25 21:14:55 +00:00
Derick Rethans 6c3558c2ac - MFH: Test for bug #21182 2002-12-25 20:11:38 +00:00
SVN Migration 0dd36fd9f5 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-12-25 20:08:37 +00:00
Moriyoshi Koizumi d07f529652 Fixed bug #21182 2002-12-25 20:00:12 +00:00
Stefan Esser cb6d34ee25 MFH 2002-12-24 23:50:21 +00:00
Stefan Esser 00cc762934 MFH 2002-12-24 23:30:51 +00:00
Melvyn Sopacua 409f64d09d MFH: crash fix in glob() with no results 2002-12-24 15:04:10 +00:00
Stefan Esser 5367710045 MFH 2002-12-23 08:51:16 +00:00
Stefan Esser e5343487ac MFH: fix compile error with IRIX compiler 2002-12-23 08:43:13 +00:00
Edin Kadribasic f0e94729bf Ignore the new name of the binary built. Allows cvsclean to work again
in sapi/cgi.
2002-12-23 03:34:23 +00:00
Wez Furlong 673dee58ad fpos_t should have been off_t.
Noticed by Philip Olson.
2002-12-23 02:55:29 +00:00
Ilia Alshanetsky 9b16b3d7b8 MFH 2002-12-22 20:58:27 +00:00
Ilia Alshanetsky 51a711b609 MFH (fix for bug #21146).
# Approved by Andrei
2002-12-22 19:45:21 +00:00
Moriyoshi Koizumi 022e5db8ec MFH: php_error => php_error_docref 2002-12-22 19:16:42 +00:00
Moriyoshi Koizumi a29eb8c1d2 MFH: WS fix 2002-12-22 19:06:29 +00:00
Moriyoshi Koizumi c16bb3d7c9 MFH 2002-12-22 19:03:14 +00:00
Wez Furlong aaba243f41 MFH fix for Bug #21131 2002-12-22 18:21:55 +00:00
SVN Migration 41226129d7 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-12-22 18:06:28 +00:00
Wez Furlong 17384705d3 MFH:
A Simple fix for Bug #12360 (fsockopen timeout doesn't work).

Analysis:
On systems with HAVE_GETADDRINFO and IPV6 support, php_hostconnect would
attempt to connect to each possible address that matched the requested IP.

If the remote host:port combination are dropping packets this would cause the
first connection to timeout (after waiting for the full timeout duration).

PHP would then attempt the second address and wait the full duration again.

Solution:
If the first connection attempt times out, abort the connection loop.
2002-12-22 13:58:41 +00:00
Stig Bakken 5e489050e1 MFH 2002-12-22 01:43:20 +00:00
Frank M. Kromann 4100b87e38 MFH 2002-12-21 22:44:38 +00:00
Edin Kadribasic 5f6f1ab107 Updated list of bundled windows extensions compiled by
Christoph Grottolo <cg@gordimer.net>
2002-12-21 22:16:35 +00:00
Edin Kadribasic de713235ed Reflect recent changes to the build process. 2002-12-21 22:03:46 +00:00
Moriyoshi Koizumi 6e2cd3fcfe MFH: Made auth information inaccessible under safe mode 2002-12-21 21:52:41 +00:00
Melvyn Sopacua b686c05f3b There won't be a warning/fix on this, so remove the test 2002-12-21 21:01:26 +00:00
Ilia Alshanetsky 174f00fe03 Bug fixing news 2002-12-21 20:36:14 +00:00
Ilia Alshanetsky 4f1947c729 MFH 2002-12-21 20:34:36 +00:00
Andrei Zmievski 50c811c210 *** empty log message *** 2002-12-21 20:11:05 +00:00
Andrei Zmievski 614614c89e Make PHP_AUTH_* variables not available in safe mode under Apache. Patch by
Philip Olson.
2002-12-21 20:09:09 +00:00
Derick Rethans 4de8da30d0 - Fix typo 2002-12-21 17:46:32 +00:00
Melvyn Sopacua 2e23a75ff4 Skip the test, until a proper descision is made 2002-12-21 16:54:07 +00:00
Andrei Zmievski 02a5c36cb9 Back to -dev. 2002-12-21 01:34:15 +00:00
Andrei Zmievski f380b6b5da Go with RC4. 2002-12-21 01:30:20 +00:00
Andrei Zmievski 641bf4653a MFH 2002-12-21 01:20:32 +00:00
Marcus Boerger fd7b8ff912 MFH: as discussed 2002-12-20 20:25:19 +00:00
Stefan Esser 4dd722e870 MFH 2002-12-20 19:37:45 +00:00
Frank M. Kromann 25e38548cb MFH 2002-12-20 18:41:19 +00:00
Frank M. Kromann d8f5916a72 MFH 2002-12-20 17:39:30 +00:00
Marcus Boerger b27ae49ada Avoid compiler warnings 2002-12-20 17:03:37 +00:00
Andrei Zmievski 7c9dd72b76 MFH 2002-12-20 16:47:15 +00:00
Marcus Boerger 95b4b3ea3e MFH 2002-12-20 16:37:44 +00:00
Moriyoshi Koizumi 2615ec3dee MFH 2002-12-20 15:52:49 +00:00
Sterling Hughes e4871a4a2c mfh 2002-12-20 15:45:53 +00:00
Edin Kadribasic 0dbe08cba2 Make sure cli install dir is created before trying to install in it. 2002-12-20 10:04:55 +00:00
Ilia Alshanetsky f81e612976 MFH 2002-12-20 03:44:41 +00:00
Melvyn Sopacua 2e828c812c Fix libtool detection 2002-12-20 00:25:56 +00:00
Wez Furlong 3748fb07e8 MFH fix for bug #21077.
(proc_open problems with BSD)
2002-12-19 20:34:34 +00:00
Edin Kadribasic 251c2a2383 Making windows build system changes according to proposal:
http://news.php.net/article.php?group=php.dev&article=92682
2002-12-19 18:11:58 +00:00
Ilia Alshanetsky 6cf87a7740 MFH 2002-12-19 17:07:24 +00:00
Edin Kadribasic 83638d2232 Making build system changes according to proposal:
http://news.php.net/article.php?group=php.dev&article=92682
2002-12-19 16:55:57 +00:00
Moriyoshi Koizumi af69bece5b MFH 2002-12-19 15:29:38 +00:00
Edin Kadribasic 58637340e8 Removed libtool library from link which is no longer needed. This fixes
windows build.
2002-12-19 10:37:45 +00:00
Edin Kadribasic a3d0b7e43f Reverted previous patch as suggested by Andi. (reopening #20539). 2002-12-19 00:11:32 +00:00
Moriyoshi Koizumi 07391c8f28 MFH 2002-12-18 23:08:22 +00:00
Moriyoshi Koizumi 90741703de MFH: added a test case for bug #20539 2002-12-18 22:55:16 +00:00
SVN Migration a962c4e340 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-12-18 22:54:35 +00:00
Frank M. Kromann 20da71fb75 MFH 2002-12-18 07:06:36 +00:00
Derick Rethans e8295e70af - MFH 2002-12-17 19:08:01 +00:00
Moriyoshi Koizumi 8954a0486c MFH: iconv extension is no longer experimental 2002-12-17 13:34:23 +00:00
Marcus Boerger c36139bd55 MFH 2002-12-16 17:53:15 +00:00
Marcus Boerger 41335dc90f MFH 2002-12-16 15:54:04 +00:00
Ilia Alshanetsky 33ccce8047 MFH 2002-12-16 15:44:06 +00:00
Ilia Alshanetsky 5b71dbb4e2 MFH (memory leak). 2002-12-16 15:30:51 +00:00
Marcus Boerger 375cf41b62 MFH: that silly dot 2002-12-16 14:55:26 +00:00
Marcus Boerger f142b06770 MFH 2002-12-16 14:48:20 +00:00
Derick Rethans e88e587c30 - Fix typo 2002-12-16 09:11:15 +00:00
Derick Rethans 15c23426d8 - Update NEWS 2002-12-16 09:10:17 +00:00
Derick Rethans bd59a23e0a - Fix bug #21039
#- This is somewhat of a hack, and thus I will not merge it to HEAD, as
#  I've lots of other commits waiting for that.
2002-12-16 09:03:11 +00:00
Marcus Boerger ddc78bc5c0 MFH 2002-12-14 19:53:52 +00:00
Marcus Boerger 8cd8c85017 MFH: bugfix: #21010 2002-12-14 17:50:57 +00:00
foobar d88973feba Fixed bug: #20995 2002-12-14 09:32:49 +00:00
Melvyn Sopacua 5410ce07eb MFH 2002-12-13 18:46:14 +00:00
SVN Migration 4e855de5ae This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-12-13 18:40:40 +00:00
Vlad Krupin 9053c5eadd MFH fix for bug 19727 2002-12-13 16:54:49 +00:00
Marcus Boerger 016d0be3e0 MFH 2002-12-13 13:34:37 +00:00
Marcus Boerger 97b8a7cd4d MFH 2002-12-13 12:06:00 +00:00
Stig Bakken 37f5e2f175 MFH 2002-12-13 02:22:41 +00:00
Stig Bakken 40ebc2a27b MFH 2002-12-13 02:14:26 +00:00
Moriyoshi Koizumi 80f831e167 Forgot to prepend "SKIP" 2002-12-12 21:44:27 +00:00
Moriyoshi Koizumi 7e85b2bdde MFH 2002-12-12 21:42:51 +00:00
SVN Migration 6cd84e1a15 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-12-12 21:42:18 +00:00
Stefan Esser f65be7ff50 MFH: finally?! correct 2002-12-12 21:31:57 +00:00
Ilia Alshanetsky 7095c25d75 MFH 2002-12-12 21:17:55 +00:00
Ilia Alshanetsky 7df75cd38f MFH 2002-12-12 18:51:02 +00:00
Ilia Alshanetsky 58613036fb Fixed ZTS build. 2002-12-12 18:36:44 +00:00
Wez Furlong 27cdd59feb Fix some issues with the return value from pclose and proc_close,
and bogus seek-on-pipe warnings when used with fpassthru.
2002-12-12 17:44:48 +00:00
Ilia Alshanetsky 9baa62f093 MFH 2002-12-12 16:14:07 +00:00
Wez Furlong e651db5cf1 MFH more entropy "fix" 2002-12-12 15:51:11 +00:00
Ilia Alshanetsky 0314da12d0 MFH 2002-12-12 14:52:09 +00:00
Wez Furlong 4789b8eb3b Collect streams related changes into one place, as requested by Jani. 2002-12-12 14:39:07 +00:00
Marcus Boerger e549631cee MFH 2002-12-12 14:16:16 +00:00
Ilia Alshanetsky 5d0ac38b24 MFH 2002-12-12 13:52:37 +00:00
Wez Furlong a50bd94a0e MFH #20936 fix 2002-12-12 13:46:29 +00:00
Moriyoshi Koizumi fc410b16fc MFH 2002-12-12 13:46:10 +00:00
Ilia Alshanetsky e730be9eec MFH 2002-12-12 13:45:34 +00:00
SVN Migration a55180af39 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-12-12 13:38:20 +00:00
Moriyoshi Koizumi 21f011822d MFH: Fixed bug #20934 (htmlspecialchars returns latin1 from UTF-8) 2002-12-12 13:27:17 +00:00
Marcus Boerger 9e7b94e7c1 MFH 2002-12-12 13:23:28 +00:00
Marcus Boerger 16eac635ae MFH: ws, php_error_docref, typeconversion for cygwin 2002-12-12 13:21:25 +00:00
Marcus Boerger 41ffdb4fc4 MFH 2002-12-12 13:14:40 +00:00
Edin Kadribasic 508a9c3ebd Fixed bug #20485 (added flags to windows build to compile DOM/XSLT). 2002-12-12 10:09:17 +00:00
Ilia Alshanetsky a840f429e7 MFH (make imagecreatefromxpm() unavailable when bundled GD is used) 2002-12-11 23:30:23 +00:00
Ilia Alshanetsky 359a28fc69 MFH 2002-12-11 22:37:35 +00:00
Derick Rethans ebb708b068 - Make it also work when you press enter instead of typing 'y' 2002-12-11 20:10:57 +00:00
Ilia Alshanetsky d6fed23482 MFH 2002-12-11 20:08:02 +00:00
Andrei Zmievski 27c7538eb2 Back to -dev. 2002-12-11 18:57:24 +00:00
Andrei Zmievski 9aee6dce1a Go for RC3. 2002-12-11 18:52:20 +00:00
Ilia Alshanetsky 9147eae986 MFH 2002-12-11 17:39:42 +00:00
SVN Migration be0abad331 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-12-11 17:38:29 +00:00
Ilia Alshanetsky 47fa22b5cf MFH 2002-12-11 16:49:27 +00:00
foobar b85d1443b7 MFH 2002-12-11 15:16:29 +00:00
foobar afae8d98c5 MFH 2002-12-11 14:45:46 +00:00
foobar 373784fb86 missing file 2002-12-11 14:43:04 +00:00
Rui Hirokawa 51b63d6b5a fixed lack of variable initialization bug. 2002-12-11 14:41:09 +00:00
Marcus Boerger 6003d9ad36 MFH 2002-12-11 10:37:53 +00:00
Edin Kadribasic 120f6a9bf2 MFH: Fix for #20539 (patch by Moriyoshi Koizumi). 2002-12-11 10:29:07 +00:00
foobar 9ba824a27a MFH 2002-12-11 08:54:22 +00:00
foobar ccde6eef9c MFH: fix from 3.23.54 2002-12-11 08:52:17 +00:00
foobar 93f50df68d MFH: Fix for bug #20928 2002-12-11 08:42:07 +00:00
Ilia Alshanetsky 4cc3aa052d MFH 2002-12-11 02:51:26 +00:00
Ilia Alshanetsky b9c7ee9733 MFH 2002-12-11 00:32:37 +00:00
Marcus Boerger 0b3d1b1e47 MFH 2002-12-10 23:03:24 +00:00
Wez Furlong bd77e7d0f8 No longer experimental. 2002-12-10 22:20:55 +00:00
Wez Furlong 5d9bc065f5 Fix proto and avoid potential segfault on an error. 2002-12-10 22:04:44 +00:00
Stefan Esser 147e4bc66f MFH 2002-12-10 20:19:13 +00:00
Marcus Boerger d71fc18027 MFH 2002-12-10 20:12:38 +00:00
Ilia Alshanetsky 065b04628f MFH 2002-12-10 18:01:33 +00:00
Edin Kadribasic b2131fd973 Fix ZTS build. 2002-12-10 16:56:23 +00:00
Ilia Alshanetsky 507b8cd4ba Fix for bug #20831. 2002-12-10 16:37:48 +00:00
foobar 3fbd4431f9 MFH: added the version check 2002-12-10 16:34:48 +00:00
Edin Kadribasic 12cbd70562 Improve UNC path detection. 2002-12-10 16:18:59 +00:00
Ilia Alshanetsky c69e47414c MFH 2002-12-10 15:59:17 +00:00
Stefan Esser e085d9bccb MFH 2002-12-10 15:41:39 +00:00
Ilia Alshanetsky a7047d2243 MFH 2002-12-10 15:37:33 +00:00
Marcus Boerger a984c1329f MFH 2002-12-10 14:35:36 +00:00
Ilia Alshanetsky db403663f7 MFH 2002-12-10 00:10:37 +00:00
foobar 75a30c7233 MFH 2002-12-09 19:16:12 +00:00
Ilia Alshanetsky fdc3a171dc MFH 2002-12-09 18:45:37 +00:00
Wez Furlong f57ac2fa05 Centralize the fopencookie test. 2002-12-09 18:28:03 +00:00
Wez Furlong b2a98beaee No need to compile this code if curl streams are not enabled, which they
cannot be in 4.3 (configure option is disabled and they don't work yet anyway).
2002-12-09 18:25:37 +00:00
Marcus Boerger 753450e21e MFH: '-' modifier (bug #20282, #20858) 2002-12-09 18:07:23 +00:00
Melvyn Sopacua c81b7d7156 MFH: fix make install target on Cygwin 2002-12-09 17:25:01 +00:00
Wez Furlong f116d23398 MFH: fopencookie for BSD patch 2002-12-09 16:22:06 +00:00
Edin Kadribasic 0d9704fa7b Fixed crash in socket_read on windows #20894 (patch by Wez Furlong). 2002-12-09 11:29:31 +00:00
Wez Furlong 5650d9fdd1 Fix for bug #20831; include() from UNC paths does not work. 2002-12-09 10:34:32 +00:00
Timm Friebe da3e324e7f - MFH 2002-12-08 15:40:18 +00:00
Ilia Alshanetsky 7cf0a8601a MFH 2002-12-07 16:16:09 +00:00
Ilia Alshanetsky e2e2111b1c MFH 2002-12-07 16:06:40 +00:00
foobar 55320820ba Bug fixes for new stuff do not belong in NEWS.. 2002-12-07 12:12:24 +00:00
Sander Roobol 9af1962986 MFH 2002-12-07 11:21:52 +00:00
Frank M. Kromann 675d254b15 MFH 2002-12-07 06:05:52 +00:00
Ilia Alshanetsky 9901a6f0cd MFH 2002-12-07 00:48:21 +00:00
Frank M. Kromann 3a70279b7d MFH 2002-12-06 22:57:47 +00:00
Ilia Alshanetsky ae635f837b MFH 2002-12-06 17:46:40 +00:00
SVN Migration e8fe75a589 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-12-06 17:46:27 +00:00
Ilia Alshanetsky 14dbf42db8 MFH 2002-12-06 17:36:25 +00:00
Sebastian Bergmann 5c29f19331 MFH 2002-12-06 06:09:44 +00:00
Ilia Alshanetsky c185f97956 MFH 2002-12-06 06:08:21 +00:00
Stig Bakken 1652d1f3b4 MFH 2002-12-06 00:10:40 +00:00
Ilia Alshanetsky 02f9791e19 Fixed memory leaks inside heb_number_to_chars(). 2002-12-05 23:19:03 +00:00
Marcus Boerger a27d6d90ec MFH 2002-12-05 23:19:02 +00:00
Ilia Alshanetsky 89d758c378 MFH 2002-12-05 22:46:40 +00:00
Marcus Boerger 335786915a MFH 2002-12-05 22:15:37 +00:00
Marcus Boerger c8ac633540 MFH 2002-12-05 21:09:19 +00:00
Marcus Boerger 81b7c2abc1 MFH: both the check and php_error in the comment 2002-12-05 21:02:02 +00:00
Marcus Boerger a2aed8eff2 MFH 2002-12-05 20:42:05 +00:00
Marcus Boerger e931611837 MFH 2002-12-05 20:14:09 +00:00
Ilia Alshanetsky 898b8673ed MFH 2002-12-05 20:05:20 +00:00
Marcus Boerger 58d49c3af9 MFH 2002-12-05 20:02:21 +00:00
SVN Migration dcfe521fce This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-12-05 20:01:20 +00:00
Marcus Boerger 434d35cf62 MFH 2002-12-05 19:50:40 +00:00
Derick Rethans 6cf9a9015d MFH:
- Renamed snmpv3_* to snmp3_*
- Conversion to php_error_docref
- Whitespace fixes
2002-12-05 19:33:43 +00:00
Marcus Boerger 11eb34e8ee MFH: Remove unnecessary code here 2002-12-05 15:52:35 +00:00
foobar 4eccd8094e MFH 2002-12-05 15:46:41 +00:00
Marcus Boerger f3fba1ee12 MFH: swc & zlib\nMFH: return FALSE 2002-12-05 12:47:22 +00:00
Marcus Boerger 802968443e Fix aggregation with ZE2 in PHP4.3\n#I will not MFB it since aggregation should move to ZEndEngine 2002-12-05 12:44:21 +00:00
Marcus Boerger d50bdd0a16 MFH 2002-12-05 11:38:13 +00:00
Ilia Alshanetsky 80960e148b MFH (build fix, when xpm support is not avaliable). 2002-12-04 23:43:06 +00:00
Ilia Alshanetsky fcbde2dad4 MFH 2002-12-04 21:07:10 +00:00
SVN Migration 9f85f6d66a This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-12-04 21:04:08 +00:00
Ilia Alshanetsky 5ed73ea30b Fixed a typo. 2002-12-04 17:31:23 +00:00
Ilia Alshanetsky 2cf6676651 MFH 2002-12-04 17:29:57 +00:00
Ilia Alshanetsky 2e2e65b576 MFH (truecolor fixes + gdImageTrueColorToPalette() fix). 2002-12-04 17:28:55 +00:00
Moriyoshi Koizumi ebcfd99797 Forgot to merge this part 2002-12-04 17:12:20 +00:00
Moriyoshi Koizumi 3d4145a7e3 MFH 2002-12-04 17:02:20 +00:00
SVN Migration fb93430ba6 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-12-04 17:01:08 +00:00
Moriyoshi Koizumi ba122bc645 MFH: bug fix news 2002-12-04 16:54:59 +00:00
Moriyoshi Koizumi 6e8529a62b MFH: fixed segfaults in array_walk() when keys are passed to cb by reference 2002-12-04 16:44:24 +00:00
Sebastian Bergmann 680d2326a6 MFH 2002-12-04 08:34:24 +00:00
Sebastian Bergmann a6673450df MFH 2002-12-04 08:28:05 +00:00
Frank M. Kromann af51b8fd42 MFH
# Changed php_error() to php_error_docref()
2002-12-03 19:39:54 +00:00
Ilia Alshanetsky 4c1ca75177 MFH 2002-12-03 19:25:55 +00:00
Frank M. Kromann d58428d3bd MFH
# Changed php_error() to php_error_docref()
2002-12-03 19:19:45 +00:00
Frank M. Kromann 03a87edd97 MFH
# Bug #19370
# Allow stored procedures to return multiple results.
2002-12-03 18:59:38 +00:00
Frank M. Kromann 5454f01e04 MFH
# Bug #17593
# Make sure any pending data is released from the server when freeing the result
2002-12-03 18:07:57 +00:00
Edin Kadribasic d88510d0b9 MFH: Allocating enough memory to hold values.
Fix crash when certan stored procedures was called. This caused
     the free_result function to free memory not yet allocated.
2002-12-03 16:09:14 +00:00
Moriyoshi Koizumi bfd27eda54 MFH: fixed leaks in array_walk() 2002-12-03 15:02:55 +00:00
foobar fd65c1661b MFH: Need these libraries for static build 2002-12-03 11:34:33 +00:00
foobar bdf7cdd073 MFH: Fixed build with iPlanet LDAP SDK 5.x 2002-12-03 09:36:31 +00:00
Jason Greene e0018cc874 MFH 2002-12-03 05:46:53 +00:00
Ilia Alshanetsky 314c4c6874 MFH 2002-12-02 07:03:37 +00:00
Ilia Alshanetsky 9ea095c41c MFH 2002-12-02 06:45:57 +00:00
Ilia Alshanetsky 3da7a2c23e MFH 2002-12-02 06:35:51 +00:00
Shane Caraveo f4e68f2504 MFH 2002-12-02 05:25:55 +00:00
Shane Caraveo dab83e9889 MFH 2002-12-02 02:21:01 +00:00
Shane Caraveo e1b7458984 MFH 2002-12-01 23:30:22 +00:00
Shane Caraveo c16d330371 MFH 2002-12-01 23:15:31 +00:00
Frank M. Kromann 8963c524d7 MFH 2002-11-30 21:52:36 +00:00
Ilia Alshanetsky 77b9675c4b MFH 2002-11-30 19:13:28 +00:00
Marcus Boerger bd45fa6a8f MFH: Bug #20433 2002-11-30 18:39:31 +00:00
Christian Stocker 31ee5eca0d MFH (fixed big bad memory leak in xpath objects.) 2002-11-30 10:52:04 +00:00
Moriyoshi Koizumi c5bcca7bab MFH 2002-11-29 18:35:17 +00:00
Sander Roobol 1ec334a99f MFH 2002-11-29 18:05:22 +00:00
Yasuo Ohgaki 073788340b MFH 2002-11-29 17:19:05 +00:00
Derick Rethans 0d90cd59dc - Fix memleak (patch by Oleg.Roitburd@lycos-europe.com)
#- I don't merge this to HEAD right away, as my current development tree
#  has a lot of modifications, of course I did this change there too.
2002-11-29 15:57:39 +00:00
Martin Kraemer fd52bf2bd8 Portability: In C sources, do not use C++ comments 2002-11-29 14:07:28 +00:00
Wez Furlong 61463cbc2a Take this out of here so that the dir can be pruned on checkout. 2002-11-29 13:39:29 +00:00
Christian Stocker f902cf4675 MFH
fix for bug #20389  (no trailing slash in configure option)
2002-11-29 13:32:50 +00:00
Martin Kraemer 9f83137631 Portability fixes (MFH) 2002-11-29 11:15:43 +00:00
Christian Stocker 7c811718a7 MFH
relative xpath queries are already possible
  (use $ctx->xpath_eval($xpath,$contextnode) )
2002-11-29 08:30:05 +00:00
Ilia Alshanetsky 5d51f8ee55 MFH 2002-11-28 14:14:06 +00:00
Sterling Hughes fe3200ed07 MFH 2002-11-27 20:32:26 +00:00
Frank M. Kromann 8c16118248 MFH 2002-11-27 18:54:54 +00:00
Andrei Zmievski b2e297ed27 Back to -dev 2002-11-27 18:53:04 +00:00
Andrei Zmievski 2ebb360d0e Update version to RC2. 2002-11-27 18:51:00 +00:00
Sterling Hughes cc2abd5275 fix memleak 2002-11-27 18:35:43 +00:00
Ilia Alshanetsky 4ec67e7df3 MFH 2002-11-27 06:20:37 +00:00
Frank M. Kromann 3033a27023 MFH 2002-11-27 04:07:02 +00:00
Marcus Boerger ed264ac576 MFH: remove comment 2002-11-27 02:43:21 +00:00
Marcus Boerger 0394a52b81 MFH: Canon fix 2002-11-27 02:38:37 +00:00
Stig Bakken 5301c168e4 MFH 2002-11-27 01:01:25 +00:00
Frank M. Kromann 5ec97e6b22 Convert 0D 0D 0A line breaks to 0D 0A 2002-11-27 00:40:13 +00:00
Frank M. Kromann 3bd2828386 MFH 2002-11-27 00:36:14 +00:00
Stig Bakken 3cc7a5f2a8 MFH 2002-11-26 23:18:08 +00:00
Moriyoshi Koizumi b71f73322a MFH: improved the error reporting portion of array_walk() 2002-11-26 22:14:11 +00:00
Moriyoshi Koizumi 8f73c27ca6 MFH: prevent too many error reports from being displayed 2002-11-26 21:54:33 +00:00
Stig Bakken 1fc6e75705 MFH 2002-11-26 21:53:43 +00:00
Moriyoshi Koizumi 974e2188cc MFH: Fixed incorrect error messages of array_walk() 2002-11-26 21:35:52 +00:00
Stig Bakken aae2d28e7f MFH 2002-11-26 18:24:30 +00:00
Christian Stocker 106c57d48f MFH (Fix for Bug #20639 DomElement->get_elements_by_tagname() doesn't work) 2002-11-26 15:39:13 +00:00
SVN Migration 7801f96096 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-11-26 12:06:00 +00:00
Yasuo Ohgaki a5d3a242d1 MFH 2002-11-26 02:15:58 +00:00
Stig Bakken 1800daed83 MFH 2002-11-26 01:34:31 +00:00
Stig Bakken 1fc9449e0d MFH 2002-11-26 01:33:36 +00:00
Stig Bakken 9ebf68f5f8 MFH 2002-11-25 23:52:56 +00:00
Ilia Alshanetsky 33b0617d99 Set serialize_handler to php to prevent test failures. 2002-11-25 23:19:19 +00:00
Ilia Alshanetsky e9b28977a5 MFH (fixed a compile failure when --with-xpm-dir is used). 2002-11-25 23:12:15 +00:00
Stefan Esser c15ae34535 MFH 2002-11-25 22:58:26 +00:00
Ilia Alshanetsky 529bfcae52 MFH 2002-11-25 22:01:46 +00:00
Rui Hirokawa d70ac295c4 simplified and a bug fixed in korean encoding conversion table. 2002-11-25 15:23:01 +00:00
Moriyoshi Koizumi d15c493713 Added a further test on mb_parse_str() 2002-11-24 19:48:17 +00:00
Moriyoshi Koizumi 07bec98624 Fixed mb_parse_str() bug pointed out by Yasuo. 2002-11-24 19:21:58 +00:00
foobar f389c07436 fix typo (; instead of :) 2002-11-24 05:14:17 +00:00
Derick Rethans fb90dd014c - MFH: Adjust tests for removed old_function() in Zend Engine 2 2002-11-23 22:08:40 +00:00
Marcus Boerger 3a90b70eac MFH 2002-11-23 21:12:31 +00:00
Marcus Boerger d4cfbfd310 MFH
#This includes the " to ' change but not the added settings which 4.3
#doesn't have.
2002-11-23 17:50:37 +00:00
Moriyoshi Koizumi cd8d0410fd Fixed tab positions
# a bit too late to be notified :)
2002-11-23 11:26:13 +00:00
Moriyoshi Koizumi 2c95d3c427 MFH (imagecolordeallocate() fix) 2002-11-23 05:20:43 +00:00
Marcus Boerger 4c85a6c5ba Fix memleak in debug mode 2002-11-23 01:17:39 +00:00
Marcus Boerger a623b65a98 MFH: Testing default behaviour 2002-11-23 00:56:21 +00:00
SVN Migration 5bc9ba45bf This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-11-23 00:54:05 +00:00
Rui Hirokawa b4664a5796 fixed some bugs in korean encoding conversion. 2002-11-22 23:37:17 +00:00
Ilia Alshanetsky e7a0f547f8 Added missing declaration. 2002-11-22 22:30:38 +00:00
Ilia Alshanetsky 2ec9fdbe8d MFH 2002-11-22 21:52:59 +00:00
Stefan Esser 293086db3f MFH 2002-11-22 19:35:43 +00:00
Marcus Boerger 435d875a02 MFH 2002-11-22 15:53:01 +00:00
Edin Kadribasic 14d6306385 MFH: Avoid possible buffer overflow. 2002-11-22 15:47:44 +00:00
Marcus Boerger 8ae87f8762 MFH 2002-11-22 15:13:10 +00:00
Edin Kadribasic 9e7f020233 Don't send default http status (200) (Thanks to Sascha Schumann for idea). 2002-11-22 13:50:40 +00:00
Stefan Esser 45bf902713 MFH: sha1() test 2002-11-22 11:04:10 +00:00
Edin Kadribasic 837d371f50 MFH: Fixed bug #19207 by adding cgi.rfc2616_headers config directive. 2002-11-22 10:16:36 +00:00
Sander Roobol 0debfe1163 MFH
@Made bcmath extension thread safe. (Sander)
2002-11-22 09:27:08 +00:00
Ilia Alshanetsky 3652c75a5d MFH 2002-11-22 00:09:30 +00:00
SVN Migration 8d9de08fc9 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-11-22 00:08:58 +00:00
Ilia Alshanetsky 78d474a58e MFH 2002-11-21 23:51:57 +00:00
Melvyn Sopacua 07b7ac10b6 MFH Fix bug #20518 2002-11-21 23:33:01 +00:00
Melvyn Sopacua 08fa24dd93 test for bug #20518 2002-11-21 23:31:45 +00:00
SVN Migration 47d920fd66 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-11-21 23:27:39 +00:00
Moriyoshi Koizumi af153a37f0 MFH (added missing mb_internal_encoding()) 2002-11-21 18:19:27 +00:00
Moriyoshi Koizumi e6c6bdc2d9 MFH (removed unnecessary \n) 2002-11-21 17:36:57 +00:00
Marcus Boerger 594e183737 MFH 2002-11-21 16:50:55 +00:00
Rui Hirokawa 2832208fc5 mbstring is supporting CJK + some other encodings. 2002-11-21 16:21:33 +00:00
Rui Hirokawa 769be40253 fixed incorrect encoding conversion in korean. 2002-11-21 16:18:17 +00:00
Sander Roobol c31d9b7850 MFH 2002-11-21 16:16:58 +00:00
Sander Roobol 6e9a4ec6e6 MFH 2002-11-21 15:25:51 +00:00
SVN Migration 179effddf3 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-11-21 15:24:46 +00:00
Moriyoshi Koizumi 6c0b8b370b Fixed yet another mb_parse_str() bug
# This is reported by Ilia. Thanks!
2002-11-21 14:51:26 +00:00
Hartmut Holzgraefe 7f6afc578c MFH 2002-11-21 10:53:18 +00:00
foobar 82ac093b6b MFH, as requested by georg 2002-11-20 23:01:02 +00:00
Derick Rethans 20c0cd2a88 - MFH: Add an error message to the ini handlers 2002-11-20 17:49:57 +00:00
Ilia Alshanetsky caa461e493 MFH 2002-11-20 16:08:36 +00:00
SVN Migration 558795b066 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-11-20 15:56:57 +00:00
Ilia Alshanetsky 755958ac16 MFH 2002-11-20 06:53:33 +00:00
SVN Migration 00beb9dbce This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-11-20 06:48:59 +00:00
Wez Furlong 5302361ece Be pedantic with the return value 2002-11-19 21:11:03 +00:00
Wez Furlong f96922968f Add this test for gzreading non-compressed data. 2002-11-19 20:13:24 +00:00
Wez Furlong 26a1202ee0 Remove a memset I added while debugging 2002-11-19 20:04:15 +00:00
Wez Furlong 915c446634 Resolve some problems with zlib streams, mostly related to opening the
stream with an invalid mode.
There still seem to be some issues when reading from non-compressed files.
Investigation continues.
2002-11-19 18:34:55 +00:00
Moriyoshi Koizumi be66394313 MFH 2002-11-19 16:57:18 +00:00
SVN Migration 6eee55fde4 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-11-19 16:56:44 +00:00
Edin Kadribasic 8a86509e4b Update Credits 2002-11-19 15:11:33 +00:00
Derick Rethans 610e0c36ec - MFH 2002-11-19 14:54:45 +00:00
SVN Migration dbaedcda20 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-11-19 14:53:32 +00:00
Edin Kadribasic 7c79b7026b MFH (Fix for linking warnings on windows). 2002-11-19 14:53:11 +00:00
Derick Rethans 248fcb16be - Fix safemode relating pear install problems 2002-11-19 14:43:42 +00:00
Marcus Boerger cda63e432c MFH 2002-11-19 14:13:40 +00:00
Derick Rethans bc6120892a - MFH: Cybermut removal 2002-11-19 10:12:52 +00:00
Derick Rethans 5eae9a11dd - MFH 2002-11-19 08:21:38 +00:00
Stig Bakken 89f833b5d0 MFH 2002-11-19 02:23:28 +00:00
Edin Kadribasic 8ab3132acb MFH (fix windows build) 2002-11-19 01:07:09 +00:00
Moriyoshi Koizumi b35690c4b9 MFH (binary mode fix) 2002-11-18 21:23:11 +00:00
Moriyoshi Koizumi d1245e43e4 MFH (fixed possible leaks) 2002-11-18 21:16:24 +00:00
Marcus Boerger 98bd51e9ad MFH
-Added colordepth for png
-Added tests for width/heidth for unsigned/signed problems
2002-11-18 16:55:35 +00:00
Marcus Boerger 8455b5b0c1 MFH: Added colordepth for png\n 2002-11-18 16:53:04 +00:00
SVN Migration 29ec528c42 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-11-18 16:51:03 +00:00
Marcus Boerger abe964d237 Fixing unsigned/signed problems (and i thought about it before...)\n 2002-11-18 15:50:49 +00:00
Derick Rethans 7a974d0ef1 - MFH 2002-11-18 15:46:01 +00:00
Ilia Alshanetsky 33b6f2a71a Fix bug #20442. 2002-11-18 13:30:18 +00:00
Derick Rethans 4b6f7554c0 - Remove e*() memory function calls from the branch 2002-11-18 13:00:52 +00:00
Wez Furlong bfaac17306 wb -> r+b 2002-11-18 12:43:00 +00:00
Edin Kadribasic 4f0b31cf5d MFH (fribidi is not available on windows yet). 2002-11-18 12:16:59 +00:00
Wez Furlong d7ded80028 Amend info about mbstring enabled by default (no longer true). 2002-11-18 11:53:11 +00:00
Wez Furlong 2c11564d0a MFH other temp file mode fixes and Id tag. 2002-11-18 11:50:36 +00:00
Wez Furlong d6ee6ce580 Remove redundant info line (all wrappers are listed near the start of
the phpinfo page).
2002-11-18 11:03:38 +00:00
foobar 941047121f MFH; Fixed bug: #20458 (--with-qtdom=shared broken) 2002-11-18 05:06:45 +00:00
foobar 72b7ea5d77 MFH: Added error message if browscap location is not set in php.ini 2002-11-18 03:24:33 +00:00
Ilia Alshanetsky 59a18f6a83 MFH 2002-11-18 03:16:45 +00:00
foobar d708e20b12 MFH 2002-11-18 00:43:48 +00:00
Wez Furlong 81bf1d581d Add missing Id tag. 2002-11-17 23:16:45 +00:00
Wez Furlong 463ccd8283 Revise stream shutdown procedure. 2002-11-17 23:08:40 +00:00
Ilia Alshanetsky d9e33dbaec MFH 2002-11-17 22:53:35 +00:00
Ilia Alshanetsky 9831d1492d MFH 2002-11-17 21:58:12 +00:00
Ilia Alshanetsky cb228e9002 MFH 2002-11-17 20:19:28 +00:00
Derick Rethans 48099d9569 - Fix memory problem for real this time. 2002-11-17 19:40:38 +00:00
Wez Furlong 0b717a898b s/off64t/off64_t/ 2002-11-17 19:28:57 +00:00
Wez Furlong 8a19278ac8 Fix fopencookie detection for newer versions of glibc.
The GNU people strike again with their useless docs; fopencookie does NOT
use "fpos_t *" as documented :/
Additionally, it appears that the the libio layer buffers in chunks of 8KB,
so our test needs to exploit this in order to function correctly.
Thanks to Derick for doing some groundwork.
2002-11-17 19:14:49 +00:00
Zeev Suraski 241a5e6798 MFH - unify error_reporting handling through the INI subsystem 2002-11-17 13:32:44 +00:00
Derick Rethans 21c8c2ba44 - Fix memory allocation problem in bundled GD (reported by Brian Havard) 2002-11-17 13:10:36 +00:00
Marcus Boerger b59c0d1274 MFH: Conversion fix by Michael Mauch 2002-11-17 09:28:56 +00:00
Wez Furlong 3d4fe01bb6 Avoid a potential double fclose(). 2002-11-17 01:06:31 +00:00
Ilia Alshanetsky da110d3f59 Fix compile warning. 2002-11-17 00:11:19 +00:00
Wez Furlong 01a12a109a Remove debugging printf 2002-11-17 00:08:42 +00:00
Ilia Alshanetsky f201adbbdb MFH 2002-11-17 00:07:33 +00:00
Marcus Boerger 416fb87dff MFH: Force float for the float test 2002-11-16 23:47:30 +00:00
Wez Furlong 8d2075dd85 initialize this member so that it doesn't segfault on shutdown... 2002-11-16 23:35:30 +00:00
Wez Furlong 03851bac05 php_stream_fopen_tmpfile now uses php_open_temporary_file rather than
tmpfile().
tmpfile() under win32 will try to use the root directory; the default
IIS settings prohibit access to the root directory, which renders tmpfile()
useless.
PHP's tmpfile() streams are correctly cleaned up and unlinked when closed
(or at request shutdown).  However, if the stream is cast and passed to
a third party library, the temporary file may linger.
This is unfortunate, since streams uses this process internally for handling
the casting of user-streams.
--> some more work is needed on this, but this can be done more easily under
Linux.
2002-11-16 22:59:55 +00:00
Wez Furlong 4ef373153a Change "wb" -> "r+b" for win32.
The difference is staggering - I've spent hours tracking this down.
It should probably be made the same for all platforms.
2002-11-16 22:52:22 +00:00
Marcus Boerger 854c4614e9 MFH 2002-11-16 17:30:10 +00:00
Ilia Alshanetsky a5f2931544 MFH 2002-11-16 17:26:48 +00:00
Marcus Boerger b17bfef199 MFH: Make getimagesize more robust against corrupt files 2002-11-16 17:03:49 +00:00
Wez Furlong f06e6a7802 This is not needed here. 2002-11-16 16:13:25 +00:00
Wez Furlong 32733912f1 Remove debugging line... 2002-11-16 11:40:07 +00:00
Wez Furlong c52b6d3fc0 Make include/require of user-streams work on systems without fopencookie. 2002-11-16 11:39:36 +00:00
Sebastian Bergmann f6534cb075 MFH 2002-11-16 08:32:11 +00:00
Stig Bakken 1574ad43b2 MFH 2002-11-15 23:21:42 +00:00
Marcus Boerger 6e05f972a1 MFH: When --enable-dba is used then include builtin modules unless
--without-xxx is not used.
2002-11-15 21:30:51 +00:00
Marcus Boerger af3aa7d9fc MFH: Added test for bug 14383 2002-11-15 16:45:57 +00:00
Marcus Boerger 037483602a MFH: simplify and show skip reason 2002-11-15 16:43:43 +00:00
Marcus Boerger 9ba6732230 MFH: show correct result 2002-11-15 16:42:04 +00:00
Marcus Boerger d190f54321 MFH: new syntax 2002-11-15 16:40:30 +00:00
Marcus Boerger 608a52b9b9 MFH: info about handler used and use flatfile if available 2002-11-15 16:39:36 +00:00
Marcus Boerger 8a185f8107 MFH: deprecate ext/db 2002-11-15 16:37:51 +00:00
Ilia Alshanetsky f6fec8adf1 Revert of previous patch ad requested by Andi. 2002-11-15 16:36:59 +00:00
Moriyoshi Koizumi d7ac826f89 MFH 2002-11-15 16:36:23 +00:00
Ilia Alshanetsky d88ac3a972 MFH (symlinks + ZTS). 2002-11-15 16:34:54 +00:00
Marcus Boerger aaf5c39690 MFH: SKIP and INFO result from --SKIPIF-- 2002-11-15 16:34:07 +00:00
Moriyoshi Koizumi 07e278c9d4 MFH.
# thanks Jani
2002-11-15 16:30:53 +00:00
Moriyoshi Koizumi f48a7e5f78 MFH 2002-11-15 16:29:03 +00:00
Marcus Boerger 16ea198a13 MFH
-Allow skip in upper letters.
-Add 'info' result to --SKIPIF-- -> see following dba commits
2002-11-15 16:13:10 +00:00
Moriyoshi Koizumi 1e219b65bf MFH 2002-11-15 15:59:57 +00:00
SVN Migration ec36147dbf This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-11-15 15:59:08 +00:00
Moriyoshi Koizumi e31196d184 MFH 2002-11-15 15:35:22 +00:00
Moriyoshi Koizumi cea50a67e1 MFH 2002-11-15 14:55:07 +00:00
Moriyoshi Koizumi 41a0f1c59b MFH 2002-11-15 14:50:33 +00:00
Marcus Boerger 9c5c168394 MFH: Only show the first results 2002-11-15 14:48:55 +00:00
Marcus Boerger 0f5232c5d2 Correction
#Why does it mix up things again?...i do not know
2002-11-15 14:27:37 +00:00
Moriyoshi Koizumi a920cec9aa MFH 2002-11-15 14:27:12 +00:00
Marcus Boerger dd68136bd9 MFH: Show Zend version 2002-11-15 14:24:20 +00:00
Marcus Boerger 174c207381 MFH: Showing memleaks for a memleak test is a good idea 2002-11-15 11:57:50 +00:00
Marcus Boerger f16e2e6650 MFH: Fix segfaults (check ext/domxml/tests/domxml002.phpt) 2002-11-15 11:07:34 +00:00
Derick Rethans bbcb203900 - MFH: removed restore_connection_defaults for pconnects (discussed on
php-dev@)
       bug #19529 closed
       bug #12513 reopened
2002-11-15 10:44:23 +00:00
Sander Roobol 40e65a119d MFH 2002-11-15 10:39:19 +00:00
foobar e58c52ae7e MFH 2002-11-15 07:23:26 +00:00
foobar bd49c212c3 clean the mess.. 2002-11-15 07:18:20 +00:00
Moriyoshi Koizumi 03222e4d82 MFH 2002-11-15 02:18:12 +00:00
Andrei Zmievski 54e893af56 MFH 2002-11-15 00:33:18 +00:00
Stig Bakken 07075670c3 MFH 2002-11-14 23:26:27 +00:00
Moriyoshi Koizumi a6df543348 MFH 2002-11-14 23:08:54 +00:00
Stig Bakken 857e1a6b30 MFH 2002-11-14 22:51:21 +00:00
Moriyoshi Koizumi 05eadd933c MFH 2002-11-14 22:40:11 +00:00
SVN Migration 4c5cf3125f This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-11-14 22:38:44 +00:00
Marcus Boerger 1fe950b9a6 MFH: Test updates 2002-11-14 22:08:30 +00:00
Marcus Boerger 54a2a9dd13 Correct last update
# i don't know why but somehow my files were mixed up or i cannot read
# anylonger - however it seems it's time to go sleeping now
2002-11-14 22:02:07 +00:00
Marcus Boerger 6df2d4c33c Add info: Add magic_quotes_runtime support 2002-11-14 21:53:12 +00:00
Marcus Boerger 5555b1c3a8 MFH: magic_quotes_runtime support is needed to have ext/dba being
superset of deprectaed ext/db
2002-11-14 21:52:22 +00:00
Moriyoshi Koizumi fcc8f8fbd0 MFH 2002-11-14 21:35:18 +00:00
Andrei Zmievski 2827407d43 MFH 2002-11-14 21:17:00 +00:00
Andrei Zmievski d9d34ae282 MFH 2002-11-14 21:09:47 +00:00
SVN Migration e3718c88b2 This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-11-14 21:09:42 +00:00
Marcus Boerger 4bab2c1afd MFH: Add magic_quotes_runtime which affects several tests 2002-11-14 21:03:22 +00:00
Melvyn Sopacua 7ad332abf8 MFH plus typo fix 2002-11-14 20:57:09 +00:00
Marcus Boerger 4b7ea20437 MFH: Only set the overwrites once (keep this in sync as long as possible) 2002-11-14 20:20:47 +00:00
Andrei Zmievski ea17af230a Back to 4.3.0-dev. 2002-11-14 19:16:30 +00:00
Ilia Alshanetsky ab37eae5cb MFH (disable safe_mode for test). 2002-11-14 18:38:25 +00:00
Marcus Boerger 1019c662a5 Missed that 2002-11-14 17:22:26 +00:00
Andrei Zmievski f16941595a Fix version. 2002-11-14 17:03:36 +00:00
Andrei Zmievski 46d3edd8c1 Go for RC1. 2002-11-14 16:47:03 +00:00
Stefan Esser 81cd0ebfa0 MFH 2002-11-14 16:40:27 +00:00
Ilia Alshanetsky 516eacd03f MFH (zts compile warning). 2002-11-14 16:33:18 +00:00
Ilia Alshanetsky df34134534 MFH (fic for bug #20423). 2002-11-14 16:21:15 +00:00
Marcus Boerger a022fb30d0 Info about gd changes 2002-11-14 14:57:23 +00:00
Marcus Boerger ded0b2efba MFH:
Fix locking behaviour: On some systems read during write is permitted but
most libraries are not capable of that. GDBM is system dependant so there
we only test  that we do not deadlock.
2002-11-14 14:40:43 +00:00
Marcus Boerger f3ba6741ec MFH: Info about closed bugs 2002-11-14 14:39:53 +00:00
Wez Furlong ed84676c15 Add note about shortcomings of this test. 2002-11-14 14:25:36 +00:00
Ilia Alshanetsky bcaf766768 MFH (skip conditions for tests) 2002-11-14 14:19:03 +00:00
Ilia Alshanetsky 5386b85b15 MFH (compile warning fix). 2002-11-14 14:06:49 +00:00
Wez Furlong d32b02e1ca MFB 2002-11-14 13:52:39 +00:00
Ilia Alshanetsky dde44ae7b2 Bug fix news. 2002-11-14 13:52:17 +00:00
Ilia Alshanetsky b12880ce40 MFH (fix for bug #19689). 2002-11-14 13:45:43 +00:00
Ilia Alshanetsky c60242c944 MFH (parse_url bug). 2002-11-14 13:44:24 +00:00
Edin Kadribasic 65995b5c4f MFH (fixes unix build of mbstring) 2002-11-14 13:37:26 +00:00
SVN Migration a8bb6a9eca This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-11-14 12:20:37 +00:00
Derick Rethans b391a7a372 - Fixed bug #20424 (stream_get_meta_data craches on a normal file stream).
(Derick, Wez)
2002-11-14 10:52:45 +00:00
James Cox 4a15ca11e7 MFH.. 2002-11-14 02:07:37 +00:00
James Cox cb8e121ca9 MFH 2002-11-14 01:57:20 +00:00
foobar 6caa25e9f6 MFH 2002-11-14 01:56:06 +00:00
foobar 6c46b47b75 Fixed bug: #20414, shared build did not work 2002-11-14 00:20:24 +00:00
Edin Kadribasic c03f73a3b3 Made mbstring compile on windows again. 2002-11-13 23:01:17 +00:00
Edin Kadribasic d483bd4ecc MFH (relly disable compilation of mbstring) 2002-11-13 21:38:57 +00:00
Edin Kadribasic 57c012b007 MFH (mbstring defines commented out to allow defining them elsewhere). 2002-11-13 21:37:27 +00:00
Stig Bakken 2eced40646 MFH: remove debug output 2002-11-13 20:38:24 +00:00
Derick Rethans 1102505d22 - MFH: moved ext/cybermut to PECL 2002-11-13 19:41:54 +00:00
SVN Migration e6659bd69f This commit was manufactured by cvs2svn to create branch 'PHP_4_3'. 2002-11-13 16:30:51 +00:00
Marcus Boerger 244d5d1c11 must be unsigned
# maybe i will change this to size_t for 64bit systems but i do not have the
# time now and i have problems building php on a sun.
2002-11-13 16:30:50 +00:00
Marcus Boerger 4dd5fc67b7 -use size_t
-recheckin header as unix file
2002-11-13 16:28:44 +00:00
Stanislav Malyshev 3944ce41c3 semi-fix string offsets crash - now it doesn't crash, but still leaks 2002-11-13 15:13:24 +00:00
Christian Dickmann 18296252b2 Add new tag to package.xml named <warnings>.\nThis warnings are printed when installing/upgrading the package.\nThis patch was created in a cooperation with Tal Peer (Thanks for the idea Tal) 2002-11-13 14:17:26 +00:00
John Coggeshall 253cecd43a Added GLOB_ONLYDIR and GLOB_BRACE for compatiable systems for the glob()
function.

Modified the layout and some minor logic in the experimental webHarness()
test class

Added Whitespace accidently to array.c :)
2002-11-13 13:31:33 +00:00
Edin Kadribasic ae51b7f4db Allow use of Berkeley db version 3.1 as found on many RedHat systems. 2002-11-13 13:12:26 +00:00
Jan Lehnardt e95c7178cc - be more verbose 2002-11-13 12:41:05 +00:00
Edin Kadribasic af436aa873 Added support for bundled flatfile, cdb and cdb_make handlers
to win32 build of the dba extension.
2002-11-13 12:12:44 +00:00
Moriyoshi Koizumi 9f2a1ce9d4 Added a test for mb_send_mail() to check if the function properly handles
Traditional Chinese characters.
2002-11-13 12:00:47 +00:00
Moriyoshi Koizumi fd01313fde Corrected Traditional Chinese language spec and the preferred MIME name
of which the encoding is used in that locale.
2002-11-13 11:57:59 +00:00
Marcus Boerger 77c9dfae6b avoid fileno() 2002-11-13 10:17:19 +00:00
Andrey Hristov 31aeec05e8 Already binary safe. 2002-11-13 09:11:19 +00:00
Derick Rethans 801c698992 - Reset globals for each request 2002-11-13 08:54:34 +00:00
Moriyoshi Koizumi 2016c0cc0a Added a test for mb_send_mail() to check if the simplified Chinese support
works
2002-11-13 08:45:37 +00:00
Moriyoshi Koizumi d9ebc7aadb Updated the test 2002-11-13 08:27:17 +00:00
Moriyoshi Koizumi 7addde8521 Prevented unwanted encoding detections in mb_send_mail()
# This patch shouldn't break BC
2002-11-13 08:26:04 +00:00
Moriyoshi Koizumi 2a8fa04b18 Update for a recent change on mbstring 2002-11-13 08:20:01 +00:00
Moriyoshi Koizumi e01b60c2fb Fixed mb_encode_mimeheader() to work with languages other than Japanese and
English
2002-11-13 08:13:34 +00:00
Moriyoshi Koizumi 04f59073e6 Fixed a buffer over-run bug in case a function to be overloaded doesn't exist.
# This patch was made by Ilia.
2002-11-13 07:40:11 +00:00
Sebastian Bergmann 8f54e30f3c Disable mbstring (and sync behaviour with *NIX per Andrei's commit). 2002-11-13 06:47:43 +00:00
Andrei Zmievski e87b45de44 Disable mbstring by default. 2002-11-13 04:36:04 +00:00
foobar 09c36c87fb added missing cvs id tag 2002-11-13 00:49:37 +00:00
Stig Bakken bad126c6a0 * support INSTALL_ROOT 2002-11-13 00:02:11 +00:00
foobar aab64595fa Using // is not very good idea.. 2002-11-12 23:34:06 +00:00
foobar 6165cd5c89 Do not use any php.ini files for the installs. 2002-11-12 23:30:21 +00:00
Edin Kadribasic 9a275e27a5 Fixed ZTS build and removed an unused variable. 2002-11-12 22:59:11 +00:00
Edin Kadribasic f4903cd901 Fix build. flock_compat.c and flock_compat.h are now in the exported
part of php4ts.dll.
2002-11-12 22:44:11 +00:00
Moriyoshi Koizumi 16cf26ee18 Cosmetics 2002-11-12 22:05:18 +00:00
Moriyoshi Koizumi 3cf7002469 Fixed a function overloading related bug.
# Yet I suspect the problem is in another place...
2002-11-12 21:58:53 +00:00
Moriyoshi Koizumi c65cbd2409 Fixed the tests so that they won't be affected by the ini setting of
default_charset
2002-11-12 21:37:54 +00:00
Marcus Boerger 0b8c9fc5b2 fix warnings 2002-11-12 21:11:01 +00:00
Marcus Boerger b855dcc876 ftruncate is defined in flock_compat.h on windows 2002-11-12 21:03:10 +00:00
Marcus Boerger cecb9dfc79 Implemented -n switch to skip parsing ini at startup as suggested by Wez.
#The switch 'n' was planned to be used for beautifying....delete n to make
#clear these functions do not have a switch yet.
2002-11-12 20:56:47 +00:00
Moriyoshi Koizumi 072466203d Fixed language name 2002-11-12 20:06:20 +00:00
Moriyoshi Koizumi 5d547d1f0c Added test cases for mb_send_mail() 2002-11-12 20:04:58 +00:00
Moriyoshi Koizumi 827974bc94 Forgot to change this one. 2002-11-12 19:44:56 +00:00
Moriyoshi Koizumi 268903ce6c Added neutral language spec for backwards compatibility 2002-11-12 19:24:45 +00:00
Hartmut Holzgraefe be5e379ec6 HTTP_RAW_POST_DATA BC fixes
# hopefully all done, commiting anyway to continue work on my home box
php://input stream fixes (POST data handerl mangles data, CLI crashbug)
2002-11-12 18:29:11 +00:00
Ilia Alshanetsky ef7bd02688 Added test for swc files (compressed swf files), this must be done in a
separate test, since this test has a dependency on the zlib extension.
2002-11-12 17:47:20 +00:00
Ilia Alshanetsky d84afe1121 Fixed a memory leak. 2002-11-12 17:41:26 +00:00
Sascha Schumann 0f2ae50178 Add missing $(INSTALL_ROOT) 2002-11-12 17:40:38 +00:00
foobar 2972859dcf ws fixes 2002-11-12 17:31:39 +00:00
Hartmut Holzgraefe cb6202bbe8 reverting accidential commit 2002-11-12 16:41:14 +00:00
Hartmut Holzgraefe 0c395d0f4c *** empty log message *** 2002-11-12 16:37:47 +00:00
Ilia Alshanetsky 619fc2c3c0 Data manipulation (for big endian transformation) should occur after the
data has been read from file.
2002-11-12 16:14:18 +00:00
Jason Greene 976c16b7c8 Correct Entry, Add entry 2002-11-12 16:08:39 +00:00
Marcus Boerger f6885ab970 use *e*malloc functions 2002-11-12 16:02:03 +00:00
Marcus Boerger 1ad91e8b9b fix warnings 2002-11-12 15:09:44 +00:00
Stanislav Malyshev 8ee5080172 fix static 2002-11-12 15:06:51 +00:00
Marcus Boerger 36ff0581d6 -add gd_info()
-keep important news at top
-speling
2002-11-12 14:52:42 +00:00
Ilia Alshanetsky 8ed36bc318 Changed max_input_time PHP_INI_SYSTEM|PHP_INI_PERDIR because ini_set() will
already be too late, the POST/GET/COOKIE processing occures before the script
gets parsed.
Changed the default value to -1. If users have previously (older PHPs)
adressed the problem by setting timeout to a large value, we can avoid breaking
their script by detecting the -1 and using timeout_seconds instead of
max_input_time when setting the 'input' timeout.
2002-11-12 14:40:00 +00:00
James Moore 48d27095a7 Forgot the parsers and scanners 2002-11-12 14:31:37 +00:00
James Moore 41114c05fe Rewrite of the W32api extension
@ New version of w32api extension. Old API deprecated (jmoore)
2002-11-12 14:29:42 +00:00
Ilia Alshanetsky 1a3e0f0487 Fixed compile error. 2002-11-12 14:18:25 +00:00
Marcus Boerger c53e21ef05 php_error() => php_error_docref() 2002-11-12 13:16:13 +00:00
Timm Friebe 0d879e3323 - Added optional parameter to sybase_fetch_object() (Timm)
- Changed php_error and zend_error to php_error_docref (Timm)
- Changed sybase_query() to clean up and free unread results (Timm)
2002-11-12 13:13:12 +00:00
Marcus Boerger b06085dd46 fix warnings 2002-11-12 13:12:58 +00:00
Marcus Boerger 22b8f0ea42 fix windows warning: not needed here 2002-11-12 13:11:37 +00:00
Marcus Boerger 99beb8034e -fix includes
-fix one missing efree
-replace efree/emalloc with erealloc
2002-11-12 12:01:57 +00:00
Marcus Boerger 597acbc3d3 new function gd_info() returns an associative array of gd support options. # The index names are those from the minfo function. Therefore it is
# easy to look into phpinfo() to see which index names are possible.
2002-11-12 11:49:11 +00:00
Marcus Boerger 3ba7df4c6a fix warnings
#highest bit cannot be set so this must work
2002-11-12 11:46:21 +00:00
Marcus Boerger 1017cf99a0 fix warnings 2002-11-12 11:45:10 +00:00
Marcus Boerger f2de217740 correct the last patch: make flock() a function again when it is missing
#function name should be flock and not php_flock of cause
2002-11-12 09:09:55 +00:00
Yasuo Ohgaki f482ac4011 Speed up pg_escape_bytea, from O(n^2) => O(n). My test script speed up
from 50 sec to 5 sec. (sscanf is too slow at least under my linux, I
might write better function that unescape values later)
Use emalloc/erealloc for bundled PQescapeBytea(php_pgsql_escape_bytea)
2002-11-12 09:07:36 +00:00
Derick Rethans 28d3be43a3 - Fix warning 2002-11-12 08:11:23 +00:00
David Viner 687b684d7b adding to do list to help clarify exactly what we are (or
should be) working on for the XSLT extension.
--dviner
2002-11-12 05:14:47 +00:00
Zak Greant c29f1aa468 Modified php_mysql_do_connect() as suggested by Nick Gaugler - using
mysql_ping() as a more efficient alternative to using mysql_stat() to
check if the server is alive and then calling mysql_(real_)?connect() to
reconnect.

Simple tests of opening pconnects indicate that only about 10k of data per
ping needs to be returned to the client per connection check, rather than
about 110k per status check.
2002-11-12 01:41:16 +00:00
e7f3ad9d88 NEWS update 2002-11-12 01:32:09 +00:00
Marcus Boerger b8696890ca make flock() a function again when it is missing 2002-11-11 23:40:33 +00:00
Harrie Hazewinkel 6a14b16e34 Adding a more detail print functions, that assist/make it easier for
creating SNMP scripts.
They are only supported when you have NET-SNMP.
Need to be documented still though.
2002-11-11 21:37:19 +00:00
Harrie Hazewinkel 957f651708 Adding SNMPv3 support.
This splits the old php_snmp function into an argument parsing part and
a data retrieval part. The data retrieval part is reused for SNMPv3.
SNMPv3 has only a different argument parsing.

THe code is not extremely beautiful, but having NET-SNMP and
UCD-SNMP support creates this. :-(
Documentation must still be done.
2002-11-11 21:09:19 +00:00
Marcus Boerger 759e4b10e8 Use php_flock instead of flock 2002-11-11 20:53:41 +00:00
Marcus Boerger 1554bb6db6 -make the flock() emulation a separate function named php_flock()
-use a define to make php_flock() available as flock() when necessary
# The emulated php_flock even works on NFS this will be used elsewhere.
2002-11-11 20:52:09 +00:00
Andi Gutmans 1cee814da0 - Update with statics 2002-11-11 19:49:29 +00:00
Harrie Hazewinkel e1f884c4bc Fixing the php_info function.
Print UCD-SNMP when UCD-SNMP is used.
Print NET-SNMP when NET-SNMP is used.
2002-11-11 18:45:50 +00:00
Sebastian Bergmann 155c453138 Fugbix typo. 2002-11-11 18:27:32 +00:00
Marcus Boerger b94a769036 forgot to add fprintf in list 2002-11-11 18:05:22 +00:00
Ilia Alshanetsky aec6258a17 Fixed compile warnings. 2002-11-11 16:54:26 +00:00
Marcus Boerger 2f06a4fa77 make flock PHPAPI 2002-11-11 16:43:19 +00:00
Jason Greene f8aae8702c Switch to using error_docref
# Satisfy all those named Mar[ck]us
2002-11-11 16:34:39 +00:00
Ilia Alshanetsky 32e8ee9bee MFZE1 2002-11-11 16:32:57 +00:00
Ilia Alshanetsky b03d1d6032 Fix missing header warnings (alloca.h) on Sun Os & Tru64. 2002-11-11 16:32:36 +00:00
Derick Rethans 4a5cb37ac4 - Revert that patch, this was not optional at all. 2002-11-11 16:32:17 +00:00
Ilia Alshanetsky a4e7793e51 Added a flex version check. In the event required flex version is not
available, an advisory warning (similar to bison one) will be given to the
user. This is needed for systems such as Sun OS, where the existing lex
parser cannot be used to regenerate Zend/PHP lexical parsers.
2002-11-11 16:12:56 +00:00
Edin Kadribasic a2c170e296 Fixed windows build. Symbol PHP_EXPORTS is a no-no for dynamically
linked extensions.
2002-11-11 16:11:32 +00:00
Georg Richter 3b510352ad added a little bit more information for mysql.trace_mode 2002-11-11 13:40:30 +00:00
Moriyoshi Koizumi f300bdce82 Added support for windows code pages. 2002-11-11 13:31:08 +00:00
Moriyoshi Koizumi 488255ce54 WS 2002-11-11 13:28:34 +00:00
Georg Richter 8da440214f added mysql.trace_mode 2002-11-11 12:54:51 +00:00
Georg Richter f328f3ea51 Added new functionality:
Warnings for table/index scans
	Warnings for SQL-Errors
	Warnings for non free result sets

It can be activated via ini.setting "mysql.trace_mode"
2002-11-11 12:54:06 +00:00
Marcus Boerger c4e57b182e -fix file open mode when modifier 'd' is used
#Add my name to authors
2002-11-11 12:04:12 +00:00
Marcus Boerger dcc7fc16b6 -Precondiftion: no open files
-do not show warning from dba_open call for read during write
# Interesting is that on some systems read during write is permitted...
# I will change the tests as soon as i find a way to have this equal on all
# systems
2002-11-11 12:00:58 +00:00
Marcus Boerger 1cb7dc2166 Add missing flush 2002-11-11 11:57:25 +00:00
Jason Greene 5e2c75c576 Report function name when log() triggers a base warning 2002-11-11 05:35:04 +00:00
Jason Greene 84bd2901c4 Add the ability to take the logarithm of any base by adding a base parameter
to log()
Added regression tests for the new form
2002-11-11 05:21:35 +00:00
Jason Greene 9e2a312f2e add test function for log()
# It is difficult to test an approximation of an approximation, but I
# believe this test should be close enough to verify the function is working
# correctly.
2002-11-11 03:45:04 +00:00
Moriyoshi Koizumi 67e6c356f6 Fixed mb_convert_case() / mb_strtolower() / mb_strtoupper() to work in
64bit systems
2002-11-11 02:39:32 +00:00
Christian Dickmann 9c27f4f77c make cache (get/set) binary safe 2002-11-11 01:23:24 +00:00
Moriyoshi Koizumi 5e2464ed38 Removed the test. I should have been more aware of variability of
error messages. Thanks Ilia.
2002-11-11 00:16:09 +00:00
James Cox 85e9468b1d give Wez streams credits he deserves. 2002-11-10 23:49:04 +00:00
Marcus Boerger b8f3b83511 Emit a warning when open mode modifier t is used wrong. 2002-11-10 23:07:35 +00:00
Marcus Boerger 4f636c6b3b Add $lock_flag which allows to change lock behaviour for both 'l' and 'd'
Remember gdbm has its own locking so 't' does not work here - maybe a
warning is needed for that, too.
2002-11-10 22:56:29 +00:00
Marcus Boerger 89b586d415 Use 'l' to open database file with locking on .lck file. 2002-11-10 22:07:17 +00:00
Andi Gutmans e19165b356 - MFZE1 2002-11-10 22:02:28 +00:00
Moriyoshi Koizumi 66d606df5f Fixed mb_send_mail() so that it correctly handles the language setting. 2002-11-10 21:32:54 +00:00
Moriyoshi Koizumi a56ea0ab81 Fixed German language spec entry. 2002-11-10 21:31:26 +00:00
Derick Rethans 30daa9489c - Make it rely on cURL version 7.9.8 again, so that we can start with the
Release Process.
2002-11-10 21:26:14 +00:00
Derick Rethans a88e5c6e8d - Remove \n from error messages 2002-11-10 21:24:54 +00:00
Moriyoshi Koizumi 2007517447 Fixed OnUpdate_mbstring_language so that change for mbstring.language
would be reflected to the setting properly
2002-11-10 21:18:54 +00:00
Moriyoshi Koizumi 3e21044d81 Changed the default settings so that it shouldn't affect htmlentities() 2002-11-10 20:53:36 +00:00
Ilia Alshanetsky a6a3b00762 Added a missing '.', which is needed for proper skip check. 2002-11-10 20:01:56 +00:00
Ilia Alshanetsky b09c1afe0e PHP flags specified in .htaccess can now be turned on by using '1' as well as
'On'.
2002-11-10 19:34:09 +00:00
Ilia Alshanetsky bb14455e62 Added missing zend_lineno initilization. 2002-11-10 19:28:51 +00:00
Moriyoshi Koizumi f13fd7a713 Made it conscious of the line number 2002-11-10 19:27:48 +00:00
Moriyoshi Koizumi a1d6dccb59 These changes seems to have bad effect on htmlentities().
Remove it.
2002-11-10 19:05:51 +00:00
Moriyoshi Koizumi b8d56f5ec2 Added a test case for bug #17882 2002-11-10 18:43:19 +00:00
Marcus Boerger 705a4e251c -Centralise open stream for builtin modules that use streams
-If locks work on database file then only one stream open call is used
2002-11-10 17:58:46 +00:00
Stanislav Malyshev 830c2e0df6 fix statics - make it behave like $this (fetch type "static")
Side effect: indirect references to statics won't work.
2002-11-10 17:50:27 +00:00
Marcus Boerger 8e6cd6361c update dba change list 2002-11-10 16:06:19 +00:00
Marcus Boerger 224e530ee1 finish work on locking
-all but gdbm do internal locking now since only gdbm has internal locking
-you can force locking on database or lck file (with gdbm this makes no
 sense so a notice is generated)
2002-11-10 16:03:17 +00:00
Moriyoshi Koizumi 8c517d7d1d Added a test case to check if my recent patch works 2002-11-10 15:52:00 +00:00
Sascha Schumann a8136b4dba Defend against pipelined requests on persistent connections as used by
IRCG. These could cause thttpd to start a second request in the same
connection context, and thereby causing real damage.

Mozilla 1.0.1 is buggy in that context: When HTTP/1.1 pipelining is
enabled (defaults to off), it will send any number of requests over
a persistent connection (which is fine), even after it has received
a "Connection: close" header field in a subsequent response header.
This blatantly violates RFC 2616, section 8.1.2. Because it cannot
receive any response on the dead connection, the download manager
pops up and tries to download a file (which never arrives).

Also, we don't try to send a 400 message anymore, if the connection
dies.
2002-11-10 15:21:13 +00:00
Melvyn Sopacua d3da22fb95 - implement xslt_backend_info
- add test for it
- fix some prototypes
2002-11-10 12:18:03 +00:00
Melvyn Sopacua 138a1695f5 - Make it possible for people to save results and/or remove unwanted ENV
data.
- Use more options for the CC 'version' flag
2002-11-10 08:56:28 +00:00
Maxim Maletsky 8b36fd2afa fixed several proto return types throughout the extension 2002-11-10 05:31:12 +00:00
Ilia Alshanetsky 6dc3bfe8ca Bug fixing news. 2002-11-10 05:21:32 +00:00
Ilia Alshanetsky cc85828811 Fixed bug #19935. Made OpenSSL file system operations abide by safe_mode
& open_basedir restrictions.
2002-11-10 05:19:40 +00:00
Ilia Alshanetsky 91a203e8cd Fixed a bug that in many situations would cause open_basedir restriction to
be bypassed. Most notable exception, is the inclusion of files via include(),
with a partial path.
2002-11-10 05:14:26 +00:00
Stig Bakken aabda7fc8e * implement transactions for uninstall
* change "revert" to "rollback"
2002-11-10 03:13:31 +00:00
Stig Bakken 888a9bd2fe * implemented file transactions so installs may be safely aborted
* preparing 1.0b2 release
2002-11-10 03:03:20 +00:00
foobar 609992baeb ws fixes 2002-11-10 02:48:22 +00:00
Stig Bakken ee0ad3c81a * add folds 2002-11-10 02:44:49 +00:00
Stig Bakken cd72343bb3 * honor track_errors ini setting in php_verror() 2002-11-10 02:09:26 +00:00
Moriyoshi Koizumi 60febe2890 Fixed typo 2002-11-09 23:10:02 +00:00
Moriyoshi Koizumi 0a801f1deb Added a test for mb_substr_count() 2002-11-09 17:07:29 +00:00
Moriyoshi Koizumi 0e6445b8b1 Added mb_substr_count() as per the request #15097 2002-11-09 17:05:47 +00:00
Moriyoshi Koizumi f47cf49139 Fixed PHP_INI_MH(OnUpdate_mbstring_language) so that ini entry values
are properly updated.
2002-11-09 16:15:40 +00:00
Sterling Hughes c4bb7f4776 add a whole bunch of constants that make the interface somewhat up-to-date. 2002-11-09 13:52:00 +00:00
Sterling Hughes 767c02af51 add check for curl 7.10.2 2002-11-09 13:08:49 +00:00
Andrei Zmievski a60968287c Fix memory leak in non-ZTS mode. 2002-11-09 00:43:37 +00:00
Stig Bakken ef236a936f * cleaning house 2002-11-09 00:39:48 +00:00
Ilia Alshanetsky 2a291ba362 Made open_basedir error more descriptive. 2002-11-08 22:48:01 +00:00
Andrei Zmievski 1a8d4258ec Remove unnecessary comments. 2002-11-08 21:20:48 +00:00
Moriyoshi Koizumi 8e1f89bc6f Use proper types 2002-11-08 18:40:54 +00:00
Moriyoshi Koizumi 5b62dc07e1 Fixed typo 2002-11-08 18:06:31 +00:00
Sterling Hughes 71d316e39e add support for curl 7.10.* constants (at least most of them)
add support for persistent connections
2002-11-08 17:58:43 +00:00
Moriyoshi Koizumi c0dfdd2ff6 Added a test for bug #19566 2002-11-08 17:46:29 +00:00
Marcus Boerger bf303c2ab7 hide possible warnings
#Why should one initialize $php_errormsg to NULL
#It would be easier to have it initialised by the system, wouldn't it?
2002-11-08 17:03:06 +00:00
Sterling Hughes 80f88a9851 use consistent constants 2002-11-08 15:49:32 +00:00
Sascha Schumann f2f443f066 s/PHP_API/PHP_API_VERSION/ 2002-11-08 13:29:32 +00:00
Marcus Boerger d6ae71fb11 -update to version 1.6.2
-added path command as requested by jani
2002-11-08 08:46:14 +00:00
Hartmut Holzgraefe 5aec6f4e33 fix for #20198:
"always_populate_raw_post_data = On" breaks HTTP file uploads
2002-11-08 08:41:52 +00:00
Moriyoshi Koizumi 72e0aa894a Added a test for function overloading behaviour 2002-11-08 07:22:10 +00:00
CHAILLAN Nicolas 2838df58fb Very little fixes 2002-11-08 03:05:19 +00:00
Ilia Alshanetsky d28e3d9dc5 Fixed prototype of image_type_to_mime_type(), bug #20094. 2002-11-08 03:04:23 +00:00
Ilia Alshanetsky 9cc24bad1e Fixed compile warning when compiling without openssl support. 2002-11-08 03:02:51 +00:00
Ilia Alshanetsky b6e3ae97c4 Move SWC (compressed swf) check into a separate test because this check
requires zlib. This separation allows us to skip the test if zlib is
not available and not fail.
2002-11-08 02:50:28 +00:00
Ilia Alshanetsky bff999e879 Bug fixing news. 2002-11-08 01:44:40 +00:00
Ilia Alshanetsky 0bdefe4d1e Added skip conditions in the event the required charset is not avaliabled.
Removed old (commented out) module loading code.
2002-11-08 01:12:03 +00:00
Ilia Alshanetsky 7a552596a4 This option is needed if we need to track errors inside the skip condition. 2002-11-08 01:11:05 +00:00
Ilia Alshanetsky 4910b2da98 Added a skip condition if the English dictionary needed for the test is not
avaliable.
2002-11-08 01:09:47 +00:00
Ilia Alshanetsky 1504ad65fc Added a skip condition in the event posix_kill(), which is used by the test
is not avaliable.
2002-11-08 01:08:52 +00:00
Ilia Alshanetsky 6e06948c19 Removed duplicate assignment. 2002-11-08 01:08:01 +00:00
Marcus Boerger 95018fc5c0 -lock support moved from dba_flatfile.c to dba.c
-flatfile, cdb, cdb_make use locking now
#locking is blocking per default use 'rt', 'wt', ct' or 'nt' for non blocking alias
#test access to a database file.
#locking uses flock() which will be emulated or warned if that is not eally
#possible in ext/standard/flock_compat.c
2002-11-08 01:03:53 +00:00
Stig Bakken 28c2fb6681 * fix path prepends 2002-11-08 00:19:21 +00:00
Marcus Boerger 1a4c1eb8a9 not needed anywhere here 2002-11-07 23:09:41 +00:00
Marcus Boerger 78857eb9d4 expand test: see if another insert fails 2002-11-07 23:03:58 +00:00
Marcus Boerger 39876b881b -rename anything to flatfile_xxx/FLATFILE_xxx
-fix update function
-add warnings for update function
2002-11-07 23:03:16 +00:00
Brian France 3902b068c3 Changed: EXPAT_SHARED_LIBADD -> XML_SHARED_LIBADD
If the xml extension was built shared with a shared libexpat
	it would not get the required link to libexpat.so.
2002-11-07 19:31:08 +00:00
Wez Furlong be769483d5 Really disable curlwrappers configure option. 2002-11-07 18:07:03 +00:00
Ilia Alshanetsky 7db2ebd8ea This makes the output of the tests consistent on 32bit and 64 bit platforms.
The old test relied on the 32 bit behaviour, which caused them to always fail
on 64 bit platforms.
2002-11-07 17:49:11 +00:00
Ilia Alshanetsky ada01d75e0 Added swf info. 2002-11-07 16:42:32 +00:00
Ilia Alshanetsky bd41e0503d Added swf and swc (compressed swf) test cases and added 'bits' portion to
the expected bmp test results.
2002-11-07 16:38:57 +00:00
Ilia Alshanetsky 15fb290edc Fixed a crash in image_type_to_mime_type(), when a non integer value is
passed to the function.
Fixed Width/Height detection of bmp files on big endian systems.
Added bit depth detection for bmp files.
2002-11-07 16:37:46 +00:00
Ilia Alshanetsky c2337fd851 Added additional tests to parse_url() test suit, corrected the output of 2
existing tests, which were affected by a bug fixed in latest update to
parse_url() source code.
2002-11-07 15:46:34 +00:00
Ilia Alshanetsky 8645f5c200 parse_url can now correctly parse mailto:, zlib: (old zlib wrapper) and
simular. Thanks to Wez Furlong for noticing the problem.
2002-11-07 15:41:32 +00:00
Andrei Zmievski 1552ba9644 Fix. 2002-11-07 15:09:11 +00:00
Wez Furlong c2a4f94147 WS 2002-11-07 14:52:02 +00:00
Wez Furlong 7d4bf32ca2 Make this static also. 2002-11-07 14:46:40 +00:00
Wez Furlong 8180b9e9c7 Make this static 2002-11-07 14:42:20 +00:00
Marcus Boerger 2a2a41b5f2 add test to see if insert fails when key already exists 2002-11-07 14:18:42 +00:00
Marcus Boerger 927033c616 remove debug output and use php_error_docref instead 2002-11-07 13:00:37 +00:00
Sascha Schumann 8d25447f30 let this source file compile with php 4.2.x 2002-11-07 11:56:02 +00:00
Sascha Schumann 6442b86bfa bumb api version because of module_startup change 2002-11-07 11:52:45 +00:00
Sascha Schumann eb0141913c Add two missing entries 2002-11-07 11:38:03 +00:00
Ilia Alshanetsky b801568bbb Fixed a crash in headers_sent(), that occures if
php_get_output_start_filename() returns NULL.
2002-11-07 00:23:58 +00:00
Sebastian Bergmann bab84eab34 Fix ZTS build. 2002-11-06 18:51:44 +00:00
Ilia Alshanetsky 78e2e69b23 Instead of checking whether realpath exists based on OS. Use the
HAVE_REALPATH define, which is set if realpath() is avaliable. This patch
also resolves bug #18868.
2002-11-06 18:07:23 +00:00
Sascha Schumann 3037b35b31 emalloc never returns 0, so we can simplify the code paths.
also replace ecalloc with emalloc+memset, so that the latter can be inlined.
2002-11-06 17:59:03 +00:00
Sascha Schumann 10a861f93c - use TCP_DEFER_ACCEPT
- don't timeout connections which are managed by IRCG
- don't generate invalid HTTP replies, if the client did not send a
  request line yet
2002-11-06 17:31:03 +00:00
Moriyoshi Koizumi 5c7b062d6f Cosmetics 2002-11-06 16:58:08 +00:00
Moriyoshi Koizumi c22c2e4772 Added a test case to check the behaviour on failure 2002-11-06 16:57:53 +00:00
Marcus Boerger 85d09b872d added missing magic_quotes_runtime=0 2002-11-06 16:56:44 +00:00
Moriyoshi Koizumi 0228d5bdcb Clean up 2002-11-06 16:54:18 +00:00
Moriyoshi Koizumi cac70c5523 Stricter SKIPIF conditions 2002-11-06 16:37:10 +00:00
Moriyoshi Koizumi 49f15ab314 Fixed segfaults in case the specified encoding is not acceptable to iconv. 2002-11-06 16:29:16 +00:00
Moriyoshi Koizumi 6789057697 Oops, preg_match() returns integer value, not boolean. 2002-11-06 15:14:58 +00:00
Stanislav Malyshev 41bd9b3746 fix zend_assign_to_object_op 2002-11-06 15:11:45 +00:00
Moriyoshi Koizumi e4460fa5a3 Made skip conditions stricter. 2002-11-06 15:06:35 +00:00
Marcus Boerger b5d223adfa -convert from dos to unix file 2002-11-06 12:01:37 +00:00
Marcus Boerger caa194d47e -convert from dos to unix file
-disallow cdb_make
2002-11-06 11:59:14 +00:00
Marcus Boerger c7b7cf17c2 check whether a written databse can be appended and if read during write
is permitted
#i use ksort for the result here since some dbm libraries sort their result
#but that is nothing to test here.
2002-11-06 11:18:00 +00:00
Marcus Boerger 7fb5e192fb fix locks and reading
#i will extend the tests to guard on such failures
2002-11-06 10:43:41 +00:00
Wez Furlong ec955b07bb Disable --with-curlwrappers.
(Pending support from libcurl itself)
2002-11-06 10:24:48 +00:00
Marcus Boerger 678829add6 There shall never be an external library for this (hopefully). 2002-11-06 10:08:38 +00:00
Marcus Boerger 88af7e9897 Use the the name 'flatfile' correctly so the handler support can be built now.
#I do not like the lock solution since a crashed php would leave the *lck
#file locked now.
2002-11-06 09:17:51 +00:00
Marcus Boerger 4be50925ad move newly introduced flatfile support from dbm to new flatfile handler
# do not make the same mistake as with ext/db where it was not clear
# which format was used.
2002-11-06 04:16:18 +00:00
Marcus Boerger 5d9563df56 correct file open modes 2002-11-06 02:21:49 +00:00
Marcus Boerger 8135094b7d add fprintf replacement: tested, working, used 2002-11-06 01:56:51 +00:00
Marcus Boerger 31b6a5cebf #add myself 2002-11-06 01:53:50 +00:00
Marcus Boerger f0acf84dc7 Incorporate rewritten version of dbm from db extension.
# currently locks are missing :-(
2002-11-06 01:47:06 +00:00
Marcus Boerger a73e74c2f8 Make the macro use the function and not the other macro as discussed
with Wez.
2002-11-06 00:17:44 +00:00
Marcus Boerger 1f0b200188 php_stream replacement for fprintf
#Agreed by Wez - I will use this mysel soon.
2002-11-06 00:15:24 +00:00
Ilia Alshanetsky 64f77577f0 Fixed bug #20035. ZE now allows us to pass the current line position by
setting zend_lineno to (current_line * -1).
2002-11-05 22:04:12 +00:00
Ilia Alshanetsky 78bf1d9a56 MFZE1 2002-11-05 22:01:35 +00:00
Andi Gutmans 6f9bfe5cca - Shift around zend_op members 2002-11-05 21:35:05 +00:00
Ilia Alshanetsky 89d4cd1d6b Fixed compile warning, removed unused variables and added process.h header,
which is needed on Windows for getpid() function.
2002-11-05 19:57:04 +00:00
Andi Gutmans 867519c420 - A couple of updates 2002-11-05 19:55:00 +00:00
Marcus Boerger b3ab4ece8d correct errors 2002-11-05 19:38:06 +00:00
Andi Gutmans c497868005 - Add support for static methods. Basically methods which are defined as
- static don't have $this. That's the whole difference.
2002-11-05 19:37:31 +00:00
Andi Gutmans f40e3b8548 - $clone -> $that 2002-11-05 19:29:46 +00:00
Andi Gutmans c92758c89e - Fix bug introduced with type change of free_op1/2 2002-11-05 19:06:40 +00:00
Andi Gutmans 1f42a2b88f - Arghh... Change #ifdef to #ifndef 2002-11-05 19:02:37 +00:00
Andi Gutmans a0ed2ef379 - Fix Engine 2 build 2002-11-05 19:01:36 +00:00
Andi Gutmans 983be5c73c - ATTENTION: Finally nuke old_function and cfunction. I think it is time
- to get rid of these BC notations. This is from the days of the move from
- PHP/FI 2 -> PHP 3
2002-11-05 18:25:09 +00:00
Ilia Alshanetsky c6d60713cb Revert of previous patch. 2002-11-05 18:22:02 +00:00
Andi Gutmans f7f9721bdb - Change the automatically created variable $clone in __clone() to
- $that as discussed at the PHP Conference. If there are any objections
- alternative names please let me know. The reason for changing it from
- $clone is because $clone sounds as if it's the newly cloned object and
- not the old one.
2002-11-05 18:16:11 +00:00
Moriyoshi Koizumi 307024dc68 Fixed typo 2002-11-05 17:46:36 +00:00
Andi Gutmans bdc5bb5739 - Fix TSRM_ERROR macro 2002-11-05 17:34:47 +00:00
Moriyoshi Koizumi e2112f174a Added a test for bug #20261 2002-11-05 17:25:59 +00:00
Stanislav Malyshev 3a9eeea213 avoid using 'class' in exported functions - it annoys c++ 2002-11-05 17:21:23 +00:00
Ilia Alshanetsky 6d57337cda Fixed a memory leak in array_fill().
The refcount hack is now done for ZE1 only and is slightly faster then the
original.
After this patch array_fill() can consistently create arrays with >65k elements.
2002-11-05 16:19:19 +00:00
Marcus Boerger 64d3e88266 call php_module_startup after zts has been initialised. This way we could
have called zend_ini_deactivate(TSRMLS_C). But it seems unnecessary.
#tested with ZTS and non ZTS build and many manual fail points.
#now it even compiles without any warning, at least for me
2002-11-05 15:15:51 +00:00
Marcus Boerger 77858f7fcd -use of emalloc functions
-info was not initialised fulle due to memset parameters
 now that the whole structure is initialised we can stop putting 0 in it.
2002-11-05 15:01:20 +00:00
Edin Kadribasic 7336ede58f Ignore all temporary target directories created by the windows build. 2002-11-05 14:55:08 +00:00
Ilia Alshanetsky cfe0c82034 Added 4th argument to virtual_file_ex() that specifies whether or not
realpath() should be used during path resolving. In a number of functions
we do not want to use realpath(), since realpath() will resolve symlinks.
2002-11-05 14:50:17 +00:00
Marcus Boerger 177b24a44e Why did open fail? 2002-11-05 14:46:36 +00:00
Ilia Alshanetsky 41a77bccba Fix compile warning. 2002-11-05 14:28:32 +00:00
Edin Kadribasic 95314707ca Added two new targets to the ldap win32 build which enable ldap
extension to be linked with ssl version of openldap libs.
2002-11-05 14:19:22 +00:00
Edin Kadribasic ce2b880a53 Fixed win32 build by including missing stddef.h 2002-11-05 14:18:20 +00:00
Moriyoshi Koizumi bef514afda style fix 2002-11-05 13:52:11 +00:00
Edin Kadribasic 608d4ded77 Moving php/embed windows build files to sapi/embed folder. 2002-11-05 13:12:27 +00:00
Andrey Hristov 69283998ae correcting typos. 2002-11-05 12:32:11 +00:00
Marcus Boerger 30e916d5cd added missing compiler define 2002-11-05 12:03:01 +00:00
Marcus Boerger 2db35e91ea no memory no members 2002-11-05 11:22:48 +00:00
Marcus Boerger 3bfb7162a8 silence
#when i get this code right tmp_line is not initialised, too.
#Therefore php_stream_wrapper_log_error() will be called with
#undefined value, will it?
2002-11-05 11:17:45 +00:00
Edin Kadribasic 9276b276f7 Made php -v output look nicer on standard 80 column display. 2002-11-05 11:13:35 +00:00
Marcus Boerger 8f6120fef4 correct define: silences compiler warning in http_fopen_wrapper.c 2002-11-05 11:10:06 +00:00
Marcus Boerger 210c6e75f2 Use EXPECT again 2002-11-05 09:52:30 +00:00
Marcus Boerger bc9757f07a Comment out part 3 for now
Added Part 4
2002-11-05 09:51:09 +00:00
Adam Dickmeiss 752f0b0abf Fix handling of zero-length records 2002-11-05 09:19:24 +00:00
Timm Friebe 2bcca9e315 #- Added myself here 2002-11-05 08:30:57 +00:00
Timm Friebe 514b69824e @- Implemented features/changes requested in Bug #16960 (Timm):
@  . Added a new function sybase_unbuffered_query()
@  . Added a new function sybase_fetch_assoc()
@  . Added sybase_set_message_handler() which enables users to handle
@    server messages in a callback function
@  . Added an ini entry for deadlock retries - retrying deadlocks
@    can cause transaction state to break (sybct.deadlock_retry_count,
@    defaults to -1 "forever").
@  . Fixed sybase_fetch_object() not to return objects with numeric
@    members
@  . Fixed issues with identical fieldnames
@  . Made sybase_fetch_*() functions return correct datatypes
@  . Made phpinfo() section more verbose
@  . Made sybase_query() error messages more verbose
2002-11-05 08:29:57 +00:00
Stig Bakken b899f9bf63 Fixed some special cases that were crashing for the exception default
handler.
2002-11-05 06:10:05 +00:00
Stig Bakken efeaa5917c Added separate functions for setting include_path, for environments
where ini_set has been disabled.  New functions: get_include_path(),
set_include_path(), restore_include_path()
2002-11-05 06:05:48 +00:00
Ilia Alshanetsky ecb5c7e08e Revert virtual_link() patch. 2002-11-04 23:24:15 +00:00
David Reid 464d8ca5c1 Work around a daft mistake in the beos headers... 2002-11-04 21:20:52 +00:00
Andi Gutmans 7dd124803c - Clean up mess made by netware guys. There's no reason not to abstract
- the macro a tiny bit more allowing the code to look cleaner. The more
- #ifdef's code has the more unreadable it becomes.
2002-11-04 20:45:28 +00:00
David Reid e66a760f6b Not all systems have sys/ipc.h so let's check and only include it if we
have it.
2002-11-04 20:08:09 +00:00
Marcus Boerger 635c7bc796 collect and append dba changes 2002-11-04 18:11:43 +00:00
Marcus Boerger 5be5c7f14f incorporate cdb-0.75 as suggested by D. J. Bernstein
#dba now supports cdb_make
2002-11-04 17:53:04 +00:00
Ilia Alshanetsky a8d4bb9d28 Silence compiler warning. 2002-11-04 17:38:30 +00:00
Ilia Alshanetsky e849aa9d9b Silence compiler warnings. 2002-11-04 17:35:41 +00:00
Ilia Alshanetsky 0506fa5e6a If ordered is not set a random compiler assigned value of *p2 would be used,
this patch fixes the problem by initializing *p2 to NULL.
2002-11-04 17:26:44 +00:00
Marcus Boerger b8f8591326 2nd wow returns different results with ZE1/ZE2 2002-11-04 17:12:21 +00:00
Ilia Alshanetsky a8f8d9d586 Silence compile warning, ctype.h is needed for tolower() function. 2002-11-04 17:05:11 +00:00
Ilia Alshanetsky 79d6b61523 Removed \r, which caused the test to fail. 2002-11-04 16:46:28 +00:00
Marcus Boerger 02c903b25e use ecmalloc/efree functions instead of (c|m)alloc/free 2002-11-04 13:39:17 +00:00
Sascha Schumann 3f7081c439 Fix debugging description 2002-11-04 13:22:23 +00:00
Moriyoshi Koizumi 90792bca29 Fixed bug #20243 2002-11-04 12:53:24 +00:00
Marcus Boerger 9d0c4b7bc5 passing around TSRM
#going to add CDB_MAKE support
2002-11-04 12:27:13 +00:00
Marcus Boerger 29372b231b See http://bugs.php.net/20175 2002-11-04 10:51:08 +00:00
Marcus Boerger a71f734dec move the run-test tests to the top
#if one of these fails there is no need for further testing
2002-11-04 10:45:41 +00:00
Marcus Boerger 2b927548d3 -testing the tests
-moved tests/dirname.phpt to tests/run-test/test007.phpt because many
 tests use this to find their additional files.
-no more tests in tests directly only in subdirectories
2002-11-04 10:43:22 +00:00
Marcus Boerger abdf302599 sort them 2002-11-04 10:09:42 +00:00
Ilia Alshanetsky 9087728798 Fix bug #20235. 2002-11-04 05:19:05 +00:00
Melvyn Sopacua 67efacc344 Add test for both sysvsem and sysvshm 2002-11-04 02:44:09 +00:00
3f3d343227 ChangeLog update 2002-11-04 01:34:14 +00:00
Ilia Alshanetsky 02fcdec6b7 Fix win32 build. 2002-11-03 21:21:13 +00:00
Moriyoshi Koizumi f6ad144abb Added a new test 2002-11-03 20:35:46 +00:00
Moriyoshi Koizumi 7f5d98203e Fixed OnUpdate_zlib_output_compression() behaviour 2002-11-03 20:31:00 +00:00
Marcus Boerger 604f333113 better use 'Off' here
#thx to Moriyoshi
2002-11-03 20:28:35 +00:00
Marcus Boerger 529fbfffc4 missing 2002-11-03 20:17:00 +00:00
Melvyn Sopacua f42cbf7309 ws 2002-11-03 17:46:38 +00:00
Marcus Boerger b0dac08dff without these nearly all tests fail if for example php.ini contains
output_handler=mb_string
mbstring.http_output=UCS-2LE
2002-11-03 17:43:24 +00:00
Marcus Boerger 388bf9f542 force showing progress of test 2002-11-03 17:40:34 +00:00
Marcus Boerger 536d5cd9a9 info about added functionality in dba 2002-11-03 17:37:58 +00:00
Jon Parise 6d027f4cd2 The cybercash extension no longer exists in ext/. 2002-11-03 17:30:05 +00:00
Marcus Boerger 068d9d4786 no c++ comments 2002-11-03 16:50:08 +00:00
Marcus Boerger aaf5911b16 cdb now allows multiple key-value pairs with same key 2002-11-03 16:43:07 +00:00
Ilia Alshanetsky a078f6ecc6 Fixed ini argument parsing. We now support ini options with = in the argument,
such as the one being used in session test #21, which is once again working
properly.
2002-11-03 15:42:59 +00:00
Marcus Boerger ea7b5d41d3 cdb interface is currently readonly 2002-11-03 15:22:32 +00:00
Marcus Boerger a54cf8b94a cdb interface is currently readonly 2002-11-03 15:11:42 +00:00
Marcus Boerger 6668f61ecb -fixed
-use *e*malloc
2002-11-03 15:09:49 +00:00
Marcus Boerger 81ef4fd958 add tests for functions in image.c (not requiring gd,zlib or exif) 2002-11-03 13:52:45 +00:00
Wez Furlong 92e9c825b4 Fix leak when read call fails (see comment in #16635). 2002-11-03 13:22:49 +00:00
Marcus Boerger ee7f37ae58 pass params used for info call to skipif also
#try php.ini with
#output_handler=mb_string
#mbstring.http_output=UCS-2LE
2002-11-03 10:52:19 +00:00
Moriyoshi Koizumi 941d5e3894 style keisatsu 2002-11-03 08:50:43 +00:00
Moriyoshi Koizumi 408e019b25 Disabled output_handler in INI section 2002-11-03 08:37:59 +00:00
Ilia Alshanetsky 4886072b4b Fixed bug #20217. When php_flag & php_value are used, the PHP_INI_PERDIR
flag should be used when setting the ini value. Otherwise, the user cannot
modify per-directory ini settings specified via .htaccess.
2002-11-02 23:08:20 +00:00
Marcus Boerger 9e73bcaa33 copy paste error
#all these different versions here....
2002-11-02 22:06:03 +00:00
Marcus Boerger 29e8b92f22 -allow parameters to be directories
-"${dir}" -> $dir
2002-11-02 21:48:05 +00:00
Dan Kalowsky bbb798315e Bug #20148 suggested work around for now. 2002-11-02 20:18:10 +00:00
Ilia Alshanetsky ec3b50b8bb Revert previous dirname() patch. 2002-11-02 18:54:31 +00:00
Melvyn Sopacua aa4bf3607b Skip when Sablotron version is too old 2002-11-02 17:24:57 +00:00
Ilia Alshanetsky 7936a861ab MFZE1 2002-11-02 16:52:59 +00:00
James Cox a63d607f08 adding id tags 2002-11-02 16:04:27 +00:00
Melvyn Sopacua 8a210264e7 - Use spprintf to avoid two calls to zend_get_executed_filename, suggested
by Marcus Börger
2002-11-02 15:01:43 +00:00
Sascha Schumann b39ca47d20 syntax highlighting has been added 2002-11-02 13:47:27 +00:00
Moriyoshi Koizumi e9982c06c7 Reduced compiler warnings 2002-11-02 13:38:32 +00:00
Moriyoshi Koizumi d530f23a4f Wrong patch. Fixing... 2002-11-02 12:58:12 +00:00
Moriyoshi Koizumi 05bc8a64f4 Added iconv entry 2002-11-02 12:56:03 +00:00
Marcus Boerger 8b80515659 older versions do not have this functions 2002-11-02 12:55:06 +00:00
Marcus Boerger 22375de5e6 ws 2002-11-02 12:44:36 +00:00
Marcus Boerger 524994d9e2 this would break tests by modifying EXPECT sections
#it took a LONG time to realize that tests were ok but failed due to this ini
2002-11-02 12:33:24 +00:00
Marcus Boerger 832b5a4964 fix TSRM build 2002-11-02 10:58:02 +00:00
Marcus Boerger 7ea6e4431e fix a warning 2002-11-02 10:34:51 +00:00
Derick Rethans fee4ba4f13 - Fix segfault when __CLASS__ was used outside a class definition 2002-11-02 09:06:23 +00:00
Derick Rethans e6054d2857 - MFZE1 2002-11-02 09:05:18 +00:00
Ilia Alshanetsky d704357e44 MFZE1 (20214). 2002-11-02 05:44:10 +00:00
Sascha Schumann 68bb574637 add missing }}} closure 2002-11-02 04:53:31 +00:00
Sascha Schumann ac4d1a1927 fix obvious copy&paste error 2002-11-02 04:35:25 +00:00
Melvyn Sopacua 204552683c Fix typo
# Sorry Lenar
2002-11-02 01:44:35 +00:00
7c57367532 ChangeLog update 2002-11-02 01:35:44 +00:00
Melvyn Sopacua 41daebe049 test rename 2002-11-02 01:34:56 +00:00
Melvyn Sopacua ccd3b27af2 - Fix issues with 'arg' scheme and external files, bug #20177
- Add authors

# Need to rename test, grrr
2002-11-02 01:32:09 +00:00
Melvyn Sopacua 2f187e86e5 Test for files in 'args' provided handles 2002-11-02 01:13:22 +00:00
Colin Viebrock 1fe68ddde5 ahem 2002-11-01 23:00:32 +00:00
foobar 4dabb162d0 - Added searching for Kerberos libs in default locations if no path is
given for --with-kerberos.

# Marcus, please try this. :)
2002-11-01 16:45:59 +00:00
Martin Jansen bf15b826a1 * Fix bug #20207. 2002-11-01 14:48:16 +00:00
Lenar Lõhmus d2275d9195 Fix scheme_getall() function so that data returned by user is always
converted to string except when script returns FALSE or NULL. In this case
signal sablotron that we are not able to handle requested scheme.
2002-11-01 14:44:06 +00:00
Marcus Boerger f7bd4ce0ba Add testcase for every single handler
# db2 fails for me with SIGSEGV
2002-11-01 14:23:23 +00:00
Marcus Boerger d50e62cbac Always show handler used 2002-11-01 14:21:36 +00:00
Marcus Boerger 5ab8fb4df1 test.dbm* -> test0.dbm* 2002-11-01 14:20:31 +00:00
Marcus Boerger a5968cf369 php_error -> php_error_docref 2002-11-01 14:15:24 +00:00
Melvyn Sopacua b3b01c253d Fix test output 2002-11-01 13:43:40 +00:00
Marcus Boerger ad414f28a9 -move -d stuff into function and update settings for info call 2002-11-01 13:03:30 +00:00
Marcus Boerger 20d7a682ab update test
#This test fails for me. I expanded the test output and checked the function.
#The only way to fix this behaviour would be to store the last result in a
#global value and fetch the time again in case the newer value is less the
#the older value.
2002-11-01 12:12:40 +00:00
Sascha Schumann 082d9c4936 Simplify handler dispatching mechanism 2002-11-01 11:51:35 +00:00
Sascha Schumann 1a7a5b3982 Add missing return statement. 2002-11-01 11:44:50 +00:00
Sascha Schumann 1d2eb7c485 update 2002-11-01 11:41:08 +00:00
Sascha Schumann 7d504b230c improve host header checking, only affects systems which have virtual
hosting enabled
2002-11-01 11:40:26 +00:00
Christian Stocker 70b9310d3a fix for bug #20209 (appending text nodes leads to segfaults sometimes) 2002-11-01 10:06:10 +00:00
Andi Gutmans 3c94041bed - Fix unset($this->foo) 2002-11-01 07:59:42 +00:00
Wez Furlong ae4c3c22e1 Probable fix for #20180. 2002-11-01 04:58:23 +00:00
Ilia Alshanetsky 2eaae61f3b Reverting previous OpenSSL patch. 2002-11-01 03:25:21 +00:00
Melvyn Sopacua 46faef79f6 Segfault test, currently unsolved 2002-11-01 02:27:43 +00:00
Melvyn Sopacua 80ee077307 Testcase for new Sablotron option 2002-11-01 02:21:58 +00:00
Melvyn Sopacua 12498fcec7 - Fix registration of XSLT_SABOPT_FILES_TO_HANDLER 2002-11-01 02:05:36 +00:00
5a73334b9b NEWS update 2002-11-01 01:35:49 +00:00
bed03a6bd7 ChangeLog update 2002-11-01 01:34:47 +00:00
Ilia Alshanetsky 0ce0939a91 Fixed win32 build (hopefuly). 2002-11-01 01:20:05 +00:00
Ilia Alshanetsky 9b35c0a897 Possible fix for #20014. Suggested by wez@php.net 2002-11-01 00:57:54 +00:00
Ilia Alshanetsky 500df32e0c Fixed bug #18710. dirname() now returns consistent output when dealing with
\ directory separators on Windows.
2002-11-01 00:53:27 +00:00
John Coggeshall 6ac365896c Modified the experimental new test class to make it easier to port to the
web. Pushed all echo statements through a function that can be
overwritten, changed the way pass/skip/fail is handled (separate function)
that of course can also be overwritten. To begin testing of a web-based
test script also created a webHarness class which will output HTML. To
use, just $a = new webHarness(); instead of $a = new testHarness(); A few
modifications still must be made to remove the CLI reliance completely.

Also modified a test script description.
2002-11-01 00:22:02 +00:00
Melvyn Sopacua 294b419d67 copy/waste error 2002-10-31 21:27:00 +00:00
Melvyn Sopacua 5062dbee4c - Add constant XSLT_SABOPT_FILES_TO_HANDLER overriding the default
behavior of Sablotron to handle files itself, even if a scheme-handler
  is registered.
- Implement xslt_getopt
- Modify behavior of xslt_setopt, so that it returns the previous value.

# All these need Sab CVS version > 2002/10/31
2002-10-31 21:21:01 +00:00
Melvyn Sopacua 45227ec40c Fix typo 2002-10-31 21:11:57 +00:00
Melvyn Sopacua bcf61b073a Add test for xslt_getopt
# see next commit
2002-10-31 21:09:05 +00:00
Moriyoshi Koizumi a00abb6850 Fixed library capability detection behaviour.
# Whew! I've fixed all the known problems.
# And should I become a maintainer of this module?
2002-10-31 20:23:53 +00:00
Christian Stocker 0b8040aa8d fix proto for clone_node 2002-10-31 19:52:45 +00:00
foobar b79e506045 Added built date and time to -v output. 2002-10-31 17:34:10 +00:00
Moriyoshi Koizumi f94e45aaf3 Moved the test into the suitable place 2002-10-31 15:28:21 +00:00
Derick Rethans 27e5fab5eb - Bah, Jani needs to be clearer next time ;P 2002-10-31 15:06:18 +00:00
Derick Rethans 919e418d8b - Make Jani happy 2002-10-31 14:55:51 +00:00
foobar 5c9aa0fe1b jaws 2002-10-31 14:49:24 +00:00
Derick Rethans 55a7590f3d Discuss first! 2002-10-31 14:01:58 +00:00
Yasuo Ohgaki 1fb8331fc0 Fixed more ini settings.
# Derick. Be responsible to your change and opinion.
# These are settings I know that should be set.
# There may be other settingis must be set to make
# run-tests.php work as expected.
2002-10-31 13:52:58 +00:00
Derick Rethans 0998fcd804 - Added an aditional parameter to the jdtojewish() function which makes
the function return the symbolic hebrew name. (Patch by Moshe Doron
  <mosdoron@netvision.net.il>)
@- Added an aditional parameter to the jdtojewish() function which makes
@  the function return the symbolic hebrew name. (Moshe Doron, Derick)
2002-10-31 09:16:23 +00:00
Wez Furlong bfdb85d1f0 Correct a copy-n-paste bug. Spotted by Michael Sisolak <msisolak@yahoo.com> 2002-10-31 08:23:55 +00:00
Derick Rethans fb41198f05 - Fix test, in some cases the first significant number in the time
was a 3
2002-10-31 06:37:18 +00:00
Dan Kalowsky 7d74a72dfd Patch for windows DSN less connection #20086 (by john@johnandlouise.com) 2002-10-31 02:57:06 +00:00
409e4c00f4 ChangeLog update 2002-10-31 01:33:10 +00:00
Moriyoshi Koizumi b3e3420120 Prevent unnecessary notices on success 2002-10-30 19:21:56 +00:00
Sascha Schumann 55879b3543 first step towards asynchronous content body processing 2002-10-30 19:09:49 +00:00
Ilia Alshanetsky 6514fac1c0 Corrected my email address. 2002-10-30 18:36:39 +00:00
Shane Caraveo ae5a18cdb2 initial reorganization of run-tests, commiting so both John and
I can work on it.
2002-10-30 18:22:57 +00:00
Moriyoshi Koizumi 96a0171076 Bug fix news 2002-10-30 18:19:55 +00:00
Ilia Alshanetsky 4332612812 Fixed a memory leak on ldap_connect() failure. 2002-10-30 18:12:34 +00:00
Marcus Boerger 536c34ebc9 fix warnings 2002-10-30 17:54:36 +00:00
Marcus Boerger 656b3ae8ec that was not good :-(
#failure was in my installation
2002-10-30 17:42:36 +00:00
Hartmut Holzgraefe d8837750de getopt with long options reverted to configure problems
(may find the wrong getopt.h so needed structures are not defined :(   )
2002-10-30 15:11:11 +00:00
Marc Boeren 6d9447a3dc Coding style.
# not my style :-)
2002-10-30 15:03:01 +00:00
Marcus Boerger eab2c769d9 added default library path 2002-10-30 14:57:59 +00:00
Marc Boeren c47e427e5b Fixed weird membug in oci8 support. 2002-10-30 14:57:55 +00:00
Marcus Boerger 328396920b php_error -> php_error_docref 2002-10-30 14:15:16 +00:00
Christian Stocker 9250827af6 Added 2 more items 2002-10-30 13:14:23 +00:00
Marcus Boerger fde7dffabd Enough discussion on display_erros it seems 2002-10-30 12:18:48 +00:00
Marc Boeren 7b9eae0e6e escape_string functions will now return empty string directly. 2002-10-30 12:02:51 +00:00
Moriyoshi Koizumi 939a5870cf Fixed typo 2002-10-30 11:57:29 +00:00
Moriyoshi Koizumi a4edf018cb Added a test case for bug #20169 2002-10-30 11:48:51 +00:00
Moriyoshi Koizumi 8ff7d5ff54 Fixed bug #20169 2002-10-30 11:42:51 +00:00
Sascha Schumann 26215e8937 Remove overzealous bison check
1. bison is not invoked during buildconf, so why the heck was the check
embedded here.

2. bison 1.35 works fine for ze1. if there is a problem with ze2, the
check should be limited to that ze version. don't inconvenience people
who are using a perfectly fine combination.
2002-10-30 11:42:22 +00:00
Marcus Boerger b968f90580 Get infos from php running tests not from php running run-test.php 2002-10-30 10:42:55 +00:00
Moriyoshi Koizumi 45361297f3 Fixed mb_ereg_replace() bug 2002-10-30 10:35:55 +00:00
Moriyoshi Koizumi a705a8b597 Clean up. 2002-10-30 08:06:52 +00:00
Moriyoshi Koizumi 352a9f093c Removed dl() code 2002-10-30 07:54:33 +00:00
Moriyoshi Koizumi ac4eb2cccc Shortened comments. I also think they were too long. 2002-10-30 07:53:15 +00:00
Wez Furlong 54f02722f6 And some more ncurses functions. 2002-10-30 02:54:48 +00:00
880855f5ee NEWS update 2002-10-30 01:35:35 +00:00
5ed8485a4d ChangeLog update 2002-10-30 01:34:21 +00:00
Brad House d7df705925 constant MC_TRAN_CHNGPWD typo 2002-10-30 01:08:19 +00:00
Ilia Alshanetsky 7150658615 This patch allows compilation of gd against non-bundled gd library older
then 2.0.4.
2002-10-30 01:05:16 +00:00
Marcus Boerger 6f8bfd148a make microtime and gettimeofday unavailable instead of return false return
false in case needed library function is unavailable.
2002-10-29 23:35:49 +00:00
Rasmus Lerdorf a24534a1ed Update bundled gd library with relevant changes from gd-2.0.4
I still need to add a configure check for the gdIOCtx struct
changes so building against older external gd libs will work again.
2002-10-29 23:08:01 +00:00
Marcus Boerger 8c95cefac6 -add reason to --SKIPIF--
-add magic_quotes_runtime to --INI--
--use var_dump()
2002-10-29 21:57:51 +00:00
Marcus Boerger 6663f2cd0a -do not dl() load
-magic_quotes_runtime
2002-10-29 21:51:32 +00:00
Marcus Boerger 6c132995bb rewrite paragraph 9
No instances yet. And it does not work with #if 0_FOO but with #if FOO_0
2002-10-29 20:25:09 +00:00
Ilia Alshanetsky 8c6316ef7b Corrected un-initialized variable usage. 2002-10-29 20:19:38 +00:00
Moriyoshi Koizumi 21e8efbb87 It's better to know the version is "unknown", rather than "" 2002-10-29 19:09:27 +00:00
Moriyoshi Koizumi fc0e6ff90e Added test cases to check the compatibility with standard ereg functions. 2002-10-29 19:01:10 +00:00
Melvyn Sopacua 066e8aeef6 Add locale for BSDi
# Allthough these characters are used in germany, that doesn't mean, that
# they're not part of the latin-1 character set.
2002-10-29 17:43:08 +00:00
Marcus Boerger 84e5746efb fix warnings 2002-10-29 16:57:52 +00:00
Marcus Boerger 402adbbe9d -php_error => php_error_docref
-two warnings
2002-10-29 16:45:19 +00:00
Moriyoshi Koizumi 630a4ff924 Removed dl() stuff 2002-10-29 16:28:12 +00:00
Wez Furlong e95f0f12d1 Don't use autoconf 2.52 macros. 2002-10-29 16:21:53 +00:00
Moriyoshi Koizumi e8cf2253fb Improved library identification 2002-10-29 16:18:12 +00:00
Marcus Boerger cc62badf9d corrected output 2002-10-29 16:09:03 +00:00
Marcus Boerger 2719c54b32 -Use skipif.inc
-split into two tests
-domxml001.phpt should work
-domxml002.phpt contains the part that fails
2002-10-29 16:06:51 +00:00
Marcus Boerger 5c92a61dcb Add simple parsing test 2002-10-29 16:04:42 +00:00
Ilia Alshanetsky 5b2388f946 Allows pear installer to run un-harassed by safe_mode & open_basedir. 2002-10-29 15:59:19 +00:00
Ilia Alshanetsky 19820c0e83 Added a skip condition for situations where the TZ variable could not be
set (safe_mode).
2002-10-29 15:36:47 +00:00
Ilia Alshanetsky c371b6c5f9 Allows 'make test' to run without being harassed by open_basedir & safe_mode. 2002-10-29 15:22:41 +00:00
Moriyoshi Koizumi f498b68c05 WS fix 2002-10-29 15:05:07 +00:00
Wez Furlong f8486bc344 Fix for #19508 by poleson@verio.net. 2002-10-29 14:57:12 +00:00
Wez Furlong a4a517015e I like my C comments, thanks very much. 2002-10-29 14:36:49 +00:00
Wez Furlong 2d2a375fa6 length of lyrics is not part of the test. 2002-10-29 14:31:54 +00:00
Marcus Boerger 02d35d26cd better use array_diff_assoc
the old way resulted in erroneus .diff
2002-10-29 14:13:11 +00:00
Marc Boeren 25e7a09229 Added dbx_escape_string function
# tested on odbc, oci8 and mysql
@Added dbx_escape_string function to dbx module. (Marc)
2002-10-29 14:08:40 +00:00
Marcus Boerger 82317945e5 -WS
-Use "//" instead of "/* ... */" comments
#this test fails for me. Very weired...
2002-10-29 14:05:55 +00:00
Marcus Boerger 62667ee6a6 -Only accept one single message which is expected.
-Move error related settings to --INI-- section
#Now see we can do it correct
2002-10-29 14:03:37 +00:00
Marc Boeren a493135a41 Added test for dbx_escape_string 2002-10-29 14:01:27 +00:00
Marcus Boerger 0725405d74 Rewrite: Taken from ZE2 RFC + a little textual modification 2002-10-29 13:51:44 +00:00
Marcus Boerger f168c6feef no notices here 2002-10-29 13:30:22 +00:00
Marcus Boerger c4e3bbb5d7 no C++ comments
#args sorry on that & thx jani
2002-10-29 13:26:44 +00:00
Marcus Boerger 083fc401fe fix overrun 2002-10-29 12:53:58 +00:00
Marcus Boerger 2ab1bd044f add reason 2002-10-29 12:18:23 +00:00
Marcus Boerger d0c535d0a6 Fix tests
#Why do i need to define the class infront of its usage in ZE2?
2002-10-29 12:12:19 +00:00
Marcus Boerger c9f7fb8b4e rename and WS fixes 2002-10-29 11:59:24 +00:00
Marcus Boerger 51ed05cc3d -php_error => php_error_docref 2002-10-29 11:56:46 +00:00
Marcus Boerger 65222ddfb3 do not dl() load in skipif.inc 2002-10-29 11:43:46 +00:00
Marcus Boerger 3072369cd6 update dba changes 2002-10-29 11:43:00 +00:00
foobar e77c7ee46b - Remove the "which" call and just expect sed to be in PATH 2002-10-29 11:24:26 +00:00
foobar 7370604ca7 Be a bit more wordy about when this function is available. 2002-10-29 10:28:39 +00:00
Shane Caraveo 1f0523c85a windows is smart enough to provide a way to set cwd for new processes. 2002-10-29 07:32:52 +00:00
Markus Fischer a33bd0979d - Update 2002-10-29 06:34:37 +00:00
526df78546 ChangeLog update 2002-10-29 01:34:44 +00:00
Ilia Alshanetsky 4b6640be45 Fixed compile warning. 2002-10-29 01:28:21 +00:00
Ilia Alshanetsky e34ea3adb4 Added a patch by Pierre-Alain Joye <paj@pearfr.org>, which implements the
imagerotate() that allows rotation of images in gd.
2002-10-29 01:15:44 +00:00
foobar c82799be32 - Only test the sed in PATH. (testing others is useless) 2002-10-28 23:42:47 +00:00
foobar 6536dd7567 if it fits, it fits 2002-10-28 22:54:52 +00:00
Markus Fischer 71ecd46bf9 - Update & keep most important things on top. 2002-10-28 20:32:58 +00:00
Sterling Hughes 4ba703577b fix bug # 17497
(fix by: ddb@bitxtender.de)
2002-10-28 20:16:24 +00:00
Ilia Alshanetsky 47e1163e01 This patch addresses the bogus test failures due to error logging/reporting
confusion.
2002-10-28 18:48:07 +00:00
Marcus Boerger e816c8b176 remove last line commited by error
revert log_errors
2002-10-28 18:21:09 +00:00
Marcus Boerger 35a3b071ad forgot 'error_log=' and 'report_memleaks=1'
#commenting on php-dev
2002-10-28 18:19:38 +00:00
Sander Roobol a207b641e5 Fix proto and #20137 2002-10-28 18:00:30 +00:00
Marcus Boerger 4440188510 forgot 'error_log=' and 'report_memleaks=1'
#commenting on php-dev
2002-10-28 17:17:50 +00:00
Marcus Boerger 6829a7a5b1 fix this tests
-they did not dl load module in test....
-disable E_NOTICE
2002-10-28 17:15:21 +00:00
Sterling Hughes a78d5eb887 update... 2002-10-28 16:32:54 +00:00
Ilia Alshanetsky e300e0df59 Fix win32 build. 2002-10-28 12:37:31 +00:00
Adam Dickmeiss e7daf531de Raw records for yaz_record 2002-10-28 10:56:24 +00:00
Marc Boeren abb1f69166 Added dbx.colnames_case option that controls the case of the returned
column names.
2002-10-28 09:54:21 +00:00
Marc Boeren 1d1febb79b Added ini-entry and dbx_query flags to control the returned
column names (unchanged, lowercase, uppercase).
2002-10-28 09:41:15 +00:00
Christian Stocker fe34195288 Patch by Morus Walter, concerning some dtd/entity expanding stuff. 2002-10-28 08:54:30 +00:00
Ilia Alshanetsky 728eacbf52 A better fix for bug #20110. 2002-10-28 03:45:21 +00:00
Sterling Hughes 62d10bc969 make one-line read work on win32...
# The implementation of this function is brain-dead, but at least
# now its brain-dead on win32 too... ;-)
2002-10-28 03:05:04 +00:00
Sterling Hughes 29a344b384 remove $_FILES from $_REQUEST as per php-dev conversation... 2002-10-28 02:46:09 +00:00
foobar af52de3430 - Enable the sed check. (and moved earlier so we can use the $SED everywhere) 2002-10-28 02:13:43 +00:00
Shane Caraveo 3034c31934 windows will not have these, so dont bother, but add an OS to the stuff so that it makes sense why they are N/A 2002-10-28 02:00:56 +00:00
Shane Caraveo c82c6263e8 fix getting ini values that contain the char =
fix command line quoting.  windows requires double quotes in order to handle & (in ini values) correctly
2002-10-28 01:43:54 +00:00
6c9a7584f1 ChangeLog update 2002-10-28 01:35:43 +00:00
Ilia Alshanetsky beed359434 Bug fixing news. 2002-10-28 01:17:32 +00:00
Ilia Alshanetsky f76b9649cd Fixed bug #20110. 2002-10-28 00:28:11 +00:00
Marcus Boerger 4a2efd53bf allow default ini overwrites to be overwritten themselves in --INI--
#see followup on dev list
2002-10-28 00:07:11 +00:00
Marcus Boerger b763fe7622 fix test 2002-10-28 00:02:25 +00:00
Marcus Boerger b9eda54711 This test requires special settings
#wait/read next commit on run-test.php
2002-10-27 23:56:08 +00:00
Shane Caraveo 5ef76f6707 dont memmove a null pointer. caught by bounds checker. 2002-10-27 23:34:48 +00:00
Shane Caraveo bb55b3a420 fix Bug #20126
write returns an int, with < 0 being a failure.
2002-10-27 23:01:45 +00:00
Andrei Zmievski 615c033ea8 Back to 4.3.0-dev. 2002-10-27 19:51:17 +00:00
foobar a7e87d2485 We have to require bison version <= 1.30 >= 1.75 since any versions between are broken.. 2002-10-27 19:47:34 +00:00
Andrei Zmievski 939de5b8d3 Update to -pre2. 2002-10-27 19:07:45 +00:00
Derick Rethans edf4496491 - Add test case for bug 20120, bison bug. 2002-10-27 18:44:35 +00:00
Wez Furlong 7a71b3ba38 Expose some more ncurses functions. 2002-10-27 18:15:35 +00:00
Melvyn Sopacua 50dced2eea Add FreeBSD locale 2002-10-27 17:07:26 +00:00
Melvyn Sopacua 4d8518e83f Add FreeBSD locale 2002-10-27 17:01:48 +00:00
Melvyn Sopacua d95b71973e Avoid possible clash with mysql, but still make it work for BSD's.
Struct verified to be compatible with Linux, FreeBSD, BSDi, AIX 4.3.3 and
Solaris 5.7.
2002-10-27 11:56:06 +00:00
Moriyoshi Koizumi eef8649fa4 Capitalized the title string 2002-10-27 03:07:05 +00:00
a7173b917a ChangeLog update 2002-10-27 00:33:27 +00:00
Marcus Boerger 6857e10de5 Only in EXPECTREGEX 2002-10-26 23:49:25 +00:00
Sascha Schumann ed15104099 s/-// 2002-10-26 22:27:45 +00:00
Sascha Schumann 40b93fa16d add phppat/phpspat configuration file support and
fix some indention
2002-10-26 22:22:34 +00:00
Sascha Schumann e077e0debe update and extend 2002-10-26 22:22:07 +00:00
Ilia Alshanetsky d88775c5ae Better fix for bug #20108. 2002-10-26 22:18:40 +00:00
Ilia Alshanetsky d5870ef544 Added a sanity check (hopefuly will fix bug #20109). According to
http://developer.netscape.com/docs/manuals/enterprise/40/nsapi/05_nsapi.htm#551539
util_hostname() can return a NULL value.
2002-10-26 22:00:36 +00:00
Sascha Schumann 65b79b3595 Define HAVE_LIBDL, if dlopen() was found.
It was tempting to do a complete s/HAVE_LIBDL/HAVE_DLOPEN/ over the
whole code base.  I defer that to a later point in time for now.
2002-10-26 21:28:35 +00:00
Sascha Schumann 7a0850a344 Fix build and .phps support 2002-10-26 21:06:10 +00:00
Ilia Alshanetsky e12826bc34 Added expected output. 2002-10-26 20:55:48 +00:00
Sascha Schumann 01bdc2e369 experimental .phps support 2002-10-26 20:55:41 +00:00
Sascha Schumann c46ed2114e not sure what this async_send is doing in here, so relieve it from its duty. 2002-10-26 20:45:35 +00:00
Ilia Alshanetsky 2c480b0f6f Fixed bug #20108. 2002-10-26 20:45:17 +00:00
Derick Rethans 758d074822 - Fix typoes 2002-10-26 20:09:15 +00:00
Derick Rethans 77d10050e1 - fix type 2002-10-26 20:07:49 +00:00
Melvyn Sopacua 93fcd7ea5d Test for bug in sprintf
# Doesn't segfault for me, but gives a lot of garbage, so I really don't
# know what the output should be. Results posted to QA
2002-10-26 20:07:26 +00:00
Sascha Schumann 7b3bea0b41 Donate "Fast Accept Loop" from Premium thttpd which speeds up processing
new connections when the connection table contains lots of entries.
2002-10-26 19:41:27 +00:00
Ilia Alshanetsky 3a1c278361 Fixed memory leaks. 2002-10-26 19:33:15 +00:00
Sascha Schumann 467fea036a Donate "Periodic Connection Expiring" from Premium thttpd, because
it is simple and gives a +40% improvement in terms of requests/s
when serving static files.
2002-10-26 18:14:45 +00:00
Marcus Boerger 92b63c4be5 remove original version 2002-10-26 16:58:38 +00:00
Marcus Boerger 24fe2a0f2d change to use EXPECTREGEX and rename 2002-10-26 16:56:26 +00:00
Marcus Boerger cc4c0634fe -introduce EXPECTREGEX
-add %c for EXPECTF
#i think we must escape the special characters for EXPECTF: ".()" and such
2002-10-26 16:54:30 +00:00
Marcus Boerger 0679a9139f split tests 2002-10-26 16:48:03 +00:00
Marcus Boerger 0d68286a95 fine tune 2002-10-26 16:09:50 +00:00
Sascha Schumann b9135d74e9 some system headers (irix) define sa_len
prefix sa_len with x
2002-10-26 15:47:22 +00:00
Moriyoshi Koizumi e13c936bd3 Clean-ups 2002-10-26 08:52:17 +00:00
Moriyoshi Koizumi 905d95fa03 Renamed the test 2002-10-26 08:50:05 +00:00
Moriyoshi Koizumi d883bf51df Added a test case for ob_iconv_handler() 2002-10-26 08:45:49 +00:00
Moriyoshi Koizumi 6537b7b21a Fixed typo... what did this "#" sign mean? 2002-10-26 07:49:46 +00:00
Yasuo Ohgaki 75583ee2a6 Remove useless check.
# Problem was in other place
2002-10-26 02:08:05 +00:00
7f34462813 ChangeLog update 2002-10-26 00:34:14 +00:00
Moriyoshi Koizumi 5a6c529f43 Renamed test cases 2002-10-25 21:39:02 +00:00
Moriyoshi Koizumi 16315a9a22 Added a test case for bug #20087 2002-10-25 21:29:14 +00:00
Ilia Alshanetsky 9526ca998d This is needed for BSD (FreeBSD, BSDi and possibly others), problem
was indentified by Melvyn Sopacua.
2002-10-25 20:09:53 +00:00
Ilia Alshanetsky fdd2cb6024 Cleanup (make sterling happy). 2002-10-25 19:33:09 +00:00
Melvyn Sopacua 7e4beef623 - Add XSLT_REG_ERRMSG macro to register an error on the handle
- Rename constants to a bit more appropreate format
- Add XSLT_ERR_UNSUPPORTED_SCHEME to be returned for scheme handlers.

# Docs on xslt_set_scheme_handlers are in progress.
2002-10-25 19:23:15 +00:00
Melvyn Sopacua d2f81e2083 Tests renamed
Remove dl() from skipif, for potential problems accross platforms and
versions.
2002-10-25 19:17:16 +00:00
Melvyn Sopacua dbc6c32152 test renaming 2002-10-25 19:13:34 +00:00
Moriyoshi Koizumi af9aefc9be Additional fix for #20087
# Thanks, Derick!
2002-10-25 18:35:25 +00:00
Ilia Alshanetsky b26230150c Added note about error reporting in tests. 2002-10-25 18:09:55 +00:00
Ilia Alshanetsky c88e0fd5de Fixed a bug in the test that would cause it to always fail. 2002-10-25 17:52:32 +00:00
Derick Rethans 9e1b9a89f9 - Fixed bug #20087 (Assertion failure when the value was empty) 2002-10-25 17:44:52 +00:00
Ilia Alshanetsky ebd4182b2c The log_errors=1 breaks a number of tests and is useless for our purposes,
removing.
2002-10-25 17:24:09 +00:00
Derick Rethans d82565fb7a - Fix build
#- Jan, please TEST! before committing :-)
2002-10-25 14:33:46 +00:00
Moriyoshi Koizumi e7cc9d0274 Updated the test cases for htmlentities() 2002-10-25 13:12:31 +00:00
Moriyoshi Koizumi 16fc9f6539 Fix build if mbstring is enabled as shared extension. 2002-10-25 13:12:05 +00:00
Marcus Boerger 63a9d4fa2e fix ZTS build 2002-10-25 11:50:35 +00:00
Derick Rethans 1a25797249 - Naming style 2002-10-25 11:20:45 +00:00
Marcus Boerger 9307fa750e update 2002-10-25 11:17:45 +00:00
Marcus Boerger 0a7653263d README.TESTING examples 2002-10-25 11:10:08 +00:00
Marcus Boerger 5a8ed1e734 New naming scheme 2002-10-25 11:09:01 +00:00
Marcus Boerger ee4dfeec5d New naming scheme 2002-10-25 10:59:52 +00:00
Marcus Boerger 0433e71a76 README.TESTING examples 2002-10-25 10:46:19 +00:00
Marcus Boerger d5911a2cbb remove unnecessary sections
#becomes an example
2002-10-25 10:28:37 +00:00
Marcus Boerger 63cffd7eae Implemented dba_list() that returns an array rsrcid=>filename and a test. 2002-10-25 10:06:35 +00:00
Marcus Boerger a707e77a1b Added some tests for dba extension 2002-10-25 09:42:29 +00:00
Moriyoshi Koizumi 36447ebe05 Fixed null value check in php_mb_mbchar_bytes_ex() as it should be 2002-10-25 09:36:36 +00:00
Jan Lehnardt e431d6a1c9 - alphabetical output for php -h (cli) 2002-10-25 09:32:32 +00:00
Jan Lehnardt ed29169f91 - alphabetcial output for php -h (cgi)
- cosmetics
2002-10-25 09:28:55 +00:00
Moriyoshi Koizumi 34aa59baf9 Added two new rows to MINFO that describes iconv library info. 2002-10-25 08:51:59 +00:00
Moriyoshi Koizumi b309c0515c Adjusted MINFO table style 2002-10-25 08:31:27 +00:00
foobar 7147be21df style 2002-10-25 06:24:53 +00:00
Sascha Schumann 0a80a78670 thttpd initializes contentlength to -1, so we need to transfer that to 0
for SAPI/PHP.  Otherwise, SAPI will try to read (unsigned long) -1 bytes
from the connection.
2002-10-25 01:10:50 +00:00
Ilia Alshanetsky b109f8e3bd Added a mechanism allowing the disabling of the ability to change
certain INI options when safe_mode is enabled.

ATM three options are limited:
max_execution_time
memory_limit
child_terminate

This patch also fixes bug #17287.
2002-10-25 01:06:46 +00:00
85c4ecf6b5 NEWS update 2002-10-25 00:34:26 +00:00
18bc258354 ChangeLog update 2002-10-25 00:33:42 +00:00
Moriyoshi Koizumi 75db2913f1 Added some cases which test if charset determination with
SG(default_charset) works.
2002-10-24 22:21:03 +00:00
Moriyoshi Koizumi d347143fe1 Improved determine_charset() to look up SG(default_charset) value 2002-10-24 22:04:28 +00:00
Moriyoshi Koizumi c7c418c25a Added new test cases for htmlentities 2002-10-24 21:11:41 +00:00
Moriyoshi Koizumi 429f8fa6d7 Fixed ISO-8859-1 handling. 2002-10-24 21:10:45 +00:00
Marcus Boerger 82b96d99f3 implemented dba_handlers()
@Added dba_handlers() that lists all installed handlers in an array. (marcus)
2002-10-24 20:43:03 +00:00
Hartmut Holzgraefe 0e28eaf550 trying to fix #20063 2002-10-24 20:04:16 +00:00
Moriyoshi Koizumi f2269ef4a3 Added &euro; support to cp1252 table 2002-10-24 19:52:30 +00:00
Marcus Boerger cb330eb5d7 -specify reason if connection is not specified
-remove unnecessary sections
2002-10-24 19:34:18 +00:00
Melvyn Sopacua 6695544db2 - Add locale string for FreeBSD
ATTN: Test nog longer skips, but fails. So whatever has changed since 4.2.3
affects BSD systems.
2002-10-24 19:17:11 +00:00
Marcus Boerger e1508efb45 fix compiler warning?: implement default mentioned by manual 2002-10-24 19:17:08 +00:00
Marcus Boerger 15b2e277a4 fix compiler warning 2002-10-24 19:15:40 +00:00
Derick Rethans 67670560e4 - Protect function definitions with #ifdef's too 2002-10-24 18:49:57 +00:00
foobar 0bac55b4e7 - If functions are not available on OS, they're not available in PHP. 2002-10-24 18:31:11 +00:00
Andi Gutmans 023836ae25 - Also tune jmpz_ex 2002-10-24 18:24:55 +00:00
Marcus Boerger 86465058a4 one version for php<4.2.3 and one for php>=4.2.3 2002-10-24 18:18:44 +00:00
Marcus Boerger 0718785076 -improoved number detection
-display every error/warning only once
2002-10-24 18:14:39 +00:00
Andi Gutmans 80109314b9 - Improve performance of part of the jmps. More to follow. 2002-10-24 18:04:12 +00:00
Ilia Alshanetsky e4becf42ed Added an ini option to hide the expected memory leak. This is done for
compatibility with systems where report_memleak is turned off or running
PHP with --disable-debug.
2002-10-24 17:02:44 +00:00
Derick Rethans 7592362b4c - Allow the report_memleak setting to be set everywhere 2002-10-24 16:56:59 +00:00
Sascha Schumann d464b8164c add missing {} 2002-10-24 16:04:31 +00:00
Marc Boeren acea3ab036 Changed the dbx_oci8 behaviour to return lowercase column-names,
which is a hack but at least it makes it easier for users
to create portable apps.
# Perhaps this should be controlled by a (.ini?) directive or define
# which determines the change (toupper, tolower, nochange)?
2002-10-24 14:26:14 +00:00
Marc Boeren b5783184ea Not happy with the hack to handle the uppercase fieldnames that oracle
returns. Changed the dbx_oci8 behaviour to return lowercase instead,
which is also a hack but at least it makes it much easier for users
to create portable apps (Mc).
# also, I prefer lowercase :-)
2002-10-24 14:16:28 +00:00
Moriyoshi Koizumi e95fa639d6 Reverted because my patch doesn't make sense: it was just my problem. 2002-10-24 14:12:06 +00:00
Moriyoshi Koizumi 06012c3f42 Fix build 2002-10-24 14:01:45 +00:00
Derick Rethans 1f9f9244eb - whitespace 2002-10-24 14:01:39 +00:00
Sascha Schumann 1e3e07173b Improve shutdown-behaviour
Noticed by: Anantha Kesari H Y
2002-10-24 13:25:57 +00:00
Derick Rethans 337649a5f2 *** empty log message *** 2002-10-24 13:18:27 +00:00
Sascha Schumann 2909e5c9c9 centralize #include "build-defs.h" and drop (sometimes inconsistent) other
instances
2002-10-24 13:15:49 +00:00
Ilia Alshanetsky 26617f8b5f Added failed test summary. 2002-10-24 13:13:23 +00:00
Derick Rethans beffb8164c - True and false are not always defined, used numbers now 2002-10-24 12:52:13 +00:00
Sascha Schumann 6bf422d62e Make PHP compile out-of-the-box with uClibc 2002-10-24 12:21:07 +00:00
Sascha Schumann 938ba73be7 Quote macro names in AC_DEFUN() and prefix the internal macros using
a single underscore. Also rename AC_PHP_ONCE as PHP_RUN_ONCE.
2002-10-24 10:41:36 +00:00
Sascha Schumann e60c601bd1 improved warning message
# this should really link to an external page which explains the issue deeply
2002-10-24 10:40:48 +00:00
Jan Lehnardt b2a8031144 - gcc prints -v information on stderr, make sure that we catch it anyway.
- I hope this does not cause problems with other compilers or shells. IMHO we
 - already rely on /bin/sh anyway, right?
2002-10-24 09:06:31 +00:00
Jan Lehnardt cf4d435a12 - fix segfault in proc_open
#no bugreports found
2002-10-24 08:46:21 +00:00
foobar f291958256 style is everything 2002-10-24 03:56:40 +00:00
Moriyoshi Koizumi e8be0db546 Fixed build when mbstring is not used - my previous patch is insufficient. 2002-10-24 02:59:01 +00:00
Moriyoshi Koizumi 73ca375f37 MFH; we would see a nasty problem again if it was not fixed... 2002-10-24 02:56:28 +00:00
Ilia Alshanetsky 9d079e9b3e Various corrections aimed at making the test's results consistent across
all enviroments.
2002-10-24 02:40:03 +00:00
Marcus Boerger 1ff1e6496b use german characters for a test with german locale 2002-10-24 00:49:38 +00:00
1a8a75a48f NEWS update 2002-10-24 00:34:33 +00:00
d18c53afd0 ChangeLog update 2002-10-24 00:34:01 +00:00
Marcus Boerger 096d8dad8e additions 2002-10-24 00:00:26 +00:00
Marcus Boerger 339dfe0cd2 better use var_dump and EXPECTF
#seems i waited for EXPECTF
2002-10-23 23:51:15 +00:00
Moriyoshi Koizumi 74883a9583 Make php_mb_is_mb_leadbyte() obsolete. It only works with double-byte chars.
# Sorry Marcus, it seems we were working simultaneously :)
2002-10-23 23:25:27 +00:00
Marcus Boerger f537cc53bf allow php here for the moment
#hope someone will remove those php files here
2002-10-23 23:20:01 +00:00
Marcus Boerger 37d2a1dd08 fix warning 2002-10-23 23:09:08 +00:00
Marcus Boerger b321568b96 fix warning: used in rfc1867.c 2002-10-23 23:08:20 +00:00
Marcus Boerger 015832d81e fix style and warnings 2002-10-23 23:07:14 +00:00
Ilia Alshanetsky 2f3cd572fb Added 'skip logic' to the test on platforms where the locale required by
this test is not avaliable.
2002-10-23 23:04:43 +00:00
Melvyn Sopacua 703e360a35 suddenly, there was a newline 2002-10-23 22:21:40 +00:00
Jon Parise 52641b4104 Correct spelling. 2002-10-23 21:46:40 +00:00
Jon Parise 9f5af091d9 Correct mispellings and some word misuse. 2002-10-23 21:44:43 +00:00
Jon Parise 553112eee8 Capitalize PHP and spell "web server" using two words. 2002-10-23 21:41:40 +00:00
Jon Parise 67f8041395 - Apply proper capitalization to PHP and MySQL.
- Correct some spelling errors.
2002-10-23 21:39:32 +00:00
Jon Parise 2af28df445 Improve the wording in this paragraph. 2002-10-23 21:35:17 +00:00
Jon Parise fd4d1f2c05 Formatting nit: "autoconverted" to "auto-converted" 2002-10-23 21:32:39 +00:00
Melvyn Sopacua c1caad6853 Provide an example cron script, to invite people to test. 2002-10-23 21:32:09 +00:00
Jon Parise 705766fd9b - Spell out "cd" as "change directory".
- Replace "ie" with "e.g.", which is more appropriate in this context.
2002-10-23 21:31:12 +00:00
Melvyn Sopacua c95256b996 no more looking 2002-10-23 21:21:07 +00:00
Melvyn Sopacua 2322917af9 statis->status
clarity on the exit status
2002-10-23 21:15:08 +00:00
Melvyn Sopacua 8bfb6c5893 Some english fixes
Added docs for automated testing.
Now telling the current version of the truth about ini settings :)
Be more verbose about QA goals intentions and the tester's part in the
process.
2002-10-23 20:56:09 +00:00
Melvyn Sopacua 1de45a050c Implement 'no interaction' for automated tests
Implement exit status 1 to make actions for automated testing selectable

# Sorry Derick, was already working on this and the docs, see next commit
# and forthcoming email
2002-10-23 20:53:20 +00:00
Andi Gutmans 1eb04a850e - This might improve performance. Commiting it so that I can check it on
- Linux
2002-10-23 20:40:07 +00:00
Moriyoshi Koizumi 069bfc57d9 Updated the test case 2002-10-23 20:38:18 +00:00
Derick Rethans 31224b8923 - Use new setlocal semantics 2002-10-23 20:35:16 +00:00
Moriyoshi Koizumi 3bc01b5d0b Modified mb_convert_case() to handle cased characters properly when MB_CASE_TITLE is specified. 2002-10-23 20:32:51 +00:00
Andi Gutmans 4a9f1a9396 - Make Ts access a macro. I need this for my next patch which should
- improve performance but not sure yet if it will.
2002-10-23 20:26:28 +00:00
Derick Rethans 6a1f477be9 [0.05]
- Disable html_errors in info sent
2002-10-23 20:13:42 +00:00
Moriyoshi Koizumi d59f9b756e Fixed comment position.
# Sorry for repetitive commit logs :)
2002-10-23 19:58:37 +00:00
Melvyn Sopacua d365b09ec3 Make it work without .php files 2002-10-23 19:52:26 +00:00
Moriyoshi Koizumi afa9f42f47 Function renaming. 2002-10-23 19:51:50 +00:00
Moriyoshi Koizumi 83fd27ee0a Added folding markers for happier hacking 2002-10-23 19:38:46 +00:00
Andrey Hristov d9c067ecc7 Test case regarding randomization of shuffle() and str_shuffle().
The code was provided by Adam Trachtenberg : adam trachtenberg com
2002-10-23 19:33:12 +00:00
Moriyoshi Koizumi e8e614101d Style keisatsu 2002-10-23 19:20:27 +00:00
Moriyoshi Koizumi f2f19761a5 Forgot this one. 2002-10-23 18:34:57 +00:00
Moriyoshi Koizumi fdc91ccc73 Renaming the functions. 2002-10-23 18:32:55 +00:00
Jan Lehnardt e96e0ae002 - use the cc that was detected by ./configure when determining version
information in run-tests.php
2002-10-23 17:56:42 +00:00
Moriyoshi Koizumi b7703551ed Remaned the functions for consistency 2002-10-23 16:54:31 +00:00
Moriyoshi Koizumi cbc9256fc9 MFH 2002-10-23 16:48:33 +00:00
Hartmut Holzgraefe a681203a83 don't assume yp-functions are always in libc, try also libnsl 2002-10-23 16:04:03 +00:00
Marcus Boerger 9da3c884fb update and correct 2002-10-23 12:59:18 +00:00
Marcus Boerger 69ce017d28 remove *.php file for EXPECTF tests, too. 2002-10-23 12:54:57 +00:00
Marcus Boerger fa95a4a269 Shorten
# will be used as an example in README.TESTING
2002-10-23 12:47:31 +00:00
Marc Boeren 4448c3f69f Added Oracle (oci8) support
@Added Oracle (oci8) support to dbx module (Mc)
2002-10-23 10:50:22 +00:00
Marc Boeren 1b50e47648 Updated tests for Oracle (oci8) support (Mc) 2002-10-23 10:45:29 +00:00
Sascha Schumann d554b8d3ab Maintain appropiate line breaks 2002-10-23 10:11:38 +00:00
Derick Rethans d54f58d164 - Trying to clean up this mess :) 2002-10-23 09:35:21 +00:00
Derick Rethans 273d5e04d2 - No reason why implicit_flush should not be settable from a script 2002-10-23 09:31:33 +00:00
Jan Lehnardt 70251bcac0 - be more verbose 2002-10-23 08:51:17 +00:00
Derick Rethans a729a63a23 - Remove this messed up thing AGAIN
#- Yasuo: touch it and I'll fly over applying a YART on you.
2002-10-23 08:46:49 +00:00
foobar d313b3c285 - No tabs, no echoing, no unnecessary code 2002-10-23 02:46:09 +00:00
Yasuo Ohgaki d253364a13 Make CLI behave like other moder scripting languages. 2002-10-23 01:21:40 +00:00
Yasuo Ohgaki 4dfba15201 Fixed buffring issue again. 2002-10-23 01:21:04 +00:00
Hartmut Holzgraefe cdecc42086 make it work with pre-v5 fdftk again 2002-10-23 01:11:06 +00:00
1c335c8c45 ChangeLog update 2002-10-23 00:34:16 +00:00
foobar 9b72793d03 Possible fix for cygwin detection. 2002-10-23 00:21:43 +00:00
Stig Bakken 886f0bcf7f * make *_dir config parameters available for substitution in the
rpm spec file template
2002-10-22 23:08:55 +00:00
Stig Bakken b65e60b093 * add transactions member array (for queueing file transactions) 2002-10-22 23:08:09 +00:00
Stig Bakken 59f499228f * some minor fixes to the rpm spec file template 2002-10-22 23:07:36 +00:00
Stig Bakken 8082619e80 * add some signature handling config options 2002-10-22 23:07:10 +00:00
Moriyoshi Koizumi 4758b109a5 Do the same test as ext/standard/test/strings/strtoupper.phpt does 2002-10-22 20:34:53 +00:00
Moriyoshi Koizumi 68a5d1bca3 Improved determine_charset() to use mbstring.internal_encoding when the last
param is a null string. (If the param is omitted, it takes iso-8859-1 as
the default charset in favour of backwards compatibility.)
2002-10-22 20:11:48 +00:00
Melvyn Sopacua d6e639a02f test for locale support in strtoupper 2002-10-22 19:39:17 +00:00
Andi Gutmans 8cbe1ea796 - Nuke unused get_incdec_op()
- Nuke old comment
2002-10-22 19:34:25 +00:00
Andi Gutmans d12679a64d - Improve overall engine performance 2002-10-22 19:31:53 +00:00
Ilia Alshanetsky e94b9ea9ee Fixed a bug noticed by Jon Parise. 2002-10-22 18:57:59 +00:00
Ilia Alshanetsky 62aefeb01f Fixed ZTS build. 2002-10-22 18:54:09 +00:00
Stefan Esser e83ca7dc85 fix make test for an external build dir setup 2002-10-22 18:53:56 +00:00
Marcus Boerger 14626a1836 ups - the other way round of course 2002-10-22 18:47:41 +00:00
Marcus Boerger 376dcd80bb Updated tests 2002-10-22 18:40:30 +00:00
Marcus Boerger d8378f9eda Add lock file 2002-10-22 18:39:34 +00:00
Ilia Alshanetsky 1de9cddb3f Fixed compile warnings. 2002-10-22 18:39:33 +00:00
Marcus Boerger 822e9b6e56 Fix this extension.
#The problem was that the extension suspected the hash list to be a
#straight forward list with no closed elements.
2002-10-22 18:39:05 +00:00
Marcus Boerger e2a62e21c2 Fix for cases when new_length is NULL 2002-10-22 18:27:56 +00:00
Ilia Alshanetsky 30abd18322 Fixed a possible segmentation fault in file() function. 2002-10-22 18:07:11 +00:00
Marcus Boerger f1d158c41c No longer needed. See README.TESTING 2002-10-22 17:48:50 +00:00
Ilia Alshanetsky 9f6a8748e1 Small corrections to the expected output. 2002-10-22 17:38:13 +00:00
Ilia Alshanetsky 2e25c236d4 One more PEAR test to be skipped. 2002-10-22 17:26:39 +00:00
Ilia Alshanetsky 6b67dc8dd5 Fixed implode test 2002-10-22 17:17:56 +00:00
Andi Gutmans 329354529b - Fix bug reported by Daniel T. Gorski 2002-10-22 17:00:59 +00:00
Ilia Alshanetsky a5d3427251 When doing automatic line end detection, pick the line end that is found
first.
2002-10-22 15:34:50 +00:00
Ilia Alshanetsky dd56de8d1e Disable PEAR tests. These tests have too many dependcies such as
pre-installed PEAR, needing to run as root user, most tests
will fail if PEAR install directory is not inside include_path and so on.
2002-10-22 14:19:02 +00:00
Ilia Alshanetsky 5c53cdafcb Fixed a bug that caused the values of options/flags set via
httpd.conf/.htaccess and other apache methods to contain a \0 as part of the
value.
2002-10-22 14:02:14 +00:00
Derick Rethans cb856e6717 - Add optional targets to allow the usage of Makefile.frag for shared
extensions.
2002-10-22 12:30:32 +00:00
Jon Parise f62fc1a0ef Correct case for README.TESTING. 2002-10-22 12:28:49 +00:00
Ilia Alshanetsky f7b15b0611 Added support for 'engine Off' directive
Added support for 'none' option for *_value options.
2002-10-22 12:20:12 +00:00
Derick Rethans 5f070780bf - Explicitly return "0" at the end of the script. For some weird reason it
was returning error code 256 for me. This fixes pear install <pecl>.tar.gz
  for me.
#- Not sure if this is correct though
2002-10-22 11:21:38 +00:00
Marcus Boerger 42d33c38b3 Test result depends on these ini settings 2002-10-22 09:34:53 +00:00
Marcus Boerger 32a77eff78 Update documentation 2002-10-22 09:00:52 +00:00
Marcus Boerger 10149bb2f0 Missing and updated. Now including *.php 2002-10-22 08:56:31 +00:00
Marcus Boerger 8312f1443c Give back the php file and leave it in case test fails. 2002-10-22 08:54:23 +00:00
Frank M. Kromann 938a78a85b Fixing check to enable dl() for both cgi and cgi-fcgi 2002-10-22 07:00:51 +00:00
foobar 65d21115de Style polizei 2002-10-22 04:02:44 +00:00
67d264a9f3 NEWS update 2002-10-22 00:35:00 +00:00
829b7708b8 ChangeLog update 2002-10-22 00:33:51 +00:00
foobar 12fc60c625 - Revert the undiscussed change.
#
# Yasuo, don't you think there was a reason to drop this???
# Please, discuss these things before you go and change something.
#
2002-10-22 00:18:26 +00:00
Yasuo Ohgaki 54fdd7a8f0 Hmm. -c options was there, but removed.
It is _needed_ for php.ini users uses buffer by default.
2002-10-22 00:03:49 +00:00
foobar 7d3dc68a79 Nuke tabs. 2002-10-21 23:41:55 +00:00
foobar f93096ecb6 Removed tabs and combined those multiple AC_CHECK_FUNCS calls to one. 2002-10-21 23:41:38 +00:00
Ilia Alshanetsky d8480c8088 Fixed symlink/link functions on ZTS builds.
Made URL detection in symlink code use php_stream_locate_url_wrapper().
2002-10-21 23:35:29 +00:00
foobar 0abca4f60a Cleanup. (no tabs here!) 2002-10-21 22:58:52 +00:00
Wez Furlong dabf1053cd Refine stream_select() to work with streams that have data in their read
buffers.
When selecting for read, the streams are examined; if any of them have
pending read data, no actual select(2) call is performed; instead the
streams with buffered data are returned; just like a regular select
call.
Prevent erroneous warning in stream_select when obtaining the fd.
2002-10-21 22:54:37 +00:00
Sterling Hughes 102c945501 no need to double fetch 2002-10-21 22:35:59 +00:00
Hartmut Holzgraefe c4cb92229c this will be handled elsewhere 2002-10-21 20:20:08 +00:00
Hartmut Holzgraefe eb137d3d80 @ updated FDF extension to work with current Adodeb fdftk 5.0 (hartmut)
reworked some existing stuff
added some functions suporting stuff that have been added since fdftk 2.0
emulating read from/save to strings by transparently using temp. files
  (activeX version of fdftk has this, but not plain C version :( )
2002-10-21 19:55:28 +00:00
Hartmut Holzgraefe f768d343f5 fixed build for getopt_long-less platforms,
removed left-over todo comments
2002-10-21 19:24:48 +00:00
foobar 3fd56c2995 Changed --with-gd to behave same way as --with-mysql does. 2002-10-21 19:19:08 +00:00
Moriyoshi Koizumi bce3d0cf7d Renamed the test cases. 2002-10-21 19:19:05 +00:00
Hartmut Holzgraefe 07b90cafc9 removed left-over unused variable 2002-10-21 19:18:39 +00:00
Jon Parise 20e6ed36ec Convert C++ style comments to C style comments. 2002-10-21 19:12:13 +00:00
Hartmut Holzgraefe 30ed5a5483 killed some warnings identified by sebastian 2002-10-21 19:08:18 +00:00
Hartmut Holzgraefe 8841dfc995 removed bogus paranoid header checking 2002-10-21 18:44:50 +00:00
Hartmut Holzgraefe 8b7e9d7774 some changes to how request input data (Content-Lenght >0) is handled
- webdav-specific stuff removed (should be handled using httpd.conf
  LIMIT or equivalents)
- always_populate_raw_post_data now working on any method, not just
  POST (and webdav methods with allow_webdav_methods), when
	Content-Length is greater zero
- raw input data is also available using php://input stream,
  this way one doesn't have to care about memory_limit
- input data is now always consumed (although maybe ignored,
  this fixes we had withproblems with keep-alive connections
@ raw POST data is now available as php://input stream (hartmut)
2002-10-21 16:41:06 +00:00
Hartmut Holzgraefe b67b00efcd getopt() now supports long options on platforms that have getopt_long()
getopt() now working independant of register_argc_argv settings
2002-10-21 16:07:21 +00:00
Hartmut Holzgraefe 3e99daca39 workaround for the "autoconf-cache-bug" workaround
-> don't remove config.nice
2002-10-21 15:11:19 +00:00
Andrei Zmievski e938ca62e9 Tweak. 2002-10-21 15:06:09 +00:00
Hartmut Holzgraefe ed75204a85 ZTS build fix 2002-10-21 14:56:42 +00:00
Ilia Alshanetsky b9efd22339 Fixed bug #16880. Added an ini option max_input_time that allows the user
to specify how much time a script may spend parsing input data (POST, GET, etc..).
2002-10-21 13:09:29 +00:00
Hartmut Holzgraefe dde85e3936 fix for #19712 & #19715 -> whitepsace in extension dir name 2002-10-21 11:53:04 +00:00
Thies C. Arntzen 31e4d62378 #19948 2002-10-21 11:00:40 +00:00
Moriyoshi Koizumi 4eadff2233 More style fixes... 2002-10-21 10:47:41 +00:00
Moriyoshi Koizumi d953754d74 Let them say why they are skipped 2002-10-21 10:35:02 +00:00
Moriyoshi Koizumi a26a849bb3 Fixed typo. 2002-10-21 10:23:31 +00:00
Moriyoshi Koizumi cd410cbf9f \s cannot be used with ereg() 2002-10-21 10:22:41 +00:00
Sander Roobol 988c355720 The results of each test should go on a single line 2002-10-21 09:04:56 +00:00
Derick Rethans 8e9f83add2 - Stijl polizei 2002-10-21 08:55:49 +00:00
Melvyn Sopacua b4b26c2f9b Skip this when strtoupper doesn't behave as expected, because casefolding
depends on this.
2002-10-21 08:55:07 +00:00
Melvyn Sopacua 7bb87c31f8 Adds a 'reason' for skipping a test.
# See modifications on ext/xml/tests/007.phpt for example
2002-10-21 08:52:45 +00:00
Thies C. Arntzen d7648f440c MFZE1 2002-10-21 08:48:55 +00:00
foobar b26f6233d8 remove the remains of that comment. 2002-10-21 03:31:52 +00:00
foobar 9d21dd450d - Moved CGI specific lines from configure.in to sapi/cgi/config9.m4
which is 'executed' last of the SAPI config.m4's.
- Added --disable-cgi option. (was possible only with above change)
- Made the sed check to not test for the possibly working sed on Solaris
  since that would make the test quite useless. (compile would still fail)

# That sed check is not enabled yet..need to know whether we fail
# during configure or just put out a warning about possible non-working
# sed. As even plain ./configure doesn't work in most cases, I think
# it would be better to just fail during configure and let the users
# fix their paths/install GNU sed.
2002-10-21 03:12:27 +00:00
foobar 11a1519e51 - Add one 'level' more (0 first, 9 last)
# Sascha, maybe we should use that apache2 config-stubs instead?
2002-10-21 03:07:23 +00:00
foobar 3be17e3f26 - Prevent resetting the PHP_*_DIR variables if already set. 2002-10-21 02:46:13 +00:00
Moriyoshi Koizumi 821349465a style keisatsu :) 2002-10-21 02:39:53 +00:00
Moriyoshi Koizumi cee696d9e7 Added a new test case to confirm the inconsistent regex behaviour reported
on php-users@php.gr.jp (10830)
2002-10-21 02:27:51 +00:00
Moriyoshi Koizumi fe7c6debd9 Changed the dafault option for consistency 2002-10-21 02:24:06 +00:00
Moriyoshi Koizumi f45231a8ed Added mb_strtolower() and mb_strtoupper()
@- Added mb_strtolower() and mb_strtoupper(). (Moriyoshi)
2002-10-21 01:44:59 +00:00
Moriyoshi Koizumi 890aee56d1 MFH 2002-10-21 01:33:31 +00:00
foobar 2a81281fd2 Align with other configure --help texts 2002-10-21 00:35:17 +00:00
e03bd99ef0 ChangeLog update 2002-10-21 00:34:56 +00:00
foobar e232b212ba There is no point doing this test. Some systems think root can always execute so this is always true. 2002-10-21 00:30:05 +00:00
Sean Bright 2d8027e3d1 Fix some verbage. 2002-10-20 23:35:56 +00:00
foobar 455d2485f7 Try keep those most important entries as first.. 2002-10-20 23:09:24 +00:00
Moriyoshi Koizumi c536b52cb0 style fix 2002-10-20 23:05:34 +00:00
Ilia Alshanetsky fef922307c Fixed incorrect handling of files starting with a . 2002-10-20 20:44:10 +00:00
Stanislav Malyshev c33a695f85 looks like this message should go 2002-10-20 19:22:04 +00:00
Stanislav Malyshev 2461c9403b Fix private handling 2002-10-20 17:46:16 +00:00
Moriyoshi Koizumi 852117694a Changed mb_regex_set_options() more informative 2002-10-20 15:11:04 +00:00
Wez Furlong 8d9963b0d8 Add the actual ftok check for Derick :-) 2002-10-20 13:45:59 +00:00
Derick Rethans 3322581c04 - Only include ftok() if it is available 2002-10-20 13:35:56 +00:00
Derick Rethans c5a73b31f6 - Remove #ifdefs around ftok function so that it is also available when
none of the IPC extensions are enabled.
2002-10-20 10:18:20 +00:00
Sebastian Bergmann 12642146c0 Sync zend_html_puts parameter list with Zend Engine 1. 2002-10-20 08:32:02 +00:00
Moriyoshi Koizumi 7fb4938981 ZTS fixes 2002-10-20 07:16:20 +00:00
Masaki Fujimoto a6ecdca0ef fixed highlight related bugs (in case shift_jis input/output filters are enabled) 2002-10-20 02:57:40 +00:00
Maxim Maletsky 4efcd0f5d1 fixed proto: OCIExecute() returns boolean, not integer 2002-10-20 02:20:13 +00:00
bc7a426731 ChangeLog update 2002-10-20 00:33:02 +00:00
Andi Gutmans 13274801e4 - Fix compile warning. 2002-10-19 20:57:15 +00:00
Derick Rethans 11961b1311 - Hopefully fix test file problems 2002-10-19 19:17:13 +00:00
Ilia Alshanetsky 3443f07b3f Silence compile warning. 2002-10-19 17:13:14 +00:00
Ilia Alshanetsky ec400b8d16 Silence compile warning, when compiling --with-openssl. 2002-10-19 17:05:08 +00:00
Ilia Alshanetsky 8ca0b28b6a Fixed a typo. 2002-10-19 16:50:07 +00:00
Maxim Maletsky fd04def23b a silly comment typo 2002-10-19 16:11:16 +00:00
Maxim Maletsky 39afab2039 - fixed proto for OciBindByName to represent the forth parameter optional 2002-10-19 15:51:04 +00:00
foobar 0d98fc6777 --with-zlib-dir has to be defined here to enable phpize build 2002-10-19 13:27:53 +00:00
Wez Furlong 829f1855fd made fgets() binary safe.
php_stream_gets is now a macro which calls php_stream_get_line. The latter
has an option argument to return the number of bytes in the line.
Functions like fgetcsv(), fgetss() can be made binary safe by calling
php_stream_get_line directly.

# HEADS UP: You will need to make clean after updating your CVS, as the
# binary signature has changed.
2002-10-19 13:11:48 +00:00
Derick Rethans 8998bce403 - Style polizei =) 2002-10-19 12:58:41 +00:00
Wez Furlong f42b26bc22 Probable fix for #19944 2002-10-19 10:34:10 +00:00
Marcus Boerger cda87f7509 Allow ifd start at offset other than 00000007h and provide testcase.
#Now we can read images modified by Exifer.
2002-10-19 09:52:00 +00:00
Andi Gutmans 536d4d8aab - Improve opcode dispatching 2002-10-19 09:45:51 +00:00
Yasuo Ohgaki 572b2a5a5a Revert invalid patch. It seems the real problem is in php error
function(s). It exits with return code -1 when php_error_docref()
is called.

There is custom error handler and without custom error handler,
it is working.
2002-10-19 06:05:16 +00:00
Yasuo Ohgaki 29a53a47f6 Skip field when there is obvious error.
Fixed freeing of wrong zval.
2002-10-19 04:46:19 +00:00
Yasuo Ohgaki 98ab76d23c Fixed typo. 2002-10-19 04:01:27 +00:00
790aea267d NEWS update 2002-10-19 00:34:01 +00:00
a699b13246 ChangeLog update 2002-10-19 00:33:29 +00:00
Ilia Alshanetsky c3270448ac Added handling for file:/ schema, which does not contain a host. 2002-10-18 23:54:58 +00:00
foobar 4821b2f301 ws fixes 2002-10-18 22:08:23 +00:00
Andi Gutmans cf36abb2eb - Change opcode dispatch mechanism to use a function per opcode and use
- a lookup table using the opcode # to call the correct function.
- Still have lots of tuning to do.
2002-10-18 21:19:27 +00:00
Ilia Alshanetsky 4b83b189fe Fixed bug #19971 (optimized the file() function).
The file() function is now also binary safe.
2002-10-18 20:39:49 +00:00
Derick Rethans ca1e7301ab - Added %x for HEX chars
- Added %d as alias for %i (too much C here :)
- Added beginning and end markers to regexp
2002-10-18 20:34:41 +00:00
Wez Furlong 7de1f45aaa Revert my last bogus commit.
Change the comparison to something that is less likely to inspire me to
make the same mistake again...
2002-10-18 17:14:32 +00:00
Wez Furlong 9b87199e2a Improve file().
Patch by Tal Peer <tal@php.net>
2002-10-18 16:55:47 +00:00
Andrei Zmievski 76c8b8214c This is deprecated too. 2002-10-18 13:36:26 +00:00
Andrei Zmievski 843eabbde0 Remove deprecated apidoc.txt. 2002-10-18 13:36:02 +00:00
Andrei Zmievski 92d61459c0 @- Fixed an infinite loop in setlocale() when only invalid locale names
@  were passed in the array. (patch by Pal Loberg, pallo@initio.no).
2002-10-18 13:07:50 +00:00
Wez Furlong e0c0264935 Improve EOF detection. Fixes #19970. 2002-10-18 12:15:04 +00:00
Andi Gutmans 7f9819e647 - Cleanup 2002-10-18 10:20:44 +00:00
Tal Peer af3493d30c Changed fribidi_get_charsets() return value to also include the constant
itself (as the key).
2002-10-18 08:59:15 +00:00
Harald Radi b39d79713b make jani happy 2002-10-18 08:18:11 +00:00
foobar 9c6d9ab4c5 achtung: keep the style consistent! :) 2002-10-18 07:56:01 +00:00
Yasuo Ohgaki 5693bd4cdf Added tests for new functions 2002-10-18 07:52:09 +00:00
Markus Fischer 5b4b10c5eb - word_count() -> str_word_count() 2002-10-18 07:29:40 +00:00
fe8ed20528 NEWS update 2002-10-18 00:34:26 +00:00
4b7201f17e ChangeLog update 2002-10-18 00:33:16 +00:00
Yasuo Ohgaki aab58233c5 Added pg_get_pid() that get backend process PID.
Does anyone prefer pg_get_backend_pid() or else?
2002-10-17 23:42:43 +00:00
Yasuo Ohgaki 7094b48b23 Added pg_get_pid() 2002-10-17 23:41:34 +00:00
Ilia Alshanetsky 30c16baac2 Renamed word_count to str_word_count to comply with naming conventions.
Thanks Andi, for catching this oversight.
2002-10-17 22:44:44 +00:00
Tal Peer 56f744e0df Improved fribidi_charset_info() slightly 2002-10-17 18:32:16 +00:00
Tal Peer b941224d5d New functions:
fribidi_get_charsets()
fribidi_charset_info()
@- Added function fribidi_get_charsets() (Tal)
@- Added function fribidi_charset_info() (Tal)
2002-10-17 18:04:43 +00:00
Harald Radi 84c9395f18 @ fixes bugs #19156 and #19544 (memleak) 2002-10-17 16:21:00 +00:00
Derick Rethans 03cc839d90 - Removing debugging info 2002-10-17 14:07:32 +00:00
Ilia Alshanetsky cdf39db369 Added support for file:/. Thanks to Thies for noticing the problem. 2002-10-17 13:59:55 +00:00
Yasuo Ohgaki d023b841a2 Add note for short_open_tag
# Assuming no objection for adding note in the manual.
2002-10-17 09:49:47 +00:00
Thies C. Arntzen 58d1ee0915 @- Added Oracle TIMESTAMP type to oci8 extension. (thies) 2002-10-17 08:09:31 +00:00
Yasuo Ohgaki 8fc45de3de Added pg_get_notify() for better performace for applications
cache query results.
Removed unneeded entry.
2002-10-17 08:04:28 +00:00
Yasuo Ohgaki 601a507ad6 Added async message function - pg_get_notify() 2002-10-17 07:58:46 +00:00
Yasuo Ohgaki 29d16f67f4 Remove mysql_result_seek() alias. 2002-10-17 07:24:04 +00:00
foobar 9870028d05 Fix this for Wez and his antique ucd-snmp 2002-10-17 06:39:55 +00:00
foobar de597eb3c6 Snow..yuck.. 2002-10-17 05:17:35 +00:00
foobar 258177fafa Fix the phpize build 2002-10-17 05:06:53 +00:00
foobar 775a06418f Fix some phpize problems. 2002-10-17 05:05:01 +00:00
foobar fcfa4ea62f Part 1 of fixing the shared build 2002-10-17 04:42:22 +00:00
foobar d1c252b48b --with-zlib-dir was missing. Needed for phpize builds 2002-10-17 04:21:53 +00:00
Ilia Alshanetsky 47b57f2569 Added word_count() function that allows counting of words inside a string.
The function also allows the user to retrieve all the words from a string.
2002-10-17 03:27:19 +00:00
foobar 8aaa004980 ws fixes 2002-10-17 02:51:22 +00:00
f43fd046ea NEWS update 2002-10-17 00:34:11 +00:00
5a935a445b ChangeLog update 2002-10-17 00:33:37 +00:00
Harald Radi 7bacb2fcc4 @ changed the VARIANT class to be able to create arrays of all types
@ and not only VT_VARIANT
2002-10-16 23:56:33 +00:00
Rasmus Lerdorf ebfd9aaa47 Fix for bug #19941 2002-10-16 22:34:44 +00:00
Ilia Alshanetsky 8361687a4a Fixed a bug with .phps handler. 2002-10-16 20:45:36 +00:00
Sebastian Bergmann 7b0949b005 Fix ZTS build. 2002-10-16 19:16:58 +00:00
Stanislav Malyshev c42ec35331 Fix class static members: now the following code works:
<?php

class Foo {
         static $c = "Parent";
}

class Child extends Foo {
}

Foo::$c = "Hello";

var_dump(Child::$c);
?>
and returns "Hello" (class statics are not copied anymore, but looked up in
runtime)
2002-10-16 18:29:41 +00:00
Stanislav Malyshev 349b3a096a Fix and generalize $this handling.
ZEND_FETCH_FROM_THIS is removed, IS_UNUSED type on class variables will be
used instead as the sign that it's a fetch from $this
2002-10-16 18:06:36 +00:00
Ilia Alshanetsky 5ce6d653b8 Fixed bug #19921. (memory leak introduced by me in rev 1.492) 2002-10-16 16:52:08 +00:00
foobar aa1ddac8ad - Fix typo..
#
# Note: This is not used at all yet..waiting for comments first. :)
#
2002-10-16 16:21:13 +00:00
Sebastian Bergmann 9f158fc9c0 Revert. Again. 2002-10-16 14:53:34 +00:00
Rui Hirokawa 6f46548412 modified zend_bool handling code. 2002-10-16 14:08:47 +00:00
Rui Hirokawa 22f44fa673 *** empty log message *** 2002-10-16 13:37:49 +00:00
Rui Hirokawa 585eefca14 fixed a problem when mbstring.encoding_translation is defined per directory basis. 2002-10-16 13:27:40 +00:00
Rui Hirokawa e5f81ee881 fixed a problem when mbstring.encoding_translation is defined per directory basis. 2002-10-16 13:22:57 +00:00
Edin Kadribasic 8b0388b973 Newly available extensions on windows. 2002-10-16 09:15:05 +00:00
f011e5d3fa ChangeLog update 2002-10-16 08:27:21 +00:00
Sebastian Bergmann 49e106d3d3 Patch by Urs Gehrig <urs@circle.ch>. 2002-10-16 07:37:28 +00:00
foobar 16de7dd8a7 - Fixed memleak when connection fails.
- Fixed snmpget() to work with net-snmp
- Fixed the error messages to use the new style.
2002-10-16 02:33:47 +00:00
foobar e99b3cdff2 Some more compatibility fixes for net-snmp vs ucd-snmp 2002-10-16 00:58:15 +00:00
foobar 3c863a6da1 - Fix the last commit..(thanks to Harrie Hazewinkel <harrie@lisanza.net>) 2002-10-16 00:29:56 +00:00
Edin Kadribasic 4a7c12a210 Added win32 project file. 2002-10-16 00:02:32 +00:00
foobar 97e4dc3a41 - Added PHP_PROG_SED which checks whether the sed in system works with
very long strings.

#
# Sascha, is this okay? I added this here since any libtool/autoconf
# release out there doesn't have this yet..we can remove this when
# we can really start requiring such versions which have it?
#
# This sets $SED to the correct binary, so that should be used in
# places were the lines might be very long.
#
2002-10-15 19:37:16 +00:00
Markus Fischer 6da7d4133a - Define LINK_SIZE=2 needed for newly updated pcrelib; fixes Win32 build.
# Getting linker warning about using local defined _php_pcre_exec now at the
# end, anything serious ?
2002-10-15 16:56:00 +00:00
Ilia Alshanetsky 8c6a49f001 Fixed a bug in the calculation of the POST request length. 2002-10-15 16:46:57 +00:00
Wez Furlong 2f6952c936 Nope, that last one wasn't a leak in main/streams.c, it was
file_get_contents misinterpreting the result...
2002-10-15 16:45:26 +00:00
Sterling Hughes c2624f4269 Fix a problem relating to these structure symbols being redefined on LFS
systems.

Fix by Sascha Schumann <sascha@apache.org>
2002-10-15 16:41:39 +00:00
Wez Furlong fa1f06b69f Fix mem leak for zero-byte files. 2002-10-15 16:38:11 +00:00
Wez Furlong 842b5554e0 Some buffer paranoia.
Also, make feof() detection safer (ala recent changes to zlib extension).
2002-10-15 16:04:46 +00:00
Wez Furlong 30f9c47d61 Fix for 19906.
gzeof has different semantics from feof, in that gzeof will return true
if the read position is at EOF, even if the most recent read was 100%
successful.
feof will return true only (usually) if the most recent fread failed.
2002-10-15 16:01:00 +00:00
Sterling Hughes 57440cc984 hopefully silence compile warnings on Solaris related to HUGEVAL being
undefined.. HUGEVAL is defined (well the manual would indicate so) in
stdlib.h, not math.h.

Bug #: 19807
2002-10-15 14:51:01 +00:00
Andrei Zmievski c65c182693 Upgrade to version 3.92. 2002-10-15 13:59:58 +00:00
Ilia Alshanetsky b4348434be Fixed the output_handler ini setting.
Code cleanup.
2002-10-15 12:48:21 +00:00
Ilia Alshanetsky 642347ab36 Bug fixing news. 2002-10-15 12:09:29 +00:00
Ilia Alshanetsky 04db537d97 Added tests for %e & %E 2002-10-15 12:08:02 +00:00
Ilia Alshanetsky 95312e994e Fixed bug #4232. (Added support for %e and %E to printf/sprintf) 2002-10-15 12:07:36 +00:00
Derick Rethans 1a08e5b622 - Staying consistent with other tests 2002-10-15 06:37:05 +00:00
Wez Furlong 94ef7bc81e Don't use streams-level buffer on zlib streams. 2002-10-15 02:27:15 +00:00
Ilia Alshanetsky bf51192d67 Fixed possible memory leaks. 2002-10-15 02:05:27 +00:00
Wez Furlong 6890f98e70 Fix leak, and avoid initialization problems where retval is re-used
within a function.
2002-10-15 01:57:19 +00:00
foobar e737d2c069 Try keep those moved/removed exts entry at top. 2002-10-15 01:16:45 +00:00
Ilia Alshanetsky b1b4bf9144 Bug fixing news entries. 2002-10-15 00:46:51 +00:00
foobar 23706f18d6 Make this thing to compile with net-snmp-5.0.x 2002-10-15 00:43:34 +00:00
226f0a1ed8 NEWS update 2002-10-15 00:36:04 +00:00
Marcus Boerger d396d9c7ce remove ob_end_clean() and instead use ini section
#Derick you're right this was no good idea. I just left it over after testing
#the test.
2002-10-15 00:35:05 +00:00
f0664706c9 ChangeLog update 2002-10-15 00:34:34 +00:00
Ilia Alshanetsky fac8eaff1a MFZE1 2002-10-14 23:41:32 +00:00
foobar 9618e4e854 This test should not print out the error (which is correct). 2002-10-14 23:09:48 +00:00
Edin Kadribasic 4f9b61aa9f Respect INSTALL_ROOT var. Thanks to Jani for catching this one. 2002-10-14 22:18:35 +00:00
Andi Gutmans 046bdeaaab - Support new classname::$class_name, e.g.:
<?

	class foo::bar {
		public $hello = "Hello, World\n";
	}

	$name = "bar";
	$obj = new foo::$name;
	print $obj->hello;
?>
2002-10-14 20:13:03 +00:00
Tal Peer 852ec13d41 * Fixed a nasty bug preventing installation of pecl exts. 2002-10-14 19:57:40 +00:00
Ilia Alshanetsky aba1996d95 Fixed bug #19649. 2002-10-14 18:13:18 +00:00
Ilia Alshanetsky fed3b964ea Added float printing tests. 2002-10-14 16:31:56 +00:00
Sebastian Bergmann 64a22c8a3e Revert to 1.34. 2002-10-14 16:14:18 +00:00
Ilia Alshanetsky 99f2fc81f3 Fixed a bug (introduced in previous patch) that caused non-double values to
be converted to 0 by printf/sprint functions when %f format is specified.
2002-10-14 16:03:16 +00:00
Zeev Suraski 9a9c1b435c Change the 'security level' of registry entries to PHP_INI_SYSTEM. They're
in the system hive in the registry, so only people with administrative
priveleges can add stuff in there.
2002-10-14 12:05:09 +00:00
Derick Rethans 1bb702e403 - Revert, got tricked by a stale object file 2002-10-14 11:59:58 +00:00
Yasuo Ohgaki e6bcb07c75 Fixed warnings 2002-10-14 09:32:36 +00:00
Edin Kadribasic 06484d6eb2 Install lib into $(prefix)/lib.
Make $(prefix)/lib before trying to copy the lib into it.
2002-10-14 09:05:28 +00:00
Derick Rethans 2b34f26b33 - Added the TEST_PHP_USER environment variable with which you can specify
additional directories with tests to run. This is ideal for having your own
  test suite on your system. You can specify more directories by seperating them
  with a ",", for example:

  TEST_PHP_USER=/dat/dev/xdebug/tests,/dat/dev/srm/tests make test
2002-10-14 07:18:23 +00:00
Derick Rethans 092f78fc28 - Fix CLI 2002-10-14 06:58:57 +00:00
Sebastian Bergmann 276b314ed3 Whitespace fixes. 2002-10-14 05:56:03 +00:00
Sebastian Bergmann 2e68e0beba Fix Win32 build. 2002-10-14 05:54:15 +00:00
Wez Furlong 106631fce1 *cough*
Fix inverted logic for the assert.
2002-10-14 05:38:50 +00:00
foobar 1fa263a4ec This is not zval.. 2002-10-14 02:46:52 +00:00
Wez Furlong 86e60a2d7a @- fgets($fp) (with no length parameter) now uses a buffer as long as the
@  the next line available from the $fp. Previously, there was a 1KB limit.
@  (Wez)
2002-10-14 02:28:35 +00:00
Wez Furlong 39f8d4c971 Add a sanity check and more verbose output in the case of an error. 2002-10-14 02:25:51 +00:00
Wez Furlong be5606504c Implement better SSL error handling. 2002-10-14 01:27:43 +00:00
7e6280630b NEWS update 2002-10-14 00:36:11 +00:00
cf3493a78d ChangeLog update 2002-10-14 00:35:29 +00:00
Wez Furlong 483f355d30 Fix stream_eof result interpretation (and thus the user-streams test). 2002-10-14 00:16:02 +00:00
Wez Furlong 2d97f4d4c7 Remove some old code. 2002-10-13 23:43:46 +00:00
Wez Furlong 0bcd2ccb2c A much better probable fix for #16114. 2002-10-13 23:43:21 +00:00
Wez Furlong bc0948bbda Probable fix for #16114 2002-10-13 23:21:05 +00:00
Wez Furlong 5f7c347f17 Fix a nasty nasty bug:
When not enough data to satisfy a read was found in the buffer, fgets modifies
the buf pointer to point to the position to store the next chunk.  It then
returned the modified buf pointer, instead of a pointer to the start of the
buffer.

Also added some infrastructure for making fgets grow the buffer on-demand to
the correct line-size.  Since streams uses reasonable chunk sizes, the
performance of the realloc's should be pretty good; in the best case, the line
is already found completely in the buffer, so the returned buffer will be
allocated to precisely the correct size.

In the worst case, where the buffer only contains part of the line, we get a
realloc per buffer fill. The reallocs are either the size of the remainder
of the line, or the chunk_size (if the buffer sill does not contain a complete
line).  Each realloc adds an extra byte for a NUL terminator.

I think this will perform quite well using the default chunk size of 8K.
2002-10-13 22:52:33 +00:00
Wez Furlong 70b796b143 (php_socket_errno) win32 errno compatible macro.
(php_socket_strerror) win32 compatible strerror replacement.
Add an E_NOTICE when a socket write fails.
2002-10-13 22:01:40 +00:00
Ilia Alshanetsky 63212d27ee Increased the API number. (re: floats patch) 2002-10-13 15:28:21 +00:00
Derick Rethans f9fdd74a03 - Fixed bug #19885, dl() no longer gives a fatal error when a module
could not be loaded. (Derick)
2002-10-13 14:14:34 +00:00
Sascha Schumann 47a1421d89 Redo the patch on Linux, the cygwin diff seems to be a bit broken. 2002-10-13 11:54:08 +00:00
Sascha Schumann 356f7503fa PHP + thttpd (+IRCG) build using CYGWIN now 2002-10-13 11:50:16 +00:00
Sascha Schumann 4f61b16768 Remove set .x 2002-10-13 11:28:34 +00:00
Sascha Schumann 240cdb743e Use if block rather than an or expression 2002-10-13 11:28:06 +00:00
Derick Rethans bfc3250187 - Hardcode dependent ini setting 2002-10-13 11:14:49 +00:00
Martin Jansen 0b69dbc931 * Add missing PHP_SUBST(awk). 2002-10-13 10:20:15 +00:00
Yasuo Ohgaki 1917f5f382 Fixed proto. Clean up. 2002-10-13 09:48:18 +00:00
Yasuo Ohgaki a6de0807ae Need to init connstring when there are 2 args. 2002-10-13 09:41:35 +00:00
Shane Caraveo 69f56e8c4a make fastcgi usage threadsafe, ready for future multithreaded fastcgi implementation
get rid of environment overwriting but hooking into php's environment function
set $_ENV correctly for mod_fastcgi
add -b to specify binding for fastcgi
new readme file with information for running under apache2.0 and iis
2002-10-13 09:40:44 +00:00
Yasuo Ohgaki 2c23e56c7f Introduce connect_type option to pg_connect().
pg_connect(conn_str, conn_type) is allowed.
@Added PGSQL_CONNECT_FORCE_NEW option to pg_connect() (Yasuo)
# If you have better idea about constant name(s), let me know.
2002-10-13 09:37:27 +00:00
Shane Caraveo 96b9c0a523 make php_import_environment_variables overwritable so fastcgi can correctly
set $_ENV.
2002-10-13 08:38:09 +00:00
Shane Caraveo acb9bc95e3 fixes for unix, untested
remove exit calls
fix a couple function definitions
2002-10-13 08:34:27 +00:00
foobar 7298d563f7 ignore test.dbm 2002-10-13 08:08:53 +00:00
foobar 8f393dc053 These should be ignored. 2002-10-13 08:08:07 +00:00
Shane Caraveo 2b40a0f2a3 fix shutdown issues 2002-10-13 07:23:17 +00:00
Shane Caraveo bfd3efcbd3 fix invalid handle issue that shutdown php fastcgi prematurly
fix checking os name for impersonation
2002-10-13 05:55:03 +00:00
Yasuo Ohgaki 6edd9d2f72 Enable pg_escape_bytea(). 2002-10-13 03:00:48 +00:00
Ilia Alshanetsky b855893b0c Fixed ZTS build
Fixed 2 ZTS related warnings
2002-10-13 01:40:46 +00:00
Wez Furlong 3a8c49afc1 Make PHP follow 301 correctly.
# There may be other cases that need handling properly; I'll have to spend
# some time investigating why we even need special cases now; it's got
# something to do with Ilia's patch to fix memory leaks.
2002-10-13 01:03:43 +00:00
495dbef642 ChangeLog update 2002-10-13 00:33:52 +00:00
foobar 62103501be Add note about fhttpd removal. 2002-10-12 23:05:34 +00:00
foobar 068907c9bc - Removed sapi/fhttpd (this webserver is dead) 2002-10-12 23:02:43 +00:00
Ilia Alshanetsky e842ef9f4b MFZE1 (floats & locale issue) 2002-10-12 21:15:35 +00:00
Pierre Joye 06455b10bf No more needed here 2002-10-12 20:46:57 +00:00
Derick Rethans e17d6518b1 - woohooo! Automatic build test submits! 2002-10-12 19:29:56 +00:00
Stig Bakken 2809b32e63 * update test 2002-10-12 18:27:05 +00:00
James Cox 27ab17b20e mention vpopmail. 2002-10-12 17:47:45 +00:00
Derick Rethans db89afc45b - Hardcode setting which affects the test 2002-10-12 17:12:43 +00:00
Derick Rethans 8f7f6045b0 - Make the test do what it says 2002-10-12 16:53:13 +00:00
Sander Roobol 36fd03b578 Typo 2002-10-12 16:16:36 +00:00
Ilia Alshanetsky bcf1d4ff80 Fixed a bug introduced by previous patch. 2002-10-12 16:09:01 +00:00
Pierre Joye 09b9d5d956 Add test for single directory creation
this test actually fails
2002-10-12 15:18:31 +00:00
foobar a6c3ba12bf added cybercash to the killed exts list.. 2002-10-12 14:59:40 +00:00
Stig Bakken c93ff0fa6f * 1.0b1 is today 2002-10-12 14:20:32 +00:00
Stig Bakken 6fc63bbdd8 * added "pear makerpm" command for wrapping PEAR packages in RPMs 2002-10-12 14:19:50 +00:00
Stig Bakken 846ad56a13 * rename System::type to System::which 2002-10-12 14:17:44 +00:00
Stig Bakken c0c85a8c77 * CLI layout adjustment 2002-10-12 13:43:41 +00:00
Stefan Esser 89f4f7b8f5 I already said that this construct was wrong...
most probably fixes bug #19876
2002-10-12 08:16:20 +00:00
Ilia Alshanetsky a0489ac950 Fixed memory leaks. 2002-10-12 03:11:28 +00:00
foobar 534ad6f38f Use AC_ARG_WITH instead of PHP_ARG_WITH. 2002-10-12 03:10:04 +00:00
Wez Furlong 4308a399b9 paranoia 2002-10-12 02:56:34 +00:00
foobar ac950497a6 Fix typo 2002-10-12 02:50:16 +00:00
Wez Furlong 258aa4d239 Write in blocks of the current chunk_size for a stream.
Should resolve problems with network writes.
2002-10-12 02:31:42 +00:00
foobar ba3730c2c8 ws fix 2002-10-12 01:48:47 +00:00
Edin Kadribasic 67da691a13 Added .cvsignore and CREDITS. 2002-10-12 01:30:52 +00:00
Stig Bakken 1cb6af0cbe * look for awk, fix for #19819 2002-10-12 01:30:24 +00:00
Rui Hirokawa 8884469e11 changed INI restriction to enable per-directory settings. 2002-10-12 01:18:43 +00:00
foobar 204b3b5fbd Add the proper install lines. 2002-10-12 01:18:04 +00:00
foobar 3e23ab6893 Made the fribidi-config search a bit better. 2002-10-12 01:14:42 +00:00
foobar 3fdd57b78b Add the removed extensions. 2002-10-12 01:13:45 +00:00
Edin Kadribasic 4a0ebe5074 Install sapi/embed header file as well. 2002-10-12 01:01:24 +00:00
foobar 7a3f2eb63b Default to shared. 2002-10-12 00:54:53 +00:00
Stig Bakken 3aba20dd9e * verify md5 checksums during install 2002-10-12 00:40:16 +00:00
Stig Bakken 2771434028 * include platform file attribute! 2002-10-12 00:39:49 +00:00
Stig Bakken 166ff6468c * package updates 2002-10-12 00:39:22 +00:00
1e616821b6 NEWS update 2002-10-12 00:35:16 +00:00
468e14231a ChangeLog update 2002-10-12 00:33:53 +00:00
foobar 49488cfd0d - Removed the unnecessary extra configure option --enable-shared-embed
- Changed --enable-embed to accept parameters shared/static and default
  to static build.
2002-10-11 23:28:01 +00:00
Tal Peer 814373e8b7 Use var_dump instaed of plain echo 2002-10-11 20:20:52 +00:00
Moriyoshi Koizumi f5b53c17ab Improved the test cases so that they will be skipped rather than failed, if libiconv is not used. 2002-10-11 18:07:47 +00:00
Markus Fischer f43e4cc93d - Document were the first test came from. 2002-10-11 18:06:15 +00:00
Moriyoshi Koizumi 764df05768 *** empty log message *** 2002-10-11 17:48:39 +00:00
Moriyoshi Koizumi adbdd71dc8 Fixed possible compile-time failure 2002-10-11 17:01:34 +00:00
foobar e7b49d64a6 Renamed and fixed constant 2002-10-11 15:50:37 +00:00
foobar 12c713cf7f - Removed ext/icap (ext/mcal is the one to be used) 2002-10-11 15:30:44 +00:00
foobar 0654763cc6 ws fix 2002-10-11 15:25:36 +00:00
Ilia Alshanetsky 8c6088839b Added test for explode() function. 2002-10-11 15:19:57 +00:00
Ilia Alshanetsky b7917def13 Fixed bug #19865 2002-10-11 14:48:25 +00:00
Christian Stocker 0e384b473b text and comment nodes do not have children... test was wrong, implementation
is right :)
2002-10-11 14:02:59 +00:00
Christian Stocker 820e5b766a node->attributes returns null, if there are no attributes. 2002-10-11 14:00:12 +00:00
Derick Rethans e06550f853 - Fix problem with var_export when objects with numeric indexes were
exported. We now skip those, as there is no way to export valid code for
  it.
2002-10-11 13:49:20 +00:00
foobar edc755aa54 fix typo. 2002-10-11 13:43:24 +00:00
Derick Rethans 5a6243a4b5 - Change constant name 2002-10-11 13:09:48 +00:00
Sander Roobol 524c9ef26a Fixed problems with the new nl2br() and beautified the code a little.
Closes #19858.
2002-10-11 12:42:01 +00:00
Derick Rethans 4da5ec8965 - Add case for bug 19858 2002-10-11 11:03:36 +00:00
Derick Rethans bbf6b5fee4 - Skip if an external lib gd is used (which always has this crash-bug) 2002-10-11 10:08:42 +00:00
Derick Rethans 7713b4097d - Add indetified for bundled GD 2002-10-11 09:49:38 +00:00
Edin Kadribasic 9f4abb7ae4 Revert Stig's patch. Windows build should work again. 2002-10-11 09:20:38 +00:00
Derick Rethans 03b3478754 - Style polizei :) 2002-10-11 08:15:05 +00:00
Moriyoshi Koizumi d2f99493a0 Reformatted.
# Still bad?
2002-10-11 08:01:18 +00:00
Moriyoshi Koizumi 1a867685a0 Added ICONV_IMPL and ICONV_VERSION constants.
@- Added ICONV_IMPL and ICONV_VERSION constants to iconv extension to
@  indicate which iconv implementation is used. (Moriyoshi)
2002-10-11 07:50:47 +00:00
Moriyoshi Koizumi fe79eaf08f Added set_time_limit(); We should stop it in some time. See the comment in the script for detail. 2002-10-11 07:38:18 +00:00
Sebastian Bergmann fcf35e7b4c Fix ZTS build. 2002-10-11 04:44:14 +00:00
Ilia Alshanetsky 287b7f9bcb Switched from localeconv to localeconv_r, which is apparently thread-safe. 2002-10-11 03:19:38 +00:00
bc08177790 ChangeLog update 2002-10-11 00:33:57 +00:00
foobar 396c1b20f0 SP 2002-10-10 21:28:38 +00:00
Stig Bakken b5eef00248 * the actual implementation of the installroot option 2002-10-10 21:09:47 +00:00
Melvyn Sopacua 6dde848d9e Sorry, shouldn't use undo on packetloss connections 2002-10-10 19:52:13 +00:00
Sterling Hughes f61889e72d revert patch 2002-10-10 19:24:45 +00:00
Sebastian Bergmann 5f56185a62 Break it again (after 4.3.0-pre1 :-) 2002-10-10 19:08:13 +00:00
Andrei Zmievski 3b32aa7d33 Back to 4.3.0-dev. 2002-10-10 19:07:12 +00:00
Melvyn Sopacua 641f346cf6 Another small test for iconv transliteration, from GNU libiconv testkit 2002-10-10 19:06:00 +00:00
Derick Rethans 38b52fd33f - Argh... test before commit 2002-10-10 19:01:34 +00:00
Sebastian Bergmann 69343667e7 Fugbix typo. 2002-10-10 18:49:29 +00:00
Andrey Hristov cd282dad98 ws fixes 2002-10-10 18:41:24 +00:00
Ilia Alshanetsky 47a78e4908 Bug fix news. 2002-10-10 18:41:20 +00:00
Derick Rethans e1516e3a58 - Fix typo 2002-10-10 18:39:09 +00:00
Derick Rethans 5ed9e75fb8 - Update makedist script 2002-10-10 18:37:07 +00:00
Andrei Zmievski 9275b2bd9a Fix the test after Ilia's patch. 2002-10-10 18:36:12 +00:00
Sebastian Bergmann f2155df039 Revert to revision 1.13 for 4.3.0-pre1. 2002-10-10 17:45:36 +00:00
Andrei Zmievski bb4aefacd0 Update to 4.3.0-pre1. 2002-10-10 17:34:12 +00:00
Moriyoshi Koizumi 9520422501 Fixed the encoding 2002-10-10 17:16:46 +00:00
Moriyoshi Koizumi 7b3fb01072 Updated the test cases so that they use mb_regex_set_options.
Added a test for mb_regex_set_options.
2002-10-10 17:05:04 +00:00
Jon Parise e79772d6e0 Adding a new item (number 11) that explains why it's important to use
emalloc() and friends in place of the standard C library functions.
2002-10-10 17:03:49 +00:00
Moriyoshi Koizumi 2f88f504c1 Fixed mb_regex_set_options() 2002-10-10 17:00:36 +00:00
Moriyoshi Koizumi 70742ae9b6 --disable-mbregex had no effect 2002-10-10 16:57:52 +00:00
Melvyn Sopacua e4e53bb4b3 It used to be 003 2002-10-10 16:49:33 +00:00
Melvyn Sopacua 0ff44ce57b Fix platform dependencies, setlocale output, bug #19836
Testing numerics, so set numeric. If the platform doesn't support this
category, passing this test is more likely to be coincedence than expected
behavior.
2002-10-10 16:39:52 +00:00
Ilia Alshanetsky bc14a6f133 This patch fixes handling of floats on locales where decimal point is not a
'.'. Problem is best demonstrated by bug #17079.
2002-10-10 16:29:35 +00:00
Melvyn Sopacua b5676a5b3e When you say string, match at least one char in EXPECTF section
Plus a little protection against globbing like ext/foo/tests/* or worse.

# yes, I've done that
2002-10-10 16:08:15 +00:00
Melvyn Sopacua d49b576243 Fix platform dependencies, setlocale output, bug #19836 2002-10-10 15:27:11 +00:00
Ilia Alshanetsky 67c081afd6 Fixed a few more memory leaks. 2002-10-10 14:46:18 +00:00
Yasuo Ohgaki 9964da4ca2 Fixed entry 2002-10-10 11:32:27 +00:00
Stanislav Malyshev f45d2f9225 add comment 2002-10-10 10:07:22 +00:00
Stanislav Malyshev 98ad93fb6d fix memory leaks 2002-10-10 09:57:56 +00:00
foobar 1b5ee53dd7 - Fix the text alignment to be about same in any browser.
# Please test this, it's now same in NS 4.78 (linux), IE 5.5 and
# Mozilla 1.2a (win32). (I don't have any other browsers installed now)
2002-10-10 04:28:15 +00:00
foobar d448bd7840 Be consistent with other extensions. 2002-10-10 04:26:03 +00:00
foobar 9029b356b2 - Cleaned up some code and used the proper macros for ZTS stuff.
- Fixed a memleak.
- Fixed a bug in pfpro_process() when response contains only 2 entries.
  (random garbage added in the end of the value + key sometimes wrong)

# Sorry for including the ws fixes..I got carried away when fixing that bug
2002-10-10 02:23:24 +00:00
Stig Bakken bb607d2d62 * add --installroot / -R option to install/upgrade commands 2002-10-10 01:02:42 +00:00
Stig Bakken 2394021765 * $this->destdir is not used 2002-10-10 00:57:15 +00:00
Stig Bakken bc8cea056b * upgrade XML_RPC to 1.0.4 2002-10-10 00:56:20 +00:00
Stig Bakken 256ae136e8 * fix Archive_Tar dependency 2002-10-10 00:53:11 +00:00
Stig Bakken 08f9799c46 * options displayed in "pear help" did not have option parameters listed 2002-10-10 00:51:21 +00:00
5cd142d736 ChangeLog update 2002-10-10 00:38:34 +00:00
foobar 7c7905468b - Fixed the payflowpro version check and cleaned up this a bit. 2002-10-10 00:24:26 +00:00
foobar 1345c76162 Revert previous change, it did not fix anything. 2002-10-09 23:18:47 +00:00
Melvyn Sopacua 418908f994 Test for standard transliteration.
Original check-translit from GNU libiconv-1.8
2002-10-09 23:16:39 +00:00
Stig Bakken 1a987d74be * fix a diff/patch screwup 2002-10-09 22:34:00 +00:00
James Cox fbd4b1733d overrule <center> 2002-10-09 22:32:01 +00:00
Derick Rethans c10b169670 - Use a more descriptive filename 2002-10-09 20:30:30 +00:00
Jan Lehnardt d888b62eb2 - remove ext/cybercash
- http://www.verisign.com/support/cyberCash/dnsChangeNotification.html

 - The migration of CyberCash merchants to the VeriSign Payflow service is
 - scheduled for completion in mid-February. At that time we will begin the
 - shutdown of the CyberCash payment gateway and all related systems. This
 - final shutdown process requires us to change DNS for the VeriSign Payflow
 - service. The DNS change is scheduled at approximately 6PM ET on February 28,
 -  2002.
@- removed ext/cybercash (jan)
2002-10-09 20:20:18 +00:00
Moriyoshi Koizumi cfcfd094e9 Renamed the test case files in order to avoid confusion 2002-10-09 20:19:13 +00:00
Jan Lehnardt 1df2d5eecb - let's talk about leftovers..... 2002-10-09 19:36:54 +00:00
Jan Lehnardt e797cdb421 - fix alignment 2002-10-09 19:27:16 +00:00
Jan Lehnardt a3fea96a7a - note aspell 2002-10-09 19:25:17 +00:00
Jan Lehnardt 4aed2f2308 - R.I.P. ext/ccvs.
@- removed ext/ccvs (jan)
2002-10-09 19:15:31 +00:00
Jan Lehnardt 31b0867fe6 - R.I.P. ext aspell
@- removed ext/aspell (jan)
#configure note follows
2002-10-09 19:12:32 +00:00
Jan Lehnardt 6b3234f3d4 - fix build on FreeBSD, verified by thies. 2002-10-09 18:59:15 +00:00
Sterling Hughes 2c4aa71d32 clean these functions up using zend_parse_parameters and nuke the use of
HASH_OF() which is inappropriate in these cases...
2002-10-09 18:29:45 +00:00
Sterling Hughes 521a9bdadc small cleanups... 2002-10-09 17:15:56 +00:00
Stanislav Malyshev e22e61a4df Fix object write handler behaviour:
* If this value is already set to given value, don't try to set it again.
* If we have reference, we should not move it.
* If we are assigning referenced variable, we should separate it.
# Hope this covers all... Sigh...
2002-10-09 17:14:25 +00:00
Colin Viebrock 46a96d9363 no charsets, only basic entity escaping 2002-10-09 14:39:39 +00:00
Ilia Alshanetsky d3617c51b8 MFZE1 zend_str_tolower issue. 2002-10-09 14:21:40 +00:00
Derick Rethans 6b3820a510 - Skip when GD is not available 2002-10-09 13:54:21 +00:00
Andrey Hristov 868ae8b6e0 ws fixes. 2002-10-09 13:50:06 +00:00
Derick Rethans f6f58fc300 - Added test case for bug #19266 2002-10-09 13:48:28 +00:00
Zak Greant 70e49320f1 Removed spurious code. Thanks Derick 2002-10-09 13:46:18 +00:00
Ilia Alshanetsky a75eb9c4dd Optimizations to various php string functions substr_count(), strrev(),
nl2br(), php_addslashes() and php_memnstr().
2002-10-09 13:37:02 +00:00
Ilia Alshanetsky 40d1127568 Fixed memory leaks. 2002-10-09 13:29:10 +00:00
Zak Greant 6a590082ca Minor tweak - using memcpy(), instead of strcpy() for static strings. Gives better performance. Thanks Zeev. 2002-10-09 13:05:42 +00:00
Rui Hirokawa 382a92cc5a added @ to suppress a notice. 2002-10-09 12:54:52 +00:00
Zak Greant 0ecf32f750 Possible fix for bug #19529 (thanks Rasmus, Arjen and Monty)
Major changes to _restore_connection_defaults
 - added code block to finds and releases the active mysql result (if any)
 - this should prevent the 'Commands out of sync' error that would be
   raised when a query is made when unfreed results exist

Minor changes to _restore_connection_defaults
 - replaced calls to mysql_real_query with mysql_query
   - we probably should not be using mysql_real_query without checking to
     see if we have a version that supports the function.
   - given that we control the query strings here and do not need to
     worry about binary safety, I am using mysql_query instead
   - see the bug report for further discussion
2002-10-09 12:33:40 +00:00
Pierre Joye a15877930c Add cache_ttl, cache_dir to expect output
Update text for username, password
Tests pass now
2002-10-09 11:50:12 +00:00
Andrey Hristov 0e5ff737f4 Test case for str_shuffle(). 2002-10-09 10:53:27 +00:00
Andrey Hristov 16a82f2b47 Returning to the old behavior of str_shuffle() a bit. Now the passed string is
left unmodified and the shuffled string is returned.
2002-10-09 10:33:22 +00:00
Markus Fischer 121d4d1ef0 - Fix protos (resource instead of int for stream_id, fix some return protos,
consistent usage of options instead of flags).
- Make imap_ping,imap_setquota and imap_setacl  return a real (bool) now.
2002-10-09 09:20:46 +00:00
Sascha Schumann f0a7d9baba Emphasize a couple of points 2002-10-09 09:03:04 +00:00
Markus Fischer 4aaf885d4c - Update 2002-10-09 07:45:17 +00:00
Zak Greant dbf1d82afa Set default value for mysql.connect_timeout to -1. This setting matches the setting in php.ini-dist and ensures that the default behavior is to leave connect_timeout alone. 2002-10-09 07:34:48 +00:00
ba8b11aaf7 ChangeLog update 2002-10-09 00:34:42 +00:00
Ilia Alshanetsky 7d19c1b9e5 Added nl2br() test 2002-10-08 23:46:02 +00:00
Ilia Alshanetsky 8c77e13e92 Added test for strrev() function. 2002-10-08 21:51:59 +00:00
Andrei Zmievski 3b60494829 Tokenizer has been stable for some time now. 2002-10-08 20:12:55 +00:00
Ilia Alshanetsky e672ce4ccc Fixed bug #19280 2002-10-08 20:07:52 +00:00
foobar 8f92778136 revert version here too.. 2002-10-08 19:44:04 +00:00
Colin Viebrock 080c7a789e don't define fonts ... use the browser defaults 2002-10-08 19:42:23 +00:00
Derick Rethans 4a54968c71 - hardcode default rewriting tags 2002-10-08 18:30:38 +00:00
Derick Rethans 4fcc3df5eb - Fix .exp output 2002-10-08 17:51:57 +00:00
Andrei Zmievski 6882bdc24b Revert to 4.3.0. 2002-10-08 17:41:18 +00:00
Moriyoshi Koizumi 579a1c3ab1 ZTS fixes 2002-10-08 17:20:10 +00:00
Melvyn Sopacua 03777770c0 Fix config bug reported by Jan Lehnart.
Keep it simple, and the size of a pointer is always known, duh.
2002-10-08 16:20:20 +00:00
Moriyoshi Koizumi e9444610eb Removed table generating code. The return values of isalnum() may vary by the locale setting. 2002-10-08 15:15:50 +00:00
Ilia Alshanetsky 8f4276b61d Fixed memory leak. 2002-10-08 14:57:06 +00:00
Tal Peer be7da25930 Enhanced test to also check charsets CP1255 and ISO-8859-8 2002-10-08 14:08:17 +00:00
Ilia Alshanetsky 73e85db8fc Apache 2 news 2002-10-08 13:43:02 +00:00
Pierre Joye 54d920dd3c Sorry Derick, generated the wrong patch
and we don't need to recreate an array ;)
2002-10-08 13:17:01 +00:00
Derick Rethans fa5ce6bbfa - Fix for deprecated function 2002-10-08 13:02:31 +00:00
Derick Rethans 2af2e62850 - Add the source file too 2002-10-08 10:01:34 +00:00
Derick Rethans f0c1345cb6 - Add blowfish compatibility test 2002-10-08 10:00:52 +00:00
Andrey Hristov 0ad8b4aa10 Now str_shuffle() has the randomization characteristics of shuffle().
str_shuffle() won't return anymore the randomized string and thus will be
consistent with shuffle(). Since this function is new to 4.3.0 no BC
problems.
#Thanks to Adam Trachtenberg for providing good example to check the
#permuations distribution.
2002-10-08 09:52:59 +00:00
Derick Rethans 2005705272 - Skip if the function is not available (in case pcre was not compiled in). 2002-10-08 09:46:31 +00:00
Derick Rethans f830c481f3 - Show easier parseable and greppable output 2002-10-08 08:53:51 +00:00
Derick Rethans ede9bd58b7 - Use getenv, as $_ENV is not available when variables_order= in php.ini
does not include "E".
2002-10-08 08:39:10 +00:00
Tal Peer 6d80a07ba0 Added test to check if charsets constants are defined 2002-10-08 08:17:03 +00:00
Derick Rethans bde85234d6 - Please do not use notices for debug information 2002-10-08 08:01:06 +00:00
Derick Rethans 0e15cf7ac9 - Drop dependency on fixed php.ini 2002-10-08 07:57:29 +00:00
Derick Rethans 5a84ae6489 - Use error_reporting E_ALL 2002-10-08 07:55:02 +00:00
Derick Rethans d53dd88854 - Drop requirement for php.ini-dist
- Adjust test script to hard code ini settings
2002-10-08 07:49:36 +00:00
Derick Rethans 87e271833b - Document correct default 2002-10-08 07:47:45 +00:00
Derick Rethans e7bd4feef8 - Do not change those from the default in Zend/zend_highlight.h 2002-10-08 07:43:14 +00:00
Sebastian Bergmann af8230e28c Fix ZTS build. 2002-10-08 05:08:39 +00:00
foobar b68028988a Add php.* to be ignored. 2002-10-08 03:01:18 +00:00
foobar 9a010becf1 ws fixes 2002-10-08 03:00:06 +00:00
Sascha Schumann 2ad1a1e746 add support for adding /usr/lib to the linkline by default 2002-10-08 02:27:53 +00:00
foobar 97a3929e80 style polizei 2002-10-08 01:34:41 +00:00
Stig Bakken 231efd186f * make these variables configurable from environment on Windows:
PEAR_INSTALLDIR           PHP_BINDIR      PHP_CONFIG_FILE_PATH
  PHP_CONFIG_FILE_SCAN_DIR  PHP_DATADIR     PHP_EXTENSION_DIR
  PHP_INCLUDE_PATH          PHP_LIBDIR      PHP_LOCALSTATEDIR
  PHP_PREFIX                PHP_SYSCONFDIR
2002-10-08 01:04:52 +00:00
d5cbbd9f02 NEWS update 2002-10-08 00:36:09 +00:00
26348e5392 ChangeLog update 2002-10-08 00:35:21 +00:00
Rasmus Lerdorf 0179bd7657 Get rid of redundant loop 2002-10-08 00:16:55 +00:00
Rasmus Lerdorf 69677a7a67 FreeBSD ming port sticks ming.h in /usr/local/include/ming/ming.h and
we weren't finding it there.
2002-10-08 00:15:10 +00:00
Rasmus Lerdorf 204c64e57f zlib.h being included before ssl.h needs to be handled here too 2002-10-08 00:13:56 +00:00
Rasmus Lerdorf 5acdd41d6e Make zlib-dir actually mean something during the check 2002-10-07 22:27:50 +00:00
Andi Gutmans c32bac8fba - Fix test 2002-10-07 21:58:59 +00:00
Dan Kalowsky 164188d122 Fix for bug #19798 (submitted by mclap@simpage.mv.ru) 2002-10-07 21:58:56 +00:00
Melvyn Sopacua 0828bfc298 Add xslt milestones 2002-10-07 21:48:25 +00:00
Andi Gutmans 77b3ffbc5a - Require $this-> when calling a methods. This whole automatic lookup
- first in the class and then in the global scope is confusing, slow and
- not quite BC compatible.
2002-10-07 21:46:44 +00:00
Andi Gutmans 7cba0254e7 - Allow access to private/protected variables of $clone inside the __clone()
- method
2002-10-07 21:20:23 +00:00
Rasmus Lerdorf 74286bd28d Argh! Revert. I'm on drugs. Was linking in a newer libz when I checked
this.
2002-10-07 21:13:46 +00:00
Ilia Alshanetsky d6775c5c3f Added tests for strstr(), strpos() and substr_count() functions. 2002-10-07 21:07:42 +00:00
Rasmus Lerdorf a6b780f94e Oops, should still define that. Didn't think I needed it as nothing in
ext/zlib checks it, but it is checked elsewhere.
2002-10-07 20:59:59 +00:00
Rasmus Lerdorf 6446f7158b This restriction is no longer true after the streams changes. 2002-10-07 20:55:41 +00:00
Moriyoshi Koizumi 8f1fb5768b Fixed typo. 2002-10-07 20:12:48 +00:00
Markus Fischer 7bf7b18c60 - Update 2002-10-07 19:51:32 +00:00
Tal Peer 0ae2166fbe Initial commit of fribidi_log2vis test 2002-10-07 19:35:30 +00:00
Moriyoshi Koizumi a0f61c9c51 Added test cases for mbregex 2002-10-07 18:02:05 +00:00
Moriyoshi Koizumi 2e1d931c66 Lots of clean-up for upcoming mbstring merging event.
Added mb_regex_set_options().
The Options parameters of various mbregex functions are now deprecated.
@- Added mb_regex_set_options(). The Options parameters of
@  various mbregex functions are now deprecated. (Moriyoshi).
2002-10-07 17:59:49 +00:00
Colin Viebrock 7076a9b9f3 Document session.save_path option in php.ini 2002-10-07 17:58:27 +00:00
Andrei Zmievski 6863d70ef3 Use a copy of locale instead of the original. Fixes bug #19482. 2002-10-07 17:16:23 +00:00
Derick Rethans c574bdf433 2. :) 2002-10-07 17:13:59 +00:00
Rasmus Lerdorf bb88a192ce . 2002-10-07 17:11:34 +00:00
David Viner 0803ebfa3e adding test of xslt_set_object
--dviner
2002-10-07 16:59:08 +00:00
Moriyoshi Koizumi 931e25297b fixed mb_split (the value of third parameter treated wrongly) 2002-10-07 16:46:42 +00:00
Rasmus Lerdorf ef9b51bcb0 readdir() was returning NULL instead of FALSE when used on an invalid
directory handle.  If someone forgot to check (as someone here did) that
the opendir() succeeded, and then followed the documented usage by checking
readdir()!==FALSE things would go awry.  The ZEND_FETCH_RESOURCE macro
explicitly does a RETURN_NULL on failure which is not what we want in this
case, so work around it.  No need to change it for the OO case since the
object is not created if the opendir fails.
2002-10-07 16:46:38 +00:00
Moriyoshi Koizumi 9b849892ea MFH 2002-10-07 16:15:36 +00:00
Stefan Esser a8191a66c1 never smash the stack... 2002-10-07 16:11:30 +00:00
Stefan Esser 5619a3d0a5 fixing possible off by one in error case 2002-10-07 16:05:28 +00:00
Sander Roobol 35dc97df3b Temporary (?) workaround (?) for is_executable() on Windows. 2002-10-07 15:16:47 +00:00
Stefan Esser 46f4a07d1c Closing protected variables hole 2002-10-07 11:23:24 +00:00
Zeev Suraski 1143a7023c Whitespace 2002-10-07 11:21:06 +00:00
foobar eb67b2476b Fix obvious error.. 2002-10-07 11:08:11 +00:00
Jan Lehnardt 94daa9c26a - fix typo and improve error message 2002-10-07 10:09:07 +00:00
Sascha Schumann 8ca10fb5e8 Call ob_flush to force the buffer contents to go through the rewriter. 2002-10-07 10:07:27 +00:00
Marc Boeren cee4219e49 Tests will be skipped if a tester does not explicitly specify the
test-database setup in dbx_test.p.
2002-10-07 09:27:02 +00:00
Sascha Schumann 88b2d8bb8f stdio buffers data in user land. By calling fflush(3), this
data is sent to the kernel using write(2). fsync'ing a
file descriptor is not required -- writing to a fd has the same
affect as calling fflush after each fwrite.
2002-10-07 03:12:06 +00:00
Sascha Schumann 2dde6fb594 Print out warning only, if a variable was actually migrated 2002-10-07 02:37:50 +00:00
5c782303a1 ChangeLog update 2002-10-07 00:34:07 +00:00
Melvyn Sopacua bcddd58a92 Add --EXPECTF-- section: 'sprintf' for EXPECT sections. See for usage
example ext/xslt/tests/009.phpt.
# To aid debugging, a little commented section is left in, this can be
# stripped in due time, or properly integrated with some --debugging flag.
# But it's quite useful, when you make such tests.
2002-10-07 00:05:20 +00:00
Melvyn Sopacua 2628482ee9 (xslt tests) Add test for memory leaks, caused by inapproreate use of
the struct. Memory leak is caused by at least 2 errors on
             handle.
2002-10-06 23:58:51 +00:00
Wez Furlong 510f3b0305 Try to ensure that we return the number of bytes requested during fread(). 2002-10-06 23:27:53 +00:00
Sebastian Bergmann d7f9e8526f Silence warning. 2002-10-06 21:47:54 +00:00
Andi Gutmans 278a00e1d8 - Fix problem with unsetting object members. 2002-10-06 19:55:31 +00:00
Sander Roobol 83189bd742 Skip this test if we're not using ZE2 2002-10-06 19:39:12 +00:00
Sander Roobol 00a2715eda We're testing stripCslashes() here :) 2002-10-06 19:26:56 +00:00
Sander Roobol 3e222bcbf1 Some more weird tests on Derick's request :) 2002-10-06 19:17:04 +00:00
Sander Roobol 9edfd75a5c Some string tests 2002-10-06 19:12:22 +00:00
Derick Rethans bd48e0cfe9 - Add new tests for: array_change_key_case, array_chunk and
array_count_values.
2002-10-06 18:42:03 +00:00
Sander Roobol 004d3d3a30 Fix another leak in implode() 2002-10-06 18:39:03 +00:00
Rasmus Lerdorf 76ee49e5b4 Fix for bug 19781 2002-10-06 17:47:50 +00:00
Derick Rethans 2ae0e71c97 - Fix highlight_string test. 2002-10-06 17:37:25 +00:00
Ilia Alshanetsky 6b5575a101 Code cleanup. Thanks Andi. 2002-10-06 17:17:38 +00:00
Rasmus Lerdorf f32d63a3b3 Add php_ini_scanned_files() so "make test" can tell you when you have
additional .ini files that are scanned.
2002-10-06 17:04:10 +00:00
Sander Roobol af14a8e75f You can't detect NULL nicely - false is better and more PHPish. 2002-10-06 17:00:33 +00:00
Rasmus Lerdorf d940131774 Fix build 2002-10-06 16:37:33 +00:00
Sander Roobol 533fda4121 Fixed getopt() - made it actually work 2002-10-06 16:33:14 +00:00
Melvyn Sopacua 8e1da7dbda MFB 2002-10-06 16:32:24 +00:00
Ilia Alshanetsky 12f47fe85a Added expected data to parse_url() test 2002-10-06 16:15:06 +00:00
Ilia Alshanetsky 1bbb55ec11 Added a much faster parse_url() implementation. This also fixes a number
of bugs in the old parse_url() implementation.
2002-10-06 16:14:42 +00:00
Melvyn Sopacua a22ab3f8e3 missed this, needed by 007.phpt 2002-10-06 15:51:33 +00:00
Moriyoshi Koizumi a1b3f8382d added support for aliases of the encodings. 2002-10-06 15:31:52 +00:00
Zeev Suraski df55f35798 Revert the implicit_flush mess.
Do not revert it again under any circumstances!

Yasuo/anybody else - if there are issues with implicit_flush, please inform
me and I will fix them.
2002-10-06 12:02:53 +00:00
Sander Roobol 68cd067670 Fixed segfault and memory leak in the new implementation of implode() 2002-10-06 11:28:11 +00:00
Sander Roobol 8cf14a42f5 Add testcases for implode() and str_repeat() 2002-10-06 11:26:49 +00:00
Sebastian Bergmann 6ca22a1740 HAVE_MBSTRING awareness. 2002-10-06 09:36:26 +00:00
Sebastian Bergmann df472058e2 HAVE_MBREGEX awareness. 2002-10-06 09:29:54 +00:00
Zeev Suraski de36720e0e Begin the cleanup - remove ob_flush_all() 2002-10-06 09:06:24 +00:00
Rasmus Lerdorf b832af75f0 WS fix - although the entire libgd directory is horrendously formatted.
However, since we are forking existing code, fixing it would make it much
harder to merge any Boutell patches (if they ever come out with any).
2002-10-06 08:39:05 +00:00
Rasmus Lerdorf 731943287f Oops 2002-10-06 08:35:22 +00:00
Rasmus Lerdorf 409620351f Ok, perhaps it's too late at night, but I see absolutely no reason for
this chunk of code here.  Why is it writing a palette.map file to disk
in the middle of this function?  Looks like leftover debug code, and this
particular code seems to be crashing on OSX as per bug #19704.
2002-10-06 07:19:07 +00:00
Rasmus Lerdorf 26b69a7d93 Fix for bug #19700 - code by Wez 2002-10-06 06:47:53 +00:00
Moriyoshi Koizumi 0601d1fc41 made messages more consistent 2002-10-06 06:37:47 +00:00
Sebastian Bergmann 8684c06b6d Add note about javax.servlet package. 2002-10-06 06:27:13 +00:00
Moriyoshi Koizumi 55b591365f Warnings for empty regular expressions 2002-10-06 06:21:34 +00:00
Rasmus Lerdorf 72d90fc41c As discussed a while ago, decoding GIF images is not considered a Unisys
LZW patent violation so we can distribute read-only GIF support with
our bundled GD2.  The patent also expires in 2003, which is quickly
approaching, so we can roll in write support soon unless things change.
2002-10-06 06:03:17 +00:00
Frank M. Kromann 797a0dc33c Adding missing include path's to non TS projects 2002-10-06 02:14:22 +00:00
Frank M. Kromann 0d23670b30 Fixing comment allowing the module to compile again 2002-10-06 02:10:19 +00:00
a6166bf96b ChangeLog update 2002-10-06 00:33:38 +00:00
Andrei Zmievski f7ef0ccd17 Change HEAD version to 4.4.0-dev. 2002-10-05 20:37:12 +00:00
Derick Rethans b007bd0696 - Add parse_url() tests (expect will follow later)url_t.phpt 2002-10-05 20:28:35 +00:00
Andrei Zmievski 3d99d4fd37 *** empty log message *** 2002-10-05 20:07:44 +00:00
Melvyn Sopacua 9bb526c283 (xslt tests) Add test for new backend API (005.phpt), new function
(006.phpt) and a crash test (007.phpt)
             006.phpt also tests handling of public entities, which is in
             essence new to the extension, since there was no way to turn
             it on.
# These new functions and backend will be added shortly.
# TODO: test for xslt_set_object
2002-10-05 19:44:26 +00:00
Wez Furlong 778615bd6c sp 2002-10-05 16:25:55 +00:00
Melvyn Sopacua b83d7bbf8a (xslt tests) Test for reference to a non-existing scheme handler. 2002-10-05 16:11:46 +00:00
Melvyn Sopacua 1fbef62ae9 (xslt: error_print) Fixes a leak when multiple error messages are issued
during a transformation.
# It's probably better to wrap this in an internal function, since it's
# easily forgotten.
2002-10-05 14:04:19 +00:00
Derick Rethans cdc3b6d652 - Whitspace 2002-10-05 11:34:02 +00:00
David Reid 2a0fbded3d Add BeOS thread support to TSRM. This should not impact on any other OS's
but allows us to build PHP with threading support and therefore we can
build as an Apache 2 module.

The locking is currently done using benaphores but this may be reviewed.
2002-10-05 11:26:17 +00:00
Melvyn Sopacua 4ca381aacf remove tests entry. Fix patch entry to contain function name 2002-10-05 11:00:56 +00:00
Wez Furlong 9d5bab5a0d EOF related fixes. 2002-10-05 10:59:35 +00:00
Wez Furlong 93f9eea77d Revert. The problem lies elsewhere. 2002-10-05 10:58:55 +00:00
Wez Furlong ae36c08b54 Fix Win32 build as PHP_CONFIG_FILE_SCAN_DIR is not #defined. 2002-10-05 10:55:54 +00:00
Wez Furlong 077fe52d8b This seems to resolve the issues with fgets.
I've moved EOF detection into the streams layer; a stream reader
implementation should set stream->eof when it detects EOF.
Fixed test for user streams - it still fails but that is due to an output
buffering bug.
2002-10-05 10:35:13 +00:00
Markus Fischer 945ccfa76a - Remove superfluous E_WARNING if mysql_connect() fails; there's already
an E_WARNING a few lines above.
2002-10-05 00:54:31 +00:00
6b6fb53d86 NEWS update 2002-10-05 00:34:31 +00:00
23a68c448a ChangeLog update 2002-10-05 00:33:20 +00:00
David Viner 4f98cc5a55 adding the xslt_set_object function (as per discussion on php-dev and
the newly created sab-php@gingerall.cz)
--dviner
2002-10-04 23:06:10 +00:00
David Viner 1665272cee adding segfault detection as proposed by Lenar Lõhmus [lenar@vision.ee]
--dviner
2002-10-04 22:43:55 +00:00
Stefan Esser 4368b8e4ac some FTP servers return 32bit port numbers. 2002-10-04 22:20:08 +00:00
Brian France 3340e82508 Fixed a problem where opendir with <path>/ and having <path>/ in
open_basedir ini option didn't work.  It was removing the trailing
        slashes and then addeding it back to only one of the string,
        now it adds it back to to both if needed.
2002-10-04 22:16:16 +00:00
Stefan Esser 87c0577a0c some broken ftp servers return 32bit port numbers. 2002-10-04 21:58:39 +00:00
Ilia Alshanetsky 29be52fbfb A slightly better content-type check. 2002-10-04 21:31:34 +00:00
Ilia Alshanetsky 5f67f05d92 Added a note on how to enable .phps support. 2002-10-04 21:22:13 +00:00
Marcus Boerger 2e90bbe3c2 Return to old counting where every test is counted (even those of skipped
extensions). Inform about the number of extensions tested and skipped.
This makes the test summary more compareable.

Maybe i'll add a parameter/env-var to skip extension tests. That way we
could fasten tests for changes in the core. But it has to wait some days.
2002-10-04 21:19:51 +00:00
Ilia Alshanetsky 9f2b70d507 Added .phps support to Apache 2. It can be enabled by adding
AddType application/x-httpd-php-source .phps
to httpd.conf
2002-10-04 21:15:59 +00:00
Sterling Hughes df837e67c7 have implode use the smart_str_*() functions, this should speed things up
quite a bit...
2002-10-04 20:44:19 +00:00
Martin Jansen 1fe42e10b7 * Nuke warning when $php_errormsg is not set. 2002-10-04 20:00:51 +00:00
Sascha Schumann bfd2a857b2 Fix EOF cases
Noticed by: Ilia
2002-10-04 19:48:59 +00:00
Sascha Schumann 1918011c01 Interrupt loop, if the stream op fails. 2002-10-04 19:36:09 +00:00
Sascha Schumann 5e97e66abb Nuke warning 2002-10-04 19:20:13 +00:00
Sascha Schumann a4ec211e9e Add a few notes 2002-10-04 19:08:43 +00:00
Wez Furlong c429805e0b Make that error message more meaningful for systems like my SuSE 7.0 with
an apparently broken magic file.
2002-10-04 19:01:34 +00:00
Wez Furlong 9c5883bdf6 replace dont_block with a flag. 2002-10-04 18:59:34 +00:00
Ilia Alshanetsky 08645d53c0 Fixed bug #19746 2002-10-04 18:44:47 +00:00
Sascha Schumann 4f7e6dadd8 Improve the general behaviour of stream_gets and fix its semantics
with regard to sockets. The behaviour should be aligned with PHP 4.2 now.
This has been verified to some degree.

If the underlying stream operations block when no new data is readable,
we need to take extra precautions.

If there is buffered data available, we check for a EOL. If it exists,
we pass the data immediately back to the caller. This saves a call
to the read implementation and will not block where blocking
is not necessary at all.

If the stream buffer contains more data than the caller requested,
we can also avoid that costly step and simply return that data.
2002-10-04 18:21:40 +00:00
Rasmus Lerdorf 5610e348ec Kill a few more warnings 2002-10-04 18:03:29 +00:00
Rasmus Lerdorf 2ca6f26918 Kill warning 2002-10-04 18:01:52 +00:00
foobar 189ce6a308 combine those ob_* entries and keep the attention line on top 2002-10-04 17:28:48 +00:00
Marcus Boerger 3d6ecdeff0 return FALSE on error 2002-10-04 17:17:01 +00:00
Marcus Boerger 518e61de97 suggest paranthesis around || and && 2002-10-04 17:11:35 +00:00
Sander Roobol e6e2c1c70d Fixed a bug in the new implementation of str_repeat() 2002-10-04 17:10:51 +00:00
Derick Rethans ec6713f1ca - dot :) 2002-10-04 16:55:46 +00:00
Sterling Hughes 5605dcf7b6 fix a memory leak in implode()
# kept seperate from last commit on purpose.. ;)
2002-10-04 16:54:56 +00:00
Sterling Hughes abc9991925 @ Make the glue argument to implode() optional, if it is not specified
@ default to using "". (Sterling)
2002-10-04 16:53:14 +00:00
Andrei Zmievski 03823d4336 that was reverted for now 2002-10-04 14:12:13 +00:00
Melvyn Sopacua c4805ffeb1 Improve testkit for xslt.
002.phpt and 003.phpt are regression tests for reported bugs.
 004.phpt has been known to cause problems in some Sab/PHP combinations.
 No known reports in bug db for that one.
 Added skip mechanism
@- Added regression test for bugs #17791 and #17931 (Melvyn)
2002-10-04 11:41:34 +00:00
Melvyn Sopacua 7f1ad2395d (xslt_set_error_handler) Fixes array 'fields' argument to contain correct
information.
                         Patch by Lenar Lohmus.
@- Fixed fields argument to contain correct info. (Lenar Lohmus)
2002-10-04 09:22:03 +00:00
Sebastian Bergmann 1014d78515 Add PHP_CONFIG_FILE_SCAN_DIR. 2002-10-04 05:22:13 +00:00
Rasmus Lerdorf 989a61ed98 As discussed, add --with-config-file-scan-dir compile-time switch defining
a directory which will be scanned for *.ini files after the main php.ini
file has been parsed.  This makes it much easier to automatically deploy
a modular PHP since adding extensions which have their own ini switches can
now be done by simply dropping a foo.ini file in the right directory and
restarting.  A list of parsed ini files is maintained and shown on the
phpinfo page.
2002-10-04 04:47:35 +00:00
Sean Bright 114dff39ce Add missing ?> 2002-10-04 02:34:15 +00:00
Sascha Schumann df0ea33d2b peek at freebsd's libc and fix _php_math_basetozval
PR: #19733
2002-10-04 02:21:33 +00:00
Sascha Schumann cfaffd2185 overflow check for _php_math_basetozval 2002-10-04 02:20:41 +00:00
Sascha Schumann 397277b8c3 Fix php_stat brokenness. 2002-10-04 01:05:03 +00:00
Sascha Schumann db3f7448a1 Add VCWD_ACCESS 2002-10-04 01:04:00 +00:00
4f05796a75 NEWS update 2002-10-04 00:35:27 +00:00
d42349737f ChangeLog update 2002-10-04 00:34:21 +00:00
Sascha Schumann fb84b3e1d0 remove trans_sid=1 2002-10-03 23:13:36 +00:00
Sascha Schumann 5db24fbb7b 20: rewriter uses arg_seperator.output for modifying URLs
21: rewriter handles <form> and <fieldset> correctly
2002-10-03 23:12:16 +00:00
Sascha Schumann 47cc29c9d1 19: serializing references test case using globals
18: rewriter correctly handles attribute names which contain dashes
2002-10-03 22:54:15 +00:00
foobar 0c66e1ccf6 sigh..is this so hard? 2002-10-03 22:26:43 +00:00
Andrei Zmievski a38123e756 Revert the patch for now. We'll be branching on Saturday the way it's
implemented is a bit half-baked. We can always merge it into the branch
at a later point.
2002-10-03 18:30:27 +00:00
Marcus Boerger ad120d2e28 $val not in first param to sprintf 2002-10-03 18:25:30 +00:00
Andrey Hristov 52c529c5af ws fixes.
#again :)
2002-10-03 18:15:18 +00:00
Sascha Schumann eab0f5965f code from ancient bug #5271
setting $_SESSION before session_start() should not cause segfault
2002-10-03 16:55:08 +00:00
Sascha Schumann 3998374a0d invalid session.save_path should not cause a segfault 2002-10-03 16:49:52 +00:00
Sascha Schumann 61e47a342e use_trans_sid should not affect SID 2002-10-03 16:43:44 +00:00
Sascha Schumann 8882b28e60 editing 2002-10-03 16:14:55 +00:00
Marcus Boerger 3ee8172674 fix position handling 2002-10-03 16:06:41 +00:00
Sascha Schumann d661fa4b46 A script should not be able to modify session.use_trans_sid 2002-10-03 15:58:10 +00:00
Sascha Schumann bb4f911035 There should not be any warning with regard to redefining SID 2002-10-03 15:52:36 +00:00
Sascha Schumann dba3e4c7ad Registering _SESSION should not segfault. 2002-10-03 15:48:18 +00:00
Sascha Schumann d4e1ac6c26 Mini test cases for fixed segfaults 2002-10-03 15:39:29 +00:00
Sascha Schumann 5fe046c4c3 session_decode should not segfault 2002-10-03 15:33:00 +00:00
Sascha Schumann e24247e632 Remove ob_start() 2002-10-03 15:19:55 +00:00
Sascha Schumann 16f54aaca8 Add test for unset($_SESSION["x"]); behaviour 2002-10-03 15:19:43 +00:00
Sascha Schumann c4adf94fbd make tests work with CLI 2002-10-03 15:11:01 +00:00
Sascha Schumann 7e03310a6a Don't emit warning, if there is nothing to send 2002-10-03 15:10:36 +00:00
Ilia Alshanetsky 2ea2b662a4 Optimized str_repeat() function, it is now 10x faster on 1 byte multipliers
and 5-6x faster on multi-byte multipliers.
2002-10-03 13:59:31 +00:00
Yasuo Ohgaki 39b0eb9b22 Fixed broken code by Derick.
ob_implicit_flush() and ob_flush_all() are stopped working.
var_dump() and hightlisht_string() outputs buffer contents wrongly
with ob_implicit_flush().

Everyone should be happy now.
It was only OG(implicit_flush) interpretation issue after all.
2002-10-03 13:32:01 +00:00
Andrey Hristov 76a104feb8 colon written instead of semi-colon. 2002-10-03 13:03:21 +00:00
Stefan Esser 8fae3d7a49 swapped conditions to correct the logic 2002-10-03 12:16:44 +00:00
Andrey Hristov ae70a4e458 few ws fixes. 2002-10-03 12:06:52 +00:00
James Moore df431074de Keep comments and code in sync. 2002-10-03 11:56:10 +00:00
Stefan Esser 7b7c45dda2 Tell everyone that I am the ext/ftp maintainer... 2002-10-03 11:40:05 +00:00
Stefan Esser 4381225c1b Added news entry about ftp_ssl_connect() 2002-10-03 11:38:03 +00:00
Stefan Esser b220b7113f Added ftp_ssl_connect() for FTP over SSL. 2002-10-03 11:33:05 +00:00
Zeev Suraski d58c3dda96 Guys, please keep K&R. 2002-10-03 11:18:39 +00:00
Sebastian Bergmann b169932d1c Fix warnings. 2002-10-03 11:08:09 +00:00
Derick Rethans dbc6935c16 - Fix descriptions 2002-10-03 11:00:13 +00:00
Derick Rethans 7ad71ed442 - Add highlight_string buffering test 2002-10-03 10:47:47 +00:00
Marcus Boerger 9f8b57fb57 typing 2002-10-03 10:44:13 +00:00
Derick Rethans b6323ef5e2 - Add tests 2002-10-03 10:43:43 +00:00
Andrey Hristov cebb0f76b8 ws fixes. 2002-10-03 10:42:57 +00:00
Derick Rethans 9b517c4b93 - Revert changed to implicit_flush behavior. The new behavior was not
intended in the first place.
2002-10-03 10:35:33 +00:00
Andrey Hristov 5084c5ecfc Added some info about new functions and changed functionality in old ones. 2002-10-03 10:25:21 +00:00
Yasuo Ohgaki b52edbddf9 Shouldn't enable implicit_flush like this.
Most problems are fixed. If you find internal function that does
not follow my comment, please fix it or let me know.
2002-10-03 09:57:53 +00:00
Yasuo Ohgaki b0fcd61207 Fixed broken higlight_string() 2002-10-03 09:19:31 +00:00
Stefan Esser 8827f8eca9 renamed ftp_async_* into ftp_nb_* 2002-10-03 09:10:24 +00:00
Jan Lehnardt aadb0c910b - Added wddx_serialize_type(). Allows users to cast values to WDDX types
@- Added wddx_serialize_type(). Allows users to cast values to WDDX types (jan)
2002-10-03 08:56:10 +00:00
Yasuo Ohgaki 1731767272 Prevent unwanted fluhsing. 2002-10-03 08:54:45 +00:00
Yasuo Ohgaki 6c7202e116 Added comment for php_output_set_status().
Please use this function if you would like to prevent unwanted flush
by implicit_flush=On or ob_implicit_flush().
2002-10-03 08:54:13 +00:00
Sascha Schumann 114c544b9b Purge ini_set calls and replace through INI sections. 2002-10-03 08:07:21 +00:00
Andi Gutmans b276a96f4b - Fix ZTS build 2002-10-03 07:23:50 +00:00
Yasuo Ohgaki 0a6f5f9996 Update test 2002-10-03 07:19:27 +00:00
Yasuo Ohgaki 66a50c5373 Added ob_flush_all() that flushes bufferred contents until it actually
sent/printed.
@ Added ob_flush_all() that flushes all buffers. (Yasuo)
2002-10-03 07:17:14 +00:00
Sascha Schumann 4fbf3f77c0 move gc_maxlifetime one up 2002-10-03 06:52:23 +00:00
Sascha Schumann 04b66595a7 Add recommened entries, including disabling the session bug/feature 2002-10-03 06:51:38 +00:00
Sascha Schumann 0ccb5d98b4 Add new session options 2002-10-03 06:49:33 +00:00
Sascha Schumann 13f5db1b67 Make the interpretation of gc_probability configurable by adding
session.gc_dividend. The probability of running gc on each request is then
gc_probability/gc_dividend.
2002-10-03 06:45:15 +00:00
Sascha Schumann be319c721a Reenable E_WARNING and test session.bug_compat_warn in addition. 2002-10-03 06:41:25 +00:00
Sascha Schumann afb1458910 session_destroy resets the sid, so we need to set it again here 2002-10-03 06:33:19 +00:00
Sascha Schumann 356ea7ffbd Verify PHP 4.2 compatibility: global is used albeit register_globals=0 2002-10-03 06:32:45 +00:00
Sascha Schumann 0ed434a13b Use ZEND_SET_SYMBOL_WITH_LENGTH correctly (hopefully)
It strikes me as awkward that a Zend API user needs to take care of
doing the engine's reference counting.

This fixes a memory overrun in a testcase.  All ZEND_SET_* calls
should be correct now.
2002-10-03 06:29:58 +00:00
Sascha Schumann 15b23945ad (track_init) Use is_ref/refcount parameters of SET_SYMBOL macros
(save_current_state) Prevent a possible deadlock which occurs when
the track vars are inaccessible
2002-10-03 05:53:45 +00:00
Sascha Schumann d4ef4079de Verify PHP 4.2 compatibility: unset($c) with enabled register_globals 2002-10-03 05:06:01 +00:00
Yasuo Ohgaki f6dfd6b184 Forgot 1 byte for \0 2002-10-03 04:56:54 +00:00
Yasuo Ohgaki 5f1bb18c36 Save memory 2002-10-03 04:54:01 +00:00
Sascha Schumann 8a586103fc Align behaviour with 4.2 with regard to register_globals=1
session_register("c");
unset($c);
$c = time();

If a user unsets a global session variable, it is not a reference
to a $_SESSION slot anymore.

During serialization, PHP 4.2 will not find the respective entry in
$_SESSION and fall back to the global sym table.
2002-10-03 04:53:05 +00:00
Yasuo Ohgaki f534dc8f47 Added missing proto and foldings. 2002-10-03 04:17:41 +00:00
Yasuo Ohgaki 22bf29384e Move wrong output buffer usage check to ob_gzhandler init.
Export some output buffer functions.
2002-10-03 03:58:12 +00:00
Sascha Schumann b9077e5a9d Nuke PS(vars), we keep the state of registered session variables now
completely in PS(http_session_vars). This avoids bugs which are caused
by a lack of synchronization between the two hashes. We also don't need
to worry about prioritizing one of them.

Add session.bug_compat_42 and session.bug_compat_warn which are enabled
by default. The logic behind bug_compat_42:

IF bug_compat_42 is on, and
IF register_globals is off, and
IF any value of $_SESSION["key"] is NULL, and
IF there is a global variable $key, then
$_SESSION["key"] is set to $key.

The extension emits this warning once per script, unless told otherwise.

"Your script possibly relies on a session side-effect which existed until
PHP 4.2.3. Please be advised that the session extension does not consider
global variables as a source of data, unless register_globals is enabled.
You can disable this functionality and this warning by setting
session.bug_compat_42 or session.bug_compat_warn.
2002-10-03 03:23:02 +00:00
Yasuo Ohgaki bec4574f57 Made some functions inline.
Added static for unexported functions.
2002-10-03 02:55:19 +00:00
Yasuo Ohgaki 22220d8983 Rename pg_data_seek() to pg_result_seek().
Give a correct credit for Marcus and Wez.
2002-10-03 02:41:19 +00:00
Yasuo Ohgaki 1b675aa690 Rename pg_data_seek() to pg_result_seek().
Added mysql_result_seek() which is alias of mysql_data_seek().
2002-10-03 02:32:09 +00:00
Yasuo Ohgaki bd177ce7c1 Added ob_get_clean() and ob_get_flush().
Someone requested this feature before.
@ Added ob_get_clean() and og_get_flush(). (Yasuo)
2002-10-03 01:36:44 +00:00
Ilia Alshanetsky 01830c0d27 Added missing TSRMLS_DC to php_apache_lookup_uri() 2002-10-03 01:28:04 +00:00
8babbff1f7 ChangeLog update 2002-10-03 00:35:16 +00:00
David Reid 9b10843481 Add more BeOS support... 2002-10-02 23:52:08 +00:00
David Reid cf2e12a01e Add some more BeOS support. 2002-10-02 23:48:58 +00:00
Daniela Mariaschi 69a6289e8c syntax to avoid error while reading data from file in ibase_blob_import 2002-10-02 23:05:06 +00:00
foobar 822e342739 stylissimo 2002-10-02 22:34:40 +00:00
foobar ac1254a59c unify these files to conform with the new files created by run-tests.php 2002-10-02 22:31:37 +00:00
Sascha Schumann 4ea4f294b6 Fix harmless memory leaks and simplify track_vars_init. 2002-10-02 21:51:32 +00:00
Ilia Alshanetsky e4e71fe5ca Notes about additions to Apache 2 sapi. 2002-10-02 21:34:01 +00:00
Stig Bakken 0a51b3e871 * we're releasing 1.0 along with PHP 4.3, so this is 1.0RC1 2002-10-02 21:33:35 +00:00
Stig Bakken 01daca5e10 * add support for http proxy authorization (thanks Arnaud) 2002-10-02 21:27:25 +00:00
Ilia Alshanetsky ca0aced7c9 Added apache_response_headers(), apache_note(), apache_getenv() and
apache_setenv() functions.
The getallheaders() is renamed to apache_request_headers() and an
getallheaders() is aliased to it.
Added a better error reporting mechanism to apache_lookup_uri() and virtual().
2002-10-02 21:22:44 +00:00
Andrey Hristov 83a0f20381 Making strrchr() binary safe.
Test case added.
2002-10-02 18:58:09 +00:00
Andrey Hristov 2092d80230 Making strstr() binary safe. 2002-10-02 18:41:55 +00:00
Andrey Hristov b2d93b67fc Ws fix. Forgot to add this in the previous commit. 2002-10-02 18:13:56 +00:00
Andrey Hristov f02b1507dc ws fixes. 2002-10-02 17:56:04 +00:00
Derick Rethans f85e6fe51d - Added CURLOPT_FTP_USE_EPSV option. (Patch by Alex Howansky
<alex@wankwood.com>)
2002-10-02 16:44:48 +00:00
Marcus Boerger 84fa2fd9a8 Better... 2002-10-02 15:40:57 +00:00
Marcus Boerger 1e6557f664 Fix implicit_flush 2002-10-02 15:36:29 +00:00
Marcus Boerger ff51ed7c6f Modified get_status(): Display chunk_size allways and size which is in
most cases initial_size as well as block_size only when used.
2002-10-02 15:10:11 +00:00
Marcus Boerger d4bba6d158 Revisted Wez patch: chunk_size 0 means cahce the whole output. So
we must apply the default before calling php_enable_output_compression().
I have left the default setting in the rinit function even though i do think
it is not necessary.
2002-10-02 15:02:16 +00:00
Colin Viebrock f871f3870d Fix for SRM module (and maybe others). Header rows are now not HTML
escaped, so make sure you do this yourself in the modules.
2002-10-02 14:27:32 +00:00
Marcus Boerger 4a1d83aa8c Another missing variable init
#Wez shouldn't "stream->filterhead->fops->flush()" affect return value also?
2002-10-02 13:25:38 +00:00
Marcus Boerger efec24d22d Missing variable init 2002-10-02 13:18:01 +00:00
Harald Radi afb75a45e9 fixes bugs #19156 and #19544 2002-10-02 12:53:51 +00:00
Marcus Boerger 614d10a8cb Check for C99 conformance of snprintf.
#This way we force using internal version if a broken library is used.
#E.g. length parameter is broken, return value or default precision wrong.
2002-10-02 12:52:53 +00:00
Sascha Schumann 6683334066 Another Linux x86 system returns ELIMIT so we need to check errno as well
before assuming that pread/pwrite work.
2002-10-02 08:32:26 +00:00
Sascha Schumann 875c1da58e Reflect actual stance wrt cli/cgi 2002-10-02 08:14:47 +00:00
Yasuo Ohgaki 2300bddb9c Fixed pg_escape_typea() 2002-10-02 06:30:40 +00:00
Yasuo Ohgaki 520486e8b1 Clean up a little. 2002-10-02 06:22:52 +00:00
Sascha Schumann e1dd35bddb The pread/pwrite macros check for a bug in the Linux glibc now.
The bug causes the kernel not to return -1/EAGAIN. The new test case
has been borrowed from the Linux Test Project.

This also fixes a bug which apparently caused HAVE_PREAD/WRITE to be
defined even if the more complex checks failed (ac_cv_func_NAME=no
was set albeit with no difference).
2002-10-02 06:05:16 +00:00
Yasuo Ohgaki d4c7e8bbaf Improve test to show output bufferring bypass bug clearly. 2002-10-02 05:29:06 +00:00
Yasuo Ohgaki 69957c56b3 Added pg_unescape_bytea(). Fixed pg_data_seek().
php_pgsql_unescape_bytea(PQunescapeBytea) is shamelessly stolen from PostgreSQL 7.3 :)
2002-10-02 04:03:21 +00:00
Yasuo Ohgaki 2745e8b9b2 Add some example functions for mysql users. 2002-10-02 03:32:27 +00:00
Yasuo Ohgaki 82e7bea504 pg_data_seek() 2002-10-02 03:17:30 +00:00
Yasuo Ohgaki b8fdd3c7ae Added pg_data_seek().
pg_result_seek() woudl be better name, but there is mysql_data_seek()...
2002-10-02 03:16:35 +00:00
Yasuo Ohgaki 2728440fdc Added pg_ping() 2002-10-02 02:41:21 +00:00
Yasuo Ohgaki f8f11ac0a2 Rename pg_metadata() to pg_meta_data() to confirm naming standard 2002-10-02 02:11:27 +00:00
foobar fc721174c8 - Run ext/* tests only for those modules that are actually compiled
into the php binary. (faster)
- Skip search of .phpt files if they are passed as parameters
2002-10-02 01:52:25 +00:00
0662a009db ChangeLog update 2002-10-02 00:33:32 +00:00
Stefan Esser a87f4afc35 repairing the chaos
utime("filename", NULL) is not only valid but a MUST on linux if you are
not the owner...
2002-10-01 21:53:25 +00:00
Andi Gutmans aa7bffeec6 - Fix problem when crashing on illegal tokens in class name during class
- definition.
2002-10-01 20:00:45 +00:00
Sascha Schumann 8b78c78973 Disable pread/pwrite for now until we can clarify why it should be
impossible to write a check for a broken OS feature.
2002-10-01 19:19:10 +00:00
Sascha Schumann 856cd5e17a The session extension ensures now that get_session_var can rely
on the state of $_SESSION/$HTTP_SESSION_VARS. It does not look up
symbols in the global symbol table anymore.

This was achieved by actually planting references between every
$_SESSION["x"] and $x, not only when restoring a session, but also
when registering a session variable (in a register_globals=1 context).

Upon registering a new variable, this memory leak continues to show
up, regardless of register_globals.

ext/session/session.c(272) :  Freeing 0x0818F01C (12 bytes), script=test

Obviously, the newly allocated empty zval is not properly freed.  If anyone
has any idea on how to fix that, please step forward.
2002-10-01 11:59:45 +00:00
Yasuo Ohgaki 7cacf9713d WS and added missing output.
It seems this bug is fixed in latest version at least.
2002-10-01 11:18:31 +00:00
Zeev Suraski 2c4b6fff6d Fix warnings 2002-10-01 10:16:40 +00:00
Yasuo Ohgaki 2c7440537d Bug fix 2002-10-01 10:04:04 +00:00
Yasuo Ohgaki e92abff88b Fixed bug #17825. Double zval_ptr_dtor(). 2002-10-01 10:01:56 +00:00
Yasuo Ohgaki 2ecf6161b8 Implicit flush fix 2002-10-01 02:54:30 +00:00
foobar 47ca8127bb - Revert the removal of dlopen check here.
# Left HAVE_LIBDL undefined for some reason
2002-10-01 02:47:52 +00:00
Yasuo Ohgaki 3d8e33f06a Fixed implicit flush. 2002-10-01 02:43:33 +00:00
foobar 8634346e73 - Removed unnecessary dlopen checks. (this is done in Zend.m4 already) 2002-10-01 01:47:09 +00:00
foobar c12bd04609 some typos fixed.. 2002-10-01 01:40:07 +00:00
6896ba5d8a NEWS update 2002-10-01 00:35:04 +00:00
b9cb4f9442 ChangeLog update 2002-10-01 00:34:05 +00:00
Yasuo Ohgaki ecf146cbce Users can shoot themselves by their own output handler always.
Therefore, this check is overkill and it should be documented
limitation, IMO.

Anyway, a little optimization.
2002-09-30 23:46:43 +00:00
David Reid 6477b0b5d8 Use the built in autoconf test for fnmatch. Simply using the
AC_CHECK_FUNCS seems to give false positives on beos and reading
the comments on other systems as well.
2002-09-30 23:31:13 +00:00
Derick Rethans d23c9b24ca - No tabs :) 2002-09-30 10:34:40 +00:00
Wez Furlong 7bcc97c82e Add header file required for pread/pwrite (on my system at least). 2002-09-30 10:18:57 +00:00
Wez Furlong 4356932dfe Fix infinite recursion bug when using zlib output compression.
Cause: the chunk size is taken from the zlib.output_compression setting,
which is 0 or 1.  This causes the block_size for output buffer to be set
to 0 (1 / 2) and thus causes infinite recursion in php_ob_allocate().
Solution: use a value of 0 for the chunk size which will use the default
sizes.  Also add a sanity check which will default the block_size to 1
if it ends up as 0.
2002-09-30 10:18:06 +00:00
Edin Kadribasic 6e0c5d0fdc Those can be safely ignored. 2002-09-30 09:48:54 +00:00
Derick Rethans 3b99744f0b - Fix ZE2 build when overload is enabled 2002-09-30 09:40:12 +00:00
Yasuo Ohgaki 3053ba7b9c Fixed typo.
# Thanks to Andrey Hristov.
2002-09-30 09:35:04 +00:00
Uwe Steinmann 86e3e1ac85 - make_objrec_from_array() gets a second parameter to handle key/pairs of
the form key=value and key:value.
- Proper treatment of the attribute SQLStmt
2002-09-30 09:27:56 +00:00
Yasuo Ohgaki d378a2c959 Remove space 2002-09-30 09:15:23 +00:00
Yasuo Ohgaki 545f894524 Added pg_fetch_assoc(). Fixed proto. Added/fixed comments.
# It seems last attempt was failed. Try committing again.
2002-09-30 09:07:57 +00:00
Wez Furlong 81684ed0f2 Even better. 2002-09-30 09:07:10 +00:00
Wez Furlong 5de7ae1fc7 Slight grammar fix. 2002-09-30 09:04:48 +00:00
Yasuo Ohgaki 9049e7547c Consolidate some entries. 2002-09-30 08:32:03 +00:00
Yasuo Ohgaki 6dbe013b9e Fixed my name :) 2002-09-30 08:26:54 +00:00
Yasuo Ohgaki 95ed0fb2d5 Added pg_fetch_assoc() 2002-09-30 08:26:23 +00:00
Yasuo Ohgaki 5a6703484d Use PGSQL_CONV_FORCE_NULL as it is supposed.
PGSQL_CONV_FORCE_NULL inserts NULL to field instead of
NULL string for string type tuples.
2002-09-30 07:35:41 +00:00
Yasuo Ohgaki 788e4070b6 Use of PGSQL_CONV_INGORE_NOT_NULL as it is supposed. Change comment a little. 2002-09-30 07:24:41 +00:00
Tim Toohey 6a952f0856 fix gdImageCopyResampled() for non-constant alpha layer 2002-09-30 07:23:34 +00:00
Derick Rethans 4cd4878fc6 - Rewording 2002-09-30 05:20:17 +00:00
Sascha Schumann 21300f5e5a sync 2002-09-30 04:59:01 +00:00
Sascha Schumann aa9bb5aefa Fix my stupid mistake which broke <form> handling 2002-09-30 04:56:38 +00:00
Sascha Schumann 2405fcf38c Apparently, Solaris 2.6's find is overwhelmed with more than 2 -names per
invocation (add some parantheses and it segfaults).  And thus, we split
the clean target up.
2002-09-30 04:42:11 +00:00
Yasuo Ohgaki dbd1a45d70 Fix TODO desc 2002-09-30 04:15:39 +00:00
Yasuo Ohgaki b7d1a58e25 Remove unused def. Add TODO. 2002-09-30 04:15:01 +00:00
Yasuo Ohgaki 90fc47f4d1 Improve error message. Fix proto. 2002-09-30 03:51:54 +00:00
Jon Parise 033224784b @ - Added getopt() for parsing command line options and arguments. (Jon) 2002-09-30 03:02:52 +00:00
Jason Greene 06ad8620db Fix thread safety issue 2002-09-30 02:09:42 +00:00
Yasuo Ohgaki 6e91aed069 Added warning for CLI and CGI SAPI changes. Fixed wrong description for 4.2.0. 2002-09-30 00:47:43 +00:00
a599bb0f98 ChangeLog update 2002-09-30 00:34:59 +00:00
Sascha Schumann d9655f8c68 remove unused lines 2002-09-30 00:03:09 +00:00
Wez Furlong 388bfe5ffe Prevent possible problems with two resource ids referencing the same
panel.
2002-09-29 22:55:09 +00:00
foobar 350340241c Possible fix for #19290 2002-09-29 22:24:20 +00:00
Ilia Alshanetsky 7f18442882 Fixed a mem leak inside the path resolving code. 2002-09-29 22:16:29 +00:00
Markus Fischer 0fb5efd59b - Update 2002-09-29 22:13:16 +00:00
Ilia Alshanetsky 0454bf2d0d Removed the ceil(-0.5); test. The return value is depedant on system's
libc and even when proper value '-0' is returned, var_dump() converts
it to 0 anyway.
2002-09-29 21:45:54 +00:00
foobar 5346391d16 ws fix 2002-09-29 19:28:12 +00:00
foobar 7aaa6bd77d ws fix 2002-09-29 19:22:39 +00:00
Ilia Alshanetsky 0e7e7ae961 Corrected ceil(-0.5) output value, it is 0 not -0. 2002-09-29 19:21:10 +00:00
foobar 3cf681c1d9 Make it compile with the latest _release_ too.. 2002-09-29 18:53:19 +00:00
Ilia Alshanetsky 4c4d5a617b Fixed a crash, which would occur when save_handler is invalid. 2002-09-29 18:33:14 +00:00
Sascha Schumann 5c35fad893 Fix some typos 2002-09-29 16:25:23 +00:00
Sascha Schumann e6e54605b7 Follow Yasuo's suggestion and build sapi program's under the sapi-specific
directory.

Move sapi-specific makefile fragments to their respective directory.

Create an embed sapi module which resides in its own dir now.
2002-09-29 16:22:49 +00:00
Ilia Alshanetsky 2af630f87d Fixed bug #17281 2002-09-29 15:55:11 +00:00
Ilia Alshanetsky 1142e16075 Fixed bugs #16995 and #19392 2002-09-29 15:26:50 +00:00
Ilia Alshanetsky db92853cc9 Bug fixing news. 2002-09-29 14:48:10 +00:00
Ilia Alshanetsky fba852e16b Fixed bug #19366 2002-09-29 14:45:57 +00:00
Derick Rethans 57b11623b9 - Fix Edin's name 2002-09-29 10:00:07 +00:00
Edin Kadribasic 946206f0d2 Added php/embed toolkit for embedding PHP engine into C/C++ applications.
See my post to php-dev on the subject.
2002-09-29 02:45:25 +00:00
0166a14916 ChangeLog update 2002-09-29 00:34:45 +00:00
Ilia Alshanetsky 678c10e67c Bug fixing news 2002-09-28 23:39:59 +00:00
Wez Furlong 18f94ecea4 Added ncurses_getyx(). 2002-09-28 22:50:23 +00:00
Wez Furlong 4f43b74fb8 WS 2002-09-28 22:37:51 +00:00
Wez Furlong 042fdde5aa More streams related news. 2002-09-28 22:37:11 +00:00
Wez Furlong 7694770304 Rename streams functions to fit with naming conventions, adding aliases
for old functions where required.
Make use of recent changes to chunk size and timeout setting code.
2002-09-28 22:14:21 +00:00
Wez Furlong 9509c20941 remove chunk size setting code (it's now in streams.c).
Move timeout setting code.
2002-09-28 22:12:23 +00:00
Wez Furlong 393d57d5be Differentiate between write buffer and streams read buffer sizes.
Add options for timeout and chunk size; previously these were only
set-able for socket streams.
2002-09-28 22:10:47 +00:00
Stig Bakken 04bb45cf4b * added --libs option 2002-09-28 21:58:19 +00:00
Ilia Alshanetsky 3f8ec7e764 Fixed bug #13936 2002-09-28 20:13:28 +00:00
Derick Rethans 52bd901eb4 - Fix for defines... 2002-09-28 19:02:21 +00:00
Sergey Kartashoff 074d6c7607 - Site mirror detection and popularity rank has been added to mnogosearch
extension
2002-09-28 17:52:18 +00:00
Wez Furlong 0b5aae65f1 Fix crash bug and return value. 2002-09-28 17:03:02 +00:00
Rasmus Lerdorf 5a239ab059 Uh, this is what I meant to do. Fix for #19292 2002-09-28 16:27:10 +00:00
Rasmus Lerdorf 5eab8abd35 Probable fix for bug #19292 2002-09-28 16:10:43 +00:00
Tal Peer 37b31b3e08 - Eliminated LFs 2002-09-28 15:41:57 +00:00
James Moore 523274d311 Make ext/fribidi compile against latest fribidi CVS 2002-09-28 15:37:21 +00:00
Derick Rethans 34f5bd514c - Fix build in non-ZTS mode 2002-09-28 15:12:41 +00:00
Marcus Boerger 9be7455fe0 Synch with README.TESTING 2002-09-28 13:59:17 +00:00
Wez Furlong 84e0df3dfe Allow user streams/wrappers to implement fstat(), opendir() and stat(). 2002-09-28 13:05:47 +00:00
Wez Furlong 8aae36aecb Add missing folding marker. 2002-09-28 13:04:47 +00:00
Derick Rethans 3c90139cfa - Consistency 2002-09-28 09:14:59 +00:00
Yasuo Ohgaki ec340e039a It must be GLOB_NOCHECK instead of GLOB_NOMATCH.
GLOB_NOMATCH does not make sense at all.
2002-09-28 09:14:45 +00:00
Markus Fischer 5f61955c95 - Don't forget whom to blame ... ;) 2002-09-28 08:56:33 +00:00
de04d72df7 NEWS update 2002-09-28 00:34:07 +00:00
60069233a4 ChangeLog update 2002-09-28 00:33:08 +00:00
Wez Furlong 315e0a599b Implement stream_select() which works just like socket_select, but only on
streams.
@ - Added stream_select() which works like socket_select but only works on
@   streams returned by fopen(), fsockopen() and pfsockopen(). (Wez)
2002-09-27 23:42:38 +00:00
Wez Furlong 65d3e611f9 More ncurses functions and constants. 2002-09-27 22:33:14 +00:00
Wez Furlong dd6d22b6a1 Implement some more window routines, add pad functions.
Add panel functions when libpanel is also detected.
Register STDSCR constant during ncurses_init().
2002-09-27 17:03:53 +00:00
Colin Viebrock 69e677cda7 fix formating by breaking on to separate lines 2002-09-27 16:05:47 +00:00
Edin Kadribasic 0a0c6a49f5 @- Fixed bug #19595 (Missing functions for GD2 format handling).
(Edin)
Fixed bug #19595 (Missing functions for GD2 format handling).
2002-09-27 13:31:43 +00:00
foobar 08d3ad407c ws 2002-09-27 13:15:56 +00:00
Hartmut Holzgraefe 5797668cc3 /tmp/cvsmLUuXQ 2002-09-27 12:40:31 +00:00
Edin Kadribasic bf094736b7 Update credits.
# Updated by scripts/credits. For some reason it put "Java" and "Win32 COM"
# twice. I removed the duplicates manually.
2002-09-27 12:23:49 +00:00
Edin Kadribasic 4be735db9e Those two have enough credits already :) 2002-09-27 12:15:13 +00:00
Tal Peer 85648dd059 - Fixed case in extension name 2002-09-27 12:12:06 +00:00
foobar b24ed08833 style polizei 2002-09-27 11:52:38 +00:00
Yasuo Ohgaki 7dae78b7f5 No need to define GLOB_NOMATCH. 2002-09-27 11:44:42 +00:00
Derick Rethans e646304c1f @- Fix for bug #19633 (wrong directories in ext/ldap/config.m4). (Derick)
- Fix for bug #19633 (wrong directories in ext/ldap/config.m4).
2002-09-27 10:38:08 +00:00
Wez Furlong 4279f74e5a Really *really* fix the segfault bug #17274 and bug #19627 this time.
@ - Fixed bugs #17274 and #19627 (segfault in sem_remove). (Wez)
2002-09-27 10:24:54 +00:00
Jan Lehnardt bcb3067d34 - be more conservative ;) 2002-09-27 10:17:52 +00:00
Wez Furlong e9dd2a6d03 And a couple more. 2002-09-27 09:26:39 +00:00
Wez Furlong 43e3e7e35a Add some bug #'s to make Markus happier :-) 2002-09-27 09:21:04 +00:00
Wez Furlong da2593ce79 Typo 2002-09-27 09:03:44 +00:00
Markus Fischer 2e97487687 - Update. 2002-09-27 07:02:12 +00:00
Dan Kalowsky b42ec8a984 They seem to be working... 2002-09-27 02:09:35 +00:00
03803bf412 ChangeLog update 2002-09-27 00:34:13 +00:00
Colin Viebrock 219a978c54 document changes 2002-09-26 20:54:55 +00:00
Derick Rethans a346564418 - Added Sambar install notes (patch by Steffen <com@sambarserver.info>) 2002-09-26 19:49:34 +00:00
Sebastian Bergmann cb6ef08e8c Fix ZTS build. 2002-09-26 19:48:56 +00:00
Colin Viebrock 982c510cd9 update credits page with proper HTML, fix HTML escaping, and a few tweaks 2002-09-26 19:33:23 +00:00
Sebastian Bergmann fd7326395b Fix warning. 2002-09-26 19:18:35 +00:00
Ilia Alshanetsky ee7b8f906d MFZE1 2002-09-26 18:56:11 +00:00
Sebastian Bergmann b5d4b5496d Fix ZTS build. 2002-09-26 18:13:32 +00:00
Ilia Alshanetsky 57c91b571e Fixed bug #11643 2002-09-26 18:12:27 +00:00
Colin Viebrock c7c275b741 fix phpinfo() output for better browser BC 2002-09-26 17:54:54 +00:00
foobar 6b8480fab6 Fix bug: #14991 (changing session.use_trans_sid does not work in scripts) 2002-09-26 16:46:21 +00:00
Wez Furlong a95fb6bfd6 Fix for #19580. (Incorrectly warning about lost data when that is not the
case on systems without fopencookie).
2002-09-26 16:22:28 +00:00
Wez Furlong 4d9d06c874 Emit a warning when an unsupported charset is requested in htmlentities.
Fixed #18521.
2002-09-26 16:07:14 +00:00
foobar a89a2b3c84 style,consistency.. 2002-09-26 13:51:04 +00:00
Derick Rethans 9a0dae80f6 - Cleaning up 2002-09-26 13:48:46 +00:00
Tal Peer 1e9a373602 - Fixed fatal error 2002-09-26 12:58:31 +00:00
Wez Furlong c484eb8c97 Fix segfault in wrapper error log mechanism when errors are logged on
second and subsequent events.
Implement very simple recursion protection for user streams written
like this:
class urlEncodeStream {
    var $fp = NULL;

    function stream_open($path, $mode, $options, &$opened_path)
    {
        $this->fp = fopen($path, $mode); // <-- this recurses infinitely
        return is_resource($this->fp);
    }
}

file_register_wrapper('urlencode', 'urlEncodeStream');
$fp = fopen('urlencode:///tmp/outputfile.txt', 'w');

Noticed by: Yasuo.
2002-09-26 12:12:27 +00:00
Jan Lehnardt 1f227cd2e3 - GLOB_NOMATCH and GLOB_NOESCAPE are only defined in win32/glob.h
- fixes build on FreeBSD 4.6
2002-09-26 11:19:26 +00:00
Tal Peer 372b1fae01 - Reverted back to old param parsing api (and eliminated a segfault by doing that)
- Added the CapRTL charset -- should be used for testing on machines without Hebrew/Arabic/Persian
 fonts
- Changed the note about deprecated behaviour from E_WARNING to E_NOTICE
2002-09-26 10:43:42 +00:00
Wez Furlong 4c2a9c091b Remove an unused variable and a now-unused function. 2002-09-26 10:17:41 +00:00
Wez Furlong 3a67c67737 Rename file_get_wrapper_data -> file_get_meta_data.
It now always returns useful information for all streams.
Unified that data with socket_get_status and made socket_get_status
an alias for file_get_meta_data.

Fix Location header following which was broken in this commit:
http://cvs.php.net/diff.php/php4/ext/standard/http_fopen_wrapper.c?r1=1.41&r2=1.42&ty=h
2002-09-26 10:14:41 +00:00
Yasuo Ohgaki 7d87babada Remove dup 2002-09-26 07:55:59 +00:00
Hartmut Holzgraefe 6daad95d11 temporarily giving some orphands a new home 2002-09-26 07:55:41 +00:00
Georg Richter 27cab17165 maintainers for the famous mysql extension 2002-09-26 07:45:06 +00:00
Markus Fischer fa5910e77c - Add missing bug fixes.
# Please always add a NEWS entry for fixed bugs.
# The NEWS entry are added to http://php.net/ChangeLog-4.php after every
# released and the fixed bugs are auto(vi)matically linked to the BTS.
# So please also conform to the #<number> style (no one violated this, but
# just in case ;).
2002-09-26 07:38:02 +00:00
Sebastian Bergmann f5426838f9 Fix ZTS build. Fix warning. 2002-09-26 07:30:16 +00:00
Hartmut Holzgraefe 1a2df34d9d fix windows build 2002-09-26 07:15:33 +00:00
Markus Fischer 0a9c94e4af - Merge url_rewriter.tags description from Sascha. 2002-09-26 07:05:17 +00:00
Sebastian Bergmann d6e24f21f9 Sync MSVC project files. 2002-09-26 06:10:22 +00:00
Tal Peer a77763facc - Initial commit 2002-09-26 05:47:56 +00:00
Wez Furlong 53e6def02b Note that the GD functions now also work with remote files. 2002-09-26 01:20:38 +00:00
Wez Furlong 1a87c6b5bf (PHP mb_convert_case) Add function that will convert the case of a string
Respecting it's encoding (or the internal encoding).
2002-09-26 00:53:47 +00:00
2f418a1fdb ChangeLog update 2002-09-26 00:35:59 +00:00
Hartmut Holzgraefe 0d815b5713 glob should now be ZTS/open_basedir/safe_mode aware (finally) 2002-09-26 00:27:52 +00:00
Hartmut Holzgraefe 419efa6eeb symbolic constants for fnmatch flags added 2002-09-26 00:27:13 +00:00
Yasuo Ohgaki b437a23ada on -> On 2002-09-25 23:36:27 +00:00
Yasuo Ohgaki a85ed54e88 Merge changes from php.ini-dist 2002-09-25 23:34:50 +00:00
Andrey Hristov 7badd563cb Test case for strspn()/strcspn(). 2002-09-25 19:08:38 +00:00
Andrey Hristov f80a817f7c Added common handler for strspn() and strcspn(). Almost of the code is
identical. Modified to accept up to 4 params. Last 2 optional start & len.
They are analogic to start & len of substr(). So the behavior when start &
len are used is like
strspn(substr($s,$start,$len),$good_chars) and
strcspn(substr($s,$start,$len), $bad_chars)
2002-09-25 19:06:29 +00:00
Sascha Schumann 21adf62204 add note about url_rewriter.tags 2002-09-25 18:08:58 +00:00
Andrey Hristov fc46a46b06 str_shuffle() function added. Like shuffle() for arrays - however the
algorithm for creating the permutation is quite simple. More like
the implementation of shuffle() for 4.2.1 .
2002-09-25 18:06:05 +00:00
Andrei Zmievski c9b9e63ea3 *** empty log message *** 2002-09-25 17:48:10 +00:00
Martin Jansen 64a31beb6a * Fix bug #19269.
This patch makes popErrorHandling() pop the first _two_ elements
    from the error handler stack to prevent un-necessary memory
    consumption.

# Patch by: jrust (at) rustyparts (dot) com
2002-09-25 17:36:24 +00:00
Sterling Hughes 9368a91f6d add two extensions - and orphan them. 2002-09-25 17:07:12 +00:00
Stanislav Malyshev 3fb0dc7b05 Propmote API NO year, so that it will never be the same as ZE1 API NO 2002-09-25 16:54:04 +00:00
Sascha Schumann 6816ba4b32 We are about to enter 2003, sending two-digit years does not make too
much sense anymore.  According to an article from '98, only Netscape 3.x was
affected anyway.
2002-09-25 16:11:31 +00:00
Sascha Schumann bc4253f73a style police 2002-09-25 16:06:40 +00:00
Wez Furlong 0141e97052 Make these all work with persistent streams too. 2002-09-25 15:46:47 +00:00
Wez Furlong 696e0a2301 Implement persistent streams. (for pfsockopen).
Juggle some includes/definitions.
Tidy up streams use in ext/standard/file.c
2002-09-25 15:25:12 +00:00
Sterling Hughes 8e635cf0bc if this makes people happier about me not working on these anymore, so be
it :)
2002-09-25 14:07:57 +00:00
Andrei Zmievski 27255d7419 Fix bug #17570. 2002-09-25 14:02:34 +00:00
Tal Peer 0c5538d077 - Update proto 2002-09-25 13:49:55 +00:00
Ilia Alshanetsky 7ae2196852 Fixed bugs #18167 & #16859 2002-09-25 13:26:03 +00:00
Sascha Schumann 03c07308d3 Improve error messages 2002-09-25 12:38:45 +00:00
Ilia Alshanetsky 322a24a526 prevent segv on Windows with negative localtime values. 2002-09-25 12:20:56 +00:00
Sascha Schumann c57d419925 Sync 2002-09-25 12:15:42 +00:00
Sascha Schumann 41c0b43772 Allow - as part of an attribute
PR: #19573
2002-09-25 12:15:22 +00:00
Sascha Schumann 7af64ef531 Fix #13472 by making it possible to append the <input> stuff after
<fieldset> for xhtml compliance.
2002-09-25 11:06:24 +00:00
Sascha Schumann 91bbb302c1 Sync with .re 2002-09-25 10:36:19 +00:00
Sascha Schumann 3cadecec1b Allow malformed HTML such as
<a onClick=window.open("/hardware/somevar.php?hinfoid=","chgti") ..>

where ["'] are part of the attribute value.
2002-09-25 10:35:28 +00:00
c8114d7f31 ChangeLog update 2002-09-25 00:36:04 +00:00
Andi Gutmans 974b502199 - Fix leak 2002-09-24 19:32:01 +00:00
Andi Gutmans f78fa50423 - Megapatch to try and support inheritance from sub-classes. Things might
- be *very* buggy now so don't get too upset if that happens.
- I still need to improve some stuff but it's a good step (hopefully).
2002-09-24 19:05:53 +00:00
Ilia Alshanetsky f91b3d5c6d Fixed bug #17957 2002-09-24 16:34:54 +00:00
Zeev Suraski 5f1bffe0cd Fix indirection 2002-09-24 10:55:56 +00:00
Wez Furlong a12423f959 Fix for #19570: last character in translation table is omitted. 2002-09-24 10:05:45 +00:00
Sascha Schumann 75c9efc08a Fix typo 2002-09-24 06:39:43 +00:00
Sascha Schumann 8f81e9ad23 Replace underscores with dashes in --enable-mime-magic 2002-09-24 06:37:17 +00:00
Wez Furlong 4cdf8c7c36 Fix EOL markers for file() so that Mac EOL work correctly. 2002-09-24 02:46:38 +00:00
ff9039e1d4 NEWS update 2002-09-24 00:35:14 +00:00
46b4e9c0f9 ChangeLog update 2002-09-24 00:34:06 +00:00
foobar b7cd711b0d yadda yadda.. 2002-09-23 23:41:54 +00:00
Wez Furlong ba2dc46117 Correct a buglet in the newly introduced buffer code.
# Andi: this might have been the cause of that problem you mentioned.
2002-09-23 23:39:46 +00:00
Tal Peer 6eb8b0dcf2 - Fixed build on Win32 (and made the ext use a newer API)
- Various CS fixes
- Converted the parameter parsing to the new API
2002-09-23 20:24:29 +00:00
Wez Furlong d96a7ba3f6 include(URL). 2002-09-23 19:16:03 +00:00
Wez Furlong a2c344fa67 Ensure that the seekable stream returned for include("http://") under win32
is based on a temporary file rather than a memory stream.
2002-09-23 19:10:33 +00:00
Wez Furlong 031f019351 Enable include("http://....") under win32 by downloading to a temporary
stream so that flex will get on nicely with the content.
# untested; theoretically it should work just fine.
2002-09-23 19:07:38 +00:00
Ilia Alshanetsky 44d42b8e13 Fixed bug #17466 2002-09-23 18:51:34 +00:00
Wez Furlong 3f6a884fa6 Reflect recent streams changes. 2002-09-23 18:35:22 +00:00
Wez Furlong c6fdce6891 Remove allow_url_fopen checks from the user streams code.
Rationale: user streams might not be implementing network access,
and the administrator can disable the file_register_wrapper function
and other network access functions if s/he does not want to allow
this functionality.
2002-09-23 18:18:40 +00:00
Wez Furlong d14a7e0c19 WS 2002-09-23 18:13:31 +00:00
Wez Furlong c74b9faca5 Implement a default_socket_timeout and auto_detect_line_endings ini options.
Also move user_agent from BG to FG.
2002-09-23 18:12:39 +00:00
David Reid 8dde690042 Allow this to build on beos with it's bizarre linking. 2002-09-23 17:40:04 +00:00
Wez Furlong 35d29fb69e basic_functions.c 2002-09-23 17:27:37 +00:00
Andi Gutmans 8831b9cfd0 - MFZE1. 2002-09-23 17:20:59 +00:00
Sascha Schumann 1f18eaadee Force /nocache/ entities to be delivered completely, even if a
broken proxy ignores our anti-cache headers and sends an IMS request.
2002-09-23 15:41:44 +00:00
Wez Furlong a3cda3b32d Hopefully fix the other warnings that my last warning-fixing commit caused. 2002-09-23 15:21:16 +00:00
Sascha Schumann 7915f83342 (PHP touch) Remove an extraneous time() call.
Yasuo added this line in rev 1.90 for no apparent reason.
2002-09-23 14:59:24 +00:00
Wez Furlong ad4afdf827 fix some warnings. 2002-09-23 14:50:21 +00:00
Sebastian Bergmann fd329d2cd1 Fix warning. 2002-09-23 14:20:02 +00:00
Zeev Suraski 85f4abfdac Fix bug #19525 2002-09-23 14:18:42 +00:00
Sascha Schumann ff12826fc1 (php_get_session_var) Always return FAILURE if no data source was found.
Noticed by: Sebastian Bergmann
2002-09-23 14:04:50 +00:00
Wez Furlong 9e84b3d5b5 Revise buffer/seek code a little.
Tidy up user streams even more.
Make test case quite aggressive.
2002-09-23 13:22:10 +00:00
Zeev Suraski 2f4ed252de Compat fix 2002-09-23 12:10:07 +00:00
Zeev Suraski d31604997b We leak quite a few things intentionally, if you want to debug it - enable
explicitly please..
2002-09-23 11:35:22 +00:00
Ilia Alshanetsky 8a1556b3a1 Fixed bug #17662 2002-09-23 04:10:25 +00:00
Jason Greene a8ca9932f4 Implement contstants on win32
@Implement platform independant socket error constants, which benefits error handling
2002-09-23 03:34:21 +00:00
Wez Furlong 4d8a07d529 Implement read buffering in streams.
Eliminate similar code from network.c.
Implement fgets equivalent at the streams level, which can detect
the mac, dos and unix line endings and handle them appropriately.
The default behaviour is unix (and dos) line endings.
An ini option to control this behaviour will follow.
# Don't forget to make clean!
# I've done some testing but would appreciate feedback from
# people with scripts/extensions that seek around a lot.
2002-09-23 01:47:04 +00:00
Sascha Schumann 625e7b202b Use generic getnameinfo for address-to-name translation, if available.
This adds support for IPv6 addresses.
2002-09-23 00:49:12 +00:00
1664a7c18f ChangeLog update 2002-09-23 00:33:28 +00:00
Ilia Alshanetsky e489ee946e Fixed bug #19395 2002-09-22 18:30:38 +00:00
Derick Rethans 9e9e7c677a - update project file (no precompiled headers) 2002-09-22 18:09:27 +00:00
Derick Rethans d52983dfab - Unbreak build 2002-09-22 16:23:44 +00:00
James Cox b1b0230e6d typo 2002-09-22 16:14:11 +00:00
46d144fe80 NEWS update 2002-09-22 00:35:39 +00:00
f3a0c7e34b ChangeLog update 2002-09-22 00:34:53 +00:00
Derick Rethans 9c6f744649 - Fix ZTS build 2002-09-21 18:25:04 +00:00
Ilia Alshanetsky 9951582e48 news about various strip_tags() fixes. 2002-09-21 17:48:53 +00:00
Ilia Alshanetsky fda169417f Added a test script for strip_tags() function. 2002-09-21 17:34:45 +00:00
Ilia Alshanetsky 8fc94a082f Fixed bug #7472 as well as many other bugs with strip_tags implementation. 2002-09-21 17:34:06 +00:00
Sascha Schumann c74f96333f Immediately unmap /nocache/ entries, so that the mmc cache does not get
polluted too much.
2002-09-21 17:23:15 +00:00
Andrey Hristov 9ee1ce156f ws fixes.
#hope not to be flamed :)  what a wonderful day.
2002-09-21 16:10:33 +00:00
Ilia Alshanetsky fd094b5b1e Fixed bug #15038, original patch by: phpman@toowards.com 2002-09-21 15:42:33 +00:00
Ilia Alshanetsky 78f3ad40a8 Fixed bug #12934
locatime() now returns an error message when passed a negative value.
2002-09-21 15:41:20 +00:00
Sascha Schumann 30f038be18 Add '+' modifier.
+      A sign (+ or -) always be placed  before  a  number
              produced by a signed conversion.  By default a sign
              is used only for negative numbers. A + overrides  a
              space if both are used.
2002-09-21 15:08:59 +00:00
Markus Fischer bcadd534ee - Forgot to add an extra space. 2002-09-21 15:03:24 +00:00
Andrey Hristov 9980cf5f53 Test case for array_intersect() and array_intersect_assoc() 2002-09-21 14:50:55 +00:00
Andrey Hristov a920f00479 New function added - array_intersect_assoc() similar to array_intersect()
but the keys are also used in the comparison. So the result is a subset of
the result of array_intersect().
Test will be committed too.
2002-09-21 14:50:04 +00:00
Andi Gutmans 21e9bc0fb3 - Someone screwed this up. 2002-09-21 13:01:08 +00:00
Tal Peer 12ef3d3f6b Changed version from NO_VERSION_YET to 0.1
@ - Fixed compilation errors when compiling with the fribidi extension (Bug #16414) (Tal)
2002-09-21 10:58:46 +00:00
Sascha Schumann e20c6c8e9c Because track vars are always initialized, get_session_var failed
to work in the register_globals=1 case.

It is now possible again to store session variables in global vars.
2002-09-21 05:46:32 +00:00
Zeev Suraski b23adfb43b Fix double initialization 2002-09-21 01:53:15 +00:00
46fa29dcdd ChangeLog update 2002-09-21 00:33:33 +00:00
Derick Rethans a4734a1b29 - Fix line-endings
- Changed afxres.h to winres.h to make it compile when MFC is not installed
  (see http://www.winprog.org/tutorial/errors.html,
  "Fatal error RC1015: cannot open include file 'afxres.h'.")
2002-09-20 20:15:24 +00:00
Sander Roobol 90407dbf3e Changing the magic_quotes_gpc setting has no effect at USER level
# this partially fixes the #19526 shit
2002-09-20 18:07:48 +00:00
foobar a45e53b02d fix typo 2002-09-20 15:42:23 +00:00
Martin Kraemer c54b79bdd9 Since the cyrus extension prints only one line, and no subsequent info,
it should have a similar appearance as the other one-liners.
Use php_info_print_table_row() instead of php_info_print_table_header(),
as in the other extensions.
2002-09-20 15:39:50 +00:00
Ilia Alshanetsky bc8eda5385 Fixed bugs #12989 and #12120 2002-09-20 11:48:47 +00:00
Sebastian Bergmann 31fe6743d4 Sync MSVC project files. 2002-09-20 05:39:16 +00:00
foobar 26fb2879d5 Added check for yaz version into configure. 2002-09-20 02:46:38 +00:00
Ilia Alshanetsky f119fd6498 Fixed bug #19487 2002-09-20 01:25:55 +00:00
foobar 4a39f70a9a Added missing convert_to_* funcs. (should fix some crashes) 2002-09-20 00:47:00 +00:00
c2d899e0dd ChangeLog update 2002-09-20 00:35:19 +00:00
Derick Rethans 5acf8709c2 - Make Colin happy 2002-09-19 22:23:56 +00:00
Colin Viebrock 14a6cc8847 Change phpinfo() to use CSS styling instead of HTML code.
It doesn't render as nicely as it used to on older browsers, but it
does result in smaller files, and opens the door to using your own CSS
to style it differently.

There is a patch to Zend/zend_ini.c, but I don't have enough Karma, so
Derick has the patch.
2002-09-19 21:57:25 +00:00
Colin Viebrock cd47bf286f change my email address 2002-09-19 21:51:34 +00:00
Ilia Alshanetsky ae5222ac23 Fixed bug #19504
Alligned 'Enable sysvmsg support' message.
2002-09-19 20:14:58 +00:00
Derick Rethans cf07c698d1 - Align configure --help messages 2002-09-19 20:14:35 +00:00
Ilia Alshanetsky a694fa9ca7 Fixed bug #19313
Fixed argument count check for system/exec/passthru functions
Added a check to system/exec/passthru functions to make sure execution
parameter is not blank before attempting to execute it.
2002-09-19 18:59:32 +00:00
Ilia Alshanetsky 9259c4e598 Fixed bug #19414 2002-09-19 18:22:51 +00:00
Derick Rethans 6f0db0889f - Add fribidi extension 2002-09-19 17:11:59 +00:00
Zeev Suraski aaf8d48fc3 Fix the last part of bug #13982 (ignore_user_abort() settings were 'leaking'
between requests)
2002-09-19 16:01:53 +00:00
Zeev Suraski bd115087e3 MFZE1 - connection_status() fix 2002-09-19 15:58:01 +00:00
Zeev Suraski 3ae3eb06e9 Fix connection_status() 2002-09-19 15:54:23 +00:00
Zeev Suraski 8a003f8021 Fix non ZTS build 2002-09-19 15:15:39 +00:00
Zeev Suraski c29f5d6e9d Fix that obscure crash in Debug_TS mode 2002-09-19 15:12:20 +00:00
Dan Kalowsky f585f6b5d7 adding ODBC todo's 2002-09-19 12:49:23 +00:00
Adam Dickmeiss 05aa5e6193 Remove compatibility for old YAZ versions (use ZOOM API only) 2002-09-19 12:20:07 +00:00
Adam Dickmeiss a9b2e812df New option for yaz_connect: charset 2002-09-19 10:18:44 +00:00
Sebastian Bergmann 4cdd5b4f73 Remove obsolete directory. 2002-09-19 09:09:28 +00:00
Sascha Schumann d964e73160 Add support for cdb-0.75
The install_cdb.sh script fills the gap of installing header files and
creating a cdb library which programs can link against.
2002-09-19 04:18:20 +00:00
Dan Kalowsky 25a908f41a white space fix 2002-09-19 02:32:48 +00:00
532362e7f4 ChangeLog update 2002-09-19 00:34:48 +00:00
Zeev Suraski 5fcae67e9d Fix the thread-safe initialization of the ZE2. This should solve some
sporadic crashes, as well as the problem with the built-in constants.
2002-09-18 22:16:22 +00:00
Zeev Suraski f2aa45d234 Remove dead code 2002-09-18 22:15:02 +00:00
Zeev Suraski 6e9f24cf6a Fix debug build options (looks like VC doesn't maintain indentation in the
.dsp...  Sorry Sebastian :)
2002-09-18 22:08:35 +00:00
Zeev Suraski 76312b4508 another startup initialization fix - only ISAPI and CGI SAPI's tested,
minor compile buglets might occur in other SAPIs, but should be trivial
to fix...
2002-09-18 21:57:42 +00:00
James Cox 70f17979fb white background please 2002-09-18 21:56:00 +00:00
Ilia Alshanetsky 0dddad02fa Fixed bug #19446 2002-09-18 21:34:30 +00:00
Ilia Alshanetsky 869c42a511 Added additional handlers for compressed swf files, which require
entire file to be downloaded for successful decompression.
2002-09-18 20:37:24 +00:00
Zeev Suraski 7dfa439185 Add useful debugging function 2002-09-18 14:08:07 +00:00
Dan Kalowsky 3ae9127b46 Patch for Bug #19402 provided by Kevin Way (kevin.way@overtone.org) 2002-09-18 11:57:17 +00:00
Wez Furlong ff7bece5bb Tidy up some user stream code.
Add a small test case (not yet complete).
2002-09-18 10:15:40 +00:00
Hartmut Holzgraefe f8358b44d1 setlocale() will now accept multiple locale arguments, first match wins 2002-09-18 07:55:30 +00:00
01f9c2ad14 ChangeLog update 2002-09-18 00:34:20 +00:00
Tal Peer 21ceacc487 # err.. fix comment 2002-09-17 19:30:06 +00:00
Tal Peer 10cabf5259 # Fixed proto and header of log2vis() 2002-09-17 18:08:45 +00:00
Tal Peer e9ccb81903 * The second argument of
fribidi_log2vis now accepts a constant.
The old way (using strings) is still available
but deprecated.
2002-09-17 16:27:27 +00:00
Zeev Suraski 91b0d03346 Add tracking for hashtable allocation 2002-09-17 14:04:37 +00:00
Hartmut Holzgraefe 4e6635742d it should not only work for the failure case
but also not fail (segfault) on the working case
2002-09-17 13:54:40 +00:00
Hartmut Holzgraefe c5d4be214c stupid lino-typo .... :( 2002-09-17 12:59:36 +00:00
Zeev Suraski 71126a21bc ZE2 fix 2002-09-17 12:44:10 +00:00
Zeev Suraski aa07082a5c whitespace 2002-09-17 12:42:58 +00:00
Zeev Suraski 711be83d49 MFZE1 - threading fix 2002-09-17 12:42:11 +00:00
Hartmut Holzgraefe 0c7d9c3742 headers_sent() may now return information about where output started
using the optional $file and $line reference parameters
2002-09-17 12:37:26 +00:00
Zeev Suraski 31429c60db Call zend_post_startup() - use local copies of the function, class and
constant tables in the startup thread
2002-09-17 09:07:10 +00:00
cab024e411 ChangeLog update 2002-09-17 00:33:53 +00:00
Tal Peer 10a460622f oops. 2002-09-16 19:08:45 +00:00
Tal Peer d2969d4e3d Added myself 2002-09-16 18:35:26 +00:00
foobar 33b827d35f tuning 2002-09-16 15:49:18 +00:00
foobar aef1c680bc - Require Fribidi 0.10.4 -> no more glib needed.
- Cleaned up a bit.
2002-09-16 15:31:32 +00:00
foobar 55362251c8 Should fix #19425 2002-09-16 13:13:52 +00:00
Anantha Kesari H Y 697e0009c8 Updatation of symbols exported for NetWare 2002-09-16 11:48:48 +00:00
Andrei Zmievski a35c61af3c MFZE1 2002-09-16 01:36:48 +00:00
78a17be5e5 ChangeLog update 2002-09-16 00:35:19 +00:00
Ilia Alshanetsky 94aaba773c Make zend actually strip comments. Bug #18151 2002-09-15 23:37:26 +00:00
Ilia Alshanetsky 1074fca0ae Make zend return a proper exit error code when it encounters a parse error. 2002-09-15 23:34:03 +00:00
Shane Caraveo 9f85d17f81 fix line endings 2002-09-15 20:45:46 +00:00
Tal Peer f574e7cffa * More work on returning errors properly and freeing resources 2002-09-15 09:58:35 +00:00
Sebastian Bergmann cd4261a723 For a change, Sebastian makes Andi happy. :-) 2002-09-15 09:52:51 +00:00
Tal Peer e0247cbd6e *Fixed compilation errors and enhanced the code 2002-09-15 09:32:29 +00:00
Andi Gutmans f8ebfe7c51 - Hopefully fix problem with __autoload not working well with inherited classes.
- There might still be some weird situations I haven't thought of.
2002-09-15 07:54:01 +00:00
Andi Gutmans 7f6c2da50a - WS fix - "while (" instead of "while(" 2002-09-15 07:46:20 +00:00
Andi Gutmans 43139dc755 - WS - Always use "if (" and not "if(" 2002-09-15 07:45:26 +00:00
Andi Gutmans fcc0ce7eec - WS 2002-09-15 07:41:23 +00:00
Jon Parise 26e6252e43 Line up the 'configure --help' output. 2002-09-15 01:39:30 +00:00
3830726207 ChangeLog update 2002-09-15 00:33:27 +00:00
Wez Furlong 348b31f1df PCRE news 2002-09-15 00:07:01 +00:00
Wez Furlong a2c6a6c186 Update bundled pcrelib to 3.9.
# Tested under Linux only
2002-09-14 14:45:35 +00:00
Jan Lehnardt 53b0623878 - fix typo in comment 2002-09-14 12:09:47 +00:00
Andi Gutmans 288e9b1793 - Don't think we need the do { } while (0) here 2002-09-14 06:38:48 +00:00
f40ef54081 ChangeLog update 2002-09-14 00:35:56 +00:00
Andrei Zmievski a92e347e53 Let's take Console_Getopt to stable release. 2002-09-13 23:34:21 +00:00
Ilia Alshanetsky 687312be41 Do not create the destination file, if opening of the source file failed
during copy().
2002-09-13 13:34:06 +00:00
61043c0cdf NEWS update 2002-09-13 00:35:48 +00:00
a146ec218e ChangeLog update 2002-09-13 00:34:26 +00:00
Stefan Esser 714eb8069a made new ssl activate function the default. 2002-09-12 21:52:09 +00:00
foobar fb9bd8d20a ws fix 2002-09-12 21:42:33 +00:00
Sebastian Bergmann c7606f1285 Meaningful Custom Build Step information. 2002-09-12 17:11:55 +00:00
Sebastian Bergmann cb69b62d6d Fix logic. 2002-09-12 17:02:12 +00:00
Marcus Boerger 96f7bccebd Update info and synch example test. 2002-09-12 14:25:30 +00:00
Derick Rethans 861f68834a - Fixed linker error when HAVE_STRFTIME was not set 2002-09-12 11:18:47 +00:00
Thies C. Arntzen b905e40e92 @- OCIResult() could return garbage if called on empty result-sets. (thies)
# fix #19364
2002-09-12 09:48:03 +00:00
Andrey Hristov 23d3cd79c1 Fixing my zts fix.
#Sorry Edin
2002-09-12 08:20:37 +00:00
Andrey Hristov ad92434638 Removed magic numbers about the behavior of php_array_diff - proposed by
Andi and Jon Parise.
#It is strange that I commited ZTS code but after that Edin fixed ZTS build
#when I updated - it wasn't ZTS. hmmm. anyway fixing ZTS build.
2002-09-12 08:04:42 +00:00
e1d0acc1f5 NEWS update 2002-09-12 00:34:41 +00:00
95dd538219 ChangeLog update 2002-09-12 00:33:37 +00:00
Edin Kadribasic ad34142e97 My compiler likes it like this. 2002-09-11 23:10:58 +00:00
Edin Kadribasic 705e72f363 Fix ZTS build. 2002-09-11 23:09:11 +00:00
Sterling Hughes 9f4658427f virtual filepath fix, don't know why i bother, the module isn't threadsafe
and never will be, but still...
2002-09-11 22:43:58 +00:00
Sterling Hughes b34bec20a7 max this use the virtual_filepath() function and feel all threadsafe and
wholesome inside
2002-09-11 22:40:56 +00:00
Derick Rethans c57b3c6533 - Un-deprecating mysql_escape_string
#- This will remove the annoying notices, while this function is used in
#  a lot of scripts. There is not reason why we should discontinue it's use
#  as it works perfect for about 99% of the time.
2002-09-11 21:06:52 +00:00
Marcus Boerger 54e066b20b Unlink output files even if test is skipped. 2002-09-11 19:42:59 +00:00
Derick Rethans aaf920f9d5 - Little whitespace changes 2002-09-11 18:40:56 +00:00
Andrey Hristov 2b710f7e5c Regression test for array_diff() and array_diff_assoc(). The latter is newly
introduced.
2002-09-11 18:16:11 +00:00
Andrey Hristov afdfe38ef3 New function added : array_diff_assoc() . Like array_diff() but does
additional checks on key values. Test script will be added too.
#My first patch . it feels strange :)
2002-09-11 18:13:48 +00:00
foobar eb3b486f21 For now, check only when not using bundled GD lib. 2002-09-11 16:40:35 +00:00
Sander Roobol 1715acfdc4 Fix configure 2002-09-11 16:17:33 +00:00
foobar e54bc671dd Added build test. Bug: #19345 2002-09-11 15:34:44 +00:00
Dan Kalowsky 6fe296aa69 Patch for Bug #19341 submitted by list@firehawksystems.com 2002-09-11 15:05:06 +00:00
foobar 746c147670 tok tok.. 2002-09-11 14:51:09 +00:00
Andrei Zmievski 3f4a2b1b6a @- Added ability to use Perl-style ${n} subpattern references in the
@  replacement string for preg_replace(). Takes care of bug #18442. (Andrei)
2002-09-11 14:41:25 +00:00
foobar daf6a5ab1a ws fix 2002-09-11 14:40:52 +00:00
foobar be52343850 fix proto 2002-09-11 14:24:27 +00:00
foobar a254506a3c ws fix 2002-09-11 14:21:39 +00:00
Anantha Kesari H Y e75aae81fc Removed unnecessary code that was added for NetWare 2002-09-11 10:28:22 +00:00
Anantha Kesari H Y a819349c61 Changed the licence to the one used by PHP Group 2002-09-11 10:16:08 +00:00
Anantha Kesari H Y d3642b5488 NetWare related changes/modifications 2002-09-11 09:30:01 +00:00
fdf1c12195 NEWS update 2002-09-11 00:34:28 +00:00
a0620f711d ChangeLog update 2002-09-11 00:33:52 +00:00
Edin Kadribasic 333b01b041 Fixed ZTS build. 2002-09-10 22:36:43 +00:00
Andrei Zmievski dd7cf22443 @- Fixed array_merge_recursive() to avoid problems with merging cyclical
@  arrays (bug #16064). (Andrei)
2002-09-10 18:34:16 +00:00
Andrei Zmievski 1f6770ddae *** empty log message *** 2002-09-10 17:12:53 +00:00
James Cox 022e83908f moved vpopmail to pecl.
# with original authors permission, and i am working on it a bit now.
2002-09-10 13:48:13 +00:00
Wez Furlong 49d77dbc01 Patch for BSD-ish systems from Melvyn Sopacua <msopacua@idg.nl>,
slightly modified.
2002-09-10 13:04:08 +00:00
Stanislav Malyshev 7fe216e27b MFZE1 2002-09-10 08:37:18 +00:00
Stanislav Malyshev ca6717e348 MFZE1 2002-09-10 08:35:50 +00:00
Stanislav Malyshev 7fca47f1cf MFZE1 2002-09-10 08:18:53 +00:00
Stefan Esser 184323cbe5 php_url_parse() replaces controlchars with '_' now. This stops fopen wrapper
CR/LF injection issues.
2002-09-10 08:06:25 +00:00
Jason Greene 565492248a Fix crash bug and memory leak in vectors
#still need to revisit how these are done, i.e. they are not binary safe
2002-09-10 04:12:55 +00:00
e94b325e90 NEWS update 2002-09-10 00:34:15 +00:00
513a15b219 ChangeLog update 2002-09-10 00:33:44 +00:00
foobar f1d88bbec3 consistent.. 2002-09-09 22:28:16 +00:00
Stig Bakken 48f28ac0b3 * upgrade DB and Mail packages 2002-09-09 22:11:13 +00:00
Stig Bakken 91a97eec5d * 0.91 changelog 2002-09-09 21:56:54 +00:00
Stig Bakken e42c5142c3 * no longer needed 2002-09-09 21:50:58 +00:00
Stig Bakken b5df9f32de * more consistent output 2002-09-09 21:45:40 +00:00
Stig Bakken d4c4836f05 * remove debug output 2002-09-09 21:42:32 +00:00
Stig Bakken f73c1eb137 * how did those DOS newlines get here? 2002-09-09 21:41:32 +00:00
Dan Kalowsky e1fe1e189c missed one section for #15630 2002-09-09 21:01:33 +00:00
Christian Stocker ab40c954fb chregu: Can you please use the new php_error_docref in new code? 2002-09-09 20:32:49 +00:00
Christian Stocker 2375745ab4 Fix for bug 19266 (don't allow appending nodes from 2 different documents) 2002-09-09 20:21:31 +00:00
Andrei Zmievski 2c6154d7aa @- Added ability to extract() variables as references via OR'able EXTR_REFS
@  flag. (Andrei)
2002-09-09 20:05:20 +00:00
Wez Furlong 8a85e0f614 put that back... 2002-09-09 19:11:35 +00:00
Wez Furlong 6bc7e97161 Revert Dericks accidental commit :-)
Add an Id tag so we can see at a glance who is to blame.
2002-09-09 19:09:23 +00:00
Dan Kalowsky bd7144a803 Updated for OCI8 patch 2002-09-09 19:06:41 +00:00
Dan Kalowsky 32a03b3aed Patch for Bug #18640 (submitted by michael.mauch@gmx.de) 2002-09-09 19:03:51 +00:00
foobar faf9934272 Version check for Sablotron. 2002-09-09 18:17:12 +00:00
Georg Richter a9c64d174b - renamed rollback function to _restore_connection_default
- in _restore_connection_default:
  - unset the selected database (thx to Paul DuBois)
  - set session variable autocommit to default (=1)
2002-09-09 15:53:05 +00:00
foobar bdcd8e3f03 Added the 4.2.3 entries. 2002-09-09 14:08:20 +00:00
Anantha Kesari H Y 3313593ff3 NetWare related changes/modifications 2002-09-09 12:03:36 +00:00
Anantha Kesari H Y 3798528753 NetWare related changes/modifications 2002-09-09 11:43:50 +00:00
Anantha Kesari H Y 1b18be126d NetWare related changes/modifications 2002-09-09 11:31:03 +00:00
Anantha Kesari H Y 1e09610f45 NetWare related changes/modifications 2002-09-09 11:23:11 +00:00
Anantha Kesari H Y fa94fc6384 NetWare related changes/modifications 2002-09-09 11:17:40 +00:00
Anantha Kesari H Y e4b9df9585 NetWare related changes/modifications 2002-09-09 10:56:28 +00:00
Anantha Kesari H Y 97a601fc15 NetWare related changes/modifications 2002-09-09 10:12:44 +00:00
Derick Rethans c1f6b2efbd - Consistent use of macros 2002-09-09 09:44:52 +00:00
Stanislav Malyshev 44c2c39188 remove comment 2002-09-09 08:59:18 +00:00
Derick Rethans 612d5b99bc - spaces instead of tabs 2002-09-09 07:54:11 +00:00
Derick Rethans 8e7147a1cb - Use PHP_ instead of ZEND_ 2002-09-09 07:52:39 +00:00
e15e0336de ChangeLog update 2002-09-09 00:33:41 +00:00
Jon Parise d6b4462a80 Reword item 10 for greater clarity. 2002-09-08 23:00:31 +00:00
Yasuo Ohgaki ab0da7dc33 It seems we're better to mention about missing functions.
PHP_FUNCTION -> ZEND_FUNCTION
2002-09-08 22:38:57 +00:00
Stefan Esser cbf5e3ca06 Added possibility to reuse an old SSL session id.
Ugly but needed for f.e.: debians ftpd-ssl
2002-09-08 22:26:11 +00:00
foobar bba274b9e1 s/send/sent/ 2002-09-08 21:48:59 +00:00
foobar 16f793f876 nice..nice.. 2002-09-08 21:06:22 +00:00
Jon Parise dc056bf2d0 Capitalization 2002-09-08 20:59:53 +00:00
Shane Caraveo 2c6dca5a6e someone missed code requiring ssl 2002-09-08 20:52:03 +00:00
Stefan Esser 8dbcb26fd0 ftp(s) fopen() wrapper does no longer ignore the ip returned by PASV. 2002-09-08 19:35:42 +00:00
Stefan Esser 77f750e7b4 Added ftps:// fopen() wrapper to NEWS. 2002-09-08 19:15:45 +00:00
Stefan Esser 9fca868f90 Control connection gets closed in ssl mode now, too. 2002-09-08 19:11:07 +00:00
Dan Kalowsky 7dd7d39385 Fix for bug #19290
# Untested
2002-09-08 18:13:56 +00:00
Stefan Esser ec4a3fa68e Added EXPERIMENTAL ftps fopen wrapper.
For now this leaks the control connection stream because you cannot
close the control connection in ssl mode before you read the data.
2002-09-08 16:45:32 +00:00
Andi Gutmans 2b3ba02719 - Simplify makedist 2002-09-08 15:38:44 +00:00
Andi Gutmans e3ca0ff0b8 - Prepare for alpha 3 2002-09-08 15:33:54 +00:00
Sander Roobol 8a9820331c Fix typo 2002-09-08 08:08:35 +00:00
Yasuo Ohgaki 71fb0299d1 Added missing charset. 2002-09-08 01:06:29 +00:00
b6c2275353 NEWS update 2002-09-08 00:34:55 +00:00
a37e35e9b3 ChangeLog update 2002-09-08 00:33:57 +00:00
Yasuo Ohgaki b83255aab0 Fix last commit. This line isn't supposed to be replaced. 2002-09-08 00:27:05 +00:00
Wez Furlong 505044f0af Mention php://output wrapper. 2002-09-07 23:30:47 +00:00
Jan Lehnardt de3b5c3631 - cosmetics 2002-09-07 23:14:22 +00:00
Yasuo Ohgaki 16125ec2bf This should fix var handling problems finally. 2002-09-07 22:51:39 +00:00
Ilia Alshanetsky 407088509f Added a check to ensure user_agent header is not sent if user_agent value
if blank.
2002-09-07 21:57:11 +00:00
Yasuo Ohgaki 69cc47358e Fixed errno hanlding. Patch by Moriyoshi Koizumi <readjust@deneb.freemail.ne.jp> 2002-09-07 21:08:47 +00:00
Yasuo Ohgaki 17e0d9c642 MFB 2002-09-07 21:04:14 +00:00
Wez Furlong 3df412cf9b Fix a couple of bad pointer indirections (oops).
Lets stick to a single category of "http" for the "user_agent"
context override.
2002-09-07 20:58:30 +00:00
Wez Furlong 97f134cb45 fix warning 2002-09-07 20:54:14 +00:00
foobar cb8493b2fb This was not a good idea. 2002-09-07 19:09:09 +00:00
Wez Furlong 30082fdb68 Implement php://output wrapper, which can be used to write to the output
buffer via PHPWRITE.
2002-09-07 19:00:46 +00:00
Wez Furlong 759a0068aa Tag user streams as being URLs, so that safe mode restrictions
will come into play.
2002-09-07 18:59:18 +00:00
Hartmut Holzgraefe 431b903e97 WebDAV MKCOL can have post data body, see rfc2518 8.3.1 2002-09-07 17:48:51 +00:00
Sterling Hughes ce686a63de commit the correct/up-to-date version 2002-09-07 15:55:04 +00:00
Sterling Hughes 91df221ab7 @ Made the User-Agent that php's fopen wrappers send, configurable via
@ php.ini or via a stream context. (Sterling)

The stream context is untested, but it should/could work :)  Either way it
doesn't make the rest of the code bad. Wez -- please take a looksie for me
:)
2002-09-07 15:45:29 +00:00
Sterling Hughes c0ed6edf41 add the user_agent ini option. 2002-09-07 15:43:08 +00:00
Sergey Kartashoff d96a5d8c5c - New mnogosearch extension features has been added to group results
by site.
- Mnogosearch module fixes and cleanups.
2002-09-07 14:19:52 +00:00
Yasuo Ohgaki b65073d3ea Fixed array var handling. Patch by Moriyoshi Koizumi <readjust@deneb.freemail.ne.jp> 2002-09-07 14:07:05 +00:00
Sander Roobol 86e68f34f5 Fix build with bundled gd when builddir!=srcdir 2002-09-07 12:53:05 +00:00
Yasuo Ohgaki 27ce2cfa24 Fixed trancated value bug when array is used 2002-09-07 09:23:39 +00:00
Ilia Alshanetsky 3c95ac6b4f Fixed a massive memory leak that occurs when an opened webpage returns
a non 200 return code.
2002-09-07 07:13:43 +00:00
6c72328bfc ChangeLog update 2002-09-07 00:33:46 +00:00
foobar 1a747ada4f Fix the errors reported by Melvyn 2002-09-06 17:18:16 +00:00
Georg Richter 0797d5f989 fixed typo 2002-09-06 12:11:30 +00:00
James Cox 5d4080ec38 remove uneeded def 2002-09-06 10:34:30 +00:00
Sascha Schumann 702d7afc3c Reenable pwrite/pread support
The old checks supposed that pread/pwrite worked, if a declaration was
found in <unistd.h>.  We now actually check whether they work successfully
before using them.
2002-09-06 10:27:26 +00:00
Anantha Kesari H Y 8f14aafe97 NetWare related changes/modifications 2002-09-06 10:20:39 +00:00
Derick Rethans 828c2a9c46 - argh... this is getting annoying 2002-09-06 07:47:49 +00:00
Anantha Kesari H Y 338332c799 NetWare related changes/modifications 2002-09-06 07:44:30 +00:00
Anantha Kesari H Y 15bf7382c2 Main functions declarations for NetWare 2002-09-06 07:32:34 +00:00
Anantha Kesari H Y a270b1829e Main functions for NetWare 2002-09-06 07:31:07 +00:00
Derick Rethans dc3ea09991 - Please do not use spaces for indentation!
- Removed redundend ifdefs
2002-09-06 07:30:51 +00:00
Anantha Kesari H Y dc5d3f5585 NetWare related additions/modifications 2002-09-06 07:27:27 +00:00
Anantha Kesari H Y 0ea12a47ab NetWare related additions/modifications 2002-09-06 06:39:57 +00:00
5800ae1db2 ChangeLog update 2002-09-06 00:36:15 +00:00
Joseph Tate 59ac50171b #Added positions files 2002-09-05 22:38:07 +00:00
Dan Kalowsky e560822fa7 silence a windows build warning 2002-09-05 21:29:39 +00:00
foobar 71ecad8fbe Remove unnecessarily commented code. 2002-09-05 21:16:34 +00:00
foobar d94758bec2 Remove unnecessary commented code. 2002-09-05 21:12:55 +00:00
foobar d1009fe707 Using --with-zlib-dir should work now with phpized builds too. 2002-09-05 20:13:20 +00:00
Derick Rethans 2b6ba50601 - Unbreak build 2002-09-05 18:11:33 +00:00
Stanislav Malyshev c2af55fb18 quick-n-dirty inheritance support for __handlers 2002-09-05 17:34:16 +00:00
Derick Rethans 99850fcc28 - Tabs for indentation 2002-09-05 14:36:33 +00:00
Derick Rethans 5c0b6f7fa8 - Please use tabs for indentation 2002-09-05 14:32:47 +00:00
Anantha Kesari H Y 8b8f1e0590 NetWare related additions/modifications 2002-09-05 14:25:07 +00:00
Ilia Alshanetsky eb58557e1c Fixed a buffer overflow that occurs when wordwrap is unable to calculate
the correct number of times the multi-byte break needs to be inserted into
the string.
2002-09-05 14:00:28 +00:00
Edin Kadribasic d24705125d Added UTF-8 support to pcre on windows as suggested by Wez Furlong. 2002-09-05 13:36:32 +00:00
Anantha Kesari H Y 96a4626b68 NetWare related additions/modifications 2002-09-05 12:09:57 +00:00
Anantha Kesari H Y 3e867bfdb1 NetWare related additions/modifications 2002-09-05 12:03:43 +00:00
Anantha Kesari H Y bbc162d164 NetWare related additions/modifications 2002-09-05 11:50:43 +00:00
Anantha Kesari H Y 76d94e57ab NetWare related additions/modifications 2002-09-05 11:35:10 +00:00
Anantha Kesari H Y 233e06fb0d File used by extensions like LDAP, MySQL etc. 2002-09-05 11:30:14 +00:00
Derick Rethans 60dcc761ac - php_error -> php_error_docref
- corrected proto of implode() (to match the docs)
2002-09-05 11:29:31 +00:00
Anantha Kesari H Y 98a1d774df NetWare makefile for LDAP Extension 2002-09-05 11:26:05 +00:00
Anantha Kesari H Y ad844f0b1b NetWare related additions/modifications 2002-09-05 11:22:20 +00:00
Hartmut Holzgraefe 101d155baa in stristr:
this check was in the wrong place, the real version was some lines
below, this one assumed the type was 'string' in any case
now it looks like strstr
2002-09-05 11:12:01 +00:00
Anantha Kesari H Y 77e2ed4834 NetWare related additions/modifications into FTP files 2002-09-05 10:13:27 +00:00
Anantha Kesari H Y 6c51af03e5 Batch file to set build type (Release/Debug) and Apache version to be built 2002-09-05 09:00:57 +00:00
7855332177 NEWS update 2002-09-05 00:35:39 +00:00
e5fd005fa9 ChangeLog update 2002-09-05 00:34:49 +00:00
foobar c40262ef99 This _should_ fix those builds where gd.h might be in many places in
the system. Not guaranteed, but now the path for the found gd.h is always
first in the includes.
2002-09-05 00:24:33 +00:00
foobar ba057e9bf3 Fix build with GD < 2.0.x 2002-09-05 00:22:40 +00:00
Yasuo Ohgaki 9e252a9616 php_error -> php_error_docref 2002-09-04 22:25:13 +00:00
Stefan Esser 27e2bc2f55 This 2 lines should have been removed when the header() code was rewritten. 2002-09-04 20:27:35 +00:00
foobar 3bf7519210 @- Added --disable-all configure option. (Jani) 2002-09-04 18:47:28 +00:00
foobar dcf995c648 ws fix 2002-09-04 17:41:51 +00:00
foobar 25e91506cb Fix the shared build (nobody ever build this as shared?) 2002-09-04 17:40:36 +00:00
Sebastian Bergmann af4243b908 Whitespace fixes. 2002-09-04 16:50:01 +00:00
Marcus Boerger 0b25d07f15 Fix headers when default content type is used.
#THIS fixes the problems with error_log()
2002-09-04 15:30:56 +00:00
Stanislav Malyshev e8f6654663 remove dead code 2002-09-04 15:04:39 +00:00
Stanislav Malyshev 36c60cea38 Fix __call and add some docs 2002-09-04 15:03:41 +00:00
Martin Kraemer 20f85627f5 The sasl.h file is in .../include/sasl/ (at least in cyrus-sasl-2.1.6) 2002-09-04 14:41:29 +00:00
foobar f05db43a68 Fix bug: #19212 2002-09-04 14:30:36 +00:00
Zeev Suraski e32757ef4c This is way too verbose... Please enable it in your local .dsp settings if
you like it :)
2002-09-04 14:14:59 +00:00
Sebastian Bergmann 419321979d Don't build ext/overload with Zend Engine 2. 2002-09-04 13:55:52 +00:00
Dan Kalowsky e5324723d0 sniper claims its safe to take these out as well. 2002-09-04 13:52:41 +00:00
Dan Kalowsky 65df9d5127 taking out the PWRITE calls too 2002-09-04 13:51:08 +00:00
Dan Kalowsky 31fe6a549f This fixes Bug #19022 and #15983 2002-09-04 13:42:59 +00:00
Martin Kraemer ab2df38f3d Fix bogus test 2002-09-04 12:50:41 +00:00
Sebastian Bergmann 2711976f56 Fix ZTS build. 2002-09-04 12:49:30 +00:00
Sebastian Bergmann 42eebfc81a TBD: __call(), __get(), __set(). 2002-09-04 12:49:15 +00:00
Anantha Kesari H Y c3ff90aac2 Makefile to build for NetWare: extensions, main, netware & regex files 2002-09-04 12:22:57 +00:00
Anantha Kesari H Y a081452fee Batch file to build extensions and files under main, netware and regex folders 2002-09-04 12:13:27 +00:00
Anantha Kesari H Y 06e2fabc02 To include the NetWare config file 2002-09-04 11:20:18 +00:00
Stanislav Malyshev d8651c82cd Support for __get, __set and __call in classes.
This should work as follows: if class hasn't member with given name,
__get/__set is called. If class has no method with given name, __call is called.
__get/__set are not recursive, __call can be.
2002-09-04 09:07:58 +00:00
Yasuo Ohgaki 1f49fb1bcd Fixed mbstring.func_overload description. 2002-09-04 06:21:58 +00:00
Sebastian Bergmann 84c1bee585 Workaround for superfluous comma in var_export() result. 2002-09-04 05:46:16 +00:00
Sebastian Bergmann 7d85d01834 Let debug_backtrace() example print out the class name, if applicable, and the function/method arguments. 2002-09-04 05:35:20 +00:00
Yasuo Ohgaki 38ef35e5b0 Fixed undefiend referece at build time.
Fixed transilit test script.
Make fixes available on Windows.
Patch by Yoshimori Koizumi<readjust@deneb.freemail.ne.jp>
2002-09-04 05:17:16 +00:00
Dan Kalowsky 610b2b76d7 Fix for bug #19155 UNTESTED. Unfortunately I don't have a way to test it
hopefully the user will.
2002-09-04 04:24:54 +00:00
Dan Kalowsky 21e5f8ed77 No C++ comments, again! 2002-09-04 04:03:20 +00:00
Dan Kalowsky 4efc96d575 No C++ Comments 2002-09-04 03:57:59 +00:00
3c820b39d3 NEWS update 2002-09-04 00:35:09 +00:00
05d52abd27 ChangeLog update 2002-09-04 00:34:17 +00:00
foobar 639221694f Use zend_ini_string instead of the 'alias'. 2002-09-03 22:54:02 +00:00
Rasmus Lerdorf 86c4c1730e Check for uppercase function names in .def files - patch from David Viner 2002-09-03 20:57:20 +00:00
Thies C. Arntzen ca0a7c4323 nuke warning 2002-09-03 14:14:44 +00:00
Thies C. Arntzen db92641e32 nuke unneeded stuff 2002-09-03 13:53:05 +00:00
foobar 1c52f18fa2 This does not belong here as it was MFHd.. 2002-09-03 12:52:03 +00:00
Markus Fischer 472b2f0737 - Update 2002-09-03 11:41:29 +00:00
Zeev Suraski e801a99a50 MFZE1 2002-09-03 10:25:06 +00:00
Zeev Suraski 5f3e75a725 MFZE1 2002-09-03 10:06:13 +00:00
Derick Rethans 45a203b411 - Revert
#- Sorry... was too busy with it to notice discussion on php.dev
2002-09-03 09:57:27 +00:00
Derick Rethans 74049eb191 - MFH for: Apply rest of html errors fix (Patch by Jan Lehnardt <jan@php.net>) 2002-09-03 09:56:20 +00:00
Sebastian Bergmann cfad3c664f Add html_errors to zend_utility_values. Patch by Jan Lehnardt <jan@php.net>. 2002-09-03 09:41:41 +00:00
Rui Hirokawa ee2e4ed41f removed #ifdef for mbstring.encoding_translation. 2002-09-03 09:11:33 +00:00
Yasuo Ohgaki 582026fd64 Added mbstring.encoding_translation to php.ini-dist|recommended 2002-09-03 07:38:08 +00:00
Rui Hirokawa 9b33531910 *** empty log message *** 2002-09-03 05:20:40 +00:00
Rui Hirokawa 7678ada2b8 --enable-mbstr-enc-trans is abolished to prevent some problems about POST/GET/Cookie variables. the same functionality is controllable in php.ini option mbstring.encoding_translation (default:Off). 2002-09-03 05:18:20 +00:00
Andi Gutmans 1c5841d376 - Fix typo 2002-09-03 04:19:04 +00:00
3df0df50f4 ChangeLog update 2002-09-03 00:32:58 +00:00
Jan Lehnardt 298ae37e8c - prepare non-html phpinfo output for zend extensions 2002-09-02 20:44:01 +00:00
Markus Fischer f07b724620 - Enable strcoll() for win32 build
# Maybe I'm missing something. PHP has strcoll() since 4.0.5 but HAVE_STRCOLL
# was always only available under Unix, no one activated it for Win32 since
# then?
#
# Test to show it works:
# <? $a=array("a", "z", "ä"); setlocale(LC_ALL, "German"); usort($a, "strcoll"); var_dump($a); ?>
#
# Output:
# array(3) {
#   [0]=>
#   string(1) "a"
#   [1]=>
#   string(1) "ä"
#   [2]=>
#   string(1) "z"
# }
#
# Thanks to a comment found on the usort() page and to a dlcp post about a
# similar issue.
#
# Worth for a MFH for 4.2.3, anyone ?
2002-09-02 18:03:24 +00:00
Thies C. Arntzen 96ab23981c refine last patch. if the argument-stack is not consistent don't try to show
arguments. no call to zend_error is made as we might end up in an infinite
recursion if called from an error_handler.
so: if the arguments to functions aren't shown in debug_backtrace this is 'cause
the arument stack was not consistent when debug_backtrace was called.
2002-09-02 12:26:09 +00:00
Thies C. Arntzen 9afea7175c debug_backtrace() now checks the complete argument-stack for consistency. 2002-09-02 12:20:09 +00:00
Stanislav Malyshev c8a659f8f6 MFZE1 2002-09-02 09:13:53 +00:00
bf220ce104 ChangeLog update 2002-09-02 00:31:53 +00:00
Andi Gutmans f4e8b2c4e9 - Fix leak reported by "l0t3k" <cshmoove@hotmail.com> 2002-09-01 19:19:50 +00:00
Sergey Kartashoff e32f35eb4e - Udm_Cat_Path, Udm_Cat_List, Udm_Get_Doc_Count functions have been fixed
to work with mnogosearch-3.2.6 and later.
- Removed search words highlighting while getting document URL in
  mnogosearch extention
2002-09-01 14:11:46 +00:00
Sebastian Bergmann 714c19fe66 Per discussion on #php.bugs (+1 from at least Derick and Jani), revert double_buffering. 2002-09-01 11:33:19 +00:00
Stanislav Malyshev 73cf316a53 MFZE1 2002-09-01 08:30:39 +00:00
29e033cbb1 ChangeLog update 2002-09-01 00:31:23 +00:00
Jan Lehnardt 2334abeff4 - cosmetics 2002-08-31 21:43:54 +00:00
foobar c0d345ea5c Fix it back..(what was that commit????) 2002-08-31 14:04:29 +00:00
a2f44a409d ChangeLog update 2002-08-31 00:34:06 +00:00
80a76b4b12 Fixing up Changelog and NEWS for the past few days. 2002-08-30 15:45:12 +00:00
Adam Dickmeiss b18b6f3691 Bug fix: dont cache connection if proxy setting have changed 2002-08-30 13:26:41 +00:00
foobar 06fe943795 Fix shared build 2002-08-30 03:52:41 +00:00
foobar 4e34d6ce27 Fix bug: #19124, xmlrpc extension builds ok now as shared extension. 2002-08-30 02:57:13 +00:00
foobar 55b22b16a2 xpm.h is sometimes in /usr/include/X11 (or /usr/X11R6/include/X11) 2002-08-30 02:44:45 +00:00
foobar bda34955db Fix the build when bundled gd library is used 2002-08-30 02:41:52 +00:00
Jan Lehnardt 81dcd62bc2 - seperate registered streams.
#read: make sebastian happy ;)
2002-08-29 18:28:11 +00:00
Ilia Alshanetsky 7a7497e21b Fixed the \0 check in previous patch. 2002-08-29 15:58:33 +00:00
Ilia Alshanetsky 337448322f Fixed bug #18966 2002-08-29 15:44:00 +00:00
foobar e040302807 Remove unnecessary whitespace 2002-08-29 15:28:09 +00:00
Jan Lehnardt d6497fc96e - reenable "no value" output. thanks to sebastian for pointing that out. 2002-08-29 10:24:02 +00:00
Pierre Joye a00f439ff0 Hope to finnally got it, fixes notice (Thx to Sebastian) 2002-08-29 10:08:37 +00:00
Jan Lehnardt e1cac684df - fix ZTS build. thanks to edin. 2002-08-29 09:11:22 +00:00
Marcus Boerger 38247a7993 One zero to much 2002-08-29 08:32:41 +00:00
Derick Rethans 9d31d92712 - EXIF is about meta data from images, not for digital cameras 2002-08-29 05:36:42 +00:00
foobar 04bbf46957 Fix bug: #19159, mysql_field_count was available since 3.22.24 2002-08-29 01:17:24 +00:00
foobar 5911a581e0 I would have thought this was clear to everyone already.. 2002-08-29 00:56:13 +00:00
foobar 715615ea6b revert that undiscussed change until it is really agreed upon. 2002-08-29 00:55:24 +00:00
1bbfe1058b NEWS update 2002-08-29 00:17:56 +00:00
3324e38e8a ChangeLog update 2002-08-29 00:17:29 +00:00
Ilia Alshanetsky f387972a97 Fixed compile warning (unused variable)
Added a \n separator between Addition Modules
2002-08-28 23:19:59 +00:00
Jan Lehnardt 6676617693 - add phpinfo() support for CLI.
@phpinfo() support for CLI (jan)
2002-08-28 22:31:51 +00:00
Rasmus Lerdorf 89651dabde Description didn't match the function here 2002-08-28 22:14:42 +00:00
Marcus Boerger 562b78f422 Enable EXIF by default as discussed with Rasmus
@Made EXIF (digital camera) extension enabled by default. (Marcus)
2002-08-28 19:31:01 +00:00
Thies C. Arntzen eef3e66f1f debug_backtrace()
- make args passed to functions called vy call_user_function available again.
2002-08-28 15:05:15 +00:00
Christian Stocker 7f62a0c972 correct entry about XsltObject->result_dump_*() 2002-08-28 15:02:54 +00:00
Thies C. Arntzen b72069e859 debug_backtrace():
- make args work if called from the error_handler
- fix refcount for args
2002-08-28 14:49:15 +00:00
Thies C. Arntzen bdc35c9f2e clear current_execute_data on bailout as it would point into some freed area
on the stack.
2002-08-28 14:43:32 +00:00
Derick Rethans a235002eeb - Let's make this a little bit more professional :) 2002-08-28 12:10:00 +00:00
Derick Rethans a9d819818b - MFZE1 2002-08-28 09:49:40 +00:00
Derick Rethans 5b9a26da81 - Whitespace 2002-08-28 09:28:06 +00:00
Jason Greene b3a1998386 @socket_recvfrom is now binary safe (Jason)
Zero the structure so that when the tcp layer of the OS decides to ignore it,
we do not think we are getting a value
2002-08-28 06:15:13 +00:00
Dan Kalowsky 936df3c34f silence build warning, added default case 2002-08-28 06:13:49 +00:00
foobar d102e54d5b This extension is not forced to be compiled as shared. 2002-08-28 02:44:40 +00:00
foobar 3410e25b17 Added the header and removed some commented out stuff (wrong place anyway) 2002-08-28 02:43:46 +00:00
foobar 73f43e35f0 ws fixes 2002-08-28 02:38:17 +00:00
foobar 1939764d98 Fix ZTS build 2002-08-28 02:08:57 +00:00
Brad House 77208efb26 Adding a left-out command 2002-08-27 20:55:48 +00:00
Marcus Boerger 1ab90386cf Some requirements engineering: today necessary defines exists where
needed.
2002-08-27 20:10:46 +00:00
Marcus Boerger d1b56bf810 php_error_docref
BUT didn't we decide to disable those functions when not supported
instead of displaying an error?
2002-08-27 19:40:55 +00:00
Marcus Boerger 965ecdb3a6 php_error_docref 2002-08-27 15:32:04 +00:00
Marcus Boerger a8027c1428 Remove this nonsense - this makes the module unpredicable since we do
not have default values in ini and more encodings will follow.
2002-08-27 14:57:09 +00:00
Christian Stocker e8b3e2abe7 fix some to long property strings 2002-08-27 08:40:44 +00:00
Christian Stocker b29110dd3d argh, domxml_doc_free is not yet ready for CVS :) 2002-08-27 07:33:55 +00:00
Christian Stocker 567c4bbe4b stupid typo 2002-08-27 07:25:53 +00:00
Christian Stocker e0b4533eeb fix memleak in php_domxslt_string_to_xpathexpr 2002-08-27 06:54:21 +00:00
Derick Rethans 61f70a3cb7 - "Use" is not a name :) 2002-08-27 05:30:38 +00:00
Marcus Boerger a3c5628f82 -php_error_docref
-nuke unused variable
2002-08-27 00:44:57 +00:00
Marcus Boerger f06fcbd59a header for last commit 2002-08-27 00:44:07 +00:00
foobar 070516010d cleanup 2002-08-27 00:25:39 +00:00
276e0472e2 NEWS update 2002-08-27 00:21:34 +00:00
Marcus Boerger 36ede8b86f -fix memory leak on failure
-only use one function for nearly identical things
-fix stripslashes not working on input directly
2002-08-27 00:20:37 +00:00
9cf662e1a2 ChangeLog update 2002-08-27 00:20:32 +00:00
Marcus Boerger 9ede240057 -reimplemented old style output (.exp, .out)
-implemented diff format output
-delete error logs on success
@Changed regression tests produce selectable error reports. The tests now
@recognize environment variable TEST_PHP_LOG_FORMAT which can
@contain O and E for old style .out and .exp files, L for new .log format and
@D for an internal diff format that does not require systems diff. (Marcus)
#diff output makes it easier to detect the failure on huge or combined tests.
#It was discussed that the php function's diff output has the advantage that
#it is available on every system. Everyone insisting on systems diff may
#use diff on .exp and .out files.
2002-08-26 23:26:46 +00:00
Marcus Boerger 6063c8c478 fix fwrite to no longer apply stripslashes on input string when
magic_quotes_runtime is set On.
2002-08-26 23:18:59 +00:00
Marcus Boerger f0b492b88d fix proto and tweak error message 2002-08-26 23:16:51 +00:00
Thies C. Arntzen 4d931b9888 debug_backtrace(): show name of included file for include and require calls
plus some small fixes suggested by andi.
# now it's perfect;-)
2002-08-26 16:40:34 +00:00
Wez Furlong cfb5002e0b Implement com_invoke_ex, which allows the user to specify the invoke kind
flags, so that custom invocations can be made.
Tidy up code for com_propget and com_propset, so that it can work with
objects as well as resources.
# This code is from a couple of months ago, and has been hanging around
# on my windows dev box; I'm not entirely sure where I needed com_invoke_ex,
# but the additions to propget and propset are useful.
2002-08-26 13:36:35 +00:00
Derick Rethans fc7eb838fc - Whitespace 2002-08-26 09:47:46 +00:00
Derick Rethans 7edb660af9 @- Use escape_shell_cmd() to allow multiple extra parameters to the
@  invocation of the mailer as used in the fifth parameter to mail(). (Derick)
- Use escape_shell_cmd() to allow multiple extra parameters to the invocation
  of the mailer as used in the fifth parameter to mail().
2002-08-26 09:44:31 +00:00
Marcus Boerger 60a866d977 that propably wasn't a good idea and thus already removed 2002-08-26 02:07:47 +00:00
Pierre Joye 3f27a08b66 Set 'defaultuser' if 'USER' env not found 2002-08-26 00:39:56 +00:00
Pierre Joye 219624293b Replace horrendous code :) 2002-08-26 00:37:25 +00:00
91fe1a846c NEWS update 2002-08-26 00:18:29 +00:00
Pierre Joye 5ea6a5b807 Rule 1: Never quickly fix a thing in cvs
Rule 2: follow rule 1
Thx rasmus :)
2002-08-26 00:18:00 +00:00
Jason Greene 1ce75e3a63 Implement socket errno values for UNIX based platforms.
They are all prefixed with SOCKET_ to preserve name space
Win32 will follow...
2002-08-25 23:28:42 +00:00
Sebastian Bergmann e8b50bc834 Fix ZTS build. 2002-08-25 22:17:56 +00:00
Wez Furlong ddddf398af WS 2002-08-25 19:44:25 +00:00
Ilia Alshanetsky 64ef43ecd4 Slight optimization of php_strtoupper & php_strtoupper functions. 2002-08-25 19:08:07 +00:00
Marcus Boerger 412c2ba7a3 MFB 2002-08-25 18:48:46 +00:00
Marcus Boerger a1f7bb12f1 use php_error_docref() 2002-08-25 18:45:02 +00:00
Pierre Joye 4bbe4c703c Remove $_ENV usages, getenv() is used instead
'MAKE' and 'USER' are used, if 'USER' not found I set user to 'defaultuser'
2002-08-25 18:29:32 +00:00
Marcus Boerger ba40963985 improoved error messages 2002-08-25 18:21:40 +00:00
Pierre Joye 19dacf18a1 Remove $_ENV usages
Remove $env arg in all functions and uses getenv instead
Note only 'USER' env var is used
2002-08-25 18:21:10 +00:00
Pierre Joye 9870f455ff Remove $_ENV usages, this causes problems with recommanded php.ini files
Replace by getenv()
2002-08-25 18:11:24 +00:00
Marcus Boerger 8638bb882f Removed __output_handler as everybody seems against such implicit
behaviour. Instead supply error message.
2002-08-25 14:20:37 +00:00
foobar ba45e2ea58 Fix long line..and typo 2002-08-25 12:50:15 +00:00
Derick Rethans 8218b5838c @- PHP's cURL extention now requires cURL version 7.9.8 (Derick)
- Bump up required version number of cURL to 7.9.8
2002-08-25 12:24:40 +00:00
Marcus Boerger 6d97e0c3eb Use zend_is_callable() instead of php_check_object_method_array() and
drop the latter. THX to Markus Fischer - i did not recognize this function.

@Expanded ob_start() to allow object parameters without methodnames and
@use default method __output_handler(). (Marcus)
2002-08-25 12:16:48 +00:00
Wez Furlong 95ffc663d9 Fix open_basedir. 2002-08-25 12:10:17 +00:00
Wez Furlong 5c6ad38c31 Prevent possible problems with include_path. 2002-08-25 12:09:57 +00:00
Marcus Boerger 08ab630dc7 Reenable array(object,method) in ob_start() 2002-08-25 11:50:25 +00:00
Wez Furlong e286b286ae Hopefully really fix #18022 this time. 2002-08-25 11:23:19 +00:00
Wez Furlong 6d2fb45328 Potential fix for Bug#18022:
Streams that are pipes on systems that HAVE_FLUSHIO should not be seeked
as is required for plain files on those systems.
2002-08-25 11:02:05 +00:00
Wez Furlong 509ad5ec0f Unify error messages. 2002-08-25 10:36:08 +00:00
Wez Furlong c7be7b55d1 Add a "closing" parameter for filters to determine if a flush is the last
flush before the stream is closed.  This allows filters to finish a chunk
and write footers etc.
2002-08-25 10:26:58 +00:00
Wez Furlong 27adb75585 Remove php_stream_error as discussed with Rasmus.
Unify error messages for ext/ftp. (which was using php_stream_error).
2002-08-25 10:10:23 +00:00
dd0d03885d NEWS update 2002-08-25 00:19:53 +00:00
6218e98046 ChangeLog update 2002-08-25 00:18:44 +00:00
Yasuo Ohgaki 798236bc93 Changed pg_connection_info()/pg_connection_reset()/pg_connection_busy()/pg_result_status()/pg_result_error() silently return FALSE when resource is not passed to them.
@ Changed pg_connection_info()/pg_connection_reset()/pg_connection_busy()/pg_result_status()/pg_result_error() silently return FALSE when resource is not passed to them. (Yasuo)
2002-08-24 22:28:28 +00:00
Yasuo Ohgaki d23cb1686d Rename mysql_character_set_name() to mysql_client_encoding(). pg_client_encoding() is available from PHP4.0.3 and this function is available from PHP 4.3.0 2002-08-24 21:41:25 +00:00
Andi Gutmans c651dd962f - Whitespace 2002-08-24 20:57:54 +00:00
Andi Gutmans 8a02b43073 - Whitespace and better variable name 2002-08-24 20:52:52 +00:00
Marcus Boerger a0f7922863 Convert to unix, related to bug 18588 2002-08-24 13:28:53 +00:00
Zeev Suraski 4b81d04210 Undeprecate mysql_db_query() 2002-08-24 13:15:35 +00:00
foobar 4e8d521cb4 Make this entry a little bit easier for eyes to catch. 2002-08-24 13:00:42 +00:00
Stefan Esser 3efb925931 Overwrite control chars in parameters with whitespace instead of truncating. 2002-08-24 11:37:50 +00:00
Georg Richter 11bd3c08b6 changed zend_error -> php_error_docref() 2002-08-24 10:53:40 +00:00
Derick Rethans 4d283352a0 - Also make bz2 archives 2002-08-24 09:56:51 +00:00
Den V. Tsopa a1e0e5c859 convert encoding to cp1251,cp866 was not working, fixed 2002-08-24 09:48:00 +00:00
Georg Richter 3bd2a54064 changed error messages according to CODING_STANDARDS 2002-08-24 09:27:51 +00:00
Georg Richter 8a9632842a MySQL changes 2002-08-24 09:26:58 +00:00
Thies C. Arntzen 800c67a166 fix warning 2002-08-24 09:05:44 +00:00
Yasuo Ohgaki e4f9053061 Fixed typo 2002-08-24 07:19:40 +00:00
Yasuo Ohgaki 488a1e7399 Make pg_result_status() a little more useufl by ignoring invalid
parameter and return FALSE.
(i.e. pg_query() may return FALSE instead of result resource)
2002-08-24 07:18:15 +00:00
Marcus Boerger 149ad05b4f php_error_docref
#New conversion available at: http://docref.txt.marcus-boerger.de
2002-08-24 01:19:28 +00:00
foobar 928c4ad41d Remove relic from PHP3 days which is not useful anymore. 2002-08-24 00:56:00 +00:00
Zeev Suraski 5a5e206ec2 Fix import_request_variables() 2002-08-24 00:45:09 +00:00
89f8b5ad79 ChangeLog update 2002-08-24 00:20:37 +00:00
foobar 135a1c64c4 Made this extension to use the resource stuff 2002-08-23 22:24:02 +00:00
Andi Gutmans f976590420 - Add \n to configure fprintf 2002-08-23 22:11:10 +00:00
Andi Gutmans 3844b6af97 - dlerror -> DL_ERROR 2002-08-23 22:07:59 +00:00
foobar 06c6a96721 ws fix 2002-08-23 20:57:30 +00:00
Rasmus Lerdorf 53e6c07907 stream closing bug here too 2002-08-23 17:53:03 +00:00
Wez Furlong 533c16e21e Fix segfault reported by Rasmus. 2002-08-23 17:45:46 +00:00
Wez Furlong 2a71d7d5bb Respect safe mode setting when opening scripts and things for the ZE. 2002-08-23 17:39:20 +00:00
Georg Richter 6650761f9b fixed bug #18643 2002-08-23 15:56:34 +00:00
Christian Stocker 064fb5c3cb renamed xslt_dump_* to xslt_result_dump_* to avoid confusion
# will adjust NEWS file later
2002-08-23 15:26:19 +00:00
Christian Stocker 9278d9bf1a fix memleak in xslt->dump_mem() 2002-08-23 15:19:16 +00:00
Thies C. Arntzen eea1a0b296 debug_backtrace: show include/require/eval as normal functions on the stack
# the hard bit is to find out the args for those
2002-08-23 14:44:58 +00:00
Derick Rethans 8feda5cb6a - No spaces :) 2002-08-23 14:28:56 +00:00
Thies C. Arntzen 280809189b - debug_backtrace now also returns an array containing the arguments of the
called function.

zeev, andi - is knowing the structure of the stack considered a bad thing in
zend_builtin_function? if yes i would have to create a new function in
zend_ptr_stack.c (but i think we are save this way)
2002-08-23 14:22:25 +00:00
Georg Richter 0c386174db fixed bug #19016
SSL is only available for MYSQL_VERSION_ID >= 40000
2002-08-23 14:10:27 +00:00
Thies C. Arntzen 7ed2d363c8 - debug_backtrace:
added "type" ('->' or '::') for object calls.
	made calls done thru call_user_func show-up correct in backtraces.

andi,
does this look correct to you?
2002-08-23 13:50:42 +00:00
Thies C. Arntzen 10b58f2110 those are set by RETURN_FROM_EXECUTE 2002-08-23 12:18:54 +00:00
Georg Richter 8153dfc877 fixed bug #16965 2002-08-23 10:16:19 +00:00
Zeev Suraski a6e8e72372 Fix ob_gzhandler()'s handling of requests w/o compression but that do have
the Accept-Encoding header
2002-08-23 08:37:35 +00:00
foobar 03b1204a8a Update/cleanup.
# Everyone, check the entries under 4.3.0 which have been MFH'd into
# the PHP_4_2_0 branch.
2002-08-23 01:17:48 +00:00
9a7c38c148 NEWS update 2002-08-23 00:18:45 +00:00
Wez Furlong 3d8b6c2d52 Add a configure check to see if the seeker function in an fopencookie
uses off_t or the newer, more portable "fpos_t *".
The check could perhaps be more refined, as the test program will segfault
on older systems (like mine) that use off_t.
2002-08-22 22:28:19 +00:00
Ilia Alshanetsky 081e420c18 Fixed a typo 2002-08-22 19:19:37 +00:00
Marcus Boerger 17743955d0 more php_error_docref 2002-08-22 19:14:27 +00:00
Marcus Boerger 727067f59c php_error_docref... 2002-08-22 18:38:44 +00:00
Wez Furlong 5718112088 Fix compile warnings under win32 2002-08-22 17:42:18 +00:00
Wez Furlong 62b7b412e2 *cough* 2002-08-22 17:40:25 +00:00
Wez Furlong a388ab6205 Fix error messages. 2002-08-22 17:37:46 +00:00
Marcus Boerger 902c17e05a fiw warnings 2002-08-22 16:21:32 +00:00
Christian Stocker 8e52350a49 - moved xslt_dump_ to better place
- removed unused variables
2002-08-22 16:04:28 +00:00
Christian Stocker 1a486b6676 @- Added XsltObject->dump_file($result,$filename[,$compression]) for dumping
@  xslt-result directly into a file. (chregu)
2002-08-22 15:54:23 +00:00
Christian Stocker 1f57dec2bf @- Added XsltObject->dump_mem($result) for returning xslt-result directly
@  into a string (morus.walter@web.de, chregu)

- XsltObject->dump_file() will follow
- bumped up needed libxslt version to 1.0.18
2002-08-22 15:02:41 +00:00
Christian Stocker 2ce44cd99c return version number of linked libxml2, not of the one, which it was
compiled against
2002-08-22 14:32:43 +00:00
Marcus Boerger 6ce08f7382 fix examples
#did i write those? shame on me for not knowing my own functions
2002-08-22 14:04:01 +00:00
Marcus Boerger 9b9052f27a fix zts build 2002-08-22 14:02:08 +00:00
Mark L. Woodward 7711aac1d8 Removed C++ comments 2002-08-22 13:30:03 +00:00
Edin Kadribasic 3c4c2926d0 magic.mime seems to be more common name for the file. 2002-08-22 13:23:51 +00:00
Edin Kadribasic 55173781b5 @- Made mime_magic extension available on win32 platform. (Edin)
Mime_magic extensions builds on windows now.
2002-08-22 13:16:03 +00:00
Ilia Alshanetsky 848bcf7527 Instead of hardcoding the path of magic.mime file, try to find the file
inside common paths for the file.
2002-08-22 12:21:25 +00:00
Ilia Alshanetsky 484d7793e0 Fixed a number of compile warnings. 2002-08-22 12:15:20 +00:00
Marcus Boerger 28970b9260 fix warning 2002-08-22 10:52:40 +00:00
Marcus Boerger 4c1f3dec65 fix php_error_docref parameters 2002-08-22 10:16:03 +00:00
Christian Stocker 47d8e08b11 @ - Added xslt_backend_version() and xslt_backend_name() for getting
@   information about the processor backend. (chregu)
2002-08-22 09:54:06 +00:00
Stefan Roehrich 0ea1dda8cd Fixed prototype.
Fixed double printing of function name in docref error messages.
2002-08-22 09:38:55 +00:00
Christian Stocker 2069410f57 add allow_webdav_methods as option 2002-08-22 07:59:11 +00:00
Christian Stocker 55f3ec1af4 do not check for POST twice 2002-08-22 07:56:39 +00:00
Christian Stocker 9495fb9d7d @ - Added php.ini option "allow_webdav_methods" to allow handling of
@   WebDAV http requests within PHP scripts. (chregu)
# More methods (for DeltaV) will follow.
2002-08-22 07:48:23 +00:00
Tim Toohey 266193159b (PHP imagecolormatch) makes a palette image match the colours in the
true-color version.
(PHP imagelayereffect) extended alpha-channel mixing effects for the
                       bundled GD library
@Added ImageColorMatch() and ImageLayerEffect() functions
@which work with the bundled GD library (ttoohey)
2002-08-22 07:28:26 +00:00
Jason Greene 261a60a360 @Made major improvents to the pcntl extension(Jason):
@ - Greatly improved performance, by switching the signal callback mechanism
@   to use ticks
@ - Implemented object signal callback ability by using array($obj, $method)
@ - Added a restart parameter to pcntl_signal, which allows you to disable
@   the default of system call restarting
Changed callback hash table to be initialized and destroyed per reqeust
(allows the ability to use request life zvals as handles)
Nuked warnings
Modified test script to adjust to new ticks backend
Some slight WS fixes
2002-08-22 04:20:10 +00:00
foobar faff3a6e8a kill some compile warnings 2002-08-22 01:25:52 +00:00
foobar ff5ed789bc style fix 2002-08-22 01:20:50 +00:00
foobar 0d4776625a comment out unused variable 2002-08-22 01:06:14 +00:00
foobar 7796bc12dd kill compiler warning (unused variable) 2002-08-22 00:43:18 +00:00
foobar b9d4067001 Fix typo. 2002-08-22 00:34:07 +00:00
foobar 91b3644a72 These functions are not used elsewhere. 2002-08-22 00:19:54 +00:00
f35c4b5138 ChangeLog update 2002-08-22 00:17:15 +00:00
foobar 8beb1e2237 Fix ZTS build 2002-08-21 23:51:12 +00:00
Marcus Boerger d104d08a84 These require exif and mbstring 2002-08-21 23:14:40 +00:00
Marcus Boerger eb6e31f802 Test argument passing for CLI 2002-08-21 23:10:44 +00:00
Marcus Boerger 9cec8a13bd This does not work for CLI 2002-08-21 23:08:21 +00:00
Marcus Boerger 28ebb82c41 Added ARGS section to allow passing arguments to CLI tests 2002-08-21 23:06:38 +00:00
Thies C. Arntzen d88ca858aa zend_execute: make sure that current_execute_data points to the right thing
after coming back from recursion.
2002-08-21 13:58:20 +00:00
Ilia Alshanetsky ea1bb5e172 Added monetary.h to prevent compile warning.
Fixed a memory leak inside money_format function, which occures if the
parameters to the function are not valid.
Fixed a segmentation fault inside money_format in the event the value
to be formated is >1024 bytes.
Made the return value of money_format be null terminated.
2002-08-21 13:14:57 +00:00
Ilia Alshanetsky 116b06d6a5 Added a check for monetary.h needed for strfmon inside string.c 2002-08-21 12:40:40 +00:00
Marcus Boerger 3b24fc1c5a Reflect recent changes to exif.c 2002-08-21 11:37:22 +00:00
Marcus Boerger 95e933fc99 Fixes array test 004.phpt. Nice copy paste error. 2002-08-21 11:23:44 +00:00
Marcus Boerger a70640480a Patch from Melvyn Sopacua <msopacua@idg.nl> finally fixes it (bug 19006). 2002-08-21 10:42:55 +00:00
Sebastian Bergmann 090e30a863 Fix ZTS build. 2002-08-21 06:22:19 +00:00
Derick Rethans ccf51590b3 - Proper format for CREDITS files 2002-08-21 05:41:49 +00:00
Uwe Steinmann 6a79e354c1 - gave overdue credits to christian 2002-08-21 05:39:28 +00:00
Dan Kalowsky 4809e8ebbc This final change enables the ext/java to compile on OSX.
# now to do testing and ensure that it works as stated... weeee...
2002-08-21 04:42:58 +00:00
Ilia Alshanetsky a86b1fc275 Fixed compile warning. 2002-08-21 03:59:27 +00:00
Marcus Boerger d3d12daec4 add ini setting precision - this does not fix the real problem here 2002-08-21 03:13:33 +00:00
Marcus Boerger e0c967508a more ini settings 2002-08-21 03:10:55 +00:00
Marcus Boerger 5e7a9af062 full decopling of size parameters of ob_start() and internal buffer handlers
#intended behaviour is now fully implemented,
2002-08-21 03:04:17 +00:00
Dan Kalowsky a832091a2c One more patch up towards OSX compatibility...
# it compiles now with the ObjC files (Finlay Doobie rocks the casbah)
2002-08-21 01:41:22 +00:00
Marcus Boerger be1e23cbc9 Add var_dump float format test 2002-08-21 01:27:56 +00:00
Marcus Boerger 534a63b5af Add combined base64 and md5 test 2002-08-21 01:26:21 +00:00
Marcus Boerger 9607a482b2 fix array tests
someone must have changed precision in php.ini-dist from 14 to 12
2002-08-21 01:22:02 +00:00
Marcus Boerger b6cf2bb4bc make snprintf and f,g,G converions of snprintf/spprintf C99 complient 2002-08-21 01:11:50 +00:00
Marcus Boerger b98c26382f Ignore double_buffering for ob_start(). 2002-08-21 01:00:56 +00:00
d887ea3c3d NEWS update 2002-08-21 00:23:33 +00:00
9f2abde460 ChangeLog update 2002-08-21 00:21:15 +00:00
Marcus Boerger 0e065f6b36 speling - thanks (Masaki Fujimoto), acually this wasn't my best piece of doc 2002-08-20 23:29:39 +00:00
Marcus Boerger 8e10659648 Revert ob_start() defaults to 40K/10K until i find a better solution. 2002-08-20 23:23:25 +00:00
Dan Kalowsky 7ac1397636 Correcting english in config 2002-08-20 23:08:24 +00:00
Dan Kalowsky 57a1181b9a Fix for Bug #18999 2002-08-20 23:04:53 +00:00
Wez Furlong 03b8214b9d Fix newly introduced leak in the debug build. 2002-08-20 22:08:55 +00:00
Wez Furlong 9d348ea800 Implement filter API for streams.
Filters can be stacked onto a stream; more details will follow in docs and
on php-dev.

Implement "string.rot13" filter

Allows the following script:

$fp = fopen("file.txt", "r");
stream_filter_prepend($fp, "string.rot13");

// File contents will be subject to a rot13 transformation before
// being output.
fpassthru($fp);
fclose($fp);
2002-08-20 20:47:47 +00:00
Wez Furlong a9ba30cd89 fix vim modeline 2002-08-20 20:43:45 +00:00
Marcus Boerger 9f86e70e8d speling - thanks derick 2002-08-20 20:27:18 +00:00
Marcus Boerger f15b4c1e30 change to php_error_docref()
#documentation about output relevant ini settings will be in ref.outcontrol
2002-08-20 20:22:30 +00:00
Marcus Boerger cbe9f80d44 note about double_buffering 2002-08-20 20:09:57 +00:00
Marcus Boerger 0f8681fc69 Changed handling of output buffer sizes. 2002-08-20 20:07:00 +00:00
Marcus Boerger 7bd7e14e4c Changed handling of output buffer sizes.
#.c to follow
2002-08-20 20:01:14 +00:00
Marcus Boerger fdf514f45c Changed handling of output buffer sizes. 2002-08-20 19:51:00 +00:00
Marcus Boerger 2a443b2e77 Changed handling of output buffer sizes.
@Added php.ini option "double_buffering" that forces an additional first
@output buffer and improved handling of buffer sizes. (Marcus)
2002-08-20 19:49:37 +00:00
foobar c4d424254a remove tabs 2002-08-20 12:01:24 +00:00
Derick Rethans c20c3fc610 - Fix for the compiler on Compaq Tru64 4.0F PK3 (bug #18974) 2002-08-20 11:18:18 +00:00
Marcus Boerger bb258468fc NO C++ comments 2002-08-20 10:00:28 +00:00
Edin Kadribasic e632758b19 Windows build supports returning the sql statement which failed. 2002-08-20 09:15:11 +00:00
Edin Kadribasic 48389cc2a6 Fixed build with Oracle 8.0.x (bug #18973). 2002-08-20 07:26:50 +00:00
e321742383 ChangeLog update 2002-08-20 00:19:08 +00:00
Wez Furlong 5f9a5a7c8e Remove php_stream_sock_set_blocking and replace with
php_stream_set_option which can be used in a similar way as ioctl()
to set options for streams.

Current options include buffering and blocking support.

o Buffer control is support for stdio based streams.
o Blocking/non-blocking is supported for stdio and socket based streams.
2002-08-19 22:59:10 +00:00
Ilia Alshanetsky 6dbc0e5483 Convert the value of tz_minuteswest inside struct timezone on Windows to
minutes from seconds.
2002-08-19 21:59:46 +00:00
foobar 7ea1e2d511 Fix the build when using --with-java without any path 2002-08-19 21:49:37 +00:00
Adam Dickmeiss e1a8983287 Make options piggyback and timeout work with ZOOM 2002-08-19 21:15:59 +00:00
Zeev Suraski 91f585744f MFZE1 2002-08-19 20:58:22 +00:00
Zeev Suraski bc906117bb Fix a few warnings 2002-08-19 20:47:55 +00:00
Zeev Suraski df4fdeb54e Fix a warning 2002-08-19 20:47:42 +00:00
Sander Roobol bed405cce4 Sync with var_unserializer.re 2002-08-19 20:02:59 +00:00
Sander Roobol 47ae4068bb Made unserialize handle floats with an E notation - bug #18654
Patch by Christophe Sollet <csollet@coleebris.com>.
(I'll commit a new var_unserializer.c in a second)
2002-08-19 19:45:46 +00:00
Sander Roobol ef9014d95d Don't know what this line was supposed to DO!?!? 2002-08-19 19:42:20 +00:00
Marcus Boerger 8b30aeacd8 -use of php_error_docref
-some more information in ob_get_status()
2002-08-19 18:47:23 +00:00
Marcus Boerger 3408366776 -allow changing html_errors any time changing display_errors is already
-use sizeof for strftime call
-removed unused #define
-mention CODING_STANDARDS as documentation
2002-08-19 18:40:28 +00:00
Rasmus Lerdorf f5630aa246 Fix xbithack bug finally (see bug #16515) 2002-08-19 15:52:21 +00:00
Christian Stocker 9698d5da45 w3c adjustments :)
- has_attributes returns empty string if attribute is not there
- parent_node returns null, if no parent
2002-08-19 14:01:04 +00:00
Edin Kadribasic 1fb6a30f0f Debug functions should only work in debug mode. 2002-08-19 13:46:39 +00:00
Stanislav Malyshev 2282ac6074 ZE2 compatibility fix
## In ZE2 the hash contains zend_class_entry *!
2002-08-19 10:58:18 +00:00
295ff60648 ChangeLog update 2002-08-19 00:17:41 +00:00
Holger Zimmermann b79415334e Some minor changes related to Pi3Web 2.0.1. 2002-08-18 15:46:48 +00:00
Stefan Esser 8d2bc70752 make POST requests work again 2002-08-18 13:05:44 +00:00
Stanislav Malyshev 05156fa349 ZE2 compatibility fix
## In ZE2 the hash contains zend_class_entry *!
2002-08-18 12:22:28 +00:00
Holger Zimmermann 93bbc5e531 Removed unused local variable header_line. 2002-08-18 11:05:28 +00:00
Ilia Alshanetsky 1aea030cf2 Corrected if() syntax in previous patch. 2002-08-18 07:54:33 +00:00
Ilia Alshanetsky d42dbfce8e Fixed a segmentation fault that would occur if an entry contained a
non-terminated enclosure. Bug #12556
2002-08-18 06:55:32 +00:00
Anil Madhavapeddy d5fd43be37 include PDFLIB_SHARED_LIBADD in the pdflib test, or it fails with
unresolved symbols on OpenBSD
2002-08-18 05:13:05 +00:00
James Cox aad8f14739 reverting to 1.73 for steph (sfox@php.net)
#is it just me or reverting using cvs just suck?
2002-08-18 05:05:44 +00:00
Dan Kalowsky 4e3cb1d3c5 Bug Fix #18960 - Submitted by alan_k@php.net 2002-08-18 04:33:10 +00:00
2d2250c520 ChangeLog update 2002-08-18 00:18:19 +00:00
Zeev Suraski 3b646f0e5d Use mtime instead of atime, as we always update the session file anyway. 2002-08-17 20:32:26 +00:00
Andi Gutmans 2372caf57e MFZE1 2002-08-17 20:20:36 +00:00
foobar 2ff107075e AFAIK, 4.3.0 will not contain ZE2.. 2002-08-17 17:10:13 +00:00
Zeev Suraski b66561c44a MFZE1 2002-08-17 16:22:40 +00:00
Zeev Suraski 88fd5f3f5d MFZE1 2002-08-17 16:07:26 +00:00
Stig Venaas c0be355cec Default is enable, so better --disable-ipv6 I guess 2002-08-17 15:53:02 +00:00
Stig Venaas fcc0380588 Added --enable-ipv6 and only look up AAAA in DNS when enabled 2002-08-17 13:56:39 +00:00
Stefan Esser 20693c1ad4 IE does not use quotes but now we are safe... 2002-08-17 11:48:21 +00:00
Christian Stocker 6cbb350607 More W3C conformance stuff (they returned all false before..)
- DomNode->attributes() returns NULL, if not found.
- DomNode->first_child() returns NULL, if not found
- DomNode->last_child() returns NULL, if not found.
- DomNode->namespace_uri() returns NULL, if not found.
2002-08-17 11:47:21 +00:00
Stefan Esser ecaa0a091a fixed the user supplied patch for bug #18792 2002-08-17 11:31:06 +00:00
Rasmus Lerdorf b16eb792ab Add warning about atime requirement for session gc 2002-08-17 01:14:53 +00:00
5d881cd07d NEWS update 2002-08-17 00:20:13 +00:00
f32baf54b6 ChangeLog update 2002-08-17 00:19:19 +00:00
foobar 2ae84184d3 ws fixes 2002-08-16 23:25:53 +00:00
Dan Kalowsky 6c22f90b4a Fix for bug #18792 submitted by t.bubeck@reinform.de
# talked this over with sterling and he believes it shouldn't break anything
# although there might be a need/desire to check for both ',' and ';'
2002-08-16 19:34:43 +00:00
Dan Kalowsky 26e044a143 Silence a compiler warning, and returns the SUCCESS value on PHP_MINIT 2002-08-16 16:56:55 +00:00
Andi Gutmans f7096fb8fc - Use tabs instead of spaces for indentation!
- Fix all sorts of ugly whitespace things.
- People, please write code according to our standards even if you don't
- like them.
2002-08-16 15:45:22 +00:00
Ilia Alshanetsky 3bd899ea43 Fixed a compile failure in Win32 caused by previous patch.
Changed else statement to comply with PHP coding standards.
2002-08-16 15:04:00 +00:00
Jason Greene 980feb5e98 Nuke warnings on strict compilers 2002-08-16 14:23:27 +00:00
Ilia Alshanetsky f11c3a4095 Added a handler for php -r '' for SAFE_MODE 2002-08-16 12:47:56 +00:00
Wez Furlong 2e4b6ef181 Fix a little leak. 2002-08-16 12:02:42 +00:00
Stig Bakken 5a41ced0d7 * append emacs footer 2002-08-16 10:12:17 +00:00
Stig Bakken bd7105f731 * remove builtin exception class 2002-08-16 10:11:32 +00:00
Sterling Hughes 88c1d8983f clean this up a bit 2002-08-16 10:08:32 +00:00
Wez Furlong c2cbae6dd3 Enhance Ilia's recent patch to query the wrapper subsystem to determine
if a filename is a URL and thus if safe-mode checks should be skipped.
2002-08-16 09:50:24 +00:00
Wez Furlong 613871d403 Fix: remove CVS output from Changelog. 2002-08-16 09:18:56 +00:00
Christian Stocker 9c20c7c9ba More on the way to W3C coformance:
@- Changed DomNode->next_sibling and DomNode->previous_sibling to return NULL
@  instead of false (W3C specs). (chregu)
@- Changed DomNode->insert_before() and DomNode->append_child() to conform to
@  W3C specs (moving not copying nodes, accepting NULL as 2nd param). (chregu)
2002-08-16 08:42:41 +00:00
Andi Gutmans 38eea2e817 - Fix whitespace 2002-08-16 07:11:37 +00:00
Ilia Alshanetsky a643ae656a Make https:// be exempt from safe_mode checks, just like http:// & ftp:// are. 2002-08-16 03:52:37 +00:00
Ilia Alshanetsky b284497eaf Added safe_mode & open_basedir check when a user is chaning ini options
that specify file system paths. Fixes bug #17168.
2002-08-16 01:39:10 +00:00
Stig Bakken 04788f9503 @- Added set_exception_handler() function for registering a global,
@  catch-all exception handling function (Stig)
- Added set_exception_handler() function for registering a global,
  catch-all exception handling function (Stig)
2002-08-16 00:41:37 +00:00
Stig Bakken 197c300860 * allow using the TESTS make variable again to determine which tests are run 2002-08-16 00:36:05 +00:00
412e1d91db NEWS update 2002-08-16 00:18:49 +00:00
87d86ad21d ChangeLog update 2002-08-16 00:18:07 +00:00
Zeev Suraski 9e743e83a5 Fix a NASTY multithreading bug with in the Apache module 2002-08-15 23:59:47 +00:00
Zeev Suraski 900651b7ab Make unset($_SESSION['foo']) actually remove the variable from the session,
if register_globals is off.
2002-08-15 21:44:44 +00:00
Zeev Suraski cc287d4c21 Update email address 2002-08-15 21:43:41 +00:00
Dan Kalowsky 26986164b4 Correcting some english in the comment... 2002-08-15 19:32:08 +00:00
Dan Kalowsky 443363dece marking the fix for Bug #18401 in NEWS 2002-08-15 19:13:14 +00:00
Dan Kalowsky dee21adc3d Fix for bug #18401, makes shuffle() properly generate all possibilities.
Patch provided by Adam Trachtenberg <adam@trachtenberg.com>
2002-08-15 19:09:05 +00:00
Christian Stocker 993d235c07 include libxml/xinclude.h to make some compilers happy 2002-08-15 18:02:25 +00:00
Martin Jansen 1936c5c7a6 * Fix bug #18918.
* Add some PHPdoc comments.
2002-08-15 17:07:12 +00:00
Dan Kalowsky 1462813bfd A fix suggested by chregu (who doesn't have karma) to re-enable older java
JDKs to work.
2002-08-15 14:18:09 +00:00
Christian Stocker 2126f799b9 proto fixes 2002-08-15 13:26:32 +00:00
Christian Stocker c0f4035116 @ - Added DomNode->set_namespace(uri[,prefix]) (chregu)
- Added third optional parameter (prefix) to DomDocument->create_element_ns()
- generate prefix from random number, if not provided.
2002-08-15 12:43:44 +00:00
foobar 3ff741df93 be more verbose 2002-08-15 11:19:40 +00:00
Alan Knowles d46bdbde66 changed default stop bits to a valid value 2002-08-15 09:39:35 +00:00
Alan Knowles 08887eaaf2 changed default stop bits 2002-08-15 09:37:26 +00:00
Alan Knowles 0dc8cdd4c7 adding dio_tcsetattr and ASYNC support 2002-08-15 09:23:41 +00:00
Yasuo Ohgaki 6adcd3d353 news for disabling trans-sid by default.
but no entry for depreciation of --enable-trans-sid :(
(from 4.2.0)
2002-08-15 03:13:46 +00:00
Dan Kalowsky 1b8dd7f355 silencing some windows build warnings 2002-08-15 00:41:35 +00:00
Zeev Suraski 0e6b647741 coming to think of it, it shouldn't be necessary at all (thanks Jani :) 2002-08-15 00:37:21 +00:00
Zeev Suraski f4196d9bd2 Fix build 2002-08-15 00:35:36 +00:00
foobar 6b0ca6074d hot, damn hot. 2002-08-15 00:26:03 +00:00
Zeev Suraski 0bb780b384 MFZE1 2002-08-15 00:25:27 +00:00
43f17d4c9b NEWS update 2002-08-15 00:19:22 +00:00
d823e3fe41 ChangeLog update 2002-08-15 00:18:40 +00:00
Marcus Boerger 18ef76e361 do not include "php_have_iconv.h" 2002-08-14 23:48:52 +00:00
Yasuo Ohgaki 13a3dd7b77 Forgot to update source default. 2002-08-14 22:31:39 +00:00
Dan Kalowsky c55d024c29 Comming a fix for a compile error found in Bug #15630
# NOTE this is NOT the supplied patch in said bug for fixing imap_utf7_decode
2002-08-14 20:55:11 +00:00
Dan Kalowsky 161e279981 Silencing a compilier warning on windows 2002-08-14 20:40:48 +00:00
Dan Kalowsky f3fc7fe2fd Updating the error message to state a difference between libraries and
include.  Also restoring old for search to keep BC on configure
2002-08-14 17:49:41 +00:00
Christian Stocker 5c935cb372 - let DomNode->replace_child always behave correctly (acc. to W3C specs)
if the newchild had the same parent as the old child, nothing happened,
which seemed strange behaviout to me...
2002-08-14 17:38:20 +00:00
Dan Kalowsky b22a1eb935 Giving Ilia his props 2002-08-14 17:17:16 +00:00
Dan Kalowsky 0917902b92 Fix for Bug #9280 with regards to an Expect header. patch submitted by
Ilia <ilia@prohost.org>
# someone just give the man his php4 karma please!
2002-08-14 17:15:49 +00:00
Dan Kalowsky 4b691d154a Adding a check for the binaries rather than just the directories. 2002-08-14 17:04:05 +00:00
Christian Stocker ce71fe0288 DomNode->replace_node moves instead of copies node. 2002-08-14 16:53:56 +00:00
Dan Kalowsky d10bf42029 JavaC doesn't take flags like this, Java jar does, pay attention kalowsky 2002-08-14 16:53:49 +00:00
Dan Kalowsky 00b467bd6a cleaning up the displayed path (removing the ./ in the middle) 2002-08-14 16:49:22 +00:00
Dan Kalowsky 398288f236 Fix for Bug #18794, and probably various others with nsapi 2002-08-14 16:39:26 +00:00
Dan Kalowsky 38a6873f20 correcting these to be only docref's not docref1's 2002-08-14 16:23:16 +00:00
Dan Kalowsky 73557f5b52 Adding in MSG_RESULT check and \n for configure output viewing 2002-08-14 16:22:20 +00:00
Christian Stocker c0a79401fd - fix for bug #17771 (insert_before misbeaviour (DOM L2 spec.))
@ - DomNode->insert_before behaves now according to W3C spec
@   ie. new_child is moved, not copied. (chregu)
2002-08-14 16:12:18 +00:00
Dan Kalowsky 9f597d2dd1 Correcting mis-versioned comment 2002-08-14 16:11:49 +00:00
Dan Kalowsky 8d9487c00e JAVA_INCLUDE, not JAVE_INCLUDE 2002-08-14 16:01:13 +00:00
Dan Kalowsky 49dd85c460 A little more clean up on the error messages, with a sample JDK 1.3 path to libjava.so 2002-08-14 15:29:48 +00:00
Dan Kalowsky 8b1e7744c1 correcting the AC_MSG_RESULT line 2002-08-14 14:37:04 +00:00
Dan Kalowsky ba07aa06d8 adding in PATH check for JavaJar as well... 2002-08-14 14:36:08 +00:00
Christian Stocker 63874f9017 @ - Added some namespace support with DomNode->add_namespace(uri, prefix)
@   and DomDocument->create_element_ns(uri, nodename) (chregu)
2002-08-14 14:23:44 +00:00
Dan Kalowsky 6be8fb6a2e Fix a bug for a user provided path as eru. 2002-08-14 13:48:44 +00:00
Christian Stocker 780c1605c8 bump up api version number 2002-08-14 09:20:19 +00:00
Christian Stocker 280cb97fef fix for bug #18196
@ - DomElement->node_name() takes optional boolean argument for retrieving
@ -  full qualified name (ie namespace prefix) (chregu)
2002-08-14 09:07:34 +00:00
Christian Stocker 323765cc17 fix for bug #18395 (DOMXML crash on removing previously created attributes) 2002-08-14 08:27:36 +00:00
Christian Stocker 43bdd6ed73 @ - DomNode->child_nodes() returns empty array instead of false, if no
@ - child nodes are found (chregu)
2002-08-14 07:29:46 +00:00
Marcus Boerger 3df8889c0b -remove corrupt entry until change has been completed
-minor fixes
-honor Derick for his idea error messages to point to the manual
2002-08-14 07:05:57 +00:00
Yasuo Ohgaki 699ccceaa4 Added trans_sid security risk examples. 2002-08-14 06:45:23 +00:00
Den V. Tsopa e139decdea Revert from patch added mb_guess_encoding to previous version 2002-08-14 06:38:07 +00:00
Yasuo Ohgaki 8c020d357f Add warning... It seems posting message to php-dev/php-cvs does not work! 2002-08-14 06:28:16 +00:00
Den V. Tsopa 4f5743582e Added new function mb_guess_encoding, based on symbols rating 2002-08-14 05:41:40 +00:00
Brad LaFountain 7c1d2ff2e4 some more doc/lit stuff
some more wsdl stuff
2002-08-14 05:26:25 +00:00
Jason Greene b806a8e247 MFZE1 (use token instead of global for opcode counting) 2002-08-14 01:40:59 +00:00
Dan Kalowsky 14a8c395af Adding in updates for the fixes to ODBC, and markers for the pack/unpack
memory leaks
2002-08-14 00:42:02 +00:00
8ef237f669 NEWS update 2002-08-14 00:18:47 +00:00
fa626babf2 ChangeLog update 2002-08-14 00:18:10 +00:00
Dan Kalowsky 2f1b6397bc Fix for Bug #17572 2002-08-13 23:48:05 +00:00
Dan Kalowsky 19e42a2ed3 Fixed another memory leak, patch provided by Ilia <ilia@prohost.org> 2002-08-13 23:12:54 +00:00
Dan Kalowsky ed135034a9 Fixes a memory leak which results when an invalid format code is
specified.  Patch by Ilia <ilia@prohost.org>
#Someone give him php4 karma :)
2002-08-13 21:56:39 +00:00
Dan Kalowsky 2e6d771139 As per the suggestion on php-dev, now please #ifdef 0_<username here> 2002-08-13 21:44:59 +00:00
Dan Kalowsky e5240d0b78 Updating to reflect ODBC additons and default timeout 2002-08-13 21:43:14 +00:00
Dan Kalowsky ce160f1bde fixing my misunderstanding of the php_error_docref 2002-08-13 21:39:36 +00:00
Dan Kalowsky 4fcca0167b Removing the PHP_31 tag...
# I'm not sure if the rest of this define can go or not...
2002-08-13 21:35:54 +00:00
Marcus Boerger 0a845714b7 -better use external example
-say NULL is intended
-correct example
#hope this is a bit easier to understand and clears it a bit
2002-08-13 20:55:42 +00:00
Andi Gutmans 17d1c75b8b - Fix crash when exception is raised in __autoload function 2002-08-13 16:46:40 +00:00
Marcus Boerger d2418b11f8 docref_root and docref_ext for php_error_docref()
@Added clickable error messages that direct to a page describing the
@error or function causing the error in detail. (Yasuo, Wez, Marcus)
2002-08-13 15:29:34 +00:00
Zeev Suraski 88d3154b68 MFZE1 2002-08-13 15:14:45 +00:00
Dan Kalowsky 4feff54879 Correcting as per discussion with Iliaa and Edin on efnet://#php.bugs 2002-08-13 14:56:50 +00:00
Dan Kalowsky 1027dfcdd1 Bug Fix #16113, as reflective of a php-dev convo between wez and iliaa 2002-08-13 14:39:03 +00:00
Dan Kalowsky ea6ed5b8a5 Fixing the php_error_docref's to be compliant with the standard.
# Can't we just compress all these docrefs down to one function?!?
2002-08-13 13:26:31 +00:00
Marcus Boerger 6d10159eac comments & php_error_docref 2002-08-13 09:42:51 +00:00
Marcus Boerger 6474731f91 some work on the messages 2002-08-13 09:41:30 +00:00
Marcus Boerger 968721bc55 allow target anchor only for docref parameter 2002-08-13 09:37:51 +00:00
Masaki Fujimoto 2eaa0f6ea1 cleaning up include files created by PHP_DEFINE when 'make distclean'ed 2002-08-13 06:51:28 +00:00
Dan Kalowsky e9dcdd12aa Fix for Bug #18873 2002-08-13 05:12:32 +00:00
Rasmus Lerdorf b025bb1023 Missing proto 2002-08-13 05:08:47 +00:00
Rasmus Lerdorf 7a8330acd9 Single-line comments please 2002-08-13 05:00:11 +00:00
Dan Kalowsky 039902b912 spelling error 2002-08-13 04:52:50 +00:00
Dan Kalowsky aed9e2355c Added more folding markers.... 2002-08-13 04:47:02 +00:00
Rasmus Lerdorf f50df31d7f bool not boolean 2002-08-13 04:44:45 +00:00
Rasmus Lerdorf 3ffe4cb1ff bool not boolean 2002-08-13 04:37:28 +00:00
Rasmus Lerdorf 34362341e9 Use int, not integer. 2002-08-13 04:31:59 +00:00
Rasmus Lerdorf d820c177bf dir() returns an instantiated object, not a class. 2002-08-13 04:24:15 +00:00
Rasmus Lerdorf 87ddcef3c3 Don't use long as a type 2002-08-13 04:20:34 +00:00
Rasmus Lerdorf fb0c9122c1 Fix typo 2002-08-13 04:19:25 +00:00
Rasmus Lerdorf 0779da509b Don't use long as a type 2002-08-13 04:11:51 +00:00
Dan Kalowsky f9e8a5701b Fix for Bug #18746 by sfox and I
#What is the GDBM_FIX for anyways, we can find it anywhere?
2002-08-13 04:10:31 +00:00
Rasmus Lerdorf cd9bb8e555 Fix proto 2002-08-13 04:03:20 +00:00
Dan Kalowsky 099d7df2e5 Let to php_error_docref revolution begin 2002-08-13 00:45:08 +00:00
c57679a322 NEWS update 2002-08-13 00:19:02 +00:00
05c238ccb2 ChangeLog update 2002-08-13 00:18:11 +00:00
Marcus Boerger 4294f2a93d use of php_error_docref 2002-08-12 20:18:25 +00:00
Marcus Boerger 1134977baf fix for extension = ""
make php_verror available
2002-08-12 20:12:31 +00:00
Marcus Boerger ac9991a245 -wrong fabsf define for MSVC.6
-MIN and MAX only if undefined
#should be last commit to fix all warnings (-:
2002-08-12 19:09:26 +00:00
Dan Kalowsky 7d5d00bf81 Point corrected by Markus 2002-08-12 18:21:33 +00:00
Dan Kalowsky 8d2d105cff Umm forgot to clean up the error messages, and add a stop for looping. 2002-08-12 16:17:18 +00:00
Dan Kalowsky ee240f5e4b cleaned up to work with OpenLink iODBC better 2002-08-12 16:04:48 +00:00
Wez Furlong fc1ef270ce Implement curl based wrappers.
Currently read-only, and http is the only thing tested.
Because of this, using them can be controlled by configure:

--with-curlwrappers     Use CURL for url streams

Not for production use...

This enables http, https, ftp and ldap protocols as streams.
2002-08-12 15:56:13 +00:00
Marcus Boerger bdaae34cb9 ups wrong include committed
#if anybody objects we would need config stuuf in ligd otherwise but
#this way we can use other php functions...for example we could use
#php_error_docref....
2002-08-12 15:29:05 +00:00
Marcus Boerger 11611d0781 increase allocation chunks 2002-08-12 14:02:51 +00:00
Marcus Boerger 2df2e24a54 check for fabsf and floorf in config.m4
msvc.6 needs a define, msvc.net needs special treatment
2002-08-12 13:59:01 +00:00
Christian Stocker c0f12111ba @ - Added $DomDocument->xinclude() for substitution of XIncludes in
a DomDocument (chregu)
2002-08-12 13:11:50 +00:00
Marcus Boerger 9d03c0bdf0 more conversion fixes 2002-08-12 09:58:51 +00:00
Edin Kadribasic 553b7d27bf Export spprintf() so that extension can link properly on win32. 2002-08-12 09:07:26 +00:00
Preston L. Bannister e1658ed6c4 Minor cleanups to path building and php*.ini search logic.
Made path_seperator string static (which solves the lookup problems Sebastian saw).
2002-08-12 05:37:03 +00:00
bd726f9172 NEWS update 2002-08-12 00:19:01 +00:00
ed3c2d37f5 ChangeLog update 2002-08-12 00:18:07 +00:00
Dan Kalowsky 7b9de90061 okay confirmation they don't exist in another driver... they're gone 2002-08-12 00:00:54 +00:00
Marcus Boerger 0dcbf7e375 -quick hack to allow compilation under windows again
-correct solution to follow tomorrow
2002-08-11 23:56:11 +00:00
Dan Kalowsky 663a457eb8 Added the php_odbc_includes.h file 2002-08-11 23:40:34 +00:00
Dan Kalowsky 6b31498d09 The start of adding odbc_data_source() functionality 2002-08-11 23:39:03 +00:00
Marcus Boerger 251882de7d missed to commit this fix: correct since this is only a flag 2002-08-11 19:19:35 +00:00
Marcus Boerger b9c0c918cc try even more to fix those warnings.....
#repeat: this code must come from hell
2002-08-11 19:13:07 +00:00
Wez Furlong 3fe62cf0fb Missing word... 2002-08-11 18:51:40 +00:00
Dan Kalowsky 299494ea5e The start of adding in MacOSX compatibility. No objections on the
php-dev list from the sent patch for a week.  Test and fix.
2002-08-11 15:33:25 +00:00
Dan Kalowsky db8bf2647a removing the TODOs done already. 2002-08-11 15:26:46 +00:00
Wez Furlong bcef712ad6 Properly implement TSRM parameters to the new log_error
function... (Thanks Marcus!)
Add a convenience macro for importing a stream from a zval.
2002-08-11 14:29:01 +00:00
Marcus Boerger f9b6bac2a8 try to get this work ... 2002-08-11 14:05:30 +00:00
Marcus Boerger 1723861618 try to fix those warnings.....
#this code must come from hell: will we change code to our coding-scheme?
2002-08-11 13:50:27 +00:00
Wez Furlong 94be838dc1 More verbosity when activating SSL on a socket fails. 2002-08-11 11:25:24 +00:00
Wez Furlong 5a21ab42cb Introduce an error stack for wrappers, to help prevent multiple errors
and warnings (some of which are bogus) when there are problems opening
streams.
Implement sanity check on the mode used to open ftp and http connections.
This fixes Bug 12004.
2002-08-11 10:53:10 +00:00
Wez Furlong 1861f1bae3 Minor fix for html_errors=on in php_error_docref. 2002-08-11 09:52:06 +00:00
Yasuo Ohgaki 42355837c1 Changed my mind.
Let users decided whether users want larger chunk size or not.
@ Changed zlib.output_compression behavior. If larger chunk is preferred,
  enable output_buffering also. (Marcus, Yasuo)
2002-08-11 02:32:49 +00:00
Yasuo Ohgaki 02ed705818 Generally speaking, sending packets less than 1KB is not efficient.
We're better to take some benchmarks see if removing extra buffer
is actually a good idea or not.
2002-08-11 01:11:11 +00:00
7aa98ff852 ChangeLog update 2002-08-11 00:17:35 +00:00
Marcus Boerger 8e7acaca47 change order of initialisation to allow making filename available
through $_SERVER variables (Bug #18657)
2002-08-10 22:42:38 +00:00
Wez Furlong 1144bdb04d remove obsolete TSRMLS_FETCH 2002-08-10 20:20:55 +00:00
Wez Furlong 0c7a386b3e correct proto 2002-08-10 20:19:49 +00:00
Tomas V.V.Cox b8bace1e0a ZE2 fix on calls to mkdir() (thanks Brad Bulger <tater@potatoe.com>) 2002-08-10 16:33:08 +00:00
Marcus Boerger 21903dfc7e corrected handling of internal output buffers
minor fixs
2002-08-10 16:12:36 +00:00
Marcus Boerger ff63bf2a4f no need to start additional first buffer when output compression is first buffer 2002-08-10 12:58:46 +00:00
Marcus Boerger 289607970c should fix all windows warnings 2002-08-10 10:40:59 +00:00
Sebastian Bergmann 7c08781d50 Fix ZTS builds. 2002-08-10 03:03:03 +00:00
a9b66569b8 NEWS update 2002-08-10 00:17:51 +00:00
bff5368f1d ChangeLog update 2002-08-10 00:16:53 +00:00
Marcus Boerger 9c8ba935d6 Improved handling of output buffers (see news)\n#No trim for the string parameter... 2002-08-09 22:29:58 +00:00
Marcus Boerger 2e29e53e00 docref shall either be NULL or a reference to a manual page without an
extension or an external reference starting with 'http://'.
2002-08-09 21:57:03 +00:00
Georg Richter 0019a842b4 forgot to remove another LOCAL_INFILE opion call 2002-08-09 21:13:00 +00:00
Wez Furlong ccb5c84b6c Centralize some blocking socket related code.
# It's been a while since I wrote this!
2002-08-09 21:02:36 +00:00
Wez Furlong 9eb215511f syntax highlighting for vim 2002-08-09 20:56:52 +00:00
Marcus Boerger 783fddeb0f possible memoryleak 2002-08-09 20:53:37 +00:00
Georg Richter 34b166579c fixed bug #18815 2002-08-09 20:38:12 +00:00
Yasuo Ohgaki 872e0b0c71 Move unserialize_callback_func description a little 2002-08-09 06:18:46 +00:00
Yasuo Ohgaki e300506be6 Add unserialize_callback_func to php.ini-recommended. 2002-08-09 06:17:06 +00:00
Yasuo Ohgaki 70ef3f67f3 Added note for output_handler usage. (with Marcus and Adam's fix) 2002-08-09 06:14:33 +00:00
James Cox 1ae29d455c @Copy() fixed to return 1 on 0 byte files. Patch by Ilia A <ilia@prohost.org>. 2002-08-09 00:33:06 +00:00
4097df12c6 ChangeLog update 2002-08-09 00:18:23 +00:00
Yasuo Ohgaki c528157123 Remove duplicated checks. 2002-08-08 22:59:41 +00:00
Marcus Boerger e11e0b0ec0 No missleading 2002-08-08 22:11:24 +00:00
James Cox 073d7a483f thunder seems to have stopped 2002-08-08 21:26:49 +00:00
Hartmut Holzgraefe 1059312f37 reverting ' to \" to stop stupid discussions
although i still do not believe the arguments are reasonable ...
2002-08-08 20:19:33 +00:00
Marcus Boerger 976a91a55b Say FIXME to non function calls and non TSRM builds. Both will currentls
not show a default reference.
2002-08-08 19:36:49 +00:00
Marcus Boerger 88c385e817 rename php_error_func<n> to php_error_docref and support Wez idea
that solves ToDo requirement to point to PHP Manual in error messages.
2002-08-08 19:12:27 +00:00
Sebastian Bergmann 9abdbd9c29 Fix warnings. 2002-08-08 18:55:19 +00:00
Sebastian Bergmann 646292e08b Fix warning. 2002-08-08 18:50:46 +00:00
Marcus Boerger 9cf0c30968 those are allways defined -> fixes warning in basic_functions.c 2002-08-08 17:53:52 +00:00
Stanislav Malyshev 11fb07a360 Add ZEND_API to functions 2002-08-08 17:53:32 +00:00
Andi Gutmans 52406cb37c - Make new 'is' operator work with classes only and return false when
- the object isn't of the said class or the value isn't an object.
2002-08-08 16:32:34 +00:00
Andi Gutmans 7904787f95 - Bad Harald! :) 2002-08-08 16:07:09 +00:00
James Cox 66e78004c1 Reverting patch. after more investigation this doesn't help in all that many cases, and with Wez's better patch, sometimes degrade's quality. 2002-08-08 15:02:14 +00:00
Hartmut Holzgraefe e539c5564d the order to do things is save-compile-commit
no variations and make sure editor and shell are in the same dir :(
2002-08-08 13:59:19 +00:00
Hartmut Holzgraefe 83586a6c06 fix for #18782 (setting background color without making sure the text
crtmut in /new/php/php4untouched on hartmut
php4untouched > cvs update ext/standard/info.
cvs [update aborted]: received interrupt signal

hartmut in /new/php/php4untouched on hartmut
php4untouched > cvs update ext/standard/info.c
RCS file: /repository/php4/ext/standard/info.c,v
retrieving revision 1.184
retrieving revision 1.188
Merging differences between 1.184 and 1.188 into info.c
rcsmerge: warning: conflicts during merge
cvs server: conflicts found in ext/standard/info.c
C ext/standard/info.c

hartmut in /new/php/php4untouched on hartmut
php4untouched > cvs log ext/standard/info.c

RCS file: /repository/php4/ext/standard/info.c,v
Working file: ext/standard/info.c
head: 1.188
branch:
locks: strict
access list:
symbolic names:
        dev/: 1.188
				        php_4_2_2: 1.167.2.1
								        PHP_4_2_2: 1.167.2.1.0.2
												        php_4_3_0_dev_zend2_alpha2: 1.183
																        php5_5_0: 1.182
																				        php_4_3_0dev: 1.182
																								        php_4_3_0_dev_zend2_alpha1: 1.181
																												        php_4_2_1: 1.167.2.1
																																        php_4_2_1RC2: 1.167.2.1
																																				        php_4_2_1RC1: 1.167.2.1
																																								        php_4_2_0: 1.167.2.1
																																												        php_4_2_0RC4: 1.167.2.1
																																																        php_4_2_0RC3: 1.167.2.1
																																																				        php_4_2_0RC2: 1.167.2.1
																																																								        php_4_2_0RC1: 1.167.2.1
																																																												        PHP_4_2_0: 1.167.0.2
																																																																        php_4_1_2: 1.153.2.1
																																																																				        php_4_1_1: 1.153.2.1
																																																																								        ChangeLog: 1.161
																																																																												        php_4_1_0: 1.153.2.1
																																																																																        php_4_1_0RC5: 1.153.2.1
																																																																																				        php_4_1_0RC4: 1.153.2.1
																																																																																								        php_4_1_0RC3: 1.153.2.1
																																																																																												        php_4_1_0RC2: 1.153.2.1
																																																																																																        php_4_1_0RC1: 1.153.2.1
																																																																																																				        php_4_0_7RC3: 1.153
																																																																																																								        php4: 1.157
																																																																																																												        POST_SUBST_Z_MACROS: 1.157
																																																																																																																        PRE_SUBST_Z_MACROS: 1.155
																																																																																																																				        php_4_0_7RC2: 1.153
																																																																																																																								        RAND_REDESIGN: 1.154.0.2
																																																																																																																												        php_4_0_7RC1: 1.153
																																																																																																																																        PHP_4_0_7: 1.153.0.2
																																																																																																																																				        PRE_TSRM_MERGE_PATCH: 1.142
																																																																																																																																								        php_4_0_6: 1.137.2.1
																																																																																																																																												        php_4_0_6RC4: 1.137.2.1
																																																																																																																																																        php_4_0_6RC3: 1.137.2.1
																																																																																																																																																				        php_4_0_6RC2: 1.137.2.1
																																																																																																																																																								        php_4_0_6RC1: 1.137
																																																																																																																																																												        PHP_4_0_6: 1.137.0.2
																																																																																																																																																																        php_4_0_5: 1.132
																																																																																																																																																																				        php_4_0_5RC8: 1.132
																																																																																																																																																																								        php_4_0_5RC7: 1.132
																																																																																																																																																																												        php_4_0_5RC6: 1.132
																																																																																																																																																																																        php_4_0_5RC5: 1.132
																																																																																																																																																																																				        php_4_0_5RC4: 1.132
																																																																																																																																																																																								        php_4_0_5RC3: 1.132
																																																																																																																																																																																												        php_4_0_5RC2: 1.132
																																																																																																																																																																																																        php_4_0_5RC1: 1.132
																																																																																																																																																																																																				        PHP_4_0_5: 1.132.0.2
																																																																																																																																																																																																								        php_4_0_4pl1: 1.124
																																																																																																																																																																																																												        php_4_0_4pl1RC2: 1.124
																																																																																																																																																																																																																        php_4_0_4pl1RC1: 1.124
																																																																																																																																																																																																																				        php_4_0_4REL: 1.124
																																																																																																																																																																																																																								        php_4_0_4RC6: 1.124
																																																																																																																																																																																																																												        php_4_0_4RC5: 1.124
																																																																																																																																																																																																																																        php_4_0_4RC4: 1.124
																																																																																																																																																																																																																																				        php_4_0_4RC3: 1.124
																																																																																																																																																																																																																																								        php_4_0_4: 1.124.0.2
																																																																																																																																																																																																																																												        php_4_0_3: 1.116
																																																																																																																																																																																																																																																        php_4_0_3RC2: 1.114
																																																																																																																																																																																																																																																				        php_4_0_3RC1: 1.114
																																																																																																																																																																																																																																																								        php_4_0_2: 1.113
																																																																																																																																																																																																																																																												        php_4_0_2RC1: 1.110
																																																																																																																																																																																																																																																																        PRE_FILE_COMPILE_API_CHANGE: 1.108
																																																																																																																																																																																																																																																																				        php_4_0_1pl1: 1.104
																																																																																																																																																																																																																																																																								        php_4_0_1: 1.104
																																																																																																																																																																																																																																																																												        php_4_0_1RC2: 1.104
																																																																																																																																																																																																																																																																																        php_4_0_1RC: 1.101
																																																																																																																																																																																																																																																																																				        php_4_0_0: 1.93
																																																																																																																																																																																																																																																																																								        php_4_0RC2: 1.89
																																																																																																																																																																																																																																																																																												        php_4_0RC1: 1.70
																																																																																																																																																																																																																																																																																																        php_4_0b4pl1: 1.67
																																																																																																																																																																																																																																																																																																				        php_4_0b4: 1.65
																																																																																																																																																																																																																																																																																																								        php_4_0b4_rc1: 1.65
																																																																																																																																																																																																																																																																																																												        BEFORE_SAPI_POST_PATCH_17_FEB_2000: 1.62
																																																																																																																																																																																																																																																																																																																        BEFORE_SAPIFICATION_FEB_10_2000: 1.60
																																																																																																																																																																																																																																																																																																																				        BEFORE_PRE_SHUTDOWN_REVERSE_PATCH: 1.57
																																																																																																																																																																																																																																																																																																																								        PRE_ISSET_TYPE: 1.55
																																																																																																																																																																																																																																																																																																																												        PRE_LIBZEND_TO_ZEND: 1.51
																																																																																																																																																																																																																																																																																																																																        PRE_USED_RETURN_VALUE_PATCH: 1.39
																																																																																																																																																																																																																																																																																																																																				        php_4_0b3: 1.39
																																																																																																																																																																																																																																																																																																																																								        php_4_0b3_RC5: 1.39
																																																																																																																																																																																																																																																																																																																																												        php_4_0b3_RC4: 1.39
																																																																																																																																																																																																																																																																																																																																																        php_4_0b3_RC3: 1.39
																																																																																																																																																																																																																																																																																																																																																				        php_4_0b3_RC2: 1.39
																																																																																																																																																																																																																																																																																																																																																								        before-sapi-split: 1.36
																																																																																																																																																																																																																																																																																																																																																												        php_4_0b2: 1.30
																																																																																																																																																																																																																																																																																																																																																																        php_4_0b2-2: 1.27
																																																																																																																																																																																																																																																																																																																																																																				        php_4_0b2-1: 1.27
																																																																																																																																																																																																																																																																																																																																																																								        BEFORE_NEW_OPERATOR_FIX: 1.26
																																																																																																																																																																																																																																																																																																																																																																												        newoperator: 1.26.0.2
																																																																																																																																																																																																																																																																																																																																																																																        BEFORE_BIG_SYMBOL_CHANGE: 1.26
																																																																																																																																																																																																																																																																																																																																																																																				        php_4_0b1: 1.25
																																																																																																																																																																																																																																																																																																																																																																																								        BEFORE_REMOVING_AI_COUNT_FINAL_STEP: 1.14
																																																																																																																																																																																																																																																																																																																																																																																												        BEFORE_REMOVING_GC_STEP1: 1.14
																																																																																																																																																																																																																																																																																																																																																																																																        BEFORE_PHP4_APACHE_MODULE_CHANGE: 1.14
																																																																																																																																																																																																																																																																																																																																																																																																				keyword substitution: kv
																																																																																																																																																																																																																																																																																																																																																																																																				total revisions: 191;   selected revisions: 191
																																																																																																																																																																																																																																																																																																																																																																																																				description:
																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.188
																																																																																																																																																																																																																																																																																																																																																																																																				date: 2002/08/05 19:00:09;  author: helly;  state: Exp;  lines: +16 -2
																																																																																																																																																																																																																																																																																																																																																																																																				Correct carset if iconv is active
																																																																																																																																																																																																																																																																																																																																																																																																				#Same solution would work for mbstring - but that must wait
																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.187
																																																																																																																																																																																																																																																																																																																																																																																																				date: 2002/08/04 22:49:48;  author: helly;  state: Exp;  lines: +9 -3
																																																																																																																																																																																																																																																																																																																																																																																																				-Send charset US-ASCII or ini setting default_charset.
																																																																																																																																																																																																																																																																																																																																																																																																				#After some discussion with Ilia Alshanetsky
																																																																																																																																																																																																																																																																																																																																																																																																				#But perhaps we should have a look for a mbstring solution...
																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.186
																																																																																																																																																																																																																																																																																																																																																																																																				date: 2002/08/04 18:59:16;  author: georg;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																				ups.. :)
																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.185
																																																																																																																																																																																																																																																																																																																																																																																																				date: 2002/08/04 18:57:02;  author: georg;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																				added meta tag (w3c compliance)
																																																																																																																																																																																																																																																																																																																																																																																																				Thx to Ilia Alshanetsky (ilia@prohost.org)
																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.184
																																																																																																																																																																																																																																																																																																																																																																																																				date: 2002/07/01 18:52:30;  author: derick;  state: Exp;  lines: +8 -8
																																																																																																																																																																																																																																																																																																																																																																																																				- No C++ comments
																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.183
																																																																																																																																																																																																																																																																																																																																																																																																				date: 2002/06/19 13:24:01;  author: sander;  state: Exp;  lines: +7 -12
																																																																																																																																																																																																																																																																																																																																																																																																				Made the API versions appear better on phpinfo();
																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.182
																																																																																																																																																																																																																																																																																																																																																																																																				date: 2002/06/08 10:25:44;  author: mfischer;  state: Exp;  lines: +32 -2
																																																																																																																																																																																																																																																																																																																																																																																																				- Since streams are always enabled, instead of just printing 'enabled' we tell
																																																																																																																																																																																																																																																																																																																																																																																																				  what streams are currently registered.
																																																																																																																																																																																																																																																																																																																																																																																																					----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																					revision 1.181
																																																																																																																																																																																																																																																																																																																																																																																																					date: 2002/05/24 17:25:40;  author: sander;  state: Exp;  lines: +4 -4
																																																																																																																																																																																																																																																																																																																																																																																																					Fix <head> and <body> tags in phpinfo() output (#17411)
																																																																																																																																																																																																																																																																																																																																																																																																					----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																					revision 1.180
																																																																																																																																																																																																																																																																																																																																																																																																					date: 2002/05/13 17:43:04;  author: zeev;  state: Exp;  lines: +6 -6
																																																																																																																																																																																																																																																																																																																																																																																																					- Fix a buglet in printing of GPCSE arrays
																																																																																																																																																																																																																																																																																																																																																																																																					- Remove indirect access
																																																																																																																																																																																																																																																																																																																																																																																																					----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																					revision 1.179
																																																																																																																																																																																																																																																																																																																																																																																																					date: 2002/05/13 08:46:21;  author: zeev;  state: Exp;  lines: +4 -1
																																																																																																																																																																																																																																																																																																																																																																																																					- Centralize html_puts() again
																																																																																																																																																																																																																																																																																																																																																																																																					- Revolutionize phpinfo()'s speed
																																																																																																																																																																																																																																																																																																																																																																																																					----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																					revision 1.178
																																																																																																																																																																																																																																																																																																																																																																																																					date: 2002/05/12 14:50:54;  author: sas;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																					Use string_len information
																																																																																																																																																																																																																																																																																																																																																																																																					----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																					revision 1.177
																																																																																																																																																																																																																																																																																																																																																																																																					date: 2002/05/12 14:48:22;  author: sas;  state: Exp;  lines: +7 -6
																																																																																																																																																																																																																																																																																																																																																																																																					reenable php_html_puts
																																																																																																																																																																																																																																																																																																																																																																																																					----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																					revision 1.176
																																																																																																																																																																																																																																																																																																																																																																																																					date: 2002/05/11 12:41:32;  author: zeev;  state: Exp;  lines: +6 -6
																																																																																																																																																																																																																																																																																																																																																																																																					Centralize html_puts() logic - php_html_puts() remains as an API wrapper
																																																																																																																																																																																																																																																																																																																																																																																																					----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																					revision 1.175
																																																																																																																																																																																																																																																																																																																																																																																																					date: 2002/05/09 11:56:52;  author: derick;  state: Exp;  lines: +4 -1
																																																																																																																																																																																																																																																																																																																																																																																																					- Add PHP_API_VERSION too
																																																																																																																																																																																																																																																																																																																																																																																																					----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																					revision 1.174
																																																																																																																																																																																																																																																																																																																																																																																																					date: 2002/05/09 11:47:37;  author: derick;  state: Exp;  lines: +7 -4
																																																																																																																																																																																																																																																																																																																																																																																																					- Show both API nos
																																																																																																																																																																																																																																																																																																																																																																																																					----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																					revision 1.173
																																																																																																																																																																																																																																																																																																																																																																																																					date: 2002/05/02 17:36:00;  author: fmk;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																					Fixing wrong pointer
																																																																																																																																																																																																																																																																																																																																																																																																					----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																					revision 1.172
																																																																																																																																																																																																																																																																																																																																																																																																					date: 2002/05/02 12:33:03;  author: derick;  state: Exp;  lines: +7 -1
																																																																																																																																																																																																																																																																																																																																																																																																					- Add Zend API No. to phpinofo() output
																																																																																																																																																																																																																																																																																																																																																																																																					----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																					revision 1.171
																																																																																																																																																																																																																																																																																																																																																																																																					date: 2002/03/29 10:19:23;  author: ssb;  state: Exp;  lines: +71 -17
																																																																																																																																																																																																																																																																																																																																																																																																					(PHP php_uname) display runtime uname rather than compile-time uname, added
																																																																																																																																																																																																																																																																																																																																																																																																					                an optional parameter to get single fields (like uname(1))
																																																																																																																																																																																																																																																																																																																																																																																																													# Windows version is not tested, and I didn't know how to get
																																																																																																																																																																																																																																																																																																																																																																																																													# `uname -n` on Windows, so it's hardcoded to "localhost" for now.
																																																																																																																																																																																																																																																																																																																																																																																																													# Windows gurus feel free to fix. :-)
																																																																																																																																																																																																																																																																																																																																																																																																													----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																													revision 1.170
																																																																																																																																																																																																																																																																																																																																																																																																													date: 2002/03/15 21:03:05;  author: wez;  state: Exp;  lines: +2 -4
																																																																																																																																																																																																																																																																																																																																																																																																													New PHP streams...
																																																																																																																																																																																																																																																																																																																																																																																																													----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																													revision 1.169
																																																																																																																																																																																																																																																																																																																																																																																																													date: 2002/03/14 18:39:53;  author: zeev;  state: Exp;  lines: +3 -3
																																																																																																																																																																																																																																																																																																																																																																																																													Change case for consistency
																																																																																																																																																																																																																																																																																																																																																																																																													----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																													revision 1.168
																																																																																																																																																																																																																																																																																																																																																																																																													date: 2002/03/14 13:35:19;  author: zeev;  state: Exp;  lines: +3 -3
																																																																																																																																																																																																																																																																																																																																																																																																													Make it clearer what this entry means
																																																																																																																																																																																																																																																																																																																																																																																																													----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																													revision 1.167
																																																																																																																																																																																																																																																																																																																																																																																																													date: 2002/03/04 20:14:52;  author: sas;  state: Exp;  lines: +2 -1
																																																																																																																																																																																																																																																																																																																																																																																																													branches:  1.167.2;
																																																																																																																																																																																																																																																																																																																																																																																																													Add apparently missing include
																																																																																																																																																																																																																																																																																																																																																																																																													----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																													revision 1.166
																																																																																																																																																																																																																																																																																																																																																																																																													date: 2002/03/04 18:46:53;  author: sas;  state: Exp;  lines: +7 -6
																																																																																																																																																																																																																																																																																																																																																																																																													Supply php_html_puts which escapes a whole string.. now fully works in ZTS
																																																																																																																																																																																																																																																																																																																																																																																																													mode, too.
																																																																																																																																																																																																																																																																																																																																																																																																													----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																													revision 1.165
																																																																																																																																																																																																																																																																																																																																																																																																													date: 2002/03/04 18:12:55;  author: sas;  state: Exp;  lines: +5 -5
																																																																																																																																																																																																																																																																																																																																																																																																													revert last commit, puts does more through putc.
																																																																																																																																																																																																																																																																																																																																																																																																													----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																													revision 1.164
																																																																																																																																																																																																																																																																																																																																																																																																													date: 2002/03/04 17:48:20;  author: sas;  state: Exp;  lines: +6 -6
																																																																																																																																																																																																																																																																																																																																																																																																													Use PHPWRITE to output data.  Because this just outputs diagnostic
																																																																																																																																																																																																																																																																																																																																																																																																													information, a few spaces won't hurt (and multiple ones are rendered
																																																																																																																																																																																																																																																																																																																																																																																																													as one by browsers anyway).  Micro-benchmarks which use phpinfo()
																																																																																																																																																																																																																																																																																																																																																																																																													as a mean to generate output will yield more through-put now
																																																																																																																																																																																																																																																																																																																																																																																																													(35 req/s vs. 83 req/s in tux).
																																																																																																																																																																																																																																																																																																																																																																																																													----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																													revision 1.163
																																																																																																																																																																																																																																																																																																																																																																																																													date: 2002/02/28 08:26:45;  author: sebastian;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																													Maintain headers.
																																																																																																																																																																																																																																																																																																																																																																																																													----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																													revision 1.162
																																																																																																																																																																																																																																																																																																																																																																																																													date: 2001/12/29 14:23:58;  author: sebastian;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																													PHP 4.0 -> PHP 4. Patch by Martin Jansen <mail@martin-jansen.de>.
																																																																																																																																																																																																																																																																																																																																																																																																													----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																													revision 1.161
																																																																																																																																																																																																																																																																																																																																																																																																													date: 2001/12/11 15:30:32;  author: sebastian;  state: Exp;  lines: +3 -3
																																																																																																																																																																																																																																																																																																																																																																																																													Update headers.
																																																																																																																																																																																																																																																																																																																																																																																																													----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																													revision 1.160
																																																																																																																																																																																																																																																																																																																																																																																																													date: 2001/12/06 13:31:34;  author: sterling;  state: Exp;  lines: +3 -3
																																																																																																																																																																																																																																																																																																																																																																																																													use PHP_INFO_ALL and PHP_CREDITS_ALL instead of hardcoding them
																																																																																																																																																																																																																																																																																																																																																																																																													----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																													revision 1.159
																																																																																																																																																																																																																																																																																																																																																																																																													date: 2001/10/11 23:33:49;  author: ssb;  state: Exp;  lines: +17 -6
																																																																																																																																																																																																																																																																																																																																																																																																													* zend_module_entry change: apino, debug and zts are moved first,
																																																																																																																																																																																																																																																																																																																																																																																																													  see README.EXTENSIONS file for upgrade help.
																																																																																																																																																																																																																																																																																																																																																																																																														@Introduced extension version numbers (Stig)
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.158
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/10/06 20:13:37;  author: derick;  state: Exp;  lines: +3 -3
																																																																																																																																																																																																																																																																																																																																																																																																														- <br> -> <br />
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.157
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/09/25 22:48:43;  author: jeroen;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																														2nd phase in back-substitution those macro's

																																																																																																																																																																																																																																																																																																																																																																																																														I've got pretty much everything now...
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.156
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/09/25 21:58:23;  author: jeroen;  state: Exp;  lines: +13 -13
																																																																																																																																																																																																																																																																																																																																																																																																														Back-substitute for Z_* macro's. If it breaks some extension (the script isn't optimal, it parses for example var->zval.value incorrect) please let me know.
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.155
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/09/09 13:29:18;  author: derick;  state: Exp;  lines: +3 -3
																																																																																																																																																																																																																																																																																																																																																																																																														- Don't wrap lines... this is annoying while coding.
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.154
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/08/15 22:37:31;  author: sniper;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																														Add the build time too. Bug: #12774
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.153
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/08/13 19:31:16;  author: zeev;  state: Exp;  lines: +5 -3
																																																																																																																																																																																																																																																																																																																																																																																																														branches:  1.153.2;
																																																																																																																																																																																																																																																																																																																																																																																																														Fix crashes in parse_parameters calls
																																																																																																																																																																																																																																																																																																																																																																																																														HEADS UP:  Make sure you supply TSRMLS_CC for this function!
																																																																																																																																																																																																																																																																																																																																																																																																														I'll try to think of a way that'd allow us to find this issue using
																																																																																																																																																																																																																																																																																																																																																																																																														the compiler.
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.152
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/08/13 07:55:38;  author: rasmus;  state: Exp;  lines: +19 -13
																																																																																																																																																																																																																																																																																																																																																																																																														Track down a few more functions that don't check for 0 args and use
																																																																																																																																																																																																																																																																																																																																																																																																														faster mechanism
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.151
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/08/13 07:28:57;  author: rasmus;  state: Exp;  lines: +3 -1
																																																																																																																																																																																																																																																																																																																																																																																																														Oops, a little too much simplification there.. ;)
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.150
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/08/13 06:43:47;  author: rasmus;  state: Exp;  lines: +34 -36
																																																																																																																																																																																																																																																																																																																																																																																																														We don't consistently check for args passed to functions that don't
																																																																																																																																																																																																																																																																																																																																																																																																														take any args.  In some cases we probably want to skip the check for
																																																																																																																																																																																																																																																																																																																																																																																																														performance reasons, but in other cases where performance is unlikely
																																																																																																																																																																																																																																																																																																																																																																																																														to be a factor, not throwing a warning on the wrong number of args passed
																																																																																																																																																																																																																																																																																																																																																																																																														to a function is at best inconsistent, and at worst it could hide a bug.
																																																																																																																																																																																																																																																																																																																																																																																																														So, add a few such checks.  There are still lots of cases out there.
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.149
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/08/11 17:03:37;  author: zeev;  state: Exp;  lines: +11 -11
																																																																																																																																																																																																																																																																																																																																																																																																														Whitespace
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.148
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/08/08 17:16:20;  author: zeev;  state: Exp;  lines: +8 -7
																																																																																																																																																																																																																																																																																																																																																																																																														- Implement $_FORM
																																																																																																																																																																																																																																																																																																																																																																																																														- Update phpinfo()
																																																																																																																																																																																																																																																																																																																																																																																																														- Update NEWS
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.147
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/07/31 04:53:50;  author: zeev;  state: Exp;  lines: +4 -5
																																																																																																																																																																																																																																																																																																																																																																																																														More TSRMLS_FETCH work
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.146
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/07/30 09:16:44;  author: zeev;  state: Exp;  lines: +3 -4
																																																																																																																																																																																																																																																																																																																																																																																																														More TSRMLS_FETCH work
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.145
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/07/30 06:18:06;  author: zeev;  state: Exp;  lines: +3 -2
																																																																																																																																																																																																																																																																																																																																																																																																														More TSRMLS_FETCH work, and a bit of cleanup
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.144
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/07/28 11:36:17;  author: zeev;  state: Exp;  lines: +1 -2
																																																																																																																																																																																																																																																																																																																																																																																																														Redesigned thread safety mechanism - nua nua
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.143
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/07/27 10:16:30;  author: zeev;  state: Exp;  lines: +10 -10
																																																																																																																																																																																																																																																																																																																																																																																																														- Get rid of ELS_*(), and use TSRMLS_*() instead.
																																																																																																																																																																																																																																																																																																																																																																																																														- Move to the new ts_allocate_id() API
																																																																																																																																																																																																																																																																																																																																																																																																														This patch is *bound* to break some files, as I must have had typos somewhere.
																																																																																																																																																																																																																																																																																																																																																																																																														If you use any uncommon extension, please try to build it...
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.142
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/06/19 15:21:28;  author: sbergmann;  state: Exp;  lines: +12 -12
																																																																																																																																																																																																																																																																																																																																																																																																														Finish phpinfo() HTML 4.01 tweaking.
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.141
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/06/15 18:34:09;  author: sbergmann;  state: Exp;  lines: +38 -40
																																																																																																																																																																																																																																																																																																																																																																																																														Make output of phpinfo() compliant with HTML 4.01.
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.140
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/06/06 13:05:51;  author: rasmus;  state: Exp;  lines: +27 -13
																																																																																																																																																																																																																																																																																																																																																																																																														Fix folding and clean up some extensions
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.139
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/06/05 13:12:04;  author: rasmus;  state: Exp;  lines: +2 -1
																																																																																																																																																																																																																																																																																																																																																																																																														vim-6 does folding - clean up a bunch of missing folding tags plus
																																																																																																																																																																																																																																																																																																																																																																																																														some misguided RINIT and RSHUTDOWN calls in a few fringe extensions
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.138
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/05/20 01:31:53;  author: sniper;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																														This looks better.
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.137
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/05/11 13:34:49;  author: derick;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																														branches:  1.137.2;
																																																																																																																																																																																																																																																																																																																																																																																																														Tabs please...
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.136
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/05/11 13:32:10;  author: sbergmann;  state: Exp;  lines: +3 -1
																																																																																																																																																																																																																																																																																																																																																																																																														Fix for bug #10815.
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.135
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/05/06 15:20:56;  author: sniper;  state: Exp;  lines: +14 -14
																																																																																																																																																																																																																																																																																																																																																																																																														Fix bug: #10323. Every value outputted is now escaped.
																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.134
																																																																																																																																																																																																																																																																																																																																																																																																														date: 2001/04/22 01:09:13;  author: ssb;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																														* expanded the following constants and made them available in PHP:
																																																																																																																																																																																																																																																																																																																																																																																																														  DEFAULT_INCLUDE_PATH
																																																																																																																																																																																																																																																																																																																																																																																																															  PEAR_INSTALL_DIR
																																																																																																																																																																																																																																																																																																																																																																																																																  PHP_EXTENSION_DIR
																																																																																																																																																																																																																																																																																																																																																																																																																	  PHP_BINDIR
																																																																																																																																																																																																																																																																																																																																																																																																																		  PHP_LIBDIR
																																																																																																																																																																																																																																																																																																																																																																																																																			  PHP_DATADIR
																																																																																																																																																																																																																																																																																																																																																																																																																				  PHP_SYSCONFDIR
																																																																																																																																																																																																																																																																																																																																																																																																																					  PHP_LOCALSTATEDIR
																																																																																																																																																																																																																																																																																																																																																																																																																						  PHP_CONFIG_FILE_PATH
																																																																																																																																																																																																																																																																																																																																																																																																																							* no longer generating pear/PEAR.php
																																																																																																																																																																																																																																																																																																																																																																																																																							* fixed some tests
																																																																																																																																																																																																																																																																																																																																																																																																																							* some more installer work
																																																																																																																																																																																																																																																																																																																																																																																																																							----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																							revision 1.133
																																																																																																																																																																																																																																																																																																																																																																																																																							date: 2001/04/17 17:06:06;  author: wez;  state: Exp;  lines: +6 -1
																																																																																																																																																																																																																																																																																																																																																																																																																							Changes for streams.  Added temporary fopenstream function to PHP so that
																																																																																																																																																																																																																																																																																																																																																																																																																							the streams can be tested.
																																																																																																																																																																																																																																																																																																																																																																																																																							----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																							revision 1.132
																																																																																																																																																																																																																																																																																																																																																																																																																							date: 2001/03/04 22:03:23;  author: zeev;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																							I don't know German, but I imagine that was the problem :)
																																																																																																																																																																																																																																																																																																																																																																																																																							----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																							revision 1.131
																																																																																																																																																																																																																																																																																																																																																																																																																							date: 2001/03/04 15:49:38;  author: zeev;  state: Exp;  lines: +7 -8
																																																																																																																																																																																																																																																																																																																																																																																																																							Fix phpinfo() bug that crept in
																																																																																																																																																																																																																																																																																																																																																																																																																							----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																							revision 1.130
																																																																																																																																																																																																																																																																																																																																																																																																																							date: 2001/03/04 02:41:27;  author: fmk;  state: Exp;  lines: +9 -15
																																																																																																																																																																																																																																																																																																																																																																																																																							Changed code layout to remove PHP warning when running php as a CGI.
																																																																																																																																																																																																																																																																																																																																																																																																																							----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																							revision 1.129
																																																																																																																																																																																																																																																																																																																																																																																																																							date: 2001/02/26 06:07:17;  author: andi;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																							- Fix copyright notices with 2001
																																																																																																																																																																																																																																																																																																																																																																																																																							----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																							revision 1.128
																																																																																																																																																																																																																																																																																																																																																																																																																							date: 2001/01/02 22:49:26;  author: zeev;  state: Exp;  lines: +3 -3
																																																																																																																																																																																																																																																																																																																																																																																																																							Many patches.  I hope I remember them all:

																																																																																																																																																																																																																																																																																																																																																																																																																							- Make sapi_module available to external modules (PHPAPI)
																																																																																																																																																																																																																																																																																																																																																																																																																							- Make the php.ini path reported in phpinfo() always point to
																																																																																																																																																																																																																																																																																																																																																																																																																							  real full path of the php.ini file
																																																																																																																																																																																																																																																																																																																																																																																																																								- Optimized the ISAPI module not to read unnecessary server
																																																																																																																																																																																																																																																																																																																																																																																																																								  variables and read necessary variables at most once.
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.127
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/12/27 15:43:05;  author: zeev;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																									- Make the INI mechanism thread safe (fix necessary API changes from Zend)
																																																																																																																																																																																																																																																																																																																																																																																																																									- Make the Win32 non-TS configuration build again
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.126
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/12/22 12:57:08;  author: zeev;  state: Exp;  lines: +2 -3
																																																																																																																																																																																																																																																																																																																																																																																																																									Heads up people!

																																																																																																																																																																																																																																																																																																																																																																																																																									Updated the get_current_key() API - the relevant authors, please take
																																																																																																																																																																																																																																																																																																																																																																																																																									a look at the updated code and make sure it's ok...
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.125
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/12/19 22:59:14;  author: zeev;  state: Exp;  lines: +2 -1
																																																																																																																																																																																																																																																																																																																																																																																																																									Add the QA team to the credits
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.124
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/11/20 10:05:57;  author: hholzgra;  state: Exp;  lines: +1 -146
																																																																																																																																																																																																																																																																																																																																																																																																																									first step towards auto-generated credits
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.123
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/11/19 19:18:12;  author: hholzgra;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																									typo fix (copy/paste bug?)
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.122
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/11/11 18:38:26;  author: sas;  state: Exp;  lines: +7 -6
																																																																																																																																																																																																																																																																																																																																																																																																																									Add Apache 2.0 sapi module and sort alphabetically.
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.121
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/11/06 22:53:11;  author: derick;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																									- Added myself to the credits...
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.120
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/11/05 23:34:49;  author: jdonagher;  state: Exp;  lines: +25 -5
																																																																																																																																																																																																																																																																																																																																																																																																																									Bring phpcredits() up to date
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.119
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/11/02 19:07:15;  author: neotron;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																									Added Caudium to credit line.
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.118
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/10/31 17:21:52;  author: hholzgra;  state: Exp;  lines: +4 -4
																																																																																																																																																																																																																																																																																																																																																																																																																									generalization of image handling in phpinfo
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.117
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/10/29 11:38:24;  author: zeev;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																									Initial steps to move the INI mechanism to the Zend engine
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.116
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/10/11 13:51:32;  author: hholzgra;  state: Exp;  lines: +3 -3
																																																																																																																																																																																																																																																																																																																																																																																																																									proto typo fixes
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.115
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/10/11 11:40:29;  author: hholzgra;  state: Exp;  lines: +10 -1
																																																																																																																																																																																																																																																																																																																																																																																																																									added missing protos
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.114
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/09/30 16:12:54;  author: andi;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																									- Cleanup some output functions
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.113
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/08/27 22:46:40;  author: rasmus;  state: Exp;  lines: +17 -20
																																																																																																																																																																																																																																																																																																																																																																																																																									Some minor cleanup to make W3C's tidy validator happy
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.112
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/08/27 19:42:45;  author: ssb;  state: Exp;  lines: +35 -19
																																																																																																																																																																																																																																																																																																																																																																																																																									@Added php_uname() function (Stig)
																																																																																																																																																																																																																																																																																																																																																																																																																									Added php_uname() function.
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.111
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/08/26 12:53:13;  author: rubys;  state: Exp;  lines: +2 -1
																																																																																																																																																																																																																																																																																																																																																																																																																									Add ***EXPERIMENTAL*** Zend OO Extension support for Microsoft.Net
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.110
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/08/21 09:50:52;  author: sas;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																									Cleaning up some mess
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.109
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/08/20 14:43:56;  author: sas;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																									Fix numerus of SAPI Modules title
																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.108
																																																																																																																																																																																																																																																																																																																																																																																																																									date: 2000/07/26 05:41:38;  author: sterling;  state: Exp;  lines: +2 -1
																																																																																																																																																																																																																																																																																																																																																																																																																									* EXTENSIONS -- update status on CURL & SWF
																																																																																																																																																																																																																																																																																																																																																																																																																									* NEWS --
																																																																																																																																																																																																																																																																																																																																																																																																																									  1.  Change wording for the ibase and sybase DB announcement.
																																																																																																																																																																																																																																																																																																																																																																																																																										  2.  Remove second pfpro announcement, if pfpro is being released with 4.0.2
																																																																																																																																																																																																																																																																																																																																																																																																																											  entries about new features before 4.0.2 shouldn't be in there.
																																																																																																																																																																																																																																																																																																																																																																																																																												  3.  Joey, that entry just doesn't seem incredibly relevant to the NEWS file,
																																																																																																																																																																																																																																																																																																																																																																																																																													  I'll backport it if you want (or add a new entry).
																																																																																																																																																																																																																																																																																																																																																																																																																														* ext/standard/info.c -- Add a CREDIT_LINE() for CURL.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.107
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/07/25 10:54:07;  author: stas;  state: Exp;  lines: +3 -3
																																																																																																																																																																																																																																																																																																																																																																																																																														Report configuration path that is really used, not that is compiled in
																																																																																																																																																																																																																																																																																																																																																																																																																														# it does matter when using -c option
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.106
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/07/24 01:39:49;  author: david;  state: Exp;  lines: +3 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														Changed lots of PHP 3 licence headers to PHP 4, mainly in .h files.
																																																																																																																																																																																																																																																																																																																																																																																																																														Added a few RCS $Id$ tags.

																																																																																																																																																																																																																																																																																																																																																																																																																														# Note: I have avoided changing any .h files if the corresponding .c file
																																																																																																																																																																																																																																																																																																																																																																																																																														# had not already been changed as I am not sure if there are any legal
																																																																																																																																																																																																																																																																																																																																																																																																																														# issues here. So some extensions still have PHP 3 headers.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.105
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/07/08 19:31:16;  author: eschmid;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														Uncomplete proto.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.104
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/06/26 18:05:49;  author: andrei;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																														Separate plain name returned by php_sapi_module() and pretty name
																																																																																																																																																																																																																																																																																																																																																																																																																														used for output.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.103
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/06/26 14:55:38;  author: kk;  state: Exp;  lines: +3 -2
																																																																																																																																																																																																																																																																																																																																																																																																																														Corrected a syntax error: Macro requires braces.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.102
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/06/26 14:43:37;  author: kk;  state: Exp;  lines: +12 -0
																																																																																																																																																																																																																																																																																																																																																																																																																														Added function php_sapi_name() as written by Stefan Livieratos.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.101
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/06/17 07:08:53;  author: hholzgra;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														changed default cell alignment to "left" (see bug id #5048)
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.100
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/06/16 18:23:57;  author: hholzgra;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																														C++ // comments are evil ...
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.99
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/06/09 01:50:44;  author: zeev;  state: Exp;  lines: +9 -7
																																																																																																																																																																																																																																																																																																																																																																																																																														Move back everything to where it belongs...
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.98
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/06/06 17:26:15;  author: hholzgra;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														added missing '/' to closing <center> tag (BUG ID #4416)
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.97
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/06/05 19:47:44;  author: andi;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																														- ARG_COUNT(ht) -> ZEND_NUM_ARGS() mega patch
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.96
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/06/03 03:05:29;  author: zeev;  state: Exp;  lines: +1 -0
																																																																																																																																																																																																																																																																																																																																																																																																																														- Make the INI entries sorted in phpinfo()
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.95
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/05/27 00:24:03;  author: zeev;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														Add Sam Ruby
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.94
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/05/25 11:01:31;  author: kk;  state: Exp;  lines: +2 -0
																																																																																																																																																																																																																																																																																																																																																																																																																														- Added credits.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.93
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/05/19 08:28:53;  author: zeev;  state: Exp;  lines: +6 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														Minor output mods
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.92
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/05/18 15:34:35;  author: zeev;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																														Update the license with the new clause 6
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.91
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/05/12 20:49:26;  author: sterling;  state: Exp;  lines: +1 -0
																																																																																																																																																																																																																																																																																																																																																																																																																														Add Meself for LibSWF.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.90
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/05/12 20:11:14;  author: jah;  state: Exp;  lines: +3 -3

																																																																																																																																																																																																																																																																																																																																																																																																																														# Correct spelling, adding Andrew because half the code in that module is
																																																																																																																																																																																																																																																																																																																																																																																																																														# his, removing myself from Informix because I don't think my influence to
																																																																																																																																																																																																																																																																																																																																																																																																																														# that module was big enough worth mentioning, adding myself to GD because
																																																																																																																																																																																																																																																																																																																																																																																																																														# I think T1lib is worth mentioning. BTW, who wrote the TTF extension? I think
																																																																																																																																																																																																																																																																																																																																																																																																																														# he is missing credits here.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.89
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/05/04 10:38:14;  author: sas;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														Change reentrancy API to always use the php prefix.

																																																																																																																																																																																																																																																																																																																																																																																																																														Check for the declaration of reentrant functions, so that we can use
																																																																																																																																																																																																																																																																																																																																																																																																																														them in non-ZTS mode on all platforms.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.88
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/27 18:37:02;  author: zeev;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														More error handling work (still completely disabled)
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.87
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/21 16:20:11;  author: thies;  state: Exp;  lines: +6 -0
																																																																																																																																																																																																																																																																																																																																																																																																																														add VDIR info
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.86
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/19 23:46:26;  author: zeev;  state: Exp;  lines: +2 -5
																																																																																																																																																																																																																																																																																																																																																																																																																														Fix Win32 compilation.  Hillarious April 1st joke!
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.85
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/19 23:17:02;  author: cmv;  state: Exp;  lines: +17 -2
																																																																																																																																																																																																																																																																																																																																																																																																																														A little easter egg for April 1st ... :)
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.84
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/19 12:43:54;  author: zeev;  state: Exp;  lines: +6 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														phpcredits() update.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.83
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/17 18:57:40;  author: eschmid;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														Have forgotten myself.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.82
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/14 21:12:21;  author: eschmid;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														Small corrections.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.81
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/14 18:22:43;  author: zeev;  state: Exp;  lines: +5 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														Add the documentation team to the credits page
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.80
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/10 20:21:01;  author: zeev;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																														Object overloading API changed slightly (llist is now a pointer)
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.79
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/07 16:41:19;  author: cmv;  state: Exp;  lines: +11 -10
																																																																																																																																																																																																																																																																																																																																																																																																																														more prettiness
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.78
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/07 15:30:47;  author: zeev;  state: Exp;  lines: +8 -6
																																																																																																																																																																																																																																																																																																																																																																																																																														Unify
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.77
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/06 22:54:33;  author: andi;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														- ZEND_DEBUG is always defined
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.76
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/05 22:30:19;  author: cmv;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														phpinfo() prettying

																																																																																																																																																																																																																																																																																																																																																																																																																														I will get to the rest of the functions later tonight or tomorrow
																																																																																																																																																																																																																																																																																																																																																																																																																														(i.e. from hyperwave to snmp)
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.75
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/05 21:03:30;  author: cmv;  state: Exp;  lines: +5 -3
																																																																																																																																																																																																																																																																																																																																																																																																																														finally (thanks Andreas)
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.74
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/05 21:00:35;  author: cmv;  state: Exp;  lines: +3 -3
																																																																																																																																																																																																																																																																																																																																																																																																																														still cant get this
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.73
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/05 20:48:46;  author: cmv;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																														phpinfo() prettying
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.72
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/05 20:29:20;  author: cmv;  state: Exp;  lines: +5 -3
																																																																																																																																																																																																																																																																																																																																																																																																																														fixed the segfault problem (probably not the prettiest way, but)
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.71
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/04/05 20:17:02;  author: cmv;  state: Exp;  lines: +132 -62
																																																																																																																																																																																																																																																																																																																																																																																																																														Prettying up the output of phpinfo().  Someone has to tell me how
																																																																																																																																																																																																																																																																																																																																																																																																																														to get a new .gif logo in there, and why the ZEND_DEBUG output is
																																																																																																																																																																																																																																																																																																																																																																																																																														causing seg faults.

																																																																																																																																																																																																																																																																																																																																																																																																																														I also need to go through all the modules and fix up the output they
																																																																																																																																																																																																																																																																																																																																																																																																																														create.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.70
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/03/16 02:18:24;  author: thies;  state: Exp;  lines: +2 -0
																																																																																																																																																																																																																																																																																																																																																																																																																														*** empty log message ***
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.69
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/02/26 03:20:54;  author: zeev;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														- Convert 'PHP3' to 'PHP'
																																																																																																																																																																																																																																																																																																																																																																																																																														- Avoid declaring crypt() related salt types twice
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.68
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/02/24 08:07:29;  author: eschmid;  state: Exp;  lines: +0 -2
																																																																																																																																																																																																																																																																																																																																																																																																																														More protos.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.67
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/02/21 14:50:41;  author: chagenbu;  state: Exp;  lines: +2 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														being accountable for the imap and mcal work that I've done (and adding an
																																																																																																																																																																																																																																																																																																																																																																																																																														MCAL credits line)
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.66
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/02/21 14:35:28;  author: askalski;  state: Exp;  lines: +2 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														added myself to the FTP/IMAP credits
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.65
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/02/19 23:41:21;  author: zeev;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																														the pipe is breaking all the time
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.64
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/02/19 20:12:26;  author: zeev;  state: Exp;  lines: +1 -0
																																																																																																																																																																																																																																																																																																																																																																																																																														Worked on beautifying rfc1867.c a bit
																																																																																																																																																																																																																																																																																																																																																																																																																														@- Introduced $HTTP_POST_FILES[], that contains information about files uploaded
																																																																																																																																																																																																																																																																																																																																																																																																																														@  through HTTP upload (Zeev)
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.63
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/02/18 17:59:44;  author: zeev;  state: Exp;  lines: +35 -9
																																																																																																																																																																																																																																																																																																																																																																																																																														- Fix some issues with the ISAPI module, made it friendlier to non Win32 platforms
																																																																																																																																																																																																																																																																																																																																																																																																																														- Added .reg file for PWS setup
																																																																																																																																																																																																																																																																																																																																																																																																																														- Reordered some stuff in phpinfo()
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.62
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/02/11 15:59:29;  author: zeev;  state: Exp;  lines: +3 -3
																																																																																																																																																																																																																																																																																																																																																																																																																														Fine tune Andi's patch
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.61
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/02/10 21:53:56;  author: andi;  state: Exp;  lines: +3 -3
																																																																																																																																																																																																																																																																																																																																																																																																																														- Get rid of some more evil MSVC5's and switch standard/ to use PHP_WIN32
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.60
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/02/05 22:58:59;  author: zeev;  state: Exp;  lines: +56 -84
																																																																																																																																																																																																																																																																																																																																																																																																																														Standardize
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.59
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/02/05 15:16:11;  author: zeev;  state: Exp;  lines: +0 -2
																																																																																																																																																																																																																																																																																																																																																																																																																														Cleanup patches
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.58
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/02/02 14:15:33;  author: andrei;  state: Exp;  lines: +2 -3
																																																																																																																																																																																																																																																																																																																																																																																																																														Some rearranging.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.57
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/01/09 18:32:13;  author: zeev;  state: Exp;  lines: +6 -3
																																																																																																																																																																																																																																																																																																																																																																																																																														@- Fixed a possible crash in phpinfo() (Zeev)
																																																																																																																																																																																																																																																																																																																																																																																																																														phpinfo() now ensures that HTTP_*_VARS[] are actually arrays before it tries
																																																																																																																																																																																																																																																																																																																																																																																																																														to access them...
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.56
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 2000/01/01 01:31:52;  author: sas;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														Happy Y2K patch! Happy new year (or the new millennium, depending on whether
																																																																																																																																																																																																																																																																																																																																																																																																																														you start counting at 0 or 1).
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.55
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/12/21 20:35:43;  author: zeev;  state: Exp;  lines: +12 -0
																																																																																																																																																																																																																																																																																																																																																																																																																														@- Fixed a bug in ODBC error reporting (Zeev)
																																																																																																																																																																																																																																																																																																																																																																																																																														@- Added PHP_Logo_GUID() and Zend_Logo_GUID() functions, that return the GUIDs
																																																																																																																																																																																																																																																																																																																																																																																																																														@  of the PHP and Zend logos used in phpinfo() (Zeev)
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.54
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/12/20 23:09:49;  author: sas;  state: Exp;  lines: +2 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														Use sapi_module_struct to contain SAPI module name
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.53
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/12/20 15:38:44;  author: zeev;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														Make the Win32 tree compile again
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.52
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/12/20 07:12:27;  author: sas;  state: Exp;  lines: +2 -0
																																																																																																																																																																																																																																																																																																																																																																																																																														Add information about chosen SAPI module to phpinfo()
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.51
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/12/18 22:35:27;  author: zeev;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																														- The tree compiles again
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.50
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/12/18 04:01:14;  author: zeev;  state: Exp;  lines: +7 -7
																																																																																																																																																																																																																																																																																																																																																																																																																														More php3_ annihilation
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.49
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/12/14 03:48:46;  author: thies;  state: Exp;  lines: +12 -8
																																																																																																																																																																																																																																																																																																																																																																																																																														use _ex-API
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.48
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/12/07 02:49:03;  author: evan;  state: Exp;  lines: +1 -0
																																																																																																																																																																																																																																																																																																																																																																																																																														Mention CyberCash.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.47
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/12/03 20:08:24;  author: rubys;  state: Exp;  lines: +2 -0
																																																																																																																																																																																																																																																																																																																																																																																																																														windows build errors
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.46
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/12/03 17:10:18;  author: neotron;  state: Exp;  lines: +1 -0
																																																																																																																																																																																																																																																																																																																																																																																																																														Added credit notes for Roxen SAPI module
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.45
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/12/03 13:31:41;  author: ssb;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														Add configure command to phpinfo() output (Stig)
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.44
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/11/29 15:36:24;  author: rubys;  state: Exp;  lines: +1 -0
																																																																																																																																																																																																																																																																																																																																																																																																																														Initial alpha-level of sapi/servlet.  See README for details.
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.43
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/11/24 17:56:31;  author: sas;  state: Exp;  lines: +0 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														Killing some unused variable warnings
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.42
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/11/22 19:10:14;  author: fmk;  state: Exp;  lines: +1 -0
																																																																																																																																																																																																																																																																																																																																																																																																																														add MS SQL module to credit info
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.41
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/11/18 03:03:24;  author: rubys;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														arg!  alphabetize correctly!
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.40
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/11/18 02:40:52;  author: rubys;  state: Exp;  lines: +1 -0
																																																																																																																																																																																																																																																																																																																																																																																																																														add Java module to credit info
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.39
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/10/20 16:16:58;  author: sas;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														(_display_module_info): Add anchor for module names
																																																																																																																																																																																																																																																																																																																																																																																																																														----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																														revision 1.38
																																																																																																																																																																																																																																																																																																																																																																																																																														date: 1999/10/04 15:18:19;  author: sas;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																														        * archive-based convenience libraries completely replaced
																																																																																																																																																																																																																																																																																																																																																																																																																																		          with libtool components

																																																																																																																																																																																																																																																																																																																																																																																																																																							        * SAPI targets can enable thread-safe mode and define
																																																																																																																																																																																																																																																																																																																																																																																																																																											          shared/static/program build target

																																																																																																																																																																																																																																																																																																																																																																																																																																																        * all configure scripts use the same config.cache

																																																																																																																																																																																																																																																																																																																																																																																																																																																				        * phplibdir is $(top_builddir)/modules to avoid
																																																																																																																																																																																																																																																																																																																																																																																																																																																								          permission problems

																																																																																																																																																																																																																																																																																																																																																																																																																																																													        * sapi/*/Makefile.inc are gone

																																																																																																																																																																																																																																																																																																																																																																																																																																																																	        * runpath handling cleaned up

																																																																																																																																																																																																																																																																																																																																																																																																																																																																					        * top-level Makefile.in obsoleted through Makefile.am

																																																																																																																																																																																																																																																																																																																																																																																																																																																																									        * --enable-versioning uses libtool's cleaner and more
																																																																																																																																																																																																																																																																																																																																																																																																																																																																													          portable -export-symbols feature
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																		----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																		revision 1.37
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																		date: 1999/10/01 14:54:55;  author: andrei;  state: Exp;  lines: +4 -4
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																		rename.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																		----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																		revision 1.36
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																		date: 1999/09/25 15:41:51;  author: sas;  state: Exp;  lines: +1 -0
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																		    Add entry for AOLserver.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.35
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/09/24 18:02:58;  author: thies;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				updated XML (only partly tested)
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.34
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/09/16 22:15:43;  author: zeev;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				Generalize SAPI a bit
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.33
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/09/13 01:11:41;  author: zeev;  state: Exp;  lines: +7 -1
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				Modified phpinfo() to show the contents of arrays in HTTP_*_VARS[]
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.32
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/09/13 00:35:03;  author: zeev;  state: Exp;  lines: +14 -2
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				Fix a buglet, and avoid crashing in phpinfo() (fixes an elusive legacy bug too)
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.31
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/09/11 16:32:08;  author: zeev;  state: Exp;  lines: +4 -4
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				Rename allow_builtin_links to expose_php
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.30
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/08/07 18:21:35;  author: zeev;  state: Exp;  lines: +18 -10
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				Built-in phpinfo() links are now turned off by default.  They can be
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				turned on using the allow_builtin_links INI directive
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.29
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/08/07 17:52:11;  author: zeev;  state: Exp;  lines: +18 -3
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				- Changed phpinfo() to list modules that have no info function
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.28
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/08/07 15:50:26;  author: sr;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				Corrected spelling.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.27
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/08/02 19:16:50;  author: zeev;  state: Exp;  lines: +38 -38
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				Removed '3' from key functions in PHP (maintained compatibility through
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				php3_compat.h)
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.26
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/07/19 20:27:49;  author: andrey;  state: Exp;  lines: +1 -0
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				Updated status
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.25
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/07/19 18:37:42;  author: zeev;  state: Exp;  lines: +10 -10
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				*** empty log message ***
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.24
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/07/19 14:07:10;  author: sas;  state: Exp;  lines: +1 -0
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				update
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.23
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/07/19 13:35:13;  author: andrey;  state: Exp;  lines: +3 -1
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				More credits.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.22
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/07/17 20:38:14;  author: andrey;  state: Exp;  lines: +2 -1
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				Update credits a bit.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				"Overall Work" line should probably be extended.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.21
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/07/17 19:22:27;  author: zeev;  state: Exp;  lines: +3 -3
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				*** empty log message ***
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.20
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/07/17 19:17:42;  author: zeev;  state: Exp;  lines: +115 -60
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				I was sure I committed these already.  Weird
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.19
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/07/17 17:33:42;  author: zeev;  state: Exp;  lines: +44 -2
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				*** empty log message ***
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.18
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/07/16 13:12:56;  author: zeev;  state: Exp;  lines: +9 -20
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				License update
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.17
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/07/14 23:34:30;  author: zeev;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				php3.ini -> php.ini
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.16
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/07/14 23:33:00;  author: zeev;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				* Update logos
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				* Move from PreAlpha 1 to Beta 1.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.15
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/07/14 16:02:10;  author: andi;  state: Exp;  lines: +129 -151
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				- Add a bitwise flag to phpinfo()
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				- Import a draft of the new PHP license
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.14
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/05/20 12:06:45;  author: andi;  state: Exp;  lines: +6 -0
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				- Small fixes
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.13
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/05/16 11:19:26;  author: sas;  state: Exp;  lines: +2 -2
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				conv_proto *.[ch]
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.12
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/05/11 00:43:46;  author: zeev;  state: Exp;  lines: +13 -17
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				beatify Apache's info func
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				revision 1.11
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				date: 1999/05/09 08:48:01;  author: zeev;  state: Exp;  lines: +100 -159
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				* Finalizing the PHP version of SAPI.  Support POST and cookies among other things.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				* Fully implement ISAPI support - POST and cookies among other things.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				* Almost completely rewrote phpinfo().  Allow modules to easily display their
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																				  information in phpinfo() without modifying phpinfo() itself (prototype for
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																					  the module info function was changed, thus the large amount of updated module
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																						  files).
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																							* Initial extended SAPI support for Apache, completely untested.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																							* CGI now uses SAPI fully as well.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																							----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																							revision 1.10
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																							date: 1999/05/06 18:09:50;  author: zeev;  state: Exp;  lines: +3 -0
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																							* Optimize _php3_parse_gpc_data() and clean it up, plus fix a couple of Zend related memory leaks in it
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																							----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																							revision 1.9
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																							date: 1999/05/02 19:54:02;  author: zeev;  state: Exp;  lines: +7 -2
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																							Move path_info to the SAPI structure
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																							----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																							revision 1.8
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																							date: 1999/04/26 17:26:36;  author: zeev;  state: Exp;  lines: +19 -10
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																							* Get the Apache module to compile again
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																							* Get rid of php3_rqst, use SG(server_context) instead (there's still Apache-specific code,
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																							  but it nuked a global)
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																								----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																								revision 1.7
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																								date: 1999/04/26 14:00:49;  author: zeev;  state: Exp;  lines: +1 -3
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																								* Plenty of thread safety and Win32 work.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																								* Changed PHP4 to compile as a DLL, both ISAPI and the the CGI run with the same DLL.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																								* Switched to using the DLL runtime library under Win32.  PHP will NOT work if
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																								  compiled against the static library!
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									* Removed yesterday's php4libts project (with php4dllts, it's obsolete).

																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									This *does* affect thread-unsafe Windows as well - the thread unsafe CGI is also
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									dependant on the thread-unsafe DLL.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.6
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									date: 1999/04/24 00:11:56;  author: zeev;  state: Exp;  lines: +8 -12
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									A lot of cleanups...  Removed old thread-safe code and other redundant code and files
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.5
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									date: 1999/04/23 20:05:59;  author: zeev;  state: Exp;  lines: +1 -3
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									Remove tls.[ch]
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.4
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									date: 1999/04/22 00:25:57;  author: ssb;  state: Exp;  lines: +1 -1
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									moved fdf, hyperwave, informix and some smaller files
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.3
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									date: 1999/04/18 15:58:26;  author: zeev;  state: Exp;  lines: +3 -3
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									Make Win32 happy with the recent changes.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.2
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									date: 1999/04/17 01:52:58;  author: ssb;  state: Exp;  lines: +6 -2
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									make sure the images on the phpinfo() page point to PHP-enabled pages
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									----------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									revision 1.1
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									date: 1999/04/17 00:37:06;  author: ssb;  state: Exp;
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									First commit of re-structuring phase one.  We have started using automake in
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									sub-directories and started to move extension code into ext/<name>.  For now,
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									I have moved the "standard" extension (which is quite a mix of everything
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									right now) and the GD extension into their own subdirs in ext/.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									The configure script now also runs configure in the libzend directory
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									automatically and makes sure php4 and libzend use the same config.cache file.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									To avoid running configure in libzend, use the --no-recursion option.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									"make" in php4 also builds libzend now.
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									The Apache module doesn't compile right now, but a fix for that is
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									coming up.

																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									CVS: ----------------------------------------------------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									CVS: Enter Log.  Lines beginning with `CVS:' are removed automatically
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									CVS:
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									CVS: Committing in .
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									CVS:
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									CVS: Modified Files:
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									CVS:  ext/standard/info.c
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									CVS: ----------------------------------------------------------------------
																																																																																																																																																																																																																																																																																																																																																																																																																																																																																									~                                               olor is readable on it)

someone should change all this to make use of CSS as we already have
a CSS block in there, but i do not know enough about it

oh, btw: changed all the ugly uses of \" in tag attriutes to '
as i was already on it ;)
2002-08-08 13:31:49 +00:00
Stefan Esser 6f822fdcb7 A full hard disk is no reason to leak memory... 2002-08-08 12:40:51 +00:00
Markus Fischer 652baa710e - Add note how php_error() messages SHOULD (rfc2119) look like. 2002-08-08 11:22:18 +00:00
Zeev Suraski 0e50ac4b2c MFZE1 2002-08-08 08:42:22 +00:00
Georg Richter f9e5ba3446 Ups, forgot to remove load_infile tests. Thx to Brad Bulgar 2002-08-08 08:17:24 +00:00
Dan Kalowsky 9b7cc76300 fix for bug #18794, not checking for actual files 2002-08-08 05:52:15 +00:00
Yasuo Ohgaki 6ad0dbf5fa Add some assertion 2002-08-08 03:08:54 +00:00
Yasuo Ohgaki 4b7ad8104e Forgot this one. Fix build 2002-08-08 01:50:23 +00:00
Yasuo Ohgaki 19df86f388 Fix build 2002-08-08 01:46:07 +00:00
c4b11d2447 ChangeLog update 2002-08-08 00:18:02 +00:00
Georg Richter 8f7792a769 added zend_error messages for deprecated functions
inserted zak and me in author list/credits
2002-08-07 22:02:11 +00:00
Georg Richter f4b4797aa8 removed unsued constants (MYSQL_USE_RESULT and MYSQL_STORE_RESULT) 2002-08-07 21:21:46 +00:00
Marcus Boerger e50228ab5b -new functions php_error_func<0> to support unified error messages
#read followup
2002-08-07 18:29:36 +00:00
Harald Radi e84bddf76a dump memory leaks on shutdown 2002-08-07 18:16:44 +00:00
Joseph Tate 3001ecc948 #Stupid. Sorry. 2002-08-07 17:03:42 +00:00
Joseph Tate 17d94ed821 #Don't use C++ Comments bug #18783 2002-08-07 16:52:00 +00:00
Marcus Boerger abb280e9f7 left on debug infos
#overlooked that in diff
2002-08-07 16:35:48 +00:00
Marcus Boerger 36986742ae Ignore additional thumbnails
#anybody interested in expansion to support multiple thumbnails?
2002-08-07 16:19:43 +00:00
Harald Radi 99c90db11a make win32 debug output more verbose 2002-08-07 14:47:42 +00:00
Brad House a77c0a13f7 more syncing with libmcve-3.0 2002-08-07 14:29:16 +00:00
Yasuo Ohgaki 885d8073e4 Fixed crash. Patch by <kilbi@rad.rwth-aachen.de> 2002-08-07 11:50:49 +00:00
Brad LaFountain a8326d6f62 Sync with Sourceforge CVS 2002-08-07 03:03:09 +00:00
f7ac5069b3 ChangeLog update 2002-08-07 00:18:32 +00:00
Dan Kalowsky e47f69532f A folding we will go, a folding we will go,
adding the fold and vim lines to make this easier to follow
2002-08-06 22:08:23 +00:00
Marko Karppinen 107a9efbd9 Fix the framework support 2002-08-06 22:05:38 +00:00
Marko Karppinen 7498f56852 Updated proto to match the function (fix compile bustage on osx) 2002-08-06 19:39:12 +00:00
Marko Karppinen 6d80c191bb The link lines don't need any of $DEFS, $INCLUDES, $EXTRA_INCLUDES or
$CPPFLAGS, right? Removed them. Added frameworks to $COMMON_FLAGS.
2002-08-06 17:51:24 +00:00
1698 changed files with 136027 additions and 132935 deletions

No files matched your search

+285
View File
@@ -0,0 +1,285 @@
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 = 0
____printzv $arg0 0
end
document printzv
prints content of zval
end
define ____printzv
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 "[0x%08x] ", $zvalue
if $zvalue == executor_globals.uninitialized_zval_ptr
printf "*uninitialized* "
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)"
# 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
if $zvalue->type == 6
if $zvalue->lval
printf "true"
else
printf "false"
end
end
if $zvalue->type == 7
printf "#%d", $zvalue->value.lval
end
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
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
end
if $znode->op_type == 2
printf ": "
set $tvar = (union _temp_variable *)((char *)executor_globals.current_execute_data->Ts + $znode->u.var)
____printzv ((union _temp_variable *)$tvar)->tmp_var
end
if $znode->op_type == 4
printf ": "
set $tvar = (union _temp_variable *)((char *)executor_globals.current_execute_data->Ts + $znode->u.var)
____printzv *$tvar->var.ptr_ptr
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 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
+78 -17
View File
@@ -13,6 +13,8 @@ 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
@@ -46,23 +48,58 @@ Exceptions:
doing so, should return that new length, so it doesn't have to be
recalculated with strlen() (e.g. php_addslashes())
[5] Use php_error() to report any errors/warnings during code execution.
Use descriptive error messages, and try to avoid using identical
error strings for different stages of an error. For example,
if in order to obtain a URL you have to parse the URL, connect,
and retreive the text, assuming something can go wrong at each
of these stages, don't report an error "Unable to get URL"
on all of them, but instead, write something like "Unable
to parse URL", "Unable to connect to URL server" and "Unable
to fetch URL text", respectively.
[5] Use php_error_docref() group of functions to report any errors/warnings
during code execution. Use descriptive error messages, and try to avoid
using identical error strings for different stages of an error. For
example, if in order to obtain a URL you have to parse the URL, connect,
and retreive the text, assuming something can go wrong at each of these
stages, don't report an error "Unable to get URL" on all of them, but
instead, write something like "Unable to parse URL", "Unable to connect
to URL server" and "Unable to fetch URL text", respectively.
It has been silently agreed to prefix every php_error() message with the
name of the current function if applicable:
php_error(E_WHATEVER, "%s(): Desc.", get_active_function_name(TSRMLS_C));
This can be done automatically using php_error_docref(). The first
parameter, docref, is either NULL or the URL of a page describing the
error in detail. In most cases you will pass NULL, to generate the URL
from the name of the function being executed:
php_error_docref(NULL TSRMLS_CC, E_WHATEVER, "Desc.");
If you pass a URL, it can either be a full URL beginning with "http://":
php_error_docref("http://externalsite.tld/page.ext#error"
TSRMLS_CC, E_WHATEVER, "Desc.");
Or the name of a manual page without file extension, but with an optional
target anchor. Or simply the anchor within the manual page of the current
function. When using function names you must replace '_' by '-':
php_error_docref("function.ext-func#error" TSRMLS_CC, E_WHATEVER, "Desc.");
To display one or two important parameters after the function name, use
php_error_docref1() or php_error_docref2(). For example, file functions
should display the name of the file opened:
php_error_docref1("function.fopen" TSRMLS_CC, filename,
E_WHATEVER, "Desc.");
php_error_docref2("function.fopen" TSRMLS_CC, filename, openmode,
E_WHATEVER, "Desc.");
Fixing ("unifying") existing php_error() message is a good thing [tm].
[6] 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.
[7] Use ZEND_* macros instead of PHP_* macros. Use of PHP_* macros is not
recommended. Since most of the PHP_* macros are ZEND_* macro aliases, using
the PHP_* macros makes browsing the source code with a tag search harder.
[7] 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.
[8] Use assert(). assert.h is included in php.h if it is available. Not only
does good assertion catch bugs, but it also helps with code readability.
@@ -74,6 +111,30 @@ Exceptions:
Function calls in assert conditions may also cause this problem, if
they modify one of their arguments or global variables.
[9] 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.
[10] 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
[11] 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
------------------
@@ -152,13 +213,13 @@ Syntax and indentation
[3] Be generous with whitespace and braces. Always prefer:
if (foo) {
bar;
}
if (foo) {
bar;
}
to:
to:
if(foo)bar;
if(foo)bar;
Keep one empty line between the variable declaration section and
the statements in a block, as well as between logical statement
+16894
View File
File diff suppressed because it is too large. Load diff
+52 -18
View File
@@ -31,6 +31,11 @@ EXTENSION: aolserver
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: activescript
PRIMARY MAINTAINER: Wez Furlong <wez@php.net>
MAINTENANCE: Odd Fixes
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: apache
PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
MAINTENANCE: Maintained
@@ -45,6 +50,10 @@ EXTENSION: cgi
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: cli
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: fhttpd
MAINTENANCE: Unknown
STATUS: Unknown
@@ -54,8 +63,9 @@ MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: nsapi
MAINTENANCE: Unknown
STATUS: Unknown
PRIMARY MAINTAINER: Uwe Schindler <thetaphi@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: phttpd
MAINTENANCE: Unknown
@@ -89,7 +99,7 @@ STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: dba
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
PRIMARY MAINTAINER: Marcus Börger <helly@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
@@ -126,7 +136,7 @@ STATUS: Experimental
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: interbase
PRIMARY MAINTAINER: Jouni Ahto <jouni.ahto@exdec.fi>
PRIMARY MAINTAINER: Jouni Ahto <jouni.ahto@exdec.fi>, Ard Biesheuvel <ard@ard.nu>
MAINTENANCE: Odd Fixes
STATUS: Working
-------------------------------------------------------------------------------
@@ -147,7 +157,8 @@ STATUS: Working
COMMENT: Tested on phpts and isapi versions
-------------------------------------------------------------------------------
EXTENSION: mysql
MAINTENANCE: Unknown
PRIMARY MAINTAINER: Zak Greant <zak@mysql.com>, Georg Richter <georg@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: pgsql
@@ -173,7 +184,7 @@ EXTENSION: odbc
PRIMARY MAINTAINER: Daniel R. Kalowsky <kalowsky@php.net>
MAINTENANCE: Maintained
STATUS: Working
COMMENT: Working except for persistent connections
COMMENT: Working
-------------------------------------------------------------------------------
EXTENSION: oracle
PRIMARY MAINTAINER: Thies C. Arntzen <thies@thieso.net>
@@ -196,11 +207,23 @@ MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: bz2
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
MAINTENANCE: Maintained
PRIMARY MAINTAINER: Hartmut Holzgraefe <hartmut@six.de>
MAINTENANCE: Odd Fixes
STATUS: Working
SINCE: 4.0.3
-------------------------------------------------------------------------------
EXTENSION: dio
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
MAINTENANCE: Orphaned
STATUS: Working
SINCE: 4.0.6
-------------------------------------------------------------------------------
EXTENSION: cyrus
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
MAINTENANCE: Orphaned
STATUS: Working
SINCE: 4.0.6
-------------------------------------------------------------------------------
EXTENSION: calendar
PRIMARY MAINTAINER: Hartmut Holzgraefe <hartmut@six.de>
MAINTENANCE: Odd Fixes
@@ -258,9 +281,15 @@ PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
MAINTENANCE: Maintained
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: fribidi
PRIMARY MAINTAINER: Tal Peer <tal@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: ftp
MAINTENANCE: Unknown
STATUS: Unknown
PRIMARY MAINTAINER: Stefan Esser (sesser@php.net)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: gd
PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
@@ -280,6 +309,11 @@ EXTENSION: icap
MAINTENANCE: Unknown
STATUS: Obsolete
-------------------------------------------------------------------------------
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
@@ -417,8 +451,8 @@ SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: swf
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
MAINTENANCE: Maintained
STATUS: Depreciated (Use the ming swf extension instead)
MAINTENANCE: Orphaned
STATUS: Deprecated (Use the ming swf extension instead)
COMMENT: Only for Unix (won't change)
-------------------------------------------------------------------------------
EXTENSION: sysvsem
@@ -445,9 +479,9 @@ MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: xslt
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
MAINTENANC: Maintained
STATUS: Working
PRIMARY MAINTAINER: Hartmut Holzgraefe <hartmut@six.de>
MAINTENANCE: Odd Fixes
STATUS: Working (mostly)
-------------------------------------------------------------------------------
EXTENSION: yaz
PRIMARY MAINTAINER: Adam Dickmeiss <adam@indexdata.dk>
@@ -465,9 +499,9 @@ MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: zziplib
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
PRIMARY MAINTAINER: Hartmut Holzgraefe <hartmut@six.de>
MAINTENANCE: Odd Fixes
STATUS: Working
SINCE: 4.0.5
-------------------------------------------------------------------------------
# iptc?
+5
View File
@@ -8,6 +8,11 @@ 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
+5
View File
@@ -1,3 +1,8 @@
#
# Zend
#
$(builddir)/zend_language_scanner.lo: $(builddir)/zend_language_parser.h
$(builddir)/zend_ini_scanner.lo: $(builddir)/zend_ini_parser.h
+29 -25
View File
@@ -3,35 +3,28 @@ 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)
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)
libphp4.la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
$(LIBTOOL) --mode=link $(CC) $(COMMON_FLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
$(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 libphp4.la $(phptempdir)/libphp4.la >/dev/null 2>&1
libs/libphp4.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/libphp4.so
php: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
$(BUILD_CGI)
sapi/cli/php: $(PHP_GLOBAL_OBJS) $(PHP_CLI_OBJS)
$(BUILD_CLI)
install: $(all_targets) $(install_targets)
install: $(install_targets)
install-cli: sapi/cli/php
@echo "Installing PHP CLI binary: $(INSTALL_ROOT)$(bindir)/"
@$(INSTALL_CLI)
install-sapi: libphp4.la
@echo "Installing PHP SAPI module"
-@$(LIBTOOL) --silent --mode=install cp libphp4.la $(phptempdir)/libphp4.la >/dev/null 2>&1
install-sapi: $(OVERALL_TARGET)
@echo "Installing PHP SAPI module: $(PHP_SAPI)"
-@$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
-@if test ! -r $(phptempdir)/libphp4.$(SHLIB_SUFFIX_NAME); then \
for i in 0.0.0 0.0 0; do \
@@ -48,26 +41,37 @@ install-modules: build-modules
$(mkinstalldirs) $(INSTALL_ROOT)$(EXTENSION_DIR) && \
echo "Installing shared extensions: $(INSTALL_ROOT)$(EXTENSION_DIR)/" && \
rm -f modules/*.la && \
cp modules/* $(INSTALL_ROOT)$(EXTENSION_DIR) >/dev/null 2>&1 || true
$(INSTALL) modules/* $(INSTALL_ROOT)$(EXTENSION_DIR) >/dev/null 2>&1 || true
install-tester:
@echo "Installing regression tester: $(INSTALL_ROOT)$(PEAR_INSTALLDIR)/"
@$(mkinstalldirs) $(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: sapi/cli/php
@TEST_PHP_EXECUTABLE=$(top_builddir)/sapi/cli/php \
$(top_builddir)/sapi/cli/php -c php.ini-dist $(top_srcdir)/run-tests.php
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 -o -name \*.la -o -name \*.a| xargs rm -f
find . -name \*.lo | xargs rm -f
find . -name \*.o | xargs rm -f
find . -name \*.la | xargs rm -f
find . -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
find . -name .libs -a -type d|xargs rm -rf
rm -f libphp4.la php sapi/cli/php modules/* libs/*
rm -f libphp4.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 php4.spec sapi/apache/libphp4.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
+787 -37
View File
@@ -1,8 +1,749 @@
PHP 4 NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
? ? ??? 2002, Version 4.3.0
25 Aug 2003, Version 4.3.3
- Upgraded the bundled Expat library to version 1.95.6. (Jani)
- Upgraded the bundled PCRE library to version 4.3. (Andrei)
- Upgraded the bundled GD library to version GD 2.0.15. (Ilia)
- Improved the engine to use POSIX/socket IO where feasible. (Sascha)
- Improved the IMAP extension (Ilia)
. Added imap_timeout() function. (bug #24161)
. Added optional 'charset' parameter to imap_search() and imap_sort().
(bug #22505)
- Improved the InterBase extension (Daniela)
. Added transaction constants: IBASE_REC_VERSION, IBASE_REC_NO_VERSION,
IBASE_WRITE, IBASE_WAIT and IBASE_CONCURRENCY. (bugs #8797, #23887)
. Made numeric/decimal datatype handling work on any platform.
- Improved the NSAPI SAPI module (Uwe Schindler)
. Added possibility to use PHP to generate HTTP error pages (404 Not Found..)
. Added possibility to use PHP to generate directory listings for directories
without index.html
. php4_init (magnus.conf): new parameter to set alternate path to php.ini.
(php_ini="/path/to/php.ini")
. php4_execute (obj.conf): support for additional php.ini values.
Allows different settings per virtual server.
(See sapi/nsapi/nsapi-readme.txt for more information)
. Added support for virtual().
. Added nsapi_request_headers() and nsapi_response_headers() with aliases
for apache compatibility.
. Added "nsapi.read_timeout" php.ini option.
. Synced $_SERVER variables to be similar to Apache variables.
- Added DBA handler 'inifile' to support ini files. (Marcus)
- Added a "DEBUG" note to 'php -v' output when --enable-debug is used. (Derick)
- Added long options into CLI & CGI (e.g. --version). (Marcus)
- Added a new parameter to preg_match*() that can be used to specify
the starting offset in the subject string to match from. (Andrei)
- Fixed possible integer overflows in:
. base64_encode(). (Moriyoshi)
. bundled GD library. (Ilia)
- Fixed "mysql.connect_timeout" php.ini option to be settable with ini_set().
(Rasmus)
- Fixed FastCGI IIS document root problem. (Shane)
- Fixed corruption of multibyte character including 0x5c as second
byte in multipart/form-data. (Rui)
- Fixed possible crash in imagerotate() when an invalid color index
is used for background color. (Pierre-Alain Joye)
- Fixed a bug that under certain circumstances could invalidate safe_mode.
(Ilia)
- Fixed certificate version and allowed setting of the serial number in
openssl_csr_sign(). (Stefan Roehrich)
- Fixed each() to be binary safe for keys. (Zeev)
- Fixed ext/yaz to not log if "yaz.log_file" php.ini option is not set. (Adam)
- Fixed a bug in bundled libmysql (mysql bug #564). (Georg)
- Fixed ext/exif to honor "magic_quotes_runtime" php.ini option. (Marcus)
- Fixed bug #25093 (ext/pgsql: Various leaks due to non-freed queries). (Ilia)
- Fixed bug #25084 (ext/session: Fixed session.referer_check to be independent
on register_globals). (Ilia)
- Fixed bug #25081 (odbc_fetch_array() may mangle numeric fields). (Ilia)
- Fixed bug #25044 (header("Location:") changing HTTP status). (Marcus)
- Fixed bug #25037 (win32 mail(): Possible infinite loop inside SendText()).
(Ilia)
- Fixed bug #25007 (rand() & mt_rand() seed RNG every call). (Jani)
- Fixed bug #24989 (external libexpat conflicts with bundled libexpat). (Jani)
- Fixed bug #24980 (array_reduce() uses first element as default running
total). (Ilia)
- Fixed bug #24977 (Reverted mysql_select_db() optimization). (Ilia)
- Fixed bug #24958 (Apache2 SAPIs: Incorrect handling of 404s). (Ilia, Justin)
- Fixed bug #24951 (ob_flush() needlessly destroys output handler). (Ilia)
- Fixed bug #24936 (ext/fdf not linked properly as shared extension). (Jani)
- Fixed bug #24909 (Bad random numbers with ZTS builds on Solaris). (Ilia)
- Fixed bug #24897 (inconsistent behavior of shuffle() & array_multisort()).
(Ilia, Jani)
- Fixed bug #24883 ("variables_order" and "gpc_order" being ignored). (Ilia)
- Fixed bug #24873 (incorrect handling of / inside open_basedir). (Ilia)
- Fixed bug #24871 (aggregate(): methods misidentified as constructors). (Ilia)
- Fixed bug #24827 (ob_gzhandler overrides Vary header). (Ilia)
- Fixed bug #24792 (--enable-zend-multibyte causes random segfaults with ZTS).
(Fujimoto)
- Fixed bug #24783 (foreach($ar as $key => $val), $key not binary safe). (Zeev)
- Fixed bug #24760 (non-default SNMP port number not working). (Jani)
- Fixed bug #24752 (Unhandled "uniqueidentifier" field type).
(Ilia, s.sonnenberg[at]coolspot.de)
- Fixed bug #24710 (Crash when $obj->{0} is used). (Zeev)
- Fixed bug #24663 (\n. sequences were not being escaped). (Ilia)
- Fixed bug #24640 (var_export() and var_dump() can not output large floats).
(Marcus)
- Fixed bug #24629 (FreeBSD select() does not like large microseconds values).
(Mirco Bauer).
- Fixed bug #24609 (ext/domxml: segfault when using replace node across
different docs). (Rob Richards)
- Fixed bug #24594 (Rewrite of the imagefill() function). (Pierre-Alain Joye)
- Fixed bug #24592 (NULL related crash in session extension). (Sascha)
- Fixed bug #24573 (debug_backtrace() crashes if $this set to null). (Jani)
- Fixed bug #24560 (parse_url() incorrectly handling certain file:// based
schemas). (Ilia)
- Fixed bug #24557 (make fclose() respect refcount on the resource).
(Wez, Ilia)
- Fixed bug #24537 (apache2 compile misses some include directories). (Jani)
- Fixed bug #24535 (ext/mysql: crash when retrieving data from unbuffered
result after the original connection has been changed). (Ilia)
- Fixed bug #24519 (aggregate_methods_by_list() does not increment refcount).
- Fixed bug #24313 (file_exists() warning on non-existent files when
open_basedir is used). (Ilia)
- Fixed bug #24312 (base64_decode() does not skip 0xF0-0xFF characters).
(gereon.steffens[at]onvista.de, Ilia)
- Fixed bug #24284 (Fixed memory leak inside pg_ping()). (Ilia)
- Fixed bug #24249 (fdf_add_doc_javascript() not available on Windows). (Edin)
- Fixed bug #24224 (ibase_blob_get() overflow). (Ard)
- Fixed bug #24223 (missing variable initialization in bundled gd). (Ilia)
- Fixed bug #24220 (range() didn't handle numeric strings correctly). (Ilia)
- Fixed bug #24210 (not detecting assume_default_colors - typo). (Sara)
- Fixed bug #24198 (Invalid recursion detection in array_merge_recurcive()).
(Ilia)
- Fixed bug #24177 (Apache2 SAPIs: status set incorrectly after flush()).
(Ilia)
- Fixed bug #24155 (gdImageRotate270 incorrectly use x parameter for y axis).
(tom@gksystems.com, Ilia)
- Fixed bug #24150 (crash in imap_fetch_overview() &
imap_rfc822_write_address()). (Ilia)
- Fixed bug #24142 (workaround for a gcc bug affecting round()). (Marcus, Ilia)
- Fixed bug #24063 (serialize() missing 0 after the . on scientific notation).
(Marcus, Ilia)
- Fixed bug #24063 (scientific notation broken in *printf()). (Ilia)
- Fixed bug #24060 (ncurses_del_panel() causes segfault). (Georg)
- Fixed bug #24054 (Integer overflow failure with GCC/x86 for *=). (Sascha)
- Fixed bug #24028 (Reading raw post message by php://input failed). (Jani)
- Fixed bug #24009 (FastCGI handling of file not found). (Shane)
- Fixed bug #24007 (Problem with register_globals & arrays). (Ilia)
- Fixed bug #23951 (constants in static initializers clobbered by inheritance).
(Wez, Zend Engine)
- Fixed bug #23936 (ext/interbase: fail to select and fetch). (Ard)
- Fixed bug #23913 (make rename() work across partitions on *nix). (Ilia)
- Fixed bug #23912 (Invalid CSS in phpinfo() output). (Ilia)
- Fixed bug #23902 (NULL in CGI header output). (Shane)
- Fixed bug #23898 (Proper handling of NULLs in odbc_result, odbc_fetch_into
and odbc_result_all). (Ilia)
- Fixed bug #23897 (Fixed a check for mbfilter_ru.h). (aleks@m2media.ru, Ilia)
- Fixed bug #23894 (sprintf() decimal specifiers problem). (Moriyoshi)
- Fixed bug #23888 (Missing input validation for flags parameter). (Ilia)
- Fixed bug #23808 (broken imagecopymerge()). (Pierre-Alain Joye)
- Fixed bug #23798 (Spaces were not being stripped from Bcc header). (Ilia)
- Fixed bug #23792 (imagerotate() problems with limited platte, the function
will always return true color image from now on). (Pierre-Alain Joye)
- Fixed bug #23779 (mysql_connect(): disable local infile option if php.ini
option "open_basedir" is set). (Georg)
- Fixed bug #23769 (In FreeBSD glob() gives wrong result when pattern not
found). (Hartmut)
- Fixed bug #23733 (Coredump on startup with Oracle 9+). (Edin)
- Fixed bug #23685 (fake values returned when OID value is an empty string).
(Jani)
- Fixed bug #23664 (FastCGI socket listenting). (Shane)
- Fixed bug #23509 (exit code lost when exit() called from
register_shutdown_function()). (Ilia)
- Fixed bug #23463 (ext/dbase: added Dbase2 version check). (Vlad Krupin)
- Fixed bug #23285 (Potential Stack overflow in zendlex). (Wez)
- Fixed bug #23104 (hash position of static arrays not being reset). (Ilia)
- Fixed bug #23038, #23574 (aggregate() related leaks and crashes). (Andrei)
- Fixed bug #22947 (Ack() inside win32/sendmail.c may stall in certain
situations). (Ilia)
- Fixed bug #22690 (ob_start() did not work with create_function() callbacks).
(Marcus)
- Fixed bug #22592 (Cascading assignments to strings with curly braces broken).
(Stas)
- Fixed bug #22245 (References inside $_SESSION not being handled). (Ilia)
- Fixed bug #22154 (Possible crash when memory_limit is reached and output
buffering in addition to session.use_trans_sid is used). (Ilia)
- Fixed bug #22072 (Apache2 sapis do not detect aborted connections). (Ilia)
- Fixed bug #21958 (workaround for unusual realpath() on AIX & Tru64). (Ilia)
- Fixed bug #21957 (serialize() mangles objects with __sleep). (Ilia)
- Fixed bug #21918 (strange behaviour of mixed type in array-keys). (Marcus)
- Fixed bug #21855 (Threading issue on HP-UX). (Roshan Naik, Andi, Moriyoshi)
- Fixed bug #21611 (version_compare() does not support "p" as suffix).
(Stefan Walk)
- Fixed bug #21074 (Apache2: "ErrorDocument xxx /error.php" broken). (Jani)
- Fixed bug #20896 (-s -w modes with php-cli cause php to hang). (Ilia)
- Fixed bug #19613 (putenv("VAR=") does not empty VAR on win32). (Zeev)
- Fixed bug #18744 (ibase_blob_add() has max limit of 64k). (Ard)
- Fixed bug #18291 (escapeshellcmd() can now handle quoted arguments). (Ilia)
- Fixed bug #17414 (pthreads bug workaround). (timo.teras[at]iki.fi)
- Fixed bug #13142 (strtotime not handling "M d H:i:s Y" format). (Ilia)
- Fixed bug #11924 (ibase_query(), ibase_execute() mangled passed parameters).
(Jani)
- Fixed bug #7014 (crash in _php_ibase_error() after request shutdown). (Ard)
29 May 2003, Version 4.3.2
- Syncronized bundled GD library with GD 2.0.12. (Ilia)
- Removed support for GDLIB version 1.x.x (php_gd.dll) on Windows. (Edin)
- Enabled read-only GIF support in the bundled GDLIB (php_gd2.dll) on Windows.
(Sebastian, Edin)
- Improved dba extension (Marcus)
. Added support for internal error handling of Berkeley db libraries.
. Disallowed Berkeley db versions 4.1.0 to 4.1.24 due to locking problems.
. Disallowed linkage of Berkeley db submodules against libraries with
different major versions.
. Disallowed configuring of more than one Berkeley db handler.
. Reenabled dba_popen() with new persistent STDIO streams.
- Added a new Apache 2.0 SAPI module (sapi/apache2handler) based on the old
version (sapi/apache2filter). (Ian Holsman, Justin Erenkrantz)
- Added "disable_classes" php.ini option to allow administrators to disable
certain classes for security reasons. (Harald)
- Added man page for CLI version of PHP. (Marcus)
- Added --clean option into phpize. (Jani)
- Added --ldflags option into php-config. (Jani)
- Added imagesavealpha() and imageistruecolor() functions. (Pierre)
- Added XBM support for bundled GD library. (Marcus)
- Added session_regenerate_id() function. (Sascha)
- Added zlib_get_coding_type() function which returns the coding type used for
output compression. (Moriyoshi)
- Added OCIPasswordChange() which allows renewing expired Oracle users. (Maxim)
- Added memory_get_usage(). Only available when PHP is configured with
--enable-memory-limit. (Andrey)
- Added improved JPEG 2000 support for getimagesize(). (Marcus, Adam Wright)
- Added XBM and WBMP support for getimagesize(). (Marcus)
- Added KOI8-R, CP866, and CP1251 support for htmlentities().
(Antony Dovgal, Moriyoshi)
- Added domdocument->free() to free XML-documents from memory. (Rob Richards)
- Fixed a bug in error reporting with the CLI for start-up errors. (Derick)
- Fixed spurious fsync calls during socket communication. (Sascha)
- Fixed a possible vhost issue in thttpd. (Sascha, dgl@dgl.cx)
- Fixed including from HTTP URLs. (Sascha)
- Fixed a lot of memory leaks in domxml. (Rob Richards, Chregu)
- Fixed a bug in GD's truecolor TTF handling. (Derick)
- Fixed several 64-bit problems. (Dave)
- Fixed several errors in hwapi extension. Objects weren't handled properly.
(Uwe)
- Fixed bug #23788 (str|preg_replace() clobber the array elements). (Ilia)
- Fixed bug #23765 (file uploads ignored due to case sensitivity). (Sara)
- Fixed bug #23738 (ifx_copy_blob() crash). (Jani)
- Fixed bug #23661 (mysql_fetch_array() gives no warning when an invalid
argument was passed as result_type). (Derick)
- Fixed bug #23619 (set_error_handler() registered handler not called for
object instances). (Jani, waboring@qualys.com)
- Fixed bug #23606 (Unable to build --with-db4 (db4.1.25)). (Marcus)
- Fixed bug #23567 (pfsockopen() returns dead connections). (Wez)
- Fixed bug #23539 (curl_exec() produces strange results). (daniel@haxx.se)
- Fixed bug #23527 (PostScript Type 1 fonts do not render properly).
(nid@home.se, Ilia)
- Fixed bug #23402 (crash with improper use of mssql_bind()). (Frank)
- Fixed bug #23371 (configure falsely detects c-client using SSL). (Jani)
- Fixed bug #23340 (fopen on multiple URLs causes memory corruption). (Wez)
- Fixed bug #23298 (serialize cuts off floats & doubles). (Ilia, Marcus)
- Fixed bug #23232 (safe_mode does not honor PHP_AUTH_* in apache2). (Ilia)
- Fixed bug #23225 (money_format() didn't handle erroneous return of strfmon).
(Ilia, marcot@tabini.ca)
- Fixed bug #23201 (set_file_buffer() crashes with stdio streams). (Ilia)
- Fixed Bug #23188 (CDB databases created with 'c' mode do not work). (Marcus)
- Fixed bug #23187 (memory leaks in sybase_connect/sybase_pconnect). (Ilia)
- Fixed bug #23162 (user_error() crashs if error message > 1024 bytes).
(Jay, Marcus, Moriyoshi)
- Fixed bug #23152 ($http_response_header empty on invalid URLs). (Ilia)
- Fixed bug #23102 (integer overflow in exif_iif_add_value()). (Ilia)
- Fixed bug #23099 (ext/interbase: libgds.so: undefined reference to 'crypt').
(Jani)
- Fixed bug #23093 (highlight_string() crashed with __FUNCTION__). (Jani)
- Fixed bug #23080 (socket_strerror() crashes on win32). (Moriyoshi)
- Fixed bug #23071 (when DST in effect, date("T") crashed PHP).
(Scott MacVicar, Jani)
- Fixed bug #23069 (tempnam creates readonly file [win32]). (Wez)
- Fixed bug #23009 (pg_select with timestamp). (Marcus, Jay)
- Fixed bug #23008 (ldap_start_tls() not available on Windows). (Edin)
- Fixed bug #23004 (When ftp_close() is called, send QUIT to the ftp server).
(Ilia)
- Fixed bug #22989 (sendmail not found by configure). (igyu@ionsphere.org)
- Fixed bug #22987 (missing perror() check in configure). (Jani)
- Fixed bug #22965 (Crash in gd lib's ImageFillToBorder()). (Ilia)
- Fixed bug #22939 (crash in imap_header_info()). (Ilia)
- Fixed bug #22844 (Changing bool value via -d or ini_set(), On would be Off).
(Ilia)
- Fixed bug #22786 (Crash when trying to call DomAttribute's
set_namespace method). (Chregu)
- Fixed bug #22775 (Fatal errors exit with status 0 with CGI/CLI). (Jani)
- Fixed bug #22774 (PHP crashes when exiting (long XML doc)). (Rob Richards)
- Fixed bug #22751 (Compile error in gdcache.c when external libgd is used).
(Jani)
- Fixed bug #22721 (Poor file() performance on systems without mmap). (Wez)
- Fixed bug #22709 (Crash in interbase when database unavailable).
(Vladimir Michl)
- Fixed bug #22681 (Crash when reading from invalid file pointer). (Ilia)
- Fixed bug #22672 (User not logged under Apache2). (Ian)
- Fixed bug #22616 (Wrong order of -lssl and -lcrypto with IMAP). (Jani)
- Fixed bug #22613 (imagettfbox() does not add the kerning distance to the
running position). (Ilia)
- Fixed bug #22585 (Do not terminate the script on minor errors). (Ilia)
- Fixed bug #22550 (overflow protection for upload_max_filesize ini option).
(Ilia)
- Fixed bug #22544 (writing transparency to truecolor png images). (Ilia)
- Fixed bug #22538 (failed stat on stdio/stdin/stderr streams). (Wez, Ilia)
- Fixed bug #22530 (append_child does not unlink node). (Chregu)
- Fixed bug #22520 (mcrypt_generic_deinit() was not available on Windows).
(Edin)
- Fixed bug #22508 (Added protection against circular HTML redirects). (Ilia)
- Fixed bug #22473 (ISAPI Secure Server variables not available).
(Christian Swoboda)
- Fixed bug #22402 (opening of ftp for read/write could fail due to invalid
return code handling). (Ilia)
- Fixed bug #22384 (FNM_CASEFOLD is not available). (Hartmut)
- Fixed bug #22382 (fgetcsv() did not handle \" correctly). (Ilia)
- Fixed bug #22376 (wrong httpd.conf modified when using INSTALL_ROOT). (Jani)
- Fixed bug #22363 (combinations of fwrite(), fread() and fseek() produce
unexpected results). (Wez)
- Fixed bug #22355 (PHP would remove folding from Subject & To fields). (Ilia)
- Fixed bug #22330 (overloaded strrpos() gives wrong results).
(david@santinoli.com, Moriyoshi)
- Fixed bug #22312 (crash on failed connection when curl_getinfo() was called).
(Phil Oleson <poleson@verio.net>)
- Fixed bug #22308 (optimized passthru, code is now ~40 times faster). (Ilia)
- Fixed bug #22306 (pg_lo_seek($h, 0, PGSQL_SEEK_SET) succeeds but
returns false). (Jani)
- Fixed bug #22301 (htmlspecialchars() crashes Apache on Tru64). (Ilia)
- Fixed bug #22299 (gethostbyname() with non-existing domain crashed on MacOSX).
(Jani)
- Fixed bug #22283 (possible crash when opening relative URLs). (Ilia)
- Fixed bug #22238 (stream_select() clobbers fifos under win9x). (Wez)
- Fixed bug #22234 (copy() fails if source file has 0 length). (Moriyoshi)
- Fixed bug #22227 (printf() field limiters broke between 4.2.3 and 4.3.0).
(Moriyoshi)
- Fixed bug #22224 (implode() changes object references in array). (Moriyoshi)
- Fixed bug #22221 (bad rows count in the result object for postgresql). (Marc)
- Fixed bug #22207 (e notation in *printf would be missing a 0 when there is
no exponent). (Ilia)
- Fixed bug #22220 ("php_admin_value open_basedir none" does not work). (Jani)
- Fixed bug #22191 (frontbase build broken with old version of frontbase).
(Ilia)
- Fixed bug #22187 (spprintf function did not handle floats correctly). (Ilia)
- Fixed bug #22149 (incorrect insertion of session id when tabs are used to
separate tag elements). (Ilia)
- Fixed bug #22141 (removed undocumented Boyer str_replace() method). (Sara)
- Fixed bug #22103 (Added gdImageEllipse and replaced old gdImageFilledEllipse
with a better implementation). (Pierre)
- Fixed bug #22088 (array_shift() left next index to be +1 too much). (Jani)
- Fixed bug #22083 (MySQL charset directory problem on Windows). (Edin)
- Fixed bug #22059 (ftp_chdir() causes segfault). (Sara)
- Fixed bug #22048 (crash in imap_header() when the e-mail contains an
abnormally large number of special characters). (Ilia)
- Fixed bug #22042 (pg_result_seek() would never seek to the 1st row in the
result due to always seeking to row next to the one requested). (Ilia)
- Fixed bug #22031 (Made curl_write() & curl_write_header() binary safe).
(Ilia)
- Fixed bug #22022 (Crash in imap_mail_compose() if the body is an empty array).
(Ilia)
- Fixed bug #22017 (date() does not support negative timestamps on win32).
(Ilia)
- Fixed bug #22008 (strip_tags() eliminates too much). (Moriyoshi)
- Fixed bug #21007 (html_errors off text-only output in phpinfo). (Marcus)
- Fixed bug #22004 (Overload extension and _call() breaks classes). (Shane)
- Fixed bug #21998 (array_pop() did not reset the current array position).
(Jani)
- Fixed bug #21978, #21036 (win32 mail(), bcc: gets interpreted as cc:). (Sara)
- Fixed bug #21885 (move_uploaded_file() does not ignore open_basedir). (Wez)
- Fixed bug #21820 ("$arr['foo']" generates bogus E_NOTICE, should be E_PARSE).
(Jani)
- Fixed bug #21815 (fpassthru() ignored buffered data but complained anyway).
(Wez)
- Fixed bug #21809 (select would not always timeout during socket shutdown).
(Wez)
- Fixed bug #21751 (default output buffer could not be deleted). (Marcus)
- Fixed bug #21725 (return behaviour differs between include and require).
(Zeev)
- Fixed bug #21713 (include remote files leaks descriptors on Solaris). (Wez)
- Fixed bug #21708 (ucwords() trouble again). (Moriyoshi)
- Fixed bug #21689 (fgetcsv() suppresses some characters before a separator).
(Masahiro, Moriyoshi)
- Fixed bug #21912, #21676 (getimagesize() failed for remote files). (Wez)
- Fixed bug #21597 (made glob() understand Windows paths). (Edin)
- Fixed bug #21549 (problem with Ingres II persistent connections). (Jani)
- Fixed bug #21544 (Extended checks for where FreeTDS is installed). (Frank)
- Fixed bug #21534 (typo in gmp_gcdext() causes incorrect results). (Sara)
- Fixed bug #21531 (file_exists() and other filestat functions report errors
when the requested file/directory does not exists). (Sara)
- Fixed bug #21529 (memory corruption by fsockopen()). (Ilia)
- Fixed bug #21525 (bind_textdomain_codeset() now available on Windows). (Edin)
- Fixed bug #21523 (number_format() could cause a memory allocation for a
negative memory size in situations where the sprintf implementation of the
host system generated less decimal places than were requested). (Wez)
- Fixed bug #21518 (imagecreatefromstring() crashed with invalid image files).
(Ilia)
- Fixed bug #21511 (config.status warning). (Jani)
- Fixed bug #21498 (mysql_pconnect connection problems). (Georg)
- Fixed bug #21453 (improper handling of non-terminated < by strip_tags()).
(Ilia)
- Fixed bug #21445 (gd unable to open fonts). (Ilia)
- Fixed bug #21443 (improper handling of ? surrounded by spaces
in get_browser()). (Ilia)
- Fixed bug #21442 (crash in mail() on Windows when 1st parameter is empty).
(Edin)
- Fixed bug #21410 (fixed handling of NULL or "" files on Win32). (Ilia)
- Fixed bug #21378 (COM code crashes after update 4.2.1 to 4.3.0). (Harald)
- Fixed bug #21338 (html_entity_decode() crashed when "" is passed). (Ilia)
- Fixed bug #21310 (Solaris has issues with getcwd() needing read permissions
on directories instead of just execute). (Wez, jflemer)
- Fixed bug #21297 (in CLI/CGI on the #! it would leave a \n when the code
encounters \r\n). (Ilia)
- Fixed bug #21268 (session_decode() returned FALSE on success). (Ilia)
- Fixed bug #21267 (opening URLs that result in redirection to a relative
path was failing). (Ilia)
- Fixed bug #21229 (missing 3rd argument to php_module_startup). (Ilia)
- Fixed bug #21228 (broken check for ob_gzhandler and made ob_start() return
the correct value). (Ilia)
- Fixed bug #21226 (parse_url handling of urls without a path). (Ilia)
- Fixed bug #21224 (apache configure fails when using --enable-versioning).
(Jani)
- Fixed bug #21169 (Compile Failure and lots of warnings on UnixWare). (Derick)
- Fixed bug #21131 (fopen() with mode 'a+' and rewind() doesn't work). (Wez)
- Fixed bug #20857 (snmpset() failed always, patch by: rs@epost.de). (Jani)
- Fixed bug #20802 (PHP would die silently when memory limit reached). (Ilia)
- Fixed bug #20715 (odbc could not be compiled as shared extension). (Jani)
- Fixed bug #20641 (Numeric/decimal datatype overflow in ext/interbase
on Win32). (Daniela)
- Fixed bug #20503 (imagesetbrush() not available on Windows). (Edin)
- Fixed bug #20282 (COM memory leak). (Harald)
- Fixed bug #20256 (snprintf() not defined on some systems). (Jani)
- Fixed bug #19919 (crash in sapi_apache_header_handler under heavy load).
(George)
- Fixed bug #19795 (Problems with strnatcmp() / strnatcasecmp()). (Moriyoshi)
- Fixed bug #17868 (multiple <!--include--> used to include PHP files crashes).
(Ilia)
- Fixed bug #17448 (Print the message when OCI_SUCCESS_WITH_INFO is returned).
(Maxim)
- Fixed bug #17098 (make Apache2 aware that PHP scripts should not be cached).
(Ilia)
- Fixed bug #16798 (Compile failure with LOB support for Oracle version < 8.1).
(Maxim)
- Fixed bug #14532 (fixed connection_status() to return 2 for timeouts). (Jani)
- Fixed bug #14245 ('make install' fails on AIX when using --with-apxs). (Jani)
- Fixed bug #13757 (CGI: passing query string on command line broken). (Shane)
- Fixed bug #13561 (--without-pear disabled phpize/php-config install). (Jani)
- Fixed bug #13551 (bcmath functions applying scale incorrectly). (Sara)
17 Feb 2003, Version 4.3.1
- Fixed serious security vulnerability in CGI SAPI. (Shane)
27 Dec 2002, Version 4.3.0
- If you don't specify building any other SAPI "make install" will install the
CGI SAPI binary in {PREFIX}/bin/php. If you want to install CLI SAPI in that
location use "make install-cli" after "make install" or add --disable-cgi
to your configure options. In the Windows distribution CLI SAPI is included
in the "cli" folder. (Edin)
- Removed extensions: (Jan, Jani, Sebastian)
. ext/aspell
. ext/ccvs
. ext/icap
. sapi/fastcgi
. sapi/fhttpd
- Moved extensions to PECL (http://pear.php.net/): (James, Derick, George)
. ext/vpopmail
. ext/cybermut
. ext/cybercash
- Make PHP_AUTH_* variables not available in safe mode under Apache when an
external basic auth mechanism is used. (Philip)
- Aliased dba_popen() to dba_open() until 4.3.2 when persistent STDIO streams
are introduced. (Andrei)
- Fixed a security bug in the bundled MySQL library. (Georg, Stefan)
- ZLIB extension is now built-in in the Windows distribution.
External extension (php_zlib.dll) has been removed. (Edin)
- Fixed a bug in ISO-8601 week calculation
- Fixed a crash when using invalid color index with imagecolortransparent().
(Pierre-Alain Joye)
- Fixed bug #20987 (no handling for client certificates). (Ilia)
- Fixed bug #21039 (crash when not supplying an IV to mcrypt_generic_init).
(Derick)
- Fixed bug #20936 (openssl_pkey_get was broken). (jeroen@derks.it, Wez)
- Fixed bug #20927 (wordwrap crash). (Ilia)
- Fixed bug #20796 (when register_globals is on & arrays with same names are
passed via get/post/cookie the data inside $_GET/$_POST/$_COOKIE can would be
corrupted). (Ilia)
- Fixed bug #20725 (if the upload directory cannot be written to, the POST data
after the uploaded file is lost). (Ilia)
- Fixed bug #20865 (array_key_exists() fails to find NULL key). (Ilia)
- Fixed bug #20812 (ftp_get returned NULL on success, instead of TRUE). (Ilia)
- Fixed bug #20785 (crash when using pdf_open_memory_image() to load a
true-color image). (Ilia)
- Fixed a crash when converting between true-color images (png/jpeg) and
gd1/gd2 image formats, png/jpeg -> gd1/gd2 -> png/jpeg conversion now
works correctly. (Ilia, Pierre-Alain Joye)
- Fixed a memory leak in the bundled GD library inside
gdImageTrueColorToPalette(). (Ilia)
- Fixed bug #12776 (array_walk crash). (Moriyoshi)
- Fixed bug #20934 (htmlspecialchars returns latin1 from UTF-8). (Moriyoshi)
- Fixed bugs #20270, #15702, #18600 (segfaults in ext/java). (Tony J. White)
- Made bcmath extension thread safe. (Sander)
- Fixed bug #19566 (get_declared_classes() segfaults). (Moriyoshi, Marcus, Andi)
- Fixed bug #20381 (array_merge_recursive mangles input arrays). (Moriyoshi)
- Added -n command switch to cli and cgi version which allows to skip php.ini
parsing at startup. (Marcus, Wez)
- Fixed bug #19689 (absolute paths like /test/dir/ not working correctly).
(Ilia)
- Added "neutral" language entry to mbstring spec. (Moriyoshi)
- Changed bundled gd library to consider php.ini option memory_limit. (Marcus)
- Modified log() to accept multiple bases. (Jason)
- Fixed bugs #16190/18746 (ext/db: flatfile support with windows). (Marcus)
- Added gd_info() which returns an array of gd support information. (Marcus)
- Implemented features/changes requested in Bug #16960 (Timm):
. Added a new function sybase_unbuffered_query()
. Added a new function sybase_fetch_assoc()
. Added sybase_set_message_handler() which enables users to handle
server messages in a callback function
. Added an ini entry for deadlock retries - retrying deadlocks can cause
transaction state to break (sybct.deadlock_retry_count,
defaults to -1 "forever").
. Fixed sybase_fetch_object() not to return objects with numeric members
. Fixed issues with identical fieldnames
. Made sybase_fetch_*() functions return correct datatypes
. Made phpinfo() section more verbose
. Made sybase_query() error messages more verbose
- Fixed bug #19935 (made OpenSSL file system operations abide by safe_mode
& open_basedir restrictions). (Ilia)
- Fixed bug #18868 (improved the check for availability of realpath()). (Ilia)
- Fixed width/height detection of bmp images using getimagesize() function on
big endian systems and added code to retrieve bmp bit depth. (Ilia)
- Fixed bug #20035 (line counting error when script starts with #! in
cgi/cli/fastcgi sapis). (Ilia)
- Fixed bug #20235 (incorrect handling of symlinks on ZTS build). (Ilia)
- Added sanity checks to headers_sent() & image_type_to_mime_type(). (Ilia)
- Added an aditional parameter to the jdtojewish() function which makes
the function return the symbolic hebrew name. (Moshe Doron, Derick)
- Fixed bug #20169 (implode() clobbers first argument). (Moriyoshi)
- Improved dba extension (Marcus)
. Added dba_handlers() that returns an array of installed handlers and
dba_list() that returns an associative array of open database files.
. Added bundled cdb support wich can be activated by --with-cdb without a
path. The bundled version supports cdb_make that allows writing cdb files.
. Added optional skip parameter to dba_fetch() to support multiple key-value
pairs with the same key for cdb handler.
. Added locking for those handlers that do not have their own locking.
. Added support for magic_quotes_runtime php.ini option.
. Added flatfile support what finally makes ext/db deprecated.
- Added imagerotate() which is available only when bundled libgd is used.
(Pierre-Alain Joye, Ilia)
- Fixed bug #17497 (mssql extension crashes if magic_quotes_runtime is on).
(Sterling)
- Remove $_FILES from $_REQUEST (import_request_variables is not modified),
this didn't work properly in the first place, and added confusion. (Sterling)
- Fixed the socket_read() function on win32 to work in normal mode (reading to
the end of a line), as well as binary mode. (Sterling)
- Fixed bug #20110 (added sanity check to prevent include/require functions
from trying to include directories). (Ilia)
- Fixed bug #20108 (segmentation fault on printf("%1.1s", "string")). (Ilia)
- Added dbx_escape_string() function to dbx module. (Marc)
- Added Oracle (oci8) support to dbx module. (Marc)
- Updated FDF extension to work with Adode fdftk 5.0. (Hartmut)
- Added mb_strtolower() and mb_strtoupper(). (Moriyoshi)
- Fixed an infinite loop in setlocale() when only invalid locale names
were passed in the array. (patch by Pal Loberg, pallo@initio.no)
- Fixed bugs #19156 and #19544 (COM extension leaks memory and keeps
components referenced). (Harald)
- Added fribidi_get_charsets() and fribidi_charset_info() functions. (Tal)
- Added Oracle TIMESTAMP type to oci8 extension. (Thies)
- Fixed fgets($fp) to read until EOL when length parameter is not set. (Wez)
- Changed registry entries under "HKLM\SOFTWARE\PHP\Per Directory Values" to
work also with administrative directives such as safe_mode, open_basedir,
etc. (Claudio Felber)
- Added str_word_count() function which counts words inside a string. (Ilia)
- Added PGSQL_CONNECT_FORCE_NEW option to pg_connect() (Yasuo)
- Added ICONV_IMPL and ICONV_VERSION constants to iconv extension to
indicate which iconv implementation is used. (Moriyoshi)
- Fixed bug #4232 (Added %e & %E support to printf/sprintf). (Ilia)
- Fixed bug #17580 (Allow ini parser to parse files >16K). (Ilia)
- Fixed bug #19649 (Sanity checks for browscap.ini parser). (Ilia)
- Added experimental patch to address problem with floats on various locales.
(Bug #17079). (Ilia)
- Fixed bug #19280 (imap_header fails with many To: addresses). (Ilia)
- Added mb_regex_set_options(). The Options parameters of various mbregex
functions are now deprecated. (Moriyoshi)
- Fixed bug #19482 (Segfault with PCRE and locale). (Andrei)
- Made ImageTruecolorToPalette() in bundled GD2 library actually work. (Rasmus)
- Fixed ImageCopy() in bundled GD2 library to handle copying from truecolor to
palette-based. (Wez, Rasmus)
- Added read-only GIF support for bundled GD2 library. (Rasmus)
- Made several adjustments to xslt extension (David Viner, Lehnar, Melvyn)
. Added xslt_set_object and xslt_setopt function
. Changed backend interaction with Sablotron library
. Fixed leak with error_print
. Made xslt_make_array() always set NULL on last index to signal array end.
- Changed the glue argument in implode() to be optional. If not specified,
defaults to "". (Sterling)
- Fixed fields argument to contain correct info for xslt_set_error_handler().
(Patch by Lenar Lohmus)
- Added --with-config-file-scan-dir compile-time switch which specifies a
directory which will be scanned for *.ini files. (Rasmus)
- Added ob_get_clean() and ob_get_flush(). (Yasuo)
- Added ftp_ssl_connect() to ext/ftp for FTP over SSL support. (Stefan Esser)
- Made a few additions and changes to Apache 2 sapi. (Ilia)
. Added apache_response_headers(), apache_note(), apache_getenv() and
apache_setenv() functions.
. Added more detailed error reporting to apache_lookup_uri() and virtual().
. Renamed getallheaders() to apache_request_headers() and made an alias for BC.
. Added php_apache_sapi_getenv() and php_apache_sapi_get_stat().
. Added syntax-highlighting handling (.phps)
- Fixed strstr(), strchr() and strrchr() to be binary safe. (Andrey)
- Added array_diff_assoc() and array_intersect_assoc(). (Andrey)
- Fixed bug #17825 (ob_start() chunk size option didn't work well). (Yasuo)
- Fixed output buffer infinite loop when buffer_size became 0. (Marcus, Wez)
- Added getopt() for parsing command line options and arguments. (Jon)
- Added pg_fetch_assoc(), pg_fetch_all(), pg_ping(), pg_meta_data(), pg_convert(),
pg_insert(), pg_select(), pg_update(), pg_delete(), pg_result_seek(),
pg_unescape_bytea(), pg_get_notify() and pg_get_pid(). (Yasuo)
- Fixed bug #17281 (Sanity checks for encoding sessions). (Ilia)
- Fixed bug #16995 and #19392 (Prevent crash if $HTTP_SESSION_VARS != ARRAY).
(Ilia)
- Fixed bug #19292 (open_basedir restriction problem). (Rasmus)
- Fixed bug #19366 (gdImageFill crashes when x & y are outside of
the image's boundries). (Ilia)
- Fixed bug #13936 (__FILE__ constant didn't contain full path). (Ilia)
- PHP now has a new stream system that allows it to do some clever stuff with
fopen() and fsockopen(). As a result:
. URL wrappers natively supports https:// URLs if you have compiled
OpenSSL support into PHP (shared extension does not support this).
. Added support for fopen("ftps://...", ...) which allows to connect to FTP
servers via SSL. (Stefan Esser)
. fsockopen() adds support for ssl:// and tls:// connections via TCP/IP
. copy($srcfilename, $destfilename) can now be used with URL wrappers
. zlib wrappers/streams can be used even on systems without fopencookie()
. Changed 'zlib:' fopen wrapper to 'compress.zlib://' and deprecate
'zlib:' to avoid ambiguities when filenames have ':' characters. (Wez)
. Added 'compress.bzip2://' stream and wrapper support.
. Added user-space streams - it is now possible to define a class in PHP
code and register it as a URL wrapper. (stream_register_wrapper)
. Most extensions now support streams when passing files, which means
that those extensions will now also support URL wrappers. (Wez)
. Added URL-wrapper support to exif. (Marcus)
. Added memory stream support. (Marcus)
. Renamed:
socket_set_timeout() -> stream_set_timeout()
socket_set_blocking() -> stream_set_blocking()
set_file_buffer() -> stream_set_write_buffer()
socket_get_status() -> stream_get_meta_data()
As these functions can (in theory) work on any type of stream. (Wez)
. Raw POST data is now available as "php://input" stream. (Hartmut)
. fopen("php://output", "wb") returns a stream that writes to the output
buffer (like echo and print). (Wez)
. Added stream_context_create(), stream_context_set_params() and
stream_context_set_option and added an optional fourth parameter to
fopen() which accepts a stream context. Contexts allow sharing of
information between streams (a kind of "session") and setting
notification callbacks. (Wez)
. Made the "User-Agent" header sent by http:// and https:// wrappers
configurable in php.ini or via a stream context. (Sterling)
. Added stream_filter_prepend() and stream_filter_append() which apply
a filter to either the top or the bottom of a stream filter stack.
Implemented "string.rot13" filter as an example; more filters are
expected to follow in later releases and other extensions. (Wez)
. Added stream_select() which works like socket_select but works on
streams returned by fopen(), fsockopen() and pfsockopen() instead. (Wez)
. Added STDIN, STDOUT and STDERR constants for CLI sapi reflecting opened
streams to their respective standard I/O counterparts. (Edin)
. Added php.ini option "auto_detect_line_endings" which enables PHP to
detect Macintosh, Unix and Dos end-of-line characters in fgets() and
file(). Fixes bugs #16521 and #16708. (Wez)
. Fixed include(), require() and GD functions to work with remote files
under win32.
Fixed bug #18609 (ImageCreateFromJPEG can't fetch from a URL). (Wez)
- Fixed bug #18022 (fopen does not work with php://stdin anymore on Solaris).
(Wez)
- Added php.ini option "default_socket_timeout" to set the timeout limit for
PHP network streams. (kalowsky, ilia@prohost.org, Wez)
- Added file_get_contents() which returns the contents of a file as a string.
This function also supports the URL wrappers. (Wez)
- Fixed bug #19595 (Missing functions for GD2 format handling). (Edin)
- Fixed bug #19633 (Wrong directories in ext/ldap/config.m4). (Derick)
- Fixed bugs #17274 and #19627 (segfault in sem_remove). (Wez)
- Added mb_convert_case() function to the mbstring extension which can convert
strings between upper, lower and title case using Unicode mappings.
Fixed bug #19257 (strtolower & strtoupper does not work for UTF-8 strings).
(Wez)
- Fixed bug #18521 (htmlentities didn't warn about unsupported charsets). (Wez)
- Fixed bug #11643 (Session related, fix SID redefinition). (Ilia)
- Fixed bug #18556 (Scripting Engine, problem with locales like tr_TR). (Ilia)
- Changed y2k_compliance to default to 1 now. (Sascha)
- Added platform independent socket error constants for better error handling. (Jason)
- Update output of phpinfo() to use more CSS to reduce the file size, do
proper HTML escaping, and make it XHTML compliant. (Colin)
- Fixed compile errors in the FriBidi extension (Bug #16414). (Tal)
- Fixed bugs #7472, #12120 and #12989 as well as other potential problems
with strip_tags() function. (Ilia)
- Fixed bugs #17570 and #17957 (Regexps related). (Andrei, Ilia)
- Fixed bugs #18167 and #16859 (SEGV with session_decode). (Ilia)
- Fixed bugs #19573 and #13472 (Session, XHTML compliance and trans_sid).
(Sascha)
- Fixed bug #19570 (last character was missing in get_html_translation_table).
(Wez)
- Upgraded PCRE to version 3.9. (Wez)
- Fixed bug in OCIResult() which returned garbage when called on
empty result-sets. (Thies)
- Added ability to use Perl-style ${n} subpattern references in the
replacement string for preg_replace() (bug #18442). (Andrei)
- Fixed array_merge_recursive() to avoid problems with merging cyclical
arrays (bug #16064). (Andrei)
- Made function_exists() work properly with disabled functions. (Andrei)
- Added ability to extract() variables as references via OR'able EXTR_REFS
flag. (Andrei)
- Fixed a build failure with the OCI8 extension on Tru64.
(Patch by Michael Mauch, micahel.mauch@gmx.de)
- Added --disable-all configure option. (Jani)
- Backported debug_backtrace() from ZendEngine2. (Thies)
- Added html-free phpinfo() output for CLI. (Jan)
- Fixed socket_recvfrom() to be binary safe. (Jason)
- Changed mail() to use escape_shell_cmd() to allow multiple extra parameters
to the invocation of the mailer as used in the fifth parameter. (Derick)
- Changed cURL extension to require cURL version 7.9.8 (Derick)
- Added zend_execute_internal which is called like zend_execute but for
internal functions. (Thies)
- Changed pg_connection_status(), pg_connection_reset(), pg_connection_busy(),
pg_result_status() and pg_result_error() to silently return FALSE when
resource is not passed to them. (Yasuo)
- Fixed some mysql compile failures on 64 bit-OS. (Georg)
- Added warnings for deprecated mysql functions:
. mysql_create_db()
. mysql_drop_db()
. mysql_escape_string()
- Added XsltObject->result_dump_mem($result) for returning xslt-result directly
into a string and XsltObject->result_dump_file($result,$file[,$compression])
for dumping into a file. (morus.walter@web.de, chregu)
- Made mime_magic and ZIP extensions available on Windows. (Edin)
- Added xslt_backend_version() and xslt_backend_name() for getting
information about the processor backend. (chregu)
- Added ImageColorMatch() and ImageLayerEffect() functions which are only
available when using the bundled GD library. (ttoohey)
- Made major improvents to the pcntl extension. (Jason)
. Greatly improved performance (signal callback mechanism uses ticks)
. Implemented object signal callback ability by using array($obj, $method)
. Added a restart parameter to pcntl_signal, which allows you to disable
the default of system call restarting
- Changed DomNode->next_sibling() and DomNode->previous_sibling() to return
NULL instead of false (W3C specs). (chregu)
- Changed DomNode->insert_before() and DomNode->append_child() to conform to
W3C specs (moving not copying nodes, accepting NULL as 2nd param). (chregu)
- Added DomNode->set_namespace(uri[,prefix]) (chregu)
- Fixed shuffle() to properly generate all possibilities. (Patch provided by
Adam <adam@trachtenberg.com>)
- Fixed DomNode->insert_before() to behave according to W3C spec
ie. new_child is moved, not copied. (chregu)
- Added some namespace support with DomNode->add_namespace(uri, prefix)
and DomDocument->create_element_ns(uri, nodename) (chregu)
- Added optional parameter to DomElement->node_name() for retrieving fully
qualified name (ie. namespace prefix). (chregu)
- Changed DomNode->child_nodes() to return empty array instead of false if no
child nodes are found. (chregu)
- Fixed a bug with handling the Expect header. (Patch by ilia@prohost.org)
- Fixed a bug in ODBC where closing the module caused a crash in the Windows
executable. (kalowsky)
- Fixed memory leaks in pack() and unpack(). (Patch by ilia@prohost.org)
- Added URLs to error messages which direct to a page describing the error or
function in question. (Derick, Wez, Marcus)
- Added odbc_data_source() functionality to identify DB ServerName, and a
description of it gathered from the DSN. (kalowsky)
- Fixed copy() to return TRUE with 0 byte files. (Patch by ilia@prohost.org)
- Added ob_list_handlers() which returns an array of all active output
handlers. (marcus)
handlers. (Marcus)
- Added mbstring encoding/decoding "HTML-ENTITIES". (Marcus)
- Added parameter 'L' for mb_http_input() to retrieve input encoding as a
comma separated string. (Marcus)
@@ -17,8 +758,8 @@ PHP 4 NEWS
declare (ticks=1) {
statement;
}
- Bring strtotime() "next" keyword handling in line with documentation and
its glibc cousin. (Rasmus)
- Brought strtotime() "next" keyword handling in line with documentation and
its glibc cousin. (Rasmus)
- Fixed str_rot13() to not mangle source string. (Rasmus)
- Fixed imap_get_quota() to work with multiple returned resources as per
the RFC 2087 and bug #14673. (kalowsky, Sander Steffann)
@@ -31,8 +772,6 @@ PHP 4 NEWS
representation instead of echoing it. (Derick)
- Added mysql_ping(), mysql_real_escape_string(), mysql_character_set_name(),
mysql_thread_id(), mysql_stat() and mysql_list_processes(). (Zak, Georg)
- Added pg_fetch_all() which fetches all rows in a result. (Yasuo)
- Changed "session.use_trans_sid" to be disabled by default in php.ini. (Yasuo)
- Added safe_mode & open_basedir checks for pg_lo_export(). (Yasuo)
- Added open_basedir check for pg_lo_import(). (Yasuo)
- Fixed infinite recursion crash bug in ticks. (Jason)
@@ -55,9 +794,8 @@ PHP 4 NEWS
condition. Also fixed host resolution error messages on win32. (Jason)
- Added optional 3rd parameter 'recursive' to ftp_rawlist() which will
do 'LIST -R' instead of 'LIST'. (Jani)
- Disabled the fifth parameter in mail() when safe-mode is turned on. (Derick)
- Changed getimagesize() to always set unknown fields to 0 and added support
iff imagetype. (Marcus)
for iff imagetype. (Marcus)
- Added runtime Apache2 thread check to ensure we don't run a non-threaded
PHP inside a threaded Apache2 MPM. (Rasmus)
- Made getimagesize() and exif_read_data() to return also the mime-type and
@@ -70,13 +808,9 @@ PHP 4 NEWS
response code. (Derick)
- Changed the order of which modules are unloaded to the reverse order of
which they were loaded. (Derick, Zend Engine)
- Fixed a crash in ereg_replace() when backreference number was greater
than the number of subpatterns. (oliver@billix.franken.de)
- Added preliminary SAX-Input support. It's now possible to build a DomDocument
with SAX-Events. (chregu)
- Bundled GD library 2.0.1 with php (ext/gd/libgd) (Rasmus, Jani, Markus, Edin)
- Fixed bug with Apache which let PHP_AUTH_* variables to be set when
external basic auth mechanism was used. (Jani)
- Fixed bzopen() crash in thread-safe mode. (Andrei)
- Added better error-messages (3rd parameter) and validating of DTDs (2nd
parameter) to domxml_open_mem() and domxml_open_file(). (Christian)
@@ -94,10 +828,7 @@ PHP 4 NEWS
the unix socket location. (e.g. NFS compiles, etc.) (James Cox)
- Fixed is_a() to properly work on extension registered classes. (Andrei)
- Added new constants: PHP_PREFIX and PHP_SHLIB_SUFFIX. (Stig)
- Added STDIN, STDOUT and STDERR constants for CLI sapi reflecting opened
streams to their respective I/O counterparts. (Edin)
- Added pctnl_alarm() function. (Edin)
- Fixed array_rand() on thread-safe platforms such as Windows. (Edin)
- If zlib.output_compression is enabled and a page is compressed
a "Vary: Accept-Encoding" header is now added. (Stefan)
- Renamed getallheaders() to apache_request_headers() and kept getallheaders()
@@ -133,7 +864,6 @@ PHP 4 NEWS
when dealing with built-in extensions. (Sebastian)
- Added large OID value (2^31 to 2^32) support for pg_lo_import(),
pg_lo_unlink(), pg_lo_open() and pg_lo_export(). (Yasuo)
- Changed the mbstring extension to be enabled by default. (Yasuo)
- Fixed mixing OCIPlogon() and OCINLogon() to not leak Oracle-Sessions. (Thies)
- Added php.ini options for EXIF extension to encode and decode Unicode/JIS
user comments. (Marcus)
@@ -142,8 +872,6 @@ PHP 4 NEWS
- Added version information to the .dll and .exe files created under Windows.
(jtate)
- Added __FUNCTION__ and __CLASS__ constants. (Jani, Zend Engine)
- Added pg_metadate(), pg_convert(), pg_insert(), pg_select(), pg_update()
and pg_delete(). (Yasuo)
- Added optional 2nd parameter for pg_result_status() to specify return type.
(Yasuo)
- Added "log_errors_max_len" php.ini option which controls maximum length for
@@ -161,23 +889,6 @@ PHP 4 NEWS
available at http://www.jtatesoftware.com/cracklib/. (jtate)
- Added mysql_info() function. (Jan)
- Added mysql_list_processes() and mysql_stat() functions. (Georg)
- Added file_get_contents() which returns the contents of a file as a string.
This function also supports the URL wrappers. (Wez)
- Changed 'zlib:' fopen wrapper to 'compress.zlib://' to avoid ambiguities
when filenames have ':' characters. (Wez)
- Added URL-wrapper support to exif. (Marcus)
- PHP now has a new stream system that allows it to do some clever stuff with
fopen() and fsockopen(). As a result:
. URL wrappers natively supports https:// URLs
. fsockopen() adds support for ssl:// and tls:// connections via TCP/IP
. copy($srcfilename, $destfilename) can now be used with URL wrappers
. zlib wrappers/streams can be used even on systems without fopencookie()
. Added 'compress.bzip2://' stream and wrapper support.
. Added user-space streams - it is now possible to define a class in PHP
code and register it as a URL wrapper.
. Most extensions now support streams when passing files, which means
that those extensions will support URL wrappers. (Wez)
. Added memory stream support. (Marcus)
- Fixed memory allocation problem on systems that have iconv() support in libc.
(Yasuo)
- Made var_dump() handle recursive structures better. (Yasuo, Derick)
@@ -187,6 +898,46 @@ PHP 4 NEWS
dependencies. Automake is only needed for its aclocal tool. The build
process is now more portable and less resource-consuming. (Sascha)
06 Sep 2002, Version 4.2.3
- Disabled the fifth parameter in mail() when safe-mode is turned on. (Derick)
- Enable UTF8 modifier support for PCRE on win32. (Wez, Edin)
- Enabled strcoll() on win32. (Markus)
- Fixed possible ASCII control char injection in mail(). (Stefan Esser)
- Fixed a potential crash bug in import_request_variables() (Zeev)
- Fixed several problems with directory functions on Windows. (Steph)
- Fixed xbithack bug in Apache module. (Rasmus)
- Fixed a bug that prevented touch() from working on various platforms. (Steph)
- Fixed ob_gzhandler()'s handling of requests that do have the Accept-Encoding
header, but do not allow compression. (Zeev)
- Fixed several bugs in the multithreaded version that could cause random parse
errors, especially on machines with multiple CPUs. (Zeev, Zend Engine)
- Fixed a build problem in bcmath. (Alan)
- Fixed several bzip2 issues. (Andrei, kalowsky)
- Fixed several COM issues. (Harald)
- Various exif fixes. (Marcus)
- Fixed domxml_xslt_process() and domxml_get_element_by_id() and several
other issues in DOMXML. (Christian)
- Fixed DOMXML crash on removing previously created attributes. (Christian)
- Fixed crash when converting $GLOBALS to an object. (Zeev, Zend Engine)
- Fixed ImageCreateFromGD2Part() (Jani)
- Fixed a build issue in the IMAP extension under IRIX. (kalowsky)
- Fixed a bug in imap_last_error() (Jani)
- Various mbstring fixes. (Yasuo, Rui)
- Fixed a build problem in the mcal extension. (Jani)
- Made MySQL rollback open transactions when the request ends. (Georg)
- Fixed a crash in the shutdown order of the ODBC module. (kalowsky)
- Fixed PCRE build problems. (troels@arvin.dk)
- Fixed a crash in pg_lo_write() (Yasuo)
- Fixed posix_isatty() and posix_ttyname(). (Markus)
- Fixed accidental pg_lo_import() API change. (Yasuo)
- Fixed ereg_replace() crash when the backreference number was greater than the
number of captured subpatterns. (oliver@billix.franken.de)
- Fixed array_rand() on thread-safe platforms such as Windows. (Edin)
- Report the right exit code after a call to exit(). (Edin)
22 Jul 2002, Version 4.2.2
- Fixed serious security vulnerability. (Stefan Esser)
13 May 2002, Version 4.2.1
- Added safe-mode checks to show_source(), parse_ini_file() and rmdir(). Also
fixed security problems with safe_mode_include_dir directive. (Rasmus)
@@ -240,8 +991,7 @@ PHP 4 NEWS
shell scripts. Some of the differences to CGI sapi are: no HTTP headers,
plain text error messages, does not change working directory, have a new -r
option which executes a piece of PHP code directly from the commmand line, etc.
"make install" will install CLI SAPI version of php in {PREFIX}/bin/php while
CGI is renamed and installed as {PREFIX}/bin/php-cgi. (Edin)
(Edin)
- Fixed HTTP file upload support to handle big files better. (Jani)
- Major modifications to the Sockets Extension and its API (Jason):
. Fixed numerous bugs.
+5 -5
View File
@@ -7,9 +7,9 @@ WHAT IT IS
HOW TO USE IT
Very simple. First, cd do directory ext/ in 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
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
@@ -22,7 +22,7 @@ HOW TO USE IT
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,
cd back up to PHP sources top directory, and do
change back up to PHP sources top directory, and do
./buildconf; ./configure --enable-module_name; make
@@ -38,7 +38,7 @@ HOW TO USE IT
FORMAT OF FUNCTION DEFINITIONS FILE
All the definitions must be on one line. In it's simplest form, it's just
the function name, ie.
the function name, e.g.
my_function
+1 -1
View File
@@ -26,7 +26,7 @@ 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 autoconverted.
resources cannot be auto-converted.
Type specifiers
+4 -3
View File
@@ -4,7 +4,7 @@ $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, three things are
the PHP source. To create such an extension, two things are
required:
- Configuration file (config.m4)
@@ -115,8 +115,9 @@ CREATING SOURCE FILES
CREATING THE SELF-CONTAINED EXTENSION
Put config.m4 and the source files into one directory. Afterwards,
run phpize (this is installed during make install by PHP 4.0).
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
+14 -8
View File
@@ -2,13 +2,17 @@ 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 everytime you need to work with a "user-level"
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
@@ -24,6 +28,8 @@ 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);
@@ -33,7 +39,7 @@ PHPAPI int php_stream_seek(php_stream * stream, off_t offset, int whence);
PHPAPI off_t php_stream_tell(php_stream * stream);
These (should) behave in the same way as the ANSI stdio functions with similar
names: fread, fwrite, feof, fgetc, fgets, fclose, fflush, fseek, ftell.
names: fread, fwrite, fprintf, feof, fgetc, fgets, fclose, fflush, fseek, ftell.
Opening Streams
===============
@@ -134,7 +140,7 @@ 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 forwards, there is no need to call this
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.
@@ -184,7 +190,7 @@ 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 desireable, you should query the stream
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:
@@ -278,7 +284,7 @@ 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
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.
@@ -291,7 +297,7 @@ 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.
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
@@ -321,7 +327,7 @@ 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 wierd mysql stream:
For example, for reading from this weird MySQL stream:
static size_t php_mysqlop_read(php_stream * stream, char * buf, size_t count)
{
@@ -350,7 +356,7 @@ 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"
"Strange MySQL example"
}
Thats it!
+10 -4
View File
@@ -37,7 +37,7 @@ 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 php-dev@lists.php.net, or pear-dev@lists.php.net if
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.
@@ -66,8 +66,8 @@ 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 php/webserver
error logs when you test your patch?
- 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
@@ -79,7 +79,7 @@ Check list for submitting patch
Where to send your patch?
-------------------------
If you are patching C source, send the patch to php-dev@lists.php.net.
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.
@@ -88,6 +88,11 @@ 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 acclomplish 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.
@@ -118,4 +123,5 @@ 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!
+217 -85
View File
@@ -14,22 +14,23 @@ Usage:
make test
"make test" basically executes "run-tests.php" script
under source root. Therefore you can execute the script
as follows
./sapi/cli/php -c /path/to/php.ini/ run-tests.php [ext/some_extension_name]
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.
If PHP is not build with CGI SAPI, "run-tests.php" script uses CLI
SAPI. Tests that may not executed by CLI SAPI will be skipped.
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.
@@ -37,117 +38,248 @@ executing "run-tests.php" script, you may get errors.
[Which php.ini is used]
-----------------------
"make test" force to use php.ini-dist as default config file. If
you would like to test with other configuration file, user
"run-tests.php" script.
Example:
./sapi/cli/php -c /path/to/php.ini/ ext/standard
If you use php.ini other than php.ini-dist, you may see more failed
tests.
"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") executes all test scripts by default
by looking all directory named "tests". If there are files have "phpt"
extension, "run-tests.php" takes test php code from the file and
executes it.
"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 executes tests selectively with as follows.
Tester can easily execute tests selectively with as follows.
Example:
./sapi/cli/php -c /path/to/php.ini/ run-tests.php ext/mbstring
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,
"run-tests.php" script saves the result, expected result and code
executed to the test script directory. For example, if
ext/myext/tests/myext.phpt is failed to pass, following files are
created:
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.out - output from test script
ext/myext/tests/myext.exp - expected output
ext/myext/tests/myext.php - test script executed
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)
Tester can verify these files, if failed test is actually a bug
or not.
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/php4
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_INTERACTIVITY=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. Test file
has following format. Here is a actual test file from iconv module.
Writing test file is very easy if you are used to PHP.
===== ext/iconv/002.phpt =======
Here is an actual test file from standard module.
===== ext/standard/tests/strings/strtr.phpt =======
--TEST--
UCS4BE to ASCII
--SKIPIF--
<?php include('skipif.inc'); ?>
--POST--
--GET--
strtr() function
--FILE--
<?php include('002.inc'); ?>
<?php
/* Do not change this test it is a REATME.TESTING example. */
$trans = array("hello"=>"hi", "hi"=>"hello", "a"=>"A", "world"=>"planet");
var_dump(strtr("# hi all, I said hello world! #", $trans));
?>
--EXPECT--
&#97;&#98;&#99;&#100;
abcd
===== end of ext/iconv/002.phpt =======
string(32) "# hello All, I sAid hi planet! #"
===== ext/standard/tests/strings/strtr.phpt =======
"--TEST--" is title of the test.
"--SKIPIF--" is condition when to skip this test.
"--POST--" is POST variable passed to test script.
"--GET--" is GET variable passed to test script.
"--FILE--" is the test script.
"--EXPECT--" is the expected output from the test script.
As you can see the file is devided into several sections. Below is a
list of all possible sections:
ext/iconv/002.phpt uses 2 files. "skipif.inc" is used to skip
test when test cannot be performed such as iconv module is not
compiled or loaded.
"--TEST--" is title of the test (required).
"--SKIPIF--" is condition when to skip this test (optional).
"--POST--" is POST variable passed to test script (optional).
"--GET--" is GET variable passed to test script (optional).
"--INI--" each line contains an ini setting e.g. foo=bar (optional).
"--FILE--" is the test script (required).
"--EXPECT--" is the expected output from the test script (required).
"--EXPECTF--" is an alternative of --EXPECT--. The difference is that
this form uses sscanf for output validation (alternative).
"--EXPECTREGEX--" is an alternative of --EXPECT--. This form allows the tester
to specify the result in a regular expression (alternative).
==== ext/iconv/skipif.inc ====
A test must at least contain the sections TEST, FILE and either EXPECT
or EXPECTF. When a test is called run-test.php takes the name from the
TEST section and writes the FILE section into a ".php" file with the
same name as the ".phpt" file. This ".php" file will then be executed
and its output compared to the contents of the EXPECT section. It is a
good idea to generate output with var_dump() calls.
/ext/standard/tests/strings/str_shuffle.phpt is a good example for using
EXPECTF instead of EXPECT. From time to time the algorithm used for shuffle
changed and sometimes the machine used to execute the code has influence
on the result of shuffle. But it always returns a three character string
detectable by %s. Other scan-able forms are %i for integers, %d for numbers
only, %f for floating point values, %c for single characters and %x for
hexadecimal values.
==== /ext/standard/tests/strings/str_shuffle.phpt ===
--TEST--
Testing str_shuffle.
--FILE--
<?php
// This script prints "skip" if condition does not meet.
if (!extension_loaded("iconv") && ini_get("enable_dl")) {
$dlext = (substr(PHP_OS, 0, 3) == "WIN") ? ".dll" : ".so";
@dl("iconv$dlext");
}
if (!extension_loaded("iconv")) {
die("skip\n");
}
/* Do not change this test it is a REATME.TESTING example. */
$s = '123';
var_dump(str_shuffle($s));
var_dump($s);
?>
==== end of ext/iconv/skipif.inc ====
--EXPECTF--
string(3) %s
string(3) "123"
==== end of /ext/standard/tests/strings/str_shuffle.phpt ===
ext/inconv/002.inc is the test script. "run-tests.php" script
executes test script with CGI executable.
/ext/standard/tests/strings/strings001.phpt is a good example for using
EXPECTREGEX instead of EXPECT. This test also shows that in EXPECTREGEX
some characters need to be escaped since otherwise they would be
interpreted as a regular expression.
==== ext/iconv/002.inc ===
==== /ext/standard/tests/strings/strings001.phpt ===
--TEST--
Test whether strstr() and strrchr() are binary safe.
--FILE--
<?php
/*
Expected output:
&#97;&#98;&#99;&#100;
abcd
*/
$s = unpack("V*", iconv("ascii","UCS-4LE", "abcd"));
foreach($s as $c) { print "&#$c;"; } print "\n";
$s = pack("NNNN", 97, 98, 99, 100);
$q = iconv("UCS-4BE", "ascii", $s);
print $q; print "\n";
/* Do not change this test it is a REATME.TESTING example. */
$s = "alabala nica".chr(0)."turska panica";
var_dump(strstr($s, "nic"));
var_dump(strrchr($s," nic"));
?>
=== end of ext/iconv/002.inc ===
--EXPECTREGEX--
string\(18\) \"nica\x00turska panica\"
string\(19\) \" nica\x00turska panica\"
==== end of /ext/standard/tests/strings/strings001.phpt ===
Test script and skipif code may be directly write into *.phpt.
However, it is recommended to use other files for ease of writing
test script. For instance, you can execute test script under
ext/iconv as follows:
Some tests depend on modules or functions available only in certain versions
or they even require minimum version of php or zend. These tests should be
skipped when the requirement cannot be fullfilled. To achieve this you can
use the SKIPIF section. To tell run-test.php that your test should be skipped
the SKIPIF section must print out the word "skip" followed by a reason why
the test should skip.
./sapi/cli/php -c /path/to/php.ini/ ext/iconv
==== /ext/exif/tests/exif005.phpt ===
--TEST--
Check for exif_read_data, unusual IFD start
--SKIPIF--
<?php
if (!extension_loaded('exif')) print 'skip exif extension not available';
?>
--FILE--
<?php
/* Do not change this test it is a REATME.TESTING example.
* test5.jpg is a 1*1 image that contains an Exif section with ifd = 00000009h
*/
$image = exif_read_data('./ext/exif/tests/test5.jpg','',true,false);
var_dump($image['IFD0']);
?>
--EXPECT--
array(2) {
["ImageDescription"]=>
string(11) "Ifd00000009"
["DateTime"]=>
string(19) "2002:10:18 20:06:00"
}
==== end of /ext/exif/tests/exif005.phpt ===
Test script and SKIPIF code should be directly written into *.phpt. However,
it is recommended to use include files when more test scripts depend on the
same SKIPIF code or when certain test files need the same values for some
input. But no file used by any test should have one of the following
extensions: ".php", ".log", ".exp", ".out" or ".diff".
Tests should be named according to the following list:
Class: Name: Example:
Tests for bugs bug<bugid>.phpt bug17123.phpt
Tests for functions <functionname>.phpt dba_open.phpt
General tests for extensions <extname><no>.phpt dba3.phpt
When you use an include file for the SKIPIF section it should be named
"skipif.inc" and an include file used in the FILE section of many tests
should be named "test.inc".
NOTE: All tests should run correctly with error_reporting(E_ALL) and
display_errors=1. This is the default when called from run-test.php.
If you have a good reason for lowering the error reporting, use --INI--
section and comment this in your testcode.
NOTE: If your test intentionally generates a PHP warning message use
$php_errormsg variable, which you can then output. This will result
in a consistent error message output across all platforms and PHP
configurations, preventing your test from failing due inconsistencies
in the error message content.
[How to help us]
----------------
+3 -3
View File
@@ -2,7 +2,7 @@ PHP Build System V5 Overview
- supports Makefile.ins during transition phase
- not-really-portable Makefile includes have been eliminated
- supports seperate build directories without VPATH by using
- 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
@@ -50,8 +50,8 @@ 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 dependending on the user's
wishes, the extension will even be built as a dynamic module.
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:
+16 -11
View File
@@ -43,10 +43,6 @@ global
(DONE ?)
* Use arg_separator.input to implode args in the CGI sapi extension
and arg_separator.input to explode in php_build_argv(). (DONE?)
* Change the odbc_fetch_into() function to require ALWAYS the first two
parameters ($conn_id and $array), and make the third (row) be optional.
* Remove --with-openlink configure option (--with-iodbc replaces it).
* Implement flush feature suitable for nested output buffers.
For PHP 5.0.0
* bundle and use curl lib for fopen wrapper.
@@ -70,6 +66,7 @@ global
* 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.
documentation
@@ -83,11 +80,11 @@ documentation
ext/bz2
-------
* Add ini setting for decompression buffer size. The default 4k is to small
for big files and takes ages to decompress. However, 40k which perform
quite good with big files may be to much under certain environments as
default setting. There should be consideren different default sizes for
different SAPIS (e.g. apache and cli).
* 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
--------
@@ -101,6 +98,16 @@ ext/oci8
* 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
@@ -151,8 +158,6 @@ ext/standard
basename()
dirname()
strrpos()
strrchr()
strip_tags()
ext/wddx
--------
+114
View File
@@ -0,0 +1,114 @@
This is an overview over existing segfaults in the current PHP source
tree.
Fixed:
mb_convert_encoding (Moriyoshi)
socket_iovec_alloc (Rasmus)
exif_imagetype,exif_thumbnail (Rasmus)
dbase_open (Rasmus)
array_pad (Rasmus)
setlocale (Rasmus)
unregister_tick_function (Rasmus)
bcsub (Rasmus)
str_repeat (Ilia)
imagecopyresized (Ilia)
mhash_keygen_s2k (Ilia)
bundled gd (Ilia)
mb_ereg, mb_ereg_match, mb_eregi, mb_split (Moriyoshi)
xml_parser_create (Moriyoshi)
ob_start (Sascha)
imagecreate/-truecolor (Sascha)
flock (Sascha)
register_shutdown_function (Sascha)
mb_strcut('', [number greater than the length of first arg]) (Moriyoshi)
ext/exif, ext/dba (Marcus)
php_base64_encode (Moriyoshi)
Open:
the dbase extension (1)
socket_select (2)
pack (3)
(1) heap corruption, mostly visible in malloc-related calls. Whether you see
this or not might depend on your libc/compiler. Hard to track down,
because the result of the corruption might be quite delayed.
Reproducable with glibc-2.3/gcc 3.2.2 by:
cat <<X | php do_crash
dbase_add_record
dbase_close
dbase_create
dbase_delete_record
dbase_get_record
dbase_get_record_with_names
dbase_numfields
dbase_numrecords
dbase_open
X
(2) heap corruption, dies in efree()/execute()
Methodology
1. Use a plain PHP_4_3 tree
2. Use the config.nice from ammendment 1.
3. Download the test script from:
<URL:http://schumann.cx/do_crash.txt>
4a. Use the scripts funcparse.awk/genfunclist.sh from phpdoc/scripts
for creating a plain text function list. Feed that list to
the script. Avoid calls like pcntl_fork. Manually remove functions
which take too long to finish/eat up all memory.
4b. For testing a single function, echo the name of the function to
the script like this:
echo dbase_open | php do_crash.txt
(3) multiple integer overflows, ex. pack("d4294967297", 2);
Amendment 1.
CFLAGS='-O0 -g' \
'../src/php4/configure' \
'--enable-pcntl' \
'--enable-shmop' \
'--enable-sysvsem' \
'--enable-sysvshm' \
'--enable-wddx' \
'--enable-yp' \
'--enable-filepro' \
'--enable-ftp' \
'--enable-dba' \
'--enable-dbase' \
'--enable-dio' \
'--enable-exif' \
'--enable-mbstring' \
'--enable-mbregex' \
'--enable-sockets' \
'--enable-bcmath' \
'--enable-calendar' \
'--enable-pcntl' \
'--enable-shmop' \
'--enable-sysvsem' \
'--enable-sysvshm' \
'--enable-wddx' \
'--enable-yp' \
'--enable-filepro' \
'--enable-ftp' \
'--enable-dba' \
'--enable-dbase' \
'--enable-dio' \
'--enable-exif' \
'--enable-mbstring' \
'--enable-mbregex' \
'--enable-sockets' \
'--enable-bcmath' \
'--enable-calendar' \
"$@"
+39 -15
View File
@@ -15,7 +15,6 @@
#ifdef ZTS
#include <stdio.h>
#include <stdlib.h>
#if HAVE_STDARG_H
#include <stdarg.h>
@@ -80,7 +79,7 @@ static FILE *tsrm_error_file;
} \
}
#else
#define TSRM_ERROR
#define TSRM_ERROR(args)
#define TSRM_SAFE_RETURN_RSRC(array, offset, range) \
if (offset==0) { \
return &array; \
@@ -96,9 +95,10 @@ static pthread_key_t tls_key;
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)
{
@@ -111,6 +111,8 @@ TSRM_API int tsrm_startup(int expected_threads, int expected_resources, int debu
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;
@@ -179,6 +181,7 @@ TSRM_API void tsrm_shutdown(void)
#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);
@@ -259,6 +262,8 @@ static void allocate_new_resource(tsrm_tls_entry **thread_resources_ptr, THREAD_
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) {
@@ -298,6 +303,8 @@ TSRM_API void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id)
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
@@ -424,6 +431,8 @@ TSRM_API THREAD_T tsrm_thread_id(void)
return PIThread_getCurrent();
#elif defined(TSRM_ST)
return st_thread_self();
#elif defined(BETHREADS)
return find_thread(NULL);
#endif
}
@@ -431,18 +440,18 @@ TSRM_API THREAD_T tsrm_thread_id(void)
/* Allocate a mutex */
TSRM_API MUTEX_T tsrm_mutex_alloc(void)
{
MUTEX_T mutexp;
MUTEX_T mutexp;
#ifdef NETWARE
long flags = 0; /* Don't require NX_MUTEX_RECURSIVE, I guess */
NXHierarchy_t order = 0;
NX_LOCK_INFO_ALLOC (lockInfo, "PHP-TSRM", 0);
long flags = 0; /* Don't require NX_MUTEX_RECURSIVE, I guess */
NXHierarchy_t order = 0;
NX_LOCK_INFO_ALLOC (lockInfo, "PHP-TSRM", 0);
#endif
#ifdef TSRM_WIN32
mutexp = malloc(sizeof(CRITICAL_SECTION));
mutexp = malloc(sizeof(CRITICAL_SECTION));
InitializeCriticalSection(mutexp);
#elif defined(NETWARE)
mutexp = NXMutexAlloc(flags, order, &lockInfo); /* return value ignored for now */
mutexp = NXMutexAlloc(flags, order, &lockInfo); /* return value ignored for now */
#elif defined(GNUPTH)
mutexp = (MUTEX_T) malloc(sizeof(*mutexp));
pth_mutex_init(mutexp);
@@ -455,18 +464,22 @@ TSRM_API MUTEX_T tsrm_mutex_alloc(void)
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());
printf("Mutex created thread: %d\n",mythreadid());
#endif
return( mutexp );
return( mutexp );
}
/* Free a mutex */
TSRM_API void tsrm_mutex_free(MUTEX_T mutexp)
{
if (mutexp) {
if (mutexp) {
#ifdef TSRM_WIN32
DeleteCriticalSection(mutexp);
#elif defined(NETWARE)
@@ -482,10 +495,13 @@ TSRM_API void tsrm_mutex_free(MUTEX_T mutexp)
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());
printf("Mutex freed thread: %d\n",mythreadid());
#endif
}
@@ -498,7 +514,7 @@ TSRM_API int tsrm_mutex_lock(MUTEX_T mutexp)
EnterCriticalSection(mutexp);
return 1;
#elif defined(NETWARE)
return NXLock(mutexp);
return NXLock(mutexp);
#elif defined(GNUPTH)
return pth_mutex_acquire(mutexp, 0, NULL);
#elif defined(PTHREADS)
@@ -509,6 +525,10 @@ TSRM_API int tsrm_mutex_lock(MUTEX_T mutexp)
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
}
@@ -532,6 +552,10 @@ TSRM_API int tsrm_mutex_unlock(MUTEX_T mutexp)
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
}
+11
View File
@@ -20,6 +20,7 @@
#ifdef WIN32
# define TSRM_WIN32
# include "tsrm_config.w32.h"
#endif
#ifdef TSRM_WIN32
@@ -46,6 +47,9 @@
# 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;
@@ -72,6 +76,13 @@ typedef int ts_rsrc_id;
#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 ***);
+24 -19
View File
@@ -102,26 +102,31 @@ dnl -threads gcc (HP-UX)
dnl
AC_DEFUN(PTHREADS_CHECK,[
save_CFLAGS=$CFLAGS
save_LIBS=$LIBS
PTHREADS_ASSIGN_VARS
PTHREADS_CHECK_COMPILE
LIBS=$save_LIBS
CFLAGS=$save_CFLAGS
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
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
])
+12 -8
View File
@@ -73,15 +73,19 @@ sinclude(TSRM/threads.m4)
AC_DEFUN(TSRM_CHECK_PTHREADS,[
PTHREADS_CHECK
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)
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
])
+4
View File
@@ -4,6 +4,10 @@
#define HAVE_UTIME 1
#define HAVE_ALLOCA 1
#include <malloc.h>
#include <stdlib.h>
#include <crtdbg.h>
#undef inline
#ifdef ZEND_WIN32_FORCE_INLINE
# define inline __forceinline
+3 -5
View File
@@ -14,15 +14,13 @@
# include <sys/param.h>
#endif
#ifdef TSRM_WIN32
#include <malloc.h>
#if HAVE_ALLOCA_H && !defined(_ALLOCA_H)
# include <alloca.h>
#endif
/* AIX requires this to be the first thing in the file. */
#ifndef __GNUC__
# if HAVE_ALLOCA_H
# include <alloca.h>
# else
# ifndef HAVE_ALLOCA_H
# ifdef _AIX
#pragma alloca
# else
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 4 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2002 The PHP Group |
| Copyright (c) 1997-2003 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 2.02 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 4 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2002 The PHP Group |
| Copyright (c) 1997-2003 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 2.02 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
+107 -111
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 4 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2002 The PHP Group |
| Copyright (c) 1997-2003 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 2.02 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -41,6 +41,10 @@
#include "tsrm_nw.h"
#endif
#ifndef HAVE_REALPATH
#define realpath(x,y) strcpy(y,x)
#endif
#define VIRTUAL_CWD_DEBUG 0
#include "TSRM.h"
@@ -88,7 +92,7 @@ static int php_check_dots(const char *element, int n)
(len >= 2 && !php_check_dots(element, len))
#define IS_DIRECTORY_CURRENT(element, len) \
(len == 1 && ptr[0] == '.')
(len == 1 && element[0] == '.')
#elif defined(NETWARE)
/* NetWare has strtok() (in LibC) and allows both slashes in paths, like Windows --
@@ -107,12 +111,12 @@ static int php_check_dots(const char *element, int n)
#ifndef IS_DIRECTORY_UP
#define IS_DIRECTORY_UP(element, len) \
(len == 2 && memcmp(element, "..", 2) == 0)
(len == 2 && element[0] == '.' && element[1] == '.')
#endif
#ifndef IS_DIRECTORY_CURRENT
#define IS_DIRECTORY_CURRENT(element, len) \
(len == 1 && ptr[0] == '.')
(len == 1 && element[0] == '.')
#endif
/* define this to check semantics */
@@ -280,7 +284,7 @@ CWD_API char *virtual_getcwd(char *buf, size_t size TSRMLS_DC)
/* 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)
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;
@@ -298,9 +302,12 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
if (path_length == 0)
return (0);
#if !defined(TSRM_WIN32) && !defined(__BEOS__) && !defined(NETWARE)
if (IS_ABSOLUTE_PATH(path, path_length)) {
if (realpath(path, resolved_path)) {
#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);
}
@@ -318,7 +325,7 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
memcpy(ptr, path, path_length);
ptr += path_length;
*ptr = '\0';
if (realpath(tmp, resolved_path)) {
if (use_realpath && realpath(tmp, resolved_path)) {
path = resolved_path;
path_length = strlen(path);
}
@@ -333,12 +340,7 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
fprintf(stderr,"cwd = %s path = %s\n", state->cwd, path);
#endif
if (IS_ABSOLUTE_PATH(path_copy, path_length)) {
/* COPY_WHEN_ABSOLUTE needs to account for volume name that is unique to NetWare absolute paths */
#ifndef NETWARE
copy_amount = COPY_WHEN_ABSOLUTE;
#else
copy_amount = COPY_WHEN_ABSOLUTE(path_copy);
#endif
is_absolute = 1;
#ifdef TSRM_WIN32
} else if (IS_UNC_PATH(path_copy, path_length)) {
@@ -364,63 +366,64 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
}
ptr = tsrm_strtok_r(path_copy, TOKENIZER_STRING, &tok);
while (ptr) {
ptr_length = strlen(ptr);
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;
if (IS_DIRECTORY_UP(ptr, ptr_length)) {
char save;
save = DEFAULT_SLASH;
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--;
}
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);
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;
}
/* 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] != ':') {
/* 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;
}
#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);
}
ptr = tsrm_strtok_r(NULL, TOKENIZER_STRING, &tok);
}
/* COPY_WHEN_ABSOLUTE needs to account for volume name that is unique to NetWare absolute paths */
#ifndef NETWARE
if (state->cwd_length == COPY_WHEN_ABSOLUTE) {
#else
if (state->cwd_length == COPY_WHEN_ABSOLUTE(state->cwd)) {
#endif
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++;
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)) {
@@ -445,7 +448,7 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
CWD_API int virtual_chdir(const char *path TSRMLS_DC)
{
return virtual_file_ex(&CWDG(cwd), path, php_is_dir_ok)?-1:0;
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)
@@ -466,12 +469,7 @@ CWD_API int virtual_chdir_file(const char *path, int (*p_chdir)(const char *path
return -1;
}
/* COPY_WHEN_ABSOLUTE needs to account for volume name that is unique to NetWare absolute paths */
#ifndef NETWARE
if (length == COPY_WHEN_ABSOLUTE && IS_ABSOLUTE_PATH(path, length+1)) { /* Also use trailing slash if this is absolute */
#else
if (length == COPY_WHEN_ABSOLUTE(path) && IS_ABSOLUTE_PATH(path, length+1)) { /* Also use trailing slash if this is absolute */
#endif
length++;
}
temp = (char *) tsrm_do_alloca(length+1);
@@ -488,19 +486,23 @@ CWD_API int virtual_chdir_file(const char *path, int (*p_chdir)(const char *path
CWD_API char *virtual_realpath(const char *path, char *real_path TSRMLS_DC)
{
cwd_state new_state;
int retval;
char *retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
retval = virtual_file_ex(&new_state, path, NULL);
if (!retval) {
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';
return real_path;
retval = real_path;
} else {
retval = NULL;
}
return 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)
@@ -509,7 +511,7 @@ CWD_API int virtual_filepath_ex(const char *path, char **filepath, verify_path_f
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
retval = virtual_file_ex(&new_state, path, verify_path);
retval = virtual_file_ex(&new_state, path, verify_path, 1);
*filepath = new_state.cwd;
@@ -532,7 +534,7 @@ CWD_API FILE *virtual_fopen(const char *path, const char *mode TSRMLS_DC)
}
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, path, NULL);
virtual_file_ex(&new_state, path, NULL, 1);
f = fopen(new_state.cwd, mode);
@@ -540,6 +542,24 @@ CWD_API FILE *virtual_fopen(const char *path, const char *mode TSRMLS_DC)
return f;
}
#if !defined(TSRM_WIN32)
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);
ret = access(new_state.cwd, mode);
CWD_STATE_FREE(&new_state);
return ret;
}
#endif
#if HAVE_UTIME
CWD_API int virtual_utime(const char *filename, struct utimbuf *buf TSRMLS_DC)
{
@@ -547,7 +567,7 @@ CWD_API int virtual_utime(const char *filename, struct utimbuf *buf TSRMLS_DC)
int ret;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, filename, NULL);
virtual_file_ex(&new_state, filename, NULL, 0);
ret = utime(new_state.cwd, buf);
@@ -562,7 +582,7 @@ CWD_API int virtual_chmod(const char *filename, mode_t mode TSRMLS_DC)
int ret;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, filename, NULL);
virtual_file_ex(&new_state, filename, NULL, 1);
ret = chmod(new_state.cwd, mode);
@@ -577,7 +597,7 @@ CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group TSRMLS_
int ret;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, filename, NULL);
virtual_file_ex(&new_state, filename, NULL, 0);
ret = chown(new_state.cwd, owner, group);
@@ -592,7 +612,7 @@ CWD_API int virtual_open(const char *path TSRMLS_DC, int flags, ...)
int f;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, path, NULL);
virtual_file_ex(&new_state, path, NULL, 1);
if (flags & O_CREAT) {
mode_t mode;
@@ -616,7 +636,7 @@ CWD_API int virtual_creat(const char *path, mode_t mode TSRMLS_DC)
int f;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, path, NULL);
virtual_file_ex(&new_state, path, NULL, 1);
f = creat(new_state.cwd, mode);
@@ -631,11 +651,11 @@ CWD_API int virtual_rename(char *oldname, char *newname TSRMLS_DC)
int retval;
CWD_STATE_COPY(&old_state, &CWDG(cwd));
virtual_file_ex(&old_state, oldname, NULL);
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);
virtual_file_ex(&new_state, newname, NULL, 0);
newname = new_state.cwd;
retval = rename(oldname, newname);
@@ -653,7 +673,7 @@ CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC)
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, path, NULL);
virtual_file_ex(&new_state, path, NULL, 1);
retval = stat(new_state.cwd, buf);
@@ -667,7 +687,7 @@ CWD_API int virtual_stat(const char *path, struct stat_libc *buf TSRMLS_DC)
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, path, NULL);
virtual_file_ex(&new_state, path, NULL, 1);
retval = stat(new_state.cwd, (struct stat*)buf);
@@ -683,7 +703,7 @@ CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC)
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, path, NULL);
virtual_file_ex(&new_state, path, NULL, 0);
retval = lstat(new_state.cwd, buf);
@@ -698,7 +718,7 @@ CWD_API int virtual_unlink(const char *path TSRMLS_DC)
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, path, NULL);
virtual_file_ex(&new_state, path, NULL, 0);
retval = unlink(new_state.cwd);
@@ -712,7 +732,7 @@ CWD_API int virtual_mkdir(const char *pathname, mode_t mode TSRMLS_DC)
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, pathname, NULL);
virtual_file_ex(&new_state, pathname, NULL, 1);
#ifdef TSRM_WIN32
retval = mkdir(new_state.cwd);
@@ -729,7 +749,7 @@ CWD_API int virtual_rmdir(const char *pathname TSRMLS_DC)
int retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, pathname, NULL);
virtual_file_ex(&new_state, pathname, NULL, 0);
retval = rmdir(new_state.cwd);
@@ -747,7 +767,7 @@ CWD_API DIR *virtual_opendir(const char *pathname TSRMLS_DC)
DIR *retval;
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, pathname, NULL);
virtual_file_ex(&new_state, pathname, NULL, 1);
retval = opendir(new_state.cwd);
@@ -757,33 +777,9 @@ CWD_API DIR *virtual_opendir(const char *pathname TSRMLS_DC)
#ifdef TSRM_WIN32
/* On Windows the trick of prepending "cd cwd; " doesn't work so we need to perform
a real 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 = getcwd(prev_cwd, MAXPATHLEN);
if (!getcwd_result) {
return NULL;
}
#ifdef ZTS
tsrm_mutex_lock(cwd_mutex);
#endif
chdir(CWDG(cwd).cwd);
retval = popen(command, type);
chdir(prev_cwd);
#ifdef ZTS
tsrm_mutex_unlock(cwd_mutex);
#endif
return retval;
return popen_ex(command, type, CWDG(cwd).cwd, NULL);
}
#elif defined(NETWARE)
+44 -8
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 4 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2002 The PHP Group |
| Copyright (c) 1997-2003 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 2.02 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -41,6 +41,10 @@
#include <unistd.h>
#endif
#if defined(__osf__) || defined(_AIX)
#include <errno.h>
#endif
#ifdef TSRM_WIN32
#include "readdir.h"
#include <sys/utime.h>
@@ -52,9 +56,13 @@ typedef unsigned short mode_t;
#define IS_SLASH(c) ((c) == '/' || (c) == '\\')
#define IS_SLASH_P(c) (*(c) == '/' || \
(*(c) == '\\' && !IsDBCSLeadByte(*(c-1))))
#define COPY_WHEN_ABSOLUTE 2
/* COPY_WHEN_ABSOLUTE also takes path as argument because netware needs it
* to account for volume name that is unique to NetWare absolute paths
*/
#define COPY_WHEN_ABSOLUTE(path) 2
#define IS_ABSOLUTE_PATH(path, len) \
(len >= 2 && isalpha(path[0]) && path[1] == ':')
(len >= 2 && ((isalpha(path[0]) && path[1] == ':') || (IS_SLASH(path[0]) && IS_SLASH(path[1]))))
#define IS_UNC_PATH(path, len) \
(len >= 2 && IS_SLASH(path[0]) && IS_SLASH(path[1]))
@@ -91,7 +99,7 @@ typedef unsigned short mode_t;
#ifndef COPY_WHEN_ABSOLUTE
#define COPY_WHEN_ABSOLUTE 0
#define COPY_WHEN_ABSOLUTE(path) 0
#endif
#ifndef IS_ABSOLUTE_PATH
@@ -146,6 +154,30 @@ 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);
#if !defined(TSRM_WIN32)
CWD_API int virtual_access(const char *pathname, int mode TSRMLS_DC);
#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
@@ -154,7 +186,7 @@ CWD_API int virtual_chmod(const char *filename, mode_t mode TSRMLS_DC);
CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group TSRMLS_DC);
#endif
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path);
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;
@@ -186,8 +218,6 @@ typedef struct _virtual_cwd_globals {
#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_stat(path, buff TSRMLS_CC)
#else
#define VCWD_LSTAT(path, buff) virtual_lstat(path, buff TSRMLS_CC)
#endif
#define VCWD_UNLINK(path) virtual_unlink(path TSRMLS_CC)
@@ -195,6 +225,7 @@ typedef struct _virtual_cwd_globals {
#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
@@ -221,9 +252,14 @@ typedef struct _virtual_cwd_globals {
#define VCWD_RMDIR(pathname) rmdir(pathname)
#define VCWD_OPENDIR(pathname) opendir(pathname)
#define VCWD_POPEN(command, type) popen(command, type)
#define VCWD_ACCESS(pathname, mode) access(pathname, mode)
#if !defined(TSRM_WIN32) && !defined(NETWARE)
#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
+7 -4
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 4 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2002 The PHP Group |
| Copyright (c) 1997-2003 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 2.02 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -18,7 +18,6 @@
/* $Id$ */
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
@@ -28,7 +27,6 @@
#include "TSRM.h"
#ifdef TSRM_WIN32
#include <windows.h>
#include "tsrm_win32.h"
#ifdef ZTS
@@ -150,6 +148,11 @@ static HANDLE dupHandle(HANDLE fh, BOOL inherit) {
}
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;
@@ -192,7 +195,7 @@ TSRM_API FILE *popen(const char *command, const char *type)
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, NULL, NULL, &startup, &process)) {
if (!CreateProcess(NULL, cmd, &security, &security, security.bInheritHandle, NORMAL_PRIORITY_CLASS, env, cwd, &startup, &process)) {
return NULL;
}
free(cmd);
+2 -5
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 4 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2002 The PHP Group |
| Copyright (c) 1997-2003 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 2.02 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -22,8 +22,6 @@
#define TSRM_WIN32_H
#include "TSRM.h"
#ifdef TSRM_WIN32
#include <windows.h>
struct ipc_perm {
@@ -73,8 +71,6 @@ typedef struct {
# define TWG(v) (win32_globals.v)
#endif
#endif
#define IPC_PRIVATE 0
#define IPC_CREAT 00001000
#define IPC_EXCL 00002000
@@ -96,6 +92,7 @@ typedef struct {
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);
-9554
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-2002 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.
--------------------------------------------------------------------
-51
View File
@@ -1,51 +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_object_API.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
-193
View File
@@ -1,193 +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 modifyable 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. 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
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: draft
Maintainer: Stig S. Bakken <ssb@fast.no>
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.
-107
View File
@@ -1,107 +0,0 @@
Title: Delegation
(a/k/a. Object-Based Inheritance)
Version: $Revision$
Status: draft
Maintainer: Sebastian Bergmann <sb@sebastian-bergmann.de>
Dynamic Delegation
Syntax / Example
<?php
class aDelegatee {
function doSomething() {
echo 'hubu';
}
}
class anotherDelegatee {
function doSomething() {
echo 'tubu';
}
}
class Foo {
delegatee $bar;
function setDelegatee($delegatee) {
$this->delegatee = $delegatee;
}
}
$foo = new Foo;
$foo->setDelegatee(new aDelegatee);
$foo->doSomething(); /* prints "hubu" */
$foo->setDelegatee(new anotherDelegatee);
$foo->doSomething(); /* prints "tubu" */
?>
Semantics / Synopsis
The "Foo" class may use all methods available in "$bar" as if they
where locally defined or inherited from a superclass. The essential
difference is that by assigning another object to "$bar" it is
possible to dynamically switch between different implementations for
these methods.
Fixed Delegation
Syntax / Example
<?php
class aDelegatee {
function doSomething() {
echo 'hubu';
}
}
class Foo {
final delegatee $bar = new aDelegatee;
}
$foo = new Foo;
$foo->doSomething(); /* prints "hubu" */
?>
Semantics / Synopsis
The "Foo" class may use all methods available in "$bar" as if they
where locally defined or inherited from a superclass. The difference
to the dynamic delegation is that once the delegatee object is set,
it cannot be changed.
Default Delegation
Syntax / Example
<?php
class Foo {
function __delegate($name, $parameters = array()) {
echo $name;
}
}
$foo = new Foo;
$foo->bar(); /* prints "bar" */
?>
Semantics / Synopsis
If a class has a __delegate() method, it is called whenever a
method on an object of this class is called that is
* Not defined in the class.
* Not provided by a delegatee object.
The __delegate() method is called with the name and parameters
of the method call.
This supersedes / obsoletes similar functionality introduced in
Zend Engine 1 by ext/overload.
-669
View File
@@ -1,669 +0,0 @@
Changes in the Zend Engine 2.0
* New Object Model.
The Zend Engine's handling of objects has been completely
changed in order to allow for new features, but also to increase
its performance.
Objects were handled in previous versions like primitive types
(for instance integers and strings). The drawback of this method
is, that semantically the whole object was copied when a
variable was assigned or parameters were passed to a method. The
new approach refers to objects by handle and not by value (one
can think of a handle as an object's ID).
Many PHP programmers aren't even aware of the copying quirks of
the old 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.
* Private and Protected Members.
The Zend Engine 2.0 introduces private and protected member variables.
Note that for performance reasons no error message is emitted in
case of an illegal access to a private or protectecd member variable.
Example:
<?php
class MyClass {
private $Hello = "Hello, World!\n";
protected $Bar = "Hello, Foo!\n";
protected $Foo = "Hello, Bar!\n";
function printHello() {
print "MyClass::printHello() ".$this->Hello;
print "MyClass::printHello() ".$this->Bar;
print "MyClass::printHello() ".$this->Foo;
}
}
class MyClass2 extends MyClass {
protected $Foo;
function printHello() {
MyClass::printHello(); /* Should print */
print "MyClass2::printHello() ".$this->Hello; /* Shouldn't print out anything */
print "MyClass2::printHello() ".$this->Bar; /* Shouldn't print (not declared)*/
print "MyClass2::printHello() ".$this->Foo; /* Should print */
}
}
$obj = new MyClass();
print $obj->Hello; /* Shouldn't print out anything */
print $obj->Bar; /* Shouldn't print out anything */
print $obj->Foo; /* Shouldn't print out anything */
$obj->printHello(); /* Should print */
$obj = new MyClass2();
print $obj->Hello; /* Shouldn't print out anything */
print $obj->Bar; /* Shouldn't print out anything */
print $obj->Foo; /* Shouldn't print out anything */
$obj->printHello();
?>
Protected member variables can be accessed in classes extending the class
they are declared in, whereas private member variables can only be accessed
by the class they belong to.
Note: Protected member variables have to be declared in every class they
are used!
* Object Cloning.
The Zend Engine 1.0 offered no way a user could decide what copy
constructor to run when an object is duplicated. During
duplication, the Zend Engine 1.0 did a bitwise copy making an
identical replica of all the object's properties.
Creating a copy of an object with fully replicated properties is
not always the wanted behavior. A good example of the need for
copy constructors, is if you have an object which represents a
GTK window and the object holds the resource of this GTK window,
when you create a duplicate you might want to create a new
window with the same properties and have the new object hold the
resource of the new window. Another example is if your object
holds a reference to another object which it uses and when you
replicate the parent object you want to create a new instance of
this other object so that the replica has its own separate copy.
An object copy is created by calling the object's __clone()
method.
Example:
<?php
$copy_of_object = $object->__clone();
?>
When the developer asks to create a new copy of an object, the
Zend Engine will check if a __clone() method has been defined or
not. If not, it will call a default __clone() which will copy
all of the object's properties. If a __clone() method is
defined, then it will be responsible to set the necessary
properties in the created object. For convenience, the engine
will supply a function that imports all of the properties from
the source object, so that they can start with a by-value
replica of the source object, and only override properties that
need to be changed. [The function hasn't been implemented yet]
Example:
<?php
class MyCloneable {
static $id = 0;
function MyCloneable() {
$this->id = self::$id++;
}
function __clone() {
$this->name = $clone->name;
$this->address = 'New York';
$this->id = self::$id++;
}
}
$obj = new MyCloneable();
$obj->name = 'Hello';
$obj->address = 'Tel-Aviv';
print $obj->id . "\n";
$obj = $obj->__clone();
print $obj->id . "\n";
print $obj->name . "\n";
print $obj->address . "\n";
?>
* Nested classes (namespaces).
The Zend Engine 1.0 provided only three scopes: the global
scope, the class scope and the function scope. All scopes but
classes could contain variables, only the class and global
scopes could contain functions, while only the global scope
could contain constants and classes. This means that all of the
Zend Engine 1.0's scoping methods were inherently limited for
solving symbol name collision problems.
The Zend Engine 2.0 introduces the concept of nested classes
to solve the symbol collision problem by making it possible to
define multiple symbol tables able to contain all types of
symbols. The Zend Engine is aware of a current class,
defaulting to the global scope. Each class can contain it's
own set of constants, functions and static variables. In order
to access a class's local symbols you can use the self:: class
accessor, for example, you can do self::$my_static_name = "Hello".
You can also use the class's name such as
MyClass::$my_static_name = "Hello". WIth both constants and
functions, if you don't specify a class context the current class
will be searched first and if the search fails then the global
scope will be searched. If you want to force PHP to only check the
global scope you can use the main:: accessor. For example,
main::strlen() to make sure you're calling the strlen() in the main
scope. You will only need to worry about this if you are defining
methods which have the same name as global functions. For
constants you can use the same notation such as self::MY_CONSTANT
or main::MY_CONSTANT.
Sometimes you will not want to access constants, functions or classes
via the class accessor (i.e. MyClass::) because you use them very
often and are an extremely slow typist. In this case, you can import
functions, classes and constants from classes with the import keyword.
It's quite self explanatory and there are a few examples below.
* Classes may contain classes.
Example:
<?php
class DB::MySQL {
var $host = '';
function db_connect($user) {
print "Connecting to MySQL database '$this->host' as $user\n";
}
}
class DB::Oracle {
var $host = 'localhost';
function db_connect($user) {
print "Connecting to Oracle database '$this->host' as $user\n";
}
}
$MySQL_obj = new DB::MySQL();
$MySQL_obj->db_connect('Susan');
$Oracle_obj = new DB::Oracle();
$Oracle_obj->db_connect('Barbara');
?>
* Classes may contain constants.
Example:
<?php
class foo {
const hey = 'hello';
}
print foo::hey;
?>
* Current namespace's symbol tables are searched first for
constants and functions.
Example:
The following code prints "foobar", not "foo", because
the class constant overrides the "global" constant of
the same name.
<?php
define('foo', 'bar');
class FooClass {
const foo = 'foobar';
function printFoo() {
print foo;
}
}
?>
* In the scope of a function, the current namespace is that
of the containing class/namespace.
Example:
<?php
class FooClass {
function foo() {
$this->bar();
bar();
}
function bar() {
print "foobar\n";
}
}
$obj = new FooClass;
$obj->foo();
$obj->foo();
?>
This prints "foobar" two times, since a bar() method exists
in the current namespace.
* It is possible to "import" symbols from one namespace into
another.
Example:
<?php
class MyClass {
class MyClass2 {
function hello() {
print "Hello, World in MyClass2\n";
}
}
function hello() {
print "Hello, World\n";
}
}
import function hello, class MyClass2 from MyClass;
MyClass2::hello();
hello();
?>
Example:
<?php
class MyOuterClass {
class MyInnerClass {
function func1() {
print "func1()\n";
}
function func2() {
print "func2()\n";
}
}
}
import class * from MyOuterClass;
import function func2 from MyOuterClass::MyInnerClass;
MyInnerClass::func1();
func2();
?>
Example:
<?php
class MyOuterClass {
const Hello = "Hello, World\n";
}
import const Hello from MyOuterClass;
print Hello;
?>
Old code that does not take advantage of namespaces will run
without modifications.
* Unified Constructors.
The Zend Engine allows developers to declare constructor methods
for classes. Classes which have a constructor method call this
method on each newly-created object, so it is suitable for any
initialization that the object may need before it can be used.
With the Zend Engine 1.0, constructor methods were class methods
that had the same name as the class itself. Since it is very
common to call parent constructors from derived classes, the way
the Zend Engine 1.0 worked made it a bit cumbersome to move
classes around in a large class hierarchy. If a class is moved
to reside under a different parent, the constructor name of that
parent changes as well, and the code in the derived class that
calls the parent constructor has to be modified.
The Zend Engine 2.0 introduces a standard way of declaring
constructor methods by calling them by the name __construct().
Example:
<?php
class BaseClass {
function __construct() {
print "In BaseClass constructor\n";
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "In SubClass constructor\n";
}
}
$obj = new BaseClass();
$obj = new SubClass();
?>
For backwards compatibility, if the Zend Engine 2.0 cannot find
a __construct() function for a given class, it will search for
the old-style constructor function, by the name of the class.
Effectively, it means that the only case that would have
compatibility issues is if the class had a method named
__construct() which was used for different semantics.
* Destructors.
Having the ability to define destructors for objects can be very
useful. Destructors can log messages for debugging, close
database connections and do other clean-up work.
No mechanism for object destructors existed in the Zend Engine
1.0, although PHP had already support for registering functions
which should be run on request shutdown.
The Zend Engine 2.0 introduces a destructor concept similar to
that of other object-oriented languages, such as Java: When the
last reference to an object is destroyed the object's
destructor, which is a class method name __destruct() that
recieves no parameters, is called before the object is freed
from memory.
Example:
<?php
class MyDestructableClass {
function __construct() {
print "In constructor\n";
$this->name = 'MyDestructableClass';
}
function __destruct() {
print 'Destroying ' . $this->name . "\n";
}
}
$obj = new MyDestructableClass();
?>
Like constructors, parent destructors will not be called
implicitly by the engine. In order to run a parent destructor,
one would have to explicitly call parent::__destruct() in the
destructor body.
* Exceptions.
The Zend Engine 1.0 had no exception handling. The Zend Engine 2.0
introduces a exception model similar to that of other programming
languages.
Example:
<?php
class MyException {
function __construct($exception) {
$this->exception = $exception;
}
function Display() {
print "MyException: $this->exception\n";
}
}
class MyExceptionFoo extends MyException {
function __construct($exception) {
$this->exception = $exception;
}
function Display() {
print "MyException: $this->exception\n";
}
}
try {
throw new MyExceptionFoo('Hello');
}
catch (MyException $exception) {
$exception->Display();
}
?>
Old code that has no user-defined functions 'catch', 'throw' and
'try' will run without modifications.
* Dereferencing objects returned from functions.
Example:
<?php
class Circle {
function draw() {
print "Circle\n";
}
}
class Square {
function draw() {
print "Square\n";
}
}
function ShapeFactoryMethod($shape) {
switch ($shape) {
case 'Circle': return new Circle();
case 'Square': return new Square();
}
}
ShapeFactoryMethod('Circle')->draw();
ShapeFactoryMethod('Square')->draw();
?>
* Static member variables of static classes can now be
initialized.
Example:
<?php
class foo {
static $my_static = 5;
}
print foo::$my_static;
?>
* Parameters that are passed by reference to a function
may now have default values.
Example:
<?php
function my_function(&$var = null) {
if ($var === null) {
die('$var needs to have a value');
}
}
?>
* Built-In Backtracing.
Example:
<?php
$backtrace = debug_backtrace();
foreach ($backtrace as $step) {
$class = isset($step['class']) ? $step['class'] . '::' : '';
printf(
"%s [%s:%s]\n",
$step['function'],
$step['file'],
$step['line']
);
}
?>
* __autoload(). TBD.
Changes in the Zend Engine 1.0
The Zend Engine was designed from the ground up for increased speed,
reduced memory consumption and more reliable execution. We dare say
it meets all of these goals and does so pretty well. Beyond that,
there are several improvements in the language engine features:
* References support.
$foo = &$a; would make $foo and $a be two names to the same
variable. This works with arrays as well, on either side; e.g.,
$foo = &$a[7]; would make $foo and $a[7] be two names to the
same variable. Changing one would change the other and vice
versa.
* Object overloading support.
This feature allows various OO libraries to use the OO notation
of PHP to access their functionality. Right now, no use is made
of that feature, but we'd have a COM module ready by the time
PHP 4.0 is released. A CORBA module would probably follow.
* include() and eval() are now functions, and not statements.
That means they return a value. The default return value from
include() and eval() is 1, so that you can do if (include())
without further coding. The return value may be changed by
returning a value from the global scope of the included file or
the evaluated string. For example, if 'return 7;' is executed in
the global scope of foo.inc, include('foo.inc') would evaluate
to 7.
* Automatic resource deallocation.
Several people have been bitten by the fact that PHP 3.0 had no
concept of reference counting. The Zend Engine adds full
reference counting for every value in the system, including
resources. As soon as a resource is no longer referenced from
any variable, it is automatically destroyed to save memory and
resources. The most obvious example for the advantage in this is
a loop that has an SQL query inside it, something like '$result
= sql_query(...);'. In PHP 3.0, every iteration resulted in
another SQL result-set allocated in the memory, and all of the
result sets weren't destroyed until the end of the script's
execution. With the Zend Engine, as soon as we overwrite an old
result set with a new one, the old result set which is no longer
referenced, is destroyed.
* Full support for nesting arrays and objects within each other,
in as many levels as you want.
* true and false are now constants of type boolean.
Comparing any other value to them would convert that value to a
boolean first, and conduct the comparison later. That means, for
example, that 5==true would evaluate to true (in PHP 3.0, true
was nothing but a constant for the integer value of 1, so
5==true was identical to 5==1, which was false).
* Runtime binding of function names.
This complex name has a simple explanation - you can now call
functions before they're declared!
* Added here-docs support.
* Added foreach.
Two syntaxes supported:
foreach(array_expr as $val) statement
foreach(array_expr as $key => $val) statement
* A true unset() implementation.
A variable or element that is unset(), is now sent to oblivion
in its entirely, no trace remains from it.
* Output buffering support.
Use ob_start() to begin output buffering, ob_end_flush() to end
buffering and send out the buffered contents, ob_end_clean() to
end buffering without sending the buffered contents, and
ob_get_contents() to retreive the current contents of the output
buffer. Header information (header(), content type, cookies) are
not buffered. By turning on output buffering, you can
effectively send header information all throughout your file,
regardless of whether you've emitted body output or not.
* Full variable reference within quoted strings:
${expr} - full indirect reference support for scalar
variables
{variable} - full variable support
For example:
$foo[5]['bar'] = 'foobar';
print "{$foo[5]["bar"]}"; // would print "foobar"
* Ability to call member functions of other classes from within
member functions or from the global scope.
You can now, for example, override a parent function with a
child function, and call the parent function from it.
* Runtime information for classes (class name, parent, available
functions, etc.).
* Much more efficient syntax highlighter - runs much quicker,
performs more reliably, and generates much tighter HTML.
* A full-featured debugger has been integrated with the language
(supports breakpoints, expression evaluation, step-in/over,
function call backtrace, and more).
The Zend Engine claims 100% compatability with the engine of PHP
3.0, and is shamelessly lying about it. Here's why:
* Static variable initializers only accept scalar values
(in PHP 3.0 they accepted any valid expression). The impact
should be somewhere in between void and non existent, since
initializing a static variable with anything but a simple
static value makes no sense at all.
* The scope of break and continue is local to that of an
include()'d file or an eval()'d string. The impact should
be somewhat smaller of the one above.
* The return statement no longer works from a require()'d file. It
hardly worked in PHP 3.0, so the impact should be fairly small. If
you want this functionality - use include() instead.
* unset() is no longer a function, but a statement.
* The following letter combination is not supported within
encapsulated strings: "{$". If you have a string that includes
this letter combination, for example, print "{$somevar"; (which
printed the letter { and the contents of the variable $somevar in
PHP 3.0), it will result in a parse error with the Zend Engine.
In this case, you would have to change the code to print
"\{$somevar"; This incompatability is due to the full variable
reference within quoted strings feature added in the Zend
Engine.
-510
View File
@@ -1,510 +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_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_objects.c
# End Source File
# Begin Source File
SOURCE=.\zend_objects_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_opcode.c
# End Source File
# Begin Source File
SOURCE=.\zend_operators.c
# End Source File
# Begin Source File
SOURCE=.\zend_ptr_stack.c
# End Source File
# Begin Source File
SOURCE=.\zend_qsort.c
# End Source File
# Begin Source File
SOURCE=.\zend_sprintf.c
# End Source File
# Begin Source File
SOURCE=.\zend_stack.c
# End Source File
# Begin Source File
SOURCE=.\zend_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_errors.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_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_language_parser.h"
# End Source File
# Begin Source File
SOURCE=".\zend_language_scanner.h"
# End Source File
# Begin Source File
SOURCE=.\zend_list.h
# End Source File
# Begin Source File
SOURCE=.\zend_llist.h
# End Source File
# Begin Source File
SOURCE=.\zend_modules.h
# End Source File
# Begin Source File
SOURCE=.\zend_operators.h
# End Source File
# Begin Source File
SOURCE=.\zend_ptr_stack.h
# End Source File
# Begin Source File
SOURCE=.\zend_qsort.h
# End Source File
# Begin Source File
SOURCE=.\zend_stack.h
# End Source File
# Begin Source File
SOURCE=.\zend_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
-232
View File
@@ -1,232 +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/\./ /'`
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])
AC_REQUIRE([AC_PROG_LIBTOOL])
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 \
dlfcn.h)
AC_TYPE_SIZE_T
AC_TYPE_SIGNAL
AC_CHECK_LIB(dl, dlopen, [LIBS="-ldl $LIBS"])
AC_CHECK_FUNC(dlopen,[AC_DEFINE(HAVE_LIBDL, 1,[ ])])
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(experimental-zts,
[ --enable-experimental-zts This will most likely break your build],[
ZEND_EXPERIMENTAL_ZTS=$enableval
],[
ZEND_EXPERIMENTAL_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_MSG_CHECKING(whether to enable thread-safety)
AC_MSG_RESULT($ZEND_EXPERIMENTAL_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)
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_EXPERIMENTAL_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
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", 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
-691
View File
@@ -1,691 +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_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_sprintf.c
# End Source File
# Begin Source File
SOURCE=.\zend_stack.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_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_stack.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
-81
View File
@@ -1,81 +0,0 @@
#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
#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>
#ifdef HAVE_ISNAN
#define zend_isnan(a) isnan(a)
#elif defined(NAN)
#define zend_isnan(a) (((a)==NAN)?1:0)
#elif defined(HAVE_FPCLASS)
#define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
#else
#define zend_isnan(a) 0
#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
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* 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
-45
View File
@@ -1,45 +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
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:
-1628
View File
File diff suppressed because it is too large. Load diff
-339
View File
@@ -1,339 +0,0 @@
Example 1: A singleton (static members)
=======================================
<?php
class Counter {
var $counter = 0;
function increment_and_print()
{
print ++$this->counter;
print "\n";
}
}
class SingletonCounter {
static $m_instance = NULL;
function Instance()
{
if (self::$m_instance == NULL) {
self::$m_instance = new Counter();
}
return self::$m_instance;
}
}
SingletonCounter::Instance()->increment_and_print();
SingletonCounter::Instance()->increment_and_print();
SingletonCounter::Instance()->increment_and_print();
?>
Example 2: Factory method (derefencing objects returned from functions)
=======================================================================
<?php
class Circle {
function draw()
{
print "Circle\n";
}
}
class Square {
function draw()
{
print "Square\n";
}
}
function ShapeFactoryMethod($shape)
{
switch ($shape) {
case "Circle":
return new Circle();
case "Square":
return new Square();
}
}
ShapeFactoryMethod("Circle")->draw();
ShapeFactoryMethod("Square")->draw();
?>
Example 3: Nested class
=======================
<?php
class Database {
class MySQL {
var $host = "";
function db_connect($user) {
print "Connecting to MySQL database '$this->host' as $user\n";
}
}
class Oracle {
var $host = "localhost";
function db_connect($user) {
print "Connecting to Oracle database '$this->host' as $user\n";
}
}
}
$MySQL_obj = new Database::MySQL();
$MySQL_obj->db_connect("John");
$Oracle_obj = new Database::Oracle();
$Oracle_obj->db_connect("Mark");
unset($MySQL_obj);
unset($Oracle_obj);
?>
Example 3: Nested class suitable for a PEAR like hierarchy
==========================================================
<?php
class DB::MySQL {
var $host = "";
function db_connect($user) {
print "Connecting to MySQL database '$this->host' as $user\n";
}
}
class DB::Oracle {
var $host = "localhost";
function db_connect($user) {
print "Connecting to Oracle database '$this->host' as $user\n";
}
}
$MySQL_obj = new DB::MySQL();
$MySQL_obj->db_connect("Susan");
$Oracle_obj = new DB::Oracle();
$Oracle_obj->db_connect("Barbara");
?>
Example 4: Class constants and class scope
==========================================
<?php
class ErrorCodes {
const FATAL = "Fatal error\n";
const WARNING = "Warning\n";
const INFO = "Informational message\n";
function print_fatal_error_codes()
{
print "FATAL = " . FATAL;
print "self::FATAL = " . self::FATAL;
}
}
/* Call the static function and move into the ErrorCodes scope */
ErrorCodes::print_fatal_error_codes();
?>
Example 5: Regular object method using both local and global functions
======================================================================
<?php
class HelloWorld {
const HELLO_WORLD = "Hello, World!\n";
function get_hello_world()
{
return HELLO_WORLD;
}
function length_of_hello_world()
{
$str = get_hello_world();
return strlen($str);
}
}
$obj = new HelloWorld();
print "length_of_hello_world() = " . $obj->length_of_hello_world();
print "\n";
?>
Example 6: Multiple derefencing of objects returned from methods
================================================================
<?php
class Name {
function Name($_name)
{
$this->name = $_name;
}
function display()
{
print $this->name;
print "\n";
}
}
class Person {
function Person($_name, $_address)
{
$this->name = new Name($_name);
}
function getName()
{
return $this->name;
}
}
$person = new Person("John", "New York");
$person->getName()->display();
?>
Example 7: Exception handling
=============================
<?
class MyException {
function MyException($_error) {
$this->error = $_error;
}
function getException()
{
return $this->error;
}
}
function ThrowException()
{
throw new MyException("'This is an exception!'");
}
try {
} catch (MyException $exception) {
print "There was an exception: " . $exception->getException();
print "\n";
}
try {
ThrowException();
} catch (MyException $exception) {
print "There was an exception: " . $exception->getException();
print "\n";
}
?>
Example 8: __clone()
===================
<?
class MyCloneable {
static $id = 0;
function MyCloneable()
{
$this->id = self::$id++;
}
function __clone()
{
$this->name = $clone->name;
$this->address = "New York";
$this->id = self::$id++;
}
}
$obj = new MyCloneable();
$obj->name = "Hello";
$obj->address = "Tel-Aviv";
print $obj->id;
print "\n";
$obj = $obj->__clone();
print $obj->id;
print "\n";
print $obj->name;
print "\n";
print $obj->address;
print "\n";
?>
Example 9: Unified constructors
===============================
<?
class BaseClass {
function __construct()
{
print "In BaseClass constructor\n";
}
}
class SubClass extends BaseClass {
function __construct()
{
parent::__construct();
print "In SubClass constructor\n";
}
}
$obj = new BaseClass();
$obj = new SubClass();
?>
Example 10: Destructors
=======================
<?php
class MyDestructableClass {
function __construct()
{
print "In constructor\n";
$this->name = "MyDestructableClass";
}
function __destruct()
{
print "Destroying " . $this->name . "\n";
}
}
$obj = new MyDestructableClass();
?>
-877
View File
@@ -1,877 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#include "zend.h"
#include "zend_extensions.h"
#include "zend_modules.h"
#include "zend_constants.h"
#include "zend_list.h"
#include "zend_API.h"
#include "zend_builtin_functions.h"
#include "zend_ini.h"
#ifdef ZTS
# define GLOBAL_FUNCTION_TABLE &global_main_class.function_table
# define GLOBAL_CLASS_TABLE &global_main_class.class_table
# define GLOBAL_CONSTANTS_TABLE &global_main_class.constants_table
# define GLOBAL_AUTO_GLOBALS_TABLE global_auto_globals_table
#else
# define GLOBAL_FUNCTION_TABLE CG(function_table)
# define GLOBAL_CLASS_TABLE CG(class_table)
# define GLOBAL_CONSTANTS_TABLE CG(zend_constants)
# define GLOBAL_AUTO_GLOBALS_TABLE CG(auto_globals)
#endif
#if defined(ZEND_WIN32) && ZEND_DEBUG
BOOL WINAPI IsDebuggerPresent(VOID);
#endif
/* true multithread-shared globals */
ZEND_API zend_class_entry *zend_standard_class_def = NULL;
ZEND_API int (*zend_printf)(const char *format, ...);
ZEND_API zend_write_func_t zend_write;
ZEND_API FILE *(*zend_fopen)(const char *filename, char **opened_path);
ZEND_API void (*zend_block_interruptions)(void);
ZEND_API void (*zend_unblock_interruptions)(void);
ZEND_API void (*zend_ticks_function)(int ticks);
ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args);
static void (*zend_message_dispatcher_p)(long message, void *data);
static int (*zend_get_configuration_directive_p)(char *name, uint name_length, zval *contents);
#ifdef ZTS
ZEND_API int compiler_globals_id;
ZEND_API int executor_globals_id;
ZEND_API int alloc_globals_id;
zend_class_entry global_main_class;
HashTable *global_auto_globals_table;
#endif
zend_utility_values zend_uv;
ZEND_API zval zval_used_for_init; /* True global variable */
/* version information */
static char *zend_version_info;
static uint zend_version_info_length;
#define ZEND_CORE_VERSION_INFO "Zend Engine v" ZEND_VERSION ", Copyright (c) 1998-2002 Zend Technologies\n"
#define PRINT_ZVAL_INDENT 4
static void print_hash(HashTable *ht, int indent)
{
zval **tmp;
char *string_key;
HashPosition iterator;
ulong num_key;
uint str_len;
int i;
for (i=0; i<indent; i++) {
ZEND_PUTS(" ");
}
ZEND_PUTS("(\n");
indent += PRINT_ZVAL_INDENT;
zend_hash_internal_pointer_reset_ex(ht, &iterator);
while (zend_hash_get_current_data_ex(ht, (void **) &tmp, &iterator) == SUCCESS) {
for (i=0; i<indent; i++) {
ZEND_PUTS(" ");
}
ZEND_PUTS("[");
switch (zend_hash_get_current_key_ex(ht, &string_key, &str_len, &num_key, 0, &iterator)) {
case HASH_KEY_IS_STRING:
ZEND_PUTS(string_key);
break;
case HASH_KEY_IS_LONG:
zend_printf("%ld", num_key);
break;
}
ZEND_PUTS("] => ");
zend_print_zval_r(*tmp, indent+PRINT_ZVAL_INDENT);
ZEND_PUTS("\n");
zend_hash_move_forward_ex(ht, &iterator);
}
indent -= PRINT_ZVAL_INDENT;
for (i=0; i<indent; i++) {
ZEND_PUTS(" ");
}
ZEND_PUTS(")\n");
}
ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_copy)
{
if (expr->type==IS_STRING) {
*use_copy = 0;
return;
}
switch (expr->type) {
case IS_NULL:
expr_copy->value.str.len = 0;
expr_copy->value.str.val = empty_string;
break;
case IS_BOOL:
if (expr->value.lval) {
expr_copy->value.str.len = 1;
expr_copy->value.str.val = estrndup("1", 1);
} else {
expr_copy->value.str.len = 0;
expr_copy->value.str.val = empty_string;
}
break;
case IS_RESOURCE:
expr_copy->value.str.val = (char *) emalloc(sizeof("Resource id #")-1 + MAX_LENGTH_OF_LONG);
expr_copy->value.str.len = sprintf(expr_copy->value.str.val, "Resource id #%ld", expr->value.lval);
break;
case IS_ARRAY:
expr_copy->value.str.len = sizeof("Array")-1;
expr_copy->value.str.val = estrndup("Array", expr_copy->value.str.len);
break;
case IS_OBJECT:
expr_copy->value.str.val = (char *) emalloc(sizeof("Object id #")-1 + MAX_LENGTH_OF_LONG);
expr_copy->value.str.len = sprintf(expr_copy->value.str.val, "Object id #%ld", (long)expr->value.obj.handle);
#if 0
/* FIXME: This might break BC for some people */
expr_copy->value.str.len = sizeof("Object")-1;
expr_copy->value.str.val = estrndup("Object", expr_copy->value.str.len);
#endif
break;
default:
*expr_copy = *expr;
zval_copy_ctor(expr_copy);
convert_to_string(expr_copy);
break;
}
expr_copy->type = IS_STRING;
*use_copy = 1;
}
ZEND_API int zend_print_zval(zval *expr, int indent)
{
return zend_print_zval_ex(zend_write, expr, indent);
}
ZEND_API int zend_print_zval_ex(zend_write_func_t write_func, zval *expr, int indent)
{
zval expr_copy;
int use_copy;
zend_make_printable_zval(expr, &expr_copy, &use_copy);
if (use_copy) {
expr = &expr_copy;
}
if (expr->value.str.len==0) { /* optimize away empty strings */
if (use_copy) {
zval_dtor(expr);
}
return 0;
}
write_func(expr->value.str.val, expr->value.str.len);
if (use_copy) {
zval_dtor(expr);
}
return expr->value.str.len;
}
ZEND_API void zend_print_zval_r(zval *expr, int indent)
{
zend_print_zval_r_ex(zend_write, expr, indent);
}
ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int indent)
{
switch(expr->type) {
case IS_ARRAY:
ZEND_PUTS("Array\n");
if (++expr->value.ht->nApplyCount>1) {
ZEND_PUTS(" *RECURSION*");
expr->value.ht->nApplyCount=0;
return;
}
print_hash(expr->value.ht, indent);
expr->value.ht->nApplyCount--;
break;
case IS_OBJECT:
{
zend_object *object = Z_OBJ_P(expr);
if (++object->properties->nApplyCount>1) {
ZEND_PUTS(" *RECURSION*");
object->properties->nApplyCount=0;
return;
}
zend_printf("%s Object\n", object->ce->name);
print_hash(object->properties, indent);
object->properties->nApplyCount--;
break;
}
default:
zend_print_variable(expr);
break;
}
}
static FILE *zend_fopen_wrapper(const char *filename, char **opened_path)
{
if (opened_path) {
*opened_path = estrdup(filename);
}
return fopen(filename, "rb");
}
static void register_standard_class(void)
{
zend_standard_class_def = malloc(sizeof(zend_class_entry));
zend_standard_class_def->type = ZEND_INTERNAL_CLASS;
zend_standard_class_def->name_length = sizeof("stdClass") - 1;
zend_standard_class_def->name = zend_strndup("stdClass", zend_standard_class_def->name_length);
zend_standard_class_def->parent = NULL;
zend_hash_init_ex(&zend_standard_class_def->default_properties, 0, NULL, ZVAL_PTR_DTOR, 1, 0);
zend_hash_init_ex(&zend_standard_class_def->private_properties, 0, NULL, ZVAL_PTR_DTOR, 1, 0);
zend_hash_init_ex(&zend_standard_class_def->protected_properties, 0, NULL, ZVAL_PTR_DTOR, 1, 0);
zend_standard_class_def->static_members = (HashTable *) malloc(sizeof(HashTable));
zend_hash_init_ex(zend_standard_class_def->static_members, 0, NULL, ZVAL_PTR_DTOR, 1, 0);
zend_hash_init_ex(&zend_standard_class_def->constants_table, 0, NULL, ZVAL_PTR_DTOR, 1, 0);
zend_hash_init_ex(&zend_standard_class_def->class_table, 10, NULL, ZEND_CLASS_DTOR, 1, 0);
zend_hash_init_ex(&zend_standard_class_def->function_table, 0, NULL, ZEND_FUNCTION_DTOR, 1, 0);
zend_standard_class_def->constructor = NULL;
zend_standard_class_def->destructor = NULL;
zend_standard_class_def->clone = NULL;
zend_standard_class_def->handle_function_call = NULL;
zend_standard_class_def->handle_property_get = NULL;
zend_standard_class_def->handle_property_set = NULL;
zend_standard_class_def->refcount = 1;
zend_hash_add(GLOBAL_CLASS_TABLE, "stdclass", sizeof("stdclass"), &zend_standard_class_def, sizeof(zend_class_entry *), NULL);
}
static void zend_set_default_compile_time_values(TSRMLS_D)
{
/* default compile-time values */
CG(asp_tags) = 0;
CG(short_tags) = 1;
CG(allow_call_time_pass_reference) = 1;
CG(extended_info) = 0;
}
#ifdef ZTS
static void compiler_globals_ctor(zend_compiler_globals *compiler_globals TSRMLS_DC)
{
zend_function tmp_func;
zend_class_entry tmp_class;
compiler_globals->compiled_filename = NULL;
compiler_globals->function_table = &compiler_globals->main_class.function_table;
zend_hash_init_ex(compiler_globals->function_table, 100, NULL, ZEND_FUNCTION_DTOR, 1, 0);
zend_hash_copy(compiler_globals->function_table, GLOBAL_FUNCTION_TABLE, NULL, &tmp_func, sizeof(zend_function));
compiler_globals->class_table = &compiler_globals->main_class.class_table;
zend_hash_init_ex(compiler_globals->class_table, 10, NULL, ZEND_CLASS_DTOR, 1, 0);
zend_hash_copy(compiler_globals->class_table, GLOBAL_CLASS_TABLE, (copy_ctor_func_t) zend_class_add_ref, &tmp_class, sizeof(zend_class_entry));
zend_set_default_compile_time_values(TSRMLS_C);
CG(interactive) = 0;
compiler_globals->auto_globals = (HashTable *) malloc(sizeof(HashTable));
zend_hash_init_ex(compiler_globals->auto_globals, 8, NULL, NULL, 1, 0);
zend_hash_copy(compiler_globals->auto_globals, global_auto_globals_table, NULL, NULL, sizeof(void *) /* empty element */);
}
static void compiler_globals_dtor(zend_compiler_globals *compiler_globals TSRMLS_DC)
{
if (compiler_globals->function_table != GLOBAL_FUNCTION_TABLE) {
zend_hash_destroy(compiler_globals->function_table);
}
if (compiler_globals->class_table != GLOBAL_CLASS_TABLE) {
zend_hash_destroy(compiler_globals->class_table);
}
if (compiler_globals->auto_globals != global_auto_globals_table) {
zend_hash_destroy(compiler_globals->auto_globals);
free(compiler_globals->auto_globals);
}
}
static void executor_globals_ctor(zend_executor_globals *executor_globals TSRMLS_DC)
{
if (GLOBAL_CONSTANTS_TABLE) {
zend_startup_constants(TSRMLS_C);
zend_copy_constants(EG(zend_constants), GLOBAL_CONSTANTS_TABLE);
}
zend_init_rsrc_plist(TSRMLS_C);
EG(lambda_count)=0;
EG(user_error_handler) = NULL;
EG(in_execution) = 0;
}
static void executor_globals_dtor(zend_executor_globals *executor_globals TSRMLS_DC)
{
zend_shutdown_constants(TSRMLS_C);
zend_destroy_rsrc_list(&EG(persistent_list) TSRMLS_CC);
zend_ini_shutdown(TSRMLS_C);
}
static void zend_new_thread_end_handler(THREAD_T thread_id TSRMLS_DC)
{
zend_copy_ini_directives(TSRMLS_C);
zend_ini_refresh_caches(ZEND_INI_STAGE_STARTUP TSRMLS_CC);
}
#endif
static void alloc_globals_ctor(zend_alloc_globals *alloc_globals_p TSRMLS_DC)
{
start_memory_manager(TSRMLS_C);
}
static void alloc_globals_dtor(zend_alloc_globals *alloc_globals_p TSRMLS_DC)
{
shutdown_memory_manager(0, 1 TSRMLS_CC);
}
#ifdef __FreeBSD__
/* FreeBSD floating point precision fix */
#include <floatingpoint.h>
#endif
static void scanner_globals_ctor(zend_scanner_globals *scanner_globals_p TSRMLS_DC)
{
scanner_globals_p->c_buf_p = (char *) 0;
scanner_globals_p->init = 1;
scanner_globals_p->start = 0;
scanner_globals_p->current_buffer = NULL;
scanner_globals_p->yy_in = NULL;
scanner_globals_p->yy_out = NULL;
scanner_globals_p->_yy_more_flag = 0;
scanner_globals_p->_yy_more_len = 0;
}
int zend_startup(zend_utility_functions *utility_functions, char **extensions, int start_builtin_functions)
{
#ifdef ZTS
zend_compiler_globals *compiler_globals;
zend_executor_globals *executor_globals;
void ***tsrm_ls;
#ifdef ZTS
extern ZEND_API ts_rsrc_id ini_scanner_globals_id;
extern ZEND_API ts_rsrc_id language_scanner_globals_id;
#else
extern zend_scanner_globals ini_scanner_globals;
extern zend_scanner_globals language_scanner_globals;
#endif
ts_allocate_id(&alloc_globals_id, sizeof(zend_alloc_globals), (ts_allocate_ctor) alloc_globals_ctor, (ts_allocate_dtor) alloc_globals_dtor);
#else
alloc_globals_ctor(&alloc_globals TSRMLS_CC);
#endif
#ifdef __FreeBSD__
/* FreeBSD floating point precision fix */
fpsetmask(0);
#endif
zend_startup_extensions_mechanism();
/* Set up utility functions and values */
zend_error_cb = utility_functions->error_function;
zend_printf = utility_functions->printf_function;
zend_write = (zend_write_func_t) utility_functions->write_function;
zend_fopen = utility_functions->fopen_function;
if (!zend_fopen) {
zend_fopen = zend_fopen_wrapper;
}
zend_message_dispatcher_p = utility_functions->message_handler;
zend_block_interruptions = utility_functions->block_interruptions;
zend_unblock_interruptions = utility_functions->unblock_interruptions;
zend_get_configuration_directive_p = utility_functions->get_configuration_directive;
zend_ticks_function = utility_functions->ticks_function;
zend_compile_file = compile_file;
zend_execute = execute;
/* set up version */
zend_version_info = strdup(ZEND_CORE_VERSION_INFO);
zend_version_info_length = sizeof(ZEND_CORE_VERSION_INFO)-1;
#ifndef ZTS
GLOBAL_FUNCTION_TABLE = &compiler_globals.main_class.function_table;
GLOBAL_CLASS_TABLE = &compiler_globals.main_class.class_table;
#endif
GLOBAL_AUTO_GLOBALS_TABLE = (HashTable *) malloc(sizeof(HashTable));
zend_hash_init_ex(GLOBAL_FUNCTION_TABLE, 100, NULL, ZEND_FUNCTION_DTOR, 1, 0);
zend_hash_init_ex(GLOBAL_CLASS_TABLE, 10, NULL, ZEND_CLASS_DTOR, 1, 0);
zend_hash_init_ex(GLOBAL_AUTO_GLOBALS_TABLE, 8, NULL, NULL, 1, 0);
register_standard_class();
zend_hash_init_ex(&module_registry, 50, NULL, ZEND_MODULE_DTOR, 1, 0);
zend_init_rsrc_list_dtors();
/* This zval can be used to initialize allocate zval's to an uninit'ed value */
zval_used_for_init.is_ref = 0;
zval_used_for_init.refcount = 1;
zval_used_for_init.type = IS_NULL;
#ifdef ZTS
ts_allocate_id(&compiler_globals_id, sizeof(zend_compiler_globals), (ts_allocate_ctor) compiler_globals_ctor, (ts_allocate_dtor) compiler_globals_dtor);
ts_allocate_id(&executor_globals_id, sizeof(zend_executor_globals), (ts_allocate_ctor) executor_globals_ctor, (ts_allocate_dtor) executor_globals_dtor);
ts_allocate_id(&language_scanner_globals_id, sizeof(zend_scanner_globals), (ts_allocate_ctor) scanner_globals_ctor, NULL);
ts_allocate_id(&ini_scanner_globals_id, sizeof(zend_scanner_globals), (ts_allocate_ctor) scanner_globals_ctor, NULL);
compiler_globals = ts_resource(compiler_globals_id);
executor_globals = ts_resource(executor_globals_id);
tsrm_ls = ts_resource_ex(0, NULL);
compiler_globals_dtor(compiler_globals, tsrm_ls);
*compiler_globals->function_table = *GLOBAL_FUNCTION_TABLE;
*compiler_globals->class_table = *GLOBAL_CLASS_TABLE;
compiler_globals->auto_globals = GLOBAL_AUTO_GLOBALS_TABLE;
zend_startup_constants(tsrm_ls);
#else
zend_hash_init_ex(CG(auto_globals), 8, NULL, NULL, 1, 0);
scanner_globals_ctor(&ini_scanner_globals TSRMLS_CC);
scanner_globals_ctor(&language_scanner_globals TSRMLS_CC);
zend_startup_constants();
zend_set_default_compile_time_values(TSRMLS_C);
EG(user_error_handler) = NULL;
#endif
zend_register_standard_constants(TSRMLS_C);
#ifndef ZTS
zend_init_rsrc_plist(TSRMLS_C);
#endif
if (start_builtin_functions) {
zend_startup_builtin_functions(TSRMLS_C);
}
zend_ini_startup(TSRMLS_C);
#ifdef ZTS
tsrm_set_new_thread_end_handler(zend_new_thread_end_handler);
*GLOBAL_FUNCTION_TABLE = *compiler_globals->function_table;
*GLOBAL_CLASS_TABLE = *compiler_globals->class_table;
#endif
return SUCCESS;
}
void zend_shutdown(TSRMLS_D)
{
#ifdef ZEND_WIN32
zend_shutdown_timeout_thread();
#endif
#ifndef ZTS
zend_destroy_rsrc_list(&EG(persistent_list) TSRMLS_CC);
#endif
zend_destroy_rsrc_list_dtors();
zend_hash_graceful_reverse_destroy(&module_registry);
#ifndef ZTS
/* In ZTS mode these are freed by compiler_globals_dtor() */
zend_hash_destroy(GLOBAL_FUNCTION_TABLE);
zend_hash_destroy(GLOBAL_CLASS_TABLE);
#endif
zend_hash_destroy(GLOBAL_AUTO_GLOBALS_TABLE);
free(GLOBAL_AUTO_GLOBALS_TABLE);
zend_shutdown_extensions(TSRMLS_C);
free(zend_version_info);
#ifndef ZTS
zend_shutdown_constants();
#endif
}
void zend_set_utility_values(zend_utility_values *utility_values)
{
zend_uv = *utility_values;
zend_uv.import_use_extension_length = strlen(zend_uv.import_use_extension);
}
/* this should be compatible with the standard zenderror */
void zenderror(char *error)
{
zend_error(E_PARSE, error);
}
BEGIN_EXTERN_C()
ZEND_API void _zend_bailout(char *filename, uint lineno)
{
TSRMLS_FETCH();
if (!EG(bailout_set)) {
zend_output_debug_string(1, "%s(%d) : Bailed out without a bailout address!", filename, lineno);
exit(-1);
}
CG(unclean_shutdown) = 1;
CG(in_compilation) = EG(in_execution) = 0;
longjmp(EG(bailout), FAILURE);
}
END_EXTERN_C()
void zend_append_version_info(zend_extension *extension)
{
char *new_info;
uint new_info_length;
new_info_length = sizeof(" with v, by \n")
+ strlen(extension->name)
+ strlen(extension->version)
+ strlen(extension->copyright)
+ strlen(extension->author);
new_info = (char *) malloc(new_info_length+1);
sprintf(new_info, " with %s v%s, %s, by %s\n", extension->name, extension->version, extension->copyright, extension->author);
zend_version_info = (char *) realloc(zend_version_info, zend_version_info_length+new_info_length+1);
strcat(zend_version_info, new_info);
zend_version_info_length += new_info_length;
free(new_info);
}
ZEND_API char *get_zend_version()
{
return zend_version_info;
}
void zend_activate(TSRMLS_D)
{
init_compiler(TSRMLS_C);
init_executor(TSRMLS_C);
startup_scanner(TSRMLS_C);
}
void zend_activate_modules(TSRMLS_D)
{
zend_hash_apply(&module_registry, (apply_func_t) module_registry_request_startup TSRMLS_CC);
}
void zend_deactivate_modules(TSRMLS_D)
{
EG(opline_ptr) = NULL; /* we're no longer executing anything */
zend_try {
zend_hash_apply(&module_registry, (apply_func_t) module_registry_cleanup TSRMLS_CC);
} zend_end_try();
}
void zend_deactivate(TSRMLS_D)
{
/* we're no longer executing anything */
EG(opline_ptr) = NULL;
EG(active_symbol_table) = NULL;
zend_try {
shutdown_scanner(TSRMLS_C);
} zend_end_try();
/* shutdown_executor() takes care of its own bailout handling */
shutdown_executor(TSRMLS_C);
zend_try {
shutdown_compiler(TSRMLS_C);
} zend_end_try();
zend_try {
zend_ini_deactivate(TSRMLS_C);
} zend_end_try();
}
BEGIN_EXTERN_C()
ZEND_API void zend_message_dispatcher(long message, void *data)
{
if (zend_message_dispatcher_p) {
zend_message_dispatcher_p(message, data);
}
}
END_EXTERN_C()
ZEND_API int zend_get_configuration_directive(char *name, uint name_length, zval *contents)
{
if (zend_get_configuration_directive_p) {
return zend_get_configuration_directive_p(name, name_length, contents);
} else {
return FAILURE;
}
}
#define ZEND_ERROR_BUFFER_SIZE 1024
ZEND_API void zend_error(int type, const char *format, ...)
{
va_list args;
zval ***params;
zval *retval;
zval *z_error_type, *z_error_message, *z_error_filename, *z_error_lineno, *z_context;
char *error_filename;
uint error_lineno;
zval *orig_user_error_handler;
TSRMLS_FETCH();
/* Obtain relevant filename and lineno */
switch (type) {
case E_CORE_ERROR:
case E_CORE_WARNING:
error_filename = NULL;
error_lineno = 0;
break;
case E_PARSE:
case E_COMPILE_ERROR:
case E_COMPILE_WARNING:
case E_ERROR:
case E_NOTICE:
case E_WARNING:
case E_USER_ERROR:
case E_USER_WARNING:
case E_USER_NOTICE:
if (zend_is_compiling(TSRMLS_C)) {
error_filename = zend_get_compiled_filename(TSRMLS_C);
error_lineno = zend_get_compiled_lineno(TSRMLS_C);
} else if (zend_is_executing(TSRMLS_C)) {
error_filename = zend_get_executed_filename(TSRMLS_C);
error_lineno = zend_get_executed_lineno(TSRMLS_C);
} else {
error_filename = NULL;
error_lineno = 0;
}
break;
default:
error_filename = NULL;
error_lineno = 0;
break;
}
if (!error_filename) {
error_filename = "Unknown";
}
va_start(args, format);
/* if we don't have a user defined error handler */
if (!EG(user_error_handler)) {
zend_error_cb(type, error_filename, error_lineno, format, args);
} else switch (type) {
case E_ERROR:
case E_PARSE:
case E_CORE_ERROR:
case E_CORE_WARNING:
case E_COMPILE_ERROR:
case E_COMPILE_WARNING:
/* The error may not be safe to handle in user-space */
zend_error_cb(type, error_filename, error_lineno, format, args);
break;
default:
/* Handle the error in user space */
ALLOC_INIT_ZVAL(z_error_message);
ALLOC_INIT_ZVAL(z_error_type);
ALLOC_INIT_ZVAL(z_error_filename);
ALLOC_INIT_ZVAL(z_error_lineno);
ALLOC_INIT_ZVAL(z_context);
z_error_message->value.str.val = (char *) emalloc(ZEND_ERROR_BUFFER_SIZE);
#ifdef HAVE_VSNPRINTF
z_error_message->value.str.len = vsnprintf(z_error_message->value.str.val, ZEND_ERROR_BUFFER_SIZE, format, args);
if (z_error_message->value.str.len > ZEND_ERROR_BUFFER_SIZE-1) {
z_error_message->value.str.len = ZEND_ERROR_BUFFER_SIZE-1;
}
#else
strncpy(z_error_message->value.str.val, format, ZEND_ERROR_BUFFER_SIZE);
/* This is risky... */
/* z_error_message->value.str.len = vsprintf(z_error_message->value.str.val, format, args); */
#endif
z_error_message->type = IS_STRING;
z_error_type->value.lval = type;
z_error_type->type = IS_LONG;
if (error_filename) {
z_error_filename->value.str.len = strlen(error_filename);
z_error_filename->value.str.val = estrndup(error_filename, z_error_filename->value.str.len);
z_error_filename->type = IS_STRING;
}
z_error_lineno->value.lval = error_lineno;
z_error_lineno->type = IS_LONG;
z_context->value.ht = EG(active_symbol_table);
z_context->type = IS_ARRAY;
ZVAL_ADDREF(z_context); /* we don't want this one to be freed */
params = (zval ***) emalloc(sizeof(zval **)*5);
params[0] = &z_error_type;
params[1] = &z_error_message;
params[2] = &z_error_filename;
params[3] = &z_error_lineno;
params[4] = &z_context;
orig_user_error_handler = EG(user_error_handler);
EG(user_error_handler) = NULL;
if (call_user_function_ex(CG(function_table), NULL, orig_user_error_handler, &retval, 5, params, 1, NULL TSRMLS_CC)==SUCCESS) {
zval_ptr_dtor(&retval);
} else {
/* The user error handler failed, use built-in error handler */
zend_error_cb(type, error_filename, error_lineno, format, args);
}
EG(user_error_handler) = orig_user_error_handler;
efree(params);
zval_ptr_dtor(&z_error_message);
zval_ptr_dtor(&z_error_type);
zval_ptr_dtor(&z_error_filename);
zval_ptr_dtor(&z_error_lineno);
if (ZVAL_REFCOUNT(z_context)==2) {
FREE_ZVAL(z_context);
}
break;
}
va_end(args);
if (type==E_PARSE) {
zend_init_compiler_data_structures(TSRMLS_C);
}
}
ZEND_API void zend_output_debug_string(zend_bool trigger_break, char *format, ...)
{
#if ZEND_DEBUG
va_list args;
va_start(args, format);
# ifdef ZEND_WIN32
{
char output_buf[1024];
vsnprintf(output_buf, 1024, format, args);
OutputDebugString(output_buf);
OutputDebugString("\n");
if (trigger_break && IsDebuggerPresent()) {
DebugBreak();
}
}
# else
vfprintf(stderr, format, args);
fprintf(stderr, "\n");
# endif
va_end(args);
#endif
}
ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int file_count, ...)
{
va_list files;
int i;
zend_file_handle *file_handle;
zend_op_array *orig_op_array = EG(active_op_array);
zval *local_retval=NULL;
va_start(files, file_count);
for (i=0; i<file_count; i++) {
file_handle = va_arg(files, zend_file_handle *);
if (!file_handle) {
continue;
}
EG(active_op_array) = zend_compile_file(file_handle, ZEND_INCLUDE TSRMLS_CC);
zend_destroy_file_handle(file_handle TSRMLS_CC);
if (EG(active_op_array)) {
EG(return_value_ptr_ptr) = retval ? retval : &local_retval;
zend_execute(EG(active_op_array) TSRMLS_CC);
if (EG(exception)) {
zval_ptr_dtor(&EG(exception));
zend_error(E_ERROR, "Uncaught exception!");
} else if (!retval) {
zval_ptr_dtor(EG(return_value_ptr_ptr));
local_retval = NULL;
}
destroy_op_array(EG(active_op_array));
efree(EG(active_op_array));
} else if (type==ZEND_REQUIRE) {
va_end(files);
EG(active_op_array) = orig_op_array;
return FAILURE;
}
}
va_end(files);
EG(active_op_array) = orig_op_array;
return SUCCESS;
}
#define COMPILED_STRING_DESCRIPTION_FORMAT "%s(%d) : %s"
ZEND_API char *zend_make_compiled_string_description(char *name TSRMLS_DC)
{
char *cur_filename;
int cur_lineno;
char *compiled_string_description;
if (zend_is_compiling(TSRMLS_C)) {
cur_filename = zend_get_compiled_filename(TSRMLS_C);
cur_lineno = zend_get_compiled_lineno(TSRMLS_C);
} else if (zend_is_executing(TSRMLS_C)) {
cur_filename = zend_get_executed_filename(TSRMLS_C);
cur_lineno = zend_get_executed_lineno(TSRMLS_C);
} else {
cur_filename = "Unknown";
cur_lineno = 0;
}
compiled_string_description = emalloc(sizeof(COMPILED_STRING_DESCRIPTION_FORMAT)+strlen(name)+strlen(cur_filename)+MAX_LENGTH_OF_LONG);
sprintf(compiled_string_description, COMPILED_STRING_DESCRIPTION_FORMAT, cur_filename, cur_lineno, name);
return compiled_string_description;
}
void free_estring(char **str_p)
{
efree(*str_p);
}
-572
View File
@@ -1,572 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| http://www.zend.com/license/2_00.txt. |
| If you did not receive a copy of the Zend license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@zend.com so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andi Gutmans <andi@zend.com> |
| Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#ifndef ZEND_H
#define ZEND_H
#define ZEND_VERSION "2.0.0-alpha2"
#define ZEND_ENGINE_2
#ifdef __cplusplus
#define BEGIN_EXTERN_C() extern "C" {
#define END_EXTERN_C() }
#else
#define BEGIN_EXTERN_C()
#define END_EXTERN_C()
#endif
#include <stdio.h>
/*
* general definitions
*/
#ifdef ZEND_WIN32
# include "zend_config.w32.h"
# define ZEND_PATHS_SEPARATOR ';'
#elif defined(NETWARE)
# include "zend_config.nw.h"
# include "acconfig.h"
#elif defined(__riscos__)
# include "zend_config.h"
# define ZEND_PATHS_SEPARATOR ';'
#else
# include "zend_config.h"
# define ZEND_PATHS_SEPARATOR ':'
#endif
#ifdef ZEND_WIN32
/* Only use this macro if you know for sure that all of the switches values
are covered by its case statements */
#define EMPTY_SWITCH_DEFAULT_CASE() \
default: \
__assume(0); \
break;
#else
#define EMPTY_SWITCH_DEFAULT_CASE()
#endif
/* all HAVE_XXX test have to be after the include of zend_config above */
#ifdef HAVE_UNIX_H
# include <unix.h>
#endif
#ifdef HAVE_STDARG_H
# include <stdarg.h>
#endif
#ifdef HAVE_DLFCN_H
# include <dlfcn.h>
#endif
#if HAVE_MACH_O_DYLD_H
#include <mach-o/dyld.h>
/* MH_BUNDLE loading functions for Mac OS X / Darwin */
void *zend_mh_bundle_load (char* bundle_path);
int zend_mh_bundle_unload (void *bundle_handle);
void *zend_mh_bundle_symbol(void *bundle_handle, const char *symbol_name);
const char *zend_mh_bundle_error(void);
#endif /* HAVE_MACH_O_DYLD_H */
#if defined(HAVE_LIBDL)
# ifndef RTLD_LAZY
# define RTLD_LAZY 1 /* Solaris 1, FreeBSD's (2.1.7.1 and older) */
# endif
# ifndef RTLD_GLOBAL
# define RTLD_GLOBAL 0
# endif
# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL)
# define DL_UNLOAD dlclose
# if defined(DLSYM_NEEDS_UNDERSCORE)
# define DL_FETCH_SYMBOL(h,s) dlsym((h), "_" ## s)
# else
# define DL_FETCH_SYMBOL dlsym
# endif
# define DL_ERROR dlerror
# define DL_HANDLE void *
# define ZEND_EXTENSIONS_SUPPORT 1
#elif defined(HAVE_MACH_O_DYLD_H)
# define DL_LOAD(libname) zend_mh_bundle_load(libname)
# define DL_UNLOAD(handle) zend_mh_bundle_unload(handle)
# define DL_FETCH_SYMBOL(h,s) zend_mh_bundle_symbol(h,s)
# define DL_ERROR zend_mh_bundle_error
# define DL_HANDLE void *
# define ZEND_EXTENSIONS_SUPPORT 1
#elif defined(ZEND_WIN32)
# define DL_LOAD(libname) LoadLibrary(libname)
# define DL_FETCH_SYMBOL GetProcAddress
# define DL_UNLOAD FreeLibrary
# define DL_HANDLE HMODULE
# define ZEND_EXTENSIONS_SUPPORT 1
#else
# define DL_HANDLE void *
# define ZEND_EXTENSIONS_SUPPORT 0
#endif
/* AIX requires this to be the first thing in the file. */
#ifndef __GNUC__
# if HAVE_ALLOCA_H
# include <alloca.h>
# else
# ifdef _AIX
#pragma alloca
# else
# ifndef alloca /* predefined by HP cc +Olibcalls */
char *alloca ();
# endif
# endif
# endif
#endif
#if (HAVE_ALLOCA || (defined (__GNUC__) && __GNUC__ >= 2)) && !(defined(ZTS) && defined(ZEND_WIN32)) && !(defined(ZTS) && defined(NETWARE))
# define do_alloca(p) alloca(p)
# define free_alloca(p)
#else
# define do_alloca(p) emalloc(p)
# define free_alloca(p) efree(p)
#endif
#if ZEND_DEBUG
#define ZEND_FILE_LINE_D char *__zend_filename, uint __zend_lineno
#define ZEND_FILE_LINE_DC , ZEND_FILE_LINE_D
#define ZEND_FILE_LINE_ORIG_D char *__zend_orig_filename, uint __zend_orig_lineno
#define ZEND_FILE_LINE_ORIG_DC , ZEND_FILE_LINE_ORIG_D
#define ZEND_FILE_LINE_RELAY_C __zend_filename, __zend_lineno
#define ZEND_FILE_LINE_RELAY_CC , ZEND_FILE_LINE_RELAY_C
#define ZEND_FILE_LINE_C __FILE__, __LINE__
#define ZEND_FILE_LINE_CC , ZEND_FILE_LINE_C
#define ZEND_FILE_LINE_EMPTY_C NULL, 0
#define ZEND_FILE_LINE_EMPTY_CC , ZEND_FILE_LINE_EMPTY_C
#define ZEND_FILE_LINE_ORIG_RELAY_C __zend_orig_filename, __zend_orig_lineno
#define ZEND_FILE_LINE_ORIG_RELAY_CC , ZEND_FILE_LINE_ORIG_RELAY_C
#else
#define ZEND_FILE_LINE_D
#define ZEND_FILE_LINE_DC
#define ZEND_FILE_LINE_ORIG_D
#define ZEND_FILE_LINE_ORIG_DC
#define ZEND_FILE_LINE_RELAY_C
#define ZEND_FILE_LINE_RELAY_CC
#define ZEND_FILE_LINE_C
#define ZEND_FILE_LINE_CC
#define ZEND_FILE_LINE_EMPTY_C
#define ZEND_FILE_LINE_EMPTY_CC
#define ZEND_FILE_LINE_ORIG_RELAY_C
#define ZEND_FILE_LINE_ORIG_RELAY_CC
#endif /* ZEND_DEBUG */
#ifdef ZTS
#define ZTS_V 1
#else
#define ZTS_V 0
#endif
#include "zend_errors.h"
#include "zend_alloc.h"
#include "zend_types.h"
#ifdef HAVE_LIMITS_H
# include <limits.h>
#endif
#ifndef LONG_MAX
#define LONG_MAX 2147483647L
#endif
#ifndef LONG_MIN
#define LONG_MIN (- LONG_MAX - 1)
#endif
#undef SUCCESS
#undef FAILURE
#define SUCCESS 0
#define FAILURE -1 /* this MUST stay a negative number, or it may affect functions! */
#include "zend_hash.h"
#include "zend_ts_hash.h"
#include "zend_llist.h"
#define INTERNAL_FUNCTION_PARAMETERS int ht, zval *return_value, zval *this_ptr, int return_value_used TSRMLS_DC
#define INTERNAL_FUNCTION_PARAM_PASSTHRU ht, return_value, this_ptr, return_value_used TSRMLS_CC
/*
* zval
*/
typedef struct _zval_struct zval;
typedef struct _zend_class_entry zend_class_entry;
typedef struct _zend_object {
zend_class_entry *ce;
HashTable *properties;
} zend_object;
typedef unsigned int zend_object_handle;
typedef struct _zend_object_value zend_object_value;
#include "zend_object_handlers.h"
struct _zend_object_value {
zend_object_handle handle;
zend_object_handlers *handlers;
};
typedef union _zvalue_value {
long lval; /* long value */
double dval; /* double value */
struct {
char *val;
zend_uint len;
} str;
HashTable *ht; /* hash table value */
/* struct {
zend_class_entry *ce;
HashTable *properties;
} obj;
*/
zend_object_value obj;
} zvalue_value;
struct _zval_struct {
/* Variable information */
zvalue_value value; /* value */
zend_uint refcount;
zend_uchar type; /* active type */
zend_uchar is_ref;
};
typedef struct _zend_function_entry {
char *fname;
void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
unsigned char *func_arg_types;
} zend_function_entry;
typedef struct _zend_property_reference {
int type; /* read, write or r/w */
zval *object;
zend_llist *elements_list;
} zend_property_reference;
typedef struct _zend_overloaded_element {
int type; /* array offset or object proprety */
zval element;
} zend_overloaded_element;
/* excpt.h on Digital Unix 4.0 defines function_table */
#undef function_table
/* A lot of stuff needs shifiting around in order to include zend_compile.h here */
union _zend_function;
struct _zend_class_entry {
char type;
char *name;
zend_uint name_length;
struct _zend_class_entry *parent;
int refcount;
zend_bool constants_updated;
HashTable function_table;
HashTable default_properties;
HashTable private_properties; /* This is only needed at compile-time */
HashTable protected_properties; /* This is only needed at compile-time */
HashTable class_table;
HashTable *static_members;
HashTable constants_table;
zend_function_entry *builtin_functions;
union _zend_function *constructor;
union _zend_function *destructor;
union _zend_function *clone;
/* handlers */
zend_object_value (*create_object)(zend_class_entry *class_type TSRMLS_DC);
void (*handle_function_call)(INTERNAL_FUNCTION_PARAMETERS, zend_property_reference *property_reference);
zval (*handle_property_get)(zend_property_reference *property_reference);
int (*handle_property_set)(zend_property_reference *property_reference, zval *value);
};
typedef struct _zend_utility_functions {
void (*error_function)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args);
int (*printf_function)(const char *format, ...);
int (*write_function)(const char *str, uint str_length);
FILE *(*fopen_function)(const char *filename, char **opened_path);
void (*message_handler)(long message, void *data);
void (*block_interruptions)(void);
void (*unblock_interruptions)(void);
int (*get_configuration_directive)(char *name, uint name_length, zval *contents);
void (*ticks_function)(int ticks);
} zend_utility_functions;
typedef struct _zend_utility_values {
char *import_use_extension;
uint import_use_extension_length;
} zend_utility_values;
typedef int (*zend_write_func_t)(const char *str, uint str_length);
#undef MIN
#undef MAX
#define MAX(a, b) (((a)>(b))?(a):(b))
#define MIN(a, b) (((a)<(b))?(a):(b))
#define ZEND_STRL(str) (str), (sizeof(str)-1)
#define ZEND_STRS(str) (str), (sizeof(str))
#define ZEND_NORMALIZE_BOOL(n) \
((n) ? (((n)>0) ? 1 : -1) : 0)
/* data types */
#define IS_NULL 0
#define IS_LONG 1
#define IS_DOUBLE 2
#define IS_STRING 3
#define IS_ARRAY 4
#define IS_OBJECT 5
#define IS_BOOL 6
#define IS_RESOURCE 7
#define IS_CONSTANT 8
#define IS_CONSTANT_ARRAY 9
/* Special data type to temporarily mark large numbers */
#define FLAG_IS_BC 10 /* for parser internal use only */
/* Ugly hack to support constants as static array indices */
#define IS_CONSTANT_INDEX 0x80
/* overloaded elements data types */
#define OE_IS_ARRAY (1<<0)
#define OE_IS_OBJECT (1<<1)
#define OE_IS_METHOD (1<<2)
/* Argument passing types */
#define BYREF_NONE 0
#define BYREF_FORCE 1
#define BYREF_ALLOW 2
#define BYREF_FORCE_REST 3
int zend_startup(zend_utility_functions *utility_functions, char **extensions, int start_builtin_functions);
void zend_shutdown(TSRMLS_D);
void zend_set_utility_values(zend_utility_values *utility_values);
BEGIN_EXTERN_C()
ZEND_API void _zend_bailout(char *filename, uint lineno);
END_EXTERN_C()
#define zend_bailout() _zend_bailout(__FILE__, __LINE__)
#define zend_try \
{ \
jmp_buf orig_bailout; \
zend_bool orig_bailout_set=EG(bailout_set); \
\
EG(bailout_set) = 1; \
memcpy(&orig_bailout, &EG(bailout), sizeof(jmp_buf)); \
if (setjmp(EG(bailout))==0)
#define zend_catch \
else
#define zend_end_try() \
memcpy(&EG(bailout), &orig_bailout, sizeof(jmp_buf)); \
EG(bailout_set) = orig_bailout_set; \
}
#define zend_first_try EG(bailout_set)=0; zend_try
ZEND_API char *get_zend_version(void);
ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_copy);
ZEND_API int zend_print_zval(zval *expr, int indent);
ZEND_API int zend_print_zval_ex(zend_write_func_t write_func, zval *expr, int indent);
ZEND_API void zend_print_zval_r(zval *expr, int indent);
ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int indent);
ZEND_API void zend_output_debug_string(zend_bool trigger_break, char *format, ...);
#if ZEND_DEBUG
#define Z_DBG(expr) (expr)
#else
#define Z_DBG(expr)
#endif
ZEND_API extern char *empty_string;
ZEND_API void free_estring(char **str_p);
#define STR_FREE(ptr) if (ptr && ptr!=empty_string) { efree(ptr); }
#define STR_FREE_REL(ptr) if (ptr && ptr!=empty_string) { efree_rel(ptr); }
#define STR_REALLOC(ptr, size) \
if (ptr!=empty_string) { \
ptr = (char *) erealloc(ptr, size); \
} else { \
ptr = (char *) emalloc(size); \
memset(ptr, 0, size); \
}
/* output support */
#define ZEND_WRITE(str, str_len) zend_write((str), (str_len))
#define ZEND_PUTS(str) zend_write((str), strlen((str)))
#define ZEND_PUTC(c) zend_write(&(c), 1), (c)
BEGIN_EXTERN_C()
extern ZEND_API int (*zend_printf)(const char *format, ...);
extern ZEND_API zend_write_func_t zend_write;
extern ZEND_API FILE *(*zend_fopen)(const char *filename, char **opened_path);
extern ZEND_API void (*zend_block_interruptions)(void);
extern ZEND_API void (*zend_unblock_interruptions)(void);
extern ZEND_API void (*zend_ticks_function)(int ticks);
extern ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args);
ZEND_API void zend_error(int type, const char *format, ...);
void zenderror(char *error);
/* The following #define is used for code duality in PHP for Engine 1 & 2 */
#define ZEND_STANDARD_CLASS_DEF_PTR zend_standard_class_def
extern ZEND_API zend_class_entry *zend_standard_class_def;
extern zend_utility_values zend_uv;
extern ZEND_API zval zval_used_for_init;
END_EXTERN_C()
#define ZEND_UV(name) (zend_uv.name)
#define HANDLE_BLOCK_INTERRUPTIONS() if (zend_block_interruptions) { zend_block_interruptions(); }
#define HANDLE_UNBLOCK_INTERRUPTIONS() if (zend_unblock_interruptions) { zend_unblock_interruptions(); }
BEGIN_EXTERN_C()
ZEND_API void zend_message_dispatcher(long message, void *data);
END_EXTERN_C()
ZEND_API int zend_get_configuration_directive(char *name, uint name_length, zval *contents);
/* Messages for applications of Zend */
#define ZMSG_FAILED_INCLUDE_FOPEN 1L
#define ZMSG_FAILED_REQUIRE_FOPEN 2L
#define ZMSG_FAILED_HIGHLIGHT_FOPEN 3L
#define ZMSG_MEMORY_LEAK_DETECTED 4L
#define ZMSG_MEMORY_LEAK_REPEATED 5L
#define ZMSG_LOG_SCRIPT_NAME 6L
#define ZVAL_ADDREF(pz) (++(pz)->refcount)
#define ZVAL_DELREF(pz) (--(pz)->refcount)
#define ZVAL_REFCOUNT(pz) ((pz)->refcount)
#define INIT_PZVAL(z) \
(z)->refcount = 1; \
(z)->is_ref = 0;
#define INIT_ZVAL(z) z = zval_used_for_init;
#define ALLOC_INIT_ZVAL(zp) \
ALLOC_ZVAL(zp); \
INIT_ZVAL(*zp);
#define MAKE_STD_ZVAL(zv) \
ALLOC_ZVAL(zv); \
INIT_PZVAL(zv);
#define PZVAL_IS_REF(z) ((z)->is_ref)
#define SEPARATE_ZVAL(ppzv) \
{ \
zval *orig_ptr = *(ppzv); \
\
if (orig_ptr->refcount>1) { \
orig_ptr->refcount--; \
ALLOC_ZVAL(*(ppzv)); \
**(ppzv) = *orig_ptr; \
zval_copy_ctor(*(ppzv)); \
(*(ppzv))->refcount=1; \
(*(ppzv))->is_ref = 0; \
} \
}
#define SEPARATE_ZVAL_IF_NOT_REF(ppzv) \
if (!PZVAL_IS_REF(*ppzv)) { \
SEPARATE_ZVAL(ppzv); \
}
#define SEPARATE_ZVAL_TO_MAKE_IS_REF(ppzv) \
if (!PZVAL_IS_REF(*ppzv)) { \
SEPARATE_ZVAL(ppzv); \
(*(ppzv))->is_ref = 1; \
}
#define COPY_PZVAL_TO_ZVAL(zv, pzv) \
(zv) = *(pzv); \
if ((pzv)->refcount>1) { \
zval_copy_ctor(&(zv)); \
(pzv)->refcount--; \
} else { \
FREE_ZVAL(pzv); \
} \
INIT_PZVAL(&(zv));
#define REPLACE_ZVAL_VALUE(ppzv_dest, pzv_src, copy) { \
int is_ref, refcount; \
\
SEPARATE_ZVAL_IF_NOT_REF(ppzv_dest); \
is_ref = (*ppzv_dest)->is_ref; \
refcount = (*ppzv_dest)->refcount; \
zval_dtor(*ppzv_dest); \
**ppzv_dest = *pzv_src; \
if (copy) { \
zval_copy_ctor(*ppzv_dest); \
} \
(*ppzv_dest)->is_ref = is_ref; \
(*ppzv_dest)->refcount = refcount; \
}
#define ZEND_MAX_RESERVED_RESOURCES 4
#endif /* ZEND_H */
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
*/
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

-1426
View File
File diff suppressed because it is too large. Load diff
-429
View File
@@ -1,429 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| http://www.zend.com/license/2_00.txt. |
| If you did not receive a copy of the Zend license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@zend.com so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andi Gutmans <andi@zend.com> |
| Zeev Suraski <zeev@zend.com> |
| Andrei Zmievski <andrei@php.net> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_API_H
#define ZEND_API_H
#include "zend_modules.h"
#include "zend_list.h"
#include "zend_fast_cache.h"
#include "zend_operators.h"
#include "zend_variables.h"
#include "zend_execute.h"
BEGIN_EXTERN_C()
#define ZEND_FN(name) zif_##name
#define ZEND_NAMED_FUNCTION(name) void name(INTERNAL_FUNCTION_PARAMETERS)
#define ZEND_FUNCTION(name) ZEND_NAMED_FUNCTION(ZEND_FN(name))
#define ZEND_NAMED_FE(zend_name, name, arg_types) { #zend_name, name, arg_types },
#define ZEND_FE(name, arg_types) ZEND_NAMED_FE(name, ZEND_FN(name), arg_types)
#define ZEND_FALIAS(name, alias, arg_types) ZEND_NAMED_FE(name, ZEND_FN(alias), arg_types)
#define ZEND_STATIC_FE(name, impl_name, arg_types) { name, impl_name, arg_types },
/* Name macros */
#define ZEND_MODULE_STARTUP_N(module) zm_startup_##module
#define ZEND_MODULE_SHUTDOWN_N(module) zm_shutdown_##module
#define ZEND_MODULE_ACTIVATE_N(module) zm_activate_##module
#define ZEND_MODULE_DEACTIVATE_N(module) zm_deactivate_##module
#define ZEND_MODULE_INFO_N(module) zm_info_##module
/* Declaration macros */
#define ZEND_MODULE_STARTUP_D(module) int ZEND_MODULE_STARTUP_N(module)(INIT_FUNC_ARGS)
#define ZEND_MODULE_SHUTDOWN_D(module) int ZEND_MODULE_SHUTDOWN_N(module)(SHUTDOWN_FUNC_ARGS)
#define ZEND_MODULE_ACTIVATE_D(module) int ZEND_MODULE_ACTIVATE_N(module)(INIT_FUNC_ARGS)
#define ZEND_MODULE_DEACTIVATE_D(module) int ZEND_MODULE_DEACTIVATE_N(module)(SHUTDOWN_FUNC_ARGS)
#define ZEND_MODULE_INFO_D(module) void ZEND_MODULE_INFO_N(module)(ZEND_MODULE_INFO_FUNC_ARGS)
#define ZEND_GET_MODULE(name) \
ZEND_DLEXPORT zend_module_entry *get_module(void) { return &name##_module_entry; }
#define ZEND_BEGIN_MODULE_GLOBALS(module_name) \
typedef struct _zend_##module_name##_globals {
#define ZEND_END_MODULE_GLOBALS(module_name) \
} zend_##module_name##_globals;
#ifdef ZTS
#define ZEND_DECLARE_MODULE_GLOBALS(module_name) \
ts_rsrc_id module_name##_globals_id;
#define ZEND_EXTERN_MODULE_GLOBALS(module_name) \
extern ts_rsrc_id module_name##_globals_id;
#define ZEND_INIT_MODULE_GLOBALS(module_name, globals_ctor, globals_dtor) \
ts_allocate_id(&module_name##_globals_id, sizeof(zend_##module_name##_globals), (ts_allocate_ctor) globals_ctor, (ts_allocate_dtor) globals_dtor);
#else
#define ZEND_DECLARE_MODULE_GLOBALS(module_name) \
zend_##module_name##_globals module_name##_globals;
#define ZEND_EXTERN_MODULE_GLOBALS(module_name) \
extern zend_##module_name##_globals module_name##_globals;
#define ZEND_INIT_MODULE_GLOBALS(module_name, globals_ctor, globals_dtor) \
globals_ctor(&module_name##_globals);
#endif
#define INIT_CLASS_ENTRY(class_container, class_name, functions) INIT_OVERLOADED_CLASS_ENTRY(class_container, class_name, functions, NULL, NULL, NULL)
#define INIT_OVERLOADED_CLASS_ENTRY(class_container, class_name, functions, handle_fcall, handle_propget, handle_propset) \
{ \
class_container.name = strdup(class_name); \
class_container.name_length = sizeof(class_name)-1; \
class_container.builtin_functions = functions; \
class_container.constructor = NULL; \
class_container.destructor = NULL; \
class_container.clone = NULL; \
class_container.create_object = NULL; \
class_container.handle_function_call = handle_fcall; \
class_container.handle_property_get = handle_propget; \
class_container.handle_property_set = handle_propset; \
}
int zend_next_free_module(void);
ZEND_API int zend_get_parameters(int ht, int param_count, ...);
ZEND_API int _zend_get_parameters_array(int ht, int param_count, zval **argument_array TSRMLS_DC);
ZEND_API int zend_get_parameters_ex(int param_count, ...);
ZEND_API int _zend_get_parameters_array_ex(int param_count, zval ***argument_array TSRMLS_DC);
#define zend_get_parameters_array(ht, param_count, argument_array) \
_zend_get_parameters_array(ht, param_count, argument_array TSRMLS_CC)
#define zend_get_parameters_array_ex(param_count, argument_array) \
_zend_get_parameters_array_ex(param_count, argument_array TSRMLS_CC)
/* Parameter parsing API -- andrei */
#define ZEND_PARSE_PARAMS_QUIET 1<<1
ZEND_API int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...);
ZEND_API int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...);
ZEND_API char *zend_zval_type_name(zval *arg);
/* End of parameter parsing API -- andrei */
int zend_register_functions(zend_function_entry *functions, HashTable *function_table, int type TSRMLS_DC);
void zend_unregister_functions(zend_function_entry *functions, int count, HashTable *function_table TSRMLS_DC);
ZEND_API int zend_register_module(zend_module_entry *module_entry);
ZEND_API zend_class_entry *zend_register_internal_class(zend_class_entry *class_entry TSRMLS_DC);
ZEND_API zend_class_entry *zend_register_internal_class_ex(zend_class_entry *class_entry, zend_class_entry *parent_ce, char *parent_name TSRMLS_DC);
ZEND_API zend_module_entry *zend_get_module(int module_number);
ZEND_API int zend_disable_function(char *function_name, uint function_name_length TSRMLS_DC);
ZEND_API void zend_wrong_param_count(TSRMLS_D);
ZEND_API zend_bool zend_is_callable(zval *callable, zend_bool syntax_only, char **callable_name);
ZEND_API char *zend_get_module_version(char *module_name);
ZEND_API zend_class_entry *zend_get_class_entry(zval *zobject);
#define getThis() (this_ptr)
#define WRONG_PARAM_COUNT ZEND_WRONG_PARAM_COUNT()
#define WRONG_PARAM_COUNT_WITH_RETVAL(ret) ZEND_WRONG_PARAM_COUNT_WITH_RETVAL(ret)
#define ARG_COUNT(dummy) (ht)
#define ZEND_NUM_ARGS() (ht)
#define ZEND_WRONG_PARAM_COUNT() { zend_wrong_param_count(TSRMLS_C); return; }
#define ZEND_WRONG_PARAM_COUNT_WITH_RETVAL(ret) { zend_wrong_param_count(TSRMLS_C); return ret; }
#ifndef ZEND_WIN32
#define DLEXPORT
#endif
ZEND_API int zend_startup_module(zend_module_entry *module);
#define array_init(arg) _array_init((arg) ZEND_FILE_LINE_CC)
#define object_init(arg) _object_init((arg) ZEND_FILE_LINE_CC TSRMLS_CC)
#define object_init_ex(arg, ce) _object_init_ex((arg), (ce) ZEND_FILE_LINE_CC TSRMLS_CC)
#define object_and_properties_init(arg, ce, properties) _object_and_properties_init((arg), (ce), (properties) ZEND_FILE_LINE_CC TSRMLS_CC)
ZEND_API int _array_init(zval *arg ZEND_FILE_LINE_DC);
ZEND_API int _object_init(zval *arg ZEND_FILE_LINE_DC TSRMLS_DC);
ZEND_API int _object_init_ex(zval *arg, zend_class_entry *ce ZEND_FILE_LINE_DC TSRMLS_DC);
ZEND_API int _object_and_properties_init(zval *arg, zend_class_entry *ce, HashTable *properties ZEND_FILE_LINE_DC TSRMLS_DC);
/* no longer supported */
ZEND_API int add_assoc_function(zval *arg, char *key, void (*function_ptr)(INTERNAL_FUNCTION_PARAMETERS));
ZEND_API int add_assoc_long_ex(zval *arg, char *key, uint key_len, long n);
ZEND_API int add_assoc_null_ex(zval *arg, char *key, uint key_len);
ZEND_API int add_assoc_bool_ex(zval *arg, char *key, uint key_len, int b);
ZEND_API int add_assoc_resource_ex(zval *arg, char *key, uint key_len, int r);
ZEND_API int add_assoc_double_ex(zval *arg, char *key, uint key_len, double d);
ZEND_API int add_assoc_string_ex(zval *arg, char *key, uint key_len, char *str, int duplicate);
ZEND_API int add_assoc_stringl_ex(zval *arg, char *key, uint key_len, char *str, uint length, int duplicate);
ZEND_API int add_assoc_zval_ex(zval *arg, char *key, uint key_len, zval *value);
#define add_assoc_long(__arg, __key, __n) add_assoc_long_ex(__arg, __key, strlen(__key)+1, __n)
#define add_assoc_null(__arg, __key) add_assoc_null_ex(__arg, __key, strlen(__key) + 1)
#define add_assoc_bool(__arg, __key, __b) add_assoc_bool_ex(__arg, __key, strlen(__key)+1, __b)
#define add_assoc_resource(__arg, __key, __r) add_assoc_resource_ex(__arg, __key, strlen(__key)+1, __r)
#define add_assoc_double(__arg, __key, __d) add_assoc_double_ex(__arg, __key, strlen(__key)+1, __d)
#define add_assoc_string(__arg, __key, __str, __duplicate) add_assoc_string_ex(__arg, __key, strlen(__key)+1, __str, __duplicate)
#define add_assoc_stringl(__arg, __key, __str, __length, __duplicate) add_assoc_stringl_ex(__arg, __key, strlen(__key)+1, __str, __length, __duplicate)
#define add_assoc_zval(__arg, __key, __value) add_assoc_zval_ex(__arg, __key, strlen(__key)+1, __value)
/* unset() functions are only suported for legacy modules and null() functions should be used */
#define add_assoc_unset(__arg, __key) add_assoc_null_ex(__arg, __key, strlen(__key) + 1)
#define add_index_unset(__arg, __key) add_index_null(__arg, __key)
#define add_next_index_unset(__arg) add_next_index_null(__arg)
#define add_property_unset(__arg, __key) add_property_null(__arg, __key)
ZEND_API int add_index_long(zval *arg, uint idx, long n);
ZEND_API int add_index_null(zval *arg, uint idx);
ZEND_API int add_index_bool(zval *arg, uint idx, int b);
ZEND_API int add_index_resource(zval *arg, uint idx, int r);
ZEND_API int add_index_double(zval *arg, uint idx, double d);
ZEND_API int add_index_string(zval *arg, uint idx, char *str, int duplicate);
ZEND_API int add_index_stringl(zval *arg, uint idx, char *str, uint length, int duplicate);
ZEND_API int add_index_zval(zval *arg, uint index, zval *value);
ZEND_API int add_next_index_long(zval *arg, long n);
ZEND_API int add_next_index_null(zval *arg);
ZEND_API int add_next_index_bool(zval *arg, int b);
ZEND_API int add_next_index_resource(zval *arg, int r);
ZEND_API int add_next_index_double(zval *arg, double d);
ZEND_API int add_next_index_string(zval *arg, char *str, int duplicate);
ZEND_API int add_next_index_stringl(zval *arg, char *str, uint length, int duplicate);
ZEND_API int add_next_index_zval(zval *arg, zval *value);
ZEND_API int add_get_assoc_string_ex(zval *arg, char *key, uint key_len, char *str, void **dest, int duplicate);
ZEND_API int add_get_assoc_stringl_ex(zval *arg, char *key, uint key_len, char *str, uint length, void **dest, int duplicate);
#define add_get_assoc_string(__arg, __key, __str, __dest, __duplicate) add_get_assoc_string_ex(__arg, __key, strlen(__key)+1, __str, __dest, __duplicate)
#define add_get_assoc_stringl(__arg, __key, __str, __length, __dest, __duplicate) add_get_assoc_stringl_ex(__arg, __key, strlen(__key)+1, __str, __length, __dest, __duplicate)
ZEND_API int add_get_index_long(zval *arg, uint idx, long l, void **dest);
ZEND_API int add_get_index_double(zval *arg, uint idx, double d, void **dest);
ZEND_API int add_get_index_string(zval *arg, uint idx, char *str, void **dest, int duplicate);
ZEND_API int add_get_index_stringl(zval *arg, uint idx, char *str, uint length, void **dest, int duplicate);
ZEND_API int add_property_long_ex(zval *arg, char *key, uint key_len, long l);
ZEND_API int add_property_null_ex(zval *arg, char *key, uint key_len);
ZEND_API int add_property_bool_ex(zval *arg, char *key, uint key_len, int b);
ZEND_API int add_property_resource_ex(zval *arg, char *key, uint key_len, long r);
ZEND_API int add_property_double_ex(zval *arg, char *key, uint key_len, double d);
ZEND_API int add_property_string_ex(zval *arg, char *key, uint key_len, char *str, int duplicate);
ZEND_API int add_property_stringl_ex(zval *arg, char *key, uint key_len, char *str, uint length, int duplicate);
ZEND_API int add_property_zval_ex(zval *arg, char *key, uint key_len, zval *value);
#define add_property_long(__arg, __key, __n) add_property_long_ex(__arg, __key, strlen(__key)+1, __n)
#define add_property_null(__arg, __key) add_property_null_ex(__arg, __key, strlen(__key) + 1)
#define add_property_bool(__arg, __key, __b) add_property_bool_ex(__arg, __key, strlen(__key)+1, __b)
#define add_property_resource(__arg, __key, __r) add_property_resource_ex(__arg, __key, strlen(__key)+1, __r)
#define add_property_double(__arg, __key, __d) add_property_double_ex(__arg, __key, strlen(__key)+1, __d)
#define add_property_string(__arg, __key, __str, __duplicate) add_property_string_ex(__arg, __key, strlen(__key)+1, __str, __duplicate)
#define add_property_stringl(__arg, __key, __str, __length, __duplicate) add_property_stringl_ex(__arg, __key, strlen(__key)+1, __str, __length, __duplicate)
#define add_property_zval(__arg, __key, __value) add_property_zval_ex(__arg, __key, strlen(__key)+1, __value)
ZEND_API int call_user_function(HashTable *function_table, zval **object_pp, zval *function_name, zval *retval_ptr, int param_count, zval *params[] TSRMLS_DC);
ZEND_API int call_user_function_ex(HashTable *function_table, zval **object_pp, zval *function_name, zval **retval_ptr_ptr, int param_count, zval **params[], int no_separation, HashTable *symbol_table TSRMLS_DC);
ZEND_API int zend_set_hash_symbol(zval *symbol, char *name, int name_length,
zend_bool is_ref, int num_symbol_tables, ...);
#define add_method(arg, key, method) add_assoc_function((arg), (key), (method))
#if ZEND_DEBUG
#define CHECK_ZVAL_STRING(z) \
if ((z)->value.str.val[ (z)->value.str.len ] != '\0') zend_error(E_WARNING, "String is not zero-terminated (%s)", (z)->value.str.val);
#define CHECK_ZVAL_STRING_REL(z) \
if ((z)->value.str.val[ (z)->value.str.len ] != '\0') zend_error(E_WARNING, "String is not zero-terminated (%s) (source: %s:%d)", (z)->value.str.val ZEND_FILE_LINE_RELAY_CC);
#else
#define CHECK_ZVAL_STRING(z)
#define CHECK_ZVAL_STRING_REL(z)
#endif
#define ZVAL_RESOURCE(z, l) { \
(z)->type = IS_RESOURCE; \
(z)->value.lval = l; \
}
#define ZVAL_BOOL(z, b) { \
(z)->type = IS_BOOL; \
(z)->value.lval = b; \
}
#define ZVAL_NULL(z) { \
(z)->type = IS_NULL; \
}
#define ZVAL_LONG(z, l) { \
(z)->type = IS_LONG; \
(z)->value.lval = l; \
}
#define ZVAL_DOUBLE(z, d) { \
(z)->type = IS_DOUBLE; \
(z)->value.dval = d; \
}
#define ZVAL_STRING(z, s, duplicate) { \
char *__s=(s); \
(z)->value.str.len = strlen(__s); \
(z)->value.str.val = (duplicate?estrndup(__s, (z)->value.str.len):__s); \
(z)->type = IS_STRING; \
}
#define ZVAL_STRINGL(z, s, l, duplicate) { \
char *__s=(s); int __l=l; \
(z)->value.str.len = __l; \
(z)->value.str.val = (duplicate?estrndup(__s, __l):__s); \
(z)->type = IS_STRING; \
}
#define ZVAL_EMPTY_STRING(z) { \
(z)->value.str.len = 0; \
(z)->value.str.val = empty_string; \
(z)->type = IS_STRING; \
}
#define ZVAL_FALSE(z) ZVAL_BOOL(z, 0)
#define ZVAL_TRUE(z) ZVAL_BOOL(z, 1)
#define RETVAL_RESOURCE(l) ZVAL_RESOURCE(return_value, l)
#define RETVAL_BOOL(b) ZVAL_BOOL(return_value, b)
#define RETVAL_NULL() ZVAL_NULL(return_value)
#define RETVAL_LONG(l) ZVAL_LONG(return_value, l)
#define RETVAL_DOUBLE(d) ZVAL_DOUBLE(return_value, d)
#define RETVAL_STRING(s, duplicate) ZVAL_STRING(return_value, s, duplicate)
#define RETVAL_STRINGL(s, l, duplicate) ZVAL_STRINGL(return_value, s, l, duplicate)
#define RETVAL_EMPTY_STRING() ZVAL_EMPTY_STRING(return_value)
#define RETVAL_FALSE ZVAL_BOOL(return_value, 0)
#define RETVAL_TRUE ZVAL_BOOL(return_value, 1)
#define RETURN_RESOURCE(l) { RETVAL_RESOURCE(l); return; }
#define RETURN_BOOL(b) { RETVAL_BOOL(b); return; }
#define RETURN_NULL() { RETVAL_NULL(); return;}
#define RETURN_LONG(l) { RETVAL_LONG(l); return; }
#define RETURN_DOUBLE(d) { RETVAL_DOUBLE(d); return; }
#define RETURN_STRING(s, duplicate) { RETVAL_STRING(s, duplicate); return; }
#define RETURN_STRINGL(s, l, duplicate) { RETVAL_STRINGL(s, l, duplicate); return; }
#define RETURN_EMPTY_STRING() { RETVAL_EMPTY_STRING(); return; }
#define RETURN_FALSE { RETVAL_FALSE; return; }
#define RETURN_TRUE { RETVAL_TRUE; return; }
#define SET_VAR_STRING(n, v) { \
{ \
zval *var; \
ALLOC_ZVAL(var); \
ZVAL_STRING(var, v, 0); \
ZEND_SET_GLOBAL_VAR(n, var); \
} \
}
#define SET_VAR_STRINGL(n, v, l) { \
{ \
zval *var; \
ALLOC_ZVAL(var); \
ZVAL_STRINGL(var, v, l, 0); \
ZEND_SET_GLOBAL_VAR(n, var); \
} \
}
#define SET_VAR_LONG(n, v) { \
{ \
zval *var; \
ALLOC_ZVAL(var); \
ZVAL_LONG(var, v); \
ZEND_SET_GLOBAL_VAR(n, var); \
} \
}
#define SET_VAR_DOUBLE(n, v) { \
{ \
zval *var; \
ALLOC_ZVAL(var); \
ZVAL_DOUBLE(var, v); \
ZEND_SET_GLOBAL_VAR(n, var); \
} \
}
#define ZEND_SET_SYMBOL(symtable, name, var) \
{ \
char *_name = (name); \
\
ZEND_SET_SYMBOL_WITH_LENGTH(symtable, _name, strlen(_name)+1, var, 1, 0); \
}
#define ZEND_SET_SYMBOL_WITH_LENGTH(symtable, name, name_length, var, _refcount, _is_ref) \
{ \
zval **orig_var; \
\
if (zend_hash_find(symtable, (name), (name_length), (void **) &orig_var)==SUCCESS \
&& PZVAL_IS_REF(*orig_var)) { \
(var)->refcount = (*orig_var)->refcount; \
(var)->is_ref = 1; \
\
if (_refcount) { \
(var)->refcount += _refcount-1; \
} \
zval_dtor(*orig_var); \
**orig_var = *(var); \
FREE_ZVAL(var); \
} else { \
(var)->is_ref = _is_ref; \
if (_refcount) { \
(var)->refcount = _refcount; \
} \
zend_hash_update(symtable, (name), (name_length), &(var), sizeof(zval *), NULL); \
} \
}
#define ZEND_SET_GLOBAL_VAR(name, var) \
ZEND_SET_SYMBOL(&EG(symbol_table), name, var)
#define ZEND_SET_GLOBAL_VAR_WITH_LENGTH(name, name_length, var, _refcount, _is_ref) \
ZEND_SET_SYMBOL_WITH_LENGTH(&EG(symbol_table), name, name_length, var, _refcount, _is_ref)
#define HASH_OF(p) ((p)->type==IS_ARRAY ? (p)->value.ht : (((p)->type==IS_OBJECT ? Z_OBJ_HT_P(p)->get_properties((p) TSRMLS_CC) : NULL)))
#define ZVAL_IS_NULL(z) ((z)->type==IS_NULL)
/* For compatibility */
#define ZEND_MINIT ZEND_MODULE_STARTUP_N
#define ZEND_MSHUTDOWN ZEND_MODULE_SHUTDOWN_N
#define ZEND_RINIT ZEND_MODULE_ACTIVATE_N
#define ZEND_RSHUTDOWN ZEND_MODULE_DEACTIVATE_N
#define ZEND_MINFO ZEND_MODULE_INFO_N
#define ZEND_MINIT_FUNCTION ZEND_MODULE_STARTUP_D
#define ZEND_MSHUTDOWN_FUNCTION ZEND_MODULE_SHUTDOWN_D
#define ZEND_RINIT_FUNCTION ZEND_MODULE_ACTIVATE_D
#define ZEND_RSHUTDOWN_FUNCTION ZEND_MODULE_DEACTIVATE_D
#define ZEND_MINFO_FUNCTION ZEND_MODULE_INFO_D
END_EXTERN_C()
#endif /* ZEND_API_H */
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
*/
-755
View File
@@ -1,755 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#include <stdlib.h>
#include "zend.h"
#include "zend_alloc.h"
#include "zend_globals.h"
#include "zend_fast_cache.h"
#ifdef HAVE_SIGNAL_H
# include <signal.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#include "zend_mm.h"
#ifndef ZTS
ZEND_API zend_alloc_globals alloc_globals;
#endif
#ifdef ZEND_MM
#define ZEND_DISABLE_MEMORY_CACHE 1
#else
#define ZEND_DISABLE_MEMORY_CACHE 0
#endif
#ifdef ZEND_MM
#define ZEND_DO_MALLOC(size) zend_mm_alloc(&AG(mm_heap), size)
#define ZEND_DO_FREE(ptr) zend_mm_free(&AG(mm_heap), ptr)
#define ZEND_DO_REALLOC(ptr, size) zend_mm_realloc(&AG(mm_heap), ptr, size)
#elif defined(ZEND_WIN32)
#define ZEND_DO_MALLOC(size) (AG(memory_heap) ? HeapAlloc(AG(memory_heap), HEAP_NO_SERIALIZE, size) : malloc(size))
#define ZEND_DO_FREE(ptr) (AG(memory_heap) ? HeapFree(AG(memory_heap), HEAP_NO_SERIALIZE, ptr) : free(ptr))
#define ZEND_DO_REALLOC(ptr, size) (AG(memory_heap) ? HeapReAlloc(AG(memory_heap), HEAP_NO_SERIALIZE, ptr, size) : realloc(ptr, size))
#else
#define ZEND_DO_MALLOC(size) malloc(size)
#define ZEND_DO_FREE(ptr) free(ptr)
#define ZEND_DO_REALLOC(ptr, size) realloc(ptr, size)
#endif
#if ZEND_DEBUG
# define END_MAGIC_SIZE sizeof(long)
static long mem_block_end_magic = MEM_BLOCK_END_MAGIC;
#else
# define END_MAGIC_SIZE 0
#endif
# if MEMORY_LIMIT
# if ZEND_DEBUG
#define CHECK_MEMORY_LIMIT(s, rs) _CHECK_MEMORY_LIMIT(s, rs, __zend_filename, __zend_lineno)
# else
#define CHECK_MEMORY_LIMIT(s, rs) _CHECK_MEMORY_LIMIT(s, rs, NULL, 0)
# endif
#define _CHECK_MEMORY_LIMIT(s, rs, file, lineno) { AG(allocated_memory) += rs;\
if (AG(memory_limit)<AG(allocated_memory)) {\
if ((AG(memory_limit)+1048576)<AG(allocated_memory)) { \
/* failed to handle this gracefully, exit() */ \
exit(1); \
} \
if (!AG(memory_exhausted)) { \
if (!file) { \
zend_error(E_ERROR,"Allowed memory size of %d bytes exhausted (tried to allocate %d bytes)", AG(memory_limit), s); \
} else { \
zend_error(E_ERROR,"Allowed memory size of %d bytes exhausted at %s:%d (tried to allocate %d bytes)", AG(memory_limit), file, lineno, s); \
} \
AG(memory_exhausted)=1; \
} \
} \
}
# endif
#ifndef CHECK_MEMORY_LIMIT
#define CHECK_MEMORY_LIMIT(s, rs)
#endif
#define REMOVE_POINTER_FROM_LIST(p) \
if (p==AG(head)) { \
AG(head) = p->pNext; \
} else { \
p->pLast->pNext = p->pNext; \
} \
if (p->pNext) { \
p->pNext->pLast = p->pLast; \
}
#define ADD_POINTER_TO_LIST(p) \
p->pNext = AG(head); \
if (AG(head)) { \
AG(head)->pLast = p; \
} \
AG(head) = p; \
p->pLast = (zend_mem_header *) NULL;
#define DECLARE_CACHE_VARS() \
unsigned int real_size; \
unsigned int cache_index
#define REAL_SIZE(size) ((size+7) & ~0x7)
#define CALCULATE_REAL_SIZE_AND_CACHE_INDEX(size) \
real_size = REAL_SIZE(size); \
cache_index = real_size >> 3;
#define SIZE real_size
#define CACHE_INDEX cache_index
ZEND_API void *_emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
zend_mem_header *p;
DECLARE_CACHE_VARS();
TSRMLS_FETCH();
CALCULATE_REAL_SIZE_AND_CACHE_INDEX(size);
if (!ZEND_DISABLE_MEMORY_CACHE && (CACHE_INDEX < MAX_CACHED_MEMORY) && (AG(cache_count)[CACHE_INDEX] > 0)) {
p = AG(cache)[CACHE_INDEX][--AG(cache_count)[CACHE_INDEX]];
#if ZEND_DEBUG
p->filename = __zend_filename;
p->lineno = __zend_lineno;
p->orig_filename = __zend_orig_filename;
p->orig_lineno = __zend_orig_lineno;
p->magic = MEM_BLOCK_START_MAGIC;
p->reported = 0;
/* Setting the thread id should not be necessary, because we fetched this block
* from this thread's cache
*/
AG(cache_stats)[CACHE_INDEX][1]++;
memcpy((((char *) p) + sizeof(zend_mem_header) + MEM_HEADER_PADDING + size), &mem_block_end_magic, sizeof(long));
#endif
p->cached = 0;
p->size = size;
return (void *)((char *)p + sizeof(zend_mem_header) + MEM_HEADER_PADDING);
} else {
#if ZEND_DEBUG
if (CACHE_INDEX<MAX_CACHED_MEMORY) {
AG(cache_stats)[CACHE_INDEX][0]++;
}
#endif
p = (zend_mem_header *) ZEND_DO_MALLOC(sizeof(zend_mem_header) + MEM_HEADER_PADDING + SIZE + END_MAGIC_SIZE);
}
HANDLE_BLOCK_INTERRUPTIONS();
if (!p) {
fprintf(stderr,"FATAL: emalloc(): Unable to allocate %ld bytes\n", (long) size);
#if ZEND_DEBUG && defined(HAVE_KILL) && defined(HAVE_GETPID)
kill(getpid(), SIGSEGV);
#else
exit(1);
#endif
HANDLE_UNBLOCK_INTERRUPTIONS();
return (void *)p;
}
p->cached = 0;
#if ZEND_DEBUG || !defined(ZEND_MM)
ADD_POINTER_TO_LIST(p);
#endif
p->size = size; /* Save real size for correct cache output */
#if ZEND_DEBUG
p->filename = __zend_filename;
p->lineno = __zend_lineno;
p->orig_filename = __zend_orig_filename;
p->orig_lineno = __zend_orig_lineno;
p->magic = MEM_BLOCK_START_MAGIC;
p->reported = 0;
# ifdef ZTS
p->thread_id = tsrm_thread_id();
# endif
memcpy((((char *) p) + sizeof(zend_mem_header) + MEM_HEADER_PADDING + size), &mem_block_end_magic, sizeof(long));
#endif
#if MEMORY_LIMIT
CHECK_MEMORY_LIMIT(size, SIZE);
if (AG(allocated_memory) > AG(allocated_memory_peak)) {
AG(allocated_memory_peak) = AG(allocated_memory);
}
#endif
HANDLE_UNBLOCK_INTERRUPTIONS();
return (void *)((char *)p + sizeof(zend_mem_header) + MEM_HEADER_PADDING);
}
ZEND_API void _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
zend_mem_header *p = (zend_mem_header *) ((char *)ptr - sizeof(zend_mem_header) - MEM_HEADER_PADDING);
DECLARE_CACHE_VARS();
TSRMLS_FETCH();
#if defined(ZTS) && TSRM_DEBUG
if (p->thread_id != tsrm_thread_id()) {
tsrm_error(TSRM_ERROR_LEVEL_ERROR, "Memory block allocated at %s:(%d) on thread %x freed at %s:(%d) on thread %x, ignoring",
p->filename, p->lineno, p->thread_id,
__zend_filename, __zend_lineno, tsrm_thread_id());
return;
}
#endif
CALCULATE_REAL_SIZE_AND_CACHE_INDEX(p->size);
#if ZEND_DEBUG
if (!_mem_block_check(ptr, 1 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC)) {
return;
}
memset(ptr, 0x5a, p->size);
#endif
if (!ZEND_DISABLE_MEMORY_CACHE
&& (CACHE_INDEX < MAX_CACHED_MEMORY) && (AG(cache_count)[CACHE_INDEX] < MAX_CACHED_ENTRIES)) {
AG(cache)[CACHE_INDEX][AG(cache_count)[CACHE_INDEX]++] = p;
p->cached = 1;
#if ZEND_DEBUG
p->magic = MEM_BLOCK_CACHED_MAGIC;
#endif
return;
}
HANDLE_BLOCK_INTERRUPTIONS();
#if ZEND_DEBUG || !defined(ZEND_MM)
REMOVE_POINTER_FROM_LIST(p);
#endif
#if MEMORY_LIMIT
AG(allocated_memory) -= SIZE;
#endif
ZEND_DO_FREE(p);
HANDLE_UNBLOCK_INTERRUPTIONS();
}
ZEND_API void *_ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
void *p;
int final_size = size*nmemb;
HANDLE_BLOCK_INTERRUPTIONS();
p = _emalloc(final_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
if (!p) {
HANDLE_UNBLOCK_INTERRUPTIONS();
return (void *) p;
}
memset(p, 0, final_size);
HANDLE_UNBLOCK_INTERRUPTIONS();
return p;
}
ZEND_API void *_erealloc(void *ptr, size_t size, int allow_failure ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
zend_mem_header *p;
zend_mem_header *orig;
DECLARE_CACHE_VARS();
TSRMLS_FETCH();
if (!ptr) {
return _emalloc(size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
p = orig = (zend_mem_header *) ((char *)ptr-sizeof(zend_mem_header)-MEM_HEADER_PADDING);
#if defined(ZTS) && TSRM_DEBUG
if (p->thread_id != tsrm_thread_id()) {
void *new_p;
tsrm_error(TSRM_ERROR_LEVEL_ERROR, "Memory block allocated at %s:(%d) on thread %x reallocated at %s:(%d) on thread %x, duplicating",
p->filename, p->lineno, p->thread_id,
__zend_filename, __zend_lineno, tsrm_thread_id());
new_p = _emalloc(size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
memcpy(new_p, ptr, p->size);
return new_p;
}
#endif
CALCULATE_REAL_SIZE_AND_CACHE_INDEX(size);
HANDLE_BLOCK_INTERRUPTIONS();
#if ZEND_DEBUG || !defined(ZEND_MM)
REMOVE_POINTER_FROM_LIST(p);
#endif
p = (zend_mem_header *) ZEND_DO_REALLOC(p, sizeof(zend_mem_header)+MEM_HEADER_PADDING+SIZE+END_MAGIC_SIZE);
if (!p) {
if (!allow_failure) {
fprintf(stderr,"FATAL: erealloc(): Unable to allocate %ld bytes\n", (long) size);
#if ZEND_DEBUG && HAVE_KILL && HAVE_GETPID
kill(getpid(), SIGSEGV);
#else
exit(1);
#endif
}
#if ZEND_DEBUG || !defined(ZEND_MM)
ADD_POINTER_TO_LIST(orig);
#endif
HANDLE_UNBLOCK_INTERRUPTIONS();
return (void *)NULL;
}
#if ZEND_DEBUG || !defined(ZEND_MM)
ADD_POINTER_TO_LIST(p);
#endif
#if ZEND_DEBUG
p->filename = __zend_filename;
p->lineno = __zend_lineno;
p->magic = MEM_BLOCK_START_MAGIC;
memcpy((((char *) p) + sizeof(zend_mem_header) + MEM_HEADER_PADDING + size), &mem_block_end_magic, sizeof(long));
#endif
#if MEMORY_LIMIT
CHECK_MEMORY_LIMIT(size - p->size, SIZE - REAL_SIZE(p->size));
if (AG(allocated_memory) > AG(allocated_memory_peak)) {
AG(allocated_memory_peak) = AG(allocated_memory);
}
#endif
p->size = size;
HANDLE_UNBLOCK_INTERRUPTIONS();
return (void *)((char *)p+sizeof(zend_mem_header)+MEM_HEADER_PADDING);
}
ZEND_API char *_estrdup(const char *s ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
int length;
char *p;
length = strlen(s)+1;
HANDLE_BLOCK_INTERRUPTIONS();
p = (char *) _emalloc(length ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
if (!p) {
HANDLE_UNBLOCK_INTERRUPTIONS();
return (char *)NULL;
}
HANDLE_UNBLOCK_INTERRUPTIONS();
memcpy(p, s, length);
return p;
}
ZEND_API char *_estrndup(const char *s, uint length ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
char *p;
HANDLE_BLOCK_INTERRUPTIONS();
p = (char *) _emalloc(length+1 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
if (!p) {
HANDLE_UNBLOCK_INTERRUPTIONS();
return (char *)NULL;
}
HANDLE_UNBLOCK_INTERRUPTIONS();
memcpy(p, s, length);
p[length] = 0;
return p;
}
ZEND_API char *zend_strndup(const char *s, uint length)
{
char *p;
p = (char *) malloc(length+1);
if (!p) {
return (char *)NULL;
}
if (length) {
memcpy(p, s, length);
}
p[length] = 0;
return p;
}
ZEND_API int zend_set_memory_limit(unsigned int memory_limit)
{
#if MEMORY_LIMIT
TSRMLS_FETCH();
AG(memory_limit) = memory_limit;
return SUCCESS;
#else
return FAILURE;
#endif
}
ZEND_API void start_memory_manager(TSRMLS_D)
{
AG(head) = NULL;
#if MEMORY_LIMIT
AG(memory_limit) = 1<<30; /* ridiculous limit, effectively no limit */
AG(allocated_memory) = 0;
AG(memory_exhausted) = 0;
AG(allocated_memory_peak) = 0;
#endif
#if ZEND_ENABLE_FAST_CACHE
memset(AG(fast_cache_list_head), 0, sizeof(AG(fast_cache_list_head)));
#endif
#if !ZEND_DISABLE_MEMORY_CACHE
memset(AG(cache_count), 0, sizeof(AG(cache_count)));
#endif
#ifdef ZEND_MM
zend_mm_startup(&AG(mm_heap), 256*1024);
#elif defined(ZEND_WIN32)
AG(memory_heap) = HeapCreate(HEAP_NO_SERIALIZE, 256*1024, 0);
#endif
#if ZEND_DEBUG
memset(AG(cache_stats), 0, sizeof(AG(cache_stats)));
memset(AG(fast_cache_stats), 0, sizeof(AG(fast_cache_stats)));
#endif
}
ZEND_API void shutdown_memory_manager(int silent, int clean_cache TSRMLS_DC)
{
zend_mem_header *p, *t;
#if ZEND_DEBUG
int had_leaks = 0;
#endif
#if defined(ZEND_MM) && !ZEND_DEBUG
if (clean_cache) {
zend_mm_shutdown(&AG(mm_heap));
return;
}
#elif defined(ZEND_WIN32) && !ZEND_DEBUG
if (clean_cache && AG(memory_heap)) {
HeapDestroy(AG(memory_heap));
return;
}
#endif
#if ZEND_ENABLE_FAST_CACHE
{
zend_fast_cache_list_entry *fast_cache_list_entry, *next_fast_cache_list_entry;
unsigned int fci;
for (fci=0; fci<MAX_FAST_CACHE_TYPES; fci++) {
fast_cache_list_entry = AG(fast_cache_list_head)[fci];
while (fast_cache_list_entry) {
next_fast_cache_list_entry = fast_cache_list_entry->next;
efree(fast_cache_list_entry);
fast_cache_list_entry = next_fast_cache_list_entry;
}
AG(fast_cache_list_head)[fci] = NULL;
}
}
#endif /* ZEND_ENABLE_FAST_CACHE */
#if !ZEND_DISABLE_MEMORY_CACHE
if (1 || clean_cache) {
unsigned int i, j;
zend_mem_header *ptr;
for (i=1; i<MAX_CACHED_MEMORY; i++) {
for (j=0; j<AG(cache_count)[i]; j++) {
ptr = (zend_mem_header *) AG(cache)[i][j];
#if MEMORY_LIMIT
AG(allocated_memory) -= REAL_SIZE(ptr->size);
#endif
REMOVE_POINTER_FROM_LIST(ptr);
ZEND_DO_FREE(ptr);
}
AG(cache_count)[i] = 0;
}
}
#endif /* !ZEND_DISABLE_MEMORY_CACHE */
#if ZEND_DEBUG || !defined(ZEND_MM)
p = AG(head);
t = AG(head);
while (t) {
if (!t->cached) {
#if ZEND_DEBUG
if (!t->cached && !t->reported) {
zend_mem_header *iterator;
int total_leak=0, total_leak_count=0;
had_leaks = 1;
if (!silent) {
zend_message_dispatcher(ZMSG_MEMORY_LEAK_DETECTED, t);
}
t->reported = 1;
for (iterator=t->pNext; iterator; iterator=iterator->pNext) {
if (!iterator->cached
&& iterator->filename==t->filename
&& iterator->lineno==t->lineno) {
total_leak += iterator->size;
total_leak_count++;
iterator->reported = 1;
}
}
if (!silent && total_leak_count>0) {
zend_message_dispatcher(ZMSG_MEMORY_LEAK_REPEATED, (void *) (long) (total_leak_count));
}
}
#endif
#if MEMORY_LIMIT
AG(allocated_memory) -= t->size;
#endif
p = t->pNext;
REMOVE_POINTER_FROM_LIST(t);
ZEND_DO_FREE(t);
t = p;
} else {
t = t->pNext;
}
}
#if MEMORY_LIMIT
AG(memory_exhausted)=0;
AG(allocated_memory_peak) = 0;
#endif
#if (ZEND_DEBUG)
do {
zval display_memory_cache_stats;
int i, j;
if (clean_cache) {
/* we're shutting down completely, don't even touch the INI subsystem */
break;
}
if (zend_get_configuration_directive("display_memory_cache_stats", sizeof("display_memory_cache_stats"), &display_memory_cache_stats)==FAILURE) {
break;
}
if (!atoi(display_memory_cache_stats.value.str.val)) {
break;
}
fprintf(stderr, "Memory cache statistics\n"
"-----------------------\n\n"
"[zval, %2ld]\t\t%d / %d (%.2f%%)\n"
"[hash, %2ld]\t\t%d / %d (%.2f%%)\n",
(long) sizeof(zval),
AG(fast_cache_stats)[ZVAL_CACHE_LIST][1], AG(fast_cache_stats)[ZVAL_CACHE_LIST][0]+AG(fast_cache_stats)[ZVAL_CACHE_LIST][1],
((double) AG(fast_cache_stats)[ZVAL_CACHE_LIST][1] / (AG(fast_cache_stats)[ZVAL_CACHE_LIST][0]+AG(fast_cache_stats)[ZVAL_CACHE_LIST][1]))*100,
(long) sizeof(HashTable),
AG(fast_cache_stats)[HASHTABLE_CACHE_LIST][1], AG(fast_cache_stats)[HASHTABLE_CACHE_LIST][0]+AG(fast_cache_stats)[HASHTABLE_CACHE_LIST][1],
((double) AG(fast_cache_stats)[HASHTABLE_CACHE_LIST][1] / (AG(fast_cache_stats)[HASHTABLE_CACHE_LIST][0]+AG(fast_cache_stats)[HASHTABLE_CACHE_LIST][1]))*100);
for (i=0; i<MAX_CACHED_MEMORY; i+=2) {
fprintf(stderr, "[%2d, %2d]\t\t", i, i+1);
for (j=0; j<2; j++) {
fprintf(stderr, "%d / %d (%.2f%%)\t\t",
AG(cache_stats)[i+j][1], AG(cache_stats)[i+j][0]+AG(cache_stats)[i+j][1],
((double) AG(cache_stats)[i+j][1] / (AG(cache_stats)[i+j][0]+AG(cache_stats)[i+j][1]))*100);
}
fprintf(stderr, "\n");
}
} while (0);
#endif
#endif
#if defined(ZEND_MM) && ZEND_DEBUG
if (clean_cache) {
zend_mm_shutdown(&AG(mm_heap));
return;
}
#elif defined(ZEND_WIN32) && ZEND_DEBUG
if (clean_cache && AG(memory_heap)) {
HeapDestroy(AG(memory_heap));
return;
}
#endif
}
#if ZEND_DEBUG
void zend_debug_alloc_output(char *format, ...)
{
char output_buf[256];
va_list args;
va_start(args, format);
vsprintf(output_buf, format, args);
va_end(args);
#ifdef ZEND_WIN32
OutputDebugString(output_buf);
#else
fprintf(stderr, "%s", output_buf);
#endif
}
ZEND_API int _mem_block_check(void *ptr, int silent ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
zend_mem_header *p = (zend_mem_header *) ((char *)ptr - sizeof(zend_mem_header) - MEM_HEADER_PADDING);
int no_cache_notice=0;
int valid_beginning=1;
int had_problems=0;
long end_magic;
if (silent==2) {
silent = 1;
no_cache_notice = 1;
}
if (silent==3) {
silent = 0;
no_cache_notice = 1;
}
if (!silent) {
zend_message_dispatcher(ZMSG_LOG_SCRIPT_NAME, NULL);
zend_debug_alloc_output("---------------------------------------\n");
zend_debug_alloc_output("%s(%d) : Block 0x%0.8lX status:\n" ZEND_FILE_LINE_RELAY_CC, (long) p);
if (__zend_orig_filename) {
zend_debug_alloc_output("%s(%d) : Actual location (location was relayed)\n" ZEND_FILE_LINE_ORIG_RELAY_CC);
}
zend_debug_alloc_output("%10s\t","Beginning: ");
}
switch (p->magic) {
case MEM_BLOCK_START_MAGIC:
if (!silent) {
zend_debug_alloc_output("OK (allocated on %s:%d, %d bytes)\n", p->filename, p->lineno, p->size);
}
break; /* ok */
case MEM_BLOCK_FREED_MAGIC:
if (!silent) {
zend_debug_alloc_output("Freed\n");
had_problems = 1;
} else {
return _mem_block_check(ptr, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
break;
case MEM_BLOCK_CACHED_MAGIC:
if (!silent) {
if (!no_cache_notice) {
zend_debug_alloc_output("Cached (allocated on %s:%d, %d bytes)\n", p->filename, p->lineno, p->size);
had_problems = 1;
}
} else {
if (!no_cache_notice) {
return _mem_block_check(ptr, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
}
break;
default:
if (!silent) {
zend_debug_alloc_output("Overrun (magic=0x%0.8lX, expected=0x%0.8lX)\n", p->magic, MEM_BLOCK_START_MAGIC);
} else {
return _mem_block_check(ptr, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
had_problems = 1;
valid_beginning = 0;
break;
}
memcpy(&end_magic, (((char *) p)+sizeof(zend_mem_header)+MEM_HEADER_PADDING+p->size), sizeof(long));
if (valid_beginning && (end_magic != MEM_BLOCK_END_MAGIC)) {
char *overflow_ptr, *magic_ptr=(char *) &mem_block_end_magic;
int overflows=0;
int i;
if (silent) {
return _mem_block_check(ptr, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
had_problems = 1;
overflow_ptr = (char *) &end_magic;
for (i=0; i<sizeof(long); i++) {
if (overflow_ptr[i]!=magic_ptr[i]) {
overflows++;
}
}
zend_debug_alloc_output("%10s\t", "End:");
zend_debug_alloc_output("Overflown (magic=0x%0.8lX instead of 0x%0.8lX)\n", end_magic, MEM_BLOCK_END_MAGIC);
zend_debug_alloc_output("%10s\t","");
if (overflows>=sizeof(long)) {
zend_debug_alloc_output("At least %d bytes overflown\n", sizeof(long));
} else {
zend_debug_alloc_output("%d byte(s) overflown\n", overflows);
}
} else if (!silent) {
zend_debug_alloc_output("%10s\t", "End:");
if (valid_beginning) {
zend_debug_alloc_output("OK\n");
} else {
zend_debug_alloc_output("Unknown\n");
}
}
if (had_problems) {
int foo = 5;
foo += 1;
}
if (!silent) {
zend_debug_alloc_output("---------------------------------------\n");
}
return ((!had_problems) ? 1 : 0);
}
ZEND_API void _full_mem_check(int silent ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
zend_mem_header *p;
int errors=0;
TSRMLS_FETCH();
p = AG(head);
zend_debug_alloc_output("------------------------------------------------\n");
zend_debug_alloc_output("Full Memory Check at %s:%d\n" ZEND_FILE_LINE_RELAY_CC);
while (p) {
if (!_mem_block_check((void *)((char *)p + sizeof(zend_mem_header) + MEM_HEADER_PADDING), (silent?2:3) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC)) {
errors++;
}
p = p->pNext;
}
zend_debug_alloc_output("End of full memory check %s:%d (%d errors)\n" ZEND_FILE_LINE_RELAY_CC, errors);
zend_debug_alloc_output("------------------------------------------------\n");
}
#endif
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
*/
-141
View File
@@ -1,141 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_ALLOC_H
#define ZEND_ALLOC_H
#include <stdio.h>
#include "../TSRM/TSRM.h"
#include "zend_globals_macros.h"
#include "zend_mm.h"
#define MEM_BLOCK_START_MAGIC 0x7312F8DCL
#define MEM_BLOCK_END_MAGIC 0x2A8FCC84L
#define MEM_BLOCK_FREED_MAGIC 0x99954317L
#define MEM_BLOCK_CACHED_MAGIC 0xFB8277DCL
typedef struct _zend_mem_header {
#if ZEND_DEBUG
long magic;
char *filename;
uint lineno;
int reported;
char *orig_filename;
uint orig_lineno;
# ifdef ZTS
THREAD_T thread_id;
# endif
#endif
#if ZEND_DEBUG || !defined(ZEND_MM)
struct _zend_mem_header *pNext;
struct _zend_mem_header *pLast;
#endif
unsigned int size:31;
unsigned int cached:1;
} zend_mem_header;
typedef union _align_test {
void *ptr;
double dbl;
long lng;
} align_test;
#define MAX_CACHED_MEMORY 11
#define MAX_CACHED_ENTRIES 256
#define PRE_INIT_CACHE_ENTRIES 32
#if (defined (__GNUC__) && __GNUC__ >= 2)
#define PLATFORM_ALIGNMENT (__alignof__ (align_test))
#else
#define PLATFORM_ALIGNMENT (sizeof(align_test))
#endif
#define MEM_HEADER_PADDING (((PLATFORM_ALIGNMENT-sizeof(zend_mem_header))%PLATFORM_ALIGNMENT+PLATFORM_ALIGNMENT)%PLATFORM_ALIGNMENT)
BEGIN_EXTERN_C()
ZEND_API char *zend_strndup(const char *s, unsigned int length);
ZEND_API void *_emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
ZEND_API void _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
ZEND_API void *_ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
ZEND_API void *_erealloc(void *ptr, size_t size, int allow_failure ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
ZEND_API char *_estrdup(const char *s ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
ZEND_API char *_estrndup(const char *s, unsigned int length ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
/* Standard wrapper macros */
#define emalloc(size) _emalloc((size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define efree(ptr) _efree((ptr) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define ecalloc(nmemb, size) _ecalloc((nmemb), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define erealloc(ptr, size) _erealloc((ptr), (size), 0 ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define erealloc_recoverable(ptr, size) _erealloc((ptr), (size), 1 ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define estrdup(s) _estrdup((s) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define estrndup(s, length) _estrndup((s), (length) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
/* Relay wrapper macros */
#define emalloc_rel(size) _emalloc((size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define efree_rel(ptr) _efree((ptr) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define ecalloc_rel(nmemb, size) _ecalloc((nmemb), (size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define erealloc_rel(ptr, size) _erealloc((ptr), (size), 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define erealloc_recoverable_rel(ptr, size) _erealloc((ptr), (size), 1 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define estrdup_rel(s) _estrdup((s) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define estrndup_rel(s, length) _estrndup((s), (length) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
/* Selective persistent/non persistent allocation macros */
#define pemalloc(size, persistent) ((persistent)?malloc(size):emalloc(size))
#define pefree(ptr, persistent) ((persistent)?free(ptr):efree(ptr))
#define pecalloc(nmemb, size, persistent) ((persistent)?calloc((nmemb), (size)):ecalloc((nmemb), (size)))
#define perealloc(ptr, size, persistent) ((persistent)?realloc((ptr), (size)):erealloc((ptr), (size)))
#define perealloc_recoverable(ptr, size, persistent) ((persistent)?realloc((ptr), (size)):erealloc_recoverable((ptr), (size)))
#define pestrdup(s, persistent) ((persistent)?strdup(s):estrdup(s))
#define safe_estrdup(ptr) ((ptr)?(estrdup(ptr)):(empty_string))
#define safe_estrndup(ptr, len) ((ptr)?(estrndup((ptr), (len))):(empty_string))
ZEND_API int zend_set_memory_limit(unsigned int memory_limit);
ZEND_API void start_memory_manager(TSRMLS_D);
ZEND_API void shutdown_memory_manager(int silent, int clean_cache TSRMLS_DC);
#if ZEND_DEBUG
ZEND_API int _mem_block_check(void *ptr, int silent ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
ZEND_API void _full_mem_check(int silent ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
void zend_debug_alloc_output(char *format, ...);
#define mem_block_check(ptr, silent) _mem_block_check(ptr, silent ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define full_mem_check(silent) _full_mem_check(silent ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#else
#define mem_block_check(type, ptr, silent)
#define full_mem_check(silent)
#endif
END_EXTERN_C()
#endif
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
*/
File diff suppressed because it is too large. Load diff
-26
View File
@@ -1,26 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_BUILTIN_FUNCTIONS_H
#define ZEND_BUILTIN_FUNCTIONS_H
int zend_startup_builtin_functions(TSRMLS_D);
#endif /* ZEND_BUILTIN_FUNCTIONS_H */
-3108
View File
File diff suppressed because it is too large. Load diff
-713
View File
@@ -1,713 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_COMPILE_H
#define ZEND_COMPILE_H
#include "zend.h"
#ifdef HAVE_STDARG_H
# include <stdarg.h>
#endif
#include "zend_llist.h"
#define DEBUG_ZEND 0
#define FREE_PNODE(znode) zval_dtor(&znode->u.constant);
#define FREE_OP(Ts, op, should_free) if (should_free) zval_dtor(&Ts[(op)->u.var].tmp_var);
#define SET_UNUSED(op) (op).op_type = IS_UNUSED
#define INC_BPC(op_array) if (CG(interactive)) { ((op_array)->backpatch_count++); }
#define DEC_BPC(op_array) if (CG(interactive)) { ((op_array)->backpatch_count--); }
#define HANDLE_INTERACTIVE() if (CG(interactive)) { execute_new_code(TSRMLS_C); }
typedef struct _zend_op_array zend_op_array;
typedef struct _znode {
int op_type;
zend_llist *throw_list; /* Try and save this space later on */
union {
zval constant;
zend_uint var;
zend_uint opline_num; /* Needs to be signed */
zend_op_array *op_array;
zend_class_entry *previously_active_class_entry; /* Used at compile-time */
struct {
zend_uint var; /* dummy */
zend_uint type;
} EA;
} u;
} znode;
typedef struct _zend_op {
zend_uchar opcode;
znode result;
znode op1;
znode op2;
ulong extended_value;
uint lineno;
} zend_op;
typedef struct _zend_brk_cont_element {
int cont;
int brk;
int parent;
} zend_brk_cont_element;
struct _zend_op_array {
zend_uchar type; /* MUST be the first element of this struct! */
zend_uchar *arg_types; /* MUST be the second element of this struct! */
char *function_name; /* MUST be the third element of this struct! */
zend_class_entry *scope; /* MUST be the fourth element of this struct! */
zend_uint *refcount;
zend_op *opcodes;
zend_uint last, size;
zend_uint T;
zend_brk_cont_element *brk_cont_array;
zend_uint last_brk_cont;
zend_uint current_brk_cont;
/* static variables support */
HashTable *static_variables;
zend_op *start_op;
int backpatch_count;
zend_bool return_reference;
zend_bool done_pass_two;
zend_bool uses_this;
char *filename;
void *reserved[ZEND_MAX_RESERVED_RESOURCES];
};
typedef struct _zend_internal_function {
zend_uchar type; /* MUST be the first element of this struct! */
zend_uchar *arg_types; /* MUST be the second element of this struct! */
char *function_name; /* MUST be the third element of this struct! */
zend_class_entry *scope; /* MUST be the fourth element of this struct! */
void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
} zend_internal_function;
typedef struct _zend_overloaded_function {
zend_uchar type; /* MUST be the first element of this struct! */
zend_uchar *arg_types; /* MUST be the second element of this struct! */
char *function_name; /* MUST be the third element of this struct! */
zend_class_entry *scope; /* MUST be the fourth element of this struct! */
zend_uint var;
} zend_overloaded_function;
typedef union _zend_function {
zend_uchar type; /* MUST be the first element of this struct! */
struct {
zend_uchar type; /* never used */
zend_uchar *arg_types;
char *function_name;
zend_class_entry *scope;
} common;
zend_op_array op_array;
zend_internal_function internal_function;
zend_overloaded_function overloaded_function;
} zend_function;
typedef struct _zend_function_state {
HashTable *function_symbol_table;
zend_function *function;
void *reserved[ZEND_MAX_RESERVED_RESOURCES];
} zend_function_state;
typedef struct _zend_switch_entry {
znode cond;
int default_case;
int control_var;
} zend_switch_entry;
typedef struct _list_llist_element {
znode var;
zend_llist dimensions;
znode value;
} list_llist_element;
typedef struct _zend_file_handle {
zend_uchar type;
char *filename;
char *opened_path;
union {
int fd;
FILE *fp;
} handle;
zend_bool free_filename;
} zend_file_handle;
union _temp_variable;
typedef struct _zend_execute_data {
struct _zend_op *opline;
zend_function_state function_state;
zend_function *fbc; /* Function Being Called */
zend_function *fbc_constructor;
zend_op_array *op_array;
zval *object;
union _temp_variable *Ts;
zend_bool original_in_execution;
zend_class_entry *calling_scope;
struct _zend_execute_data *prev_execute_data;
} zend_execute_data;
#define EX(element) execute_data.element
#define IS_CONST (1<<0)
#define IS_TMP_VAR (1<<1)
#define IS_VAR (1<<2)
#define IS_UNUSED (1<<3) /* Unused variable */
#define EXT_TYPE_UNUSED (1<<0)
#include "zend_globals.h"
BEGIN_EXTERN_C()
void init_compiler(TSRMLS_D);
void shutdown_compiler(TSRMLS_D);
void zend_init_compiler_data_structures(TSRMLS_D);
extern ZEND_API zend_op_array *(*zend_compile_file)(zend_file_handle *file_handle, int type TSRMLS_DC);
void zend_activate(TSRMLS_D);
void zend_deactivate(TSRMLS_D);
void zend_activate_modules(TSRMLS_D);
void zend_deactivate_modules(TSRMLS_D);
ZEND_API int lex_scan(zval *zendlval TSRMLS_DC);
void startup_scanner(TSRMLS_D);
void shutdown_scanner(TSRMLS_D);
ZEND_API char *zend_set_compiled_filename(char *new_compiled_filename TSRMLS_DC);
ZEND_API void zend_restore_compiled_filename(char *original_compiled_filename TSRMLS_DC);
ZEND_API char *zend_get_compiled_filename(TSRMLS_D);
ZEND_API int zend_get_compiled_lineno(TSRMLS_D);
#ifdef ZTS
const char *zend_get_zendtext(TSRMLS_D);
int zend_get_zendleng(TSRMLS_D);
#endif
/* parser-driven code generators */
void zend_do_binary_op(zend_uchar op, znode *result, znode *op1, znode *op2 TSRMLS_DC);
void zend_do_unary_op(zend_uchar op, znode *result, znode *op1 TSRMLS_DC);
void zend_do_binary_assign_op(zend_uchar op, znode *result, znode *op1, znode *op2 TSRMLS_DC);
void zend_do_assign(znode *result, znode *variable, znode *value TSRMLS_DC);
void zend_do_assign_ref(znode *result, znode *lvar, znode *rvar TSRMLS_DC);
void fetch_simple_variable(znode *result, znode *varname, int bp TSRMLS_DC);
void fetch_simple_variable_ex(znode *result, znode *varname, int bp, zend_uchar op TSRMLS_DC);
void zend_do_indirect_references(znode *result, znode *num_references, znode *variable TSRMLS_DC);
void zend_do_fetch_global_or_static_variable(znode *varname, znode *static_assignment, int fetch_type TSRMLS_DC);
void fetch_array_begin(znode *result, znode *varname, znode *first_dim TSRMLS_DC);
void fetch_array_dim(znode *result, znode *parent, znode *dim TSRMLS_DC);
void fetch_string_offset(znode *result, znode *parent, znode *offset TSRMLS_DC);
void zend_do_fetch_static_member(znode *class TSRMLS_DC);
void zend_do_print(znode *result, znode *arg TSRMLS_DC);
void zend_do_echo(znode *arg TSRMLS_DC);
typedef int (*unary_op_type)(zval *, zval *);
ZEND_API unary_op_type get_unary_op(int opcode);
ZEND_API void *get_binary_op(int opcode);
void zend_do_while_cond(znode *expr, znode *close_bracket_token TSRMLS_DC);
void zend_do_while_end(znode *while_token, znode *close_bracket_token TSRMLS_DC);
void zend_do_do_while_begin(TSRMLS_D);
void zend_do_do_while_end(znode *do_token, znode *expr_open_bracket, znode *expr TSRMLS_DC);
void zend_do_if_cond(znode *cond, znode *closing_bracket_token TSRMLS_DC);
void zend_do_if_after_statement(znode *closing_bracket_token, unsigned char initialize TSRMLS_DC);
void zend_do_if_end(TSRMLS_D);
void zend_do_for_cond(znode *expr, znode *second_semicolon_token TSRMLS_DC);
void zend_do_for_before_statement(znode *cond_start, znode *second_semicolon_token TSRMLS_DC);
void zend_do_for_end(znode *second_semicolon_token TSRMLS_DC);
void zend_do_pre_incdec(znode *result, znode *op1, zend_uchar op TSRMLS_DC);
void zend_do_post_incdec(znode *result, znode *op1, zend_uchar op TSRMLS_DC);
void zend_do_begin_variable_parse(TSRMLS_D);
void zend_do_end_variable_parse(int type, int arg_offset TSRMLS_DC);
void zend_check_writable_variable(znode *variable);
void zend_do_free(znode *op1 TSRMLS_DC);
void zend_do_init_string(znode *result TSRMLS_DC);
void zend_do_add_char(znode *result, znode *op1, znode *op2 TSRMLS_DC);
void zend_do_add_string(znode *result, znode *op1, znode *op2 TSRMLS_DC);
void zend_do_add_variable(znode *result, znode *op1, znode *op2 TSRMLS_DC);
void zend_do_begin_function_declaration(znode *function_token, znode *function_name, int is_method, int return_reference TSRMLS_DC);
void zend_do_end_function_declaration(znode *function_token TSRMLS_DC);
void zend_do_receive_arg(zend_uchar op, znode *var, znode *offset, znode *initialization, zend_uchar pass_type TSRMLS_DC);
int zend_do_begin_function_call(znode *function_name TSRMLS_DC);
void zend_do_begin_method_call(znode *left_bracket TSRMLS_DC);
void zend_do_begin_dynamic_function_call(znode *function_name TSRMLS_DC);
void do_fetch_class(znode *result, znode *class_entry, znode *class_name TSRMLS_DC);
void do_fetch_class_name(znode *result, znode *class_entry, znode *class_name, zend_bool case_sensitive TSRMLS_DC);
void zend_do_begin_class_member_function_call(znode *class_name, znode *function_name TSRMLS_DC);
void zend_do_end_function_call(znode *function_name, znode *result, znode *argument_list, int is_method, int is_dynamic_fcall TSRMLS_DC);
void zend_do_return(znode *expr, int do_end_vparse TSRMLS_DC);
void zend_do_try(znode *try_token TSRMLS_DC);
void zend_do_begin_catch(znode *try_token, znode *catch_class, znode *catch_var, zend_bool first_catch TSRMLS_DC);
void zend_do_end_catch(znode *try_token TSRMLS_DC);
void zend_do_throw(znode *expr TSRMLS_DC);
ZEND_API int do_bind_function_or_class(zend_op *opline, HashTable *function_table, HashTable *class_table, int compile_time);
void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent_ce);
void zend_do_early_binding(TSRMLS_D);
void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC);
void zend_do_boolean_or_begin(znode *expr1, znode *op_token TSRMLS_DC);
void zend_do_boolean_or_end(znode *result, znode *expr1, znode *expr2, znode *op_token TSRMLS_DC);
void zend_do_boolean_and_begin(znode *expr1, znode *op_token TSRMLS_DC);
void zend_do_boolean_and_end(znode *result, znode *expr1, znode *expr2, znode *op_token TSRMLS_DC);
void zend_do_brk_cont(zend_uchar op, znode *expr TSRMLS_DC);
void zend_do_switch_cond(znode *cond TSRMLS_DC);
void zend_do_switch_end(znode *case_list TSRMLS_DC);
void zend_do_case_before_statement(znode *case_list, znode *case_token, znode *case_expr TSRMLS_DC);
void zend_do_case_after_statement(znode *result, znode *case_token TSRMLS_DC);
void zend_do_default_before_statement(znode *case_list, znode *default_token TSRMLS_DC);
void zend_do_begin_class_declaration(znode *class_token, znode *class_name, znode *parent_class_name TSRMLS_DC);
void zend_do_end_class_declaration(znode *class_token TSRMLS_DC);
void zend_do_declare_property(znode *var_name, znode *value, int declaration_type TSRMLS_DC);
void zend_do_fetch_property(znode *result, znode *object, znode *property TSRMLS_DC);
void zend_do_push_object(znode *object TSRMLS_DC);
void zend_do_pop_object(znode *object TSRMLS_DC);
void zend_do_begin_new_object(znode *new_token, znode *class_type TSRMLS_DC);
void zend_do_end_new_object(znode *result, znode *new_token, znode *argument_list TSRMLS_DC);
void zend_do_fetch_constant(znode *result, znode *constant_container, znode *constant_name, int mode TSRMLS_DC);
void zend_do_shell_exec(znode *result, znode *cmd TSRMLS_DC);
void zend_do_init_array(znode *result, znode *expr, znode *offset, zend_bool is_ref TSRMLS_DC);
void zend_do_add_array_element(znode *result, znode *expr, znode *offset, zend_bool is_ref TSRMLS_DC);
void zend_do_add_static_array_element(znode *result, znode *offset, znode *expr);
void zend_do_list_init(TSRMLS_D);
void zend_do_list_end(znode *result, znode *expr TSRMLS_DC);
void zend_do_add_list_element(znode *element TSRMLS_DC);
void zend_do_new_list_begin(TSRMLS_D);
void zend_do_new_list_end(TSRMLS_D);
void zend_do_cast(znode *result, znode *expr, int type TSRMLS_DC);
void zend_do_include_or_eval(int type, znode *result, znode *op1 TSRMLS_DC);
void zend_do_unset(znode *variable TSRMLS_DC);
void zend_do_isset_or_isempty(int type, znode *result, znode *variable TSRMLS_DC);
void zend_do_is_type(znode *result, znode *expr, znode *class, int type TSRMLS_DC);
void zend_do_foreach_begin(znode *foreach_token, znode *array, znode *open_brackets_token, znode *as_token, int variable TSRMLS_DC);
void zend_do_foreach_cont(znode *value, znode *key, znode *as_token TSRMLS_DC);
void zend_do_foreach_end(znode *foreach_token, znode *open_brackets_token TSRMLS_DC);
void zend_do_declare_begin(TSRMLS_D);
void zend_do_declare_stmt(znode *var, znode *val TSRMLS_DC);
void zend_do_declare_end(TSRMLS_D);
void zend_do_end_heredoc(TSRMLS_D);
void zend_do_exit(znode *result, znode *message TSRMLS_DC);
void zend_do_begin_silence(znode *strudel_token TSRMLS_DC);
void zend_do_end_silence(znode *strudel_token TSRMLS_DC);
void zend_do_begin_qm_op(znode *cond, znode *qm_token TSRMLS_DC);
void zend_do_qm_true(znode *true_value, znode *qm_token, znode *colon_token TSRMLS_DC);
void zend_do_qm_false(znode *result, znode *false_value, znode *qm_token, znode *colon_token TSRMLS_DC);
void zend_do_extended_info(TSRMLS_D);
void zend_do_extended_fcall_begin(TSRMLS_D);
void zend_do_extended_fcall_end(TSRMLS_D);
void zend_do_ticks(TSRMLS_D);
void zend_do_begin_import(TSRMLS_D);
void zend_do_import(int type, znode *what TSRMLS_DC);
void zend_do_end_import(znode *import_from TSRMLS_DC);
ZEND_API void function_add_ref(zend_function *function);
#define INITIAL_OP_ARRAY_SIZE 64
/* helper functions in zend_language_scanner.l */
ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSRMLS_DC);
ZEND_API zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC);
ZEND_API zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC);
ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int file_count, ...);
ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC);
ZEND_API void init_op_array(zend_op_array *op_array, zend_uchar type, int initial_ops_size TSRMLS_DC);
ZEND_API void destroy_op_array(zend_op_array *op_array);
ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC);
ZEND_API void zend_file_handle_dtor(zend_file_handle *fh);
ZEND_API void destroy_zend_function(zend_function *function);
ZEND_API void destroy_zend_class(zend_class_entry **pce);
void zend_class_add_ref(zend_class_entry **ce);
#define ZEND_FUNCTION_DTOR (void (*)(void *)) destroy_zend_function
#define ZEND_CLASS_DTOR (void (*)(void *)) destroy_zend_class
zend_op *get_next_op(zend_op_array *op_array TSRMLS_DC);
void init_op(zend_op *op TSRMLS_DC);
int get_next_op_number(zend_op_array *op_array);
int print_class(zend_class_entry *class_entry TSRMLS_DC);
void print_op_array(zend_op_array *op_array, int optimizations);
int pass_two(zend_op_array *op_array TSRMLS_DC);
zend_brk_cont_element *get_next_brk_cont_element(zend_op_array *op_array);
ZEND_API zend_bool zend_is_compiling(TSRMLS_D);
ZEND_API char *zend_make_compiled_string_description(char *name TSRMLS_DC);
int zend_register_auto_global(char *name, uint name_len TSRMLS_DC);
int zendlex(znode *zendlval TSRMLS_DC);
#define ZEND_NOP 0
#define ZEND_ADD 1
#define ZEND_SUB 2
#define ZEND_MUL 3
#define ZEND_DIV 4
#define ZEND_MOD 5
#define ZEND_SL 6
#define ZEND_SR 7
#define ZEND_CONCAT 8
#define ZEND_BW_OR 9
#define ZEND_BW_AND 10
#define ZEND_BW_XOR 11
#define ZEND_BW_NOT 12
#define ZEND_BOOL_NOT 13
#define ZEND_BOOL_XOR 14
#define ZEND_IS_IDENTICAL 15
#define ZEND_IS_NOT_IDENTICAL 16
#define ZEND_IS_EQUAL 17
#define ZEND_IS_NOT_EQUAL 18
#define ZEND_IS_SMALLER 19
#define ZEND_IS_SMALLER_OR_EQUAL 20
#define ZEND_CAST 21
#define ZEND_QM_ASSIGN 22
#define ZEND_ASSIGN_ADD 23
#define ZEND_ASSIGN_SUB 24
#define ZEND_ASSIGN_MUL 25
#define ZEND_ASSIGN_DIV 26
#define ZEND_ASSIGN_MOD 27
#define ZEND_ASSIGN_SL 28
#define ZEND_ASSIGN_SR 29
#define ZEND_ASSIGN_CONCAT 30
#define ZEND_ASSIGN_BW_OR 31
#define ZEND_ASSIGN_BW_AND 32
#define ZEND_ASSIGN_BW_XOR 33
#define ZEND_PRE_INC 34
#define ZEND_PRE_DEC 35
#define ZEND_POST_INC 36
#define ZEND_POST_DEC 37
#define ZEND_ASSIGN 38
#define ZEND_ASSIGN_REF 39
#define ZEND_ECHO 40
#define ZEND_PRINT 41
#define ZEND_JMP 42
#define ZEND_JMPZ 43
#define ZEND_JMPNZ 44
#define ZEND_JMPZNZ 45
#define ZEND_JMPZ_EX 46
#define ZEND_JMPNZ_EX 47
#define ZEND_CASE 48
#define ZEND_SWITCH_FREE 49
#define ZEND_BRK 50
#define ZEND_CONT 51
#define ZEND_BOOL 52
#define ZEND_INIT_STRING 53
#define ZEND_ADD_CHAR 54
#define ZEND_ADD_STRING 55
#define ZEND_ADD_VAR 56
#define ZEND_BEGIN_SILENCE 57
#define ZEND_END_SILENCE 58
#define ZEND_INIT_FCALL_BY_NAME 59
#define ZEND_DO_FCALL 60
#define ZEND_DO_FCALL_BY_NAME 61
#define ZEND_RETURN 62
#define ZEND_RECV 63
#define ZEND_RECV_INIT 64
#define ZEND_SEND_VAL 65
#define ZEND_SEND_VAR 66
#define ZEND_SEND_REF 67
#define ZEND_NEW 68
#define ZEND_JMP_NO_CTOR 69
#define ZEND_FREE 70
#define ZEND_INIT_ARRAY 71
#define ZEND_ADD_ARRAY_ELEMENT 72
#define ZEND_INCLUDE_OR_EVAL 73
#define ZEND_UNSET_VAR 74
#define ZEND_UNSET_DIM_OBJ 75
#define ZEND_FE_RESET 77
#define ZEND_FE_FETCH 78
#define ZEND_EXIT 79
/* the following 18 opcodes are 6 groups of 3 opcodes each, and must
* remain in that order!
*/
#define ZEND_FETCH_R 80
#define ZEND_FETCH_DIM_R 81
#define ZEND_FETCH_OBJ_R 82
#define ZEND_FETCH_W 83
#define ZEND_FETCH_DIM_W 84
#define ZEND_FETCH_OBJ_W 85
#define ZEND_FETCH_RW 86
#define ZEND_FETCH_DIM_RW 87
#define ZEND_FETCH_OBJ_RW 88
#define ZEND_FETCH_IS 89
#define ZEND_FETCH_DIM_IS 90
#define ZEND_FETCH_OBJ_IS 91
#define ZEND_FETCH_FUNC_ARG 92
#define ZEND_FETCH_DIM_FUNC_ARG 93
#define ZEND_FETCH_OBJ_FUNC_ARG 94
#define ZEND_FETCH_UNSET 95
#define ZEND_FETCH_DIM_UNSET 96
#define ZEND_FETCH_OBJ_UNSET 97
#define ZEND_FETCH_DIM_TMP_VAR 98
#define ZEND_FETCH_CONSTANT 99
#define ZEND_DECLARE_FUNCTION_OR_CLASS 100
#define ZEND_EXT_STMT 101
#define ZEND_EXT_FCALL_BEGIN 102
#define ZEND_EXT_FCALL_END 103
#define ZEND_EXT_NOP 104
#define ZEND_TICKS 105
#define ZEND_SEND_VAR_NO_REF 106
#define ZEND_CATCH 107
#define ZEND_THROW 108
#define ZEND_FETCH_CLASS 109
#define ZEND_CLONE 110
#define ZEND_INIT_CTOR_CALL 111
#define ZEND_INIT_METHOD_CALL 112
#define ZEND_INIT_STATIC_METHOD_CALL 113
#define ZEND_ISSET_ISEMPTY_VAR 114
#define ZEND_ISSET_ISEMPTY_DIM_OBJ 115
#define ZEND_IMPORT_FUNCTION 116
#define ZEND_IMPORT_CLASS 117
#define ZEND_IMPORT_CONST 118
#define ZEND_ASSIGN_ADD_OBJ 121
#define ZEND_ASSIGN_SUB_OBJ 122
#define ZEND_ASSIGN_MUL_OBJ 123
#define ZEND_ASSIGN_DIV_OBJ 124
#define ZEND_ASSIGN_MOD_OBJ 125
#define ZEND_ASSIGN_SL_OBJ 126
#define ZEND_ASSIGN_SR_OBJ 127
#define ZEND_ASSIGN_CONCAT_OBJ 128
#define ZEND_ASSIGN_BW_OR_OBJ 129
#define ZEND_ASSIGN_BW_AND_OBJ 130
#define ZEND_ASSIGN_BW_XOR_OBJ 131
#define ZEND_PRE_INC_OBJ 132
#define ZEND_PRE_DEC_OBJ 133
#define ZEND_POST_INC_OBJ 134
#define ZEND_POST_DEC_OBJ 135
#define ZEND_ASSIGN_OBJ 136
#define ZEND_MAKE_VAR 137
#define ZEND_IS_TYPE 138
/* end of block */
/* global/local fetches */
#define ZEND_FETCH_GLOBAL 0
#define ZEND_FETCH_LOCAL 1
#define ZEND_FETCH_STATIC 2
#define ZEND_FETCH_STATIC_MEMBER 3
#define ZEND_FETCH_FROM_THIS 4
/* class fetches */
#define ZEND_FETCH_CLASS_DEFAULT 0
#define ZEND_FETCH_CLASS_SELF 1
#define ZEND_FETCH_CLASS_PARENT 2
#define ZEND_FETCH_CLASS_MAIN 3
/* variable parsing type (compile-time) */
#define ZEND_PARSED_MEMBER (1<<0)
#define ZEND_PARSED_METHOD_CALL (1<<1)
#define ZEND_PARSED_STATIC_MEMBER (1<<2)
#define ZEND_PARSED_FUNCTION_CALL (1<<3)
#define ZEND_PARSED_VARIABLE (1<<4)
/* unset types */
#define ZEND_UNSET_REG 0
/* var status for backpatching */
#define BP_VAR_R 0
#define BP_VAR_W 1
#define BP_VAR_RW 2
#define BP_VAR_IS 3
#define BP_VAR_NA 4 /* if not applicable */
#define BP_VAR_FUNC_ARG 5
#define BP_VAR_UNSET 6
#define ZEND_INTERNAL_FUNCTION 1
#define ZEND_USER_FUNCTION 2
#define ZEND_OVERLOADED_FUNCTION 3
#define ZEND_EVAL_CODE 4
#define ZEND_INTERNAL_CLASS 1
#define ZEND_USER_CLASS 2
#define ZEND_EVAL (1<<0)
#define ZEND_INCLUDE (1<<1)
#define ZEND_INCLUDE_ONCE (1<<2)
#define ZEND_REQUIRE (1<<3)
#define ZEND_REQUIRE_ONCE (1<<4)
#define ZEND_ISSET (1<<0)
#define ZEND_ISEMPTY (1<<1)
#define ZEND_CT (1<<0)
#define ZEND_RT (1<<1)
#define ZEND_HANDLE_FILENAME 0
#define ZEND_HANDLE_FD 1
#define ZEND_HANDLE_FP 2
#define ZEND_HANDLE_STDIOSTREAM 3
#define ZEND_HANDLE_FSTREAM 4
#define ZEND_DECLARE_CLASS 1
#define ZEND_DECLARE_FUNCTION 2
#define ZEND_DECLARE_INHERITED_CLASS 3
#define ZEND_FETCH_STANDARD 0
#define ZEND_FETCH_ADD_LOCK 1
#define ZEND_MEMBER_FUNC_CALL 1<<0
#define ZEND_ARG_SEND_BY_REF (1<<0)
#define ZEND_ARG_COMPILE_TIME_BOUND (1<<1)
#define AI_USE_PTR(ai) \
if ((ai).ptr_ptr) { \
(ai).ptr = *((ai).ptr_ptr); \
(ai).ptr_ptr = &((ai).ptr); \
} else { \
(ai).ptr = NULL; \
}
/* Lost In Stupid Parentheses */
#define ARG_SHOULD_BE_SENT_BY_REF(offset, conduct_check, arg_types) \
( \
conduct_check \
&& arg_types \
&& \
( \
( \
offset<=arg_types[0] \
&& arg_types[offset]==BYREF_FORCE \
) \
|| ( \
offset>=arg_types[0] \
&& arg_types[arg_types[0]]==BYREF_FORCE_REST \
) \
) \
)
#define ZEND_RETURN_VAL 0
#define ZEND_RETURN_REF 1
END_EXTERN_C()
#endif /* ZEND_COMPILE_H */
-79
View File
@@ -1,79 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_CONFIG_NW_H
#define ZEND_CONFIG_NW_H
#include <string.h>
#include <float.h>
typedef unsigned long ulong;
typedef unsigned int uint;
#define HAVE_ALLOCA 1
#define HAVE_LIMITS_H 1
/* #include <malloc.h> */
#define HAVE_STRING_H 1
#undef HAVE_KILL
#define HAVE_GETPID 1
/* #define HAVE_ALLOCA_H 1 */
#define HAVE_MEMCPY 1
#define HAVE_STRDUP 1
#define HAVE_SYS_TYPES_H 1
/* #define HAVE_STDIOSTR_H 1 */
#define HAVE_CLASS_ISTDIOSTREAM
#define istdiostream stdiostream
#define HAVE_STDARG_H 1
#define HAVE_DLFCN_H 1
/* #define HAVE_LIBDL 1 */
#define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1
/*
#define snprintf _snprintf
#define vsnprintf _vsnprintf
#define zend_isinf(a) 0
#define zend_finite(x) _finite(x)
#define zend_isnan(x) _isnan(x)
*/
#define zend_sprintf sprintf
/* This will cause the compilation process to be MUCH longer, but will generate
* a much quicker PHP binary
*/
/*
#undef inline
#ifdef ZEND_WIN32_FORCE_INLINE
# define inline __forceinline
#else
# define inline
#endif
*/
/*
#define zend_finite(A) _finite(A)
#define zend_isnan(A) _isnan(A)
*/
#endif /* ZEND_CONFIG_NW_H */
-90
View File
@@ -1,90 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_CONFIG_W32_H
#define ZEND_CONFIG_W32_H
#include <string.h>
#include <windows.h>
#include <float.h>
typedef unsigned long ulong;
typedef unsigned int uint;
#define HAVE_ALLOCA 1
#define HAVE_LIMITS_H 1
#include <malloc.h>
#undef HAVE_KILL
#define HAVE_GETPID 1
/* #define HAVE_ALLOCA_H 1 */
#define HAVE_MEMCPY 1
#define HAVE_STRDUP 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_STDIOSTR_H 1
#define HAVE_CLASS_ISTDIOSTREAM
#define istdiostream stdiostream
#define HAVE_STDARG_H 1
#define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1
#define snprintf _snprintf
#define vsnprintf _vsnprintf
#define zend_isinf(a) 0
#define zend_finite(x) _finite(x)
#define zend_isnan(x) _isnan(x)
#define zend_sprintf sprintf
/* This will cause the compilation process to be MUCH longer, but will generate
* a much quicker PHP binary
*/
#undef inline
#ifdef ZEND_WIN32_FORCE_INLINE
# define inline __forceinline
#else
# define inline
#endif
#define zend_finite(A) _finite(A)
#define zend_isnan(A) _isnan(A)
#ifdef LIBZEND_EXPORTS
# define ZEND_API __declspec(dllexport)
#else
# define ZEND_API __declspec(dllimport)
#endif
#define ZEND_DLEXPORT __declspec(dllexport)
#define ZEND_DLIMPORT __declspec(dllimport)
/* 0x00200000L is MB_SERVICE_NOTIFICATION, which is only supported under Windows NT
* (and requires _WIN32_WINNT to be defined, which prevents the resulting executable
* from running under Windows 9x
* Windows 9x should silently ignore it, so it's being used here directly
*/
#ifndef MB_SERVICE_NOTIFICATION
#define MB_SERVICE_NOTIFICATION 0x00200000L
#endif
#define ZEND_SERVICE_MB_STYLE (MB_TOPMOST|MB_SERVICE_NOTIFICATION)
#endif /* ZEND_CONFIG_W32_H */
-280
View File
@@ -1,280 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#include "zend.h"
#include "zend_constants.h"
#include "zend_variables.h"
#include "zend_operators.h"
#include "zend_globals.h"
void free_zend_constant(zend_constant *c)
{
if (!(c->flags & CONST_PERSISTENT)) {
zval_dtor(&c->value);
}
free(c->name);
}
void copy_zend_constant(zend_constant *c)
{
c->name = zend_strndup(c->name, c->name_len);
if (!(c->flags & CONST_PERSISTENT)) {
zval_copy_ctor(&c->value);
}
}
void zend_copy_constants(HashTable *target, HashTable *source)
{
zend_constant tmp_constant;
zend_hash_copy(target, source, (copy_ctor_func_t) copy_zend_constant, &tmp_constant, sizeof(zend_constant));
}
static int clean_non_persistent_constant(zend_constant *c TSRMLS_DC)
{
if (c->flags & CONST_PERSISTENT) {
return EG(full_tables_cleanup) ? 0 : ZEND_HASH_APPLY_STOP;
} else {
return EG(full_tables_cleanup) ? 1 : ZEND_HASH_APPLY_REMOVE;
}
}
static int clean_module_constant(zend_constant *c, int *module_number TSRMLS_DC)
{
if (c->module_number == *module_number) {
return 1;
} else {
return 0;
}
}
void clean_module_constants(int module_number TSRMLS_DC)
{
zend_hash_apply_with_argument(EG(zend_constants), (apply_func_arg_t) clean_module_constant, (void *) &module_number TSRMLS_CC);
}
int zend_startup_constants(TSRMLS_D)
{
#ifdef ZEND_WIN32
DWORD dwBuild=0;
DWORD dwVersion = GetVersion();
DWORD dwWindowsMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion)));
DWORD dwWindowsMinorVersion = (DWORD)(HIBYTE(LOWORD(dwVersion)));
#endif
EG(zend_constants) = &CG(main_class).constants_table;
if (zend_hash_init(EG(zend_constants), 20, NULL, ZEND_CONSTANT_DTOR, 1)==FAILURE) {
return FAILURE;
}
return SUCCESS;
}
void zend_register_standard_constants(TSRMLS_D)
{
REGISTER_MAIN_LONG_CONSTANT("E_ERROR", E_ERROR, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("E_WARNING", E_WARNING, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("E_PARSE", E_PARSE, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("E_NOTICE", E_NOTICE, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("E_CORE_ERROR", E_CORE_ERROR, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("E_CORE_WARNING", E_CORE_WARNING, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("E_COMPILE_ERROR", E_COMPILE_ERROR, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("E_COMPILE_WARNING", E_COMPILE_WARNING, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("E_USER_ERROR", E_USER_ERROR, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("E_USER_WARNING", E_USER_WARNING, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("E_USER_NOTICE", E_USER_NOTICE, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("E_ALL", E_ALL, CONST_PERSISTENT | CONST_CS);
/* true/false constants */
{
zend_constant c;
c.value.type = IS_BOOL;
c.flags = CONST_PERSISTENT;
c.module_number = 0;
c.name = zend_strndup(ZEND_STRL("TRUE"));
c.name_len = sizeof("TRUE");
c.value.value.lval = 1;
c.value.type = IS_BOOL;
zend_register_constant(&c TSRMLS_CC);
c.name = zend_strndup(ZEND_STRL("FALSE"));
c.name_len = sizeof("FALSE");
c.value.value.lval = 0;
c.value.type = IS_BOOL;
zend_register_constant(&c TSRMLS_CC);
c.name = zend_strndup(ZEND_STRL("ZEND_THREAD_SAFE"));
c.name_len = sizeof("ZEND_THREAD_SAFE");
c.value.value.lval = ZTS_V;
c.value.type = IS_BOOL;
zend_register_constant(&c TSRMLS_CC);
c.name = zend_strndup(ZEND_STRL("NULL"));
c.name_len = sizeof("NULL");
c.value.type = IS_NULL;
zend_register_constant(&c TSRMLS_CC);
}
}
int zend_shutdown_constants(TSRMLS_D)
{
zend_hash_destroy(EG(zend_constants));
return SUCCESS;
}
void clean_non_persistent_constants(TSRMLS_D)
{
if (EG(full_tables_cleanup)) {
zend_hash_apply(EG(zend_constants), (apply_func_t) clean_non_persistent_constant TSRMLS_CC);
} else {
zend_hash_reverse_apply(EG(zend_constants), (apply_func_t) clean_non_persistent_constant TSRMLS_CC);
}
}
ZEND_API void zend_register_long_constant(char *name, uint name_len, long lval, int flags, int module_number TSRMLS_DC)
{
zend_constant c;
c.value.type = IS_LONG;
c.value.value.lval = lval;
c.flags = flags;
c.name = zend_strndup(name, name_len);
c.name_len = name_len;
c.module_number = module_number;
zend_register_constant(&c TSRMLS_CC);
}
ZEND_API void zend_register_double_constant(char *name, uint name_len, double dval, int flags, int module_number TSRMLS_DC)
{
zend_constant c;
c.value.type = IS_DOUBLE;
c.value.value.dval = dval;
c.flags = flags;
c.name = zend_strndup(name, name_len);
c.name_len = name_len;
c.module_number = module_number;
zend_register_constant(&c TSRMLS_CC);
}
ZEND_API void zend_register_stringl_constant(char *name, uint name_len, char *strval, uint strlen, int flags, int module_number TSRMLS_DC)
{
zend_constant c;
c.value.type = IS_STRING;
c.value.value.str.val = strval;
c.value.value.str.len = strlen;
c.flags = flags;
c.name = zend_strndup(name, name_len);
c.name_len = name_len;
c.module_number = module_number;
zend_register_constant(&c TSRMLS_CC);
}
ZEND_API void zend_register_string_constant(char *name, uint name_len, char *strval, int flags, int module_number TSRMLS_DC)
{
zend_register_stringl_constant(name, name_len, strval, strlen(strval), flags, module_number TSRMLS_CC);
}
ZEND_API int zend_get_constant(char *name, uint name_len, zval *result TSRMLS_DC)
{
zend_constant *c;
char *lookup_name;
int retval = 1;
if (zend_hash_find(EG(zend_constants), name, name_len+1, (void **) &c) == FAILURE) {
lookup_name = do_alloca(name_len+1);
memcpy(lookup_name, name, name_len+1);
zend_str_tolower(lookup_name, name_len);
if (zend_hash_find(EG(zend_constants), lookup_name, name_len+1, (void **) &c)==SUCCESS) {
if ((c->flags & CONST_CS) && memcmp(c->name, name, name_len)!=0) {
retval=0;
}
} else {
retval=0;
}
free_alloca(lookup_name);
}
if (retval) {
*result = c->value;
zval_copy_ctor(result);
}
return retval;
}
ZEND_API int zend_register_constant(zend_constant *c TSRMLS_DC)
{
char *lowercase_name;
int ret = SUCCESS;
#if 0
printf("Registering constant for module %d\n", c->module_number);
#endif
lowercase_name = do_alloca(c->name_len);
memcpy(lowercase_name, c->name, c->name_len);
if (!(c->flags & CONST_CS)) {
zend_str_tolower(lowercase_name, c->name_len);
}
if (zend_hash_add(EG(zend_constants), lowercase_name, c->name_len, (void *) c, sizeof(zend_constant), NULL)==FAILURE) {
free(c->name);
if (!(c->flags & CONST_PERSISTENT)) {
zval_dtor(&c->value);
}
zend_error(E_NOTICE,"Constant %s already defined", lowercase_name);
ret = FAILURE;
}
free_alloca(lowercase_name);
return ret;
}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
*/
-64
View File
@@ -1,64 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_CONSTANTS_H
#define ZEND_CONSTANTS_H
#include "zend_globals.h"
#define CONST_CS (1<<0) /* Case Sensitive */
#define CONST_PERSISTENT (1<<1) /* Persistent */
typedef struct _zend_constant {
zval value;
int flags;
char *name;
uint name_len;
int module_number;
} zend_constant;
#define REGISTER_LONG_CONSTANT(name, lval, flags) zend_register_long_constant((name), sizeof(name), (lval), (flags), module_number TSRMLS_CC)
#define REGISTER_DOUBLE_CONSTANT(name, dval, flags) zend_register_double_constant((name), sizeof(name), (dval), (flags), module_number TSRMLS_CC)
#define REGISTER_STRING_CONSTANT(name, str, flags) zend_register_string_constant((name), sizeof(name), (str), (flags), module_number TSRMLS_CC)
#define REGISTER_STRINGL_CONSTANT(name, str, len, flags) zend_register_stringl_constant((name), sizeof(name), (str), (len), (flags), module_number TSRMLS_CC)
#define REGISTER_MAIN_LONG_CONSTANT(name, lval, flags) zend_register_long_constant((name), sizeof(name), (lval), (flags), 0 TSRMLS_CC)
#define REGISTER_MAIN_DOUBLE_CONSTANT(name, dval, flags) zend_register_double_constant((name), sizeof(name), (dval), (flags), 0 TSRMLS_CC)
#define REGISTER_MAIN_STRING_CONSTANT(name, str, flags) zend_register_string_constant((name), sizeof(name), (str), (flags), 0 TSRMLS_CC)
#define REGISTER_MAIN_STRINGL_CONSTANT(name, str, len, flags) zend_register_stringl_constant((name), sizeof(name), (str), (len), (flags), 0 TSRMLS_CC)
void clean_module_constants(int module_number TSRMLS_DC);
void free_zend_constant(zend_constant *c);
int zend_startup_constants(TSRMLS_D);
int zend_shutdown_constants(TSRMLS_D);
void zend_register_standard_constants(TSRMLS_D);
void clean_non_persistent_constants(TSRMLS_D);
ZEND_API int zend_get_constant(char *name, uint name_len, zval *result TSRMLS_DC);
ZEND_API void zend_register_long_constant(char *name, uint name_len, long lval, int flags, int module_number TSRMLS_DC);
ZEND_API void zend_register_double_constant(char *name, uint name_len, double dval, int flags, int module_number TSRMLS_DC);
ZEND_API void zend_register_string_constant(char *name, uint name_len, char *strval, int flags, int module_number TSRMLS_DC);
ZEND_API void zend_register_stringl_constant(char *name, uint name_len, char *strval, uint strlen, int flags, int module_number TSRMLS_DC);
ZEND_API int zend_register_constant(zend_constant *c TSRMLS_DC);
void zend_copy_constants(HashTable *target, HashTable *sourc);
void copy_zend_constant(zend_constant *c);
#define ZEND_CONSTANT_DTOR (void (*)(void *)) free_zend_constant
#endif
-62
View File
@@ -1,62 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#include "zend.h"
typedef struct _dynamic_array {
char *array;
unsigned int element_size;
unsigned int current;
unsigned int allocated;
} dynamic_array;
ZEND_API int zend_dynamic_array_init(dynamic_array *da, unsigned int element_size, unsigned int size)
{
da->element_size = element_size;
da->allocated = size;
da->current = 0;
da->array = (char *) emalloc(size*element_size);
if (da->array == NULL) {
return 1;
}
return 0;
}
ZEND_API void *zend_dynamic_array_push(dynamic_array *da)
{
if (da->current == da->allocated) {
da->allocated *= 2;
da->array = (char *) erealloc(da->array, da->allocated*da->element_size);
}
return (void *)(da->array+(da->current++)*da->element_size);
}
ZEND_API void *zend_dynamic_array_pop(dynamic_array *da)
{
return (void *)(da->array+(--(da->current))*da->element_size);
}
ZEND_API void *zend_dynamic_array_get_element(dynamic_array *da, unsigned int index)
{
if (index >= da->current) {
return NULL;
}
return (void *)(da->array+index*da->element_size);
}
-38
View File
@@ -1,38 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_DYNAMIC_ARRAY_H
#define ZEND_DYNAMIC_ARRAY_H
typedef struct _dynamic_array {
char *array;
unsigned int element_size;
unsigned int last_used;
unsigned int allocated;
} dynamic_array;
BEGIN_EXTERN_C()
ZEND_API int zend_dynamic_array_init(dynamic_array *da);
ZEND_API void *zend_dynamic_array_push(dynamic_array *da);
ZEND_API void *zend_dynamic_array_pop(dynamic_array *da);
ZEND_API void *zend_dynamic_array_get_element(dynamic_array *da, unsigned int index);
END_EXTERN_C()
#endif /* ZEND_DYNAMIC_ARRAY_H */
-40
View File
@@ -1,40 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_ERRORS_H
#define ZEND_ERRORS_H
#define E_ERROR (1<<0L)
#define E_WARNING (1<<1L)
#define E_PARSE (1<<2L)
#define E_NOTICE (1<<3L)
#define E_CORE_ERROR (1<<4L)
#define E_CORE_WARNING (1<<5L)
#define E_COMPILE_ERROR (1<<6L)
#define E_COMPILE_WARNING (1<<7L)
#define E_USER_ERROR (1<<8L)
#define E_USER_WARNING (1<<9L)
#define E_USER_NOTICE (1<<10L)
#define E_ALL (E_ERROR | E_WARNING | E_PARSE | E_NOTICE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE)
#define E_CORE (E_CORE_ERROR | E_CORE_WARNING)
#endif /* ZEND_ERRORS_H */
-3146
View File
File diff suppressed because it is too large. Load diff
-167
View File
@@ -1,167 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_EXECUTE_H
#define ZEND_EXECUTE_H
#include "zend_compile.h"
#include "zend_hash.h"
#include "zend_variables.h"
#include "zend_operators.h"
typedef union _temp_variable {
zval tmp_var;
struct {
zval **ptr_ptr;
zval *ptr;
} var;
struct {
zval tmp_var; /* a dummy */
union {
struct {
zval *str;
zend_uint offset;
} str_offset;
zend_property_reference overloaded_element;
} data;
unsigned char type;
zend_class_entry *class_entry;
} EA;
} temp_variable;
BEGIN_EXTERN_C()
ZEND_API extern void (*zend_execute)(zend_op_array *op_array TSRMLS_DC);
void init_executor(TSRMLS_D);
void shutdown_executor(TSRMLS_D);
ZEND_API void execute(zend_op_array *op_array TSRMLS_DC);
ZEND_API int zend_is_true(zval *op);
static inline void safe_free_zval_ptr(zval *p)
{
TSRMLS_FETCH();
if (p!=EG(uninitialized_zval_ptr)) {
FREE_ZVAL(p);
}
}
ZEND_API int zend_lookup_class(char *name, int name_length, zend_class_entry ***ce TSRMLS_DC);
ZEND_API int zend_eval_string(char *str, zval *retval_ptr, char *string_name TSRMLS_DC);
static inline int i_zend_is_true(zval *op)
{
int result;
switch (op->type) {
case IS_NULL:
result = 0;
break;
case IS_LONG:
case IS_BOOL:
case IS_RESOURCE:
result = (op->value.lval?1:0);
break;
case IS_DOUBLE:
result = (op->value.dval ? 1 : 0);
break;
case IS_STRING:
if (op->value.str.len == 0
|| (op->value.str.len==1 && op->value.str.val[0]=='0')) {
result = 0;
} else {
result = 1;
}
break;
case IS_ARRAY:
result = (zend_hash_num_elements(op->value.ht)?1:0);
break;
case IS_OBJECT:
/* OBJ-TBI */
result = 1;
break;
default:
result = 0;
break;
}
return result;
}
ZEND_API int zval_update_constant(zval **pp, void *arg TSRMLS_DC);
/* dedicated Zend executor functions - do not use! */
static inline void zend_ptr_stack_clear_multiple(TSRMLS_D)
{
void **p = EG(argument_stack).top_element-2;
int delete_count = (ulong) *p;
EG(argument_stack).top -= (delete_count+2);
while (--delete_count>=0) {
zval_ptr_dtor((zval **) --p);
}
EG(argument_stack).top_element = p;
}
static inline int zend_ptr_stack_get_arg(int requested_arg, void **data TSRMLS_DC)
{
void **p = EG(argument_stack).top_element-2;
int arg_count = (ulong) *p;
if (requested_arg>arg_count) {
return FAILURE;
}
*data = (p-arg_count+requested_arg-1);
return SUCCESS;
}
void execute_new_code(TSRMLS_D);
/* services */
ZEND_API char *get_active_function_name(TSRMLS_D);
ZEND_API char *zend_get_executed_filename(TSRMLS_D);
ZEND_API uint zend_get_executed_lineno(TSRMLS_D);
ZEND_API zend_bool zend_is_executing(TSRMLS_D);
ZEND_API void zend_set_timeout(long seconds);
ZEND_API void zend_unset_timeout(TSRMLS_D);
ZEND_API void zend_timeout(int dummy);
#ifdef ZEND_WIN32
void zend_init_timeout_thread();
void zend_shutdown_timeout_thread();
#define WM_REGISTER_ZEND_TIMEOUT (WM_USER+1)
#define WM_UNREGISTER_ZEND_TIMEOUT (WM_USER+2)
#endif
#define zendi_zval_copy_ctor(p) zval_copy_ctor(&(p))
#define zendi_zval_dtor(p) zval_dtor(&(p))
#define active_opline (*EG(opline_ptr))
void zend_assign_to_variable_reference(znode *result, zval **variable_ptr_ptr, zval **value_ptr_ptr, temp_variable *Ts TSRMLS_DC);
#define IS_OVERLOADED_OBJECT 1
#define IS_STRING_OFFSET 2
END_EXTERN_C()
#endif /* ZEND_EXECUTE_H */
-950
View File
@@ -1,950 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#include <stdio.h>
#include <signal.h>
#include "zend.h"
#include "zend_compile.h"
#include "zend_execute.h"
#include "zend_API.h"
#include "zend_ptr_stack.h"
#include "zend_constants.h"
#include "zend_extensions.h"
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
ZEND_API void (*zend_execute)(zend_op_array *op_array TSRMLS_DC);
#ifdef ZEND_WIN32
#include <process.h>
/* true global */
static WNDCLASS wc;
static HWND timeout_window;
static HANDLE timeout_thread_event;
static DWORD timeout_thread_id;
static int timeout_thread_initialized=0;
#endif
#if ZEND_DEBUG
static void (*original_sigsegv_handler)(int);
static void zend_handle_sigsegv(int dummy)
{
fflush(stdout);
fflush(stderr);
if (original_sigsegv_handler==zend_handle_sigsegv) {
signal(SIGSEGV, original_sigsegv_handler);
} else {
signal(SIGSEGV, SIG_DFL);
}
{
TSRMLS_FETCH();
fprintf(stderr, "SIGSEGV caught on opcode %d on opline %d of %s() at %s:%d\n\n",
active_opline->opcode,
active_opline-EG(active_op_array)->opcodes,
get_active_function_name(TSRMLS_C),
zend_get_executed_filename(TSRMLS_C),
zend_get_executed_lineno(TSRMLS_C));
}
if (original_sigsegv_handler!=zend_handle_sigsegv) {
original_sigsegv_handler(dummy);
}
}
#endif
static void zend_extension_activator(zend_extension *extension TSRMLS_DC)
{
if (extension->activate) {
extension->activate();
}
}
static void zend_extension_deactivator(zend_extension *extension TSRMLS_DC)
{
if (extension->deactivate) {
extension->deactivate();
}
}
static int is_not_internal_function(zend_function *function TSRMLS_DC)
{
if (function->type == ZEND_INTERNAL_FUNCTION) {
return EG(full_tables_cleanup) ? 0 : ZEND_HASH_APPLY_STOP;
} else {
return EG(full_tables_cleanup) ? 1 : ZEND_HASH_APPLY_REMOVE;
}
}
static int is_not_internal_class(zend_class_entry **ce TSRMLS_DC)
{
if ((*ce)->type == ZEND_INTERNAL_CLASS) {
return EG(full_tables_cleanup) ? 0 : ZEND_HASH_APPLY_STOP;
} else {
return EG(full_tables_cleanup) ? 1 : ZEND_HASH_APPLY_REMOVE;
}
}
void init_executor(TSRMLS_D)
{
INIT_ZVAL(EG(uninitialized_zval));
INIT_ZVAL(EG(error_zval));
EG(uninitialized_zval_ptr)=&EG(uninitialized_zval);
EG(error_zval_ptr)=&EG(error_zval);
zend_ptr_stack_init(&EG(arg_types_stack));
/* destroys stack frame, therefore makes core dumps worthless */
#if 0&&ZEND_DEBUG
original_sigsegv_handler = signal(SIGSEGV, zend_handle_sigsegv);
#endif
EG(return_value_ptr_ptr) = NULL;
EG(symtable_cache_ptr) = EG(symtable_cache)-1;
EG(symtable_cache_limit)=EG(symtable_cache)+SYMTABLE_CACHE_SIZE-1;
EG(no_extensions)=0;
EG(function_table) = CG(function_table);
EG(class_table) = CG(class_table);
EG(in_execution) = 0;
zend_ptr_stack_init(&EG(argument_stack));
zend_hash_init(&EG(symbol_table), 50, NULL, ZVAL_PTR_DTOR, 0);
{
zval *globals;
ALLOC_ZVAL(globals);
globals->refcount=1;
globals->is_ref=1;
globals->type = IS_ARRAY;
globals->value.ht = &EG(symbol_table);
zend_hash_update(&EG(symbol_table), "GLOBALS", sizeof("GLOBALS"), &globals, sizeof(zval *), NULL);
}
EG(active_symbol_table) = &EG(symbol_table);
zend_llist_apply(&zend_extensions, (llist_apply_func_t) zend_extension_activator TSRMLS_CC);
EG(opline_ptr) = NULL;
EG(garbage_ptr) = 0;
zend_hash_init(&EG(included_files), 5, NULL, NULL, 0);
EG(ticks_count) = 0;
EG(user_error_handler) = NULL;
zend_ptr_stack_init(&EG(user_error_handlers));
EG(orig_error_reporting) = EG(error_reporting);
zend_objects_store_init(&EG(objects_store), 1024);
EG(full_tables_cleanup) = 0;
#ifdef ZEND_WIN32
EG(timed_out) = 0;
#endif
EG(exception) = NULL;
EG(scope) = NULL;
EG(main_class_ptr) = &CG(main_class);
CG(main_class).static_members = &EG(symbol_table);
EG(current_execute_data) = NULL;
EG(This) = NULL;
}
void shutdown_executor(TSRMLS_D)
{
zend_try {
zend_objects_store_call_destructors(&EG(objects_store) TSRMLS_CC);
zend_ptr_stack_destroy(&EG(arg_types_stack));
while (EG(symtable_cache_ptr)>=EG(symtable_cache)) {
zend_hash_destroy(*EG(symtable_cache_ptr));
efree(*EG(symtable_cache_ptr));
EG(symtable_cache_ptr)--;
}
zend_llist_apply(&zend_extensions, (llist_apply_func_t) zend_extension_deactivator TSRMLS_CC);
zend_hash_destroy(&EG(symbol_table));
while (EG(garbage_ptr)--) {
if (EG(garbage)[EG(garbage_ptr)]->refcount==1) {
zval_ptr_dtor(&EG(garbage)[EG(garbage_ptr)]);
}
}
zend_ptr_stack_destroy(&EG(argument_stack));
/* Destroy all op arrays */
if (EG(full_tables_cleanup)) {
zend_hash_apply(EG(function_table), (apply_func_t) is_not_internal_function TSRMLS_CC);
zend_hash_apply(EG(class_table), (apply_func_t) is_not_internal_class TSRMLS_CC);
} else {
zend_hash_reverse_apply(EG(function_table), (apply_func_t) is_not_internal_function TSRMLS_CC);
zend_hash_reverse_apply(EG(class_table), (apply_func_t) is_not_internal_class TSRMLS_CC);
}
} zend_end_try();
/* The regular list must be destroyed after the main symbol table and
* op arrays are destroyed.
*/
zend_destroy_rsrc_list(&EG(regular_list) TSRMLS_CC);
zend_try {
clean_non_persistent_constants(TSRMLS_C);
#if ZEND_DEBUG
signal(SIGSEGV, original_sigsegv_handler);
#endif
zend_hash_destroy(&EG(included_files));
if (EG(user_error_handler)) {
zval_dtor(EG(user_error_handler));
FREE_ZVAL(EG(user_error_handler));
}
zend_ptr_stack_clean(&EG(user_error_handlers), ZVAL_DESTRUCTOR, 1);
zend_ptr_stack_destroy(&EG(user_error_handlers));
EG(error_reporting) = EG(orig_error_reporting);
zend_objects_store_destroy(&EG(objects_store));
} zend_end_try();
}
ZEND_API char *get_active_function_name(TSRMLS_D)
{
if (!zend_is_executing(TSRMLS_C)) {
return NULL;
}
switch(EG(function_state_ptr)->function->type) {
case ZEND_USER_FUNCTION: {
char *function_name = ((zend_op_array *) EG(function_state_ptr)->function)->function_name;
if (function_name) {
return function_name;
} else {
return "main";
}
}
break;
case ZEND_INTERNAL_FUNCTION:
return ((zend_internal_function *) EG(function_state_ptr)->function)->function_name;
break;
default:
return NULL;
}
}
ZEND_API char *zend_get_executed_filename(TSRMLS_D)
{
if (EG(active_op_array)) {
return EG(active_op_array)->filename;
} else {
return "[no active file]";
}
}
ZEND_API uint zend_get_executed_lineno(TSRMLS_D)
{
if (EG(opline_ptr)) {
return active_opline->lineno;
} else {
return 0;
}
}
ZEND_API zend_bool zend_is_executing(TSRMLS_D)
{
return EG(in_execution);
}
ZEND_API void _zval_ptr_dtor(zval **zval_ptr ZEND_FILE_LINE_DC)
{
#if DEBUG_ZEND>=2
printf("Reducing refcount for %x (%x): %d->%d\n", *zval_ptr, zval_ptr, (*zval_ptr)->refcount, (*zval_ptr)->refcount-1);
#endif
(*zval_ptr)->refcount--;
if ((*zval_ptr)->refcount==0) {
zval_dtor(*zval_ptr);
safe_free_zval_ptr(*zval_ptr);
} else if ((*zval_ptr)->refcount == 1) {
(*zval_ptr)->is_ref = 0;
}
}
ZEND_API int zend_is_true(zval *op)
{
return i_zend_is_true(op);
}
#include "../TSRM/tsrm_strtok_r.h"
ZEND_API int zval_update_constant(zval **pp, void *arg TSRMLS_DC)
{
zval *p = *pp;
zend_bool inline_change = (zend_bool) (unsigned long) arg;
zval const_value;
if (p->type == IS_CONSTANT) {
int refcount;
SEPARATE_ZVAL(pp);
p = *pp;
refcount = p->refcount;
if (strchr(p->value.str.val, ':')) {
char *cur, *temp;
char *last;
zend_class_entry **ce;
zval **value;
last = tsrm_strtok_r(p->value.str.val, ":", &temp);
if (zend_lookup_class(last, strlen(last), &ce TSRMLS_CC) == FAILURE) {
zend_error(E_ERROR, "Undefined class '%s'", last);
}
last = tsrm_strtok_r(NULL, ":", &temp);
for(;;) {
cur = tsrm_strtok_r(NULL, ":", &temp);
if (!cur) {
break;
}
if (zend_hash_find(&(*ce)->class_table, last, strlen(last)+1, (void **)&ce) == FAILURE) {
zend_error(E_ERROR, "Undefined sub-class '%s'", last);
}
last = cur;
}
if (zend_hash_find(&(*ce)->constants_table, last, strlen(last)+1, (void **) &value) == FAILURE) {
zend_error(E_ERROR, "Undefined class constant '%s'", last);
}
const_value = **value;
zval_copy_ctor(&const_value);
if (inline_change) {
STR_FREE(p->value.str.val);
}
*p = const_value;
} else {
if (!zend_get_constant(p->value.str.val, p->value.str.len, &const_value TSRMLS_CC)) {
zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'",
p->value.str.val,
p->value.str.val);
p->type = IS_STRING;
if (!inline_change) {
zval_copy_ctor(p);
}
} else {
if (inline_change) {
STR_FREE(p->value.str.val);
}
*p = const_value;
}
}
INIT_PZVAL(p);
p->refcount = refcount;
} else if (p->type == IS_CONSTANT_ARRAY) {
zval **element;
char *str_index;
uint str_index_len;
ulong num_index;
SEPARATE_ZVAL(pp);
p = *pp;
p->type = IS_ARRAY;
/* First go over the array and see if there are any constant indices */
zend_hash_internal_pointer_reset(p->value.ht);
while (zend_hash_get_current_data(p->value.ht, (void **) &element)==SUCCESS) {
if (!(Z_TYPE_PP(element) & IS_CONSTANT_INDEX)) {
zend_hash_move_forward(p->value.ht);
continue;
}
Z_TYPE_PP(element) &= ~IS_CONSTANT_INDEX;
if (zend_hash_get_current_key_ex(p->value.ht, &str_index, &str_index_len, &num_index, 0, NULL)!=HASH_KEY_IS_STRING) {
zend_hash_move_forward(p->value.ht);
continue;
}
if (!zend_get_constant(str_index, str_index_len-1, &const_value TSRMLS_CC)) {
zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'", str_index, str_index);
zend_hash_move_forward(p->value.ht);
continue;
}
switch (const_value.type) {
case IS_STRING:
zend_hash_update(p->value.ht, const_value.value.str.val, const_value.value.str.len+1, element, sizeof(zval *), NULL);
(*element)->refcount++;
break;
case IS_LONG:
zend_hash_index_update(p->value.ht, const_value.value.lval, element, sizeof(zval *), NULL);
(*element)->refcount++;
break;
}
zend_hash_del(p->value.ht, str_index, str_index_len);
}
zend_hash_apply_with_argument(p->value.ht, (apply_func_arg_t) zval_update_constant, (void *) 1 TSRMLS_CC);
}
return 0;
}
int call_user_function(HashTable *function_table, zval **object_pp, zval *function_name, zval *retval_ptr, int param_count, zval *params[] TSRMLS_DC)
{
zval ***params_array = (zval ***) emalloc(sizeof(zval **)*param_count);
int i;
int ex_retval;
zval *local_retval_ptr;
for (i=0; i<param_count; i++) {
params_array[i] = &params[i];
}
ex_retval = call_user_function_ex(function_table, object_pp, function_name, &local_retval_ptr, param_count, params_array, 1, NULL TSRMLS_CC);
if (local_retval_ptr) {
COPY_PZVAL_TO_ZVAL(*retval_ptr, local_retval_ptr);
} else {
INIT_ZVAL(*retval_ptr);
}
efree(params_array);
return ex_retval;
}
int call_user_function_ex(HashTable *function_table, zval **object_pp, zval *function_name, zval **retval_ptr_ptr, int param_count, zval **params[], int no_separation, HashTable *symbol_table TSRMLS_DC)
{
int i;
zval **original_return_value;
HashTable *calling_symbol_table;
zend_function_state function_state;
zend_function_state *original_function_state_ptr;
zend_op_array *original_op_array;
zend_op **original_opline_ptr;
int orig_free_op1, orig_free_op2;
int (*orig_unary_op)(zval *result, zval *op1);
int (*orig_binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC);
zval function_name_copy;
zend_class_entry *current_scope;
zend_class_entry *calling_scope = NULL;
zval *current_this;
*retval_ptr_ptr = NULL;
if (function_name->type==IS_ARRAY) { /* assume array($obj, $name) couple */
zval **tmp_object_ptr, **tmp_real_function_name;
if (zend_hash_index_find(function_name->value.ht, 0, (void **) &tmp_object_ptr)==FAILURE) {
return FAILURE;
}
if (zend_hash_index_find(function_name->value.ht, 1, (void **) &tmp_real_function_name)==FAILURE) {
return FAILURE;
}
function_name = *tmp_real_function_name;
SEPARATE_ZVAL_IF_NOT_REF(tmp_object_ptr);
object_pp = tmp_object_ptr;
(*object_pp)->is_ref = 1;
}
if (object_pp && !*object_pp) {
object_pp = NULL;
}
if (object_pp) {
/* TBI!! new object handlers */
if (Z_TYPE_PP(object_pp) == IS_OBJECT) {
if(!IS_ZEND_STD_OBJECT(**object_pp)) {
zend_error(E_WARNING, "Cannot use call_user_function on overloaded objects");
return FAILURE;
}
function_table = &Z_OBJCE_PP(object_pp)->function_table;
calling_scope = Z_OBJCE_PP(object_pp);
} else if (Z_TYPE_PP(object_pp) == IS_STRING) {
zend_class_entry **ce;
char *lc_class;
int found;
lc_class = estrndup(Z_STRVAL_PP(object_pp), Z_STRLEN_PP(object_pp));
zend_str_tolower(lc_class, Z_STRLEN_PP(object_pp));
found = zend_lookup_class(lc_class, Z_STRLEN_PP(object_pp), &ce TSRMLS_CC);
efree(lc_class);
if (found == FAILURE)
return FAILURE;
function_table = &(*ce)->function_table;
calling_scope = *ce;
object_pp = NULL;
} else
return FAILURE;
}
if (function_name->type!=IS_STRING) {
return FAILURE;
}
function_name_copy = *function_name;
zval_copy_ctor(&function_name_copy);
zend_str_tolower(function_name_copy.value.str.val, function_name_copy.value.str.len);
original_function_state_ptr = EG(function_state_ptr);
if (zend_hash_find(function_table, function_name_copy.value.str.val, function_name_copy.value.str.len+1, (void **) &function_state.function)==FAILURE) {
zval_dtor(&function_name_copy);
return FAILURE;
}
zval_dtor(&function_name_copy);
for (i=0; i<param_count; i++) {
zval *param;
if (function_state.function->common.arg_types
&& i<function_state.function->common.arg_types[0]
&& function_state.function->common.arg_types[i+1]==BYREF_FORCE
&& !PZVAL_IS_REF(*params[i])) {
if ((*params[i])->refcount>1) {
zval *new_zval;
if (no_separation) {
return FAILURE;
}
ALLOC_ZVAL(new_zval);
*new_zval = **params[i];
zval_copy_ctor(new_zval);
new_zval->refcount = 1;
(*params[i])->refcount--;
*params[i] = new_zval;
}
(*params[i])->refcount++;
(*params[i])->is_ref = 1;
param = *params[i];
} else if (*params[i] != &EG(uninitialized_zval)) {
(*params[i])->refcount++;
param = *params[i];
} else {
ALLOC_ZVAL(param);
*param = **(params[i]);
INIT_PZVAL(param);
}
zend_ptr_stack_push(&EG(argument_stack), param);
}
zend_ptr_stack_n_push(&EG(argument_stack), 2, (void *) (long) param_count, NULL);
EG(function_state_ptr) = &function_state;
current_scope = EG(scope);
EG(scope) = calling_scope;
current_this = EG(This);
if (object_pp) {
EG(This) = *object_pp;
if (!PZVAL_IS_REF(EG(This))) {
EG(This)->refcount++; /* For $this pointer */
} else {
zval *this_ptr;
ALLOC_ZVAL(this_ptr);
*this_ptr = *EG(This);
INIT_PZVAL(this_ptr);
zval_copy_ctor(this_ptr);
EG(This) = this_ptr;
}
} else {
EG(This) = NULL;
}
if (function_state.function->type == ZEND_USER_FUNCTION) {
calling_symbol_table = EG(active_symbol_table);
if (symbol_table) {
EG(active_symbol_table) = symbol_table;
} else {
ALLOC_HASHTABLE(EG(active_symbol_table));
zend_hash_init(EG(active_symbol_table), 0, NULL, ZVAL_PTR_DTOR, 0);
}
original_return_value = EG(return_value_ptr_ptr);
original_op_array = EG(active_op_array);
EG(return_value_ptr_ptr) = retval_ptr_ptr;
EG(active_op_array) = (zend_op_array *) function_state.function;
original_opline_ptr = EG(opline_ptr);
orig_free_op1 = EG(free_op1);
orig_free_op2 = EG(free_op2);
orig_unary_op = EG(unary_op);
orig_binary_op = EG(binary_op);
zend_execute(EG(active_op_array) TSRMLS_CC);
if (!symbol_table) {
zend_hash_destroy(EG(active_symbol_table));
FREE_HASHTABLE(EG(active_symbol_table));
}
EG(active_symbol_table) = calling_symbol_table;
EG(active_op_array) = original_op_array;
EG(return_value_ptr_ptr)=original_return_value;
EG(opline_ptr) = original_opline_ptr;
EG(free_op1) = orig_free_op1;
EG(free_op2) = orig_free_op2;
EG(unary_op) = orig_unary_op;
EG(binary_op) = orig_binary_op;
} else {
ALLOC_INIT_ZVAL(*retval_ptr_ptr);
((zend_internal_function *) function_state.function)->handler(param_count, *retval_ptr_ptr, (object_pp?*object_pp:NULL), 1 TSRMLS_CC);
INIT_PZVAL(*retval_ptr_ptr);
}
zend_ptr_stack_clear_multiple(TSRMLS_C);
EG(function_state_ptr) = original_function_state_ptr;
if (EG(This)) {
zval_ptr_dtor(&EG(This));
}
EG(scope) = current_scope;
EG(This) = current_this;
return SUCCESS;
}
ZEND_API int zend_lookup_class(char *name, int name_length, zend_class_entry ***ce TSRMLS_DC)
{
zval **args[1];
zval *autoload_function;
zval *class_name;
zval *retval_ptr;
int retval;
if (EG(scope)) {
if (zend_hash_find(&EG(scope)->class_table, name, name_length+1, (void **) ce) == SUCCESS) {
return SUCCESS;
}
}
if (zend_hash_find(EG(class_table), name, name_length+1, (void **) ce) == SUCCESS) {
return SUCCESS;
}
MAKE_STD_ZVAL(autoload_function);
ZVAL_STRINGL(autoload_function, "__autoload", sizeof("__autoload")-1, 1);
MAKE_STD_ZVAL(class_name);
ZVAL_STRINGL(class_name, name, name_length, 1);
args[0] = &class_name;
retval = call_user_function_ex(EG(function_table), NULL, autoload_function, &retval_ptr, 1, args, 0, NULL TSRMLS_CC);
zval_ptr_dtor(&autoload_function);
zval_ptr_dtor(&class_name);
if (retval == FAILURE) {
return FAILURE;
}
zval_ptr_dtor(&retval_ptr);
return zend_hash_find(EG(class_table), name, name_length + 1, (void **) ce);
}
ZEND_API int zend_eval_string(char *str, zval *retval_ptr, char *string_name TSRMLS_DC)
{
zval pv;
zend_op_array *new_op_array;
zend_op_array *original_active_op_array = EG(active_op_array);
zend_function_state *original_function_state_ptr = EG(function_state_ptr);
zend_uchar original_handle_op_arrays;
int retval;
if (retval_ptr) {
pv.value.str.len = strlen(str)+sizeof("return ;")-1;
pv.value.str.val = emalloc(pv.value.str.len+1);
strcpy(pv.value.str.val, "return ");
strcat(pv.value.str.val, str);
strcat(pv.value.str.val, " ;");
} else {
pv.value.str.len = strlen(str);
pv.value.str.val = estrndup(str, pv.value.str.len);
}
pv.type = IS_STRING;
/*printf("Evaluating '%s'\n", pv.value.str.val);*/
original_handle_op_arrays = CG(handle_op_arrays);
CG(handle_op_arrays) = 0;
new_op_array = compile_string(&pv, string_name TSRMLS_CC);
CG(handle_op_arrays) = original_handle_op_arrays;
if (new_op_array) {
zval *local_retval_ptr=NULL;
zval **original_return_value_ptr_ptr = EG(return_value_ptr_ptr);
zend_op **original_opline_ptr = EG(opline_ptr);
EG(return_value_ptr_ptr) = &local_retval_ptr;
EG(active_op_array) = new_op_array;
EG(no_extensions)=1;
zend_execute(new_op_array TSRMLS_CC);
if (local_retval_ptr) {
if (retval_ptr) {
COPY_PZVAL_TO_ZVAL(*retval_ptr, local_retval_ptr);
} else {
zval_ptr_dtor(&local_retval_ptr);
}
} else {
if (retval_ptr) {
INIT_ZVAL(*retval_ptr);
}
}
EG(no_extensions)=0;
EG(opline_ptr) = original_opline_ptr;
EG(active_op_array) = original_active_op_array;
EG(function_state_ptr) = original_function_state_ptr;
destroy_op_array(new_op_array);
efree(new_op_array);
EG(return_value_ptr_ptr) = original_return_value_ptr_ptr;
retval = SUCCESS;
} else {
retval = FAILURE;
}
zval_dtor(&pv);
return retval;
}
void execute_new_code(TSRMLS_D)
{
zend_op *opline, *end;
zend_op *ret_opline;
zval *local_retval=NULL;
if (!CG(interactive)
|| CG(active_op_array)->backpatch_count>0
|| CG(active_op_array)->function_name
|| CG(active_op_array)->type!=ZEND_USER_FUNCTION) {
return;
}
ret_opline = get_next_op(CG(active_op_array) TSRMLS_CC);
ret_opline->opcode = ZEND_RETURN;
ret_opline->op1.op_type = IS_CONST;
INIT_ZVAL(ret_opline->op1.u.constant);
SET_UNUSED(ret_opline->op2);
if (!CG(active_op_array)->start_op) {
CG(active_op_array)->start_op = CG(active_op_array)->opcodes;
}
opline=CG(active_op_array)->start_op;
end=CG(active_op_array)->opcodes+CG(active_op_array)->last;
while (opline<end) {
if (opline->op1.op_type==IS_CONST) {
opline->op1.u.constant.is_ref = 1;
opline->op1.u.constant.refcount = 2; /* Make sure is_ref won't be reset */
}
if (opline->op2.op_type==IS_CONST) {
opline->op2.u.constant.is_ref = 1;
opline->op2.u.constant.refcount = 2;
}
opline++;
}
EG(return_value_ptr_ptr) = &local_retval;
EG(active_op_array) = CG(active_op_array);
zend_execute(CG(active_op_array) TSRMLS_CC);
if (local_retval) {
zval_ptr_dtor(&local_retval);
}
CG(active_op_array)->last--; /* get rid of that ZEND_RETURN */
CG(active_op_array)->start_op = CG(active_op_array)->opcodes+CG(active_op_array)->last;
}
ZEND_API void zend_timeout(int dummy)
{
TSRMLS_FETCH();
/* is there any point in this? we're terminating the request anyway...
PG(connection_status) |= PHP_CONNECTION_TIMEOUT;
*/
zend_error(E_ERROR, "Maximum execution time of %d second%s exceeded",
EG(timeout_seconds), EG(timeout_seconds) == 1 ? "" : "s");
}
#ifdef ZEND_WIN32
static LRESULT CALLBACK zend_timeout_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) {
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_REGISTER_ZEND_TIMEOUT:
/* wParam is the thread id pointer, lParam is the timeout amount in seconds */
if (lParam==0) {
KillTimer(timeout_window, wParam);
} else {
SetTimer(timeout_window, wParam, lParam*1000, NULL);
}
break;
case WM_UNREGISTER_ZEND_TIMEOUT:
/* wParam is the thread id pointer */
KillTimer(timeout_window, wParam);
break;
case WM_TIMER: {
#ifdef ZTS
void ***tsrm_ls;
tsrm_ls = ts_resource_ex(0, &wParam);
if (!tsrm_ls) {
/* Thread died before receiving its timeout? */
break;
}
#endif
KillTimer(timeout_window, wParam);
EG(timed_out) = 1;
}
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
static unsigned __stdcall timeout_thread_proc(void *pArgs)
{
MSG message;
wc.style=0;
wc.lpfnWndProc = zend_timeout_WndProc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hInstance=NULL;
wc.hIcon=NULL;
wc.hCursor=NULL;
wc.hbrBackground=(HBRUSH)(COLOR_BACKGROUND + 5);
wc.lpszMenuName=NULL;
wc.lpszClassName = "Zend Timeout Window";
if (!RegisterClass(&wc)) {
return -1;
}
timeout_window = CreateWindow(wc.lpszClassName, wc.lpszClassName, 0, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, NULL, NULL);
SetEvent(timeout_thread_event);
while (GetMessage(&message, NULL, 0, 0)) {
SendMessage(timeout_window, message.message, message.wParam, message.lParam);
if (message.message == WM_QUIT) {
break;
}
}
DestroyWindow(timeout_window);
UnregisterClass(wc.lpszClassName, NULL);
return 0;
}
void zend_init_timeout_thread()
{
timeout_thread_event = CreateEvent(NULL, FALSE, FALSE, NULL);
_beginthreadex(NULL, 0, timeout_thread_proc, NULL, 0, &timeout_thread_id);
WaitForSingleObject(timeout_thread_event, INFINITE);
}
void zend_shutdown_timeout_thread()
{
if (!timeout_thread_initialized) {
return;
}
PostThreadMessage(timeout_thread_id, WM_QUIT, 0, 0);
}
#endif
/* This one doesn't exists on QNX */
#ifndef SIGPROF
#define SIGPROF 27
#endif
void zend_set_timeout(long seconds)
{
TSRMLS_FETCH();
EG(timeout_seconds) = seconds;
#ifdef ZEND_WIN32
if (timeout_thread_initialized==0 && InterlockedIncrement(&timeout_thread_initialized)==1) {
/* We start up this process-wide thread here and not in zend_startup(), because if Zend
* is initialized inside a DllMain(), you're not supposed to start threads from it.
*/
zend_init_timeout_thread();
}
PostThreadMessage(timeout_thread_id, WM_REGISTER_ZEND_TIMEOUT, (WPARAM) GetCurrentThreadId(), (LPARAM) seconds);
#else
# ifdef HAVE_SETITIMER
{
struct itimerval t_r; /* timeout requested */
sigset_t sigset;
t_r.it_value.tv_sec = seconds;
t_r.it_value.tv_usec = t_r.it_interval.tv_sec = t_r.it_interval.tv_usec = 0;
setitimer(ITIMER_PROF, &t_r, NULL);
signal(SIGPROF, zend_timeout);
sigemptyset(&sigset);
sigaddset(&sigset, SIGPROF);
sigprocmask(SIG_UNBLOCK, &sigset, NULL);
}
# endif
#endif
}
void zend_unset_timeout(TSRMLS_D)
{
#ifdef ZEND_WIN32
PostThreadMessage(timeout_thread_id, WM_UNREGISTER_ZEND_TIMEOUT, (WPARAM) GetCurrentThreadId(), (LPARAM) 0);
#else
# ifdef HAVE_SETITIMER
{
struct itimerval no_timeout;
no_timeout.it_value.tv_sec = no_timeout.it_value.tv_usec = no_timeout.it_interval.tv_sec = no_timeout.it_interval.tv_usec = 0;
setitimer(ITIMER_PROF, &no_timeout, NULL);
}
# endif
#endif
}
-32
View File
@@ -1,32 +0,0 @@
#ifndef ZEND_EXECUTE_LOCKS_H
#define ZEND_EXECUTE_LOCKS_H
#define PZVAL_LOCK(z) zend_pzval_lock_func(z)
static inline void zend_pzval_lock_func(zval *z)
{
z->refcount++;
}
#define PZVAL_UNLOCK(z) zend_pzval_unlock_func(z TSRMLS_CC)
static inline void zend_pzval_unlock_func(zval *z TSRMLS_DC)
{
z->refcount--;
if (!z->refcount) {
z->refcount = 1;
z->is_ref = 0;
EG(garbage)[EG(garbage_ptr)++] = z;
}
}
static inline void zend_clean_garbage(TSRMLS_D)
{
while (EG(garbage_ptr)) {
zval_ptr_dtor(&EG(garbage)[--EG(garbage_ptr)]);
}
}
#define SELECTIVE_PZVAL_LOCK(pzv, pzn) if (!((pzn)->u.EA.type & EXT_TYPE_UNUSED)) { PZVAL_LOCK(pzv); }
#endif /* ZEND_EXECUTE_LOCKS_H */
-279
View File
@@ -1,279 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#include "zend_extensions.h"
ZEND_API zend_llist zend_extensions;
static int last_resource_number;
int zend_load_extension(char *path)
{
#if ZEND_EXTENSIONS_SUPPORT
DL_HANDLE handle;
zend_extension *new_extension;
zend_extension_version_info *extension_version_info;
handle = DL_LOAD(path);
if (!handle) {
#ifndef ZEND_WIN32
fprintf(stderr, "Failed loading %s: %s\n", path, dlerror());
#else
fprintf(stderr, "Failed loading %s\n", path);
#endif
return FAILURE;
}
extension_version_info = (zend_extension_version_info *) DL_FETCH_SYMBOL(handle, "extension_version_info");
new_extension = (zend_extension *) DL_FETCH_SYMBOL(handle, "zend_extension_entry");
if (!extension_version_info || !new_extension) {
fprintf(stderr, "%s doesn't appear to be a valid Zend extension\n", path);
return FAILURE;
}
/* allow extension to proclaim compatibility with any Zend version */
if (extension_version_info->zend_extension_api_no != ZEND_EXTENSION_API_NO &&(!new_extension->api_no_check || new_extension->api_no_check(ZEND_EXTENSION_API_NO) != SUCCESS)) {
if (extension_version_info->zend_extension_api_no > ZEND_EXTENSION_API_NO) {
fprintf(stderr, "%s requires Zend Engine API version %d.\n"
"The Zend Engine API version %d which is installed, is outdated.\n\n",
new_extension->name,
extension_version_info->zend_extension_api_no,
ZEND_EXTENSION_API_NO);
DL_UNLOAD(handle);
return FAILURE;
} else if (extension_version_info->zend_extension_api_no < ZEND_EXTENSION_API_NO) {
fprintf(stderr, "%s requires Zend Engine API version %d.\n"
"The Zend Engine API version %d which is installed, is newer.\n"
"Contact %s at %s for a later version of %s.\n\n",
new_extension->name,
extension_version_info->zend_extension_api_no,
ZEND_EXTENSION_API_NO,
new_extension->author,
new_extension->URL,
new_extension->name);
DL_UNLOAD(handle);
return FAILURE;
}
} else if (ZTS_V!=extension_version_info->thread_safe) {
fprintf(stderr, "Cannot load %s - it %s thread safe, whereas Zend %s\n",
new_extension->name,
(extension_version_info->thread_safe?"is":"isn't"),
(ZTS_V?"is":"isn't"));
DL_UNLOAD(handle);
return FAILURE;
} else if (ZEND_DEBUG!=extension_version_info->debug) {
fprintf(stderr, "Cannot load %s - it %s debug information, whereas Zend %s\n",
new_extension->name,
(extension_version_info->debug?"contains":"does not contain"),
(ZEND_DEBUG?"does":"does not"));
DL_UNLOAD(handle);
return FAILURE;
}
return zend_register_extension(new_extension, handle);
#else
fprintf(stderr, "Extensions are not supported on this platform.\n");
return FAILURE;
#endif
}
int zend_register_extension(zend_extension *new_extension, DL_HANDLE handle)
{
#if ZEND_EXTENSIONS_SUPPORT
zend_extension extension;
extension = *new_extension;
extension.handle = handle;
zend_extension_dispatch_message(ZEND_EXTMSG_NEW_EXTENSION, &extension);
zend_llist_add_element(&zend_extensions, &extension);
/*fprintf(stderr, "Loaded %s, version %s\n", extension.name, extension.version);*/
#endif
return SUCCESS;
}
static void zend_extension_shutdown(zend_extension *extension TSRMLS_DC)
{
#if ZEND_EXTENSIONS_SUPPORT
if (extension->shutdown) {
extension->shutdown(extension);
}
#endif
}
static int zend_extension_startup(zend_extension *extension)
{
#if ZEND_EXTENSIONS_SUPPORT
if (extension->startup) {
if (extension->startup(extension)!=SUCCESS) {
return 1;
}
zend_append_version_info(extension);
}
#endif
return 0;
}
int zend_startup_extensions_mechanism()
{
/* Startup extensions mechanism */
zend_llist_init(&zend_extensions, sizeof(zend_extension), (void (*)(void *)) zend_extension_dtor, 1);
last_resource_number = 0;
return SUCCESS;
}
int zend_startup_extensions()
{
zend_llist_apply_with_del(&zend_extensions, (int (*)(void *)) zend_extension_startup);
return SUCCESS;
}
void zend_shutdown_extensions(TSRMLS_D)
{
zend_llist_apply(&zend_extensions, (llist_apply_func_t) zend_extension_shutdown TSRMLS_CC);
zend_llist_destroy(&zend_extensions);
}
void zend_extension_dtor(zend_extension *extension)
{
#if ZEND_EXTENSIONS_SUPPORT && !ZEND_DEBUG
if (extension->handle) {
DL_UNLOAD(extension->handle);
}
#endif
}
static void zend_extension_message_dispatcher(zend_extension *extension, int num_args, va_list args TSRMLS_DC)
{
int message;
void *arg;
if (!extension->message_handler || num_args!=2) {
return;
}
message = va_arg(args, int);
arg = va_arg(args, void *);
extension->message_handler(message, arg);
}
ZEND_API void zend_extension_dispatch_message(int message, void *arg)
{
TSRMLS_FETCH();
zend_llist_apply_with_arguments(&zend_extensions, (llist_apply_with_args_func_t) zend_extension_message_dispatcher TSRMLS_CC, 2, message, arg);
}
ZEND_API int zend_get_resource_handle(zend_extension *extension)
{
if (last_resource_number<ZEND_MAX_RESERVED_RESOURCES) {
extension->resource_number = last_resource_number;
return last_resource_number++;
} else {
return -1;
}
}
ZEND_API zend_extension *zend_get_extension(char *extension_name)
{
zend_llist_element *element;
for (element = zend_extensions.head; element; element = element->next) {
zend_extension *extension = (zend_extension *) element->data;
if (!strcmp(extension->name, extension_name)) {
return extension;
}
}
return NULL;
}
/*
* Support for dynamic loading of MH_BUNDLEs on Darwin / Mac OS X
*
*/
#if HAVE_MACH_O_DYLD_H
void *zend_mh_bundle_load(char* bundle_path)
{
NSObjectFileImage bundle_image;
NSModule bundle_handle;
NSSymbol bundle_init_nssymbol;
void (*bundle_init)(void);
if (NSCreateObjectFileImageFromFile(bundle_path, &bundle_image) != NSObjectFileImageSuccess) {
return NULL;
}
bundle_handle = NSLinkModule(bundle_image, bundle_path, NSLINKMODULE_OPTION_PRIVATE);
NSDestroyObjectFileImage(bundle_image);
/* call the init function of the bundle */
bundle_init_nssymbol = NSLookupSymbolInModule(bundle_handle, "__init");
if (bundle_init_nssymbol != NULL) {
bundle_init = NSAddressOfSymbol(bundle_init_nssymbol);
bundle_init();
}
return bundle_handle;
}
int zend_mh_bundle_unload(void *bundle_handle)
{
NSSymbol bundle_fini_nssymbol;
void (*bundle_fini)(void);
/* call the fini function of the bundle */
bundle_fini_nssymbol = NSLookupSymbolInModule(bundle_handle, "__fini");
if (bundle_fini_nssymbol != NULL) {
bundle_fini = NSAddressOfSymbol(bundle_fini_nssymbol);
bundle_fini();
}
return (int) NSUnLinkModule(bundle_handle, NULL);
}
void *zend_mh_bundle_symbol(void *bundle_handle, const char *symbol_name)
{
NSSymbol symbol;
symbol = NSLookupSymbolInModule(bundle_handle, symbol_name);
return NSAddressOfSymbol(symbol);
}
const char *zend_mh_bundle_error(void)
{
/* Witness the state of the art error reporting */
return NULL;
}
#endif /* HAVE_MACH_O_DYLD_H */
-116
View File
@@ -1,116 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_EXTENSIONS_H
#define ZEND_EXTENSIONS_H
#include "zend_compile.h"
#define ZEND_EXTENSION_API_NO 20010710
typedef struct _zend_extension_version_info {
int zend_extension_api_no;
char *required_zend_version;
unsigned char thread_safe;
unsigned char debug;
} zend_extension_version_info;
typedef struct _zend_extension zend_extension;
/* Typedef's for zend_extension function pointers */
typedef int (*startup_func_t)(zend_extension *extension);
typedef void (*shutdown_func_t)(zend_extension *extension);
typedef void (*activate_func_t)(void);
typedef void (*deactivate_func_t)(void);
typedef void (*message_handler_func_t)(int message, void *arg);
typedef void (*op_array_handler_func_t)(zend_op_array *op_array);
typedef void (*statement_handler_func_t)(zend_op_array *op_array);
typedef void (*fcall_begin_handler_func_t)(zend_op_array *op_array);
typedef void (*fcall_end_handler_func_t)(zend_op_array *op_array);
typedef void (*op_array_ctor_func_t)(zend_op_array *op_array);
typedef void (*op_array_dtor_func_t)(zend_op_array *op_array);
struct _zend_extension {
char *name;
char *version;
char *author;
char *URL;
char *copyright;
startup_func_t startup;
shutdown_func_t shutdown;
activate_func_t activate;
deactivate_func_t deactivate;
message_handler_func_t message_handler;
op_array_handler_func_t op_array_handler;
statement_handler_func_t statement_handler;
fcall_begin_handler_func_t fcall_begin_handler;
fcall_end_handler_func_t fcall_end_handler;
op_array_ctor_func_t op_array_ctor;
op_array_dtor_func_t op_array_dtor;
int (*api_no_check)(int api_no);
void *reserved2;
void *reserved3;
void *reserved4;
void *reserved5;
void *reserved6;
void *reserved7;
void *reserved8;
DL_HANDLE handle;
int resource_number;
};
ZEND_API int zend_get_resource_handle(zend_extension *extension);
ZEND_API void zend_extension_dispatch_message(int message, void *arg);
#define ZEND_EXTMSG_NEW_EXTENSION 1
#define ZEND_EXTENSION() \
ZEND_EXT_API zend_extension_version_info extension_version_info = { ZEND_EXTENSION_API_NO, ZEND_VERSION, ZTS_V, ZEND_DEBUG }
#define STANDARD_ZEND_EXTENSION_PROPERTIES NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -1
#define COMPAT_ZEND_EXTENSION_PROPERTIES NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, -1
ZEND_API extern zend_llist zend_extensions;
void zend_extension_dtor(zend_extension *extension);
ZEND_API int zend_load_extension(char *path);
ZEND_API int zend_register_extension(zend_extension *new_extension, DL_HANDLE handle);
void zend_append_version_info(zend_extension *extension);
int zend_startup_extensions_mechanism(void);
int zend_startup_extensions(void);
void zend_shutdown_extensions(TSRMLS_D);
ZEND_API zend_extension *zend_get_extension(char *extension_name);
#endif /* ZEND_EXTENSIONS_H */
-140
View File
@@ -1,140 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_FAST_CACHE_H
#define ZEND_FAST_CACHE_H
#ifndef ZEND_ENABLE_FAST_CACHE
# if ZEND_DEBUG
# define ZEND_ENABLE_FAST_CACHE 0
# else
# define ZEND_ENABLE_FAST_CACHE 0
# endif
#endif
typedef struct _zend_fast_cache_list_entry {
struct _zend_fast_cache_list_entry *next;
} zend_fast_cache_list_entry;
#define MAX_FAST_CACHE_TYPES 4
#define ZVAL_CACHE_LIST 0
#define HASHTABLE_CACHE_LIST 1
#if ZEND_ENABLE_FAST_CACHE
#include "zend_globals.h"
#include "zend_globals_macros.h"
#include "zend_alloc.h"
#if ZEND_DEBUG
# define RECORD_ZVAL_CACHE_HIT(fc_type) AG(fast_cache_stats)[fc_type][1]++;
# define RECORD_ZVAL_CACHE_MISS(fc_type) AG(fast_cache_stats)[fc_type][0]++;
#else
# define RECORD_ZVAL_CACHE_HIT(fc_type)
# define RECORD_ZVAL_CACHE_MISS(fc_type)
#endif
#define ZEND_FAST_ALLOC(p, type, fc_type) \
{ \
TSRMLS_FETCH(); \
\
if (((p) = (type *) AG(fast_cache_list_head)[fc_type])) { \
AG(fast_cache_list_head)[fc_type] = ((zend_fast_cache_list_entry *) AG(fast_cache_list_head)[fc_type])->next; \
RECORD_ZVAL_CACHE_HIT(fc_type); \
} else { \
(p) = (type *) emalloc(sizeof(type)); \
RECORD_ZVAL_CACHE_MISS(fc_type); \
} \
}
#define ZEND_FAST_FREE(p, fc_type) \
{ \
TSRMLS_FETCH(); \
\
((zend_fast_cache_list_entry *) (p))->next = (zend_fast_cache_list_entry *) AG(fast_cache_list_head)[fc_type]; \
AG(fast_cache_list_head)[fc_type] = (zend_fast_cache_list_entry *) (p); \
}
#define ZEND_FAST_ALLOC_REL(p, type, fc_type) \
ZEND_FAST_ALLOC(p, type, fc_type)
#define ZEND_FAST_FREE_REL(p, fc_type) \
ZEND_FAST_FREE(p, fc_type)
#else /* !ZEND_ENABLE_FAST_CACHE */
#define ZEND_FAST_ALLOC(p, type, fc_type) \
(p) = (type *) emalloc(sizeof(type))
#define ZEND_FAST_FREE(p, fc_type) \
efree(p)
#define ZEND_FAST_ALLOC_REL(p, type, fc_type) \
(p) = (type *) emalloc_rel(sizeof(type))
#define ZEND_FAST_FREE_REL(p, fc_type) \
efree_rel(p)
#endif /* ZEND_ENABLE_FAST_CACHE */
/* fast cache for zval's */
#define ALLOC_ZVAL(z) \
ZEND_FAST_ALLOC(z, zval, ZVAL_CACHE_LIST)
#define FREE_ZVAL(z) \
ZEND_FAST_FREE(z, ZVAL_CACHE_LIST)
#define ALLOC_ZVAL_REL(z) \
ZEND_FAST_ALLOC_REL(z, zval, ZVAL_CACHE_LIST)
#define FREE_ZVAL_REL(z) \
ZEND_FAST_FREE_REL(z, ZVAL_CACHE_LIST)
/* fast cache for HashTables */
#define ALLOC_HASHTABLE(ht) \
ZEND_FAST_ALLOC(ht, HashTable, HASHTABLE_CACHE_LIST)
#define FREE_HASHTABLE(ht) \
ZEND_FAST_FREE(ht, HASHTABLE_CACHE_LIST)
#define ALLOC_HASHTABLE_REL(ht) \
ZEND_FAST_ALLOC_REL(ht, HashTable, HASHTABLE_CACHE_LIST)
#define FREE_HASHTABLE_REL(ht) \
ZEND_FAST_FREE_REL(ht, HASHTABLE_CACHE_LIST)
#endif /* ZEND_FAST_CACHE_H */
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
*/
-261
View File
@@ -1,261 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_GLOBALS_H
#define ZEND_GLOBALS_H
#include <setjmp.h>
#include "zend_globals_macros.h"
#include "zend_stack.h"
#include "zend_ptr_stack.h"
#include "zend_hash.h"
#include "zend_llist.h"
#include "zend_fast_cache.h"
#include "zend_objects.h"
#include "zend_objects_API.h"
/* Define ZTS if you want a thread-safe Zend */
/*#undef ZTS*/
#ifdef ZTS
BEGIN_EXTERN_C()
ZEND_API extern int compiler_globals_id;
ZEND_API extern int executor_globals_id;
ZEND_API extern int alloc_globals_id;
END_EXTERN_C()
#endif
#define SYMTABLE_CACHE_SIZE 32
#include "zend_compile.h"
/* excpt.h on Digital Unix 4.0 defines function_table */
#undef function_table
typedef struct _zend_declarables {
zval ticks;
zend_uint beginop;
} zend_declarables;
struct _zend_compiler_globals {
zend_stack bp_stack;
zend_stack switch_cond_stack;
zend_stack foreach_copy_stack;
zend_stack object_stack;
zend_stack declare_stack;
zend_class_entry *active_class_entry;
zval active_ce_parent_class_name;
/* variables for list() compilation */
zend_llist list_llist;
zend_llist dimension_llist;
zend_stack list_stack;
zend_stack function_call_stack;
char *compiled_filename;
int zend_lineno;
int comment_start_line;
char *heredoc;
int heredoc_len;
zend_op_array *active_op_array;
zend_class_entry main_class;
HashTable *function_table; /* function symbol table */
HashTable *class_table; /* class table */
HashTable filenames_table;
HashTable *auto_globals;
zend_bool in_compilation;
zend_bool short_tags;
zend_bool asp_tags;
zend_bool allow_call_time_pass_reference;
zend_declarables declarables;
/* For extensions support */
zend_bool extended_info; /* generate extension information for debugger/profiler */
zend_bool handle_op_arrays; /* run op_arrays through op_array handlers */
zend_bool unclean_shutdown;
zend_bool ini_parser_unbuffered_errors;
zend_llist open_files;
zend_llist *throw_list;
long catch_begin;
struct _zend_ini_parser_param *ini_parser_param;
int interactive;
zend_bool increment_lineno;
zend_llist import_commands;
};
struct _zend_executor_globals {
zval **return_value_ptr_ptr;
zval uninitialized_zval;
zval *uninitialized_zval_ptr;
zval error_zval;
zval *error_zval_ptr;
zend_function_state *function_state_ptr;
zend_ptr_stack arg_types_stack;
/* symbol table cache */
HashTable *symtable_cache[SYMTABLE_CACHE_SIZE];
HashTable **symtable_cache_limit;
HashTable **symtable_cache_ptr;
zend_op **opline_ptr;
HashTable *active_symbol_table;
HashTable symbol_table; /* main symbol table */
HashTable included_files; /* files already included */
jmp_buf bailout;
int error_reporting;
int orig_error_reporting;
int exit_status;
zend_op_array *active_op_array;
HashTable *function_table; /* function symbol table */
HashTable *class_table; /* class table */
HashTable *zend_constants; /* constants table */
zend_class_entry *scope;
zend_class_entry *main_class_ptr;
zval *This;
long precision;
int ticks_count;
zend_bool in_execution;
zend_bool bailout_set;
zend_bool full_tables_cleanup;
/* for extended information support */
zend_bool no_extensions;
#ifdef ZEND_WIN32
zend_bool timed_out;
#endif
HashTable regular_list;
HashTable persistent_list;
zend_ptr_stack argument_stack;
int free_op1, free_op2;
int (*unary_op)(zval *result, zval *op1);
int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC);
zval *garbage[2];
int garbage_ptr;
zval *user_error_handler;
zend_ptr_stack user_error_handlers;
/* timeout support */
int timeout_seconds;
int lambda_count;
HashTable ini_directives;
zend_objects_store objects_store;
zval *exception;
struct _zend_execute_data *current_execute_data;
void *reserved[ZEND_MAX_RESERVED_RESOURCES];
};
#include "zend_mm.h"
struct _zend_alloc_globals {
zend_mem_header *head; /* standard list */
void *cache[MAX_CACHED_MEMORY][MAX_CACHED_ENTRIES];
unsigned int cache_count[MAX_CACHED_MEMORY];
void *fast_cache_list_head[MAX_FAST_CACHE_TYPES];
#ifdef ZEND_WIN32
HANDLE memory_heap;
#endif
#if ZEND_DEBUG
/* for performance tuning */
int cache_stats[MAX_CACHED_MEMORY][2];
int fast_cache_stats[MAX_FAST_CACHE_TYPES][2];
#endif
#if MEMORY_LIMIT
unsigned int memory_limit;
unsigned int allocated_memory;
unsigned int allocated_memory_peak;
unsigned char memory_exhausted;
#endif
#ifdef ZEND_MM
zend_mm_heap mm_heap;
#endif
};
struct _zend_scanner_globals {
FILE *yy_in;
FILE *yy_out;
int yy_leng;
char *yy_text;
struct yy_buffer_state *current_buffer;
char *c_buf_p;
int init;
int start;
char _yy_hold_char;
int yy_n_chars;
int _yy_did_buffer_switch_on_eof;
int _yy_last_accepting_state; /* Must be of the same type as yy_state_type,
* if for whatever reason it's no longer int!
*/
char *_yy_last_accepting_cpos;
int _yy_more_flag;
int _yy_more_len;
};
#endif /* ZEND_GLOBALS_H */
-109
View File
@@ -1,109 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_GLOBALS_MACROS_H
#define ZEND_GLOBALS_MACROS_H
typedef struct _zend_compiler_globals zend_compiler_globals;
typedef struct _zend_executor_globals zend_executor_globals;
typedef struct _zend_alloc_globals zend_alloc_globals;
typedef struct _zend_scanner_globals zend_scanner_globals;
/* Compiler */
#ifdef ZTS
# define CG(v) TSRMG(compiler_globals_id, zend_compiler_globals *, v)
BEGIN_EXTERN_C()
int zendparse(void *compiler_globals);
END_EXTERN_C()
#else
# define CG(v) (compiler_globals.v)
extern ZEND_API struct _zend_compiler_globals compiler_globals;
int zendparse(void);
#endif
/* Executor */
#ifdef ZTS
# define EG(v) TSRMG(executor_globals_id, zend_executor_globals *, v)
#else
# define EG(v) (executor_globals.v)
extern ZEND_API zend_executor_globals executor_globals;
#endif
/* Memory Manager */
#ifdef ZTS
# define AG(v) TSRMG(alloc_globals_id, zend_alloc_globals *, v)
#else
# define AG(v) (alloc_globals.v)
extern ZEND_API zend_alloc_globals alloc_globals;
#endif
/* Language Scanner */
#ifdef ZTS
# define LANG_SCNG(v) TSRMG(language_scanner_globals_id, zend_scanner_globals *, v)
extern ZEND_API ts_rsrc_id language_scanner_globals_id;
#else
# define LANG_SCNG(v) (language_scanner_globals.v)
extern ZEND_API zend_scanner_globals language_scanner_globals;
#endif
/* INI Scanner */
#ifdef ZTS
# define INI_SCNG(v) TSRMG(ini_scanner_globals_id, zend_scanner_globals *, v)
extern ZEND_API ts_rsrc_id ini_scanner_globals_id;
#else
# define INI_SCNG(v) (ini_scanner_globals.v)
extern ZEND_API zend_scanner_globals ini_scanner_globals;
#endif
/* For limited downwards source compatibility */
#define CLS_FETCH()
#define ELS_FETCH()
#define ALS_FETCH()
#define PLS_FETCH()
#define SLS_FETCH()
#define CLS_D
#define ELS_D
#define ALS_D
#define PLS_D
#define SLS_D
#define CLS_DC
#define ELS_DC
#define ALS_DC
#define PLS_DC
#define SLS_DC
#define CLS_C
#define ELS_C
#define ALS_C
#define PLS_C
#define SLS_C
#define CLS_CC
#define ELS_CC
#define ALS_CC
#define PLS_CC
#define SLS_CC
#endif /* ZEND_GLOBALS_MACROS_H */
-1326
View File
File diff suppressed because it is too large. Load diff
-272
View File
@@ -1,272 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_HASH_H
#define ZEND_HASH_H
#include <sys/types.h>
#include "zend.h"
#define HASH_KEY_IS_STRING 1
#define HASH_KEY_IS_LONG 2
#define HASH_KEY_NON_EXISTANT 3
#define HASH_UPDATE (1<<0)
#define HASH_ADD (1<<1)
#define HASH_NEXT_INSERT (1<<2)
#define HASH_DEL_KEY 0
#define HASH_DEL_INDEX 1
typedef ulong (*hash_func_t)(char *arKey, uint nKeyLength);
typedef int (*compare_func_t)(const void *, const void * TSRMLS_DC);
typedef void (*sort_func_t)(void *, size_t, register size_t, compare_func_t TSRMLS_DC);
typedef void (*dtor_func_t)(void *pDest);
typedef void (*copy_ctor_func_t)(void *pElement);
struct _hashtable;
typedef struct bucket {
ulong h; /* Used for numeric indexing */
uint nKeyLength;
void *pData;
void *pDataPtr;
struct bucket *pListNext;
struct bucket *pListLast;
struct bucket *pNext;
struct bucket *pLast;
char arKey[1]; /* Must be last element */
} Bucket;
typedef struct _hashtable {
uint nTableSize;
uint nTableMask;
uint nNumOfElements;
ulong nNextFreeElement;
Bucket *pInternalPointer; /* Used for element traversal */
Bucket *pListHead;
Bucket *pListTail;
Bucket **arBuckets;
dtor_func_t pDestructor;
zend_bool persistent;
unsigned char nApplyCount;
zend_bool bApplyProtection;
#if ZEND_DEBUG
int inconsistent;
#endif
} HashTable;
typedef Bucket* HashPosition;
BEGIN_EXTERN_C()
/* startup/shutdown */
ZEND_API int zend_hash_init(HashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent);
ZEND_API int zend_hash_init_ex(HashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent, zend_bool bApplyProtection);
ZEND_API void zend_hash_destroy(HashTable *ht);
ZEND_API void zend_hash_clean(HashTable *ht);
/* additions/updates/changes */
ZEND_API int zend_hash_add_or_update(HashTable *ht, char *arKey, uint nKeyLength, void *pData, uint nDataSize, void **pDest, int flag);
#define zend_hash_update(ht, arKey, nKeyLength, pData, nDataSize, pDest) \
zend_hash_add_or_update(ht, arKey, nKeyLength, pData, nDataSize, pDest, HASH_UPDATE)
#define zend_hash_add(ht, arKey, nKeyLength, pData, nDataSize, pDest) \
zend_hash_add_or_update(ht, arKey, nKeyLength, pData, nDataSize, pDest, HASH_ADD)
ZEND_API int zend_hash_quick_add_or_update(HashTable *ht, char *arKey, uint nKeyLength, ulong h, void *pData, uint nDataSize, void **pDest, int flag);
#define zend_hash_quick_update(ht, arKey, nKeyLength, h, pData, nDataSize, pDest) \
zend_hash_quick_add_or_update(ht, arKey, nKeyLength, h, pData, nDataSize, pDest, HASH_UPDATE)
#define zend_hash_quick_add(ht, arKey, nKeyLength, h, pData, nDataSize, pDest) \
zend_hash_quick_add_or_update(ht, arKey, nKeyLength, h, pData, nDataSize, pDest, HASH_ADD)
ZEND_API int zend_hash_index_update_or_next_insert(HashTable *ht, ulong h, void *pData, uint nDataSize, void **pDest, int flag);
#define zend_hash_index_update(ht, h, pData, nDataSize, pDest) \
zend_hash_index_update_or_next_insert(ht, h, pData, nDataSize, pDest, HASH_UPDATE)
#define zend_hash_next_index_insert(ht, pData, nDataSize, pDest) \
zend_hash_index_update_or_next_insert(ht, 0, pData, nDataSize, pDest, HASH_NEXT_INSERT)
ZEND_API int zend_hash_add_empty_element(HashTable *ht, char *arKey, uint nKeyLength);
#define ZEND_HASH_APPLY_KEEP 0
#define ZEND_HASH_APPLY_REMOVE 1<<0
#define ZEND_HASH_APPLY_STOP 1<<1
typedef struct _zend_hash_key {
char *arKey;
uint nKeyLength;
ulong h;
} zend_hash_key;
typedef int (*apply_func_t)(void *pDest TSRMLS_DC);
typedef int (*apply_func_arg_t)(void *pDest, void *argument TSRMLS_DC);
typedef int (*apply_func_args_t)(void *pDest, int num_args, va_list args, zend_hash_key *hash_key);
ZEND_API void zend_hash_graceful_destroy(HashTable *ht);
ZEND_API void zend_hash_graceful_reverse_destroy(HashTable *ht);
ZEND_API void zend_hash_apply(HashTable *ht, apply_func_t apply_func TSRMLS_DC);
ZEND_API void zend_hash_apply_with_argument(HashTable *ht, apply_func_arg_t apply_func, void * TSRMLS_DC);
ZEND_API void zend_hash_apply_with_arguments(HashTable *ht, apply_func_args_t apply_func, int, ...);
/* This function should be used with special care (in other words,
* it should usually not be used). When used with the ZEND_HASH_APPLY_STOP
* return value, it assumes things about the order of the elements in the hash.
* Also, it does not provide the same kind of reentrancy protection that
* the standard apply functions do.
*/
ZEND_API void zend_hash_reverse_apply(HashTable *ht, apply_func_t apply_func TSRMLS_DC);
/* Deletes */
ZEND_API int zend_hash_del_key_or_index(HashTable *ht, char *arKey, uint nKeyLength, ulong h, int flag);
#define zend_hash_del(ht, arKey, nKeyLength) \
zend_hash_del_key_or_index(ht, arKey, nKeyLength, 0, HASH_DEL_KEY)
#define zend_hash_index_del(ht, h) \
zend_hash_del_key_or_index(ht, NULL, 0, h, HASH_DEL_INDEX)
ZEND_API ulong zend_get_hash_value(HashTable *ht, char *arKey, uint nKeyLength);
/* Data retreival */
ZEND_API int zend_hash_find(HashTable *ht, char *arKey, uint nKeyLength, void **pData);
ZEND_API int zend_hash_quick_find(HashTable *ht, char *arKey, uint nKeyLength, ulong h, void **pData);
ZEND_API int zend_hash_index_find(HashTable *ht, ulong h, void **pData);
/* Misc */
ZEND_API int zend_hash_exists(HashTable *ht, char *arKey, uint nKeyLength);
ZEND_API int zend_hash_index_exists(HashTable *ht, ulong h);
ZEND_API ulong zend_hash_next_free_element(HashTable *ht);
/* traversing */
ZEND_API int zend_hash_move_forward_ex(HashTable *ht, HashPosition *pos);
ZEND_API int zend_hash_move_backwards_ex(HashTable *ht, HashPosition *pos);
ZEND_API int zend_hash_get_current_key_ex(HashTable *ht, char **str_index, uint *str_length, ulong *num_index, zend_bool duplicate, HashPosition *pos);
ZEND_API int zend_hash_get_current_key_type_ex(HashTable *ht, HashPosition *pos);
ZEND_API int zend_hash_get_current_data_ex(HashTable *ht, void **pData, HashPosition *pos);
ZEND_API void zend_hash_internal_pointer_reset_ex(HashTable *ht, HashPosition *pos);
ZEND_API void zend_hash_internal_pointer_end_ex(HashTable *ht, HashPosition *pos);
#define zend_hash_move_forward(ht) \
zend_hash_move_forward_ex(ht, NULL)
#define zend_hash_move_backwards(ht) \
zend_hash_move_backwards_ex(ht, NULL)
#define zend_hash_get_current_key(ht, str_index, num_index, duplicate) \
zend_hash_get_current_key_ex(ht, str_index, NULL, num_index, duplicate, NULL)
#define zend_hash_get_current_key_type(ht) \
zend_hash_get_current_key_type_ex(ht, NULL)
#define zend_hash_get_current_data(ht, pData) \
zend_hash_get_current_data_ex(ht, pData, NULL)
#define zend_hash_internal_pointer_reset(ht) \
zend_hash_internal_pointer_reset_ex(ht, NULL)
#define zend_hash_internal_pointer_end(ht) \
zend_hash_internal_pointer_end_ex(ht, NULL)
/* Copying, merging and sorting */
ZEND_API void zend_hash_copy(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, void *tmp, uint size);
ZEND_API void zend_hash_merge(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, void *tmp, uint size, int overwrite);
ZEND_API void zend_hash_merge_ex(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, uint size, zend_bool (*pReplaceOrig)(void *orig, void *p_new));
ZEND_API int zend_hash_sort(HashTable *ht, sort_func_t sort_func, compare_func_t compare_func, int renumber TSRMLS_DC);
ZEND_API int zend_hash_compare(HashTable *ht1, HashTable *ht2, compare_func_t compar, zend_bool ordered TSRMLS_DC);
ZEND_API int zend_hash_minmax(HashTable *ht, compare_func_t compar, int flag, void **pData TSRMLS_DC);
ZEND_API int zend_hash_num_elements(HashTable *ht);
ZEND_API int zend_hash_rehash(HashTable *ht);
/*
* DJBX33A (Daniel J. Bernstein, Times 33 with Addition)
*
* This is Daniel J. Bernstein's popular `times 33' hash function as
* posted by him years ago on comp.lang.c. It basically uses a function
* like ``hash(i) = hash(i-1) * 33 + str[i]''. This is one of the best
* known hash functions for strings. Because it is both computed very
* fast and distributes very well.
*
* The magic of number 33, i.e. why it works better than many other
* constants, prime or not, has never been adequately explained by
* anyone. So I try an explanation: if one experimentally tests all
* multipliers between 1 and 256 (as RSE did now) one detects that even
* numbers are not useable at all. The remaining 128 odd numbers
* (except for the number 1) work more or less all equally well. They
* all distribute in an acceptable way and this way fill a hash table
* with an average percent of approx. 86%.
*
* If one compares the Chi^2 values of the variants, the number 33 not
* even has the best value. But the number 33 and a few other equally
* good numbers like 17, 31, 63, 127 and 129 have nevertheless a great
* advantage to the remaining numbers in the large set of possible
* multipliers: their multiply operation can be replaced by a faster
* operation based on just one shift plus either a single addition
* or subtraction operation. And because a hash function has to both
* distribute good _and_ has to be very fast to compute, those few
* numbers should be preferred and seems to be the reason why Daniel J.
* Bernstein also preferred it.
*
*
* -- Ralf S. Engelschall <rse@engelschall.com>
*/
static inline ulong zend_inline_hash_func(char *arKey, uint nKeyLength)
{
register ulong hash = 5381;
/* variant with the hash unrolled eight times */
for (; nKeyLength >= 8; nKeyLength -= 8) {
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
hash = ((hash << 5) + hash) + *arKey++;
}
switch (nKeyLength) {
case 7: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
case 6: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
case 5: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
case 4: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
case 3: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
case 2: hash = ((hash << 5) + hash) + *arKey++; /* fallthrough... */
case 1: hash = ((hash << 5) + hash) + *arKey++; break;
case 0: break;
EMPTY_SWITCH_DEFAULT_CASE()
}
return hash;
}
ZEND_API ulong zend_hash_func(char *arKey, uint nKeyLength);
#if ZEND_DEBUG
/* debug */
void zend_hash_display_pListTail(HashTable *ht);
void zend_hash_display(HashTable *ht);
#endif
END_EXTERN_C()
#define ZEND_INIT_SYMTABLE(ht) \
ZEND_INIT_SYMTABLE_EX(ht, 2, 0)
#define ZEND_INIT_SYMTABLE_EX(ht, n, persistent) \
zend_hash_init(ht, n, NULL, ZVAL_PTR_DTOR, persistent)
#endif /* ZEND_HASH_H */
-247
View File
@@ -1,247 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#include "zend.h"
#include "zend_language_parser.h"
#include "zend_compile.h"
#include "zend_highlight.h"
#include "zend_ptr_stack.h"
#include "zend_globals.h"
ZEND_API void zend_html_putc(char c)
{
switch (c) {
case '\n':
ZEND_PUTS("<br />");
break;
case '<':
ZEND_PUTS("&lt;");
break;
case '>':
ZEND_PUTS("&gt;");
break;
case '&':
ZEND_PUTS("&amp;");
break;
case ' ':
ZEND_PUTS("&nbsp;");
break;
case '\t':
ZEND_PUTS("&nbsp;&nbsp;&nbsp;&nbsp;");
break;
default:
ZEND_PUTC(c);
break;
}
}
ZEND_API void zend_html_puts(const char *s, uint len)
{
const char *ptr=s, *end=s+len;
while (ptr<end) {
if (*ptr==' ') {
/* Series of spaces should be displayed as &nbsp;'s
* whereas single spaces should be displayed as a space
*/
if ((ptr+1) < end && *(ptr+1)==' ') {
do {
zend_html_putc(*ptr);
} while ((++ptr < end) && (*ptr==' '));
} else {
ZEND_PUTC(*ptr);
ptr++;
}
} else {
zend_html_putc(*ptr++);
}
}
}
ZEND_API void zend_highlight(zend_syntax_highlighter_ini *syntax_highlighter_ini TSRMLS_DC)
{
zval token;
int token_type;
char *last_color = syntax_highlighter_ini->highlight_html;
char *next_color;
int in_string=0;
zend_printf("<code>");
zend_printf("<font color=\"%s\">\n", last_color);
/* highlight stuff coming back from zendlex() */
token.type = 0;
while ((token_type=lex_scan(&token TSRMLS_CC))) {
switch (token_type) {
case T_INLINE_HTML:
next_color = syntax_highlighter_ini->highlight_html;
break;
case T_COMMENT:
next_color = syntax_highlighter_ini->highlight_comment;
break;
case T_OPEN_TAG:
case T_OPEN_TAG_WITH_ECHO:
next_color = syntax_highlighter_ini->highlight_default;
break;
case T_CLOSE_TAG:
next_color = syntax_highlighter_ini->highlight_default;
break;
case T_CONSTANT_ENCAPSED_STRING:
next_color = syntax_highlighter_ini->highlight_string;
break;
case '"':
next_color = syntax_highlighter_ini->highlight_string;
in_string = !in_string;
break;
case T_WHITESPACE:
zend_html_puts(LANG_SCNG(yy_text), LANG_SCNG(yy_leng)); /* no color needed */
token.type = 0;
continue;
break;
default:
if (token.type==0) {
next_color = syntax_highlighter_ini->highlight_keyword;
} else {
if (in_string) {
next_color = syntax_highlighter_ini->highlight_string;
} else {
next_color = syntax_highlighter_ini->highlight_default;
}
}
break;
}
if (last_color != next_color) {
if (last_color != syntax_highlighter_ini->highlight_html) {
zend_printf("</font>");
}
last_color = next_color;
if (last_color != syntax_highlighter_ini->highlight_html) {
zend_printf("<font color=\"%s\">", last_color);
}
}
switch (token_type) {
case T_END_HEREDOC:
zend_html_puts(token.value.str.val, token.value.str.len);
break;
default:
zend_html_puts(LANG_SCNG(yy_text), LANG_SCNG(yy_leng));
break;
}
if (token.type == IS_STRING) {
switch (token_type) {
case T_OPEN_TAG:
case T_OPEN_TAG_WITH_ECHO:
case T_CLOSE_TAG:
case T_WHITESPACE:
case T_COMMENT:
break;
default:
efree(token.value.str.val);
break;
}
} else if (token_type == T_END_HEREDOC) {
zend_bool has_semicolon=(strchr(token.value.str.val, ';')?1:0);
efree(token.value.str.val);
if (has_semicolon) {
/* the following semicolon was unput(), ignore it */
lex_scan(&token TSRMLS_CC);
}
}
token.type = 0;
}
if (last_color != syntax_highlighter_ini->highlight_html) {
zend_printf("</font>\n");
}
zend_printf("</font>\n");
zend_printf("</code>");
}
ZEND_API void zend_strip(TSRMLS_D)
{
zval token;
int token_type;
token.type = 0;
while ((token_type=lex_scan(&token TSRMLS_CC))) {
switch (token_type) {
case T_COMMENT:
token.type = 0;
break;
case T_WHITESPACE:
if (token.type) {
putchar(' ');
token.type = 0;
}
continue;
}
switch (token_type) {
case 349:
break;
default: {
char c, *ptr=LANG_SCNG(yy_text), *end=LANG_SCNG(yy_text)+LANG_SCNG(yy_leng);
while (ptr<end) {
c = *ptr++;
putchar(c);
}
}
break;
}
if (token.type == IS_STRING) {
switch (token_type) {
case T_OPEN_TAG:
case T_OPEN_TAG_WITH_ECHO:
case T_CLOSE_TAG:
case T_WHITESPACE:
case T_COMMENT:
break;
default:
efree(token.value.str.val);
break;
}
} else if (token_type == T_END_HEREDOC) {
zend_bool has_semicolon=(strchr(token.value.str.val, ';')?1:0);
efree(token.value.str.val);
if (has_semicolon) {
/* the following semicolon was unput(), ignore it */
lex_scan(&token TSRMLS_CC);
}
}
token.type = 0;
}
}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
*/
-52
View File
@@ -1,52 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_HIGHLIGHT_H
#define ZEND_HIGHLIGHT_H
#define HL_COMMENT_COLOR "#FF8000" /* orange */
#define HL_DEFAULT_COLOR "#0000BB" /* blue */
#define HL_HTML_COLOR "#000000" /* black */
#define HL_STRING_COLOR "#DD0000" /* red */
#define HL_BG_COLOR "#FFFFFF" /* white */
#define HL_KEYWORD_COLOR "#007700" /* green */
typedef struct _zend_syntax_highlighter_ini {
char *highlight_html;
char *highlight_comment;
char *highlight_default;
char *highlight_string;
char *highlight_keyword;
} zend_syntax_highlighter_ini;
BEGIN_EXTERN_C()
ZEND_API void zend_highlight(zend_syntax_highlighter_ini *syntax_highlighter_ini TSRMLS_DC);
ZEND_API void zend_strip(TSRMLS_D);
ZEND_API int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini TSRMLS_DC);
ZEND_API int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, char *str_name TSRMLS_DC);
ZEND_API void zend_html_putc(char c);
ZEND_API void zend_html_puts(const char *s, uint len);
END_EXTERN_C()
extern zend_syntax_highlighter_ini syntax_highlighter_ini;
#endif
-147
View File
@@ -1,147 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
/* This indenter doesn't really work, it's here for no particular reason. */
#include "zend.h"
#include "zend_language_parser.h"
#include "zend_compile.h"
#include "zend_indent.h"
#define zendtext LANG_SCNG(yy_text)
#define zendleng LANG_SCNG(yy_leng)
static void handle_whitespace(int *emit_whitespace)
{
unsigned char c;
int i;
for (c=0; c<128; c++) {
if (emit_whitespace[c]>0) {
for (i=0; i<emit_whitespace[c]; i++) {
zend_write((char *) &c, 1);
}
}
}
memset(emit_whitespace, 0, sizeof(int)*256);
}
ZEND_API void zend_indent()
{
zval token;
int token_type;
int in_string=0;
int nest_level=0;
int emit_whitespace[256];
int i;
TSRMLS_FETCH();
memset(emit_whitespace, 0, sizeof(int)*256);
/* highlight stuff coming back from zendlex() */
token.type = 0;
while ((token_type=lex_scan(&token TSRMLS_CC))) {
switch (token_type) {
case T_INLINE_HTML:
zend_write(LANG_SCNG(yy_text), LANG_SCNG(yy_leng));
break;
case T_WHITESPACE: {
token.type = 0;
/* eat whitespace, emit newlines */
for (i=0; i<LANG_SCNG(yy_leng); i++) {
emit_whitespace[(unsigned char) LANG_SCNG(yy_text)[i]]++;
}
continue;
}
break;
case '"':
in_string = !in_string;
/* break missing intentionally */
default:
if (token.type==0) {
/* keyword */
switch(token_type) {
case ',':
ZEND_PUTS(", ");
goto dflt_printout;
break;
case '{':
nest_level++;
if (emit_whitespace['\n']>0) {
ZEND_PUTS(" {\n");
memset(emit_whitespace, 0, sizeof(int)*256);
} else {
ZEND_PUTS("{");
}
break;
case '}':
nest_level--;
if (emit_whitespace['\n']==0) {
ZEND_PUTS("\n");
}
for (i=0; i<nest_level; i++) {
ZEND_PUTS(" ");
}
goto dflt_printout;
break;
dflt_printout:
default:
if (emit_whitespace['\n']>0) {
for (i=0; i<emit_whitespace['\n']; i++) {
ZEND_PUTS("\n");
}
memset(emit_whitespace, 0, sizeof(int)*256);
for (i=0; i<nest_level; i++) {
ZEND_PUTS(" ");
}
} else {
handle_whitespace(emit_whitespace);
}
zend_write(LANG_SCNG(yy_text), LANG_SCNG(yy_leng));
break;
}
} else {
handle_whitespace(emit_whitespace);
if (in_string) {
zend_write(LANG_SCNG(yy_text), LANG_SCNG(yy_leng));
/* a part of a string */
} else {
zend_write(LANG_SCNG(yy_text), LANG_SCNG(yy_leng));
}
}
break;
}
if (token.type == IS_STRING) {
switch (token_type) {
case T_OPEN_TAG:
case T_CLOSE_TAG:
case T_WHITESPACE:
break;
default:
efree(token.value.str.val);
break;
}
}
token.type = 0;
}
}
-26
View File
@@ -1,26 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_INDENT_H
#define ZEND_INDENT_H
ZEND_API void zend_indent(void);
#endif /* ZEND_INDENT_H */
-487
View File
@@ -1,487 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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. |
+----------------------------------------------------------------------+
| Author: Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
#include <stdlib.h>
#include "zend.h"
#include "zend_qsort.h"
#include "zend_API.h"
#include "zend_ini.h"
#include "zend_alloc.h"
#include "zend_operators.h"
static HashTable *registered_zend_ini_directives;
/*
* hash_apply functions
*/
static int zend_remove_ini_entries(zend_ini_entry *ini_entry, int *module_number TSRMLS_DC)
{
if (ini_entry->module_number == *module_number) {
return 1;
} else {
return 0;
}
}
static int zend_restore_ini_entry_cb(zend_ini_entry *ini_entry, int stage TSRMLS_DC)
{
if (ini_entry->modified) {
if (ini_entry->on_modify) {
ini_entry->on_modify(ini_entry, ini_entry->orig_value, ini_entry->orig_value_length, ini_entry->mh_arg1, ini_entry->mh_arg2, ini_entry->mh_arg3, stage TSRMLS_CC);
}
efree(ini_entry->value);
ini_entry->value = ini_entry->orig_value;
ini_entry->value_length = ini_entry->orig_value_length;
ini_entry->modified = 0;
ini_entry->orig_value = NULL;
ini_entry->orig_value_length = 0;
}
return 0;
}
/*
* Startup / shutdown
*/
ZEND_API int zend_ini_startup(TSRMLS_D)
{
registered_zend_ini_directives = &EG(ini_directives);
if (zend_hash_init_ex(registered_zend_ini_directives, 100, NULL, NULL, 1, 0)==FAILURE) {
return FAILURE;
}
return SUCCESS;
}
ZEND_API int zend_ini_shutdown(TSRMLS_D)
{
zend_hash_destroy(&EG(ini_directives));
return SUCCESS;
}
ZEND_API int zend_ini_deactivate(TSRMLS_D)
{
zend_hash_apply_with_argument(&EG(ini_directives), (apply_func_arg_t) zend_restore_ini_entry_cb, (void *) ZEND_INI_STAGE_DEACTIVATE TSRMLS_CC);
return SUCCESS;
}
ZEND_API int zend_copy_ini_directives(TSRMLS_D)
{
zend_ini_entry ini_entry;
if (zend_hash_init_ex(&EG(ini_directives), registered_zend_ini_directives->nNumOfElements, NULL, NULL, 1, 0)==FAILURE) {
return FAILURE;
}
zend_hash_copy(&EG(ini_directives), registered_zend_ini_directives, NULL, &ini_entry, sizeof(zend_ini_entry));
zend_ini_refresh_caches(ZEND_INI_STAGE_STARTUP TSRMLS_CC);
return SUCCESS;
}
static int ini_key_compare(const void *a, const void *b TSRMLS_DC)
{
Bucket *f;
Bucket *s;
f = *((Bucket **) a);
s = *((Bucket **) b);
if (f->nKeyLength==0 && s->nKeyLength==0) { /* both numeric */
return ZEND_NORMALIZE_BOOL(f->nKeyLength - s->nKeyLength);
} else if (f->nKeyLength==0) { /* f is numeric, s is not */
return -1;
} else if (s->nKeyLength==0) { /* s is numeric, f is not */
return 1;
} else { /* both strings */
return zend_binary_strcasecmp(f->arKey, f->nKeyLength, s->arKey, s->nKeyLength);
}
}
ZEND_API void zend_ini_sort_entries(TSRMLS_D)
{
zend_hash_sort(&EG(ini_directives), zend_qsort, ini_key_compare, 0 TSRMLS_CC);
}
/*
* Registration / unregistration
*/
ZEND_API int zend_register_ini_entries(zend_ini_entry *ini_entry, int module_number TSRMLS_DC)
{
zend_ini_entry *p = ini_entry;
zend_ini_entry *hashed_ini_entry;
zval default_value;
while (p->name) {
p->module_number = module_number;
if (zend_hash_add(registered_zend_ini_directives, p->name, p->name_length, p, sizeof(zend_ini_entry), (void **) &hashed_ini_entry)==FAILURE) {
zend_unregister_ini_entries(module_number TSRMLS_CC);
return FAILURE;
}
if ((zend_get_configuration_directive(p->name, p->name_length, &default_value))==SUCCESS) {
if (!hashed_ini_entry->on_modify
|| hashed_ini_entry->on_modify(hashed_ini_entry, default_value.value.str.val, default_value.value.str.len, hashed_ini_entry->mh_arg1, hashed_ini_entry->mh_arg2, hashed_ini_entry->mh_arg3, ZEND_INI_STAGE_STARTUP TSRMLS_CC)==SUCCESS) {
hashed_ini_entry->value = default_value.value.str.val;
hashed_ini_entry->value_length = default_value.value.str.len;
}
} else {
if (hashed_ini_entry->on_modify) {
hashed_ini_entry->on_modify(hashed_ini_entry, hashed_ini_entry->value, hashed_ini_entry->value_length, hashed_ini_entry->mh_arg1, hashed_ini_entry->mh_arg2, hashed_ini_entry->mh_arg3, ZEND_INI_STAGE_STARTUP TSRMLS_CC);
}
}
p++;
}
return SUCCESS;
}
ZEND_API void zend_unregister_ini_entries(int module_number TSRMLS_DC)
{
zend_hash_apply_with_argument(registered_zend_ini_directives, (apply_func_arg_t) zend_remove_ini_entries, (void *) &module_number TSRMLS_CC);
}
static int zend_ini_refresh_cache(zend_ini_entry *p, int stage TSRMLS_DC)
{
if (p->on_modify) {
p->on_modify(p, p->value, p->value_length, p->mh_arg1, p->mh_arg2, p->mh_arg3, stage TSRMLS_CC);
}
return 0;
}
ZEND_API void zend_ini_refresh_caches(int stage TSRMLS_DC)
{
zend_hash_apply_with_argument(&EG(ini_directives), (apply_func_arg_t) zend_ini_refresh_cache, (void *)(long) stage TSRMLS_CC);
}
ZEND_API int zend_alter_ini_entry(char *name, uint name_length, char *new_value, uint new_value_length, int modify_type, int stage)
{
zend_ini_entry *ini_entry;
char *duplicate;
TSRMLS_FETCH();
if (zend_hash_find(&EG(ini_directives), name, name_length, (void **) &ini_entry)==FAILURE) {
return FAILURE;
}
if (!(ini_entry->modifyable & modify_type)) {
return FAILURE;
}
duplicate = estrndup(new_value, new_value_length);
if (!ini_entry->on_modify
|| ini_entry->on_modify(ini_entry, duplicate, new_value_length, ini_entry->mh_arg1, ini_entry->mh_arg2, ini_entry->mh_arg3, stage TSRMLS_CC)==SUCCESS) {
if (!ini_entry->modified) {
ini_entry->orig_value = ini_entry->value;
ini_entry->orig_value_length = ini_entry->value_length;
} else { /* we already changed the value, free the changed value */
efree(ini_entry->value);
}
ini_entry->value = duplicate;
ini_entry->value_length = new_value_length;
ini_entry->modified = 1;
} else {
efree(duplicate);
}
return SUCCESS;
}
ZEND_API int zend_restore_ini_entry(char *name, uint name_length, int stage)
{
zend_ini_entry *ini_entry;
TSRMLS_FETCH();
if (zend_hash_find(&EG(ini_directives), name, name_length, (void **) &ini_entry)==FAILURE) {
return FAILURE;
}
zend_restore_ini_entry_cb(ini_entry, stage TSRMLS_CC);
return SUCCESS;
}
ZEND_API int zend_ini_register_displayer(char *name, uint name_length, void (*displayer)(zend_ini_entry *ini_entry, int type))
{
zend_ini_entry *ini_entry;
if (zend_hash_find(registered_zend_ini_directives, name, name_length, (void **) &ini_entry)==FAILURE) {
return FAILURE;
}
ini_entry->displayer = displayer;
return SUCCESS;
}
/*
* Data retrieval
*/
ZEND_API long zend_ini_long(char *name, uint name_length, int orig)
{
zend_ini_entry *ini_entry;
TSRMLS_FETCH();
if (zend_hash_find(&EG(ini_directives), name, name_length, (void **) &ini_entry)==SUCCESS) {
if (orig && ini_entry->modified) {
return (ini_entry->orig_value ? strtol(ini_entry->orig_value, NULL, 0) : 0);
} else if (ini_entry->value) {
return strtol(ini_entry->value, NULL, 0);
}
}
return 0;
}
ZEND_API double zend_ini_double(char *name, uint name_length, int orig)
{
zend_ini_entry *ini_entry;
TSRMLS_FETCH();
if (zend_hash_find(&EG(ini_directives), name, name_length, (void **) &ini_entry)==SUCCESS) {
if (orig && ini_entry->modified) {
return (double) (ini_entry->orig_value ? strtod(ini_entry->orig_value, NULL) : 0.0);
} else if (ini_entry->value) {
return (double) strtod(ini_entry->value, NULL);
}
}
return 0.0;
}
ZEND_API char *zend_ini_string(char *name, uint name_length, int orig)
{
zend_ini_entry *ini_entry;
TSRMLS_FETCH();
if (zend_hash_find(&EG(ini_directives), name, name_length, (void **) &ini_entry)==SUCCESS) {
if (orig && ini_entry->modified) {
return ini_entry->orig_value;
} else {
return ini_entry->value;
}
}
return "";
}
static void zend_ini_displayer_cb(zend_ini_entry *ini_entry, int type)
{
if (ini_entry->displayer) {
ini_entry->displayer(ini_entry, type);
} else {
char *display_string;
uint display_string_length;
if (type==ZEND_INI_DISPLAY_ORIG && ini_entry->modified) {
if (ini_entry->orig_value) {
display_string = ini_entry->orig_value;
display_string_length = ini_entry->orig_value_length;
} else {
display_string = "<i>no value</i>";
display_string_length = sizeof("<i>no value</i>")-1;
}
} else if (ini_entry->value && ini_entry->value[0]) {
display_string = ini_entry->value;
display_string_length = ini_entry->value_length;
} else {
display_string = "<i>no value</i>";
display_string_length = sizeof("<i>no value</i>")-1;
}
ZEND_WRITE(display_string, display_string_length);
}
}
ZEND_INI_DISP(zend_ini_boolean_displayer_cb)
{
int value;
if (type==ZEND_INI_DISPLAY_ORIG && ini_entry->modified) {
value = (ini_entry->orig_value ? atoi(ini_entry->orig_value) : 0);
} else if (ini_entry->value) {
value = atoi(ini_entry->value);
} else {
value = 0;
}
if (value) {
ZEND_PUTS("On");
} else {
ZEND_PUTS("Off");
}
}
ZEND_INI_DISP(zend_ini_color_displayer_cb)
{
char *value;
if (type==ZEND_INI_DISPLAY_ORIG && ini_entry->modified) {
value = ini_entry->orig_value;
} else if (ini_entry->value) {
value = ini_entry->value;
} else {
value = NULL;
}
if (value) {
zend_printf("<font color=\"%s\">%s</font>", value, value);
} else {
ZEND_PUTS("<i>no value</i>;");
}
}
ZEND_INI_DISP(display_link_numbers)
{
char *value;
if (type==ZEND_INI_DISPLAY_ORIG && ini_entry->modified) {
value = ini_entry->orig_value;
} else if (ini_entry->value) {
value = ini_entry->value;
} else {
value = NULL;
}
if (value) {
if (atoi(value)==-1) {
ZEND_PUTS("Unlimited");
} else {
zend_printf("%s", value);
}
}
}
/* Standard message handlers */
ZEND_API ZEND_INI_MH(OnUpdateBool)
{
zend_bool *p;
#ifndef ZTS
char *base = (char *) mh_arg2;
#else
char *base;
base = (char *) ts_resource(*((int *) mh_arg2));
#endif
p = (zend_bool *) (base+(size_t) mh_arg1);
*p = (zend_bool) atoi(new_value);
return SUCCESS;
}
ZEND_API ZEND_INI_MH(OnUpdateInt)
{
long *p;
#ifndef ZTS
char *base = (char *) mh_arg2;
#else
char *base;
base = (char *) ts_resource(*((int *) mh_arg2));
#endif
p = (long *) (base+(size_t) mh_arg1);
*p = zend_atoi(new_value, new_value_length);
return SUCCESS;
}
ZEND_API ZEND_INI_MH(OnUpdateReal)
{
double *p;
#ifndef ZTS
char *base = (char *) mh_arg2;
#else
char *base;
base = (char *) ts_resource(*((int *) mh_arg2));
#endif
p = (double *) (base+(size_t) mh_arg1);
*p = strtod(new_value, NULL);
return SUCCESS;
}
ZEND_API ZEND_INI_MH(OnUpdateString)
{
char **p;
#ifndef ZTS
char *base = (char *) mh_arg2;
#else
char *base;
base = (char *) ts_resource(*((int *) mh_arg2));
#endif
p = (char **) (base+(size_t) mh_arg1);
*p = new_value;
return SUCCESS;
}
ZEND_API ZEND_INI_MH(OnUpdateStringUnempty)
{
char **p;
#ifndef ZTS
char *base = (char *) mh_arg2;
#else
char *base;
base = (char *) ts_resource(*((int *) mh_arg2));
#endif
if (new_value && !new_value[0]) {
return FAILURE;
}
p = (char **) (base+(size_t) mh_arg1);
*p = new_value;
return SUCCESS;
}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
*/
-199
View File
@@ -1,199 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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. |
+----------------------------------------------------------------------+
| Author: Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_INI_H
#define ZEND_INI_H
#define ZEND_INI_USER (1<<0)
#define ZEND_INI_PERDIR (1<<1)
#define ZEND_INI_SYSTEM (1<<2)
#define ZEND_INI_ALL (ZEND_INI_USER|ZEND_INI_PERDIR|ZEND_INI_SYSTEM)
#ifndef XtOffsetOf
# if defined(CRAY) || (defined(__arm) && !defined(LINUX))
# ifdef __STDC__
# define XtOffset(p_type, field) _Offsetof(p_type, field)
# else
# ifdef CRAY2
# define XtOffset(p_type, field) \
(sizeof(int)*((unsigned int)&(((p_type)NULL)->field)))
# else /* !CRAY2 */
# define XtOffset(p_type, field) ((unsigned int)&(((p_type)NULL)->field))
# endif /* !CRAY2 */
# endif /* __STDC__ */
# else /* ! (CRAY || __arm) */
# define XtOffset(p_type, field) \
((long) (((char *) (&(((p_type)NULL)->field))) - ((char *) NULL)))
# endif /* !CRAY */
# ifdef offsetof
# define XtOffsetOf(s_type, field) offsetof(s_type, field)
# else
# define XtOffsetOf(s_type, field) XtOffset(s_type*, field)
# endif
#endif
typedef struct _zend_ini_entry zend_ini_entry;
#define ZEND_INI_MH(name) int name(zend_ini_entry *entry, char *new_value, uint new_value_length, void *mh_arg1, void *mh_arg2, void *mh_arg3, int stage TSRMLS_DC)
#define ZEND_INI_DISP(name) void name(zend_ini_entry *ini_entry, int type)
struct _zend_ini_entry {
int module_number;
int modifyable;
char *name;
uint name_length;
ZEND_INI_MH((*on_modify));
void *mh_arg1;
void *mh_arg2;
void *mh_arg3;
char *value;
uint value_length;
char *orig_value;
uint orig_value_length;
int modified;
void (*displayer)(zend_ini_entry *ini_entry, int type);
};
ZEND_API int zend_ini_startup(TSRMLS_D);
ZEND_API int zend_ini_shutdown(TSRMLS_D);
ZEND_API int zend_ini_deactivate(TSRMLS_D);
ZEND_API int zend_copy_ini_directives(TSRMLS_D);
ZEND_API void zend_ini_sort_entries(TSRMLS_D);
ZEND_API int zend_register_ini_entries(zend_ini_entry *ini_entry, int module_number TSRMLS_DC);
ZEND_API void zend_unregister_ini_entries(int module_number TSRMLS_DC);
ZEND_API void zend_ini_refresh_caches(int stage TSRMLS_DC);
ZEND_API int zend_alter_ini_entry(char *name, uint name_length, char *new_value, uint new_value_length, int modify_type, int stage);
ZEND_API int zend_restore_ini_entry(char *name, uint name_length, int stage);
ZEND_API void display_ini_entries(zend_module_entry *module);
ZEND_API long zend_ini_long(char *name, uint name_length, int orig);
ZEND_API double zend_ini_double(char *name, uint name_length, int orig);
ZEND_API char *zend_ini_string(char *name, uint name_length, int orig);
ZEND_API int zend_ini_register_displayer(char *name, uint name_length, void (*displayer)(zend_ini_entry *ini_entry, int type));
ZEND_API ZEND_INI_DISP(zend_ini_boolean_displayer_cb);
ZEND_API ZEND_INI_DISP(zend_ini_color_displayer_cb);
ZEND_API ZEND_INI_DISP(display_link_numbers);
#define ZEND_INI_BEGIN() static zend_ini_entry ini_entries[] = {
#define ZEND_INI_END() { 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, NULL } };
#define ZEND_INI_ENTRY3_EX(name, default_value, modifyable, on_modify, arg1, arg2, arg3, displayer) \
{ 0, modifyable, name, sizeof(name), on_modify, arg1, arg2, arg3, default_value, sizeof(default_value)-1, NULL, 0, 0, displayer },
#define ZEND_INI_ENTRY3(name, default_value, modifyable, on_modify, arg1, arg2, arg3) \
ZEND_INI_ENTRY3_EX(name, default_value, modifyable, on_modify, arg1, arg2, arg3, NULL)
#define ZEND_INI_ENTRY2_EX(name, default_value, modifyable, on_modify, arg1, arg2, displayer) \
ZEND_INI_ENTRY3_EX(name, default_value, modifyable, on_modify, arg1, arg2, NULL, displayer)
#define ZEND_INI_ENTRY2(name, default_value, modifyable, on_modify, arg1, arg2) \
ZEND_INI_ENTRY2_EX(name, default_value, modifyable, on_modify, arg1, arg2, NULL)
#define ZEND_INI_ENTRY1_EX(name, default_value, modifyable, on_modify, arg1, displayer) \
ZEND_INI_ENTRY3_EX(name, default_value, modifyable, on_modify, arg1, NULL, NULL, displayer)
#define ZEND_INI_ENTRY1(name, default_value, modifyable, on_modify, arg1) \
ZEND_INI_ENTRY1_EX(name, default_value, modifyable, on_modify, arg1, NULL)
#define ZEND_INI_ENTRY_EX(name, default_value, modifyable, on_modify, displayer) \
ZEND_INI_ENTRY3_EX(name, default_value, modifyable, on_modify, NULL, NULL, NULL, displayer)
#define ZEND_INI_ENTRY(name, default_value, modifyable, on_modify) \
ZEND_INI_ENTRY_EX(name, default_value, modifyable, on_modify, NULL)
#ifdef ZTS
#define STD_ZEND_INI_ENTRY(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr) \
ZEND_INI_ENTRY2(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr##_id)
#define STD_ZEND_INI_ENTRY_EX(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr, displayer) \
ZEND_INI_ENTRY2_EX(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr##_id, displayer)
#define STD_ZEND_INI_BOOLEAN(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr) \
ZEND_INI_ENTRY3_EX(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr##_id, NULL, zend_ini_boolean_displayer_cb)
#else
#define STD_ZEND_INI_ENTRY(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr) \
ZEND_INI_ENTRY2(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr)
#define STD_ZEND_INI_ENTRY_EX(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr, displayer) \
ZEND_INI_ENTRY2_EX(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr, displayer)
#define STD_ZEND_INI_BOOLEAN(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr) \
ZEND_INI_ENTRY3_EX(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr, NULL, zend_ini_boolean_displayer_cb)
#endif
#define INI_INT(name) zend_ini_long((name), sizeof(name), 0)
#define INI_FLT(name) zend_ini_double((name), sizeof(name), 0)
#define INI_STR(name) zend_ini_string((name), sizeof(name), 0)
#define INI_BOOL(name) ((zend_bool) INI_INT(name))
#define INI_ORIG_INT(name) zend_ini_long((name), sizeof(name), 1)
#define INI_ORIG_FLT(name) zend_ini_double((name), sizeof(name), 1)
#define INI_ORIG_STR(name) zend_ini_string((name), sizeof(name), 1)
#define INI_ORIG_BOOL(name) ((zend_bool) INI_ORIG_INT(name))
#define REGISTER_INI_ENTRIES() zend_register_ini_entries(ini_entries, module_number TSRMLS_CC)
#define UNREGISTER_INI_ENTRIES() zend_unregister_ini_entries(module_number TSRMLS_CC)
#define DISPLAY_INI_ENTRIES() display_ini_entries(zend_module)
#define REGISTER_INI_DISPLAYER(name, displayer) zend_ini_register_displayer((name), sizeof(name), displayer)
#define REGISTER_INI_BOOLEAN(name) REGISTER_INI_DISPLAYER(name, zend_ini_boolean_displayer_cb)
/* Standard message handlers */
ZEND_API ZEND_INI_MH(OnUpdateBool);
ZEND_API ZEND_INI_MH(OnUpdateInt);
ZEND_API ZEND_INI_MH(OnUpdateReal);
ZEND_API ZEND_INI_MH(OnUpdateString);
ZEND_API ZEND_INI_MH(OnUpdateStringUnempty);
#define ZEND_INI_DISPLAY_ORIG 1
#define ZEND_INI_DISPLAY_ACTIVE 2
#define ZEND_INI_STAGE_STARTUP (1<<0)
#define ZEND_INI_STAGE_SHUTDOWN (1<<1)
#define ZEND_INI_STAGE_ACTIVATE (1<<2)
#define ZEND_INI_STAGE_DEACTIVATE (1<<3)
#define ZEND_INI_STAGE_RUNTIME (1<<4)
/* INI parsing engine */
typedef void (*zend_ini_parser_cb_t)(zval *arg1, zval *arg2, int callback_type, void *arg);
int zend_parse_ini_file(zend_file_handle *fh, zend_bool unbuffered_errors, zend_ini_parser_cb_t ini_parser_cb, void *arg);
#define ZEND_INI_PARSER_ENTRY 1
#define ZEND_INI_PARSER_SECTION 2
typedef struct _zend_ini_parser_param {
zend_ini_parser_cb_t ini_parser_cb;
void *arg;
} zend_ini_parser_param;
#endif /* ZEND_INI_H */
-236
View File
@@ -1,236 +0,0 @@
%{
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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. |
+----------------------------------------------------------------------+
| Author: Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#define DEBUG_CFG_PARSER 0
#include "zend.h"
#include "zend_API.h"
#include "zend_ini.h"
#include "zend_constants.h"
#include "zend_ini_scanner.h"
#include "zend_extensions.h"
#if WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winbase.h>
#endif
#define YYSTYPE zval
#ifdef ZTS
#define YYPARSE_PARAM tsrm_ls
#define YYLEX_PARAM tsrm_ls
#endif
#define ZEND_INI_PARSER_CB (CG(ini_parser_param))->ini_parser_cb
#define ZEND_INI_PARSER_ARG (CG(ini_parser_param))->arg
int ini_lex(zval *ini_lval TSRMLS_DC);
#ifdef ZTS
int ini_parse(void *arg);
#else
int ini_parse(void);
#endif
zval yylval;
#ifndef ZTS
extern int ini_lex(zval *ini_lval TSRMLS_DC);
extern FILE *ini_in;
extern int ini_lineno;
extern void init_cfg_scanner(void);
#endif
void zend_ini_do_op(char type, zval *result, zval *op1, zval *op2)
{
int i_result;
int i_op1, i_op2;
char str_result[MAX_LENGTH_OF_LONG];
i_op1 = atoi(op1->value.str.val);
free(op1->value.str.val);
if (op2) {
i_op2 = atoi(op2->value.str.val);
free(op2->value.str.val);
} else {
i_op2 = 0;
}
switch (type) {
case '|':
i_result = i_op1 | i_op2;
break;
case '&':
i_result = i_op1 & i_op2;
break;
case '~':
i_result = ~i_op1;
break;
case '!':
i_result = !i_op1;
break;
default:
i_result = 0;
break;
}
result->value.str.len = zend_sprintf(str_result, "%d", i_result);
result->value.str.val = (char *) malloc(result->value.str.len+1);
memcpy(result->value.str.val, str_result, result->value.str.len);
result->value.str.val[result->value.str.len] = 0;
result->type = IS_STRING;
}
void zend_ini_get_constant(zval *result, zval *name)
{
zval z_constant;
TSRMLS_FETCH();
if (zend_get_constant(name->value.str.val, name->value.str.len, &z_constant TSRMLS_CC)) {
/* z_constant is emalloc()'d */
convert_to_string(&z_constant);
result->value.str.val = zend_strndup(z_constant.value.str.val, z_constant.value.str.len);
result->value.str.len = z_constant.value.str.len;
result->type = z_constant.type;
zval_dtor(&z_constant);
free(name->value.str.val);
} else {
*result = *name;
}
}
static void ini_error(char *str)
{
char *error_buf;
int error_buf_len;
char *currently_parsed_filename;
TSRMLS_FETCH();
currently_parsed_filename = zend_ini_scanner_get_filename(TSRMLS_C);
error_buf_len = 128+strlen(currently_parsed_filename); /* should be more than enough */
error_buf = (char *) emalloc(error_buf_len);
sprintf(error_buf, "Error parsing %s on line %d\n", currently_parsed_filename, zend_ini_scanner_get_lineno(TSRMLS_C));
if (CG(ini_parser_unbuffered_errors)) {
#ifdef PHP_WIN32
MessageBox(NULL, error_buf, "PHP Error", MB_OK|MB_TOPMOST|0x00200000L);
#else
fprintf(stderr, "PHP: %s", error_buf);
#endif
} else {
zend_error(E_CORE_WARNING, error_buf);
}
efree(error_buf);
}
int zend_parse_ini_file(zend_file_handle *fh, zend_bool unbuffered_errors, zend_ini_parser_cb_t ini_parser_cb, void *arg)
{
int retval;
zend_ini_parser_param ini_parser_param;
TSRMLS_FETCH();
ini_parser_param.ini_parser_cb = ini_parser_cb;
ini_parser_param.arg = arg;
CG(ini_parser_param) = &ini_parser_param;
if (zend_ini_open_file_for_scanning(fh TSRMLS_CC)==FAILURE) {
return FAILURE;
}
CG(ini_parser_unbuffered_errors) = unbuffered_errors;
retval = ini_parse(TSRMLS_C);
zend_ini_close_file(fh TSRMLS_CC);
if (retval==0) {
return SUCCESS;
} else {
return FAILURE;
}
}
%}
%pure_parser
%token TC_STRING
%token TC_ENCAPSULATED_STRING
%token SECTION
%token CFG_TRUE
%token CFG_FALSE
%left '|' '&'
%right '~' '!'
%%
statement_list:
statement_list statement
| /* empty */
;
statement:
TC_STRING '=' string_or_value {
#if DEBUG_CFG_PARSER
printf("'%s' = '%s'\n", $1.value.str.val, $3.value.str.val);
#endif
ZEND_INI_PARSER_CB(&$1, &$3, ZEND_INI_PARSER_ENTRY, ZEND_INI_PARSER_ARG);
free($1.value.str.val);
free($3.value.str.val);
}
| TC_STRING { ZEND_INI_PARSER_CB(&$1, NULL, ZEND_INI_PARSER_ENTRY, ZEND_INI_PARSER_ARG); free($1.value.str.val); }
| SECTION { ZEND_INI_PARSER_CB(&$1, NULL, ZEND_INI_PARSER_SECTION, ZEND_INI_PARSER_ARG); free($1.value.str.val); }
| '\n'
;
string_or_value:
expr { $$ = $1; }
| TC_ENCAPSULATED_STRING { $$ = $1; }
| CFG_TRUE { $$ = $1; }
| CFG_FALSE { $$ = $1; }
| '\n' { $$.value.str.val = strdup(""); $$.value.str.len=0; $$.type = IS_STRING; }
| '\0' { $$.value.str.val = strdup(""); $$.value.str.len=0; $$.type = IS_STRING; }
;
expr:
constant_string { $$ = $1; }
| expr '|' expr { zend_ini_do_op('|', &$$, &$1, &$3); }
| expr '&' expr { zend_ini_do_op('&', &$$, &$1, &$3); }
| '~' expr { zend_ini_do_op('~', &$$, &$2, NULL); }
| '!' expr { zend_ini_do_op('!', &$$, &$2, NULL); }
| '(' expr ')' { $$ = $2; }
;
constant_string:
TC_STRING { zend_ini_get_constant(&$$, &$1); }
;
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
*/
-12
View File
@@ -1,12 +0,0 @@
#ifndef _ZEND_INI_SCANNER_H
#define _ZEND_INI_SCANNER_H
BEGIN_EXTERN_C()
int zend_ini_scanner_get_lineno(TSRMLS_D);
char *zend_ini_scanner_get_filename(TSRMLS_D);
int zend_ini_open_file_for_scanning(zend_file_handle *fh TSRMLS_DC);
void zend_ini_close_file(zend_file_handle *fh TSRMLS_DC);
int ini_lex(zval *ini_lval TSRMLS_DC);
END_EXTERN_C()
#endif /* _ZEND_INI_SCANNER_H */
-228
View File
@@ -1,228 +0,0 @@
%{
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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. |
+----------------------------------------------------------------------+
| Author: Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
#define yyleng SCNG(yy_leng)
#define yytext SCNG(yy_text)
#define yytext_ptr SCNG(yy_text)
#define yyin SCNG(yy_in)
#define yyout SCNG(yy_out)
#define yy_last_accepting_state SCNG(_yy_last_accepting_state)
#define yy_last_accepting_cpos SCNG(_yy_last_accepting_cpos)
#define yy_more_flag SCNG(_yy_more_flag)
#define yy_more_len SCNG(_yy_more_len)
#include <errno.h>
#include "zend.h"
#include "zend_globals.h"
#include "zend_ini_parser.h"
#include "zend_ini_scanner.h"
#undef YYSTYPE
#define YYSTYPE zval
#define YY_DECL int ini_lex(zval *ini_lval TSRMLS_DC)
/* Globals Macros */
#define SCNG INI_SCNG
#ifdef ZTS
ZEND_API ts_rsrc_id ini_scanner_globals_id;
#else
ZEND_API zend_scanner_globals ini_scanner_globals;
#endif
static char *ini_filename;
void init_ini_scanner()
{
ini_lineno=1;
}
int zend_ini_scanner_get_lineno(TSRMLS_D)
{
return ini_lineno;
}
char *zend_ini_scanner_get_filename(TSRMLS_D)
{
return ini_filename;
}
int zend_ini_open_file_for_scanning(zend_file_handle *fh TSRMLS_DC)
{
FILE *fp;
switch (fh->type) {
case ZEND_HANDLE_FP:
fp = fh->handle.fp;
break;
case ZEND_HANDLE_FILENAME:
fp = zend_fopen(fh->filename, NULL);
fh->type = ZEND_HANDLE_FP;
break;
default:
return FAILURE;
}
init_ini_scanner();
yyin = fp;
yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE TSRMLS_CC) TSRMLS_CC);
ini_filename = fh->filename;
return SUCCESS;
}
void zend_ini_close_file(zend_file_handle *fh TSRMLS_DC)
{
switch (fh->type) {
case ZEND_HANDLE_FP:
fclose(fh->handle.fp);
break;
}
}
%}
NEWLINE ("\r"|"\n"|"\r\n")
%option noyywrap
%option yylineno
%%
<INITIAL>[ ]*("true"|"on"|"yes")[ ]* {
ini_lval->value.str.val = zend_strndup("1", 1);
ini_lval->value.str.len = 1;
ini_lval->type = IS_STRING;
return CFG_TRUE;
}
<INITIAL>[ ]*("false"|"off"|"no"|"none")[ ]* {
ini_lval->value.str.val = zend_strndup("", 0);
ini_lval->value.str.len = 0;
ini_lval->type = IS_STRING;
return CFG_FALSE;
}
<INITIAL>[[][^[]+[\]][ ]*{NEWLINE}? {
/* SECTION */
/* eat trailng and spaces ] */
while (yyleng>0 && (yytext[yyleng-1]=='\n' || yytext[yyleng-1]=='\r' || yytext[yyleng-1]==']' || yytext[yyleng-1]==' ')) {
yyleng--;
yytext[yyleng]=0;
}
/* eat leading [ */
yytext++;
yyleng--;
ini_lval->value.str.val = zend_strndup(yytext, yyleng);
ini_lval->value.str.len = yyleng;
ini_lval->type = IS_STRING;
return SECTION;
}
<INITIAL>["][^\n\r"]*["] {
/* ENCAPSULATED TC_STRING */
/* eat trailing " */
yytext[yyleng-1]=0;
/* eat leading " */
yytext++;
ini_lval->value.str.val = zend_strndup(yytext, yyleng - 2);
ini_lval->value.str.len = yyleng - 2;
ini_lval->type = IS_STRING;
return TC_ENCAPSULATED_STRING;
}
<INITIAL>[&|~()!] {
return yytext[0];
}
<INITIAL>[^=\n\r\t;|&~()!"]+ {
/* STRING */
register int i;
/* eat trailing whitespace */
for (i=yyleng-1; i>=0; i--) {
if (yytext[i]==' ' || yytext[i]=='\t') {
yytext[i]=0;
yyleng--;
} else {
break;
}
}
/* eat leading whitespace */
while (yytext[0]) {
if (yytext[0]==' ' || yytext[0]=='\t') {
yytext++;
yyleng--;
} else {
break;
}
}
if (yyleng!=0) {
ini_lval->value.str.val = zend_strndup(yytext, yyleng);
ini_lval->value.str.len = yyleng;
ini_lval->type = IS_STRING;
return TC_STRING;
} else {
/* whitespace */
}
}
<INITIAL>[=\n] {
return yytext[0];
}
<INITIAL>{NEWLINE} {
return '\n';
}
<INITIAL>[;][^\r\n]*{NEWLINE}? {
/* comment */
return '\n';
}
<INITIAL>[ \t] {
/* eat whitespace */
}
<INITIAL>. {
#if DEBUG
php_error(E_NOTICE,"Unexpected character on line %d: '%s' (ASCII %d)\n", yylineno, yytext, yytext[0]);
#endif
}
<<EOF>> {
yy_delete_buffer(YY_CURRENT_BUFFER TSRMLS_CC);
yyterminate();
}
-15
View File
@@ -1,15 +0,0 @@
#ifndef _ZEND_STDIOSTREAM
#define _ZEND_STDIOSTREAM
#if defined(ZTS) && !defined(HAVE_CLASS_ISTDIOSTREAM)
class istdiostream : public istream
{
private:
stdiobuf _file;
public:
istdiostream (FILE* __f) : istream(), _file(__f) { init(&_file); }
stdiobuf* rdbuf()/* const */ { return &_file; }
};
#endif
#endif
-851
View File
@@ -1,851 +0,0 @@
%{
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
/*
* LALR shift/reduce conflicts and how they are resolved:
*
* - 2 shift/reduce conflicts due to the dangeling elseif/else ambiguity. Solved by shift.
* - 1 shift/reduce conflict due to arrays within encapsulated strings. Solved by shift.
* - 1 shift/reduce conflict due to objects within encapsulated strings. Solved by shift.
*
*/
#include "zend_compile.h"
#include "zend.h"
#include "zend_list.h"
#include "zend_globals.h"
#include "zend_API.h"
#define YYERROR_VERBOSE
#define YYSTYPE znode
#ifdef ZTS
# define YYPARSE_PARAM tsrm_ls
# define YYLEX_PARAM tsrm_ls
#endif
%}
%pure_parser
%expect 4
%left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE
%left ','
%left T_LOGICAL_OR
%left T_LOGICAL_XOR
%left T_LOGICAL_AND
%right T_PRINT
%left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL
%left '?' ':'
%left T_BOOLEAN_OR
%left T_BOOLEAN_AND
%left '|'
%left '^'
%left '&'
%nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL
%nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL
%left T_SL T_SR
%left '+' '-' '.'
%left '*' '/' '%'
%right '!' '~' T_INC T_DEC T_INT_CAST T_DOUBLE_CAST T_STRING_CAST T_ARRAY_CAST T_OBJECT_CAST T_BOOL_CAST T_UNSET_CAST '@'
%right '['
%nonassoc T_NEW T_IS_TYPE
%token T_EXIT
%token T_IF
%left T_ELSEIF
%left T_ELSE
%left T_ENDIF
%token T_LNUMBER
%token T_DNUMBER
%token T_STRING
%token T_STRING_VARNAME
%token T_VARIABLE
%token T_NUM_STRING
%token T_INLINE_HTML
%token T_CHARACTER
%token T_BAD_CHARACTER
%token T_ENCAPSED_AND_WHITESPACE
%token T_CONSTANT_ENCAPSED_STRING
%token T_ECHO
%token T_DO
%token T_WHILE
%token T_ENDWHILE
%token T_FOR
%token T_ENDFOR
%token T_FOREACH
%token T_ENDFOREACH
%token T_DECLARE
%token T_ENDDECLARE
%token T_IS_TYPE
%token T_AS
%token T_SWITCH
%token T_ENDSWITCH
%token T_CASE
%token T_DEFAULT
%token T_BREAK
%token T_CONTINUE
%token T_OLD_FUNCTION
%token T_FUNCTION
%token T_CONST
%token T_RETURN
%token T_TRY
%token T_CATCH
%token T_THROW
%token T_USE
%token T_GLOBAL
%token T_STATIC
%token T_PRIVATE
%token T_PROTECTED
%token T_VAR
%token T_UNSET
%token T_ISSET
%token T_EMPTY
%token T_CLASS
%token T_EXTENDS
%token T_OBJECT_OPERATOR
%token T_DOUBLE_ARROW
%token T_LIST
%token T_ARRAY
%token T_CLASS_C
%token T_FUNC_C
%token T_LINE
%token T_FILE
%token T_COMMENT
%token T_ML_COMMENT
%token T_OPEN_TAG
%token T_OPEN_TAG_WITH_ECHO
%token T_CLOSE_TAG
%token T_WHITESPACE
%token T_START_HEREDOC
%token T_END_HEREDOC
%token T_DOLLAR_OPEN_CURLY_BRACES
%token T_CURLY_OPEN
%token T_PAAMAYIM_NEKUDOTAYIM
%token T_IMPORT T_FROM
%% /* Rules */
start:
top_statement_list
;
top_statement_list:
top_statement_list { zend_do_extended_info(TSRMLS_C); } top_statement { HANDLE_INTERACTIVE(); }
| /* empty */
;
top_statement:
statement
| declaration_statement { zend_do_early_binding(TSRMLS_C); }
;
inner_statement_list:
inner_statement_list { zend_do_extended_info(TSRMLS_C); } inner_statement { HANDLE_INTERACTIVE(); }
| /* empty */
;
inner_statement:
statement
| declaration_statement
;
statement:
unticked_statement { zend_do_ticks(TSRMLS_C); }
;
unticked_statement:
'{' inner_statement_list '}'
| T_IF '(' expr ')' { zend_do_if_cond(&$3, &$4 TSRMLS_CC); } statement { zend_do_if_after_statement(&$4, 1 TSRMLS_CC); } elseif_list else_single { zend_do_if_end(TSRMLS_C); }
| T_IF '(' expr ')' ':' { zend_do_if_cond(&$3, &$4 TSRMLS_CC); } inner_statement_list { zend_do_if_after_statement(&$4, 1 TSRMLS_CC); } new_elseif_list new_else_single T_ENDIF ';' { zend_do_if_end(TSRMLS_C); }
| T_WHILE '(' { $1.u.opline_num = get_next_op_number(CG(active_op_array)); } expr ')' { zend_do_while_cond(&$4, &$5 TSRMLS_CC); } while_statement { zend_do_while_end(&$1, &$5 TSRMLS_CC); }
| T_DO { $1.u.opline_num = get_next_op_number(CG(active_op_array)); zend_do_do_while_begin(TSRMLS_C); } statement T_WHILE '(' { $5.u.opline_num = get_next_op_number(CG(active_op_array)); } expr ')' ';' { zend_do_do_while_end(&$1, &$5, &$7 TSRMLS_CC); }
| T_FOR
'('
for_expr
';' { zend_do_free(&$3 TSRMLS_CC); $4.u.opline_num = get_next_op_number(CG(active_op_array)); }
for_expr
';' { zend_do_extended_info(TSRMLS_C); zend_do_for_cond(&$6, &$7 TSRMLS_CC); }
for_expr
')' { zend_do_free(&$9 TSRMLS_CC); zend_do_for_before_statement(&$4, &$7 TSRMLS_CC); }
for_statement { zend_do_for_end(&$7 TSRMLS_CC); }
| T_SWITCH '(' expr ')' { zend_do_switch_cond(&$3 TSRMLS_CC); } switch_case_list { zend_do_switch_end(&$6 TSRMLS_CC); }
| T_BREAK ';' { zend_do_brk_cont(ZEND_BRK, NULL TSRMLS_CC); }
| T_BREAK expr ';' { zend_do_brk_cont(ZEND_BRK, &$2 TSRMLS_CC); }
| T_CONTINUE ';' { zend_do_brk_cont(ZEND_CONT, NULL TSRMLS_CC); }
| T_CONTINUE expr ';' { zend_do_brk_cont(ZEND_CONT, &$2 TSRMLS_CC); }
| T_RETURN ';' { zend_do_return(NULL, 0 TSRMLS_CC); }
| T_RETURN expr_without_variable ';' { zend_do_return(&$2, 0 TSRMLS_CC); }
| T_RETURN variable ';' { zend_do_return(&$2, 1 TSRMLS_CC); }
| T_GLOBAL global_var_list ';'
| T_STATIC static_var_list ';'
| T_ECHO echo_expr_list ';'
| T_INLINE_HTML { zend_do_echo(&$1 TSRMLS_CC); }
| expr ';' { zend_do_free(&$1 TSRMLS_CC); }
| T_USE use_filename ';' { zend_error(E_COMPILE_ERROR,"use: Not yet supported. Please use include_once() or require_once()"); zval_dtor(&$2.u.constant); }
| T_UNSET '(' unset_variables ')' ';'
| T_FOREACH '(' variable T_AS { zend_do_foreach_begin(&$1, &$3, &$2, &$4, 1 TSRMLS_CC); } w_variable foreach_optional_arg ')' { zend_do_foreach_cont(&$6, &$7, &$4 TSRMLS_CC); } foreach_statement { zend_do_foreach_end(&$1, &$2 TSRMLS_CC); }
| T_FOREACH '(' expr_without_variable T_AS { zend_do_foreach_begin(&$1, &$3, &$2, &$4, 0 TSRMLS_CC); } w_variable foreach_optional_arg ')' { zend_do_foreach_cont(&$6, &$7, &$4 TSRMLS_CC); } foreach_statement { zend_do_foreach_end(&$1, &$2 TSRMLS_CC); }
| T_DECLARE { zend_do_declare_begin(TSRMLS_C); } '(' declare_list ')' declare_statement { zend_do_declare_end(TSRMLS_C); }
| ';' /* empty statement */
| T_TRY { zend_do_try(&$1 TSRMLS_CC); } '{' inner_statement_list '}'
T_CATCH '(' catch_or_import_class_entry T_VARIABLE ')' { zend_do_begin_catch(&$1, &$8, &$9, 1 TSRMLS_CC); } '{' inner_statement_list '}' { zend_do_end_catch(&$1 TSRMLS_CC); }
additional_catches
| T_THROW expr ';' { zend_do_throw(&$2 TSRMLS_CC); }
| T_IMPORT { zend_do_begin_import(TSRMLS_C); } import_rule T_FROM catch_or_import_class_entry { zend_do_end_import(&$5 TSRMLS_CC); } ';'
;
import_rule:
'*' { zend_do_import(T_FUNCTION, NULL TSRMLS_CC); zend_do_import(T_CLASS, NULL TSRMLS_CC); zend_do_import(T_CONST, NULL TSRMLS_CC); }
| import_commands
;
import_commands:
import_commands ',' import_command
| import_command
;
import_command:
T_FUNCTION T_STRING { zend_do_import(T_FUNCTION, &$2 TSRMLS_CC); }
| T_CLASS T_STRING { zend_do_import(T_CLASS, &$2 TSRMLS_CC); }
| T_CONST T_STRING { zend_do_import(T_CONST, &$2 TSRMLS_CC); }
| T_FUNCTION '*' { zend_do_import(T_FUNCTION, NULL TSRMLS_CC); }
| T_CLASS '*' { zend_do_import(T_CLASS, NULL TSRMLS_CC); }
| T_CONST '*' { zend_do_import(T_CONST, NULL TSRMLS_CC); }
;
additional_catches:
non_empty_additional_catches
| /* empty */
;
non_empty_additional_catches:
non_empty_additional_catches T_CATCH '(' catch_or_import_class_entry T_VARIABLE ')' { zend_do_begin_catch(&$2, &$4, &$5, 0 TSRMLS_CC); } '{' inner_statement_list '}' { zend_do_end_catch(&$2 TSRMLS_CC); }
| T_CATCH '(' catch_or_import_class_entry T_VARIABLE ')' { zend_do_begin_catch(&$1, &$3, &$4, 0 TSRMLS_CC); } '{' inner_statement_list '}' { zend_do_end_catch(&$1 TSRMLS_CC); }
;
unset_variables:
unset_variable
| unset_variables ',' unset_variable
;
unset_variable:
variable { zend_do_end_variable_parse(BP_VAR_UNSET, 0 TSRMLS_CC); zend_do_unset(&$1 TSRMLS_CC); }
;
use_filename:
T_CONSTANT_ENCAPSED_STRING { $$ = $1; }
| '(' T_CONSTANT_ENCAPSED_STRING ')' { $$ = $2; }
;
declaration_statement:
unticked_declaration_statement { zend_do_ticks(TSRMLS_C); }
;
unticked_declaration_statement:
T_FUNCTION { $1.u.opline_num = CG(zend_lineno); } is_reference T_STRING { zend_do_begin_function_declaration(&$1, &$4, 0, $3.op_type TSRMLS_CC); }
'(' parameter_list ')' '{' inner_statement_list '}' { zend_do_end_function_declaration(&$1 TSRMLS_CC); }
| T_OLD_FUNCTION { $1.u.opline_num = CG(zend_lineno); } is_reference T_STRING { zend_do_begin_function_declaration(&$1, &$4, 0, $3.op_type TSRMLS_CC); }
parameter_list '(' inner_statement_list ')' ';' { zend_do_end_function_declaration(&$1 TSRMLS_CC); }
| T_CLASS declaration_class_name extends_from { zend_do_begin_class_declaration(&$1, &$2, &$3 TSRMLS_CC); } '{' class_statement_list '}' { zend_do_end_class_declaration(&$1 TSRMLS_CC); }
;
extends_from:
/* empty */ { $$.op_type = IS_UNUSED; }
| T_EXTENDS T_STRING { $$ = $2; }
;
declaration_class_name:
| parse_class_name_entry T_STRING { do_fetch_class_name(&$$, &$1, &$2, 0 TSRMLS_CC); }
| T_STRING { $$ = $1; zend_str_tolower($$.u.constant.value.str.val, $$.u.constant.value.str.len); }
;
foreach_optional_arg:
/* empty */ { $$.op_type = IS_UNUSED; }
| T_DOUBLE_ARROW w_variable { $$ = $2; }
;
for_statement:
statement
| ':' inner_statement_list T_ENDFOR ';'
;
foreach_statement:
statement
| ':' inner_statement_list T_ENDFOREACH ';'
;
declare_statement:
statement
| ':' inner_statement_list T_ENDDECLARE ';'
;
declare_list:
T_STRING '=' static_scalar { zend_do_declare_stmt(&$1, &$3 TSRMLS_CC); }
| declare_list ',' T_STRING '=' static_scalar { zend_do_declare_stmt(&$3, &$5 TSRMLS_CC); }
;
switch_case_list:
'{' case_list '}' { $$ = $2; }
| '{' ';' case_list '}' { $$ = $3; }
| ':' case_list T_ENDSWITCH ';' { $$ = $2; }
| ':' ';' case_list T_ENDSWITCH ';' { $$ = $3; }
;
case_list:
/* empty */ { $$.op_type = IS_UNUSED; }
| case_list T_CASE expr case_separator { zend_do_extended_info(TSRMLS_C); zend_do_case_before_statement(&$1, &$2, &$3 TSRMLS_CC); } inner_statement_list { zend_do_case_after_statement(&$$, &$2 TSRMLS_CC); $$.op_type = IS_CONST; }
| case_list T_DEFAULT case_separator { zend_do_extended_info(TSRMLS_C); zend_do_default_before_statement(&$1, &$2 TSRMLS_CC); } inner_statement_list { zend_do_case_after_statement(&$$, &$2 TSRMLS_CC); $$.op_type = IS_CONST; }
;
case_separator:
':'
| ';'
;
while_statement:
statement
| ':' inner_statement_list T_ENDWHILE ';'
;
elseif_list:
/* empty */
| elseif_list T_ELSEIF '(' expr ')' { zend_do_if_cond(&$4, &$5 TSRMLS_CC); } statement { zend_do_if_after_statement(&$5, 0 TSRMLS_CC); }
;
new_elseif_list:
/* empty */
| new_elseif_list T_ELSEIF '(' expr ')' ':' { zend_do_if_cond(&$4, &$5 TSRMLS_CC); } inner_statement_list { zend_do_if_after_statement(&$5, 0 TSRMLS_CC); }
;
else_single:
/* empty */
| T_ELSE statement
;
new_else_single:
/* empty */
| T_ELSE ':' inner_statement_list
;
parameter_list:
non_empty_parameter_list
| /* empty */
;
non_empty_parameter_list:
T_VARIABLE { znode tmp; fetch_simple_variable(&tmp, &$1, 0 TSRMLS_CC); $$.op_type = IS_CONST; $$.u.constant.value.lval=1; $$.u.constant.type=IS_LONG; INIT_PZVAL(&$$.u.constant); zend_do_receive_arg(ZEND_RECV, &tmp, &$$, NULL, BYREF_NONE TSRMLS_CC); }
| '&' T_VARIABLE { znode tmp; fetch_simple_variable(&tmp, &$2, 0 TSRMLS_CC); $$.op_type = IS_CONST; $$.u.constant.value.lval=1; $$.u.constant.type=IS_LONG; INIT_PZVAL(&$$.u.constant); zend_do_receive_arg(ZEND_RECV, &tmp, &$$, NULL, BYREF_FORCE TSRMLS_CC); }
| '&' T_VARIABLE '=' static_scalar { znode tmp; fetch_simple_variable(&tmp, &$2, 0 TSRMLS_CC); $$.op_type = IS_CONST; $$.u.constant.value.lval=1; $$.u.constant.type=IS_LONG; INIT_PZVAL(&$$.u.constant); zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &$$, &$4, BYREF_FORCE TSRMLS_CC); }
| T_CONST T_VARIABLE { znode tmp; fetch_simple_variable(&tmp, &$2, 0 TSRMLS_CC); $$.op_type = IS_CONST; $$.u.constant.value.lval=1; $$.u.constant.type=IS_LONG; INIT_PZVAL(&$$.u.constant); zend_do_receive_arg(ZEND_RECV, &tmp, &$$, NULL, BYREF_NONE TSRMLS_CC); }
| T_VARIABLE '=' static_scalar { znode tmp; fetch_simple_variable(&tmp, &$1, 0 TSRMLS_CC); $$.op_type = IS_CONST; $$.u.constant.value.lval=1; $$.u.constant.type=IS_LONG; INIT_PZVAL(&$$.u.constant); zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &$$, &$3, BYREF_NONE TSRMLS_CC); }
| non_empty_parameter_list ',' T_VARIABLE { znode tmp; fetch_simple_variable(&tmp, &$3, 0 TSRMLS_CC); $$=$1; $$.u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV, &tmp, &$$, NULL, BYREF_NONE TSRMLS_CC); }
| non_empty_parameter_list ',' '&' T_VARIABLE { znode tmp; fetch_simple_variable(&tmp, &$4, 0 TSRMLS_CC); $$=$1; $$.u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV, &tmp, &$$, NULL, BYREF_FORCE TSRMLS_CC); }
| non_empty_parameter_list ',' '&' T_VARIABLE '=' static_scalar { znode tmp; fetch_simple_variable(&tmp, &$4, 0 TSRMLS_CC); $$=$1; $$.u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &$$, &$6, BYREF_FORCE TSRMLS_CC); }
| non_empty_parameter_list ',' T_CONST T_VARIABLE { znode tmp; fetch_simple_variable(&tmp, &$4, 0 TSRMLS_CC); $$=$1; $$.u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV, &tmp, &$$, NULL, BYREF_NONE TSRMLS_CC); }
| non_empty_parameter_list ',' T_VARIABLE '=' static_scalar { znode tmp; fetch_simple_variable(&tmp, &$3, 0 TSRMLS_CC); $$=$1; $$.u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &$$, &$5, BYREF_NONE TSRMLS_CC); }
;
function_call_parameter_list:
non_empty_function_call_parameter_list { $$ = $1; }
| /* empty */ { $$.u.constant.value.lval = 0; }
;
non_empty_function_call_parameter_list:
expr_without_variable { $$.u.constant.value.lval = 1; zend_do_pass_param(&$1, ZEND_SEND_VAL, $$.u.constant.value.lval TSRMLS_CC); }
| variable { $$.u.constant.value.lval = 1; zend_do_pass_param(&$1, ZEND_SEND_VAR, $$.u.constant.value.lval TSRMLS_CC); }
| '&' w_variable { $$.u.constant.value.lval = 1; zend_do_pass_param(&$2, ZEND_SEND_REF, $$.u.constant.value.lval TSRMLS_CC); }
| non_empty_function_call_parameter_list ',' expr_without_variable { $$.u.constant.value.lval=$1.u.constant.value.lval+1; zend_do_pass_param(&$3, ZEND_SEND_VAL, $$.u.constant.value.lval TSRMLS_CC); }
| non_empty_function_call_parameter_list ',' variable { $$.u.constant.value.lval=$1.u.constant.value.lval+1; zend_do_pass_param(&$3, ZEND_SEND_VAR, $$.u.constant.value.lval TSRMLS_CC); }
| non_empty_function_call_parameter_list ',' '&' w_variable { $$.u.constant.value.lval=$1.u.constant.value.lval+1; zend_do_pass_param(&$4, ZEND_SEND_REF, $$.u.constant.value.lval TSRMLS_CC); }
;
global_var_list:
global_var_list ',' global_var { zend_do_fetch_global_or_static_variable(&$3, NULL, ZEND_FETCH_GLOBAL TSRMLS_CC); }
| global_var { zend_do_fetch_global_or_static_variable(&$1, NULL, ZEND_FETCH_GLOBAL TSRMLS_CC); }
;
global_var:
T_VARIABLE { $$ = $1; }
| '$' r_variable { $$ = $2; }
| '$' '{' expr '}' { $$ = $3; }
;
static_var_list:
static_var_list ',' T_VARIABLE { zend_do_fetch_global_or_static_variable(&$3, NULL, ZEND_FETCH_STATIC TSRMLS_CC); }
| static_var_list ',' T_VARIABLE '=' static_scalar { zend_do_fetch_global_or_static_variable(&$3, &$5, ZEND_FETCH_STATIC TSRMLS_CC); }
| T_VARIABLE { zend_do_fetch_global_or_static_variable(&$1, NULL, ZEND_FETCH_STATIC TSRMLS_CC); }
| T_VARIABLE '=' static_scalar { zend_do_fetch_global_or_static_variable(&$1, &$3, ZEND_FETCH_STATIC TSRMLS_CC); }
;
class_statement_list:
class_statement_list class_statement
| /* empty */
;
class_statement:
class_variable_declaration ';'
| class_constant_declaration ';'
| T_FUNCTION { $1.u.opline_num = CG(zend_lineno); } is_reference T_STRING { zend_do_begin_function_declaration(&$1, &$4, 1, $3.op_type TSRMLS_CC); } '('
parameter_list ')' '{' inner_statement_list '}' { zend_do_end_function_declaration(&$1 TSRMLS_CC); }
| T_OLD_FUNCTION { $1.u.opline_num = CG(zend_lineno); } is_reference T_STRING { zend_do_begin_function_declaration(&$1, &$4, 1, $3.op_type TSRMLS_CC); }
parameter_list '(' inner_statement_list ')' ';' { zend_do_end_function_declaration(&$1 TSRMLS_CC); }
| T_CLASS T_STRING extends_from { zend_do_begin_class_declaration(&$1, &$2, &$3 TSRMLS_CC); } '{' class_statement_list '}' { zend_do_end_class_declaration(&$1 TSRMLS_CC); }
;
is_reference:
/* empty */ { $$.op_type = ZEND_RETURN_VAL; }
| '&' { $$.op_type = ZEND_RETURN_REF; }
;
class_variable_declaration:
class_variable_declaration ',' T_VARIABLE { zend_do_declare_property(&$3, NULL, $1.op_type TSRMLS_CC); }
| class_variable_declaration ',' T_VARIABLE '=' static_scalar { zend_do_declare_property(&$3, &$5, $1.op_type TSRMLS_CC); }
| class_declaration_type T_VARIABLE { $$ = $1; zend_do_declare_property(&$2, NULL, $1.op_type TSRMLS_CC); }
| class_declaration_type T_VARIABLE '=' static_scalar { $$ = $1; zend_do_declare_property(&$2, &$4, $1.op_type TSRMLS_CC); }
;
class_declaration_type:
T_VAR { $$.op_type = T_VAR; }
| T_STATIC { $$.op_type = T_STATIC; }
| T_PRIVATE { $$.op_type = T_PRIVATE; }
| T_PROTECTED { $$.op_type = T_PROTECTED; }
;
class_constant_declaration:
| T_CONST ',' T_STRING '=' static_scalar { zend_do_declare_property(&$3, &$5, T_CONST TSRMLS_CC); }
| T_CONST T_STRING '=' static_scalar { zend_do_declare_property(&$2, &$4, T_CONST TSRMLS_CC); }
;
echo_expr_list:
| echo_expr_list ',' expr { zend_do_echo(&$3 TSRMLS_CC); }
| expr { zend_do_echo(&$1 TSRMLS_CC); }
;
for_expr:
/* empty */ { $$.op_type = IS_CONST; $$.u.constant.type = IS_BOOL; $$.u.constant.value.lval = 1; }
| non_empty_for_expr { $$ = $1; }
;
non_empty_for_expr:
non_empty_for_expr ',' { zend_do_free(&$1 TSRMLS_CC); } expr { $$ = $4; }
| expr { $$ = $1; }
;
expr_without_variable:
T_LIST '(' { zend_do_list_init(TSRMLS_C); } assignment_list ')' '=' expr { zend_do_list_end(&$$, &$7 TSRMLS_CC); }
| variable '=' expr { zend_check_writable_variable(&$$); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign(&$$, &$1, &$3 TSRMLS_CC); }
| variable '=' '&' variable { zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(&$$, &$1, &$4 TSRMLS_CC); }
| variable '=' '&' T_NEW new_class_entry { zend_check_writable_variable(&$$); zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&$4, &$5 TSRMLS_CC); } ctor_arguments { zend_do_end_new_object(&$3, &$4, &$7 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(&$$, &$1, &$3 TSRMLS_CC); }
| T_NEW new_class_entry { zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&$1, &$2 TSRMLS_CC); } ctor_arguments { zend_do_end_new_object(&$$, &$1, &$4 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
| variable T_PLUS_EQUAL expr { zend_check_writable_variable(&$$); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_ADD, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_MINUS_EQUAL expr { zend_check_writable_variable(&$$); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SUB, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_MUL_EQUAL expr { zend_check_writable_variable(&$$); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MUL, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_DIV_EQUAL expr { zend_check_writable_variable(&$$); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_DIV, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_CONCAT_EQUAL expr { zend_check_writable_variable(&$$); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_CONCAT, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_MOD_EQUAL expr { zend_check_writable_variable(&$$); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MOD, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_AND_EQUAL expr { zend_check_writable_variable(&$$); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_AND, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_OR_EQUAL expr { zend_check_writable_variable(&$$); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_OR, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_XOR_EQUAL expr { zend_check_writable_variable(&$$); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_XOR, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_SL_EQUAL expr { zend_check_writable_variable(&$$); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SL, &$$, &$1, &$3 TSRMLS_CC); }
| variable T_SR_EQUAL expr { zend_check_writable_variable(&$$); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SR, &$$, &$1, &$3 TSRMLS_CC); }
| rw_variable T_INC { zend_do_post_incdec(&$$, &$1, ZEND_POST_INC TSRMLS_CC); }
| T_INC rw_variable { zend_do_pre_incdec(&$$, &$2, ZEND_PRE_INC TSRMLS_CC); }
| rw_variable T_DEC { zend_do_post_incdec(&$$, &$1, ZEND_POST_DEC TSRMLS_CC); }
| T_DEC rw_variable { zend_do_pre_incdec(&$$, &$2, ZEND_PRE_DEC TSRMLS_CC); }
| expr T_BOOLEAN_OR { zend_do_boolean_or_begin(&$1, &$2 TSRMLS_CC); } expr { zend_do_boolean_or_end(&$$, &$1, &$4, &$2 TSRMLS_CC); }
| expr T_BOOLEAN_AND { zend_do_boolean_and_begin(&$1, &$2 TSRMLS_CC); } expr { zend_do_boolean_and_end(&$$, &$1, &$4, &$2 TSRMLS_CC); }
| expr T_LOGICAL_OR { zend_do_boolean_or_begin(&$1, &$2 TSRMLS_CC); } expr { zend_do_boolean_or_end(&$$, &$1, &$4, &$2 TSRMLS_CC); }
| expr T_LOGICAL_AND { zend_do_boolean_and_begin(&$1, &$2 TSRMLS_CC); } expr { zend_do_boolean_and_end(&$$, &$1, &$4, &$2 TSRMLS_CC); }
| expr T_LOGICAL_XOR expr { zend_do_binary_op(ZEND_BOOL_XOR, &$$, &$1, &$3 TSRMLS_CC); }
| expr '|' expr { zend_do_binary_op(ZEND_BW_OR, &$$, &$1, &$3 TSRMLS_CC); }
| expr '&' expr { zend_do_binary_op(ZEND_BW_AND, &$$, &$1, &$3 TSRMLS_CC); }
| expr '^' expr { zend_do_binary_op(ZEND_BW_XOR, &$$, &$1, &$3 TSRMLS_CC); }
| expr '.' expr { zend_do_binary_op(ZEND_CONCAT, &$$, &$1, &$3 TSRMLS_CC); }
| expr '+' expr { zend_do_binary_op(ZEND_ADD, &$$, &$1, &$3 TSRMLS_CC); }
| expr '-' expr { zend_do_binary_op(ZEND_SUB, &$$, &$1, &$3 TSRMLS_CC); }
| expr '*' expr { zend_do_binary_op(ZEND_MUL, &$$, &$1, &$3 TSRMLS_CC); }
| expr '/' expr { zend_do_binary_op(ZEND_DIV, &$$, &$1, &$3 TSRMLS_CC); }
| expr '%' expr { zend_do_binary_op(ZEND_MOD, &$$, &$1, &$3 TSRMLS_CC); }
| expr T_SL expr { zend_do_binary_op(ZEND_SL, &$$, &$1, &$3 TSRMLS_CC); }
| expr T_SR expr { zend_do_binary_op(ZEND_SR, &$$, &$1, &$3 TSRMLS_CC); }
| '+' expr { $1.u.constant.value.lval=0; $1.u.constant.type=IS_LONG; $1.op_type = IS_CONST; INIT_PZVAL(&$1.u.constant); zend_do_binary_op(ZEND_ADD, &$$, &$1, &$2 TSRMLS_CC); }
| '-' expr { $1.u.constant.value.lval=0; $1.u.constant.type=IS_LONG; $1.op_type = IS_CONST; INIT_PZVAL(&$1.u.constant); zend_do_binary_op(ZEND_SUB, &$$, &$1, &$2 TSRMLS_CC); }
| '!' expr { zend_do_unary_op(ZEND_BOOL_NOT, &$$, &$2 TSRMLS_CC); }
| '~' expr { zend_do_unary_op(ZEND_BW_NOT, &$$, &$2 TSRMLS_CC); }
| expr T_IS_IDENTICAL expr { zend_do_binary_op(ZEND_IS_IDENTICAL, &$$, &$1, &$3 TSRMLS_CC); }
| expr T_IS_NOT_IDENTICAL expr { zend_do_binary_op(ZEND_IS_NOT_IDENTICAL, &$$, &$1, &$3 TSRMLS_CC); }
| expr T_IS_EQUAL expr { zend_do_binary_op(ZEND_IS_EQUAL, &$$, &$1, &$3 TSRMLS_CC); }
| expr T_IS_NOT_EQUAL expr { zend_do_binary_op(ZEND_IS_NOT_EQUAL, &$$, &$1, &$3 TSRMLS_CC); }
| expr '<' expr { zend_do_binary_op(ZEND_IS_SMALLER, &$$, &$1, &$3 TSRMLS_CC); }
| expr T_IS_SMALLER_OR_EQUAL expr { zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &$$, &$1, &$3 TSRMLS_CC); }
| expr '>' expr { zend_do_binary_op(ZEND_IS_SMALLER, &$$, &$3, &$1 TSRMLS_CC); }
| expr T_IS_GREATER_OR_EQUAL expr { zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &$$, &$3, &$1 TSRMLS_CC); }
| expr T_IS_TYPE is_type_expr { zend_do_is_type(&$$, &$1, &$3, 0 TSRMLS_CC); }
| expr T_IS_TYPE T_INT_CAST { zend_do_is_type(&$$, &$1, NULL, IS_LONG TSRMLS_CC); }
| expr T_IS_TYPE T_DOUBLE_CAST { zend_do_is_type(&$$, &$1, NULL, IS_DOUBLE TSRMLS_CC); }
| expr T_IS_TYPE T_STRING_CAST { zend_do_is_type(&$$, &$1, NULL, IS_STRING TSRMLS_CC); }
| expr T_IS_TYPE T_ARRAY_CAST { zend_do_is_type(&$$, &$1, NULL, IS_ARRAY TSRMLS_CC); }
| expr T_IS_TYPE T_OBJECT_CAST { zend_do_is_type(&$$, &$1, NULL, IS_OBJECT TSRMLS_CC); }
| expr T_IS_TYPE T_BOOL_CAST { zend_do_is_type(&$$, &$1, NULL, IS_BOOL TSRMLS_CC); }
| expr T_IS_TYPE T_UNSET_CAST { zend_do_is_type(&$$, &$1, NULL, IS_NULL TSRMLS_CC); }
| '(' expr ')' { $$ = $2; }
| expr '?' { zend_do_begin_qm_op(&$1, &$2 TSRMLS_CC); }
expr ':' { zend_do_qm_true(&$4, &$2, &$5 TSRMLS_CC); }
expr { zend_do_qm_false(&$$, &$7, &$2, &$5 TSRMLS_CC); }
| internal_functions_in_yacc { $$ = $1; }
| T_INT_CAST expr { zend_do_cast(&$$, &$2, IS_LONG TSRMLS_CC); }
| T_DOUBLE_CAST expr { zend_do_cast(&$$, &$2, IS_DOUBLE TSRMLS_CC); }
| T_STRING_CAST expr { zend_do_cast(&$$, &$2, IS_STRING TSRMLS_CC); }
| T_ARRAY_CAST expr { zend_do_cast(&$$, &$2, IS_ARRAY TSRMLS_CC); }
| T_OBJECT_CAST expr { zend_do_cast(&$$, &$2, IS_OBJECT TSRMLS_CC); }
| T_BOOL_CAST expr { zend_do_cast(&$$, &$2, IS_BOOL TSRMLS_CC); }
| T_UNSET_CAST expr { zend_do_cast(&$$, &$2, IS_NULL TSRMLS_CC); }
| T_EXIT exit_expr { zend_do_exit(&$$, &$2 TSRMLS_CC); }
| '@' { zend_do_begin_silence(&$1 TSRMLS_CC); } expr { zend_do_end_silence(&$1 TSRMLS_CC); $$ = $3; }
| scalar { $$ = $1; }
| T_ARRAY '(' array_pair_list ')' { $$ = $3; }
| '`' encaps_list '`' { zend_do_shell_exec(&$$, &$2 TSRMLS_CC); }
| T_PRINT expr { zend_do_print(&$$, &$2 TSRMLS_CC); }
;
function_call:
T_STRING '(' { $2.u.opline_num = zend_do_begin_function_call(&$1 TSRMLS_CC); }
function_call_parameter_list
')' { zend_do_end_function_call(&$1, &$$, &$4, 0, $2.u.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
| parse_class_entry static_or_variable_string '(' { zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_class_member_function_call(&$1, &$2 TSRMLS_CC); }
function_call_parameter_list
')' { zend_do_end_function_call(&$2, &$$, &$5, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
| variable_without_objects '(' { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_dynamic_function_call(&$1 TSRMLS_CC); }
function_call_parameter_list ')'
{ zend_do_end_function_call(&$1, &$$, &$4, 0, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
;
parse_class_entry:
parse_class_entry T_STRING T_PAAMAYIM_NEKUDOTAYIM { do_fetch_class(&$$, &$1, &$2 TSRMLS_CC); }
| T_STRING T_PAAMAYIM_NEKUDOTAYIM { do_fetch_class(&$$, NULL, &$1 TSRMLS_CC); }
;
parse_class_name_entry:
parse_class_name_entry T_STRING T_PAAMAYIM_NEKUDOTAYIM { do_fetch_class_name(&$$, &$1, &$2, 0 TSRMLS_CC); }
| T_STRING T_PAAMAYIM_NEKUDOTAYIM { $$ = $1; zend_str_tolower($$.u.constant.value.str.val, $$.u.constant.value.str.len); }
;
catch_or_import_class_entry:
parse_class_entry T_STRING { do_fetch_class(&$$, &$1, &$2 TSRMLS_CC); }
| T_STRING { do_fetch_class(&$$, NULL, &$1 TSRMLS_CC); }
;
new_class_entry:
parse_class_entry T_STRING { do_fetch_class(&$$, &$1, &$2 TSRMLS_CC); }
| static_or_variable_string { do_fetch_class(&$$, NULL, &$1 TSRMLS_CC); }
;
static_or_variable_string:
T_STRING { $$ = $1; }
| r_variable_without_static_member { $$ = $1; }
;
is_type_expr:
parse_class_entry T_STRING { do_fetch_class(&$$, &$1, &$2 TSRMLS_CC); }
| T_STRING { do_fetch_class(&$$, NULL, &$1 TSRMLS_CC); }
;
exit_expr:
/* empty */ { memset(&$$, 0, sizeof(znode)); $$.op_type = IS_UNUSED; }
| '(' ')' { memset(&$$, 0, sizeof(znode)); $$.op_type = IS_UNUSED; }
| '(' expr ')' { $$ = $2; }
;
ctor_arguments:
/* empty */ { $$.u.constant.value.lval=0; }
| '(' function_call_parameter_list ')' { $$ = $2; }
;
common_scalar:
T_LNUMBER { $$ = $1; }
| T_DNUMBER { $$ = $1; }
| T_CONSTANT_ENCAPSED_STRING { $$ = $1; }
| T_LINE { $$ = $1; }
| T_FILE { $$ = $1; }
| T_CLASS_C { $$ = $1; }
| T_FUNC_C { $$ = $1; }
;
static_scalar: /* compile-time evaluated scalars */
common_scalar { $$ = $1; }
| T_STRING { zend_do_fetch_constant(&$$, NULL, &$1, ZEND_CT TSRMLS_CC); }
| '+' static_scalar { $$ = $2; }
| '-' static_scalar { zval minus_one; minus_one.type = IS_LONG; minus_one.value.lval = -1; mul_function(&$2.u.constant, &$2.u.constant, &minus_one TSRMLS_CC); $$ = $2; }
| T_ARRAY '(' static_array_pair_list ')' { $$ = $3; $$.u.constant.type = IS_CONSTANT_ARRAY; }
| parse_class_name_entry T_STRING { zend_do_fetch_constant(&$$, &$1, &$2, ZEND_CT TSRMLS_CC); }
;
scalar:
T_STRING { zend_do_fetch_constant(&$$, NULL, &$1, ZEND_RT TSRMLS_CC); }
| T_STRING_VARNAME { $$ = $1; }
| parse_class_entry T_STRING { zend_do_fetch_constant(&$$, &$1, &$2, ZEND_RT TSRMLS_CC); }
| common_scalar { $$ = $1; }
| '"' encaps_list '"' { $$ = $2; }
| '\'' encaps_list '\'' { $$ = $2; }
| T_START_HEREDOC encaps_list T_END_HEREDOC { $$ = $2; zend_do_end_heredoc(TSRMLS_C); }
;
static_array_pair_list:
/* empty */ { $$.op_type = IS_CONST; INIT_PZVAL(&$$.u.constant); array_init(&$$.u.constant); }
| non_empty_static_array_pair_list possible_comma { $$ = $1; }
;
possible_comma:
/* empty */
| ','
;
non_empty_static_array_pair_list:
non_empty_static_array_pair_list ',' static_scalar T_DOUBLE_ARROW static_scalar { zend_do_add_static_array_element(&$$, &$3, &$5); }
| non_empty_static_array_pair_list ',' static_scalar { zend_do_add_static_array_element(&$$, NULL, &$3); }
| static_scalar T_DOUBLE_ARROW static_scalar { $$.op_type = IS_CONST; INIT_PZVAL(&$$.u.constant); array_init(&$$.u.constant); zend_do_add_static_array_element(&$$, &$1, &$3); }
| static_scalar { $$.op_type = IS_CONST; INIT_PZVAL(&$$.u.constant); array_init(&$$.u.constant); zend_do_add_static_array_element(&$$, NULL, &$1); }
;
expr:
r_variable { $$ = $1; }
| expr_without_variable { $$ = $1; }
;
r_variable:
variable { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); $$ = $1; }
;
w_variable:
variable { zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); $$ = $1; }
{ zend_check_writable_variable(&$$); }
;
rw_variable:
variable { zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); $$ = $1; }
{ zend_check_writable_variable(&$$); }
;
r_variable_without_static_member:
variable_without_objects { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); $$ = $1; }
;
variable:
base_variable_without_objects T_OBJECT_OPERATOR { zend_do_push_object(&$1 TSRMLS_CC); }
object_property { zend_do_push_object(&$4 TSRMLS_CC); } method_or_not variable_properties
{ zend_do_pop_object(&$$ TSRMLS_CC); $$.u.EA.type = $1.u.EA.type | ($7.u.EA.type ? $7.u.EA.type : $6.u.EA.type); }
| base_variable_without_objects { $$ = $1; }
;
variable_properties:
variable_properties variable_property { $$.u.EA.type = $2.u.EA.type; }
| /* empty */ { $$.u.EA.type = 0; }
;
variable_property:
T_OBJECT_OPERATOR object_property { zend_do_push_object(&$2 TSRMLS_CC); } method_or_not { $$.u.EA.type = $4.u.EA.type; }
;
method_or_not:
'(' { zend_do_pop_object(&$1 TSRMLS_CC); zend_do_begin_method_call(&$1 TSRMLS_CC); }
function_call_parameter_list ')'
{ zend_do_end_function_call(&$1, &$$, &$3, 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);
zend_do_push_object(&$$ TSRMLS_CC); $$.u.EA.type = ZEND_PARSED_METHOD_CALL; }
| /* empty */ { $$.u.EA.type = ZEND_PARSED_MEMBER; }
;
variable_without_objects:
reference_variable { $$ = $1; }
| simple_indirect_reference reference_variable { zend_do_indirect_references(&$$, &$1, &$2 TSRMLS_CC); }
;
static_member:
parse_class_entry variable_without_objects { $$ = $2; zend_do_fetch_static_member(&$1 TSRMLS_CC); }
;
base_variable_without_objects:
reference_variable { $$ = $1; $$.u.EA.type = ZEND_PARSED_VARIABLE; }
| simple_indirect_reference reference_variable { zend_do_indirect_references(&$$, &$1, &$2 TSRMLS_CC); $$.u.EA.type = ZEND_PARSED_VARIABLE; }
| static_member { $$ = $1; $$.u.EA.type = ZEND_PARSED_STATIC_MEMBER; }
| function_call { zend_do_begin_variable_parse(TSRMLS_C); $$ = $1; $$.u.EA.type = ZEND_PARSED_FUNCTION_CALL; }
;
reference_variable:
reference_variable '[' dim_offset ']' { fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); }
| reference_variable '{' expr '}' { fetch_string_offset(&$$, &$1, &$3 TSRMLS_CC); }
| compound_variable { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&$$, &$1, 1 TSRMLS_CC); }
;
compound_variable:
T_VARIABLE { $$ = $1; }
| '$' '{' expr '}' { $$ = $3; }
;
dim_offset:
/* empty */ { $$.op_type = IS_UNUSED; }
| expr { $$ = $1; }
;
object_property:
object_dim_list { $$ = $1; }
| variable_without_objects { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); } { znode tmp_znode; zend_do_pop_object(&tmp_znode TSRMLS_CC); zend_do_fetch_property(&$$, &tmp_znode, &$1 TSRMLS_CC);}
;
object_dim_list:
object_dim_list '[' dim_offset ']' { fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); }
| object_dim_list '{' expr '}' { fetch_string_offset(&$$, &$1, &$3 TSRMLS_CC); }
| variable_name { znode tmp_znode; zend_do_pop_object(&tmp_znode TSRMLS_CC); zend_do_fetch_property(&$$, &tmp_znode, &$1 TSRMLS_CC);}
;
variable_name:
T_STRING { $$ = $1; }
| '{' expr '}' { $$ = $2; }
;
simple_indirect_reference:
'$' { $$.u.constant.value.lval = 1; }
| simple_indirect_reference '$' { $$.u.constant.value.lval++; }
;
assignment_list:
assignment_list ',' assignment_list_element
| assignment_list_element
;
assignment_list_element:
variable { zend_do_add_list_element(&$1 TSRMLS_CC); }
| T_LIST '(' { zend_do_new_list_begin(TSRMLS_C); } assignment_list ')' { zend_do_new_list_end(TSRMLS_C); }
| /* empty */ { zend_do_add_list_element(NULL TSRMLS_CC); }
;
array_pair_list:
/* empty */ { zend_do_init_array(&$$, NULL, NULL, 0 TSRMLS_CC); }
| non_empty_array_pair_list possible_comma { $$ = $1; }
;
non_empty_array_pair_list:
non_empty_array_pair_list ',' expr T_DOUBLE_ARROW expr { zend_do_add_array_element(&$$, &$5, &$3, 0 TSRMLS_CC); }
| non_empty_array_pair_list ',' expr { zend_do_add_array_element(&$$, &$3, NULL, 0 TSRMLS_CC); }
| expr T_DOUBLE_ARROW expr { zend_do_init_array(&$$, &$3, &$1, 0 TSRMLS_CC); }
| expr { zend_do_init_array(&$$, &$1, NULL, 0 TSRMLS_CC); }
| non_empty_array_pair_list ',' expr T_DOUBLE_ARROW '&' w_variable { zend_do_add_array_element(&$$, &$6, &$3, 1 TSRMLS_CC); }
| non_empty_array_pair_list ',' '&' w_variable { zend_do_add_array_element(&$$, &$4, NULL, 1 TSRMLS_CC); }
| expr T_DOUBLE_ARROW '&' w_variable { zend_do_init_array(&$$, &$4, &$1, 1 TSRMLS_CC); }
| '&' w_variable { zend_do_init_array(&$$, &$2, NULL, 1 TSRMLS_CC); }
;
encaps_list:
encaps_list encaps_var { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_add_variable(&$$, &$1, &$2 TSRMLS_CC); }
| encaps_list T_STRING { zend_do_add_string(&$$, &$1, &$2 TSRMLS_CC); }
| encaps_list T_NUM_STRING { zend_do_add_string(&$$, &$1, &$2 TSRMLS_CC); }
| encaps_list T_ENCAPSED_AND_WHITESPACE { zend_do_add_string(&$$, &$1, &$2 TSRMLS_CC); }
| encaps_list T_CHARACTER { zend_do_add_char(&$$, &$1, &$2 TSRMLS_CC); }
| encaps_list T_BAD_CHARACTER { zend_do_add_string(&$$, &$1, &$2 TSRMLS_CC); }
| encaps_list '[' { $2.u.constant.value.lval = (long) '['; zend_do_add_char(&$$, &$1, &$2 TSRMLS_CC); }
| encaps_list ']' { $2.u.constant.value.lval = (long) ']'; zend_do_add_char(&$$, &$1, &$2 TSRMLS_CC); }
| encaps_list '{' { $2.u.constant.value.lval = (long) '{'; zend_do_add_char(&$$, &$1, &$2 TSRMLS_CC); }
| encaps_list '}' { $2.u.constant.value.lval = (long) '}'; zend_do_add_char(&$$, &$1, &$2 TSRMLS_CC); }
| encaps_list T_OBJECT_OPERATOR { znode tmp; $2.u.constant.value.lval = (long) '-'; zend_do_add_char(&tmp, &$1, &$2 TSRMLS_CC); $2.u.constant.value.lval = (long) '>'; zend_do_add_char(&$$, &tmp, &$2 TSRMLS_CC); }
| /* empty */ { zend_do_init_string(&$$ TSRMLS_CC); }
;
encaps_var:
T_VARIABLE { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&$$, &$1, 1 TSRMLS_CC); }
| T_VARIABLE '[' { zend_do_begin_variable_parse(TSRMLS_C); } encaps_var_offset ']' { fetch_array_begin(&$$, &$1, &$4 TSRMLS_CC); }
| T_VARIABLE T_OBJECT_OPERATOR T_STRING { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&$2, &$1, 1 TSRMLS_CC); zend_do_fetch_property(&$$, &$2, &$3 TSRMLS_CC); }
| T_DOLLAR_OPEN_CURLY_BRACES expr '}' { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&$$, &$2, 1 TSRMLS_CC); }
| T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '[' expr ']' '}' { zend_do_begin_variable_parse(TSRMLS_C); fetch_array_begin(&$$, &$2, &$4 TSRMLS_CC); }
| T_CURLY_OPEN variable '}' { $$ = $2; }
;
encaps_var_offset:
T_STRING { $$ = $1; }
| T_NUM_STRING { $$ = $1; }
| T_VARIABLE { fetch_simple_variable(&$$, &$1, 1 TSRMLS_CC); }
;
internal_functions_in_yacc:
T_ISSET '(' isset_variables ')' { $$ = $3; }
| T_EMPTY '(' variable ')' { zend_do_isset_or_isempty(ZEND_ISEMPTY, &$$, &$3 TSRMLS_CC); }
| T_INCLUDE expr { zend_do_include_or_eval(ZEND_INCLUDE, &$$, &$2 TSRMLS_CC); }
| T_INCLUDE_ONCE expr { zend_do_include_or_eval(ZEND_INCLUDE_ONCE, &$$, &$2 TSRMLS_CC); }
| T_EVAL '(' expr ')' { zend_do_include_or_eval(ZEND_EVAL, &$$, &$3 TSRMLS_CC); }
| T_REQUIRE expr { zend_do_include_or_eval(ZEND_REQUIRE, &$$, &$2 TSRMLS_CC); }
| T_REQUIRE_ONCE expr { zend_do_include_or_eval(ZEND_REQUIRE_ONCE, &$$, &$2 TSRMLS_CC); }
;
isset_variables:
variable { zend_do_isset_or_isempty(ZEND_ISSET, &$$, &$1 TSRMLS_CC); }
| isset_variables ',' { zend_do_boolean_and_begin(&$1, &$2 TSRMLS_CC); } variable { znode tmp; zend_do_isset_or_isempty(ZEND_ISSET, &tmp, &$4 TSRMLS_CC); zend_do_boolean_and_end(&$$, &$1, &tmp, &$2 TSRMLS_CC); }
;
%%
-41
View File
@@ -1,41 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_SCANNER_H
#define ZEND_SCANNER_H
typedef struct _zend_lex_state {
YY_BUFFER_STATE buffer_state;
int state;
FILE *in;
uint lineno;
char *filename;
} zend_lex_state;
void zend_fatal_scanner_error(char *);
BEGIN_EXTERN_C()
int zend_compare_file_handles(zend_file_handle *fh1, zend_file_handle *fh2);
ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC);
ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC);
ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_DC);
END_EXTERN_C()
#endif
File diff suppressed because it is too large. Load diff
-368
View File
@@ -1,368 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
/* resource lists */
#include "zend.h"
#include "zend_list.h"
#include "zend_API.h"
#include "zend_globals.h"
ZEND_API int le_index_ptr;
/* true global */
static HashTable list_destructors;
ZEND_API int zend_list_insert(void *ptr, int type)
{
int index;
zend_rsrc_list_entry le;
TSRMLS_FETCH();
le.ptr=ptr;
le.type=type;
le.refcount=1;
index = zend_hash_next_free_element(&EG(regular_list));
zend_hash_index_update(&EG(regular_list), index, (void *) &le, sizeof(zend_rsrc_list_entry), NULL);
return index;
}
ZEND_API int _zend_list_delete(int id TSRMLS_DC)
{
zend_rsrc_list_entry *le;
if (zend_hash_index_find(&EG(regular_list), id, (void **) &le)==SUCCESS) {
/* printf("del(%d): %d->%d\n", id, le->refcount, le->refcount-1); */
if (--le->refcount<=0) {
return zend_hash_index_del(&EG(regular_list), id);
} else {
return SUCCESS;
}
} else {
return FAILURE;
}
}
ZEND_API void *_zend_list_find(int id, int *type TSRMLS_DC)
{
zend_rsrc_list_entry *le;
if (zend_hash_index_find(&EG(regular_list), id, (void **) &le)==SUCCESS) {
*type = le->type;
return le->ptr;
} else {
*type = -1;
return NULL;
}
}
ZEND_API int _zend_list_addref(int id TSRMLS_DC)
{
zend_rsrc_list_entry *le;
if (zend_hash_index_find(&EG(regular_list), id, (void **) &le)==SUCCESS) {
/* printf("add(%d): %d->%d\n", id, le->refcount, le->refcount+1); */
le->refcount++;
return SUCCESS;
} else {
return FAILURE;
}
}
ZEND_API int zend_register_resource(zval *rsrc_result, void *rsrc_pointer, int rsrc_type)
{
int rsrc_id;
rsrc_id = zend_list_insert(rsrc_pointer, rsrc_type);
if (rsrc_result) {
rsrc_result->value.lval = rsrc_id;
rsrc_result->type = IS_RESOURCE;
}
return rsrc_id;
}
ZEND_API void *zend_fetch_resource(zval **passed_id TSRMLS_DC, int default_id, char *resource_type_name, int *found_resource_type, int num_resource_types, ...)
{
int id;
int actual_resource_type;
void *resource;
va_list resource_types;
int i;
if (default_id==-1) { /* use id */
if (!passed_id) {
if (resource_type_name) {
zend_error(E_WARNING, "%s(): no %s resource supplied", get_active_function_name(TSRMLS_C), resource_type_name);
}
return NULL;
} else if ((*passed_id)->type != IS_RESOURCE) {
if (resource_type_name) {
zend_error(E_WARNING, "%s(): supplied argument is not a valid %s resource", get_active_function_name(TSRMLS_C), resource_type_name);
}
return NULL;
}
id = (*passed_id)->value.lval;
} else {
id = default_id;
}
resource = zend_list_find(id, &actual_resource_type);
if (!resource) {
if (resource_type_name) {
zend_error(E_WARNING, "%s(): %d is not a valid %s resource", get_active_function_name(TSRMLS_C), id, resource_type_name);
}
return NULL;
}
va_start(resource_types, num_resource_types);
for (i=0; i<num_resource_types; i++) {
if (actual_resource_type == va_arg(resource_types, int)) {
va_end(resource_types);
if (found_resource_type) {
*found_resource_type = actual_resource_type;
}
return resource;
}
}
va_end(resource_types);
if (resource_type_name) {
zend_error(E_WARNING, "%s(): supplied resource is not a valid %s resource", get_active_function_name(TSRMLS_C), resource_type_name);
}
return NULL;
}
void list_entry_destructor(void *ptr)
{
zend_rsrc_list_entry *le = (zend_rsrc_list_entry *) ptr;
zend_rsrc_list_dtors_entry *ld;
TSRMLS_FETCH();
if (zend_hash_index_find(&list_destructors, le->type, (void **) &ld)==SUCCESS) {
switch (ld->type) {
case ZEND_RESOURCE_LIST_TYPE_STD:
if (ld->list_dtor) {
(ld->list_dtor)(le->ptr);
}
break;
case ZEND_RESOURCE_LIST_TYPE_EX:
if (ld->list_dtor_ex) {
ld->list_dtor_ex(le TSRMLS_CC);
}
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
} else {
zend_error(E_WARNING,"Unknown list entry type in request shutdown (%d)", le->type);
}
}
void plist_entry_destructor(void *ptr)
{
zend_rsrc_list_entry *le = (zend_rsrc_list_entry *) ptr;
zend_rsrc_list_dtors_entry *ld;
TSRMLS_FETCH();
if (zend_hash_index_find(&list_destructors, le->type, (void **) &ld)==SUCCESS) {
switch (ld->type) {
case ZEND_RESOURCE_LIST_TYPE_STD:
if (ld->plist_dtor) {
(ld->plist_dtor)(le->ptr);
}
break;
case ZEND_RESOURCE_LIST_TYPE_EX:
if (ld->plist_dtor_ex) {
ld->plist_dtor_ex(le TSRMLS_CC);
}
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
} else {
zend_error(E_WARNING,"Unknown persistent list entry type in module shutdown (%d)", le->type);
}
}
int zend_init_rsrc_list(TSRMLS_D)
{
if (zend_hash_init(&EG(regular_list), 0, NULL, list_entry_destructor, 0)==SUCCESS) {
EG(regular_list).nNextFreeElement=1; /* we don't want resource id 0 */
return SUCCESS;
} else {
return FAILURE;
}
}
int zend_init_rsrc_plist(TSRMLS_D)
{
return zend_hash_init_ex(&EG(persistent_list), 0, NULL, plist_entry_destructor, 1, 0);
}
void zend_destroy_rsrc_list(HashTable *ht TSRMLS_DC)
{
zend_hash_graceful_reverse_destroy(ht);
}
static int clean_module_resource(zend_rsrc_list_entry *le, int *resource_id TSRMLS_DC)
{
if (le->type == *resource_id) {
return 1;
} else {
return 0;
}
}
static int zend_clean_module_rsrc_dtors_cb(zend_rsrc_list_dtors_entry *ld, int *module_number TSRMLS_DC)
{
if (ld->module_number == *module_number) {
zend_hash_apply_with_argument(&EG(regular_list), (apply_func_arg_t) clean_module_resource, (void *) &(ld->resource_id) TSRMLS_CC);
zend_hash_apply_with_argument(&EG(persistent_list), (apply_func_arg_t) clean_module_resource, (void *) &(ld->resource_id) TSRMLS_CC);
return 1;
} else {
return 0;
}
}
void zend_clean_module_rsrc_dtors(int module_number TSRMLS_DC)
{
zend_hash_apply_with_argument(&list_destructors, (apply_func_arg_t) zend_clean_module_rsrc_dtors_cb, (void *) &module_number TSRMLS_CC);
}
ZEND_API int zend_register_list_destructors(void (*ld)(void *), void (*pld)(void *), int module_number)
{
zend_rsrc_list_dtors_entry lde;
#if 0
printf("Registering destructors %d for module %d\n", list_destructors.nNextFreeElement, module_number);
#endif
lde.list_dtor=(void (*)(void *)) ld;
lde.plist_dtor=(void (*)(void *)) pld;
lde.list_dtor_ex = lde.plist_dtor_ex = NULL;
lde.module_number = module_number;
lde.resource_id = list_destructors.nNextFreeElement;
lde.type = ZEND_RESOURCE_LIST_TYPE_STD;
lde.type_name = NULL;
if (zend_hash_next_index_insert(&list_destructors, (void *) &lde, sizeof(zend_rsrc_list_dtors_entry), NULL)==FAILURE) {
return FAILURE;
}
return list_destructors.nNextFreeElement-1;
}
ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char *type_name, int module_number)
{
zend_rsrc_list_dtors_entry lde;
#if 0
printf("Registering destructors %d for module %d\n", list_destructors.nNextFreeElement, module_number);
#endif
lde.list_dtor = NULL;
lde.plist_dtor = NULL;
lde.list_dtor_ex = ld;
lde.plist_dtor_ex = pld;
lde.module_number = module_number;
lde.resource_id = list_destructors.nNextFreeElement;
lde.type = ZEND_RESOURCE_LIST_TYPE_EX;
lde.type_name = type_name;
if (zend_hash_next_index_insert(&list_destructors, (void *) &lde, sizeof(zend_rsrc_list_dtors_entry), NULL)==FAILURE) {
return FAILURE;
}
return list_destructors.nNextFreeElement-1;
}
ZEND_API int zend_fetch_list_dtor_id(char *type_name)
{
zend_rsrc_list_dtors_entry *lde;
HashPosition pos;
zend_hash_internal_pointer_reset_ex(&list_destructors, &pos);
while(zend_hash_get_current_data_ex(&list_destructors, (void **)&lde, &pos) == SUCCESS) {
if(strcmp(type_name, lde->type_name) == 0) {
#if 0
printf("Found resource id %d for resource type %s\n", (*lde).resource_id, type_name);
#endif
return lde->resource_id;
}
zend_hash_move_forward_ex(&list_destructors, &pos);
}
return 0;
}
int zend_init_rsrc_list_dtors(void)
{
int retval;
retval = zend_hash_init(&list_destructors, 50, NULL, NULL, 1);
list_destructors.nNextFreeElement=1; /* we don't want resource type 0 */
return retval;
}
void zend_destroy_rsrc_list_dtors(void)
{
zend_hash_destroy(&list_destructors);
}
char *zend_rsrc_list_get_rsrc_type(int resource TSRMLS_DC)
{
zend_rsrc_list_dtors_entry *lde;
int rsrc_type;
if (!zend_list_find(resource, &rsrc_type))
return NULL;
if (zend_hash_index_find(&list_destructors, rsrc_type, (void **) &lde)==SUCCESS) {
return lde->type_name;
} else {
return NULL;
}
}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
*/
-111
View File
@@ -1,111 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_LIST_H
#define ZEND_LIST_H
#include "zend_hash.h"
#include "zend_globals.h"
BEGIN_EXTERN_C()
#define ZEND_RESOURCE_LIST_TYPE_STD 1
#define ZEND_RESOURCE_LIST_TYPE_EX 2
typedef struct _zend_rsrc_list_entry {
void *ptr;
int type;
int refcount;
} zend_rsrc_list_entry;
typedef void (*rsrc_dtor_func_t)(zend_rsrc_list_entry *rsrc TSRMLS_DC);
#define ZEND_RSRC_DTOR_FUNC(name) void name(zend_rsrc_list_entry *rsrc TSRMLS_DC)
typedef struct _zend_rsrc_list_dtors_entry {
/* old style destructors */
void (*list_dtor)(void *);
void (*plist_dtor)(void *);
/* new style destructors */
rsrc_dtor_func_t list_dtor_ex;
rsrc_dtor_func_t plist_dtor_ex;
char *type_name;
int module_number;
int resource_id;
unsigned char type;
} zend_rsrc_list_dtors_entry;
#define register_list_destructors(ld, pld) zend_register_list_destructors((void (*)(void *))ld, (void (*)(void *))pld, module_number);
ZEND_API int zend_register_list_destructors(void (*ld)(void *), void (*pld)(void *), int module_number);
ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char *type_name, int module_number);
void list_entry_destructor(void *ptr);
void plist_entry_destructor(void *ptr);
void zend_clean_module_rsrc_dtors(int module_number TSRMLS_DC);
int zend_init_rsrc_list(TSRMLS_D);
int zend_init_rsrc_plist(TSRMLS_D);
void zend_destroy_rsrc_list(HashTable *ht TSRMLS_DC);
int zend_init_rsrc_list_dtors(void);
void zend_destroy_rsrc_list_dtors(void);
ZEND_API int zend_list_insert(void *ptr, int type);
ZEND_API int _zend_list_addref(int id TSRMLS_DC);
ZEND_API int _zend_list_delete(int id TSRMLS_DC);
ZEND_API void *_zend_list_find(int id, int *type TSRMLS_DC);
#define zend_list_addref(id) _zend_list_addref(id TSRMLS_CC)
#define zend_list_delete(id) _zend_list_delete(id TSRMLS_CC)
#define zend_list_find(id, type) _zend_list_find(id, type TSRMLS_CC)
ZEND_API int zend_register_resource(zval *rsrc_result, void *rsrc_pointer, int rsrc_type);
ZEND_API void *zend_fetch_resource(zval **passed_id TSRMLS_DC, int default_id, char *resource_type_name, int *found_resource_type, int num_resource_types, ...);
ZEND_API char *zend_rsrc_list_get_rsrc_type(int resource TSRMLS_DC);
ZEND_API int zend_fetch_list_dtor_id(char *type_name);
extern ZEND_API int le_index_ptr; /* list entry type for index pointers */
#define ZEND_VERIFY_RESOURCE(rsrc) \
if (!rsrc) { \
RETURN_NULL(); \
}
#define ZEND_FETCH_RESOURCE(rsrc, rsrc_type, passed_id, default_id, resource_type_name, resource_type) \
rsrc = (rsrc_type) zend_fetch_resource(passed_id TSRMLS_CC, default_id, resource_type_name, NULL, 1, resource_type); \
ZEND_VERIFY_RESOURCE(rsrc);
#define ZEND_FETCH_RESOURCE2(rsrc, rsrc_type, passed_id, default_id, resource_type_name, resource_type1, resource_type2) \
rsrc = (rsrc_type) zend_fetch_resource(passed_id TSRMLS_CC, default_id, resource_type_name, NULL, 2, resource_type1, resource_type2); \
ZEND_VERIFY_RESOURCE(rsrc);
#define ZEND_REGISTER_RESOURCE(rsrc_result, rsrc_pointer, rsrc_type) \
zend_register_resource(rsrc_result, rsrc_pointer, rsrc_type);
#define ZEND_GET_RESOURCE_TYPE_ID(le_id, le_type_name) \
if (le_id == 0) { \
le_id = zend_fetch_list_dtor_id(le_type_name); \
}
END_EXTERN_C()
#endif
-308
View File
@@ -1,308 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#include "zend.h"
#include "zend_llist.h"
#include "zend_qsort.h"
ZEND_API void zend_llist_init(zend_llist *l, size_t size, llist_dtor_func_t dtor, unsigned char persistent)
{
l->head = NULL;
l->tail = NULL;
l->count = 0;
l->size = size;
l->dtor = dtor;
l->persistent = persistent;
}
ZEND_API void zend_llist_add_element(zend_llist *l, void *element)
{
zend_llist_element *tmp = pemalloc(sizeof(zend_llist_element)+l->size-1, l->persistent);
tmp->prev = l->tail;
tmp->next = NULL;
if (l->tail) {
l->tail->next = tmp;
} else {
l->head = tmp;
}
l->tail = tmp;
memcpy(tmp->data, element, l->size);
++l->count;
}
ZEND_API void zend_llist_prepend_element(zend_llist *l, void *element)
{
zend_llist_element *tmp = pemalloc(sizeof(zend_llist_element)+l->size-1, l->persistent);
tmp->next = l->head;
tmp->prev = NULL;
if (l->head) {
l->head->prev = tmp;
} else {
l->tail = tmp;
}
l->head = tmp;
memcpy(tmp->data, element, l->size);
++l->count;
}
#define DEL_LLIST_ELEMENT(current, l) \
if ((current)->prev) {\
(current)->prev->next = (current)->next;\
} else {\
(l)->head = (current)->next;\
}\
if ((current)->next) {\
(current)->next->prev = (current)->prev;\
} else {\
(l)->tail = (current)->prev;\
}\
if ((l)->dtor) {\
(l)->dtor((current)->data);\
pefree((current), (l)->persistent);\
}\
--l->count;
ZEND_API void zend_llist_del_element(zend_llist *l, void *element, int (*compare)(void *element1, void *element2))
{
zend_llist_element *current=l->head;
zend_llist_element *next;
while (current) {
next = current->next;
if (compare(current->data, element)) {
DEL_LLIST_ELEMENT(current, l);
break;
}
current = next;
}
}
ZEND_API void zend_llist_destroy(zend_llist *l)
{
zend_llist_element *current=l->head, *next;
while (current) {
next = current->next;
if (l->dtor) {
l->dtor(current->data);
}
pefree(current, l->persistent);
current = next;
}
l->count = 0;
}
ZEND_API void zend_llist_clean(zend_llist *l)
{
zend_llist_destroy(l);
l->head = l->tail = NULL;
}
ZEND_API void *zend_llist_remove_tail(zend_llist *l)
{
zend_llist_element *old_tail;
void *data;
if ((old_tail = l->tail)) {
if (l->tail->prev) {
l->tail->prev->next = NULL;
}
data = old_tail->data;
l->tail = l->tail->prev;
if (l->dtor) {
l->dtor(data);
}
pefree(old_tail, l->persistent);
--l->count;
return data;
}
return NULL;
}
ZEND_API void zend_llist_copy(zend_llist *dst, zend_llist *src)
{
zend_llist_element *ptr;
zend_llist_init(dst, src->size, src->dtor, src->persistent);
ptr = src->head;
while (ptr) {
zend_llist_add_element(dst, ptr->data);
ptr = ptr->next;
}
}
ZEND_API void zend_llist_apply_with_del(zend_llist *l, int (*func)(void *data))
{
zend_llist_element *element, *next;
element=l->head;
while (element) {
next = element->next;
if (func(element->data)) {
DEL_LLIST_ELEMENT(element, l);
}
element = next;
}
}
ZEND_API void zend_llist_apply(zend_llist *l, llist_apply_func_t func TSRMLS_DC)
{
zend_llist_element *element;
for (element=l->head; element; element=element->next) {
func(element->data TSRMLS_CC);
}
}
ZEND_API void zend_llist_sort(zend_llist *l, llist_compare_func_t comp_func TSRMLS_DC)
{
size_t i;
zend_llist_element **elements;
zend_llist_element *element, **ptr;
if (l->count <= 0) {
return;
}
elements = (zend_llist_element **) emalloc(l->count * sizeof(zend_llist_element *));
ptr = &elements[0];
for (element=l->head; element; element=element->next) {
*ptr++ = element;
}
zend_qsort(elements, l->count, sizeof(zend_llist_element *), (compare_func_t) comp_func TSRMLS_CC);
l->head = elements[0];
elements[0]->prev = NULL;
for (i = 1; i < l->count; i++) {
elements[i]->prev = elements[i-1];
elements[i-1]->next = elements[i];
}
elements[i-1]->next = NULL;
l->tail = elements[i-1];
efree(elements);
}
ZEND_API void zend_llist_apply_with_argument(zend_llist *l, llist_apply_with_arg_func_t func, void *arg TSRMLS_DC)
{
zend_llist_element *element;
for (element=l->head; element; element=element->next) {
func(element->data, arg TSRMLS_CC);
}
}
ZEND_API void zend_llist_apply_with_arguments(zend_llist *l, llist_apply_with_args_func_t func TSRMLS_DC, int num_args, ...)
{
zend_llist_element *element;
va_list args;
va_start(args, num_args);
for (element=l->head; element; element=element->next) {
func(element->data, num_args, args TSRMLS_CC);
}
va_end(args);
}
ZEND_API int zend_llist_count(zend_llist *l)
{
return l->count;
}
ZEND_API void *zend_llist_get_first_ex(zend_llist *l, zend_llist_position *pos)
{
zend_llist_position *current = pos ? pos : &l->traverse_ptr;
*current = l->head;
if (*current) {
return (*current)->data;
} else {
return NULL;
}
}
ZEND_API void *zend_llist_get_last_ex(zend_llist *l, zend_llist_position *pos)
{
zend_llist_position *current = pos ? pos : &l->traverse_ptr;
*current = l->tail;
if (*current) {
return (*current)->data;
} else {
return NULL;
}
}
ZEND_API void *zend_llist_get_next_ex(zend_llist *l, zend_llist_position *pos)
{
zend_llist_position *current = pos ? pos : &l->traverse_ptr;
if (*current) {
*current = (*current)->next;
if (*current) {
return (*current)->data;
}
}
return NULL;
}
ZEND_API void *zend_llist_get_prev_ex(zend_llist *l, zend_llist_position *pos)
{
zend_llist_position *current = pos ? pos : &l->traverse_ptr;
if (*current) {
*current = (*current)->prev;
if (*current) {
return (*current)->data;
}
}
return NULL;
}
-79
View File
@@ -1,79 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef ZEND_LLIST_H
#define ZEND_LLIST_H
#include <stdlib.h>
typedef struct _zend_llist_element {
struct _zend_llist_element *next;
struct _zend_llist_element *prev;
char data[1]; /* Needs to always be last in the struct */
} zend_llist_element;
typedef void (*llist_dtor_func_t)(void *);
typedef int (*llist_compare_func_t)(const zend_llist_element *, const zend_llist_element * TSRMLS_DC);
typedef void (*llist_apply_with_args_func_t)(void *data, int num_args, va_list args TSRMLS_DC);
typedef void (*llist_apply_with_arg_func_t)(void *data, void *arg TSRMLS_DC);
typedef void (*llist_apply_func_t)(void * TSRMLS_DC);
typedef struct _zend_llist {
zend_llist_element *head;
zend_llist_element *tail;
size_t count;
size_t size;
llist_dtor_func_t dtor;
unsigned char persistent;
zend_llist_element *traverse_ptr;
} zend_llist;
typedef zend_llist_element* zend_llist_position;
BEGIN_EXTERN_C()
ZEND_API void zend_llist_init(zend_llist *l, size_t size, llist_dtor_func_t dtor, unsigned char persistent);
ZEND_API void zend_llist_add_element(zend_llist *l, void *element);
ZEND_API void zend_llist_prepend_element(zend_llist *l, void *element);
ZEND_API void zend_llist_del_element(zend_llist *l, void *element, int (*compare)(void *element1, void *element2));
ZEND_API void zend_llist_destroy(zend_llist *l);
ZEND_API void zend_llist_clean(zend_llist *l);
ZEND_API void *zend_llist_remove_tail(zend_llist *l);
ZEND_API void zend_llist_copy(zend_llist *dst, zend_llist *src);
ZEND_API void zend_llist_apply(zend_llist *l, llist_apply_func_t func TSRMLS_DC);
ZEND_API void zend_llist_apply_with_del(zend_llist *l, int (*func)(void *data));
ZEND_API void zend_llist_apply_with_argument(zend_llist *l, llist_apply_with_arg_func_t func, void *arg TSRMLS_DC);
ZEND_API void zend_llist_apply_with_arguments(zend_llist *l, llist_apply_with_args_func_t func TSRMLS_DC, int num_args, ...);
ZEND_API int zend_llist_count(zend_llist *l);
ZEND_API void zend_llist_sort(zend_llist *l, llist_compare_func_t comp_func TSRMLS_DC);
/* traversal */
ZEND_API void *zend_llist_get_first_ex(zend_llist *l, zend_llist_position *pos);
ZEND_API void *zend_llist_get_last_ex(zend_llist *l, zend_llist_position *pos);
ZEND_API void *zend_llist_get_next_ex(zend_llist *l, zend_llist_position *pos);
ZEND_API void *zend_llist_get_prev_ex(zend_llist *l, zend_llist_position *pos);
#define zend_llist_get_first(l) zend_llist_get_first_ex(l, NULL)
#define zend_llist_get_last(l) zend_llist_get_last_ex(l, NULL)
#define zend_llist_get_next(l) zend_llist_get_next_ex(l, NULL)
#define zend_llist_get_prev(l) zend_llist_get_prev_ex(l, NULL)
END_EXTERN_C()
#endif /* ZEND_LLIST_H */
-322
View File
@@ -1,322 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#include <stdlib.h>
#include <string.h>
#include "zend.h"
#include "zend_mm.h"
#if WIN32|WINNT
# ifndef inline
# define inline __inline
# endif
#endif
#define ZEND_MM_FREE_BLOCK 0
#define ZEND_MM_USED_BLOCK 1
#ifndef MAX
#define MAX(a, b) (((a)>(b))?(a):(b))
#endif
#ifndef ZEND_MM_ALIGNMENT
#define ZEND_MM_ALIGNMENT 8
#define ZEND_MM_ALIGNMENT_LOG2 3
#endif
#define ZEND_MM_ALIGNMENT_MASK ~(ZEND_MM_ALIGNMENT-1)
#define ZEND_MM_BUCKET_INDEX(true_size) (true_size >> ZEND_MM_ALIGNMENT_LOG2)
#define ZEND_MM_GET_FREE_LIST_BUCKET(index, free_list_bucket) \
if (index < ZEND_MM_NUM_BUCKETS) { \
free_list_bucket = &heap->free_buckets[index]; \
} else { \
/* This size doesn't exist */ \
free_list_bucket = &heap->free_buckets[0]; \
}
/* Aligned header size */
#define ZEND_MM_ALIGNED_SIZE(size) ((size + ZEND_MM_ALIGNMENT - 1) & ZEND_MM_ALIGNMENT_MASK)
#define ZEND_MM_ALIGNED_HEADER_SIZE ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_block))
#define ZEND_MM_ALIGNED_FREE_HEADER_SIZE ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_free_block))
#define ZEND_MM_ALIGNED_SEGMENT_SIZE ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_segment))
/* Memory calculations */
#define ZEND_MM_BLOCK_AT(blk, offset) ((zend_mm_block *) (((char *) (blk))+(offset)))
#define ZEND_MM_DATA_OF(p) ((void *) (((char *) (p))+ZEND_MM_ALIGNED_HEADER_SIZE))
#define ZEND_MM_HEADER_OF(blk) ZEND_MM_BLOCK_AT(blk, -(int)ZEND_MM_ALIGNED_HEADER_SIZE)
/* Debug output */
#define ZEND_MM_DEBUG(stmt)
static inline void zend_mm_add_to_free_list(zend_mm_heap *heap, zend_mm_free_block *mm_block)
{
zend_mm_free_block **free_list_bucket;
size_t index = ZEND_MM_BUCKET_INDEX(mm_block->size);
ZEND_MM_GET_FREE_LIST_BUCKET(index, free_list_bucket);
mm_block->next_free_block = *free_list_bucket;
mm_block->prev_free_block = NULL;
*free_list_bucket = mm_block;
if (mm_block->next_free_block) {
mm_block->next_free_block->prev_free_block = mm_block;
}
}
static inline void zend_mm_remove_from_free_list(zend_mm_heap *heap, zend_mm_free_block *mm_block)
{
if (mm_block->prev_free_block) {
mm_block->prev_free_block->next_free_block = mm_block->next_free_block;
} else {
zend_mm_free_block **free_list_bucket;
size_t index = ZEND_MM_BUCKET_INDEX(mm_block->size);
ZEND_MM_GET_FREE_LIST_BUCKET(index, free_list_bucket);
*free_list_bucket = mm_block->next_free_block;
}
if (mm_block->next_free_block) {
mm_block->next_free_block->prev_free_block = mm_block->prev_free_block;
}
}
static inline void zend_mm_create_new_free_block(zend_mm_heap *heap, zend_mm_block *mm_block, size_t true_size)
{
int remaining_size;
zend_mm_free_block *new_free_block;
/* calculate sizes */
remaining_size = mm_block->size - true_size;
if (remaining_size < ZEND_MM_ALIGNED_FREE_HEADER_SIZE) {
/* keep best_fit->size as is, it'll include this extra space */
return;
}
/* prepare new free block */
mm_block->size = true_size;
new_free_block = (zend_mm_free_block *) ZEND_MM_BLOCK_AT(mm_block, mm_block->size);
new_free_block->type = ZEND_MM_FREE_BLOCK;
new_free_block->size = remaining_size;
new_free_block->prev_size = true_size;
/* update the next block's prev_size */
ZEND_MM_BLOCK_AT(new_free_block, new_free_block->size)->prev_size = new_free_block->size;
/* add the new free block to the free list */
zend_mm_add_to_free_list(heap, new_free_block);
return;
}
zend_bool zend_mm_add_memory_block(zend_mm_heap *heap, size_t block_size)
{
/* We need to make sure that block_size is big enough for the minimum segment size */
zend_mm_free_block *mm_block;
zend_mm_block *guard_block;
zend_mm_segment *segment;
/* align block size downwards */
block_size = block_size & ZEND_MM_ALIGNMENT_MASK;
segment = (zend_mm_segment *) malloc(block_size);
if (!segment) {
return 1;
}
/* fprintf(stderr, "Allocating segment %X\n", segment); */
segment->next_segment = heap->segments_list;
heap->segments_list = segment;
block_size -= ZEND_MM_ALIGNED_SEGMENT_SIZE;
mm_block = (zend_mm_free_block *) ((char *) segment + ZEND_MM_ALIGNED_SEGMENT_SIZE);
mm_block->size = block_size - ZEND_MM_ALIGNED_FREE_HEADER_SIZE; /* keep one guard block in the end */
mm_block->type = ZEND_MM_FREE_BLOCK;
mm_block->prev_size = 0; /* Size is always at least ZEND_MM_ALIGNED_HEADER_SIZE big (>0) so 0 is OK */
/* setup guard block */
guard_block = ZEND_MM_BLOCK_AT(mm_block, mm_block->size);
guard_block->type = ZEND_MM_USED_BLOCK;
guard_block->size = ZEND_MM_ALIGNED_FREE_HEADER_SIZE;
guard_block->prev_size = mm_block->size;
ZEND_MM_DEBUG(("Setup guard block at 0x%0.8X\n", guard_block));
zend_mm_add_to_free_list(heap, mm_block);
return 0;
}
/* Notes:
* - This function may alter the block_sizes values to match platform alignment
* - This function does *not* perform sanity checks on the arguments
*/
zend_bool zend_mm_startup(zend_mm_heap *heap, size_t block_size)
{
heap->block_size = block_size;
heap->segments_list = NULL;
memset(heap->free_buckets, 0, sizeof(heap->free_buckets));
return zend_mm_add_memory_block(heap, block_size);
}
void zend_mm_shutdown(zend_mm_heap *heap)
{
zend_mm_segment *segment = heap->segments_list;
zend_mm_segment *prev;
while (segment) {
prev = segment;
segment = segment->next_segment;
/* fprintf(stderr, "Freeing segment %X\n", prev);*/
free(prev);
}
heap->segments_list = NULL;
}
void *zend_mm_alloc(zend_mm_heap *heap, size_t size)
{
size_t true_size;
zend_mm_free_block *p, *best_fit=NULL;
zend_mm_free_block **free_list_bucket;
size_t index;
/* The max() can probably be optimized with an if() which checks more specific cases */
true_size = MAX(ZEND_MM_ALIGNED_SIZE(size)+ZEND_MM_ALIGNED_HEADER_SIZE, ZEND_MM_ALIGNED_FREE_HEADER_SIZE);
index = ZEND_MM_BUCKET_INDEX(true_size);
if (index < ZEND_MM_NUM_BUCKETS) {
ZEND_MM_GET_FREE_LIST_BUCKET(index, free_list_bucket);
while (free_list_bucket != &heap->free_buckets[ZEND_MM_NUM_BUCKETS]) {
if (*free_list_bucket) {
best_fit = *free_list_bucket;
goto zend_mm_finished_searching_for_block;
}
free_list_bucket++;
}
}
for (p = heap->free_buckets[0]; p; p = p->next_free_block) {
if (p->size == true_size) {
best_fit = p;
break;
}
if ((p->size > true_size) && (!best_fit || (best_fit->size > p->size))) { /* better fit */
best_fit = p;
}
}
zend_mm_finished_searching_for_block:
if (!best_fit) {
if (true_size > (heap->block_size - ZEND_MM_ALIGNED_SEGMENT_SIZE - ZEND_MM_ALIGNED_FREE_HEADER_SIZE)) {
/* Make sure we add a memory block which is big enough */
zend_mm_add_memory_block(heap, true_size + ZEND_MM_ALIGNED_SEGMENT_SIZE + ZEND_MM_ALIGNED_FREE_HEADER_SIZE);
} else {
zend_mm_add_memory_block(heap, heap->block_size);
}
return zend_mm_alloc(heap, size);
}
/* mark as used */
best_fit->type = ZEND_MM_USED_BLOCK;
/* remove from free list */
zend_mm_remove_from_free_list(heap, best_fit);
zend_mm_create_new_free_block(heap, (zend_mm_block *) best_fit, true_size);
return ZEND_MM_DATA_OF(best_fit);
}
void zend_mm_free(zend_mm_heap *heap, void *p)
{
zend_mm_block *mm_block = ZEND_MM_HEADER_OF(p);
zend_mm_block *prev_block, *next_block;
if (mm_block->type!=ZEND_MM_USED_BLOCK) {
/* error */
return;
}
next_block = ZEND_MM_BLOCK_AT(mm_block, mm_block->size);
/* merge with previous block if empty */
if (mm_block->prev_size != 0
&& (prev_block=ZEND_MM_BLOCK_AT(mm_block, -(int)mm_block->prev_size))->type == ZEND_MM_FREE_BLOCK) {
zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) prev_block);
prev_block->size += mm_block->size;
mm_block = prev_block;
next_block->prev_size = mm_block->size;
}
/* merge with the next block if empty */
if (next_block->type == ZEND_MM_FREE_BLOCK) {
mm_block->size += next_block->size;
zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) next_block);
next_block = ZEND_MM_BLOCK_AT(mm_block, mm_block->size); /* recalculate */
next_block->prev_size = mm_block->size;
}
mm_block->type = ZEND_MM_FREE_BLOCK;
zend_mm_add_to_free_list(heap, (zend_mm_free_block *) mm_block);
}
void *zend_mm_realloc(zend_mm_heap *heap, void *p, size_t size)
{
zend_mm_block *mm_block = ZEND_MM_HEADER_OF(p);
zend_mm_block *next_block;
size_t true_size = MAX(ZEND_MM_ALIGNED_SIZE(size)+ZEND_MM_ALIGNED_HEADER_SIZE, ZEND_MM_ALIGNED_FREE_HEADER_SIZE);
if (true_size <= mm_block->size) {
zend_mm_create_new_free_block(heap, mm_block, true_size);
/* We don't yet merge this free block with the following one */
return p;
}
next_block = ZEND_MM_BLOCK_AT(mm_block, mm_block->size);
if (next_block->type != ZEND_MM_FREE_BLOCK || (mm_block->size + next_block->size < true_size)) {
void *ptr;
ptr = zend_mm_alloc(heap, size);
memcpy(ptr, p, mm_block->size - ZEND_MM_ALIGNED_HEADER_SIZE);
zend_mm_free(heap, p);
return ptr;
}
zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) next_block);
mm_block->size += next_block->size;
/* update the next block's prev_size */
ZEND_MM_BLOCK_AT(mm_block, mm_block->size)->prev_size = mm_block->size;
zend_mm_create_new_free_block(heap, mm_block, true_size);
return p;
}
-63
View File
@@ -1,63 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef _ZEND_MM_H
#define _ZEND_MM_H
#include <sys/types.h>
#include "zend_types.h"
/* Define this to enable Zend MM */
#define ZEND_MM
/* mm block type */
typedef struct _zend_mm_block {
unsigned int size : 31;
unsigned int type : 1;
size_t prev_size;
} zend_mm_block;
typedef struct _zend_mm_free_block {
unsigned int size : 31;
unsigned int type : 1;
size_t prev_size;
struct _zend_mm_free_block *prev_free_block;
struct _zend_mm_free_block *next_free_block;
} zend_mm_free_block;
typedef struct _zend_mm_segment {
struct _zend_mm_segment *next_segment;
} zend_mm_segment;
#define ZEND_MM_NUM_BUCKETS 64
typedef struct _zend_mm_heap {
zend_mm_segment *segments_list;
size_t block_size;
zend_mm_free_block *free_buckets[ZEND_MM_NUM_BUCKETS];
} zend_mm_heap;
zend_bool zend_mm_startup(zend_mm_heap *heap, size_t block_size);
void zend_mm_shutdown(zend_mm_heap *heap);
void *zend_mm_alloc(zend_mm_heap *heap, size_t size);
void zend_mm_free(zend_mm_heap *heap, void *p);
void *zend_mm_realloc(zend_mm_heap *heap, void *p, size_t size);
#endif /* _ZEND_MM_H */
-88
View File
@@ -1,88 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2002 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 at through the world-wide-web at |
| 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> |
+----------------------------------------------------------------------+
*/
#ifndef MODULES_H
#define MODULES_H
#include "zend.h"
#define INIT_FUNC_ARGS int type, int module_number TSRMLS_DC
#define INIT_FUNC_ARGS_PASSTHRU type, module_number TSRMLS_CC
#define SHUTDOWN_FUNC_ARGS int type, int module_number TSRMLS_DC
#define SHUTDOWN_FUNC_ARGS_PASSTHRU type, module_number TSRMLS_CC
#define ZEND_MODULE_INFO_FUNC_ARGS zend_module_entry *zend_module TSRMLS_DC
#define ZEND_MODULE_INFO_FUNC_ARGS_PASSTHRU zend_module TSRMLS_CC
ZEND_API extern unsigned char first_arg_force_ref[];
ZEND_API extern unsigned char second_arg_force_ref[];
ZEND_API extern unsigned char third_arg_force_ref[];
#define ZEND_MODULE_API_NO 20020429
#ifdef ZTS
#define USING_ZTS 1
#else
#define USING_ZTS 0
#endif
#define STANDARD_MODULE_HEADER sizeof(zend_module_entry), ZEND_MODULE_API_NO, ZEND_DEBUG, USING_ZTS
#define STANDARD_MODULE_PROPERTIES_EX 0, 0, 0, NULL, 0
#define STANDARD_MODULE_PROPERTIES \
NULL, NULL, STANDARD_MODULE_PROPERTIES_EX
#define NO_VERSION_YET NULL
#define MODULE_PERSISTENT 1
#define MODULE_TEMPORARY 2
typedef struct _zend_module_entry zend_module_entry;
struct _zend_module_entry {
unsigned short size;
unsigned int zend_api;
unsigned char zend_debug;
unsigned char zts;
char *name;
zend_function_entry *functions;
int (*module_startup_func)(INIT_FUNC_ARGS);
int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);
int (*request_startup_func)(INIT_FUNC_ARGS);
int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);
void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
char *version;
int (*global_startup_func)(void);
int (*global_shutdown_func)(void);
int globals_id;
int module_started;
unsigned char type;
void *handle;
int module_number;
};
extern ZEND_API HashTable module_registry;
void module_destructor(zend_module_entry *module);
int module_registry_cleanup(zend_module_entry *module TSRMLS_DC);
int module_registry_request_startup(zend_module_entry *module TSRMLS_DC);
#define ZEND_MODULE_DTOR (void (*)(void *)) module_destructor
#endif
View File
Whitespace-only changes.
Loaded 100 of 1698 files, more files were not shown because too many files have changed in this diff. Show more