/[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 214 by ph10, Wed Aug 15 14:08:10 2007 UTC revision 227 by ph10, Tue Aug 21 15:00:15 2007 UTC
# Line 3093  for (;;) Line 3093  for (;;)
3093          for (i = 1; i <= min; i++)          for (i = 1; i <= min; i++)
3094            {            {
3095            if (eptr >= md->end_subject ||            if (eptr >= md->end_subject ||
3096               (*eptr < 128 && (md->ctypes[*eptr++] & ctype_space) != 0))               (*eptr < 128 && (md->ctypes[*eptr] & ctype_space) != 0))
3097              RRETURN(MATCH_NOMATCH);              RRETURN(MATCH_NOMATCH);
3098            while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++;            while (++eptr < md->end_subject && (*eptr & 0xc0) == 0x80);
3099            }            }
3100          break;          break;
3101    
# Line 3113  for (;;) Line 3113  for (;;)
3113          for (i = 1; i <= min; i++)          for (i = 1; i <= min; i++)
3114            {            {
3115            if (eptr >= md->end_subject ||            if (eptr >= md->end_subject ||
3116               (*eptr < 128 && (md->ctypes[*eptr++] & ctype_word) != 0))               (*eptr < 128 && (md->ctypes[*eptr] & ctype_word) != 0))
3117              RRETURN(MATCH_NOMATCH);              RRETURN(MATCH_NOMATCH);
3118            while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++;            while (++eptr < md->end_subject && (*eptr & 0xc0) == 0x80);
3119            }            }
3120          break;          break;
3121    
# Line 4785  for(;;) Line 4785  for(;;)
4785    
4786    if (anchored || start_match > end_subject) break;    if (anchored || start_match > end_subject) break;
4787    
4788    /* 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
4789    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
4790    character. */    or ANY or ANYCRLF, advance the match position by one more character. */
4791    
4792    if (start_match[-1] == '\r' &&    if (start_match[-1] == '\r' &&
4793         (md->nltype == NLTYPE_ANY ||        start_match < end_subject &&
4794          md->nltype == NLTYPE_ANYCRLF ||        *start_match == '\n' &&
4795          md->nllen == 2) &&        (re->options & PCRE_HASCRORLF) == 0 &&
4796         start_match < end_subject &&          (md->nltype == NLTYPE_ANY ||
4797         *start_match == '\n')           md->nltype == NLTYPE_ANYCRLF ||
4798             md->nllen == 2))
4799      start_match++;      start_match++;
4800    
4801    }   /* End of for(;;) "bumpalong" loop */    }   /* End of for(;;) "bumpalong" loop */

Legend:
Removed from v.214  
changed lines
  Added in v.227

  ViewVC Help
Powered by ViewVC 1.1.5