diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-08-02 03:25:12 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-08-02 03:25:12 +0000 |
commit | 49e259ec587fd72d96210fcb33593f3955555795 (patch) | |
tree | 3c72392c99cb90b8c7de74f0f6919223a5944e4a | |
parent | b25465592263c90ae4893f041ae99df17fd05eba (diff) | |
download | ruby-49e259ec587fd72d96210fcb33593f3955555795.tar.gz |
* file.c (file_expand_path): wrong condition. [ruby-core:31591]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | file.c | 2 | ||||
-rw-r--r-- | test/ruby/test_file_exhaustive.rb | 1 |
3 files changed, 6 insertions, 1 deletions
@@ -1,3 +1,7 @@ +Mon Aug 2 12:22:22 2010 NAKAMURA Usaku <usa@ruby-lang.org> + + * file.c (file_expand_path): wrong condition. [ruby-core:31591] + Mon Aug 2 05:34:48 2010 Tanaka Akira <akr@fsij.org> * ext/pathname/pathname.c (path_realdirpath): Pathname#realdirpath @@ -2897,7 +2897,7 @@ file_expand_path(VALUE fname, VALUE dname, int abs_mode, VALUE result) else { /* specified drive, but not full path */ int same = 0; - if (!NIL_P(dname) || !not_same_drive(dname, s[0])) { + if (!NIL_P(dname) && !not_same_drive(dname, s[0])) { file_expand_path(dname, Qnil, abs_mode, result); BUFINIT(); if (has_drive_letter(p) && TOLOWER(p[0]) == TOLOWER(s[0])) { diff --git a/test/ruby/test_file_exhaustive.rb b/test/ruby/test_file_exhaustive.rb index 5344494679..4615bceb05 100644 --- a/test/ruby/test_file_exhaustive.rb +++ b/test/ruby/test_file_exhaustive.rb @@ -393,6 +393,7 @@ class TestFileExhaustive < Test::Unit::TestCase assert_equal(@file, File.expand_path(@file + " ")) assert_equal(@file, File.expand_path(@file + ".")) assert_equal(@file, File.expand_path(@file + "::$DATA")) + assert_match(/\Ac:\//i, File.expand_path('c:'), '[ruby-core:31591]') end assert_kind_of(String, File.expand_path("~")) assert_raise(ArgumentError) { File.expand_path("~foo_bar_baz_unknown_user_wahaha") } |