なかだです。

At Wed, 3 Aug 2005 02:13:52 +0900,
nobu / ruby-lang.org wrote in [ruby-dev:26715]:
> すいません、さらに間違えました。

たびたびすいません、やっぱり間違ってました。


Index: eval.c =================================================================== RCS file: /cvs/ruby/src/ruby/eval.c,v retrieving revision 1.808 diff -U2 -p -r1.808 eval.c --- eval.c 29 Jul 2005 00:59:55 -0000 1.808 +++ eval.c 2 Aug 2005 17:50:09 -0000 @@ -6851,5 +6851,5 @@ static st_table *loading_tbl; #endif -static char * +static int rb_feature_p(feature, ext, rb) const char *feature, *ext; @@ -6874,12 +6874,12 @@ rb_feature_p(feature, ext, rb) if (!*(e = f + len)) { if (ext) continue; - return e; + return 'u'; } if (*e != '.') continue; if ((!rb || !ext) && (IS_SOEXT(e) || IS_DLEXT(e))) { - return e; + return 's'; } if ((rb || !ext) && (strcmp(e, ".rb") == 0)) { - return e; + return 'r'; } } @@ -6991,5 +6991,5 @@ search_required(fname, path) VALUE tmp; char *ext, *ftptr; - int type; + int type, ft = 0; *path = 0; @@ -7042,6 +7042,6 @@ search_required(fname, path) } } - else if (ext = rb_feature_p(ftptr, 0, Qfalse)) { - return (*ext && (IS_SOEXT(ext) || IS_DLEXT(ext))) ? 's' : 'r'; + else if ((ft = rb_feature_p(ftptr, 0, Qfalse)) == 'r') { + return 'r'; } tmp = fname; @@ -7051,11 +7051,9 @@ search_required(fname, path) case 0: ftptr = RSTRING(tmp)->ptr; - if ((ext = rb_feature_p(ftptr, 0, Qfalse))) { - type = strcmp(".rb", ext); - break; - } - return 0; + return rb_feature_p(ftptr, 0, Qfalse); default: + if (ft) break; + case 1: ext = strrchr(ftptr = RSTRING(tmp)->ptr, '.'); if (rb_feature_p(ftptr, ext, !--type)) break;
-- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