From: nobu.nakada@... Date: 2001-07-19T13:18:45+09:00 Subject: [ruby-dev:13931] Re: error: multiple require of digest/* なかだです。 なかだです。 At Thu, 19 Jul 2001 10:14:19 +0900, U.Nakamura wrote: > digest/*の拡張モジュールを複数requireすると一つ目以外はエラ > ーになります。 requireされた名前じゃなくて展開された名前がfeatureに登録され てます。 Index: eval.c =================================================================== RCS file: /cvs/ruby/src/ruby/eval.c,v retrieving revision 1.194 diff -u -2 -p -r1.194 eval.c --- eval.c 2001/07/18 05:55:20 1.194 +++ eval.c 2001/07/19 04:15:20 @@ -5441,17 +5441,17 @@ rb_f_require(obj, fname) else if (strcmp(".so", ext) == 0 || strcmp(".o", ext) == 0) { fname = rb_str_new(RSTRING(fname)->ptr, ext-RSTRING(fname)->ptr); - tmp = rb_str_dup(fname); + feature = tmp = rb_str_dup(fname); rb_str_cat2(tmp, DLEXT); tmp = rb_find_file(tmp); if (tmp) { - feature = fname = tmp; + fname = tmp; goto load_dyna; } #ifdef DLEXT2 - tmp = rb_str_dup(fname); + feature = tmp = rb_str_dup(fname); rb_str_cat2(tmp, DLEXT); tmp = rb_find_file(tmp); if (tmp) { - feature = fname = tmp; + fname = tmp; goto load_dyna; } @@ -5461,5 +5461,6 @@ rb_f_require(obj, fname) tmp = rb_find_file(fname); if (tmp) { - feature = fname = tmp; + feature = fname; + fname = tmp; goto load_dyna; } @@ -5469,5 +5470,6 @@ rb_f_require(obj, fname) tmp = rb_find_file(fname); if (tmp) { - feature = fname = tmp; + feature = fname; + fname = tmp; goto load_dyna; } Index: file.c =================================================================== RCS file: /cvs/ruby/src/ruby/file.c,v retrieving revision 1.61 diff -u -2 -p -r1.61 file.c --- file.c 2001/07/18 05:55:20 1.61 +++ file.c 2001/07/19 04:03:15 @@ -2349,4 +2349,5 @@ rb_find_file(path) return rb_str_new2(f); } + return 0; } -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