diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/shellwords.rb | 12 | ||||
-rw-r--r-- | test/test_shellwords.rb | 8 |
3 files changed, 22 insertions, 3 deletions
@@ -1,3 +1,8 @@ Sat Dec 31 06:28:37 2011 NARUSE, Yui <[email protected]> * thread.c (rb_barrier_waiting): save the number of waiting threads @@ -75,15 +75,21 @@ module Shellwords # # ... # } # def shellescape(str) # An empty argument will be skipped, so return empty quotes. return "''" if str.empty? str = str.dup - # Process as a single byte sequence because not all shell - # implementations are multibyte aware. - str.gsub!(/([^A-Za-z0-9_\-.,:\/@\n])/n, "\\\\\\1") # A LF cannot be escaped with a backslash because a backslash + LF # combo is regarded as line continuation and simply ignored. @@ -1,3 +1,4 @@ require 'test/unit' require 'shellwords' @@ -36,4 +37,11 @@ class TestShellwords < Test::Unit::TestCase shellwords(bad_cmd) end end end |