diff options
author | Larry Wall <lwall@netlabs.com> | 1995-03-12 22:32:14 -0800 |
---|---|---|
committer | Larry Wall <lwall@netlabs.com> | 1995-03-12 22:32:14 -0800 |
commit | 748a93069b3d16374a9859d1456065dd3ae11394 (patch) | |
tree | 308ca14de9933a313dceacce8be77db67d9368c7 /regexec.c | |
parent | fec02dd38faf8f83471b031857d89cb76fea1ca0 (diff) | |
download | perl-748a93069b3d16374a9859d1456065dd3ae11394.tar.gz |
Perl 5.001perl-5.001
[See the Changes file for a list of changes]
Diffstat (limited to 'regexec.c')
-rw-r--r-- | regexec.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -852,10 +852,15 @@ char *prog; if (OP(next) != BRANCH) /* No choice. */ next = NEXTOPER(scan);/* Avoid recursion. */ else { + int lastparen = *reglastparen; do { reginput = locinput; if (regmatch(NEXTOPER(scan))) return 1; + for (n = *reglastparen; n > lastparen; n--) + regendp[n] = 0; + *reglastparen = n; + #ifdef REGALIGN /*SUPPRESS 560*/ if (n = NEXT(scan)) @@ -908,6 +913,7 @@ char *prog; if (regmatch(next)) return 1; /* Couldn't or didn't -- back up. */ + reginput = locinput + ln; if (regrepeat(scan, 1)) { ln++; reginput = locinput + ln; |