diff --git a/ChangeLog b/ChangeLog index 3d2a71cadf..dd32477f1a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Tue Apr 19 23:02:40 2005 Nobuyoshi Nakada + + * eval.c (search_required): deal with features with path too. + + * intern.h (rb_file_expand_path): prototype. fixed: [ruby-dev:26082] + Tue Apr 19 08:38:07 2005 Nobuyoshi Nakada * eval.c (search_required, rb_require_safe): expand path in diff --git a/eval.c b/eval.c index 73f04ce868..5807aa53b8 100644 --- a/eval.c +++ b/eval.c @@ -6916,8 +6916,8 @@ search_required(fname, path) } } } - else if (!strchr(ftptr, '/')) { - if (rb_feature_p(ftptr, 0, Qfalse)) return 's'; + else if (ext = rb_feature_p(ftptr, 0, Qfalse)) { + return (*ext && (IS_SOEXT(ext) || IS_DLEXT(ext))) ? 's' : 'r'; } tmp = fname; type = rb_find_file_ext(&tmp, loadable_ext); diff --git a/intern.h b/intern.h index e215caa00f..221e223b05 100644 --- a/intern.h +++ b/intern.h @@ -229,6 +229,7 @@ VALUE rb_exec_recursive _((VALUE(*)(ANYARGS),VALUE,VALUE)); /* file.c */ int eaccess _((const char*, int)); VALUE rb_file_s_expand_path _((int, VALUE *)); +VALUE rb_file_expand_path _((VALUE, VALUE)); void rb_file_const _((const char*, VALUE)); int rb_find_file_ext _((VALUE*, const char* const*)); VALUE rb_find_file _((VALUE));