[PHP-CVS] tag php-src: create tag php-5.4.11

2013-01-15 Thread Stanislav Malyshev
Tag php-5.4.11 in php-src.git was created
Tag: 663d9f78a986a6f49a3247f0724dd617bfda9ee7
Tagger:  Stanislav Malyshev Tue Jan 15 23:10:55 2013 
-0800
Log:
5.4.11
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.10 (Darwin)

iF4EABEIAAYFAlD2UoQACgkQL3lWvF2gS13i7wD9Hvy4OIcSM8upWKdSTaeQc77g
Jt7zCdSZGA0C1R3BBoMA/RdlAcV8wJhiBclOU4CeDQ+lKoxqZoZQY1OUl6ZTjeQa
=OTGm
-END PGP SIGNATURE-

Link: 
http://git.php.net/?p=php-src.git;a=tag;h=663d9f78a986a6f49a3247f0724dd617bfda9ee7

Target:  d224386bd8424345a5178b5ba0c9c881e83c7fe0
Author:  Stanislav Malyshev  Tue, 15 Jan 2013 
12:10:47 -0800
Parents: 9ef52cac0542098f4b8dd7c556a6e900bfd2b0f3
Target link: 
http://git.php.net/?p=php-src.git;a=commitdiff;h=d224386bd8424345a5178b5ba0c9c881e83c7fe0
Target log:
5.4.11

Changed paths:
  M  NEWS
  M  configure.in
  M  main/php_version.h



--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: 5.4.11: NEWS configure.in main/php_version.h

2013-01-15 Thread Stanislav Malyshev
Commit:d224386bd8424345a5178b5ba0c9c881e83c7fe0
Author:Stanislav Malyshev  Tue, 15 Jan 2013 12:10:47 
-0800
Parents:   9ef52cac0542098f4b8dd7c556a6e900bfd2b0f3
Branches:  PHP-5.4.11

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=d224386bd8424345a5178b5ba0c9c881e83c7fe0

Log:
5.4.11

Changed paths:
  M  NEWS
  M  configure.in
  M  main/php_version.h


Diff:
diff --git a/NEWS b/NEWS
index 444a68e..b324632 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,6 @@
 PHPNEWS
 |||
-03 Jan 2013, PHP 5.4.11 RC1
+17 Jan 2013, PHP 5.4.11
 
 - Core:
   . Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user).
diff --git a/configure.in b/configure.in
index 47a9848..a4730c8 100644
--- a/configure.in
+++ b/configure.in
@@ -120,7 +120,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
 PHP_MAJOR_VERSION=5
 PHP_MINOR_VERSION=4
 PHP_RELEASE_VERSION=11
-PHP_EXTRA_VERSION="RC1"
+PHP_EXTRA_VERSION=""
 
PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION"
 PHP_VERSION_ID=`expr [$]PHP_MAJOR_VERSION \* 1 + [$]PHP_MINOR_VERSION \* 
100 + [$]PHP_RELEASE_VERSION`
 
diff --git a/main/php_version.h b/main/php_version.h
index c179a01..cf6f240 100644
--- a/main/php_version.h
+++ b/main/php_version.h
@@ -3,6 +3,6 @@
 #define PHP_MAJOR_VERSION 5
 #define PHP_MINOR_VERSION 4
 #define PHP_RELEASE_VERSION 11
-#define PHP_EXTRA_VERSION "RC1"
-#define PHP_VERSION "5.4.11RC1"
+#define PHP_EXTRA_VERSION ""
+#define PHP_VERSION "5.4.11"
 #define PHP_VERSION_ID 50411


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Fix News: NEWS

2013-01-15 Thread Christopher Jones
Commit:94a4e0f8235b165b0b72f91656db1f4059e8c176
Author:Christopher Jones  Tue, 15 Jan 2013 20:38:24 
-0800
Parents:   142c40f32c075a8eb706f2e630b934f39e711b70
Branches:  PHP-5.4

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=94a4e0f8235b165b0b72f91656db1f4059e8c176

Log:
Fix News

Changed paths:
  M  NEWS


Diff:
diff --git a/NEWS b/NEWS
index 8fc3d6c..a10ef4e 100644
--- a/NEWS
+++ b/NEWS
@@ -29,13 +29,15 @@ PHP 
   NEWS
   . Fixed bug #63921 (sqlite3::bindvalue and relative PHP functions aren't
 using sqlite3_*_int64 API). (srgoogleguy, Lars)
 
-- PDO_sqlite:
-  . Fixed bug #63916 (PDO::PARAM_INT casts to 32bit int internally even
-on 64bit builds in pdo_sqlite). (srgoogleguy, Lars)
+- PDO_OCI
   . Fixed bug #57702 (Multi-row BLOB fetches). (hswong3i, Laruence)
   . Fixed bug #52958 (Segfault in PDO_OCI on cleanup after running a long
 testsuite). (hswong3i, Lars)
 
+- PDO_sqlite:
+  . Fixed bug #63916 (PDO::PARAM_INT casts to 32bit int internally even
+on 64bit builds in pdo_sqlite). (srgoogleguy, Lars)
+
 ?? ??? 2012, PHP 5.4.11
 
 - Core:


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Merge branch 'PHP-5.4' into PHP-5.5: NEWS

2013-01-15 Thread Adam Harvey
Commit:77010bf9bf45c46d844b336c18cc8102cfc7e249
Author:Adam Harvey  Wed, 16 Jan 2013 10:19:13 +0800
Parents:   2f7aafe9929d843ae089a7072c5e6d9bd70c77ae 
142c40f32c075a8eb706f2e630b934f39e711b70
Branches:  PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=77010bf9bf45c46d844b336c18cc8102cfc7e249

Log:
Merge branch 'PHP-5.4' into PHP-5.5

* PHP-5.4:
  Update the arguments in the prototype of fpm_socket_unix_test_connect().

Changed paths:
  MM  NEWS


Diff:
diff --cc NEWS
index 212029c,8fc3d6c..6395b34
--- a/NEWS
+++ b/NEWS
@@@ -1,63 -1,106 +1,66 @@@
  PHP
NEWS
  
|||
 -?? ??? 2012, PHP 5.4.12
 +?? ??? 201?, PHP 5.5.0 Alpha 3
  
  - Core:
 -  . Fixed bug #63982 (isset() inconsistently produces a fatal error on
 -protected property). (Stas)
 -  . Fixed bug #63943 (Bad warning text from strpos() on empty needle).
 -(Laruence)
 -  . Fixed bug #63899 (Use after scope error in zend_compile). (Laruence)
 -  . Fixed bug #63893 (Poor efficiency of strtr() using array with keys of very
 -different length). (Gustavo)
 -  . Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry)
 -  . Support BITMAPV5HEADER in getimagesize(). (AsamK, Lars)
 -
 -- Date:
 -  . Fixed bug #63699 (Performance improvements for various ext/date 
functions).
 -(Lars, original patch by njaguar at gmail dot com)
 -  . Fixed bug #55397: Comparsion of incomplete DateTime causes SIGSEGV. 
 -(Derick)
 -
 -- FPM:
 -  . Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11). (Adam)
 -
 -- Litespeed:
 -  . Fixed bug #63228 (-Werror=format-security error in lsapi code). (George)
 -
 -- ext/sqlite3:
 -  . Fixed bug #63921 (sqlite3::bindvalue and relative PHP functions aren't
 -using sqlite3_*_int64 API). (srgoogleguy, Lars)
 -
 -- PDO_sqlite:
 -  . Fixed bug #63916 (PDO::PARAM_INT casts to 32bit int internally even
 -on 64bit builds in pdo_sqlite). (srgoogleguy, Lars)
 -  . Fixed bug #57702 (Multi-row BLOB fetches). (hswong3i, Laruence)
 -  . Fixed bug #52958 (Segfault in PDO_OCI on cleanup after running a long
 -testsuite). (hswong3i, Lars)
 +  . Fixed bug #63980 (object members get trimmed by zero bytes). (Laruence)
  
 -?? ??? 2012, PHP 5.4.11
 -
 -- Core:
 -  . Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user).
 -(Johannes)
 -  . Fixed bug #43177 (Errors in eval()'ed code produce status code 500).
 -(Todd Ruth, Stas).
 -
 -- Filter:
 -  . Fixed bug #63757 (getenv() produces memory leak with CGI SAPI). (Dmitry)
 -  . Fixed bug #54096 (FILTER_VALIDATE_INT does not accept +0 and -0).
 -(martin at divbyzero dot net, Lars)
 -
 -- JSON:
 -  . Fixed bug #63737 (json_decode does not properly decode with options
 -parameter). (Adam)
 -
 -- CLI server
 -  . Update list of common mime types. Added webm, ogv, ogg. (Lars,
 -pascalc at gmail dot com)
 +- General improvements:
 +  . Fixed bug #63874 (Segfault if php_strip_whitespace has heredoc). 
(Pierrick)
 +  . Fixed bug #63822 (Crash when using closures with ArrayAccess).
 +(Nikita Popov)
 +  . Add Generator::throw() method. (Nikita Popov)
 +  . Bug #23955: allow specifying Max-Age attribute in setcookie() (narfbg, 
Lars)
 +  . Bug #52126: timestamp for mail.log (Martin Jansen, Lars)
  
 -- cURL extension:
 -  . Fixed bug (segfault due to libcurl connection caching). (Pierrick)
 -  . Fixed bug #63859 (Memory leak when reusing curl-handle). (Pierrick)
 -  . Fixed bug #63795 (CURL >= 7.28.0 no longer support value 1 for
 -CURLOPT_SSL_VERIFYHOST). (Pierrick)
 -  . Fixed bug #63352 (Can't enable hostname validation when using curl stream
 -wrappers). (Pierrick)
 -  . Fixed bug #55438 (Curlwapper is not sending http header randomly).
 -(php...@lostreality.org, Pierrick)
 +- mysqlnd
 +  . Fixed return value of mysqli_stmt_affected_rows() in the time after
 +prepare() and before execute(). (Andrey)
  
 -20 Dec 2012, PHP 5.4.10
 +- cURL:
 +  . Added new functions curl_escape, curl_multi_setopt, curl_multi_strerror
 +curl_pause, curl_reset, curl_share_close, curl_share_init,
 +  curl_share_setopt curl_strerror and curl_unescape. (Pierrick)
 +  . Addes new curl options CURLOPT_TELNETOPTIONS, CURLOPT_GSSAPI_DELEGATION,
 +CURLOPT_ACCEPTTIMEOUT_MS, CURLOPT_SSL_OPTIONS, CURLOPT_TCP_KEEPALIVE,
 +  CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL. (Pierrick)
  
 -- Core:
 -  . Fixed bug #63726 (Memleak with static properties and internal/user
 -classes). (Laruence)
 -  . Fixed bug #63635 (Segfault in gc_collect_cycles). (Dmitry)
 -  . Fixed bug #63512 (parse_ini_file() with INI_SCANNER_RAW removes quotes
 -from value). (Pierrick)
 -  . Fixed bug #63468 (wrong called method as callback with inheritance).
 -(Laruence)
 -  . Fixed bug #63451 (config.guess file does not have AIX 7 defined,
 -sha

[PHP-CVS] com php-src: Merge branch 'PHP-5.3' into PHP-5.4: NEWS

2013-01-15 Thread Adam Harvey
Commit:142c40f32c075a8eb706f2e630b934f39e711b70
Author:Adam Harvey  Wed, 16 Jan 2013 10:18:00 +0800
Parents:   9498cf6194496a1dd6b400e3e9a85ff005dc3dcd 
f63a9f6c11c05aa76158b6cae0e05340d303a6af
Branches:  PHP-5.4 PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=142c40f32c075a8eb706f2e630b934f39e711b70

Log:
Merge branch 'PHP-5.3' into PHP-5.4

* PHP-5.3:
  Update the arguments in the prototype of fpm_socket_unix_test_connect().

Changed paths:
  MM  NEWS


Diff:
diff --cc NEWS
index bcff155,928d829..8fc3d6c
--- a/NEWS
+++ b/NEWS
@@@ -1,58 -1,17 +1,61 @@@
  PHP
NEWS
  
|||
 -?? ??? 2013, PHP 5.3.23
 +?? ??? 2012, PHP 5.4.12
  
 -?? ??? 2013, PHP 5.3.22
 -
 -- Zend Engine:
 +- Core:
 +  . Fixed bug #63982 (isset() inconsistently produces a fatal error on
 +protected property). (Stas)
 +  . Fixed bug #63943 (Bad warning text from strpos() on empty needle).
 +(Laruence)
. Fixed bug #63899 (Use after scope error in zend_compile). (Laruence)
 +  . Fixed bug #63893 (Poor efficiency of strtr() using array with keys of very
 +different length). (Gustavo)
 +  . Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry)
 +  . Support BITMAPV5HEADER in getimagesize(). (AsamK, Lars)
 +
 +- Date:
 +  . Fixed bug #63699 (Performance improvements for various ext/date 
functions).
 +(Lars, original patch by njaguar at gmail dot com)
 +  . Fixed bug #55397: Comparsion of incomplete DateTime causes SIGSEGV. 
 +(Derick)
 +
