summaryrefslogtreecommitdiff
path: root/lib/fileutils.rb
diff options
context:
space:
mode:
authormame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-05-15 04:16:08 +0000
committermame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-05-15 04:16:08 +0000
commit84bb8e81c25d4d7d6020c3acfbbc36e9064200fa (patch)
tree4e3778f2047fa5f18188ae8799ca9cb30b1357e9 /lib/fileutils.rb
parent4e09f414fc6e0bdc5cdf6863f5698464ac3e8a7d (diff)
Revert "Merge fileutils-1.1.0."
This reverts commit 99da3d2570e110d3024039102205f6d64174bf5e. The change caused the following build failure: ``` .../ruby/lib/fileutils.rb:88:in `require': cannot load such file -- rbconfig (LoadError) uncommon.mk:987: recipe for target 'encdb.h' failed make: *** [encdb.h] Error 1 ``` git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/fileutils.rb')
-rw-r--r--lib/fileutils.rb66
1 files changed, 20 insertions, 46 deletions
diff --git a/lib/fileutils.rb b/lib/fileutils.rb
index 7cbc6f46fa..88e28f29d5 100644
--- a/lib/fileutils.rb
+++ b/lib/fileutils.rb
@@ -85,11 +85,9 @@
# <tt>:verbose</tt> flags to methods in FileUtils.
#
-require 'rbconfig'
-
module FileUtils
- VERSION = "1.1.0"
+ VERSION = "1.0.2"
def self.private_module_function(name) #:nodoc:
module_function name
@@ -121,9 +119,8 @@ module FileUtils
#
def cd(dir, verbose: nil, &block) # :yield: dir
fu_output_message "cd #{dir}" if verbose
- result = Dir.chdir(dir, &block)
+ Dir.chdir(dir, &block)
fu_output_message 'cd -' if verbose and block
- result
end
module_function :cd
@@ -544,7 +541,7 @@ module FileUtils
module_function :move
def rename_cannot_overwrite_file? #:nodoc:
- /emx/ =~ RbConfig::CONFIG['host_os']
+ /emx/ =~ RUBY_PLATFORM
end
private_module_function :rename_cannot_overwrite_file?
@@ -684,38 +681,22 @@ module FileUtils
unless parent_st.sticky?
raise ArgumentError, "parent directory is world writable, FileUtils#remove_entry_secure does not work; abort: #{path.inspect} (parent directory mode #{'%o' % parent_st.mode})"
end
-
# freeze tree root
euid = Process.euid
- dot_file = fullpath + "/."
- begin
- File.open(dot_file) {|f|
- unless fu_stat_identical_entry?(st, f.stat)
- # symlink (TOC-to-TOU attack?)
- File.unlink fullpath
- return
- end
- f.chown euid, -1
- f.chmod 0700
- }
- rescue EISDIR # JRuby in non-native mode can't open files as dirs
- File.lstat(dot_file).tap {|fstat|
- unless fu_stat_identical_entry?(st, fstat)
- # symlink (TOC-to-TOU attack?)
- File.unlink fullpath
- return
- end
- File.chown euid, -1, dot_file
- File.chmod 0700, dot_file
- }
- end
-
- unless fu_stat_identical_entry?(st, File.lstat(fullpath))
- # TOC-to-TOU attack?
- File.unlink fullpath
- return
- end
-
+ File.open(fullpath + '/.') {|f|
+ unless fu_stat_identical_entry?(st, f.stat)
+ # symlink (TOC-to-TOU attack?)
+ File.unlink fullpath
+ return
+ end
+ f.chown euid, -1
+ f.chmod 0700
+ unless fu_stat_identical_entry?(st, File.lstat(fullpath))
+ # TOC-to-TOU attack?
+ File.unlink fullpath
+ return
+ end
+ }
# ---- tree root is frozen ----
root = Entry_.new(path)
root.preorder_traverse do |ent|
@@ -816,15 +797,8 @@ module FileUtils
#
def compare_stream(a, b)
bsize = fu_stream_blksize(a, b)
-
- if RUBY_VERSION > "2.4"
- sa = String.new(capacity: bsize)
- sb = String.new(capacity: bsize)
- else
- sa = String.new
- sb = String.new
- end
-
+ sa = String.new(capacity: bsize)
+ sb = String.new(capacity: bsize)
begin
a.read(bsize, sa)
b.read(bsize, sb)
@@ -1149,7 +1123,7 @@ module FileUtils
private
def fu_windows?
- /mswin|mingw|bccwin|emx/ =~ RbConfig::CONFIG['host_os']
+ /mswin|mingw|bccwin|emx/ =~ RUBY_PLATFORM
end
def fu_copy_stream0(src, dest, blksize = nil) #:nodoc: