*** empty log message ***
[m17n/m17n-lib.git] / src / ChangeLog
index 57cb3b5..64d50e0 100644 (file)
@@ -1,3 +1,520 @@
+2005-09-12  Kenichi Handa  <handa@m17n.org>
+
+       * input.c (parse_action_list): Handle the case that the arg is a
+       key sequence (MText or MPlist).
+       (take_action_list): Likewise.
+       (shift_state): Shorter debug message.
+       (handle_key): Terminate a debug message by "\n".
+       (reset_ic): Don't take initial actions here.
+       (minput_open_im): Print a debug message.
+       (minput_close_im): Likewise.
+       (minput_create_ic): Likewise.
+       (minput_destroy_ic): Likewise.
+
+2005-09-09  TAKAHASHI Naoto  <ntakahas@m17n.org>
+
+       * mtext.c:
+       (mtext_lowercase, mtext_titlecase, mtext_uppercase): Change API.
+
+2005-09-07  TAKAHASHI Naoto  <ntakahas@m17n.org>
+       * character.c:
+       Add "cased", "soft-dotted", and "case-mapping" in mchar__init ().
+
+       * character.c: Add Japanese documentation for mchar_get_prop_table ().
+
+2005-09-06  TAKAHASHI Naoto  <ntakahas@m17n.org>
+
+       * mtext.c (tricky_chars, *cased, *soft_dotted, *case_mapping)
+       (MCharTable *combining_class, Mlt, Mtr, Maz, gr03A3, lt0049,
+       (lt004A, lt012E, lt00CC, lt00CD, lt0128, tr0130, tr0049, tr0069):
+       New variables.
+       (init_case_conversion): New function.
+       (CASE_CONV_INIT, REPLACE, DELETE, LOOKUP): New macros.
+       (uppercase_precheck, lowercase_precheck, final_sigma)
+       (after_soft_dotted, more_above, before_dot, after_i)
+       (mtext_uppercase, mtext_titlecase, mtext_lowercase): New functions.
+
+2005-09-05  TAKAHASHI Naoto  <ntakahas@m17n.org>
+
+       * plist.c (read_mtext_element): Fix previous change.
+
+2005-09-05  Kenichi Handa  <handa@m17n.org>
+
+       * plist.c (read_mtext_element): Handle \uXXXX notation.
+
+       * 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  <handa@m17n.org>
+
+       * 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  <handa@m17n.org>
+
+       * 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  <handa@m17n.org>
+
+       * 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  <handa@m17n.org>
+
+       * 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  <handa@m17n.org>
+
+       * 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  <handa@m17n.org>
+
+       * 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  <handa@m17n.org>
+
+       * 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  <handa@m17n.org>
+
+       * 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 <fontconfig/fcfreetype.h> 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  <handa@m17n.org>
+
+       * 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  <handa@m17n.org>
+
+       * input-gui.c (minput__win_init): Don't change the value of
+       minput_driver.
+
+2005-05-16  Kenichi Handa  <handa@m17n.org>
+
+       * 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  <handa@m17n.org>
 
        * m17n-X.c (mwin__close_device): Fix arg to M17N_OBJECT_UNREF.