From 2acd69beec98bb9d1bfd0c75958ed08627f4a8a6 Mon Sep 17 00:00:00 2001 From: Phillip Hellewell Date: Sat, 4 Feb 2023 09:08:19 -0700 Subject: [PATCH 1/2] Add key bindings for PgUp, PgDn --- lib/reline/ansi.rb | 2 ++ test/reline/test_ansi_with_terminfo.rb | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/lib/reline/ansi.rb b/lib/reline/ansi.rb index 3c6997e0f8..3bf2bbe735 100644 --- a/lib/reline/ansi.rb +++ b/lib/reline/ansi.rb @@ -8,6 +8,8 @@ class Reline::ANSI 'khome' => :ed_move_to_beg, 'kend' => :ed_move_to_end, 'kdch1' => :key_delete, + 'kpp' => :ed_ignore, + 'knp' => :ed_ignore, 'kcuu1' => :ed_prev_history, 'kcud1' => :ed_next_history, 'kcuf1' => :ed_next_char, diff --git a/test/reline/test_ansi_with_terminfo.rb b/test/reline/test_ansi_with_terminfo.rb index a6c3a5e500..cb96b92d70 100644 --- a/test/reline/test_ansi_with_terminfo.rb +++ b/test/reline/test_ansi_with_terminfo.rb @@ -33,6 +33,20 @@ def test_kdch1 omit e.message end + # PgUp key + def test_kpp + assert_key_binding(Reline::Terminfo.tigetstr('kpp'), :ed_ignore) + rescue Reline::Terminfo::TerminfoError => e + omit e.message + end + + # PgDn key + def test_knp + assert_key_binding(Reline::Terminfo.tigetstr('knp'), :ed_ignore) + rescue Reline::Terminfo::TerminfoError => e + omit e.message + end + # Up arrow key def test_kcuu1 assert_key_binding(Reline::Terminfo.tigetstr('kcuu1'), :ed_prev_history) From 4851d7be2e440ac6ffd52ad6e8546f783ae367d4 Mon Sep 17 00:00:00 2001 From: Phillip Hellewell Date: Mon, 20 Mar 2023 20:15:29 -0600 Subject: [PATCH 2/2] Match behavior of readline 8.2 In the latest readline (8.2), page-up and page-down are bound to history-search-backward and history-search-forward by default. We would like reline to have the same default behavior. --- lib/reline/ansi.rb | 4 ++-- test/reline/test_ansi_with_terminfo.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/reline/ansi.rb b/lib/reline/ansi.rb index 3bf2bbe735..c1d14903c4 100644 --- a/lib/reline/ansi.rb +++ b/lib/reline/ansi.rb @@ -8,8 +8,8 @@ class Reline::ANSI 'khome' => :ed_move_to_beg, 'kend' => :ed_move_to_end, 'kdch1' => :key_delete, - 'kpp' => :ed_ignore, - 'knp' => :ed_ignore, + 'kpp' => :ed_search_prev_history, + 'knp' => :ed_search_next_history, 'kcuu1' => :ed_prev_history, 'kcud1' => :ed_next_history, 'kcuf1' => :ed_next_char, diff --git a/test/reline/test_ansi_with_terminfo.rb b/test/reline/test_ansi_with_terminfo.rb index cb96b92d70..d7f61806a6 100644 --- a/test/reline/test_ansi_with_terminfo.rb +++ b/test/reline/test_ansi_with_terminfo.rb @@ -35,14 +35,14 @@ def test_kdch1 # PgUp key def test_kpp - assert_key_binding(Reline::Terminfo.tigetstr('kpp'), :ed_ignore) + assert_key_binding(Reline::Terminfo.tigetstr('kpp'), :ed_search_prev_history) rescue Reline::Terminfo::TerminfoError => e omit e.message end # PgDn key def test_knp - assert_key_binding(Reline::Terminfo.tigetstr('knp'), :ed_ignore) + assert_key_binding(Reline::Terminfo.tigetstr('knp'), :ed_search_next_history) rescue Reline::Terminfo::TerminfoError => e omit e.message end