[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/ext/mysqli/mysqli.c branches/PHP_5_3/ext/mysqli/mysqli_api.c branches/PHP_5_3/ext/mysqli/mysqli_libmysql.h branches/PHP_5_3/ext/mysqli/mysqli_mysqlnd.h tr
andrey Thu, 14 Jan 2010 09:47:57 + Revision: http://svn.php.net/viewvc?view=revisionrevision=293535 Log: Fix build of mysqli when libmysql is used, mysqlnd_portability.h might not be available for some weird reasons. Added the macros that we need, in that case Code by Jess Portnoy Changed paths: U php/php-src/branches/PHP_5_3/ext/mysqli/mysqli.c U php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_api.c U php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_libmysql.h U php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_mysqlnd.h U php/php-src/trunk/ext/mysqli/mysqli.c U php/php-src/trunk/ext/mysqli/mysqli_api.c U php/php-src/trunk/ext/mysqli/mysqli_libmysql.h U php/php-src/trunk/ext/mysqli/mysqli_mysqlnd.h Modified: php/php-src/branches/PHP_5_3/ext/mysqli/mysqli.c === --- php/php-src/branches/PHP_5_3/ext/mysqli/mysqli.c 2010-01-14 09:33:37 UTC (rev 293534) +++ php/php-src/branches/PHP_5_3/ext/mysqli/mysqli.c 2010-01-14 09:47:57 UTC (rev 293535) @@ -32,7 +32,6 @@ #include ext/standard/php_string.h #include php_mysqli_structs.h #include zend_exceptions.h -#include ext/mysqlnd/mysqlnd_portability.h ZEND_DECLARE_MODULE_GLOBALS(mysqli) static PHP_GINIT_FUNCTION(mysqli); Modified: php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_api.c === --- php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_api.c 2010-01-14 09:33:37 UTC (rev 293534) +++ php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_api.c 2010-01-14 09:47:57 UTC (rev 293535) @@ -31,7 +31,6 @@ #include php_globals.h #include ext/standard/info.h #include php_mysqli_structs.h -#include ext/mysqlnd/mysqlnd_portability.h /* {{{ proto mixed mysqli_affected_rows(object link) Get number of affected rows in previous MySQL operation */ Modified: php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_libmysql.h === --- php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_libmysql.h 2010-01-14 09:33:37 UTC (rev 293534) +++ php/php-src/branches/PHP_5_3/ext/mysqli/mysqli_libmysql.h 2010-01-14 09:47:57 UTC (rev 293535) @@ -1,9 +1,9 @@ /* - +--+ + -- | PHP Version 6| - +--+ + -- | Copyright (c) 2007 The PHP Group | - +--+ + -- | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is| | available through the world-wide-web at the following url: | @@ -11,14 +11,17 @@ | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | lice...@php.net so we can mail you a copy immediately. | - +--+ + -- | Authors: Georg Richter ge...@mysql.com | | Andrey Hristov and...@mysql.com | | Ulf Wendel uwen...@mysql.com | - +--+ + -- */ +#ifndef MYSQLI_LIBMYSQL_H +#define MYSQLI_LIBMYSQL_H + /* These are unused */ #define MYSQLI_CLOSE_EXPLICIT 0 #define MYSQLI_CLOSE_IMPLICIT 1 @@ -36,3 +39,78 @@ #define mysqli_free_result(r, is_forced) mysql_free_result((r)) #define mysqli_change_user_silent(c, u, p, d) mysql_change_user((c), (u), (p), (d)) + +/* + These functions also reside in ext/mysqlnd/mysqlnd_portability.h but since it is only made + available if one wants to build mysqli against mysqlnd and they are useful for libmysql as + well, we check whether they're not defined [build with libmysql is desired] and define them. + + Bit values are sent in reverted order of bytes, compared to normal !!! +*/ + + +#ifndef uint1korr +#define uint1korr(A) (*(((uint8_t*)(A +#endif + +#ifndef bit_uint2korr +#define bit_uint2korr(A) ((uint16_t) (((uint16_t) (((unsigned char*) (A))[1])) +\ + ((uint16_t) (((unsigned char*) (A))[0]) 8))) +#endif + +#ifndef bit_uint3korr +#define bit_uint3korr(A) ((uint32_t) (((uint32_t) (((unsigned char*) (A))[2])) +\ + (((uint32_t)
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/ext/mysqlnd/mysqlnd_portability.h trunk/ext/mysqlnd/mysqlnd_portability.h
andrey Thu, 14 Jan 2010 10:35:28 + Revision: http://svn.php.net/viewvc?view=revisionrevision=293537 Log: remove redefinition of bit_uint8korr Changed paths: U php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_portability.h U php/php-src/trunk/ext/mysqlnd/mysqlnd_portability.h Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_portability.h === --- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_portability.h 2010-01-14 10:32:05 UTC (rev 293536) +++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_portability.h 2010-01-14 10:35:28 UTC (rev 293537) @@ -369,16 +369,6 @@ (((uint32_t) ((zend_uchar) (A)[2])) 16) +\ (((uint32_t) ((zend_uchar) (A)[3])) 24)) - -#define bit_uint8korr(A) ((uint64_t)(((uint32_t) (((zend_uchar*) (A))[7])) +\ - (((uint32_t) (((zend_uchar*) (A))[6])) 8) +\ - (((uint32_t) (((zend_uchar*) (A))[5])) 16) +\ - (((uint32_t) (((zend_uchar*) (A))[4])) 24)) +\ - (((uint64_t) (((uint32_t) (((zend_uchar*) (A))[3])) +\ - (((uint32_t) (((zend_uchar*) (A))[2])) 8) +\ - (((uint32_t) (((zend_uchar*) (A))[1])) 16) +\ - (((uint32_t) (((zend_uchar*) (A))[0])) 24))) 32)) - #define uint8korr(A) ((uint64_t)(((uint32_t) ((zend_uchar) (A)[0])) +\ (((uint32_t) ((zend_uchar) (A)[1])) 8) +\ (((uint32_t) ((zend_uchar) (A)[2])) 16) +\ Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_portability.h === --- php/php-src/trunk/ext/mysqlnd/mysqlnd_portability.h 2010-01-14 10:32:05 UTC (rev 293536) +++ php/php-src/trunk/ext/mysqlnd/mysqlnd_portability.h 2010-01-14 10:35:28 UTC (rev 293537) @@ -369,16 +369,6 @@ (((uint32_t) ((zend_uchar) (A)[2])) 16) +\ (((uint32_t) ((zend_uchar) (A)[3])) 24)) - -#define bit_uint8korr(A) ((uint64_t)(((uint32_t) (((zend_uchar*) (A))[7])) +\ - (((uint32_t) (((zend_uchar*) (A))[6])) 8) +\ - (((uint32_t) (((zend_uchar*) (A))[5])) 16) +\ - (((uint32_t) (((zend_uchar*) (A))[4])) 24)) +\ - (((uint64_t) (((uint32_t) (((zend_uchar*) (A))[3])) +\ - (((uint32_t) (((zend_uchar*) (A))[2])) 8) +\ - (((uint32_t) (((zend_uchar*) (A))[1])) 16) +\ - (((uint32_t) (((zend_uchar*) (A))[0])) 24))) 32)) - #define uint8korr(A) ((uint64_t)(((uint32_t) ((zend_uchar) (A)[0])) +\ (((uint32_t) ((zend_uchar) (A)[1])) 8) +\ (((uint32_t) ((zend_uchar) (A)[2])) 16) +\ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_2/ext/gd/gd.c branches/PHP_5_2/ext/gd/libgd/gd.c branches/PHP_5_2/ext/gd/tests/imagefilledpolygon_negative.phpt branches/PHP_5_2/ext/gd/tests/imagepolygon_n
tabe Thu, 14 Jan 2010 11:11:56 + Revision: http://svn.php.net/viewvc?view=revisionrevision=293538 Log: imagepolygon() and imagefilledpolygon() does not allow negative number of points causing invalid allocation Changed paths: U php/php-src/branches/PHP_5_2/ext/gd/gd.c U php/php-src/branches/PHP_5_2/ext/gd/libgd/gd.c A php/php-src/branches/PHP_5_2/ext/gd/tests/imagefilledpolygon_negative.phpt A php/php-src/branches/PHP_5_2/ext/gd/tests/imagepolygon_negative.phpt U php/php-src/branches/PHP_5_3/ext/gd/gd.c U php/php-src/branches/PHP_5_3/ext/gd/libgd/gd.c A php/php-src/branches/PHP_5_3/ext/gd/tests/imagefilledpolygon_negative.phpt A php/php-src/branches/PHP_5_3/ext/gd/tests/imagepolygon_negative.phpt U php/php-src/trunk/ext/gd/gd.c U php/php-src/trunk/ext/gd/libgd/gd.c A php/php-src/trunk/ext/gd/tests/imagefilledpolygon_negative.phpt A php/php-src/trunk/ext/gd/tests/imagepolygon_negative.phpt Modified: php/php-src/branches/PHP_5_2/ext/gd/gd.c === --- php/php-src/branches/PHP_5_2/ext/gd/gd.c 2010-01-14 10:35:28 UTC (rev 293537) +++ php/php-src/branches/PHP_5_2/ext/gd/gd.c 2010-01-14 11:11:56 UTC (rev 293538) @@ -3749,7 +3749,10 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, You must have at least 3 points in your array); RETURN_FALSE; } - + if (npoints = 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, You must give a positive number of points); + RETURN_FALSE; + } if (nelem npoints * 2) { php_error_docref(NULL TSRMLS_CC, E_WARNING, Trying to use %d points in array with only %d points, npoints, nelem/2); RETURN_FALSE; Modified: php/php-src/branches/PHP_5_2/ext/gd/libgd/gd.c === --- php/php-src/branches/PHP_5_2/ext/gd/libgd/gd.c 2010-01-14 10:35:28 UTC (rev 293537) +++ php/php-src/branches/PHP_5_2/ext/gd/libgd/gd.c 2010-01-14 11:11:56 UTC (rev 293538) @@ -3195,7 +3195,7 @@ typedef void (*image_line)(gdImagePtr im, int x1, int y1, int x2, int y2, int color); image_line draw_line; - if (!n) { + if (n = 0) { return; } @@ -3248,7 +3248,7 @@ int ints; int fill_color; - if (!n) { + if (n = 0) { return; } Added: php/php-src/branches/PHP_5_2/ext/gd/tests/imagefilledpolygon_negative.phpt === --- php/php-src/branches/PHP_5_2/ext/gd/tests/imagefilledpolygon_negative.phpt (rev 0) +++ php/php-src/branches/PHP_5_2/ext/gd/tests/imagefilledpolygon_negative.phpt 2010-01-14 11:11:56 UTC (rev 293538) @@ -0,0 +1,15 @@ +--TEST-- +imagefilledpolygon() with a negative num of points +--SKIPIF-- +?php + if (!function_exists('imagefilledpolygon')) die('skip imagefilledpolygon() not available'); +? +--FILE-- +?php +$im = imagecreate(100, 100); +$black = imagecolorallocate($im, 0, 0, 0); +if (imagefilledpolygon($im, array(0, 0, 0, 0, 0, 0), -1, $black)) echo should be false; +imagedestroy($im); +? +--EXPECTF-- +Warning: imagefilledpolygon(): You must give a positive number of points in %s on line %d Added: php/php-src/branches/PHP_5_2/ext/gd/tests/imagepolygon_negative.phpt === --- php/php-src/branches/PHP_5_2/ext/gd/tests/imagepolygon_negative.phpt (rev 0) +++ php/php-src/branches/PHP_5_2/ext/gd/tests/imagepolygon_negative.phpt 2010-01-14 11:11:56 UTC (rev 293538) @@ -0,0 +1,15 @@ +--TEST-- +imagepolygon() with a negative num of points +--SKIPIF-- +?php + if (!function_exists('imagepolygon')) die('skip imagepolygon() not available'); +? +--FILE-- +?php +$im = imagecreate(100, 100); +$black = imagecolorallocate($im, 0, 0, 0); +if (imagepolygon($im, array(0, 0, 0, 0, 0, 0), -1, $black)) echo should be false; +imagedestroy($im); +? +--EXPECTF-- +Warning: imagepolygon(): You must give a positive number of points in %s on line %d Modified: php/php-src/branches/PHP_5_3/ext/gd/gd.c === --- php/php-src/branches/PHP_5_3/ext/gd/gd.c 2010-01-14 10:35:28 UTC (rev 293537) +++ php/php-src/branches/PHP_5_3/ext/gd/gd.c 2010-01-14 11:11:56 UTC (rev 293538) @@ -3427,7 +3427,10 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, You must have at least 3 points in your array); RETURN_FALSE; } - + if (npoints = 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, You must give a positive number of points); + RETURN_FALSE; + } if (nelem npoints * 2) { php_error_docref(NULL TSRMLS_CC, E_WARNING, Trying to use %d points in array with only %d points, npoints, nelem/2); RETURN_FALSE; Modified: php/php-src/branches/PHP_5_3/ext/gd/libgd/gd.c === --- php/php-src/branches/PHP_5_3/ext/gd/libgd/gd.c 2010-01-14 10:35:28 UTC (rev 293537) +++
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/ext/mysqlnd/mysqlnd_debug.c trunk/ext/mysqlnd/mysqlnd_debug.c
andrey Thu, 14 Jan 2010 11:39:18 + Revision: http://svn.php.net/viewvc?view=revisionrevision=293539 Log: Fix compiler warning Changed paths: U php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_debug.c U php/php-src/trunk/ext/mysqlnd/mysqlnd_debug.c Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_debug.c === --- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_debug.c2010-01-14 11:11:56 UTC (rev 293538) +++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_debug.c2010-01-14 11:39:18 UTC (rev 293539) @@ -317,7 +317,7 @@ } if ((self-flags MYSQLND_DEBUG_TRACE_MEMORY_CALLS) == 0 self-skip_functions) { - char ** p = self-skip_functions; + const char ** p = self-skip_functions; while (*p) { if (*p == func_name) { zend_stack_push(self-call_stack, , sizeof()); Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_debug.c === --- php/php-src/trunk/ext/mysqlnd/mysqlnd_debug.c 2010-01-14 11:11:56 UTC (rev 293538) +++ php/php-src/trunk/ext/mysqlnd/mysqlnd_debug.c 2010-01-14 11:39:18 UTC (rev 293539) @@ -317,7 +317,7 @@ } if ((self-flags MYSQLND_DEBUG_TRACE_MEMORY_CALLS) == 0 self-skip_functions) { - char ** p = self-skip_functions; + const char ** p = self-skip_functions; while (*p) { if (*p == func_name) { zend_stack_push(self-call_stack, , sizeof()); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/ext/mysqlnd/mysqlnd_net.c trunk/ext/mysqlnd/mysqlnd_net.c
andrey Thu, 14 Jan 2010 12:31:29 + Revision: http://svn.php.net/viewvc?view=revisionrevision=293542 Log: Fix compiler warning, copypaste error Changed paths: U php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_net.c U php/php-src/trunk/ext/mysqlnd/mysqlnd_net.c Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_net.c === --- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_net.c 2010-01-14 12:30:30 UTC (rev 293541) +++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_net.c 2010-01-14 12:31:29 UTC (rev 293542) @@ -475,7 +475,7 @@ /* {{{ mysqlnd_net::receive */ -static enum_func_status +static size_t MYSQLND_METHOD(mysqlnd_net, receive)(MYSQLND * conn, zend_uchar * buffer, size_t count TSRMLS_DC) { size_t to_read = count; Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_net.c === --- php/php-src/trunk/ext/mysqlnd/mysqlnd_net.c 2010-01-14 12:30:30 UTC (rev 293541) +++ php/php-src/trunk/ext/mysqlnd/mysqlnd_net.c 2010-01-14 12:31:29 UTC (rev 293542) @@ -475,7 +475,7 @@ /* {{{ mysqlnd_net::receive */ -static enum_func_status +static size_t MYSQLND_METHOD(mysqlnd_net, receive)(MYSQLND * conn, zend_uchar * buffer, size_t count TSRMLS_DC) { size_t to_read = count; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_2/ext/date/tests/bug50680.phpt branches/PHP_5_3/ext/date/tests/bug50680.phpt trunk/ext/date/tests/bug50680.phpt
iliaaThu, 14 Jan 2010 15:45:49 + Revision: http://svn.php.net/viewvc?view=revisionrevision=293548 Log: Added test for bug #50680 Bug: http://bugs.php.net/50680 (Closed) eight - eighth Changed paths: A php/php-src/branches/PHP_5_2/ext/date/tests/bug50680.phpt A php/php-src/branches/PHP_5_3/ext/date/tests/bug50680.phpt A php/php-src/trunk/ext/date/tests/bug50680.phpt Added: php/php-src/branches/PHP_5_2/ext/date/tests/bug50680.phpt === --- php/php-src/branches/PHP_5_2/ext/date/tests/bug50680.phpt (rev 0) +++ php/php-src/branches/PHP_5_2/ext/date/tests/bug50680.phpt 2010-01-14 15:45:49 UTC (rev 293548) @@ -0,0 +1,9 @@ +--TEST-- +Bug #50680 (eighth quantifier is not understood) +--INI-- +date.timezone=UTC +--FILE-- +?php +var_dump(date(d, strtotime(March 1 eighth day 2009))); +--EXPECT-- +string(2) 09 Added: php/php-src/branches/PHP_5_3/ext/date/tests/bug50680.phpt === --- php/php-src/branches/PHP_5_3/ext/date/tests/bug50680.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/date/tests/bug50680.phpt 2010-01-14 15:45:49 UTC (rev 293548) @@ -0,0 +1,9 @@ +--TEST-- +Bug #50680 (eighth quantifier is not understood) +--INI-- +date.timezone=UTC +--FILE-- +?php +var_dump(date(d, strtotime(March 1 eighth day 2009))); +--EXPECT-- +string(2) 09 Added: php/php-src/trunk/ext/date/tests/bug50680.phpt === --- php/php-src/trunk/ext/date/tests/bug50680.phpt (rev 0) +++ php/php-src/trunk/ext/date/tests/bug50680.phpt 2010-01-14 15:45:49 UTC (rev 293548) @@ -0,0 +1,9 @@ +--TEST-- +Bug #50680 (eighth quantifier is not understood) +--INI-- +date.timezone=UTC +--FILE-- +?php +var_dump(date(d, strtotime(March 1 eighth day 2009))); +--EXPECT-- +string(2) 09 -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/ext/standard/crypt_sha256.c branches/PHP_5_3/ext/standard/crypt_sha512.c trunk/ext/standard/crypt_sha256.c trunk/ext/standard/crypt_sha512.c
pajoye Thu, 14 Jan 2010 19:44:54 + Revision: http://svn.php.net/viewvc?view=revisionrevision=293558 Log: - fix build Changed paths: U php/php-src/branches/PHP_5_3/ext/standard/crypt_sha256.c U php/php-src/branches/PHP_5_3/ext/standard/crypt_sha512.c U php/php-src/trunk/ext/standard/crypt_sha256.c U php/php-src/trunk/ext/standard/crypt_sha512.c Modified: php/php-src/branches/PHP_5_3/ext/standard/crypt_sha256.c === --- php/php-src/branches/PHP_5_3/ext/standard/crypt_sha256.c2010-01-14 18:54:43 UTC (rev 293557) +++ php/php-src/branches/PHP_5_3/ext/standard/crypt_sha256.c2010-01-14 19:44:54 UTC (rev 293558) @@ -2,10 +2,8 @@ Released into the Public Domain by Ulrich Drepper drep...@redhat.com. */ /* Windows VC++ port by Pierre Joye pie...@php.net */ -#ifndef PHP_WIN32 -# include php.h -# include php_main.h -#endif +#include php.h +#include php_main.h #include errno.h #include limits.h Modified: php/php-src/branches/PHP_5_3/ext/standard/crypt_sha512.c === --- php/php-src/branches/PHP_5_3/ext/standard/crypt_sha512.c2010-01-14 18:54:43 UTC (rev 293557) +++ php/php-src/branches/PHP_5_3/ext/standard/crypt_sha512.c2010-01-14 19:44:54 UTC (rev 293558) @@ -2,10 +2,8 @@ Released into the Public Domain by Ulrich Drepper drep...@redhat.com. */ /* Windows VC++ port by Pierre Joye pie...@php.net */ -#ifndef PHP_WIN32 -# include php.h -# include php_main.h -#endif +#include php.h +#include php_main.h #include errno.h #include limits.h Modified: php/php-src/trunk/ext/standard/crypt_sha256.c === --- php/php-src/trunk/ext/standard/crypt_sha256.c 2010-01-14 18:54:43 UTC (rev 293557) +++ php/php-src/trunk/ext/standard/crypt_sha256.c 2010-01-14 19:44:54 UTC (rev 293558) @@ -2,10 +2,8 @@ Released into the Public Domain by Ulrich Drepper drep...@redhat.com. */ /* Windows VC++ port by Pierre Joye pie...@php.net */ -#ifndef PHP_WIN32 -# include php.h -# include php_main.h -#endif +#include php.h +#include php_main.h #include errno.h #include limits.h Modified: php/php-src/trunk/ext/standard/crypt_sha512.c === --- php/php-src/trunk/ext/standard/crypt_sha512.c 2010-01-14 18:54:43 UTC (rev 293557) +++ php/php-src/trunk/ext/standard/crypt_sha512.c 2010-01-14 19:44:54 UTC (rev 293558) @@ -2,10 +2,8 @@ Released into the Public Domain by Ulrich Drepper drep...@redhat.com. */ /* Windows VC++ port by Pierre Joye pie...@php.net */ -#ifndef PHP_WIN32 -# include php.h -# include php_main.h -#endif +#include php.h +#include php_main.h #include errno.h #include limits.h -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php