def _rl_scxt_alloc(type, flags)
cxt = Struct.new(:type,:sflags,:search_string,:search_string_index,:search_string_size,:lines,:allocated_line,
:hlen,:hindex,:save_point,:save_mark,:save_line,:last_found_line,:prev_line_found,:save_undo_list,:history_pos,
:direction,:lastc,:sline,:sline_len,:sline_index,:search_terminators,:mb).new
cxt.type = type
cxt.sflags = flags
cxt.search_string = nil
cxt.search_string_size = cxt.search_string_index = 0
cxt.lines = nil
cxt.allocated_line = nil
cxt.hlen = cxt.hindex = 0
cxt.save_point = @rl_point
cxt.save_mark = @rl_mark
cxt.save_line = where_history()
cxt.last_found_line = cxt.save_line
cxt.prev_line_found = nil
cxt.save_undo_list = nil
cxt.history_pos = 0
cxt.direction = 0
cxt.lastc = 0
cxt.sline = nil
cxt.sline_len = cxt.sline_index = 0
cxt.search_terminators = nil
cxt
end