From: nobu.nakada@... Date: 2003-11-06T08:54:10+09:00 Subject: [ruby-dev:21848] Re: [ruby-list:38765] RUBYOPT & __FILE__ なかだです。 -devに振ります。 At Thu, 6 Nov 2003 05:04:56 +0900, rubikitch wrote: > RUBYOPTで予めライブラリをロードした状態でruby -S scriptという形で > スクリプトを起動したとき、__FILE__の値がおかしいようです。 dln_find_file()のバッファを上書きしているようです。 とりあえずrb_source_filename()で保存しておくだけでもOKですが、 dln_find_1()で静的なバッファを使っていることが問題のような気も します。 * ruby.c (proc_options): reserve searched script path in the source file name table. [ruby-list:38765] Index: ruby.c =================================================================== RCS file: /cvs/ruby/src/ruby/ruby.c,v retrieving revision 1.82 diff -u -2 -p -r1.82 ruby.c --- ruby.c 30 Jul 2003 07:08:55 -0000 1.82 +++ ruby.c 5 Nov 2003 23:46:52 -0000 @@ -430,4 +430,5 @@ proc_options(argc, argv) int do_search; char *s; + NODE *volatile script_node = 0; int version = 0; @@ -752,4 +753,6 @@ proc_options(argc, argv) } if (!script) script = argv[0]; + script = ruby_sourcefile = rb_source_filename(script); + script_node = NEW_NEWLINE(0); } #ifdef DOSISH -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