diff options
-rw-r--r-- | lib/reline/line_editor.rb | 2 | ||||
-rw-r--r-- | test/reline/test_key_actor_emacs.rb | 7 |
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('') |