++- FPM:
++  . Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11). (Adam)
++
 +- Litespeed:
 +  . Fixed bug #63228 (-Werror=format-security error in lsapi code). (George)
 +
 +- ext/sqlite3:
 +  . Fixed bug #63921 (sqlite3::bindvalue and relative PHP functions aren't
 +using sqlite3_*_int64 API). (srgoogleguy, Lars)
 +
 +- PDO_sqlite:
 +  . Fixed bug #63916 (PDO::PARAM_INT casts to 32bit int internally even
 +on 64bit builds in pdo_sqlite). (srgoogleguy, Lars)
 +  . Fixed bug #57702 (Multi-row BLOB fetches). (hswong3i, Laruence)
 +  . Fixed bug #52958 (Segfault in PDO_OCI on cleanup after running a long
 +testsuite). (hswong3i, Lars)
 +
 +?? ??? 2012, PHP 5.4.11
 +
 +- Core:
. Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user).
  (Johannes)
 +  . Fixed bug #43177 (Errors in eval()'ed code produce status code 500).
 +(Todd Ruth, Stas).
  
 -- Core
 -  . Fixed bug #63943 (Bad warning text from strpos() on empty needle).
 -(Laruence)
 +- Filter:
 +  . Fixed bug #63757 (getenv() produces memory leak with CGI SAPI). (Dmitry)
 +  . Fixed bug #54096 (FILTER_VALIDATE_INT does not accept +0 and -0).
 +(martin at divbyzero dot net, Lars)
 +
 +- JSON:
 +  . Fixed bug #63737 (json_decode does not properly decode with options
 +parameter). (Adam)
 +
 +- CLI server
 +  . Update list of common mime types. Added webm, ogv, ogg. (Lars,
 +pascalc at gmail dot com)
  
  - cURL extension:
. Fixed bug (segfault due to libcurl connection caching). (Pierrick)


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Update the arguments in the prototype of fpm_socket_unix_test_connect().: NEWS sapi/fpm/fpm/fpm_sockets.h

2013-01-15 Thread Adam Harvey
Commit:f63a9f6c11c05aa76158b6cae0e05340d303a6af
Author:Adam Harvey  Wed, 16 Jan 2013 10:06:56 +0800
Parents:   c077074c1379b5faed386106fdbb53f5d17fd6e7
Branches:  PHP-5.3 PHP-5.4 PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=f63a9f6c11c05aa76158b6cae0e05340d303a6af

Log:
Update the arguments in the prototype of fpm_socket_unix_test_connect().

Fixes bug #63999 (php with fpm fails to build on Solaris 10 or 11).

Bugs:
https://bugs.php.net/63999

Changed paths:
  M  NEWS
  M  sapi/fpm/fpm/fpm_sockets.h


Diff:
diff --git a/NEWS b/NEWS
index e78af23..928d829 100644
--- a/NEWS
+++ b/NEWS
@@ -26,6 +26,9 @@ PHP   
 NEWS
   . Fixed bug #55397 (comparsion of incomplete DateTime causes SIGSEGV).
 (Laruence, Derick)
 
+- FPM:
+  . Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11). (Adam)
+
 20 Dec 2012, PHP 5.3.20
 
 - Zend Engine:
diff --git a/sapi/fpm/fpm/fpm_sockets.h b/sapi/fpm/fpm/fpm_sockets.h
index 499ba6b..cce5712 100644
--- a/sapi/fpm/fpm/fpm_sockets.h
+++ b/sapi/fpm/fpm/fpm_sockets.h
@@ -25,7 +25,7 @@
 enum fpm_address_domain fpm_sockets_domain_from_address(char *addr);
 int fpm_sockets_init_main();
 int fpm_socket_get_listening_queue(int sock, unsigned *cur_lq, unsigned 
*max_lq);
-int fpm_socket_unix_test_connect(struct sockaddr_un *sun, size_t socklen);
+int fpm_socket_unix_test_connect(struct sockaddr_un *sock, size_t socklen);
 
 
 static inline int fd_set_blocked(int fd, int blocked) /* {{{ */


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: - Fixed ZTS build: ext/date/php_date.c

2013-01-15 Thread Felipe Pena
Commit:2f7aafe9929d843ae089a7072c5e6d9bd70c77ae
Author:Felipe Pena  Tue, 15 Jan 2013 19:59:23 
-0200
Parents:   18e160411e364ee02eff12e8ab516be9911be393
Branches:  PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=2f7aafe9929d843ae089a7072c5e6d9bd70c77ae

Log:
- Fixed ZTS build

Changed paths:
  M  ext/date/php_date.c


Diff:
diff --git a/ext/date/php_date.c b/ext/date/php_date.c
index cc83130..54dc2f5 100644
--- a/ext/date/php_date.c
+++ b/ext/date/php_date.c
@@ -2066,12 +2066,12 @@ static zend_object_value date_object_clone_date(zval 
*this_ptr TSRMLS_DC)
return new_ov;
 }
 
-static zval* date_clone_immutable(zval *object)
+static zval* date_clone_immutable(zval *object TSRMLS_DC)
 {
zval *new_object;
 
ALLOC_ZVAL(new_object);
-   Z_OBJVAL_P(new_object) = date_object_clone_date(object);
+   Z_OBJVAL_P(new_object) = date_object_clone_date(object TSRMLS_CC);
Z_SET_REFCOUNT_P(new_object, 1);
Z_SET_ISREF_P(new_object);
Z_TYPE_P(new_object) = IS_OBJECT;
@@ -2970,7 +2970,7 @@ PHP_METHOD(DateTimeImmutable, modify)
RETURN_FALSE;
}

-   new_object = date_clone_immutable(object);
+   new_object = date_clone_immutable(object TSRMLS_CC);
php_date_modify(new_object, modify, modify_len, return_value TSRMLS_CC);
 
RETURN_ZVAL(new_object, 0, 1);
@@ -3037,7 +3037,7 @@ PHP_METHOD(DateTimeImmutable, add)
RETURN_FALSE;
}
 
-   new_object = date_clone_immutable(object);
+   new_object = date_clone_immutable(object TSRMLS_CC);
php_date_add(new_object, interval, return_value TSRMLS_CC);
 
RETURN_ZVAL(new_object, 0, 1);
@@ -3107,7 +3107,7 @@ PHP_METHOD(DateTimeImmutable, sub)
RETURN_FALSE;
}
 
-   new_object = date_clone_immutable(object);
+   new_object = date_clone_immutable(object TSRMLS_CC);
php_date_sub(new_object, interval, return_value TSRMLS_CC);
 
RETURN_ZVAL(new_object, 0, 1);
@@ -3197,7 +3197,7 @@ PHP_METHOD(DateTimeImmutable, setTimezone)
RETURN_FALSE;
}
 
-   new_object = date_clone_immutable(object);
+   new_object = date_clone_immutable(object TSRMLS_CC);
php_date_timezone_set(new_object, timezone_object, return_value 
TSRMLS_CC);
 
RETURN_ZVAL(new_object, 0, 1);
@@ -3280,7 +3280,7 @@ PHP_METHOD(DateTimeImmutable, setTime)
RETURN_FALSE;
}
 
-   new_object = date_clone_immutable(object);
+   new_object = date_clone_immutable(object TSRMLS_CC);
php_date_time_set(new_object, h, i, s, return_value TSRMLS_CC);
 
RETURN_ZVAL(new_object, 0, 1);
@@ -3328,7 +3328,7 @@ PHP_METHOD(DateTimeImmutable, setDate)
RETURN_FALSE;
}
 
-   new_object = date_clone_immutable(object);
+   new_object = date_clone_immutable(object TSRMLS_CC);
php_date_date_set(new_object, y, m, d, return_value TSRMLS_CC);
 
RETURN_ZVAL(new_object, 0, 1);
@@ -3380,7 +3380,7 @@ PHP_METHOD(DateTimeImmutable, setISODate)
RETURN_FALSE;
}
 
-   new_object = date_clone_immutable(object);
+   new_object = date_clone_immutable(object TSRMLS_CC);
php_date_isodate_set(new_object, y, w, d, return_value TSRMLS_CC);
 
RETURN_ZVAL(new_object, 0, 1);
@@ -3426,7 +3426,7 @@ PHP_METHOD(DateTimeImmutable, setTimestamp)
RETURN_FALSE;
}
 
-   new_object = date_clone_immutable(object);
+   new_object = date_clone_immutable(object TSRMLS_CC);
php_date_timestamp_set(new_object, timestamp, return_value TSRMLS_CC);
 
RETURN_ZVAL(new_object, 0, 1);


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: - Fixed ZTS build: ext/date/php_date.c

2013-01-15 Thread Felipe Pena
Commit:7629c8db401b3695348d26c0785c9ab4b7e6ebb1
Author:Felipe Pena  Tue, 15 Jan 2013 19:45:09 
-0200
Parents:   85a949d9d4c5b216d6581f62df6b7d5b4787c130
Branches:  master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=7629c8db401b3695348d26c0785c9ab4b7e6ebb1

Log:
- Fixed ZTS build

Changed paths:
  M  ext/date/php_date.c


Diff:
diff --git a/ext/date/php_date.c b/ext/date/php_date.c
index cc83130..54dc2f5 100644
--- a/ext/date/php_date.c
+++ b/ext/date/php_date.c
@@ -2066,12 +2066,12 @@ static zend_object_value date_object_clone_date(zval 
*this_ptr TSRMLS_DC)
return new_ov;
 }
 
-static zval* date_clone_immutable(zval *object)
+static zval* date_clone_immutable(zval *object TSRMLS_DC)
 {
zval *new_object;
 
ALLOC_ZVAL(new_object);
-   Z_OBJVAL_P(new_object) = date_object_clone_date(object);
+   Z_OBJVAL_P(new_object) = date_object_clone_date(object TSRMLS_CC);
Z_SET_REFCOUNT_P(new_object, 1);
Z_SET_ISREF_P(new_object);
Z_TYPE_P(new_object) = IS_OBJECT;
@@ -2970,7 +2970,7 @@ PHP_METHOD(DateTimeImmutable, modify)
RETURN_FALSE;
}

-   new_object = date_clone_immutable(object);
+   new_object = date_clone_immutable(object TSRMLS_CC);
php_date_modify(new_object, modify, modify_len, return_value TSRMLS_CC);
 
RETURN_ZVAL(new_object, 0, 1);
@@ -3037,7 +3037,7 @@ PHP_METHOD(DateTimeImmutable, add)
RETURN_FALSE;
}
 
-   new_object = date_clone_immutable(object);
+   new_object = date_clone_immutable(object TSRMLS_CC);
php_date_add(new_object, interval, return_value TSRMLS_CC);
 
RETURN_ZVAL(new_object, 0, 1);
@@ -3107,7 +3107,7 @@ PHP_METHOD(DateTimeImmutable, sub)
RETURN_FALSE;
}
 
-   new_object = date_clone_immutable(object);
+   new_object = date_clone_immutable(object TSRMLS_CC);
php_date_sub(new_object, interval, return_value TSRMLS_CC);
 
RETURN_ZVAL(new_object, 0, 1);
@@ -3197,7 +3197,7 @@ PHP_METHOD(DateTimeImmutable, setTimezone)
RETURN_FALSE;
}
 
-   new_object = date_clone_immutable(object);
+   new_object = date_clone_immutable(object TSRMLS_CC);
php_date_timezone_set(new_object, timezone_object, return_value 
TSRMLS_CC);
 
RETURN_ZVAL(new_object, 0, 1);
@@ -3280,7 +3280,7 @@ PHP_METHOD(DateTimeImmutable, setTime)
RETURN_FALSE;
}
 
-   new_object = date_clone_immutable(object);
+   new_object = date_clone_immutable(object TSRMLS_CC);
php_date_time_set(new_object, h, i, s, return_value TSRMLS_CC);
 
RETURN_ZVAL(new_object, 0, 1);
@@ -3328,7 +3328,7 @@ PHP_METHOD(DateTimeImmutable, setDate)
RETURN_FALSE;
}
 
-   new_object = date_clone_immutable(object);
+   new_object = date_clone_immutable(object TSRMLS_CC);
php_date_date_set(new_object, y, m, d, return_value TSRMLS_CC);
 
RETURN_ZVAL(new_object, 0, 1);
@@ -3380,7 +3380,7 @@ PHP_METHOD(DateTimeImmutable, setISODate)
RETURN_FALSE;
}
 
-   new_object = date_clone_immutable(object);
+   new_object = date_clone_immutable(object TSRMLS_CC);
php_date_isodate_set(new_object, y, w, d, return_value TSRMLS_CC);
 
RETURN_ZVAL(new_object, 0, 1);
@@ -3426,7 +3426,7 @@ PHP_METHOD(DateTimeImmutable, setTimestamp)
RETURN_FALSE;
}
 
-   new_object = date_clone_immutable(object);
+   new_object = date_clone_immutable(object TSRMLS_CC);
php_date_timestamp_set(new_object, timestamp, return_value TSRMLS_CC);
 
RETURN_ZVAL(new_object, 0, 1);


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Merge branch 'PHP-5.4' into PHP-5.5: ext/standard/string.c

2013-01-15 Thread Anatoliy Belsky
Commit:18e160411e364ee02eff12e8ab516be9911be393
Author:Anatoliy Belsky  Tue, 15 Jan 2013 22:39:49 
+0100
Parents:   dba22c08640b02e68bfea68440246fec1fb7459d 
9498cf6194496a1dd6b400e3e9a85ff005dc3dcd
Branches:  PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=18e160411e364ee02eff12e8ab516be9911be393

Log:
Merge branch 'PHP-5.4' into PHP-5.5

* PHP-5.4:
  fixed build
  NEWS for bug #63893

Conflicts:
NEWS

