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

Diff of /code/trunk/pcretest.c

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

revision 441 by ph10, Wed Sep 2 16:02:56 2009 UTC revision 442 by ph10, Fri Sep 11 10:21:02 2009 UTC
# Line 1970  while (!done) Line 1970  while (!done)
1970          continue;          continue;
1971    
1972          case 'N':          case 'N':
1973          options |= PCRE_NOTEMPTY;          if ((options & PCRE_NOTEMPTY) != 0)
1974              options = (options & ~PCRE_NOTEMPTY) | PCRE_NOTEMPTY_ATSTART;
1975            else
1976              options |= PCRE_NOTEMPTY;
1977          continue;          continue;
1978    
1979          case 'O':          case 'O':
# Line 2443  while (!done) Line 2446  while (!done)
2446        if (!do_g && !do_G) break;        if (!do_g && !do_G) break;
2447    
2448        /* If we have matched an empty string, first check to see if we are at        /* If we have matched an empty string, first check to see if we are at
2449        the end of the subject. If so, the /g loop is over. Otherwise, mimic        the end of the subject. If so, the /g loop is over. Otherwise, mimic what
2450        what Perl's /g options does. This turns out to be rather cunning. First        Perl's /g options does. This turns out to be rather cunning. First we set
2451        we set PCRE_NOTEMPTY and PCRE_ANCHORED and try the match again at the        PCRE_NOTEMPTY_ATSTART and PCRE_ANCHORED and try the match again at the
2452        same point. If this fails (picked up above) we advance to the next        same point. If this fails (picked up above) we advance to the next
2453        character. */        character. */
2454    
# Line 2454  while (!done) Line 2457  while (!done)
2457        if (use_offsets[0] == use_offsets[1])        if (use_offsets[0] == use_offsets[1])
2458          {          {
2459          if (use_offsets[0] == len) break;          if (use_offsets[0] == len) break;
2460          g_notempty = PCRE_NOTEMPTY | PCRE_ANCHORED;          g_notempty = PCRE_NOTEMPTY_ATSTART | PCRE_ANCHORED;
2461          }          }
2462    
2463        /* For /g, update the start offset, leaving the rest alone */        /* For /g, update the start offset, leaving the rest alone */

Legend:
Removed from v.441  
changed lines
  Added in v.442

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12