aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--lib/fileutils.rb4
2 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 1b31b334b4..8fed996361 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Fri Jul 5 01:23:33 2013 Akinori MUSHA <knu@iDaemons.org>
+
+ * 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.
+
Fri Jul 5 00:25:39 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/mkmf.rb (have_framework): allow header file to check.
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)