summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--lib/fileutils.rb10
2 files changed, 9 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index e86337b2b8..e632ba5219 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Tue Aug 5 17:58:57 2003 WATANABE Hirofumi <eban@ruby-lang.org>
+
+ * lib/fileutils.rb (install): should preserve timestamp only.
+
Tue Aug 5 15:47:34 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
* eval.c (rb_load): should preserve current source file/line.
diff --git a/lib/fileutils.rb b/lib/fileutils.rb
index d6714229a9..dfec5f9005 100644
--- a/lib/fileutils.rb
+++ b/lib/fileutils.rb
@@ -639,10 +639,10 @@ module FileUtils
fu_each_src_dest(src, dest) do |s,d|
unless FileTest.exist?(d) and compare_file(s,d)
- fu_preserve_attr(options[:preserve], s, d) {
- remove_file d, true
- copy_file s, d
- }
+ remove_file d, true
+ st = File.stat(s) if options[:preserve]
+ copy_file s, d
+ File.utime st.atime, st.mtime, d if options[:preserve]
File.chmod options[:mode], d if options[:mode]
end
end
@@ -769,7 +769,7 @@ module FileUtils
'copy' => %w( preserve noop verbose ),
'cp' => %w( preserve noop verbose ),
'cp_r' => %w( preserve noop verbose ),
- 'install' => %w( mode noop verbose ),
+ 'install' => %w( preserve mode noop verbose ),
'link' => %w( force noop verbose ),
'ln' => %w( force noop verbose ),
'ln_s' => %w( force noop verbose ),