diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-08-02 09:22:27 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-08-02 09:22:27 +0000 |
commit | 6689997b5eec76e1f3a0f5670f963aa8ae193417 (patch) | |
tree | 17e1f9d1a3b3f471e806310ea15f84c8d9ea998c | |
parent | f32c76a2668cdbee36f1c6515693b41428f865e7 (diff) | |
download | ruby-6689997b5eec76e1f3a0f5670f963aa8ae193417.tar.gz |
matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | eval.c | 3 | ||||
-rw-r--r-- | intern.h | 2 | ||||
-rw-r--r-- | ruby.c | 37 | ||||
-rw-r--r-- | win32/ruby.def | 3 |
4 files changed, 26 insertions, 19 deletions
@@ -8110,6 +8110,9 @@ rb_cont_call(argc, argv, cont) { rb_thread_t th = rb_thread_check(cont); + if (th->next != curr_thread) { + rb_raise(rb_eRuntimeError, "continuation called across threads"); + } switch (argc) { case 0: th->result = Qnil; @@ -281,6 +281,8 @@ void ruby_prog_init _((void)); void ruby_set_argv _((int, char**)); void ruby_process_options _((int, char**)); void ruby_load_script _((void)); +void ruby_init_loadpath _((void)); +void ruby_incpush _((const char*)); /* signal.c */ VALUE rb_f_kill _((int, VALUE*)); void rb_gc_mark_trap_list _((void)); @@ -166,8 +166,8 @@ rubylib_mangle(s, l) #define rubylib_mangled_path2(s) rb_str_new2(s) #endif -static void -incpush(path) +void +ruby_incpush(path) const char *path; { const char sep = PATH_SEP_CHAR; @@ -203,36 +203,36 @@ incpush(path) } } -static void -ruby_path_init() +void +ruby_init_loadpath() { if (rb_safe_level() == 0) { - incpush(getenv("RUBYLIB")); + ruby_incpush(getenv("RUBYLIB")); } #ifdef RUBY_SEARCH_PATH - incpush(RUBY_SEARCH_PATH); + ruby_incpush(RUBY_SEARCH_PATH); #endif #ifdef RUBY_SITE_THIN_ARCHLIB - incpush(RUBY_SITE_THIN_ARCHLIB); + ruby_incpush(RUBY_SITE_THIN_ARCHLIB); #endif - incpush(RUBY_SITE_ARCHLIB); - incpush(RUBY_SITE_LIB2); - incpush(RUBY_SITE_LIB); + ruby_incpush(RUBY_SITE_ARCHLIB); + ruby_incpush(RUBY_SITE_LIB2); + ruby_incpush(RUBY_SITE_LIB); #ifdef RUBY_THIN_ARCHLIB - incpush(RUBY_THIN_ARCHLIB); + ruby_incpush(RUBY_THIN_ARCHLIB); #endif - incpush(RUBY_ARCHLIB); + ruby_incpush(RUBY_ARCHLIB); - incpush(RUBY_LIB); + ruby_incpush(RUBY_LIB); #if defined(_WIN32) || defined(DJGPP) - incpush(ruby_libpath()); + ruby_incpush(ruby_libpath()); #endif if (rb_safe_level() == 0) { - incpush("."); + ruby_incpush("."); } } @@ -360,7 +360,6 @@ proc_options(argc, argv) if (argc == 0) return; - version = Qfalse; do_search = Qfalse; for (argc--,argv++; argc > 0; argc--,argv++) { @@ -515,9 +514,9 @@ proc_options(argc, argv) case 'I': forbid_setid("-I"); if (*++s) - incpush(s); + ruby_incpush(s); else if (argv[1]) { - incpush(argv[1]); + ruby_incpush(argv[1]); argc--,argv++; } break; @@ -659,7 +658,7 @@ proc_options(argc, argv) ruby_set_argv(argc, argv); process_sflag(); - ruby_path_init(); + ruby_init_loadpath(); ruby_sourcefile = argv0; if (e_script) { require_libraries(); diff --git a/win32/ruby.def b/win32/ruby.def index 977eb57e3f..274948aef4 100644 --- a/win32/ruby.def +++ b/win32/ruby.def @@ -503,6 +503,9 @@ EXPORTS ruby_prog_init ruby_set_argv ruby_process_options + ruby_load_script + ruby_init_loadpath + ruby_incpush ;signal.c rb_f_kill rb_gc_mark_trap_list |