shire           Sat Dec 27 05:13:30 2008 UTC

  Modified files:              
    /php-src/ext/standard       string.c 
    /php-src/ext/standard/tests/strings explode.phpt 
  Log:
  fix explode behavior to respect negative limit when string is empty.
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/string.c?r1=1.686&r2=1.687&diff_format=u
Index: php-src/ext/standard/string.c
diff -u php-src/ext/standard/string.c:1.686 php-src/ext/standard/string.c:1.687
--- php-src/ext/standard/string.c:1.686 Mon Nov 24 19:31:02 2008
+++ php-src/ext/standard/string.c       Sat Dec 27 05:13:29 2008
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: string.c,v 1.686 2008/11/24 19:31:02 lbarnaud Exp $ */
+/* $Id: string.c,v 1.687 2008/12/27 05:13:29 shire Exp $ */
 
 /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
 
@@ -1294,10 +1294,12 @@
        array_init(return_value);
 
        if ( str_len == 0 ) {
-               if ( str_type == IS_UNICODE ) {
-                       add_next_index_unicodel(return_value, USTR_MAKE(""), 
sizeof("")-1, 0);
-               } else {
-                       add_next_index_stringl(return_value, "", sizeof("")-1, 
1);
+               if (limit >= 0 || argc == 2) {
+                       if ( str_type == IS_UNICODE ) {
+                               add_next_index_unicodel(return_value, 
USTR_MAKE(""), sizeof("")-1, 0);
+                       } else {
+                               add_next_index_stringl(return_value, "", 
sizeof("")-1, 1);
+                       }
                }
                return;
        }
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/explode.phpt?r1=1.9&r2=1.10&diff_format=u
Index: php-src/ext/standard/tests/strings/explode.phpt
diff -u php-src/ext/standard/tests/strings/explode.phpt:1.9 
php-src/ext/standard/tests/strings/explode.phpt:1.10
--- php-src/ext/standard/tests/strings/explode.phpt:1.9 Tue May 27 10:50:45 2008
+++ php-src/ext/standard/tests/strings/explode.phpt     Sat Dec 27 05:13:30 2008
@@ -18,6 +18,7 @@
 var_dump(@explode(NULL, a));
 var_dump(@explode("abc", "acb"));
 var_dump(@explode("somestring", "otherstring"));
+var_dump(@explode("somestring", "otherstring", -1));
 var_dump(@explode("a", "aaaaaa"));
 var_dump(@explode("==", str_repeat("-=".ord(0)."=-", 10)));
 var_dump(@explode("=", str_repeat("-=".ord(0)."=-", 10)));
@@ -64,6 +65,8 @@
   [0]=>
   unicode(11) "otherstring"
 }
+array(0) {
+}
 array(7) {
   [0]=>
   unicode(0) ""



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

Reply via email to