Bugs:
https://bugs.php.net/63893

Changed paths:
  MM  ext/standard/string.c


Diff:



--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: fixed build: ext/standard/string.c

2013-01-15 Thread Anatoliy Belsky
Commit:9498cf6194496a1dd6b400e3e9a85ff005dc3dcd
Author:Anatoliy Belsky  Tue, 15 Jan 2013 22:36:29 
+0100
Parents:   4c38003dbdbb5b66c9d61db4cfd3248d15c93729
Branches:  PHP-5.4 PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=9498cf6194496a1dd6b400e3e9a85ff005dc3dcd

Log:
fixed build

Changed paths:
  M  ext/standard/string.c


Diff:
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 58b5483..42bf198 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -23,7 +23,11 @@
 /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
 
 #include 
-#include 
+#ifdef PHP_WIN32
+# include "win32/php_stdint.h"
+#else
+# include 
+#endif
 #include "php.h"
 #include "php_rand.h"
 #include "php_string.h"


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Dereferencing process-handles no longer waits on those processes.: NEWS ext/standard/file.c ext/standard/file.h ext/standard/proc_open.c

2013-01-15 Thread Lars Strojny
Commit:dba22c08640b02e68bfea68440246fec1fb7459d
Author:Jille Timmermans  Tue, 15 Jan 2013 11:25:55 
+0100
Committer: Lars Strojny   Tue, 15 Jan 2013 21:50:35 +0100
Parents:   1bd193ed36d413f0d919856f65feb35a0b1580f3
Branches:  PHP-5.5

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=dba22c08640b02e68bfea68440246fec1fb7459d

Log:
Dereferencing process-handles no longer waits on those processes.

Implements FR #46487

Bugs:
https://bugs.php.net/46487

Changed paths:
  M  NEWS
  M  ext/standard/file.c
  M  ext/standard/file.h
  M  ext/standard/proc_open.c


Diff:
diff --git a/NEWS b/NEWS
index 4145dc5..212029c 100644
--- a/NEWS
+++ b/NEWS
@@ -247,4 +247,7 @@ PHP 
   NEWS
   . Fixed bug #63248 (Load multiple magic files from a directory under 
Windows).
   (Anatoliy)
 
+- General improvements:
+  . Implemented FR #46487 (Dereferencing process-handles no longer waits on 
those processes). (Jille Timmermans)
+
 <<< NOTE: Insert NEWS from last stable release here prior to actual release! 
>>>
diff --git a/ext/standard/file.c b/ext/standard/file.c
index 74577ac..cf8b159 100644
--- a/ext/standard/file.c
+++ b/ext/standard/file.c
@@ -159,6 +159,7 @@ static ZEND_RSRC_DTOR_FUNC(file_context_dtor)
 static void file_globals_ctor(php_file_globals *file_globals_p TSRMLS_DC)
 {
FG(pclose_ret) = 0;
+   FG(pclose_wait) = 0;
FG(user_stream_current_filename) = NULL;
FG(def_chunk_size) = PHP_SOCK_CHUNK_SIZE;
FG(wrapper_errors) = NULL;
@@ -960,7 +961,9 @@ PHP_FUNCTION(pclose)
 
PHP_STREAM_TO_ZVAL(stream, &arg1);
 
+   FG(pclose_wait) = 1;
zend_list_delete(stream->rsrc_id);
+   FG(pclose_wait) = 0;
RETURN_LONG(FG(pclose_ret));
 }
 /* }}} */
diff --git a/ext/standard/file.h b/ext/standard/file.h
index 0a4512e..2bcdfd6 100644
--- a/ext/standard/file.h
+++ b/ext/standard/file.h
@@ -115,7 +115,7 @@ typedef struct _php_meta_tags_data {
 php_meta_tags_token php_next_meta_token(php_meta_tags_data * TSRMLS_DC);
 
 typedef struct {
-   int pclose_ret;
+   int pclose_ret;
size_t def_chunk_size;
long auto_detect_line_endings;
long default_socket_timeout;
@@ -126,6 +126,7 @@ typedef struct {
HashTable *stream_wrappers; /* per-request copy of 
url_stream_wrappers_hash */
HashTable *stream_filters;  /* per-request copy of 
stream_filters_hash */
HashTable *wrapper_errors;  /* key: wrapper 
address; value: linked list of char* */
+   int pclose_wait;
 } php_file_globals;
 
 #ifdef ZTS
diff --git a/ext/standard/proc_open.c b/ext/standard/proc_open.c
index 1edfe78..4e39a40 100644
--- a/ext/standard/proc_open.c
+++ b/ext/standard/proc_open.c
@@ -208,6 +208,7 @@ static void proc_open_rsrc_dtor(zend_rsrc_list_entry *rsrc 
TSRMLS_DC)
DWORD wstatus;
 #elif HAVE_SYS_WAIT_H
int wstatus;
+   int waitpid_options = 0;
pid_t wait_pid;
 #endif
 
@@ -220,18 +221,27 @@ static void proc_open_rsrc_dtor(zend_rsrc_list_entry 
*rsrc TSRMLS_DC)
}
 
 #ifdef PHP_WIN32
-   WaitForSingleObject(proc->childHandle, INFINITE);
+   if (FG(pclose_wait)) {
+   WaitForSingleObject(proc->childHandle, INFINITE);
+   }
GetExitCodeProcess(proc->childHandle, &wstatus);
-   FG(pclose_ret) = wstatus;
+   if (wstatus == STILL_ACTIVE) {
+   FG(pclose_ret) = -1;
+   } else {
+   FG(pclose_ret) = wstatus;
+   }
CloseHandle(proc->childHandle);
 
 #elif HAVE_SYS_WAIT_H
 
+   if (!FG(pclose_wait)) {
+   waitpid_options = WNOHANG;
+   }
do {
-   wait_pid = waitpid(proc->child, &wstatus, 0);
+   wait_pid = waitpid(proc->child, &wstatus, waitpid_options);
} while (wait_pid == -1 && errno == EINTR);
 
-   if (wait_pid == -1) {
+   if (wait_pid <= 0) {
FG(pclose_ret) = -1;
} else {
if (WIFEXITED(wstatus))
@@ -300,7 +310,9 @@ PHP_FUNCTION(proc_close)
 
ZEND_FETCH_RESOURCE(proc, struct php_process_handle *, &zproc, -1, 
"process", le_proc_open);
 
+   FG(pclose_wait) = 1;
zend_list_delete(Z_LVAL_P(zproc));
+   FG(pclose_wait) = 0;
RETURN_LONG(FG(pclose_ret));
 }
 /* }}} */


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: NEWS for bug #63893: NEWS

2013-01-15 Thread Gustavo André dos Santos Lopes
Commit:200242595dabfdaf6093da3e9ae6fef246ea8906
Author:Gustavo Lopes  Mon, 14 Jan 2013 
17:17:58 +0100
Parents:   d7bac4f5ba17c6fba00943a8bada49a4735a15a6
Branches:  PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=200242595dabfdaf6093da3e9ae6fef246ea8906

Log:
NEWS for bug #63893

Bugs:
https://bugs.php.net/63893

Changed paths:
  M  NEWS


Diff:
diff --git a/NEWS b/NEWS
index 28040f7..418bcc9 100644
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,8 @@ PHP 
   NEWS
 protected property). (Stas)
   . Fixed bug #63943 (Bad warning text from strpos() on empty needle).
 (Laruence)
+  . Fixed bug #63893 (poor efficiency of strtr() using array with keys of very
+different length). (Gustavo)
   . Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry)
 
 - Litespeed:


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Merge branch 'PHP-5.4' into PHP-5.5: ext/standard/string.c

2013-01-15 Thread Gustavo André dos Santos Lopes
Commit:1ce5a225899c19b79c64451e830cd3940ee2bff3
Author:Gustavo Lopes  Mon, 14 Jan 2013 
17:19:23 +0100
Parents:   be07f815f240803fe7a48a5fb3d68a169bef4707 
200242595dabfdaf6093da3e9ae6fef246ea8906
Branches:  PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=1ce5a225899c19b79c64451e830cd3940ee2bff3

Log:
Merge branch 'PHP-5.4' into PHP-5.5

Conflicts:
NEWS

Changed paths:
  MM  ext/standard/string.c


Diff:



--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: UPGRADING.INTERNALS: document zend_qsort_r: UPGRADING.INTERNALS

2013-01-15 Thread Gustavo André dos Santos Lopes
Commit:70b25e9c61c849e590cc97137e893678cb5f98c3
Author:Gustavo Lopes  Mon, 14 Jan 2013 
17:27:20 +0100
Parents:   22390d33935d72d897a1c97158ce2848f8551cc1
Branches:  PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=70b25e9c61c849e590cc97137e893678cb5f98c3

Log:
UPGRADING.INTERNALS: document zend_qsort_r

Changed paths:
  M  UPGRADING.INTERNALS


Diff:
diff --git a/UPGRADING.INTERNALS b/UPGRADING.INTERNALS
index 90c7a43..44cdfae 100644
--- a/UPGRADING.INTERNALS
+++ b/UPGRADING.INTERNALS
@@ -5,6 +5,7 @@ UPGRADE NOTES - PHP X.Y
 1. Internal API changes
   a. Streams pooling API
   b. Lowercasing and locales
+  c. zend_qsort_r
 
 2. Build system changes
   a. Unix build system changes
@@ -53,6 +54,16 @@ such as strcasecmp, will be using locale rules.
 Two new functions - zend_binary_strncasecmp_l and zend_binary_strcasecmp_l - 
added as 
 locale-based counterparts to zend_binary_strcasecmp and 
zend_binary_strncasecmp.
 
+   c. zend_qsort_r
+
+Added the function zend_qsort_r():
+
+typedef int  (*compare_r_func_t)(const void *, const void * TSRMLS_DC, void *);
+void zend_qsort_r(void *base, size_t nmemb, size_t siz, compare_r_func_t 
compare, void *arg TSRMLS_DC);
+
+The extra argument it has (relatively to zend_qsort()) is passed to the
+comparison function.
+
 
 2. Build system changes
 


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Optimize strtr w/ 2nd arg array: ext/standard/string.c

2013-01-15 Thread Gustavo André dos Santos Lopes
Commit:ccf15cf2dc92d11f92ee30c97e2d86b07f81e030
Author:Gustavo Lopes  Mon, 7 Jan 2013 
03:13:11 +0100
Committer: Gustavo Lopes   Mon, 14 Jan 2013 12:22:41 
+0100
Parents:   1a96fe0b3260b4b63627cf69d71a5b350ad3163f
Branches:  PHP-5.4 PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=ccf15cf2dc92d11f92ee30c97e2d86b07f81e030

Log:
Optimize strtr w/ 2nd arg array

Fixes bug #63893: poor efficiency of strtr() using array with keys of
very different length.

The implementation is basically all new, which carries some risk with
it.

The algorithm is described in "A Fast Algorithm For Multi-Pattern
Searching" (1994) by Sun Wu and Udi Manber.

Bugs:
https://bugs.php.net/63893

Changed paths:
  M  ext/standard/string.c

diff --git a/ext/standard/string.c b/ext/standard/string.c
index 29115fe..dc92e8e 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -22,7 +22,9 @@
 
 /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
 
+#define _GNU_SOURCE 1
 #include 
+#include 
 #include "php.h"
 #include "php_rand.h"
 #include "php_string.h"
@@ -57,6 +59,7 @@
 #include "php_globals.h"
 #include "basic_functions.h"
 #include "php_smart_str.h"
+#include 
 #ifdef ZTS
 #include "TSRM.h"
 #endif
@@ -2772,112 +2775,288 @@ PHPAPI char *php_strtr(char *str, int len, char 
*str_from, char *str_to, int trl
 }
 /* }}} */
 
