masugata                Thu Sep 21 16:37:20 2006 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src/ext/mbstring       config.m4 config.w32 mbstring.c 
    /php-src/ext/mbstring/oniguruma     HISTORY config.h.in index.html 
                                        oniguruma.h regcomp.c regexec.c 
                                        regint.h 
  Log:
  Updated bundled oniguruma library (used for multibyte regular expression) to 
4.4.4. fixed some Segmentation Fault, and build fails in OSX(Xcode 2.4/gcc 
4.0.1 problem). See #38452.
  
http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/config.m4?r1=1.58.2.4.2.3&r2=1.58.2.4.2.4&diff_format=u
Index: php-src/ext/mbstring/config.m4
diff -u php-src/ext/mbstring/config.m4:1.58.2.4.2.3 
php-src/ext/mbstring/config.m4:1.58.2.4.2.4
--- php-src/ext/mbstring/config.m4:1.58.2.4.2.3 Fri Aug 25 16:26:50 2006
+++ php-src/ext/mbstring/config.m4      Thu Sep 21 16:37:20 2006
@@ -1,5 +1,5 @@
 dnl
-dnl $Id: config.m4,v 1.58.2.4.2.3 2006/08/25 16:26:50 masugata Exp $
+dnl $Id: config.m4,v 1.58.2.4.2.4 2006/09/21 16:37:20 masugata Exp $
 dnl
 
 AC_DEFUN([PHP_MBSTRING_ADD_SOURCES], [
@@ -103,7 +103,7 @@
 
 
     if test "$PHP_MBREGEX_BACKTRACK" != "no"; then
-      AC_DEFINE([HAVE_MBREGEX_BACKTRACK],1,[whether to check multibyte regex 
backtrack])
+      AC_DEFINE([USE_COMBINATION_EXPLOSION_CHECK],1,[whether to check 
multibyte regex backtrack])
     fi
 
     PHP_MBSTRING_ADD_CFLAG([-DNOT_RUBY])
http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/config.w32?r1=1.10.2.1.2.1&r2=1.10.2.1.2.2&diff_format=u
Index: php-src/ext/mbstring/config.w32
diff -u php-src/ext/mbstring/config.w32:1.10.2.1.2.1 
php-src/ext/mbstring/config.w32:1.10.2.1.2.2
--- php-src/ext/mbstring/config.w32:1.10.2.1.2.1        Thu Jul 20 15:45:06 2006
+++ php-src/ext/mbstring/config.w32     Thu Sep 21 16:37:20 2006
@@ -1,8 +1,9 @@
-// $Id: config.w32,v 1.10.2.1.2.1 2006/07/20 15:45:06 masugata Exp $
+// $Id: config.w32,v 1.10.2.1.2.2 2006/09/21 16:37:20 masugata Exp $
 // vim:ft=javascript
 
 ARG_ENABLE("mbstring", "multibyte string functions", "no");
 ARG_ENABLE("mbregex", "multibyte regex support", "no");
+ARG_ENABLE("mbregex-backtrack", "check multibyte regex backtrack", "yes");
 
 if (PHP_MBSTRING == "yes") {
 
@@ -52,6 +53,9 @@
        if (PHP_MBREGEX != "no") {
                AC_DEFINE('HAVE_STDARG_PROTOTYPES', 1, 'have stdarg.h');
                AC_DEFINE('HAVE_MBREGEX', 1);
+               if (PHP_MBREGEX_BACKTRACK != "no") {
+                       AC_DEFINE('USE_COMBINATION_EXPLOSION_CHECK', 1);
+               }
                ADD_SOURCES("ext/mbstring/oniguruma", "regcomp.c regerror.c \
                        regenc.c regexec.c reggnu.c regparse.c regposerr.c \
                        regext.c regsyntax.c regtrav.c regversion.c st.c", 
"mbstring");
http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mbstring.c?r1=1.224.2.22.2.13&r2=1.224.2.22.2.14&diff_format=u
Index: php-src/ext/mbstring/mbstring.c
diff -u php-src/ext/mbstring/mbstring.c:1.224.2.22.2.13 
php-src/ext/mbstring/mbstring.c:1.224.2.22.2.14
--- php-src/ext/mbstring/mbstring.c:1.224.2.22.2.13     Tue Sep  5 12:30:35 2006
+++ php-src/ext/mbstring/mbstring.c     Thu Sep 21 16:37:20 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: mbstring.c,v 1.224.2.22.2.13 2006/09/05 12:30:35 nlopess Exp $ */
+/* $Id: mbstring.c,v 1.224.2.22.2.14 2006/09/21 16:37:20 masugata Exp $ */
 
 /*
  * PHP 4 Multibyte String module "mbstring"
@@ -1050,11 +1050,11 @@
                sprintf(buf, "%d.%d.%d",
                        
ONIGURUMA_VERSION_MAJOR,ONIGURUMA_VERSION_MINOR,ONIGURUMA_VERSION_TEENY);
                php_info_print_table_row(2, "Multibyte regex (oniguruma) 
version", buf);
-#ifdef HAVE_MBREGEX_BACKTRACK
+#ifdef USE_COMBINATION_EXPLOSION_CHECK
                php_info_print_table_row(2, "Multibyte regex (oniguruma) 
backtrack check", "On");
-#else  /* HAVE_MBREGEX_BACKTRACK */
+#else  /* USE_COMBINATION_EXPLOSION_CHECK */
                php_info_print_table_row(2, "Multibyte regex (oniguruma) 
backtrack check", "Off");
-#endif /* HAVE_MBREGEX_BACKTRACK */
+#endif /* USE_COMBINATION_EXPLOSION_CHECK */
        }
 #endif
        php_info_print_table_end();
http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/oniguruma/HISTORY?r1=1.5.4.2&r2=1.5.4.3&diff_format=u
Index: php-src/ext/mbstring/oniguruma/HISTORY
diff -u php-src/ext/mbstring/oniguruma/HISTORY:1.5.4.2 
php-src/ext/mbstring/oniguruma/HISTORY:1.5.4.3
--- php-src/ext/mbstring/oniguruma/HISTORY:1.5.4.2      Thu Aug 24 17:03:47 2006
+++ php-src/ext/mbstring/oniguruma/HISTORY      Thu Sep 21 16:37:20 2006
@@ -1,5 +1,46 @@
 History
 
+2006/09/19: Version 4.4.4
+
+2006/09/19: [test] success in ruby 1.9.0 (2006-08-22) [i686-linux].
+2006/09/19: [impl] (thanks KOYAMA Tetsuji)
+                   HAVE_STDARG_PROTOTYPES was not defined in Mac OS X
+                   by Xcode 2.4(gcc 4.0.1) problem. [php-dev 1312] etc...
+
+2006/09/15: Version 4.4.3
+
+2006/09/15: [test] success in ruby 1.9.0 (2006-08-22) [i686-linux].
+2006/09/15: [bug]  (thanks Allan Odgaard)
+                   out of range access in bm_search_notrev().
+                   (p < s)
+
+2006/09/08: Version 4.4.2
+
+2006/09/08: [test] success in ruby 1.9.0 (2006-08-22) [i686-linux].
+2006/09/08: [bug]  (thanks K.Takata)
+                   out of range access in bm_search_notrev().
+2006/09/04: [spec] (thanks K.Takata)
+                   allow look-behind in negative look-behind.
+                   ex. /(?<!(?<=a)b|c)d/
+
+2006/08/29: Version 4.4.1
+
+2006/08/29: [test] success in ruby 1.9.0 (2006-08-22) [i686-linux].
+2006/08/29: [dist] (thanks Seiji Masugata)
+                    add configure option --enable-combination-explosion-check
+
+2006/08/25: Version 4.4.0
+
+2006/08/25: [test] success in ruby 1.9.0 (2006-08-22) [i686-linux].
+2006/08/25: [impl] add_state_check_num() should be enclosed in
+                   ifdef USE_COMBINATION_EXPLOSION_CHECK.
+2006/08/23: [spec] config USE_COMBINATION_EXPLOSION_CHECK is enabled
+                   in Ruby mode only.
+2006/08/22: [impl] remove last line comma in enum OpCode.
+2006/08/22: [impl] remove OP_STATE_CHECK_ANYCHAR_STAR_PEEK_NEXT and
+                   OP_STATE_CHECK_ANYCHAR_ML_STAR_PEEK_NEXT.
+2006/08/22: [impl] remove OP_BACKREF3.
+
 2006/08/21: Version 4.3.1
 
 2006/08/21: [test] success in ruby 1.9.0 (2006-07-28) [i686-linux].
http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/oniguruma/config.h.in?r1=1.2.4.1&r2=1.2.4.2&diff_format=u
Index: php-src/ext/mbstring/oniguruma/config.h.in
diff -u php-src/ext/mbstring/oniguruma/config.h.in:1.2.4.1 
php-src/ext/mbstring/oniguruma/config.h.in:1.2.4.2
--- php-src/ext/mbstring/oniguruma/config.h.in:1.2.4.1  Thu Jul 20 15:45:06 2006
+++ php-src/ext/mbstring/oniguruma/config.h.in  Thu Sep 21 16:37:20 2006
@@ -98,6 +98,9 @@
 /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
 #undef TIME_WITH_SYS_TIME
 
+/* Define if combination explosion check */
+#undef USE_COMBINATION_EXPLOSION_CHECK
+
 /* Version number of package */
 #undef VERSION
 
http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/oniguruma/index.html?r1=1.2.4.2&r2=1.2.4.3&diff_format=u
Index: php-src/ext/mbstring/oniguruma/index.html
diff -u php-src/ext/mbstring/oniguruma/index.html:1.2.4.2 
php-src/ext/mbstring/oniguruma/index.html:1.2.4.3
--- php-src/ext/mbstring/oniguruma/index.html:1.2.4.2   Thu Aug 24 17:03:47 2006
+++ php-src/ext/mbstring/oniguruma/index.html   Thu Sep 21 16:37:20 2006
@@ -8,7 +8,7 @@
 <h1>Oniguruma</h1>
 
 <p>
-2006/08/21 (C) K.Kosako
+2006/09/19 (C) K.Kosako
 </p>
 
 <p>
@@ -37,7 +37,7 @@
 <dt><b>What's new</b>
 </font>
 <ul>
-<li>Version 4.3.1 released. (2006/08/21)
+<li>Version 4.4.4 released. (2006/09/19)
 <li>Version 2.5.7 released. (2006/07/28)
 </ul>
 </dl>
@@ -70,10 +70,10 @@
 
 <dt><b>Download:</b>
 <ul>
-<li> <a href="archive/onig-4.3.1.tar.gz">Latest release version 4.3.1</a> 
(2006/08/21)   <a href="HISTORY_4X.txt">Change Log</a>
-<li> <a href="archive/onig-4.3.0.tar.gz">4.3.0</a> (2006/08/17)
-<li> <a href="archive/onig-4.2.2.tar.gz">4.2.2</a> (2006/08/03)
-<li> <a href="archive/onig-4.2.1.tar.gz">4.2.1</a> (2006/07/31)
+<li> <a href="archive/onig-4.4.4.tar.gz">Latest release version 4.4.4</a> 
(2006/09/19)   <a href="HISTORY_4X.txt">Change Log</a>
+<li> <a href="archive/onig-4.4.3.tar.gz">4.4.3</a> (2006/09/15)
+<li> <a href="archive/onig-4.4.2.tar.gz">4.4.2</a> (2006/09/08)
+<li> <a href="archive/onig-4.4.1.tar.gz">4.4.1</a> (2006/08/29)
 <li> <a href="archive/onigd2_5_7.tar.gz">Latest release version 2.5.7</a> 
(2006/07/28)   <a href="HISTORY_2X.txt">Change Log</a>
 <li> <a href="archive/onigd2_5_6.tar.gz">2.5.6</a> (2006/05/29)
 <li> <a href="archive/onigd2_5_5.tar.gz">2.5.5</a> (2006/05/08)
@@ -87,7 +87,7 @@
 
 <br>
 <br>
-<dt><b>Documents:</b> (version 4.3.1)
+<dt><b>Documents:</b> (version 4.4.4)
 <ul>
  <li> <a href="doc/RE.txt">Regular Expressions</a>
       <a href="doc/RE.ja.txt">(Japanese: EUC-JP)</a>
@@ -109,6 +109,7 @@
 <li> <a href="http://raa.ruby-lang.org/project/oniguruma/";>Oniguruma in 
RAA</a> (Ruby Application Archive)
 <li> <a 
href="http://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/oniguruma/";>FreeBSD 
ports</a>
 <li> <a href="http://www.softantenna.com/lib/1953/index.html";>SoftAntenna &gt; 
Lib &gt;  Oniguruma</a> (Japanese page)
+<li> <a 
href="http://homepage3.nifty.com/k-takata/mysoft/bregonig.html";>bregonig.dll</a>
 (Japanese page)
 <li> <a href="http://www.halbiz.com/osaru/cnregex.html";>cnRegex 4D Plugin (Mac 
OS X)</a> (Japanese page)
 <li> <a href="http://kmaebashi.com/";>new script language crowbar</a> (Japanese 
page)
 <li> <a href="http://homepage2.nifty.com/Km/onig.htm";>Delphi interface 
(Win32)</a> (Japanese page)
http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/oniguruma/oniguruma.h?r1=1.6.4.3&r2=1.6.4.4&diff_format=u
Index: php-src/ext/mbstring/oniguruma/oniguruma.h
diff -u php-src/ext/mbstring/oniguruma/oniguruma.h:1.6.4.3 
php-src/ext/mbstring/oniguruma/oniguruma.h:1.6.4.4
--- php-src/ext/mbstring/oniguruma/oniguruma.h:1.6.4.3  Wed Sep 20 23:10:37 2006
+++ php-src/ext/mbstring/oniguruma/oniguruma.h  Thu Sep 21 16:37:20 2006
@@ -37,8 +37,8 @@
 
 #define ONIGURUMA
 #define ONIGURUMA_VERSION_MAJOR   4
-#define ONIGURUMA_VERSION_MINOR   3
-#define ONIGURUMA_VERSION_TEENY   1
+#define ONIGURUMA_VERSION_MINOR   4
+#define ONIGURUMA_VERSION_TEENY   4
 
 #ifdef __cplusplus
 # ifndef  HAVE_PROTOTYPES
http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/oniguruma/regcomp.c?r1=1.5.4.3&r2=1.5.4.4&diff_format=u
Index: php-src/ext/mbstring/oniguruma/regcomp.c
diff -u php-src/ext/mbstring/oniguruma/regcomp.c:1.5.4.3 
php-src/ext/mbstring/oniguruma/regcomp.c:1.5.4.4
--- php-src/ext/mbstring/oniguruma/regcomp.c:1.5.4.3    Fri Aug 25 16:26:50 2006
+++ php-src/ext/mbstring/oniguruma/regcomp.c    Thu Sep 21 16:37:20 2006
@@ -187,7 +187,6 @@
 }
 
 #ifdef USE_COMBINATION_EXPLOSION_CHECK
-
 static int
 add_state_check_num(regex_t* reg, int num)
 {
@@ -196,7 +195,7 @@
   BBUF_ADD(reg, &n, SIZE_STATE_CHECK_NUM);
   return 0;
 }
-#endif /* USE_COMBINATION_EXPLOSION_CHECK */
+#endif
 
 static int
 add_rel_addr(regex_t* reg, int addr)
@@ -729,7 +728,7 @@
   /* anychar repeat */
   if (NTYPE(qn->target) == N_ANYCHAR) {
     if (qn->greedy && infinite) {
-      if (IS_NOT_NULL(qn->next_head_exact))
+      if (IS_NOT_NULL(qn->next_head_exact) && !CKN_ON)
         return SIZE_OP_ANYCHAR_STAR_PEEK_NEXT + tlen * qn->lower + cklen;
       else
         return SIZE_OP_ANYCHAR_STAR + tlen * qn->lower + cklen;
@@ -807,15 +806,11 @@
   if (is_anychar_star_qualifier(qn)) {
     r = compile_tree_n_times(qn->target, qn->lower, reg);
     if (r) return r;
-    if (IS_NOT_NULL(qn->next_head_exact)) {
+    if (IS_NOT_NULL(qn->next_head_exact) && !CKN_ON) {
       if (IS_MULTILINE(reg->options))
-       r = add_opcode(reg, (CKN_ON ?
-                              OP_STATE_CHECK_ANYCHAR_ML_STAR_PEEK_NEXT
-                            : OP_ANYCHAR_ML_STAR_PEEK_NEXT));
+       r = add_opcode(reg, OP_ANYCHAR_ML_STAR_PEEK_NEXT);
       else
-       r = add_opcode(reg, (CKN_ON ?
-                              OP_STATE_CHECK_ANYCHAR_STAR_PEEK_NEXT
-                            : OP_ANYCHAR_STAR_PEEK_NEXT));
+       r = add_opcode(reg, OP_ANYCHAR_STAR_PEEK_NEXT);
       if (r) return r;
       if (CKN_ON) {
        r = add_state_check_num(reg, ckn);
@@ -1530,7 +1525,7 @@
       else
 #endif
       if (br->back_num == 1) {
-       r = ((!IS_IGNORECASE(reg->options) && br->back_static[0] <= 3)
+       r = ((!IS_IGNORECASE(reg->options) && br->back_static[0] <= 2)
             ? SIZE_OPCODE : (SIZE_OPCODE + SIZE_MEMNUM));
       }
       else {
@@ -1668,7 +1663,6 @@
          switch (n) {
          case 1:  r = add_opcode(reg, OP_BACKREF1); break;
          case 2:  r = add_opcode(reg, OP_BACKREF2); break;
-         case 3:  r = add_opcode(reg, OP_BACKREF3); break;
          default:
            r = add_opcode(reg, OP_BACKREFN);
            if (r) return r;
@@ -3659,7 +3653,7 @@
 #define ALLOWED_ANCHOR_IN_LB \
 ( ANCHOR_LOOK_BEHIND | ANCHOR_BEGIN_LINE | ANCHOR_END_LINE | ANCHOR_BEGIN_BUF 
| ANCHOR_BEGIN_POSITION )
 #define ALLOWED_ANCHOR_IN_LB_NOT \
-( ANCHOR_LOOK_BEHIND_NOT | ANCHOR_BEGIN_LINE | ANCHOR_END_LINE | 
ANCHOR_BEGIN_BUF | ANCHOR_BEGIN_POSITION )
+( ANCHOR_LOOK_BEHIND | ANCHOR_LOOK_BEHIND_NOT | ANCHOR_BEGIN_LINE | 
ANCHOR_END_LINE | ANCHOR_BEGIN_BUF | ANCHOR_BEGIN_POSITION )
 
       case ANCHOR_LOOK_BEHIND:
        {
@@ -5490,7 +5484,6 @@
   { OP_BEGIN_POSITION,      "begin-position",  ARG_NON },
   { OP_BACKREF1,            "backref1",             ARG_NON },
   { OP_BACKREF2,            "backref2",             ARG_NON },
-  { OP_BACKREF3,            "backref3",             ARG_NON },
   { OP_BACKREFN,            "backrefn",             ARG_MEMNUM  },
   { OP_BACKREFN_IC,         "backrefn-ic",          ARG_SPECIAL },
   { OP_BACKREF_MULTI,       "backref_multi",        ARG_SPECIAL },
@@ -5537,10 +5530,6 @@
   { OP_STATE_CHECK_ANYCHAR_STAR, "state-check-anychar*",     ARG_STATE_CHECK },
   { OP_STATE_CHECK_ANYCHAR_ML_STAR,
     "state-check-anychar-ml*", ARG_STATE_CHECK },
-  { OP_STATE_CHECK_ANYCHAR_STAR_PEEK_NEXT,
-    "state-check-anychar*-peek-next", ARG_SPECIAL },
-  { OP_STATE_CHECK_ANYCHAR_ML_STAR_PEEK_NEXT,
-    "state-check-anychar-ml*-peek-next", ARG_SPECIAL },
   { -1, "", ARG_NON }
 };
 
@@ -5826,15 +5815,6 @@
       fprintf(f, ":%d:(%d)", scn, addr);
       break;
 
-    case OP_STATE_CHECK_ANYCHAR_STAR_PEEK_NEXT:
-    case OP_STATE_CHECK_ANYCHAR_ML_STAR_PEEK_NEXT:
-      scn = *((StateCheckNumType* )bp);
-      bp += SIZE_STATE_CHECK_NUM;
-      fprintf(f, ":%d", scn);
-      p_string(f, 1, bp);
-      bp += 1;
-      break;
-
     default:
       fprintf(stderr, "onig_print_compiled_byte_code: undefined code %d\n",
              *--bp);
http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/oniguruma/regexec.c?r1=1.5.4.2&r2=1.5.4.3&diff_format=u
Index: php-src/ext/mbstring/oniguruma/regexec.c
diff -u php-src/ext/mbstring/oniguruma/regexec.c:1.5.4.2 
php-src/ext/mbstring/oniguruma/regexec.c:1.5.4.3
--- php-src/ext/mbstring/oniguruma/regexec.c:1.5.4.2    Thu Aug 24 17:03:47 2006
+++ php-src/ext/mbstring/oniguruma/regexec.c    Thu Sep 21 16:37:20 2006
@@ -2071,53 +2071,6 @@
       }
       STAT_OP_OUT;
       break;
-
-    case OP_STATE_CHECK_ANYCHAR_STAR_PEEK_NEXT:
-      STAT_OP_IN(OP_STATE_CHECK_ANYCHAR_STAR_PEEK_NEXT);
-
-      GET_STATE_CHECK_NUM_INC(mem, p);
-      while (s < end) {
-       STATE_CHECK_VAL(scv, mem);
-       if (scv) goto fail;
-
-       if (*p == *s) {
-         STACK_PUSH_ALT_WITH_STATE_CHECK(p + 1, s, sprev, mem);
-       }
-       n = enc_len(encode, s);
-        DATA_ENSURE(n);
-        if (ONIGENC_IS_MBC_NEWLINE(encode, s, end))  goto fail;
-        sprev = s;
-        s += n;
-      }
-      p++;
-      STAT_OP_OUT;
-      break;
-
-    case OP_STATE_CHECK_ANYCHAR_ML_STAR_PEEK_NEXT:
-      STAT_OP_IN(OP_STATE_CHECK_ANYCHAR_ML_STAR_PEEK_NEXT);
-
-      GET_STATE_CHECK_NUM_INC(mem, p);
-      while (s < end) {
-       STATE_CHECK_VAL(scv, mem);
-       if (scv) goto fail;
-
-       if (*p == *s) {
-         STACK_PUSH_ALT_WITH_STATE_CHECK(p + 1, s, sprev, mem);
-       }
-       n = enc_len(encode, s);
-       if (n >1) {
-         DATA_ENSURE(n);
-         sprev = s;
-         s += n;
-       }
-       else {
-         sprev = s;
-         s++;
-       }
-      }
-      p++;
-      STAT_OP_OUT;
-      break;
 #endif /* USE_COMBINATION_EXPLOSION_CHECK */
 
     case OP_WORD:  STAT_OP_IN(OP_WORD);
@@ -2350,11 +2303,6 @@
       goto backref;
       break;
 
-    case OP_BACKREF3:  STAT_OP_IN(OP_BACKREF3);
-      mem = 3;
-      goto backref;
-      break;
-
     case OP_BACKREFN:  STAT_OP_IN(OP_BACKREFN);
       GET_MEMNUM_INC(mem, p);
     backref:
@@ -3118,19 +3066,19 @@
          (int )text, (int )text_end, (int )text_range);
 #endif
 
-  tlen1 = (target_end - target) - 1;
-  end = text_range + tlen1;
-  if (end > text_end)
-    end = text_end;
-
   tail = target_end - 1;
+  tlen1 = tail - target;
+  end = text_range;
+  if (end + tlen1 > text_end)
+    end = text_end - tlen1;
+
   s = text;
 
   if (IS_NULL(reg->int_map)) {
     while (s < end) {
       p = se = s + tlen1;
       t = tail;
-      while (*p == *t && t >= target) {
+      while (t >= target && *p == *t) {
         p--; t--;
       }
       if (t < target) return (UChar* )s;
@@ -3146,7 +3094,7 @@
     while (s < end) {
       p = se = s + tlen1;
       t = tail;
-      while (*p == *t && t >= target) {
+      while (t >= target && *p == *t) {
         p--; t--;
       }
       if (t < target) return (UChar* )s;
http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/oniguruma/regint.h?r1=1.5.4.3&r2=1.5.4.4&diff_format=u
Index: php-src/ext/mbstring/oniguruma/regint.h
diff -u php-src/ext/mbstring/oniguruma/regint.h:1.5.4.3 
php-src/ext/mbstring/oniguruma/regint.h:1.5.4.4
--- php-src/ext/mbstring/oniguruma/regint.h:1.5.4.3     Fri Aug 25 16:26:50 2006
+++ php-src/ext/mbstring/oniguruma/regint.h     Thu Sep 21 16:37:20 2006
@@ -59,9 +59,6 @@
 /* #define USE_UNICODE_FULL_RANGE_CTYPE */ /* --> move to regenc.h */
 #define USE_NAMED_GROUP
 #define USE_SUBEXP_CALL
-#ifdef HAVE_MBREGEX_BACKTRACK
-#define USE_COMBINATION_EXPLOSION_CHECK                 /* (X*)* */
-#endif /* HAVE_MBREGEX_BACKTRACK */
 #define USE_INFINITE_REPEAT_MONOMANIAC_MEM_STATUS_CHECK /* /(?:()|())*\2/ */
 #define USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE     /* /\n$/ =~ "\n" */
 #define USE_WARNING_REDUNDANT_NESTED_REPEAT_OPERATOR
@@ -89,6 +86,7 @@
 #define USE_VARIABLE_META_CHARS
 #define USE_WORD_BEGIN_END          /* "\<": word-begin, "\>": word-end */
 #define USE_POSIX_REGION_OPTION     /* needed for POSIX API support */
+/* #define USE_COMBINATION_EXPLOSION_CHECK */     /* (X*)* */
 /* #define USE_MULTI_THREAD_SYSTEM */
 #define THREAD_ATOMIC_START         /* depend on thread system */
 #define THREAD_ATOMIC_END           /* depend on thread system */
@@ -103,7 +101,9 @@
 #include "version.h"
 #include "rubysig.h"      /* for DEFER_INTS, ENABLE_INTS */
 
+#define USE_COMBINATION_EXPLOSION_CHECK        /* (X*)* */
 #define USE_MULTI_THREAD_SYSTEM
+
 #define THREAD_ATOMIC_START          DEFER_INTS
 #define THREAD_ATOMIC_END            ENABLE_INTS
 #define THREAD_PASS                  rb_thread_schedule()
@@ -600,7 +600,6 @@
 
   OP_BACKREF1,
   OP_BACKREF2,
-  OP_BACKREF3,
   OP_BACKREFN,
   OP_BACKREFN_IC,
   OP_BACKREF_MULTI,
@@ -651,9 +650,7 @@
   OP_STATE_CHECK_PUSH_OR_JUMP, /* check ok -> push, else jump  */
   OP_STATE_CHECK,              /* check only */
   OP_STATE_CHECK_ANYCHAR_STAR,
-  OP_STATE_CHECK_ANYCHAR_ML_STAR,
-  OP_STATE_CHECK_ANYCHAR_STAR_PEEK_NEXT,
-  OP_STATE_CHECK_ANYCHAR_ML_STAR_PEEK_NEXT
+  OP_STATE_CHECK_ANYCHAR_ML_STAR
 };
 
 typedef int RelAddrType;
@@ -747,7 +744,6 @@
 #define SIZE_OP_STATE_CHECK_PUSH       (SIZE_OPCODE + SIZE_STATE_CHECK_NUM + 
SIZE_RELADDR)
 #define SIZE_OP_STATE_CHECK_PUSH_OR_JUMP (SIZE_OPCODE + SIZE_STATE_CHECK_NUM + 
SIZE_RELADDR)
 #define SIZE_OP_STATE_CHECK_ANYCHAR_STAR (SIZE_OPCODE + SIZE_STATE_CHECK_NUM)
-#define SIZE_OP_STATE_CHECK_ANYCHAR_STAR_PEEK_NEXT (SIZE_OPCODE + 1 + 
SIZE_STATE_CHECK_NUM)
 #endif
 
 #define MC_ESC(enc)               (enc)->meta_char_table.esc

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

Reply via email to