diff options
author | ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2013-02-13 17:36:38 +0000 |
---|---|---|
committer | ph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2013-02-13 17:36:38 +0000 |
commit | 2daca9b1036d86eeddcfdefd8672da42257a9540 (patch) | |
tree | 4a85cff3c6ca9caa03d9e80cdfb0f028723a08ec /testdata | |
parent | 3fe1df6131224adfbec7506c2f7041127a58274e (diff) | |
download | pcre-2daca9b1036d86eeddcfdefd8672da42257a9540.tar.gz |
Fix various save/revert cases for capture_last in recursion and also don't
diagnose overflow when it has reverted.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1248 2f5784b3-3f2a-0410-8824-cb99058d5e15
Diffstat (limited to 'testdata')
-rw-r--r-- | testdata/testinput2 | 27 | ||||
-rw-r--r-- | testdata/testoutput2 | 121 |
2 files changed, 147 insertions, 1 deletions
diff --git a/testdata/testinput2 b/testdata/testinput2 index 9670104..dd57c59 100644 --- a/testdata/testinput2 +++ b/testdata/testinput2 @@ -3810,4 +3810,31 @@ settings of the anchored and startline bits. --/ /.?/S!I +/(?:(a)+(?C1)bb|aa(?C2)b)/ + aab\C+ + +/(?:(a)++(?C1)bb|aa(?C2)b)/ + aab\C+ + +/(?:(?>(a))(?C1)bb|aa(?C2)b)/ + aab\C+ + +/(?:(?1)(?C1)x|ab(?C2))((a)){0}/ + aab\C+ + +/(?1)(?C1)((a)(?C2)){0}/ + aab\C+ + +/(?:(a)+(?C1)bb|aa(?C2)b)++/ + aab\C+ + aab\C+\O2 + +/(ab)x|ab/ + ab\O3 + ab\O2 + +/(ab)/ + ab\O3 + ab\O2 + /-- End of testinput2 --/ diff --git a/testdata/testoutput2 b/testdata/testoutput2 index e9cddf8..709be61 100644 --- a/testdata/testoutput2 +++ b/testdata/testoutput2 @@ -11319,7 +11319,6 @@ No match /(a)b|ac/++SS ac\O3 -Matched, but too many substrings 0: ac 0+ @@ -12481,4 +12480,124 @@ No need char Subject length lower bound = -1 No set of starting bytes +/(?:(a)+(?C1)bb|aa(?C2)b)/ + aab\C+ +Callout 1: last capture = 1 + 0: <unset> + 1: a +--->aab + ^ ^ b +Callout 1: last capture = 1 + 0: <unset> + 1: a +--->aab + ^^ b +Callout 2: last capture = -1 + 0: <unset> +--->aab + ^ ^ b + 0: aab + +/(?:(a)++(?C1)bb|aa(?C2)b)/ + aab\C+ +Callout 1: last capture = 1 + 0: <unset> + 1: a +--->aab + ^ ^ b +Callout 2: last capture = -1 + 0: <unset> +--->aab + ^ ^ b + 0: aab + +/(?:(?>(a))(?C1)bb|aa(?C2)b)/ + aab\C+ +Callout 1: last capture = 1 + 0: <unset> + 1: a +--->aab + ^^ b +Callout 2: last capture = -1 + 0: <unset> +--->aab + ^ ^ b + 0: aab + +/(?:(?1)(?C1)x|ab(?C2))((a)){0}/ + aab\C+ +Callout 1: last capture = -1 + 0: <unset> +--->aab + ^^ x +Callout 1: last capture = -1 + 0: <unset> +--->aab + ^^ x +Callout 2: last capture = -1 + 0: <unset> +--->aab + ^ ^ ) + 0: ab + +/(?1)(?C1)((a)(?C2)){0}/ + aab\C+ +Callout 2: last capture = 2 + 0: <unset> + 1: <unset> + 2: a +--->aab + ^^ ) +Callout 1: last capture = -1 + 0: <unset> +--->aab + ^^ ((a)(?C2)){0} + 0: a + +/(?:(a)+(?C1)bb|aa(?C2)b)++/ + aab\C+ +Callout 1: last capture = 1 + 0: <unset> + 1: a +--->aab + ^ ^ b +Callout 1: last capture = 1 + 0: <unset> + 1: a +--->aab + ^^ b +Callout 2: last capture = -1 + 0: <unset> +--->aab + ^ ^ b + 0: aab + aab\C+\O2 +Callout 1: last capture = 1 + 0: <unset> +--->aab + ^ ^ b +Callout 1: last capture = 1 + 0: <unset> +--->aab + ^^ b +Callout 2: last capture = -1 + 0: <unset> +--->aab + ^ ^ b + 0: aab + +/(ab)x|ab/ + ab\O3 + 0: ab + ab\O2 + 0: ab + +/(ab)/ + ab\O3 +Matched, but too many substrings + 0: ab + ab\O2 +Matched, but too many substrings + 0: ab + /-- End of testinput2 --/ |