diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | lib/shell/command-processor.rb | 7 |
2 files changed, 11 insertions, 2 deletions
@@ -1,4 +1,8 @@ -Tue Sep 17 15:53:20 2013 Nobuyoshi Nakada <nobu@ruby-lang.org> +Tue Sep 17 15:54:03 2013 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * lib/shell/command-processor.rb (Shell::CommandProcessor#find_system_command): + return executable file only, should ignore directories and + unexecutable files. [ruby-core:57235] [Bug #8918] * lib/test/unit/assertions.rb (Test::Unit::Assertions#assert_throw): assertion for throw. MiniTest::Assertions#assert_throws discards diff --git a/lib/shell/command-processor.rb b/lib/shell/command-processor.rb index f52d0ead6d..8a9ab55e73 100644 --- a/lib/shell/command-processor.rb +++ b/lib/shell/command-processor.rb @@ -369,7 +369,12 @@ class Shell for p in @shell.system_path path = join(p, command) - if FileTest.exist?(path) + begin + st = File.stat(path) + rescue SystemCallError + next + else + next unless st.executable? and !st.directory? @system_commands[command] = path return path end |