8000 Crash IRB at an empty line in history · Issue #236 · ruby/reline · GitHub
[go: up one dir, main page]

Skip to content
Crash IRB at an empty line in history #236
@chiastolite

Description

@chiastolite

Description

Paste this code to IRB.

1.times do
  1.times { puts }

end

And back in history and move a cursor to an empty line and type a right arrow. IRB is crashed.
When I used Reline 0.1.9, the problem did not occur.

irb(main):006:1* 1.times do
irb(main):007:1*   1.times { puts }
irb(main):008:1*    (Move a cursor here and type a right arrow)

        /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/reline/unicode.rb:188:in `get_next_mbchar_size': undefined method `grapheme_clusters' for nil:NilClass (NoMethodError)
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:1413:in `ed_next_char'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:951:in `call'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:951:in `wrap_method_call'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:968:in `process_key'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:1076:in `input_key'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/reline.rb:247:in `block (3 levels) in inner_readline'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/reline.rb:246:in `each'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/reline.rb:246:in `block (2 levels) in inner_readline'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/reline.rb:298:in `block in read_io'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/reline.rb:284:in `loop'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/reline.rb:284:in `read_io'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/reline.rb:245:in `block in inner_readline'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/reline.rb:243:in `loop'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/reline.rb:243:in `inner_readline'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/reline.rb:175:in `readmultiline'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/forwardable.rb:238:in `readmultiline'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/forwardable.rb:238:in `readmultiline'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/irb/input-method.rb:302:in `gets'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/irb.rb:519:in `block (2 levels) in eval_input'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/irb.rb:721:in `signal_status'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/irb.rb:518:in `block in eval_input'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:202:in `lex'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:174:in `block (2 levels) in each_top_level_statement'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:171:in `loop'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:171:in `block in each_top_level_statement'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:170:in `catch'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:170:in `each_top_level_statement'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/irb.rb:537:in `eval_input'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/irb.rb:472:in `block in run'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/irb.rb:471:in `catch'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/irb.rb:471:in `run'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/3.0.0/irb.rb:400:in `start'
        from /Users/chiastolite/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/irb-1.3.0/exe/irb:11:in `<top (required)>'
        from /Users/chiastolite/.rbenv/versions/3.0.0/bin/irb:23:in `load'
        from /Users/chiastolite/.rbenv/versions/3.0.0/bin/irb:23:in `<main>'

Result of irb_info

irb(main):001:0> irb_info
=>
Ruby version: 3.0.0
IRB version: irb 1.3.0 (2020-12-25)
InputMethod: ReidlineInputMethod with Reline 0.2.0

Terminal Emulator

Terminal (version 2.11 on macOS Big Sur 11.0.1)

< 414F div>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0