From e52f95a68a1c596d010d9cd3cc5f98177e71eb27 Mon Sep 17 00:00:00 2001 From: nagachika Date: Sun, 23 Jul 2017 07:36:10 +0000 Subject: [PATCH] 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 --- ext/pathname/lib/pathname.rb | 2 +- test/pathname/test_pathname.rb | 6 ++++-- version.h | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ext/pathname/lib/pathname.rb b/ext/pathname/lib/pathname.rb index a6621565d0..8bdb73f439 100644 --- a/ext/pathname/lib/pathname.rb +++ b/ext/pathname/lib/pathname.rb @@ -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 diff --git a/test/pathname/test_pathname.rb b/test/pathname/test_pathname.rb index 848d4e4190..1efd40121d 100644 --- a/test/pathname/test_pathname.rb +++ b/test/pathname/test_pathname.rb @@ -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 diff --git a/version.h b/version.h index 1faf0321f3..6328d73b36 100644 --- a/version.h +++ b/version.h @@ -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