-/* {{{ php_strtr_array
- */
-static void php_strtr_array(zval *return_value, char *str, int slen, HashTable 
*hash)
+/* {{{ Definitions for php_strtr_array */
+typedef size_t STRLEN; /* STRLEN should be unsigned */
+typedef uint16_t HASH;
+typedef struct {
+   HASHtable_mask;
+   STRLEN  entries[1];
+} SHIFT_TAB;
+typedef struct {
+   HASHtable_mask;
+   int entries[1];
+} HASH_TAB;
+typedef struct {
+   const char  *s;
+   STRLEN  l;
+} STR;
+typedef struct _match_node MATCH_NODE;
+struct _match_node {
+   STRLEN  pos;
+   MATCH_NODE  *next;
+};
+typedef struct _pat_and_repl {
+   STR pat;
+   STR repl;
+} PATNREPL;
+
+#define S(a) ((a)->s)
+#define L(a) ((a)->l)
+
+#define SHIFT_TAB_BITS 13
+#define HASH_TAB_BITS  10 /* should be less than sizeof(HASH) * 8 */
+#define SHIFT_TAB_SIZE (1U << SHIFT_TAB_BITS)
+#define HASH_TAB_SIZE  (1U << HASH_TAB_BITS)
+
+typedef struct {
+   int B;  /* size of 
suffixes */
+   int Bp; /* size of 
prefixes */
+   STRLEN  m;  /* minimum pattern 
length */
+   int patnum; /* number of patterns */
+   SHIFT_TAB   *shift; /* table mapping hash to 
allowed shift */
+   HASH_TAB*hash;  /* table mapping hash to int 
(pair of pointers) */
+   HASH*prefix;/* array of hashes of prefixes 
by pattern suffix hash order */
+   PATNREPL*patterns;  /* array of prefixes by pattern 
suffix hash order */
+} PPRES;
+/* }}} */
+
+/* {{{ php_strtr_hash */
+static inline HASH php_strtr_hash(const char *str, int len)
 {
-   zval **entry;
-   char  *string_key;
-   uint   string_key_len;
-   zval **trans;
-   zval   ctmp;
-   ulong num_key;
-   int minlen = 128*1024;
-   int maxlen = 0, pos, len, found;
-   char *key;
-   HashPosition hpos;
-   smart_str result = {0};
-   HashTable tmp_hash;
-
-   zend_hash_init(&tmp_hash, zend_hash_num_elements(hash), NULL, NULL, 0);
-   zend_hash_internal_pointer_reset_ex(hash, &hpos);
-   while (zend_hash_get_current_data_ex(hash, (void **)&entry, &hpos) == 
SUCCESS) {
-   switch (zend_hash_get_current_key_ex(hash, &string_key, 
&string_key_len, &num_key, 0, &hpos)) {
-   case HASH_KEY_IS_STRING:
-   len = string_key_len-1;
-   if (len < 1) {
-   zend_hash_destroy(&tmp_hash);
-   RETURN_FALSE;
-   }
-   zend_hash_add(&tmp_hash, string_key, 
string_key_len, entry, sizeof(zval*), NULL);
-   if (len > maxlen) {
-   maxlen = len;
-   }
-   if (len < minlen) {
-   minlen = len;
-   }
-   break;
+   HASHres = 0;
+   int i;
+   for (i = 0; i < len; i++) {
+   res = (res << 5) + res + (unsigned char)str[i];
+   }
 
-   case HASH_KEY_IS_LONG:
-   Z_TYPE(ctmp) = IS_LONG;
-

[PHP-CVS] com php-src: Refactoring, bugs & leaks: ext/standard/string.c

2013-01-15 Thread Gustavo André dos Santos Lopes
Commit:2111ee3df54e890c9e2f14b09c01d68445389540
Author:Gustavo Lopes  Wed, 9 Jan 2013 
00:33:14 +0100
Committer: Gustavo Lopes   Mon, 14 Jan 2013 12:22:41 
+0100
Parents:   ccf15cf2dc92d11f92ee30c97e2d86b07f81e030
Branches:  PHP-5.4 PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=2111ee3df54e890c9e2f14b09c01d68445389540

Log:
Refactoring, bugs & leaks

Changed paths:
  M  ext/standard/string.c


Diff:
diff --git a/ext/standard/string.c b/ext/standard/string.c
index dc92e8e..827f9de 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -2863,7 +2863,91 @@ static int php_strtr_compare_hash_suffix(const void *a, 
const void *b, void *ctx
hash_b = 
php_strtr_hash(&S(&pnr_b->pat)[res->m - res->B], res->B)
& 
res->hash->table_mask;
/* TODO: don't recalculate the hashes all the time */
-   return hash_a - hash_b;
+   if (hash_a > hash_b) {
+   return 1;
+   } else if (hash_a < hash_b) {
+   return -1;
+   } else {
+   /* longer patterns must be sorted first */
+   if (L(&pnr_a->pat) > L(&pnr_b->pat)) {
+   return -1;
+   } else if (L(&pnr_a->pat) < L(&pnr_b->pat)) {
+   return 1;
+   } else {
+   return 0;
+   }
+   }
+}
+/* }}} */
+/* {{{ php_strtr_free_strp */
+static void php_strtr_free_strp(void *strp)
+{
+   STR_FREE(*(char**)strp);
+}
+/* }}} */
+/* {{{ php_strtr_array_prepare_repls */
+static PATNREPL *php_strtr_array_prepare_repls(int slen, HashTable *pats, 
zend_llist **allocs, int *outsize)
+{
+   PATNREPL*patterns;
+   HashPositionhpos;
+   zval**entry;
+   int num_pats = zend_hash_num_elements(pats),
+   i;
+
+   patterns = safe_emalloc(num_pats, sizeof(*patterns), 0);
+   *allocs = emalloc(sizeof **allocs);
+   zend_llist_init(*allocs, sizeof(void*), &php_strtr_free_strp, 0);
+
+   for (i = 0, zend_hash_internal_pointer_reset_ex(pats, &hpos);
+   zend_hash_get_current_data_ex(pats, (void **)&entry, 
&hpos) == SUCCESS;
+   zend_hash_move_forward_ex(pats, &hpos)) {
+   char*string_key;
+   uintstring_key_len;
+   ulong   num_key;
+   zval*tzv = NULL;
+
+   switch (zend_hash_get_current_key_ex(pats, &string_key, 
&string_key_len, &num_key, 0, &hpos)) {
+   case HASH_KEY_IS_LONG:
+   string_key_len = 1 + zend_spprintf(&string_key, 0, 
"%ld", (long)num_key);
+   zend_llist_add_element(*allocs, &string_key);
+   /* break missing intentionally */
+
+   case HASH_KEY_IS_STRING:
+   string_key_len--; /* exclude final '\0' */
+   if (string_key_len == 0) { /* empty string given as 
pattern */
+   efree(patterns);
+   zend_llist_destroy(*allocs);
+   efree(*allocs);
+   *allocs = NULL;
+   return NULL;
+   }
+   if (string_key_len > slen) { /* this pattern can never 
match */
+   continue;
+   }
+
+   if (Z_TYPE_PP(entry) != IS_STRING) {
+   tzv = *entry;
+   zval_addref_p(tzv);
+   SEPARATE_ZVAL(&tzv);
+   convert_to_string(tzv);
+   entry = &tzv;
+   zend_llist_add_element(*allocs, 
&Z_STRVAL_PP(entry));
+   }
+
+   S(&patterns[i].pat) = string_key;
+   L(&patterns[i].pat) = string_key_len;
+   S(&patterns[i].repl) = Z_STRVAL_PP(entry);
+   L(&patterns[i].repl) = Z_STRLEN_PP(entry);
+   i++;
+
+   if (tzv) {
+   efree(tzv);
+   }
+   }
+   }
+
+   *outsize = i;
+   return patterns;
 }
 /* }}} */
 
@@ -2952,7 +3036,7 @@ static void php_strtr_array_do_repl(STR *text, PPRES *d, 
zval *return_value)
STRLEN  shift   = d->shift->entries[h];
 
if (shift > 0) {
-   smart_str_appendl(&result, &S(text)[pos], shift);
+   smart_str_appendl(&result, &S(text)[pos], MIN(shift, 
L(text) - pos));
pos += shift;
} else {
HASHh2  = h & 
d->hash->ta

[PHP-CVS] com php-src: strtr() with 2nd param array - optimization: ext/standard/string.c

2013-01-15 Thread Gustavo André dos Santos Lopes
Commit:cddbb98ada6bdba1596ea82386401edf9b680d47
Author:Gustavo Lopes  Wed, 9 Jan 2013 
22:29:28 +0100
Committer: Gustavo Lopes   Mon, 14 Jan 2013 12:22:42 
+0100
Parents:   2111ee3df54e890c9e2f14b09c01d68445389540
Branches:  PHP-5.4 PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=cddbb98ada6bdba1596ea82386401edf9b680d47

Log:
strtr() with 2nd param array - optimization

About a 1.25x speedup in my test script by writing the result string
only when a match is found and at the end instead of on each iteration.

Changed paths:
  M  ext/standard/string.c


Diff:
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 827f9de..4947a67 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -3028,6 +3028,7 @@ static void php_strtr_array_destroy_ppres(PPRES *d)
 static void php_strtr_array_do_repl(STR *text, PPRES *d, zval *return_value)
 {
STRLEN  pos = 0,
+   nextwpos = 0,
lastpos = L(text) - d->m;
smart_str   result = {0};
 
@@ -3036,7 +3037,6 @@ static void php_strtr_array_do_repl(STR *text, PPRES *d, 
zval *return_value)
STRLEN  shift   = d->shift->entries[h];
 
if (shift > 0) {
-   smart_str_appendl(&result, &S(text)[pos], MIN(shift, 
L(text) - pos));
pos += shift;
} else {
HASHh2  = h & 
d->hash->table_mask,
@@ -3056,20 +3056,19 @@ static void php_strtr_array_do_repl(STR *text, PPRES 
*d, zval *return_value)
memcmp(S(&pnr->pat), 
&S(text)[pos], L(&pnr->pat)) != 0)
continue;

-   smart_str_appendl(&result, S(&pnr->repl), 
(int)L(&pnr->repl));
+   smart_str_appendl(&result, &S(text)[nextwpos], 
pos - nextwpos);
+   smart_str_appendl(&result, S(&pnr->repl), 
L(&pnr->repl));
pos += L(&pnr->pat);
+   nextwpos = pos;
goto end_outer_loop;
}
 
-   smart_str_appendc(&result, S(text)[pos]);
pos++;
 end_outer_loop: ;
}
}
 
-   if (pos < L(text)) {
-   smart_str_appendl(&result, &S(text)[pos], (int)(L(text) - pos));
-   }
+   smart_str_appendl(&result, &S(text)[nextwpos], L(text) - nextwpos);
 
if (result.c != NULL) {
smart_str_0(&result);


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: The compiler can figure this out: ext/standard/string.c

2013-01-15 Thread Gustavo André dos Santos Lopes
Commit:e5029ac40bd84fd3545538afa013051e161d86a4
Author:Gustavo Lopes  Wed, 9 Jan 2013 
23:20:32 +0100
Committer: Gustavo Lopes   Mon, 14 Jan 2013 12:22:42 
+0100
Parents:   93d1171c47d10158e6e9855236277deb09cf7e6b
Branches:  PHP-5.4 PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=e5029ac40bd84fd3545538afa013051e161d86a4

Log:
The compiler can figure this out

Changed paths:
  M  ext/standard/string.c


Diff:
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 14259ca..c7ed884 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -2821,7 +2821,7 @@ static inline HASH php_strtr_hash(const char *str, int 
len)
HASHres = 0;
int i;
for (i = 0; i < len; i++) {
-   res = (res << 5) + res + (unsigned char)str[i];
+   res = res * 33 + (unsigned char)str[i];
}
 
return res;


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Remove unused block: ext/standard/string.c

2013-01-15 Thread Gustavo André dos Santos Lopes
Commit:93d1171c47d10158e6e9855236277deb09cf7e6b
Author:Gustavo Lopes  Wed, 9 Jan 2013 
23:20:11 +0100
Committer: Gustavo Lopes   Mon, 14 Jan 2013 12:22:42 
+0100
Parents:   cddbb98ada6bdba1596ea82386401edf9b680d47
Branches:  PHP-5.4 PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=93d1171c47d10158e6e9855236277deb09cf7e6b

Log:
Remove unused block

Changed paths:
  M  ext/standard/string.c


Diff:
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 4947a67..14259ca 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -2790,11 +2790,6 @@ typedef struct {
const char  *s;
STRLEN  l;
 } STR;
-typedef struct _match_node MATCH_NODE;
-struct _match_node {
-   STRLEN  pos;
-   MATCH_NODE  *next;
-};
 typedef struct _pat_and_repl {
STR pat;
STR repl;


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Fixed inconsequential bug in strtr(): ext/standard/string.c

2013-01-15 Thread Gustavo André dos Santos Lopes
Commit:930ef9ddd663dcda5726b5d33c54c49a2f4f97d6
Author:Gustavo Lopes  Tue, 15 Jan 2013 
17:25:59 +0100
Parents:   d7bac4f5ba17c6fba00943a8bada49a4735a15a6
Branches:  PHP-5.4 PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=930ef9ddd663dcda5726b5d33c54c49a2f4f97d6

Log:
Fixed inconsequential bug in strtr()

Changed paths:
  M  ext/standard/string.c


Diff:
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 953dfd1..58b5483 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -3021,7 +3021,7 @@ static PPRES *php_strtr_array_prepare(STR *text, PATNREPL 
*patterns, int patnum,
res->shift->table_mask = SHIFT_TAB_SIZE - 1;
php_strtr_populate_shift(patterns, patnum, B, res->m, res->shift);
 
-   res->hash = safe_emalloc(HASH_TAB_SIZE, sizeof(*res->hash->entries), 
sizeof(*res->shift));
+   res->hash = safe_emalloc(HASH_TAB_SIZE, sizeof(*res->hash->entries), 
sizeof(*res->hash));
res->hash->table_mask = HASH_TAB_SIZE - 1;
 
res->patterns = safe_emalloc(patnum, sizeof(*res->patterns), 0);
@@ -3051,7 +3051,7 @@ static PPRES *php_strtr_array_prepare(STR *text, PATNREPL 
*patterns, int patnum,
}
}
}
-   res->hash->entries[HASH_TAB_SIZE] = patnum;
+   res->hash->entries[HASH_TAB_SIZE] = patnum; /* OK, we effectively 
allocated SIZE+1 */
for (i = HASH_TAB_SIZE - 1; i >= 0; i--) {
if (res->hash->entries[i] == -1) {
res->hash->entries[i] = res->hash->entries[i + 1];


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: NEWS for bug #63893: NEWS

2013-01-15 Thread Gustavo André dos Santos Lopes
Commit:4c38003dbdbb5b66c9d61db4cfd3248d15c93729
Author:Gustavo Lopes  Mon, 14 Jan 2013 
17:17:58 +0100
Committer: Gustavo Lopes   Tue, 15 Jan 2013 
21:07:21 +0100
Parents:   93e35137aaba98c0a000ed442320e3173bb0a3f2
Branches:  PHP-5.4

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=4c38003dbdbb5b66c9d61db4cfd3248d15c93729

Log:
NEWS for bug #63893

Bugs:
https://bugs.php.net/63893

Changed paths:
  M  NEWS


Diff:
diff --git a/NEWS b/NEWS
index 8201ce1..bcff155 100644
--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,8 @@ PHP 
   NEWS
   . Fixed bug #63943 (Bad warning text from strpos() on empty needle).
 (Laruence)
   . Fixed bug #63899 (Use after scope error in zend_compile). (Laruence)
+  . Fixed bug #63893 (Poor efficiency of strtr() using array with keys of very
+different length). (Gustavo)
   . Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry)
   . Support BITMAPV5HEADER in getimagesize(). (AsamK, Lars)


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: revert change. now it doesn't compile again...someone should fix ext/date...: ext/date/php_date.c

2013-01-15 Thread Andrey Hristov
Commit:5cfa916aad14df889e9119161e359b57a4d9886e
Author:Andrey Hristov  Tue, 15 Jan 2013 12:20:58 
+0100
Parents:   acc24d1f9eb1f5dddc89123baca14e70be84be20
Branches:  PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=5cfa916aad14df889e9119161e359b57a4d9886e

Log:
revert change. now it doesn't compile again...someone should fix ext/date...

Changed paths:
  M  ext/date/php_date.c


Diff:
diff --git a/ext/date/php_date.c b/ext/date/php_date.c
index 1e1e239..cc83130 100644
--- a/ext/date/php_date.c
+++ b/ext/date/php_date.c
@@ -2071,7 +2071,7 @@ static zval* date_clone_immutable(zval *object)
zval *new_object;
 
ALLOC_ZVAL(new_object);
-// Z_OBJVAL_P(new_object) = date_object_clone_date(object);
+   Z_OBJVAL_P(new_object) = date_object_clone_date(object);
Z_SET_REFCOUNT_P(new_object, 1);
Z_SET_ISREF_P(new_object);
Z_TYPE_P(new_object) = IS_OBJECT;


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Use two dtors thus allow allocation based on the alloc model of the connection.: ext/date/php_date.c ext/mysqlnd/mysqlnd.c

2013-01-15 Thread Andrey Hristov
Commit:acc24d1f9eb1f5dddc89123baca14e70be84be20
Author:Andrey Hristov  Tue, 15 Jan 2013 12:19:52 
+0100
Parents:   d377a266b27e0d0b2ac088333564f8d1f05cceb8
Branches:  PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=acc24d1f9eb1f5dddc89123baca14e70be84be20

Log:
Use two dtors thus allow allocation based on the alloc model of the
connection.

Changed paths:
  M  ext/date/php_date.c
  M  ext/mysqlnd/mysqlnd.c


Diff:
diff --git a/ext/date/php_date.c b/ext/date/php_date.c
index cc83130..1e1e239 100644
--- a/ext/date/php_date.c
+++ b/ext/date/php_date.c
@@ -2071,7 +2071,7 @@ static zval* date_clone_immutable(zval *object)
zval *new_object;
 
ALLOC_ZVAL(new_object);
-   Z_OBJVAL_P(new_object) = date_object_clone_date(object);
+// Z_OBJVAL_P(new_object) = date_object_clone_date(object);
Z_SET_REFCOUNT_P(new_object, 1);
Z_SET_ISREF_P(new_object);
Z_TYPE_P(new_object) = IS_OBJECT;
diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c
index f5b1063..96c420d 100644
--- a/ext/mysqlnd/mysqlnd.c
+++ b/ext/mysqlnd/mysqlnd.c
@@ -2418,14 +2418,28 @@ end:
 /* }}} */
 
 
-/* {{{ connect_attr_item_dtor */
+/* {{{ connect_attr_item_edtor */
 static void
-connect_attr_item_dtor(void * pDest)
+connect_attr_item_edtor(void * pDest)
 {
 #ifdef ZTS
TSRMLS_FETCH();
 #endif
-   DBG_ENTER("connect_attr_item_dtor");
+   DBG_ENTER("connect_attr_item_edtor");
+   mnd_efree(*(char **) pDest);
+   DBG_VOID_RETURN;
+}
+/* }}} */
+
+
+/* {{{ connect_attr_item_pdtor */
+static void
+connect_attr_item_pdtor(void * pDest)
+{
+#ifdef ZTS
+   TSRMLS_FETCH();
+#endif
+   DBG_ENTER("connect_attr_item_pdtor");
mnd_pefree(*(char **) pDest, 1);
DBG_VOID_RETURN;
 }
@@ -2456,11 +2470,11 @@ MYSQLND_METHOD(mysqlnd_conn_data, 
set_client_option_2d)(MYSQLND_CONN_DATA * cons
if (!conn->options->connect_attr) {
goto oom;
}
-   zend_hash_init(conn->options->connect_attr, 0, 
NULL, connect_attr_item_dtor, conn->persistent);
+   zend_hash_init(conn->options->connect_attr, 0, 
NULL, conn->persistent? connect_attr_item_pdtor:connect_attr_item_edtor, 
conn->persistent);
}
DBG_INF_FMT("Adding [%s][%s]", key, value);
{
-   const char * copyv = mnd_pestrdup(value, 1);
+   const char * copyv = mnd_pestrdup(value, 
conn->persistent);
if (!copyv) {
goto oom;
}


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: plug a leak - forgot ot use the dtor already written: ext/mysqlnd/mysqlnd.c

2013-01-15 Thread Andrey Hristov
Commit:d377a266b27e0d0b2ac088333564f8d1f05cceb8
Author:Andrey Hristov  Tue, 15 Jan 2013 11:32:44 
+0100
Parents:   5718568830ebea6684f3093a5681eb0d44d6d417
Branches:  PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=d377a266b27e0d0b2ac088333564f8d1f05cceb8

Log:
plug a leak - forgot ot use the dtor already written

Changed paths:
  M  ext/mysqlnd/mysqlnd.c


Diff:
diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c
index 1023b3e..f5b1063 100644
--- a/ext/mysqlnd/mysqlnd.c
+++ b/ext/mysqlnd/mysqlnd.c
@@ -1103,6 +1103,7 @@ MYSQLND_METHOD(mysqlnd_conn, connect)(MYSQLND * 
conn_handle,
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_connect */
 PHPAPI MYSQLND * mysqlnd_connect(MYSQLND * conn_handle,
 const char * host, const char 
* user,
@@ -2455,7 +2456,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, 
set_client_option_2d)(MYSQLND_CONN_DATA * cons
if (!conn->options->connect_attr) {
goto oom;
}
-   zend_hash_init(conn->options->connect_attr, 0, 
NULL, NULL, conn->persistent);
+   zend_hash_init(conn->options->connect_attr, 0, 
NULL, connect_attr_item_dtor, conn->persistent);
}
DBG_INF_FMT("Adding [%s][%s]", key, value);
{


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Merge branch 'PHP-5.4' into PHP-5.5: ext/standard/file.c

2013-01-15 Thread Andrey Hristov
Commit:22ba2b95ce840fb0cc29acac9a1f6240a17c0c08
Author:Andrey Hristov  Tue, 15 Jan 2013 11:06:59 
+0100
Parents:   dc495bbe95680a9cf2321da83a382d834d70758c 
83864b470b030a7d1bd0a1b46d3be75ce301304c
Branches:  PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=22ba2b95ce840fb0cc29acac9a1f6240a17c0c08

Log:
Merge branch 'PHP-5.4' into PHP-5.5

Conflicts:
NEWS

Changed paths:
  MM  ext/standard/file.c


Diff:



--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Merge branch 'PHP-5.3' into PHP-5.4: NEWS ext/standard/file.c

2013-01-15 Thread Adam Harvey
Commit:b1bf524140f3825d161c6e8f922b696d91b93969
Author:Adam Harvey  Tue, 15 Jan 2013 17:35:34 +0800
Parents:   374ebc87416d9e31efd961a3176510e3a901355b 
c077074c1379b5faed386106fdbb53f5d17fd6e7
Branches:  PHP-5.4

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=b1bf524140f3825d161c6e8f922b696d91b93969

Log:
Merge branch 'PHP-5.3' into PHP-5.4

* PHP-5.3:
  Revert "Update fputcsv() to escape all characters equally."

Changed paths:
  MM  NEWS
  MM  ext/standard/file.c


Diff:
diff --cc NEWS
index 5f45667,e78af23..8201ce1
--- a/NEWS
+++ b/NEWS
@@@ -1,58 -1,17 +1,56 @@@
  PHP
NEWS
  
|||
 -?? ??? 2013, PHP 5.3.23
 +?? ??? 2012, PHP 5.4.12
  
 -?? ??? 2013, PHP 5.3.22
 -
 -- Zend Engine:
 +- Core:
 +  . Fixed bug #63982 (isset() inconsistently produces a fatal error on
 +protected property). (Stas)
 +  . Fixed bug #63943 (Bad warning text from strpos() on empty needle).
 +(Laruence)
. Fixed bug #63899 (Use after scope error in zend_compile). (Laruence)
 +  . Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry)
-   . Fixed bug #43225 (fputcsv incorrectly handles cells ending in \ followed
- by "). (Adam)
 +  . Support BITMAPV5HEADER in getimagesize(). (AsamK, Lars)
 +
 +- Date:
 +  . Fixed bug #63699 (Performance improvements for various ext/date 
functions).
 +(Lars, original patch by njaguar at gmail dot com)
 +  . Fixed bug #55397: Comparsion of incomplete DateTime causes SIGSEGV. 
 +(Derick)
 +
 +- Litespeed:
 +  . Fixed bug #63228 (-Werror=format-security error in lsapi code). (George)
 +
 +- ext/sqlite3:
 +  . Fixed bug #63921 (sqlite3::bindvalue and relative PHP functions aren't
 +using sqlite3_*_int64 API). (srgoogleguy, Lars)
 +
 +- PDO_sqlite:
 +  . Fixed bug #63916 (PDO::PARAM_INT casts to 32bit int internally even
 +on 64bit builds in pdo_sqlite). (srgoogleguy, Lars)
 +  . Fixed bug #57702 (Multi-row BLOB fetches). (hswong3i, Laruence)
 +  . Fixed bug #52958 (Segfault in PDO_OCI on cleanup after running a long
 +testsuite). (hswong3i, Lars)
 +
 +?? ??? 2012, PHP 5.4.11
 +
 +- Core:
. Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user).
  (Johannes)
 +  . Fixed bug #43177 (Errors in eval()'ed code produce status code 500).
 +(Todd Ruth, Stas).
  
 -- Core
 -  . Fixed bug #63943 (Bad warning text from strpos() on empty needle).
 -(Laruence)
 +- Filter:
 +  . Fixed bug #63757 (getenv() produces memory leak with CGI SAPI). (Dmitry)
 +  . Fixed bug #54096 (FILTER_VALIDATE_INT does not accept +0 and -0).
 +(martin at divbyzero dot net, Lars)
 +
 +- JSON:
 +  . Fixed bug #63737 (json_decode does not properly decode with options
 +parameter). (Adam)
 +
 +- CLI server
 +  . Update list of common mime types. Added webm, ogv, ogg. (Lars,
 +pascalc at gmail dot com)
  
  - cURL extension:
. Fixed bug (segfault due to libcurl connection caching). (Pierrick)


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Revert "Update fputcsv() to escape all characters equally.": NEWS ext/standard/file.c ext/standard/tests/file/fputcsv.phpt ext/standard/tests/file/fputcsv_bug43225.phpt

2013-01-15 Thread Adam Harvey
Commit:c077074c1379b5faed386106fdbb53f5d17fd6e7
Author:Adam Harvey  Tue, 15 Jan 2013 17:33:54 +0800
Parents:   9b5cb0e8059b1e8bec096067491ed8d75f878938
Branches:  PHP-5.3 PHP-5.4

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=c077074c1379b5faed386106fdbb53f5d17fd6e7

Log:
Revert "Update fputcsv() to escape all characters equally."

On second thoughts, while the behaviour _is_ broken, this isn't the right fix.

This reverts commit 9b5cb0e8059b1e8bec096067491ed8d75f878938.

Changed paths:
  M  NEWS
  M  ext/standard/file.c
  M  ext/standard/tests/file/fputcsv.phpt
  D  ext/standard/tests/file/fputcsv_bug43225.phpt


Diff:
diff --git a/NEWS b/NEWS
index a7c2fa4..e78af23 100644
--- a/NEWS
+++ b/NEWS
@@ -12,8 +12,6 @@ PHP   
 NEWS
 - Core
   . Fixed bug #63943 (Bad warning text from strpos() on empty needle).
 (Laruence)
-  . Fixed bug #43225 (fputcsv incorrectly handles cells ending in \ followed
-by "). (Adam)
 
 - cURL extension:
   . Fixed bug (segfault due to libcurl connection caching). (Pierrick)
