def _rl_init_terminal_io(terminal_name)
term = terminal_name ? terminal_name : ENV["TERM"]
@_rl_term_clrpag = @_rl_term_cr = @_rl_term_clreol = nil
tty = @rl_instream ? @rl_instream.fileno : 0
if no_terminal?
term = "dumb"
@_rl_bind_stty_chars = false
end
@term_string_buffer ||= 0.chr * 2032
@term_buffer ||= 0.chr * 4080
buffer = @term_string_buffer
tgetent_ret = (term != "dumb") ? 1 : -1
if (tgetent_ret <= 0)
buffer = @term_buffer = @term_string_buffer = nil
@_rl_term_autowrap = false
if (@_rl_screenwidth <= 0 || @_rl_screenheight <= 0)
_rl_get_screen_size(tty, 0)
end
if (@_rl_screenwidth <= 0 || @_rl_screenheight <= 0)
@_rl_screenwidth = 79
@_rl_screenheight = 24
end
@_rl_screenchars = @_rl_screenwidth * @_rl_screenheight
@_rl_term_cr = "\r"
@_rl_term_im = @_rl_term_ei = @_rl_term_ic = @_rl_term_IC = nil
@_rl_term_up = @_rl_term_dc = @_rl_term_DC = @_rl_visible_bell = nil
@_rl_term_ku = @_rl_term_kd = @_rl_term_kl = @_rl_term_kr = nil
@_rl_term_kh = @_rl_term_kH = @_rl_term_kI = @_rl_term_kD = nil
@_rl_term_ks = @_rl_term_ke = @_rl_term_at7 = nil
@_rl_term_mm = @_rl_term_mo = nil
@_rl_term_ve = @_rl_term_vs = nil
@_rl_term_forward_char = nil
@_rl_terminal_can_insert = @term_has_meta = false
@_rl_term_backspace = "\b"
return 0
end
get_term_capabilities(buffer)
@_rl_term_cr ||= "\r"
@_rl_term_autowrap = !!(tgetflag("am") && tgetflag("xn"))
if (@_rl_screenwidth <= 0 || @_rl_screenheight <= 0)
_rl_get_screen_size(tty, 0)
end
@term_has_meta = !!(tgetflag("km") || tgetflag("MT"))
if !@term_has_meta
@_rl_term_mm = @_rl_term_mo = nil
end
bind_termcap_arrow_keys(@emacs_standard_keymap)
bind_termcap_arrow_keys(@vi_movement_keymap)
bind_termcap_arrow_keys(@vi_insertion_keymap)
return 0
end