/[pcre]/code/trunk/pcre_study.c
ViewVC logotype

Diff of /code/trunk/pcre_study.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 708 by ph10, Fri Sep 23 11:03:03 2011 UTC revision 835 by ph10, Wed Dec 28 16:10:09 2011 UTC
# Line 127  for (;;) Line 127  for (;;)
127      case OP_BRAPOS:      case OP_BRAPOS:
128      case OP_SBRAPOS:      case OP_SBRAPOS:
129      case OP_ONCE:      case OP_ONCE:
130        case OP_ONCE_NC:
131      d = find_minlength(cc, startcode, options, recurse_depth);      d = find_minlength(cc, startcode, options, recurse_depth);
132      if (d < 0) return d;      if (d < 0) return d;
133      branchlength += d;      branchlength += d;
# Line 285  for (;;) Line 286  for (;;)
286      cc++;      cc++;
287      break;      break;
288    
289      /* The single-byte matcher means we can't proceed in UTF-8 mode */      /* The single-byte matcher means we can't proceed in UTF-8 mode. (In
290        non-UTF-8 mode \C will actually be turned into OP_ALLANY, so won't ever
291        appear, but leave the code, just in case.) */
292    
293      case OP_ANYBYTE:      case OP_ANYBYTE:
294  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
# Line 422  for (;;) Line 425  for (;;)
425    
426      case OP_RECURSE:      case OP_RECURSE:
427      cs = ce = (uschar *)startcode + GET(cc, 1);      cs = ce = (uschar *)startcode + GET(cc, 1);
     if (cs == NULL) return -2;  
428      do ce += GET(ce, 1); while (*ce == OP_ALT);      do ce += GET(ce, 1); while (*ce == OP_ALT);
429      if ((cc > cs && cc < ce) || recurse_depth > 10)      if ((cc > cs && cc < ce) || recurse_depth > 10)
430        had_recurse = TRUE;        had_recurse = TRUE;
# Line 491  for (;;) Line 493  for (;;)
493      case OP_MARK:      case OP_MARK:
494      case OP_PRUNE_ARG:      case OP_PRUNE_ARG:
495      case OP_SKIP_ARG:      case OP_SKIP_ARG:
     cc += _pcre_OP_lengths[op] + cc[1];  
     break;  
   
496      case OP_THEN_ARG:      case OP_THEN_ARG:
497      cc += _pcre_OP_lengths[op] + cc[1+LINK_SIZE];      cc += _pcre_OP_lengths[op] + cc[1];
498      break;      break;
499    
500      /* The remaining opcodes are just skipped over. */      /* The remaining opcodes are just skipped over. */
# Line 810  do Line 809  do
809        case OP_CBRAPOS:        case OP_CBRAPOS:
810        case OP_SCBRAPOS:        case OP_SCBRAPOS:
811        case OP_ONCE:        case OP_ONCE:
812          case OP_ONCE_NC:
813        case OP_ASSERT:        case OP_ASSERT:
814        rc = set_start_bits(tcode, start_bits, utf8, cd);        rc = set_start_bits(tcode, start_bits, utf8, cd);
815        if (rc == SSB_FAIL || rc == SSB_UNKNOWN) return rc;        if (rc == SSB_FAIL || rc == SSB_UNKNOWN) return rc;

Legend:
Removed from v.708  
changed lines
  Added in v.835

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12