summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/reline/line_editor.rb9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/reline/line_editor.rb b/lib/reline/line_editor.rb
index 50f11f6480..86fc4d9bba 100644
--- a/lib/reline/line_editor.rb
+++ b/lib/reline/line_editor.rb
@@ -411,8 +411,13 @@ class Reline::LineEditor
return nil
end
completed = list.inject { |memo, item|
- memo_mbchars = memo.unicode_normalize.grapheme_clusters
- item_mbchars = item.unicode_normalize.grapheme_clusters
+ begin
+ memo_mbchars = memo.unicode_normalize.grapheme_clusters
+ item_mbchars = item.unicode_normalize.grapheme_clusters
+ rescue Encoding::CompatibilityError
+ memo_mbchars = memo.grapheme_clusters
+ item_mbchars = item.grapheme_clusters
+ end
size = [memo_mbchars.size, item_mbchars.size].min
result = ''
size.times do |i|