summaryrefslogtreecommitdiff
path: root/regcomp.c
diff options
context:
space:
mode:
authorKarl Williamson <khw@cpan.org>2020-04-03 10:30:38 -0600
committerKarl Williamson <khw@cpan.org>2020-10-16 07:01:41 -0600
commit95f5a9192aec499cfcb88b39a66919cc67ed6c7d (patch)
tree03b5a74eabfbac05573260e05ced8514473cffd4 /regcomp.c
parent938090acbdbd9475a044786f75bbbcf4e64d3b49 (diff)
downloadperl-95f5a9192aec499cfcb88b39a66919cc67ed6c7d.tar.gz
regcomp.c,regexec.c: Simplify
This commit uses the new macros from the previous commit to simply come code.
Diffstat (limited to 'regcomp.c')
-rw-r--r--regcomp.c25
1 files changed, 5 insertions, 20 deletions
diff --git a/regcomp.c b/regcomp.c
index 3b40a170a6..66ac07e1d6 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -5303,12 +5303,7 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp,
continue;
}
}
- else if ( OP(scan) == EXACT
- || OP(scan) == LEXACT
- || OP(scan) == EXACT_REQ8
- || OP(scan) == LEXACT_REQ8
- || OP(scan) == EXACTL)
- {
+ else if (PL_regkind[OP(scan)] == EXACT && ! isEXACTFish(OP(scan))) {
SSize_t bytelen = STR_LEN(scan), charlen;
UV uc;
assert(bytelen);
@@ -5447,11 +5442,8 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp,
case PLUS:
if (flags & (SCF_DO_SUBSTR | SCF_DO_STCLASS)) {
next = NEXTOPER(scan);
- if ( OP(next) == EXACT
- || OP(next) == LEXACT
- || OP(next) == EXACT_REQ8
- || OP(next) == LEXACT_REQ8
- || OP(next) == EXACTL
+ if ( ( PL_regkind[OP(next)] == EXACT
+ && ! isEXACTFish(OP(next)))
|| (flags & SCF_DO_STCLASS))
{
mincount = 1;
@@ -8123,12 +8115,7 @@ Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count,
DEBUG_PEEP("first:", first, 0, 0);
/* Ignore EXACT as we deal with it later. */
if (PL_regkind[OP(first)] == EXACT) {
- if ( OP(first) == EXACT
- || OP(first) == LEXACT
- || OP(first) == EXACT_REQ8
- || OP(first) == LEXACT_REQ8
- || OP(first) == EXACTL)
- {
+ if (! isEXACTFish(OP(first))) {
NOOP; /* Empty, get anchored substr later. */
}
else
@@ -8472,9 +8459,7 @@ Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count,
&& nop == END)
RExC_rx->extflags |= RXf_WHITE;
else if ( RExC_rx->extflags & RXf_SPLIT
- && ( fop == EXACT || fop == LEXACT
- || fop == EXACT_REQ8 || fop == LEXACT_REQ8
- || fop == EXACTL)
+ && (PL_regkind[fop] == EXACT && ! isEXACTFish(fop))
&& STR_LEN(first) == 1
&& *(STRING(first)) == ' '
&& nop == END )