aboutsummaryrefslogtreecommitdiffstats
path: root/lib/fileutils.rb
diff options
context:
space:
mode:
authorknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-04 17:22:05 +0000
committerknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-04 17:22:05 +0000
commit45116b6a6d7c3c0ef927863ed947cce4146ea3f1 (patch)
tree54fbb436e08c1a4a1fe05cf038abd097e4c9d94f /lib/fileutils.rb
parentab7d608632f35e8277ce586d89608aa6cfb60482 (diff)
downloadruby-45116b6a6d7c3c0ef927863ed947cce4146ea3f1.tar.gz
* lib/fileutils.rb (FileUtils#symbolic_modes_to_i): Fix the wrong
character class [+-=], which happened to match all desired characters but also match undesired characters. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41781 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/fileutils.rb')
-rw-r--r--lib/fileutils.rb4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/fileutils.rb b/lib/fileutils.rb
index a23da622e8..a75aab5f04 100644
--- a/lib/fileutils.rb
+++ b/lib/fileutils.rb
@@ -910,8 +910,8 @@ module FileUtils
def symbolic_modes_to_i(modes, path) #:nodoc:
current_mode = (File.stat(path).mode & 07777)
modes.split(/,/).inject(0) do |mode, mode_sym|
- mode_sym = "a#{mode_sym}" if mode_sym =~ %r!^[+-=]!
- target, mode = mode_sym.split %r![+-=]!
+ mode_sym = "a#{mode_sym}" if mode_sym =~ %r!^[=+-]!
+ target, mode = mode_sym.split %r![=+-]!
user_mask = user_mask(target)
mode_mask = mode_mask(mode ? mode : "", path)