merge revision(s) 59102: [Backport #13515]

pathname.rb: UNC root pathname needs a separator

	* ext/pathname/lib/pathname.rb (Pathname#plus): UNC root pathname
	  needs a separator.  File.basename returns "/" on UNC root, as
	  well as sole drive letter, even if it does not end with a
	  separator.  [ruby-core:80900] [Bug #13515]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@59400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nagachika 2017-07-23 07:36:10 +00:00
parent 3fd2cbecff
commit e52f95a68a
3 changed files with 6 additions and 4 deletions

View file

@ -378,7 +378,7 @@ class Pathname
basename_list2.shift
end
r1 = chop_basename(prefix1)
if !r1 && /#{SEPARATOR_PAT}/o =~ File.basename(prefix1)
if !r1 && (r1 = /#{SEPARATOR_PAT}/o =~ File.basename(prefix1))
while !basename_list2.empty? && basename_list2.first == '..'
index_list2.shift
basename_list2.shift

View file

@ -14,8 +14,8 @@ class TestPathname < Test::Unit::TestCase
end
def self.get_linenum
if /:(\d+):/ =~ caller[1]
$1.to_i
if loc = caller_locations(2, 1)
loc[0].lineno
else
nil
end
@ -221,6 +221,8 @@ class TestPathname < Test::Unit::TestCase
defassert(:plus, 'a//b/d//e', 'a//b/c', '../d//e')
defassert(:plus, '//foo/var/bar', '//foo/var', 'bar')
def test_slash
assert_kind_of(Pathname, Pathname("a") / Pathname("b"))
end

View file

@ -1,6 +1,6 @@
#define RUBY_VERSION "2.4.2"
#define RUBY_RELEASE_DATE "2017-07-23"
#define RUBY_PATCHLEVEL 151
#define RUBY_PATCHLEVEL 152
#define RUBY_RELEASE_YEAR 2017
#define RUBY_RELEASE_MONTH 7