andrei          Tue Apr 18 05:18:12 2006 UTC

  Modified files:              
    /php-src/ext/standard       string.c 
  Log:
  I'm not sure what the heck people were thinking here, but it should be
  fixed finally. Please test.
  
  
http://cvs.php.net/viewcvs.cgi/php-src/ext/standard/string.c?r1=1.539&r2=1.540&diff_format=u
Index: php-src/ext/standard/string.c
diff -u php-src/ext/standard/string.c:1.539 php-src/ext/standard/string.c:1.540
--- php-src/ext/standard/string.c:1.539 Tue Apr 18 02:40:29 2006
+++ php-src/ext/standard/string.c       Tue Apr 18 05:18:12 2006
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: string.c,v 1.539 2006/04/18 02:40:29 andrei Exp $ */
+/* $Id: string.c,v 1.540 2006/04/18 05:18:12 andrei Exp $ */
 
 /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
 
@@ -721,10 +721,12 @@
                                }
                                if ( wh != ch ) break;
                        } else {
-                               if ( u_isWhitespace(ch) == FALSE ) break;
+                               if ( u_isWhitespace(ch) == FALSE ) {
+                                       U16_BACK_1(c, 0, i); /* U16_NEXT() 
post-increments 'i' */
+                                       break;
+                               }
                        }
                }
-               U16_BACK_1(c, 0, i); /* U16_NEXT() post-increments 'i' */
                start = i;
        }
        if ( mode & 2 ) {
@@ -737,12 +739,13 @@
                                }
                                if ( wh != ch ) break;
                        } else {
-                               if ( u_isWhitespace(ch) == FALSE ) break;
+                               if ( u_isWhitespace(ch) == FALSE ) {
+                                       U16_FWD_1(c, i, end); /* U16_PREV() 
pre-decrements 'i' */
+                                       break;
+                               }
                        }
                }
                end = i;
-       } else {
-               --end;
        }
        if ( what )
        {
@@ -751,10 +754,10 @@
 
        if ( start < len ) {
                if ( return_value ) {
-                       RETVAL_UNICODEL(c+start, end-start+1, 1);
+                       RETVAL_UNICODEL(c+start, end-start, 1);
                        return NULL;
                } else {
-                       return eustrndup(c+start, end-start+1);
+                       return eustrndup(c+start, end-start);
                }
        } else { /* Trimmed the whole string */
                if ( return_value ) {

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

Reply via email to