From: nobu.nakada@... Date: 2000-02-12T13:58:13+09:00 Subject: [ruby-dev:9202] Re: site_ruby なかだです。 At Fri, 11 Feb 2000 19:27:51 +0900, Nobuyoshi-Nakada wrote: > 標準のディレクトリにあるものと衝突するものがあったときなんかは錯覚させ > られるかも知れませんね。うーん、やっぱヤバいかな。 ひとまず "." の代わりに追加するって形にしてみました。 1.5.2 Index: ruby.c =================================================================== RCS file: /home/cvs/ruby/ruby.c,v retrieving revision 1.14 diff -u -2 -p -r1.14 ruby.c --- ruby.c 2000/01/05 04:37:11 1.14 +++ ruby.c 2000/02/12 04:44:38 @@ -600,4 +600,5 @@ proc_options(argc, argv) } + s = 0; if (!e_script && argc == 0) { /* no more args */ if (verbose) exit(0); @@ -622,7 +623,11 @@ proc_options(argc, argv) if (!script) script = argv[0]; } + s = strrchr(script, '/'); } argc--; argv++; } + if (rb_safe_level() == 0) { + rb_ary_push(rb_load_path, s ? rubylib_mangled_path(script, s - script) : rb_str_new2(".")); + } ruby_script(script); @@ -922,8 +927,4 @@ ruby_prog_init() rb_define_readonly_variable("$-l", &do_line); - if (rb_safe_level() == 0) { - addpath("."); - } - addpath(RUBY_LIB); #if defined(_WIN32) || defined(DJGPP) 1.4.3 --- ruby.c.orig Fri Oct 15 17:44:37 1999 +++ ruby.c Sat Feb 12 13:56:02 2000 @@ -536,6 +536,13 @@ proc_options(argcp, argvp) } if (!script) script = argv[0]; } + if (rb_safe_level() == 0) { + s = e_tmpname ? 0 : strrchr(script, '/'); + if (s) + rb_ary_push(rb_load_path, rubylib_mangled_path(script, s - script)); + else + rb_ary_push(rb_load_path, rb_str_new2(".")); + } load_file(script, 1); } argc--; argv++; @@ -704,6 +711,9 @@ static void load_stdin() { forbid_setid("program input from stdin"); + if (rb_safe_level() == 0) { + rb_ary_push(rb_load_path, rb_str_new2(".")); + } load_file("-", 1); } @@ -855,10 +865,6 @@ ruby_prog_init() rb_define_variable("$-d", &ruby_debug); rb_define_readonly_variable("$-p", &do_print); rb_define_readonly_variable("$-l", &do_line); - - if (rb_safe_level() == 0) { - addpath("."); - } addpath(RUBY_LIB); #if defined(_WIN32) || defined(DJGPP) -- そうだ 強気に ちょっと インチキに☆彡 中田 "Bugるくらいがちょうどいいかも;-)" 伸悦