From: Larry Wall Date: Sat, 19 Nov 1994 01:01:34 +0000 (-0800) Subject: [return values correctly with G_EVAL] X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=a0a2876f4683eca6ebc96f52b47823a87dd0ac4a;p=p5sagit%2Fp5-mst-13.2.git [return values correctly with G_EVAL] You need this patch for G_EVAL to return values correctly. --- diff --git a/perl.c b/perl.c index ea90305..f2ee633 100644 --- a/perl.c +++ b/perl.c @@ -707,8 +707,17 @@ I32 flags; /* See G_* flags in cop.h */ cleanup: if (flags & G_EVAL) { if (scopestack_ix > oldscope) { - op = (OP*)&myop; - pp_leavetry(); + SV **newsp; + PMOP *newpm; + I32 gimme; + register CONTEXT *cx; + I32 optype; + + POPBLOCK(cx,newpm); + POPEVAL(cx); + pop_return(); + curpm = newpm; + LEAVE; } Copy(oldtop, top_env, 1, jmp_buf); }