summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLarry Wall <lwall@scalpel.netlabs.com>1994-11-18 17:01:34 -0800
committerAndy Dougherty <doughera@lafcol.lafayette.edu>1995-01-11 19:01:10 +0000
commita0a2876f4683eca6ebc96f52b47823a87dd0ac4a (patch)
treec3f4584848a374973f96c1a890a4cf6a2cd896d9
parentd23b30860e3e4c1bd7e12ed5a35d1b90e7fa214c (diff)
downloadperl-a0a2876f4683eca6ebc96f52b47823a87dd0ac4a.tar.gz
[return values correctly with G_EVAL]
You need this patch for G_EVAL to return values correctly.
-rw-r--r--perl.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/perl.c b/perl.c
index ea903056e2..f2ee633201 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);
}