summaryrefslogtreecommitdiff
path: root/ruby.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-05-30 04:24:17 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-05-30 04:24:17 +0000
commit9a1716fdb289e7bcdabf9050bfdf051106e2cce0 (patch)
treef08529a845b5a16b93635eeb06b58553252692c9 /ruby.c
parent869b1efeb4eea77338863faff98da2432acb4b5d (diff)
2000-05-30
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@717 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby.c')
-rw-r--r--ruby.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/ruby.c b/ruby.c
index 0f32f6cd97..4aa1ab5838 100644
--- a/ruby.c
+++ b/ruby.c
@@ -229,13 +229,16 @@ void
require_libraries()
{
extern NODE *ruby_eval_tree;
+ extern NODE *ruby_eval_tree_begin;
char *orig_sourcefile = ruby_sourcefile;
- NODE *save;
+ NODE *save[2];
struct req_list *list = req_list_head.next;
struct req_list *tmp;
ruby_sourcefile = 0;
- save = ruby_eval_tree;
+ save[0] = ruby_eval_tree;
+ save[1] = ruby_eval_tree_begin;
+ ruby_eval_tree = ruby_eval_tree_begin = 0;
req_list_last = 0;
while (list) {
rb_require(list->name);
@@ -244,7 +247,8 @@ require_libraries()
free(list);
list = tmp;
}
- ruby_eval_tree = save;
+ ruby_eval_tree = save[0];
+ ruby_eval_tree_begin = save[1];
ruby_sourcefile = orig_sourcefile;
}
@@ -622,8 +626,10 @@ proc_options(argc, argv)
ruby_set_argv(argc, argv);
process_sflag();
+#if 0
Init_ext(); /* should be called here for some reason :-( */
require_libraries();
+#endif
ruby_sourcefile = argv0;
if (e_script) {
@@ -643,6 +649,11 @@ proc_options(argc, argv)
process_sflag();
xflag = 0;
+
+#if 1
+ Init_ext(); /* should be called here for some reason :-( */
+ require_libraries();
+#endif
}
extern int ruby__end__seen;