-
Notifications
You must be signed in to change notification settings - Fork 93
Closed
Description
Description
In vi-mode, 'x' (or 'a' ?) causes crash with multibyte character.
Environment:
- Ruby 2.7.2
- IRB::VERSION = 1.2.6
- Reline::VERSION = 0.2.0 (today's HEAD)
- FreeBSD 12.2-RELEASE-p1
- PuTTYrv 0.74-ranvis (CJK)
Scenario:
Editing line from "あ' to "あ".
irb(main):001:0" "あ'
The cursor is located at the last ' character.
In vi command mode, type x, a.
Expected:
irb(main):001:0> "あ"
Actual:
irb(main):001:0" " Traceback (most recent call last):
38: from /var/work/src/irb/exe/irb:11:in `<main>'
37: from /usr/local/lib/ruby/2.7/irb.rb:400:in `start'
36: from /usr/local/lib/ruby/2.7/irb.rb:471:in `run'
35: from /usr/local/lib/ruby/2.7/irb.rb:471:in `catch'
34: from /usr/local/lib/ruby/2.7/irb.rb:472:in `block in run'
33: from /usr/local/lib/ruby/2.7/irb.rb:537:in `eval_input'
32: from /usr/local/lib/ruby/2.7/irb/ruby-lex.rb:150:in `each_top_level_statement'
31: from /usr/local/lib/ruby/2.7/irb/ruby-lex.rb:150:in `catch'
30: from /usr/local/lib/ruby/2.7/irb/ruby-lex.rb:151:in `block in each_top_level_statement'
29: from /usr/local/lib/ruby/2.7/irb/ruby-lex.rb:151:in `loop'
28: from /usr/local/lib/ruby/2.7/irb/ruby-lex.rb:154:in `block (2 levels) in each_top_level_statement'
27: from /usr/local/lib/ruby/2.7/irb/ruby-lex.rb:182:in `lex'
26: from /usr/local/lib/ruby/2.7/irb.rb:518:in `block in eval_input'
25: from /usr/local/lib/ruby/2.7/irb.rb:704:in `signal_status'
24: from /usr/local/lib/ruby/2.7/irb.rb:519:in `block (2 levels) in eval_input'
23: from /usr/local/lib/ruby/2.7/irb/input-method.rb:294:in `gets'
22: from /usr/local/lib/ruby/2.7/forwardable.rb:235:in `readmultiline'
21: from /usr/local/lib/ruby/2.7/forwardable.rb:235:in `readmultiline'
20: from /var/work/lib/ruby/reline.rb:175:in `readmultiline'
19: from /var/work/lib/ruby/reline.rb:243:in `inner_readline'
18: from /var/work/lib/ruby/reline.rb:243:in `loop'
17: from /var/work/lib/ruby/reline.rb:245:in `block in inner_readline'
16: from /var/work/lib/ruby/reline.rb:284:in `read_io'
15: from /var/work/lib/ruby/reline.rb:284:in `loop'
14: from /var/work/lib/ruby/reline.rb:330:in `block in read_io'
13: from /var/work/lib/ruby/reline.rb:246:in `block (2 levels) in inner_readline'
12: from /var/work/lib/ruby/reline.rb:246:in `each'
11: from /var/work/lib/ruby/reline.rb:247:in `block (3 levels) in inner_readline'
10: from /var/work/lib/ruby/reline/line_editor.rb:1087:in `input_key'
9: from /var/work/lib/ruby/reline/line_editor.rb:1041:in `normal_char'
8: from /var/work/lib/ruby/reline/line_editor.rb:1006:in `process_key'
7: from /var/work/lib/ruby/reline/line_editor.rb:931:in `run_for_operators'
6: from /var/work/lib/ruby/reline/line_editor.rb:1007:in `block in process_key'
5: from /var/work/lib/ruby/reline/line_editor.rb:960:in `wrap_method_call'
4: from /var/work/lib/ruby/reline/line_editor.rb:960:in `call'
3: from /var/work/lib/ruby/reline/line_editor.rb:2191:in `vi_add'
2: from /var/work/lib/ruby/reline/line_editor.rb:1426:in `ed_next_char'
1: from /var/work/lib/ruby/reline/unicode.rb:103:in `get_mbchar_width'
/var/work/lib/ruby/reline/unicode.rb:103:in `ord': invalid byte sequence in UTF-8 (ArgumentError)
%
Terminal Emulator
PuTTYrv 0.74-ranvis (CJK)
Metadata
Metadata
Assignees
Labels
No labels