diff --git a/lib/interactive/session.rb b/lib/interactive/session.rb index 88dd561d..0c649ab2 100644 --- a/lib/interactive/session.rb +++ b/lib/interactive/session.rb @@ -85,7 +85,7 @@ def shellsplit(line) line.scan(/\G\s*(?>([^\s\\\'\"]+)|'([^\']*)'|"((?:[^\"\\]|\\.)*)"|(\\.?)|(\S))(\s|\z)?/) do |word, sq, dq, esc, garbage, sep| raise ArgumentError, "Unmatched double quote: #{line.inspect}" if garbage - field << (word || sq || (dq || esc)) + field << (word || sq || (dq || esc).gsub(/(\\(x[0-9a-f]{2}|.))/) { eval('"%s"' % $1) }) if sep words << field field = '' @@ -156,7 +156,7 @@ def format_reply(reply, prefix = "") when Bignum "(integer) " + reply.to_s + "\n" when String - %Q{"%s"\n} % reply.force_encoding("ASCII") + reply.force_encoding("ASCII").inspect when NilClass "(nil)\n" when Array