/[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 120 by ph10, Mon Mar 12 11:36:14 2007 UTC revision 134 by ph10, Mon Mar 26 16:00:17 2007 UTC
# Line 299  typedef struct heapframe { Line 299  typedef struct heapframe {
299    int Xprop_category;    int Xprop_category;
300    int Xprop_chartype;    int Xprop_chartype;
301    int Xprop_script;    int Xprop_script;
302    int Xoclength;    int Xoclength;
303    uschar Xocchars[8];    uschar Xocchars[8];
304  #endif  #endif
305    
306    int Xctype;    int Xctype;
# Line 2062  for (;;) Line 2062  for (;;)
2062          for (i = 1; i <= min; i++)          for (i = 1; i <= min; i++)
2063            {            {
2064            if (memcmp(eptr, charptr, length) == 0) eptr += length;            if (memcmp(eptr, charptr, length) == 0) eptr += length;
2065  #ifdef SUPPORT_UCP  #ifdef SUPPORT_UCP
2066            /* Need braces because of following else */            /* Need braces because of following else */
2067            else if (oclength == 0) { RRETURN(MATCH_NOMATCH); }            else if (oclength == 0) { RRETURN(MATCH_NOMATCH); }
2068            else            else
# Line 2072  for (;;) Line 2072  for (;;)
2072              }              }
2073  #else   /* without SUPPORT_UCP */  #else   /* without SUPPORT_UCP */
2074            else { RRETURN(MATCH_NOMATCH); }            else { RRETURN(MATCH_NOMATCH); }
2075  #endif  /* SUPPORT_UCP */  #endif  /* SUPPORT_UCP */
2076            }            }
2077    
2078          if (min == max) continue;          if (min == max) continue;
# Line 2085  for (;;) Line 2085  for (;;)
2085              if (rrc != MATCH_NOMATCH) RRETURN(rrc);              if (rrc != MATCH_NOMATCH) RRETURN(rrc);
2086              if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);              if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
2087              if (memcmp(eptr, charptr, length) == 0) eptr += length;              if (memcmp(eptr, charptr, length) == 0) eptr += length;
2088  #ifdef SUPPORT_UCP  #ifdef SUPPORT_UCP
2089              /* Need braces because of following else */              /* Need braces because of following else */
2090              else if (oclength == 0) { RRETURN(MATCH_NOMATCH); }              else if (oclength == 0) { RRETURN(MATCH_NOMATCH); }
2091              else              else
# Line 2107  for (;;) Line 2107  for (;;)
2107              {              {
2108              if (eptr > md->end_subject - length) break;              if (eptr > md->end_subject - length) break;
2109              if (memcmp(eptr, charptr, length) == 0) eptr += length;              if (memcmp(eptr, charptr, length) == 0) eptr += length;
2110  #ifdef SUPPORT_UCP  #ifdef SUPPORT_UCP
2111              else if (oclength == 0) break;              else if (oclength == 0) break;
2112              else              else
2113                {                {
# Line 2116  for (;;) Line 2116  for (;;)
2116                }                }
2117  #else   /* without SUPPORT_UCP */  #else   /* without SUPPORT_UCP */
2118              else break;              else break;
2119  #endif  /* SUPPORT_UCP */  #endif  /* SUPPORT_UCP */
2120              }              }
2121    
2122            if (possessive) continue;            if (possessive) continue;
# Line 2128  for (;;) Line 2128  for (;;)
2128  #ifdef SUPPORT_UCP  #ifdef SUPPORT_UCP
2129             eptr--;             eptr--;
2130             BACKCHAR(eptr);             BACKCHAR(eptr);
2131  #else   /* without SUPPORT_UCP */  #else   /* without SUPPORT_UCP */
2132             eptr -= length;             eptr -= length;
2133  #endif  /* SUPPORT_UCP */  #endif  /* SUPPORT_UCP */
2134             }             }
2135            }            }
2136          /* Control never gets here */          /* Control never gets here */
# Line 4013  for(;;) Line 4013  for(;;)
4013        {        {
4014        while (start_match <= end_subject && !WAS_NEWLINE(start_match))        while (start_match <= end_subject && !WAS_NEWLINE(start_match))
4015          start_match++;          start_match++;
4016    
4017          /* If we have just passed a CR and the newline option is ANY, and we are
4018          now at a LF, advance the match position by one more character. */
4019    
4020          if (start_match[-1] == '\r' &&
4021               md->nltype == NLTYPE_ANY &&
4022               start_match < end_subject &&
4023               *start_match == '\n')
4024            start_match++;
4025        }        }
4026      }      }
4027    

Legend:
Removed from v.120  
changed lines
  Added in v.134

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12