aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorAlan Wu <XrXr@users.noreply.github.com>2019-08-08 18:38:40 -0400
committeraycabta <aycabta@gmail.com>2019-08-18 07:43:19 +0900
commite9f82585eed414ff090d9ef7b667d0f3c1561a01 (patch)
tree76e9114cd3868262f5542364610449ba2a5e463b /lib
parent7bb0a7d7cba7bbeb03d531c13ccf73b6d4e688f6 (diff)
downloadruby-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.rb4
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)