summaryrefslogtreecommitdiff
path: root/pp_hot.c
diff options
context:
space:
mode:
authorHugo van der Sanden <hv@crypt.org>1999-02-18 18:51:38 +0000
committerGurusamy Sarathy <gsar@cpan.org>1999-02-20 00:34:01 +0000
commit0ef3e39ecdfec810eb60a7318e9f8475748553e2 (patch)
treecaa332f234a93f6a05d9efe4b1405ae3e6c3970d /pp_hot.c
parentbb897dfcf82adc653513b0b92523fb44767a9837 (diff)
downloadperl-0ef3e39ecdfec810eb60a7318e9f8475748553e2.tar.gz
test failures with MIME-tools-4.122 and perl 5.005_55
Message-Id: <199902181851.SAA14018@crypt.compulink.co.uk> p4raw-id: //depot/perl@2991
Diffstat (limited to 'pp_hot.c')
-rw-r--r--pp_hot.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/pp_hot.c b/pp_hot.c
index b1bf270866..3ab4f304e7 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -855,7 +855,7 @@ PP(pp_match)
register char *s;
char *strend;
I32 global;
- I32 r_flags;
+ I32 r_flags = 0;
char *truebase;
register REGEXP *rx = pm->op_pmregexp;
bool rxtainted;
@@ -904,14 +904,18 @@ PP(pp_match)
if (mg && mg->mg_len >= 0) {
if (!(rx->reganch & ROPT_GPOS_SEEN))
rx->endp[0] = rx->startp[0] = s + mg->mg_len;
+ else if (rx->reganch & ROPT_ANCH_GPOS) {
+ r_flags |= REXEC_IGNOREPOS;
+ rx->endp[0] = rx->startp[0] = s + mg->mg_len;
+ }
minmatch = (mg->mg_flags & MGf_MINMATCH);
update_minmatch = 0;
}
}
}
- r_flags = ((gimme != G_ARRAY && !global && rx->nparens)
- || SvTEMP(TARG) || PL_sawampersand)
- ? REXEC_COPY_STR : 0;
+ if ((gimme != G_ARRAY && !global && rx->nparens)
+ || SvTEMP(TARG) || PL_sawampersand)
+ r_flags |= REXEC_COPY_STR;
if (SvSCREAM(TARG) && rx->check_substr
&& SvTYPE(rx->check_substr) == SVt_PVBM
&& SvVALID(rx->check_substr))