iliaa           Wed Oct 11 14:19:55 2006 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src/ext/standard       string.c 
  Log:
  Catch empty strings right away.
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/string.c?r1=1.445.2.14.2.26&r2=1.445.2.14.2.27&diff_format=u
Index: php-src/ext/standard/string.c
diff -u php-src/ext/standard/string.c:1.445.2.14.2.26 
php-src/ext/standard/string.c:1.445.2.14.2.27
--- php-src/ext/standard/string.c:1.445.2.14.2.26       Wed Oct 11 13:15:29 2006
+++ php-src/ext/standard/string.c       Wed Oct 11 14:19:55 2006
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: string.c,v 1.445.2.14.2.26 2006/10/11 13:15:29 tony2001 Exp $ */
+/* $Id: string.c,v 1.445.2.14.2.27 2006/10/11 14:19:55 iliaa Exp $ */
 
 /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
 
@@ -4851,19 +4851,18 @@
                return;
        }
 
-       if (char_list) {
-               php_charmask(char_list, char_list_len, ch TSRMLS_CC);
-       }
-       
-       p = str;
-       e = str + str_len;
-       
        switch(type) {
                case 1:
                case 2:
                        array_init(return_value);
+                       if (!str_len) {
+                               return;
+                       }
                        break;
                case 0:
+                       if (!str_len) {
+                               RETURN_LONG(0);
+                       }
                        /* nothing to be done */
                        break;
                default:
@@ -4871,12 +4870,19 @@
                        RETURN_FALSE;
        }
 
+       if (char_list) {
+               php_charmask(char_list, char_list_len, ch TSRMLS_CC);
+       }
+       
+       p = str;
+       e = str + str_len;
+
        /* first character cannot be ' or -, unless explicitly allowed by the 
user */
        if ((*p == '\'' && (!char_list || !ch['\''])) || (*p == '-' && 
(!char_list || !ch['-']))) {
                p++;
        }
        /* last character cannot be -, unless explicitly allowed by the user */
-       if (str_len && *(e - 1) == '-' && (!char_list || !ch['-'])) {
+       if (*(e - 1) == '-' && (!char_list || !ch['-'])) {
                e--;
        }
 

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

Reply via email to