diff options
author | Alan Wu <XrXr@users.noreply.github.com> | 2019-08-08 18:38:40 -0400 |
---|---|---|
committer | aycabta <aycabta@gmail.com> | 2019-08-18 07:43:19 +0900 |
commit | e9f82585eed414ff090d9ef7b667d0f3c1561a01 (patch) | |
tree | 76e9114cd3868262f5542364610449ba2a5e463b /lib | |
parent | 7bb0a7d7cba7bbeb03d531c13ccf73b6d4e688f6 (diff) | |
download | ruby-e9f82585eed414ff090d9ef7b667d0f3c1561a01.tar.gz |
Don't crash when deleting at the end of the line
To reproduce this bug, type one character into irb, then press the
delete key on your keyboard.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/reline/line_editor.rb | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/reline/line_editor.rb b/lib/reline/line_editor.rb index 4c97a6fed9..742ffedf9a 100644 --- a/lib/reline/line_editor.rb +++ b/lib/reline/line_editor.rb @@ -1712,8 +1712,8 @@ class Reline::LineEditor end private def ed_delete_next_char(key, arg: 1) - unless @line.empty? - byte_size = Reline::Unicode.get_next_mbchar_size(@line, @byte_pointer) + byte_size = Reline::Unicode.get_next_mbchar_size(@line, @byte_pointer) + unless @line.empty? || byte_size == 0 @line, mbchar = byteslice!(@line, @byte_pointer, byte_size) copy_for_vi(mbchar) width = Reline::Unicode.get_mbchar_width(mbchar) |