diff --git a/ChangeLog b/ChangeLog index ab9217cfab..ada649ad3e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Dec 20 22:41:17 2005 Nobuyoshi Nakada + + * eval.c (eval_under_i): evaluate source in caller's frame. + [ruby-dev:28076] + Tue Dec 20 12:53:23 2005 why the lucky stiff * ext/syck/rubyext.c (syck_emitter_reset): to ensure compatibility diff --git a/eval.c b/eval.c index 3ff37334a5..7fde742b2a 100644 --- a/eval.c +++ b/eval.c @@ -6315,7 +6315,11 @@ static VALUE eval_under_i(VALUE arg) { VALUE *args = (VALUE *)arg; + struct FRAME *f = ruby_frame; + if (f && (f = f->prev) && (f = f->prev)) { + ruby_frame = f; + } return eval(args[0], args[1], Qnil, (char*)args[2], (int)args[3]); }