diff --git a/ChangeLog b/ChangeLog index fab8fed3a0..b0241f839c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sat Mar 3 22:51:29 2007 Minero Aoki + + * lib/fileutils.rb (mv): could not move directory between + different file systems. [ruby-dev:30411] + Sat Mar 3 22:37:02 2007 Nobuyoshi Nakada * file.c (rb_file_s_utime): allow nil to set the current time. diff --git a/lib/fileutils.rb b/lib/fileutils.rb index 4da9b56fb6..386ea35f81 100644 --- a/lib/fileutils.rb +++ b/lib/fileutils.rb @@ -1,7 +1,7 @@ # # = fileutils.rb # -# Copyright (c) 2000-2006 Minero Aoki +# Copyright (c) 2000-2007 Minero Aoki # # This program is free software. # You can distribute/modify this program under the same terms of ruby. @@ -504,7 +504,11 @@ module FileUtils File.rename s, d rescue Errno::EXDEV copy_entry s, d, true - File.unlink s + if options[:secure] + remove_entry_secure s, options[:force] + else + remove_entry s, options[:force] + end end rescue SystemCallError raise unless options[:force] @@ -517,7 +521,7 @@ module FileUtils module_function :move OPT_TABLE['mv'] = - OPT_TABLE['move'] = [:force, :noop, :verbose] + OPT_TABLE['move'] = [:force, :noop, :verbose, :secure] def rename_cannot_overwrite_file? #:nodoc: /djgpp|cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM