class Reline::LineEditor
def normal_char(key)
def normal_char(key) _symbol = method_obj = nil .combined_char.is_a?(Symbol) ess_key(key.combined_char, key.combined_char) rn byte_buffer << key.combined_char ltibyte_buffer.size > 1 multibyte_buffer.dup.force_encoding(@encoding).valid_encoding? ocess_key(@multibyte_buffer.dup.force_encoding(@encoding), nil) ultibyte_buffer.clear invalid turn single byte rn if key.char >= 128 # maybe, first byte of multi byte od_symbol = @config.editing_mode.get_method(key.combined_char) ey.with_meta and method_symbol == :ed_unassigned @config.editing_mode_is?(:vi_command, :vi_insert) # split ESC + key in vi mode method_symbol = @config.editing_mode.get_method("\e".ord) process_key("\e".ord, method_symbol) method_symbol = @config.editing_mode.get_method(key.char) process_key(key.char, method_symbol) d ocess_key(key.combined_char, method_symbol) tibyte_buffer.clear nfig.editing_mode_is?(:vi_command) and @cursor > 0 and @cursor == @cursor_max _size = Reline::Unicode.get_prev_mbchar_size(@line, @byte_pointer) e_pointer -= byte_size ar = @line.byteslice(@byte_pointer, byte_size) h = Reline::Unicode.get_mbchar_width(mbchar) sor -= width