summaryrefslogtreecommitdiff
path: root/ruby.c
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-19 04:41:19 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-19 04:41:19 +0000
commitd31e1d4a52fc17c0cd8848eedd6e0934f5ea5291 (patch)
treedd3e6c0370f6f818080243a0c9fb64deebf2e115 /ruby.c
parent9b520ddcec94c4654ca36bbb404bf4e9569b70cc (diff)
* ruby.c (require_libraries): reset th->parse_in_eval while
loading libraries. fixes [ruby-dev:37780] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby.c')
-rw-r--r--ruby.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ruby.c b/ruby.c
index 7ffdc5a277..a0d362b41f 100644
--- a/ruby.c
+++ b/ruby.c
@@ -458,7 +458,9 @@ require_libraries(struct cmdline_options *opt)
ID require;
rb_thread_t *th = GET_THREAD();
rb_block_t *prev_base_block = th->base_block;
+ int prev_parse_in_eval = th->parse_in_eval;
th->base_block = 0;
+ th->parse_in_eval = 0;
Init_ext(); /* should be called here for some reason :-( */
CONST_ID(require, "require");
@@ -467,6 +469,8 @@ require_libraries(struct cmdline_options *opt)
rb_funcall2(rb_vm_top_self(), require, 1, &feature);
}
opt->req_list = 0;
+
+ th->parse_in_eval = prev_parse_in_eval;
th->base_block = prev_base_block;
}