ruby-changes:17328
From: usa <ko1@a...>
Date: Fri, 24 Sep 2010 16:23:52 +0900 (JST)
Subject: [ruby-changes:17328] Ruby:r29333 (ruby_1_8): * lib/pathname.rb (relative_path_from): backport r23093 and r25440
usa 2010-09-24 16:23:44 +0900 (Fri, 24 Sep 2010) New Revision: 29333 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=29333 Log: * lib/pathname.rb (relative_path_from): backport r23093 and r25440 from ruby_1_9_2. [ruby-core:32415] Modified files: branches/ruby_1_8/ChangeLog branches/ruby_1_8/lib/pathname.rb Index: ruby_1_8/ChangeLog =================================================================== --- ruby_1_8/ChangeLog (revision 29332) +++ ruby_1_8/ChangeLog (revision 29333) @@ -1,3 +1,8 @@ +Fri Sep 24 16:22:40 2010 NAKAMURA Usaku <usa@r...> + + * lib/pathname.rb (relative_path_from): backport r23093 and r25440 + from ruby_1_9_2. [ruby-core:32415] + Fri Sep 24 03:00:26 2010 Nobuyoshi Nakada <nobu@r...> * eval.c (rb_add_threadswitch_hook): wrapper for unofficial APIs Index: ruby_1_8/lib/pathname.rb =================================================================== --- ruby_1_8/lib/pathname.rb (revision 29332) +++ ruby_1_8/lib/pathname.rb (revision 29333) @@ -194,6 +194,13 @@ # to_path is implemented so Pathname objects are usable with File.open, etc. TO_PATH = :to_path end + + SAME_PATHS = if File::FNM_SYSCASE.nonzero? + proc {|a, b| a.casecmp(b).zero?} + else + proc {|a, b| a == b} + end + # :startdoc: # @@ -719,12 +726,12 @@ base_prefix, basename = r base_names.unshift basename if basename != '.' end - if dest_prefix != base_prefix + unless SAME_PATHS[dest_prefix, base_prefix] raise ArgumentError, "different prefix: #{dest_prefix.inspect} and #{base_directory.inspect}" end while !dest_names.empty? && !base_names.empty? && - dest_names.first == base_names.first + SAME_PATHS[dest_names.first, base_names.first] dest_names.shift base_names.shift end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/