X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2FChangeLog;h=e8da84c3722633bbcf099b6b9c9ec14332f86191;hb=45ea75b4f1dda259b7f8604c2f8c6623ce82870a;hp=98711907f9c360c8d9611763d70ac11217ac8788;hpb=8ed0b20ab3ed37a0c13420c9436adbe41a8a70a6;p=m17n%2Fm17n-lib.git diff --git a/src/ChangeLog b/src/ChangeLog index 9871190..64d50e0 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,4 +1,2056 @@ -2004-03-30 Kenichi Handa +2005-09-12 Kenichi Handa + + * 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 + + * mtext.c: + (mtext_lowercase, mtext_titlecase, mtext_uppercase): Change API. + +2005-09-07 TAKAHASHI Naoto + * 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 + + * 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 + + * plist.c (read_mtext_element): Fix previous change. + +2005-09-05 Kenichi Handa + + * plist.c (read_mtext_element): Handle \uXXXX notation. + + * internal.h (MTABLE_MALLOC): Don't use a local variable. + (MTABLE_ALLOCA): Change the name of local variable. + + * m17n-gd.c (device_open): Define it even if HAVE_GD nor + HAVE_FREETYPE are defined. + + * m17n-X.c: Check HAVE_X11. + + * Makefile.am (X_LD_FLAGS): Use @X11_LD_FLAGS@ instead of + directory listing libraries. + (noinst_PROGRAMS): Define it only in maintainer mode. + +2005-09-02 Kenichi Handa + + * m17n-gui.h (mdraw_line_break_option): Extern it. + + * draw.c (truncate_gstring): Use find_glyph_in_gstring to find the + end of the first glyph. + (GET_LB_TYPE, find_break_backward, find_break_forward): Delete + them. + (mdraw_line_break_option): New variable. + (mdraw_default_line_break): Use mtext_line_break. + + * mtext.h (wordseg_func_table): Don't extern it. + (mtext__wseg_fini): Extern it. + + * mtext.c: Don't include word-thai.h. + (wordseg_func_table): Delete this variable. + (mtext__init): Don't initialize above. Don't call + mtext__word_thai_init. + (mtext__fini): Don't free wordseg_func_table. Call + mtext__wseg_fini instead fo mtext__word_thai_fini. + (MTextWordsegFunc): Don't typedef it. + (mtext__word_segment): Moved to mtext-wseg.c. + + * m17n-core.h (enum MTextLineBreakOption): New enum. + (mtext_line_break): Extern it. + + * mtext-wseg.c: New file. + + * mtext-lbrk.c: New file. + + * Makefile.am (libm17n_core_la_SOURCES): Delete word-thai.[ch], + add mtext-lbrk.c and mtext-wseg.c. + + * textprop.c (mtext__adjust_plist_for_change): Pay attention for + the case that head is NULL. + +2005-09-01 Kenichi Handa + + * word-thai.c (wordseg_propertize): If the property value is nil, + don't make the property no-merge. + (thai_wordseg): Don't require *from and *to are set a priori. Pay + attention to the case that they are NULL. + (mtext__word_thai_init): Make the name of Mthai_wordseg starts + with two spaces. + + * character.c (mchar_get_prop_table): New function. + + * textprop.h (mtext__adjust_plist_for_change): Prototype adjusted. + + * m17n-core.h (mtext_insert, mtext_replace): Extern them. + (mchar_get_prop_table): Extern it. + + * textprop.c (prepare_to_modify): New arg deleting. Callers changed. + (mtext__adjust_plist_for_change): Argument changed. Callers changed. + + * internal.h (enum MTextCoverage): New enum. + (MText): New member coverage. + + * mtext.c (FORMAT_COVERAGE): New macro. + (insert): Copy mt2->coverage. + (mtext__from_data): Initialize mt->coverage. + (mtext__adjust_format): Update mt->coverage. + (mtext): Initialize mt->coverage. + (mtext_set_char): Adjust args to mtext__adjust_plist_for_change. + Update mt->coverage if necessary. + (mtext_duplicate): Copy mt->coverage. + (mtext_insert, mtext_replace): New functions. + (mtext_dup): Use mtext_duplicate. + (mtext__word_segment): Don't set *from and *to if a word + segmentation funcion is not found. + (mtext_ins_char): Fix typo. + +2005-08-25 Kenichi Handa + + * font.h (MFont): New member for_full_width. + + * font.c (compare_font_score): Prefer a font of not + for_full_width. + + * m17n-X.c (xfont_registry_list): Set font.for_full_width if the + registry charset of a font is one of CJK charsets. + + * font-ft.c (fc_parse_pattern): Set font->for_full_width if a font + supports some of CJK. + +2005-08-24 Kenichi Handa + + * m17n-gui.h (Mascent, Mdescent): Don't extern them. + + * m17n-gui.c (null_device_open): Check Mresolution param and set + frame->dpi. + + * m17n-gd.c (device_open): Check Mresolution param and set + frame->dpi. + + * m17n-X.c (MWDevice): New member resy. + (xfont_open): Set ascent, descent, and max_advance members of + rfont. + (xft_open): Likewise. + (device_open): Compare also screen_num to find a device. Set + device->resy and frame->dpi. + + * internal-gui.h (MFrame): New member dpi. + + * font.h (MRealizedFont): New member max_advance. + + * font.c (xlfd_unparse_name): Handle the case of font->size < 0. + (mfont__init): Don't initialize Mascent, Mdescent. + (Mascent, Mdescent): Delete these variables. + (mfont_get_prop): Fix previous change. Check Mfont_ascent and + Mfont_descent instead of Mascent and Mdescent. + (mfont_put_prop): Allow negative size. + (mfont_find): Handle the case of spec->size < 0. Fix previous + change. + (mfont_list): Handle the case of spec->size < 0. + (mfont_check): Likewise. + + * font-ft.c (STRDUP_LOWER): Ignore the tailing spaces. + (fc_get_pattern): Handle the case of font->size < 0. + (ft_open): Set ascent, descent, and max_advance members of rfont. + (ft_find_metric): Improve rounding. + (mfont__ft_parse_name): If FC_PIXEL_SIZE is not available, set + FC_SIZE. + + * face.c (mface__realize): Handle the case of font->size < 0. + +2005-08-22 Kenichi Handa + + * coding.c (MConverterStatus): Change the member buf to union. + (mconv_buffer_converter): Add const to the arg buf. + (mconv_decode_buffer, mconv_rebind_buffer): Likewise. + (mconv_decode): Adjusted for the change of MConverterStatus. + (mconv_encode_range): Likewise. + + * m17n.h (mconv_buffer_converter): Prototype adjusted. + (mconv_decode_buffer, mconv_rebind_buffer): Likewise. + +2005-08-20 Kenichi Handa + + * m17n-gui.h (mfont_from_name): Prototype adjusted. + (Mspacing, Mascent, Mdescent, Mmax_advance): Extern them. + + * m17n-X.c (xfont_open): Set members ascent, descent, and + max_advance of rfont. + (xft_open): Likewise. + + * font-ft.c (ft_open): Set members ascent, descent, and max_advance + of rfont. + (mfont__ft_parse_name): Add const to the arg name. + + * font.c (xlfd_parse_name): Add const to the arg name. Call + mfont__set_property instead of mfont_set_spec. Set font->spacing. + (xlfd_unparse_name): Handle spacing. + (mfont__init): Initialize new variables. + (mfont__id): Handle spacing. + (mfont__merge): Likewise. + (mfont__set_spec): This function deleted. + (mfont__parse_name_into_font): Add const to the arg name. Fix the + condition of calling mfont__ft_parse_name. + (Mspacing, Mascent, Mdescent, Mmax_advance): New variables. + (mfont_get_prop): Handle properties spacing, ascent, descent, + and max-advance. + (mfont_find): Return a realized font. + (mfont_from_name): Add const to the arg name. + + * font.h (enum MFontProperty): New member MFONT_SPACING. + (enum MFontSpacing): New enum. + (MFont): New members spacing and max_advance. + (mfont__ft_parse_name): Prototype adjusted. + (mfont__set_spec): Extern deleted. + (mfont__parse_name_into_font): Prototype adjusted. + +2005-08-19 Kenichi Handa + + * m17n-gui.h (mfont_parse_name): Prototype adjusted. + + * font.c (mfont_list): If FONT is null, use a temporary font. + (mfont_parse_name): Add const to the arg name. + +2005-08-18 Kenichi Handa + + * word-thai.c: Surround code by #ifdef and #endif to escape from + doxygen. + + * font-ft.c: Mostly re-written. + + * font-flt.c (FontLayoutCmdOTF): This type deleted. + (FontLayoutCmd): Type of the member otf changed.. + (load_otf_command): Adjusted for the format change of otf command. + (load_command): Likewise. + (free_flt_command): Unref cmd->body.otf. + (run_otf): Ajusted for the type change of otf_cmd. + (run_command): Ajusted for the type change of otf_cmd. On + debugging, print ctx->combining_code. + (mfont__flt_run): Initialize ctx's members code_offset, + combining_code, and left_padding to 0. + + * face.h (struct MRealizedFace): New member font. + (mface__realize): Prototype adjusted. + + * face.c (find_realized_face): New arg font. + (find_realized_face): Adjusted for the change of MFont. + (mface__init): Call M17N_OBJECT_ADD_ARRAY. + (mface__fini): Don't call mdebug__report_object. + (mface__realize): New arg font. + (mface__for_chars): Adjusted for the change of mfont__encode_char. + Optimize the latin case. + (mface__free_realized): Free rface->font. + (mface__update_frame_face): Adjusted for the change of mface__realize. + (mface_equal): New function. + + * draw.c (Mcommon): New variable. + (visual_order): Args to mfont__encode_char changed. + (compose_glyph_string): Handle Mfont text property. + (layout_glyphs): Adjusted for the change of MFont. + (mdraw__init): Initialize Mcommon. + (mdraw_glyph_info): Adjusted for the change of MRealizedFont. + + * font.h (enum MFontType): Members completely changed. + (enum MFontProperty): Move MFONT_SIZE to the tail. + (enum MFontSource): New enum. + (struct MFont): New members type, source, sizes, file, capability, + and encoding. + (struct MRealizedFont): Type of member font changed. Members + score, status, and encoding deleted. + (MFontScore): New type. + (MFontList): Member changed. + (struct MFontDriver): New member has_char. Types of members + changed. + (Miso8859_1, Miso10646_1, Municode_bmp, Municode_full) + (Mapple_roman): Extern them. + (OTF_Tag): Typedefed if not HAVE_OTF. + (enum MFontOpenTypeTable): New enum. + (MFontCapability): New type. + (mfont__ft_drive_otf): Prototype adjusted. + (mfont__score): Extern deleted. + (mfont__merge): Extern it. + (mfont__has_char): Extern it. + (mfont__encode_char): Prototype adjusted. + (mfont__open): Extern it. + (mfont__set_spec): Prototype adjusted. + (mfont__get_capability): Extern it. + + * font.c: Include "fontset.h". + (M_font_capability, M_font_list, M_font_list_len): New variables. + (font_score_priority): Change order of initial elements. + (font_score_shift_bits): Fix array size. + (common_weight): Add "thin", "semibold", and "heavy". + (common_stretch): Add "ultracondensed", "extracondensed", + "extraexpanded", and "utltraexpand". + (font_weight_regular, font_weight_normal, font_weight_medium): New + variables. + (gen_font_name): This function deleted. + (find_encoding): Set font->encoding. + (OTF_tag): New function. + (otf_script_list): New variable. + (load_otf_script_list): New function. + (find_script_from_otf_tag): New function. + (xlfd_parse_name): Set font->type and font->source. + (mfont__free_realized): Free chains rfonts. + (font_score): Renamed from mfont__score. + (Miso8859_1, Miso10646_1, Municode_bmp, Municode_full) + (Mapple_roman): New variables. + (mfont__init): Initilize new variables. Initalize + default_encoding.encoding_name and + default_encoding.encoding_charset to Municode_full and + mcharset__unicode. Use SAFE* macros for allocating filepath + buffer. + (mfont__fini): Free otf_script_list. + (mfont__id): New function. + (mfont__match_p): Check also capability member of MFont. + (mfont__merge): New funciton. + (mfont__set_spec_from_face): Set type and source members. + (mfont__set_spec_from_plist): Set capability and type members. + (mfont__select): Argument changed. + (mfont__available): New function. + (compare_font_score): New function. + (mfont__list): New function. + (mfont__open): Return a realized font. + (mfont__resize): Adjusted for the change of MFont. + (mfont__has_char): New function. + (mfont__encode_char): Argument changed. + (mfont__set_spec): Argument changed. + (free_font_capability): New function. + (mfont__get_capability): New function. + (MFontfile): New variable. + (mfont_get_prop): Adjusted for the change of MFont. + (mfont_put_prop): Likewise. + (mfont_set_selection_priority): Fix the way of setting + font_score_priority[]. + (mfont_find): Use mfont__list instead of mfont__select. + (mfont_resize_ratio): Adjusted for the change of MFont. + (mfont_list): Use mfont__list. + (mfont_check): New function. + (font_score): Make it static. + + * fontset.h (mfont__realize_fontset): Prototype adjusted. + (mfont__lookup_fontset): Likewise. + + * fontset.c (struct MFontset): Delete member font_spec_list. + (struct MRealizedFontset): Type of member spec changed. New + member request. + (load_font_group): Arg spec_list deleted. + (load_fontset_contents): Adjusted for the change of fontset_def. + (free_fontset): Fix the way of freeing fontset elements. + (realize_fontset_elements): Argument changed. + (get_per_script): New function. + (free_realized_fontset_elements): Fix the way of feeing rfontset + elements. + (update_fontset_elements): Fix args to realize_fontset_elements. + (mfont__realize_fontset): New arg spec. + (try_font_list): New function. + (try_font_group): New arg request. Use try_font_list. + (mfont__lookup_fontset): New arg ignore_fallback. Fix arg to + try_font_group. + (mfontset): Adjusted for the change of MFontset. + (mfontset_copy): Likewise. Don't share plists. + (mfontset_modify_entry): Adjusted for the change of MFontset. + (mfontset_lookup): Call get_per_script. + (mdebug_dump_fontset): Print also the address of fonts. + + * input.c (shift_state): Don't reset ic_info->vars. + (take_action_list): Call MDEBUG_PRINT fore calling + take_action_list. + + * internal-gui.h (MFontDriver): Don't typedef it here. + + * m17n-X.c: Include if HAVE_XFT2. + (MXFont): This type deleted. + (MFontX): New type. + (struct _MFontX): New struct. + (SET_SIZE, HAVE_SIZE): Adjusted for the change of arg FONTX. + (MDisplayInfo): Member base_font_list deleted. + (DEFAULT_FONT): Definition changed. + (FALLBACK_FONT): This maclr deleted. + (free_display_info): Adjusted for the change of MDisplayInfo. + (free_device): Argument to mfont__free_realized changed. + (xfont_driver): Adjusted for the change of MFontDriver. + (xfont_registry_list): Use MFontX instead of MXFont. + (MRealizedFontX): Renamed from MXFontInfo. + (xfont_select): Return the font found first. + (close_xfont): Change MXFontInfo to MRealizedFontX. + (xfont_open): Return the realized font. + (xfont_find_metric): Get xfont from rfont->fontp. + (xfont_has_char): New function. + (xfont_encode_char): Adjusted for the argument change. + (xfont_render): Get xfont from rfont->fontp. + (xfont_list): Adjusted for the argument change. + (MRealizedFontXft): Renamed from MXftFontInfo. + (xft_driver): Ajusted for the change of MFontDriver. + (close_xft): Change MXtfFontInfo to MRealizedFontXft + (xft_open_font): Argument changed. + (xft_open): Argument changed. Return the realized font. + (xft_find_metric): Get xft_font from rfont->fontp. + (xft_has_char, xft_encode_char): New functions. + (xft_render): Change MXftFontInfo to MRealizedFontXft. Open a + font if not yet opened. + (device_open): Don't set frame->font. + + * m17n-gd.c (gd_font_driver): Adjusted for the change of + MFontDriver. + (gd_font_open): New function. + (gd_render): Don't use the local variable ft_info. + (device_init): Adjusted for the change of gd_font_driver. + + * textprop.c (mtext__prop_init): Initialize text_property_table. + Call M17N_OBJECT_ADD_ARRAY. + (mtext__prop_fini): Don't call mdebug__report_object. + + * plist.c (mplist__init): Initialize plist_table. + (mplist__init): Call M17N_OBJECT_ADD_ARRAY. + (mplist__fini): Don't call mdebug__report_object. + + * mtext.c (mtext__init): Call M17N_OBJECT_ADD_ARRAY. + (mtext__fini): Don't call mdebug__report_object. + (MTEXT_FORMAT_UTF_16): Correct type. + (mtext_data): New function. + (mtext_text): Fix calculation of limit and args to + find_char_backward. + + * language.c: Include "plist.h". + (M_script_lang_list): New variable. + (mlang__init): Read languages and their information from m17n + database. + (mlanguage__list): New function. + (Miso639_1, Miso639_2): New variables. + + * language.h (mlanguage__list): Extern it. + + * database.c (get_database_stream): Use SAFE_* macros for + allocating and freeing path. + (mdatabase__init): Likewise. + + * symbol.c (msymbol__fini): Don't free symbols here. + (msymbol__free_table): New function. + (msymbol_is_managing_key): New function. + + * symbol.h (msymbol__free_table): Extern it. + (msymbol__list): Extern it. + + * internal.h (MFATAL, USE_SAFE_ALLOCA, SAFE_ALLOCA, SAFE_FREE): + New macros. + (M17N_OBJECT_UNREF): Change "if ... else ..." structure. + (struct _M17NObjectArray): New member name and next. + (mdebug__add_object_array): Extern it. + (M17N_OBJECT_ADD_ARRAY): New macro. + (mdebug__report_object): Don't extern it. + + * m17n-misc.h (enum MErrorCode): New element MERROR_FONT_X. + + * m17n-gui.c (free_frame): Don't free frame->font. + (null_device_fini): Fix code for freeing + null_device.realized_font_list. + (m17n_fini_win): Free interface. + (mframe): Cast the return value of dlsym. Set frame->font here. + (mframe_get_prop): Check frame->rface->rfont before accessing the + member font. + + * m17n-gui.h (Mfontfile): Extern it. + (mfont_check): Extern it. + (mface_equal): Extern it. + + * m17n-core.c: Include "symbol.h". + (report_header_printed): This variable deleted. + (object_array_root): New variable. + (report_object_array): New function. + (mdebug__report_object): This function deleted. + (mdebug__add_object_array): New function. + (m17n_init_core): Call mchartable_init () before mtext_init (). + (m17n_fini_core): Call report_object_array (if necessary) and + msymbol__free_atable at the end. + + * m17n-core.h (msymbol_is_managing_key): Extern it. + (mtext_data): Extern it. + (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. + +2005-05-26 Kenichi Handa + + * m17n.h (Miso639_1, Miso639_2): Extern them. + + * symbol.h (msymbol__list): Extern it. + + * symbol.c (msymbol__list): New function. + +2005-05-19 Kenichi Handa + + * input-gui.c (minput__win_init): Don't change the value of + minput_driver. + +2005-05-16 Kenichi Handa + + * m17n-core.c (m17n_object): Be sure to initialize all members. + + * font-ft.c (fc_decode_prop): Fix args to msymbol. + +2005-05-09 Kenichi Handa + + * m17n-X.c (mwin__close_device): Fix arg to M17N_OBJECT_UNREF. + +2005-04-27 Kenichi Handa + + * language.c (mlang__init): Add "an" (Aragonese). + + * word-thai.c: Add support for libthai. + (mtext__word_thai_init): Initialize wordseg library conditionaly. + (mtext__word_thai_fini): Finalize wordseg library conditionaly. + + * mtext.c: Include "word-thai.h" conditionaly. + (mtext__init): Call mtext__word_thai_init conditionaly. + (mtext__fini): Call mtext__word_thai_fini conditionaly. + + * Makefile.am (libm17n_core_la_LIBADD): Add THAI_WORDSEG_LD_FLAGS, + not WORDCUT_LD_FLAGS. + +2005-04-19 Kenichi Handa + + * word-thai.c (wordseg_propertize): Always unref the attached + property. + (thai_wordseg): Don't unref the property. + +2005-04-18 Kenichi Handa + + * word-thai.c: Include stdlib.h. + (wordseg_propertize): Add dummy function for the case that wordcut + library doesn't exist. + (wordseg_propertize): Fix for old wordcut library. + +2005-04-16 Kenichi Handa + + * word-thai.c: Include . + +2005-04-15 Kenichi Handa + + * draw.c: Include mtext.h. + (linebreak_table, M_break_at_space, M_break_at_word) + (M_break_at_any, M_kinsoku_bol, M_kinsoku_eol): New variables. + (compose_glyph_string): Check POS before getting Mface text + property. + (truncate_gstring): Give correct TO arg to line_break function. + (GET_LB_TYPE): New macro. + (find_break_backward, find_break_forward): New functions. + (mdraw__init): Initialize the above new variables. + (mdraw__fini): Free linebreak_table. + (mdraw_default_line_break): Use find_break_backward and + find_break_forward. + + * word-thai.c: New file. + + * word-thai.h: New file. + + * mtext.c: Include word-thai.h. + (wordseg_func_table): New variable. + (mtext__init): Initialize wordseg_func_table and call + mtext__word_thai_init. + (mtext__fini): Call mtext__word_thai_fini, free + wordseg_func_table. + (MTextWordsegFunc): New type. + (mtext__word_segment): New function. + + * mtext.h (wordseg_func_table): Extern it. + (mtext__word_segment): Extern it. + + * m17n.c (m17n_init): Fix typo (== -> =). + + * Makefile.am (libm17n_core_la_SOURCES): Include word-thai.[ch]. + (libm17n_core_la_LIBADD): Add @WORDCUT_LD_FLAGS@. + + * textprop.h (MTEXTPROP_START, MTEXTPROP_END, MTEXTPROP_KEY) + (MTEXTPROP_VAL): New macros. + + * input.c (DLOPEN_SHLIB_EXT): Don't define it. + +2005-04-07 Kenichi Handa + + * database.c (load_chartable): Fix pursing of symbol name. + +2005-03-24 Kenichi Handa + + * m17n.c (m17n_init): Fix typo (== -> =). + +2005-03-11 Kenichi Handa + + * m17n-gui.c (m17n_init_win): Set merror_code to MERROR_NONE at first. + + * m17n.c (m17n_init): Set merror_code to MERROR_NONE at first. + + * m17n-core.c (m17n_init_core): Set merror_code to MERROR_NONE at + first. + +2005-03-09 handa + + * m17n-gui.c (m17n_init_win): Set merror_code to MERROR_NONE before + calling m17n_init (). + + * m17n.c (m17n_init): Set merror_code to MERROR_NONE before + calling m17n_init_core (). + +2005-02-28 Kenichi Handa + + * font-flt.c (mfont__flt_run): Add resulting code sequence in + debug info. + +2005-02-17 Kenichi Handa + + * input.c: Include , , and "database.h". + (M_description, M_command, M_variable): New variables. + (load_im_info_keys): New variables. + (load_im_info, check_command_keyseq, get_description_advance) + (parse_command_list, get_command_list, parse_variable_list) + (get_variable_list, input_method_hook): New functions. + (command_list, variable_list): New variables. + (minput__init): Put input_method_hook to Minput_method. + Initialize M_description, M_command, M_variable, Mdetail_text, + load_im_info_keys, command_list, variable_list. + (minput__fini): Unref command_list, variable_list, load_im_info_keys. + (Mdetail_text): New variable. + (minput_get_description, minput_get_commands) + (minput_assign_command_keys, minput_get_variables) + (minput_set_variable): New functions. + + * m17n.h (Mdetail_text, minput_get_description, minput_get_commands) + (minput_assign_command_keys, minput_get_variables) + (minput_set_variable): Extern them. + + * plist.c (UNGETC): Just decrement st->p. + (read_mtext_element): New arg skip. + (read_integer_element): Likewise. + (read_symbol_element): Likewise. + (read_element): New arg KEYS. + (mplist__from_plist): Don't increment ref-count of NULL object. + (mplist__from_file): New arg KEYS. + (mplist_put): Don't increment ref-count of NULL object. + (mplist_add): Likewise. + (mplist_push): Likewise. + (mplist_set): Likewise. Call M17N_OBJECT_UNREF unconditionally. + + * plist.h (mplist__from_file): Prototype adjusted. + + * database.c (mdatabase__dir_list): Renamed from mdb_dir_list. + (get_database_stream): New function. + (load_database): Use get_database_stream. + (M_database_hook): New variable + (mdatabase__init): Initialize M_database_hook. + (mdatabase__load_for_keys): New function. + (mdatabase_find, mdatabase_list, mdatabase_define): Check hook + function. + (mdatabase_define): Free mdb->extra_info if necessary. + + * database.h (mdatabase__dir_list, M_database_hook) + (mdatabase__load_for_keys): Extern them. + (MDatabaseHookFunc): New type. + + * internal.h (M17N_OBJECT_UNREF): When freed, set OBJECT to NULL. + +2004-12-27 Kenichi Handa + + * Version 1.2.0 released. + +2004-12-27 Kenichi Handa + + * input.c (minput_filter): Don't reset ic->xxx_changed. + + * mtext.c (mtext_from_data): Fix documentation. + +2004-12-25 Kenichi Handa + + * m17n-core.h (M17NLIB_MINOR_VERSION): Update to 2. + (M17NLIB_VERSION_NAME): Update to "1.2.". + +2004-12-24 Kenichi Handa + + * input.c (reset_ic): Set key_unhandled to 0. + +2004-12-21 Kenichi Handa + + * m17n-gui.h (mfont_from_spec): Delete extern. + + * input-gui.c (win_callback): Handle Minput_reset. + (minput__win_init): Register reset_ic as a callback for + Minput_reset. + + * input.c (reset_ic): New arg IGNORE which is ignored. Caller + changed. At first, shift to the initial state. + (minput__init): Initialize Minput_reset. Register reset_ic as a + callback for Minput_reset. + (Minput_reset): New variable. + (minput_filter): Always set ic->xxx_changed to 0. + (minput_reset_ic): New function. + (integer_value): Fix typo ('>' -> '<') and calculation of length + of preedit text. + + * m17n-core.c (merror_code): Change type to `int'. + + * m17n-misc.h (merror_code): Adjust type. + + * m17n.h (Minput_reset, minput_reset_ic): Extern them. + + * m17n-core.h (MTEXT_FORMAT_UTF_16, MTEXT_FORMAT_UTF_32): Adjust types. + (mtext_change_prop): Delete extern. + + * mtext.c (MTEXT_FORMAT_UTF_16, MTEXT_FORMAT_UTF_32): Change types + to `int'. Move the documents to m17n-core.h. + +2004-12-13 Kenichi Handa + + * m17n-core.h (m17n_object): Rename extern from m17n_object_setup. + (MTextProperty): Document it. + +2004-12-09 Kenichi Handa + + * m17n-core.h: Fix typo (MTextStatus -> M17NStatus). + +2004-12-03 Kenichi Handa + + * internal.h (m17n__core_initialized, m17n__shell_initialized, + m17n__gui_initialized): New externs. + + * m17n-core.h (enum M17NStatus): New enum. + (m17n_status): Extern it. + + * m17n-core.c (core_initialized): Delete this variable. + (m17n__core_initialized, m17n__shell_initialized, + m17n__gui_initialized): New variables. + (m17n_init_core, m17n_fini_core): Check m17n__core_initialized + instead of core_initialized. + (m17n_status): New function. + + * m17n.c (shell_initialized): Delete this variable. + (m17n_init, m17n_fini): Check m17n__shell_initialized instead of + shell_initialized. + + * m17n-gui.h (m17n_init_win): Adjust the prototype. + + * m17n-gui.c (win_initialized): Delete this variable. + (m17n_init_win, m17n_fini_win): Check m17n__gui_initialized + instead of gui_initialized. + +2004-11-19 Kenichi Handa + + * input.c (reset_ic): Check if ic_info->state is NULL. + (filter): If ic_info->state is NULL, return 0. + (load_input_method): Don't unref `maps' it it's not created. + +2004-11-15 Kenichi Handa + + * input.c (find_candidates_group): If INDEX is -1, find the last + candidate group. + (take_action_list): If the previous of the first candidate is + requested, select the last candidate. + +2004-11-08 Kenichi Handa + + * m17n-X.c (device_open): Try at most 32 fonts to find a + non-autoscaled font. + + * font.c (xlfd_parse_name): Fix previous change. + +2004-11-05 Kenichi Handa + + * font.c: (commont_style): Include dummy elements "slanted" and + "rslanted" to prefer "o" to "r" if "i" is requested. + + * font-ft.c (ft_to_prop): Fix "oblique" entry. + +2004-10-29 Kenichi Handa + + * font.c (xlfd_parse_name): If avgwidth is 0, set the size to 0. + + * m17n-X.c (MXFont): Change type of the member `sizes' to int. + New members smallest and larger. + (SET_SIZE, HAVE_SIZE): Adjusted for the above change. + (xfont_registry_list): Likewise. + (xfont_select): Likewise. + + +2004-10-28 Kenichi Handa + + * m17n-X.c (xfont_registry_list): Include '-' before PIXEL_SIZE in + font name comparison. + (xfont_select): Fix logic for selecting a larger size font. + +2004-10-25 Kenichi Handa + + * input.c (take_action_list): Initialize `ret' to 0 for "=", "<", + ">" actions. + +2004-10-22 Kenichi Handa + + * input.c (update_candidate): Renamed from udpate_candidate. + (take_action_list): Show more debugging info on arithmetic commands. + + * m17n-X.c (device_open): Fix previous change. + + * draw.c (compose_glyph_string): Don't get face property at the + end of M-text. + +2004-10-21 Kenichi Handa + + * draw.c (compose_glyph_string): Fix for the case of category + being Mnil. + +2004-10-19 Kenichi Handa + + * input.c (mdebug_mask): New variable. + (shift_state): Print debug information. + (take_action_list): Likewise. + (handle_key): Likewise. + +2004-10-14 Kenichi Handa + + * m17n-X.c (device_open): Accept Mxft as the value of key Mfont. + +2004-10-13 Kenichi Handa + + * m17n-X.c (device_open): Be sure to register at least one font + driver. + + * font-ft.c: Include conditionally. Check + HAVE_FTBDF_H before calling FT_Get_BDF_Property. + +2004-10-12 Kenichi Handa + + * draw.c (alloc_gstring): Fix previous change. + + * font-ft.c (ft_list_generic): Fix for the case of not + HAVE_FONTCONFIG. + + * m17n-X.c (mwin__parse_event): Fix for non-ASCII keys. + + * font.c (mfont_list): If no font is found, return NULL. + (load_font_encoding_table): Put entries of nil registry first. + (find_encoding): Adjust for the above change. + +2004-10-11 Kenichi Handa + + * m17n-gui.h (mfont_list): Adjust prototype. + + * m17n-X.c (xfont_list): New arg maxnum. + + * font.h (struct MFontDriver): Change prototype of . + + * font-ft.c (fc_generic_family_list): Delete it. + (Mserif, Msans_serif, Mmonospace): Delete them. + (M_generic_family_info): New variable. + (enum GenericFamilyType): New enum. + (struct GenericFamilyInfo): New struct. + (generic_family_table): New variable. + (set_font_info): New arg style. Don't check 0xA0..0xBF to decide + iso8859-1. + (add_font_info): Get style here. + (ft_list_family): Don't initialize fc_config here. Don't list + generic families. + (ft_list_generic): New function. + (ft_select): Pay attention to generic familes here. + (ft_open): Fix calculation of ascent and descent. + (ft_list): Pay attention to generic families. + (mfont__ft_init): Initialize M_generic_family_info, + generic_family_table, and fc_config.. + (mfont__ft_fini): Finalize generic_family_table. + + * draw.c (compose_glyph_string): Use more constant font for + glyphs. Adjust for the member change in MGlyph. + (layout_glyph_string): Adjust for the member change in MGlyph. + (alloc_gstring): Intilize scracth_glyph to avoid + compose_glyph_string on it. + (get_gstring): Don't call compose_glyph_string on scracth_glyph. + (mdraw_coordinates_position): Fix previous change. + + * internal-gui.h (glyph_category): New enum. + (MGlyph): Change type of to enum glyph_category. + + * face.c (mface__realize): Delete args langauge and charset. + (mface__for_chars): Fix for the case that glyphs have different + rfaces. + (mface__update_frame_face): Adjust for mface__realize change. + + * face.h (mface__realize): Adjust prototype. + +2004-10-05 Kenichi Handa + + * language.c (mlang__init): Add Akan. + +2004-10-04 Kenichi Handa + + * font-ft.c (add_font_info): Add instead of push the element. + (ft_list_family): For generic fonts, try all + substituted. families. + + * font-flt.c (UPDATE_CLUSTER_RANGE): New macro. + (run_rule): Don't update cluster range here. + (run_command): Update cluster range on appending a glyph. + (run_otf): Update cluster range for glyphs generated by OTF. + +2004-10-02 Kenichi Handa + + * m17n-X.c (device_open): Handle Mfont key in PLIST. + +2004-09-30 Kenichi Handa + + * font-ft.c (ft_select): Ignore family on calling mfont__score. + +2004-09-30 Kenichi Handa + + * font.h: Include . + (MFTInfo): New member langset. + (mfont__encoding_list): Extern it. + + * font.c (mfont__encoding_list): New function. + (mdebug_dump_font_list): New function. + + * font-ft.c: Don't include here. + (Mserif, Msans_serif, Mmonospace, Mmedium, Mr, Mnull): New + variables. + (ft_family_list): New variable. + (set_font_info): New arg basep. Callers changed. + (fc_list): Check the return value of FcPatternGetString. + (add_font_info): New arg plist. Callers changed. Update + ft_family_list. + (ft_list_family): New function (merged fc_list and ft_list_all). + (ft_select): Use ft_list_family. + (ft_list): Likewise. If FONT is not NULL, check all fonts. Fix + typo (== -> !=). + (mfont__ft_init): Initialize above new variables. + (mfont__ft_fini): Free ft_family_list. + (STRDUP_LOWER): New macro. + (set_font_info): Use STRDUP_LOWER. + (ft_list_family): Avoid duplicate addition of font path. Use + STRDUP_LOWER. + (fc_decode_prop): Fix typo. + + * m17n-X.c (MDisplayInfo): New member all_fonts_scaned. + (xfont_registry_list): Change argument disp_info to frame. + Callers changed. + (xfont_list_all): New function. + (xfont_list): If FONT is not NULL, check all fonts. + +2004-09-28 Kenichi Handa + + * m17n-X.c (MXFont, MXFontList): New types. + (MDisplayInfo): Delete members font_registry_list, + iso8859_1_family_list, iso10646_1_family_list, new members + font_list, base_font_list. + (free_display_info): Adusted for the change of MDisplayInfo. + (xfont_driver): Initialize with xfont_list. + (font_compare): New function. + (build_font_list): Deleted. + (xfont_registry_list): New function. + (xfont_select): Use xfont_registry_list. + (xfont_list): New function. + (device_open): Adusted for the change of MDisplayInfo. + + * font-ft.c (add_font_info): New arg languages. Callers changed. + (fc_list): Get languages from fonts.. + (ft_list_all): Renamed from ft_list. Callers changed. + (ft_list): New function. + (mfont__ft_driver): Initalize with ft_list. + + * font.c (mfont_list): New function. + + * font.h (struct MFontDriver): New member `list'. + (MFTInfo): New member languages. + + * m17n-gui.h (mfont_list): Extern it. + +2004-09-27 Kenichi Handa + + * internal-gui.h (struct MGlyphString): Delete members mt, + sub_width, sub_lbrearing, sub_rbearing, and region. + + * draw.c (MSubTextExtents): New type. + (layout_glyphs): New arg extents. Set its members. + (layout_glyph_string): Adjusted for the above change. + (alloc_gstring): Don't set gstring->mt. + (truncate_gstring): Call line_break function with mt instead of + gstring->mt. + +2004-09-22 Kenichi Handa + + * mtext.c (count_utf_16_chars): Count each code of invalid + surrogates as one. + +2004-09-19 Kenichi Handa + + * mtext.c (default_utf_16, default_utf_32): Rename them to + MTEXT_FORMAT_UTF_16 and MTEXT_FORMAT_UTF_32 respectively. Caller + changed. + + * m17n-core.h (MTEXT_FORMAT_UTF_16, MTEXT_FORMAT_UTF_32): Extern + them. + +2004-09-13 Kenichi Handa + + * draw.c (Mlatin): Don't declare it here. + (visual_order): Fix reordering of combining characters. + (compose_glyph_string): Fix detection of script. + (layout_glyphs): Don't fix reordering of combining characters + here. + (layout_glyph_string): Pay attention to + control->disable_overlapping_adjustment. + (truncate_gstring): Include at least on character in a line. + (get_gstring): Always scan one full line. + (mdraw__init): Don't initialize Mlatin here. + (mdraw_text_per_char_extents): Fix iteration. If a glyph doesn't + have a font, use ascent/descent of an ASCII font. Allow + ink_array_return and logical_array_return to be NULL. + (mdraw_coordinates_position): Fix iteration. + + * font-ft.c (MFTtoProp): Member completely changed. + (ft_to_prop): Adjusted for the above change. + (ft_to_prop_size): Likewise. + (set_font_info): Adjusted for the change of MFTtoProp. + (fc_generic_family_list): New variable. + (fc_list): Add special handling of generic font names. + (mfont__ft_init): Adjusted for the change of MFTtoProp. + Initialize fc_generic_family_list. + (mfont__ft_fini): Don't free ft_to_prop. Free + fc_generic_family_list. + (FC_vs_M17N_font_prop): New type. + (fc_weight_table, fc_slant_table, fc_width_table): New variables. + (fc_decode_prop, fc_encode_prop): New functions. + (mfont__ft_parse_name): Use fc_decode_prop. + (mfont__ft_unparse_name): Use fc_encode_prop. + + * m17n-X.c (MDisplayInfo): Delete member realized_font_list. + (MWDevice): Add member realized_font_list. + (free_display_info): Don't free disp_info->realized_font_list. + (free_device): Free device->realized_fontset_list. + (xft_find_metric): Use gstring->frame instead of rfont->frame. + (device_open): Don't initialize disp_info->realized_font_list. + (device_open): Initialize device->realized_font_list and set it to + frame->realized_font_list. + + * fontset.c (try_font_group): New function. + (mfont__lookup_fontset): Use try_font_group. + + * font.c (common_weight): Change the order of "regular". + + * face.c (Mlatin): Don't make it static. + (mface__realize): Be sure to set work_gstring.frame. + (mface__for_chars): Likewise. + + * mtext.c (mdebug_dump_mtext): Fix for the case of mt->format > + MTEXT_FORMAT_UTF_8. + + * internal-gui.h (Mlatin): Extern it. + + * m17n-gui.h (MDrawControl): New member + disable_overlapping_adjustment. + +2004-09-06 Kenichi Handa + + * font-flt.c (run_otf): Fix typo ('}'->']'). + + * internal-gui.h (MAKE_PRECOMPUTED_COMBINDING_CODE) + (COMBINING_PRECOMPUTED_P): New macros. + + * draw.c (layout_glyphs): Handle precomputed combining code. + + * font-ft.c (mfont__ft_drive_otf): Set g->combining_code to a + precomupted combining code. + +2004-09-03 Kenichi Handa + + * font-ft.c (mfont__ft_drive_otf): Use malloc and free for + otf_gstring.glyphs. + +2004-08-27 Kenichi Handa + + * face.c (mface_put_prop): If the new value is the same as the + current one, don't increment frame->tick. + +2004-08-25 Kenichi Handa + + * fontset.c (mfontset): Initialize font_spec_list member. + (mfontset_copy): Load fontset if necessary. + + * m17n-gui.h (MDrawGlyphInfo): Change the member name 'this' to + 'metrics' to for C++. + + * draw.c (mdraw_glyph_info): Adjusted for the member name change + (this -> metics). + +2004-08-16 Kenichi Handa + + * Version 1.1.0 released. + +2004-08-13 Kenichi Handa + + * language.c (mlang__init): Add Dhivehi. + + * m17n-gui.c (Mx, Mfreetype): Delete it. + (m17n_init_win): Don't initialize Mx and Mfreetype here. + + * m17n-gui.h (Mfreetype, Mxft): Extern them. + (mfont_resize_ratio): Extern it. + (MDrawGlyphInfo): New member logical_width; + (MDrawGlyph): New type. + (mdraw_glyph_list): Prototype adjusted. + + * m17n-X.c (xfont_open): Set type and fontp members. + (xft_open): Likewise. + + * internal-gui.h (Mx, Mfreetype): Delete extern. + + * font.h (struct MRealizedFont): New member type and fontp. + + * font.c (mfont__init): Initialize Mx, Mfreetype, and Mxft. + (Mx, Mfreetype): Declare here. + (Mxft): New variable. + (mfont_resize_ratio): New function. + + * font-ft.c (ft_open): Set type and fontp members. + + * draw.c (mdraw_glyph_list): Argument type changed. Don't set + glyph_code member. + +2004-08-11 Kenichi Handa + + * font-ft.c (ft_find_metric): Call FT_Load_Glyph with + FT_LOAD_DEFAULT. + +2004-08-06 Kenichi Handa + + * font-ft.c (mfont__ft_drive_otf): Fix for the case that no GSUB + feature to apply. + + * font-flt.c (run_otf): Print debugging information if necessary. + +2004-08-05 Kenichi Handa + + * font-ft.c (mfont__ft_drive_otf): Fix sign of g->yoff. Support + positioning_type 5 and 6. Switch simplified. + +2004-08-04 Kenichi Handa + + * font-ft.c (mfont__ft_drive_otf): Call OTF_drive_gdef. + +2004-08-02 Kenichi Handa + + * font.c (mfont__score): If prop is MFONT_FOUNDRY or MFONT_FAMILY, + set val to 1 even if it is greater than 1. + + * fontset.c (mfontset_modify_entry): Fix handling of the arg `how'. + +2004-07-29 Kenichi Handa + + * font-flt.c (run_rule, run_command, mfont__flt_run): Print more + debugging information. + + * internal.h (MDEBUG_PRINT5): New macro. + + * draw.c (layout_glyphs): Don't combine a zero width glyph with + the previous one if the zero width glyph has left or right + padding. + +2004-07-26 Kenichi Handa + + * m17n-X.c (xft_render): Pay attention to members left_padding and + right_padding of MGlyph. + + * draw.c (visual_order): Allocate one more elements for arrays as + a workaround of fribidi bug. + (layout_glyphs): Fix previous change. Check MGlyph->combining_code + instead of MGlyph->bidi_sensitive. + (layout_glyph_string): Pay attentinon to + control->orientation_reversed when padding at the head or tail. + Fix adjustment of space glyph width. + (get_gstring): If cursor_width or cursor_bidi is changed, don't + use a cache. + + * font-ft.c (mfont__ft_drive_otf): Set MGlyph->combining_code + instead of MGlyph->bidi_sensitive. + + * internal-gui.h (MGlyph): Delete member bidi_sensitive. + +2004-07-26 Kenichi Handa + + * draw.c (visual_order): Don't treat combined glyphs specially. + (layout_glyphs): Don't get metrics glyphs that are already ready. + Pay attention to MGlyph->bidi_sensitive. Combine a glyph of zero + width with the previous one. + (draw_background): Fix bar cursor position on a r2l glyph. + + * font-flt.c (FontLayoutCmdOTF): Move back from internal-gui.h. + (run_rule): Fix place of updating cluster_begin_pos and + cluster_end_pos here. + (run_otf): Don't set left_padding. + + * font-ft.c (adjust_anchor): Type of argument `code' changed. + Caller changed. + (mfont__ft_drive_otf): Renamed back from mfont__ft_drive_gsub. + Fix handling of GPOS. + (mfont__ft_drive_gpos): Delete this function. + + * font.h (mfont__ft_drive_otf): Renamed back from + mfont__ft_drive_gsub. + (mfont__ft_drive_gpos): Delete extern. + + * internal-gui.h (FontLayoutCmdOTF): Move back to font-flt.c. + (MGlyph): Delete member otf_cmd, add member bidi_sensitive. + +2004-07-23 Kenichi Handa + + * draw.c (layout_glyphs): Call mfont__ft_drive_gpos with glyphs of + the same bidi level. + + * font-ft.c (mfont__ft_drive_gpos): Check bidi-level. + +2004-07-22 Kenichi Handa + + * font-flt.c (load_flt): Treat the symbol Mend as end-of-file. + +2004-07-20 Kenichi Handa + + * draw.c (render_glyphs): Fix checking of g->code validity. + + * face.c (mface__realize): Set g.type. + +2004-07-18 Kenichi Handa + + * Makefile.am: Prepend ${top_srcdir} to all *.la in + *_LIBADD/*_LDADD. + + * m17n-gui.c (mframe): Print error message give by dlopen to + stderr. + +2004-07-16 Kenichi Handa + + * draw.c (compose_glyph_string): Improve the way of deciding a + script. For a character that doesn't have script property, use + the last non-latin script. + + * font-ft.c (fc_list): Cancel previous change. + (mfont__ft_init): Add more entries in ft_to_prop_name. + +2004-07-15 Kenichi Handa + + * draw.c (mdraw_glyph_list): Add the width of padding glyphs to + previous or next character glyphs. + +2004-07-14 Kenichi Handa + + * draw.c (compose_glyph_string): Be sure to set codes for glyphs + of type GLYPH_SPACE. + + * fontset.c (mfont__lookup_fontset): If glyph type is + GLYPH_SPACE, get codes for SPACE. + + * internal-gui.h (Mfont): Delete extern. + + * m17n-gui.h (Mfont): Delete duplicated extern. + +2004-07-13 Kenichi Handa + + * font-ft.c (DEVICE_DELTA): New macro. + (adjust_anchor): New function. + (mfont__ft_drive_gsub): Renamed from mfont__ft_drive_otf. Drive + only GSUB. + (mfont__ft_drive_gpos): New function. + + * font-flt.c (FontLayoutCmdOTF): Moved to internal-gui.h. + (FontLayoutContext): Delete member `rfont'. + (run_otf): Set g->otf_cmd. Call + (mfont__flt_run): Don't set ctx.rfont. Call mfont__ft_decode_otf + only whne HAVE_OTF is defined. + + * fontset.c: Include "config.h". + + * internal-gui.h (FontLayoutCmdOTF): Moved from font-flt.c. + (MGlyph): New member otf_cmd. + + * font.h (mfont__ft_drive_gsub): Changed from mfont__ft_drive_otf. + (mfont__ft_drive_gpos): Extern it. + + * face.c: Include "config.h". + + * draw.c (layout_glyphs): Call mfont__ft_drive_gpos. + + * input-gui.c: Include "config.h". + + * plist.c: Include "config.h". + +2004-07-06 Kenichi Handa + + * m17n-gui.c, m17n-gui.h, m17n-gd.c, m17n-X.h, m17n-X.c, + internal-gui.h: Cancel previous changes. + + * m17n-gd.h: Delete it. + + * Makefile.am (libm17n_core_la_LIBADD): New variable. + (libm17n_core_la_LDFLAGS): Add -export-dynamic, move + @XML2_LD_FLAGS@ to above. + (libm17n_la_LIBADD): Add -ldl. + (libm17n_la_LDFLAGS): Add -export-dynamic. + (X_LD_FLAGS): Fix the order of linking. + (libm17n_gui_la_LIBADD): Add ${OPTIONAL_LD_FLAGS}. + (libm17n_gui_la_LDFLAGS): Add -export-dynamic, delete above. + (libm17n_X_la_LDFLAGS): Add -module. + (libm17n_gd_la_SOURCES): Delete m17n-gd.h. + (libm17n_gd_la_LIBADD): Add @GD_LD_FLAGS@. + (libm17n_gd_la_LDFLAGS): Add -module. + (include_HEADERS): Delete m17n-gd.h. + +2004-06-30 Kenichi Handa + + * m17n-gui.c: Adjusted for the change of struct MDeviceDriver. + (MDeviceLibraryInterface): Delete it. + (register_device_library): Delete it. + (m17n__device_library_list): Renamed from device_library_list. + + * m17n-gui.h (M17N_INIT_X, M17N_INIT_GD): New macros. + (m17n_init_win): Adjust prototype. + + * m17n-gd.c: Adjusted for the change of struct MDeviceDriver. + (m17n_init_gd): New function. + + * m17n-gd.h: New file. + + * m17n-X.h: Include . + (m17n_init_X): Extern it. + (M17N_INIT): Redefine it. + + * m17n-X.c: Adjusted for the change of struct MDeviceDriver. + (m17n_init_X): New function. + + * internal-gui.h (m17n__device_library_list): Extern it. + (struct MDeviceDriver): New members initialized, init, and fini. + + * Makefile.am (libm17n_X_la_LIBADD): Add ${X_LD_FLAGS} and + @XFT2_LD_FLAGS@. + (libm17n_X_la_LIBADD): Delete aboves. + (libm17n_gd_la_SOURCES): Add m17n-gd.h. + (libm17n_gd_la_LIBADD): Add @GD_LD_FLAGS@. + (libm17n_gd_la_LDFLAGS): Delete it. + (include_HEADERS): Add m17n-gd.h. + +2004-06-25 Kenichi Handa + + * Makefile.am (libm17n_X_la_LDFLAGS): Cancel previous change. + (libm17n_gd_la_LDFLAGS): Cancel previous change. + + * m17n-gd.c (gd_render): Don't call FT_Get_Char_Index. + + * font-ft.c (fc_list): If FcFontList finds no font, try + FcFontMatch. + + * draw.c (compose_glyph_string): Terminate the last loop after + doing default combining if necessary. + +2004-06-24 Kenichi Handa + + * draw.c (mdraw_glyph_list): Unref gstring->top at the tail. + + * character.c (mchar_define_property): Add const to an arg. + + * charset.c (mchar_define_charset): Add const to an arg. + + * coding.c (MCodingSystem): Add const to an arg or decoder. + (finish_decoding): Add const to an arg. + (decode_coding_charset, decode_coding_utf_8) + (decode_coding_utf_16, decode_coding_utf_32) + (decode_coding_iso_2022, decode_coding_sjis) + (mconv_define_coding): Likewise. + + * m17n-X.c (xft_find_metric): Delete unused variable. + + * m17n-core.h (mchar_define_property, mtext_from_data): Adjust + prototypes. + + * m17n.h (mchar_define_charset, mconv_define_coding): Adjust + prototypes. + + * mtext.c (count_utf_8_chars, count_utf_16_chars) + (mtext__from_data, mtext_from_data): Add `const' to an arg. + + * mtext.h (mtext__from_data): Ajust prototype. + +2004-06-23 Kenichi Handa + + * draw.c (compose_glyph_string): Always get glyph codes by + mface__for_char. + (mdraw_glyph_info): Set info->glyph_code and info->logical_width. + (mdraw_glyph_list): New function. + + * font-flt.c (mfont__flt_run): Be sure to call + rfont->driver->encode_char. + + * font-ft.c (ft_find_metric): Don't call FT_Get_Char_Index. + (ft_encode_char): Delete arg C. + (ft_render): Don't call FT_Get_Char_Index. + + * font.c (mfont__encodable_p): Delete it. + (mfont__encode_char): Be sure to call rfont->driver->encode_char. + + * font.h (struct MFontDriver): Delete arg C of encode_char. + (mfont__encodable_p): Delete extern. + + * m17n-X.c (xfont_encode_char): Delete arg C. + (xft_find_metric): Don't cal FT_Get_Char_Index. + (xft_render): Likewise. + + * m17n-gui.h (MDrawGlyphInfo): New members glyph_code and + logical_width. + (mdraw_glyph_list): Extern it. + + * Makefile.am (libm17n_X_la_LDFLAGS): Don't include ${X_LD_FLAGS}. + +2004-06-22 Kenichi Handa + + * m17n-gui.h (mfontset_lookup): Extern it. + + * m17n-gui.c (m17n_init_win): Delete unnecessary printing. + + * fontset.c (realize_fontset_elements) + (free_realized_fontset_elements, update_fontset_elements): New + functions. + (mfont__realize_fontset): Call realize_fontset_elements. + (mfont__free_realized_fontset): Call free_realized_fontset_elements. + (mfont__lookup_fontset): If a fontset was modified, update + the realized fontset. + (mfontset_modify_entry): Increment fontset->tick. + (mfontset_lookup): New function. + +2004-06-21 Kenichi Handa + + * font-ft.c (mfont__ft_parse_name): Cast the arg to FcNameParse. + + * mtext.c (mtext_dup, mtext_cat, mtext_ncat, mtext_cpy) + (mtext_ncpy, mtext_duplicate): Pay attention to the case that the + length of source text 0. + +2004-06-21 Kenichi Handa + + * mtext.c (INC_POSITION): Use CHAR_UNITS_BY_HEAD_UTF16. + (compare): Pay attention to format other than utf-8. + (copy): Delete this function. + (count_by_utf_8, count_by_utf_16, insert): New functions. + (count_utf_16_chars): Fix handling of a surrogate pair. + (find_char_forward, find_char_backward): Likewise. + (mtext__from_data): Delete unnecessary check. Fix number of + allocated bytes. + (mtext_from_data): Don't count items. + (mtext_ref_char): Optimize the code. + (mtext_set_char): Pay attention to format other than utf-8. + (mtext_cat_char): Likewise. + (mtext_dup): Don't call copy, instead do allocation here. + (mtext_cat): Call insert instead of copy. + (mtext_ncat): Likewise. + (mtext_cpy): Delete character at first and call insert instead of + copy. + (mtext_ncpy): Likewise. + (mtext_copy): Likewise. + (mtext_duplicate): Call insert instead of copy. + (mtext_del): Pay attention to format other than utf-8. + (mtext_ins): Simply call insert. + (mtext_ins_char): Pay attention to format other than utf-8. + (mtext_tok): Call insert instead of copy. + (mtext_text): Call UNIT_BYTES. + + * textprop.c (mtext__adjust_plist_for_change): New function. + + * character.h (USHORT_SIZE, UINT_SIZE, UNIT_BYTES): New macros. + (CHAR_UNITS_UTF16, CHAR_UNITS): Simplified. + (CHAR_UNITS_AT): Fix typo. + (CHAR_UNITS_BY_HEAD): Fix typo. + (STRING_CHAR_AND_UNITS): Fix typo. + + * internal.h (MTEXT_READ_ONLY_P): New macro. + + * mtext.h (mtext__replace): Delete the extern. + (mtext__adjust_foramt): Adjust prototype. + + * plist.c (mplist_deserialize): Adjust the format of MT to utf-8 + if possible. Otherwise make a copy of mmt. + + * coding.c (mconv_decode, mconv_gets): Adjust the format of MT to + utf-8. + +2004-06-18 Kenichi Handa + + * character.h (CHAR_STRING_UTF16): Fix syntax. + +2004-06-16 Kenichi Handa + + * Makefile.am (libm17n_gd_la_LIBADD): Delete it. + (libm17n_X_la_LIBADD): Delete it. + (libm17n_gd_la_LDFLAGS): Don't include @GD_LD_FLAGS@. + + * m17n-X.c (device_open): Add parens in `if' condition. + + * mtext.c (INC_POSITION): Handle format other than utf8 and utf16. + (DEC_POSITION): Likewise. + (compare): Fix case that mt1->format is MTEXT_FORMAT_UTF_8. + +2004-06-15 Kenichi Handa + + * fontset.c (mfont__lookup_fontset): Fix selection of font groups + by language. + + * draw.c (compose_glyph_string): If langauge is specified, call + mface__for_chars even if a text is all latin. Fix condition for + setting non_ascii_found. + + * m17n-X.c (xft_find_metric): Fix setting of g->lbrearing. + + * m17n.h (minput_char_to_key): Delete extern. + + * m17n-gui.h (minput_event_to_key): Cancel previous change. + + * m17n-gui.c (null_device_open): Set several members of frame. + +2004-06-14 Kenichi Handa + + * m17n-gui.h (minput_event_to_key): Delete extern. + + * symbol.h (struct MSymbolStruct): Renamed from MSymbol. + + * m17n-core.h (MSymbol): Defined as "struct MSymbolStruct *". + + * Makefile.am (AM_CPPFLAGS): Refer to @M17NDIR@. + +2004-06-08 Kenichi Handa + + * character.c (mchar_put_prop): Don't increment the ref-count of + record->table. + +2004-06-04 Kenichi Handa + + * m17n-core.c (mdebug__register_object): New function. + (mdebug__unregister_object): Likewise. + + * internal.h (mdebug__register_object, mdebug__unregister_object): + Extern them. + (M17N_OBJECT_REGISTER, M17N_OBJECT_UNREGISTER): Call them + respectively. + + * charset.c (mcharset__load_from_database): Don't call + mconv__register_charset_coding here. + + * coding.c (find_coding): Get a real name from an element of + coding_definition_list. + (mconv__register_charset_coding): Set the real name at the top of + param. + (mcoding__load_from_database): Likewise. + (mconv_list_codings): Adjusted for the above change. + +2004-06-03 Kenichi Handa + + * coding.c (find_coding): Find by canonicalized name. Don't have + to modify the element of coding_definition_list by + mplist__from_plist. + (mconv__define_coding_from_charset): Delete it. + (mconv__register_charset_coding): Canonicalize sym. + (mcoding__load_from_database): Register plist modified by + mplist__from_plist. + + * coding.h (mconv__define_coding_from_charset): Don't extern it. + + * font-ft.c (ft_open): Fix setting of rfont->descent. + +2004-06-02 Kenichi Handa + + * font.c (enum xlfd_field_idx): Moved from m17n-X.c. + (xlfd_parse_name): Merge split_font_name and xfont_parse_name. + (xlfd_unparse_name): Renamed from xfont_build_name. + (mfont__init): Initialized Mfontconfig. + (mfont__free_realized): Unconditionally unref rfont->info. + (mfont__select): Free `this' if it's not best. + (mfont__open): Don't check frame->realized_font_list. + (mfont__parse_name_into_font): New function. + (Mfontconfig): New variable. + (mfont_from_name): Call mfont_parse_name. + (mfont_name): Call mfont_unparse_name. + (mdebug_dump_font): Likewise. + + * font.h (struct MFontDriver): Delete members parse_name and + build_name. + (mfont__ft_parse_name, mfont__ft_unparse_name): Extern them. + (mfont__parse_name_into_font): Extern it. + + * font-ft.c: Include "symbol.h". + (close_ft): Unconditionally free filename and charmap_list of + ft_into. + (ft_open): Duplicate base->filename. Increment ref-count of + ft_info->charmap_list. Free ft_info->charmap_list and + ft_info->filename on error. + (mfont__ft_parse_name, mfont__ft_unparse_name): New functions. + + * m17n-X.c (xfont_driver): Don't include xfont_parse_name and + xfont_build_name. + (enum xlfd_field_idx): Moved to font.c. + (split_font_name, build_font_name): Likewise. + (build_font_list): Call mfont__parse_name_info_font. + (xfont_open): Call mfont__unparse_name. Free name. + (xfont_parse_name, xfont_build_name): Moved to font.c + (xft_select): Prototype deleted. + (device_open): Check HAVE_FREETYPE on using mfont__ft_driver. + Call mfont_pase_name. + + * m17n-gui.c (free_frame): Unref frame->font_driver_list. + (m17n_fini_win): Add check HAVE_FREETYPE on using null_interface. + (mframe): Likewise. + + * m17n-gui.h (mfont_parse_name, mfont_unparse_name, Mfontconfig): + Extern them. + + * Makefile.am (linkgui_LDADD): Add libm17n-X.la and libm17n-gd.la. + +2004-06-01 Kenichi Handa + + * fontset.c (mfontset_modify_entry): Pay attention to the case + that fontset->font_spec_list is NULL. + +2004-05-31 Kenichi Handa + + * m17n-gui.c: Include only when HAVE_DLFCN_H is defined. + + * input.c: Include only when HAVE_DLFCN_H is defined. + + * font.c (mfont__select): Print score the a font for debugging. + + * Makefile.am (libm17n_la_LIBADD): Delete -ldl. + + * coding.c (reset_coding_sjis): Check kanji and kana instead of + kanji_sym and kana_sym. + +2004-05-28 Kenichi Handa + + * Makefile.am (VINFO): New variable. + (libm17n_core_la_LDFLAGS, libm17n_la_LDFLAGS) + (libm17n_gd_la_LDFLAGS): Include ${VINFO}. + +2004-05-27 Kenichi Handa + + The following chanages are to make device dependent functions + accessible only from MDeviceDriver structure, and to add GD and + null device drivers. Font drivers get also device dependent. + + * m17n.c (m17n_init): Increament shell_initialized. + (m17n_fini): Decremented shell_initialized. + + * m17n-misc.h (enum MErrorCode): New element MERROR_GD. + + * m17n-gui.h (Mdevice, Mdisplay, Mscreen, Mdrawable, Mdepth) + (Mwidget, Mcolormap, Mx): Extern them. + + * m17n-gui.c: Include and "config.h". + (free_frame): Call frame->driver->close instead of + mwin__close_device. + (DLOPEN_SHLIB_EXT): New macro. + (MDeviceLibraryInterface): New type. + (device_library_list): New variable. + (register_device_library): New function. + (null_device): New variable. + (null_device_close, null_device_get_prop) + (null_device_realize_face, null_device_free_realized_face): New + function. + (null_driver): New variable. + (null_device_init, null_device_fini, null_device_open): New + functions. + (null_interface): New variable. + (Mfreetype, Mdevice): Declare them. + (m17n_init_win): Increment win_initialized. Initialize Mx, Mgd, + Mfreetype, Mdevice, Mdisplay, Mscreen, Mdrawable, Mdevice, and + Mwin__Close_Device. Register drivers for Mx and Mgd. + (m17n_fini_win): Decremented win_initialized. Call "fini" + function of all opened devices. Don't call mwin__fini. + (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget, Mcolormap): + Declare them here. + (mframe): Handle Mdevice key of PLIST. + (mframe_get_prop): Call frame->device->get_prop instead of + mwin__device_get_prop. + + * m17n-gd.c: New file. + + * m17n-core.h (M17NLIB_MAJOR_VERSION, M17NLIB_MINOR_VERSION) + (M17NLIB_PATCH_LEVEL, M17NLIB_VERSION_NAME): Updated to 1.1.0. + + * m17n-core.c (m17n_init_core): Increate core_initialized. + (m17n_fini_core): Decremented core_initialized. + + * m17n-X.h (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget) + (Mcolormap): Don't extern them here. + + * m17n-X.c (FRAME_DEVICE): New macro. + (FRAME_DISPLAY, FRAME_SCREEN, FRAME_CMAP): Use FRAME_DEVICE. + (free_display_info): Use MPLIST_DO. + (free_device): Free rface->info. + (xft_close): Delete it. + (device_init): Renamed from mwin__init. + (device_fini): Renamed from mwin__fini. + (device_open): Renamed from mwin__open_device. + (x_driver): New variable. + (MXFontInfo): Delete member frame, add member display. + (Mdisplay, Mscreen, Mdrawable, Mdepth, Mwidget, Mcolormap, Mxim): + Don't declare them here. + + * internal-gui.h (MDeviceType): New enum. + (MWDefice): Delete it. + (struct MFrame): Change type of device to void *. New members + device_type, driver, font_driver_list. + (M_CHECK_WRITABLE, M_CHECK_READABLE): New macros. + (MDeviceDriver): New type. + (Mx, Mgd, Mfreetype): Extern them. + (mwin__XXX): Delete all of them. + + * input-gui.c (win_create_ic): Call frame->driver->XXX instead of + mwin__XXX. + (win_destroy_ic): Likewise. + (adjust_window_and_draw): Likewise. + (win_callback): Likewise. + (Mxim): Declare it here. + (minput_event_to_key): Call M_CHECK_READABLE. + + * fontset.c (mfont__lookup_fontset): Delete local variable + font_group. + + * font.h (struct MFontDriver): Delete member close, add members + parse_name and build_name. + (mfont__driver_list): Delete extern. + (mfont__close): Delete extern. + + * font.c (mfont__init): Don't set mfont__driver_list. + (mfont__fini): Don't unref mfont__driver_list. + (mfont__select): Try font drivers in frame->font_driver_list. Set + driver member of a realized font. + (mfont__close): Delete it. + (mfont_from_name, mfont_name, mdebug_dump_font): Call driver + functions of the default frame. + + * font-ft.c (close_ft): Check ft_info->ft_face and work + differently. + (add_font_info): Allocate ft_info by M17N_OBJECT. + (ft_close): Delete it. + (mfont__ft_driver): Don't set ft_close. + (ft_select): Increment ref-count of best_font. + (ft_open): Decremented ref-count of base. On error, call + FT_Done_Face and free ft_info. + (ft_find_metric): Always use XXX_MONO in load_flags. + (ft_render): Fix setting of width. Call + frame->driver->draw_points instead of mwin__draw_points. + (ft_to_prop): Don't set mfont__driver_list. + (mfont__ft_fini): Just unref ft_info. + + * face.c (mface__init): Exchange foreground and background of + mface__default. Call mface_put_prop to set hline of + mface_underline, + (mface__realize): Call frame->driver->XXX instead of mwin__XXX. + (mface__free_realized): Don't call mwin__free_realized_face. + + * draw.c (Mdepth): Don't declare it here. + (draw_background): Call frame->driver->XXX instead of mwin__XXX. + (render_glyphs, render_glyph_string): Likewise. + (mdraw__init): Don't set Mdepth. + (mdraw_text, mdraw_image_text, mdraw_text_with_control): Call + M_CHECK_WRITABLE. + (mdraw_text_per_char_extents): Return 0 on success and -1 on + error. + (mdraw_text_items): Check FRAME is writable. + (mdraw_per_char_extents): Implement body. + + * Makefile.am (lib_LTLIBRARIES): Include libm17n-gui.la and + libm17n-gd.la. + (OPTIONAL_LD_FLAGS): Include @FONTCONFIG_LD_FLAGS@. + (GUI_SOURCES): Delete it. + (libm17n_X_la_SOURCES): Don't include ${GUI_SOURCES}. + (libm17n_gui_la_SOURCES, libm17n_gui_la_LIBADD) + (libm17n_gui_la_LDFLAGS, libm17n_gd_la_SOURCES) + (libm17n_gd_la_LIBADD, libm17n_gd_la_LDFLAGS): New targets. + (linkgui_LDADD): Set to libm17n-gui.la + (linkgui_LDFLAGS): New target. + (SRC): Include ${libm17n_gui_la_SOURCES} and + ${libm17n_gd_la_SOURCES}. + +2004-05-24 Kenichi Handa + + * draw.c (draw_background): Don't draw background even if + rface->face.property[MFACE_BACKGROUND] is not Mnil. + +2004-05-22 Kenichi Handa + + * m17n-X.c (xft_open_font): Fix anti_alias setting. + +2004-05-20 Kenichi Handa + + * m17n-gui.h (MFaceHookFunc): Change this function type to void. + + * m17n-gui.c: Include "plist.h". + (mframe): If PLIST is NULL, initialize it to emply plist. + + * m17n-X.c (build_font_list): Don't set property[MFONT_TYPE]. + (xft_driver): New variable. + (xft_select, close_xft, xft_open_font, xft_open, xft_close) + (xft_find_metric, xft_render): New function. + (mwin__init): Adjusted for the new mfont__driver_list. + (mwin__open_device): Assume arg PARAM is not NULL. Push a newly + generated face to PARAM. + (mwin__realize_face): Fix setting of box colors. Don't call hook + function here. + (mwin__draw_hline): New function. + (mwin__xft_close, mwin__xft_open, mwin__xft_get_metric) + (mwin__xft_render): Delete these function. + + * internal-gui.h (struct MFrame): New member tick. + (struct MGlyphString): New member tick. + (mwin__draw_rect, mwin__draw_empty_boxes): Extern them. + (mwin__xft_open, mwin__xft_close, mwin__xft_get_metric) + (mwin__xft_render): Delete extern. + + * fontset.c (mfont__lookup_fontset): Make the code simpler. + (mfontset): Always increment the reference count of returned + object. + + * font-ft.c (mfont__ft_fini): Don't include here. + (MFTInfo): Moved to font.h. + (ft_iso8859_1_font_list): Delete this variable. + (set_font_info): Don't set font->property[MFONT_TYPE]. + (set_font_info): Don't udpate ft_iso8859_1_font_list. + (add_font_info): Change type to void. + (fc_list): Change anme from xft_list. Caller changed. Include + FC_FOUNDRY and FC_PIXEL_SIZE in FcObjectSet. + (mfont__ft_driver): Change name from ft_driver. Caller changed. + (ft_select): Check HAVE_FONTCONFIG instead of HAVE_XFT2. + (close_ft): Don't call mwin__xft_close. Unref + ft_info->extra_info. + (ft_open): Don't setup ft_info->fontname. Don't call + mwin__xft_open. + (ft_find_metric): Don't call mwin__xft_get_metric. + (ft_encode_char): Call rfont->driver->open instead of ft_open. + (ft_render): Don't check HAVE_XFT2. Don't call mwin__xft_render. + (mfont__ft_init): Adjusted for new mfont__driver_list. + (mfont__ft_fini): Don't unref ft_iso8859_1_font_list. + + * font.c (mfont__driver_list): Make it MPlist. + (mfont__init): Adjust initialization of mfont__driver_list. + (mfont__fini): Free mfont__driver_list. + (mfont__set_spec_from_face): Don't set spec->property[MFONT_TYPE]. + (mfont__select): Adjusted for the new mfont__driver_list. + + * font.h (enum MFontProperty): Delete MFONT_TYPE. + (mfont__drirver_list): Adjust prototype. + (MFTInfo): Move to here from fron.c. Deleve member fontname. + + * face.h (struct MFace): Delete member realized_face_list, add + member frame_list. + (struct MRealizedFace): Delete member need_update + andnofont_rface, add member non_ascii_list. + (mface__update_frame_face): Extern it. + + * face.c (hline_prop_list, box_prop_list, noop_hook): New + variables. + (get_hline_create, get_box_create): New functions. + (find_realized_face): Cancel previous change. Arg RFONT deleted. + Use memcmp. + (free_face): Cancep previous change. Free face->frame_list. + (serialize_hline): Do nothing if hline->width is zero. + (serialize_box): Do nothing if box->width is zero. + (mface__init): Setup all properties of mface__default. + (mface__fini): Free hline_prop_list and box_prop_list. + (mface__realize): Cancel previous change. Update + face->frame_list. Setup rface->non_ascii_list. + (mface__for_chars): Update rface->non_ascii_list. + (mface__free_realized): Free rface->non_ascii_list. + (mface__update_frame_face): New function. + (mface): Initialize face->frame_list. + (mface_copy): Likewise. Just copy MFACE_HLINE and MFACE_BOX + properties. + (mface_merge): Likewise. + (mface_put_prop): If key is Mhline or Mbox, get value by + get_hline_create or get_box_create respectively. + (mface_put_prop): Update frame->tick and call + mface__update_frame_face if necessary. + (mface_update): Do nothing if func is noop_hook. + + * draw.c (render_glyphs): If a font is not found, use + mwin__draw_empty_boxes. + (alloc_gstring): Initialize gstring->tick. + (get_gstring): Check gstring->tick. + +2004-05-17 Kenichi Handa + + * face.c (find_realized_face): Return value changed. If RFONT is + NULL, avoid unnecessary checking. + (free_face): Free face->realized_face_list. + (mface__realize): Adjusted for the change of find_realized_face. + If it returns a realized face that needs update, free it and + realize a new one. Push a new realized face to + frame->realized_face_list instead of appending. + (mface__for_chars): Adjusted for the change of find_realized_face. + Short cut if the required font is in rface->ascii_rface. + (mface_put_prop): Free old value if necessary. Set need_update + member of realized faces to 1. + + * face.h (struct MFace): Delete member tick, add member + realized_face_list. + (struct MRealizedFace): Delete member tick, add member + need_update. + +2004-05-13 Kenichi Handa + + * m17n-X.c (mwin__xft_open): Destroy unnecessary patterns. + +2004-05-12 Kenichi Handa + + * internal-gui.h (mwin__xft_open): Arguemnt name changed. + + * m17n-X.c (mwin__xft_open): Argument changed to fontname and + parse it XftNameParse. + + * font-ft.c (MFTInfo) [HAVE_XFT2]: New member fontname. + (all_fonts_scaned): New variable. + (set_font_info): FAMILY may be Mnil. + (add_font_info): Argument changed. + (xft_list): Call add_font_info in it. + (ft_list): Likewise. + (ft_select): Make it work in the case family is Mnil. + (ft_open) [HAVE_XFT2]: Setup ft_info->fontname. + (mfont__ft_fini): Set all_fonts_scaned to 0. + + * fontset.c (mfont__lookup_fontset): Don't repeatedly try a font + that is failed to open. + +2004-05-10 Kenichi Handa + + * m17n-X.c (mwin__xft_render): Don't use anti-alias if the + device's depth is 1 (i.e. monochrome). + + * Makefile.am (OPTIONAL_LD_FLAGS): Change the order of elements + to work around the problem of libtool. + + * font-ft.c: Include . + (Municode_bmp, Municode_full, Miso10646_1, Miso8859_1): New + variables. + (mfont__ft_init): Initialize them. + (ft_iso8859_1_font_list): New variable. + (set_font_info): Detect a font containing iso8859-1 glyphs and + register it in ft_iso8859_1_font_list. If the font is not + scalable, assume it as BDF or PCF font and setup SIZE and RESY + properties of the font from its properties. + (add_font_list): If the font is not scalable, check if it is BDF + or PCF font. If not, ignore it. + (ft_select): If FAMILY is Mnil, return NULL only if the requested + registry is not iso8859-1. + (ft_select) [not HAVE_XFT2]: If FAMILY is Mnil, select one from + ft_iso8859_1_font_list. + (ft_find_metric): If the font is not scalable, assume it as BDF + or PCF, and get a metric from its properties. + (mfont__ft_fini): Free ft_iso8859_1_font_list. + +2004-05-07 Kenichi Handa + + * Makefile.am (libm17n_la_LIBADD): Include -ldl. + (libm17n_la_LDFLAGS): Delete it. + (noinst_PROGRAMS): Renamed from bin_PROGRAMS. + (install-binPROGRAMS, uninstall-binPROGRAMS): Delete them. + +2004-05-06 Kenichi Handa + + * draw.c (compose_glyph_string): Fix previous change. + +2004-04-30 Kenichi Handa + + * font-ft.c (ft_list): Delete unused variable `result'. + (ft_render): Fix for the case that bitmap.pitch < bitmap.width. + +2004-04-27 Kenichi Handa + + * m17n-X.c: Include config.h + [HAVE_XFT2]: Include . + (GCInfo) [HAVE_XFT2]: New member xft_color_fore, xft_color_back. + (MWDevice) [HAVE_XFT2]: New member xft_draw. + (FRAME_CMAP, FRAME_VISUAL): New macros. + (free_device) [HAVE_XFT2]: Destroy device->xft_draw. + (xfont_driver): Make it static. + (mwin__open_device) [HAVE_XFT2]: Setup device->xft_draw. + (mwin__realize_face) [HAVE_XFT2]: Setup info->xft_color_fore and + info->xft_color_back. + (MXftFontInfo) [HAVE_XFT2]: New type. + (mwin__xft_close) [HAVE_XFT2]: New function. + (mwin__xft_open) [HAVE_XFT2]: New function. + (mwin__xft_get_metric) [HAVE_XFT2]: New function. + (mwin__xft_render) [HAVE_XFT2]: New function. + + * internal-gui.h [HAVE_FREETYPE]: Include FT_FREETYPE_H. + (mwin__xft_open, mwin__xft_close) [HAVE_FREETYPE]: New externs. + (mwin__xft_get_metric, mwin__xft_render) [HAVE_FREETYPE]: New + externs. + + * font.h [HAVE_FREETYPE]: Include FT_FREETYPE_H. + + * font-ft.c: Don't include FT_FREETYPE_H here. + [HAVE_XFT2]: Include . + (fontconfig_initialized, fc_config) [HAVE_XFT2]: New variables. + (MFTInfo): New member charmap_index. + (MFTInfo) [HAVE_XFT2]: New member xft_info. + (check_otf_filename): Renamed from check_filename. Return value + changed. + (ft_set_property): This function deleted. + (set_font_info): New function. + (add_font_list): Argument changed. Add multiple fonts. + (xft_list) [HAVE_XFT2]: New function. + (ft_list) [not HAVE_XFT2]: New function. + (ft_select): Add code for Xft. + (close_ft): Likewise. + (ft_open): Likewise. + (ft_find_metric): Likewise. + (ft_encode_char): Likewise. + (ft_render): Likewise. + + * makefile.am (OPTIONAL_LD_FLAGS): Include @XFT2_LD_FLAGS@. + +2004-04-26 Kenichi Handa + + * textprop.c (mtext_attach_property): Declare the return type as + `int'. + +2004-04-21 Kenichi Handa + + * Makefile.am (OPTIONAL_LD_FLAGS): Include @XFT2_LD_FLAGS@ + +2004-04-09 Kenichi Handa + + * font-flt.c (struct): New members seq_beg, seq_end, seq_from, + seq_to. + (load_command): Setup above members. + +2004-04-05 Kenichi Handa + + * m17n-X.c (xfont_encode_char): Fix checking of byte1 and byte2. + +2004-03-30 Kenichi Handa * m17n-X.c (xfont_encode_char): Return MCHAR_INVALID_CODE if code >= 0x10000.