Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

merge revision(s) 27398:

	* eval.c (search_required): expand home relative path first.
	  [ruby-core:29610]


git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8_7@28210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information...
commit cf9abc2aeacfec6fdda36f04e7900581e046254e 1 parent c603a0f
Urabe, Shyouhei shyouhei authored
Showing with 38 additions and 2 deletions.
  1. +5 −0 ChangeLog
  2. +5 −1 eval.c
  3. +27 −0 test/ruby/test_require.rb
  4. +1 −1  version.h
5 ChangeLog
View
@@ -1,3 +1,8 @@
+Tue Jun 8 15:27:00 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * eval.c (search_required): expand home relative path first.
+ [ruby-core:29610]
+
Tue Jun 8 15:23:10 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/timeout.rb (Timeout#timeout): propagate errors to the
6 eval.c
View
@@ -7328,9 +7328,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
View
@@ -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
2  version.h
View
@@ -2,7 +2,7 @@
#define RUBY_RELEASE_DATE "2010-06-08"
#define RUBY_VERSION_CODE 187
#define RUBY_RELEASE_CODE 20100608
-#define RUBY_PATCHLEVEL 274
+#define RUBY_PATCHLEVEL 275
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 8
Please sign in to comment.
Something went wrong with that request. Please try again.