*** empty log message ***
[m17n/m17n-lib.git] / src / ChangeLog
index 07bb292..6e99c4f 100644 (file)
+2010-08-31  Kenichi Handa  <handa@m17n.org>
+
+       * draw.c (compose_glyph_string): Allow running flt striding over
+       the cursor position.
+
+2010-08-19  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-X.c (MDisplayInfo): New member altgr_mask.
+       (find_modifier_bits): Set disp_info->altgr_mask.
+
+       * input.c (fully_initialize): Make it static.
+
+       * input.h (MINPUT_KEY_ALTGR_MODIFIER): New macro.
+
+       * input-gui.c (minput_event_to_key): Handle
+       MINPUT_KEY_ALTGR_MODIFIER.
+
+2010-08-12  Kenichi Handa  <handa@m17n.org>
+
+       * character.h (STRING_CHAR_ADVANCE_UTF8): Sanitize the code.
+       (STRING_CHAR_ADVANCE_UTF16): Likewise.
+
+       * font.c (mfont__init): Initialize buf to NULL.
+       (mfont__id): Likewise.
+
+       * font-ft.c (ft_encapsulate): Use MDEBUG_PRINT1 instead of
+       MDEBUG_DUMP.
+       (ft_check_otf): Move the label not_otf: within #ifdef HAVE_OTF.
+       (get_otf): Move the code within #ifdef HAVE_OTF.
+       (ft_drive_otf): Move declarations of some local variables within
+       #ifdef HAVE_OTF.
+
+2010-08-11  Kenichi Handa  <handa@m17n.org>
+
+       * input.h (MInputContextInfo): New member state_hook.
+
+       * input.c (shift_state): Just set ic_info->state_hook, instead of
+       taking state-hook actions.
+       (handle_key): Check ic_info->state_hook.  If KEY is unhandled,
+       init ic_info->state_hook.
+
+2010-08-09  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (try_otf): Remove unused local vars.
+
+       * input.c (fully_initialize): Avoid compiler warning by casting.
+
+       * m17n-core.c (m17n_init_core): Fix handling of env_value.
+
+       * fontset.c (realize_fontset_elements): Fix typo (pl->plist).
+
+       * coding.c (decode_coding_iso_2022): Sanitize "if" condition.
+
+2010-04-23  Kenichi Handa  <handa@m17n.org>
+
+       * Version 1.6.1 released.
+
+2010-04-23  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (enum GlyphInfoMask): Shift upper masks 1-bit left.
+       (decode_packed_otf_tag): If a glyph has combining information,
+       don't touch it.
+
+2010-04-23  Kenichi Handa  <handa@m17n.org>
+
+       * font-ft.c (ft_drive_otf): Reset 28th bit of g->g.internal for
+       storing OTF feature tag.
+
+2010-04-19  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (run_stages): Update category code of glyphs if
+       category table is changed.
+
+2010-04-05  Kenichi Handa  <handa@m17n.org>
+
+       * font-ft.c (ft_check_cap_otf): Fix conditions to call
+       OTF_check_features.
+
+       * database.c (check_version): Fix previous change.
+
+2010-04-02  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-core.h (M17NLIB_MINOR_VERSION): Changed to 6.
+       (M17NLIB_PATCH_LEVEL): Changed to 1.
+       (M17NLIB_VERSION_NAME): 1.6.1.
+
+2010-03-30  Kenichi Handa  <handa@m17n.org>
+
+       * Version 1.6.0 released.
+
+2010-03-01  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (run_rule): Fix checking of glyph availability.
+
+2010-02-18  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-gui.c (register_device_library): Preprend M17N_MODULE_DIR
+       to the module file name.
+
+       * input.c (load_external_module): Preprend M17N_MODULE_DIR to the
+       module file name.
+
+       * charset.c (load_charset): Check the return value of fgets.
+
+       * Makefile.am: Build modules dynamically loaded with
+       -avoid-version and no -version-info.
+
+2010-01-15  Kenichi Handa  <handa@m17n.org>
+
+       * draw.c (run_flt): Set mflt_try_otf to rfont->driver->try_otf.
+       (mdraw__init): Set mflt_enable_new_feature to 1.
+
+       * font-ft.c (ft_try_otf): New function.
+       (mfont__ft_driver): Set ft_try_otf.
+
+       * font.h (struct MFontDriver): New member try_otf.
+
+       * m17n-X.c (xft_driver): Set xft_try_otf.
+       (xft_try_otf): New function.
+
+       * m17n-flt.h: (mflt_enable_new_feature): Extern it.
+       (mflt_try_otf): Extern it.
+
+       * m17n-flt.c (load_category_table): If mflt_enable_new_feature is
+       zero, return NULL for such categories that require the new
+       feature.
+       (parse_otf_command): If mflt_enable_new_feature is zero, return
+       -1.
+       (load_otf_command): Fix previous change.
+       (load_flt): Check the return value of load_category_table.
+       (try_otf): Renamed from run_otf_category.  Call mflt_try_otf
+       instead of font->drive_otf.
+       (run_command): Call try_otf instead of run_otf_category.
+       (m17n_init_flt): Initialize mflt_enable_new_feature to 0,
+       mflt_try_otf to NULL.
+       (mflt_enable_new_feature): New variable.
+       (mflt_try_otf): New variable.
+
+2009-12-10  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (parse_otf_command): Handle ":otf?".
+       (run_otf_category): If not features are specified, reset category
+       codes.
+       (run_command): On copy, don't re-calculate a category code.
+
+2009-12-03  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (run_stages): Reset category code if category-table
+       is changed.
+       (mflt_run): Don't set category code here.
+       (decode_packed_otf_tag): If no feature is applied, re-calculate
+       category code.
+
+2009-12-02  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (mflt_find): If FONT is specified but no flt is
+       found, return NULL.
+       (run_command): Don't set ENCODED and MEASURED of separator.
+
+2009-11-30  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (load_otf_command): Check 4th char against '?'.
+       (load_command): Likewise.
+       (decode_packed_otf_tag): New arg CTX.  If CTX->in == gstring,
+       update CTX->encoded.  Caller changed.
+
+2009-11-30  Kenichi Handa  <handa@m17n.org>
+
+       * font-ft.c (ft_drive_otf): Check if OUT is null or not.
+       (ft_drive_otf): Call OTF_drive_gsub_with_log and
+       OTF_drive_gpos_with_log.  Record the applied feature in
+       g->g.internal.
+
+       * font.c (mfont__get_glyph_id): Encode g->c instead of g->code.
+
+       * internal-flt.h (MAKE_COMBINING_CODE_BY_CLASS)
+       (COMBINING_BY_CLASS_P, COMBINING_CODE_CLASS)
+       (MAKE_PRECOMPUTED_COMBINDING_CODE, COMBINING_PRECOMPUTED_P):
+       Delete externs..
+       (PACK_OTF_TAG): Extern it.
+
+       * draw.c (reorder_combining_chars): Delete it.
+
+       * m17n-flt.h (mflt_font_id): Use type MFLFont.
+       (mflt_iterate_otf_feature): Likewise.
+
+       * m17n-flt.c (enum GlyphInfoMask): New member CategoryCodeMask and
+       CombinedMask.
+       (GET_CATEGORY_CODE, SET_CATEGORY_CODE, GET_COMBINED): New macros.
+       (SET_COMBINING_CODE): Set also CombinedMask.
+       (FontLayoutFeatureTable): Delete it.
+       (FeatureCodeTable): New type.
+       (FontLayoutCategory): Type of feature_table changed.
+       (load_category_table): Adjusted for the change of
+       FontLayoutCategory.
+       (unref_category_table): Likewise.
+       (gen_otf_tag): New member shift.  Caller changed.
+       (FontLayoutContext): New member category.
+       (run_rule): Compare g->c instead of g->code.
+       (decode_packed_otf_tag): New function.
+       (run_otf): Call decode_packed_otf_tag.  Don't reset combining-code
+       here.
+       (run_otf_category): New function.
+       (run_command): Set category-code if necessary.  Call
+       run_otf_category for FontLayoutCmdTypeOTFCategory.
+       (run_stages): Set ctx->category.  Get category from glyph if
+       possible.
+       (mflt_dump_gstring): New function.
+
+2009-11-26  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (enum FontLayoutCmdType): New member
+       FontLayoutCmdTypeOTFCategory.
+       (FontLayoutFeatureTable): New type.
+       (FontLayoutCategory): New members feature_table_size and
+       feature_table.
+       (load_category_table): Handle feature_table.
+       (unref_category_table): Likewise.
+       (load_otf_command): Handle FontLayoutCmdTypeOTFCategory.
+       (load_command): Likewise.
+       (free_flt_command): Likewise.
+
+2009-11-10  Kenichi Handa  <handa@m17n.org>
+
+       * draw.c (run_flt): Update category code of each glyph.
+
+2009-11-07  Kenichi Handa  <handa@m17n.org>
+
+       * font-ft.c (ft_drive_otf): Don't accumulate anchor adjustments.
+
+2009-11-05  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (run_otf): Fix updating of g->lbearing, etc.
+
+       * font-ft.c (ft_drive_otf): Use OTF_drive_gpos2 if possible.
+
+2009-10-28  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (mdebug_flag): New variable.
+       (mfont__lookup_fontset): Print debug info.
+
+       * m17n-core.c (m17n_init_core): Call SET_DEBUG_FLAG for
+       MDEBUG_FONTSET.
+
+       * internal.h (enum MDebugFlag): Add MDEBUG_FONTSET.
+
+       * language.c (mscript__from_otf_tag): Adjusted for the new format
+       of the database <standard script unicode>.
+
+2009-10-22  Kenichi Handa  <handa@m17n.org>
+
+       * database.c (check_version): Fix the check.
+
+       * input.c (surrounding_pos): New arg *pos.
+       (integer_value): Fix handling of "@+0".
+       (take_action_list): Adjusted for the change of surrounding_pos.
+
+2009-10-05  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.h: (mflt_iterate_otf_feature, mflt_font_id): Extern
+       them.
+
+       * m17n-flt.c (FontLayoutCategory): New typedef.
+       (FontLayoutStage): Type of the member `category' changed.
+       (struct _MFLT): Type of the member `coverage' changed.  New member
+       need_config and font_id.
+       (apply_otf_feature): New function.
+       (load_category_table): New arg FONT.  If FONT is non-NULL, call
+       apply_otf_feature.  Setup category->definition.
+       (ref_category_table): New macro.
+       (unref_category_table): New function.
+       (load_flt): Adjusted for the type change of category.
+       (free_flt_stage): New arg FLT.
+       (list_flt): Adjusted for the type change of category.
+       (run_stages): Adjusted for the type change of category.
+       (configure_category, configure_flt): New function.
+       (m17n_init_flt): Initialize mflt_iterate_otf_feature and
+       mflt_font_id to NULL.
+       (mflt_get): Skip the heading configured FLTs.
+       (mflt_find): Likewise.  If necessary, configure the found flt.
+       (mflt_run): Handle mflt_iterate_otf_feature and mflt_font_id.
+       Adjusted for the type change of category.
+       (mflt_iterate_otf_feature, mflt_font_id): New variable.
+
+       * m17n-X.c (xfont_open): Set rfont->id.
+       (xft_driver): Set xft_iterate_otf_feature.
+       (xft_open): Set rfont->id.
+       (xft_iterate_otf_feature): New function.
+
+       * font.h (struct MRealizedFont): New member id.
+       (struct MFontDriver): New member iterate_otf_feature.
+
+       * font.c (mfont__get_glyph_id): Pay attention to. mfont->source.
+
+       * font-ft.c (ft_open, ft_encapsulate): Set rfont->id.
+       (get_otf): New funcition.
+       (ft_check_otf, ft_drive_otf): Use get_otf.
+       (iterate_callback, ft_iterate_otf_feature): New functions.
+       (mfont__ft_driver): Set ft_iterate_otf_feature.
+
+       * draw.c: Docstring updated.
+       (font_id): New function.
+       (run_flt): Set mflt_font_id and mflt_iterate_otf_feature before
+       calling mflt_run.
+
+2009-10-02  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (load_flt): Check the return value of
+       load_category_table.
+
+2009-09-03  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (run_otf): Clear combining code for glyphs whose
+       positions are adjusted by GPOS table.
+
+2009-08-13  Kenichi Handa  <handa@m17n.org>
+
+       * Version 1.5.5 released.
+
+2009-08-13  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-core.h (M17NLIB_PATCH_LEVEL):  Changed to 5.
+       (M17NLIB_VERSION_NAME): Changed to "1.5.5".
+
+2009-03-03  Kenichi Handa  <handa@m17n.org>
+
+       * draw.c (compose_glyph_string): Check if category not Mnil.
+
+2009-03-02  Kenichi Handa  <handa@m17n.org>
+
+       * Version 1.5.4 released.
+
+2009-02-25  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-core.c (report_object_array): For M-text and Plist, print
+       more information.
+
+       * m17n-core.h (M17NLIB_PATCH_LEVEL): Changed to 4.
+       (M17NLIB_VERSION_NAME): Changed to "1.5.4".
+
+       * input.c (get_candidate_list): Free unnecessary objects.
+       (take_action_list): Free plist.
+
+2009-02-04  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (mcoding__init): Add "Shift_JIS" as an alias of "sjis".
+
+2009-01-16  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-core.h (Mcased, Msoft_dotted, Mcase_mapping, Mblock):
+       Extern them.
+
+       * character.c (Mcased, Msoft_dotted, Mcase_mapping, Mblock): New
+       variables.
+
+2009-01-14  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (decode_coding_iso_2022): Check invocation status
+       before updating charset0 and charset1.
+
+       * symbol.c (msymbol__canonicalize): Handle "windows-XXXX".
+
+2008-12-31  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (mflt_run): If g->encoded is set, don't clear
+       g->code.
+
+2008-10-30  Andreas Schwab <schwab@suse.de>  (tiny change)
+
+       * face.c (mface_get_prop): Fix strict aliasing bug.
+       (mface_put_prop): Likewise.
+
+       * m17n-gui.c (mframe): Fix strict aliasing bug.
+
+2008-10-20  Kenichi Handa  <handa@m17n.org>
+
+       * Version 1.5.3 released.
+
+2008-10-06  Kenichi Handa  <handa@m17n.org>
+
+       * draw.c (mdraw__init): Use TRUE only when
+       FRIBIDI_INTERFACE_VERSION is less than 3.
+
+2008-10-03  Kenichi Handa  <handa@m17n.org>
+
+       * database.c (mdatabase__find_file): Return a copy of filename if
+       it is absolute pathname.
+
+2008-09-25  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (load_macros): Don't parse the action list here.
+       (load_im_info): Parse action lists of all macros.
+
+2008-09-24  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (mflt_find): Setup coverage of "combining" flt.
+
+2008-09-19  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (fully_initialize): Rename "@reload" to "-reload".
+
+2008-09-17  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (run_stages): Fix combining with a variable width
+       font.
+
+2008-08-04  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (fully_initialize): Add more aliaese (e.g. C-M-1
+       vs. C-A-1).
+
+2008-07-22  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (fully_initialize): Fix previous change.
+
+2008-07-19  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (fully_initialize): Fix previous change.
+
+2008-07-14  Kenichi Handa  <handa@m17n.org>
+
+       * font-ft.c (ft_list_family): New arg CHECK_ALIAS.  Callers changed.
+
+2008-07-14  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (fully_initialize): Handle C-M-1, etc.
+
+2008-07-11  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (minput_open_im): Check if the arg NAME is not Mnil.
+
+2008-06-23  Kenichi Handa  <handa@m17n.org>
+
+       * Version 1.5.2 released.
+
+2008-06-23  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-core.h (M17NLIB_MINOR_VERSION): Changed to 5.
+       (M17NLIB_PATCH_LEVEL): Changed to 2.
+       (M17NLIB_VERSION_NAME): Changed "1.5.2".
+
+2008-06-13  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (minput_config_file): Comment fixed for man-page.
+
+2008-06-13  Harshula  <harshula@gmail.com>  (tiny change)
+
+       * Makefile.am (libm17n_gd_la_LIBADD): Add @FREETYPE_LD_FLAGS@.
+
+2008-05-24  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (mdebug_dump_flt): Change return value to (MFLT *).
+
+2008-05-23  Kenichi Handa  <handa@m17n.org>
+
+       * Makefile.am (libm17n_gui_la_LIBADD): Include libm17n-core.la.
+       (libm17n_X_la_LIBADD): Include libm17n-core.la, libm17n.la, and
+       libm17n-flt.la.
+       (libm17n_gd_la_LIBADD): Likewise.
+
+       * input.c (take_action_list): Fix debug info.
+
+2008-05-14  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (run_rule): Check SRC_REGEX at first.
+       (run_stages): Fix index of g_indices.
+
+2008-04-03  Kenichi Handa  <handa@m17n.org>
+
+       * draw.c (compose_glyph_string): Don't run flt striding over the
+       cursor position.
+       (get_gstring): Don't use the cached gstring if cursor position is
+       changed.
+
+2008-04-02  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (integer_value): Delete the 3rd arg VALUE.
+       (resolve_expression): Adjust the call of integer_value.
+       (take_action_list): Likewise.
+
+2008-03-06  Kenichi Handa  <handa@m17n.org>
+
+       * font-ft.c (ft_drive_otf): Don't ignore the otf-spec to apply all
+       features.
+
+2008-01-31  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * Version 1.5.1 released.
+
+2008-01-31  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * draw.c (mdraw_glyph_list): Refer to mfont__ft_driver only when
+       HAVE_FREETYPE is defined.
+
+       * font.h (OTF_Tag): Be sure that it is defined in any cases.
+
+2008-01-30  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * font.h (enum MFontOpenTypeTable, MFontCapability): Define them
+       unconditionally.
+
+2008-01-25  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * input.c (parse_action_list): Handle the case "(insert INTEGER)".
+
+2008-01-25  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * input.c (parse_action_list): Check M_candidates.
+       (get_im_info): If key is Mnil, be sure to set im_info->states to a
+       plist.
+
+2008-01-23  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * input.c (integer_value): Fix interpretation of "@-N".
+
+2008-01-17  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * input.c (get_following_char): Fix interpretation of POS.
+       (get_following_char): Fix interpretation of "@+N".
+
+2008-01-15  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * font-ft.c (ft_drive_otf): Don't refer to otf_gstring if HAVE_OTF
+       is not defined.
+
+       * Makefile.am (FLT_SOURCES): Include internal-flt.h.
+
+2008-01-07  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * m17n-flt.c (UPDATE_CLUSTER_RANGE): Don't check if clustering
+       now.
+       (run_rule): Call UPDATE_CLUSTER_RANGE when necessary.
+       (run_command): Check if clustering now before calling
+       UPDATE_CLUSTER_RANGE.
+
+2008-01-06  Kenichi Handa  <handa@m17n.org>
+
+       * font.c (mfont__get_glyph_id): Return -1 if some code is invalid.
+
+       * font-ft.c (ft_drive_otf): Fix checking of negative feature.
+
+       * m17n-X.c (xft_find_metric): Set g->g.measured.
+
+       * m17n-flt.c (Mequal): New variable.
+       (m17n_init_flt): Initialize it.
+       (FontLayoutCmdRule): Merge members supported_glyph and otf_spec
+       into a new member facility.
+       (load_command): Modify parsing of Mfont_facility.
+       (run_rule): Adjuted for the change of FontLayoutCmdRule.
+       (run_otf): Adjusted metrics if a->back is nonzero.
+
+2007-12-28  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * Version 1.5.0 released.
+
+2007-12-13  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * m17n-core.c (m17n_init_core): Handle the lang. env. MDEBUG_FLT.
+
+       * m17n-flt.c (mdebug_flag): Set to MDEBUG_FLT.
+       (run_rule): Check if a font has the specific glyph correctly.
+
+       * internal.h (enum MDebugFlag): Delete MDEBUG_FONT_OTF, change
+       MDEBUG_FONT_FLT to MDEBUG_FLT.
+
+       * font.c (mfont__get_glyph_id): Encode g->g.code (not g->g.c).
+
+       * font-flt.c: Delete it.
+
+2007-12-08  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * m17n-flt.c (run_rule): Fix printing of debug info.  Don't update
+       TO for the rule of SRC_HAS_GLYPH.
+
+       * draw.c (run_flt): Argument changed.
+       (compose_glyph_string): Adjusted for the above change.
+
+2007-12-07  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * plist.c (read_mtext_element): Don't free the malloced buffer.
+
+2007-12-04  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * m17n-core.h (merror_code): Extern it.
+
+       * m17n-misc.h (merror_code): Don't extern it.
+
+       * m17n.h: Handle the case of _M17N_FLT_H_ being defined.
+
+       * m17n-flt.h: Handle the case of _M17N_H_ being defined.
+
+2007-11-22  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * draw.c (compose_glyph_string): Check g->rface->layouter, not
+       g->rface->rfont->layouter.
+
+       * font-ft.c (ft_drive_otf): Fix setting of g->g.from and g->g.to.
+
+       * m17n-flt.c (FontLayoutContext): New member encoded_offset.
+       (run_rule): Use ctx->encoded_offset.
+       (run_command): Likewise.
+       (run_stages): Set ctx->encoded_offset.
+
+2007-11-21  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * m17n-flt.c (enum GlyphInfoMask): Adjusted for the change of
+       bit-size of MFLTGlyph->internal.
+
+2007-11-20  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * draw.c (visual_order): Exclude the last anchor glyph from the
+       iteration.
+
+       * m17n-flt.h (MFLTGlyph): New member <adjusted>.
+
+       * m17n-flt.c (run_otf): Set adjusted flag of glyphs if necessary.
+       (run_stages): Likewise.
+       (load_flt): Unref top after checking plist.
+
+       * m17n-X.c (xft_render): Check adjusted flag of glyphs.
+
+2007-11-12  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * font-ft.c (ft_check_otf): Fix arg to OTF_check_features.
+
+       * m17n-flt.c (Mcombining): New variable.
+       (Mfont_facility): Renamed from Mfont_has.  Referrer changed.
+       (enum FontLayoutCmdRuleSrcType): Delete SRC_EXIST, add
+       SRC_HAS_GLYPH and SRC_OTF_SPEC.
+       (FontLayoutCmdRule): Delete src.exist, add src.supported_glyph and
+       src.otf_spec.
+       (load_command): Adjusted for the above changes.
+       (run_rule): Likewise.
+       (combining_code_from_class): Delete it.
+       (mflt_get): Check flt->name against Mcombining, not Mt.
+
+       * internal-flt.h (Mcombining): Extern it.
+
+       * draw.c (compose_glyph_string): Call run_flt with Mcombining for
+       combining characters.
+
+2007-11-09  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * face.c (mface__realize): Reset measured flag before calling
+       mfont__get_metric.
+
+       * m17n-flt.c (run_stages): Fix handing of off_x and off_y.
+       (setup_combining_coverage): New function.
+       (setup_combining_flt): New function.
+       (mflt_get): If flt is not found, return NULL.  If name if Mt,
+       call setup_combining_flt.
+       (mflt_run): For debugging, print font family name.
+
+       * font-ft.c (ft_render): Fix handling of baseline_offset.
+       (ft_encapsulate): Set metrics in 26.6 fixed pixel.
+       (ft_render): Check pixel_mode to determine anti_alias.
+
+       * m17n-X.c (xfont_find_metric): Delete invalid "continue" line.
+       (xfont_find_metric): Set metrics in 26.6 fixed pixel.
+       (xfont_render): Set baseline_offset in pixel.
+       (xft_render): Fix handling of baseline_offset.
+
+       * draw.c (run_flt): Set font.font.family.
+       (compose_glyph_string): Fix handling of combining characters.
+
+       * fontset.c (try_font_list): Check if the named flt is surely
+       available.
+
+2007-11-07  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * draw.c (analyse_bidi_level): New function.
+       (visual_order): Do reordering using the already decided
+       bidi-level.
+       (compose_glyph_string): Decide bidi-level before calling flt.
+
+       * m17n-flt.c (mflt_run): Fix typo.
+
+       * font-ft.c (ft_drive_otf): Fix indexing gstring->glyphs.
+
+2007-11-06  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * draw.c (visual_order): Don't rely on the width of glyphs.
+       (run_flt): Fix culculation of g->g.to.
+
+       * m17n-flt.c (run_rule): Don't set error code here.
+       (run_cond): Likewise.
+       (run_otf): Fix culculation of xoff and yoff.
+       (run_command): Don't set error code here.
+       (PREV): New macro.
+       (NEXT): New macro.
+
+       * m17n-X.c (xfont_open): Keep rfont's metrics in 26.6 fixed pixels.
+       (xfont_find_metric): Set glyph's yadv to 0.
+       (xft_find_metric): Likewise.
+
+       * font-ft.c (ft_open): Keep rfont's metrics in 26.6 fixed pixels.
+       (ft_find_metric): Adjust glyph's metrics.
+       (ft_encapsulate): Keep rfont's metrics in 26.6 fixed pixels.
+       (ft_drive_otf): Set mark glyph's xadv to 0.
+
+       * face.c (mface__for_chars): Adjusts the unit of face's ascent and
+       descent.
+
+2007-10-29  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.h (struct _MFLTOtfSpec): Adjusted for the new FLT handling.
+       (mflt_get): Adjusted for the argument change.
+       (mflt_name): Adjusted for the return value change.
+
+       * m17n-flt.c (Mgenerator, Mend): New variables.
+       (flt_min_coverage, flt_max_coverage): New variables.
+       (GCPY): New macro.
+       (GDUP): Use it.
+       (Mfont_has): Renamed from Mexist.  Referrers chagned.
+       (gen_otf_tag): Handle the trailing whitespaces.
+       (otf_count_features, otf_store_features): Fix for negative features.
+       (parse_otf_command): Adjusted for the change of MFLTOtfSpec.
+       (load_otf_command): Likewise.
+       (free_flt_command): Adjusted for the change of MFLTOtfSpec.
+       (load_flt): Argument changed.  Caller changed.
+       (free_flt_list): New function.
+       (run_rule): Adjusted for the change of FontLayoutContext.
+       (mflt_run): Adjusted for the change of FontLayoutContext.
+
+       * m17n-gui.c (m17n_init_win): Call m17n_init_flt.
+       (m17n_fini_win): Call m17n_fini_flt.
+
+       * m17n-gui.h: Include m17n-flt.h.
+
+       * m17n-gd.c: Adusted for the change of MGlyph.
+
+       * m17n-X.c: Adusted for the change of MGlyph.
+       (xft_check_otf, xft_drive_otf): New functions.
+
+       * internal-gui.h (MGlyph): Modified for new FLT handling.
+
+       * fontset.c (try_font_list): Adusted for the change of MGlyph.
+
+       * font-ft.c: Adjusted for the change of MGlyph.
+       (ft_check_cap_otf): Renamed from ft_check_otf.  Callers changed.
+       (get_glyph_metric): Deleted.
+       (ft_check_otf): New function.
+       (ft_drive_otf): New fucntion.
+
+       * font.c: Adjusted for the change of MGlyph.
+       (mfont__init): Don't call mfont__flt_init.
+       (mfont__fini): Don't call mfont__flt_fini.
+       (mfont__get_glyph_id, mfont__get_metrics): New functions.
+
+       * font.h (struct MRealizedFont): New members x_ppem and y_ppem.
+       (MFLTFontForRealized): New struct.
+       (struct MFontDriver): New members check_otf and drive_otf.
+       (mfont__get_glyph_id, mfont__get_metrics): Extern them.
+
+       * face.c: Adjusted for the change of MGlyph.
+
+       * draw.c: Adjusted for the change of MGlyph.
+
+       * m17n.c (m17n_init): Don't call mchar_init.
+
+       * m17n-core.c (m17n_init_core): Call mchar_init.
+
+       * m17n-core.h (mchartable_min_char, mchartable_max_char): Extern them.
+
+       * input.c: Include "m17n.h" instead of "m17n-gui.h".
+
+       * chartab.c (mchartable): Initialize table->min_char to -1.
+       (mchartable_min_char): New function.
+       (mchartable_max_char): New function.
+
+       * Makefile.am (GUI_SOURCES): Delete font-flt.c.
+       (libm17n_gui_la_LIBADD): Add ${top_builddir}/src/libm17n-flt.la.
+
+2007-10-12  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-core.h (Mcharset): Extern it.
+       Move detabase related declarations from m17n.h.
+
+       * m17n-flt.h: Include m17n-core.h instead of m17n.h.
+       (struct _MFLTOtfFeatures): New struct.
+       (struct _MFLTOtfSpec): Delete gsub, gpos, etc, add gsub_gpos.
+       (struct _MFLTFont): Delete otf, add check_otf.
+       (MCHAR_INVALID_CODE): Define it.
+
+       * plist.c (read_mtext_element): Simplify the code.
+
+       * m17n.h: Move database related declarations to m17n-core.h
+       (Mharset): Don't extern it.
+
+       * m17n.c (m17n_init): Don't call mdatabase__init.
+
+       * m17n-gd.c (read_rgb_txt): Check also /etc/X11/rgb.txt.  Downcase
+       color names.
+
+       * m17n-flt.c: Include m17n-core.h instead of m17n.h.
+       (Mexist): New variable.
+       (enum FontLayoutCmdRuleSrcType): New enum SRC_EXIST.
+       (FontLayoutCmdRule): New member src.exist.
+       (parse_otf_command): Handle gsub_count and gpos_count separately.
+       (load_otf_command): Adjusted for the change of MFLTOtfSpec.
+       (load_command): Handle the command "exist".
+       (free_flt_command): Adjusted for the change of MFLTOtfSpec.
+       (run_rule): Handle the case SRC_EXIST.
+       (run_otf): Adjusted for the change of MFLTOtfSpec.
+       (run_command): Check the range of FROM.
+       (check_otf_spec): Delete it.
+       (m17n_init_flt): Call m17n_init_core instead of m17n_init.
+       Initialize Mexist.
+       (m17n_fini_flt): Call m17n_fini_core instead of m17n_fiini.
+       (mflt_find): Call font->check_otf instead of check_otf_spec.
+       (mflt_run): Keep the metrics in 26.6 fixed point.
+
+       * m17n-core.c (mdatabase__finder, mdatabase__loader): Delete them.
+       (m17n_init_core): Call mdatabase__init.
+
+       * m17n-X.c (device_open): Use mplist_add, not mplist_push.
+
+       * internal.h (mdatabase__finder, mdatabase__loader): Delete externs
+       of them.
+
+       * font-flt.c (Mexist): New variable.
+       (enum FontLayoutCmdRuleSrcType): New enum SRC_EXIST.
+       (FontLayoutCmdRule): New member src.exist.
+       (load_category_table): Use isalnum, not isalpha.
+       (load_command): Check the command "exist".
+       (run_rule): Hande the case SRC_EXIST.
+       (run_command): Check the range of FROM.
+       (mfont__flt_init): Initialize Mexist.
+
+       * draw.c (layout_glyphs): Fix calculation of off_x and off_y.
+
+       * database.h (mdatabase__load_charset_func): Extern it.
+
+       * database.c: Include m17n-core.h instead of m17n.h.
+       (load_chartable): Use mtext__from_data.
+       (load_charset): Moved to charset.c
+       (load_database): Call mdatabase__load_charset_func instead of
+       load_charset.
+       (mdatabase__load_charset_func): New variable.
+       (mdatabase__init): Initialize mdatabase__load_charset_func and
+       Mcharset.  Don't set mdatabase__finder and mdatabase__loader.
+       (mdatabase__save): Use fwrite, not mconv_encode_stream.
+       (Mcharset): Declare it here.
+
+       * charset.c: Include "database.h.".
+       (load_charset): Moved from database.c.
+       (mcharset__init): Initialize mdatabase__load_charset_func, don't
+       initialize Mcharset.
+
+       * character.c (mchar_define_property): Call mdatabase_find directly.
+       (mchar_get_prop): Call mdatabase_add directly.
+       (mchar_put_prop): Call mdatabase_load directly.
+       (mchar_get_prop_table): Likewise.
+
+       * Makefile.am (libm17n_core_la_SOURCES): Add database.[ch].
+       (libm17n_la_SOURCES): Remove database.[ch].
+       (libm17n_flt_la_LIBADD): Delete libm17n.la, add libm17n-core.la.
+
+2007-09-18  Kenichi Handa  <handa@m17n.org>
+
+       * face.c (mface__realize): Try Freetype based font at first.
+
+       * font.c: Include <ctype.h>
+
+2007-09-16  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (load_flt): New arg full.  If full is zero, load only
+       coverage.
+       (run_otf): Call font->get_metrics, not font->get_metric.
+       (run_stages): Likewise.
+       (CHECK_FLT_COVERAGE): New macro.
+       (CHECK_FLT_STAGES): Call load_flt with the second arg 1.
+       (check_otf_spec): New function.
+       (m17n_fini_flt): Unref flt->coverage.
+       (mflt_find): Argument changed.
+       (mflt_name): New function.
+       (mflt_coverage): Use CHECK_FLT_COVERAGE.
+
+       * m17n-flt.h (MFLTFont): Member get_metrics renamed from get_metric.
+       (mflt_find): Prototype adjusted.
+       (mflt_name): Extern it.
+
+2007-09-14  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.h (struct _MFLTGlyph): Change signedness of members.
+
+       * font-flt.c (run_otf): Make debug info printing comaptible with
+       that of m17n-flt.c.
+       (run_command): Likewise.
+       (mfont__flt_run): Likewise.
+
+       * m17n-flt.c (UPDATE_CLUSTER_RANGE): ctx->cluster_begin_idx is
+       invalid only when it's negative.
+       (run_otf): Likewise.
+       (run_command): Likewise.
+       (mflt_run): Initialize ctx.cluster_begin_idx to -1.
+
+2007-09-10  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.h (struct _MFLTGlyph): New member encoded and measured.
+       (struct _MFLTFont): Prototype of get_glyph_id changed.
+
+       * m17n-flt.c (enum GlyphInfoMask): Delete EncodedMask and
+       PositionedMask.
+       (GAPPEND): Delete this macro.
+       (GET_ENCODED, SET_ENCODED, GET_MEASURED, SET_MEASURED): Adjusted
+       for the change of MFLTGlyph.  Caller changed.
+       (run_otf): Simply calls font->get_glyph_id.
+       (run_command): Reset g->encoded and g->measured for direct code.
+       (positioning): Delete this function.
+       (run_stages): Simply calls font->get_glyph_id and font->get_metric.
+
+2007-09-07  Kenichi Handa  <handa@m17n.org>
+
+       * draw.c (compose_glyph_string): Improve script detection.
+
+2007-09-06  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.h (mflt_get): Extern it.
+
+       * m17n-flt.c (run_stages): Call positioning only if
+       font->get_metric is non-NULL.
+       (CHECK_FLT_STAGES): Fix typo.
+       (mflt_get): New function.
+
+       * font-flt.c (mfont__flt_run): Improve debug info printing.
+
+2007-09-04  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (MFontLayoutTable): Delete this type.
+       (struct _MFLT): New member mdb and coverage.
+       (list_flt): Set flt->mdb.
+       (load_generator): Argument and return value changed.  Caller
+       changed.
+       (get_font_layout_table): Delete this function.
+       (run_stages): Argument changed.  Caller changed.
+       (CHECK_FLT_STAGES): New macro.
+       (mfont__flt_encode_char): Argument changed.
+       (mflt_find): Likewise.
+       (mflt_coverage): New function.
+       (mflt_run): Argument changed.
+       (mdebug_dump_flt): Likewise.
+
+       * m17n-flt.h (mflt_coverage): Extern it.
+       (mflt_find): Prototype adjusted.
+
+2007-09-03  Kenichi Handa  <handa@m17n.org>
+
+       * internal.h (MTABLE_CALLOC_SAFE, MSTRUCT_CALLOC_SAFE): New macros.
+
+       * database.c (mdatabase__props): New function.
+
+       * database.h (mdatabase__props): Extern it.
+
+       * m17n-flt.h (struct _MFLTGlyphString): Delete user_data, add
+       script and langsys.
+       (struct _MFLTFont): Add suitable_p.
+       (mflt_find): Extern it.
+
+       * m17n-flt.c: Include "database.h".
+       (struct _MFLT): New struct.
+       (list_flt): New function.
+       (load_flt): Don't update flt_list.
+       (get_font_layout_table): Use flt_list.
+       (m17n_init_flt): Don't initialize flt_list.
+       (m17n_fini_flt): Adjusted for the change of flt_list.
+       (mflt_find): New function.
+       (mflt_run): Fix debug printing.
+
+2007-08-23  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (run_otf): Remove #ifdef HAVE_OTF and #endi.
+       (run_stages): Print separator in encoded string as "|".
+
+2007-08-23  Kenichi Handa  <handa@m17n.org>
+
+       * font-flt.c (mfont__flt_run): Don't calculate a glyph metric if
+       the glyph is already handled by OTF.
+
+2007-08-21  Kenichi Handa  <handa@m17n.org>
+
+       * font-ft.c (ft_check_capability): Check cap->script_tag at first.
+
+2007-08-20  Kenichi Handa  <handa@m17n.org>
+
+       * font-flt.c (mfont__flt_run): Get glyph metrics before printing
+       debug information.
+
+2007-08-17  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.h (struct _MFLTGlyphString): Member pointer renamed to
+       user_data.
+       (MFLTOtfSpec): Renamed from MFLT_OTF_Spec.
+       (MFLTFont): Prototype of the member drive_otf adjusted.
+
+       * m17n-flt.c (run_stages): Fix handling of padding.
+
+       * font-ft.c (get_glyph_metric): New function.
+       (DEVICE_DELTA): Return 26.6 fixed point value.
+       (adjust_anchor): Likewise.
+       (mfont__ft_drive_otf): Use get_glyph_metric.
+
+       * font-flt.c (mfont__flt_run): Pay attention to padding on
+       printing debug info.
+
+2007-08-16  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-flt.c (run_stages): Fix typo.
+
+       * font-ft.c (adjust_anchor): Argument changed.  Calculte based on
+       26.6 fixed point.
+       (mfont__ft_drive_otf): Don't call OTF_check_features for GPOS.
+       Adjusted for the argument change of adjust_anchor.  Calculte based
+       on 26.6 fixed point.
+
+2007-08-15  Kenichi Handa  <handa@m17n.org>
+
+       * charset.c (mcharset__load_from_database): Set mdebug_flag
+       instead of mdebug_mask.
+
+       * coding.c (mcoding__load_from_database): Set mdebug_flag instead
+       of mdebug_mask.
+
+       * database.c (load_database): Set mdebug_flag instead of
+       mdebug_mask.
+       (mdatabase__load_for_keys): Likewise.
+
+       * draw.c: Include "internal-flt.h".
+       (dump_combining_code): Don't subtract 128 from combining code
+       off_x/y.
+
+       * font-flt.c: Include "internal-flt.h".  Set mdebug_flag instead
+       of mdebug_mask.
+       (run_rule): Print debug info only when MDEBUG_FLAG is greater than
+       2.
+       (run_cond): Likewise.
+       (run_otf): Likewise.
+       (run_command): Likewise.
+       (mfont__flt_run): Change format of debug info.
+
+       * font-ft.c: Include "internal-flt.h".
+       Set mdebug_flag instead of mdebug_mask.
+       (mfont__ft_drive_otf): Fix arg to OTF_check_features.
+
+       * input.c: Set mdebug_flag instead of mdebug_mask.
+       (shift_state): New MDEBUG_FLAG macro.
+       (preedit_commit): Likewise.
+       (filter): Likewise.
+
+       * internal-flt.h: New file.
+
+       * internal-gui.h (MAKE_COMBINING_CODE, COMBINING_CODE_OFF_Y)
+       (COMBINING_CODE_OFF_X, COMBINING_CODE_BASE_X)
+       (COMBINING_CODE_BASE_Y, COMBINING_CODE_ADD_X)
+       (COMBINING_CODE_ADD_Y, MAKE_COMBINING_CODE_BY_CLASS)
+       (COMBINING_BY_CLASS_P, COMBINING_CODE_CLASS)
+       (MAKE_PRECOMPUTED_COMBINDING_CODE, COMBINING_PRECOMPUTED_P): Move
+       these macros to internal-flt.h.
+
+       * internal.h (M17N_OBJECT_ADD_ARRAY): Adjusted for the change of
+       mdebug__flags.
+       (M17N_OBJECT_REGISTER, M17N_OBJECT_UNREGISTER): Likewise.
+       (enum MDebugMaskBit): Delete this enum.
+       (enum MDebugFlag): New enum.
+       (mdebug__flag): Don't extern it.
+       (mdebug__flags): Extern it.
+       (MDEBUG_FLAG): New macro.
+       (MDEBUG_PRINT0): Use the macro MDEBUG_FLAG.
+       (MDEBUG_DUMP, MDEBUG_PUSH_TIME, MDEBUG_POP_TIME)
+       (MDEBUG_PRINT_TIME): Likewise.
+
+       * m17n-X.c (xfont_open): Set mdebug_flag instead of mdebug_mask.
+       (xfont_list): Likewise.
+
+       * m17n-core.c (mdebug__flag): Delete this variable.
+       (mdebug__flags): New variable.
+       (SET_DEBUG_FLAG): Make it a function.
+       (m17n_init_core): Set mdebug_flag instead of mdebug_mask.
+       (m17n_fini_core): Likewise.
+
+       * m17n-gui.c (m17n_init_win): Set mdebug_flag instead of mdebug_mask.
+       (m17n_fini_win): Likewise.
+
+       * m17n-misc.h (enum MErrorCode): Add MERROR_FLT.
+
+       * m17n.c (m17n_init): Set mdebug_flag instead of mdebug_mask.
+       (m17n_fini): Likewise.
+
+       * symbol.c (msymbol__free_table): Adjusted for the change of
+       mdebug__flags.
+
+       * Makefile.am (BASICBUILDS): Add libm17n-flt.la.
+       (BASICHEADERS): Add m17n-flt.h.
+       (FLT_SOURCES): New variable.
+       (libm17n_flt_la_SOURCES, libm17n_flt_la_LIBADD)
+       (libm17n_flt_la_LDFLAGS): Likewise.
+
+       * m17n-flt.h: New file.
+
+       * m17n-flt.c: New file created by modifying font-flt.c.
+
+2007-07-13  Kenichi Handa  <handa@m17n.org>
+
+       * Version 1.4.0 released.
+
+2007-07-12  Kenichi Handa  <handa@m17n.org>
+
+       * input.c: Fix doxygen @ref commands.
+
+2007-07-10  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-core.h (M17NFunc): Fix typo of Doxygen directive.
+
+2007-07-09  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-core.h (M17N_BEGIN_HEADER, M17N_END_HEADER): New macros.
+
+       * m17n.h: Include m17n-core.h if not yet done.  Use macros
+       M17N_BEGIN_HEADER and M17N_END_HEADER.
+
+       * m17n-gui.h: Likewise.
+
+       * m17n-misc.h: Likewise.
+
+2007-06-13  Kenichi Handa  <handa@m17n.org>
+
+       * font-flt.c (load_command): Prepend "^" in the regular expression.
+
+2007-06-11  Kenichi Handa  <handa@m17n.org>
+
+       * language.c (mlanguage_name_list): Fix previous change.
+
+       * coding.c (mcoding__load_from_database): Add aliases in
+       coding_definition_list.
+
+2007-06-10  Kenichi Handa  <handa@m17n.org>
+
+       * language.c (mlanguage_name_list): Fix previous change.
+
+2007-06-08  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (update_candidate): Copy candidate_list earlier.
+       (re_init_ic): Provide pseudo initialize state if none.
+
+2007-06-05  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (preedit_insert): Print debug information.
+
+       * database.c (expand_wildcard_database): New function.
+       (mdatabase_list): Fix handling of wildcard database.
+
+       * language.c (load_lang_name): New function.
+       (mlang__fini): Cancel the last two changes.
+       (mlanguage_name_list): New arg script and territories.  Use
+       load_lang_name.
+
+       * m17n.h (mlangauge_name_list): Adjusted.
+
+2007-06-04  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (open_im): Check if the input method has at least one
+       state.
+
+2007-06-01  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (shift_state): Change the format of debug print.
+       (preedit_commit): New arg need_prefix.  Caller changed.
+       (update_candidate): Copy candidate_list.
+       (take_action_list): Likewise.
+       (handle_key): Change the format of debug print.
+
+       * font-flt.c (load_flt): Ignore unknown directives.
+
+2007-05-25  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-core.c (mdebug__unregister_object): Small optimization.
+
+       * database.c (find_file): Merged into get_database_file.
+       (get_database_file): New arg result.  Caller changed.
+       (mdatabase__check): Fix the logic.
+
+2007-05-24  Kenichi Handa  <handa@m17n.org>
+
+       * database.c (find_database): If unprocessed wildcard database is
+       found, register database filed and recursively call find_database.
+       (free_db_info): Unref db_info->properties.
+       (register_database): New arg properties.  Delete code for
+       initializing mdatabase__list.
+       (register_databases_in_files): Argument changed.  Caller changed.
+       (mdatabase__update): Don't list files by glob here.
+       (mdatabase_list): If unprocessed wildcard database is found,
+       register database filed and recursively call mdatabase_list.
+
+       * database.h (enum MDatabaseStatus): New enum
+       MDB_STATUS_AUTO_WILDCARD.
+
+       * input.c (load_branch): Fix previous change.
+       (update_global_info): If the global database is not found, return -1.
+
+2007-05-23  Kenichi Handa  <handa@m17n.org>
+
+       * database.c (Mversion): New variable.
+       (mdatabase__init): Initialize it.
+       (register_database): New arg properties.  Caller changed.
+       (register_databases_in_files): Don't check version here.
+       (mdatabase__update): Likewise.
+
+       * database.h (MDatabaseInfo): New member properties.
+
+2007-05-21  Kenichi Handa  <handa@m17n.org>
+
+       * language.c: Include <ctype.h>
+       (mlanguage__info): Use strncasecmp (not memcmp).
+       (mlanguage_name): Downcase language name for backward
+       compatibility.
+
+       * input.c (filter): Don't check Mlanguage property of
+       ic->im->langauge.
+
+2007-05-18  Kenichi Handa  <handa@m17n.org>
+
+       * language.c (mlanguage_name): Fix it to handle M-text English
+       name.
+
+       * input.c (config_command): Set NAME before using it.
+       (load_branch): Try to resolve a map name by variables.
+
+2007-05-17  Kenichi Handa  <handa@m17n.org>
+
+       * language.c (mlang__fini): Fix previous change.
+
+2007-05-16  Kenichi Handa  <handa@m17n.org>
+
+       * plist.c (free_plist): Cancel the last change.
+       (write_element): Check if PLIST is nested.
+       (mplist__from_plist): Label a plist as nested if appropriate.
+       (mplist__from_alist): Label a plist as nested.
+       (mplist__conc): Check the value of PL before referring it.  Label
+       a plist as nested if appropriate.
+       (mplist_copy): Label a plist as nested if appropriate.
+       (mplist_put_func): Return Mnil if KEY is a managing key.
+       (mplist_push): Label a plist as nested if appropriate.
+
+       * plist.h (MPLIST_SET_NESTED_P): Return 1 iff plist->control.flag
+       is set as nested.
+
+       * language.c (mlang__fini): Unref each element of langname_list.
+
+2007-05-14  Kenichi Handa  <handa@m17n.org>
+
+       * language.c: Include <string.h> and <locale.h>.
+       (langname_list): New variable.
+       (load_lang_script_list): Exclude invalid list elements.
+       (mlang__init): Initialize langname_list.
+       (mlang__fini): Unref langname_list.
+       (mlanguage__info): Adjusted for the change of English
+       name (symbol->M-text).
+       (mlanguage_name): Label it as obsolete.
+       (mlanguage_name_list): New function.
+
+       * m17n.h (mlanguage_name_list): Extern it.
+
+       * locale.c (make_locale): Fix setting of members of locale.
+
+       * plist.c (free_plist): Unref also nested plist.
+
+2007-05-11  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (mconv_reset_converter): Set internal->used to 0.
+
+2007-05-08  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (check_description): Force copying the translated text.
+
+2007-05-02  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (minput_save_config): Unref unnecessary plist.  Use
+       free_im_list to free im_config_list.
+
+2007-04-20  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (config_command): Fix previous change again.
+       (config_variable): Likewise.
+       (minput_config_command): Fix for the case of setting back to
+       default.
+       (minput_config_variable): Likewise.
+       (minput_save_config): Include nil as documentation of customized
+       command/variable.
+
+2007-04-05  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (config_command): Fix previous change.
+       (config_variable): Likewise.
+
+       * plist.c (mplist_get_func): Fix for backward compatiblity.
+
+2007-04-04  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (minput_get_command, minput_config_command): Fix example
+       codes.
+
+2007-03-29  Kenichi Handa  <handa@m17n.org>
+
+       These changes are to avoid unsafe casting of a function pointer.
+
+       * face.h (enum MFaceProperty): Delete MFACE_HOOK_FUNC.
+       (struct MFace): New member hook.
+
+       * face.c (serialize_face): Adjusted for the change of MFace.
+       (deserialize_face): Likewise.
+       (mface__init): Likewise.  Use msymbol_put_func.
+       (mface__realize): Adjusted for the change of MFace.  Avoid
+       compiler warning.
+       (mface_get_prop): Adjusted for the change of MFace.
+       (mface_put_prop): Likewise.
+       (mface_get_hook): New function.
+       (mface_put_hook): New function.
+       (mface_update): Adjusted for the change of MFace.
+
+       * input-gui.c (win_callback): Use mplsit_get_func.
+       (minput__win_init): Use mplsit_put_func.
+
+       * input.c (take_action_list): Use mplist_get_func.
+       (init_ic_info): Likewise.
+       (fini_ic_info): Likewise.
+       (minput_callback): Likewise.
+       (minput__init): Use mplist_put_func.
+
+       * language.c (mlang__init): Use msymbol_put_func.
+
+       * m17n-core.h (M17NFunc): New function type.
+       (M17N_FUNC): New macro.
+       (msymbol_put_func, msymbol_get_func): Extern them.
+       (mplist_put_func, mplist_get_func): Extern them.
+
+       * m17n-gui.h (mface_get_hook, mface_put_hook): Extern them.
+
+       * m17n-gui.c (mframe): Add a proper casting.
+
+       * plist.h (struct MPlist): Make the member val a union.
+       (MPLIST_VAL): Adjusted for the above change.
+       (MPLIST_FUNC): New macro.
+       (MPLIST_VAL_FUNC_P, MPLIST_SET_VAL_FUNC_P): New macros.
+
+       * plist.c (mplist_put_func, mplist_get_func): New functions.
+
+       * symbol.c (msymbol__fini): Use MPLIST_VAL.
+       (msymbol_put_func, msymbol_get_func): New functions.
+
+       * textprop.c (mtext_serialize): Use msymbol_get_func.
+       (mtext_deserialize): Likewise.
+
+2007-03-28  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (get_candidate_list): Avoid unnecessary unref.
+
+2007-03-23  Kenichi Handa  <handa@m17n.org>
+
+       * database.c (mdatabase__update): Unref plist at the tail.
+
+2007-03-21  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (update_custom_info): Fix for the case "name == Mnil &&
+       extra != Mnil".
+       (config_command): Fix for the case that configuration is
+       cancelled.
+       (config_variable): Likewise.
+       (minput_config_command): If keyseqlist is an empty list, cancel
+       the customization.
+       (minput_config_variable) If value is an empty list, cancel the
+       customization.
+       (minput_save_config): Handle cancellation of config and customize
+       correctly.
+
+2007-03-15  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (minput_config_variable): Check custom->vars (not
+       custom->cmds).
+
+2007-03-01  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (reload_im_info): Setup cmds, vars, and title of
+       im_info.
+       (check_variable_value): Fix the return value.
+
+       * database.c (mdatabase__check): If necessary, update database and
+       find a new file.
+
+2007-02-28  Kenichi Handa  <handa@m17n.org>
+
+       * database.c (get_dir_info): Set dir_info->status to
+       MDB_STATUS_OUTDATED.
+       (check_version): New function.
+       (register_database): Don't call find_database.
+       (register_databases_in_files): Don't register a database of
+       invalid version.
+       (mdatabase__update): Likewise.  Avoid unnecessary scanning.
+
+       * database.h (enum MDatabaseStatus): New membes MDB_STATUS_UPDATED
+       and MDB_STATUS_OUTDATED.
+
+       * font.h (struct MFont): Types of members type, source, and
+       spacing changed to unsigned.
+
+       * internal-gui.h (struct): Types of members category and type
+       changed to unsigned.
+
+       * internal.h (struct MText): Types of members format and coverage
+       changed to unsigned.
+
+       * m17n-core.h (M17NLIB_PATCH_LEVEL): Changed to 5.
+       (M17NLIB_VERSION_NAME): Changed to "1.3.5".
+
+2007-02-23  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (Mpop): New variable.
+       (fully_initialize): Initialize Mpop.
+       (parse_action_list): Handle Mpop.
+       (take_action_list): Likewise.
+       (handle_key): When a key is unhandled, shift to the initial state
+       only if the current state has no branch action.
+
+2007-02-12  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (get_preceding_char): Unref mt if necessary.
+       (get_following_char): Likewise.
+       (parse_action_list): Fix handling of `insert' action as
+       candidates.
+       (get_candidate_list): Fix for handling (("CANDIDATE1" ...)).
+       (take_action_list): Check invalid candidate list.
+
+2007-02-06  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (integer_value): Check also ic->produced for @-N.
+
+2007-01-26  Kenichi Handa  <handa@m17n.org>
+
+       * database.c (mdatabase__update): Check mdatabase__dir_list from
+       the tail.
+
+       * font-ft.c (STRDUP_LOWER): Don't ignore the tailing spaces.
+
+2007-01-12  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (handle_key): Handle a branch action of the initial
+       state correctly.
+
+2007-01-10  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-gd.c (gd_render): Delete superfluous line.
+
+2006-12-26  Kenichi Handa  <handa@m17n.org>
+
+       * m17n.h (minput_callback): Extern it.
+
+       * input.h (minput__callback): Delte extern.
+
+       * input.c (get_surrounding_text): Adjusted for the change of
+       minput__callback to minput_callback.
+       (delete_surrounding_text): Likewise.
+       (minput_create_ic): Likewise.
+       (minput_destroy_ic): Likewise.
+       (minput_filter): Likewise.
+       (minput_set_spot): Likewise.
+       (minput_toggle): Likewise.
+       (minput_reset_ic): Likewise.
+
+       (preedit_commit): Reset ic->candidate_index, ic->candidate_from,
+       and ic->candidate_to to 0.
+       (minput_callback): Renamed from minput__callback.
+
+       * input-gui.c (win_callback): Adjusted for the change of
+       minput__callback to minput_callback.
+
+2006-12-15  Kenichi Handa  <handa@m17n.org>
+
+       * font-ft.c (ft_add_font): Fix typo.
+
+2006-12-06  Kenichi Handa  <handa@m17n.org>
+
+       * Version 1.3.4 released.
+
+2006-11-16  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (parse_action_list): Allow (undo 0).
+       (adjust_markers): New function.
+       (preedit_insert, preedit_delete): Call adjust_markers.
+       (preedit_replace): New function.
+       (update_candidate): Call preedit_replace instead of preedit_insert
+       and preedit_delete.
+       (filter): When ic_info->commit_key_head is nonzero, shift input
+       event keys even if there's no committed text.
+
+2006-11-10  Kenichi Handa  <handa@m17n.org>
+
+       * input.h (MInputContextInfo): New member commit_key_head.
+
+       * input.c (preedit_commit): Update ic_info->commit_key_head.
+       (take_action_list): Reset ic_info->commit_key_head on Mundo.
+       (filter): When committed, shift keys by ic_info->commit_key_head.
+
+2006-10-30  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (preedit_delete): Fix typo.
+       (take_action_list): Print more debugging information.  Allow
+       variable in arg of 'select' and `pushback'.
+
+       * database.c (gen_database_name): Don't put extra space.
+       (load_database): Print debugging information.
+       (register_databases_in_files): New arg headlen.  Callers changed.
+       (mdatabase__load_for_keys): Shorten debugging information.
+       (mdatabase_load): Don't print debugging information here.
+
+2006-10-27  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (marker_code): New arg surrounding.  Callers changed.
+       (surrounding_pos): Check if name[0] == '@'.
+       (integer_value): Fix for the change semantics of `@-N' and `@+N'.
+       (take_action_list): Likewise.
+       (get_preceding_char): If POS is zero, always call
+       get_surrounding_text.
+
+2006-10-19  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (load_variables): Fix setting of `global'.
+
+2006-10-16  Kenichi Handa  <handa@m17n.org>
+
+       * draw.c (draw_background): Be sure to set *to_x.
+       (render_glyph_string): If from == to, just return.
+
+2006-10-18  Kenichi Handa  <handa@m17n.org>
+
+       * database.c (get_dir_info): Return NULL if the directory name is
+       too long.
+       (register_databases_in_files): Call register_database with
+       MDB_STATUS_AUTO.
+       (mdatabase__update): Fix logic.  Call register_database with
+       MDB_STATUS_AUTO.
+       (mdatabase_define): Call register_database with
+       MDB_STATUS_EXPLICIT.
+
+       * input.c (delete_surrounding_text): Be sure to set members
+       preceding_text and following_text to NULL.
+       (shift_state): Save variable values in ic_info->vars_saved.
+       (preedit_commit): Don't print debug information here.  Don't
+       change ic_info->keys here.
+       (get_candidate_list): Don't ref plist.
+       (take_action_list): Don't unref return value of
+       get_candidate_list.  For undo, reset ic->produced and recover
+       ic_info->vars.  Be sure to set ic->candidate_list to NULL after
+       unref it.
+       (init_ic_info): Set ic_info->vars_saved.
+       (fini_ic_info): Unref ic_info->vars_saved.
+       (re_init_ic): Be sure to set ic->candidate_list to NULL after
+       unref it.
+       (filter): Be sure to set members preceding_text and following_text
+       to NULL.  Print debug information about produced text.  Delete
+       processed keys from ic_info->keys.
+
+       * input.h (MInputContextInfo): New member vars_saved.
+
+2006-10-16  Kenichi Handa  <handa@m17n.org>
+
+       * database.c (mdatabase__update): Fix the way to get db_info.
+
+2006-10-02  Kenichi Handa  <handa@m17n.org>
+
+       * font.h (struct MFont): New member `multiple_sizes'.  Bit-size of
+       `size' changed to 24.
+
+       * font.c (xlfd_unparse_name): Adjusted for the change of
+       MFont->size.
+       (font_score): Likewise.
+       (mfont__set_spec_from_face): Set spec->multiple_sizes to 0.
+
+       * m17n-X.c (MFontX, _MFontX): Deleted.
+       (SET_SIZE, HAVE_SIZE): Deleted.
+       (free_display_info): Adjusted for the change of
+       disp_info->font_list format.
+       (xfont_registry_list): Likewise.
+       (xfont_open): Likewise.
+       (xfont_list): Likewise.
+       (xfont_encode_char): Ignore size to find a realized font.
+       (MRealizedFontXft): Change the order of members to make it
+       compatible with MRealizedFontFT.
+
+2006-09-27  Kenichi Handa  <handa@m17n.org>
+
+       * font.c (mfont_match_p, mfont_open, mfont_encapsulate)
+       (mfont_close): Add comments.
+
+       * mtext-lbrk.c (mtext_line_break): Add comment.
+
+2006-09-26  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (minput_get_description): Handle description about
+       inclusion-only input methods.
+
+2006-09-21  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (M_gettext): New variable.
+       (fully_initialize): Initialize M_gettext.
+       (check_description): New function.
+       (load_commands): Call check_description.
+       (config_all_commands): Be sure to unref pl.
+       (load_variables): Call check_description.
+       (config_all_variables): Be sure to unref pl.
+       (load_im_info): Call check_description.
+
+       * internal.h [ENABLE_NLS]: Include <libintl.h> and define _.
+
+       * m17n-core.c (m17n_init_core) [ENABLE_NLS]: Call bindtextdoman
+       and bind_textdomain_codeset.
+
+       * Makefile.am (AM_CPPFLAGS): Add -DGETTEXTDIR=...
+
+2006-09-15  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (reload_im_info): Update custom and global info.
+       (init_ic_info): Fix previous change.
+
+2006-09-14  Kenichi Handa  <handa@m17n.org>
+
+       * database.c: Include <libgen.h>.
+       (mdatabase__lock): Make a directory if necessary.
+
+       * input.c (resolve_command): Adjusted for the format change of
+       configured_cmds member.
+       (load_commands, load_variables): Fix for errornous data handling.
+       (config_command, config_variable): New function.
+       (config_all_commands, config_all_variables): Renamed from
+       config_commands and config_variables.  Utilize the above function.
+       (check_variable_value): Argument changed.  Callers changed.
+       (load_im_info): Call config_all_commands and config_all_variables.
+       (init_ic_info): Adjusted for the format change of configured_vars
+       member.
+       (minput__init): Initialize Mcustomized, Mconfigured, and
+       Minherited.
+       (Mcustomized, Mconfigured, Minherited): New variables.
+       (minput_get_command): Be sure to return NULL if an input method
+       use no local command.
+       (minput_get_variable): Be sure to return NULL if an input method
+       use no local variable.
+       (minput_config_command, minput_config_variable)
+       (minput_save_config): Adjusted for the format change of
+       configured_cmds and configured_vars members.
+       
+       * plist.c (write_element): Delete superfluous ':'.
+
+2006-09-13  Kenichi Handa  <handa@m17n.org>
+
+       * m17n.h (Minherited, Mcustomized, Mconfigured): Extern them.
+       (minput_config_file): Extern it.
+
+       * draw.c (Minherited): Declaration moved to input.c.
+       (mdraw__init): Don't initialize Minherited here.
+
+       * database.c (mdatabase__unlock): Be sure to unlink uniq file.
+
+2006-09-07  Kenichi Handa  <handa@m17n.org>
+
+       * textprop.c (mtext_serialize): Call mplist__serialize with the
+       arg pretty 0.
+
+       * plist.h (mplist__serialize): Prototype adjusted.
+       (mplist__assq): Extern it.
+
+       * plist.c: Include <ctype.h>
+       (PUTC, PUTS): New macros.
+       (write_symbol): New function.
+       (write_element): New arg indent.
+       (dump_string, dump_plist_element): Delete them.
+       (mplist__from_string): New arg pretty.
+       (mplist__assq): New function.
+       (mdebug_dump_plist): Use write_element.
+
+       * mtext.c (mtext_cat_char): Allocate more memory.
+       (mdebug_dump_mtext): Don't escal a newline character.
+
+       * m17n.h (minput_get_command, minput_get_variable)
+       (minput_config_command, minput_config_variable)
+       (minput_save_config): Extern them.
+
+       * m17n-core.c: Include <string.h>.
+       (m17n_init_core): If the env. var. MDEBUG_OUTPUT_FILE is "stdout",
+       use the stream stdout instead of a file of that name.
+
+       * m17n-X.c (mwin__parse_event): Fix handling of Shift and Control
+       modifiers.
+
+       * internal.h (MFAILP, MDEBUG_PRINT0): New macros.
+       (MDEBUG_PRINT, MDEBUG_PRINT1, MDEBUG_PRINT2, MDEBUG_PRINT3)
+       (MDEBUG_PRINT4, MDEBUG_PRINT5): Use MDEBUG_PRINT0.
+       (MDEBUG_DUMP): Flush the stream.
+
+       * input.h (struct _MInputMethodInfo): Delete member im.  New
+       members mdb, language, name, extra, cmds, configured_cmds,
+       bc_cmds, vars, configured_vars, bc_vars, description, and tick.
+       (MInputContextInfo): New member tick.
+
+       * input.c: Big change to improve user-side input method
+       customization.  Here, list just public API changes.
+       (minput_get_commands, minput_get_variables)
+       (minput_assign_command_keys, minput_set_variable): Label them
+       obsolete.
+       (minput_get_command, minput_get_variable)
+       (minput_config_command, minput_config_variable)
+       (minput_save_config): New functions.
+       
+       * database.h (PATH_MAX): Define it if not yet defined.
+       (PATH_SEPARATOR): Likewise.
+       (enum MDatabaseStatus): New enum.
+       (struct MDatabaseInfo): Moved from database.c.  New members status,
+       time, lock_file, and uniq_file.
+       (mdatabase__update, mdatabase__file, mdatabase__lock, mdatabase__save)
+       (mdatabase__unlock): Extern them.
+
+       * database.c: Include <time.h>.
+       (MDB_DIR_LEN): Don't include the terminating '\0' in the length.
+       (GEN_PATH): Args changed.  Callers changed.
+       (struct MDatabaseInfo): Moved to database.h.
+       (struct MDatabase, mdb_list): Deleted.
+       (mdatabase__list): New var.
+       (get_database_filename): Deleted.  Callers changed to use
+       get_database_file.
+       (find_file, get_database_file): New files.
+       (get_dir_info): Initialize new members of MDatabaseInfo.
+       (find_database): Arg chagnded.  Callers changed.
+       (free_db_info, register_database, register_databases_in_files):
+       New functions.
+       (update_database_list): Deleted.
+       (mdatabase__init): Initialize mdatabase__list instead of mdb_list.
+       (mdatabase__fini): Finalize mdatabase__list instead of mdb_list.
+       (mdatabase__update): New function.
+       (mdatabase__check): Return value changed.
+       (mdatabase__file, mdatabase__lock, mdatabase__save)
+       (mdatabase__unlock): New functions.
+
+2006-08-30  TAKAHASHI Naoto  <ntakahas@m17n.org>
+
+       * input.c (get_surrounding_text): Return -2 when surrounding text
+       is unavailable.
+       (get_following_char): Likewise.
+       (get_preceding_char): Likewise.
+       (minput__callback): Return 0 if there is a callback function,
+       otherwise -1.
+
+2006-08-17  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (reset_ic): Use shift_state to setup the current state.
+
+2006-08-02  Theppitak Karoonboonyanan  <thep@linux.thai.net>  (tiny change)
+
+       * Makefile.am (libm17n_la_LIBADD, libm17n_gui_la_LIBADD)
+       (libm17n_X_la_LIBADD, libm17n_gd_la_LIBADD, linkcore_LDADD)
+       (linkshell_LDADD, linkgui_LDADD): Use ${top_builddir}.
+
+2006-08-02  Kenichi Handa  <handa@m17n.org>
+
+       * plist.c (mdebug_dump_plist): Fix the 2nd arg to dump_plist_element.
+
+       * mtext.c (mdebug_dump_mtext): If not fullp, dump just text. 
+
+       * font-ft.c (ft_encapsulate): Add code for debugging.
+       (mfont__ft_drive_otf): Be sure to encode character before getting
+       metrics.
+
+2006-07-21  Kenichi Handa  <handa@m17n.org>
+
+       * draw.c (mdraw_text_extents): Fix previous typo.
+
+2006-07-19  Kenichi Handa  <handa@m17n.org>
+
+       * draw.c (gstring_width): New arg lbearing.
+       (render_glyph_string): Adjusted for the change of gstring_width.
+       (mdraw_text_extents): Fix lbearing of ink and line metrics.
+
+       * m17n-core.h (Mlanguage): Extern it.
+
+       * m17n.h (Mlanguage): Extern deleted. 
+
+       * mtext.c (mtext__init): Initialize Mlanguage.
+       (Mlanguage): Declaration moved from locale.c
+
+       * locale.c (mlocale__init): Don't initialize Mlanguage here.
+       (Mlanguage): Declaration moved to mtext.c.
+
+       * language.c (mlang__init): Don't initialize Mlanguage here.
+
+       * font.c (OTF_tag_name) [! HAVE_OTF]: New function.
+
+2006-07-14  Kenichi Handa  <handa@m17n.org>
+
+       * font-ft.c: Use FT_BDF_H macro.  Include fontconfig/fcfreetype.h.
+       (MRealizedFontFT): New member face_encapsulated.
+       (free_ft_rfont): Pay attention to ft_rfont->face_encapsulated.
+       (ft_gen_font): New function.
+       (ft_add_font): Use ft_gen_font.
+       (ft_list_script): Store lists in ft_script_list.
+       (ft_check_otf): New arg ft_face.  Caller changed.
+       (ft_check_language): Likewise.
+       (ft_check_script): Likewise.
+       (ft_encapsulate, ft_close): New functions.
+       (mfont__ft_driver): Initialize members encapsulate and close.
+       (mfont__ft_drive_otf): Use OTF_open_ft_face if it is available.
+
+       * font.h (struct MRealizedFont): New member encapsulating.
+       (struct MFontDriver): New members encapsulate and close.
+
+       * font.c (mfont__match_p): If FONT is realized, check capability
+       by font drivers's check_capability method.
+       (mfont_match_p, mfont_open, mfont_encapsulate, mfont_close): New
+       functions.
+
+       * m17n-X.c (xfont_list_family_names): Delete unused var.  Fix
+       declarations of foundry and fam local vars.
+       (xft_driver): Make it static.
+
+       * m17n-gui.h (mfont_match_p, mfont_open, mfont_encapsulate)
+       (mfont_close): Extern them.
+
+       * m17n-gd.c (device_open): Don't specify foundry and family of the
+       default face.
+
+2006-07-11  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-gui.c (m17n_fini_win): Set null_interface.handle to NULL;
+
+2006-07-13  Kenichi Handa  <handa@m17n.org>
+
+       * font-ft.c (fc_build_charset): Return NULL if FcCharSet can't be
+       created.
+       (ft_check_script): Delete unused var.
+       (ft_list_capability): Likewise.
+
+       * font.c (mfont__get_capability): Setup cap->otf.
+       (Motf): Make it global.
+       (mfont_get_prop): Accept Mlanguage, Mscript, and Motf as key arg.
+
+       * font.h (MFontCapability): New member otf.
+
+       * language.c (mlang__fini): Delete unused vars.
+
+       * m17n-gui.h (Motf): Extern it.
+
+       * database.c (update_database_list): Delete unused vars.
+
+2006-07-07  Kenichi Handa  <handa@m17n.org>
+
+       * font-ft.c (DEVICE_DELTA): Fix typo.
+
+2006-07-06  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (mfont__lookup_fontset): Don't ignore family and
+       foundry of face.
+
+2006-07-05  TAKAHASHI Naoto  <ntakahas@m17n.org>
+
+       * database.c: Update comments.
+
+2006-07-05  Kenichi Handa  <handa@m17n.org>
+
+       * database.c (PATH_MAX): Define it if not yet defined.
+       (PATH_SEPARATOR, USE_GEN_PATH, GEN_PATH, GEN_PATH_FROM_MT): New
+       macros.
+       (get_database_filename): Use GEN_PATH.
+       (get_dir_info): Don't include the last '/' in directory name.
+       (register_database): New function.
+       (update_database_list): Use register_database.  Search all
+       directories in mdatabase__dir_list for wildcard databases.
+       (mdatabase__init): Check "~/.m17n.d".
+
+2006-07-03  Kenichi Handa  <handa@m17n.org>
+
+       * input-gui.c (win_callback): If is ic->candidate_show zero, don't
+       push reverse property.
+
+       * plist.c (dump_plist_element): Fix previous change.
+
+2006-06-28  Kenichi Handa  <handa@m17n.org>
+
+       * font.c (xlfd_unparse_name): Suppress the heading '-' if not
+       necessary.
+
+       * draw.c (MbidiNSM): New variable.
+       (visual_order) [! HAVE_FRIBIDI]: Clear levels at first.  Pay
+       attention to bidi type NSM.
+       (mdraw__init): Initialize MbibiNSM.
+
+       * language.c (mscript__char_list): Fix finding a char-list element.
+
+       * plist.c (dump_string): Return number of printed characters.
+       (dump_plist_element): Print elements more compactly.
+
+2006-06-23  Kenichi Handa  <handa@m17n.org>
+
+       * Makefile.am (BUILD_LIBS): Don't increment it conditionally.
+       (include_HEADERS): Likewise.
+
+2006-06-23  TAKAHASHI Naoto  <ntakahas@m17n.org>
+
+       * language.c: Update documentation.
+
+2006-06-23  Kenichi Handa  <handa@m17n.org>
+
+       * font-ft.c (struct MFontFT): Delete member lang.
+       (free_ft_info): Don't unref member lang.  Destroy members langset
+       and charset.
+       (fc_parse_pattern): Last argument changed to MFontFT *.  Callers
+       changed.  Set members langset and charset.
+       (fc_init_font_list, fc_list_pattern, fc_build_charset): New
+       functions.
+       (ft_init_font_list, ft_has_char_list_p, ft_list_char_list): New
+       functions.
+       (ft_list_family) [HAVE_FONTCONFIG]: Include FC_CHARSET on objset.
+       (ft_list_family) [! HAVE_FONTCONFIG]: Call ft_init_font_list.
+       (ft_list_language) [HAVE_FONTCONFIG]: Check representative
+       characters at first.  If it fails, try listing by language names.
+       (ft_list_language) [! HAVE_FONTCONFIG]: Call ft_list_char_list.
+       (ft_check_language): Renamed from ft_check_lang.  Adjusted for the
+       change of MFontCapability.
+       (ft_list_capability): Likewise.  Try listing by languages, then by
+       scripts.  Check OTF at last.
+       (ft_check_script): New function.
+       (ft_select): Adjusted for the check of MFontCapability.
+       (ft_list_family_names): New function.
+       (ft_check_capability): If cap->script is not Mnil, call
+       ft_check_script.
+       (mfont__ft_driver): Initialize with ft_list_family_names.
+
+       * font.h (struct MFontDriver): New member list_fmaily_names.
+       (struct): Change member "MSymbol *lang" to "MSymbol language".
+
+       * font.c: Include "language.h".
+       (Motf): New variable.
+       (otf_script_list, load_otf_script_list): Delete it.
+       (find_script_from_otf_tag): Delete it.
+       (merge_capability): New function.
+       (mfont__init): Init Motf.
+       (mfont__fini): Don't unref otf_script_list.
+       (free_font_capability): Check cap->script_tag to determine if
+       OTF-related capability is set.
+       (mfont__get_capability): Call mscript__from_otf_tag.  Adjusted for
+       the change of type MFontCapability.
+       (mfont_put_prop): Call merge_capability for Mlanguage, Mscript,
+       and Motf properties.
+       (mfont_list): Call merge_capability for LANGUAGE arg.
+       (mfont_list_family_names): New function.
+
+       * input-gui.c: Typo in comments fixed.
+
+       * input.c: Typo in comments fixed.
+
+       * language.h (mlanguage__list): Delete it.
+       (mscript__char_list, mscript__otf_tag, mscript__from_otf_tag): New
+       functions.
+
+       * language.c: Include "mtext.h".
+       (M_script_lang_list): Delete it.
+       (language_list, script_list): New variables.
+       (load_lang_script_list, init_language_list, init_script_list): New
+       functions.
+       (mlang__init): Don't load language database here.
+       (mlang__fini): Unref language_list and script_list if not NULL.
+       (mlanguage__list): Delete it.
+       (mlanguage__info, mscript__info, mscript__char_list)
+       (mscript__otf_tag, mscript__from_otf_tag): New functions.
+       (mlanguage_list, mlanguage_code, mlanguage_name, mlanguage_text)
+       (mscript_list, mscript_language_list): New functions.
+
+       * m17n-gui.h (mfont_list_family_names): Extern it.
+
+       * m17n.h (mlanguage_list, mlanguage_code, mlanguage_name)
+       (mlanguage_text, mscript_list, mscript_language_list): Extern
+       them.
+
+2006-06-21  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-X.c (xfont_driver): Initialize with
+       xfont_list_family_names.
+       (xfont_list_family_names): New function.
+       (xft_driver): Initialize with NULL for list_family_names member.
+       (device_init): Set list_family_names member of xft_driver to that
+       of mfont__ft_driver.
+
+2006-06-06  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (mfont__lookup_fontset): Don't set *num to 1 if it is 0.
+
+2006-03-24  Kenichi Handa  <handa@m17n.org>
+
+       * font-ft.c (ft_open): Improve debug message.
+
+       * fontset.c (mfontset__get_font): Fix for the case that no font in
+       per_script list is available.
+
+2006-02-06  Kenichi Handa  <handa@m17n.org>
+
+       * Version 1.3.3 released.
+
+2006-02-22  Kenichi Handa  <handa@m17n.org>
+
+       * textprop.c: Fix some typos in documentation.
+
+       * plist.c: Fix some typos in documentation.
+
+       * m17n-core.h: Fix some typos in documentation.
+       (M17NLIB_PATCH_LEVEL): Updated to 3.
+       (M17NLIB_VERSION_NAME): Updated to "1.3.3".
+
+       * symbol.c: Fix some typos in documentation.
+
+       * mtext.c: Fix some typos in documentation.
+
+       * input.c: Fix several typos in documentation.
+
+2006-02-06  Kenichi Handa  <handa@m17n.org>
+
+       * Version 1.3.2 released.
+
+2006-02-03  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-core.h (M17NLIB_PATCH_LEVEL): Updated to 2.
+       (M17NLIB_VERSION_NAME): Updated to "1.3.2".
+
+       * font.c (xlfd_parse_name): Fix handling of the name "nil".
+
+       * draw.c (layout_glyphs): Fix handling left_padding of
+       composition's base.
+
+       * m17n-gd.c (read_rgb_txt): Support HTML 4.0 color names.
+
+2006-02-02  Kenichi Handa  <handa@m17n.org>
+
+       * Makefile.am (include_HEADERS): Add m17n-gui.h and m17n-X.h only
+       if WITH_GUI is true.
+
+2006-01-25  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (resolve_expression): If the value of PLIST is a plist,
+       but the first element is not symbol, return 0.
+
+2006-01-17  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-gd.c (gd_render): Use gdImageColorResolveAlpha only if
+       HAVE_GD is 2 or the greater.
+
+2006-01-16  Kenichi Handa  <handa@m17n.org>
+
+       * Version 1.3.1 released.
+
+2006-01-16  Kenichi Handa  <handa@m17n.org>
+
+       * m17n-gd.c (gd_render): Use gdImageColorResolveAlpha instead of
+       simulating anti-aliasing.
+
+       * m17n-core.h (M17NLIB_PATCH_LEVEL): Updated to 1.
+       (M17NLIB_VERSION_NAME): Updated to "1.3.1".
+
+2006-01-12  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (get_surrounding_text): Always pop ic->plist.
+       (reset_ic): Don't reset ic->plist.
+
+2006-01-10  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (preedit_commit): For debugging, print only commiting
+       charactes.  Don't set ic->candidate_show to 0.
+       (handle_key): Don't run branch-actions just by shifting to the
+       current state.
+       (reset_ic): Reset state_key_head and key_head of ic_info to 0.
+       Reset vars and plist.
+
 2006-01-07  Kenichi Handa  <handa@m17n.org>
 
        * input.c (load_branch): Confirm that maps is not NULL.
        (MTEXT_FORMAT_UTF_16): Correct type.
        (M17NLIB_MINOR_VERSION): Changed to 3.
        (M17NLIB_VERSION_NAME): Changed to "1.3.0".
-       
+
        * chartab.c (mchartable__init): Initalize chartable_table.count.
        (mchartable__fini): Use N17N_OBJECT_ADD_ARRAY instead of
        mdebug__report_object.
        * Version 1.0 released.
 
 \f
-Copyright (C) 2003, 2004
+Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
   National Institute of Advanced Industrial Science and Technology (AIST)
   Registration Number H15PRO112
 
@@ -2863,5 +4937,5 @@ Lesser General Public License for more details.
 
 You should have received a copy of the GNU Lesser General Public
 License along with the m17n library; if not, write to the Free
-Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307, USA.
+Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.