/[pcre]/code/branches/pcre16/pcre_exec.c
ViewVC logotype

Diff of /code/branches/pcre16/pcre_exec.c

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

revision 774 by zherczeg, Thu Dec 1 06:08:45 2011 UTC revision 781 by zherczeg, Sat Dec 3 07:58:30 2011 UTC
# Line 183  if (caseless) Line 183  if (caseless)
183    {    {
184  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
185  #ifdef SUPPORT_UCP  #ifdef SUPPORT_UCP
186    if (md->utf8)    if (md->utf)
187      {      {
188      /* 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
189      bytes matched may differ, because there are some characters whose upper and      bytes matched may differ, because there are some characters whose upper and
# Line 385  typedef struct heapframe { Line 385  typedef struct heapframe {
385    int Xprop_value;    int Xprop_value;
386    int Xprop_fail_result;    int Xprop_fail_result;
387    int Xoclength;    int Xoclength;
388    pcre_uint8 Xocchars[8];    pcre_uchar Xocchars[6];
389  #endif  #endif
390    
391    int Xcodelink;    int Xcodelink;
# Line 450  the subject. */ Line 450  the subject. */
450    
451    
452  /* Performance note: It might be tempting to extract commonly used fields from  /* Performance note: It might be tempting to extract commonly used fields from
453  the md structure (e.g. utf8, end_subject) into individual variables to improve  the md structure (e.g. utf, end_subject) into individual variables to improve
454  performance. Tests using gcc on a SPARC disproved this; in the first case, it  performance. Tests using gcc on a SPARC disproved this; in the first case, it
455  made performance worse.  made performance worse.
456    
# Line 485  so they can be ordinary variables in all Line 485  so they can be ordinary variables in all
485  register int  rrc;         /* Returns from recursive calls */  register int  rrc;         /* Returns from recursive calls */
486  register int  i;           /* Used for loops not involving calls to RMATCH() */  register int  i;           /* Used for loops not involving calls to RMATCH() */
487  register unsigned int c;   /* Character values not kept over RMATCH() calls */  register unsigned int c;   /* Character values not kept over RMATCH() calls */
488  register BOOL utf8;        /* Local copy of UTF-8 flag for speed */  register BOOL utf;         /* Local copy of UTF flag for speed */
489    
490  BOOL minimize, possessive; /* Quantifier options */  BOOL minimize, possessive; /* Quantifier options */
491  BOOL caseless;  BOOL caseless;
# Line 606  int prop_type; Line 606  int prop_type;
606  int prop_value;  int prop_value;
607  int prop_fail_result;  int prop_fail_result;
608  int oclength;  int oclength;
609  pcre_uint8 occhars[8];  pcre_uchar occhars[6];
610  #endif  #endif
611    
612  int codelink;  int codelink;
# Line 660  complicated macro. It has to be used in Line 660  complicated macro. It has to be used in
660  however, impact performance when true recursion is being used. */  however, impact performance when true recursion is being used. */
661    
662  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
663  utf8 = md->utf8;       /* Local copy of the flag */  utf = md->utf;       /* Local copy of the flag */
664  #else  #else
665  utf8 = FALSE;  utf = FALSE;
666  #endif  #endif
667    
668  /* First check that we haven't called match() too many times, or that we  /* First check that we haven't called match() too many times, or that we
# Line 1597  for (;;) Line 1597  for (;;)
1597    
1598      case OP_REVERSE:      case OP_REVERSE:
1599  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
1600      if (utf8)      if (utf)
1601        {        {
1602        i = GET(ecode, 1);        i = GET(ecode, 1);
1603        while (i-- > 0)        while (i-- > 0)
# Line 2070  for (;;) Line 2070  for (;;)
2070        partial matching. */        partial matching. */
2071    
2072  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
2073        if (utf8)        if (utf)
2074          {          {
2075          /* Get status of previous character */          /* Get status of previous character */
2076    
# Line 2189  for (;;) Line 2189  for (;;)
2189        MRRETURN(MATCH_NOMATCH);        MRRETURN(MATCH_NOMATCH);
2190        }        }
2191      eptr++;      eptr++;
2192      if (utf8) while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++;      if (utf) while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++;
2193      ecode++;      ecode++;
2194      break;      break;
2195    
# Line 2546  for (;;) Line 2546  for (;;)
2546      while (eptr < md->end_subject)      while (eptr < md->end_subject)
2547        {        {
2548        int len = 1;        int len = 1;
2549        if (!utf8) c = *eptr; else { GETCHARLEN(c, eptr, len); }        if (!utf) c = *eptr; else { GETCHARLEN(c, eptr, len); }
2550        if (UCD_CATEGORY(c) != ucp_M) break;        if (UCD_CATEGORY(c) != ucp_M) break;
2551        eptr += len;        eptr += len;
2552        }        }
# Line 2744  for (;;) Line 2744  for (;;)
2744        /* First, ensure the minimum number of matches are present. */        /* First, ensure the minimum number of matches are present. */
2745    
2746  #ifdef SUPPORT_UTF  #ifdef SUPPORT_UTF
2747        /* UTF-8 mode */        if (utf)
       if (utf8)  
2748          {          {
2749          for (i = 1; i <= min; i++)          for (i = 1; i <= min; i++)
2750            {            {
# Line 2765  for (;;) Line 2764  for (;;)
2764          }          }
2765        else        else
2766  #endif  #endif
2767        /* Not UTF-8 mode */        /* Not UTF mode */
2768          {          {
2769          for (i = 1; i <= min; i++)          for (i = 1; i <= min; i++)
2770            {            {
# Line 2797  for (;;) Line 2796  for (;;)
2796        if (minimize)        if (minimize)
2797          {          {
2798  #ifdef SUPPORT_UTF  #ifdef SUPPORT_UTF
2799          /* UTF-8 mode */          if (utf)
         if (utf8)  
2800            {            {
2801            for (fi = min;; fi++)            for (fi = min;; fi++)
2802              {              {
# Line 2821  for (;;) Line 2819  for (;;)
2819            }            }
2820          else          else
2821  #endif  #endif
2822          /* Not UTF-8 mode */          /* Not UTF mode */
2823            {            {
2824            for (fi = min;; fi++)            for (fi = min;; fi++)
2825              {              {
# Line 2854  for (;;) Line 2852  for (;;)
2852          pp = eptr;          pp = eptr;
2853    
2854  #ifdef SUPPORT_UTF  #ifdef SUPPORT_UTF
2855          /* UTF mode */          if (utf)
         if (utf8)  
2856            {            {
2857            for (i = min; i < max; i++)            for (i = min; i < max; i++)
2858              {              {
# Line 3024  for (;;) Line 3021  for (;;)
3021            if (rrc != MATCH_NOMATCH) RRETURN(rrc);            if (rrc != MATCH_NOMATCH) RRETURN(rrc);
3022            if (eptr-- == pp) break;        /* Stop if tried at original pos */            if (eptr-- == pp) break;        /* Stop if tried at original pos */
3023  #ifdef SUPPORT_UTF  #ifdef SUPPORT_UTF
3024            if (utf8) BACKCHAR(eptr);            if (utf) BACKCHAR(eptr);
3025  #endif  #endif
3026            }            }
3027          MRRETURN(MATCH_NOMATCH);          MRRETURN(MATCH_NOMATCH);
# Line 3038  for (;;) Line 3035  for (;;)
3035    
3036      case OP_CHAR:      case OP_CHAR:
3037  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
3038      if (utf8)      if (utf)
3039        {        {
3040        length = 1;        length = 1;
3041        ecode++;        ecode++;
# Line 3052  for (;;) Line 3049  for (;;)
3049        }        }
3050      else      else
3051  #endif  #endif
3052        /* Not UTF mode */
     /* Non-UTF-8 mode */  
3053        {        {
3054        if (md->end_subject - eptr < 1)        if (md->end_subject - eptr < 1)
3055          {          {
# Line 3069  for (;;) Line 3065  for (;;)
3065    
3066      case OP_CHARI:      case OP_CHARI:
3067  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
3068      if (utf8)      if (utf)
3069        {        {
3070        length = 1;        length = 1;
3071        ecode++;        ecode++;
# Line 3112  for (;;) Line 3108  for (;;)
3108      else      else
3109  #endif   /* SUPPORT_UTF8 */  #endif   /* SUPPORT_UTF8 */
3110    
3111      /* Non-UTF-8 mode */      /* Not UTF mode */
3112        {        {
3113        if (md->end_subject - eptr < 1)        if (md->end_subject - eptr < 1)
3114          {          {
# Line 3193  for (;;) Line 3189  for (;;)
3189    
3190      REPEATCHAR:      REPEATCHAR:
3191  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
3192      if (utf8)      if (utf)
3193        {        {
3194        length = 1;        length = 1;
3195        charptr = ecode;        charptr = ecode;
# Line 3209  for (;;) Line 3205  for (;;)
3205          unsigned int othercase;          unsigned int othercase;
3206          if (op >= OP_STARI &&     /* Caseless */          if (op >= OP_STARI &&     /* Caseless */
3207              (othercase = UCD_OTHERCASE(fc)) != fc)              (othercase = UCD_OTHERCASE(fc)) != fc)
3208            oclength = PRIV(ord2utf8)(othercase, occhars);            oclength = PRIV(ord2utf)(othercase, occhars);
3209          else oclength = 0;          else oclength = 0;
3210  #endif  /* SUPPORT_UCP */  #endif  /* SUPPORT_UCP */
3211    
# Line 3220  for (;;) Line 3216  for (;;)
3216  #ifdef SUPPORT_UCP  #ifdef SUPPORT_UCP
3217            else if (oclength > 0 &&            else if (oclength > 0 &&
3218                     eptr <= md->end_subject - oclength &&                     eptr <= md->end_subject - oclength &&
3219                     memcmp(eptr, occhars, oclength) == 0) eptr += oclength;                     memcmp(eptr, occhars, IN_UCHARS(oclength)) == 0) eptr += oclength;
3220  #endif  /* SUPPORT_UCP */  #endif  /* SUPPORT_UCP */
3221            else            else
3222              {              {
# Line 3243  for (;;) Line 3239  for (;;)
3239  #ifdef SUPPORT_UCP  #ifdef SUPPORT_UCP
3240              else if (oclength > 0 &&              else if (oclength > 0 &&
3241                       eptr <= md->end_subject - oclength &&                       eptr <= md->end_subject - oclength &&
3242                       memcmp(eptr, occhars, oclength) == 0) eptr += oclength;                       memcmp(eptr, occhars, IN_UCHARS(oclength)) == 0) eptr += oclength;
3243  #endif  /* SUPPORT_UCP */  #endif  /* SUPPORT_UCP */
3244              else              else
3245                {                {
# Line 3264  for (;;) Line 3260  for (;;)
3260  #ifdef SUPPORT_UCP  #ifdef SUPPORT_UCP
3261              else if (oclength > 0 &&              else if (oclength > 0 &&
3262                       eptr <= md->end_subject - oclength &&                       eptr <= md->end_subject - oclength &&
3263                       memcmp(eptr, occhars, oclength) == 0) eptr += oclength;                       memcmp(eptr, occhars, IN_UCHARS(oclength)) == 0) eptr += oclength;
3264  #endif  /* SUPPORT_UCP */  #endif  /* SUPPORT_UCP */
3265              else              else
3266                {                {
# Line 3548  for (;;) Line 3544  for (;;)
3544        fc = md->lcc[fc];        fc = md->lcc[fc];
3545    
3546  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
3547        /* UTF-8 mode */        if (utf)
       if (utf8)  
3548          {          {
3549          register unsigned int d;          register unsigned int d;
3550          for (i = 1; i <= min; i++)          for (i = 1; i <= min; i++)
# Line 3566  for (;;) Line 3561  for (;;)
3561          }          }
3562        else        else
3563  #endif  #endif
3564          /* Not UTF mode */
       /* Not UTF-8 mode */  
3565          {          {
3566          for (i = 1; i <= min; i++)          for (i = 1; i <= min; i++)
3567            {            {
# Line 3585  for (;;) Line 3579  for (;;)
3579        if (minimize)        if (minimize)
3580          {          {
3581  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
3582          /* UTF-8 mode */          if (utf)
         if (utf8)  
3583            {            {
3584            register unsigned int d;            register unsigned int d;
3585            for (fi = min;; fi++)            for (fi = min;; fi++)
# Line 3606  for (;;) Line 3599  for (;;)
3599            }            }
3600          else          else
3601  #endif  #endif
3602          /* Not UTF-8 mode */          /* Not UTF mode */
3603            {            {
3604            for (fi = min;; fi++)            for (fi = min;; fi++)
3605              {              {
# Line 3631  for (;;) Line 3624  for (;;)
3624          pp = eptr;          pp = eptr;
3625    
3626  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
3627          /* UTF-8 mode */          if (utf)
         if (utf8)  
3628            {            {
3629            register unsigned int d;            register unsigned int d;
3630            for (i = min; i < max; i++)            for (i = min; i < max; i++)
# Line 3659  for (;;) Line 3651  for (;;)
3651            }            }
3652          else          else
3653  #endif  #endif
3654          /* Not UTF-8 mode */          /* Not UTF mode */
3655            {            {
3656            for (i = min; i < max; i++)            for (i = min; i < max; i++)
3657              {              {
# Line 3690  for (;;) Line 3682  for (;;)
3682      else      else
3683        {        {
3684  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
3685        /* UTF-8 mode */        if (utf)
       if (utf8)  
3686          {          {
3687          register unsigned int d;          register unsigned int d;
3688          for (i = 1; i <= min; i++)          for (i = 1; i <= min; i++)
# Line 3707  for (;;) Line 3698  for (;;)
3698          }          }
3699        else        else
3700  #endif  #endif
3701        /* Not UTF-8 mode */        /* Not UTF mode */
3702          {          {
3703          for (i = 1; i <= min; i++)          for (i = 1; i <= min; i++)
3704            {            {
# Line 3725  for (;;) Line 3716  for (;;)
3716        if (minimize)        if (minimize)
3717          {          {
3718  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
3719          /* UTF-8 mode */          if (utf)
         if (utf8)  
3720            {            {
3721            register unsigned int d;            register unsigned int d;
3722            for (fi = min;; fi++)            for (fi = min;; fi++)
# Line 3745  for (;;) Line 3735  for (;;)
3735            }            }
3736          else          else
3737  #endif  #endif
3738          /* Not UTF-8 mode */          /* Not UTF mode */
3739            {            {
3740            for (fi = min;; fi++)            for (fi = min;; fi++)
3741              {              {
# Line 3770  for (;;) Line 3760  for (;;)
3760          pp = eptr;          pp = eptr;
3761    
3762  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
3763          /* UTF-8 mode */          if (utf)
         if (utf8)  
3764            {            {
3765            register unsigned int d;            register unsigned int d;
3766            for (i = min; i < max; i++)            for (i = min; i < max; i++)
# Line 3797  for (;;) Line 3786  for (;;)
3786            }            }
3787          else          else
3788  #endif  #endif
3789          /* Not UTF-8 mode */          /* Not UTF mode */
3790            {            {
3791            for (i = min; i < max; i++)            for (i = min; i < max; i++)
3792              {              {
# Line 4073  for (;;) Line 4062  for (;;)
4062            while (eptr < md->end_subject)            while (eptr < md->end_subject)
4063              {              {
4064              int len = 1;              int len = 1;
4065              if (!utf8) c = *eptr; else { GETCHARLEN(c, eptr, len); }              if (!utf) c = *eptr; else { GETCHARLEN(c, eptr, len); }
4066              if (UCD_CATEGORY(c) != ucp_M) break;              if (UCD_CATEGORY(c) != ucp_M) break;
4067              eptr += len;              eptr += len;
4068              }              }
# Line 4086  for (;;) Line 4075  for (;;)
4075  /* Handle all other cases when the coding is UTF-8 */  /* Handle all other cases when the coding is UTF-8 */
4076    
4077  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
4078        if (utf8) switch(ctype)        if (utf) switch(ctype)
4079          {          {
4080          case OP_ANY:          case OP_ANY:
4081          for (i = 1; i <= min; i++)          for (i = 1; i <= min; i++)
# Line 4794  for (;;) Line 4783  for (;;)
4783            while (eptr < md->end_subject)            while (eptr < md->end_subject)
4784              {              {
4785              int len = 1;              int len = 1;
4786              if (!utf8) c = *eptr; else { GETCHARLEN(c, eptr, len); }              if (!utf) c = *eptr; else { GETCHARLEN(c, eptr, len); }
4787              if (UCD_CATEGORY(c) != ucp_M) break;              if (UCD_CATEGORY(c) != ucp_M) break;
4788              eptr += len;              eptr += len;
4789              }              }
# Line 4804  for (;;) Line 4793  for (;;)
4793  #endif     /* SUPPORT_UCP */  #endif     /* SUPPORT_UCP */
4794    
4795  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
4796        /* UTF-8 mode */        if (utf)
       if (utf8)  
4797          {          {
4798          for (fi = min;; fi++)          for (fi = min;; fi++)
4799            {            {
# Line 4968  for (;;) Line 4956  for (;;)
4956          }          }
4957        else        else
4958  #endif  #endif
4959        /* Not UTF-8 mode */        /* Not UTF mode */
4960          {          {
4961          for (fi = min;; fi++)          for (fi = min;; fi++)
4962            {            {
# Line 5267  for (;;) Line 5255  for (;;)
5255            RMATCH(eptr, ecode, offset_top, md, eptrb, RM44);            RMATCH(eptr, ecode, offset_top, md, eptrb, RM44);
5256            if (rrc != MATCH_NOMATCH) RRETURN(rrc);            if (rrc != MATCH_NOMATCH) RRETURN(rrc);
5257            if (eptr-- == pp) break;        /* Stop if tried at original pos */            if (eptr-- == pp) break;        /* Stop if tried at original pos */
5258            if (utf8) BACKCHAR(eptr);            if (utf) BACKCHAR(eptr);
5259            }            }
5260          }          }
5261    
# Line 5284  for (;;) Line 5272  for (;;)
5272              SCHECK_PARTIAL();              SCHECK_PARTIAL();
5273              break;              break;
5274              }              }
5275            if (!utf8) c = *eptr; else { GETCHARLEN(c, eptr, len); }            if (!utf) c = *eptr; else { GETCHARLEN(c, eptr, len); }
5276            if (UCD_CATEGORY(c) == ucp_M) break;            if (UCD_CATEGORY(c) == ucp_M) break;
5277            eptr += len;            eptr += len;
5278            while (eptr < md->end_subject)            while (eptr < md->end_subject)
5279              {              {
5280              len = 1;              len = 1;
5281              if (!utf8) c = *eptr; else { GETCHARLEN(c, eptr, len); }              if (!utf) c = *eptr; else { GETCHARLEN(c, eptr, len); }
5282              if (UCD_CATEGORY(c) != ucp_M) break;              if (UCD_CATEGORY(c) != ucp_M) break;
5283              eptr += len;              eptr += len;
5284              }              }
# Line 5307  for (;;) Line 5295  for (;;)
5295            if (eptr-- == pp) break;        /* Stop if tried at original pos */            if (eptr-- == pp) break;        /* Stop if tried at original pos */
5296            for (;;)                        /* Move back over one extended */            for (;;)                        /* Move back over one extended */
5297              {              {
5298              if (!utf8) c = *eptr; else              if (!utf) c = *eptr; else
5299                {                {
5300                BACKCHAR(eptr);                BACKCHAR(eptr);
5301                GETCHAR(c, eptr);                GETCHAR(c, eptr);
# Line 5322  for (;;) Line 5310  for (;;)
5310  #endif   /* SUPPORT_UCP */  #endif   /* SUPPORT_UCP */
5311    
5312  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
5313        /* UTF-8 mode */        if (utf)
   
       if (utf8)  
5314          {          {
5315          switch(ctype)          switch(ctype)
5316            {            {
# Line 5607  for (;;) Line 5593  for (;;)
5593          }          }
5594        else        else
5595  #endif  /* SUPPORT_UTF8 */  #endif  /* SUPPORT_UTF8 */
5596          /* Not UTF mode */
       /* Not UTF-8 mode */  
5597          {          {
5598          switch(ctype)          switch(ctype)
5599            {            {
# Line 5969  BOOL using_temporary_offsets = FALSE; Line 5954  BOOL using_temporary_offsets = FALSE;
5954  BOOL anchored;  BOOL anchored;
5955  BOOL startline;  BOOL startline;
5956  BOOL firstline;  BOOL firstline;
5957  BOOL utf8;  BOOL utf;
5958  BOOL has_first_char = FALSE;  BOOL has_first_char = FALSE;
5959  BOOL has_req_char = FALSE;  BOOL has_req_char = FALSE;
5960  pcre_uchar first_char = 0;  pcre_uchar first_char = 0;
# Line 6005  follows immediately afterwards. Other va Line 5990  follows immediately afterwards. Other va
5990  during "normal" pcre_exec() processing, not when the JIT support is in use,  during "normal" pcre_exec() processing, not when the JIT support is in use,
5991  so they are set up later. */  so they are set up later. */
5992    
5993  utf8 = md->utf8 = (re->options & PCRE_UTF8) != 0;  /* PCRE_UTF16 has the same value as PCRE_UTF8. */
5994    utf = md->utf = (re->options & PCRE_UTF8) != 0;
5995  md->partial = ((options & PCRE_PARTIAL_HARD) != 0)? 2 :  md->partial = ((options & PCRE_PARTIAL_HARD) != 0)? 2 :
5996                ((options & PCRE_PARTIAL_SOFT) != 0)? 1 : 0;                ((options & PCRE_PARTIAL_SOFT) != 0)? 1 : 0;
5997    
# Line 6013  md->partial = ((options & PCRE_PARTIAL_H Line 5999  md->partial = ((options & PCRE_PARTIAL_H
5999  code for an invalid string if a results vector is available. */  code for an invalid string if a results vector is available. */
6000    
6001  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
6002  if (utf8 && (options & PCRE_NO_UTF8_CHECK) == 0)  if (utf && (options & PCRE_NO_UTF8_CHECK) == 0)
6003    {    {
6004    int erroroffset;    int erroroffset;
6005    int errorcode = PRIV(valid_utf8)((PCRE_PUCHAR)subject, length, &erroroffset);    int errorcode = PRIV(valid_utf)((PCRE_PUCHAR)subject, length, &erroroffset);
6006    if (errorcode != 0)    if (errorcode != 0)
6007      {      {
6008      if (offsetcount >= 2)      if (offsetcount >= 2)
# Line 6306  for(;;) Line 6292  for(;;)
6292      {      {
6293      PCRE_PUCHAR t = start_match;      PCRE_PUCHAR t = start_match;
6294  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
6295      if (utf8)      if (utf)
6296        {        {
6297        while (t < md->end_subject && !IS_NEWLINE(t))        while (t < md->end_subject && !IS_NEWLINE(t))
6298          {          {
# Line 6348  for(;;) Line 6334  for(;;)
6334        if (start_match > md->start_subject + start_offset)        if (start_match > md->start_subject + start_offset)
6335          {          {
6336  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
6337          if (utf8)          if (utf)
6338            {            {
6339            while (start_match < end_subject && !WAS_NEWLINE(start_match))            while (start_match < end_subject && !WAS_NEWLINE(start_match))
6340              {              {
# Line 6389  for(;;) Line 6375  for(;;)
6375            {            {
6376            start_match++;            start_match++;
6377  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
6378            if (utf8)            if (utf)
6379              while(start_match < end_subject && (*start_match & 0xc0) == 0x80)              while(start_match < end_subject && (*start_match & 0xc0) == 0x80)
6380                start_match++;                start_match++;
6381  #endif  #endif
# Line 6521  for(;;) Line 6507  for(;;)
6507      case MATCH_THEN:      case MATCH_THEN:
6508      new_start_match = start_match + 1;      new_start_match = start_match + 1;
6509  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
6510      if (utf8)      if (utf)
6511        while(new_start_match < end_subject && (*new_start_match & 0xc0) == 0x80)        while(new_start_match < end_subject && (*new_start_match & 0xc0) == 0x80)
6512          new_start_match++;          new_start_match++;
6513  #endif  #endif

Legend:
Removed from v.774  
changed lines
  Added in v.781

  ViewVC Help
Powered by ViewVC 1.1.5