Compare commits

...
1120 Commits
Author SHA1 Message Date
SVN Migration 67f7a9fe85 This commit was manufactured by cvs2svn to create tag 'php_4_0_5'. 2001-04-30 13:37:23 +00:00
Zeev Suraski da252cabf0 Go with 4.0.5 2001-04-30 13:37:22 +00:00
Sterling Hughes 856356afa2 MFH 2001-04-26 15:07:57 +00:00
Zeev Suraski 0c226da31e RC8 2001-04-26 14:45:10 +00:00
Andi Gutmans e2b1d7c2a0 - Due to popular demand merge the foreach() crash fix. 2001-04-24 15:58:58 +00:00
Chuck Hagenbuch 2611b98a91 MFH: fix crash bug in imap_sort (#9908). 2001-04-24 14:17:41 +00:00
Andrei Zmievski 5b9407dbd6 MFH. 2001-04-24 13:47:32 +00:00
Sascha Schumann df6bb0f431 MFH: Accomodate Apache HTTPD 2.0 API change 2001-04-24 12:58:53 +00:00
Andi Gutmans 3deb77848a - MFH. The only real change here is in ts_free_thread() by nuking a race
- condition. The rest are ws fixes which are a result of copying this from
- the head.
2001-04-24 09:26:43 +00:00
foobar 8a19f55900 MFH 2001-04-23 06:36:51 +00:00
Sascha Schumann b318045e53 Merge thttpd-2.21-related changes into 4.0.5 branch 2001-04-22 14:33:09 +00:00
Harald Radi d818b747aa added ext/com/com.h to PHP_4_0_5 branch 2001-04-22 12:14:44 +00:00
Harald Radi 4f06c73aae merged [com] section from main branch 2001-04-22 11:58:49 +00:00
Harald Radi 1a967de79e merging changes from main branch to fix a memory leak
#sorry for being late, but i was on holiday
2001-04-22 11:57:21 +00:00
Andrei Zmievski 118ae69499 This actually made it in. 2001-04-20 16:55:14 +00:00
Derick Rethans 140720a22e - MFH (bug #8839 again) 2001-04-18 22:15:39 +00:00
Derick Rethans 833813478e - MFH (Bug #8839) 2001-04-18 09:48:38 +00:00
Alexander Feldman 750f87ccce Merged the patch of the buffering patch as it fixes a pretty major bug. 2001-04-17 21:54:29 +00:00
Thies C. Arntzen 86c5460229 @- Fixed crash in pathinfo() 2001-04-13 18:23:07 +00:00
Thies C. Arntzen 8fcc3a3140 MFH - never initialize OCI in OCI_THREADED mode 2001-04-11 15:48:06 +00:00
Jason Greene 70376b4b7c MFH, I have tested this thoroughly. 2001-04-10 22:01:57 +00:00
foobar 4e845e50b0 MFH 2001-04-09 15:47:31 +00:00
foobar 2166451472 Support also old arg_separator directive. 2001-04-06 15:18:52 +00:00
foobar 0cae755c9b MFH 2001-04-06 02:09:43 +00:00
Andi Gutmans d73efa9300 Remove README.BCMATH 2001-04-05 13:22:01 +00:00
Thies C. Arntzen daf8ff05d5 MFH - make postgresql compiel against 6.5.x 2001-04-04 21:51:58 +00:00
Andi Gutmans ee759fdf89 - MFH (Very serious and it looks like the arg_separator will force another
RC)
2001-04-04 16:26:02 +00:00
Andi Gutmans eb08e83c37 - RC6 2001-04-02 21:09:21 +00:00
Anil Madhavapeddy 502ca85b9c MFH, rev 1.77 2001-04-02 16:52:13 +00:00
Anil Madhavapeddy af08d51f24 MFH, rev 1.53 2001-04-02 16:48:29 +00:00
Andrei Zmievski c1af6dec32 MFH 2001-04-02 16:12:06 +00:00
foobar 1793776609 MFH 2001-04-02 09:07:22 +00:00
Zeev Suraski 2257654b4f YARC 2001-04-01 16:30:22 +00:00
Sebastian Bergmann e51346cec2 Fixed some glitches in NEWS. (Yes, you may call me pedantic :-) 2001-04-01 14:33:29 +00:00
Zeev Suraski cf52476866 MFH - header handling with output buffering 2001-03-31 22:54:07 +00:00
Zeev Suraski 95be023542 Fix pgsql_set_Default_link() 2001-03-30 15:04:18 +00:00
Zeev Suraski e803bda938 Revert all PostgreSQL patches that were in the branch... 2001-03-30 14:57:02 +00:00
Romolo Manfredini d7c3cd60be pg_close was not closing the connection, making impossible to reopen it. Pls insert in 4.0.5 2001-03-30 07:36:21 +00:00
Zeev Suraski 00ff97638e Yes, RC4 is here too. RC3 had a broken ZTS build. 2001-03-28 23:23:06 +00:00
foobar e4c41cdeb2 MFH 2001-03-28 23:19:51 +00:00
Zeev Suraski ee32b0b4a7 Fix ZTS build 2001-03-28 22:51:34 +00:00
Zeev Suraski 0613e48b8e RC3 2001-03-28 13:36:52 +00:00
Romolo Manfredini 8522d30081 Safe mode check on target introduced in function move_uploaded_file. 2001-03-28 09:05:50 +00:00
Romolo Manfredini 2b82b1c47a Safe mode check for target introduced in function copy. Pls insert in 4_0_5 2001-03-28 09:01:27 +00:00
Derick Rethans daf68d8d91 - MFH (Fix for bug 10002) 2001-03-27 17:24:01 +00:00
Ben Mansell 8f710d827e Changed header handling; before, we were somehow losing
Content-Type: text/html
2001-03-27 16:29:45 +00:00
Thies C. Arntzen 74ffa31da1 MFH 2001-03-27 15:04:26 +00:00
foobar d4b7d08019 MFH 2001-03-27 14:03:03 +00:00
Romolo Manfredini e7875fc20d pg_close was closing connection twice, pls insert in 4_0_5 2001-03-27 10:22:32 +00:00
foobar f446cc2e3f MFH 2001-03-22 13:20:35 +00:00
André Langhorst 715b32f618 synchronizing with CVS 2001-03-21 15:35:07 +00:00
André Langhorst 5fb6dda2fc 1) fixed tests on *both* win32+linux
2) made tests more sophisticated (checking against compiled in modules)
3) minor changes
4) win32 improvements
2001-03-21 06:17:13 +00:00
SVN Migration f00c18ad23 This commit was manufactured by cvs2svn to create branch 'PHP_4_0_5'. 2001-03-20 22:35:31 +00:00
Zeev Suraski ad8426b7d3 4.0.5RC2 2001-03-20 21:59:49 +00:00
Andi Gutmans eb2afa6cfb - MFH 2001-03-20 18:15:10 +00:00
foobar d16d5eb9f6 MFH 2001-03-20 01:49:56 +00:00
foobar 3b6a30dd6b MFH 2001-03-20 01:42:40 +00:00
foobar 36393c74f5 MFH 2001-03-20 01:32:28 +00:00
SVN Migration 4a58dd0b64 This commit was manufactured by cvs2svn to create branch 'PHP_4_0_5'. 2001-03-19 11:03:30 +00:00
Fredrik Öhrn 3ab749ce27 Solved compile failure due to clash between IMAP and ClibPDF headers. 2001-03-18 18:45:21 +00:00
Zeev Suraski 5fe65aa136 MFH 2001-03-18 02:36:27 +00:00
Zeev Suraski 5ce1dc591b MFH 2001-03-18 00:11:15 +00:00
Derick Rethans fb5d197a99 - MFH (memleak fix) 2001-03-17 14:55:24 +00:00
Anil Madhavapeddy ab5900f9bb Update libtool to support OpenBSD 2.8+ wrt shared libraries and
library dependencies.  Tested on i386/sparc.
2001-03-17 13:13:55 +00:00
James Moore 45c5791d5e MFH for website team credits. 2001-03-17 12:21:22 +00:00
Zeev Suraski 1ab8f39f47 MFH 2001-03-17 03:05:07 +00:00
Dan Kalowsky 6a6318d4be This is to correct bug #9762, patch submitted by Bug reporter. 2001-03-16 13:24:06 +00:00
Sascha Schumann de3c9594e4 Don't do anything, if the user wants no PDF. 2001-03-16 12:25:34 +00:00
Zeev Suraski 8bb1eb9d01 Update NEWS for the branch... 2001-03-13 16:27:40 +00:00
Zeev Suraski f48c985537 Rebranch 2001-03-13 16:23:53 +00:00
SVN Migration 57293eea0b This commit was manufactured by cvs2svn to create branch 'PHP_4_0_5'. 2001-03-13 11:09:38 +00:00
Daniel Beulshausen a37a9db454 fix bug in php_gmtime_r 2001-03-13 11:09:37 +00:00
Andrei Zmievski 285ec0ca2c @- IMPORTANT: removed /F modifier handling from preg_replace(). Instead
@  one should use new preg_replace_callback() function. (Andrei)
2001-03-13 05:24:03 +00:00
c3a10fe0d1 ChangeLog update 2001-03-13 02:09:20 +00:00
78cd4cdbe1 NEWS update 2001-03-13 02:09:17 +00:00
Dave Hayden f2427f42fa changed scalar args and returns to doubles, added Ming_setScale function,
added SWFTEXTFIELD_HTML flag, fixed SWFTextField_setIndentation glitch
2001-03-13 01:57:43 +00:00
Colin Viebrock 83848d2e1f Forgot to add it here 2001-03-12 19:35:28 +00:00
Andrei Zmievski 3b2a83b942 Name length is already known. 2001-03-12 16:40:55 +00:00
Andi Gutmans 7db391b054 - Missed second place. 2001-03-12 16:27:26 +00:00
Andi Gutmans 123491aeac - Nuke snprintf() 2001-03-12 16:23:19 +00:00
Andi Gutmans 3118af8293 - White space 2001-03-12 15:45:01 +00:00
Andi Gutmans 714d083cb8 - Fix by Jani Taskinen <sniper@iki.fi> for whole path also to work
with include_once()/require_once().
2001-03-12 15:42:18 +00:00
Sean Bright 48caa74c20 Fixed prototype. 2001-03-12 15:14:38 +00:00
Alexander Feldman ebf7c99391 Added NEWS. 2001-03-12 14:07:36 +00:00
Alexander Feldman 1791658112 A small fix to make the function imageloadfont portable. 2001-03-12 13:57:53 +00:00
Stanislav Malyshev 0fa068e1fa Prevent memory leak 2001-03-12 10:14:00 +00:00
Stig Bakken 7a7590002c HEADS UP: renamed config header file in "phpize"d extensions to
"config.h" rather than "php_config.h".
2001-03-12 09:54:26 +00:00
Stanislav Malyshev be83ba17da Use hash position with array_flip 2001-03-12 08:07:00 +00:00
Andrei Zmievski 40dd7eef96 This will have to do until the docs come along. 2001-03-12 03:10:15 +00:00
Andrei Zmievski 13148b5491 Improve zend_is_callable() to the point where it's actually useful.
Now it just needs to be invoked everywhere in PHP where a callback is
expected.
2001-03-12 03:08:28 +00:00
Andrei Zmievski d73ef12429 @- Added array_reduce(), which allows iterative reduction of an array
@  to a single value via a callback function. (Andrei)
- Added array_reduce(), which allows iterative reduction of an array
  to a single value via a callback function.
- Fixed usage of zend_is_callable() in PCRE.
2001-03-12 03:06:53 +00:00
Andrei Zmievski 2d54fb39b9 Use proper class name. 2001-03-12 03:05:04 +00:00
23a446c429 ChangeLog update 2001-03-12 02:09:11 +00:00
foobar 12503baa55 Cleaning this a little bit. 2001-03-12 02:06:06 +00:00
foobar 48545dd7b9 ws fixes. Plus removed unnecessary AC_MSG_ calls. 2001-03-12 01:20:16 +00:00
foobar 5b4d6e7db3 ws fix. 2001-03-12 00:46:26 +00:00
Jon Parise cf48573277 Revised version of the parseDSN function.
Submitted by: "Tomas V.V.Cox" <cox@idecnet.com>
2001-03-11 23:26:18 +00:00
Andi Gutmans dde50d6afd - Fix for Solaris. 2001-03-11 19:35:26 +00:00
Alexander Feldman 397c76d787 Fixed a compatibility problem is some file functions (fgets, fputs, fread,
fwrite). The ANSI standard says that if a file is opened in read/write
mode, fseek() should be called before switching from reading to writing
and vice versa.
2001-03-11 10:08:27 +00:00
foobar ba12d0b4b1 Added missing alias. PR: #9550 2001-03-11 04:13:53 +00:00
foobar 6795032cb8 HAVE_BINDLIB --> HAVE_LIBBIND 2001-03-11 03:49:21 +00:00
foobar 85980139b2 Check for inet_aton only if libbind is not found (or inet_aton is not in
libbind). Fixes bug: #8814
2001-03-11 03:46:24 +00:00
bdcaa8ec44 ChangeLog update 2001-03-11 02:09:15 +00:00
foobar 499b63a354 If AC_CHECK_LIB fails, assume that --with-openssl is needed 2001-03-11 00:49:16 +00:00
foobar 3db6f55748 This should fix the problems with not including -lz. 2001-03-10 17:33:33 +00:00
Stig Bakken adc498e705 * only register the destructor if it exists 2001-03-10 09:59:15 +00:00
Andi Gutmans 492a619be3 - Whitespace 2001-03-10 09:21:48 +00:00
Rui Hirokawa 0e9581bddb just reversed a previous patch. 2001-03-10 02:21:39 +00:00
e2e49e7b84 ChangeLog update 2001-03-10 02:09:28 +00:00
e826651d7e NEWS update 2001-03-10 02:09:25 +00:00
Rui Hirokawa f3c9c8dd07 initialized some strings in global variable structure. 2001-03-10 02:03:26 +00:00
Frank M. Kromann f98710c870 Adding a new function odbc_next_result() allowing the query to return more than one result.
This can be done with a stored procedure or by sending more than one select to the server.
2001-03-09 23:44:55 +00:00
Frank M. Kromann 4230bdd3ed Adding a new function mssql_next_result() allowing the query to return more than one result.
This can be done with a stored procedure or by sending more than one select to the server.
2001-03-09 23:37:56 +00:00
Andrei Zmievski 8d677828b9 @- Fixed argument checking for call_user_func* functions and allowed
@  specifying array($obj, 'method') syntax for call_user_func_array. (Andrei)
2001-03-09 21:42:26 +00:00
068fd3b24f ChangeLog update 2001-03-09 02:09:17 +00:00
Ulf Wendel dc5f1ed519 Formatting and minor inline doc changes. 2001-03-08 20:41:39 +00:00
Ulf Wendel 78c050114c Added a basic Cache_Error class. 2001-03-08 20:39:15 +00:00
Stanislav Malyshev e30d8e4abf Better use buffer_to_buffer, since zval is really buffer, not string (it can
contain \0's and not end in \0).
# and recode_string is recode_buffer_to_buffer internally anyways
2001-03-08 17:11:57 +00:00
Zeev Suraski a4a8369f7d *** empty log message *** 2001-03-08 11:21:18 +00:00
Zeev Suraski be8a991ccc Point people to the Windows mailing list... 2001-03-08 10:43:52 +00:00
154bba297b ChangeLog update 2001-03-08 02:09:19 +00:00
Daniel Beulshausen 177f9bd1f5 add missing globals fetches 2001-03-07 17:23:30 +00:00
Zeev Suraski 31775e9706 Add missing #define's 2001-03-07 17:05:03 +00:00
Frank M. Kromann 4578c9af93 Removing a compiler warning 2001-03-07 16:33:13 +00:00
Andrei Zmievski 02cc050108 That came from php-gtk. 2001-03-07 14:00:52 +00:00
foobar f4917d49c3 Fixed the help for other options too. 2001-03-07 13:24:12 +00:00
Ben Mansell 515c20da47 Added support for Zeus SSL client certificate information.
Added SERVER_SIGNATURE to the environment.

Submitted by: daniel@zeus.com
2001-03-07 10:28:00 +00:00
Zeev Suraski d7e17582da Update .ini's and NEWS 2001-03-07 10:08:19 +00:00
Zeev Suraski 36ded42156 Make parent:: work in runtime bindings as well 2001-03-07 10:07:25 +00:00
f4dfa7df00 ChangeLog update 2001-03-07 02:09:20 +00:00
b2dc847c0a NEWS update 2001-03-07 02:09:17 +00:00
Zeev Suraski 0b65578ec7 Implement internal output compression?\0020:wq 2001-03-06 20:43:54 +00:00
Zeev Suraski 9a04f870ab Fix freeing of buffers 2001-03-06 19:38:33 +00:00
Zeev Suraski 93e9e7521a Fixes to internal output buffering 2001-03-06 18:29:00 +00:00
Sascha Schumann aed7d01138 We actually only need AC_PROG_LEX here. 2001-03-06 16:59:28 +00:00
Sascha Schumann 34cb5dff68 Replace AM_PROG_LEX with a separated call to AC_PROG_LEX and AC_DECL_YYTEXT.
The latter is only called, if lex was found, so that PHP configures now
on setups without (f)lex.
2001-03-06 16:51:53 +00:00
Zeev Suraski 0ece429a16 More internal output buffering fixes 2001-03-06 16:28:51 +00:00
Zeev Suraski 20d2432c86 Fix internal output buffering 2001-03-06 16:25:14 +00:00
Zeev Suraski 13a97fefeb Initial work on internal output handlers - should be much quicker 2001-03-06 15:54:49 +00:00
Sebastian Bergmann 9e43c35158 Whitespace only. 2001-03-06 15:27:30 +00:00
Zeev Suraski 800950c5a7 Avoid using ret uninitialized 2001-03-06 15:10:53 +00:00
Ben Mansell a40f208ab8 Thread hashtable was being initialized with a size of 1! Changed to 128 as
a more sensible number.
# Also could change the 'expected resources' parameter from 1, but I
# haven't tested that bit yet
----------------------------------------------------------------------
2001-03-06 15:09:15 +00:00
Ben Mansell 5d6cb2fc32 Speedup for pthread implementation. We make use of thread local storage
to allow access to the current thread's resources without having to
obtain the memory mutex and traverse our hash table. This is a big
performance win!
2001-03-06 15:07:57 +00:00
Zeev Suraski 559c254f8f Avoid writing to error_log in case of aborted connections. 2001-03-06 15:00:08 +00:00
Stanislav Malyshev 7c2ea02288 Don't insert empty path if PHPRC is empty 2001-03-06 11:38:55 +00:00
Sean Bright 5d3939ac39 Typo.
# I don't know where I got 4.02 from
2001-03-06 04:42:04 +00:00
Sean Bright 64ad839328 get_meta_tags now allows attributes that are not quoted as well as those
that are.  It follows the HTML 4.01 specification for attribute values
outlined here -> http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.2
2001-03-06 04:34:05 +00:00
31d1714779 ChangeLog update 2001-03-06 02:09:13 +00:00
Rainer Schaaf 929551891e fixed bug in PDF_getbuffer (happend only on Windows)
When using PDFlib V4.0 the pdf_set(grey/rgbcolor) functions are replaced
by the PDFlib V4.0 function pdf_setcolor
2001-03-05 16:18:51 +00:00
foobar 356fc41a0a Fix help text for -f 2001-03-05 15:08:36 +00:00
0ac039536f ChangeLog update 2001-03-05 02:09:11 +00:00
foobar 81a2669216 Can't output any error messages if there isn't any function initialized
to do it..
# Bug report: #7650
2001-03-05 01:26:36 +00:00
Sean Bright dca3c8753f get_meta_tags now handles single quoted attributes as well as those that
are double quoted.
2001-03-05 00:20:41 +00:00
Zeev Suraski 87ee97e303 Fix bug #8899 (thanks Jani) 2001-03-04 22:27:56 +00:00
Zeev Suraski 1b38207410 I don't know German, but I imagine that was the problem :) 2001-03-04 22:03:23 +00:00
Zeev Suraski 1000a86e5f Fix phpinfo() bug that crept in 2001-03-04 15:49:38 +00:00
Zeev Suraski a22ada795f Improve memory consumption on chunked output buffering 2001-03-04 15:46:13 +00:00
Zeev Suraski 39724f6e4a Implemented chunked output buffering support - it's quite cool! 2001-03-04 15:12:38 +00:00
Martin Jansen b9749a40cc fixed typo 2001-03-04 14:26:58 +00:00
Frank M. Kromann f6f67ffd62 Changed code layout to remove PHP warning when running php as a CGI. 2001-03-04 02:41:27 +00:00
ac30c36dc0 ChangeLog update 2001-03-04 02:09:13 +00:00
Zeev Suraski c64fe7fbe1 Fix non-thread safe mode 2001-03-04 01:45:19 +00:00
Zeev Suraski 0117c7848e this function will never return true... 2001-03-04 01:17:21 +00:00
Zeev Suraski 0a98aa6ada Improve chunked output buffering - the output handler now knows at which stage it is 2001-03-04 01:09:36 +00:00
Zeev Suraski ce39c56c8b whitespace fix 2001-03-04 01:08:46 +00:00
Ulf Wendel 0cf7edb4a5 The main file with new features.
- added support for cache dataset groups
  - added extSave() - see my next PEAR list posting
  - added getUserdata()
2001-03-03 19:21:49 +00:00
Sascha Schumann 5c1724177d -Os is a valid GCC optimization level. 2001-03-03 18:07:52 +00:00
Sebastian Bergmann 9be9e95f06 Jan says: 'Do not load php_gtk.dll through php.ini, only use dl(), otherwise it crashes (atleast on Win32).' Me thinks: 'There should be no crash, but a warning. Anyways, remove it from php.ini-dist, so others do not run into this... :-) 2001-03-03 13:10:13 +00:00
Sylvain PAGES a5c676e91f - modified line 161 to be xml compliant 2001-03-03 07:58:31 +00:00
Sebastian Bergmann f494aff5c3 Whitespace only. 2001-03-03 07:37:18 +00:00
Sebastian Bergmann e4ef496ee5 Whitespace Fixes. Added another Win32 extension DLL. Removed configuration for non-existent debugger. 2001-03-03 07:31:43 +00:00
Sebastian Bergmann 1dcda7c92b Added some more Win32 extension DLLs. 2001-03-03 06:55:06 +00:00
30b242f832 ChangeLog update 2001-03-03 02:09:33 +00:00
9d7148531f NEWS update 2001-03-03 02:09:30 +00:00
Sterling Hughes d1fdea8373 add a warn not available for curl_getinfo().
remove unneccessary error checking.
2001-03-03 01:06:55 +00:00
Zeev Suraski bdacbc4c94 Whitespace fix 2001-03-02 23:56:03 +00:00
Andrei Zmievski 80cdb812c1 @- Forced call_user_method() and call_user_method_array() to take the
@  object argument by reference. (Andrei)
* Forced call_user_method() and call_user_method_array() to take the
  object argument by reference.
* Also cleaned up the protos for those functions and brought
  call_user_method_array() into functional equivalence with
  call_user_method().
2001-03-02 20:22:14 +00:00
Sascha Schumann de6c69f716 Combine all HTTP headers into a single writev 2001-03-02 17:01:52 +00:00
Andi Gutmans abb18a7918 - Commit NSAPI patches. 2001-03-02 15:25:51 +00:00
Zeev Suraski 9f5b255b3f Add CyberMut extension from Sylvain PAGES <spages@free.fr> 2001-03-02 14:36:29 +00:00
Sergey Kartashoff f262b2a738 # TODO updates in mnoGoSearch module README 2001-03-02 12:14:31 +00:00
Sergey Kartashoff 5a8b126d21 # mnoGoSearch example fix 2001-03-02 11:43:27 +00:00
Sergey Kartashoff 8bc7344f0b UDM_ISPELL_TYPE_SERVER parameter in udm_load_ispell_data has been added
to work with ispell server. This feature is available starting from
mnoGoSearch 3.1.12 or later. Fixed Udm_Free_Ispell_Data(). Example updated.
2001-03-02 11:41:35 +00:00
Sebastian Bergmann fdadc6342d Whitespace only. 2001-03-02 10:29:34 +00:00
Thies C. Arntzen 1b7eaa76c4 @- Fixed binding of ROWIDs in OCI8. (Thies) 2001-03-02 09:12:55 +00:00
Sebastian Bergmann 6fcde257f3 Added experimental version of Cache_Function module. 2001-03-02 07:52:56 +00:00
4360a5a4c7 ChangeLog update 2001-03-02 02:09:13 +00:00
foobar d3ce7f294c ws fix 2001-03-02 00:15:49 +00:00
Rainer Schaaf fa0085b495 - integrated new functions vor PDFlib V4.0 (beta1)
- all functions accepting strings now support binary strings, by calling
  the appropriate PDF*2() functions.
2001-03-01 19:51:55 +00:00
Sebastian Bergmann 78db58502c Added note about PEAR/Cache. 2001-03-01 19:42:07 +00:00
Sebastian Bergmann 34f81476f1 Added Graphics and Output Cache. 2001-03-01 19:22:25 +00:00
Chuck Hagenbuch 217ac2778c missing a backslash 2001-03-01 17:02:05 +00:00
Chuck Hagenbuch e591ae24cb update the makefile for the new Cache classes. 2001-03-01 16:33:34 +00:00
Chuck Hagenbuch b917f1e159 use standard naming/capitalization, and do a bit of error checking when
instantiating the storage classfile.
2001-03-01 16:32:28 +00:00
Sergey Kartashoff 9a109425fe UDM_PARAM_CROSS_WORDS mnoGoSearch extension session parameter has been
added to use crosswords available since version 3.1.11 of mnogosearch.
Example updated.
2001-03-01 14:51:12 +00:00
Sergey Kartashoff 474a59eacb # mnoGoSearch example updated. 2001-03-01 14:18:07 +00:00
Sergey Kartashoff 4202409b26 # Corrected NEWS entry about mnoGoSearch extension. 2001-03-01 13:44:04 +00:00
Sergey Kartashoff cfe2412081 Udm_Api_Version function has been added.
Example updated.
2001-03-01 13:38:39 +00:00
Sergey Kartashoff 423fcaf2dc Udm_Get_Doc_Count function from mnoGoSearch 3.1.11 has been added.
mnoGoSearch library version printing in phpinfo() has been added.
Example updated.
2001-03-01 13:26:26 +00:00
Sergey Kartashoff 035d2b3077 Added UdmFreeEnv call to mnoGoSearch link list destructor to
free memory allocated for environment.
2001-03-01 11:38:18 +00:00
Chuck Hagenbuch e2f632e1f2 If php is compiled --with-imap-ssl, link in the SSL authenticator from
c-client so that we can use php to make ssl imap connections.
2001-03-01 07:06:54 +00:00
2d89bf1fcb ChangeLog update 2001-03-01 02:09:11 +00:00
Zeev Suraski b22a6ef2b1 Fix a TSRM bug (possibly fixing a sporadic crash in the timeout window
under Windows) - fix from Ben Mansell
2001-03-01 01:06:36 +00:00
Sascha Schumann 2da359bb84 httpd-2.0 cvs seems to be busted. I'm getting very strange backtraces
and the header filter still seems to be broken.  Will try later.
2001-02-28 14:19:15 +00:00
Sascha Schumann a824c87e6d Now it actually loads, but it segfaults upon a request. 2001-02-28 14:11:34 +00:00
Sascha Schumann 6ed0cbb140 Make the module compile again with the latest httpd-2.0 cvs. 2001-02-28 14:03:58 +00:00
Andrei Zmievski 145a319f43 Do case-insensitive class name matching when parsing
array('Class', 'method') structure.
You guys can clean it up, if there is a better way.
2001-02-28 03:53:00 +00:00
0e729b502f ChangeLog update 2001-02-28 02:09:10 +00:00
Dan Kalowsky 63ec8d7eaf #adding name to credits. nothing to see here, keep moving.
PR:
Submitted by:
Reviewed by:
Obtained from:
2001-02-28 01:02:48 +00:00
Andi Gutmans d3625c0a90 - Nuke zval_del_ref() 2001-02-27 20:26:16 +00:00
Andi Gutmans 01ed33d1b6 - Pointed out by Andrei. zval_ptr_dtor() should be used instead of the
zval_del_ref() function which should be nuked.
2001-02-27 20:16:35 +00:00
Ben Mansell 5e5f5886ff Added PHP_AUTH_USER, PHP_AUTH_PW and PHP_AUTH_TYPE environment variables
for Zeus/ISAPI, so basic authenication works.

Submitted by: daniel@zeus.com
2001-02-27 13:29:21 +00:00
Sebastian Bergmann 043dcb64af PHP3_TLS_*() macros are no longer used in ext/dav/dav.c, ext/ldap/ldap.c. 2001-02-27 09:16:48 +00:00
Stanislav Malyshev ade8417ad9 ws fix 2001-02-27 09:15:02 +00:00
Sebastian Bergmann 18f3c3900a Daniel told me he is working on this one, and he is pretty close to finishing the job. 2001-02-27 09:11:56 +00:00
Stanislav Malyshev 7335076b8a Add UNC in the "todo" list 2001-02-27 09:07:01 +00:00
Andrei Zmievski cb00ed2bd3 Don't overwrite existing handlers with parent ones. 2001-02-27 05:18:34 +00:00
18396f9875 ChangeLog update 2001-02-27 02:09:11 +00:00
Zeev Suraski b8787bf2d8 Fix chunked output buffering support 2001-02-27 00:09:14 +00:00
Sascha Schumann 95b3347d8b Provide proper function aliases, if the sendmail functions
don't exist.

Submitted by: Nadir Amra <amra@us.ibm.com>
2001-02-26 20:26:07 +00:00
Andi Gutmans 7080fa5b53 - Rename modules.h to zend_modules.h 2001-02-26 18:18:34 +00:00
Andi Gutmans a0d3c5a88e - Finally rename modules.h to zend_modules.h for consistency (first try
was 2000-03-11).
- Remove the first_arg_force_ref[]; and friends extern from php.h as they
  are included via zend_API.h
2001-02-26 18:14:50 +00:00
Dan Kalowsky 17444700d4 # Bad patch job on the last commit by me. I take the BAD_CODER award for
# the day.
Removes two unnecessary REGISTER_MAIN_LONG_CONSTANT's.
# what should be done about the PHP_MINFO_FUNCTION
2001-02-26 16:36:08 +00:00
Daniel Beulshausen ab128eedaa nuke warnings 2001-02-26 16:32:57 +00:00
Andi Gutmans 7fbdc83318 - Fix whitespace 2001-02-26 15:49:38 +00:00
Rui Hirokawa f901783074 ob_iconv_handler changed to use for text data only. 2001-02-26 15:41:38 +00:00
Dan Kalowsky c7a4e718fd #Just adding in proper id (forgot to do it on the initial)
PR:
Submitted by:
Reviewed by:
Obtained from:
2001-02-26 15:20:53 +00:00
Dan Kalowsky d883ff47ed Correctly checks for the proper header files, and excludes the QUOTA functions
from non-imap2000 systems (unavailable for testing at this time).
# anyone willing to test this out on non-imap2000?
PR:
Submitted by:
Reviewed by: Sascha Schumann
Obtained from:
2001-02-26 15:17:12 +00:00
James Moore 08d3e700fa Fix for bug #9449 to stop infinate loop in wordwrap. 2001-02-26 13:04:00 +00:00
Andi Gutmans eb6ba01d1c - Fix copyright notices with 2001 2001-02-26 06:11:02 +00:00
Andi Gutmans 13b88fc18f - One more copyright year update 2001-02-26 05:44:29 +00:00
Andi Gutmans d2c9e8074c - Update copyright year 2001-02-26 05:43:27 +00:00
121d71c54d ChangeLog update 2001-02-26 02:09:15 +00:00
f812a8a77e NEWS update 2001-02-26 02:09:11 +00:00
Andi Gutmans 7513a2f972 - Fix dll linkage warnings 2001-02-25 05:21:31 +00:00
Dan Kalowsky 6b80554404 Updating the IMAP client to include quota support via the imap c-client2000 libraries.
# Y2K support is good...
Removes the SA_QUOTA and SA_QUOTA_ALL defines
# After speaking with Mark Crispin, it is believed these never existed.
Cleans up the imap_status() function to remove notion of quotas in a status message.
# There is no quota setting in a STATUS message from c-client.

Changes the config.m4 to support the client.h include
# This should include all the approriate headers for c-client (as defined by
# c-client maintainers) such as mail.h, and rfc822.h.
Changed the directory search order for the include files as well.
# Place the /usr/local/include last, and searched the
# /usr/local/include/{c-client|imap} directories first

(PHP imap_get_quota) Added
(PHP imap_set_quota) Added

@- IMAP quota support (imap_set_quota, imap_get_quota) enabled/added via
@  c-client2000

PR:
Submitted by:
Reviewed by:
Obtained from:
2001-02-25 04:41:18 +00:00
9a1c4e5328 ChangeLog update 2001-02-25 02:09:16 +00:00
Sascha Schumann b37b5f93aa Don't assume that tzname exists, if tm_zone does not exist.
PR: #9380
2001-02-24 21:18:28 +00:00
Andi Gutmans 0bed994531 - Add exports from Daniel Beulshausen 2001-02-24 21:16:58 +00:00
Sascha Schumann cb1a89cb64 Declare inet_aton properly, if the system lacks support for it.
PR: #9382
2001-02-24 21:14:18 +00:00
Sascha Schumann a40ee1f181 Actually compile on systems without syslog.
PR: #9412
2001-02-24 21:08:15 +00:00
Sascha Schumann adb3e3992c php_register_command_line_global_vars only needs file scope. 2001-02-24 21:07:07 +00:00
Sascha Schumann 280e10aac7 Neither the CGI nor the Servlet SAPI module call syslog, so remove
references to the syslog include files.
2001-02-24 21:05:02 +00:00
Sascha Schumann d516726329 Change the default to assumption that people don't use AOLserver 3.0 anymore. 2001-02-24 13:14:27 +00:00
6869507071 ChangeLog update 2001-02-24 02:09:12 +00:00
Sebastian Bergmann 54b8f2ee76 That should do the trick. 2001-02-23 22:55:28 +00:00
Sascha Schumann c2fb53bed7 Finish fopen-wrappers rename. 2001-02-23 22:07:16 +00:00
Sascha Schumann e805c1b3c1 Fix another instance of the == bug. 2001-02-23 16:49:58 +00:00
Sergey Kartashoff e6c03422fa mnogosearch example updated. 2001-02-23 10:53:07 +00:00
Sergey Kartashoff f263260d38 Added ispell loading routines and date search limits in mnogosearch module. 2001-02-23 10:34:50 +00:00
André Langhorst 9fa484104e fix stas' last commit, added additional ifdefs PHP_SIGCHILD to fix win32 build 2001-02-23 05:08:15 +00:00
c8a22a3848 ChangeLog update 2001-02-23 02:09:14 +00:00
Hartmut Holzgraefe f1caba9325 removed LC_* warnin 2001-02-22 18:35:22 +00:00
Chuck Hagenbuch 6bbecd4c07 factory-generated classes have lowercase subclass names by our (newly
revised) standards.
2001-02-22 16:01:14 +00:00
Sergey Kartashoff 047e598c3a README for mnoGoSearch module updated. 2001-02-22 13:02:38 +00:00
Andi Gutmans 9a28132876 - Fix indentation and remove comment. 2001-02-22 11:30:53 +00:00
Sergey Kartashoff 8bf6bdc2b9 Added Ispell routines to work with Ispell data loaded into sql tables.
Example updated.
2001-02-22 10:40:44 +00:00
Stanislav Malyshev 77d14126b1 Safer bin2hex 2001-02-22 10:36:40 +00:00
Stanislav Malyshev 4cda96691c Fix #8992, patch by yasushi_takahashi@tsuken.co.jp 2001-02-22 10:15:52 +00:00
Uwe Steinmann 454221ba62 - took out the HwSLS_FETCH to make it compile again on Unix
Is this really neccesary at this point?
2001-02-22 09:38:59 +00:00
Jon Parise b0af96a9fe The php_rand() and php_srand() functions added in the previous commit
require the inclusion of php_rand.h.
2001-02-22 03:37:32 +00:00
bd98f3d124 ChangeLog update 2001-02-22 02:09:16 +00:00
James Moore 118c015529 Adding php_rand() and php_srand(seed) as a wrapper around random, lrand48 and rand. 2001-02-22 00:24:19 +00:00
Shane Caraveo 6e31987376 Initalize some of the global vars. Crashed under ms debugger without having them initialized. 2001-02-21 23:57:28 +00:00
James Moore 977b9ddc01 Adding crypt.c and php_crypt.h to win32 builds, they were missing.. 2001-02-21 23:52:57 +00:00
Rainer Schaaf 28ed45fa72 When using pdf_get_buffer() and doing a correct cleanup by calling pdf_delete()
this always resulted in a coredump (after everything was finished, so only
visible in the logfile).
So it seems to be neccesary to copy the contents of the result of get_buffer,
to avoid this coredump.
2001-02-21 23:30:21 +00:00
Shane Caraveo 09c7116f6e zend_compile_file returns a NULL on error, check for that before
calling destroy_op_array unless we like crashes :-)
2001-02-21 20:50:49 +00:00
Thies C. Arntzen 7139926e84 fix possible leak. 2001-02-21 20:33:46 +00:00
Sascha Schumann 4a32816f9e If we cannot send the header, we don't need to continue with the page. 2001-02-21 20:25:53 +00:00
Stig Bakken 5ed1199b61 * dbmaker fix, shared support 2001-02-21 18:23:53 +00:00
Andrei Zmievski 8d7972b69b Fix memory leak. 2001-02-21 17:22:26 +00:00
Stanislav Malyshev 2b45f38ec9 Add safety check 2001-02-21 15:20:29 +00:00
Hartmut Holzgraefe 5b741dfb58 # make sebastian and compiler happy .) 2001-02-21 11:16:16 +00:00
Sascha Schumann 328ca1b178 There is no need to declare ap_php_(opterr|optopt) with external linkage
as they are not used outside of getopt.c.

PR: #9364
2001-02-21 07:41:01 +00:00
Sascha Schumann 0656a47f3e Instead of assuming that sendmail lives in /usr/lib, if we don't find it,
we also check /usr/lib now.

PR: #9362
2001-02-21 07:39:13 +00:00
Sascha Schumann 47f7795594 Correctly check for the existence of the st_rdev field.
Note that this field is required to exist for SUSv3 conformance.

Submitted by: amra@us.ibm.com
PR: #9358
2001-02-21 07:18:28 +00:00
Sascha Schumann e8ef0d8b2c Preprocessor stuff should go into CPPFLAGS. 2001-02-21 07:09:22 +00:00
Sebastian Bergmann 59a58018a5 Added note about PCRE update. 2001-02-21 06:22:41 +00:00
Jason Greene 7557c0b066 Corrected News entry. 2001-02-21 03:55:17 +00:00
ed64a52d65 ChangeLog update 2001-02-21 02:09:18 +00:00
de4833fc8c NEWS update 2001-02-21 02:09:15 +00:00
Hartmut Holzgraefe b14d2cc0dc will now initialize dynamic extensions *after* static ones 2001-02-21 01:43:15 +00:00
Stig Bakken c685f25d33 * allow empty passwords in dsn (for example "mysql://user:@database") 2001-02-20 23:00:08 +00:00
Zeev Suraski a3775357ec Fix Win32 build 2001-02-20 22:32:29 +00:00
Andrei Zmievski df868616aa Enable UTF8 support (incomplete) by default. 2001-02-20 22:21:06 +00:00
Andrei Zmievski a798fe8d5d Include PHP compatibility header file. 2001-02-20 22:20:47 +00:00
Andrei Zmievski 6542e70473 Upgrade PCRE to version 3.4. 2001-02-20 22:00:33 +00:00
Daniel Beulshausen 714e340a3b proper prefix for lookup_hostname 2001-02-20 20:52:53 +00:00
Daniel Beulshausen adcd6e7b0b make hyperwave build under win32 2001-02-20 20:45:55 +00:00
Daniel Beulshausen a96174dbe3 make socket functions available to the outside 2001-02-20 20:34:14 +00:00
Daniel Beulshausen 721d59948e make gd work again under win32 2001-02-20 18:00:44 +00:00
Daniel Beulshausen 57ce23e3cb add configuration which links again libsasl.lib 2001-02-20 17:11:25 +00:00
Jason Greene ffa08fc26e Changed default behavior of array_search to match in_array
(strict was default on, and is now default off)
2001-02-20 16:44:57 +00:00
David Eriksson f9fe688055 Patch for inherited interfaces by Daniel Stodden <stodden@in.tum.de> 2001-02-20 15:35:56 +00:00
Daniel Beulshausen 10695935e0 added missing ELS_FETCH() 2001-02-20 15:34:10 +00:00
Daniel Beulshausen cef5e966fd define HAVE_LIBICONV 2001-02-20 15:19:38 +00:00
David Eriksson fd4f472928 Stop leaking ParameterType data 2001-02-20 15:18:27 +00:00
Daniel Beulshausen 1ed938ceba no swf under win32 2001-02-20 15:15:10 +00:00
David Eriksson a4d8deb6e5 Corrected typo in config.m4 2001-02-20 15:12:31 +00:00
Daniel Beulshausen 8fd9c6e206 changed zlibstat.lib -> zlib.lib, which is the correct name 2001-02-20 15:05:37 +00:00
Andrei Zmievski 1424e36315 Rename to array_search(). 2001-02-20 14:23:03 +00:00
Adam Dickmeiss 4c04c755dd Yet another bug fix regarding present. 2001-02-20 11:40:36 +00:00
Sergey Kartashoff 3bfea1e627 Phrase search support has been added to mnogosearch extenstion.
Min_word_len and Max_word_len support has been added to mnogosearch
extension. Example updated.
2001-02-20 11:29:16 +00:00
Jason Greene 1888a98a4b Moved the core of in_array into the function php_search_array, which is called by
in_array and search_array (new)

@ Added search_array which works similar to in_array but returns
@ the key instead of a boolean. (jason@php.net)
2001-02-20 05:36:40 +00:00
Zeev Suraski fa8f552fbf Restore COM.c 2001-02-20 05:14:32 +00:00
cdda03cf07 ChangeLog update 2001-02-20 02:09:13 +00:00
179fffbe74 NEWS update 2001-02-20 02:09:10 +00:00
Derick Rethans 82c2851bcc - Fix for bug 9277, two the same boundaries make sense in some cases 2001-02-19 19:20:47 +00:00
Adam Dickmeiss c211778f5d Bug fix: number of records in yaz_range wrongly set to zero. 2001-02-19 17:06:40 +00:00
Sascha Schumann 0eec8cf2f7 Simpler fix for the InvalidOid thing by Tom Lane.
He assured me that InvalidOid has always expanded to (Oid) 0, so this
should be safe.
2001-02-19 16:31:17 +00:00
Sascha Schumann 2403578e35 Include <sys/uio.h>. Apparently, the header cleanup in glibc 2.2.2
caused that file to be included by accident.
2001-02-19 10:28:08 +00:00
Sascha Schumann 1e6be5aaf5 Fix incompatibility with PostgreSQL CVS.
We now perform a check whether we need to include <postgres.h> to
succesfully compile.

PR: #9328
2001-02-19 08:14:45 +00:00
Sascha Schumann b91b1779a5 Fix warning 2001-02-19 07:50:06 +00:00
Sascha Schumann 5db26dd415 Allow passing relative paths to --with-pgsql 2001-02-19 07:49:16 +00:00
e6050684fa ChangeLog update 2001-02-19 02:09:19 +00:00
5941ae891b NEWS update 2001-02-19 02:09:16 +00:00
Sascha Schumann 8c92cdd897 Save 50% of the syscalls when writing the HTTP header. 2001-02-18 19:03:36 +00:00
Thies C. Arntzen e9c4218470 [p]fsockopen: fixed possible leak 2001-02-18 18:54:41 +00:00
Thies C. Arntzen d6aab98541 fixed buffer-overwrite 2001-02-18 18:31:31 +00:00
Thies C. Arntzen 84c243d3cc fixed a possible double-free 2001-02-18 18:15:01 +00:00
Jon Parise a7679d2556 Go back to listing the copyright years explicitly (instead of using a
range).
2001-02-18 17:47:43 +00:00
Egon Schmid a297dbd6f3 Typos in protos. 2001-02-18 16:59:18 +00:00
Harald Radi 176f24c9a5 export global constants for codepage and variant type
VT_* and CP_*
2001-02-18 16:51:27 +00:00
Harald Radi c315e137c3 added a few more variant types for zval <-> variant conversion 2001-02-18 16:49:59 +00:00
Harald Radi a15e465a34 @- Added new object VARIANT() to encapsulate values for use with
@  the COM and DOTNET module. Therefore it is now possible to pass
@  values by reference, convert php values to extended variant types (currency,
@  date, idispatch, iunknown, ...) and define the codepage that should
@  be used for unicode - conversion.
2001-02-18 16:49:06 +00:00
Harald Radi 8d6f13dc2b added myself to CREDITS 2001-02-18 16:40:28 +00:00
Thies C. Arntzen 5f4090d0e0 - Fixed crash in OCI8 when using unitialized LOBs. (Thies) 2001-02-18 11:10:30 +00:00
David Croft 6bf8736737 add year 2001 to header 2001-02-18 09:21:57 +00:00
5a5ae1815f ChangeLog update 2001-02-18 02:09:11 +00:00
Thies C. Arntzen 67c2eaa6ea make oci work again. 2001-02-17 15:54:40 +00:00
Harald Radi 55f25fb942 multiple codepage support
export global constants
2001-02-17 02:16:29 +00:00
08009cfd39 ChangeLog update 2001-02-17 02:09:28 +00:00
Sascha Schumann 69ab3f53f6 Add some old and some recent news 2001-02-16 23:10:12 +00:00
Zeev Suraski 392e9869ee import notes modules from Brad Atkins 2001-02-16 21:36:30 +00:00
Sascha Schumann 7911be587b Add all necessary includes for these header files. 2001-02-16 18:55:58 +00:00
Chuck Hagenbuch 0b11c910f5 All DB modules should return NULL from fetchRow() now if there are no more
results, and a DB_Error object only on an error.

DB::isError() return false when passed null now.
2001-02-16 17:14:39 +00:00
Ben Mansell f49d4de599 Fixed non-threadsafe code: 'isapi_special_server_variables' was a static
buffer, and not allocated per-connection. Bad bad bad!
2001-02-16 16:01:34 +00:00
foobar 2c3b7385bf Fixed a typo in constant definitions and a possible crash in curl_setopt().
# pr: #9181
2001-02-16 14:31:37 +00:00
Egon Schmid d27ebba71f Wrong return type. 2001-02-16 13:13:52 +00:00
eba3660d72 ChangeLog update 2001-02-16 02:09:26 +00:00
d0f235fec0 NEWS update 2001-02-16 02:09:23 +00:00
Egon Schmid bbe53dedcc Small typo. 2001-02-15 20:33:09 +00:00
Sterling Hughes 2f0238dc4e Change e-mail address
# Can I get someone to change my cvsusers e-mail address to
# sterling@designmultimedia.com?
2001-02-15 16:20:13 +00:00
Thies C. Arntzen 8499b430cf @- Fixed some modules to allow using output-buffering. (Thies)
i nuked all unneded calls to php_header() - i'm not too sure how we do
handle HEAD Requests as they were only detected via php_header(). but calling
php_header from a module makes output-buffering unusable.

NOTICE: there is some EBSDIC stuff in gd.c - i think it's obsolete.
2001-02-15 14:49:01 +00:00
Thies C. Arntzen 5ca813a564 0..255 2001-02-15 14:01:18 +00:00
Thies C. Arntzen 72ec2e8f12 fixed SEGFAULT when using xml_set_object. Zend does not yes support
cyclic references!
2001-02-15 13:41:04 +00:00
Sergey Kartashoff cd55dfa3bd Added thow new mnoGoSearch agent session parameters:
UDM_PARAM_WEIGHT_FACTOR and UDM_PARAM_WORD_MATCH.
2001-02-15 11:50:49 +00:00
Sascha Schumann 637e8e14aa There might be more systems which do not support chroot, so we check
for the existence of it.

Additionally, if chroot is not supported, the warn_not_available function
is invoked now.
2001-02-15 05:21:27 +00:00
Zeev Suraski c239da7e66 Fix the PostgreSQL fix... 2001-02-15 02:15:36 +00:00
0a446bc274 ChangeLog update 2001-02-15 02:09:11 +00:00
Derick Rethans 8cef8a9ca1 - chroot does not work on windows 2001-02-15 00:43:44 +00:00
foobar 28b2869ac8 This should make detecting the version of Oracle libs a bit more accurate
to avoid the 'missing libcore4' errors. (e.g. on AIX)
Bug reports: #9027, #8905
2001-02-14 21:41:40 +00:00
Jon Parise 0450aecb8c Fix build. 2001-02-14 20:10:15 +00:00
Sergey Kartashoff 59e1b2cd4e mnoGoSearch config.m4 freebsd compatibility fix. 2001-02-14 14:39:40 +00:00
Sergey Kartashoff 3fc482b207 Added mnogosearch version checking into config.m4.
Some proto fixes.
2001-02-14 14:27:46 +00:00
Stanislav Malyshev e4f4983cdc allow more extensions with resources 2001-02-14 13:17:49 +00:00
Thies C. Arntzen ecaeac5881 ocifreedesc() now spits a NOTICE when called the "wrong" way. 2001-02-14 13:06:03 +00:00
Derick Rethans b972771971 - Added the notification of the chroot function addition
#- I forgot this with the initial commit
2001-02-14 11:27:28 +00:00
Derick Rethans 2648283b5b - Added an extra chdir("/"); as sugested by Sascha 2001-02-14 11:02:54 +00:00
Derick Rethans 4a54a15fc6 - Added the chroot function for changing root in a script.
#- This can be usefull when using PHP in a shell environment, or when PHP
#  runs as CGI which needs a little more security
2001-02-14 10:48:48 +00:00
Sascha Schumann f5874e9758 Add note about removing the requirement that you need to include the
respective class definition before using a session variable of the type
object.

This has been the best suggestion so far and is very likely to be adopted
in the near future.

Submitted by: Hartmut Holzgraefe
2001-02-14 10:12:29 +00:00
Thies C. Arntzen ab6bd757ec *** empty log message *** 2001-02-14 08:16:03 +00:00
9adb1d771b ChangeLog update 2001-02-14 02:09:15 +00:00
a3f0f0c279 NEWS update 2001-02-14 02:09:12 +00:00
Thies C. Arntzen 9d6f117938 remove stupid PGSQL warning 2001-02-13 20:13:14 +00:00
Adam Dickmeiss 9d8c1fb983 Bug fix: Record retrieval (present) is termiated on error. 2001-02-13 20:02:53 +00:00
Thies C. Arntzen f6925611fb @- PostgreSQL now does a rollback at the end of a request on every
@  persistent connection. This is done by doing an "empty" transaction
@  on the connection (This was advised by someone from the PostgreSQL
@  core-team). If you leave transactions open on your page you will see a
@  "NOTICE:  BEGIN: already a transaction in progress" message in your
@  apache error_log. This message is created by the PostgreSQL libs - we can
@  do nothing about it. (Thies)
2001-02-13 18:28:24 +00:00
Thies C. Arntzen 79a38a1c3a @- fixes PostgeSQL pg_connect() bug. We would sometimes close the default
@  link by acciedent. (Patch by: aja@nlgroup.ca)
2001-02-13 16:54:48 +00:00
Thies C. Arntzen 9a631384f3 remove unneded comments 2001-02-13 15:58:58 +00:00
Zeev Suraski f3063553c3 Move version registration to a more correct place 2001-02-13 13:53:42 +00:00
c2f1a45b24 ChangeLog update 2001-02-13 02:09:12 +00:00
880db726f7 NEWS update 2001-02-13 02:09:09 +00:00
Adam Dickmeiss 4ea3336962 Implemented yaz_present, yaz_scan, yaz_scan_result, yaz_ccl_conf,
yaz_ccl_parse and yaz_itemorder. Updated documentation.
2001-02-12 23:31:11 +00:00
Rainer Schaaf 4c21de658f added module support (for dl()) for PDFlib
the PDF files now tell that they are generated by the PHP binding.
2001-02-12 17:50:39 +00:00
Andi Gutmans 4afacc0a7c - Remove two unused functions 2001-02-12 15:49:24 +00:00
Andi Gutmans 033190cbcf - Fix warning
PR:
Submitted by:
Reviewed by:
Obtained from:
2001-02-12 15:47:38 +00:00
Andi Gutmans 488d808748 - Fix whitespace. 2001-02-12 15:18:05 +00:00
Zeev Suraski d854b26e43 Fix a bug that could cause corruption in case of an error during
get_zval_ptr()
2001-02-12 15:16:11 +00:00
Thies C. Arntzen 201342385e @- Improved OCI8 dead-session detection. (Patch by: George Schlossnagle) 2001-02-12 14:36:28 +00:00
Thies C. Arntzen fc7d103b73 fixed possible leak in imap_search 2001-02-12 11:57:22 +00:00
6b906ba742 ChangeLog update 2001-02-12 02:09:16 +00:00
Anders Johannsen c484140cfa Fixed indentation problems related to use of TAB instead of spaces 2001-02-12 00:38:28 +00:00
Anders Johannsen 7eb2ad0d81 The Cmd:: class implements an abstraction for various ways
of executing commands (directly using the backtick operator,
as a background task after the script has terminated using
register_shutdown_function() or as a detached process using nohup).
2001-02-11 21:39:13 +00:00
Sean Bright 733977e4bd Added note about get_meta_tags bugfix 2001-02-11 14:38:25 +00:00
Sean Bright ef2e1a72cf Fix for bug #4556
# This is pretty much a total rewrite of get_meta_tags using a simple
# handwritten tokenizer.  It might be overkill, but it works.
2001-02-11 02:38:40 +00:00
bc26a67a54 ChangeLog update 2001-02-10 02:09:09 +00:00
Hartmut Holzgraefe 766bdbc919 make _php_image_convert configuration-aware 2001-02-09 21:14:30 +00:00
Hartmut Holzgraefe d8a83a3722 libjpeg-not-installed protection 2001-02-09 21:04:45 +00:00
Rasmus Lerdorf e0c4bd742e Stray ] 2001-02-09 16:42:55 +00:00
Rasmus Lerdorf 4877d13ffa What the heck is CUT? Assume someone meant UTC here. And fix a
warning.
2001-02-09 15:28:23 +00:00
Sergey Kartashoff 279588aa12 Added UDM_PARAM_FIRST_DOC and UDM_PARAM_LAST_DOC mnoGoSearch extenstion
result parameters. Example updated.
2001-02-09 13:29:20 +00:00
Andi Gutmans e0b2a5f583 - Remove duplicate code and do a tiny optimization in DO_FCALL 2001-02-09 12:47:57 +00:00
David Hedbor 140279fc7b Fixed PHP authentication and some other minor things. 2001-02-09 05:32:42 +00:00
7a6df789cf ChangeLog update 2001-02-09 02:09:35 +00:00
Boian Bonev e7a148a758 fixed SIGSEGV in vpopmail_auth_user when optional arg apop is not set 2001-02-08 23:31:01 +00:00
Andrei Zmievski 6b0d9e19e1 *** empty log message *** 2001-02-08 19:11:47 +00:00
Sascha Schumann 9db16758b3 Make fprintf's optional 2001-02-08 16:26:18 +00:00
Uwe Steinmann 32b8cdde14 - add domxml_unlink_node(), not tested 2001-02-08 15:12:16 +00:00
Sergey Kartashoff df9803c75f Added UDM_PARAM_SEARCHTIME result parameter.
Now at least mnoGoSearch-3.1.10 required to use this module.
Added some parameters aliases. Example updated.
2001-02-08 13:33:37 +00:00
Sergey Kartashoff e0107c14fc # also Added CREDITS and cvs Template
# added udm_config.h for compatibility with mnoGoSearch-3.1.10pre
2001-02-08 10:14:57 +00:00
Andrei Zmievski 51c535f510 Move todo items. 2001-02-08 04:55:49 +00:00
9976674c6f ChangeLog update 2001-02-08 02:11:16 +00:00
Sascha Schumann 28052724e7 Suppress the other nasty warning 2001-02-08 00:49:24 +00:00
Chuck Hagenbuch 5182488725 may as well go by the capitalization we agreed on sooner rather than later. 2001-02-07 20:22:59 +00:00
Boian Bonev 156207b37b # fixed several warnings - variables not used, functions not declared
# added vclose() declaration - vpopmail does not declare it
2001-02-07 17:48:00 +00:00
Sascha Schumann 271617483a Improve use of $withval. This also cures the problem of adding -Lyes/lib
to $LIBS.
2001-02-07 16:01:29 +00:00
Andrei Zmievski 4aefaf2816 Only one entry for mnoGoSearch is necessary. 2001-02-07 14:10:13 +00:00
Sergey Kartashoff e03125fe60 Added .cvsignore 2001-02-07 10:41:40 +00:00
126f9c2776 ChangeLog update 2001-02-07 02:09:12 +00:00
cc4a1506a4 NEWS update 2001-02-07 02:09:09 +00:00
Jim Jagielski e541a27eed For those lucky systems with both random() and *rand48(), the random()
family is the prefered choice. So if both exist, we now choose that.
2001-02-06 16:27:08 +00:00
Sergey Kartashoff 222ac6e30e UDM_FIELD_ORDER and UDM_FIELD_CRC mnoGoSearch result fields has been added.
Example updated.
@- UDM_FIELD_ORDER and UDM_FIELD_CRC mnoGoSearch result fields
@  has been added. (gluke)
2001-02-06 15:40:33 +00:00
Sergey Kartashoff 0c759c822c UDM_PARAM_WORDINFO mnoGoSearch result parameter has been added.
UDM_PARAM_RATING result field has neen added as alias for UDM_PARAM_SCORE.
Example updated.
@- UDM_PARAM_WORDINFO mnoGoSearch result parameter has been added.
@  UDM_PARAM_RATING result field has neen added as alias for
@  UDM_PARAM_SCORE. (gluke)
2001-02-06 14:30:55 +00:00
Andrei Zmievski 26283a3bcc Preserve API compatibility. 2001-02-06 04:15:50 +00:00
Andrei Zmievski 88fce00cc0 Don't use Z* macros for non-zvals. 2001-02-06 03:57:43 +00:00
Andrei Zmievski 74912b9afb Cleaned up and optimized WDDX serialization - it's about twice
as fast now.
2001-02-06 03:54:15 +00:00
b2873a6cc2 ChangeLog update 2001-02-06 02:09:25 +00:00
b017713c3b NEWS update 2001-02-06 02:09:22 +00:00
Stephen van Egmond b10273781a Added tests for arpa/*.h and resolv.h which don't exist on the BeOS.
The dns functions on BeOS come from socket.h
2001-02-06 00:07:21 +00:00
Stephen van Egmond b2067a1839 Added tests for arpa/nameser.h and resolv.h, which don't exist on the BeOS. 2001-02-06 00:03:44 +00:00
Zeev Suraski c3531b3750 Fix string offset data corruption 2001-02-05 22:27:47 +00:00
Zeev Suraski bf84618244 Fix Windows build 2001-02-05 21:59:17 +00:00
Derick Rethans cf11a4fbc8 - Added a new parameter to mail() which appends aditional command line
parameters to the mail program. This is usefull to set the From headers
  correctly with the -f parameter to sendmail p.e.
@- Added a new parameter to mail() which appends aditional command line
@  parameters to the mail program. (Derick)
2001-02-05 21:30:29 +00:00
Vlad Krupin b5875d9d7c Added myself to CREDITS (vlad) 2001-02-05 19:18:04 +00:00
Harald Radi 3926cc2278 fixes the problem that php.exe compiled on win2k platform won't run on any other 2001-02-05 18:36:54 +00:00
Vlad Krupin ee668c5881 now when pspell/pspell.h is included, it will recognize
that it has to work in compatibility mode. (The previous fix
had the right idea, but was too far down in the source)
2001-02-05 18:15:31 +00:00
Andrei Zmievski 1b2387102d *** empty log message *** 2001-02-05 17:39:58 +00:00
Andrei Zmievski 5355703cf3 Allow calling static methods via call_user_method_* functions. 2001-02-05 17:37:47 +00:00
Andrei Zmievski 5de418fde4 One more notice about using names with NEWS entries. 2001-02-05 17:11:32 +00:00
Sergey Kartashoff fb057e7ea9 Added new Udm_Clear_Search_Limits mnogosearch extension function.
@- Added Udm_Clear_Search_Limits mnoGoSearch extension function.
2001-02-05 15:15:09 +00:00
David Croft f182245c53 2 things to do 2001-02-05 14:29:21 +00:00
Andrei Zmievski fce819effa Whitespace. 2001-02-05 14:27:10 +00:00
Sergey Kartashoff 886cd2d937 Fixed default search path.
@- Fixed default search path. (gluke)
2001-02-05 14:00:36 +00:00
Sergey Kartashoff 83265243d3 Added new Udm_Add_Search_Limit mnoGoSearch extension function.
Some bugfixes and example update.
@- Added new Udm_Add_Search_Limit mnoGoSearch extension function.
@  Some bugfixes and example update. (gluke)
2001-02-05 13:12:16 +00:00
James Moore efa9319c64 Adding Sebastian Bergmann to QA team list. 2001-02-05 10:18:14 +00:00
Sergey Kartashoff fad70e0d98 Fixed mnogosearch protos. Fixed mnogosearch functions return values.
A bug with capital letters break search has been fixed.
@- Fixed mnogosearch protos. Fixed mnogosearch functions return values.
@  A bug with capital letters break search has been fixed. (gluke)
2001-02-05 08:42:54 +00:00
6c08573e42 ChangeLog update 2001-02-05 02:09:11 +00:00
2128e901c7 NEWS update 2001-02-05 02:09:08 +00:00
James Moore 7a85ec55f7 Adding microtime() tests 2001-02-04 16:56:59 +00:00
James Moore 712f09d2a8 Always return a value even if HAVE_GETTIMEOFDAY is not set 2001-02-04 16:18:36 +00:00
James Moore a97e0e1964 Fix for time.c under win32. Patch By: "Vanhanen, Reijo" <Reijo.Vanhanen@helsoft.fi>
@- microtime under windows now returns accurate values (James)
2001-02-04 15:52:32 +00:00
Sterling Hughes 1754a750d0 # *Brain Fart* 2001-02-04 09:20:31 +00:00
Sterling Hughes ae3549d479 Add a bunch of stuff.. 2001-02-04 09:19:01 +00:00
fb28df713f ChangeLog update 2001-02-04 02:09:11 +00:00
Andrei Zmievski 98d8ba8cc4 Allow passing class name as well as an object instance to call methods. 2001-02-04 00:06:08 +00:00
Andrei Zmievski 088a4b7151 Set the correct function state during execution. This is mainly to have
get_active_function_name() to return proper value.
2001-02-03 07:21:35 +00:00
Andrei Zmievski 56d3b036ec Adding delimiter capturing functionality.
As far as NEWS, compilation fixed don't belong here.
2001-02-03 04:53:49 +00:00
Andrei Zmievski 50f28f4372 Inherit overloaded handlers. 2001-02-03 04:52:29 +00:00
4695ff82b9 ChangeLog update 2001-02-03 02:09:23 +00:00
792af4b6b2 NEWS update 2001-02-03 02:09:20 +00:00
Sean Bright bf6ce01b78 Comments didn't reflect rewinddir() 2001-02-03 00:50:48 +00:00
Andrei Zmievski c5baa5ede1 Revert bogus patch and fix it properly. 2001-02-02 21:32:16 +00:00
Colin Viebrock 96343bac90 Fix for http://bugs.php.net/bugs.php?id=9082
I know switch() is expensive, so someone rewrite this "properly" if you
want.
2001-02-02 20:55:27 +00:00
Rasmus Lerdorf 91d91d5052 pspell .12 fix
@ pspell .12 fix (Hugh Jones)
2001-02-02 18:28:48 +00:00
Harald Radi 2ee1ed2138 correct phpinfo() output 2001-02-02 18:11:39 +00:00
Colin Viebrock 2265b5b4c5 I think this should've been changed as well, right? 2001-02-02 17:59:30 +00:00
Egon Schmid c6633698b4 Fixed protos. 2001-02-02 15:49:59 +00:00
Harald Radi 58dc4ad8db correct phpinfo() output 2001-02-02 15:02:05 +00:00
Rasmus Lerdorf 6745b16c82 Fix strip_tags to not strip a lone > character
@ Fix strip_tags to not strip a lone > character (Rasmus)
2001-02-02 13:47:02 +00:00
Sergey Kartashoff ab60971ec4 Added new UDM_PARAM_STOPTABLE and UDM_PARAM_STOPFILE parameters
for Udm_Set_Agent_Params mnoGoSearch module. Now it can use stopwords
stored either in database or in the plain text files. Added php warnings.
Test example updated.
@- Added new UDM_PARAM_STOPTABLE and UDM_PARAM_STOPFILE parameters
@  for Udm_Set_Agent_Params mnoGoSearch module. Now it can use stopwords
@  stored either in database or in the plain text files. Added php warnings.
@  Test example updated. (gluke)
2001-02-02 12:54:15 +00:00
Chuck Hagenbuch 38fae9bae4 make sure to include subclasses before trying to instantiate them. 2001-02-02 05:24:31 +00:00
f4f20f5bb1 ChangeLog update 2001-02-02 02:09:11 +00:00
e684eb390d NEWS update 2001-02-02 02:09:08 +00:00
Colin Viebrock e365fc21e9 trigger_error() should be ($msg,$level), no? 2001-02-01 20:15:08 +00:00
Thies C. Arntzen 9c1abab2db ws-only 2001-02-01 17:16:35 +00:00
Thies C. Arntzen 1366f67d0b @- When using the ob_gzhandler() PHP now automagically also sets the
@  Content-Lengh correctly which enables browsers to use the HTTP
@  Keep-Alive feature. (Thies)
2001-02-01 17:14:18 +00:00
Sascha Schumann a4df53ad1c Fix a huge memory leak in the ob_gzhandler. 2001-02-01 16:29:07 +00:00
Colin Viebrock 138ab8eccf While we're fixing the ini files, change these to web-safe colours
... this always bugged me :)
2001-02-01 15:41:02 +00:00
Stanislav Malyshev bb6d3e60e8 Allow usage of GD contexts and not tempfiles in output functions 2001-02-01 15:40:35 +00:00
Andrei Zmievski 898baa8b54 No need for CLS_FETCH(). 2001-02-01 15:25:53 +00:00
Sascha Schumann 23ddeac9a5 Fix broken ZTS build 2001-02-01 15:24:17 +00:00
Andrei Zmievski b7b7ffbabd Add cvsclean target for standalone extensions. 2001-02-01 14:11:44 +00:00
Sergey Kartashoff d7b7c7283f UDM_PARAM_CHARSET parameter in Udm_Set_Agent_Param() has been added to
set local charset you are using. Example updated also.
@- UDM_PARAM_CHARSET parameter in Udm_Set_Agent_Param() has been added to
@  set local charset you are using. Example updated also. (gluke)
2001-02-01 13:06:26 +00:00
Stanislav Malyshev 5af00138e9 Add utility function 2001-02-01 10:24:02 +00:00
Stig Bakken e07eda31ed did someone poop in the code? :-) 2001-02-01 09:36:52 +00:00
Uwe Steinmann 485c8fb570 ­ some modification from Rainer Schaaf
* fixed prototype for pdf_new()
   * MINFO: included Revision of pdf.c, removed info about CJK + in-memory, this is
     standard with V3.x)
   * repaired PDF_open_CCITT
   * repaired PDF_setfont
   * eliminated many compiler warnings.
   * former resource "pdf document" is now called "pdf object"
2001-02-01 07:07:10 +00:00
Jon Parise 102752abc2 Massive reformatting. 2001-02-01 06:29:41 +00:00
Andrei Zmievski 0651b4ff16 Modified /F handling to allow calling object methods. 2001-02-01 05:04:58 +00:00
Andrei Zmievski 8fe036596f Added zend_is_callable() function that checks whether passed zval
represents a valid and exiting callable construct.
2001-02-01 05:01:26 +00:00
f5bec86645 ChangeLog update 2001-02-01 02:09:11 +00:00
3eb01b1fb2 NEWS update 2001-02-01 02:09:08 +00:00
Egon Schmid 0c450fa966 Only two lines are allowed here. 2001-01-31 23:35:37 +00:00
Sean Bright 31c8104dc6 Added the mysql_get_*_info() functions.
# If anyone knows of a version of mysql lower then 3.20.32 that implements
# all 3 of these functions, please change the conditionals.
@- Added mysql_get_client_info(), mysql_get_server_info(),
@  mysql_get_proto_info(), and mysql_get_host_info() functions. (Sean)
2001-01-31 22:04:30 +00:00
Andi Gutmans 0611acb910 - Change unset() functions to null(). unset() is legacy 2001-01-31 21:53:30 +00:00
Chuck Hagenbuch 00b84703f8 use $HTTP_SERVER_VARS, in case register_globals is Off, and use !empty()
instead of just if () to avoid errors.
2001-01-31 18:34:39 +00:00
Daniel Beulshausen 638ecd26f7 add iconv and ming 2001-01-31 17:12:12 +00:00
Daniel Beulshausen 6859af3ac8 nuke warning, and add dsp 2001-01-31 17:05:00 +00:00
Daniel Beulshausen 04267de3a1 fix typo 2001-01-31 17:00:11 +00:00
Daniel Beulshausen 6f1ca9de3e make iconv compile under win32 using libiconv
# http://clisp.cons.org/~haible/packages-libiconv.html
2001-01-31 16:57:00 +00:00
Sergey Kartashoff 7413c65e31 Added search cache and track query features.
@-Added search cache and track query features.
# For example please refer at ext/mnogosearch/test.php
2001-01-31 14:04:30 +00:00
James Moore b3fd49365a Adding readme for release process, this needs to live somewhere and here seems as good a place as any. 2001-01-31 13:58:20 +00:00
Harald Radi 2242647e64 added currency, date, IUnknown and NULL datatypes 2001-01-31 09:30:13 +00:00
Uwe Steinmann 98b685a515 - note about change of pdf api 2001-01-31 06:13:08 +00:00
Andi Gutmans 2f2d32fa61 - Quick fix. I'm for changing these to add_property_null() as we've nuked
- unset.
2001-01-31 05:21:53 +00:00
fb33db9aa8 ChangeLog update 2001-01-31 02:09:14 +00:00
53d5f91b40 NEWS update 2001-01-31 02:09:11 +00:00
Stig Bakken 1a07f60b92 whitespace 2001-01-31 01:27:09 +00:00
Sean Bright b940c97233 Fixed conditional.
# Woops!
2001-01-31 01:14:54 +00:00
Sean Bright 4086ba9773 Fix for bug #8991. mysql_field_type() now returns "year" for columns of
type YEAR.
2001-01-31 00:55:28 +00:00
Adam Dickmeiss 2dc33e3e71 Fixed problem with looping present requests for Isite targets. 2001-01-30 13:09:25 +00:00
Harald Radi 789182d06c fixing .cvsignore 2001-01-30 13:00:36 +00:00
Harald Radi f904c6b84d adding .cvsignore 2001-01-30 12:59:54 +00:00
Sergey Kartashoff cdf6b7e2c3 mnoGoSearch extension module initial version has been added.
This module currently at the alpha state, but it can be used already.
@- mnoGoSearch extension module initial version has been added.
@  This module currently at the alpha state, but it can be used already.
# For details about mnoGoSearch please refer at http://search.mnogo.ru
PR:
Submitted by:
Reviewed by:
Obtained from:
2001-01-30 12:53:51 +00:00
Stig Bakken 86c5a77ed9 @Allow url encoding in DB usernames and passwords (Stig, PEAR) 2001-01-30 08:34:55 +00:00
David Eriksson 4320dc0a2c Applied patch from Oleg Sharoiko <os@rsu.ru> to fix bug in satellite_any_to_zval_sequence 2001-01-30 06:43:36 +00:00
Harald Radi 79a39e3d39 pass another com object as parameter 2001-01-30 02:09:39 +00:00
608678bbfa ChangeLog update 2001-01-30 02:09:13 +00:00
Stig Bakken 7cf00c7076 @Added raiseError and setErrorHandling methods to PEAR class (Stig, PEAR)
# This allows all objects to have their own default error handling
# or use a global default.
2001-01-30 00:55:27 +00:00
foobar bbca5a86f8 Fixed bug #8946. In some systems the libxml.* is actually libxml2.* 2001-01-29 23:15:11 +00:00
Harald Radi dee2fd1ec4 use *_EXTERN_C() and PHP_WIN32 2001-01-29 21:54:46 +00:00
Harald Radi 7478783b20 fixed unicodeconversion and parameter passing bugs in com and dotnet modules 2001-01-28 03:41:43 +00:00
Harald Radi dac7ab13da fixed unicodeconversion and parameter passing bugs in com and dotnet modules 2001-01-28 03:24:51 +00:00
622ff39185 ChangeLog update 2001-01-28 02:09:16 +00:00
John Donagher f5a369232a PR:
Clean up and add folding
2001-01-28 00:45:28 +00:00
John Donagher c256b323a2 PR:
Remove --with-pfpro warning. Verisign has released a beta SDK which corrects
the problem.
2001-01-28 00:16:55 +00:00
John Donagher 01f800b740 PR:
Submitted by:
Reviewed by:
Obtained from:
Add configure warning message when compiling --with-pfpro
2001-01-27 21:05:40 +00:00
Egon Schmid 35524d3a73 Fixed some protos. 2001-01-27 19:48:58 +00:00
Egon Schmid 5b57490772 File formats in uppercase characters. 2001-01-27 14:20:06 +00:00
Andi Gutmans f67df57491 - That doesn't seem like a smart thing to do :)
- I wonder if gcc optimized it out.
2001-01-27 12:29:02 +00:00
Sascha Schumann eb10bf2358 This config.m4 was obviously not tested at all before being committed.
s/withval/PHP_MING/
2001-01-27 10:05:30 +00:00
e7e0084eeb ChangeLog update 2001-01-27 02:09:08 +00:00
James Moore 4d612e7827 Adding Ming experimental file 2001-01-27 00:33:24 +00:00
Dave Hayden 7896314614 First include of ming (SWF generation) library wrapper
http://www.opaque.net/ming/
2001-01-27 00:26:23 +00:00
Boian Bonev 5f89c6892f # fixed protos in comments for *_ex functions 2001-01-27 00:25:09 +00:00
Egon Schmid 416f4b7e95 Mostly off by one. 2001-01-26 21:41:38 +00:00
Egon Schmid c7f5ad4336 Fixed another proto. 2001-01-26 21:22:33 +00:00
Egon Schmid a8624ac62a Fixed some protos. 2001-01-26 20:56:14 +00:00
Egon Schmid d683a1e18d Whitespace change for funclist.txt. 2001-01-26 20:46:23 +00:00
Egon Schmid 6ec31afcb1 Fixed some protos. 2001-01-26 20:42:51 +00:00
Chuck Hagenbuch b4378dcf80 have DB::isError return true if passed "null". Now you can more consistently
use DB::isError(), since some of the db drivers return nulls from various
functions (like fetchRow()), and others don't... We should probably make all
of them just return errors. I did this for the mysql driver, as a start.
2001-01-26 20:07:22 +00:00
Egon Schmid a06f392ae4 Fixed some protos. 2001-01-26 18:52:38 +00:00
Uwe Steinmann dc1bcb790e - This is major change of the php pdf api to be closer to the pdflib api
done by Rainer Schaaf from pdflib GmbH.
- Some more functions has been implemented as well.
- backwards compatibility has been maintained a much as possible
2001-01-26 08:20:24 +00:00
Uwe Steinmann bcac88e8fb - changed naming of some functions (kept compatibility) 2001-01-26 08:15:57 +00:00
fa0b0286b8 ChangeLog update 2001-01-26 02:09:10 +00:00
Daniel Beulshausen a5064992e9 make msql build under win32 2001-01-25 22:07:31 +00:00
Hartmut Holzgraefe 7ca330741b gd didn't work if no WBMP was available after rev 1.107 -> fixed 2001-01-25 20:52:52 +00:00
Stanislav Malyshev 773b582b1a Fix crash in stdout image output
# Basically, this code sucks. It should use GD contexts, not temp files
2001-01-25 14:35:36 +00:00
f40c1eaeba ChangeLog update 2001-01-25 02:09:19 +00:00
d3aee7591f NEWS update 2001-01-25 02:09:16 +00:00
Sebastian Bergmann f703c4e178 Added my_winthread.c. Thanks to Thimble Smith. 2001-01-24 21:08:12 +00:00
Andrei Zmievski 585e76e121 Already done. 2001-01-24 19:16:43 +00:00
Ben Mansell b5d80647fc Added 'you must use gcc' comment to build instructions. 2001-01-24 18:20:35 +00:00
MySQL Team 5073b97ffb Don't #define HAVE_COMPRESS on windows. 2001-01-24 18:11:25 +00:00
Egon Schmid 5ad27928ac Protos fixed. 2001-01-24 09:42:17 +00:00
Derick Rethans c5b67e119c - Commited a patch that adds support for converting Images to WBMP format.
(Thanx to Denis Gasparin <denis@editnet.it>)
@- Added support for converting images from JPG/PNG on the fly with the GD
@  extension, which is usefull for creating dynamic WAP-sites (Derick)
2001-01-24 09:24:26 +00:00
f275ad0cbe ChangeLog update 2001-01-24 02:09:09 +00:00
Boian Bonev e7da11fd93 changed function names to be like vpopmail_add_user instead vpopmail_adduser
added vpopmail_error to report error string (vpopmail_errno global var)
put exec functions back in with _ex (vpopmail_add_domain_ex)
rewritten README to help users keep secure
fixed protos to state bool instead void return type
2001-01-23 21:46:04 +00:00
Colin Viebrock 35a1731c85 Forgot this too ... 2001-01-23 21:09:55 +00:00
Colin Viebrock f07b32969f Never added this ... 2001-01-23 21:08:13 +00:00
Thies C. Arntzen dd7eb4284b fix a couple of warnings 2001-01-23 17:55:17 +00:00
MySQL Team 800f555b70 Upgrade ext/mysql/libmysql to version 3.23.32. One notable bug fix is
that the client can now connect to a server which is using a default
charset other than latin1.
2001-01-23 16:48:50 +00:00
Thies C. Arntzen d36858681a #found this by playing with phpMyAdmin. 2001-01-23 15:30:27 +00:00
Thies C. Arntzen 373e830117 fixed crash in add_index_bool. 2001-01-23 15:30:18 +00:00
3ffba3d033 ChangeLog update 2001-01-23 02:09:14 +00:00
55f7053c00 NEWS update 2001-01-23 02:09:09 +00:00
jim winstead 36ef109f1a jouni was added as an author of the docs 2001-01-23 00:50:49 +00:00
Andrei Zmievski b56006b5b2 If we can't call custom replacement function, don't change the subject
string.
2001-01-22 22:05:04 +00:00
Andrei Zmievski 63f73bfe13 @- Improved str_replace() to accept an array for any parameter - similar
@  to preg_replace(). (Andrei)
2001-01-22 21:39:55 +00:00
Andrei Zmievski 57f99633ce Make add_index_zval() available to the outside world. 2001-01-22 20:40:41 +00:00
Andrei Zmievski 5afcfc4498 Don't need to check for out-of-memory condition. 2001-01-22 19:42:29 +00:00
Andrei Zmievski 5068444dfe Z-ify the source. 2001-01-22 19:29:44 +00:00
Daniel Beulshausen 7357ee8fa4 rename php_mssql70.dll to php_mssql.dll, as we have only one mssql extension 2001-01-22 19:15:32 +00:00
Andrei Zmievski 21aeba29d0 @- Fixed extract() to properly prefix numeric keys when EXTR_PREFIX_ALL is
@  used. (Andrei)
@- Added EXTR_PREFIX_INVALID flag to extract() to automatically prefix
@  string keys that do not constitute valid variable names. (Andrei)
2001-01-22 17:27:02 +00:00
a4e0f9371a ChangeLog update 2001-01-22 02:09:11 +00:00
544f79b30c NEWS update 2001-01-22 02:09:08 +00:00
Rasmus Lerdorf 0d0a8f55d6 Kill warning 2001-01-22 01:13:49 +00:00
Zeev Suraski 3793dc18f2 Sigh. Even less sleep than I thought :) Really fix it this time. 2001-01-22 01:10:21 +00:00
Zeev Suraski 9a02c9993d Too much work, not enough sleep... Fix hash lookup 2001-01-22 01:08:28 +00:00
Zeev Suraski fbbdb1ddf7 Update and pastify NEWS 2001-01-22 00:11:43 +00:00
Zeev Suraski 6255a24f1c Don't overwrite PATH_TRANSLATED if it exists 2001-01-22 00:06:52 +00:00
Rasmus Lerdorf 67cdb386a4 This probably should have a NEWS entry 2001-01-21 17:36:46 +00:00
Andi Gutmans 8769a693c9 - BeOS apparently doesn't have realpath(). Improve the previously
commited patch.
2001-01-21 17:35:31 +00:00
Rasmus Lerdorf 83cf6629ec @BeOS patch from svanegmond@bang.dhs.org modified somewhat by Rasmus
BeOS patch from svanegmond@bang.dhs.org modified somewhat by Rasmus
2001-01-21 17:29:15 +00:00
Andi Gutmans 3353ad7e6e - Make people happy who like the Zend version number bumped up in parallel
with PHP.
2001-01-21 11:43:34 +00:00
5c867551fe ChangeLog update 2001-01-21 02:09:12 +00:00
Sterling Hughes 95bf259c29 Fix the scheme handler support and make it compile on win32 systems. 2001-01-20 23:42:03 +00:00
Andi Gutmans ef95a346f1 - Patch from Sterling. Add API calls to add zval's as array indeces/
object properties. Add _ex functions which take the string length as an
  argument for better performance.
2001-01-20 19:16:38 +00:00
Sascha Schumann 5d03ac038d Revert last completely broken patch. 2001-01-20 10:10:50 +00:00
Chuck Hagenbuch dea0e01fa8 install the various HTML/* files 2001-01-20 05:39:26 +00:00
Rui Hirokawa d5550b4706 added: EXPERIMENTAL 2001-01-20 02:59:59 +00:00
5a233fb7c2 ChangeLog update 2001-01-20 02:09:19 +00:00
07413645f2 NEWS update 2001-01-20 02:09:16 +00:00
Jason Greene c14a3c5072 Desired functionality can be achieved with array_sum/array_count. 2001-01-19 22:55:41 +00:00
foobar ee73470370 @- Added URL support for getimagesize() function (Jani)
# tested with all imagetypes. Also the iptc works.
2001-01-19 16:52:40 +00:00
Sam Liddicott 60e8fa617a Added muscat to EXTENSIONS as it should be there all along
PR:
Submitted by:
Reviewed by:
Obtained from:
2001-01-19 16:12:36 +00:00
Sascha Schumann fd83f5e1a4 Bump PHP_API_VERSION 2001-01-19 16:04:27 +00:00
Derick Rethans 78c88541f1 - Added a notice about the wordwrap function fix
#- suggested by Jani for people depending on the buggy behaviour
2001-01-19 16:03:22 +00:00
Sascha Schumann 96ba644e9f Make the code match the comment.
Prior to this change, the upload code tried to add mangled names to
the global HTTP_POST_FILES array, resulting in all kind of weird behaviour.

After this change, multi-dimensional form elements are treated correctly
and consistently.
2001-01-19 15:39:35 +00:00
foobar 809bf95a90 Added some missing EXPERIMENTAL files plus some missing extensions
into EXTENSIONS file.
2001-01-19 13:43:41 +00:00
foobar 5dcf6618bc @- Added xslt_set_scheme_handler() function (carmelo@akooe.com) 2001-01-19 11:44:12 +00:00
Andi Gutmans 0a3761e283 - For Sterling. I wonder if not all of the API functions should take the
- key_length as a parameter in order to save that strlen().
2001-01-19 08:40:49 +00:00
2016ae4a79 ChangeLog update 2001-01-19 02:09:24 +00:00
7fe074d752 NEWS update 2001-01-19 02:09:21 +00:00
Derick Rethans 82d58bdc4a - Added the pg_lolseek function, which allows for arbitrary seeking within
a large object, and the pg_lotell call, which can be used to find the
  current file offset for a large object (Submitted by: Adam Haberlach
  <adam@newsnipple.com>).
@- Added the pg_lolseek and pg_lotell functions (Derick)
2001-01-18 22:17:05 +00:00
Derick Rethans 9a3cb4559f - Fix for bug #8367 (wordwrap not cutting correctly) 2001-01-18 21:46:24 +00:00
Sterling Hughes 405d11e604 Fix the proto 2001-01-18 20:49:12 +00:00
Alex Akilov ddf488970c Support AIX/HP shared lib extensions and j2sdk1.3.0 (hotspot) 2001-01-18 18:36:23 +00:00
Sam Liddicott ec966598f4 Some decent credits and such in the phpinfo page 2001-01-18 16:16:29 +00:00
foobar bdb2651c1d Fixed a typo. 2001-01-18 15:09:35 +00:00
Andrei Zmievski 4ea7ba79c5 @- Fixed 'O' and 'r' flags of date() to have correct sign for timezone
@  offset. (Andrei)
2001-01-18 14:36:43 +00:00
Sam Liddicott fd46d9ee9e Aghh. Despite my efforts two files still slipped through 2001-01-18 13:30:02 +00:00
Sam Liddicott 04d7c9815f First checkin of muscat/empower module; been using it here for some time
Developing using aegis and just checking in baseline from time to time

See samjam@php.net for questions
2001-01-18 13:21:34 +00:00
Stanislav Malyshev 66dafaa2c5 Libedit readline replacement support
# Comments are very welcome!
2001-01-18 11:42:09 +00:00
c334520377 ChangeLog update 2001-01-18 02:09:13 +00:00
b5dcd83664 NEWS update 2001-01-18 02:09:10 +00:00
Andrei Zmievski ccd94c4831 @- Changed 'Z' flag to date() to always return timezone offset with
@  negative sign if it's west of UTC. (Andrei)
2001-01-17 21:09:16 +00:00
Sean Bright 457888ac44 Put these back where they belong. They weren't necessary unless ZTS and
HAVE_LOCALECONV were both defined.
2001-01-17 20:37:49 +00:00
Andi Gutmans 62606e7789 - Fix leak in fetch_dim_address() which was already fixed in
- fetch_dim_object(). Take the oppertunity to make both use the same
- function and not duplicate the code.
2001-01-17 17:34:16 +00:00
Sterling Hughes db50ae2e7d Fix (well it works) the error display with sablotron. 2001-01-17 14:14:22 +00:00
Stig Venaas c927c254dd Making parallel search allow different filter for each link 2001-01-17 13:43:39 +00:00
Sascha Schumann 91b0e1a7a8 Fix vpath builds on freebsd 2001-01-17 12:32:45 +00:00
foobar 051dd6108c Make sablot compile again. Typo? 2001-01-17 11:43:17 +00:00
Rasmus Lerdorf f74998a783 Kill a couple of warnings 2001-01-17 06:40:48 +00:00
f5795a56de ChangeLog update 2001-01-17 02:09:11 +00:00
ebf4bf2165 NEWS update 2001-01-17 02:09:08 +00:00
Sean Bright 19689013de Updated configure.in to look for strcoll()
# Woopsie.
2001-01-17 01:15:11 +00:00
Sean Bright a588d65591 Added string comparison function strcoll(). It uses the current locale to
do the comparisons.
@- Added localeconv() and strcoll() functions for localization. (Sean)
2001-01-17 01:10:50 +00:00
Zeev Suraski b8b40f697e Fix persistent resources, once and for all... 2001-01-16 23:49:16 +00:00
foobar 625978cd9c Fixed bug #8733 2001-01-16 22:34:19 +00:00
Rasmus Lerdorf 69abc1e9d7 Kill some warnings 2001-01-16 20:37:51 +00:00
Sterling Hughes fa0727e794 @ Added the xslt_set_base function. (Sterling)
Added the SABLOT_SET_ERROR() macro to set sablotron errors...
2001-01-16 12:02:47 +00:00
Ben Mansell 12537e9787 @ Support Zeus 3.3.8
Added changes to environment variable manipulations, to support Zeus 3.3.8
and increase compatibility between Zeus/IIS/Apache. Now, URLs like
http://foo.org/file.php/a/b/c/d work correctly.
# While testing, it looks like IIS+ISAPI is mishandling URLs like the above.
# The PATH_TRANSLATED given by ISAPI includes the /a/b/c/d bit of the URL,
# so using this var to find the script file to open on disk will not work.
# We now use SCRIPT_FILENAME if it is present (in Zeus 3.3.8)
# IIS doesn't seem to set this variable, it might be necessary to mangle
# SCRIPT_NAME and APPL_PHYSICAL_PATH together?
2001-01-16 10:44:52 +00:00
af6cef27b1 ChangeLog update 2001-01-16 02:09:13 +00:00
4fb349c626 NEWS update 2001-01-16 02:09:10 +00:00
Zeev Suraski a910f8cc80 Fix output dir 2001-01-15 15:16:30 +00:00
Zeev Suraski 9877acdb32 - Implement CompareStringWithFile()
- Remove a stupid NULL assignment that slipped in the last commit
2001-01-15 15:13:50 +00:00
Zeev Suraski 47ea52ca58 - Implement quick file comparing routine
- Fix crash - wait on the threads themselves, not on Event objects.
  It takes time between the time a thread signals the event, and the
  time it actually terminates (shutdown code) - so FreeLibrary() and
  the main() termination could occur before all of the threads
  terminated...
2001-01-15 14:55:30 +00:00
Sascha Schumann f6eae19147 Try harder to push data through the wire.
I just learned that the AOLserver module will be used for a 100k users
webmail service.  Wheee!
2001-01-15 14:48:14 +00:00
Egon Schmid 57d200c21b Some protos fixed. 2001-01-15 12:01:34 +00:00
Zeev Suraski 0e08845eb0 Add free_estring() 2001-01-15 10:52:06 +00:00
Zeev Suraski d294f46f5a - Remove the ini_extension_list global
- Switch to delayed loading of Zend extensions
2001-01-15 10:52:02 +00:00
Zeev Suraski f8522c7fa9 Use free_estring() 2001-01-15 10:50:39 +00:00
Zeev Suraski 0592feb2a1 Nuke a couple of warnings 2001-01-15 10:48:48 +00:00
Zeev Suraski 90c8e2cf75 Fix Win32 build 2001-01-15 10:22:19 +00:00
Sascha Schumann db0b8bc05b Defer loading of extensions until all configuration entries have been
added to the configuration hash.
2001-01-15 03:21:05 +00:00
David Croft 5951b8063a restored vadddomain/vdeldomain to use library functions rather than invoking
vpopmail executables
implemented vaddaliasdomain natively
global variable to store whether vpopmail was used and only vclose() if
 necessary
return the functions to returning true/false for success/failure rather than
 some arbitrary vpopmail return value
return the functions to not doing everything at once as you then lose
 fine-grain control over its operation
change C++ comments to C
2001-01-15 02:14:13 +00:00
c6ffb5389e ChangeLog update 2001-01-15 02:09:12 +00:00
8023907941 NEWS update 2001-01-15 02:09:09 +00:00
Shane Caraveo 42b1b44ad4 test now produce valid OK or FAIL. 2001-01-15 01:52:47 +00:00
Shane Caraveo ebe94513cc dont do results if not using test files 2001-01-15 01:17:44 +00:00
Shane Caraveo 1d40310fa4 clean up temp files 2001-01-15 01:13:51 +00:00
Stig Bakken fcdf6ac680 @- Added odbc_error() and odbc_errormsg() functions (Stig) 2001-01-15 01:11:06 +00:00
Shane Caraveo c88be3f8b3 check files open 2001-01-15 00:57:16 +00:00
Shane Caraveo 833ba12664 fix file reading, add results 2001-01-15 00:56:23 +00:00
Shane Caraveo dd01542bad Multithreaded stress test program for isapi module now supports phpt files
still stuff to do before it's realy done, but does run the tests, just need
to get it to compare results right now.
2001-01-15 00:29:49 +00:00
David Croft 646e796e5a vpopmail's bin dir is unnecessary as the library exports these functions 2001-01-14 22:21:16 +00:00
Boian Bonev 487f211fcf #added simple minimum survival readme 2001-01-14 17:38:30 +00:00
Boian Bonev bd92e10213 merged my version with David Croft's
removed unneccessary php.ini calls and defines
removed module_init, shutdown, request_init declarations and references
added request_shutdown to close mysql/other db connection
	(a must in apache module)
added defines for external binaries from vpopmail
changed functions to present more consistent api from user's point of view
	so that in one call more stuff is done
added more comprehensive MINFO function helping users debug their case
added static int vpopmail_exec(char *cmd) [will change to php_Exec soon]
@ vpopmail extension updated to working alfa. give it a try but keep in
@ mind that it is not ready for production environments (Boian Bonev)
2001-01-14 17:04:22 +00:00
Boian Bonev f6ad8186d6 updated 2001-01-14 16:47:56 +00:00
Rasmus Lerdorf e37d304d35 Name this php_Exec instead 2001-01-14 16:41:06 +00:00
Boian Bonev ef462402f4 rewritten the whole logic of the script
added VPOPMAIL_BIN_DIR to point to ~vpopmail/bin directory
added checks for ALL files needed by the extension
style fixes to the output
2001-01-14 16:40:26 +00:00
Sean Bright 40f3524247 Added localeconv() function. Operates similarly to localeconv() defined in
locale.h.  Should work well under non-ZTS as well as ZTS.
2001-01-14 16:36:30 +00:00
Rasmus Lerdorf 5311bfa5c5 Export _Exec for extensions to use 2001-01-14 16:30:22 +00:00
Thies C. Arntzen 6b84fb1cde fixed readfile() fd-leak.
guys, always remember that every function that *generates output* could cause a
bailout if ignore_user_abort is set to false (and the user _aborts_ the
connection). in this case a longjump will be performed and our function (in
this case readfile) will have no chance to clean-up. having said that it's a
good idea to register all opened files using REGISTER_RESOURCE - that way the
engine will make sure they get closed on request end.
2001-01-14 14:11:38 +00:00
Zeev Suraski 27afea5c6d Don't fetch numeric indices in mysql_fetch_object() 2001-01-14 09:30:17 +00:00
David Croft d9671d5d49 # restored code for latest vpopmail version
@ New extension for vpopmail - http://www.inter7.com/vpopmail (David Croft)
2001-01-14 09:01:26 +00:00
David Croft 560e218ee6 vpopmail extension 2001-01-14 08:54:01 +00:00
Rui Hirokawa c61a557808 added iconv_get_encoding and supported initialization from php.ini 2001-01-14 07:40:16 +00:00
David Croft 00db616ac4 reserve space for quoted characters
fixes buffer overrun bug #8694
2001-01-14 05:37:33 +00:00
c814b08536 ChangeLog update 2001-01-14 02:09:12 +00:00
e1f21f0be4 NEWS update 2001-01-14 02:09:09 +00:00
Zeev Suraski a85da45a66 Both thread-safe and thread-unsafe builds should be ok now 2001-01-13 23:49:44 +00:00
Zeev Suraski 94ca2181fb Add sybase_get_last_message() from Jan Fedak <J.Fedak@sh.cvut.cz>
@- Added sybase_get_last_message() to the Sybase CT module (Jan Fedak)
2001-01-13 22:47:44 +00:00
Derick Rethans 97510346ed - Removed a stale var that broke the build 2001-01-13 22:00:23 +00:00
Derick Rethans 1104639d0a - There was one ret left, changed it to FG(pclose_ret), this fixes the
build
2001-01-13 21:52:09 +00:00
Colin Viebrock 707e7bd938 Support for perl-compatible blowfish encryption (in libmcrypt CVS and
versions later than 2.4.8)
2001-01-13 20:55:15 +00:00
Zeev Suraski 86624dfad9 - Fix exec() bug
- Merge fsock and file globals
2001-01-13 13:59:22 +00:00
Zeev Suraski 93f4fa8d73 cleanup time... 2001-01-13 13:16:56 +00:00
Zeev Suraski 7b7d1d962d Remove some more useless code 2001-01-13 13:14:49 +00:00
Zeev Suraski fc1cdda10d Remove stale code 2001-01-13 13:10:50 +00:00
Zeev Suraski 6562e98afa Fix Windows & thread-safe build 2001-01-13 13:02:19 +00:00
Stig Venaas 30441cda5b Simplified code a bit, added detailed error reporting, and fixed a bug
when getaddrinfo returned a non-IP family before IP families
2001-01-13 11:48:47 +00:00
Sascha Schumann 5d8e3c37d9 arr_index errorneusly included the trailing ']' character, so that
variable names like Data_name[Image]] were passed to the register functions.
2001-01-13 10:19:17 +00:00
Sascha Schumann d0c2255750 Fix make install in VPATH builds 2001-01-13 10:02:08 +00:00
Stig Venaas d9f52a4176 Fixed memory leaks that could happen in some error situations. Also removed
some unnecessary code in ldap_set_option()
2001-01-13 10:00:27 +00:00
Stig Venaas fe98565b60 Realized that emalloc() never returns NULL, simplified code 2001-01-13 09:16:36 +00:00
0dccef294c ChangeLog update 2001-01-13 02:09:14 +00:00
6e7b42cd66 NEWS update 2001-01-13 02:09:10 +00:00
Stig Venaas 2d17c57664 Added parallel search when given array of link identifiers
@- Made ldap_list(), ldap_read() and ldap_search() do parallel search when
@  first parameter is an array of link identifiers (Stig Venaas)
2001-01-12 22:08:26 +00:00
Stig Venaas 5cf503b2a9 Follows redirects again, and $http_response_header now contains all headers
with an empty string as delimiter
@- Made fopen() of HTTP URL follow redirects, $http_response_header will
@  contain all headers with empty string as delimiter (Stig Venaas)
2001-01-12 20:49:25 +00:00
foobar ab6639564c - Fixed a possible crash bug in xmltree().
# PR: #7052
2001-01-12 16:49:06 +00:00
Chuck Hagenbuch 5faaf2436f Add HTTP_Compress::, which provides an easy wrapper around producing
gzip-compressed html. This should be ported to use the ob_gzhandler() output
handler, but I haven't had a chance to look into that yet.
2001-01-12 15:24:21 +00:00
Zeev Suraski dc45d88c47 Add newline 2001-01-12 11:14:46 +00:00
Sterling Hughes 0e6fe30139 Make daniel's changes work in ZTS mode... 2001-01-12 10:49:38 +00:00
Daniel Beulshausen 490cca07de take out emtpy struct
# vc chokes on them
2001-01-12 10:26:29 +00:00
Mika Tuupola 946fe57119 PR:
Submitted by:
Reviewed by:
Obtained from:
Added Image_Remote class.
2001-01-12 09:13:55 +00:00
Rasmus Lerdorf 69d16ee1f9 Fix for bug 6073 from Sean R. Bright <elixer@erols.com> 2001-01-12 08:03:24 +00:00
Rasmus Lerdorf b208f6bc7d Fix for bug number 8666 2001-01-12 06:55:57 +00:00
87f75b51e8 ChangeLog update 2001-01-12 02:09:18 +00:00
910ac866a1 NEWS update 2001-01-12 02:09:15 +00:00
Andrei Zmievski 1346295d86 @- Added Console_Getopt class for parsing command-line args. (Andrei, PEAR) 2001-01-11 18:38:26 +00:00
foobar a8e88c0ddc Fix build. 2001-01-11 18:25:33 +00:00
foobar 1fc035dfa5 If external expat is used, header file is expat.h 2001-01-11 16:19:20 +00:00
Daniel Beulshausen 29714ff530 removed old expat libs 2001-01-11 14:50:52 +00:00
Sterling Hughes 5a610cecef Housekeeping... 2001-01-11 09:35:14 +00:00
dbb15ec671 ChangeLog update 2001-01-11 02:09:15 +00:00
Rui Hirokawa 0841703c32 *** empty log message *** 2001-01-10 14:42:23 +00:00
Rui Hirokawa c2881f7c6b disable directory search for libexpat and disable some macros for libxml-1.95. 2001-01-10 14:41:01 +00:00
Sascha Schumann ae92ebb92b Especially on FreeBSD it seems to be common that send(2) does not
do a decent job.  We handle that better now.
2001-01-10 13:51:58 +00:00
Thies C. Arntzen 6871b839b5 exec'd processes now get cleaned up even if the browser connections was
aborted.
fixes: #8143
2001-01-10 13:08:14 +00:00
David Croft 2b3d9d7ec4 fixed swatch internet time (bugs#8242,7106) 2001-01-10 06:48:06 +00:00
David Croft 0afe88cbc6 Allocate buffer in date() for the actual length of the timezone (bug#8292) 2001-01-10 04:01:02 +00:00
b161bc1593 ChangeLog update 2001-01-10 02:09:11 +00:00
501774946a NEWS update 2001-01-10 02:09:08 +00:00
Stig Bakken a929ef223b * renamed PEAR scripts
* set localstatedir
2001-01-10 01:34:40 +00:00
Stig Bakken 97173871d0 added .cvsignore file 2001-01-10 01:21:04 +00:00
Stig Bakken 6792978aed * updated copyrights (thanks Colin)
* moved scripts to own directory (bug #7635)
2001-01-10 01:01:59 +00:00
Rui Hirokawa c172daa6d1 added a option to dedine libexpat install directory (by Jani Taskinen) 2001-01-09 22:15:56 +00:00
0c7e7324bc *** empty log message *** 2001-01-09 21:47:47 +00:00
Colin Viebrock 4f43188762 I should learn how to spell
PR:
Submitted by:
Reviewed by:
Obtained from:
2001-01-09 21:15:26 +00:00
Colin Viebrock b09b97ff4b Now the coding standards are defined elsewhere ...
PR:
Submitted by:
Reviewed by:
Obtained from:
2001-01-09 21:12:55 +00:00
Sterling Hughes f058a07915 Move the definition of the xslt_set_encoding to the "proper" place in the file and
fix the prototype.
2001-01-09 20:17:11 +00:00
Jon Parise b0234843f8 Update the copyright year range to 1997-2001. 2001-01-09 17:42:40 +00:00
Sascha Schumann 7eb8469679 Avoid possible memory leak in the URL scanner, if the connection is
interrupted during writing the output.
2001-01-09 16:45:19 +00:00
Egon Schmid 8d5d20500b Sorry, two lines are enough. 2001-01-09 15:53:09 +00:00
Egon Schmid 6aef38f590 Fixed protos. 2001-01-09 15:48:15 +00:00
Rui Hirokawa 187828f2f2 moved to ext/iconv. 2001-01-09 15:40:49 +00:00
Rui Hirokawa 0acff20f38 added test code to iconv. 2001-01-09 15:39:25 +00:00
Rui Hirokawa 4e035d035a move iconv related functions to separate iconv extension. 2001-01-09 15:22:45 +00:00
Rui Hirokawa 0afcb03de3 added iconv extension. 2001-01-09 15:11:23 +00:00
Thies C. Arntzen 0719e7e006 @- Allow access to uploaded files in safe_mode. Beware that you can only
@  read the file. If you copy it to new location the copy will not have the
@  right UID and you script won't be able to access that copy. (Thies)
2001-01-09 11:58:57 +00:00
foobar e247b206e0 If TZ environment variable is changed call tzset().
# Although man page for tzset() says it should be called automaticly
# by some of the time related functions, IRL this doesn't happen.
# PR: 3977, 4732, 5510, 6972, 7203, 8502, 8609
2001-01-09 09:02:21 +00:00
Sascha Schumann de847f60ba Propagate the response code/HTTP status code back to thttpd for logging. 2001-01-09 09:01:33 +00:00
Sascha Schumann 7dd166e8c0 Account the number of sent bytes properly 2001-01-09 08:45:05 +00:00
Hartmut Holzgraefe 574eaa8ed4 fix for Bug id #8606 2001-01-09 07:28:27 +00:00
Sascha Schumann dbb3402c0f php_add_var_hash() uses sizeof(id) in the calls to zend_hash_*, implying
that all bytes in the character array have been set (they are used
to compute the hash value using hashpjw).

The function assumes that sprintf's %p modifier would always prefix
the output with "0x".  On HPUX, this is not the case.  Hence, not
all bytes may be properly initialized before being read.

This has been addressed by using only initialized bytes as the key.
2001-01-09 05:49:37 +00:00
Sascha Schumann 426d4104ea Make Apache 2.0 filter build again 2001-01-08 23:18:47 +00:00
Sascha Schumann 7fbc93d57f WS fix 2001-01-08 23:18:07 +00:00
Sascha Schumann 6a6317a403 Fix ZTS build (broken by iconv-related changes). 2001-01-08 23:13:57 +00:00
Andrei Zmievski 145f60a485 @- Changed extract() to check that prefixed name is a valid one. (Andrei)
Changed extract() to check that prefixed name is a valid one.
Optimized extract() a bit too.

# It'd be nice if someone made regression tests for extract().
2001-01-08 21:57:14 +00:00
Derick Rethans aff9ff8356 - Fix for bug #8535 - floating point exception on FreeBSD while initializing
crypt random numbers
2001-01-08 21:13:24 +00:00
Andrei Zmievski 74175e429d @- Changed extract() to return the number of variables extracted. (Andrei) 2001-01-08 20:57:59 +00:00
Stanislav Malyshev b06323cd6e Optimize it a bit - no need to dup empty string (which can be pretty common for .ini) 2001-01-08 20:13:32 +00:00
Stanislav Malyshev 77ebea3a6f Duplicate property value, otherwise parser would free it and we're in bad shape. 2001-01-08 20:10:16 +00:00
Stanislav Malyshev d812ecb75f Fix undefind filehandle type on INI parsing. 2001-01-08 19:45:12 +00:00
Egon Schmid 40a71cfdc7 Corrected some protos. 2001-01-08 18:31:59 +00:00
Stig Venaas 897f293d13 Added ldap_rename(). Currently requires API with ldap_rename().
@- Added ldap_rename() function (Stig Venaas)
2001-01-08 18:13:08 +00:00
Stig Venaas 735b8ed6ed *** empty log message *** 2001-01-08 17:18:56 +00:00
Stanislav Malyshev c7984660fc Use platform's dir separator 2001-01-08 16:39:39 +00:00
Rasmus Lerdorf 7d6d09ec3b Test ACL commit 2001-01-08 05:20:55 +00:00
Stig Bakken 3d158a845c * display a notice when downloading 2001-01-08 02:54:35 +00:00
Stig Bakken c43cad2f40 * no need for this test file anymore 2001-01-08 02:48:35 +00:00
Stig Bakken 12d0b86803 * updated DB status
* updated the "pear" script, it can install basic packages now
2001-01-08 02:45:30 +00:00
Rui Hirokawa 6368933118 added iconv_set_encoding() to change the encoding setting. 2001-01-08 02:39:52 +00:00
75eea8ed1b ChangeLog update 2001-01-08 02:09:15 +00:00
560c9cee30 NEWS update 2001-01-08 02:09:09 +00:00
Rui Hirokawa 517b81ad43 added a output handler function ob_iconv_handler which tranforms output encoding using iconv(). 2001-01-08 01:40:33 +00:00
Shane Caraveo b2cb9ac8fe ignore blank lines 2001-01-08 01:14:49 +00:00
Shane Caraveo d0dbf1ea57 my mistake...freed in a different function. 2001-01-08 00:35:05 +00:00
Shane Caraveo 65eac44f69 be sure to unlock that mutex before returning! 2001-01-08 00:32:18 +00:00
Shane Caraveo 0a1d3aa108 add notes on this program 2001-01-08 00:10:06 +00:00
Shane Caraveo a1c3f92ac7 stresstest is based on cgiwrap. it can be used to debug php4isapi.dll without
the use of an actual web server.
2001-01-07 23:52:18 +00:00
Shane Caraveo f1afd6f487 define flag to turn off exception handling 2001-01-07 23:45:24 +00:00
Stig Venaas 7e79846d10 Added OpenSSL 2001-01-07 21:35:20 +00:00
Stig Venaas 742d339d93 Changed OpenSSL requirements from 0.9.6 to 0.9.5 2001-01-07 21:21:12 +00:00
Stig Venaas 0ecaf2eac6 Minor changes to LDAP_OPT constants, and added support for controls to
ldap_set_option.
@- Made ldap_set_option() support controls (Stig Venaas)
2001-01-07 21:18:02 +00:00
Zeev Suraski 0301041f79 Fix mismatch in return values 2001-01-07 19:04:02 +00:00
Zeev Suraski c4d673a1f9 Fix possible startup crash 2001-01-07 18:56:40 +00:00
Zeev Suraski ceec9203a1 Fix CGI build 2001-01-07 18:56:24 +00:00
Zeev Suraski 903018ef36 - Remove backward dependency from PHP -> Zend
- Rename get_ini_entry() as get_configuration_directive() for clarity
  (it doesn't use the INI subsystem, but the module-supplied function for
  retrieving configuration directives)
2001-01-07 18:39:11 +00:00
Zeev Suraski 7235542cee Change get_ini_entry to get_configuration_directive 2001-01-07 18:38:38 +00:00
Zeev Suraski 5f6bc23931 Remove -S option on all bison calls 2001-01-07 18:31:55 +00:00
Zeev Suraski 412939dd0c Add Release_TSDbg to TSRM as well 2001-01-07 18:28:03 +00:00
Derick Rethans 62375ba7bd - Fix for bug 7035, regarding PHP_MAX_SALT_LENGTH for OpenBsd 2001-01-07 17:22:17 +00:00
Stig Venaas 1b3385cad8 Added LDAPv3 stuff. ldap_search() now treats LDAP_ADMINLIMIT_EXCEEDED like
LDAP_SIZELIMIT_EXCEEDED and returns referral results.
Added new functions ldap_parse_result(), ldap_first_reference(),
ldap_next_reference() and ldap_parse_reference() that among other things
make referrals and search references accessible.
@- Changed ldap_search() and added functions ldap_parse_result(),
@  ldap_first_reference(), ldap_next_reference() and ldap_parse_reference()
@  to cope with LDAPv3 stuff like referrals and references. (Stig Venaas)
2001-01-07 13:03:11 +00:00
Sascha Schumann 3f2a3a9b01 Fix ZTS build which was broken by the last commit 2001-01-07 12:22:50 +00:00
Thies C. Arntzen d79071b2da fix small leak in ociexecute()
fixes: #8573
submitted by: tcarroll@chc-chimes.com
2001-01-07 11:43:07 +00:00
Stig Venaas 59fa3f3d04 Made OpenSSL extension work with 0.9.5 and changed version check to 0.9.5 2001-01-07 11:36:15 +00:00
Sascha Schumann 1b15d1f166 Use MAKE_STD_ZVAL/FREE_ZVAL to handle zval memory allocation. 2001-01-07 10:42:15 +00:00
Sascha Schumann 41cd55dd44 Add a new test and refine the fourth test 2001-01-07 10:40:41 +00:00
Sascha Schumann 24c49a21b9 Use zval_ptr_dtor instead of zval_dtor/FREE_ZVAL pair.
Submitted by: Andi Gutmans
2001-01-07 10:32:06 +00:00
foobar 9f68043524 Fixed bug: 8478 2001-01-07 09:22:53 +00:00
foobar dd2cd995cb imap_user and imap_password were freed too early.
PR: 8424
2001-01-07 07:47:46 +00:00
Jon Parise e14aeb8668 Fix typo. This one was my fault, anyway. 2001-01-07 05:24:21 +00:00
Chuck Hagenbuch fc289c973a list the correct modeline for vi. 2001-01-07 04:39:27 +00:00
Zeev Suraski 1f23e50789 Fix possibility of a crash during startup (very unlikely, but possible) 2001-01-07 02:47:32 +00:00
b7944539a4 ChangeLog update 2001-01-07 02:09:09 +00:00
Zeev Suraski bcf179d047 Remove -S 2001-01-06 20:11:22 +00:00
Andi Gutmans 572e0b78fb - This slipped in by mistake. 2001-01-06 09:56:36 +00:00
Rui Hirokawa 337edb9cf4 fixed option name mismatch. 2001-01-06 08:38:07 +00:00
Rui Hirokawa 20aa57ec0d linked with libexpat. it's necessary to use sablot-0.50. added xslt_set_encoding() function. 2001-01-06 08:37:00 +00:00
56ffa5723c ChangeLog update 2001-01-06 02:09:11 +00:00
Frank M. Kromann e4d1107058 Adding hack to allow odbc_tables to work on Access databases 2001-01-05 22:01:22 +00:00
Chuck Hagenbuch 6005910da2 add File/Passwd.php to the install rules, and change the class name to
File_Passwd to match our standard.
2001-01-05 20:05:27 +00:00
Chuck Hagenbuch 12f2d57caa revert Jon's patch, leaving only the correct one. 2001-01-05 20:03:01 +00:00
Jon Parise 41f165e022 $from_arr is a two-dimensional array here. Treat it as such.
Submitted by: Max Kalika <max@the-triumvirate.net>
2001-01-05 19:59:00 +00:00
Chuck Hagenbuch 6e9061f40a make sure we get back a flat array from parseAddressList(). 2001-01-05 19:53:01 +00:00
Jon Parise 7c4e41f855 Fix the substitution of PEAR_INSTALLDIR. (@PEAR_INSTALLDIR@ in pear/PEAR.php.in) 2001-01-05 18:37:01 +00:00
Daniel Beulshausen 315e790ccc remove stupid ifdef's 2001-01-05 18:09:43 +00:00
Daniel Beulshausen 4d25067387 finally remove -S option from bison
# bison.simple should be stored in the same folder or
# set the 'bison_simple' variable which points to the file
2001-01-05 18:06:24 +00:00
Daniel Beulshausen be5cfa608a fixed date not allocating enough buffer, bug 7963 2001-01-05 17:34:47 +00:00
Daniel Beulshausen fe8238e6e9 include config.w32.h under win32 2001-01-05 17:07:02 +00:00
Daniel Beulshausen 0d258cc523 make threaded apache module build again 2001-01-05 17:00:07 +00:00
Zeev Suraski aae9e7ee59 Merge in some ZEND_API additions from Daniel Beulshausen (needed for the
Win32 Apache module)
2001-01-05 15:01:15 +00:00
Andi Gutmans 5e5c59ebcb - Get rid of C++ comments 2001-01-05 14:34:15 +00:00
Uwe Steinmann db56ddb36c - fixed potential segmfault in xmldoc() and xmldocfile() 2001-01-05 14:11:19 +00:00
foobar 3cb57374a8 Added missing ieeefp.h. (This is needed e.g. by nsapi on some systems) 2001-01-05 11:07:52 +00:00
Rui Hirokawa 32c3af8c39 added libxml-1.95 support and some new functions related to namespace support. changed config.m4 to support xml extension as shared module. 2001-01-05 06:36:51 +00:00
Chuck Hagenbuch 4fe3182b1f initial coding standards doc for all to argue over. 2001-01-05 05:46:59 +00:00
7583c6177d ChangeLog update 2001-01-05 02:09:11 +00:00
Frank M. Kromann 2c3f424e01 Fixing wrong return value when executing statements not returning a record set. 2001-01-04 17:29:50 +00:00
Chuck Hagenbuch 542fa4eace fix the Log::factory() method to assume that the Log stuff is in the
include_path (like all of PEAR does).
2001-01-04 15:56:05 +00:00
Jan Borsodi db0be122d2 Added credits. 2001-01-04 12:35:48 +00:00
Jan Borsodi b849be0b02 Removed some stupid header text.
Implemented functions for returning the error string and starting and stopping the message handler.
Added comments for all functions.
2001-01-04 12:30:20 +00:00
Jan Borsodi fb9c918f1a Removed some stupid header text.
Added a new struct for handling error logs and Qt Message Handler handles.
Added functions for returning the error string and starting and stopping the message handler.
2001-01-04 12:29:08 +00:00
Jan Borsodi 0798a81739 New function qdom_error which returns the error text from the last qdom operation, or FALSE if none occured.
Fixed the documentation for the qdom_tree function.
Added init and shutdown code for some global variables.
Added code for starting and stopping the Qt Message Handler in qdom_tree.
2001-01-04 12:27:39 +00:00
Jan Borsodi c178c3b5e4 New function qdom_error which returns the error text from the last qdom operation, or FALSE if none occured. 2001-01-04 12:26:22 +00:00
Jouni Ahto abcdb47fc2 Changing my email address... 2001-01-04 11:15:35 +00:00
Andi Gutmans e976d8ed1d - Make plist_destructor work like list_destructor to allow it to call
extended destructors.
2001-01-04 06:20:26 +00:00
69f0255a2c ChangeLog update 2001-01-04 02:09:09 +00:00
Zeev Suraski f3258b2426 Fix another case of possible line number corruption 2001-01-03 23:00:01 +00:00
Zeev Suraski 43a7643453 Fix last couple of problematic execution paths that could corrupt the INI values 2001-01-03 22:45:11 +00:00
Chuck Hagenbuch b83ee202c4 Mail.php: use the Mail_rfc822:: class to parse addresses. There is a small
performance penalty, but it handles rfc822 groups, which
imap_rfc822_parse_adrlist doesn't.

rfc822.php: Style fixes, some small tweaks/optimizations, and work around a
bit of object weirdness that caused the test for $this (to see if we were
being called statically) to not be sufficient.
2001-01-03 18:24:20 +00:00
foobar cc51599f4a Added better checking for OpenSSL's libraries. Now configure stops
if the libs aren't found.
# bug report #8365
2001-01-03 18:12:06 +00:00
Jon Parise 8dca8f0e69 Make socket support compile under Solaris 8 with the Sun WorkShop compiler.
PR: 8468
2001-01-03 18:06:10 +00:00
foobar e4a946b3f4 I missed this function.. 2001-01-03 16:53:00 +00:00
foobar d52824c42d Fix pr #8305. 2001-01-03 16:07:55 +00:00
foobar 31a1c0aca6 Trying to bring pdf extension a bit more up to date. 2001-01-03 16:05:45 +00:00
Daniel Beulshausen 2f6a05ecb8 fix filepath handling 2001-01-03 15:50:20 +00:00
Chuck Hagenbuch 3ef382dfcd add Numbers/Roman.php, Net/Curl.php, and XML/RPC.php to the install rules. 2001-01-03 15:13:29 +00:00
Zeev Suraski 60776dbeeb Fix Apache module and remove excess elements from the SAPI structure 2001-01-03 11:56:00 +00:00
Daniel Beulshausen 795025e0dc fix bug 8341 & 8394 2001-01-03 11:41:31 +00:00
foobar c5da386dbd Fix compile. 2001-01-03 11:39:09 +00:00
Stanislav Malyshev ea46f79a97 Fix #8486 (name= without quotes in MIME Content-Disposition header)
Ported fix by kk/sas from PHP 3
2001-01-03 10:52:26 +00:00
Zeev Suraski 6b23ef6cef Commit missing declaration 2001-01-03 08:35:23 +00:00
Chuck Hagenbuch b7c12ab483 add allan@lodestone.co.za's Date_Human calculator class. 2001-01-03 05:14:39 +00:00
Chuck Hagenbuch 29854e9555 here's an initial version of Richard Heyes' rfc822 email address parser. 2001-01-03 05:10:42 +00:00
cec2d1f302 ChangeLog update 2001-01-03 02:09:16 +00:00
fe8a8444bd NEWS update 2001-01-03 02:09:13 +00:00
Zeev Suraski efab051391 Import COM patch from Harald Radi <h.radi@nme.at>
The new code should allow for better international support.
2001-01-02 23:08:20 +00:00
Zeev Suraski bd0ac7fe14 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.
2001-01-02 22:49:31 +00:00
Stig Venaas 348f6c609c I think the order is wrong, switched order of ssl and crypto libs 2001-01-02 22:40:03 +00:00
Jon Parise 175cf6b08a Make this comment readable. 2001-01-02 21:37:21 +00:00
Chuck Hagenbuch ba114dc997 Make the generated <input> lower case and terminated with a /,
to be xhtml-compliant.
2001-01-02 20:39:27 +00:00
Rasmus Lerdorf a35b9c45f5 Fix date('r') overflow
@Fix date('r') overflow
2001-01-02 20:26:51 +00:00
Andi Gutmans 7b5138035c - Remove unreachable code 2001-01-01 17:59:08 +00:00
Zeev Suraski 18603033fb Fix possible corruption in line number information 2000-12-30 15:32:12 +00:00
Zeev Suraski 0048312fa6 Fix a few possible bugs:
- engine=off in one or more vhosts could propogate to other vhosts
- Under some error situations, the default values for INI directives
  could be erroneously replaced for a single request
2000-12-30 00:38:47 +00:00
Stig Venaas c5b11042b0 Hopefully solves some bad behavior in array_unique(), array_intersect()
and array_diff(). Now using SORT_STRING instead of SORT_REGULAR
@- Fixed misbehavior of array_unique(), array_intersect() and array_diff();
@  could in certain cases give wrong result or segfault (Stig Venaas)
2000-12-28 23:50:42 +00:00
Dan Kalowsky fbbaf5b5b5 it seems one section was missing the HAVE_SOLID_30 section... 2000-12-28 22:01:50 +00:00
Dan Kalowsky 8b2dbfca77 added #define(OPENLINK) to the SDWORD instead of SQLINTEGER line.. this is for bug #5526 to allow compiles. 2000-12-28 19:23:09 +00:00
Dan Kalowsky 68fa8f9b0b config file was missing a new line which seemed to cause the if statement to parse the else into an echo. yuck. 2000-12-28 19:12:28 +00:00
Rasmus Lerdorf 2a926135a9 Fix typo 2000-12-28 17:25:11 +00:00
Stanislav Malyshev cf66091554 Add license info 2000-12-28 12:13:21 +00:00
foobar b0adbf8aff Added the arg_separator directive. 2000-12-28 09:36:56 +00:00
Holger Zimmermann 7af7199a17 Minor update regarding new phpinfo table format. Moved pi3web_sapi.h to the sapi module.
PR:
Submitted by:
Reviewed by:
Obtained from: Pi3Web
2000-12-28 08:31:42 +00:00
a0e3802663 ChangeLog update 2000-12-28 02:09:10 +00:00
Jon Parise 4e384e0073 Make nl2br() output <br /> instead of <br> to be XHTML compliant.
Bug: 8390
2000-12-28 01:02:44 +00:00
Zeev Suraski 54d53055c2 Make the INI mechanism thread safe (or at least thread safer :) 2000-12-27 15:43:15 +00:00
Zeev Suraski 338b9b0819 - Make the INI mechanism thread safe (fix necessary API changes from Zend)
- Make the Win32 non-TS configuration build again
2000-12-27 15:43:05 +00:00
Andrei Zmievski 34f5c0c36d Fix argument check (bug #8421). 2000-12-27 13:59:40 +00:00
76a69dfa13 ChangeLog update 2000-12-27 02:09:09 +00:00
Zeev Suraski 6f6e13de54 Use iostream.h instead of istream.h (IBM's compiler doesn't come with istream.h,
and iostream.h should include it)
2000-12-26 23:05:55 +00:00
Zeev Suraski a697d076bc Add Release_TSDbg support. This mode compiles PHP with the release C runtime,
but with optimizations disabled and with debug info.  Some crashes can only
be debugged using this mode.
2000-12-26 22:15:32 +00:00
Zeev Suraski dc2f1d9db7 - Use supplied istdiostream definition for the INI scanner too
- Add Release_TSDbg configuration
2000-12-26 22:15:13 +00:00
David Croft f4a53d0665 #remove cvs [dollar] ID from changelog 2000-12-26 13:22:31 +00:00
d4ff503e3d ChangeLog update 2000-12-26 02:09:09 +00:00
658903cde0 ChangeLog update 2000-12-25 02:09:10 +00:00
Sascha Schumann 60492fa685 Skip mcrypt/gmp tests, if the extensions are not available. 2000-12-24 16:51:04 +00:00
Sascha Schumann 8e22a8a73b Add session_set_save_handler test 2000-12-24 16:33:27 +00:00
Sascha Schumann 3ca8721e99 More instances of s/efree/FREE_ZVAL/ 2000-12-24 16:30:42 +00:00
Sascha Schumann 7574cd4360 Not freeing the zval using FREE_ZVAL caused a segfault in
shutdown_memory_manager.
2000-12-24 16:26:38 +00:00
Sascha Schumann 80ff1a3874 Also call some member functions of the deserialized objects 2000-12-24 16:06:32 +00:00
Sascha Schumann 971e3a6473 Run run-tests.php in srcdir and add top_builddir/pear to the include
path (does not seem to work though yet.  The include path does not
seem to get changed at all).
2000-12-24 16:03:16 +00:00
Sascha Schumann 72f99e668e Add session object deserialization test 2000-12-24 16:01:32 +00:00
Sascha Schumann 5722a0e1ce Add two regression tests for the session module 2000-12-24 15:57:05 +00:00
Sascha Schumann 3a16dc1cac Fix segfault introduced through recent zend_hash_get_current_key* changes. 2000-12-24 15:50:39 +00:00
Zeev Suraski b8be713dd5 This needs updating as well 2000-12-24 15:37:39 +00:00
Sascha Schumann a1322e145c Sync the expected output with Linux dirname output. The test passes now.
Perhaps this should be split into two tests, because the
Win32 paths don't work properly with PHP's dirname on Unix.
2000-12-24 14:40:37 +00:00
Sascha Schumann 14c195a6d8 Fix "make test" in VPATH environments 2000-12-24 14:24:04 +00:00
Thies C. Arntzen 1fb4c6dfe8 revert last fix. the problem is now fixed globally in Zend. 2000-12-24 10:58:44 +00:00
5e4b86d1e8 ChangeLog update 2000-12-24 02:09:07 +00:00
Zeev Suraski cec94760fd More aggressive protection in call_user_function_ex() 2000-12-24 00:29:14 +00:00
Thies C. Arntzen 009064bc4d fix #8363.
fix call_user_function when parser->object is not set.
2000-12-23 21:46:44 +00:00
Sascha Schumann 9defdc6fbb Pass some more variables to AC_SUBST as those are needed for Apache 1.3's
libphp4.module.in.
2000-12-23 13:17:36 +00:00
Zeev Suraski f052eab681 Fix a possible crash bug in call_user_function_ex(), if the function is
in fact not a user function
2000-12-23 12:54:42 +00:00
24361033ed ChangeLog update 2000-12-23 02:09:12 +00:00
Sascha Schumann 92f61634eb (PHP session_unset) Return early, if no session was started.
PR: #8354
2000-12-22 22:53:14 +00:00
Sascha Schumann 0b194cbca6 Support multi-char arg separators.
PR: #8274
2000-12-22 22:52:11 +00:00
Sascha Schumann c334058412 Set the floating-point exception mask on FreeBSD to 0 (as do other
FreeBSD system applications).  Also bump up the module API number
as the zend_hash_get_current_key change affects source and binary
compatibility.
2000-12-22 21:11:34 +00:00
Sascha Schumann 9815d5c94c Signal an error condition, if write was unable to perform the complete
operation.
2000-12-22 19:26:02 +00:00
Sascha Schumann 663d426e74 NULL is a valid return value of mmap. Check against (void *) MAP_FAILED. 2000-12-22 16:39:01 +00:00
Sascha Schumann 3c9f50efaf (php_file_copy) Use mmap to map the source file into our address space
and then simply write it out to the target file.  That avoids switching
between user and kernel land too many times.  If that does not work, we
fall back to the read/write method.
2000-12-22 16:34:11 +00:00
Andrei Zmievski a1614b8411 (PHP preg_replace) Fix to allow proper escaping of captured subpattern
references in the replacement string.
(PHP array_sum) Check that argument is an array.
2000-12-22 16:31:42 +00:00
Zeev Suraski aa6d2ac5d0 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...
2000-12-22 12:57:09 +00:00
Zeev Suraski 36eaad252f Allow get_current_key() not to return the key itself, instead of a duplicate 2000-12-22 12:49:51 +00:00
Zeev Suraski 0fcce4a77a @* Fixed a possible crash in get_class_methods() (Zeev) 2000-12-22 12:08:04 +00:00
3e28346336 ChangeLog update 2000-12-22 02:09:12 +00:00
3185447c6b NEWS update 2000-12-22 02:09:09 +00:00
foobar c29e24c7e2 @- Changed setlocale() to use LC_* constants. (Jani) 2000-12-21 13:46:50 +00:00
Sascha Schumann 225a08e8dd No need for GCC extensions in non-debugging mode.
PR: #8345
2000-12-21 05:31:18 +00:00
Sascha Schumann e6f9ea5158 Some AC_SUBST substitutions were removed which are still needed.
Submitted by: Andrei Zmievski
2000-12-21 05:26:45 +00:00
30cb5f32f6 ChangeLog update 2000-12-21 02:09:07 +00:00
Chuck Hagenbuch 765b8435cb install the Math/* files. 2000-12-20 19:08:29 +00:00
Sascha Schumann 7f96af83b2 Stop automatically passing vars to AC_SUBST through PHP_SUBST.
There are some variables which are needed for Makefiles and files
created by AC_OUTPUT; we use PHP_SUBST_OLD for those now.

genif.sh was moved to an appropiate place.
2000-12-20 17:21:37 +00:00
Sascha Schumann 060e647e5e Speed up the genif.sh script a little bit. Whereas it took three seconds
previously, it takes now about 100ms on a P233.
2000-12-20 16:29:07 +00:00
Andi Gutmans 73c0f4b4c2 - Use memcmp() instead of ugly char-by-char compare 2000-12-20 15:51:16 +00:00
Zak Greant 9e9688d1de Removed unused variable from is_scalar 2000-12-20 11:07:20 +00:00
foobar 48552b1ba4 Note about fix under correct version. 2000-12-20 09:12:13 +00:00
7f25ef4700 ChangeLog update 2000-12-20 02:09:16 +00:00
ae2af0e14b NEWS update 2000-12-20 02:09:12 +00:00
Zeev Suraski 48b410c41e Add the QA team to the credits 2000-12-19 22:59:14 +00:00
Stanislav Malyshev 1d35ad33c6 Add support for ASP tags in one-line comment 2000-12-19 12:57:38 +00:00
Hartmut Holzgraefe 560a4c1105 @ ctype functions now follow the extension naming conventions (Hartmut)
# removed unneccesary code generated by ext_skel
2000-12-19 11:50:30 +00:00
Stanislav Malyshev f487f5960a Fix possible crash 2000-12-19 11:23:27 +00:00
Ron Chmara 5cc6344edc Updated to reflect recent discussions on php-dev. 2000-12-19 06:22:07 +00:00
aa6e16f495 ChangeLog update 2000-12-19 02:09:09 +00:00
foobar 402d60491b wb fix. 2000-12-19 00:14:58 +00:00
foobar c66c250c41 Fix pr: #7982 2000-12-19 00:12:58 +00:00
Zak Greant bbf41d2116 Adding test for is_scalar(). 2000-12-18 21:24:25 +00:00
Zak Greant e4ca57bb57 Added is_scalar() function. 2000-12-18 19:23:50 +00:00
Andi Gutmans 22854f8016 - No need to generate number.c and number.h anymore. 2000-12-18 16:53:46 +00:00
Andi Gutmans e2f33cb14f - Success! Yay! 2000-12-18 16:11:57 +00:00
Andi Gutmans e0f026c600 - Yet another one. 2000-12-18 16:10:08 +00:00
Andi Gutmans 0a300b9935 - Testing 2000-12-18 16:08:02 +00:00
Andi Gutmans 9e3fa59ac2 - No luck 2000-12-18 16:06:16 +00:00
Andi Gutmans 532210b5ac - Make this damn commit stuff work. 2000-12-18 16:05:12 +00:00
Andi Gutmans d3a04db0f2 - Testing 2000-12-18 16:00:15 +00:00
Stanislav Malyshev 63873aba37 Use HashPosition iterator instead of saving/restoring internal pointer 2000-12-18 15:06:03 +00:00
Stanislav Malyshev 9a135a2b29 Preserve internal pointer over print_r (fix #8289) 2000-12-18 13:56:30 +00:00
Andi Gutmans 43adbdcc72 - Fix leak with useless statements such as "foo"; 2000-12-18 13:28:32 +00:00
Andi Gutmans 9a87dc3bdc - Testing Sascha's CVS commit script which should work with branches. 2000-12-18 13:25:53 +00:00
Andi Gutmans 361d04b84b - Testing 2000-12-18 13:24:58 +00:00
Andi Gutmans 1b5493f819 - Testing 2000-12-18 13:23:45 +00:00
Andi Gutmans 2949dcb6c0 - Testing 2000-12-18 13:21:47 +00:00
Andi Gutmans 9722c1397a - Testing 2000-12-18 13:21:07 +00:00
Andi Gutmans f23ebb7c5e - Testin 2000-12-18 13:20:01 +00:00
Zeev Suraski 603a23ade2 Test, ignore 2000-12-18 13:18:02 +00:00
Zeev Suraski 675985c892 Test, ignore 2000-12-18 13:14:05 +00:00
Zeev Suraski 2ef76284f0 Test, ignore 2000-12-18 13:12:16 +00:00
Zeev Suraski 1f7f2416be Test, ignore 2000-12-18 13:07:50 +00:00
Zeev Suraski 43c94f221a Test, ignore 2000-12-18 13:01:59 +00:00
Hartmut Holzgraefe 96ccf69301 fixed BUG #8306: shmat() returns -1 on errors, not NULL 2000-12-18 12:22:28 +00:00
Stanislav Malyshev 138ea941fa Add notice when auto-converting array to string 2000-12-18 08:47:17 +00:00
d6f0bd3bb8 ChangeLog update 2000-12-18 02:09:08 +00:00
Andi Gutmans d63f8130bc - Clean up the scanner a tiny bit while messing with it. 2000-12-17 20:23:24 +00:00
Andi Gutmans 6529b06618 - %> without asp_tags should not be treated as inline_html but as regular
tokens. Of course the parser will die with a parse error which is the
  correct behavior.
2000-12-17 20:10:16 +00:00
Andi Gutmans 5868427dcf - Fix problem in one line comments with line endings such as ??> 2000-12-17 20:03:35 +00:00
Stanislav Malyshev 98f2db94ec Fix #8279 (-2147483647 > 2147483647).
# Long addition/subtraction may not fit long.
2000-12-17 16:02:59 +00:00
Stanislav Malyshev 8b1377043d No need to link main binary with ODBC libs if we use shared module 2000-12-17 11:17:50 +00:00
Thies C. Arntzen 2c650cd178 add a reminder about #3149 2000-12-17 09:27:42 +00:00
2bb4b1e604 ChangeLog update 2000-12-17 02:09:10 +00:00
Sascha Schumann 2d011afbfd Don't do anything, if the input string has a length of 0.
PR: #7686
2000-12-17 02:09:07 +00:00
Andi Gutmans 9fbd0a24ba - How did CVS let me commit this? Probably it confused with the branch
merge
2000-12-16 21:01:21 +00:00
Andi Gutmans 8518010945 - In PHP we're supposed to only use MAXPATHLEN (defined in php.h) 2000-12-16 20:56:44 +00:00
Andi Gutmans 86a1cace27 - Make all places use MAXPATHLEN in the same way. It includes the
terminating NULL.
2000-12-16 20:52:43 +00:00
93a93c2429 ChangeLog update 2000-12-16 02:09:27 +00:00
c01d3612e9 NEWS update 2000-12-16 02:09:23 +00:00
Sam Ruby a472edb99b AIX's XlC++ does not allow casts as an lvalue. 2000-12-16 00:15:56 +00:00
Hartmut Holzgraefe a0acd8054a removed a warning when testing against a single .phpt file 2000-12-15 23:18:50 +00:00
Rasmus Lerdorf 808da6dbb5 Attempt by Matt Bonneau to get thumbnail extraction working
(no need to bring this into the 4.0.4 branch)
2000-12-15 17:25:20 +00:00
Ben Mansell fbf699adb6 Fix Zeus' behaviour with URL, SCRIPT_NAME, SCRIPT_FILENAME, REQUEST_URI
environment variables
PR:
Submitted by:
Reviewed by:
Obtained from:
2000-12-15 16:18:55 +00:00
Derick Rethans ffd0e06b60 - Added test for bug #8040 2000-12-15 15:59:29 +00:00
Derick Rethans 6caa8c37c2 - Added a patch that changed the checking of which version of libmcrypt is
installed (Thanks to: Anil Madhavapeddy <anil@recoil.org>)
2000-12-15 15:35:48 +00:00
foobar 40677872d5 Removed unused variables. 2000-12-15 12:33:12 +00:00
Frank M. Kromann 1e9acc15cf Fixing compilation on Win32. (and others) 2000-12-15 03:04:09 +00:00
Stig Bakken 73155d10c4 * run-tests.php: fixed a few bugs, including the POST/GET problem reported by
Stas
2000-12-15 02:57:11 +00:00
b76900ed43 ChangeLog update 2000-12-15 02:09:26 +00:00
Stig Bakken 6e1e78d1c6 @Added iconv() function (using libc or libiconv) (Stig) 2000-12-15 01:01:14 +00:00
Stig Bakken ac2e12a9a9 @Added ODBC_TYPE constant (Stig) 2000-12-15 00:57:04 +00:00
Andi Gutmans 11e5f9bd44 - This is the correct way of doing it 2000-12-14 23:05:31 +00:00
Daniel Beulshausen 3b20a425c9 added missing SLS_FETCH() 2000-12-14 22:16:21 +00:00
Sascha Schumann 80e1124c21 New m4 macros should go into acinclude.m4. 2000-12-14 17:29:38 +00:00
Hartmut Holzgraefe 6b5c37a8c5 enforce lenght limit and catch out-ouf-memory conditions 2000-12-14 16:38:15 +00:00
Sascha Schumann c0daf14cb3 Don't define LC_MESSAGES, if LC_MESSAGES is not defined.
PR: #8259
2000-12-14 15:58:14 +00:00
Hartmut Holzgraefe 9b1b253548 fgetcsv() will now work correct with empty fields in tab delimited files
# fix for bug #8258 and regression test
2000-12-14 14:18:36 +00:00
Daniel Beulshausen 9967b2e149 added define for force cgi redirect 2000-12-14 11:46:10 +00:00
Stanislav Malyshev 61f632a0f2 Fix shared description 2000-12-14 10:15:38 +00:00
Stanislav Malyshev 7e032b8b30 Add proto 2000-12-14 10:11:00 +00:00
Uwe Steinmann 89279afdd3 - handled possible case that an Anchor has no Position
(This used to cause a segm fault)
2000-12-14 07:37:37 +00:00
a730ffdc39 ChangeLog update 2000-12-14 02:09:14 +00:00
Zeev Suraski 98ce9ed699 Update module_api_no 2000-12-14 00:23:18 +00:00
Zeev Suraski 944c3b40b4 That slipped in :( 2000-12-13 23:40:44 +00:00
Hartmut Holzgraefe 63e6b0b5bf levenshtein() fixed, regression tests added (bug id #6562 and #7368)
# fallback to unoptimized version for 4.0.4 release
2000-12-13 23:26:19 +00:00
Zeev Suraski be895bcb96 Fix call_user_function() with objects - it could leak under certain circumstances 2000-12-13 22:50:10 +00:00
Uwe Steinmann 0e41e3c7cf - Bodytag is insertet by fnInsAnchors()
- several small bugs which might cause a segm fault
2000-12-13 17:27:13 +00:00
Ben Mansell a017a6c025 (Zeus) Re-added some server variables that will be used.
Also added DOCUMENT_ROOT, was missing before for non-Win32
2000-12-13 17:11:01 +00:00
Stanislav Malyshev e81c9642b8 Add GMP tests 2000-12-13 15:55:40 +00:00
Stig Bakken a70b01b96e * rename write* to dowrite* to avoid clash with ext/sockets
* sapi/cgi seems to ignore command-line options when running in "real"
  CGI mode, need to find a way to pass include_path to it...
2000-12-13 14:24:15 +00:00
Stig Bakken 672a300022 * PEAR: don't require "make install" before "make test" 2000-12-13 14:01:39 +00:00
Sascha Schumann 276cb7cdb1 Add apache_child_terminate() and INI setting apache.child_terminate
which defaults to 0.

Submitted by: Sam Liddicott <sam.liddicott@ananova.com>
2000-12-13 13:19:56 +00:00
Sascha Schumann 08d104e040 Don't increase the refcount of id, if we already have increased the refcount
of the same id before.

PR: #8225
2000-12-13 12:26:25 +00:00
Sascha Schumann b2a016135e Move cracklib entry to 4.0.5 2000-12-13 12:15:48 +00:00
Daniel Beulshausen 199160d4db link against msvcrt(d).lib, ignoring it isn't a good idea 2000-12-13 11:37:00 +00:00
Stanislav Malyshev 16987ca15f Fix crash when first argument to strtr is empty 2000-12-13 10:22:36 +00:00
Stanislav Malyshev 62f626b157 Kill warning 2000-12-13 09:44:06 +00:00
foobar 6072e2fabb Added a missing note. 2000-12-13 09:19:13 +00:00
b750eed22f ChangeLog update 2000-12-13 02:09:35 +00:00
Stanislav Malyshev 0d02c7d337 Open files in binary mode - should fix readfile() on Windows 2000-12-12 17:42:53 +00:00
Stanislav Malyshev 3abdbd3de9 Fix memory leak 2000-12-12 17:02:12 +00:00
Stanislav Malyshev 5dc9742071 Fix socket read returning bad values. 2000-12-12 16:56:34 +00:00
Uwe Steinmann 25e3740bcc - add test for hw_insertanchors() 2000-12-12 16:02:19 +00:00
Uwe Steinmann ba862cc06d - new function hw_insertanchors(). It takes a document, a list of anchors
and its destination and inserts the anchors into the text.
2000-12-12 12:28:26 +00:00
Stanislav Malyshev 0731f54d35 Fix #7987: POST/GET: string with \0(%00) values not parsed correctly 2000-12-12 10:47:47 +00:00
Stanislav Malyshev 868c8769f8 Fix #8195: strncasecmp returns incorrect value 2000-12-12 09:47:30 +00:00
d1d74ec8a4 ChangeLog update 2000-12-12 02:09:12 +00:00
Zeev Suraski 6239ddfe6d Fix Win32 build 2000-12-11 16:27:48 +00:00
foobar 9d87c7a791 Added a note about --enable-versioning working with IRIX 6.5 2000-12-11 16:21:19 +00:00
Andrei Zmievski 9002d1e570 Formatting. 2000-12-11 14:42:05 +00:00
Stanislav Malyshev a1c20a04ff Fix serializer bug that prevented serializer from working on any
variable that had non-reference copies of the same zval
2000-12-11 14:29:25 +00:00
Sterling Hughes e68c902e3b Fix a crash related to the simple sablotron api. (thies)
make sablotron work with zts.
fix a leak or two,
2000-12-11 14:15:09 +00:00
Thies C. Arntzen 889b717a4c fix #6348 2000-12-11 12:52:52 +00:00
Sascha Schumann 104311042c Add TODO note 2000-12-11 08:05:53 +00:00
Andrei Zmievski 753e46657f Make php_array_merge() an API function. 2000-12-11 05:36:24 +00:00
429c4c7922 ChangeLog update 2000-12-11 02:09:23 +00:00
Sascha Schumann 107aa9f71a Align ZTS handling of globals with common usage 2000-12-10 23:22:20 +00:00
Daniel Beulshausen d41137fedf fix win32 apache module
# this is ugly, has someone a better way?
2000-12-10 22:40:07 +00:00
Daniel Beulshausen 1f31360f01 fix windows build 2000-12-10 22:06:07 +00:00
Andi Gutmans ec381d949e - Add NEWS about being able to assign new's by ref 2000-12-10 20:26:56 +00:00
Chuck Hagenbuch a9a1553031 [whitespace] make this code a bit less dense. 2000-12-10 19:18:34 +00:00
Sebastian Bergmann 71348b8b9e Initial commit of Function_Cache. 2000-12-10 18:40:23 +00:00
foobar 8bb668b226 Added constants for locale categories. 2000-12-10 15:55:34 +00:00
foobar 56e718d87e Moved the constants into ext/standard 2000-12-10 15:53:37 +00:00
James Moore 9206955425 Making the shmop phpinfo entry look the same as others. 2000-12-10 14:45:42 +00:00
Sterling Hughes e0e42d336a For nice looking error output. ;) 2000-12-10 10:57:46 +00:00
Sterling Hughes 948c4bebd5 Fix crash on error handler.
Speed up a bit (only loop through errors when necessary).
2000-12-10 09:57:26 +00:00
8405de34b8 ChangeLog update 2000-12-10 02:09:24 +00:00
Stig Bakken 9f0fc7db8b * DB::isManip counts "REPLACE" as a manipulation command (MySQL specific)
* renamed DB_common::execute_emulate_query to DB_common::executeEmulateQuery
* moved "query" DB method to DB_common, there was duplicated logic in query
  and simpleQuery in all backends.
2000-12-10 01:32:16 +00:00
foobar 18cfac40a5 Kills one compile warning. 2000-12-10 00:37:43 +00:00
Sascha Schumann ac3c7fb5de Fetch SWF globals
PR: #8181
2000-12-09 10:35:18 +00:00
foobar 98349a9408 Removed unused variable definitions. And libxml can be build NOT
to have support for either XPath or XPtr.
2000-12-09 03:19:46 +00:00
e01ce716a3 ChangeLog update 2000-12-09 02:09:18 +00:00
27b2c29210 NEWS update 2000-12-09 02:09:15 +00:00
foobar 90d65f1865 wb clean. 2000-12-08 16:25:38 +00:00
Sterling Hughes fe13e4b05d @ Added the call_user_method_array function which allows you to call a method with an
@ arbitrary number of parameters. (Sterling)
2000-12-08 14:37:49 +00:00
Rasmus Lerdorf c9f1fe638d Fix off by one error in file upload code 2000-12-08 14:28:14 +00:00
foobar 41f3d66705 Version checking for domxml. Requires >= 2.2.7 at the moment. 2000-12-08 13:09:32 +00:00
Stig Bakken fe9290e4a9 * output fix for skipped tests 2000-12-08 12:57:11 +00:00
Sascha Schumann 05dc226919 Fix a memory leak 2000-12-08 12:32:16 +00:00
Sterling Hughes 9b3942a79a Fix sablotron.
Add a little beautifying of the extensions name for phpcredits() (Sablotron XSLT not Sablot).

#would somebody please add this to the release tree, thanks much!
2000-12-08 09:29:09 +00:00
Zak Greant 767fa2c6af Added constants to represent the various categories of
locale (LC_ALL, LC_MESSAGES, etc...)
2000-12-08 09:20:42 +00:00
Stig Bakken efbc4a2566 * applied fetch modes patch for odbc by Richard M. Yumul
* added DB::isManip so we have _one_ place for testing whether something
  is a data manipulation query
* when passed a string as its first constructor arg, DB_Error now uses
  the error code DB_ERROR rather than just 0
* implemented auto-commit for ibase (not yet fully tested)
* fixed persistent connections in odbc
2000-12-08 02:30:43 +00:00
3288325bd4 ChangeLog update 2000-12-08 02:09:08 +00:00
Stig Bakken 749ed8568a added TODO comment 2000-12-08 00:21:09 +00:00
Sascha Schumann 4078b3cff9 Namespace protect parse_date interface and implementation 2000-12-08 00:12:35 +00:00
Stig Bakken 8f74a36858 * added Sebastian's affectedRows() and numRows() for MySQL
* added regression test for DB_mysql::affectedRows
* fixed some PEAR_Error based tests that had broken (line number change)
2000-12-07 19:53:27 +00:00
Sascha Schumann acdae3a149 Hardcode strlen due to problems on SCO OpenServer 5.0.4 which defines
strlen to __std_hdr_strlen.
2000-12-07 19:28:13 +00:00
David Hedbor 9147a81a19 Fix for Pike 7.1 (error -> Pike_error). Caudium bug #12486. 2000-12-07 19:01:13 +00:00
Sascha Schumann 6c0ed47a6c Enable libgcc, if we are building on Solaris with GCC. 2000-12-07 16:34:37 +00:00
Sascha Schumann 9fff35ac9f Hardcode the readdir entry as well 2000-12-07 15:33:30 +00:00
Andrei Zmievski 9b46346a23 We don't want any hard errors in PHP scripts unless absolutely necessary. 2000-12-07 14:54:52 +00:00
Kristian Köhntopp f5abd4c50b Fugbix in call_user_func_array() if second argument is empty. 2000-12-07 14:14:00 +00:00
Sascha Schumann 0ddb725f91 Axe rest of DAV leftovers and use STD_PHP_INI_ENTRY in the INI section 2000-12-07 13:07:18 +00:00
Sascha Schumann 4ada3dd3a0 Hardcode all functions which are mentioned in the Large File Support Spec
http://ewe3.sas.com/standards/large.file/specs/api+.007.html
2000-12-07 12:09:38 +00:00
Sascha Schumann 9d50bc0161 Fix Makefile template. 2000-12-07 11:27:35 +00:00
Stanislav Malyshev 7ff9dcacb1 Enable DB2 shared build 2000-12-07 11:13:49 +00:00
foobar 9eaddc999d Fixed bug #8145 2000-12-07 11:01:32 +00:00
foobar 5e4817ec5d Added note that openssl 0.9.6 is required. 2000-12-07 10:44:16 +00:00
Stanislav Malyshev 6a356cf5c8 Whitespace fix 2000-12-07 10:36:45 +00:00
Stanislav Malyshev 8ba3eeabd9 Allow var $foo = array(ABC => 1) constructs
# It still doesn't work good with constants, but at least doesn't leak now
2000-12-07 10:36:10 +00:00
Uwe Steinmann 5ff861bd4a - set propper min version 2000-12-07 10:04:18 +00:00
Sascha Schumann ea251e82e1 Fix ext_skel on Solaris
Submitted by: Sam Liddicott <sam.liddicott@ananova.com>
2000-12-07 10:03:21 +00:00
Stanislav Malyshev b531e43c49 Fix memory leak - get_current_key mallocs it's result, no need to
copy it.
2000-12-07 09:39:16 +00:00
Stig Bakken 52d3777f50 * make it possible to override the start directory for "make test" 2000-12-07 08:06:41 +00:00
Joey Smith eefe6739ee Close bug #7013. 2000-12-07 02:50:46 +00:00
e52ee0d208 ChangeLog update 2000-12-07 02:09:19 +00:00
Chuck Hagenbuch 6ccfc3fb15 Contribute Horde's Log:: abstraction class to PEAR. 2000-12-07 01:06:58 +00:00
foobar 417309262b The new openssl extension requires OpenSSL version >= 0.9.6 2000-12-07 00:22:36 +00:00
Sascha Schumann fb87cc8c8e INIT_DATA/UPDATE_DATA assumed that pData elements of the size of a void
pointer would actually be aligned like a void pointer. This lead
to bus errors on architectures which don't allow unaligned 32-bit accesses.
2000-12-06 21:24:10 +00:00
Andre Langhorst b03af37e19 updated with =& new syntax 2000-12-06 18:55:52 +00:00
Andre Langhorst 5604ae2de4 made run-tests.php windows compatible 2000-12-06 18:29:03 +00:00
Andre Langhorst 45c218968c added $this in constructor test (fails currently) 2000-12-06 17:56:53 +00:00
Sascha Schumann 7e28784de3 Fix indentation of configure output 2000-12-06 17:34:58 +00:00
Andre Langhorst 41f8d621b6 added OO test (will fail currently) 2000-12-06 16:22:01 +00:00
Stanislav Malyshev bbb46b6c0c Fix T1 static build 2000-12-06 15:08:18 +00:00
Stanislav Malyshev 9be60903d7 Update README 2000-12-06 14:28:10 +00:00
Stanislav Malyshev 596c3b7fd5 Fix prototypes
Fix prefect_square return
2000-12-06 14:10:40 +00:00
Stig Bakken cc9d7fc744 * cleanup 2000-12-06 02:53:14 +00:00
Stig Bakken dca0d5852d #With "php -f file.php", file.php is unable to parse command-line
#options because they are swallowed by PHP.  Use "-q" option instead to
#avoid this but still supress HTTP headers.
2000-12-06 02:52:37 +00:00
650e7bff12 ChangeLog update 2000-12-06 02:09:15 +00:00
24373fd1e7 NEWS update 2000-12-06 02:09:12 +00:00
Andrei Zmievski dc4b1c1adf @- Removed ext/dav due to obsolescence. (Andrei) 2000-12-05 22:58:36 +00:00
Chuck Hagenbuch 8ef5afc6fb spaces after commas. all whitespace. 2000-12-05 21:12:45 +00:00
Andi Gutmans 352d23b853 - Support for $var =& new foo() syntax. This allows you to use objects
which create extra references to themselves in the constructor.
2000-12-05 18:45:58 +00:00
Stanislav Malyshev 589a66feda Make GMP use Zend's memory functions 2000-12-05 15:35:20 +00:00
Stanislav Malyshev 76381dbf53 Fix prototypes 2000-12-05 14:47:40 +00:00
Stanislav Malyshev 4a3fdce696 Add check for conversion base 2000-12-05 14:17:38 +00:00
Zeev Suraski 848e51fda5 Expose all timeout functions 2000-12-05 13:04:05 +00:00
Stig Bakken 2b846ec7e5 * applied patch by Stig-Ørjan Smelror <Stig.Orjan.Smelror@lincom.no> 2000-12-05 12:15:18 +00:00
Stig Bakken 92fc209384 Applied IBM DB2 patch by Walter Franzini <walter@sys-net.it>
@ext/odbc: IBM DB2 patch by Walter Franzini <walter@sys-net.it>
2000-12-05 12:11:30 +00:00
Sascha Schumann b97e23c4a8 Pass core_globals to new inline functions
Submitted by: Sebastian Bergmann
2000-12-05 11:05:24 +00:00
Stig Bakken 48e7da206f * MySQL sequence emulation using auto_increment
* fixed indentation
2000-12-05 07:00:57 +00:00
a762072659 ChangeLog update 2000-12-05 02:09:29 +00:00
1c33368211 NEWS update 2000-12-05 02:09:26 +00:00
David Hedbor 694a5620e4 Removed a fatal condition to allow for harmless user error plus some other
small changes.
2000-12-04 23:12:40 +00:00
Chuck Hagenbuch c18ce859cb have PEAR::isError() not take parameters by reference for now. 2000-12-04 21:03:17 +00:00
Andi Gutmans 690812d165 - Fix up the NEWS item. We need to make sure that this release we really
do put a link to the NEWS file on the downloads page.
2000-12-04 20:10:13 +00:00
Andi Gutmans 10b460e7ca - Explanation about Zend change. I'll move it to the branch when I'm happy
with the way it's explained. It's rather hard to explain it well.
2000-12-04 18:28:35 +00:00
Sascha Schumann 2bfb11218f This branch will become 4.0.5. New entries should only be added to the
4.0.4 area, if you merge them.
2000-12-04 17:56:36 +00:00
Sebastian Bergmann 471d0d2f0c Added nextid() method to DB_common. Added lock() and unlock() methods to DB_mysql. 2000-12-04 17:13:29 +00:00
foobar f48c0fbc95 @- Made ldap_get_entries() return an array even if there are no entries
in search result. (Jani)
# This was actually the original behaviour and the correct one.
# I messed it up when I fixed another bug in it a while ago..
# Fixes bug #8054
2000-12-04 17:07:27 +00:00
Uwe Steinmann 81def6d9d5 - new function hw_new_document_from_file() 2000-12-04 16:34:06 +00:00
Sascha Schumann dedec6614e Automatically carry over macro definitions from Apache.
We don't take everything, because apxs' CFLAGS also includes
optimization, debugging, et cetera flags.

PR: #7211
2000-12-04 16:05:00 +00:00
Dan Kalowsky bfe4e5bf37 added name for credits on work for Solid interface.. 2000-12-04 15:47:30 +00:00
Stanislav Malyshev f0744d73de GD shared build fixes - should fix problem with gd.so not being linked
with right libraries
2000-12-04 15:10:58 +00:00
Sterling Hughes 2d322a13a2 close the filehandle if it is a tempfile. 2000-12-04 15:05:23 +00:00
Sascha Schumann 911abe100a Move code from macros to inline functions to ease debugging 2000-12-04 12:26:53 +00:00
Sascha Schumann e052f9f575 Handle the case of no-handlers properly and make handlers a proper C "string". 2000-12-04 10:22:46 +00:00
Sebastian Bergmann c20df37045 No comment. 2000-12-04 07:05:16 +00:00
Sebastian Bergmann 676bb6b9a0 I couldn't read it in order to understand it in order to extend it :-) 2000-12-04 06:56:29 +00:00
844db6ebb1 ChangeLog update 2000-12-04 02:09:17 +00:00
a6e2642ac5 NEWS update 2000-12-04 02:09:10 +00:00
Sterling Hughes a75b19e0f6 - Fix the handling of resource entries
- Fix the fd_dealloc() function
2000-12-03 19:17:09 +00:00
Sterling Hughes aa2d9117d9 Another attempt at fixing 8036 2000-12-03 19:13:41 +00:00
Sterling Hughes 56094458b7 Windows ist ser schlecht 2000-12-03 15:30:14 +00:00
Stanislav Malyshev 5b47d1ef7a Fix #8079 - filetype now knows about sockets 2000-12-03 13:42:54 +00:00
Sascha Schumann 3f38d892c0 Workaround for these two symptoms:
Some sed tools don't match strings which are not terminated with LF.

Some shells still support the ^ as a synonym for the pipe character.

Submitted by: Stanislav Malyshev
2000-12-03 10:58:18 +00:00
Hartmut Holzgraefe 5f683e7d78 changed run-tests.php to use 'php -q' instead of 'php -f' 2000-12-03 10:45:53 +00:00
Sascha Schumann c95a8f39b9 Merge with php_4_0_4 2000-12-03 08:37:43 +00:00
bc042fb841 ChangeLog update 2000-12-03 02:09:18 +00:00
dc72565a91 NEWS update 2000-12-03 02:09:15 +00:00
Zeev Suraski d36c316ac6 Fix DB build (hopefully, untested) 2000-12-03 00:07:29 +00:00
Zeev Suraski cbb2379b5b - Get the MySQL module a bit uptodate.
- Fix a bug in mysql_do_connect() - it would corrupt the host argument, if it contained a port
  (or could corrupt the INI value, so that the port argument would work only the first time
  around)
2000-12-02 17:27:11 +00:00
Sascha Schumann 1e0a87d62b Include <ext/standard/info.h> for php_info-related functions. 2000-12-02 13:43:50 +00:00
Sascha Schumann 1f934084cd Noone defines PACKAGE/VERSION anymore. 2000-12-02 13:27:10 +00:00
Sascha Schumann af97475e93 Use the hardly-documented third parameter of AM_INIT_AUTOMAKE to suppress
defining PACKAGE/VERSION.
2000-12-02 13:27:07 +00:00
Sascha Schumann 15c53ba23c Use the hardly-documented third parameter of AM_INIT_AUTOMAKE to suppress
defining PACKAGE/VERSION.
2000-12-02 13:26:03 +00:00
Alexander Feldman a777149199 @- Added extension for the cracklib library. (Alexander Feldman) 2000-12-02 11:59:20 +00:00
Sterling Hughes e1d314afa2 First attempt at fixing 8036 2000-12-02 10:28:55 +00:00
Sascha Schumann 182724f477 Branched off 4.0.4. This trunk becomes 4.0.5-dev. 2000-12-02 08:21:10 +00:00
725 changed files with 46065 additions and 11987 deletions

No files matched your search

+40 -7
View File
@@ -64,11 +64,11 @@ Exceptions:
Naming Conventions
------------------
[1] Function names for user functions should be enclosed with in
[1] Function names for user-level functions should be enclosed with in
the PHP_FUNCTION() macro. They should be in lowercase, with words
underscore delimited, with care taken to minimize the letter count.
If they are part of a "parent set" of functions, that parent should
be included in the user function name.
Abbreviations should not be used when they greatly decrease the
readability of the function name itself.
Good:
'mcrypt_enc_self_test'
@@ -83,17 +83,35 @@ Naming Conventions
Bad:
'hw_GetObjectByQueryCollObj'
'pg_setclientencoding'
'jf_n_s_i'
[2] If they are part of a "parent set" of functions, that parent should
be included in the user function name, and should be clearly related
to the parent program or function family. This should be in the form
of parent_*.
A family of 'foo' functions, for example:
Good:
'foo_select_bar'
'foo_insert_baz'
'foo_delete_baz'
[2] Function names used by user functions should be prefixed
Bad:
'fooselect_bar'
'fooinsertbaz'
'delete_foo_baz'
[3] Function names used by user functions should be prefixed
with "_php_", and followed by a word or an underscore-delimited list of
words, in lowercase letters, that describes the function. If applicable,
they should be declared 'static'.
[3] Variable names must be meaningful. One letter variable names must be
[4] Variable names must be meaningful. One letter variable names must be
avoided, except for places where the variable has no real meaning or
a trivial meaning (e.g. for (i=0; i<100; i++) ...).
[4] Variable names should be in lowercase; Use underscores to seperate
[5] Variable names should be in lowercase; Use underscores to seperate
between words.
@@ -167,8 +185,23 @@ messing up the function summary.
Optional arguments are written like this:
/* {{{ proto object imap_header(int stream_id, int msg_no [, int from_length [, int subject_length [, string default_host]]])
Returns a header object with the defined parameters. */
And yes, please keep everything on a single line, even if that line is massive.
And yes, please keep the prototype on a single line, even if that line
is massive.
New and Experimental Functions
-----------------------------------
To reduce the problems normally associated with the first public
implementation of a new set of functions, it has been suggested
that the first implementation include a file labeled 'EXPERIMENTAL'
in the function directory, and that the functions follow the
standard prefixing conventions during their initial implementation.
The file labelled 'EXPERIMENTAL' should include the following
information:
Any authoring infomration (known bugs, future directions of the module).
Ongoing status notes which may not be appropriate for CVS comments.
Aliases & Legacy Documentation
-----------------------------------
+6756
View File
File diff suppressed because it is too large. Load diff
+71 -9
View File
@@ -109,7 +109,7 @@ STATUS: Experimental
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: interbase
PRIMARY MAINTAINER: Jouni Ahto <jah@mork.net>
PRIMARY MAINTAINER: Jouni Ahto <jouni.ahto@exdec.fi>
MAINTENANCE: Odd Fixes
STATUS: Working
-------------------------------------------------------------------------------
@@ -128,7 +128,7 @@ MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: pgsql
PRIMARY MAINTAINER: Jouni Ahto <jah@mork.net>
PRIMARY MAINTAINER: Jouni Ahto <jouni.ahto@exdec.fi>
MAINTENANCE: Odd fixes
STATUS: Working
-------------------------------------------------------------------------------
@@ -171,6 +171,12 @@ EXTENSION: bcmath
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: bz2
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 4.0.3
-------------------------------------------------------------------------------
EXTENSION: calendar
MAINTENANCE: Unknown
STATUS: Unknown
@@ -184,10 +190,15 @@ PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: CURL
EXTENSION: crack
MAINTENANCE: Unknown
STATUS: Experimental
SINCE: 4.0.5
-------------------------------------------------------------------------------
EXTENSION: curl
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
STATUS: Working
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: cybercash
@@ -228,6 +239,11 @@ EXTENSION: gettext
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: gmp
MAINTENANCE: Unknown
STATUS: Unknown
SINCE: 4.0.4
-------------------------------------------------------------------------------
EXTENSION: icap
MAINTENANCE: Unknown
STATUS: Obsolete
@@ -262,10 +278,18 @@ PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: muscat
PRIMARY MAINTAINER: Sam Liddicott <sam@ananova.com>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.0.5
COMMENT: Not tested against windows, only core API completed, rest under development
-------------------------------------------------------------------------------
EXTENSION: openssl
PRIMARY MAINTAINER: Stig Venaas <venaas@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 4.0.4
-------------------------------------------------------------------------------
EXTENSION: pcre
PRIMARY MAINTAINER: Andrei Zmievski <andrei@ispi.net>
@@ -288,12 +312,23 @@ PRIMARY MAINTAINER: Kristian K
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: printer
MAINTENANCE: Unknown
STATUS: Experimental
SINCE: 4.0.4
COMMENT: Only for Win32
-------------------------------------------------------------------------------
EXTENSION: pspell
PRIMARY MAINTAINER: Vlad Krupin <phpdevel@echospace.com>
MAINTENANCE: Unknown
STATUS: Unknown
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: qtdom
MAINTENANCE: Unknown
STATUS: Experimental
SINCE: 4.0.4
-------------------------------------------------------------------------------
EXTENSION: readline
MAINTENANCE: Unknown
STATUS: Unknown
@@ -303,6 +338,12 @@ PRIMARY MAINTAINER: Kristian K
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: sablot
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 4.0.3
-------------------------------------------------------------------------------
EXTENSION: satellite
PRIMARY MAINTAINER: David Eriksson <eriksson@php.net>
MAINTENANCE: Odd Fixes
@@ -314,6 +355,12 @@ PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: shmop
PRIMARY MAINTAINER: Unknown
MAINTENANCE: Unknown
STATUS: Experimental
SINCE: 4.0.3
-------------------------------------------------------------------------------
EXTENSION: snmp
PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
MAINTENANCE: Odd Fixes
@@ -321,14 +368,15 @@ STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: sockets
PRIMARY MAINTAINER: Chris Vandomelen <chrisv@b0rked.dhs.org>
MAINTENANCE: Unknown
STATUS: Unknown
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: swf
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
MAINTENANCE: Maintained
STATUS: Unix (won't change)
STATUS: Unknown
COMMENT: Only for Unix (won't change)
-------------------------------------------------------------------------------
EXTENSION: sysvsem
MAINTENANCE: Unknown
@@ -338,6 +386,11 @@ EXTENSION: sysvshm
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: vpopmail
MAINTENANCE: Unknown
STATUS: Experimental
SINCE: 4.0.5
-------------------------------------------------------------------------------
EXTENSION: wddx
PRIMARY MAINTAINER: Andrei Zmievski <andrei@ispi.net>
MAINTENANCE: Maintained
@@ -346,7 +399,7 @@ STATUS: Working
EXTENSION: xml
PRIMARY MAINTAINER: Thies C. Arntzen <thies@thieso.net>
MAINTENANCE: Maintained
STATUS: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: yaz
PRIMARY MAINTAINER: Adam Dickmeiss <adam@indexdata.dk>
@@ -354,10 +407,19 @@ MAINTENANCE: Maintained
STATUS: Unknown
SINCE: 4.0.1
-------------------------------------------------------------------------------
EXTENSION: yp
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: zlib
PRIMARY MAINTAINER: Stefan Roehrich <sr@linux.de>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: zziplib
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 4.0.5
-------------------------------------------------------------------------------
# iptc?
+1
View File
@@ -389,6 +389,7 @@ USING PHP 3 AND PHP 4 AS CONCURRENT APACHE MODULES
- Linux with recent binutils (binutils 2.9.1.0.25 tested)
- Solaris 2.5 or better
- FreeBSD (3.2, 4.0 tested)
- IRIX64 6.5
To enable it, configure PHP 3 and PHP 4 to use APXS (--with-apxs) and the
necessary link extensions (--enable-versioning). Otherwise, all standard
+1 -1
View File
@@ -18,7 +18,7 @@ LTLIBRARY_LIBADD = $(LTLIBRARY_DEPENDENCIES) $(EXTRA_LIBS)
PROGRAM_NAME = php
PROGRAM_SOURCES = stub.c
PROGRAM_LDADD = libphp4.la
PROGRAM_LDADD = libphp4.la $(EXT_PROGRAM_LDADD)
PROGRAM_LDFLAGS = -export-dynamic
PROGRAM_DEPENDENCIES = $(PROGRAM_LDADD)
+164 -1
View File
@@ -1,7 +1,168 @@
PHP 4.0 NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2000, Version 4.0.4
30 Apr 2001, Version 4.0.5
- IMPORTANT: removed /F modifier handling from preg_replace(). Instead
one should use new preg_replace_callback() function. (Andrei)
- Added new php.ini directive: arg_separator.input which is used to tell
PHP which characters are considered as argument separators in URLs.
Renamed php.ini directive: arg_separator -> arg_separator.output (Jani)
- Added FastCGI SAPI module. (Ben Mansell)
- Added array_reduce(), which allows iterative reduction of an array
to a single value via a callback function. (Andrei)
- The imageloadfont function of the gd extension should be not platform
dependent after this fix. (alex@zend.com)
- Fixed a compatibility problem in some file functions (fgets, fputs, fread,
fwrite). The ANSI standard says that if a file is opened in read/write
mode, fseek() should be called before switching from reading to writing
and vice versa. (alex@zend.com)
- Fixed argument checking for call_user_func* functions and allowed
specifying array($obj, 'method') syntax for call_user_func_array. (Andrei)
- Fixed parent::method() to also work with runtime bindings.
(Zeev, Zend Engine)
- Implemented high-performance zlib-based output compression - see
zlib.output_compression INI directive. (Zeev)
- Improved ob_gzhandler() to support chunked output buffering - it's
recommended to use it with 4KB chunks. (Zeev)
- Fixed chunked output buffering. (Zeev)
- Forced call_user_method() and call_user_method_array() to take the
object argument by reference. (Andrei)
- Fixed binding of ROWIDs in OCI8. (Thies)
- Added PEAR/Cache as a generic Caching System. (Sebastian, PEAR/Cache)
- Added IMAP quota support (imap_set_quota, imap_get_quota), enabled/added via
c-client2000. (kalowsky)
- Upgraded PCRE to version 3.4. (Andrei)
- Added array_search which works similar to in_array but returns
the key instead of a boolean. (jason@php.net)
- Fixed pgsql transaction support. (Stig, PEAR/DB)
- Added new object VARIANT() to encapsulate values for use with
the COM and DOTNET module. Therefore it is now possible to pass
values by reference, convert php values to extended variant types (currency,
date, idispatch, iunknown, ...) and define the codepage that should
be used for unicode - conversion.
- Improved overall speed of IRCG, added URL handling to message scanner.
(Sascha)
- Fixed some modules to allow using output-buffering. (Thies)
- Added the chroot() function. (Derick)
- PostgreSQL now does a rollback at the end of a request on every
persistent connection. This is done by doing an "empty" transaction
on the connection. This was advised by someone from the PostgreSQL
core-team. (Thies)
- Fixed PostgeSQL pg_connect() bug. We would sometimes close the default
link by accident. (Patch by: aja@nlgroup.ca)
- Improved OCI8 dead-session detection. (Patch by: George Schlossnagle)
- Fixed get_meta_tags() multiline bug #4556. (Sean)
- Prefer random() over *rand48(). (JimJag)
- Sped up WDDX serialization 2x. (Andrei)
- Added a new parameter to mail() which appends aditional command line
parameters to the mail program. (Derick)
- Added Udm_Clear_Search_Limits mnoGoSearch extension function. (gluke)
- Fixed mnogosearch protos. Fixed mnogosearch functions return values.
A bug with capital letters break search has been fixed. (gluke)
- Static methods can now be called via call_user_method_* functions, e.g.
call_user_method('method', 'class'), and also array('class', 'method')
constructs (for array_walk(), for example). (Andrei, Zend Engine)
- microtime() under Windows now returns accurate values. (James)
- Added PREG_SPLIT_DELIM_CAPTURE flag to preg_split() that allows for Perl-like
functionality of capturing parenthesized delimiter expression. (Andrei)
- Fixed strip_tags() to not strip a lone > character. (Rasmus)
- When using the ob_gzhandler() PHP now automagically also sets the
Content-Lengh correctly which enables browsers to use the HTTP
Keep-Alive feature. (Thies)
- Improved handling of preg_replace() /F modifier so that it's possible to
specify array($obj, 'method') construct as a replacement function. (Andrei)
- Added mysql_get_client_info(), mysql_get_server_info(),
mysql_get_proto_info(), and mysql_get_host_info() functions. (Sean)
- Major change of the php pdf api. It could break some functions though
backwards compatibility was tried to maintain. Adding some still
missing functions as well. (Uwe)
- Added mnoGoSearch extension - http://search.mnogo.ru. (Sergey K)
- Allow URL encoding in DB usernames and passwords. (Stig, PEAR)
- Added raiseError and setErrorHandling methods to PEAR class. (Stig, PEAR)
- Added support for converting images from JPG/PNG on the fly with the GD
extension, which is usefull for creating dynamic WAP-sites. (Derick)
- Updated ext/mysql/libmysql to version 3.23.32; bug fixes. (tim@mysql.com)
- Fixed possible crash in all (non-pcre) regex functions. (Thies)
- Improved str_replace() to accept an array for any parameter - similar
to preg_replace(). (Andrei)
- Fixed extract() to properly prefix numeric keys when EXTR_PREFIX_ALL is
used. (Andrei)
- Added EXTR_PREFIX_INVALID flag to extract() to automatically prefix
string keys that do not constitute valid variable names. (Andrei)
- BeOS patch from svanegmond@bang.dhs.org, modified somewhat by Rasmus.
- Fixed the Apache module to overwrite PATH_TRANSLATED with SCRIPT_FILENAME,
only if PATH_TRANSLATED is not previously set. (Zeev)
- Fixed crash bug in highlight_string(). (Rasmus)
- Added URL support for getimagesize() function. (Jani)
- Added xslt_set_scheme_handler() function. (carmelo@akooe.com)
- Added the pg_lolseek and pg_lotell functions. (Derick)
- Fixed wrong breaking with the wordwrap function. (Derick)
- Fixed 'O' and 'r' flags of date() to have correct sign for timezone
offset. (Andrei)
- Changed 'Z' flag to date() to always return timezone offset with
negative sign if it's west of UTC. (Andrei)
- Added the HTML_Processor class which provides common functions for
processing HTML. (Sterling)
- Added localeconv() and strcoll() functions for localization. (Sean)
- Added the xslt_set_base function. (Sterling)
- Added support for Zeus 3.3.8.
- Added odbc_error() and odbc_errormsg() functions. (Stig)
- New extension for vpopmail - http://www.inter7.com/vpopmail,
give it a try, but keep in mind that it is not ready for production
environments. (David Croft, Boian Bonev)
- Added sybase_get_last_message() to the Sybase CT module. (Jan Fedak)
- Made ldap_list(), ldap_read() and ldap_search() do parallel search when
first parameter is an array of link identifiers. (Stig Venaas)
- Made fopen() of HTTP URL follow redirects, $http_response_header will
contain all headers with empty string as delimiter. (Stig Venaas)
- Added Console_Getopt class for parsing command-line args. (Andrei, PEAR)
- Added an experimental version of the ZZipLib extension which provides the
ability to read zip files. (Sterling)
- Allow access to uploaded files in safe_mode. Beware that you can only
read the file. If you copy it to new location the copy will not have the
right UID and you script won't be able to access that copy. (Thies)
- Changed extract() to check that prefixed name is a valid one. (Andrei)
- Changed extract() to return the number of variables extracted. (Andrei)
- Added ldap_rename() function. (Stig Venaas)
- Made ldap_set_option() support controls. (Stig Venaas)
- Changed ldap_search() and added functions ldap_parse_result(),
ldap_first_reference(), ldap_next_reference() and ldap_parse_reference()
to cope with LDAPv3 stuff like referrals and references. (Stig Venaas)
- Fixed date('r') overflow.
- Made the php.ini path reported in phpinfo() always point to the absolute
path that was opened. (Zeev)
- Made the INI mechanism thread safe. (Zeev, Zend Engine)
- Changed setlocale() to use LC_* constants. (Jani)
- ctype functions now follow the extension naming conventions. (Hartmut)
- Added iconv() function (using libc or libiconv). (Stig)
- Added ODBC_TYPE constant. (Stig)
- Added the call_user_method_array function which allows you to call a method
with an arbitrary number of parameters. (Sterling)
- ext/odbc: IBM DB2 patch by Walter Franzini. <walter@sys-net.it>
- Added extension for the cracklib library. (Alexander Feldman)
19 Dec. 2000, Version 4.0.4
- Allow assigning a newly created object by reference. This is needed only if
your constructor makes other data structures reference the $this object (for
example, $GLOBALS["foobar"] =& $this;)
The new syntax is $obj =& new MyClass(); (Andi, Zend Engine)
- Allow for three expression types to be sent to functions which are requesting
the function argument to be passed by reference (only c. was previously
supported):
a. func(new myclass());
b. func(func2()); where func2() returns a reference, i.e. is defined as
function &func2(...)
{
...
}
c. func($var); where func() is defined as function func(&$var) {...}
You CAN'T count on any other expressions to be passable by reference.
(Andi, Zend Engine)
- Made ldap_get_entries() return an array even if there are no entries
in search result. (Jani)
- Fixed bad mod_perl interaction which caused segfaults when using LFS (Sascha)
- const CONSTNAME now gets recognized. Before the patch only @const CONSTNAME
description was recognized.
- Added the is_null() function that will return true if a variable is of
type null. (Sterling)
- Fixed a bug which made readdir() unusable in some systems. (Jani)
@@ -22,6 +183,7 @@ PHP 4.0 NEWS
at run-time to provide the replacement string. It is passed an array of
matched pattern and subpatterns. (Andrei)
- Put an end to BUG#4615 (kalowsky & Eric Veldhuyzen)
- Added the IRCG extension (Sascha)
- Fixed realpath() in Virtual Directory mode (Daniel)
- Integrated the Phil Nelson's bc math library routines into PHP, now that
the license allows it (Phil Nelson <phil@cs.wwu.edu>)
@@ -59,6 +221,7 @@ PHP 4.0 NEWS
the full path (Jani)
- Added ImageCreateFromString() which creates an image stream out of
e.g. a MySQL blob. (Mathieu)
- Fixed a crash bug in imagewbmp() (Jani)
- Changed the sablot configuration file so that if you use any version of
Sablotron below 0.44 you must use Sablotron's built-in Expat libraries.
(Sterling)
-17
View File
@@ -1,17 +0,0 @@
How to install PHP with the BCMath arbitrary precision math library?
--------------------------------------------------------------------
Due to license restrictions, the BC math library can no longer be distributed
along with PHP. The BC math library is distributed under the restrictive
GNU Public License, and PHP is no longer distributed under that license, but
under a less restrictive license, the PHP License.
If you want to enable BC math support (recommended), all you have to do is
simply download http://www.php.net/extra/number4.tar.gz, and untar it on the
top level php4 directory.
A typical way of doing this would be (assuming that you have lynx):
cd ~/php4
lynx -dump -source http://www.php.net/extra/number4.tar.gz | gzip -d | tar xvf -
The PHP Group
+2 -1
View File
@@ -64,7 +64,8 @@ NEWS file. Everything else goes into the ChangeLog.
It is important to note that if your comment or news logline spans multiple
lines, you have to put # or @ at the beginning of _every_ such line. Every
entry in NEWS has to have a name after it, so if you did it with someone's
help, put both your names there.
help, put both your names there. Your name WILL NOT be automatically put
at the end of the NEWS entry - so, please provide it yourself.
Example. Say you modified two files, datetime.c and string.c. In datetime.c
you added a new format option for date() function, and in string.c you fixed
+98 -125
View File
@@ -1,153 +1,126 @@
Using PHP4 with the Zeus Web Server
-----------------------------------
Zeus fully supports running PHP in combination with our webserver. A
significant improvement in PHP 4 is that you can now run PHP as an
ISAPI module, giving great performance benefits over traditional CGI
code.
Zeus fully supports running PHP in combination with our
webserver. There are three different interfaces that can be used to
enable PHP:
Note that you will need to be running at least version 3.3.6 of the
webserver. If you are running an earlier version, please see our
website (http://www.zeus.com) for upgrade instructions.
* CGI
* ISAPI
* FastCGI
Of the three, we recommend using FastCGI, which has been tested and
benchmarked as providing the best performance and reliability.
Full details of how to install PHP are available from our
website, at:
http://support.zeus.com/products/php.html
If you have any problems, please check the support site for more
up-to-date information and advice.
To build the ISAPI version of PHP, start the configuration with:
Quick guide to installing FastCGI with Zeus
-------------------------------------------
./configure --with-zeus=/usr/local/zeus
Step 1 - obtain and install FastCGI development kit.
Obviously, replace /usr/local/zeus with the location of where you have
installed Zeus on your machine. For PHP to build successfully, you
need to have 3.3.6 already installed, because the code relies on the
presence of header files provided with the latest version.
Grab the package from:
http://www.fastcgi.com/dist/devkit_2.2.0.tar.gz
You may have to adjust the environment variable LDFLAGS and EXTRA_LIBS
in order to link in extra libraries. This depends on the platform on
which you are building and also on the compiler used (see below). A
standard GNU/Linux install with GCC should build fine with no changes.
Extract the package and follow the instructions:
./configure
make
make export
(run the last as root)
This will install to /usr/local/lib/libfcgi.a
and /usr/local/include/*fcgi*
Configuring the webserver
-------------------------
After running 'make' and 'make install', you will have a 'libphp4.so'
file. Copy this file into a directory reserved for ISAPI
binaries. Now, perform the following steps for each virtual server
that you wish to run PHP on:
Step 2 - Compile PHP as FastCGI.
1) On the Admin server, go to 'edit server->path mapping'
2) Add an alias to the directory with libphp4.so in it, mapped to
/isapi/ (or a location of your choice). Make sure you set the alias
type to ISAPI.
3) Click 'update'
4) Add a handler for file extension 'php' to be run by /isapi/libphp4.so
5) Click 'update', then go back to the previous page.
6) Click on the 'module configuration' button, ensure that ISAPI
support is ticked.
7) Click on the ISAPI link. At the bottom of the page, click the
checkbox for running ISAPI extensions 'out of process'.
8) Click 'update'. Then restart the virtual server. Done!
Compile as follows:
./configure --with-fastcgi
make
Note that PHP has many options to the configure script -
e.g. --with-mysql. You will probably want to select your usual options
before compiling; the above is just a bare minimum, for illustration.
After compilation finishes, you will be left with an executable
program called 'php'. Copy this into your document root, under a
dedicated FastCGI directory (e.g. $DOCROOT/fcgi-bin/php)
Troubleshooting
---------------
Step 3 - configure Zeus
*) Why does the compile fail at Zend/zend-scanner-cc.cc
or Zend/zend-parser.c ?
Four stages:
- enable FastCGI
- configure FastCGI
- setup alias for FastCGI
- setup alias for PHP
These source files are auto-generated from the corresponding .y files.
The default distribution of PHP contains pre-generated versions of these
files that have caused problems for some people. The simplest solution is
to delete the files. They will then be rebuilt correctly. You must have the
following GNU tools to do this:
1) Using the admin server, go to the 'module configuration' page for
your virtual server, and ensure that 'fastcgi' is enabled (select the
tickbox to the left).
bison 1.28 or later
flex 2.5.4 or later
2) While we can run FastCGI's locally, there are known problems with
some OS's (specifically, the communication between web server and
FastCGI happens over a unix domain socket, and some OS's have trouble
sustaining high connection rates over these sockets). So instead, we
are going to set up the PHP FastCGI to run 'remotely' over localhost
(this uses TCP sockets, which do not suffer this problem). Go to the
'fastcgi configuration' page, and under 'add remote fastcgi':
Add Remote FastCGI
Docroot path /fcgi-bin/php
Remote machine localhost:8002
The first entry is where you saved PHP, above.
The second entry is localhost:<any unused port>
We will start the FastCGI listening on this port shortly.
Click 'update' to commit these changes.
*) Why does my PHP library fail to load?
3) Go to the path mapping module and add an alias for FastCGI:
Add Alias
Docroot path /fcgi-bin
Filesystem directory /path/to/docroot/fcgi-bin
Alias type fastcgi
Click 'update' to commit these changes
After configuring Zeus, if you get a '502 Bad Gateway' error when
accessing a PHP page, there are problems loading the PHP
library. Check the error log ($ZEUSHOME/web/log/errors) for errors.
4) Also on the path mapping module, add a handler for PHP:
Add handler
File extension php
Handler /fcgi-bin/php
Click 'update' to commit these changes
Failing to load the PHP ISAPI module is likely to be due to unresolved
symbols in the module. A way to check for this is to visit our support
page at http://support.zeus.com/faq/entries/isapi_error.html and run
the program there on your libphp4.so. It will list any unresolved
symbols.
*) My libphp4.so has unresolved symbols. How do I fix this?
You must ensure that the PHP build process links in the appropriate
libraries that contain these symbols! The libraries required will
depend on the platform you are running PHP on.
You may need to set one or two environment variables before running
the 'configure' program to set up PHP; LDFLAGS and EXTRA_LIBS. Make
sure that you also export these variables to the build process.
(Type 'export LDFLAGS EXTRA_LIBS' in the shell to do this.)
If you are using 3rd party tools and libraries which are installed
in non-standard locations, you may need to set the environment
variable LD_LIBRARY_PATH to point to the library's location, prior
to running the Zeus Web Server. For example, if you have compiled
external MySQL support, and mysql is installed in /usr/local/mysql,
you should set LD_LIBRARY_PATH to '/usr/local/mysql/lib/mysql'
and then 'export LD_LIBRARY_PATH'. For convenience, you should add
this to the 'start-zeus' script provided.
Yet another method of ensuring the linked libraries are found is to
set the environment variable LD_RUN_PATH before compiling PHP. This
works in a similar way to LD_LIBRARY_PATH, but at compile-time.
Libraries produced with this envrionment variable set will have its
value 'burned' into the resultant binary, specifying a runtime
search pth to locate other required libraries such as MySQL.
On Linux, you can also tell the dynamic linker where to find the
libraries, by adding '/usr/local/mysql/lib/mysql' to the file
/etc/ld.so.conf - after editting this file, run 'ldconfig' as root,
to use the changes.
Finally restart your virtual server for these changes to take effect.
Specific examples:
Step 4 - start PHP as a FastCGI runner
Solaris + gcc:
Ensure you run ./configure with the `--enable-libgcc' parameter. You
may need to set LDFLAGS to '-L/usr/local/egcs/lib' (path depends on
your gcc installation)
When you start PHP, it will pre-fork a given number of child processes
to handle incoming PHP requests. Each process will handle a given
number of requests before exiting (and being replaced by a newly
forked process). You can control these two parameters by setting the
following environment variables BEFORE starting the FastCGI runner:
FreeBSD 4:
Some people may find they need to run ./configure with the
'--enable-libgcc' compile option too.
PHP_FCGI_CHILDREN - the number of child processes to pre-fork. If not
set, defaults to 8.
PHP_FCGI_MAX_REQUESTS - the number of requests each PHP child process
handles before exiting. If not set, defaults to 500.
Performance issues
==================
To start the FastCGI runner, execute '$ZEUSHOME/web/bin/fcgirunner
8002 $DOCROOT/fcgi-bin/php'. Substitute the appropriate values for
$ZEUSHOME and $DOCROOT; also substitute for 8002 the port you chose,
above.
To make PHP run fast under Zeus, check the following points:
1) Run PHP as an ISAPI module, not a CGI - compile it with the --with-zeus=...
flag!
2) Tune the ISAPI runner to your required workload. There are several
tuneables that can be given. These are set by adding the appropriate
lines to the $ZEUSHOME/web/global.cfg file. Changes to this file will only
be picked up after the web server is restarted (run stop-zeus ; start-zeus)
tuning!modules!isapi!external!maxthreads xxx
- Sets the maximum number of threads that the ISAPI runner will spawn. If
further PHP page requests arrive, they will be queued until a current
page is finished. For busy websites, we suggest increasing this value
(defaults to 16). Replace the 'xxx' in the above line with the required
number of threads. Note that the threads are equally shared between
ISAPI extensions and filters, so if you want to handle 100 concurrent
PHP page requests, set this tuneable to 200.
tuning!modules!isapi!external!minthreads xxx
- Sets the minimum number of threads. Idle threads will be kept in a pool,
which avoids costly thread creation/deletion.
For more information and help with Zeus, please visit our website:
http://support.zeus.com
To stop the runner (e.g. to experiment with the above environment
variables) you will need to manually stop and running PHP
processes. (Use 'ps' and 'kill'). As it is PHP which is forking lots
of children and not the runner, Zeus unfortunately cannot keep track
of what processes are running, sorry. A typical command line may look
like 'ps -efl | grep $DOCROOT/fcgi-bin/php | grep -v grep | awk
'{print $4}' | xargs kill'
+186
View File
@@ -0,0 +1,186 @@
Advisory on the PHP Release Cycle
Copyright & Liciencing
This Document is (c) Copyright 2000,2001 by The PHP Group
This Document is distributed under the terms of the GNU General
Public License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later
version.
Table of Contents
1. Introduction
2. Dealing with bugs
2.1 As a QA Team Member
2.2 As a Developer
3. Releaseing another RC
4. CVS During the Release Process
4.1 Useful CVS Commands
5 The Final Release
6 Summary
1. Introduction
This cycle should take place over roughly 10 days. When it is
decided it is time for an Release to occur Andi/Zeev (Or
Whoever) will tarball RC1, Tag & Branch CVS (see section 4)
and then announce the RC on PHP-QA and PHP-DEV. At this
point the build tracker and QA Bug System come into play.
If you successfully build PHP then report it in the build
tracker, If you then run and complete all the tests you
should report this too in the build tracker when
these features become avalible.
2. Dealing with Bugs
2.1 As a QA Team member
If you find a bug in an RC that you think is a showstopper
then, even if it is a known bug, you should report it in the
QA Bug system. This marks the bug for discussion at least,
and preferably fixing before the actual release. This system
is separate from the main bugs system so that important bugs
dont get lost in the midst if lots of feature/change request
in the approach to a release. It is imperitive where
appropraite that as a QA'er a test script, Configure options
and PHP.ini files are provided to enable the developer to
reproduce the bug, this is an important part of our job. If
you have a serious bug then you should also create a test
script to be added to the tests dir of the php source so
that at the end of the process to enable us to make sure bug
does not return. It is not difficult to create these test
scripts and a readme on it can be found in
php4/tests/README.
2.2 As a Developer
What should happen is that when a bug is reported it
is send to php-dev and php-qa as with other bugs. We should
have far stricter assignment system in this bug cycle rather
than just leaving them. Once again bugs should be able to be
marked as To Be Fixed Before release or moved to other bug
system. (This is currently the Release Masters responsibility)
Then before the actual release the qa bugs system can be
checked and if there are outstanding To Be Fixed Before
release bugs the Developers can see this easyly rather than
show stoppers being dismissed and not worried about.
When a bug is fixed the QAer who reported the bug is emailed
and asked to test again and see if the bug is fixed.
3 Releasing another RC
If it is felt necessary that a 2nd RC is needed then it
should be packaged as before and announced to both lists
again. The testing process then starts again, the RC2 is
added to the build tracker and QA'ers are asked to build and
retest the scripts as appropriate, espectially if you
reported a bug, you should test thourghly for your
bug and make sure it no longer occurs. This will normally
add anouther 3 days to the cycle, giving QA'ers time to
build test and report back, then for developers to
fix any problems.
4 CVS during the release process
At the point where the first RC is create a branch is
formed. This branch is not altered form that point onward
other than major bug fixes. Minor non important bug
fixes should not be applied to this branch but to the main
tree instead. Any major bug fixes should be applied to both
trees. The developer should test and check the RC tree then
also test and check the MAIN tree. This is their
responsibility to make sure (as far as possible) that the
bug fix works on both trees.
4.1 Useful CVS Commands
To create a Branch <Should only be done by person tarballing
the RC (The Release Master)>:
$ cvs tag -b php_4_0_<Version>RC<NUMBER>
IE:
$ cvs tag -b php_4_0_1RC1
This should be executed in the PHP directory of an up to
date checkout. Remember to also tag the Zend and TSRM repositories.
You can retrieve a branch in one of two ways: by checking it
out fresh from the repository, or by switching an existing
working copy over to the branch, I would suggest you
checkout a new copy.
To check out a new copy:
$ cvs checkout -r php_4_0_<Version>RC<NUMBER> php4
IE:
$ cvs checkout -r php_4_0_1RC1 php4
To switch a working copy (Not recomended due to possible
commiting to wrong branch)
$ cvs update -r php_4_0_<Version>RC<NUMBER> php4
IE:
$ cvs update -r php_4_0_1RC1 php4
This should be done in the PHP4 directory itself.
To revert back to normal branch you should use the
following:
$ cvs update -A
To Commit to the branch you follow exactly the same
procedure as normal
$ cvs commit file.c
MAKE SURE YOU DO NOT COMMIT TO THE WRONG BRANCH.
5 The Final Release
When it is time to make the final release the following
proceedure should be followed. The person who is tarballing
the final release should check the QA bugs system and make
sure there are no showstoppers left unfixed. If there are
then bug the person the bug is assigned to until they fix
it. If there are no more qa bugs then they should tag the
branch as php_4_0_<Version> and tarball as usual. An email
should be sent to PHP-GEN, PHP_DEV and PHP-QA about the new
release and it should be added to php.net. The windows
binaries and servelets should be built as soon as possible
and added too, as should the windows installer.
6 Summary
Here is a summary of what a release cycle might look like:
Thurs: RC is agreed on and packaged, an email is sent to
PHP_QA and PHP-DEV, the CVS is Branched and the
Release Cycle Begins.
Mon: After a weekends testing most show stoppers should
have been found (Hopefully) and the developers get to
work on fixing them.
Thurs: A second RC is released if needed with the new bug
fixes in and the QAers test again.
Sun: A review is made of all outstanding bugs and any show
stoppers should be fixed. if there are no show
stoppers then the final release is packaged and
released on the monday morning on php.net
Mon: Release is made.
James
--
James Moore
PHP QA Team
jmoore@php.net
+41 -8
View File
@@ -5,21 +5,29 @@ Zend
----
* allow foreach ($array as $k => &$val) syntax. right now we cannot
traverse an array without copying each element.
* allow foreach ($array as $k => list($a, $b)) syntax for multi
dimensional arrays.
* look at replacing c-lib call tolower().
* make hash API functions work with HASH_OF() to save time.
* native large number support (probably with GNU GMP)
* Const'ify APIs. Right now, many functions leave parameters untouched,
but don't declare those as const. This makes interaction with other
interfaces difficult which pass const parameters to us.
* add try..catch/throw exception handling
* make UNC filenames work with V_CD layer
global
------
* when used in standalone (skell-script like) mode don't urldecode
arguments passed to php. right now it's not possible to say
/usr/local/bin/php somescript.php dog+cat.txt
as "dog+cat.txt" will arrive in php as "dog cat.txt".
* make everything on the language-level independent of your locale setings.
* always build the standalone executable as well as the chosen SAPI
target.
* make sure all source files have the "right" copyright.
* the following modules still use PHP3_TLS_*() macros (and thereby don't
work in ZTS mode): ext/dav/dav.c, ext/db/db.c, ext/gd/gd.c, ext/ldap/ldap.c
work in ZTS mode): ext/db/db.c, ext/gd/gd.c
* make sure that all ZTS globals get destructed. Most ts_allocate_id()
calls should have a dtor entry.
* activate all extensions by default that don't rely on external
@@ -48,6 +56,16 @@ documentation
-------------
* add remarks in the documentation which functions are not implemented on win32.
* add remarks in the documentation which functions are not binary-safe.
* improve documentation for the sablotron extension
* update curl documentation
* write documentation for the bzip2 extension
* write documentation for the zziplib extension
ext/curl
--------
* Use the cURL write handler to save data for use when returning data or outputting
data.
* Have a warning scheme for when people use unsupported features.
ext/dav
--------
@@ -57,32 +75,43 @@ ext/oci8
--------
* all OCIFetch*() functions should return 0 for no more data and false on error.
* have a flag that trims trailing spaces from CHAR fields on retrieval.
* make allow_call_time_pass_reference=Off working.
* make allow_call_time_pass_reference=Off working.
* for additional todo information, see oci8.c, in ext/oci8
ext/pcre
--------
* update the online docs from version 3.1 man page
* Allow user to set PCRE_NOTEMPTY, PCRE_ANCHORED at execution time, maybe
* add option to preg_grep() to return entries that _don't_ match
ext/sablot
----------
* Re-write the error handling and reporting interface
* Cleanup the underlying code a bit
* Add proper support for the message handlers
ext/session
-----------
* implement a call to set a session read-only to overcome
the need to serialize frame-loads.
* maybe implement finer-grained session variables that could be
locked individually.
* write a network-transparent storage back-end with fallover
facilities
* provide a callback facility which is executed upon encountering
an unknown classname during deserialization
ext/sockets
-----------
* Make the extension work on windows (Daniel Beulshausen)
* Make the extension work with Solaris and the Sun GCC
ext/standard
------------
* array_mean()
* add a version number to data serialized via serialize().
* array_add(). (Andrei)
* possibly modify parsing of GPC data to automatically create arrays if
variable name is seen more than once.
* implement regex-cache for url-functions.
* strcase_replace(). (Andrei)
* stri_replace(). (Andrei)
* move socket related functions to fsock.c.
* get_defined_funcs(), get_defined_vars().
* NOT binary safe:
strtok()
basename()
@@ -93,6 +122,10 @@ ext/standard
* rewrite win32 SMTP code to be useable for *ix to, maybe as a (default)
module of its own (Hartmut)
ext/zziplib
------------
* more fully support the zziplib api
ext/wddx
--------
* See if we can support the remaining datatypes:
+60 -16
View File
@@ -59,6 +59,9 @@ static void (*tsrm_new_thread_end_handler)();
/* Debug support */
int tsrm_error(int level, const char *format, ...);
/* Read a resource from a thread's resource storage */
void *ts_resource_read( tsrm_tls_entry *thread_resources, ts_rsrc_id id );
static int tsrm_error_level;
static FILE *tsrm_error_file;
#if TSRM_DEBUG
@@ -69,11 +72,19 @@ static FILE *tsrm_error_file;
#define TSRM_SAFE_ARRAY_OFFSET(array, offset, range) array[offset]
#endif
#if defined(PTHREADS)
/* Thread local storage */
static pthread_key_t tls_key;
#endif
/* Startup TSRM (call once for the entire process) */
TSRM_API int tsrm_startup(int expected_threads, int expected_resources, int debug_level, char *debug_filename)
{
#if defined(GNUPTH)
pth_init();
#elif defined(PTHREADS)
pthread_key_create( &tls_key, 0 );
#endif
tsrm_error_file = stderr;
@@ -141,6 +152,8 @@ TSRM_API void tsrm_shutdown(void)
}
#if defined(GNUPTH)
pth_kill();
#elif defined(PTHREADS)
pthread_key_delete( tls_key );
#endif
}
@@ -211,7 +224,10 @@ static void allocate_new_resource(tsrm_tls_entry **thread_resources_ptr, THREAD_
(*thread_resources_ptr)->thread_id = thread_id;
(*thread_resources_ptr)->next = NULL;
tsrm_mutex_unlock(tsmm_mutex);
#if defined(PTHREADS)
/* Set thread local storage to this new thread resources structure */
pthread_setspecific( tls_key, (void *)*thread_resources_ptr );
#endif
if (tsrm_new_thread_begin_handler) {
tsrm_new_thread_begin_handler(thread_id);
@@ -222,6 +238,9 @@ static void allocate_new_resource(tsrm_tls_entry **thread_resources_ptr, THREAD_
resource_types_table[i].ctor((*thread_resources_ptr)->storage[i]);
}
}
tsrm_mutex_unlock(tsmm_mutex);
if (tsrm_new_thread_end_handler) {
tsrm_new_thread_end_handler(thread_id);
}
@@ -234,13 +253,25 @@ TSRM_API void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id)
THREAD_T thread_id;
int hash_value;
tsrm_tls_entry *thread_resources;
void *resource;
if (th_id) {
thread_id = *th_id;
} else {
if( !th_id ) {
#if defined(PTHREADS)
/* Fast path for looking up the resources for the current
* thread. Its used by just about every call to
* ts_resource_ex(). This avoids the need for a mutex lock
* and our hashtable lookup.
*/
thread_resources = pthread_getspecific( tls_key );
if( thread_resources ) {
TSRM_ERROR(TSRM_ERROR_LEVEL_INFO, "Fetching resource id %d for current thread %d", id, (long) thread_resources->thread_id );
return ts_resource_read( thread_resources, id );
}
#endif
thread_id = tsrm_thread_id();
} else {
thread_id = *th_id;
}
TSRM_ERROR(TSRM_ERROR_LEVEL_INFO, "Fetching resource id %d for thread %ld", id, (long) thread_id);
tsrm_mutex_lock(tsmm_mutex);
@@ -249,8 +280,7 @@ TSRM_API void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id)
if (!thread_resources) {
allocate_new_resource(&tsrm_tls_table[hash_value], thread_id);
return ts_resource(id);
/* thread_resources = tsrm_tls_table[hash_value]; */
return ts_resource_ex(id, &thread_id);
} else {
do {
if (thread_resources->thread_id == thread_id) {
@@ -260,7 +290,7 @@ TSRM_API void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id)
thread_resources = thread_resources->next;
} else {
allocate_new_resource(&thread_resources->next, thread_id);
return ts_resource(id);
return ts_resource_ex(id, &thread_id);
/*
* thread_resources = thread_resources->next;
* break;
@@ -268,15 +298,25 @@ TSRM_API void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id)
}
} while (thread_resources);
}
tsrm_mutex_unlock(tsmm_mutex);
return ts_resource_read( thread_resources, id );
}
/* Read a specific resource from the thread's resources.
* This is called outside of a mutex, so have to be aware about external
* changes to the structure as we read it.
*/
void *ts_resource_read( tsrm_tls_entry *thread_resources, ts_rsrc_id id )
{
void *resource;
resource = TSRM_SAFE_ARRAY_OFFSET(thread_resources->storage, TSRM_UNSHUFFLE_RSRC_ID(id), thread_resources->count);
tsrm_mutex_unlock(tsmm_mutex);
if (resource) {
TSRM_ERROR(TSRM_ERROR_LEVEL_INFO, "Successfully fetched resource id %d for thread id %ld - %x", id, (long) thread_id, (long) resource);
TSRM_ERROR(TSRM_ERROR_LEVEL_INFO, "Successfully fetched resource id %d for thread id %ld - %x", id, (long) thread_resources->thread_id, (long) resource);
} else {
TSRM_ERROR(TSRM_ERROR_LEVEL_ERROR, "Resource id %d is out of range (%d..%d)", id, TSRM_SHUFFLE_RSRC_ID(0), TSRM_SHUFFLE_RSRC_ID(thread_resources->count-1));
abort();
}
return resource;
}
@@ -285,9 +325,10 @@ TSRM_API void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id)
/* frees all resources allocated for the current thread */
void ts_free_thread(void)
{
tsrm_tls_entry *thread_resources;
int i;
THREAD_T thread_id = tsrm_thread_id();
int hash_value;
tsrm_tls_entry *thread_resources;
tsrm_tls_entry *last=NULL;
tsrm_mutex_lock(tsmm_mutex);
@@ -296,20 +337,23 @@ void ts_free_thread(void)
while (thread_resources) {
if (thread_resources->thread_id == thread_id) {
int i;
for (i=0; i<thread_resources->count; i++) {
if (resource_types_table[i].dtor) {
resource_types_table[i].dtor(thread_resources->storage[i]);
}
}
for (i=0; i<thread_resources->count; i++) {
free(thread_resources->storage[i]);
}
free(thread_resources->storage);
if (last) {
last->next = thread_resources->next;
} else {
tsrm_tls_table[hash_value]=NULL;
tsrm_tls_table[hash_value] = thread_resources->next;
}
#if defined(PTHREADS)
pthread_setspecific(tls_key, 0);
#endif
free(thread_resources);
break;
}
+25
View File
@@ -20,6 +20,7 @@ CFG=TSRM - Win32 Debug_TS
!MESSAGE "TSRM - Win32 Debug_TS" (based on "Win32 (x86) Static Library")
!MESSAGE "TSRM - Win32 Release_TS" (based on "Win32 (x86) Static Library")
!MESSAGE "TSRM - Win32 Release_TS_inline" (based on "Win32 (x86) Static Library")
!MESSAGE "TSRM - Win32 Release_TSDbg" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
@@ -98,6 +99,29 @@ LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "TSRM - Win32 Release_TSDbg"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "TSRM___Win32_Release_TSDbg"
# PROP BASE Intermediate_Dir "TSRM___Win32_Release_TSDbg"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_TSDbg"
# PROP Intermediate_Dir "Release_TSDbg"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "ZTS" /D "_LIB" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /D TSRM_DEBUG=0 /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /Zi /Od /I "." /D "NDEBUG" /D "ZTS" /D "_LIB" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /D TSRM_DEBUG=0 /YX /FD /c
# ADD BASE RSC /l 0x40d /d "NDEBUG"
# ADD RSC /l 0x40d /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
@@ -105,6 +129,7 @@ LIB32=link.exe -lib
# Name "TSRM - Win32 Debug_TS"
# Name "TSRM - Win32 Release_TS"
# Name "TSRM - Win32 Release_TS_inline"
# Name "TSRM - Win32 Release_TSDbg"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-4
View File
@@ -14,11 +14,7 @@
#define TSRM_H
#ifdef HAVE_CONFIG_H
# undef PACKAGE
# undef VERSION
# include "tsrm_config.h"
# undef PACKAGE
# undef VERSION
#endif
/* Only compile multi-threading functions if we're in ZTS mode */
+1 -1
View File
@@ -4,7 +4,7 @@ dnl Minimalistic configure.in for TSRM.
dnl
AC_INIT(TSRM.c)
AM_INIT_AUTOMAKE(TSRM, 1.0)
AM_INIT_AUTOMAKE(TSRM, 1.0, nodefine)
AM_CONFIG_HEADER(tsrm_config.h)
sinclude(tsrm.m4)
+1 -1
View File
@@ -275,7 +275,7 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
if (path_length == 0)
return (0);
#ifndef TSRM_WIN32
#if !defined(TSRM_WIN32) && !defined(__BEOS__)
if (IS_ABSOLUTE_PATH(path, path_length)) {
if (realpath(path, resolved_path)) {
path = resolved_path;
+1 -1
View File
@@ -1,6 +1,6 @@
---------------------------------------------------------------------------
The Zend License, version 0.92
Copyright (C) 1999-2000 Zend Technologies Ltd.
Copyright (C) 1999-2001 Zend Technologies Ltd.
---------------------------------------------------------------------------
The Zend scripting engine library is a product of Zend Technologies Ltd.
+5 -9
View File
@@ -215,7 +215,7 @@ SOURCE=.\FlexLexer.h
# End Source File
# Begin Source File
SOURCE=.\modules.h
SOURCE=.\zend_modules.h
# End Source File
# Begin Source File
@@ -330,8 +330,7 @@ InputDir=.
InputPath=.\zend_ini_parser.y
BuildCmds= \
if not "X%CYGWIN%"=="X" bison --output=zend_ini_parser.c -v -d -S "%CYGWIN%\share\bison.simple" -p ini_ zend_ini_parser.y \
if "X%CYGWIN%"=="X" bison --output=zend_ini_parser.c -v -d -S "C:\Program Files\Cygnus\share\bison.simple" -p ini_ zend_ini_parser.y \
bison --output=zend_ini_parser.c -v -d -p ini_ zend_ini_parser.y \
"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
@@ -357,8 +356,7 @@ InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
if not "X%CYGWIN%"=="X" bison --output=zend_language_parser.c -v -d -S "%CYGWIN%\share\bison.simple" -p zend zend_language_parser.y \
if "X%CYGWIN%"=="X" bison --output=zend_language_parser.c -v -d -S "C:\Program Files\Cygnus\share\bison.simple" -p zend zend_language_parser.y \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y \
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
@@ -375,8 +373,7 @@ InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
if not "X%CYGWIN%"=="X" bison --output=zend_language_parser.c -v -d -S "%CYGWIN%\share\bison.simple" -p zend zend_language_parser.y \
if "X%CYGWIN%"=="X" bison --output=zend_language_parser.c -v -d -S "C:\Program Files\Cygnus\share\bison.simple" -p zend zend_language_parser.y \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y \
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
@@ -393,8 +390,7 @@ InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
if not "X%CYGWIN%"=="X" bison --output=zend_language_parser.c -v -d -S "%CYGWIN%\share\bison.simple" -p zend zend_language_parser.y \
if "X%CYGWIN%"=="X" bison --output=zend_language_parser.c -v -d -S "C:\Program Files\Cygnus\share\bison.simple" -p zend zend_language_parser.y \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y \
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+3 -3
View File
@@ -19,7 +19,7 @@ AC_DEFUN(LIBZEND_BASIC_CHECKS,[
AC_REQUIRE([AC_PROG_YACC])
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_PROG_CC_C_O])
AC_REQUIRE([AM_PROG_LEX])
AC_REQUIRE([AC_PROG_LEX])
AC_REQUIRE([AC_HEADER_STDC])
LIBZEND_BISON_CHECK
@@ -62,7 +62,7 @@ dnl Checks for library functions.
AC_FUNC_VPRINTF
AC_FUNC_MEMCMP
AC_FUNC_ALLOCA
AC_CHECK_FUNCS(memcpy strdup getpid kill strtod strtol finite)
AC_CHECK_FUNCS(memcpy strdup getpid kill strtod strtol finite fpclass)
AC_ZEND_BROKEN_SPRINTF
AC_CHECK_FUNCS(finite isfinite isinf isnan)
@@ -169,7 +169,7 @@ fi
changequote({,})
if test -n "$GCC" && test "$ZEND_INLINE_OPTIMIZATION" != "yes"; then
INLINE_CFLAGS=`echo $ac_n "$CFLAGS $ac_c" | sed s/-O[0-9]*//`
INLINE_CFLAGS=`echo $ac_n "$CFLAGS $ac_c" | sed s/-O[0-9s]*//`
else
INLINE_CFLAGS="$CFLAGS"
fi
+5 -5
View File
@@ -30,7 +30,7 @@
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\modules.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
@@ -63,7 +63,7 @@
".\zend_constants.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\modules.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
@@ -110,7 +110,7 @@
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\modules.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
@@ -168,7 +168,7 @@
".\zend_constants.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\modules.h"\
".\zend_modules.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
@@ -200,7 +200,7 @@
".\zend_constants.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\modules.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
+90 -15
View File
@@ -4,7 +4,7 @@
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=ZendTS - Win32 Release_TS_inline
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
@@ -13,13 +13,14 @@ CFG=ZendTS - Win32 Release_TS_inline
!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_TS_inline"
!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
@@ -95,6 +96,29 @@ 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
@@ -102,6 +126,7 @@ LIB32=link.exe -lib
# 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"
@@ -219,7 +244,7 @@ SOURCE=.\FlexLexer.h
# End Source File
# Begin Source File
SOURCE=.\modules.h
SOURCE=.\zend_modules.h
# End Source File
# Begin Source File
@@ -307,6 +332,10 @@ 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
@@ -352,8 +381,7 @@ InputDir=.
InputPath=.\zend_ini_parser.y
BuildCmds= \
if not "X%CYGWIN%"=="X" bison --output=zend_ini_parser.c -v -d -S "%CYGWIN%\share\bison.simple" -p ini_ zend_ini_parser.y \
if "X%CYGWIN%"=="X" bison --output=zend_ini_parser.c -v -d -S "C:\Program Files\Cygnus\share\bison.simple" -p ini_ zend_ini_parser.y \
bison --output=zend_ini_parser.c -v -d -p ini_ zend_ini_parser.y \
"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
@@ -370,8 +398,7 @@ InputDir=.
InputPath=.\zend_ini_parser.y
BuildCmds= \
if not "X%CYGWIN%"=="X" bison --output=zend_ini_parser.c -v -d -S "%CYGWIN%\share\bison.simple" -p ini_ zend_ini_parser.y \
if "X%CYGWIN%"=="X" bison --output=zend_ini_parser.c -v -d -S "C:\Program Files\Cygnus\share\bison.simple" -p ini_ zend_ini_parser.y \
bison --output=zend_ini_parser.c -v -d -p ini_ zend_ini_parser.y \
"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
@@ -388,8 +415,7 @@ InputDir=.
InputPath=.\zend_ini_parser.y
BuildCmds= \
if not "X%CYGWIN%"=="X" bison --output=zend_ini_parser.c -v -d -S "%CYGWIN%\share\bison.simple" -p ini_ zend_ini_parser.y \
if "X%CYGWIN%"=="X" bison --output=zend_ini_parser.c -v -d -S "C:\Program Files\Cygnus\share\bison.simple" -p ini_ zend_ini_parser.y \
bison --output=zend_ini_parser.c -v -d -p ini_ zend_ini_parser.y \
"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
@@ -399,6 +425,22 @@ BuildCmds= \
$(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
@@ -413,8 +455,7 @@ InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
if not "X%CYGWIN%"=="X" bison --output=zend_language_parser.c -v -d -S "%CYGWIN%\share\bison.simple" -p zend zend_language_parser.y \
if "X%CYGWIN%"=="X" bison --output=zend_language_parser.c -v -d -S "C:\Program Files\Cygnus\share\bison.simple" -p zend zend_language_parser.y \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y \
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
@@ -431,8 +472,7 @@ InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
if not "X%CYGWIN%"=="X" bison --output=zend_language_parser.c -v -d -S "%CYGWIN%\share\bison.simple" -p zend zend_language_parser.y \
if "X%CYGWIN%"=="X" bison --output=zend_language_parser.c -v -d -S "C:\Program Files\Cygnus\share\bison.simple" -p zend zend_language_parser.y \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y \
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
@@ -449,8 +489,7 @@ InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
if not "X%CYGWIN%"=="X" bison --output=zend_language_parser.c -v -d -S "%CYGWIN%\share\bison.simple" -p zend zend_language_parser.y \
if "X%CYGWIN%"=="X" bison --output=zend_language_parser.c -v -d -S "C:\Program Files\Cygnus\share\bison.simple" -p zend zend_language_parser.y \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y \
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
@@ -460,6 +499,22 @@ BuildCmds= \
$(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
@@ -501,6 +556,16 @@ InputPath=.\zend_ini_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TSDbg"
# Begin Custom Build
InputPath=.\zend_ini_scanner.l
"zend_ini_scanner.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -+ -B -i -Sflex.skl -Pini_ -ozend_ini_scanner.cpp zend_ini_scanner.l
# End Custom Build
!ENDIF
# End Source File
@@ -538,6 +603,16 @@ InputPath=".\zend_language_scanner.l"
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TSDbg"
# Begin Custom Build
InputPath=".\zend_language_scanner.l"
"zend_language_scanner.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -+ -B -i -Sflex.skl -Pzend -ozend_language_scanner.cpp zend_language_scanner.l
# End Custom Build
!ENDIF
# End Source File
+8 -4
View File
@@ -3,10 +3,6 @@
@TOP@
/* these are defined by automake */
#undef PACKAGE
#undef VERSION
#undef uint
#undef ulong
@@ -23,6 +19,10 @@
# include <sys/types.h>
#endif
#ifdef HAVE_IEEEFP_H
# include <ieeefp.h>
#endif
#ifdef HAVE_STRING_H
# include <string.h>
#else
@@ -41,6 +41,8 @@ int zend_sprintf(char *buffer, const char *format, ...);
#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
@@ -50,6 +52,8 @@ int zend_sprintf(char *buffer, const char *format, ...);
#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
+1 -1
View File
@@ -2,7 +2,7 @@ dnl $Id$
dnl Process this file with autoconf to produce a configure script.
AC_INIT(zend.c)
AM_INIT_AUTOMAKE(zend, 0.80A)
AM_INIT_AUTOMAKE(zend, 0.80A, nodefine)
AM_CONFIG_HEADER(zend_config.h)
AM_SANITY_CHECK
AM_MAINTAINER_MODE
+1 -1
View File
@@ -1,4 +1,4 @@
/* A lexical scanner generated by flex */
/* A Lexical scanner generated by flex */
/* Scanner skeleton version:
* $Header$
+45 -26
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -20,11 +20,12 @@
#include "zend.h"
#include "zend_extensions.h"
#include "modules.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_function_table
@@ -51,7 +52,7 @@ 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_ini_entry_p)(char *name, uint name_length, zval *contents);
static int (*zend_get_configuration_directive_p)(char *name, uint name_length, zval *contents);
#ifdef ZTS
@@ -70,7 +71,7 @@ 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-2000 Zend Technologies\n"
#define ZEND_CORE_VERSION_INFO "Zend Engine v" ZEND_VERSION ", Copyright (c) 1998-2001 Zend Technologies\n"
#define PRINT_ZVAL_INDENT 4
@@ -79,7 +80,8 @@ static void print_hash(HashTable *ht, int indent)
{
zval **tmp;
char *string_key;
unsigned long num_key;
HashPosition iterator;
unsigned long num_key, str_len;
int i;
for (i=0; i<indent; i++) {
@@ -87,16 +89,15 @@ static void print_hash(HashTable *ht, int indent)
}
ZEND_PUTS("(\n");
indent += PRINT_ZVAL_INDENT;
zend_hash_internal_pointer_reset(ht);
while (zend_hash_get_current_data(ht, (void **) &tmp) == SUCCESS) {
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(ht, &string_key, &num_key)) {
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);
efree(string_key);
break;
case HASH_KEY_IS_LONG:
zend_printf("%ld",num_key);
@@ -105,7 +106,7 @@ static void print_hash(HashTable *ht, int indent)
ZEND_PUTS("] => ");
zend_print_zval_r(*tmp, indent+PRINT_ZVAL_INDENT);
ZEND_PUTS("\n");
zend_hash_move_forward(ht);
zend_hash_move_forward_ex(ht, &iterator);
}
indent -= PRINT_ZVAL_INDENT;
for (i=0; i<indent; i++) {
@@ -300,6 +301,7 @@ static void executor_globals_ctor(zend_executor_globals *executor_globals)
}
zend_init_rsrc_plist(ELS_C);
EG(lambda_count)=0;
EG(user_error_handler) = NULL;
}
@@ -307,6 +309,7 @@ static void executor_globals_dtor(zend_executor_globals *executor_globals)
{
zend_shutdown_constants(ELS_C);
zend_destroy_rsrc_plist(ELS_C);
zend_ini_shutdown(ELS_C);
}
@@ -322,6 +325,17 @@ static void alloc_globals_ctor(zend_alloc_globals *alloc_globals)
#include <floatingpoint.h>
#endif
#ifdef ZTS
static void zend_new_thread_end_handler(THREAD_T thread_id)
{
ELS_FETCH();
zend_copy_ini_directives(ELS_C);
zend_ini_refresh_caches(ZEND_INI_STAGE_STARTUP ELS_CC);
}
#endif
int zend_startup(zend_utility_functions *utility_functions, char **extensions, int start_builtin_functions)
{
#ifdef ZTS
@@ -334,18 +348,8 @@ int zend_startup(zend_utility_functions *utility_functions, char **extensions, i
#endif
#ifdef __FreeBSD__
{
/* FreeBSD floating point precision fix */
#ifdef HAVE_FP_EXCEPT
fp_except
#else
fp_except_t
#endif
mask;
mask = fpgetmask();
fpsetmask(mask & ~FP_X_IMP);
}
/* FreeBSD floating point precision fix */
fpsetmask(0);
#endif
zend_startup_extensions_mechanism();
@@ -361,7 +365,7 @@ int zend_startup(zend_utility_functions *utility_functions, char **extensions, i
zend_message_dispatcher_p = utility_functions->message_handler;
zend_block_interruptions = utility_functions->block_interruptions;
zend_unblock_interruptions = utility_functions->unblock_interruptions;
zend_get_ini_entry_p = utility_functions->get_ini_entry;
zend_get_configuration_directive_p = utility_functions->get_configuration_directive;
zend_ticks_function = utility_functions->ticks_function;
zend_compile_file = compile_file;
@@ -398,6 +402,7 @@ int zend_startup(zend_utility_functions *utility_functions, char **extensions, i
#else
zend_startup_constants();
zend_set_default_compile_time_values(CLS_C);
EG(user_error_handler) = NULL;
#endif
zend_register_standard_constants(ELS_C);
@@ -409,6 +414,12 @@ int zend_startup(zend_utility_functions *utility_functions, char **extensions, i
zend_startup_builtin_functions();
}
zend_ini_startup(ELS_C);
#ifdef ZTS
tsrm_set_new_thread_end_handler(zend_new_thread_end_handler);
#endif
return SUCCESS;
}
@@ -527,6 +538,9 @@ void zend_deactivate(CLS_D ELS_DC)
if (setjmp(EG(bailout))==0) {
shutdown_compiler(CLS_C);
}
if (setjmp(EG(bailout))==0) {
zend_ini_deactivate(ELS_C);
}
}
@@ -540,10 +554,10 @@ ZEND_API void zend_message_dispatcher(long message, void *data)
END_EXTERN_C()
ZEND_API int zend_get_ini_entry(char *name, uint name_length, zval *contents)
ZEND_API int zend_get_configuration_directive(char *name, uint name_length, zval *contents)
{
if (zend_get_ini_entry_p) {
return zend_get_ini_entry_p(name, name_length, contents);
if (zend_get_configuration_directive_p) {
return zend_get_configuration_directive_p(name, name_length, contents);
} else {
return FAILURE;
}
@@ -768,3 +782,8 @@ ZEND_API char *zend_make_compiled_string_description(char *name)
return compiled_string_description;
}
void free_estring(char **str_p)
{
efree(*str_p);
}
+9 -5
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -21,7 +21,7 @@
#ifndef ZEND_H
#define ZEND_H
#define ZEND_VERSION "1.0.3"
#define ZEND_VERSION "1.0.5"
#ifdef __cplusplus
#define BEGIN_EXTERN_C() extern "C" {
@@ -39,8 +39,10 @@
#ifdef ZEND_WIN32
# include "zend_config.w32.h"
# define ZEND_PATHS_SEPARATOR ';'
#else
# include "zend_config.h"
# define ZEND_PATHS_SEPARATOR ':'
#endif
/* all HAVE_XXX test have to be after the include of zend_config above */
@@ -232,7 +234,7 @@ typedef struct _zend_utility_functions {
void (*message_handler)(long message, void *data);
void (*block_interruptions)(void);
void (*unblock_interruptions)(void);
int (*get_ini_entry)(char *name, uint name_length, zval *contents);
int (*get_configuration_directive)(char *name, uint name_length, zval *contents);
void (*ticks_function)(int ticks);
} zend_utility_functions;
@@ -307,6 +309,8 @@ ZEND_API void zend_output_debug_string(zend_bool trigger_break, char *format, ..
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); }
@@ -354,7 +358,7 @@ BEGIN_EXTERN_C()
ZEND_API void zend_message_dispatcher(long message, void *data);
END_EXTERN_C()
ZEND_API int zend_get_ini_entry(char *name, uint name_length, zval *contents);
ZEND_API int zend_get_configuration_directive(char *name, uint name_length, zval *contents);
/* Messages for applications of Zend */
@@ -436,7 +440,7 @@ ZEND_API int zend_get_ini_entry(char *name, uint name_length, zval *contents);
(*ppzv_dest)->refcount = refcount; \
}
#define ZEND_MAX_RESERVED_RESOURCES 2
#define ZEND_MAX_RESERVED_RESOURCES 4
#ifdef ZEND_WIN32
/* Only use this macro if you know for sure that all of the switches values
+313 -291
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -21,7 +21,7 @@
#include "zend.h"
#include "zend_execute.h"
#include "zend_API.h"
#include "modules.h"
#include "zend_modules.h"
#include "zend_constants.h"
#ifdef HAVE_STDARG_H
@@ -227,95 +227,82 @@ ZEND_API inline int add_assoc_function(zval *arg, char *key,void (*function_ptr)
}
ZEND_API inline int add_assoc_long(zval *arg, char *key, long n)
ZEND_API inline int add_assoc_long_ex(zval *arg, char *key, uint key_len, long n)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_LONG;
tmp->value.lval = n;
INIT_PZVAL(tmp);
return zend_hash_update(arg->value.ht, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
MAKE_STD_ZVAL(tmp);
ZVAL_LONG(tmp, n);
return zend_hash_update(Z_ARRVAL_P(arg), key, key_len, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_assoc_null_ex(zval *arg, char *key, uint key_len)
{
zval *tmp;
MAKE_STD_ZVAL(tmp);
ZVAL_NULL(tmp);
return zend_hash_update(Z_ARRVAL_P(arg), key, key_len, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_assoc_bool_ex(zval *arg, char *key, uint key_len, int b)
{
zval *tmp;
MAKE_STD_ZVAL(tmp);
ZVAL_BOOL(tmp, b);
return zend_hash_update(Z_ARRVAL_P(arg), key, key_len, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_assoc_resource_ex(zval *arg, char *key, uint key_len, int r)
{
zval *tmp;
MAKE_STD_ZVAL(tmp);
ZVAL_RESOURCE(tmp, r);
return zend_hash_update(Z_ARRVAL_P(arg), key, key_len, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_assoc_unset(zval *arg, char *key)
ZEND_API inline int add_assoc_double_ex(zval *arg, char *key, uint key_len, double d)
{
zval *tmp;
MAKE_STD_ZVAL(tmp);
ZVAL_DOUBLE(tmp, d);
ALLOC_ZVAL(tmp);
tmp->type = IS_NULL;
INIT_PZVAL(tmp);
return zend_hash_update(arg->value.ht, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_assoc_bool(zval *arg, char *key, int b)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_BOOL;
tmp->value.lval = b;
INIT_PZVAL(tmp);
return zend_hash_update(arg->value.ht, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
return zend_hash_update(Z_ARRVAL_P(arg), key, key_len, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_assoc_resource(zval *arg, char *key, int r)
ZEND_API inline int add_assoc_string_ex(zval *arg, char *key, uint key_len, char *str, int duplicate)
{
zval *tmp;
MAKE_STD_ZVAL(tmp);
ZVAL_STRING(tmp, str, duplicate);
ALLOC_ZVAL(tmp);
tmp->type = IS_RESOURCE;
tmp->value.lval = r;
INIT_PZVAL(tmp);
return zend_hash_update(arg->value.ht, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
return zend_hash_update(Z_ARRVAL_P(arg), key, key_len, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_assoc_double(zval *arg, char *key, double d)
ZEND_API inline int add_assoc_stringl_ex(zval *arg, char *key, uint key_len, char *str, uint length, int duplicate)
{
zval *tmp;
MAKE_STD_ZVAL(tmp);
ZVAL_STRINGL(tmp, str, length, duplicate);
ALLOC_ZVAL(tmp);
tmp->type = IS_DOUBLE;
tmp->value.dval = d;
INIT_PZVAL(tmp);
return zend_hash_update(arg->value.ht, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
return zend_hash_update(Z_ARRVAL_P(arg), key, key_len, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_assoc_string(zval *arg, char *key, char *str, int duplicate)
ZEND_API inline int add_assoc_zval_ex(zval *arg, char *key, uint key_len, zval *value)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_STRING;
tmp->value.str.len = strlen(str);
if (duplicate) {
tmp->value.str.val = estrndup(str,tmp->value.str.len);
} else {
tmp->value.str.val = str;
}
INIT_PZVAL(tmp);
return zend_hash_update(arg->value.ht, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_assoc_stringl(zval *arg, char *key, char *str, uint length, int duplicate)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_STRING;
tmp->value.str.len = length;
if (duplicate) {
tmp->value.str.val = estrndup(str,tmp->value.str.len);
} else {
tmp->value.str.val = str;
}
INIT_PZVAL(tmp);
return zend_hash_update(arg->value.ht, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
return zend_hash_update(Z_ARRVAL_P(arg), key, key_len, (void *) &value, sizeof(zval *), NULL);
}
@@ -323,151 +310,136 @@ ZEND_API inline int add_index_long(zval *arg, uint index, long n)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_LONG;
tmp->value.lval = n;
INIT_PZVAL(tmp);
return zend_hash_index_update(arg->value.ht, index, (void *) &tmp, sizeof(zval *),NULL);
MAKE_STD_ZVAL(tmp);
ZVAL_LONG(tmp, n);
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &tmp, sizeof(zval *),NULL);
}
ZEND_API inline int add_index_unset(zval *arg, uint index)
ZEND_API inline int add_index_null(zval *arg, uint index)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_NULL;
INIT_PZVAL(tmp);
return zend_hash_index_update(arg->value.ht, index, (void *) &tmp, sizeof(zval *), NULL);
}
MAKE_STD_ZVAL(tmp);
ZVAL_NULL(tmp);
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_index_bool(zval *arg, uint index, int b)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_BOOL;
tmp->value.lval = b;
INIT_PZVAL(tmp);
return zend_hash_index_update(arg->value.ht, index, (void *) &tmp, sizeof(zval *),NULL);
MAKE_STD_ZVAL(tmp);
ZVAL_BOOL(tmp, b);
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &tmp, sizeof(zval *),NULL);
}
ZEND_API inline int add_index_resource(zval *arg, uint index, int r)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_RESOURCE;
tmp->value.lval = r;
INIT_PZVAL(tmp);
return zend_hash_index_update(arg->value.ht, index, (void *) &tmp, sizeof(zval *),NULL);
MAKE_STD_ZVAL(tmp);
ZVAL_RESOURCE(tmp, r);
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &tmp, sizeof(zval *),NULL);
}
ZEND_API inline int add_index_double(zval *arg, uint index, double d)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_DOUBLE;
tmp->value.dval = d;
INIT_PZVAL(tmp);
return zend_hash_index_update(arg->value.ht, index, (void *) &tmp, sizeof(zval *),NULL);
MAKE_STD_ZVAL(tmp);
ZVAL_DOUBLE(tmp, d);
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &tmp, sizeof(zval *),NULL);
}
ZEND_API inline int add_index_string(zval *arg, uint index, char *str, int duplicate)
{
zval *tmp;
MAKE_STD_ZVAL(tmp);
ZVAL_STRING(tmp, str, duplicate);
ALLOC_ZVAL(tmp);
tmp->type = IS_STRING;
tmp->value.str.len = strlen(str);
if (duplicate) {
tmp->value.str.val = estrndup(str,tmp->value.str.len);
} else {
tmp->value.str.val = str;
}
INIT_PZVAL(tmp);
return zend_hash_index_update(arg->value.ht, index, (void *) &tmp, sizeof(zval *), NULL);
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_index_stringl(zval *arg, uint index, char *str, uint length, int duplicate)
{
zval *tmp;
MAKE_STD_ZVAL(tmp);
ZVAL_STRINGL(tmp, str, length, duplicate);
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &tmp, sizeof(zval *), NULL);
}
ALLOC_ZVAL(tmp);
tmp->type = IS_STRING;
tmp->value.str.len = length;
if (duplicate) {
tmp->value.str.val = estrndup(str,tmp->value.str.len);
} else {
tmp->value.str.val = str;
}
INIT_PZVAL(tmp);
return zend_hash_index_update(arg->value.ht, index, (void *) &tmp, sizeof(zval *),NULL);
ZEND_API inline int add_index_zval(zval *arg, uint index, zval *value)
{
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &value, sizeof(zval *), NULL);
}
ZEND_API inline int add_next_index_long(zval *arg, long n)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_LONG;
tmp->value.lval = n;
INIT_PZVAL(tmp);
return zend_hash_next_index_insert(arg->value.ht, &tmp, sizeof(zval *), NULL);
MAKE_STD_ZVAL(tmp);
ZVAL_LONG(tmp, n);
return zend_hash_next_index_insert(Z_ARRVAL_P(arg), &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_next_index_unset(zval *arg)
ZEND_API inline int add_next_index_null(zval *arg)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_NULL;
INIT_PZVAL(tmp);
return zend_hash_next_index_insert(arg->value.ht, &tmp, sizeof(zval *), NULL);
MAKE_STD_ZVAL(tmp);
ZVAL_NULL(tmp);
return zend_hash_next_index_insert(Z_ARRVAL_P(arg), &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_next_index_bool(zval *arg, int b)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_BOOL;
tmp->value.lval = b;
INIT_PZVAL(tmp);
return zend_hash_next_index_insert(arg->value.ht, &tmp, sizeof(zval *), NULL);
MAKE_STD_ZVAL(tmp);
ZVAL_BOOL(tmp, b);
return zend_hash_next_index_insert(Z_ARRVAL_P(arg), &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_next_index_resource(zval *arg, int r)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_RESOURCE;
tmp->value.lval = r;
INIT_PZVAL(tmp);
return zend_hash_next_index_insert(arg->value.ht, &tmp, sizeof(zval *), NULL);
MAKE_STD_ZVAL(tmp);
ZVAL_RESOURCE(tmp, r);
return zend_hash_next_index_insert(Z_ARRVAL_P(arg), &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_next_index_double(zval *arg, double d)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_DOUBLE;
tmp->value.dval = d;
INIT_PZVAL(tmp);
return zend_hash_next_index_insert(arg->value.ht, &tmp, sizeof(zval *), NULL);
MAKE_STD_ZVAL(tmp);
ZVAL_DOUBLE(tmp, d);
return zend_hash_next_index_insert(Z_ARRVAL_P(arg), &tmp, sizeof(zval *), NULL);
}
@@ -475,16 +447,10 @@ ZEND_API inline int add_next_index_string(zval *arg, char *str, int duplicate)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_STRING;
tmp->value.str.len = strlen(str);
if (duplicate) {
tmp->value.str.val = estrndup(str,tmp->value.str.len);
} else {
tmp->value.str.val = str;
}
INIT_PZVAL(tmp);
return zend_hash_next_index_insert(arg->value.ht, &tmp, sizeof(zval *),NULL);
MAKE_STD_ZVAL(tmp);
ZVAL_STRING(tmp, str, duplicate);
return zend_hash_next_index_insert(Z_ARRVAL_P(arg), &tmp, sizeof(zval *),NULL);
}
@@ -492,201 +458,162 @@ ZEND_API inline int add_next_index_stringl(zval *arg, char *str, uint length, in
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_STRING;
tmp->value.str.len = length;
if (duplicate) {
tmp->value.str.val = estrndup(str,tmp->value.str.len);
} else {
tmp->value.str.val = str;
}
INIT_PZVAL(tmp);
return zend_hash_next_index_insert(arg->value.ht, &tmp, sizeof(zval *),NULL);
MAKE_STD_ZVAL(tmp);
ZVAL_STRINGL(tmp, str, length, duplicate);
return zend_hash_next_index_insert(Z_ARRVAL_P(arg), &tmp, sizeof(zval *),NULL);
}
ZEND_API inline int add_get_assoc_string(zval *arg, char *key, char *str, void **dest, int duplicate)
ZEND_API inline int add_next_index_zval(zval *arg, zval *value)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_STRING;
tmp->value.str.len = strlen(str);
if (duplicate) {
tmp->value.str.val = estrndup(str,tmp->value.str.len);
} else {
tmp->value.str.val = str;
}
INIT_PZVAL(tmp);
return zend_hash_update(arg->value.ht, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), dest);
return zend_hash_next_index_insert(Z_ARRVAL_P(arg), &value, sizeof(zval *), NULL);
}
ZEND_API inline int add_get_assoc_stringl(zval *arg, char *key, char *str, uint length, void **dest, int duplicate)
ZEND_API inline int add_get_assoc_string_ex(zval *arg, char *key, uint key_len, char *str, void **dest, int duplicate)
{
zval *tmp;
MAKE_STD_ZVAL(tmp);
ZVAL_STRING(tmp, str, duplicate);
return zend_hash_update(Z_ARRVAL_P(arg), key, key_len, (void *) &tmp, sizeof(zval *), dest);
}
ALLOC_ZVAL(tmp);
tmp->type = IS_STRING;
tmp->value.str.len = length;
if (duplicate) {
tmp->value.str.val = estrndup(str,tmp->value.str.len);
} else {
tmp->value.str.val = str;
}
INIT_PZVAL(tmp);
return zend_hash_update(arg->value.ht, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), dest);
ZEND_API inline int add_get_assoc_stringl_ex(zval *arg, char *key, uint key_len, char *str, uint length, void **dest, int duplicate)
{
zval *tmp;
MAKE_STD_ZVAL(tmp);
ZVAL_STRINGL(tmp, str, length, duplicate);
return zend_hash_update(Z_ARRVAL_P(arg), key, key_len, (void *) &tmp, sizeof(zval *), dest);
}
ZEND_API inline int add_get_index_long(zval *arg, uint index, long l, void **dest)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_LONG;
tmp->value.lval = l;
INIT_PZVAL(tmp);
return zend_hash_index_update(arg->value.ht, index, (void *) &tmp, sizeof(zval *),dest);
MAKE_STD_ZVAL(tmp);
ZVAL_LONG(tmp, l);
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &tmp, sizeof(zval *), dest);
}
ZEND_API inline int add_get_index_double(zval *arg, uint index, double d, void **dest)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_DOUBLE;
tmp->value.dval= d;
INIT_PZVAL(tmp);
return zend_hash_index_update(arg->value.ht, index, (void *) &tmp, sizeof(zval *),dest);
MAKE_STD_ZVAL(tmp);
ZVAL_DOUBLE(tmp, d);
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &tmp, sizeof(zval *), dest);
}
ZEND_API inline int add_get_index_string(zval *arg, uint index, char *str, void **dest, int duplicate)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_STRING;
tmp->value.str.len = strlen(str);
if (duplicate) {
tmp->value.str.val = estrndup(str,tmp->value.str.len);
} else {
tmp->value.str.val = str;
}
INIT_PZVAL(tmp);
return zend_hash_index_update(arg->value.ht, index, (void *) &tmp, sizeof(zval *),dest);
MAKE_STD_ZVAL(tmp);
ZVAL_STRING(tmp, str, duplicate);
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &tmp, sizeof(zval *),dest);
}
ZEND_API inline int add_get_index_stringl(zval *arg, uint index, char *str, uint length, void **dest, int duplicate)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_STRING;
tmp->value.str.len = length;
if (duplicate) {
tmp->value.str.val = estrndup(str,tmp->value.str.len);
} else {
tmp->value.str.val = str;
}
INIT_PZVAL(tmp);
return zend_hash_index_update(arg->value.ht, index, (void *) &tmp, sizeof(zval *),dest);
MAKE_STD_ZVAL(tmp);
ZVAL_STRINGL(tmp, str, length, duplicate);
return zend_hash_index_update(Z_ARRVAL_P(arg), index, (void *) &tmp, sizeof(zval *), dest);
}
ZEND_API inline int add_property_long(zval *arg, char *key, long n)
ZEND_API inline int add_property_long_ex(zval *arg, char *key, uint key_len, long n)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_LONG;
tmp->value.lval = n;
INIT_PZVAL(tmp);
return zend_hash_update(arg->value.obj.properties, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
MAKE_STD_ZVAL(tmp);
ZVAL_LONG(tmp, n);
return zend_hash_update(Z_OBJPROP_P(arg), key, key_len, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_property_bool(zval *arg, char *key, int b)
ZEND_API inline int add_property_bool_ex(zval *arg, char *key, uint key_len, int b)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_BOOL;
tmp->value.lval = b;
INIT_PZVAL(tmp);
return zend_hash_update(arg->value.obj.properties, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
MAKE_STD_ZVAL(tmp);
ZVAL_BOOL(tmp, b);
return zend_hash_update(Z_OBJPROP_P(arg), key, key_len, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_property_unset(zval *arg, char *key)
ZEND_API inline int add_property_null_ex(zval *arg, char *key, uint key_len)
{
zval *tmp;
MAKE_STD_ZVAL(tmp);
ZVAL_NULL(tmp);
return zend_hash_update(Z_OBJPROP_P(arg), key, key_len, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_property_resource_ex(zval *arg, char *key, uint key_len, long n)
{
zval *tmp;
MAKE_STD_ZVAL(tmp);
ZVAL_RESOURCE(tmp, n);
return zend_hash_update(Z_OBJPROP_P(arg), key, key_len, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_property_double_ex(zval *arg, char *key, uint key_len, double d)
{
zval *tmp;
MAKE_STD_ZVAL(tmp);
ZVAL_DOUBLE(tmp, d);
return zend_hash_update(Z_OBJPROP_P(arg), key, key_len, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_property_string_ex(zval *arg, char *key, uint key_len, char *str, int duplicate)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_NULL;
INIT_PZVAL(tmp);
return zend_hash_update(arg->value.obj.properties, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
MAKE_STD_ZVAL(tmp);
ZVAL_STRING(tmp, str, duplicate);
return zend_hash_update(Z_OBJPROP_P(arg), key, key_len, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_property_resource(zval *arg, char *key, long n)
ZEND_API inline int add_property_stringl_ex(zval *arg, char *key, uint key_len, char *str, uint length, int duplicate)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_RESOURCE;
tmp->value.lval = n;
INIT_PZVAL(tmp);
return zend_hash_update(arg->value.obj.properties, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
MAKE_STD_ZVAL(tmp);
ZVAL_STRINGL(tmp, str, length, duplicate);
return zend_hash_update(Z_OBJPROP_P(arg), key, key_len, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_property_double(zval *arg, char *key, double d)
ZEND_API inline int add_property_zval_ex(zval *arg, char *key, uint key_len, zval *value)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_DOUBLE;
tmp->value.dval = d;
INIT_PZVAL(tmp);
return zend_hash_update(arg->value.obj.properties, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
return zend_hash_update(Z_OBJPROP_P(arg), key, key_len, (void *) &value, sizeof(zval *), NULL);
}
ZEND_API inline int add_property_string(zval *arg, char *key, char *str, int duplicate)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_STRING;
tmp->value.str.len = strlen(str);
if (duplicate) {
tmp->value.str.val = estrndup(str,tmp->value.str.len);
} else {
tmp->value.str.val = str;
}
INIT_PZVAL(tmp);
return zend_hash_update(arg->value.obj.properties, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API inline int add_property_stringl(zval *arg, char *key, char *str, uint length, int duplicate)
{
zval *tmp;
ALLOC_ZVAL(tmp);
tmp->type = IS_STRING;
tmp->value.str.len = length;
if (duplicate) {
tmp->value.str.val = estrndup(str,tmp->value.str.len);
} else {
tmp->value.str.val = str;
}
INIT_PZVAL(tmp);
return zend_hash_update(arg->value.obj.properties, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
}
ZEND_API int zend_startup_module(zend_module_entry *module)
{
if (module) {
@@ -982,3 +909,98 @@ ZEND_API int zend_disable_function(char *function_name, uint function_name_lengt
disabled_function[0].fname = function_name;
return zend_register_functions(disabled_function, CG(function_table), MODULE_PERSISTENT);
}
zend_bool zend_is_callable(zval *callable, zend_bool syntax_only, char **callable_name)
{
char *lcname;
int retval = 0;
ELS_FETCH();
switch (Z_TYPE_P(callable)) {
case IS_STRING:
if (syntax_only)
return 1;
lcname = estrndup(Z_STRVAL_P(callable), Z_STRLEN_P(callable));
zend_str_tolower(lcname, Z_STRLEN_P(callable));
if (zend_hash_exists(EG(function_table), lcname, Z_STRLEN_P(callable)+1))
retval = 1;
efree(lcname);
if (!retval && callable_name)
*callable_name = estrndup(Z_STRVAL_P(callable), Z_STRLEN_P(callable));
break;
case IS_ARRAY:
{
zval **method;
zval **obj;
zend_class_entry *ce;
char callable_name_len;
if (zend_hash_index_find(Z_ARRVAL_P(callable), 0, (void **) &obj) == SUCCESS &&
zend_hash_index_find(Z_ARRVAL_P(callable), 1, (void **) &method) == SUCCESS &&
(Z_TYPE_PP(obj) == IS_OBJECT || Z_TYPE_PP(obj) == IS_STRING) &&
Z_TYPE_PP(method) == IS_STRING) {
if (syntax_only)
return 1;
if (Z_TYPE_PP(obj) == IS_STRING) {
int found;
lcname = estrndup(Z_STRVAL_PP(obj), Z_STRLEN_PP(obj));
zend_str_tolower(lcname, Z_STRLEN_PP(obj));
found = zend_hash_find(EG(class_table), lcname, Z_STRLEN_PP(obj) + 1, (void**)&ce);
efree(lcname);
if (found == FAILURE) {
if (callable_name) {
char *ptr;
callable_name_len = Z_STRLEN_PP(obj) + Z_STRLEN_PP(method) + sizeof("::");
ptr = *callable_name = emalloc(callable_name_len);
memcpy(ptr, Z_STRVAL_PP(obj), Z_STRLEN_PP(obj));
ptr += Z_STRLEN_PP(obj);
memcpy(ptr, "::", sizeof("::") - 1);
ptr += sizeof("::") - 1;
memcpy(ptr, Z_STRVAL_PP(method), Z_STRLEN_PP(method) + 1);
}
break;
}
} else {
ce = Z_OBJCE_PP(obj);
}
lcname = estrndup(Z_STRVAL_PP(method), Z_STRLEN_PP(method));
zend_str_tolower(lcname, Z_STRLEN_PP(method));
if (zend_hash_exists(&ce->function_table, lcname, Z_STRLEN_PP(method)+1))
retval = 1;
if (!retval && callable_name) {
char *ptr;
callable_name_len = ce->name_length + Z_STRLEN_PP(method) + sizeof("::");
ptr = *callable_name = emalloc(callable_name_len);
memcpy(ptr, ce->name, ce->name_length);
ptr += ce->name_length;
memcpy(ptr, "::", sizeof("::") - 1);
ptr += sizeof("::") - 1;
memcpy(ptr, Z_STRVAL_PP(method), Z_STRLEN_PP(method) + 1);
}
efree(lcname);
} else if (callable_name)
*callable_name = estrndup("Array", sizeof("Array")-1);
}
break;
default:
if (callable_name) {
zval expr_copy;
int use_copy;
zend_make_printable_zval(callable, &expr_copy, &use_copy);
*callable_name = estrndup(Z_STRVAL(expr_copy), Z_STRLEN(expr_copy));
zval_dtor(&expr_copy);
}
break;
}
return retval;
}
+55 -22
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -21,7 +21,7 @@
#ifndef ZEND_API_H
#define ZEND_API_H
#include "modules.h"
#include "zend_modules.h"
#include "zend_list.h"
#include "zend_fast_cache.h"
#include "zend_operators.h"
@@ -120,6 +120,7 @@ ZEND_API zend_module_entry *zend_get_module(int module_number);
ZEND_API int zend_disable_function(char *function_name, uint function_name_length);
ZEND_API void wrong_param_count(void);
ZEND_API zend_bool zend_is_callable(zval *callable, zend_bool syntax_only, char **callable_name);
#define getThis() (this_ptr)
@@ -146,47 +147,79 @@ ZEND_API int _object_init_ex(zval *arg, zend_class_entry *ce ZEND_FILE_LINE_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(zval *arg, char *key, long n);
ZEND_API int add_assoc_unset(zval *arg, char *key);
ZEND_API int add_assoc_bool(zval *arg, char *key, int b);
ZEND_API int add_assoc_resource(zval *arg, char *key, int r);
ZEND_API int add_assoc_double(zval *arg, char *key, double d);
ZEND_API int add_assoc_string(zval *arg, char *key, char *str, int duplicate);
ZEND_API int add_assoc_stringl(zval *arg, char *key, char *str, uint length, int duplicate);
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_unset(zval *arg, uint idx);
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_unset(zval *arg);
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_assoc_string(zval *arg, char *key, char *str, void **dest, int duplicate);
ZEND_API int add_get_assoc_stringl(zval *arg, char *key, char *str, uint length, void **dest, int duplicate);
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 call_user_function(HashTable *function_table, zval *object, zval *function_name, zval *retval_ptr, int param_count, zval *params[]);
ZEND_API int call_user_function_ex(HashTable *function_table, zval *object, zval *function_name, zval **retval_ptr_ptr, int param_count, zval **params[], int no_separation, HashTable *symbol_table);
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);
ZEND_API int add_property_long(zval *arg, char *key, long l);
ZEND_API int add_property_unset(zval *arg, char *key);
ZEND_API int add_property_bool(zval *arg, char *key, int b);
ZEND_API int add_property_resource(zval *arg, char *key, long r);
ZEND_API int add_property_double(zval *arg, char *key, double d);
ZEND_API int add_property_string(zval *arg, char *key, char *str, int duplicate);
ZEND_API int add_property_stringl(zval *arg, char *key, char *str, uint length, int duplicate);
#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[]);
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);
ZEND_API int zend_set_hash_symbol(zval *symbol, char *name, int name_length,
int is_ref, int num_symbol_tables, ...);
+2 -2
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -502,7 +502,7 @@ ZEND_API void shutdown_memory_manager(int silent, int clean_cache)
/* we're shutting down completely, don't even touch the INI subsystem */
break;
}
if (zend_get_ini_entry("display_memory_cache_stats", sizeof("display_memory_cache_stats"), &display_memory_cache_stats)==FAILURE) {
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)) {
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+14 -14
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -29,7 +29,7 @@ static ZEND_FUNCTION(zend_version);
static ZEND_FUNCTION(func_num_args);
static ZEND_FUNCTION(func_get_arg);
static ZEND_FUNCTION(func_get_args);
static ZEND_FUNCTION(strlen);
static ZEND_NAMED_FUNCTION(zend_if_strlen);
static ZEND_FUNCTION(strcmp);
static ZEND_FUNCTION(strncmp);
static ZEND_FUNCTION(strcasecmp);
@@ -64,17 +64,17 @@ static ZEND_FUNCTION(get_resource_type);
static ZEND_FUNCTION(zend_test_func);
#endif
unsigned char first_arg_force_ref[] = { 1, BYREF_FORCE };
unsigned char first_arg_allow_ref[] = { 1, BYREF_ALLOW };
unsigned char second_arg_force_ref[] = { 2, BYREF_NONE, BYREF_FORCE };
unsigned char second_arg_allow_ref[] = { 2, BYREF_NONE, BYREF_ALLOW };
ZEND_API unsigned char first_arg_force_ref[] = { 1, BYREF_FORCE };
ZEND_API unsigned char first_arg_allow_ref[] = { 1, BYREF_ALLOW };
ZEND_API unsigned char second_arg_force_ref[] = { 2, BYREF_NONE, BYREF_FORCE };
ZEND_API unsigned char second_arg_allow_ref[] = { 2, BYREF_NONE, BYREF_ALLOW };
static zend_function_entry builtin_functions[] = {
ZEND_FE(zend_version, NULL)
ZEND_FE(func_num_args, NULL)
ZEND_FE(func_get_arg, NULL)
ZEND_FE(func_get_args, NULL)
ZEND_FE(strlen, NULL)
{ "strlen", zend_if_strlen, NULL },
ZEND_FE(strcmp, NULL)
ZEND_FE(strncmp, NULL)
ZEND_FE(strcasecmp, NULL)
@@ -221,7 +221,7 @@ ZEND_FUNCTION(func_get_args)
/* {{{ proto int strlen(string str)
Get string length */
ZEND_FUNCTION(strlen)
ZEND_NAMED_FUNCTION(zend_if_strlen)
{
zval **str;
@@ -332,7 +332,7 @@ ZEND_FUNCTION(each)
entry->refcount++;
/* add the key elements */
switch (zend_hash_get_current_key(target_hash, &string_key, &num_key)) {
switch (zend_hash_get_current_key(target_hash, &string_key, &num_key, 1)) {
case HASH_KEY_IS_STRING:
add_get_index_string(return_value,0,string_key,(void **) &inserted_pointer,0);
break;
@@ -589,10 +589,10 @@ ZEND_FUNCTION(get_class_methods)
efree(lcname);
array_init(return_value);
zend_hash_internal_pointer_reset(&ce->function_table);
while ((key_type = zend_hash_get_current_key(&ce->function_table, &string_key, &num_key)) != HASH_KEY_NON_EXISTANT) {
while ((key_type = zend_hash_get_current_key(&ce->function_table, &string_key, &num_key, 1)) != HASH_KEY_NON_EXISTANT) {
if (key_type == HASH_KEY_IS_STRING) {
MAKE_STD_ZVAL(method_name);
ZVAL_STRING(method_name, string_key, 1);
ZVAL_STRING(method_name, string_key, 0);
zend_hash_next_index_insert(return_value->value.ht, &method_name, sizeof(zval *), NULL);
}
zend_hash_move_forward(&ce->function_table);
@@ -731,7 +731,7 @@ ZEND_FUNCTION(get_included_files)
array_init(return_value);
zend_hash_internal_pointer_reset(&EG(included_files));
while(zend_hash_get_current_key(&EG(included_files), &entry,NULL) == HASH_KEY_IS_STRING) {
while(zend_hash_get_current_key(&EG(included_files), &entry, NULL, 1) == HASH_KEY_IS_STRING) {
add_next_index_string(return_value,entry,0);
zend_hash_move_forward(&EG(included_files));
}
@@ -869,9 +869,9 @@ static int copy_function_name(zend_function *func, int num_args, va_list args, z
}
if (func->type == ZEND_INTERNAL_FUNCTION) {
add_next_index_stringl(internal_ar, hash_key->arKey, hash_key->nKeyLength, 1);
add_next_index_stringl(internal_ar, hash_key->arKey, hash_key->nKeyLength-1, 1);
} else if (func->type == ZEND_USER_FUNCTION) {
add_next_index_stringl(user_ar, hash_key->arKey, hash_key->nKeyLength, 1);
add_next_index_stringl(user_ar, hash_key->arKey, hash_key->nKeyLength-1, 1);
}
return 0;
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+16 -13
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -34,11 +34,6 @@ ZEND_API zend_compiler_globals compiler_globals;
ZEND_API zend_executor_globals executor_globals;
#endif
static void free_filename(void *p)
{
efree(*((char **) p));
}
static void build_runtime_defined_function_key(zval *result, zval *name, zend_op *opline CLS_DC)
{
@@ -80,7 +75,7 @@ void init_compiler(CLS_D ELS_DC)
CG(active_class_entry) = NULL;
zend_llist_init(&CG(list_llist), sizeof(list_llist_element), NULL, 0);
zend_llist_init(&CG(dimension_llist), sizeof(int), NULL, 0);
zend_hash_init(&CG(filenames_table), 5, NULL, (dtor_func_t) free_filename, 0);
zend_hash_init(&CG(filenames_table), 5, NULL, (dtor_func_t) free_estring, 0);
CG(handle_op_arrays) = 1;
CG(in_compilation) = 0;
zend_init_rsrc_list(ELS_C);
@@ -576,7 +571,7 @@ static zend_bool is_method_call(CLS_D)
}
cur_opline = (zend_op *)cur->data;
if (cur_opline->opcode == ZEND_FETCH_OBJ_W) {
return 1;
return 1;
}
return 0;
}
@@ -699,7 +694,9 @@ void zend_do_free(znode *op1 CLS_DC)
opline--;
}
}
}
} else if (op1->op_type == IS_CONST) {
zval_dtor(&op1->u.constant);
}
}
@@ -874,10 +871,9 @@ void zend_do_begin_class_member_function_call(znode *class_name, znode *function
opline->opcode = ZEND_INIT_FCALL_BY_NAME;
zend_str_tolower(class_name->u.constant.value.str.val, class_name->u.constant.value.str.len);
if ((class_name->u.constant.value.str.len == sizeof("parent")-1)
&& !memcmp(class_name->u.constant.value.str.val, "parent", sizeof("parent")-1)) {
if (!CG(active_class_entry) || !CG(active_class_entry)->parent) {
zend_error(E_COMPILE_ERROR, "No parent class available in this context");
}
&& !memcmp(class_name->u.constant.value.str.val, "parent", sizeof("parent")-1)
&& CG(active_class_entry)
&& CG(active_class_entry)->parent) {
efree(class_name->u.constant.value.str.val);
class_name->u.constant.value.str.len = CG(active_class_entry)->parent->name_length;
class_name->u.constant.value.str.val = estrndup(CG(active_class_entry)->parent->name, class_name->u.constant.value.str.len);
@@ -1106,6 +1102,12 @@ void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent_ce)
zend_hash_merge(&ce->default_properties, &parent_ce->default_properties, (void (*)(void *)) zval_add_ref, (void *) &tmp, sizeof(zval *), 0);
zend_hash_merge(&ce->function_table, &parent_ce->function_table, (void (*)(void *)) function_add_ref, &tmp_zend_function, sizeof(zend_function), 0);
ce->parent = parent_ce;
if (!ce->handle_property_get)
ce->handle_property_get = parent_ce->handle_property_get;
if (!ce->handle_property_set)
ce->handle_property_set = parent_ce->handle_property_set;
if (!ce->handle_function_call)
ce->handle_function_call = parent_ce->handle_function_call;
do_inherit_parent_constructor(ce);
}
@@ -1791,6 +1793,7 @@ void zend_do_add_static_array_element(znode *result, znode *offset, znode *expr)
*element = expr->u.constant;
if (offset) {
switch (offset->u.constant.type) {
case IS_CONSTANT:
case IS_STRING:
zend_hash_update(result->u.constant.value.ht, offset->u.constant.value.str.val, offset->u.constant.value.str.len+1, &element, sizeof(zval *), NULL);
zval_dtor(&offset->u.constant);
+2 -2
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -28,7 +28,7 @@
#endif
#ifdef __cplusplus
#include <istream.h>
#include <iostream.h>
#endif
#include "zend_llist.h"
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+85 -105
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -98,6 +98,7 @@ static inline zval *_get_zval_ptr(znode *node, temp_variable *Ts, int *should_fr
zval *str = T->EA.data.str_offset.str;
if (T->EA.data.str_offset.str->type != IS_STRING
|| (T->EA.data.str_offset.offset<0)
|| (T->EA.data.str_offset.str->value.str.len <= T->EA.data.str_offset.offset)) {
T->tmp_var.value.str.val = empty_string;
T->tmp_var.value.str.len = 0;
@@ -173,8 +174,7 @@ static inline zval **_get_zval_ptr_ptr(znode *node, temp_variable *Ts ELS_DC)
static inline zval **zend_fetch_property_address_inner(HashTable *ht, znode *op2, temp_variable *Ts, int type ELS_DC)
{
int free_op2;
zval *prop_ptr = get_zval_ptr(op2, Ts, &free_op2, BP_VAR_R);
zval *prop_ptr = get_zval_ptr(op2, Ts, &EG(free_op2), BP_VAR_R);
zval **retval;
zval tmp;
@@ -219,7 +219,7 @@ static inline zval **zend_fetch_property_address_inner(HashTable *ht, znode *op2
if (prop_ptr == &tmp) {
zval_dtor(prop_ptr);
}
FREE_OP(op2, free_op2);
FREE_OP(op2, EG(free_op2));
return retval;
}
@@ -264,6 +264,7 @@ static inline void zend_assign_to_variable(znode *result, znode *op1, znode *op2
temp_variable *T = &Ts[op1->u.var];
if (T->EA.data.str_offset.str->type == IS_STRING
&& (T->EA.data.str_offset.offset >= 0)
&& (T->EA.data.str_offset.offset < T->EA.data.str_offset.str->value.str.len)) {
zval tmp;
zval *final_value = value;
@@ -345,7 +346,7 @@ static inline void zend_assign_to_variable(znode *result, znode *op1, znode *op2
if (variable_ptr==value) {
variable_ptr->refcount++;
} else if (PZVAL_IS_REF(value)) {
zval tmp = *value;
zval tmp;
tmp = *value;
zval_copy_ctor(&tmp);
@@ -502,8 +503,7 @@ static void zend_fetch_var_address(znode *result, znode *op1, znode *op2, temp_v
static inline zval **zend_fetch_dimension_address_inner(HashTable *ht, znode *op2, temp_variable *Ts, int type ELS_DC)
{
int free_op2;
zval *dim = get_zval_ptr(op2, Ts, &free_op2, BP_VAR_R);
zval *dim = get_zval_ptr(op2, Ts, &EG(free_op2), BP_VAR_R);
zval **retval;
char *offset_key;
int offset_key_length;
@@ -581,52 +581,58 @@ fetch_string_dim:
}
break;
}
FREE_OP(op2, free_op2);
FREE_OP(op2, EG(free_op2));
return retval;
}
static void fetch_overloaded_element(znode *result, znode *op1, znode *op2, temp_variable *Ts, int type, zval ***retval, int overloaded_element_type ELS_DC)
{
zend_overloaded_element overloaded_element;
if (Ts[op1->u.var].EA.type == IS_STRING_OFFSET) {
zval_ptr_dtor(&Ts[op1->u.var].EA.data.str_offset.str);
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
*retval = &EG(uninitialized_zval_ptr);
break;
case BP_VAR_W:
case BP_VAR_RW:
*retval = &EG(error_zval_ptr);
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
SELECTIVE_PZVAL_LOCK(**retval, result);
return;
}
overloaded_element.element = *get_zval_ptr(op2, Ts, &EG(free_op2), type);
overloaded_element.type = overloaded_element_type;
if (!EG(free_op2)) {
zval_copy_ctor(&overloaded_element.element);
}
Ts[result->u.var].EA = Ts[op1->u.var].EA;
zend_llist_add_element(Ts[result->u.var].EA.data.overloaded_element.elements_list, &overloaded_element);
Ts[result->u.var].EA.type = IS_OVERLOADED_OBJECT;
*retval = NULL;
return;
}
static void zend_fetch_dimension_address(znode *result, znode *op1, znode *op2, temp_variable *Ts, int type ELS_DC)
{
int free_op2;
zval **container_ptr = get_zval_ptr_ptr(op1, Ts, type);
zval *container;
zval ***retval = &Ts[result->u.var].var.ptr_ptr;
if (container_ptr == NULL) {
zend_overloaded_element overloaded_element;
if (Ts[op1->u.var].EA.type == IS_STRING_OFFSET) {
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
*retval = &EG(uninitialized_zval_ptr);
break;
case BP_VAR_W:
case BP_VAR_RW:
*retval = &EG(error_zval_ptr);
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
SELECTIVE_PZVAL_LOCK(**retval, result);
return;
}
/* prepare the new element */
overloaded_element.element = *get_zval_ptr(op2, Ts, &free_op2, type);
overloaded_element.type = OE_IS_ARRAY;
if (!free_op2) {
zval_copy_ctor(&overloaded_element.element);
}
Ts[result->u.var].EA = Ts[op1->u.var].EA;
zend_llist_add_element(Ts[result->u.var].EA.data.overloaded_element.elements_list, &overloaded_element);
Ts[result->u.var].EA.type = IS_OVERLOADED_OBJECT;
*retval = NULL;
fetch_overloaded_element(result, op1, op2, Ts, type, retval, OE_IS_ARRAY ELS_CC);
return;
}
container = *container_ptr;
if (container == EG(error_zval_ptr)) {
@@ -668,10 +674,10 @@ static void zend_fetch_dimension_address(znode *result, znode *op1, znode *op2,
break;
case IS_NULL:
/* for read-mode only */
get_zval_ptr(op2, Ts, &free_op2, BP_VAR_R);
get_zval_ptr(op2, Ts, &EG(free_op2), BP_VAR_R);
*retval = &EG(uninitialized_zval_ptr);
SELECTIVE_PZVAL_LOCK(**retval, result);
FREE_OP(op2, free_op2);
FREE_OP(op2, EG(free_op2));
if (type==BP_VAR_W || type==BP_VAR_RW) {
zend_error(E_WARNING, "Cannot use a NULL value as an array");
}
@@ -684,7 +690,7 @@ static void zend_fetch_dimension_address(znode *result, znode *op1, znode *op2,
zend_error(E_ERROR, "[] operator not supported for strings");
}
offset = get_zval_ptr(op2, Ts, &free_op2, BP_VAR_R);
offset = get_zval_ptr(op2, Ts, &EG(free_op2), BP_VAR_R);
if (offset->type != IS_LONG) {
tmp = *offset;
@@ -700,7 +706,7 @@ static void zend_fetch_dimension_address(znode *result, znode *op1, znode *op2,
PZVAL_LOCK(container);
Ts[result->u.var].EA.data.str_offset.offset = offset->value.lval;
Ts[result->u.var].EA.type = IS_STRING_OFFSET;
FREE_OP(op2, free_op2);
FREE_OP(op2, EG(free_op2));
*retval = NULL;
return;
}
@@ -708,13 +714,13 @@ static void zend_fetch_dimension_address(znode *result, znode *op1, znode *op2,
default: {
zval *offset;
offset = get_zval_ptr(op2, Ts, &free_op2, BP_VAR_R);
offset = get_zval_ptr(op2, Ts, &EG(free_op2), BP_VAR_R);
if (type==BP_VAR_R || type==BP_VAR_IS) {
*retval = &EG(uninitialized_zval_ptr);
} else {
*retval = &EG(error_zval_ptr);
}
FREE_OP(op2, free_op2);
FREE_OP(op2, EG(free_op2));
SELECTIVE_PZVAL_LOCK(**retval, result);
if (type==BP_VAR_W || type==BP_VAR_RW) {
zend_error(E_WARNING, "Cannot use a scalar value as an array");
@@ -743,43 +749,13 @@ static void zend_fetch_dimension_address_from_tmp_var(znode *result, znode *op1,
static void zend_fetch_property_address(znode *result, znode *op1, znode *op2, temp_variable *Ts, int type ELS_DC)
{
int free_op2;
zval **container_ptr = get_zval_ptr_ptr(op1, Ts, type);
zval *container;
zval ***retval = &Ts[result->u.var].var.ptr_ptr;
if (container_ptr == NULL) {
zend_overloaded_element overloaded_element;
if (Ts[op1->u.var].EA.type == IS_STRING_OFFSET) {
zval_ptr_dtor(&Ts[op1->u.var].EA.data.str_offset.str);
switch (type) {
case BP_VAR_R:
case BP_VAR_IS:
*retval = &EG(uninitialized_zval_ptr);
break;
case BP_VAR_W:
case BP_VAR_RW:
*retval = &EG(error_zval_ptr);
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
SELECTIVE_PZVAL_LOCK(**retval, result);
return;
}
overloaded_element.element = *get_zval_ptr(op2, Ts, &free_op2, type);
overloaded_element.type = OE_IS_OBJECT;
if (!free_op2) {
zval_copy_ctor(&overloaded_element.element);
}
Ts[result->u.var].EA = Ts[op1->u.var].EA;
zend_llist_add_element(Ts[result->u.var].EA.data.overloaded_element.elements_list, &overloaded_element);
Ts[result->u.var].EA.type = IS_OVERLOADED_OBJECT;
*retval = NULL;
fetch_overloaded_element(result, op1, op2, Ts, type, retval, OE_IS_OBJECT ELS_CC);
return;
}
@@ -798,9 +774,9 @@ static void zend_fetch_property_address(znode *result, znode *op1, znode *op2, t
Ts[result->u.var].EA.data.overloaded_element.type = type;
Ts[result->u.var].EA.data.overloaded_element.elements_list = (zend_llist *) emalloc(sizeof(zend_llist));
zend_llist_init(Ts[result->u.var].EA.data.overloaded_element.elements_list, sizeof(zend_overloaded_element), NULL, 0);
overloaded_element.element = *get_zval_ptr(op2, Ts, &free_op2, type);
overloaded_element.element = *get_zval_ptr(op2, Ts, &EG(free_op2), type);
overloaded_element.type = OE_IS_OBJECT;
if (!free_op2) {
if (!EG(free_op2)) {
zval_copy_ctor(&overloaded_element.element);
}
zend_llist_add_element(Ts[result->u.var].EA.data.overloaded_element.elements_list, &overloaded_element);
@@ -828,8 +804,8 @@ static void zend_fetch_property_address(znode *result, znode *op1, znode *op2, t
if (container->type != IS_OBJECT) {
zval *offset;
offset = get_zval_ptr(op2, Ts, &free_op2, BP_VAR_R);
FREE_OP(op2, free_op2);
offset = get_zval_ptr(op2, Ts, &EG(free_op2), BP_VAR_R);
FREE_OP(op2, EG(free_op2));
if (type==BP_VAR_R || type==BP_VAR_IS) {
*retval = &EG(uninitialized_zval_ptr);
} else {
@@ -1322,38 +1298,32 @@ binary_assign_op_addr: {
zend_op *original_opline = opline;
int retval = zend_is_true(get_zval_ptr(&original_opline->op1, Ts, &EG(free_op1), BP_VAR_R));
FREE_OP(&original_opline->op1, EG(free_op1));
Ts[original_opline->result.u.var].tmp_var.value.lval = retval;
Ts[original_opline->result.u.var].tmp_var.type = IS_LONG;
if (!retval) {
#if DEBUG_ZEND>=2
printf("Conditional jmp to %d\n", opline->op2.u.opline_num);
#endif
opline = &op_array->opcodes[opline->op2.u.opline_num];
FREE_OP(&original_opline->op1, EG(free_op1));
Ts[original_opline->result.u.var].tmp_var.value.lval = retval;
Ts[original_opline->result.u.var].tmp_var.type = IS_LONG;
continue;
}
FREE_OP(&original_opline->op1, EG(free_op1));
Ts[original_opline->result.u.var].tmp_var.value.lval = retval;
Ts[original_opline->result.u.var].tmp_var.type = IS_LONG;
}
NEXT_OPCODE();
case ZEND_JMPNZ_EX: {
zend_op *original_opline = opline;
int retval = zend_is_true(get_zval_ptr(&original_opline->op1, Ts, &EG(free_op1), BP_VAR_R));
FREE_OP(&original_opline->op1, EG(free_op1));
Ts[original_opline->result.u.var].tmp_var.value.lval = retval;
Ts[original_opline->result.u.var].tmp_var.type = IS_LONG;
if (retval) {
#if DEBUG_ZEND>=2
printf("Conditional jmp to %d\n", opline->op2.u.opline_num);
#endif
opline = &op_array->opcodes[opline->op2.u.opline_num];
FREE_OP(&original_opline->op1, EG(free_op1));
Ts[original_opline->result.u.var].tmp_var.value.lval = retval;
Ts[original_opline->result.u.var].tmp_var.type = IS_LONG;
continue;
}
FREE_OP(&original_opline->op1, EG(free_op1));
Ts[original_opline->result.u.var].tmp_var.value.lval = retval;
Ts[original_opline->result.u.var].tmp_var.type = IS_LONG;
}
NEXT_OPCODE();
case ZEND_FREE:
@@ -1414,7 +1384,7 @@ binary_assign_op_addr: {
if (opline->op1.op_type == IS_VAR) {
SELECTIVE_PZVAL_LOCK(*Ts[opline->op1.u.var].var.ptr_ptr, &opline->op1);
}
if (opline->op2.op_type==IS_VAR) {
if (opline->op2.op_type == IS_VAR) {
PZVAL_LOCK(*Ts[opline->op2.u.var].var.ptr_ptr);
}
}
@@ -1431,10 +1401,6 @@ binary_assign_op_addr: {
zend_class_entry *ce;
zval **object_ptr_ptr;
if (zend_hash_find(EG(class_table), opline->op1.u.constant.value.str.val, opline->op1.u.constant.value.str.len+1, (void **) &ce)==FAILURE) {
zend_error(E_ERROR, "Undefined class name '%s'", opline->op1.u.constant.value.str.val);
}
active_function_table = &ce->function_table;
if (zend_hash_find(EG(active_symbol_table), "this", sizeof("this"), (void **) &object_ptr_ptr)==FAILURE) {
object.ptr=NULL;
} else {
@@ -1443,6 +1409,15 @@ binary_assign_op_addr: {
object.ptr = *object_ptr_ptr;
object.ptr->refcount++; /* For this pointer */
}
if (zend_hash_find(EG(class_table), opline->op1.u.constant.value.str.val, opline->op1.u.constant.value.str.len+1, (void **) &ce)==FAILURE) { /* class doesn't exist */
/* test for parent:: special case - if it doesn't exist - error out */
if (opline->op1.u.constant.value.str.len!=(sizeof("parent")-1)
|| memcmp(opline->op1.u.constant.value.str.val, "parent", sizeof("parent")-1)!=0
|| !(ce = object.ptr->value.obj.ce->parent)) {
zend_error(E_ERROR, "Undefined class name '%s'", opline->op1.u.constant.value.str.val);
}
}
active_function_table = &ce->function_table;
} else { /* used for member function calls */
object.ptr = _get_object_zval_ptr(&opline->op1, Ts, &EG(free_op1) ELS_CC);
@@ -1584,9 +1559,10 @@ do_fcall_common:
zval_ptr_dtor(&Ts[opline->result.u.var].var.ptr);
}
}
object.ptr = zend_ptr_stack_pop(&EG(arg_types_stack));
if (opline->opcode == ZEND_DO_FCALL_BY_NAME) {
fbc = zend_ptr_stack_pop(&EG(arg_types_stack));
zend_ptr_stack_n_pop(&EG(arg_types_stack), 2, &object.ptr, &fbc);
} else {
object.ptr = zend_ptr_stack_pop(&EG(arg_types_stack));
}
function_state.function = (zend_function *) op_array;
EG(function_state_ptr) = &function_state;
@@ -1820,7 +1796,7 @@ send_by_ref:
FREE_OP(&opline->op2, EG(free_op2));
continue;
}
NEXT_OPCODE();
/* Never reaches this point */
case ZEND_CASE: {
int switch_expr_is_overloaded=0;
@@ -2006,7 +1982,7 @@ send_by_ref:
switch (opline->op2.u.constant.value.lval) {
case ZEND_INCLUDE_ONCE:
case ZEND_REQUIRE_ONCE: {
char *opened_path;
char *opened_path=NULL;
int dummy = 1;
zend_file_handle file_handle;
@@ -2165,9 +2141,13 @@ send_by_ref:
if (opline->extended_value) {
array_ptr_ptr = get_zval_ptr_ptr(&opline->op1, Ts, BP_VAR_R);
SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
array_ptr = *array_ptr_ptr;
array_ptr->refcount++;
if (array_ptr_ptr == NULL) {
MAKE_STD_ZVAL(array_ptr);
} else {
SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
array_ptr = *array_ptr_ptr;
array_ptr->refcount++;
}
} else {
array_ptr = get_zval_ptr(&opline->op1, Ts, &EG(free_op1), BP_VAR_R);
if (EG(free_op1)) { /* IS_TMP_VAR */
@@ -2221,7 +2201,7 @@ send_by_ref:
ALLOC_ZVAL(key);
INIT_PZVAL(key);
switch (zend_hash_get_current_key(fe_ht, &str_key, &int_key)) {
switch (zend_hash_get_current_key(fe_ht, &str_key, &int_key, 1)) {
case HASH_KEY_IS_STRING:
key->value.str.val = str_key;
key->value.str.len = strlen(str_key);
+3 -3
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -139,8 +139,8 @@ ZEND_API char *zend_get_executed_filename(ELS_D);
ZEND_API uint zend_get_executed_lineno(ELS_D);
ZEND_API zend_bool zend_is_executing(void);
void zend_set_timeout(long seconds);
void zend_unset_timeout(void);
ZEND_API void zend_set_timeout(long seconds);
ZEND_API void zend_unset_timeout(void);
ZEND_API void zend_timeout(int dummy);
#ifdef ZEND_WIN32
+45 -16
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -312,7 +312,7 @@ ZEND_API int zval_update_constant(zval **pp, void *arg)
}
int call_user_function(HashTable *function_table, zval *object, zval *function_name, zval *retval_ptr, int param_count, zval *params[])
int call_user_function(HashTable *function_table, zval **object_pp, zval *function_name, zval *retval_ptr, int param_count, zval *params[])
{
zval ***params_array = (zval ***) emalloc(sizeof(zval **)*param_count);
int i;
@@ -322,7 +322,7 @@ int call_user_function(HashTable *function_table, zval *object, zval *function_n
for (i=0; i<param_count; i++) {
params_array[i] = &params[i];
}
ex_retval = call_user_function_ex(function_table, object, function_name, &local_retval_ptr, param_count, params_array, 1, NULL);
ex_retval = call_user_function_ex(function_table, object_pp, function_name, &local_retval_ptr, param_count, params_array, 1, NULL);
if (local_retval_ptr) {
COPY_PZVAL_TO_ZVAL(*retval_ptr, local_retval_ptr);
} else {
@@ -333,7 +333,7 @@ int call_user_function(HashTable *function_table, zval *object, zval *function_n
}
int call_user_function_ex(HashTable *function_table, zval *object, zval *function_name, zval **retval_ptr_ptr, int param_count, zval **params[], int no_separation, HashTable *symbol_table)
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)
{
int i;
zval **original_return_value;
@@ -342,6 +342,9 @@ int call_user_function_ex(HashTable *function_table, zval *object, zval *functio
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);
ELS_FETCH();
*retval_ptr_ptr = NULL;
@@ -357,15 +360,32 @@ int call_user_function_ex(HashTable *function_table, zval *object, zval *functio
}
function_name = *tmp_real_function_name;
SEPARATE_ZVAL_IF_NOT_REF(tmp_object_ptr);
object = *tmp_object_ptr;
object->is_ref = 1;
object_pp = tmp_object_ptr;
(*object_pp)->is_ref = 1;
}
if (object) {
if (object->type != IS_OBJECT) {
if (object_pp && !*object_pp) {
object_pp = NULL;
}
if (object_pp) {
if (Z_TYPE_PP(object_pp) == IS_OBJECT) {
function_table = &(*object_pp)->value.obj.ce->function_table;
} 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_hash_find(EG(class_table), lc_class, Z_STRLEN_PP(object_pp) + 1, (void **) &ce);
efree(lc_class);
if (found == FAILURE)
return FAILURE;
function_table = &ce->function_table;
object_pp = NULL;
} else
return FAILURE;
}
function_table = &object->value.obj.ce->function_table;
}
if (function_name->type!=IS_STRING) {
@@ -414,6 +434,8 @@ int call_user_function_ex(HashTable *function_table, zval *object, zval *functio
zend_ptr_stack_n_push(&EG(argument_stack), 2, (void *) (long) param_count, NULL);
EG(function_state_ptr) = &function_state;
if (function_state.function->type == ZEND_USER_FUNCTION) {
calling_symbol_table = EG(active_symbol_table);
if (symbol_table) {
@@ -422,20 +444,23 @@ int call_user_function_ex(HashTable *function_table, zval *object, zval *functio
ALLOC_HASHTABLE(EG(active_symbol_table));
zend_hash_init(EG(active_symbol_table), 0, NULL, ZVAL_PTR_DTOR, 0);
}
if (object) {
if (object_pp) {
zval *dummy, **this_ptr;
ALLOC_ZVAL(dummy);
INIT_ZVAL(*dummy);
INIT_ZVAL(*dummy);
zend_hash_update(EG(active_symbol_table), "this", sizeof("this"), &dummy, sizeof(zval *), (void **) &this_ptr);
zend_assign_to_variable_reference(NULL, this_ptr, &object, NULL ELS_CC);
zend_assign_to_variable_reference(NULL, this_ptr, object_pp, NULL ELS_CC);
}
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) ELS_CC);
if (!symbol_table) {
zend_hash_destroy(EG(active_symbol_table));
@@ -445,9 +470,13 @@ int call_user_function_ex(HashTable *function_table, zval *object, zval *functio
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, 1 ELS_CC);
((zend_internal_function *) function_state.function)->handler(param_count, *retval_ptr_ptr, (object_pp?*object_pp:NULL), 1 ELS_CC);
INIT_PZVAL(*retval_ptr_ptr);
}
zend_ptr_stack_clear_multiple(ELS_C);
+2 -2
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -107,7 +107,6 @@ int zend_register_extension(zend_extension *new_extension, DL_HANDLE handle)
zend_llist_add_element(&zend_extensions, &extension);
zend_append_version_info(&extension);
/*fprintf(stderr, "Loaded %s, version %s\n", extension.name, extension.version);*/
#endif
@@ -131,6 +130,7 @@ static int zend_extension_startup(zend_extension *extension)
if (extension->startup(extension)!=SUCCESS) {
return 1;
}
zend_append_version_info(extension);
}
#endif
return 0;
+4 -4
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -23,7 +23,7 @@
#include "zend_compile.h"
#define ZEND_EXTENSION_API_NO 20001120
#define ZEND_EXTENSION_API_NO 20001224
typedef struct _zend_extension_version_info {
int zend_extension_api_no;
@@ -38,8 +38,8 @@ 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)();
typedef void (*deactivate_func_t)();
typedef void (*activate_func_t)(void);
typedef void (*deactivate_func_t)(void);
typedef void (*message_handler_func_t)(int message, void *arg);
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+3 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -191,6 +191,8 @@ struct _zend_executor_globals {
int lambda_count;
HashTable ini_directives;
void *reserved[ZEND_MAX_RESERVED_RESOURCES];
#if SUPPORT_INTERACTIVE
int interactive;
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+9 -6
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -155,7 +155,7 @@ ZEND_API ulong hashpjw(char *arKey, uint nKeyLength)
if (!(p)->pDataPtr) { \
pefree((p)->pData, (ht)->persistent); \
} \
(p)->pDataPtr = *(void **)pData; \
memcpy(&(p)->pDataPtr, pData, sizeof(void *)); \
(p)->pData = &(p)->pDataPtr; \
} else { \
if ((p)->pDataPtr) { \
@@ -167,7 +167,7 @@ ZEND_API ulong hashpjw(char *arKey, uint nKeyLength)
#define INIT_DATA(ht, p, pData, nDataSize); \
if (nDataSize == sizeof(void*)) { \
(p)->pDataPtr = *(void **)pData; \
memcpy(&(p)->pDataPtr, pData, sizeof(void *)); \
(p)->pData = &(p)->pDataPtr; \
} else { \
(p)->pData = (void *) pemalloc(nDataSize, (ht)->persistent); \
@@ -1019,7 +1019,7 @@ ZEND_API int zend_hash_move_backwards_ex(HashTable *ht, HashPosition *pos)
/* This function should be made binary safe */
ZEND_API int zend_hash_get_current_key_ex(HashTable *ht, char **str_index, ulong *str_length, ulong *num_index, HashPosition *pos)
ZEND_API int zend_hash_get_current_key_ex(HashTable *ht, char **str_index, ulong *str_length, ulong *num_index, zend_bool duplicate, HashPosition *pos)
{
Bucket *p;
@@ -1029,8 +1029,11 @@ ZEND_API int zend_hash_get_current_key_ex(HashTable *ht, char **str_index, ulong
if (p) {
if (p->nKeyLength) {
*str_index = (char *) pemalloc(p->nKeyLength, ht->persistent);
memcpy(*str_index, p->arKey, p->nKeyLength);
if (duplicate) {
*str_index = estrndup(p->arKey, p->nKeyLength);
} else {
*str_index = p->arKey;
}
if (str_length) {
*str_length = p->nKeyLength;
}
+4 -4
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -146,7 +146,7 @@ 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, ulong *str_length, ulong *num_index, HashPosition *pos);
ZEND_API int zend_hash_get_current_key_ex(HashTable *ht, char **str_index, ulong *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);
@@ -156,8 +156,8 @@ ZEND_API void zend_hash_internal_pointer_end_ex(HashTable *ht, HashPosition *pos
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) \
zend_hash_get_current_key_ex(ht, str_index, NULL, num_index, 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) \
+2 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -149,6 +149,7 @@ ZEND_API void zend_highlight(zend_syntax_highlighter_ini *syntax_highlighter_ini
case T_OPEN_TAG_WITH_ECHO:
case T_CLOSE_TAG:
case T_WHITESPACE:
case T_COMMENT:
break;
default:
efree(token.value.str.val);
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+46 -32
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -25,7 +25,7 @@
#include "zend_alloc.h"
#include "zend_operators.h"
static HashTable known_directives;
static HashTable *registered_zend_ini_directives;
/*
@@ -60,25 +60,39 @@ static int zend_restore_ini_entry_cb(zend_ini_entry *ini_entry, int stage)
/*
* Startup / shutdown
*/
int zend_ini_mstartup()
ZEND_API int zend_ini_startup(ELS_D)
{
if (zend_hash_init_ex(&known_directives, 100, NULL, NULL, 1, 0)==FAILURE) {
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;
}
int zend_ini_mshutdown()
ZEND_API int zend_ini_shutdown(ELS_D)
{
zend_hash_destroy(&known_directives);
zend_hash_destroy(&EG(ini_directives));
return SUCCESS;
}
int zend_ini_rshutdown()
ZEND_API int zend_ini_deactivate(ELS_D)
{
zend_hash_apply_with_argument(&known_directives, (int (*)(void *, void *)) zend_restore_ini_entry_cb, (void *) ZEND_INI_STAGE_DEACTIVATE);
zend_hash_apply_with_argument(&EG(ini_directives), (int (*)(void *, void *)) zend_restore_ini_entry_cb, (void *) ZEND_INI_STAGE_DEACTIVATE);
return SUCCESS;
}
ZEND_API int zend_copy_ini_directives(ELS_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 ELS_CC);
return SUCCESS;
}
@@ -103,9 +117,9 @@ static int ini_key_compare(const void *a, const void *b)
}
void zend_ini_sort_entries(void)
ZEND_API void zend_ini_sort_entries(ELS_D)
{
zend_hash_sort(&known_directives, qsort, ini_key_compare, 0);
zend_hash_sort(&EG(ini_directives), qsort, ini_key_compare, 0);
}
/*
@@ -116,19 +130,19 @@ ZEND_API int zend_register_ini_entries(zend_ini_entry *ini_entry, int module_num
{
zend_ini_entry *p = ini_entry;
zend_ini_entry *hashed_ini_entry;
zval *default_value;
zval default_value;
while (p->name) {
p->module_number = module_number;
if (zend_hash_add(&known_directives, p->name, p->name_length, p, sizeof(zend_ini_entry), (void **) &hashed_ini_entry)==FAILURE) {
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);
return FAILURE;
}
if ((default_value=cfg_get_entry(p->name, p->name_length))) {
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)==SUCCESS) {
hashed_ini_entry->value = default_value->value.str.val;
hashed_ini_entry->value_length = default_value->value.str.len;
|| 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)==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) {
@@ -143,7 +157,7 @@ ZEND_API int zend_register_ini_entries(zend_ini_entry *ini_entry, int module_num
ZEND_API void zend_unregister_ini_entries(int module_number)
{
zend_hash_apply_with_argument(&known_directives, (int (*)(void *, void *)) zend_remove_ini_entries, (void *) &module_number);
zend_hash_apply_with_argument(registered_zend_ini_directives, (int (*)(void *, void *)) zend_remove_ini_entries, (void *) &module_number);
}
@@ -156,9 +170,9 @@ static int zend_ini_refresh_cache(zend_ini_entry *p, int stage)
}
ZEND_API void zend_ini_refresh_caches(int stage)
ZEND_API void zend_ini_refresh_caches(int stage ELS_DC)
{
zend_hash_apply_with_argument(&known_directives, (int (*)(void *, void *)) zend_ini_refresh_cache, (void *)(long) stage);
zend_hash_apply_with_argument(&EG(ini_directives), (int (*)(void *, void *)) zend_ini_refresh_cache, (void *)(long) stage);
}
@@ -166,8 +180,9 @@ ZEND_API int zend_alter_ini_entry(char *name, uint name_length, char *new_value,
{
zend_ini_entry *ini_entry;
char *duplicate;
ELS_FETCH();
if (zend_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==FAILURE) {
if (zend_hash_find(&EG(ini_directives), name, name_length, (void **) &ini_entry)==FAILURE) {
return FAILURE;
}
@@ -199,8 +214,9 @@ ZEND_API int zend_alter_ini_entry(char *name, uint name_length, char *new_value,
ZEND_API int zend_restore_ini_entry(char *name, uint name_length, int stage)
{
zend_ini_entry *ini_entry;
ELS_FETCH();
if (zend_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==FAILURE) {
if (zend_hash_find(&EG(ini_directives), name, name_length, (void **) &ini_entry)==FAILURE) {
return FAILURE;
}
@@ -213,7 +229,7 @@ ZEND_API int zend_ini_register_displayer(char *name, uint name_length, void (*di
{
zend_ini_entry *ini_entry;
if (zend_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==FAILURE) {
if (zend_hash_find(registered_zend_ini_directives, name, name_length, (void **) &ini_entry)==FAILURE) {
return FAILURE;
}
@@ -230,8 +246,9 @@ ZEND_API int zend_ini_register_displayer(char *name, uint name_length, void (*di
ZEND_API long zend_ini_long(char *name, uint name_length, int orig)
{
zend_ini_entry *ini_entry;
ELS_FETCH();
if (zend_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==SUCCESS) {
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) {
@@ -246,8 +263,9 @@ 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_ini_entry *ini_entry;
ELS_FETCH();
if (zend_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==SUCCESS) {
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) {
@@ -262,8 +280,9 @@ 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_ini_entry *ini_entry;
ELS_FETCH();
if (zend_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==SUCCESS) {
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 {
@@ -278,8 +297,9 @@ ZEND_API char *zend_ini_string(char *name, uint name_length, int orig)
zend_ini_entry *get_ini_entry(char *name, uint name_length)
{
zend_ini_entry *ini_entry;
ELS_FETCH();
if (zend_hash_find(&known_directives, name, name_length, (void **) &ini_entry)==SUCCESS) {
if (zend_hash_find(&EG(ini_directives), name, name_length, (void **) &ini_entry)==SUCCESS) {
return ini_entry;
} else {
return NULL;
@@ -375,12 +395,6 @@ ZEND_INI_DISP(display_link_numbers)
}
ZEND_API void zend_ini_apply_with_argument(apply_func_arg_t apply_func, void *arg)
{
zend_hash_apply_with_argument(&known_directives, apply_func, arg);
}
/* Standard message handlers */
ZEND_API ZEND_INI_MH(OnUpdateBool)
+38 -11
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -26,6 +26,36 @@
#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)
@@ -52,15 +82,17 @@ struct _zend_ini_entry {
};
int zend_ini_mstartup(void);
int zend_ini_mshutdown(void);
int zend_ini_rshutdown(void);
ZEND_API int zend_ini_startup(ELS_D);
ZEND_API int zend_ini_shutdown(ELS_D);
ZEND_API int zend_ini_deactivate(ELS_D);
void zend_ini_sort_entries(void);
ZEND_API int zend_copy_ini_directives(ELS_D);
ZEND_API void zend_ini_sort_entries(ELS_D);
ZEND_API int zend_register_ini_entries(zend_ini_entry *ini_entry, int module_number);
ZEND_API void zend_unregister_ini_entries(int module_number);
ZEND_API void zend_ini_refresh_caches(int stage);
ZEND_API void zend_ini_refresh_caches(int stage ELS_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);
@@ -72,8 +104,6 @@ zend_ini_entry *get_ini_entry(char *name, uint name_length);
ZEND_API int zend_ini_register_displayer(char *name, uint name_length, void (*displayer)(zend_ini_entry *ini_entry, int type));
ZEND_API void zend_ini_apply_with_argument(apply_func_arg_t apply_func, void *arg);
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);
@@ -139,9 +169,6 @@ ZEND_API ZEND_INI_DISP(display_link_numbers);
#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)
zval *cfg_get_entry(char *name, uint name_length);
/* Standard message handlers */
ZEND_API ZEND_INI_MH(OnUpdateBool);
ZEND_API ZEND_INI_MH(OnUpdateInt);
+1 -1
View File
@@ -3,7 +3,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+2 -2
View File
@@ -14,8 +14,8 @@ public:
#endif /* ZTS && __cplusplus */
BEGIN_EXTERN_C()
int zend_ini_scanner_get_lineno();
char *zend_ini_scanner_get_filename();
int zend_ini_scanner_get_lineno(void);
char *zend_ini_scanner_get_filename(void);
int zend_ini_open_file_for_scanning(zend_file_handle *fh);
void zend_ini_close_file(zend_file_handle *fh);
int ini_lex(zval *ini_lval);
+4 -1
View File
@@ -3,7 +3,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -45,6 +45,9 @@
#define YY_DECL int ini_lex(zval *ini_lval)
#endif
#include "zend_istdiostream.h"
#ifndef ZTS
static char *ini_filename;
+15
View File
@@ -0,0 +1,15 @@
#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
+2 -1
View File
@@ -3,7 +3,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -419,6 +419,7 @@ expr_without_variable:
| cvar '=' expr { zend_do_end_variable_parse(BP_VAR_W, 0 CLS_CC); zend_do_assign(&$$, &$1, &$3 CLS_CC); }
| cvar '=' '&' w_cvar { zend_do_end_variable_parse(BP_VAR_W, 0 CLS_CC); zend_do_assign_ref(&$$, &$1, &$4 CLS_CC); }
| cvar '=' '&' function_call { zend_do_end_variable_parse(BP_VAR_W, 0 CLS_CC); zend_do_assign_ref(&$$, &$1, &$4 CLS_CC); }
| cvar '=' '&' T_NEW class_name { zend_do_extended_fcall_begin(CLS_C); zend_do_begin_new_object(&$4, &$5 CLS_CC); } ctor_arguments { zend_do_end_new_object(&$3, &$5, &$4, &$7 CLS_CC); zend_do_extended_fcall_end(CLS_C); zend_do_end_variable_parse(BP_VAR_W, 0 CLS_CC); zend_do_assign_ref(&$$, &$1, &$3 CLS_CC); }
| T_NEW class_name { zend_do_extended_fcall_begin(CLS_C); zend_do_begin_new_object(&$1, &$2 CLS_CC); } ctor_arguments { zend_do_end_new_object(&$$, &$2, &$1, &$4 CLS_CC); zend_do_extended_fcall_end(CLS_C);}
| cvar T_PLUS_EQUAL expr { zend_do_end_variable_parse(BP_VAR_RW, 0 CLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_ADD, &$$, &$1, &$3 CLS_CC); }
| cvar T_MINUS_EQUAL expr { zend_do_end_variable_parse(BP_VAR_RW, 0 CLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SUB, &$$, &$1, &$3 CLS_CC); }
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+58 -43
View File
@@ -4,7 +4,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -29,6 +29,7 @@
%x ST_LOOKING_FOR_PROPERTY
%x ST_LOOKING_FOR_VARNAME
%x ST_COMMENT
%x ST_ONE_LINE_COMMENT
%option stack
%{
@@ -86,16 +87,7 @@
# define MY_INPUT input
#endif
#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
#include "zend_istdiostream.h"
#define YY_FATAL_ERROR zend_fatal_scanner_error
@@ -118,7 +110,7 @@ do { \
}
#define ZEND_IS_OCT(c) ((c)>='0' && (c)<'8')
#define ZEND_IS_OCT(c) ((c)>='0' && (c)<='7')
#define ZEND_IS_HEX(c) (((c)>='0' && (c)<='9') || ((c)>='a' && (c)<='f') || ((c)>='A' && (c)<='F'))
@@ -251,23 +243,18 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle CLS_DC)
switch (file_handle->type) {
case ZEND_HANDLE_FILENAME:
file_handle->handle.fp = zend_fopen(file_handle->filename, &file_handle->opened_path);
file_path = file_handle->opened_path;
break;
case ZEND_HANDLE_FD:
/* file_handle->opened_path = NULL; */
file_handle->handle.fp = fdopen(file_handle->handle.fd, "r");
break;
case ZEND_HANDLE_FP:
/* file_handle->opened_path = NULL; */
file_handle->handle.fp = file_handle->handle.fp;
break;
}
if (!file_handle->handle.fp) {
return FAILURE;
}
if (!file_path) {
file_path = file_handle->filename;
}
file_handle->type = ZEND_HANDLE_FP;
if (file_handle->handle.fp != stdin) {
zend_llist_add_element(&CG(open_files), file_handle);
@@ -279,7 +266,6 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle CLS_DC)
#else
switch (file_handle->type) {
case ZEND_HANDLE_FD:
/* file_handle->opened_path = NULL; */
file_handle->handle.is = new ifstream(file_handle->handle.fd);
file_handle->type = ZEND_HANDLE_FSTREAM;
break;
@@ -294,7 +280,6 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle CLS_DC)
break;
}
case ZEND_HANDLE_FP:
/* file_handle->opened_path = NULL; */
if (file_handle->handle.fp==stdin) {
file_handle->handle.is = &cin;
} else {
@@ -307,8 +292,6 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle CLS_DC)
break;
}
file_path = file_handle->filename;
if (file_handle->handle.is->fail()) {
delete file_handle->handle.is;
return FAILURE;
@@ -320,6 +303,13 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle CLS_DC)
CG(ZFL) = new ZendFlexLexer;
CG(ZFL)->switch_streams(file_handle->handle.is, &cout);
#endif
if(file_handle->opened_path) {
file_path = file_handle->opened_path;
} else {
file_path = file_handle->filename;
}
zend_set_compiled_filename(file_path);
CG(zend_lineno) = 1;
return SUCCESS;
@@ -362,7 +352,6 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type CLS
CG(active_op_array) = op_array;
compiler_result = zendparse(CLS_C);
zend_do_return(&retval_znode, 0 CLS_CC);
restore_lexical_state(&original_lex_state CLS_CC);
CG(in_compilation) = original_in_compilation;
if (compiler_result==1) { /* parser error */
CG(unclean_shutdown) = 1;
@@ -380,6 +369,9 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type CLS
retval = NULL;
}
}
if (compilation_successful) {
restore_lexical_state(&original_lex_state CLS_CC);
}
return retval;
}
@@ -483,7 +475,6 @@ zend_op_array *compile_string(zval *source_string, char *filename CLS_DC)
CG(ZFL)->BeginState(ST_IN_SCRIPTING);
#endif
compiler_result = zendparse(CLS_C);
restore_lexical_state(&original_lex_state CLS_CC);
if (compiler_result==1) {
CG(active_op_array) = original_active_op_array;
@@ -495,6 +486,7 @@ zend_op_array *compile_string(zval *source_string, char *filename CLS_DC)
pass_two(op_array);
retval = op_array;
}
restore_lexical_state(&original_lex_state CLS_CC);
}
#ifdef ZTS
delete input_stream;
@@ -751,7 +743,6 @@ ANY_CHAR (.|[\n])
}
<ST_LOOKING_FOR_PROPERTY>{ANY_CHAR} {
/*unput(yytext[0]);*/
yyless(0);
yy_pop_state();
}
@@ -904,7 +895,6 @@ ANY_CHAR (.|[\n])
return T_CONCAT_EQUAL;
}
<ST_IN_SCRIPTING>"%=" {
return T_MOD_EQUAL;
}
@@ -994,7 +984,6 @@ ANY_CHAR (.|[\n])
<ST_LOOKING_FOR_VARNAME>{ANY_CHAR} {
/*unput(yytext[0]);*/
yyless(0);
yy_pop_state();
yy_push_state(ST_IN_SCRIPTING);
@@ -1060,7 +1049,7 @@ ANY_CHAR (.|[\n])
filename = "";
}
zendlval->value.str.len = strlen(filename);
zendlval->value.str.val = estrndup(filename,zendlval->value.str.len);
zendlval->value.str.val = estrndup(filename, zendlval->value.str.len);
zendlval->type = IS_STRING;
return T_FILE;
}
@@ -1070,7 +1059,7 @@ ANY_CHAR (.|[\n])
zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
HANDLE_NEWLINES(yytext,yyleng);
HANDLE_NEWLINES(yytext, yyleng);
return T_INLINE_HTML;
}
@@ -1134,7 +1123,7 @@ ANY_CHAR (.|[\n])
}
<INITIAL>"<?php_track_vars?>"([\n]|"\r\n")? {
<INITIAL>"<?php_track_vars?>"("\n"|"\r\n")? {
zend_error(E_WARNING, "&lt;?php_track_vars?&gt; is no longer supported - please use the track_vars INI directive instead");
HANDLE_NEWLINE(yytext[yyleng-1]);
zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
@@ -1176,11 +1165,41 @@ ANY_CHAR (.|[\n])
}
<ST_IN_SCRIPTING>([#]|"//")([^\n\r?]|"?"[^>\n\r])*("?\n"|"?\r\n")? { /* eat one line comments */
HANDLE_NEWLINE(yytext[yyleng-1]);
<ST_IN_SCRIPTING>"#"|"//" {
BEGIN(ST_ONE_LINE_COMMENT);
yymore();
}
<ST_ONE_LINE_COMMENT>"?"|"%"|">" {
yymore();
}
<ST_ONE_LINE_COMMENT>[^\n\r?%>]+ {
yymore();
}
<ST_ONE_LINE_COMMENT>"\n"|"\r\n" {
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
BEGIN(ST_IN_SCRIPTING);
CG(zend_lineno)++;
return T_COMMENT;
}
<ST_ONE_LINE_COMMENT>"?>"|"%>" {
if(CG(asp_tags) || yytext[yyleng-2] != '%') { /* asp comment? */
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
yyless(yyleng-2);
BEGIN(ST_IN_SCRIPTING);
return T_COMMENT;
} else {
yymore();
}
}
<ST_IN_SCRIPTING>"/*" {
CG(comment_start_line) = CG(zend_lineno);
BEGIN(ST_COMMENT);
@@ -1202,7 +1221,7 @@ ANY_CHAR (.|[\n])
yymore();
}
<ST_IN_SCRIPTING>("?>"|"</script"{WHITESPACE}*">")([\n]|"\r\n")? {
<ST_IN_SCRIPTING>("?>"|"</script"{WHITESPACE}*">")("\n"|"\r\n")? {
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
@@ -1212,17 +1231,17 @@ ANY_CHAR (.|[\n])
}
<ST_IN_SCRIPTING>"%>"([\n]|"\r\n")? {
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
HANDLE_NEWLINES(yytext,yyleng);
<ST_IN_SCRIPTING>"%>"("\n"|"\r\n")? {
if (CG(asp_tags)) {
BEGIN(INITIAL);
zendlval->value.str.len = yyleng;
zendlval->type = IS_STRING;
zendlval->value.str.val = yytext; /* no copying - intentional */
HANDLE_NEWLINES(yytext,yyleng);
return T_CLOSE_TAG; /* implicit ';' at php-end tag */
} else {
zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
return T_INLINE_HTML;
yyless(1);
return yytext[0];
}
}
@@ -1457,9 +1476,6 @@ ANY_CHAR (.|[\n])
zendlval->value.lval = (long) yytext[0];
if (yyleng == 2) {
yyless(1);
/*unput(yytext[1]);
yytext[1] = 0;
yyleng--;*/
}
return T_CHARACTER;
}
@@ -1473,7 +1489,6 @@ ANY_CHAR (.|[\n])
<ST_DOUBLE_QUOTES,ST_BACKQUOTE,ST_HEREDOC>"{$" {
zendlval->value.lval = (long) yytext[0];
yy_push_state(ST_IN_SCRIPTING);
/*unput('$');*/
yyless(1);
return T_CURLY_OPEN;
}
+15 -5
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -272,8 +272,18 @@ void plist_entry_destructor(void *ptr)
zend_rsrc_list_dtors_entry *ld;
if (zend_hash_index_find(&list_destructors, le->type,(void **) &ld)==SUCCESS) {
if (ld->plist_dtor) {
(ld->plist_dtor)(le->ptr);
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);
}
break;
EMPTY_SWITCH_DEFAULT_CASE()
}
} else {
zend_error(E_WARNING,"Unknown persistent list entry type in module shutdown (%d)",le->type);
@@ -382,13 +392,13 @@ ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_fu
}
int zend_init_rsrc_list_dtors()
int zend_init_rsrc_list_dtors(void)
{
return zend_hash_init(&list_destructors, 50, NULL, NULL, 1);
}
void zend_destroy_rsrc_list_dtors()
void zend_destroy_rsrc_list_dtors(void)
{
zend_hash_destroy(&list_destructors);
}
+4 -3
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -71,8 +71,8 @@ int zend_init_rsrc_list(ELS_D);
int zend_init_rsrc_plist(ELS_D);
void zend_destroy_rsrc_list(ELS_D);
void zend_destroy_rsrc_plist(ELS_D);
int zend_init_rsrc_list_dtors();
void zend_destroy_rsrc_list_dtors();
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_plist_insert(void *ptr, int type);
@@ -84,6 +84,7 @@ ZEND_API void *zend_list_find(int id, int *type);
ZEND_API void *zend_plist_find(int id, int *type);
ZEND_API int zend_register_resource(zval *rsrc_result, void *rsrc_pointer, int rsrc_type);
ZEND_API int zend_register_false_resource(zval *rsrc_result, void *rsrc_pointer, int rsrc_type);
ZEND_API void *zend_fetch_resource(zval **passed_id, 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);
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+8 -8
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -21,6 +21,8 @@
#ifndef MODULES_H
#define MODULES_H
#include "zend.h"
#define INIT_FUNC_ARGS int type, int module_number ELS_DC
#define INIT_FUNC_ARGS_PASSTHRU type, module_number ELS_CC
#define SHUTDOWN_FUNC_ARGS int type, int module_number
@@ -30,14 +32,12 @@
#define GINIT_FUNC_ARGS void
#define GINIT_FUNC_ARGS_PASSTHRU
extern unsigned char first_arg_force_ref[];
extern unsigned char first_arg_allow_ref[];
extern unsigned char second_arg_force_ref[];
extern unsigned char second_arg_allow_ref[];
ZEND_API extern unsigned char first_arg_force_ref[];
ZEND_API extern unsigned char first_arg_allow_ref[];
ZEND_API extern unsigned char second_arg_force_ref[];
ZEND_API extern unsigned char second_arg_allow_ref[];
#include "zend.h"
#define ZEND_MODULE_API_NO 20000809
#define ZEND_MODULE_API_NO 20001222
#ifdef ZTS
#define USING_ZTS 1
#else
+4 -5
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -251,7 +251,9 @@ static void zend_update_extended_info(zend_op_array *op_array CLS_DC)
opline++;
continue;
}
opline->lineno = (opline+1)->lineno;
if (opline+1<end) {
opline->lineno = (opline+1)->lineno;
}
} else {
opline->opcode = ZEND_NOP;
}
@@ -262,9 +264,6 @@ static void zend_update_extended_info(zend_op_array *op_array CLS_DC)
opline->opcode = ZEND_EXT_STMT;
SET_UNUSED(opline->op1);
SET_UNUSED(opline->op2);
if (op_array->last>0) {
opline->lineno= op_array->opcodes[op_array->last-2].lineno;
}
}
+5 -44
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -426,11 +426,13 @@ ZEND_API void _convert_to_string(zval *op ZEND_FILE_LINE_DC)
zval_dtor(op);
op->value.str.val = estrndup_rel("Array",sizeof("Array")-1);
op->value.str.len = sizeof("Array")-1;
zend_error(E_NOTICE, "Array to string conversion");
break;
case IS_OBJECT:
zval_dtor(op);
op->value.str.val = estrndup_rel("Object",sizeof("Object")-1);
op->value.str.len = sizeof("Object")-1;
zend_error(E_NOTICE, "Object to string conversion");
break;
default:
zval_dtor(op);
@@ -741,47 +743,6 @@ ZEND_API int mod_function(zval *result, zval *op1, zval *op2)
}
ZEND_API int boolean_or_function(zval *result, zval *op1, zval *op2)
{
zval op1_copy, op2_copy;
result->type = IS_BOOL;
zendi_convert_to_boolean(op1, op1_copy, result);
if (op1->value.lval) {
result->value.lval = 1;
return SUCCESS;
}
zendi_convert_to_boolean(op2, op2_copy, result);
if (op2->value.lval) {
result->value.lval = 1;
return SUCCESS;
}
result->value.lval = 0;
return SUCCESS;
}
ZEND_API int boolean_and_function(zval *result, zval *op1, zval *op2)
{
zval op1_copy, op2_copy;
result->type = IS_BOOL;
zendi_convert_to_boolean(op1, op1_copy, result);
if (!op1->value.lval) {
result->value.lval = 0;
return SUCCESS;
}
zendi_convert_to_boolean(op2, op2_copy, result);
if (!op2->value.lval) {
result->value.lval = 0;
return SUCCESS;
}
result->value.lval = 1;
return SUCCESS;
}
ZEND_API int boolean_xor_function(zval *result, zval *op1, zval *op2)
{
@@ -1137,7 +1098,7 @@ ZEND_API int compare_function(zval *result, zval *op1, zval *op2)
if (op1->type == IS_LONG && op2->type == IS_LONG) {
result->type = IS_LONG;
result->value.lval = ZEND_NORMALIZE_BOOL(op1->value.lval-op2->value.lval);
result->value.lval = op1->value.lval>op2->value.lval?1:(op1->value.lval<op2->value.lval?-1:0);
return SUCCESS;
}
if ((op1->type == IS_DOUBLE || op1->type == IS_LONG)
@@ -1563,7 +1524,7 @@ ZEND_API int zend_binary_strncasecmp(char *s1, uint len1, char *s2, uint len2, u
}
}
return len1 - len2;
return MIN(length, len1) - MIN(length, len2);
}
+1 -3
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -41,9 +41,7 @@ ZEND_API int sub_function(zval *result, zval *op1, zval *op2);
ZEND_API int mul_function(zval *result, zval *op1, zval *op2);
ZEND_API int div_function(zval *result, zval *op1, zval *op2);
ZEND_API int mod_function(zval *result, zval *op1, zval *op2);
ZEND_API int boolean_or_function(zval *result, zval *op1, zval *op2);
ZEND_API int boolean_xor_function(zval *result, zval *op1, zval *op2);
ZEND_API int boolean_and_function(zval *result, zval *op1, zval *op2);
ZEND_API int boolean_not_function(zval *result, zval *op1);
ZEND_API int bitwise_not_function(zval *result, zval *op1);
ZEND_API int bitwise_or_function(zval *result, zval *op1, zval *op2);
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -11
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -90,16 +90,6 @@ ZEND_API void _zval_dtor(zval *zvalue ZEND_FILE_LINE_DC)
}
ZEND_API void zval_del_ref(zval **p)
{
(*p)->refcount--;
if ((*p)->refcount==0) {
zval_dtor(*p);
FREE_ZVAL(*p);
}
}
ZEND_API void zval_add_ref(zval **p)
{
(*p)->refcount++;
+1 -2
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2000 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2001 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 0.92 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -49,7 +49,6 @@ END_EXTERN_C()
ZEND_API void zval_add_ref(zval **p);
ZEND_API void zval_del_ref(zval **p);
#define ZVAL_DESTRUCTOR (void (*)(void *)) zval_dtor_wrapper
#define ZVAL_PTR_DTOR (void (*)(void *)) zval_ptr_dtor_wrapper
+53 -2
View File
@@ -4,6 +4,53 @@ dnl This file contains local autoconf functions.
sinclude(dynlib.m4)
AC_DEFUN(PHP_SETUP_OPENSSL,[
if test "$PHP_OPENSSL" = "no"; then
PHP_OPENSSL="/usr/local/ssl /usr/local /usr /usr/local/openssl"
fi
for i in $PHP_OPENSSL; do
if test -r $i/include/openssl/evp.h; then
OPENSSL_DIR=$i
OPENSSL_INC=$i/include
fi
done
if test -z "$OPENSSL_DIR"; then
AC_MSG_ERROR(Cannot find OpenSSL's <evp.h>)
fi
old_CPPFLAGS=$CPPFLAGS
CPPFLAGS="-I$OPENSSL_INC"
AC_MSG_CHECKING(for OpenSSL version)
AC_EGREP_CPP(yes,[
#include <openssl/opensslv.h>
#if OPENSSL_VERSION_NUMBER >= 0x0090500fL
yes
#endif
],[
AC_MSG_RESULT(>= 0.9.5)
],[
AC_MSG_ERROR(OpenSSL version 0.9.5 or greater required.)
])
CPPFLAGS=$old_CPPFLAGS
AC_ADD_LIBPATH($OPENSSL_DIR/lib)
AC_CHECK_LIB(crypto, CRYPTO_free, [
AC_ADD_LIBRARY(crypto)
],[
AC_MSG_ERROR(libcrypto not found!)
])
AC_CHECK_LIB(ssl, SSL_CTX_set_ssl_version, [
AC_ADD_LIBRARY(ssl)
],[
AC_MSG_ERROR(libssl not found!)
])
AC_ADD_INCLUDE($OPENSSL_INC)
])
dnl PHP_EVAL_LIBLINE(LINE, SHARED-LIBADD)
dnl
dnl Use this macro, if you need to add libraries and or library search
@@ -176,7 +223,7 @@ case "[$]$1" in
shared,*)
ext_output="yes, shared"
ext_shared=yes
$1=`echo $ac_n "[$]$1$ac_c"|sed s/^shared,//`
$1=`echo "[$]$1"|sed 's/^shared,//'`
;;
shared)
ext_output="yes, shared"
@@ -284,6 +331,10 @@ fi
AC_DEFUN(PHP_SUBST,[
PHP_VAR_SUBST="$PHP_VAR_SUBST $1"
])
AC_DEFUN(PHP_SUBST_OLD,[
PHP_SUBST($1)
AC_SUBST($1)
])
@@ -336,7 +387,7 @@ AC_DEFUN(PHP_CONFIGURE_PART,[
])
AC_DEFUN(PHP_PROG_SENDMAIL,[
AC_PATH_PROG(PROG_SENDMAIL, sendmail, /usr/lib/sendmail, $PATH:/usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib)
AC_PATH_PROG(PROG_SENDMAIL, sendmail,[], $PATH:/usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib)
if test -n "$PROG_SENDMAIL"; then
AC_DEFINE(HAVE_SENDMAIL,1,[whether you have sendmail])
fi
+5 -4
View File
@@ -54,23 +54,24 @@ $(makefile_in_files): $(makefile_am_files) aclocal.m4 configure.in $(config_m4_f
fi; \
done
@test -f want_dependencies || flag=-i; \
automake -a $$flag $(AMFLAGS) $(makefile_files) \
|| true >&2
automake -a $$flag $(AMFLAGS) $(makefile_files) 2>&1 | $(SUPPRESS_WARNINGS)
@for i in $(LT_TARGETS); do mv $$i.bak $$i; done
aclocal.m4: configure.in acinclude.m4 dynlib.m4
aclocal
SUPPRESS_WARNINGS = (egrep -v '(warning: AC_TRY_RUN called without default to allow cross compiling|AC_PROG_CXXCPP was called before AC_PROG_CXX|.*AM_PROG_LEX.*)'||true)
$(config_h_in): configure acconfig.h
# explicitly remove target since autoheader does not seem to work
# correctly otherwise (timestamps are not updated)
@echo rebuilding $@
@rm -f $@
@autoheader 2>&1 | (grep -v 'warning: AC_TRY_RUN called without default to allow cross compiling'||true)
@autoheader 2>&1 | $(SUPPRESS_WARNINGS)
$(TOUCH_FILES):
touch $(TOUCH_FILES)
configure: aclocal.m4 configure.in $(config_m4_files)
@echo rebuilding $@
@autoconf 2>&1 | (grep -v 'warning: AC_TRY_RUN called without default to allow cross compiling'||true)
@autoconf 2>&1 | $(SUPPRESS_WARNINGS)
+7 -8
View File
@@ -1,6 +1,6 @@
#! /bin/sh
# $Id: genif.sh,v 1.9 2000-06-27 16:22:26 sas Exp $
# $Id: genif.sh,v 1.1 2000-12-20 17:21:37 sas Exp $
# replacement for genif.pl
infile="$1"
@@ -9,6 +9,8 @@ srcdir="$1"
shift
extra_module_ptrs="$1"
shift
awk="$1"
shift
if test "$infile" = "" -o "$srcdir" = ""; then
echo "please supply infile and srcdir"
@@ -16,20 +18,17 @@ if test "$infile" = "" -o "$srcdir" = ""; then
fi
module_ptrs="$extra_module_ptrs"
includes=""
header_list=""
olddir=`pwd`
cd $srcdir
for ext in ${1+"$@"} ; do
module_ptrs=" phpext_${ext}_ptr,\\\n$module_ptrs"
for header in ext/$ext/*.h ; do
if grep phpext_ $header >/dev/null 2>&1 ; then
includes="#include \"$header\"\\\n$includes"
fi
done
header_list="$header_list ext/$ext/*.h"
done
includes=`$awk -f ./build/print_include.awk $header_list`
cd $olddir
cat $infile | \
+6
View File
@@ -0,0 +1,6 @@
/phpext_/ {
if (old_filename != FILENAME) {
printf "#include \"" FILENAME "\"\\\\n"
old_filename = FILENAME
}
}
+5 -1
View File
@@ -54,7 +54,11 @@ distclean: distclean-recursive clean-x
php_config.h stamp-h Makefile build-defs.h php4.spec libphp4.module
test: $(top_builddir)/php
@$(top_builddir)/php -f $(top_srcdir)/run-tests.php `pwd`
@if test "$(TESTS)" = ""; then \
TOP_BUILDDIR=$(top_builddir) TOP_SRCDIR=$(top_srcdir) $(top_builddir)/php -d "include_path=.:$(top_srcdir)/pear:$(top_builddir)/pear:$(PEAR_INSTALLDIR)" -q $(top_srcdir)/run-tests.php $(srcdir); \
else \
TOP_BUILDDIR=$(top_builddir) TOP_SRCDIR=$(top_srcdir) $(top_builddir)/php -d include_path=".:$(top_srcdir)/pear:$(top_builddir)/pear:$(PEAR_INSTALLDIR)" -q $(top_srcdir)/run-tests.php $(TESTS); \
fi
include $(builddir)/.deps
+6
View File
@@ -55,6 +55,12 @@ distclean: distclean-recursive clean-x
rm -f config.cache config.log config.status config_vars.mk libtool \
php_config.h stamp-h Makefile build-defs.h php4.spec libphp4.module
cvsclean:
@for i in `find . -name .cvsignore`; do \
(cd `dirname $$i` 2>/dev/null && rm -rf `cat .cvsignore` *.o *.a || true); \
done
@rm -f $(SUBDIRS) 2>/dev/null || true
install-modules:
@test -d modules && \
$(mkinstalldirs) $(moduledir) && \
+59 -54
View File
@@ -51,7 +51,7 @@ dnl ## All of these are normally in the extension directories.
dnl ## Diversion 5 is the last one. Here we generate files and clean up.
dnl ## This is where the version number is changed from now on!
AM_INIT_AUTOMAKE(php, 4.0.4-dev)
AM_INIT_AUTOMAKE(php, 4.0.5, nodefine)
PHP_VERSION=$VERSION
echo "/* automatically generated by configure */" > php_version.h.new
@@ -95,13 +95,20 @@ BSD_MAKEFILE=no
case "$host_alias" in
*solaris*)
CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS";;
CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS"
if test "${enable_libgcc+set}" != "set" && test "$GCC" = "yes"; then
enable_libgcc=yes
fi
;;
*dgux*)
CPPFLAGS="$CPPFLAGS -D_BSD_TIMEOFDAY_FLAVOR";;
*darwin*|*rhapsody*)
CPPFLAGS="$CPPFLAGS -traditional-cpp";;
*bsdi*)
BSD_MAKEFILE=yes;;
*beos*)
beos_threads=1
LIBS="$LIBS -lbe -lroot";;
esac
AM_PROG_CC_STDC
@@ -110,7 +117,10 @@ AC_PROG_RANLIB
AC_PROG_CC_C_O
AC_PROG_LN_S
AM_PROG_LEX
AC_PROG_LEX
if test -n "$LEX"; then
AC_DECL_YYTEXT
fi
dnl ## Make flex scanners use const if they can, even if __STDC__ is not
dnl ## true, for compilers like Sun's that only set __STDC__ true in
@@ -240,11 +250,13 @@ dnl The sin may be in a library which need not be specifed
dnl as well as res_search resides in libsocket
AC_CHECK_LIB(m, sin)
AC_CHECK_LIB(bind, inet_aton, [
AC_ADD_LIBRARY(bind)
AC_DEFINE(HAVE_LIBBIND,1,[Whether you have bind]) ], [])
AC_CHECK_LIB(resolv, inet_aton)
dnl Only include libbind if inet_aton is not found in
dnl libresolv.
AC_CHECK_LIB(resolv, inet_aton, [], [
AC_CHECK_LIB(bind, inet_aton, [], [
AC_CHECK_LIB(bind, __inet_aton)
])
])
dnl The res_search may be in libsocket as well, and if it is
dnl make sure to check for dn_skipname in libresolv, or if res_search
@@ -277,18 +289,22 @@ dnl QNX requires unix.h to allow functions in libunix to work properly
AC_CHECK_HEADERS(
alloca.h \
arpa/inet.h \
arpa/nameser.h \
crypt.h \
fcntl.h \
grp.h \
ieeefp.h \
limits.h \
locale.h \
netinet/in.h \
pwd.h \
resolv.h \
signal.h \
stdarg.h \
stdlib.h \
string.h \
syslog.h \
sysexits.h \
sys/file.h \
sys/mman.h \
sys/resource.h \
@@ -296,6 +312,7 @@ sys/select.h \
sys/socket.h \
sys/statfs.h \
sys/statvfs.h \
sys/sysexits.h \
sys/time.h \
sys/types.h \
sys/varargs.h \
@@ -347,13 +364,17 @@ dnl Checks for library functions.
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(
asctime_r \
chroot \
crypt \
ctime_r \
cuserid \
flock \
gai_strerror \
gcvt \
getlogin \
gethostbyaddr \
getprotobyname \
getprotobynumber \
getrusage \
gettimeofday \
gmtime_r \
@@ -371,8 +392,10 @@ putenv \
random \
rand_r \
regcomp \
res_search \
setitimer \
setlocale \
localeconv \
setsockopt \
setvbuf \
shutdown \
@@ -384,6 +407,7 @@ statfs \
statvfs \
std_syslog \
strcasecmp \
strcoll \
strdup \
strerror \
strftime \
@@ -502,33 +526,11 @@ AC_ARG_WITH(exec-dir,
])
PHP_ARG_WITH(openssl,for OpenSSL support,
[ --with-openssl[=DIR] Include OpenSSL support])
[ --with-openssl[=DIR] Include OpenSSL support (requires OpenSSL >= 0.9.5) ])
if test "$PHP_OPENSSL" = "yes"; then
PHP_OPENSSL="/usr/local/ssl /usr/local /usr /usr/local/openssl"
fi
AC_DEFUN(PHP_SETUP_OPENSSL,[
if test "$PHP_OPENSSL" = "no"; then
PHP_OPENSSL="/usr/local/ssl /usr/local /usr /usr/local/openssl"
fi
for i in $PHP_OPENSSL; do
if test -r $i/include/openssl/evp.h; then
OPENSSL_DIR=$i
OPENSSL_INC=$i/include
fi
done
if test -z "$OPENSSL_DIR"; then
AC_MSG_ERROR(Cannot find OpenSSL's <evp.h>)
fi
AC_ADD_LIBPATH($OPENSSL_DIR/lib)
AC_ADD_LIBRARY(ssl)
AC_ADD_LIBRARY(crypto)
AC_ADD_INCLUDE($OPENSSL_INC)
])
if test "$PHP_OPENSSL" != "no"; then
PHP_SETUP_OPENSSL
fi
@@ -597,11 +599,6 @@ if test "$PHP_PEAR" = "yes"; then
PEAR_DIR=pear
fi
PHP_OUTPUT(pear/pear)
PHP_OUTPUT(pear/phpize)
PHP_OUTPUT(pear/php-config)
PHP_OUTPUT(pear/PEAR.php)
divert(5)
@@ -651,6 +648,11 @@ if test "$PHP_SAPI" = "cgi"; then
PHP_PROGRAM=php
fi
if test "$PHP_SAPI" = "fastcgi"; then
PHP_PROGRAM=php
fi
PHP_REGEX
PHP_CONFIGURE_PART(Configuring Zend)
@@ -686,7 +688,6 @@ EXTRA_LDFLAGS="$EXTRA_LDFLAGS $LDFLAGS"
EXTRA_LIBS="$EXTRA_LIBS $LIBS"
LDFLAGS=""
LIBS=""
PHP_OUTPUT(TSRM/Makefile)
phplibdir="`pwd`/modules"
@@ -710,7 +711,7 @@ else
PART2=non-zts
fi
ZEND_MODULE_API_NO=`egrep '#define ZEND_MODULE_API_NO ' $srcdir/Zend/modules.h|sed 's/#define ZEND_MODULE_API_NO //'`
ZEND_MODULE_API_NO=`egrep '#define ZEND_MODULE_API_NO ' $srcdir/Zend/zend_modules.h|sed 's/#define ZEND_MODULE_API_NO //'`
EXTENSION_DIR="$prefix/lib/php/extensions/$PART1-$PART2-$ZEND_MODULE_API_NO"
@@ -731,8 +732,8 @@ AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS",[uname output])
PHP_SUBST(abs_builddir)
PHP_SUBST(abs_srcdir)
PHP_SUBST_OLD(abs_builddir)
PHP_SUBST_OLD(abs_srcdir)
PHP_SUBST(bindir)
PHP_SUBST(exec_prefix)
PHP_SUBST(includedir)
@@ -740,36 +741,37 @@ PHP_SUBST(libdir)
PHP_SUBST(phplibdir)
PHP_SUBST(phptempdir)
PHP_SUBST(prefix)
PHP_SUBST(localstatedir)
PHP_SUBST(AWK)
PHP_SUBST(CC)
PHP_SUBST(CFLAGS)
PHP_SUBST(CONFIGURE_COMMAND)
PHP_SUBST_OLD(CONFIGURE_COMMAND)
PHP_SUBST(CPP)
PHP_SUBST(CPPFLAGS)
PHP_SUBST(CXX)
PHP_SUBST(CXXFLAGS)
PHP_SUBST(CXX_PHP_COMPILE)
PHP_SUBST(DEBUG_CFLAGS)
PHP_SUBST_OLD(DEBUG_CFLAGS)
PHP_SUBST(DEFS)
PHP_SUBST(EXTENSION_DIR)
PHP_SUBST_OLD(EXTENSION_DIR)
PHP_SUBST(EXTRA_LDFLAGS)
PHP_SUBST(EXTRA_LIBS)
PHP_SUBST_OLD(EXTRA_LIBS)
PHP_SUBST(INCLUDES)
PHP_SUBST(INCLUDE_PATH)
PHP_SUBST(INSTALL_IT)
PHP_SUBST_OLD(INCLUDE_PATH)
PHP_SUBST_OLD(INSTALL_IT)
PHP_SUBST(LEX)
PHP_SUBST(LEX_OUTPUT_ROOT)
PHP_SUBST(LFLAGS)
PHP_SUBST(LIBTOOL)
PHP_SUBST(LN_S)
PHP_SUBST(NATIVE_RPATHS)
PHP_SUBST_OLD(NATIVE_RPATHS)
PHP_SUBST(PEAR_DIR)
PHP_SUBST(PEAR_INSTALLDIR)
PHP_SUBST_OLD(PEAR_INSTALLDIR)
PHP_SUBST(PHP_BUILD_DATE)
PHP_SUBST(PHP_COMPILE)
PHP_SUBST(PHP_LDFLAGS)
PHP_SUBST(PHP_LIBS)
PHP_SUBST_OLD(PHP_LDFLAGS)
PHP_SUBST_OLD(PHP_LIBS)
PHP_SUBST(PHP_PROGRAM)
PHP_SUBST(PHP_RPATHS)
PHP_SUBST(PHP_SAPI)
@@ -780,7 +782,7 @@ PHP_SUBST(SHARED_LIBTOOL)
PHP_SUBST(TSRM_DIR)
PHP_SUBST(TSRM_LIB)
PHP_SUBST(WARNING_LEVEL)
PHP_SUBST(YACC)
PHP_SUBST_OLD(YACC)
PHP_CONFIGURE_PART(Configuring libtool)
@@ -842,7 +844,10 @@ PHP_CONFIGURE_PART(Generating files)
PHP_GEN_CONFIG_VARS
ALL_OUTPUT_FILES="php4.spec Zend/Makefile main/build-defs.h $PHP_OUTPUT_FILES"
$php_shtool mkdir -p pear/scripts
ALL_OUTPUT_FILES="php4.spec Zend/Makefile main/build-defs.h \
pear/scripts/pear pear/scripts/phpize pear/scripts/php-config pear/PEAR.php \
TSRM/Makefile $PHP_OUTPUT_FILES"
AC_OUTPUT($ALL_OUTPUT_FILES, [], [
@@ -881,9 +886,9 @@ if test -n "\$REDO_ALL"; then
# Hacking while airborne considered harmful.
#
echo "creating main/internal_functions.c"
extensions=\`grep '^s.@EXT_STATIC@' \$0|sed -e 's/^.*@% *//' -e 's/%.*$//'\`
extensions="$EXT_STATIC"
dnl mv -f main/internal_functions.c main/internal_functions.c.old 2>/dev/null
sh $srcdir/genif.sh $srcdir/main/internal_functions.c.in $srcdir "$EXTRA_MODULE_PTRS" \$extensions > main/internal_functions.c
sh $srcdir/build/genif.sh $srcdir/main/internal_functions.c.in $srcdir "$EXTRA_MODULE_PTRS" $AWK \$extensions > main/internal_functions.c
dnl if cmp main/internal_functions.c.old main/internal_functions.c > /dev/null 2>&1; then
dnl echo "main/internal_functions.c is unchanged"
dnl mv main/internal_functions.c.old main/internal_functions.c
+1 -1
View File
@@ -1,7 +1,7 @@
# +----------------------------------------------------------------------+
# | PHP version 4.0 |
# +----------------------------------------------------------------------+
# | Copyright (c) 1997, 1998, 1999, 2000 The PHP Group |
# | Copyright (c) 1997-2001 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.0 |
+----------------------------------------------------------------------+
| Copyright (c) 1997, 1998, 1999, 2000 The PHP Group |
| Copyright (c) 1997-2001 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 |
+2 -2
View File
@@ -19,9 +19,9 @@ AC_ARG_WITH(aspell,
fi
AC_DEFINE(HAVE_ASPELL,1,[Whether you have aspell])
AC_MSG_RESULT(yes)
PHP_EXTENSION(aspell)
PHP_EXTENSION(aspell)
else
AC_MSG_ERROR(no)
AC_MSG_RESULT(no)
fi
],[
AC_MSG_RESULT(no)
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP version 4.0 |
+----------------------------------------------------------------------+
| Copyright (c) 1997, 1998, 1999, 2000 The PHP Group |
| Copyright (c) 1997-2001 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.0 |
+----------------------------------------------------------------------+
| Copyright (c) 1997, 1998, 1999, 2000 The PHP Group |
| Copyright (c) 1997-2001 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 |
+2 -2
View File
@@ -1,7 +1,7 @@
dnl $Id$
PHP_ARG_WITH(bcmath, for bc style precision math functions,
[ --without-bcmath Compile without bc style precision math functions. ], yes)
PHP_ARG_ENABLE(bcmath, for bc style precision math functions,
[ --enable-bcmath Enable bc style precision math functions.])
if test "$PHP_BCMATH" != "no"; then
AC_DEFINE(WITH_BCMATH, 1, [Whether you have bcmath])
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP version 4.0 |
+----------------------------------------------------------------------+
| Copyright (c) 1997, 1998, 1999, 2000 The PHP Group |
| Copyright (c) 1997-2001 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.0 |
+----------------------------------------------------------------------+
| Copyright (c) 1997, 1998, 1999, 2000 The PHP Group |
| Copyright (c) 1997-2001 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.0 |
+----------------------------------------------------------------------+
| Copyright (c) 1997, 1998, 1999, 2000 The PHP Group |
| Copyright (c) 1997-2001 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.0 |
+----------------------------------------------------------------------+
| Copyright (c) 1997, 1998, 1999, 2000 The PHP Group |
| Copyright (c) 1997-2001 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.0 |
+----------------------------------------------------------------------+
| Copyright (c) 1997, 1998, 1999, 2000 The PHP Group |
| Copyright (c) 1997-2001 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.0 |
+----------------------------------------------------------------------+
| Copyright (c) 1997, 1998, 1999, 2000 The PHP Group |
| Copyright (c) 1997-2001 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 |
+2 -3
View File
@@ -3,9 +3,8 @@ dnl config.m4 for PHP4 CCVS Extension
AC_MSG_CHECKING(CCVS Support)
AC_ARG_WITH(ccvs,
[ --with-ccvs[=DIR] Compile CCVS support into PHP4.
Please specify your CCVS base install directory as DIR.
],
[ --with-ccvs[=DIR] Compile CCVS support into PHP4. Please specify your
CCVS base install directory as DIR.],
[
if test "$withval" != "no"; then
CCVS_DIR="$withval"
Loaded 100 of 725 files, more files were not shown because too many files have changed in this diff. Show more