/[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 364 by ph10, Fri Jul 11 14:53:41 2008 UTC revision 365 by ph10, Fri Jul 11 17:06:55 2008 UTC
# Line 4695  for(;;) Line 4695  for(;;)
4695    
4696    if (firstline)    if (firstline)
4697      {      {
4698      USPTR *t = start_match;      USPTR t = start_match;
4699  #ifdef SUPPORT_UTF8  #ifdef SUPPORT_UTF8
4700      if (utf8)      if (utf8)
4701        {        {
# Line 4716  for(;;) Line 4716  for(;;)
4716    if (first_byte >= 0)    if (first_byte >= 0)
4717      {      {
4718      if (first_byte_caseless)      if (first_byte_caseless)
       {  
 #ifdef SUPPORT_UTF8  
       if (utf8)  
         {  
         while (start_match < end_subject && md->lcc[*start_match] != first_byte)  
           {  
           start_match++;  
           while(start_match < end_subject && (*start_match & 0xc0) == 0x80)  
             start_match++;  
           }  
         }  
       else  
 #endif  
4719        while (start_match < end_subject && md->lcc[*start_match] != first_byte)        while (start_match < end_subject && md->lcc[*start_match] != first_byte)
4720          start_match++;          start_match++;
4721        }      else
     else    /* Caseful case */  
       {  
 #ifdef SUPPORT_UTF8  
       if (utf8)  
         {  
         while (start_match < end_subject && *start_match != first_byte)  
           {  
           start_match++;  
           while(start_match < end_subject && (*start_match & 0xc0) == 0x80)  
             start_match++;  
           }  
         }  
       else  
 #endif  
4722        while (start_match < end_subject && *start_match != first_byte)        while (start_match < end_subject && *start_match != first_byte)
4723          start_match++;          start_match++;
       }  
4724      }      }
4725    
4726    /* Or to just after a linebreak for a multiline match */    /* Or to just after a linebreak for a multiline match */
# Line 4788  for(;;) Line 4760  for(;;)
4760    
4761    else if (start_bits != NULL)    else if (start_bits != NULL)
4762      {      {
 #ifdef SUPPORT_UTF8  
     if (utf8)  
       {  
       while (start_match < end_subject)  
         {  
         register unsigned int c = *start_match;  
         if ((start_bits[c/8] & (1 << (c&7))) == 0)  
           {  
           start_match++;  
           while(start_match < end_subject && (*start_match & 0xc0) == 0x80)  
             start_match++;  
           }  
         else break;  
         }  
       }  
     else  
 #endif  
4763      while (start_match < end_subject)      while (start_match < end_subject)
4764        {        {
4765        register unsigned int c = *start_match;        register unsigned int c = *start_match;

Legend:
Removed from v.364  
changed lines
  Added in v.365

  ViewVC Help
Powered by ViewVC 1.1.5