/[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 1092 by chpe, Tue Oct 16 15:55:55 2012 UTC revision 1100 by chpe, Tue Oct 16 15:56:26 2012 UTC
# Line 92  because the offset vector is always a mu Line 92  because the offset vector is always a mu
92  static const char rep_min[] = { 0, 0, 1, 1, 0, 0 };  static const char rep_min[] = { 0, 0, 1, 1, 0, 0 };
93  static const char rep_max[] = { 0, 0, 0, 0, 1, 1 };  static const char rep_max[] = { 0, 0, 0, 0, 1, 1 };
94    
   
   
95  #ifdef PCRE_DEBUG  #ifdef PCRE_DEBUG
96  /*************************************************  /*************************************************
97  *        Debugging function to print chars       *  *        Debugging function to print chars       *
# Line 114  Returns:     nothing Line 112  Returns:     nothing
112  static void  static void
113  pchars(const pcre_uchar *p, int length, BOOL is_subject, match_data *md)  pchars(const pcre_uchar *p, int length, BOOL is_subject, match_data *md)
114  {  {
115  unsigned int c;  pcre_uint32 c;
116    BOOL utf = md->utf;
117  if (is_subject && length > md->end_subject - p) length = md->end_subject - p;  if (is_subject && length > md->end_subject - p) length = md->end_subject - p;
118  while (length-- > 0)  while (length-- > 0)
119    if (isprint(c = *(p++))) printf("%c", c); else printf("\\x%02x", c);    if (isprint(c = RAWUCHARINCTEST(p))) printf("%c", (char)c); else printf("\\x{%02x}", c);
120  }  }
121  #endif  #endif
122    
# Line 150  match_ref(int offset, register PCRE_PUCH Line 149  match_ref(int offset, register PCRE_PUCH
149  {  {
150  PCRE_PUCHAR eptr_start = eptr;  PCRE_PUCHAR eptr_start = eptr;
151  register PCRE_PUCHAR p = md->start_subject + md->offset_vector[offset];  register PCRE_PUCHAR p = md->start_subject + md->offset_vector[offset];
152    BOOL utf = md->utf;
153    
154  #ifdef PCRE_DEBUG  #ifdef PCRE_DEBUG
155  if (eptr >= md->end_subject)  if (eptr >= md->end_subject)
# Line 177  if (caseless) Line 177  if (caseless)
177    {    {
178  #ifdef SUPPORT_UTF  #ifdef SUPPORT_UTF
179  #ifdef SUPPORT_UCP  #ifdef SUPPORT_UCP
180    if (md->utf)    if (utf)
181      {      {
182      /* Match characters up to the end of the reference. NOTE: the number of      /* Match characters up to the end of the reference. NOTE: the number of
183      data units matched may differ, because in UTF-8 there are some characters      data units matched may differ, because in UTF-8 there are some characters
# Line 217  if (caseless) Line 217  if (caseless)
217      {      {
218      while (length-- > 0)      while (length-- > 0)
219        {        {
220          pcre_uchar cc, cp;
221        if (eptr >= md->end_subject) return -2;   /* Partial match */        if (eptr >= md->end_subject) return -2;   /* Partial match */
222        if (TABLE_GET(*p, md->lcc, *p) != TABLE_GET(*eptr, md->lcc, *eptr)) return -1;        cc = RAWUCHARTEST(eptr);
223          cp = RAWUCHARTEST(p);
224          if (TABLE_GET(cp, md->lcc, cp) != TABLE_GET(cc, md->lcc, cc)) return -1;
225        p++;        p++;
226        eptr++;        eptr++;
227        }        }
# Line 233  else Line 236  else
236    while (length-- > 0)    while (length-- > 0)
237      {      {
238      if (eptr >= md->end_subject) return -2;   /* Partial match */      if (eptr >= md->end_subject) return -2;   /* Partial match */
239      if (*p++ != *eptr++) return -1;      if (RAWUCHARINCTEST(p) != RAWUCHARINCTEST(eptr)) return -1;
240      }      }
241    }    }
242    
# Line 307  actually used in this definition. */ Line 310  actually used in this definition. */
310    }    }
311  #define RRETURN(ra) \  #define RRETURN(ra) \
312    { \    { \
313    printf("match() returned %d from line %d ", ra, __LINE__); \    printf("match() returned %d from line %d\n", ra, __LINE__); \
314    return ra; \    return ra; \
315    }    }
316  #else  #else
# Line 748  for (;;) Line 751  for (;;)
751      unaltered. */      unaltered. */
752    
753      else if (rrc == MATCH_SKIP_ARG &&      else if (rrc == MATCH_SKIP_ARG &&
754          STRCMP_UC_UC(ecode + 2, md->start_match_ptr) == 0)          STRCMP_UC_UC_TEST(ecode + 2, md->start_match_ptr) == 0)
755        {        {
756        md->start_match_ptr = eptr;        md->start_match_ptr = eptr;
757        RRETURN(MATCH_SKIP);        RRETURN(MATCH_SKIP);
# Line 2094  for (;;) Line 2097  for (;;)
2097              eptr + 1 >= md->end_subject &&              eptr + 1 >= md->end_subject &&
2098              NLBLOCK->nltype == NLTYPE_FIXED &&              NLBLOCK->nltype == NLTYPE_FIXED &&
2099              NLBLOCK->nllen == 2 &&              NLBLOCK->nllen == 2 &&
2100              *eptr == NLBLOCK->nl[0])              RAWUCHARTEST(eptr) == NLBLOCK->nl[0])
2101            {            {
2102            md->hitend = TRUE;            md->hitend = TRUE;
2103            if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);            if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);
# Line 2138  for (;;) Line 2141  for (;;)
2141            eptr + 1 >= md->end_subject &&            eptr + 1 >= md->end_subject &&
2142            NLBLOCK->nltype == NLTYPE_FIXED &&            NLBLOCK->nltype == NLTYPE_FIXED &&
2143            NLBLOCK->nllen == 2 &&            NLBLOCK->nllen == 2 &&
2144            *eptr == NLBLOCK->nl[0])            RAWUCHARTEST(eptr) == NLBLOCK->nl[0])
2145          {          {
2146          md->hitend = TRUE;          md->hitend = TRUE;
2147          if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);          if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);
# Line 2281  for (;;) Line 2284  for (;;)
2284          eptr + 1 >= md->end_subject &&          eptr + 1 >= md->end_subject &&
2285          NLBLOCK->nltype == NLTYPE_FIXED &&          NLBLOCK->nltype == NLTYPE_FIXED &&
2286          NLBLOCK->nllen == 2 &&          NLBLOCK->nllen == 2 &&
2287          *eptr == NLBLOCK->nl[0])          RAWUCHARTEST(eptr) == NLBLOCK->nl[0])
2288        {        {
2289        md->hitend = TRUE;        md->hitend = TRUE;
2290        if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);        if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);
# Line 2435  for (;;) Line 2438  for (;;)
2438          {          {
2439          SCHECK_PARTIAL();          SCHECK_PARTIAL();
2440          }          }
2441        else if (*eptr == CHAR_LF) eptr++;        else if (RAWUCHARTEST(eptr) == CHAR_LF) eptr++;
2442        break;        break;
2443    
2444        case CHAR_LF:        case CHAR_LF:
# Line 3145  for (;;) Line 3148  for (;;)
3148          CHECK_PARTIAL();             /* Not SCHECK_PARTIAL() */          CHECK_PARTIAL();             /* Not SCHECK_PARTIAL() */
3149          RRETURN(MATCH_NOMATCH);          RRETURN(MATCH_NOMATCH);
3150          }          }
3151        while (length-- > 0) if (*ecode++ != *eptr++) RRETURN(MATCH_NOMATCH);        while (length-- > 0) if (*ecode++ != RAWUCHARINC(eptr)) RRETURN(MATCH_NOMATCH);
3152        }        }
3153      else      else
3154  #endif  #endif
# Line 3185  for (;;) Line 3188  for (;;)
3188    
3189        if (fc < 128)        if (fc < 128)
3190          {          {
3191          if (md->lcc[fc]          pcre_uchar cc = RAWUCHAR(eptr);
3192              != TABLE_GET(*eptr, md->lcc, *eptr)) RRETURN(MATCH_NOMATCH);          if (md->lcc[fc] != TABLE_GET(cc, md->lcc, cc)) RRETURN(MATCH_NOMATCH);
3193          ecode++;          ecode++;
3194          eptr++;          eptr++;
3195          }          }
# Line 3434  for (;;) Line 3437  for (;;)
3437    
3438        for (i = 1; i <= min; i++)        for (i = 1; i <= min; i++)
3439          {          {
3440            pcre_uchar cc;
3441    
3442          if (eptr >= md->end_subject)          if (eptr >= md->end_subject)
3443            {            {
3444            SCHECK_PARTIAL();            SCHECK_PARTIAL();
3445            RRETURN(MATCH_NOMATCH);            RRETURN(MATCH_NOMATCH);
3446            }            }
3447          if (fc != *eptr && foc != *eptr) RRETURN(MATCH_NOMATCH);          cc = RAWUCHARTEST(eptr);
3448            if (fc != cc && foc != cc) RRETURN(MATCH_NOMATCH);
3449          eptr++;          eptr++;
3450          }          }
3451        if (min == max) continue;        if (min == max) continue;
# Line 3447  for (;;) Line 3453  for (;;)
3453          {          {
3454          for (fi = min;; fi++)          for (fi = min;; fi++)
3455            {            {
3456              pcre_uchar cc;
3457    
3458            RMATCH(eptr, ecode, offset_top, md, eptrb, RM24);            RMATCH(eptr, ecode, offset_top, md, eptrb, RM24);
3459            if (rrc != MATCH_NOMATCH) RRETURN(rrc);            if (rrc != MATCH_NOMATCH) RRETURN(rrc);
3460            if (fi >= max) RRETURN(MATCH_NOMATCH);            if (fi >= max) RRETURN(MATCH_NOMATCH);
# Line 3455  for (;;) Line 3463  for (;;)
3463              SCHECK_PARTIAL();              SCHECK_PARTIAL();
3464              RRETURN(MATCH_NOMATCH);              RRETURN(MATCH_NOMATCH);
3465              }              }
3466            if (fc != *eptr && foc != *eptr) RRETURN(MATCH_NOMATCH);            cc = RAWUCHARTEST(eptr);
3467              if (fc != cc && foc != cc) RRETURN(MATCH_NOMATCH);
3468            eptr++;            eptr++;
3469            }            }
3470          /* Control never gets here */          /* Control never gets here */
# Line 3465  for (;;) Line 3474  for (;;)
3474          pp = eptr;          pp = eptr;
3475          for (i = min; i < max; i++)          for (i = min; i < max; i++)
3476            {            {
3477              pcre_uchar cc;
3478    
3479            if (eptr >= md->end_subject)            if (eptr >= md->end_subject)
3480              {              {
3481              SCHECK_PARTIAL();              SCHECK_PARTIAL();
3482              break;              break;
3483              }              }
3484            if (fc != *eptr && foc != *eptr) break;            cc = RAWUCHARTEST(eptr);
3485              if (fc != cc && foc != cc) break;
3486            eptr++;            eptr++;
3487            }            }
3488    
# Line 3498  for (;;) Line 3510  for (;;)
3510            SCHECK_PARTIAL();            SCHECK_PARTIAL();
3511            RRETURN(MATCH_NOMATCH);            RRETURN(MATCH_NOMATCH);
3512            }            }
3513          if (fc != *eptr++) RRETURN(MATCH_NOMATCH);          if (fc != RAWUCHARINCTEST(eptr)) RRETURN(MATCH_NOMATCH);
3514          }          }
3515    
3516        if (min == max) continue;        if (min == max) continue;
# Line 3515  for (;;) Line 3527  for (;;)
3527              SCHECK_PARTIAL();              SCHECK_PARTIAL();
3528              RRETURN(MATCH_NOMATCH);              RRETURN(MATCH_NOMATCH);
3529              }              }
3530            if (fc != *eptr++) RRETURN(MATCH_NOMATCH);            if (fc != RAWUCHARINCTEST(eptr)) RRETURN(MATCH_NOMATCH);
3531            }            }
3532          /* Control never gets here */          /* Control never gets here */
3533          }          }
# Line 3529  for (;;) Line 3541  for (;;)
3541              SCHECK_PARTIAL();              SCHECK_PARTIAL();
3542              break;              break;
3543              }              }
3544            if (fc != *eptr) break;            if (fc != RAWUCHARTEST(eptr)) break;
3545            eptr++;            eptr++;
3546            }            }
3547          if (possessive) continue;          if (possessive) continue;
# Line 3699  for (;;) Line 3711  for (;;)
3711  #ifdef SUPPORT_UTF  #ifdef SUPPORT_UTF
3712        if (utf)        if (utf)
3713          {          {
3714          register unsigned int d;          register pcre_uint32 d;
3715          for (i = 1; i <= min; i++)          for (i = 1; i <= min; i++)
3716            {            {
3717            if (eptr >= md->end_subject)            if (eptr >= md->end_subject)
# Line 4270  for (;;) Line 4282  for (;;)
4282                eptr + 1 >= md->end_subject &&                eptr + 1 >= md->end_subject &&
4283                NLBLOCK->nltype == NLTYPE_FIXED &&                NLBLOCK->nltype == NLTYPE_FIXED &&
4284                NLBLOCK->nllen == 2 &&                NLBLOCK->nllen == 2 &&
4285                *eptr == NLBLOCK->nl[0])                RAWUCHAR(eptr) == NLBLOCK->nl[0])
4286              {              {
4287              md->hitend = TRUE;              md->hitend = TRUE;
4288              if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);              if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);
# Line 4312  for (;;) Line 4324  for (;;)
4324              default: RRETURN(MATCH_NOMATCH);              default: RRETURN(MATCH_NOMATCH);
4325    
4326              case CHAR_CR:              case CHAR_CR:
4327              if (eptr < md->end_subject && *eptr == CHAR_LF) eptr++;              if (eptr < md->end_subject && RAWUCHAR(eptr) == CHAR_LF) eptr++;
4328              break;              break;
4329    
4330              case CHAR_LF:              case CHAR_LF:
# Line 4416  for (;;) Line 4428  for (;;)
4428          case OP_DIGIT:          case OP_DIGIT:
4429          for (i = 1; i <= min; i++)          for (i = 1; i <= min; i++)
4430            {            {
4431              pcre_uchar cc;
4432    
4433            if (eptr >= md->end_subject)            if (eptr >= md->end_subject)
4434              {              {
4435              SCHECK_PARTIAL();              SCHECK_PARTIAL();
4436              RRETURN(MATCH_NOMATCH);              RRETURN(MATCH_NOMATCH);
4437              }              }
4438            if (*eptr >= 128 || (md->ctypes[*eptr] & ctype_digit) == 0)            cc = RAWUCHAR(eptr);
4439              if (cc >= 128 || (md->ctypes[cc] & ctype_digit) == 0)
4440              RRETURN(MATCH_NOMATCH);              RRETURN(MATCH_NOMATCH);
4441            eptr++;            eptr++;
4442            /* No need to skip more bytes - we know it's a 1-byte character */            /* No need to skip more bytes - we know it's a 1-byte character */
# Line 4431  for (;;) Line 4446  for (;;)
4446          case OP_NOT_WHITESPACE:          case OP_NOT_WHITESPACE:
4447          for (i = 1; i <= min; i++)          for (i = 1; i <= min; i++)
4448            {            {
4449              pcre_uchar cc;
4450    
4451            if (eptr >= md->end_subject)            if (eptr >= md->end_subject)
4452              {              {
4453              SCHECK_PARTIAL();              SCHECK_PARTIAL();
4454              RRETURN(MATCH_NOMATCH);              RRETURN(MATCH_NOMATCH);
4455              }              }
4456            if (*eptr < 128 && (md->ctypes[*eptr] & ctype_space) != 0)            cc = RAWUCHAR(eptr);
4457              if (cc < 128 && (md->ctypes[cc] & ctype_space) != 0)
4458              RRETURN(MATCH_NOMATCH);              RRETURN(MATCH_NOMATCH);
4459            eptr++;            eptr++;
4460            ACROSSCHAR(eptr < md->end_subject, *eptr, eptr++);            ACROSSCHAR(eptr < md->end_subject, *eptr, eptr++);
# Line 4446  for (;;) Line 4464  for (;;)
4464          case OP_WHITESPACE:          case OP_WHITESPACE:
4465          for (i = 1; i <= min; i++)          for (i = 1; i <= min; i++)
4466            {            {
4467              pcre_uchar cc;
4468    
4469            if (eptr >= md->end_subject)            if (eptr >= md->end_subject)
4470              {              {
4471              SCHECK_PARTIAL();              SCHECK_PARTIAL();
4472              RRETURN(MATCH_NOMATCH);              RRETURN(MATCH_NOMATCH);
4473              }              }
4474            if (*eptr >= 128 || (md->ctypes[*eptr] & ctype_space) == 0)            cc = RAWUCHAR(eptr);
4475              if (cc >= 128 || (md->ctypes[cc] & ctype_space) == 0)
4476              RRETURN(MATCH_NOMATCH);              RRETURN(MATCH_NOMATCH);
4477            eptr++;            eptr++;
4478            /* No need to skip more bytes - we know it's a 1-byte character */            /* No need to skip more bytes - we know it's a 1-byte character */
# Line 4461  for (;;) Line 4482  for (;;)
4482          case OP_NOT_WORDCHAR:          case OP_NOT_WORDCHAR:
4483          for (i = 1; i <= min; i++)          for (i = 1; i <= min; i++)
4484            {            {
4485              pcre_uchar cc;
4486    
4487            if (eptr >= md->end_subject)            if (eptr >= md->end_subject)
4488              {              {
4489              SCHECK_PARTIAL();              SCHECK_PARTIAL();
4490              RRETURN(MATCH_NOMATCH);              RRETURN(MATCH_NOMATCH);
4491              }              }
4492            if (*eptr < 128 && (md->ctypes[*eptr] & ctype_word) != 0)            cc = RAWUCHAR(eptr);
4493              if (cc < 128 && (md->ctypes[cc] & ctype_word) != 0)
4494              RRETURN(MATCH_NOMATCH);              RRETURN(MATCH_NOMATCH);
4495            eptr++;            eptr++;
4496            ACROSSCHAR(eptr < md->end_subject, *eptr, eptr++);            ACROSSCHAR(eptr < md->end_subject, *eptr, eptr++);
# Line 4476  for (;;) Line 4500  for (;;)
4500          case OP_WORDCHAR:          case OP_WORDCHAR:
4501          for (i = 1; i <= min; i++)          for (i = 1; i <= min; i++)
4502            {            {
4503              pcre_uchar cc;
4504    
4505            if (eptr >= md->end_subject)            if (eptr >= md->end_subject)
4506              {              {
4507              SCHECK_PARTIAL();              SCHECK_PARTIAL();
4508              RRETURN(MATCH_NOMATCH);              RRETURN(MATCH_NOMATCH);
4509              }              }
4510            if (*eptr >= 128 || (md->ctypes[*eptr] & ctype_word) == 0)            cc = RAWUCHAR(eptr);
4511              if (cc >= 128 || (md->ctypes[cc] & ctype_word) == 0)
4512              RRETURN(MATCH_NOMATCH);              RRETURN(MATCH_NOMATCH);
4513            eptr++;            eptr++;
4514            /* No need to skip more bytes - we know it's a 1-byte character */            /* No need to skip more bytes - we know it's a 1-byte character */
# Line 5028  for (;;) Line 5055  for (;;)
5055                {                {
5056                default: RRETURN(MATCH_NOMATCH);                default: RRETURN(MATCH_NOMATCH);
5057                case CHAR_CR:                case CHAR_CR:
5058                if (eptr < md->end_subject && *eptr == CHAR_LF) eptr++;                if (eptr < md->end_subject && RAWUCHAR(eptr) == CHAR_LF) eptr++;
5059                break;                break;
5060    
5061                case CHAR_LF:                case CHAR_LF:
# Line 5532  for (;;) Line 5559  for (;;)
5559                    eptr + 1 >= md->end_subject &&                    eptr + 1 >= md->end_subject &&
5560                    NLBLOCK->nltype == NLTYPE_FIXED &&                    NLBLOCK->nltype == NLTYPE_FIXED &&
5561                    NLBLOCK->nllen == 2 &&                    NLBLOCK->nllen == 2 &&
5562                    *eptr == NLBLOCK->nl[0])                    RAWUCHAR(eptr) == NLBLOCK->nl[0])
5563                  {                  {
5564                  md->hitend = TRUE;                  md->hitend = TRUE;
5565                  if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);                  if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);
# Line 5558  for (;;) Line 5585  for (;;)
5585                    eptr + 1 >= md->end_subject &&                    eptr + 1 >= md->end_subject &&
5586                    NLBLOCK->nltype == NLTYPE_FIXED &&                    NLBLOCK->nltype == NLTYPE_FIXED &&
5587                    NLBLOCK->nllen == 2 &&                    NLBLOCK->nllen == 2 &&
5588                    *eptr == NLBLOCK->nl[0])                    RAWUCHAR(eptr) == NLBLOCK->nl[0])
5589                  {                  {
5590                  md->hitend = TRUE;                  md->hitend = TRUE;
5591                  if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);                  if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);
# Line 5615  for (;;) Line 5642  for (;;)
5642              if (c == CHAR_CR)              if (c == CHAR_CR)
5643                {                {
5644                if (++eptr >= md->end_subject) break;                if (++eptr >= md->end_subject) break;
5645                if (*eptr == CHAR_LF) eptr++;                if (RAWUCHAR(eptr) == CHAR_LF) eptr++;
5646                }                }
5647              else              else
5648                {                {
# Line 5783  for (;;) Line 5810  for (;;)
5810            if (rrc != MATCH_NOMATCH) RRETURN(rrc);            if (rrc != MATCH_NOMATCH) RRETURN(rrc);
5811            if (eptr-- == pp) break;        /* Stop if tried at original pos */            if (eptr-- == pp) break;        /* Stop if tried at original pos */
5812            BACKCHAR(eptr);            BACKCHAR(eptr);
5813            if (ctype == OP_ANYNL && eptr > pp  && *eptr == CHAR_NL &&            if (ctype == OP_ANYNL && eptr > pp  && RAWUCHAR(eptr) == CHAR_NL &&
5814                eptr[-1] == CHAR_CR) eptr--;                RAWUCHAR(eptr - 1) == CHAR_CR) eptr--;
5815            }            }
5816          }          }
5817        else        else
# Line 6629  for(;;) Line 6656  for(;;)
6656    
6657      if (has_first_char)      if (has_first_char)
6658        {        {
6659          pcre_uchar smc;
6660    
6661        if (first_char != first_char2)        if (first_char != first_char2)
6662          while (start_match < end_subject &&          while (start_match < end_subject &&
6663              *start_match != first_char && *start_match != first_char2)            (smc = RAWUCHARTEST(start_match)) != first_char && smc != first_char2)
6664            start_match++;            start_match++;
6665        else        else
6666          while (start_match < end_subject && *start_match != first_char)          while (start_match < end_subject && RAWUCHARTEST(start_match) != first_char)
6667            start_match++;            start_match++;
6668        }        }
6669    
# Line 6666  for(;;) Line 6695  for(;;)
6695          if (start_match[-1] == CHAR_CR &&          if (start_match[-1] == CHAR_CR &&
6696               (md->nltype == NLTYPE_ANY || md->nltype == NLTYPE_ANYCRLF) &&               (md->nltype == NLTYPE_ANY || md->nltype == NLTYPE_ANYCRLF) &&
6697               start_match < end_subject &&               start_match < end_subject &&
6698               *start_match == CHAR_NL)               RAWUCHARTEST(start_match) == CHAR_NL)
6699            start_match++;            start_match++;
6700          }          }
6701        }        }
# Line 6677  for(;;) Line 6706  for(;;)
6706        {        {
6707        while (start_match < end_subject)        while (start_match < end_subject)
6708          {          {
6709          register unsigned int c = *start_match;          register pcre_uint32 c = RAWUCHARTEST(start_match);
6710  #ifndef COMPILE_PCRE8  #ifndef COMPILE_PCRE8
6711          if (c > 255) c = 255;          if (c > 255) c = 255;
6712  #endif  #endif
# Line 6745  for(;;) Line 6774  for(;;)
6774            {            {
6775            while (p < end_subject)            while (p < end_subject)
6776              {              {
6777              register pcre_uint32 pp = *p++;              register pcre_uint32 pp = RAWUCHARINCTEST(p);
6778              if (pp == req_char || pp == req_char2) { p--; break; }              if (pp == req_char || pp == req_char2) { p--; break; }
6779              }              }
6780            }            }
# Line 6753  for(;;) Line 6782  for(;;)
6782            {            {
6783            while (p < end_subject)            while (p < end_subject)
6784              {              {
6785              if (*p++ == req_char) { p--; break; }              if (RAWUCHARINCTEST(p) == req_char) { p--; break; }
6786              }              }
6787            }            }
6788    

Legend:
Removed from v.1092  
changed lines
  Added in v.1100

  ViewVC Help
Powered by ViewVC 1.1.5