Include "charset.h".
(M_candidates, Mcandidates_group_size, Mcandidates_charset): New
variables.
(MIMState): New member (M17NObject control).
(lookup_nested_list, set_nested_list, parse_nested_list_value)
(get_nested_list, resolve_variable): New functions.
(integer_value): New arg (MPlist **value). Set it to the plist
element containing the value.
(resolve_command): New function.
(load_translation): New arg (MPlist *map_actions).
(load_branch): New args language and name. If `keylist' is a
symbol, resolved that as a command name.
(free_map): New arg top. Free map->map_actions only if top is
nonzero.
(free_state): New function.
(load_state): New arg name.
(im_info_list): New variable.
(free_im_info, get_im_info_by_tags): New functions.
(load_im_info): Arg key changed to plist. Handle `include'.
Return (MInputMethodInfo *).
(preedit_commit): Ref ic->candidate_list.
(get_select_charset, adjust_candidate_command): New functions.
(take_action_list): Handle `include'. Adjust candidate action
properly. Handle control variables `candidates-charset' and
`candidates-group-size'.
(open_im): Use get_im_info.
(create_ic): Get global variables.
(load_partial_im_info): New function.
(get_im_info): New function.
(check_command_keyseq, check_command_list, check_variable_list):
New functions.
(minput__init): Don't handle M_database_hook and Mdetail_text.
Initialize M_candidates, Mcandidates_group_size,
Mcandidates_charset.
(parse_variable_list, get_variable_list, parse_command_list)
(get_command_list): Delete them.
(MDatabaseStatList, imdir_stat_list, input_method_hook): Delete them.
(minput__fini): Simply unref command_list and variable_list.
(minput_get_description): Adjusted for the new form of description.
(minput_get_commands): Use get_nested_list.
(minput_assign_command_keys): Likewise.
(minput_get_variables, minput_set_variable): Likewise.