Revision: 743
http://vcs.pcre.org/viewvc?view=rev&revision=743
Author: ph10
Date: 2011-11-08 09:59:38 +0000 (Tue, 08 Nov 2011)
Log Message:
-----------
Marks in non-capturing atomic groups were not being passed out.
Modified Paths:
--------------
code/trunk/ChangeLog
code/trunk/pcre_exec.c
code/trunk/testdata/testinput11
code/trunk/testdata/testoutput11
Modified: code/trunk/ChangeLog
===================================================================
--- code/trunk/ChangeLog 2011-11-06 08:05:33 UTC (rev 742)
+++ code/trunk/ChangeLog 2011-11-08 09:59:38 UTC (rev 743)
@@ -12,6 +12,10 @@
3. Fix cache-flush issue on PowerPC (It is still an experimental JIT port).
PCRE_EXTRA_TABLES is not suported by JIT, and should be checked before
calling _pcre_jit_exec. Some extra comments are added.
+
+4. Mark settings inside atomic groups that do not contain any capturing
+ parentheses, for example, (?>a(*:m)), were not being passed out. This bug
+ was introduced by change 18 for 8.20.
Version 8.20 21-Oct-2011
Modified: code/trunk/pcre_exec.c
===================================================================
--- code/trunk/pcre_exec.c 2011-11-06 08:05:33 UTC (rev 742)
+++ code/trunk/pcre_exec.c 2011-11-08 09:59:38 UTC (rev 743)
@@ -816,6 +816,7 @@
if (rrc == MATCH_MATCH) /* Note: _not_ MATCH_ACCEPT */
{
mstart = md->start_match_ptr;
+ markptr = md->mark;
break;
}
if (rrc == MATCH_THEN)
Modified: code/trunk/testdata/testinput11
===================================================================
--- code/trunk/testdata/testinput11 2011-11-06 08:05:33 UTC (rev 742)
+++ code/trunk/testdata/testinput11 2011-11-08 09:59:38 UTC (rev 743)
@@ -767,4 +767,10 @@
/------------------------------/
+/(?>a(*:m))/imsxSK
+ a
+
+/(?>(a)(*:m))/imsxSK
+ a
+
/-- End of testinput11 --/
Modified: code/trunk/testdata/testoutput11
===================================================================
--- code/trunk/testdata/testoutput11 2011-11-06 08:05:33 UTC (rev 742)
+++ code/trunk/testdata/testoutput11 2011-11-08 09:59:38 UTC (rev 743)
@@ -1389,4 +1389,15 @@
/------------------------------/
+/(?>a(*:m))/imsxSK
+ a
+ 0: a
+MK: m
+
+/(?>(a)(*:m))/imsxSK
+ a
+ 0: a
+ 1: a
+MK: m
+
/-- End of testinput11 --/