1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* eval.c (search_required): expand home relative path first.

[ruby-core:29610]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@27398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2010-04-19 10:13:14 +00:00
parent dcb13f8e17
commit 3dea38333c
3 changed files with 37 additions and 1 deletions

View file

@ -1,3 +1,8 @@
Mon Apr 19 19:13:12 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* eval.c (search_required): expand home relative path first.
[ruby-core:29610]
Mon Apr 19 12:46:15 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/timeout.rb (Timeout#timeout): propagate errors to the

6
eval.c
View file

@ -7411,9 +7411,13 @@ search_required(fname, featurep, path)
const char *ext, *ftptr;
int type;
if (*(ftptr = RSTRING_PTR(fname)) == '~') {
fname = rb_file_expand_path(fname, Qnil);
ftptr = RSTRING_PTR(fname);
}
*featurep = fname;
*path = 0;
ext = strrchr(ftptr = RSTRING_PTR(fname), '.');
ext = strrchr(ftptr, '.');
if (ext && !strchr(ext, '/')) {
if (strcmp(".rb", ext) == 0) {
if (rb_feature_p(ftptr, ext, Qtrue)) {

27
test/ruby/test_require.rb Normal file
View file

@ -0,0 +1,27 @@
require 'test/unit'
require 'tempfile'
require File.expand_path('../envutil', __FILE__)
require 'tmpdir'
class TestRequire < Test::Unit::TestCase
def test_home_path
home = ENV["HOME"]
bug3171 = '[ruby-core:29610]'
Dir.mktmpdir do |tmp|
ENV["HOME"] = tmp
name = "loadtest#{$$}-1"
path = File.join(tmp, name) << ".rb"
open(path, "w") {}
require "~/#{name}"
assert_equal(path, $"[-1], bug3171)
name.succ!
path = File.join(tmp, name << ".rb")
open(path, "w") {}
require "~/#{name}"
assert_equal(path, $"[-1], bug3171)
end
ensure
ENV["HOME"] = home
end
end