diff --git a/ext/standard/file.c b/ext/standard/file.c
index fa85bf1..8b18155 100644
--- a/ext/standard/file.c
+++ b/ext/standard/file.c
@@ -1953,6 +1953,7 @@ PHP_FUNCTION(fputcsv)
 {
char delimiter = ',';   /* allow this to be set as parameter */
char enclosure = '"';   /* allow this to be set as parameter */
+   const char escape_char = '\\';
php_stream *stream;
int ret;
zval *fp = NULL, *fields = NULL, **field_tmp = NULL, field;
@@ -2007,19 +2008,24 @@ PHP_FUNCTION(fputcsv)
/* enclose a field that contains a delimiter, an enclosure 
character, or a newline */
if (FPUTCSV_FLD_CHK(delimiter) ||
FPUTCSV_FLD_CHK(enclosure) ||
+   FPUTCSV_FLD_CHK(escape_char) ||
FPUTCSV_FLD_CHK('\n') ||
FPUTCSV_FLD_CHK('\r') ||
FPUTCSV_FLD_CHK('\t') ||
-   FPUTCSV_FLD_CHK('\\') ||
FPUTCSV_FLD_CHK(' ')
) {
char *ch = Z_STRVAL(field);
char *end = ch + Z_STRLEN(field);
+   int escaped = 0;
 
smart_str_appendc(&csvline, enclosure);
while (ch < end) {
-   if (*ch == enclosure) {
+   if (*ch == escape_char) {
+   escaped = 1;
+   } else if (!escaped && *ch == enclosure) {
smart_str_appendc(&csvline, enclosure);
+   } else {
+   escaped = 0;
}
smart_str_appendc(&csvline, *ch);
ch++;
diff --git a/ext/standard/tests/file/fputcsv.phpt 
b/ext/standard/tests/file/fputcsv.phpt
index d71f777..63c4150 100644
--- a/ext/standard/tests/file/fputcsv.phpt
+++ b/ext/standard/tests/file/fputcsv.phpt
@@ -44,7 +44,7 @@ echo '$list = ';var_export($res);echo ";\n";
 
 $fp = fopen($file, "r");
 $res = array();
-while($l=fgetcsv($fp, 0, ',', '"', '"'))
+while($l=fgetcsv($fp))
 {
$res[] = join(',',$l);
 }
@@ -75,10 +75,10 @@ $list = array (
   13 => 'aaa,"""bbb   """',
   14 => '"aaa""aaa""","""bbb""bbb"',
   15 => '"aaa""aaa""",bbb',
-  16 => 'aaa,"""\\""bbb",ccc',
-  17 => '"aaa""\\""a""","""bbb"""',
-  18 => '"""\\","""aaa"""',
-  19 => '"""\\""",aaa',
+  16 => 'aaa,"""\\"bbb",ccc',
+  17 => '"aaa""\\"a""","""bbb"""',
+  18 => '"""\\,"""aaa"""',
+  19 => '"""\\"",aaa',
 );
 $list = array (
   0 => 'aaa,bbb',
diff --git a/ext/standard/tests/file/fputcsv_bug43225.phpt 
b/ext/standard/tests/file/fputcsv_bug43225.phpt
deleted file mode 100644
index 1de3b5f..000
--- a/ext/standard/tests/file/fputcsv_bug43225.phpt
+++ /dev/null
@@ -1,20 +0,0 @@
---TEST--
-fputcsv(): bug #43225 (fputcsv incorrectly handles cells ending in \ followed 
by ")
---FILE--
-
---EXPECT--
-"a\""",bbb


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Revert "Update fputcsv() to escape all characters equally.": ext/standard/file.c ext/standard/tests/file/fputcsv.phpt ext/standard/tests/file/fputcsv_bug43225.phpt

2013-01-15 Thread Adam Harvey
Commit:cab290d2adbd616a18b9efaace6abe629f827190
Author:Adam Harvey  Tue, 15 Jan 2013 17:33:54 +0800
Parents:   dc495bbe95680a9cf2321da83a382d834d70758c
Branches:  PHP-5.5

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=cab290d2adbd616a18b9efaace6abe629f827190

Log:
Revert "Update fputcsv() to escape all characters equally."

On second thoughts, while the behaviour _is_ broken, this isn't the right fix.

This reverts commit 9b5cb0e8059b1e8bec096067491ed8d75f878938.

Changed paths:
  M  ext/standard/file.c
  M  ext/standard/tests/file/fputcsv.phpt
  D  ext/standard/tests/file/fputcsv_bug43225.phpt


Diff:
diff --git a/ext/standard/file.c b/ext/standard/file.c
index 574fb53..74577ac 100644
--- a/ext/standard/file.c
+++ b/ext/standard/file.c
@@ -1871,16 +1871,20 @@ PHPAPI int php_fputcsv(php_stream *stream, zval 
*fields, char delimiter, char en
FPUTCSV_FLD_CHK('\n') ||
FPUTCSV_FLD_CHK('\r') ||
FPUTCSV_FLD_CHK('\t') ||
-   FPUTCSV_FLD_CHK('\\') ||
FPUTCSV_FLD_CHK(' ')
) {
char *ch = Z_STRVAL(field);
char *end = ch + Z_STRLEN(field);
+   int escaped = 0;
 
smart_str_appendc(&csvline, enclosure);
while (ch < end) {
-   if (*ch == enclosure) {
+   if (*ch == escape_char) {
+   escaped = 1;
+   } else if (!escaped && *ch == enclosure) {
smart_str_appendc(&csvline, enclosure);
+   } else {
+   escaped = 0;
}
smart_str_appendc(&csvline, *ch);
ch++;
diff --git a/ext/standard/tests/file/fputcsv.phpt 
b/ext/standard/tests/file/fputcsv.phpt
index d71f777..63c4150 100644
--- a/ext/standard/tests/file/fputcsv.phpt
+++ b/ext/standard/tests/file/fputcsv.phpt
@@ -44,7 +44,7 @@ echo '$list = ';var_export($res);echo ";\n";
 
 $fp = fopen($file, "r");
 $res = array();
-while($l=fgetcsv($fp, 0, ',', '"', '"'))
+while($l=fgetcsv($fp))
 {
$res[] = join(',',$l);
 }
@@ -75,10 +75,10 @@ $list = array (
   13 => 'aaa,"""bbb   """',
   14 => '"aaa""aaa""","""bbb""bbb"',
   15 => '"aaa""aaa""",bbb',
-  16 => 'aaa,"""\\""bbb",ccc',
-  17 => '"aaa""\\""a""","""bbb"""',
-  18 => '"""\\","""aaa"""',
-  19 => '"""\\""",aaa',
+  16 => 'aaa,"""\\"bbb",ccc',
+  17 => '"aaa""\\"a""","""bbb"""',
+  18 => '"""\\,"""aaa"""',
+  19 => '"""\\"",aaa',
 );
 $list = array (
   0 => 'aaa,bbb',
diff --git a/ext/standard/tests/file/fputcsv_bug43225.phpt 
b/ext/standard/tests/file/fputcsv_bug43225.phpt
deleted file mode 100644
index 1de3b5f..000
--- a/ext/standard/tests/file/fputcsv_bug43225.phpt
+++ /dev/null
@@ -1,20 +0,0 @@
---TEST--
-fputcsv(): bug #43225 (fputcsv incorrectly handles cells ending in \ followed 
by ")
---FILE--
-
---EXPECT--
-"a\""",bbb


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Revert "Update fputcsv() to escape all characters equally.": ext/standard/file.c ext/standard/tests/file/fputcsv.phpt ext/standard/tests/file/fputcsv_bug43225.phpt

2013-01-15 Thread Adam Harvey
Commit:232cf4a640f00932e8030b0d57541a8d5c286309
Author:Adam Harvey  Tue, 15 Jan 2013 17:33:54 +0800
Parents:   c77fe090ea8dcbf0ceab924c748182ea472ef32d
Branches:  master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=232cf4a640f00932e8030b0d57541a8d5c286309

Log:
Revert "Update fputcsv() to escape all characters equally."

On second thoughts, while the behaviour _is_ broken, this isn't the right fix.

This reverts commit 9b5cb0e8059b1e8bec096067491ed8d75f878938.

Changed paths:
  M  ext/standard/file.c
  M  ext/standard/tests/file/fputcsv.phpt
  D  ext/standard/tests/file/fputcsv_bug43225.phpt


Diff:
diff --git a/ext/standard/file.c b/ext/standard/file.c
index 574fb53..74577ac 100644
--- a/ext/standard/file.c
+++ b/ext/standard/file.c
@@ -1871,16 +1871,20 @@ PHPAPI int php_fputcsv(php_stream *stream, zval 
*fields, char delimiter, char en
FPUTCSV_FLD_CHK('\n') ||
FPUTCSV_FLD_CHK('\r') ||
FPUTCSV_FLD_CHK('\t') ||
-   FPUTCSV_FLD_CHK('\\') ||
FPUTCSV_FLD_CHK(' ')
) {
char *ch = Z_STRVAL(field);
char *end = ch + Z_STRLEN(field);
+   int escaped = 0;
 
smart_str_appendc(&csvline, enclosure);
while (ch < end) {
-   if (*ch == enclosure) {
+   if (*ch == escape_char) {
+   escaped = 1;
+   } else if (!escaped && *ch == enclosure) {
smart_str_appendc(&csvline, enclosure);
+   } else {
+   escaped = 0;
}
smart_str_appendc(&csvline, *ch);
ch++;
diff --git a/ext/standard/tests/file/fputcsv.phpt 
b/ext/standard/tests/file/fputcsv.phpt
index d71f777..63c4150 100644
--- a/ext/standard/tests/file/fputcsv.phpt
+++ b/ext/standard/tests/file/fputcsv.phpt
@@ -44,7 +44,7 @@ echo '$list = ';var_export($res);echo ";\n";
 
 $fp = fopen($file, "r");
 $res = array();
-while($l=fgetcsv($fp, 0, ',', '"', '"'))
+while($l=fgetcsv($fp))
 {
$res[] = join(',',$l);
 }
@@ -75,10 +75,10 @@ $list = array (
   13 => 'aaa,"""bbb   """',
   14 => '"aaa""aaa""","""bbb""bbb"',
   15 => '"aaa""aaa""",bbb',
-  16 => 'aaa,"""\\""bbb",ccc',
-  17 => '"aaa""\\""a""","""bbb"""',
-  18 => '"""\\","""aaa"""',
-  19 => '"""\\""",aaa',
+  16 => 'aaa,"""\\"bbb",ccc',
+  17 => '"aaa""\\"a""","""bbb"""',
+  18 => '"""\\,"""aaa"""',
+  19 => '"""\\"",aaa',
 );
 $list = array (
   0 => 'aaa,bbb',
diff --git a/ext/standard/tests/file/fputcsv_bug43225.phpt 
b/ext/standard/tests/file/fputcsv_bug43225.phpt
deleted file mode 100644
index 1de3b5f..000
--- a/ext/standard/tests/file/fputcsv_bug43225.phpt
+++ /dev/null
@@ -1,20 +0,0 @@
---TEST--
-fputcsv(): bug #43225 (fputcsv incorrectly handles cells ending in \ followed 
by ")
---FILE--
-
---EXPECT--
-"a\""",bbb


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Revert "Apply the fputcsv test fix to SplFileObject_fputcsv.phpt. Mea culpa.": ext/spl/tests/SplFileObject_fputcsv.phpt

2013-01-15 Thread Adam Harvey
Commit:40c1122dcc8d74b063d5b6f06d5ce52ff7b3dcc3
Author:Adam Harvey  Tue, 15 Jan 2013 17:37:21 +0800
Parents:   232cf4a640f00932e8030b0d57541a8d5c286309
Branches:  master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=40c1122dcc8d74b063d5b6f06d5ce52ff7b3dcc3

Log:
Revert "Apply the fputcsv test fix to SplFileObject_fputcsv.phpt. Mea culpa."

This reverts commit 0510701474e8d99b5b30139b5599e44f9b555a5a.

Changed paths:
  M  ext/spl/tests/SplFileObject_fputcsv.phpt


Diff:
diff --git a/ext/spl/tests/SplFileObject_fputcsv.phpt 
b/ext/spl/tests/SplFileObject_fputcsv.phpt
index 601edab..66fdbfd 100644
--- a/ext/spl/tests/SplFileObject_fputcsv.phpt
+++ b/ext/spl/tests/SplFileObject_fputcsv.phpt
@@ -42,7 +42,7 @@ echo '$list = ';var_export($res);echo ";\n";
 
 $fp = fopen($file, "r");
 $res = array();
-while($l=fgetcsv($fp, 0, ',', '"', '"'))
+while($l=fgetcsv($fp))
 {
$res[] = join(',',$l);
 }
@@ -76,10 +76,10 @@ $list = array (
   13 => 'aaa,"""bbb   """',
   14 => '"aaa""aaa""","""bbb""bbb"',
   15 => '"aaa""aaa""",bbb',
-  16 => 'aaa,"""\\""bbb",ccc',
-  17 => '"aaa""\\""a""","""bbb"""',
-  18 => '"""\\","""aaa"""',
-  19 => '"""\\""",aaa',
+  16 => 'aaa,"""\\"bbb",ccc',
+  17 => '"aaa""\\"a""","""bbb"""',
+  18 => '"""\\,"""aaa"""',
+  19 => '"""\\"",aaa',
 );
 $list = array (
   0 => 'aaa,bbb',


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Revert "Apply the fputcsv test fix to SplFileObject_fputcsv.phpt. Mea culpa.": ext/spl/tests/SplFileObject_fputcsv.phpt

2013-01-15 Thread Adam Harvey
Commit:ef86530a561ad3d6374b81909d6dd336159fb465
Author:Adam Harvey  Tue, 15 Jan 2013 17:37:21 +0800
Parents:   cab290d2adbd616a18b9efaace6abe629f827190
Branches:  PHP-5.5

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=ef86530a561ad3d6374b81909d6dd336159fb465

Log:
Revert "Apply the fputcsv test fix to SplFileObject_fputcsv.phpt. Mea culpa."

This reverts commit 0510701474e8d99b5b30139b5599e44f9b555a5a.

Changed paths:
  M  ext/spl/tests/SplFileObject_fputcsv.phpt


Diff:
diff --git a/ext/spl/tests/SplFileObject_fputcsv.phpt 
b/ext/spl/tests/SplFileObject_fputcsv.phpt
index 601edab..66fdbfd 100644
--- a/ext/spl/tests/SplFileObject_fputcsv.phpt
+++ b/ext/spl/tests/SplFileObject_fputcsv.phpt
@@ -42,7 +42,7 @@ echo '$list = ';var_export($res);echo ";\n";
 
 $fp = fopen($file, "r");
 $res = array();
-while($l=fgetcsv($fp, 0, ',', '"', '"'))
+while($l=fgetcsv($fp))
 {
$res[] = join(',',$l);
 }
@@ -76,10 +76,10 @@ $list = array (
   13 => 'aaa,"""bbb   """',
   14 => '"aaa""aaa""","""bbb""bbb"',
   15 => '"aaa""aaa""",bbb',
-  16 => 'aaa,"""\\""bbb",ccc',
-  17 => '"aaa""\\""a""","""bbb"""',
-  18 => '"""\\","""aaa"""',
-  19 => '"""\\""",aaa',
+  16 => 'aaa,"""\\"bbb",ccc',
+  17 => '"aaa""\\"a""","""bbb"""',
+  18 => '"""\\,"""aaa"""',
+  19 => '"""\\"",aaa',
 );
 $list = array (
   0 => 'aaa,bbb',


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Revert "Apply the fputcsv test fix to SplFileObject_fputcsv.phpt. Mea culpa.": ext/spl/tests/SplFileObject_fputcsv.phpt

2013-01-15 Thread Adam Harvey
Commit:83864b470b030a7d1bd0a1b46d3be75ce301304c
Author:Adam Harvey  Tue, 15 Jan 2013 17:37:21 +0800
Parents:   b1bf524140f3825d161c6e8f922b696d91b93969
Branches:  PHP-5.4

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=83864b470b030a7d1bd0a1b46d3be75ce301304c

Log:
Revert "Apply the fputcsv test fix to SplFileObject_fputcsv.phpt. Mea culpa."

This reverts commit 0510701474e8d99b5b30139b5599e44f9b555a5a.

Changed paths:
  M  ext/spl/tests/SplFileObject_fputcsv.phpt


Diff:
diff --git a/ext/spl/tests/SplFileObject_fputcsv.phpt 
b/ext/spl/tests/SplFileObject_fputcsv.phpt
index 601edab..66fdbfd 100644
--- a/ext/spl/tests/SplFileObject_fputcsv.phpt
+++ b/ext/spl/tests/SplFileObject_fputcsv.phpt
@@ -42,7 +42,7 @@ echo '$list = ';var_export($res);echo ";\n";
 
 $fp = fopen($file, "r");
 $res = array();
-while($l=fgetcsv($fp, 0, ',', '"', '"'))
+while($l=fgetcsv($fp))
 {
$res[] = join(',',$l);
 }
@@ -76,10 +76,10 @@ $list = array (
   13 => 'aaa,"""bbb   """',
   14 => '"aaa""aaa""","""bbb""bbb"',
   15 => '"aaa""aaa""",bbb',
-  16 => 'aaa,"""\\""bbb",ccc',
-  17 => '"aaa""\\""a""","""bbb"""',
-  18 => '"""\\","""aaa"""',
-  19 => '"""\\""",aaa',
+  16 => 'aaa,"""\\"bbb",ccc',
+  17 => '"aaa""\\"a""","""bbb"""',
+  18 => '"""\\,"""aaa"""',
+  19 => '"""\\"",aaa',
 );
 $list = array (
   0 => 'aaa,bbb',


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: Add support for connect attributes, as of MySQL 5.6: ext/mysqlnd/mysqlnd.c ext/mysqlnd/mysqlnd.h ext/mysqlnd/mysqlnd_auth.c ext/mysqlnd/mysqlnd_enum_n_def.h ext/mysqlnd/mysqlnd_

2013-01-15 Thread Andrey Hristov
Commit:1ff43522630f0f98c20e884890f77e6593a43f3b
Author:Andrey Hristov  Tue, 15 Jan 2013 10:04:59 
+0100
Parents:   be07f815f240803fe7a48a5fb3d68a169bef4707
Branches:  PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=1ff43522630f0f98c20e884890f77e6593a43f3b

Log:
Add support for connect attributes, as of MySQL 5.6

Changed paths:
  M  ext/mysqlnd/mysqlnd.c
  M  ext/mysqlnd/mysqlnd.h
  M  ext/mysqlnd/mysqlnd_auth.c
  M  ext/mysqlnd/mysqlnd_enum_n_def.h
  M  ext/mysqlnd/mysqlnd_libmysql_compat.h
  M  ext/mysqlnd/mysqlnd_structs.h
  M  ext/mysqlnd/mysqlnd_wireprotocol.c
  M  ext/mysqlnd/mysqlnd_wireprotocol.h

diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c
index ebc4a77..1023b3e 100644
--- a/ext/mysqlnd/mysqlnd.c
+++ b/ext/mysqlnd/mysqlnd.c
@@ -95,6 +95,11 @@ MYSQLND_METHOD(mysqlnd_conn_data, 
free_options)(MYSQLND_CONN_DATA * conn TSRMLS_
mnd_pefree(conn->options->cfg_section, pers);
conn->options->cfg_section = NULL;
}
+   if (conn->options->connect_attr) {
+   zend_hash_destroy(conn->options->connect_attr);
+   mnd_pefree(conn->options->connect_attr, pers);
+   conn->options->connect_attr = NULL;
+   }
 }
 /* }}} */
 
@@ -797,13 +802,14 @@ MYSQLND_METHOD(mysqlnd_conn_data, 
connect_handshake)(MYSQLND_CONN_DATA * conn,
goto err;
}
 
+   conn->client_flag   = mysql_flags;
+   conn->server_capabilities   = greet_packet->server_capabilities;
+
if (FAIL == mysqlnd_connect_run_authentication(conn, user, passwd, db, 
db_len, (size_t) passwd_len,

   greet_packet, conn->options, mysql_flags TSRMLS_CC))
{
goto err;
}
-   conn->client_flag   = mysql_flags;
-   conn->server_capabilities   = greet_packet->server_capabilities;
conn->upsert_status->warning_count = 0;
conn->upsert_status->server_status = greet_packet->server_status;
conn->upsert_status->affected_rows = 0;
@@ -811,6 +817,8 @@ MYSQLND_METHOD(mysqlnd_conn_data, 
connect_handshake)(MYSQLND_CONN_DATA * conn,
PACKET_FREE(greet_packet);
DBG_RETURN(PASS);
 err:
+   conn->client_flag = 0;
+   conn->server_capabilities = 0;
PACKET_FREE(greet_packet);
DBG_RETURN(FAIL);
 }
@@ -1086,6 +1094,7 @@ MYSQLND_METHOD(mysqlnd_conn, connect)(MYSQLND * 
conn_handle,
DBG_ENTER("mysqlnd_conn::connect");
 
if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
+   mysqlnd_options4(conn_handle, MYSQL_OPT_CONNECT_ATTR_ADD, 
"_client_name", "mysqlnd");
ret = conn->m->connect(conn, host, user, passwd, passwd_len, 
db, db_len, port, socket_or_pipe, mysql_flags TSRMLS_CC);
 
conn->m->local_tx_end(conn, this_func, FAIL TSRMLS_CC);
@@ -2375,6 +2384,19 @@ MYSQLND_METHOD(mysqlnd_conn_data, 
set_client_option)(MYSQLND_CONN_DATA * const c
conn->options->flags &= 
~CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS;
}
break;
+   case MYSQL_OPT_CONNECT_ATTR_RESET:
+   if (conn->options->connect_attr) {
+   DBG_INF_FMT("Before reset %d attribute(s)", 
zend_hash_num_elements(conn->options->connect_attr));
+   zend_hash_clean(conn->options->connect_attr);
+   }
+   break;
+   case MYSQL_OPT_CONNECT_ATTR_DELETE:
+   if (conn->options->connect_attr && value) {
+   DBG_INF_FMT("Before delete %d attribute(s)", 
zend_hash_num_elements(conn->options->connect_attr));
+   zend_hash_del(conn->options->connect_attr, 
value, strlen(value));
+   DBG_INF_FMT("%d left", 
zend_hash_num_elements(conn->options->connect_attr));
+   }
+   break;
 #ifdef WHEN_SUPPORTED_BY_MYSQLI
case MYSQL_SHARED_MEMORY_BASE_NAME:
case MYSQL_OPT_USE_RESULT:
@@ -2395,6 +2417,69 @@ end:
 /* }}} */
 
 
+/* {{{ connect_attr_item_dtor */
+static void
+connect_attr_item_dtor(void * pDest)
+{
+#ifdef ZTS
+   TSRMLS_FETCH();
+#endif
+   DBG_ENTER("connect_attr_item_dtor");
+   mnd_pefree(*(char **) pDest, 1);
+   DBG_VOID_RETURN;
+}
+/* }}} */
+
+
+/* {{{ mysqlnd_conn_data::set_client_option_2d */
+static enum_func_status
+MYSQLND_METHOD(mysqlnd_conn_data, set_client_option_2d)(MYSQLND_CONN_DATA * 
const conn,
+   
enum mysqlnd_option option,
+   
co

[PHP-CVS] com php-src: Merge branch 'PHP-5.5': NEWS

2013-01-15 Thread Andrey Hristov
Commit:c4fe37bd8c5e35d1957d43acecbcb3f010501e4a
Author:Andrey Hristov  Tue, 15 Jan 2013 10:12:54 
+0100
Parents:   7a316922536495560b080bc602f54c268537c67b 
dc495bbe95680a9cf2321da83a382d834d70758c
Branches:  master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=c4fe37bd8c5e35d1957d43acecbcb3f010501e4a

Log:
Merge branch 'PHP-5.5'

Conflicts:
NEWS

Changed paths:
  MM  NEWS

diff --cc NEWS
index 7d36738,4145dc5..f753a83
--- a/NEWS
+++ b/NEWS
@@@ -1,6 -1,250 +1,5 @@@
  PHP
NEWS
  
|||
- <<< HEAD
 -?? ??? 201?, PHP 5.5.0 Alpha 3
 -
 -- Core:
 -  . Fixed bug #63980 (object members get trimmed by zero bytes). (Laruence)
 -
 -- General improvements:
 -  . Fixed bug #63874 (Segfault if php_strip_whitespace has heredoc). 
(Pierrick)
 -  . Fixed bug #63822 (Crash when using closures with ArrayAccess).
 -(Nikita Popov)
 -  . Add Generator::throw() method. (Nikita Popov)
 -  . Bug #23955: allow specifying Max-Age attribute in setcookie() (narfbg, 
Lars)
 -  . Bug #52126: timestamp for mail.log (Martin Jansen, Lars)
 -
 -- mysqlnd
 -  . Fixed return value of mysqli_stmt_affected_rows() in the time after
 -prepare() and before execute(). (Andrey)
 -
 -- cURL:
 -  . Added new functions curl_escape, curl_multi_setopt, curl_multi_strerror
 -curl_pause, curl_reset, curl_share_close, curl_share_init,
 -  curl_share_setopt curl_strerror and curl_unescape. (Pierrick)
 -  . Addes new curl options CURLOPT_TELNETOPTIONS, CURLOPT_GSSAPI_DELEGATION,
 -CURLOPT_ACCEPTTIMEOUT_MS, CURLOPT_SSL_OPTIONS, CURLOPT_TCP_KEEPALIVE,
 -  CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL. (Pierrick)
 -
 -- DateTime
 -  . Added DateTimeImmutable - a variant of DateTime that only returns the
 -modified state instead of changing itself. (Derick)
 -
 -- pgsql:
 -  . Bug #46408: Locale number format settings can cause pg_query_params to
 -break with numerics. (asmecher, Lars)
 -
 -- dba:
 -  . Bug #62489: dba_insert not working as expected.
 -(marc-bennewitz at arcor dot de, Lars)
 -
 -18 Dec 2012, PHP 5.5.0 Alpha 2
 -
 -- General improvements:
 -  . Added systemtap support by enabling systemtap compatible dtrace probes on
 -linux. (David Soria Parra)
 -  . Added support for using empty() on the result of function calls and
 -other expressions (https://wiki.php.net/rfc/empty_isset_exprs).
 -(Nikita Popov)
 -  . Optimized access to temporary and compiled VM variables. 8% less memory
 -reads. (Dmitry)
 -  . The VM stacks for passing function arguments and syntaticaly nested calls
 -were merged into a single stack. The stack size needed for op_array
 -execution is calculated at compile time and preallocated at once. As 
result
 -all the stack push operatins don't require checks for stack overflow
 -any more. (Dmitry)
 -
 -- MySQL
 -  . This extension is now deprecated, and deprecation warnings will be 
generated
 -when connections are established to databases via mysql_connect(),
 -mysql_pconnect(), or through implicit connection: use MySQLi or PDO_MySQL
 -instead (https://wiki.php.net/rfc/mysql_deprecation). (Adam)
 -
 -- Fileinfo:
 -  . Fixed bug #63590 (Different results in TS and NTS under Windows).
 -(Anatoliy)
 -
 -- Apache2 Handler SAPI:
 -  . Enabled Apache 2.4 configure option for Windows (Pierre, Anatoliy)
 -
 -13 Nov 2012, PHP 5.5.0 Alpha 1
 -
 -- General improvements:
 -  . Added generators and coroutines (https://wiki.php.net/rfc/generators).
 -(Nikita Popov)
 -  . Added "finally" keyword (https://wiki.php.net/rfc/finally). (Laruence)
 -  . Add simplified password hashing API
 -(https://wiki.php.net/rfc/password_hash). (Anthony Ferrara)
 -  . Added support for list in foreach (https://wiki.php.net/rfc/foreachlist).
 -(Laruence)
 -  . Added support for using empty() on the result of function calls and
 -other expressions (https://wiki.php.net/rfc/empty_isset_exprs).
 -(Nikita Popov)
 -  . Added support for constant array/string dereferencing. (Laruence)
 -  . Improve set_exception_handler while doing reset.(Laruence)
 -  . Remove php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid(),
 -zend_logo_guid(). (Adnrew Faulds)
 -  . Drop Windows XP and 2003 support. (Pierre)
 -
 -- Calendar:
 -  . Fixed bug #54254 (cal_from_jd returns month = 6 when there is only one 
Adar)
 -(Stas, Eitan Mosenkis)
 -
 -- Core:
 -  . Added boolval(). (Jille Timmermans)
 -  . Added "Z" option to pack/unpack. (Gustavo)
 -  . Implemented FR #60738 (Allow 'set_error_handler' to handle NULL).
 -(Laruence, Nikita Popov)
 -  . Added optional second argument for assert() to specify custom message. 
Patch
 -by Lonny Kapelushnik (lo...@lonnylot.com). (Lars)
 -  . Fixed bug #18556 (Engine uses locale rules to handle class names). (Stas)
 -  . Fixed bug #61681 (Malform

[PHP-CVS] com php-src: Bug #62489: dba_insert not working as expected: NEWS ext/dba/dba_flatfile.c ext/dba/dba_gdbm.c ext/dba/dba_inifile.c ext/dba/dba_qdbm.c ext/dba/tests/dba_db1.phpt ext/dba/tests/

2013-01-15 Thread Lars Strojny
Commit:eb40f73ca0a2a7563fbc95cc22741412e0beb76e
Author:Lars Strojny  Tue, 15 Jan 2013 09:30:44 
+0100
Parents:   6dc80f080ea97c09b36d8a05ec7ec5067f394c01
Branches:  PHP-5.5

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=eb40f73ca0a2a7563fbc95cc22741412e0beb76e

Log:
Bug #62489: dba_insert not working as expected

Bugs:
https://bugs.php.net/62489

Changed paths:
  M  NEWS
  M  ext/dba/dba_flatfile.c
  M  ext/dba/dba_gdbm.c
  M  ext/dba/dba_inifile.c
  M  ext/dba/dba_qdbm.c
  M  ext/dba/tests/dba_db1.phpt
  M  ext/dba/tests/dba_db2.phpt
  M  ext/dba/tests/dba_db3.phpt
  M  ext/dba/tests/dba_db4_000.phpt
  M  ext/dba/tests/dba_dbm.phpt
  M  ext/dba/tests/dba_flatfile.phpt
  M  ext/dba/tests/dba_gdbm.phpt
  M  ext/dba/tests/dba_handler.inc
  M  ext/dba/tests/dba_inifile.phpt
  M  ext/dba/tests/dba_ndbm.phpt
  M  ext/dba/tests/dba_qdbm.phpt
  M  ext/dba/tests/dba_tcadb.phpt

diff --git a/NEWS b/NEWS
index 9e8cd85..4145dc5 100644
--- a/NEWS
+++ b/NEWS
@@ -27,12 +27,16 @@ PHP 
   NEWS
 
 - DateTime
   . Added DateTimeImmutable - a variant of DateTime that only returns the
-modified state instead of changing itself. (Derick) 
+modified state instead of changing itself. (Derick)
 
 - pgsql:
   . Bug #46408: Locale number format settings can cause pg_query_params to
 break with numerics. (asmecher, Lars)
 
+- dba:
+  . Bug #62489: dba_insert not working as expected.
+(marc-bennewitz at arcor dot de, Lars)
+
 18 Dec 2012, PHP 5.5.0 Alpha 2
 
 - General improvements:
diff --git a/ext/dba/dba_flatfile.c b/ext/dba/dba_flatfile.c
index 082aa5c..34aa635 100644
--- a/ext/dba/dba_flatfile.c
+++ b/ext/dba/dba_flatfile.c
@@ -88,15 +88,16 @@ DBA_UPDATE_FUNC(flatfile)
gval.dsize = vallen;

switch(flatfile_store(dba, gkey, gval, mode==1 ? FLATFILE_INSERT : 
FLATFILE_REPLACE TSRMLS_CC)) {
-   case -1:
-   php_error_docref1(NULL TSRMLS_CC, key, E_WARNING, "Operation 
not possible");
-   return FAILURE;
-   default:
-   case 0:
-   return SUCCESS;
-   case 1:
-   php_error_docref1(NULL TSRMLS_CC, key, E_WARNING, "Key already 
exists");
-   return FAILURE;
+   case 0:
+   return SUCCESS;
+   case 1:
+   return FAILURE;
+   case -1:
+   php_error_docref1(NULL TSRMLS_CC, key, E_WARNING, 
"Operation not possible");
+   return FAILURE;
+   default:
+   php_error_docref2(NULL TSRMLS_CC, key, val, E_WARNING, 
"Unknown return value");
+   return FAILURE;
}
 }
 
diff --git a/ext/dba/dba_gdbm.c b/ext/dba/dba_gdbm.c
index 7534568..47dd576 100644
--- a/ext/dba/dba_gdbm.c
+++ b/ext/dba/dba_gdbm.c
@@ -104,11 +104,18 @@ DBA_UPDATE_FUNC(gdbm)
gval.dptr = (char *) val;
gval.dsize = vallen;
 
-   if(gdbm_store(dba->dbf, gkey, gval, 
-   mode == 1 ? GDBM_INSERT : GDBM_REPLACE) == 0)
-   return SUCCESS;
-   php_error_docref2(NULL TSRMLS_CC, key, val, E_WARNING, "%s", 
gdbm_strerror(gdbm_errno));
-   return FAILURE;
+   switch (gdbm_store(dba->dbf, gkey, gval, mode == 1 ? GDBM_INSERT : 
GDBM_REPLACE)) {
+   case 0:
+   return SUCCESS;
+   case 1:
+   return FAILURE;
+   case -1:
+   php_error_docref2(NULL TSRMLS_CC, key, val, E_WARNING, 
"%s", gdbm_strerror(gdbm_errno));
+   return FAILURE;
+   default:
+   php_error_docref2(NULL TSRMLS_CC, key, val, E_WARNING, 
"Unknown return value");
+   return FAILURE;
+   }
 }
 
 DBA_EXISTS_FUNC(gdbm)
diff --git a/ext/dba/dba_inifile.c b/ext/dba/dba_inifile.c
index e1359b6..05ee95c 100644
--- a/ext/dba/dba_inifile.c
+++ b/ext/dba/dba_inifile.c
@@ -101,7 +101,6 @@ DBA_UPDATE_FUNC(inifile)
case 0:
return SUCCESS;
case 1:
-   php_error_docref1(NULL TSRMLS_CC, key, E_WARNING, "Key already 
exists");
return FAILURE;
}
 }
diff --git a/ext/dba/dba_qdbm.c b/ext/dba/dba_qdbm.c
index 485b199..eeece57 100644
--- a/ext/dba/dba_qdbm.c
+++ b/ext/dba/dba_qdbm.c
@@ -96,13 +96,15 @@ DBA_FETCH_FUNC(qdbm)
 DBA_UPDATE_FUNC(qdbm)
 {
QDBM_DATA;
-   int result;
 
-   result = dpput(dba->dbf, key, keylen, val, vallen, mode == 1 ? DP_DKEEP 
: DP_DOVER);
-   if (result)
+   if (dpput(dba->dbf, key, keylen, val, vallen, mode == 1 ? DP_DKEEP : 
DP_DOVER)) {
return SUCCESS;
+   }
+
+   if (dpecode != DP_EKEEP) {
+   php_error_docref2(NULL TSRMLS_CC, key, val, E_WARNING, "%s", 
dperrmsg(dpecode));
+   }
 
-   php_error_docref2(NULL TSRMLS_CC, key, val, E_WARNING, "%s", 
dperrmsg(dpecode

[PHP-CVS] com php-src: fix NEWS: NEWS

2013-01-15 Thread Stanislav Malyshev
Commit:374ebc87416d9e31efd961a3176510e3a901355b
Author:Stanislav Malyshev  Tue, 15 Jan 2013 00:06:35 
-0800
Parents:   0510701474e8d99b5b30139b5599e44f9b555a5a
Branches:  PHP-5.4 PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=374ebc87416d9e31efd961a3176510e3a901355b

Log:
fix NEWS

Changed paths:
  M  NEWS


Diff:
diff --git a/NEWS b/NEWS
index 79d5d9a..5f45667 100644
--- a/NEWS
+++ b/NEWS
@@ -7,9 +7,18 @@ PHP
NEWS
 protected property). (Stas)
   . Fixed bug #63943 (Bad warning text from strpos() on empty needle).
 (Laruence)
+  . Fixed bug #63899 (Use after scope error in zend_compile). (Laruence)
   . Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry)
+  . Fixed bug #43225 (fputcsv incorrectly handles cells ending in \ followed
+by "). (Adam)
   . Support BITMAPV5HEADER in getimagesize(). (AsamK, Lars)
 
+- Date:
+  . Fixed bug #63699 (Performance improvements for various ext/date functions).
+(Lars, original patch by njaguar at gmail dot com)
+  . Fixed bug #55397: Comparsion of incomplete DateTime causes SIGSEGV. 
+(Derick)
+
 - Litespeed:
   . Fixed bug #63228 (-Werror=format-security error in lsapi code). (George)
 
@@ -27,7 +36,6 @@ PHP   
 NEWS
 ?? ??? 2012, PHP 5.4.11
 
 - Core:
-  . Fixed bug #63899 (Use after scope error in zend_compile). (Laruence)
   . Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user).
 (Johannes)
   . Fixed bug #43177 (Errors in eval()'ed code produce status code 500).
@@ -56,10 +64,6 @@ PHP  
  NEWS
   . Fixed bug #55438 (Curlwapper is not sending http header randomly).
 (php...@lostreality.org, Pierrick)
 
-- Date:
-  . Fixed bug #63699 (Performance improvements for various ext/date functions).
-(Lars, original patch by njaguar at gmail dot com)
-
 20 Dec 2012, PHP 5.4.10
 
 - Core:


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] com php-src: fix NEWS: NEWS

2013-01-15 Thread Stanislav Malyshev
Commit:643e7a54ec8e06a0fc9996eea9d0125f4fa531a5
Author:Stanislav Malyshev  Tue, 15 Jan 2013 00:06:35 
-0800
Parents:   3bc74903706ab08e916905a0bd634e77aa804def
Branches:  PHP-5.5 master

Link:   
http://git.php.net/?p=php-src.git;a=commitdiff;h=643e7a54ec8e06a0fc9996eea9d0125f4fa531a5

Log:
fix NEWS

Changed paths:
  M  NEWS


Diff:
diff --git a/NEWS b/NEWS
index 79d5d9a..5f45667 100644
--- a/NEWS
+++ b/NEWS
@@ -7,9 +7,18 @@ PHP
NEWS
 protected property). (Stas)
   . Fixed bug #63943 (Bad warning text from strpos() on empty needle).
 (Laruence)
+  . Fixed bug #63899 (Use after scope error in zend_compile). (Laruence)
   . Fixed bug #63882 (zend_std_compare_objects crash on recursion). (Dmitry)
+  . Fixed bug #43225 (fputcsv incorrectly handles cells ending in \ followed
+by "). (Adam)
   . Support BITMAPV5HEADER in getimagesize(). (AsamK, Lars)
 
+- Date:
+  . Fixed bug #63699 (Performance improvements for various ext/date functions).
+(Lars, original patch by njaguar at gmail dot com)
+  . Fixed bug #55397: Comparsion of incomplete DateTime causes SIGSEGV. 
+(Derick)
+
 - Litespeed:
   . Fixed bug #63228 (-Werror=format-security error in lsapi code). (George)
 
@@ -27,7 +36,6 @@ PHP   
 NEWS
 ?? ??? 2012, PHP 5.4.11
 
 - Core:
-  . Fixed bug #63899 (Use after scope error in zend_compile). (Laruence)
   . Fixed bug #63762 (Sigsegv when Exception::$trace is changed by user).
 (Johannes)
   . Fixed bug #43177 (Errors in eval()'ed code produce status code 500).
@@ -56,10 +64,6 @@ PHP  
  NEWS
   . Fixed bug #55438 (Curlwapper is not sending http header randomly).
 (php...@lostreality.org, Pierrick)
 
-- Date:
-  . Fixed bug #63699 (Performance improvements for various ext/date functions).
-(Lars, original patch by njaguar at gmail dot com)
-
 20 Dec 2012, PHP 5.4.10
 
 - Core:


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php