summaryrefslogtreecommitdiff
path: root/regexec.c
diff options
context:
space:
mode:
authorDave Mitchell <davem@fdisolutions.com>2007-06-18 15:10:32 +0000
committerDave Mitchell <davem@fdisolutions.com>2007-06-18 15:10:32 +0000
commit60f65011b186cef6f05a7bafbf688a4b89780a87 (patch)
tree2991804341988bf8b44f6175782c406dc8368cda /regexec.c
parent717f132d5024d35d34d5f6abec0526fdd163f731 (diff)
downloadperl-60f65011b186cef6f05a7bafbf688a4b89780a87.tar.gz
[perl #43159] 5.9.4 regexp capturing wrongly
change #28398 accidently made the last branch of an alternation not restore the paren state after failure backtrack. Fix this by removing the last-branch-skips-pushing-a-state optimisation. p4raw-link: @28398 on //depot/perl: 40a824489101168f94fce98aa2824baf40bad402 p4raw-id: //depot/perl@31417
Diffstat (limited to 'regexec.c')
-rw-r--r--regexec.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/regexec.c b/regexec.c
index b05a1770bf..a4c5aee7fb 100644
--- a/regexec.c
+++ b/regexec.c
@@ -4219,12 +4219,6 @@ NULL
case BRANCH: /* /(...|A|...)/ */
scan = NEXTOPER(scan); /* scan now points to inner node */
- if ((!next || (OP(next) != BRANCH && OP(next) != BRANCHJ))
- && !has_cutgroup)
- {
- /* last branch; skip state push and jump direct to node */
- continue;
- }
ST.lastparen = *PL_reglastparen;
ST.next_branch = next;
REGCP_SET(ST.cp);