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

Diff of /code/trunk/pcre_dfa_exec.c

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

revision 211 by ph10, Thu Aug 9 09:52:43 2007 UTC revision 230 by ph10, Mon Sep 10 13:23:56 2007 UTC
# Line 2644  if (md->tables == NULL) md->tables = _pc Line 2644  if (md->tables == NULL) md->tables = _pc
2644  used in a loop when finding where to start. */  used in a loop when finding where to start. */
2645    
2646  lcc = md->tables + lcc_offset;  lcc = md->tables + lcc_offset;
2647  startline = (re->options & PCRE_STARTLINE) != 0;  startline = (re->flags & PCRE_STARTLINE) != 0;
2648  firstline = (re->options & PCRE_FIRSTLINE) != 0;  firstline = (re->options & PCRE_FIRSTLINE) != 0;
2649    
2650  /* Set up the first character to match, if available. The first_byte value is  /* Set up the first character to match, if available. The first_byte value is
# Line 2655  studied, there may be a bitmap of possib Line 2655  studied, there may be a bitmap of possib
2655    
2656  if (!anchored)  if (!anchored)
2657    {    {
2658    if ((re->options & PCRE_FIRSTSET) != 0)    if ((re->flags & PCRE_FIRSTSET) != 0)
2659      {      {
2660      first_byte = re->first_byte & 255;      first_byte = re->first_byte & 255;
2661      if ((first_byte_caseless = ((re->first_byte & REQ_CASELESS) != 0)) == TRUE)      if ((first_byte_caseless = ((re->first_byte & REQ_CASELESS) != 0)) == TRUE)
# Line 2672  if (!anchored) Line 2672  if (!anchored)
2672  /* For anchored or unanchored matches, there may be a "last known required  /* For anchored or unanchored matches, there may be a "last known required
2673  character" set. */  character" set. */
2674    
2675  if ((re->options & PCRE_REQCHSET) != 0)  if ((re->flags & PCRE_REQCHSET) != 0)
2676    {    {
2677    req_byte = re->req_byte & 255;    req_byte = re->req_byte & 255;
2678    req_byte_caseless = (re->req_byte & REQ_CASELESS) != 0;    req_byte_caseless = (re->req_byte & REQ_CASELESS) != 0;
# Line 2842  for (;;) Line 2842  for (;;)
2842      }      }
2843    if (current_subject > end_subject) break;    if (current_subject > end_subject) break;
2844    
2845    /* If we have just passed a CR and the newline option is CRLF or ANY or    /* If we have just passed a CR and we are now at a LF, and the pattern does
2846    ANYCRLF, and we are now at a LF, advance the match position by one more    not contain any explicit matches for \r or \n, and the newline option is CRLF
2847    character. */    or ANY or ANYCRLF, advance the match position by one more character. */
2848    
2849    if (current_subject[-1] == '\r' &&    if (current_subject[-1] == '\r' &&
2850         (md->nltype == NLTYPE_ANY ||        current_subject < end_subject &&
2851          md->nltype == NLTYPE_ANYCRLF ||        *current_subject == '\n' &&
2852          md->nllen == 2) &&        (re->flags & PCRE_HASCRORLF) == 0 &&
2853         current_subject < end_subject &&          (md->nltype == NLTYPE_ANY ||
2854         *current_subject == '\n')           md->nltype == NLTYPE_ANYCRLF ||
2855             md->nllen == 2))
2856      current_subject++;      current_subject++;
2857    
2858    }   /* "Bumpalong" loop */    }   /* "Bumpalong" loop */

Legend:
Removed from v.211  
changed lines
  Added in v.230

  ViewVC Help
Powered by ViewVC 1.1.5