diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-02-18 16:58:13 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-02-18 16:58:13 +0000 |
commit | 0998c2dd0691b5982a5e08471ee99d9bd206f7fc (patch) | |
tree | 4d81b9dc2ebce0400655d58ea06828139efac9ed | |
parent | a8e289374a3162d98ec58833550c40e44092179b (diff) | |
download | ruby-0998c2dd0691b5982a5e08471ee99d9bd206f7fc.tar.gz |
win32/file.c: fix drive letter
* win32/file.c (rb_file_expand_path_internal): neither the drive
of base directory nor the current drive are involved in the
result if different than the drive of path.
[ruby-core:68130] [Bug #10858]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | test/ruby/test_file_exhaustive.rb | 1 | ||||
-rw-r--r-- | win32/file.c | 1 |
3 files changed, 9 insertions, 0 deletions
@@ -1,3 +1,10 @@ +Thu Feb 19 01:58:10 2015 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * win32/file.c (rb_file_expand_path_internal): neither the drive + of base directory nor the current drive are involved in the + result if different than the drive of path. + [ruby-core:68130] [Bug #10858] + Wed Feb 18 10:48:56 2015 Nobuyoshi Nakada <nobu@ruby-lang.org> * win32/win32.c (wrename): return EXDEV if moving a directory to diff --git a/test/ruby/test_file_exhaustive.rb b/test/ruby/test_file_exhaustive.rb index 96e36b9d69..0c16a01453 100644 --- a/test/ruby/test_file_exhaustive.rb +++ b/test/ruby/test_file_exhaustive.rb @@ -447,6 +447,7 @@ class TestFileExhaustive < Test::Unit::TestCase assert_equal(@file, File.expand_path(@file + "::$DATA")) assert_match(/\Ac:\//i, File.expand_path('c:'), '[ruby-core:31591]') assert_match(/\Ac:\//i, File.expand_path('c:foo', 'd:/bar')) + assert_match(/\Ae:\//i, File.expand_path('e:foo', 'd:/bar')) assert_match(%r'\Ac:/bar/foo\z'i, File.expand_path('c:foo', 'c:/bar')) when /darwin/ ["\u{feff}", *"\u{2000}"..."\u{2100}"].each do |c| diff --git a/win32/file.c b/win32/file.c index 36df39f2fa..0fddaaaa8e 100644 --- a/win32/file.c +++ b/win32/file.c @@ -501,6 +501,7 @@ rb_file_expand_path_internal(VALUE fname, VALUE dname, int abs_mode, int long_na /* ignore dir since path drive is different from dir drive */ ignore_dir = 1; wdir_len = 0; + dir_drive = 0; } } |