hirokawa                Sun Aug 19 01:57:53 2007 UTC

  Modified files:              
    /php-src/ext/mbstring/libmbfl/mbfl  mbfilter.c 
  Log:
  added negative offset support in mbfl_strrpos (fixed #42085)
  
http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c?r1=1.13&r2=1.14&diff_format=u
Index: php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c
diff -u php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c:1.13 
php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c:1.14
--- php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c:1.13   Thu Dec 21 17:37:53 2006
+++ php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c        Sun Aug 19 01:57:53 2007
@@ -858,7 +858,7 @@
     int offset,
     int reverse)
 {
-       int n, result;
+       int n, result, negative_offset = 0;
        unsigned char *p;
        mbfl_convert_filter *filter;
        struct collector_strpos_data pc;
@@ -904,6 +904,12 @@
                mbfl_wchar_device_clear(&pc.needle);
                return -4;
        }
+
+       if (offset < 0) {
+               negative_offset = -offset-1;
+               offset = 0;
+       }
+
        pc.start = offset;
        pc.output = 0;
        pc.needle_pos = 0;
@@ -912,7 +918,7 @@
 
        /* feed data */
        p = haystack->val;
-       n = haystack->len;
+       n = haystack->len - negative_offset;
        if (p != NULL) {
                while (n > 0) {
                        if ((*filter->filter_function)(*p++, filter) < 0) {

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

Reply via email to