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

Diff of /code/trunk/pcre_exec.c

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

revision 336 by ph10, Sat Apr 12 15:59:03 2008 UTC revision 341 by ph10, Sat Apr 19 16:41:04 2008 UTC
# Line 1433  for (;;) Line 1433  for (;;)
1433        {        {
1434        if (IS_NEWLINE(eptr)) RRETURN(MATCH_NOMATCH);        if (IS_NEWLINE(eptr)) RRETURN(MATCH_NOMATCH);
1435        }        }
1436        /* Fall through */
1437    
1438        case OP_ALLANY:
1439      if (eptr++ >= md->end_subject) RRETURN(MATCH_NOMATCH);      if (eptr++ >= md->end_subject) RRETURN(MATCH_NOMATCH);
1440      if (utf8)      if (utf8)
1441        while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++;        while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++;
# Line 2960  for (;;) Line 2963  for (;;)
2963            }            }
2964          break;          break;
2965    
2966            case OP_ALLANY:
2967            for (i = 1; i <= min; i++)
2968              {
2969              if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
2970              eptr++;
2971              while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++;
2972              }
2973            break;
2974    
2975          case OP_ANYBYTE:          case OP_ANYBYTE:
2976          eptr += min;          eptr += min;
2977          break;          break;
# Line 3179  for (;;) Line 3191  for (;;)
3191          else eptr += min;          else eptr += min;
3192          break;          break;
3193    
3194            case OP_ALLANY:
3195            eptr += min;
3196            break;
3197    
3198          case OP_ANYBYTE:          case OP_ANYBYTE:
3199          eptr += min;          eptr += min;
3200          break;          break;
# Line 3441  for (;;) Line 3457  for (;;)
3457            switch(ctype)            switch(ctype)
3458              {              {
3459              case OP_ANY:        /* This is the DOTALL case */              case OP_ANY:        /* This is the DOTALL case */
3460              break;              case OP_ALLANY:
   
3461              case OP_ANYBYTE:              case OP_ANYBYTE:
3462              break;              break;
3463    
# Line 3600  for (;;) Line 3615  for (;;)
3615            c = *eptr++;            c = *eptr++;
3616            switch(ctype)            switch(ctype)
3617              {              {
3618              case OP_ANY:   /* This is the DOTALL case */              case OP_ANY:     /* This is the DOTALL case */
3619              break;              case OP_ALLANY:
   
3620              case OP_ANYBYTE:              case OP_ANYBYTE:
3621              break;              break;
3622    
# Line 3896  for (;;) Line 3910  for (;;)
3910              }              }
3911            break;            break;
3912    
3913              case OP_ALLANY:
3914              if (max < INT_MAX)
3915                {
3916                for (i = min; i < max; i++)
3917                  {
3918                  if (eptr >= md->end_subject) break;
3919                  eptr++;
3920                  while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++;
3921                  }
3922                }
3923              else eptr = md->end_subject;   /* Unlimited UTF-8 repeat */
3924              break;
3925    
3926            /* The byte case is the same as non-UTF8 */            /* The byte case is the same as non-UTF8 */
3927    
3928            case OP_ANYBYTE:            case OP_ANYBYTE:
# Line 4090  for (;;) Line 4117  for (;;)
4117                }                }
4118              break;              break;
4119              }              }
4120            /* For DOTALL case, fall through and treat as \C */            /* For DOTALL case, fall through */
4121    
4122              case OP_ALLANY:
4123            case OP_ANYBYTE:            case OP_ANYBYTE:
4124            c = max - min;            c = max - min;
4125            if (c > (unsigned int)(md->end_subject - eptr))            if (c > (unsigned int)(md->end_subject - eptr))

Legend:
Removed from v.336  
changed lines
  Added in v.341

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12