[前][次][番号順一覧][スレッド一覧]

ruby-changes:35871

From: nagachika <ko1@a...>
Date: Wed, 15 Oct 2014 23:52:05 +0900 (JST)
Subject: [ruby-changes:35871] nagachika:r47953 (ruby_2_1): merge revision(s) r46783: [Backport #6716]

nagachika	2014-10-15 23:51:58 +0900 (Wed, 15 Oct 2014)

  New Revision: 47953

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=47953

  Log:
    merge revision(s) r46783: [Backport #6716]
    
    * lib/fileutils.rb: handle ENOENT error with symlink targeted to
      non-exists file. [ruby-dev:45933] [Bug #6716]

  Modified directories:
    branches/ruby_2_1/
  Modified files:
    branches/ruby_2_1/ChangeLog
    branches/ruby_2_1/lib/fileutils.rb
    branches/ruby_2_1/test/fileutils/test_fileutils.rb
    branches/ruby_2_1/version.h
Index: ruby_2_1/ChangeLog
===================================================================
--- ruby_2_1/ChangeLog	(revision 47952)
+++ ruby_2_1/ChangeLog	(revision 47953)
@@ -1,3 +1,8 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_1/ChangeLog#L1
+Wed Oct 15 23:50:33 2014  SHIBATA Hiroshi  <shibata.hiroshi@g...>
+
+	* lib/fileutils.rb: handle ENOENT error with symlink targeted to
+	  non-exists file. [ruby-dev:45933] [Bug #6716]
+
 Wed Oct 15 23:25:24 2014  NARUSE, Yui  <naruse@r...>
 
 	* configure.in: NetBSD's ksh, used by configure, needs escapes.
Index: ruby_2_1/lib/fileutils.rb
===================================================================
--- ruby_2_1/lib/fileutils.rb	(revision 47952)
+++ ruby_2_1/lib/fileutils.rb	(revision 47953)
@@ -854,7 +854,8 @@ module FileUtils https://github.com/ruby/ruby/blob/trunk/ruby_2_1/lib/fileutils.rb#L854
     fu_check_options options, OPT_TABLE['install']
     fu_output_message "install -c#{options[:preserve] && ' -p'}#{options[:mode] ? (' -m 0%o' % options[:mode]) : ''} #{[src,dest].flatten.join ' '}" if options[:verbose]
     return if options[:noop]
-    fu_each_src_dest(src, dest) do |s, d, st|
+    fu_each_src_dest(src, dest) do |s, d|
+      st = File.stat(s)
       unless File.exist?(d) and compare_file(s, d)
         remove_file d, true
         copy_file s, d
@@ -1252,7 +1253,12 @@ module FileUtils https://github.com/ruby/ruby/blob/trunk/ruby_2_1/lib/fileutils.rb#L1253
     end
 
     def exist?
-      lstat! ? true : false
+      begin
+        lstat
+        true
+      rescue Errno::ENOENT
+        false
+      end
     end
 
     def file?
@@ -1570,7 +1576,7 @@ module FileUtils https://github.com/ruby/ruby/blob/trunk/ruby_2_1/lib/fileutils.rb#L1576
   def fu_each_src_dest(src, dest)   #:nodoc:
     fu_each_src_dest0(src, dest) do |s, d|
       raise ArgumentError, "same file: #{s} and #{d}" if fu_same?(s, d)
-      yield s, d, File.stat(s)
+      yield s, d
     end
   end
   private_module_function :fu_each_src_dest
Index: ruby_2_1/version.h
===================================================================
--- ruby_2_1/version.h	(revision 47952)
+++ ruby_2_1/version.h	(revision 47953)
@@ -1,6 +1,6 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_1/version.h#L1
 #define RUBY_VERSION "2.1.4"
 #define RUBY_RELEASE_DATE "2014-10-15"
-#define RUBY_PATCHLEVEL 253
+#define RUBY_PATCHLEVEL 254
 
 #define RUBY_RELEASE_YEAR 2014
 #define RUBY_RELEASE_MONTH 10
Index: ruby_2_1/test/fileutils/test_fileutils.rb
===================================================================
--- ruby_2_1/test/fileutils/test_fileutils.rb	(revision 47952)
+++ ruby_2_1/test/fileutils/test_fileutils.rb	(revision 47953)
@@ -420,6 +420,12 @@ class TestFileUtils https://github.com/ruby/ruby/blob/trunk/ruby_2_1/test/fileutils/test_fileutils.rb#L420
     assert_raise(Errno::ELOOP) {
       mv 'tmp/symlink', 'tmp/symlink'
     }
+    # unexist symlink
+    File.symlink 'xxx', 'tmp/src'
+    assert_nothing_raised {
+      mv 'tmp/src', 'tmp/dest'
+    }
+    assert_equal true, File.symlink?('tmp/dest')
   end if have_symlink?
 
   def test_mv_pathname

Property changes on: ruby_2_1
___________________________________________________________________
Modified: svn:mergeinfo
   Merged /trunk:r46783


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]