+2005-10-29 Kenichi Handa <handa@m17n.org>
+
+ * input.c (get_candidate_list): Fix the timing of refering plist.
+
+2005-10-28 Kenichi Handa <handa@m17n.org>
+
+ * input.c (load_branch): Ignore an undefined map name.
+ (load_im_info): Set im_info->title from `name' only if it's not
+ Mnil.
+ (shift_state): Always update ic->status.
+ (adjust_candidates): Renamed from adjust_candidate_command.
+ Argument changed. Caller changed.
+ (get_candidate_list, regularize_action): New functions.
+ (take_action_list): Use them. On handling Munhandle, don't set
+ ic_info->used to 0.
+ (handle_key): If KEY is not handled by MAP, and MAP has
+ branch_actions, perform them.
+
+ * database.c (mdatabase__fini): Free dir_info->filename;
+
+2005-10-20 Kenichi Handa <handa@m17n.org>
+
+ * input.c (marker_code): Accept '@@'.
+ (integer_value): Handle '@@'.
+ (parse_action_list): Accept a symbol argument.
+ (take_action_list): Resolve the symbol argument. Handle the
+ integer argument.
+
+2005-10-18 Kenichi Handa <handa@m17n.org>
+
+ * input.c: 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.
+
+ * input.h (MInputMethodInfo): New members im and maps.
+
+ * database.h (M_database_hook): Delete extern.
+ (MDatabaseHookFunc): Delete extern.
+ (mdatabase__check): Extern it.
+
+ * database.c: Include <glob.h>.
+ (MAX_TIME): New macro.
+ (Masterisk): New variable.
+ (get_database_stream): Argument changed to (MDatabaseInfo *).
+ Callers changed.
+ (get_dir_info): Renamed from duplicate_dirname. Callers changed.
+ (find_database): New function.
+ (update_database_list): New function.
+ (mdatabase__init): Initialize Masterisk. Setup mdb_list by
+ calling update_database_list.
+ (mdatabase__check): New function.
+ (mdatabase_find): Use update_database and find_database. Don't
+ handle MDatabaseHookFunc.
+ (mdatabase_list): Call update_database at first.
+ (mdatabase_define): Adjusted for the change of mdb->extra_info.
+ (MDatabaseList): New type.
+
+ * plist.h (mplist_conv, mplist__pop_unref): Extern them.
+
+ * m17n.h (Mdetail_text): Delete extern.
+
+ * m17n-core.h (mplist_conc): Delete extern.
+
+ * plist.c (mplist__conc): Renamed from mplist_conc. Don't ref
+ tail.
+ (mplist_conc): Renamed to mplist__conc.
+ (mplist__pop_unref): New function.
+
+2005-10-14 Kenichi Handa <handa@m17n.org>
+
+ * plist.c (read_mtext_element): Ignore the sequence of '\\' and
+ newline.
+ (read_element): If keys is an empty plist, return any element
+ found first.
+ (dump_plist_element): Check if plist is nested.
+ (mplist_conc): Always ref tail.
+ (mplist_set): If key is a managing key, ref val in advance.
+
+ * plist.h (MPLIST_VAL_MANAGED_P): Delete this macro.
+ (MPLIST_NESTED_P, MPLIST_SET_NESTED_P): New macros.
+ (MPLIST_ADD_PLIST, MPLIST_PUSH_PLIST, MPLIST_PUT_PLIST): New
+ macros.
+
+ * fontset.c (free_fontset): Unref fontset_list if necessary.
+ (mfont__fontset_fini): Don't free fontset_list. Unref
+ default_fontset.
+ (mfont__realize_fontset): Initialize request.
+ (mfontset): Ref default_fontset or fontset only if necessary.
+ (mfontset_copy): Don't ref copy.
+
+ * draw.c (render_glyphs): Check gend->type before checking
+ gend->to.
+
+ * font-ft.c (mfont__ft_fini): Unref ft_default_list. Set all
+ unrefed plists to NULL.
+
+2005-10-04 Kenichi Handa <handa@m17n.org>
+
+ * textprop.c (mtext_serialize): Be sure to make mt
+ MTEXT_FORMAT_UTF_8 and NULL terminated.
+
+ * m17n-gui.c (m17n_init_win): Initialize Mcolormap.
+
+ * draw.c (mdraw_glyph_list): Fix settting of glyphs->font->source.
+
+2005-10-03 Kenichi Handa <handa@m17n.org>
+
+ * draw.c (mdraw_glyph_info): Pay attention to the case that FROM
+ is not at the beginning of line.
+
+2005-09-22 Kenichi Handa <handa@m17n.org>
+
+ * input.c: Include <sys/stat.h> and <unistd.h>.
+ (Minclude, Mcommit, Munhandle): New variables.
+ (minput__init): Initialize them. Push only Mstate to
+ load_im_info_keys. Add aliases C-lowercase for C-uppercase.
+ (parse_action_list): Allow integer arg for undo. Handle Mcommit
+ and Munhandle.
+ (load_input_method): Handle "include" directive. If no states are
+ loaded, return -1.
+ (shift_state): If state_name is Mt, shift back to the previous
+ state. Call preedit_commit to commit preedit text.
+ (preedit_commit): New function.
+ (take_action_list): Improve debug printing. Handle commit and
+ unhandle commands.
+ (handle_key): Check the return value of take_action_list. Don't
+ take branch_actions just after changing to the root map.
+ (reset_ic): Reset all ic_info members.
+ (filter): When a key is not handled, just move ic_info->keys
+ instead fo calling reset_ic.
+ (load_im_info): If key is not Mstate, push Mmap to
+ load_im_info_keys.
+ (MDatabaseStatList): New type.
+ (imdir_stat_list): New variable.
+ (input_method_hook): Don't cancel the hook. Check the
+ modification time of directories.
+ (minput__fini): Free imdir_stat_list;
+
+ * input.h (MInputContextInfo): New member prev_state.
+
+ * m17n-core.h (mplist_conc): Extern it.
+
+ * plist.c (mplist_conc): New function.
+
+ * mtext.c (mdebug_dump_mtext): Escape '"' and '\\' by '\\'.
+
+ * font.h (MRealizedFont): New member average_width.
+
+ * font-ft.c (ft_open): Set rface->average_width.
+
+ * font.c (xlfd_unparse_name): Print '*' before registry name.
+
+ * m17n-X.c (MDisplayInfo): New member AVERAGE_WIDTH.
+ (xfont_open): Set rfont->average_width.
+ (xft_open): Likewise.
+ (device_open): Initialize disp_info->AVERAGE_WIDTH.
+
+ * internal-gui.h (struct MFrame): New member average_width.
+
+ * m17n-gui.c (mframe): Fix setting of frame->rfont.
+ (mframe_get_prop): Return the average_width of a font.
+
+ * face.c (mface__realize): Set rface->average_width.
+ (mface__update_frame_face): Set frame->average_width.
+
+ * face.h (MRealizedFace): New member average_width.
+
+2005-09-19 Kenichi Handa <handa@m17n.org>
+
+ * font.c (xlfd_unparse_name): New arg full_xlfd.
+ (mfont__encode_char): Use shortcut only for X core fonts.
+ (mfont_unparse_name): Call xlfd_unparse_name with full_xlfd arg 1.
+ (mfont_put_prop): Handle `language' property.
+ (mdebug_dump_font): Call xlfd_unparse_name with full_xlfd arg 0.
+ Print file can capability info too.
+
+ * m17n-core.c (mdebug__output): New variable.
+ (SET_DEBUG_FLAG): Unset mask if env_value is '0'.
+ (m17n_init_core): Handle MDEBUG_ALL and MDEBUG_OUTPUT_FILE.
+ (m17n_fini_core): Close mdebug__output if it's not stderr.
+
+ * m17n-X.c (MDisplayInfo): New member MULE_BASELINE_OFFSET.
+ (xfont_open): Handle baseline_offset.
+ (xfont_find_metric): Likewise.
+ (xfont_render): Likewise.
+ (xft_open): Likewise.
+ (xft_render): Likewise.
+
+ * internal.h (MDebugMaskBit): Add MDEBUG_ALL.
+ (mdebug__output): Extern it.
+ (MDEBUG_PRINT, MDEBUG_PRINT1, MDEBUG_PRINT2, MDEBUG_PRINT3)
+ (MDEBUG_PRINT4, MDEBUG_PRINT5): Print to medebug__output.
+ (MDEBUG_DUMP): New macro.
+ (MDEBUG_PRINT_TIME): Print to medebug__output.
+
+ * font.h (MRealizedFont): New member baseline_offset.
+
+ * font-ft.c (ft_get_charmaps): Check if the font support iso8859-1
+ characters.
+ (fc_weight_table): Add FC_WEIGHT_REGULAR.
+ (ft_list_family): Check alias.
+ (ft_list_language): If language is "en", don't try to the second
+ step.
+ (ft_default_list): New variable.
+ (ft_list_default): New function.
+ (ft_select): If family is not specified, try only the default
+ fonts. Treat the weights normal and medium same.
+ (ft_open): Fix debug message. If registry is not specified, try
+ unicode-bmp. Handle _MULE_BASELINE_OFFSET property of BDF fonts.
+ (ft_find_metric): Likewise.
+ (ft_render): Likewise.
+ (ft_list): Fix debug message. Accept the registring iso8859-1.
+ If family is not specified, try only the default fonts.
+
+ * face.c (mface__realize): Fix logic of opening a font.
+
+2005-09-16 Kenichi Handa <handa@m17n.org>
+
+ * face.c (mface__realize):
+
+ * m17n.h (Minput_focus_move, Minput_focus_in, Minput_focus_out):
+ Extern them.
+
+ * input.c (shift_state): Fix the condition of taking init actions.
+ (take_action_list): Fix handling of pushback action.
+ (handle_key): Don't change key while checking its alias.
+ (minput__init): Initialize new variables.
+ (Minput_focus_move, Minput_focus_in, Minput_focus_out): New
+ variables.
+
+2005-09-12 Kenichi Handa <handa@m17n.org>
+
+ * mtext.c (mtext__uppercase): Add proper open/close parens.
+ (mtext_titlecase): Add proper casting.
+
+ * input.c (parse_action_list): Handle the case that the arg is a
+ key sequence (MText or MPlist).
+ (take_action_list): Likewise.
+ (shift_state): Shorter debug message.
+ (handle_key): Terminate a debug message by "\n".
+ (reset_ic): Don't take initial actions here.
+ (minput_open_im): Print a debug message.
+ (minput_close_im): Likewise.
+ (minput_create_ic): Likewise.
+ (minput_destroy_ic): Likewise.
+
+2005-09-09 TAKAHASHI Naoto <ntakahas@m17n.org>
+
+ * mtext.c (mtext_lowercase, mtext_titlecase, mtext_uppercase):
+ Change API.
+
+2005-09-07 TAKAHASHI Naoto <ntakahas@m17n.org>
+ * character.c: Add "cased", "soft-dotted", and "case-mapping" in
+ mchar__init ().
+
+ * character.c: Add Japanese documentation for
+ mchar_get_prop_table ().
+
+2005-09-06 TAKAHASHI Naoto <ntakahas@m17n.org>
+
+ * mtext.c (tricky_chars, *cased, *soft_dotted, *case_mapping)
+ (MCharTable *combining_class, Mlt, Mtr, Maz, gr03A3, lt0049,
+ (lt004A, lt012E, lt00CC, lt00CD, lt0128, tr0130, tr0049, tr0069):
+ New variables.
+ (init_case_conversion): New function.
+ (CASE_CONV_INIT, REPLACE, DELETE, LOOKUP): New macros.
+ (uppercase_precheck, lowercase_precheck, final_sigma)
+ (after_soft_dotted, more_above, before_dot, after_i)
+ (mtext_uppercase, mtext_titlecase, mtext_lowercase): New functions.
+
+2005-09-05 TAKAHASHI Naoto <ntakahas@m17n.org>
+
+ * plist.c (read_mtext_element): Fix previous change.
+
2005-09-05 Kenichi Handa <handa@m17n.org>
* plist.c (read_mtext_element): Handle \uXXXX notation.