summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/reline/line_editor.rb2
-rw-r--r--test/reline/test_key_actor_emacs.rb7
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/reline/line_editor.rb b/lib/reline/line_editor.rb
index 71b56b4c3b..71cca85ad0 100644
--- a/lib/reline/line_editor.rb
+++ b/lib/reline/line_editor.rb
@@ -1975,6 +1975,8 @@ class Reline::LineEditor
arg.times do
if key == "\C-j".ord or key == "\C-m".ord
key_newline(key)
+ elsif key == 0
+ # Ignore NUL.
else
ed_insert(key)
end
diff --git a/test/reline/test_key_actor_emacs.rb b/test/reline/test_key_actor_emacs.rb
index 6a6cbdc59f..dd9b8bd812 100644
--- a/test/reline/test_key_actor_emacs.rb
+++ b/test/reline/test_key_actor_emacs.rb
@@ -2285,6 +2285,13 @@ class Reline::KeyActor::Emacs::Test < Reline::TestCase
assert_line(' 12345')
end
+ def test_ignore_NUL_by_ed_quoted_insert
+ input_keys(%Q{"\C-v\C-@"}, false)
+ assert_byte_pointer_size('""')
+ assert_cursor(2)
+ assert_cursor_max(2)
+ end
+
def test_input_unknown_char
input_keys('͸') # U+0378 (unassigned)
assert_line('͸')