summaryrefslogtreecommitdiff
path: root/test/reline
diff options
context:
space:
mode:
authorTim Pope <code@tpope.net>2022-02-18 16:11:33 -0500
committergit <svn-admin@ruby-lang.org>2022-02-22 18:52:52 +0900
commit37d5890e4941cedf6918821b29bb4a7e3a092e62 (patch)
tree5c0594bca5da7676d9dc8ddc1c1d3c158c744315 /test/reline
parent50098f4b61179a32f9df92e5d0e58cb911f71c86 (diff)
downloadruby-37d5890e4941cedf6918821b29bb4a7e3a092e62.tar.gz
[ruby/reline] Fix support for emacs-ctlx and emacs-meta keymaps
The existing implementation, given the below .inputrc, erroneously creates a "C-v" key binding: set keymap emacs-ctlx "\C-v": "[C-x C-v was pressed]" This fixes it to instead create a "C-x C-v" keybinding. https://github.com/ruby/reline/commit/719f52d231
Diffstat (limited to 'test/reline')
-rw-r--r--test/reline/test_config.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/reline/test_config.rb b/test/reline/test_config.rb
index e00a47c705..99d190d246 100644
--- a/test/reline/test_config.rb
+++ b/test/reline/test_config.rb
@@ -274,6 +274,28 @@ class Reline::Config::Test < Reline::TestCase
assert_equal expected, @config.key_bindings
end
+ def test_additional_key_bindings_for_auxiliary_emacs_keymaps
+ @config.read_lines(<<~'LINES'.lines)
+ set keymap emacs
+ "ab": "AB"
+ set keymap emacs-standard
+ "cd": "CD"
+ set keymap emacs-ctlx
+ "ef": "EF"
+ set keymap emacs-meta
+ "gh": "GH"
+ set editing-mode emacs # keymap changes to be emacs
+ LINES
+
+ expected = {
+ 'ab'.bytes => 'AB'.bytes,
+ 'cd'.bytes => 'CD'.bytes,
+ "\C-xef".bytes => 'EF'.bytes,
+ "\egh".bytes => 'GH'.bytes,
+ }
+ assert_equal expected, @config.key_bindings
+ end
+
def test_history_size
@config.read_lines(<<~LINES.lines)
set history-size 5000