/* Some notes about MULTICALL and the context and save stacks.
*
* In something like
- * /...(?{ my $x)}...(?{ my $z)}...(?{ my $z)}.../
+ * /...(?{ my $x)}...(?{ my $y)}...(?{ my $z)}.../
* since codeblocks don't introduce a new scope (so that
* local() etc accumulate), at the end of a successful
* match there will be a SAVEt_CLEARSV on the savestack
* *everything* SAVEd by this function is undone and then
* the context popped, rather than e.g., popping the
* context (and restoring the original PL_comppad) then
- * popping more of the savestack and restoiring a bad
+ * popping more of the savestack and restoring a bad
* PL_comppad.
*/
CACHEsayNO;
NOT_REACHED; /* NOTREACHED */
- case WHILEM_A_min_fail: /* just failed to match A in a minimal match */
- /* FALLTHROUGH */
case WHILEM_A_pre_fail: /* just failed to match even minimal A */
REGCP_UNWIND(ST.lastcp);
regcppop(rex, &maxopenparen);
+ /* FALLTHROUGH */
+ case WHILEM_A_min_fail: /* just failed to match A in a minimal match */
cur_curlyx->u.curlyx.lastloc = ST.save_lastloc;
cur_curlyx->u.curlyx.count--;
CACHEsayNO;
);
/* Try grabbing another A and see if it helps. */
cur_curlyx->u.curlyx.lastloc = locinput;
- ST.cp = regcppush(rex, cur_curlyx->u.curlyx.parenfloor,
- maxopenparen);
- REGCP_SET(ST.lastcp);
PUSH_STATE_GOTO(WHILEM_A_min,
/*A*/ NEXTOPER(ST.save_curlyx->u.curlyx.me) + EXTRA_STEP_2ARGS,
locinput);