diff options
| -rw-r--r-- | lib/reline/key_stroke.rb | 2 | ||||
| -rw-r--r-- | test/reline/test_key_stroke.rb | 19 |
2 files changed, 17 insertions, 4 deletions
diff --git a/lib/reline/key_stroke.rb b/lib/reline/key_stroke.rb index 83136edcf8..017e3db00a 100644 --- a/lib/reline/key_stroke.rb +++ b/lib/reline/key_stroke.rb @@ -42,6 +42,8 @@ class Reline::KeyStroke expand(expand(rhs_bytes) + expand(input.drop(lhs.size))) when Symbol [rhs] + expand(input.drop(lhs.size)) + when Array + rhs end end diff --git a/test/reline/test_key_stroke.rb b/test/reline/test_key_stroke.rb index 224e93d9a0..15675a9b5a 100644 --- a/test/reline/test_key_stroke.rb +++ b/test/reline/test_key_stroke.rb @@ -16,10 +16,10 @@ class Reline::KeyStroke::Test < Reline::TestCase def test_match_status config = Reline::Config.new { - "a" => "xx", - "ab" => "y", - "abc" => "z", - "x" => "rr" + 'a' => 'xx', + 'ab' => 'y', + 'abc' => 'z', + 'x' => 'rr' }.each_pair do |key, func| config.add_default_key_binding(key.bytes, func.bytes) end @@ -35,4 +35,15 @@ class Reline::KeyStroke::Test < Reline::TestCase assert_equal(:unmatched, stroke.match_status("m".bytes)) assert_equal(:matched, stroke.match_status("abzwabk".bytes)) end + + def test_aaa + config = Reline::Config.new + { + 'abc' => '123', + }.each_pair do |key, func| + config.add_default_key_binding(key.bytes, func.bytes) + end + stroke = Reline::KeyStroke.new(config) + assert_equal('123'.bytes, stroke.expand('abc'.bytes)) + end end |
