*** empty log message ***
[m17n/libotf.git] / ChangeLog
index 97ef321..7a3fd7a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,654 @@
+2010-03-19  Kenichi Handa  <handa@m17n.org>
+
+       * configure.ac: Versions changed to 0.9.11pre.
+
+2010-01-22  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfdrive.c (lookup_gsub): Change the meaning of the arg
+       alternate_subst.
+
+2009-12-17  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfdrive.c (gstring_subst): Update g->MarkAttachGlass.
+       (lookup_gsub): Update g->GlyphClass and g->MarkAttachGlass.
+       (OTF_drive_gdef): Don't return error even if GDEF table doesn't
+       exist.
+
+2009-11-30  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfdrive.c (OTF_drive_gsub_internal): Fix previous change.
+       (OTF_drive_gpos_internal): Likewise.
+
+2009-11-27  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfdrive.c (gstring_subst): Set positioning_type to 1.
+       (lookup_gsub): If a feature is applied to a glyph, set its
+       positioning_type to 1.
+       (OTF_drive_gsub_internal): Only if a feature is applied to a
+       glyph, set its feature log.
+       (OTF_drive_gpos_internal): Likewise.
+
+2009-11-24  Kenichi Handa  <handa@m17n.org>
+
+       * src/otf.h (OTF_drive_gsub_with_log, OTF_drive_gpos_with_log):
+       Extern them.
+       (OTF_get_drive_log): Delete extern.
+
+       * src/internal.h (OTF_DriveLog): Delete it.
+       (set_drive_log, get_drive_log): Delete externs.
+
+       * src/otfopen.c (OTF_InternalData): Delete the member drive_log.
+       (set_drive_log, get_drive_log): Delete them.
+
+       * src/otfdrive.c (USHORT): New macro for "unsigned short".
+       (prepare_drive_log): Delete it.
+       (setup_lookup_flags): Change the type of lookup_flags.
+       (lookup_gsub): Change the return value.
+       (gstring_insert_for_gpos): Adjusted for the change of
+       OTF_Glyph.positioning_type.
+       (print_glyph_positioning): Likewise.
+       (lookup_gpos): Likewise. Change the return value.
+       (OTF_drive_gsub_internal): New arg "with_log".  Adjusted for the
+       change of OTF_Glyph.positioning_type.
+       (OTF_drive_gsub): Fix args to OTF_drive_gsub_internal.
+       (OTF_drive_gsub_with_log): New function.
+       (OTF_drive_gpos_internal): New arg "with_log".  Adjusted for the
+       change of OTF_Glyph.positioning_type.
+       (OTF_drive_gpos): Fix args to OTF_drive_gpos_internal.
+       (OTF_drive_gpos2): Likewise.
+       (OTF_drive_gpos_with_log): New function.
+       (OTF_drive_gsub_alternate): Fix args to OTF_drive_gsub_internal.
+       (OTF_iterate_gsub_feature): Adjusted for the change of
+       OTF_Glyph.positioning_type.
+       (OTF_get_drive_log): Delete it.
+
+       * example/otfview.c (update_seq_area): Call
+       OTF_driver_gsub_with_log and OTF_driver_gpos_with_log.  Show which
+       features are applied.
+       (get_features): Fix previous change.
+
+2009-11-24  mule  <handa@m17n.org>
+
+       * src/otferror.h: Removed.  All codes move to internal.h.
+
+       * src/internal.h: New file.
+
+       * src/otfdrive.c: Include internal.h instead of otferror.h.
+       (prepare_drive_log): New function.
+       (OTF_drive_gpos_internal): Make it static.
+       (OTF_get_drive_log): New function.
+
+       * src/otfopen.c: Include internal.h instead of otferror.h.
+       (OTF_InternalData): New member drive_log.
+       (set_drive_log, get_drive_log): New functions.
+
+       * src/otf.h (OTF_get_drive_log): Extern it.
+
+       * example/otfview.c (get_features): Adjusted for the change of
+       FeatureRec->features.
+       (FeatureProc): Don't re-order FeatureRec->features.
+
+2009-11-18  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfview.c (update_seq_area): Fix previous change.
+
+       * src/otfdrive.c (match_ids): New arg "direction".  Callers changed.
+       (match_ids_backward): Delete it.
+       (match_chain_ids): Adjusted for the change fo match_ids.
+       (match_classes): New arg "direction".  Callers changed.
+       (match_chain_classes): Adjusted for the change fo match_classes.
+       (match_coverages): New arg "direction".  Callers changed.
+       (match_chain_coverages): Adjusted for the change fo match_coverages.
+
+       * src/otfopen.c (read_header_part): Handle TTC (TrueType
+       Collection).
+       (OTF_open): Accept "ttc".
+
+2009-11-13  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfdrive.c (match_ids_backward): New function.
+       (match_chain_ids): Call match_ids_backward for backward matching.
+
+       * example/otfview.c (code, code_label, code_list): New variables.
+       (update_seq_area): Display code list.
+       (create_widgets): Create widgets code, code_label, code_list.
+
+2009-11-09  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfdrive.c (get_anchor): Delete it.
+       (get_class_def_auto): Make it static.
+
+2009-11-07  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfview.c (update_seq_area): Accumulate adjustments by
+       ValueRecord.
+
+       * src/otfdrive.c (print_anchor, print_glyph_positioning): New
+       functions.
+       (lookup_gpos): Improve debug info printing.
+
+2009-11-04  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfview.c (update_seq_area): Call OTF_driver_gdef after
+       OTF_driver_cmap.
+
+       * src/otfopen.c (debug_flag): New variable
+       (set_debug_flag): New function.
+       (OTF_open, OTF_open_ft_face): Check debug flag if not yet done.
+
+       * src/otfdrive.c (debug_flag): Extern it.
+       (lookup_gsub): Print debugging info if requested.  Don't ignore a
+       glyph that already has positioning_type.  Be sure to increment
+       gidx.
+
+2009-10-08  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfopen.c (read_cmap_table): Fix bug of handling
+       seg->idDelta.
+       (OTF_close): Free app_data before free all memories.
+
+2009-10-02  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfopen.c (OTF_ApplicationData): New type.
+       (OTF_InternalData): New member app_data.
+       (OTF_close): Free OTF_InternalData->app_data.
+       (OTF_put_data, OTF_get_data): New functions.
+
+       * src/otf.h (OTF_put_data, OTF_get_data): Extern them.
+
+2009-09-29  Kenichi Handa  <handa@m17n.org>
+
+       * src/otf.h (OTF_Feature_Callback): New type.
+       (OTF_iterate_gsub_feature): Extern it.
+
+       * src/otfdrive.c (OTF_iterate_gsub_feature): New function.
+
+2009-08-13  Kenichi Handa  <handa@m17n.org>
+
+       * Version 0.9.10 released.
+
+2009-08-13  Kenichi Handa  <handa@m17n.org>
+
+       * src/otf.h (LIBOTF_VERSION): Changed to "0.9.10".
+       (LIBOTF_RELEASE_NUMBER): Changed to 10.
+
+       * configure.ac: Versions changed to 0.9.10.
+
+2009-07-23  Kenichi Handa  <handa@m17n.org>
+
+       * src/otf.h (OTF_cmap): New member table_index;
+
+       * src/otfopen.c (read_cmap_table): Set cmap->table_index.
+
+       * src/otfdrive.c (lookup_encoding_0, lookup_encoding_2)
+       (lookup_encoding_4, lookup_encoding_6, lookup_encoding_8)
+       (lookup_encoding_10, lookup_encoding_12): Arguments and return
+       value changed.
+       (lookup_cmap_func): New function type.
+       (lookup_cmap_func_table): New variable.
+       (get_GlyphID): New function.
+       (get_uvs_glyph): Call get_GlyphID instead of directly accessing
+       cmal->unicode_table.
+       (OTF_drive_cmap, OTF_drive_cmap2): Call one of lookup functions in
+       lookup_cmap_func_table.
+
+2009-07-10  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfview.c (update_seq_area): Drive features of the
+       correct script and langsys.
+
+2009-03-03  Kenichi Handa  <handa@m17n.org>
+
+       * Version 0.9.9 released.
+
+2009-03-03  Kenichi Handa  <handa@m17n.org>
+
+       * src/otf.h (LIBOTF_VERSION): Changed to "0.9.9".
+       (LIBOTF_RELEASE_NUMBER): Changed to 9.
+
+2009-03-02  Kenichi Handa  <handa@m17n.org>
+
+       * configure.ac: Versions changed to 0.9.9.
+
+2009-02-26  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfopen.c (free_stream): Check stream->buf before freeing
+       it.
+       (read_gdef_table): Do nothing if stream->buf is NULL.
+       (read_header_part): If a font doesn't have a GDEF table, make a
+       pseudo stream.
+
+       * src/otfdrive.c (glyph_class_table): New variable.
+       (get_class_def_auto): New function.
+       (OTF_drive_gdef): If a font doesn't have a GDEF table, use
+       get_class_def_auto.
+
+2009-02-25  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfopen.c (get_table_info): Always succeed for GDEF table.
+
+       * example/otfview.c (main): If ! otf, don't setup sub14.
+
+2008-12-31  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfdrive.c (check_cmap_uvs): Update the member
+       MGlyph.f.index.to.
+
+2008-12-29  Kenichi Handa  <handa@m17n.org>
+
+       * src/otf.h (OTF_get_variation_glyphs): Extern it..
+
+       * src/otfdrive.c (OTF_get_variation_glyphs): New function.
+
+       * example/otfview.c (uvs_area, uvs_label): New variables.
+       (sub14, uvs): New variable.
+       (update_uvs_area): New function.
+       (update_seq_area): Set `glyph_id' member only when no charmap is
+       used.
+       (update_render_area): Handle a variation selector.
+       (UVSProc): New function.
+       (RenderProc): Call update_uvs_area if the font is OpenType.
+       (create_widgets): Create uvs_area widget if the font has variation
+       selector.
+       (main): Setup sub14. Set font in gc_set.
+
+2008-12-24  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfdrive.c (get_uvs_glyph): Complete the code.
+
+2008-12-23  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfview.c (update_seq_area): Call OTF_drive_cmap.
+
+       * example/otfdump.c (dump_cmap_table): Fix previous change.
+
+       * src/otfdrive.c (lookup_encoding_4): Fix typo.
+       (get_uvs_glyph): Argument changed.
+       (check_cmap_uvs): Adjusted for the above change.
+
+       * src/otfopen.c (READ_UINT24): New macro.
+       (read_cmap_uvs_table): Argument changed.  Complete the code.
+       (read_cmap_table): Adjusted for the above change.  Fix typo.
+
+       * src/otf.h (OTF_cmapSegment): Fix typo.
+       (OTF_EncodingSubtable4): Fix typo.
+       (OTF_UVSMapping): New type.
+       (OTF_UnicodeValueRange): New type.
+       (OTF_VariationSelectorRecord): New type.
+       (OTF_EncodingSubtable14): Fix previous change.
+
+2008-12-22  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfdump.c (dump_cmap_table): Handle format 14.
+
+       * src/otfdrive.c (check_cmap_uvs): New function.  Not yet completed.
+       (UVS_P): New macro.
+       (OTF_drive_cmap): Check UVS (Unicode Variation Sequences).
+       (get_uvs_glyph): New function.
+
+       * src/otfopen.c (read_cmap_uvs_table): New function.
+       (read_cmap_table): Handle format 14 (Unicode Variation Sequences).
+       Not yet completed.
+
+       * src/otf.h (OTF_EncodingSubtable14): New type.
+       (OTF_EncodingSubtable): New union member f.f14.
+
+2008-12-03  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfview.c (update_seq_area): Call OTF_drive_gpos2
+       instead of OTF_drive_gpos.  Handle the accumulated positioning.
+
+       * src/otfdrive.c (setup_lookup_flags): The last argument changed
+       to lookup_flags.  Just set the elements to 1 or 0.
+       (gstring_insert_for_gpos): New function.
+       (lookup_gpos): New arg accumulate.  Insert pseudo glyphs to
+       accumulate positioning if necessary.
+       (OTF_drive_gsub_internal): Adjusted for the change of
+       setup_lookup_flags.
+       (OTF_drive_gpos_internal): Renamed from OTF_drive_gpos.  Adjusted
+       for the change of setup_lookup_flags and lookup_gpos.
+       (OTF_drive_gpos): Just call OTF_drive_gpos_internal with
+       accumulate == 0.
+       (OTF_drive_gpos2): New function.
+
+       * src/otf.h (OTF_drive_gpos2): Extern it.
+
+2008-11-27  Simon Zamecnik  <zamecnik@ui42.sk>  (tiny change)
+
+       * src/otfdrive.c (setup_lookup_indices): New arg LangSys.
+       (OTF_drive_gsub_internal, OTF_drive_gpos): Adjusted for the above
+       change.
+
+2008-07-01  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfopen.c (make_stream, setup_stream)
+       (make_stream_from_ft_face, free_stream, read_offset_table): Make
+       them static.
+
+2008-06-29  Kenichi Handa  <handa@m17n.org>
+
+       * Version 0.9.8 released.
+
+2008-06-29  Kenichi Handa  <handa@m17n.org>
+
+       * configure.ac: Versions changed to 0.9.8.
+
+       * example/otfview.c (DEVICE_DELTA): Handle an invalid table.
+
+       * example/otfdump.c (dump_device_table): Handle an invalid table.
+
+       * src/otfopen.c (read_device_table): Accept an invalid table.
+
+2007-12-28  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * Version 0.9.7 released.
+
+2007-12-28  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * configure.ac: Versions changed to 0.9.7.
+
+2007-12-20  Kenichi Handa  <handa@ni.aist.go.jp>
+
+       * src/otfdrive.c (gstring_subst): If a glyph is changed, set the
+       character code to 0, and update GlyphClass.
+
+2007-10-29  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfdump.c (dump_chain_class_set_list): Ignore an element
+       whose offset is zero.
+
+2007-09-06  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfdrive.c (lookup_gpos): Ignore mark glyphs while
+       processing GPOS_MarkBase1.
+
+2007-08-17  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfdrive.c (lookup_gpos): Fix handling of IGNORED_GLYPH.
+
+2007-08-06  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfdrive.c (gstring_subst): If otf->cmap is NULL, set
+       character code of a glyph to 0.
+       (OTF_drive_gsub): If otf->cmap is NULL, try to load it.
+
+2007-07-13  Kenichi Handa  <handa@m17n.org>
+
+       * Version 0.9.6 released.
+
+2007-07-13  Kenichi Handa  <handa@m17n.org>
+
+       * configure.ac: Updated to 0.9.6.
+
+       * src/otf.h (LIBOTF_VERSION): Updated to 0.9.6.
+       (LIBOTF_RELEASE_NUMBER): Updated to 6.
+
+2007-07-09  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfdrive.c (gstring_subst): Remove a glyph if it is ignored
+       because of 0 glyph ID.
+
+2007-01-09  Kenichi Handa  <handa@m17n.org>
+
+       * src/otf.h: Adjusted for C++.  Adjusted many prototypes to
+       contain `const' qualifiers.
+
+       * src/otferror.h (otf__error): Add `const' qualifier.
+
+       * src/otferror.c (otf__error, OTF_perror): Add `const' qualifiers.
+
+       * src/otfdrive.c: Add many `const' qualifiers.
+
+       * src/otfopen.c: Add many `const' qualifiers.
+
+2006-07-25  Kenichi Handa  <handa@m17n.org>
+
+       * Version 0.9.5 released.
+
+2006-07-25  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfdrive.c (gstring_subst): Setup all members of struct
+       OTF_Glyph.
+       (lookup_gsub): Call gstring_subst with correct args.
+
+2006-07-19  Kenichi Handa  <handa@m17n.org>
+
+       * libotf.pc.in: New file.
+
+       * Makefile.am (pkgconfigdir, pkgconfig_DATA): New variables.
+
+       * configure.ac: Updated to 0.9.5.
+       (FREETYPE_INC, FREETYPE_LD_FLAGS): AC_SUBST them.
+       (AC_CONFIG_FILES): Include libotf.pc.
+
+       * libotf-config.in: Include @FREETYPE_INC@ and @FREETYPE_LD_FLAGS@
+       in output.
+
+2006-07-18  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfview.c (bitmap): Array increated to cover full
+       Unicode.
+       (fontindex): New variable.
+       (update_glyph_area): Adjusted for the change of `bitmap'.
+       (GlyphProc): Likewise.
+       (help): New function.
+       (main): Accept a new 2nd arg INDEX.
+
+2006-07-14  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfopen.c: Include FT_TRUETYPE_TABLES_H.
+       (make_stream): New arg name.  Caller changed.
+       (setup_stream): Delete arg name.
+       (make_stream_from_ft_face): New function.
+       (read_cmap_table): Fix typo (`i'->`j').
+       (read_header_part): New arg face.  Caller changed.
+       (OTF_open_ft_face): New function.
+
+       * src/otf.h (LIBOTF_VERSION): Updated to 0.9.5.
+       (LIBOTF_RELEASE_NUMBER): Updated to 5.
+       (OTF_open_ft_face): Extern it.
+
+2006-07-11  Kenichi Handa  <handa@m17n.org>
+
+       * src/otf.h (OTF_ERROR_FT_FACE): New macro.
+
+2006-07-07  Kenichi Handa  <handa@m17n.org>
+
+       * src/otf.h (OTF_Anchor): Distinguish XDeviceTable and
+       YDeviceTable.
+
+2006-06-23  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfview.c (update_glyph_area): Don't use none_pixmap for
+       glyph index 0 if charmap_index is negative.
+
+       * example/otftobdf.c (main): Call dump_image with the arg full as 0.
+
+       * src/otfopen.c (read_table_directory): Fix setting of tag name.
+
+2006-02-15  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfview.c (DumpProc): Fix handling of non-existing glyph.
+       (create_otf_script_widgets): Fix typo; gsub -> gpos.
+
+2006-02-10  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfopen.c (read_table_directory): Fix setting of
+       OTF_TableDirectory->name.
+
+2006-02-07  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfview.c (DumpProc): Fix calculation of x/y offsets.
+
+2006-01-27  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfview.c (DumpProc): Completely re-written to produce
+       PostScirpt instead of PBM.
+
+2005-12-22  Kenichi Handa  <handa@m17n.org>
+
+       * Version 0.9.4 released.
+
+       * src/otf.h (LIBOTF_VERSION): Updated to "0.9.4"
+       (LIBOTF_RELEASE_NUMBER): Update to 4.
+
+2005-12-22  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfview.c (update_glyph_area): Use non_pixmap for
+       non-existing glyphs.
+
+2005-11-22  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfview.c (main) [! HAVE_X11_XAW_COMMAND_H]: Fix args to
+       fprintf.
+
+       * configure.ac: Use AC_CHECK_HEADERS instead of AC_CHECK_HEADER.
+
+2005-09-02  Kenichi Handa  <handa@m17n.org>
+
+       * example/Makefile.am (otfview_LDFLAGS): Use @X11_XT_XAW_XMU@
+       instead of directory listing libraries.
+
+       * autogen.sh: Run automake with -a -c.
+
+       * configure.ac (AC_INIT): Version updated to 0.9.4.
+       (AM_INIT_AUTOMAKE): Likewise.
+       (X11_XT_XAW_XMU): New variable.  Set to a library list for Xaw if
+       X11 is available.
+
+2005-07-11  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfdrive.c (OTF_drive_gsub_internal): Call OTF_get_table
+       unconditionally.
+       (OTF_drive_gpos): Likewise.
+
+       * src/otfopen.c (read_gsub_gpos_table): Set *table->address earlier.
+       (OTF_check_features): Set script_list and feature_list according
+       to gsubp.  Even if failed in getting features, if all requested
+       features are negative, return 1.
+
+2005-06-29  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfview.c (get_features): Don't return "*" even if all
+       features are being used.
+
+       * src/otfdrive.c (OTF_drive_gsub_internal): Initialize
+       positioning_type member to 0.
+       (OTF_drive_gpos): Likewise.
+
+2005-06-24  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfopen.c (OTF_check_features): If the MSB of a feature tag
+       is set, treat it as a negation flag.
+
+2005-06-14  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfopen.c (OTF_check_features): If gsubp is zero, check gpos
+       scripts and features.  Treat feature tag 0 as wildcard.
+
+2005-05-26  Kenichi Handa  <handa@m17n.org>
+
+       * example/otfview.c (langsys_tag): New variable.
+       (get_features): Check if rec->langsys and rec->features are not
+       NULL.
+       (update_seq_area): Delete unused var.
+       (setup_feature_rec): Setup rec->langsys correctly.  Don't allocate
+       rec->features here.
+       (compose_script_langsys, decompose_script_langsys): New functions.
+       (ScriptProc): Fix handling of the arg call_data.
+       (create_otf_script_widgets): Check all langsys.  Allocate
+       gsub.features and gpos.features here.
+       (create_otf_widgets): Delete unused var.
+
+       * example/otflist.c (print_gsub_gpos_info): Don't print
+       superfluous space.
+       (main): Delete unused variables.
+
+2005-05-23  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfopen.c (OTF_check_features): Fix indexing to
+       feature_list->Feature.
+       (OTF_tag): Handle the case that the length of NAME is short.
+
+2005-05-21  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfopen.c (OTF_get_features): If table_info doesn't have
+       stream nor address, return -1.
+
+2005-05-19  Kenichi Handa  <handa@m17n.org>
+
+       * src/otf.h (OTF_get_scripts, OTF_get_features,
+       OTF_check_features): Extern them.
+
+       * src/otfopen.c (enum OTF_ReaderFlag): New enum.
+       (OTF_TableInfo): Change the prototype of the member `reader'.
+       Caller changed.
+       (read_head_table, read_name_table, read_cmap_table)
+       (read_gdef_table): Adjusted for the change of OTF_TableInfo.
+       (read_feature_list): Seek the stream at first.
+       (read_gsub_gpos_table): Adjusted for the change of OTF_TableInfo.
+       Pay attention to the arg `flag'.
+       (read_gsub_table, read_gpos_table): Adjusted for the change of
+       OTF_TableInfo.
+       (OTF_get_table): Likewise.
+       (OTF_get_scripts, OTF_get_features, OTF_check_features): New
+       functions.
+
+2005-05-13  Kenichi Handa  <handa@m17n.org>
+
+       * src/otfdrive.c (lookup_gsub): Increment `gidx' correctly in the
+       case of GSUB_Ligature1.
+
+2005-02-18  Kenichi Handa  <handa@m17n.org>
+
+       * src/otferror.c (error_message): Allocate it statically.
+       (otf__error): Don't allocate error_message dynamically.
+       (OTF_perror): Adjust for the above changes.
+
+2005-02-17  Kenichi Handa  <handa@m17n.org>
+
+       * example/otflist.c (filter): Accept extentions ".ttc" and ".TTC".
+
+       * src/otfopen.c (read_cmap_table): Delete unsed var.
+
+       * src/otfdrive.c (gstring_subst): Correctly set temp.f.index.
+       (lookup_gsub): Fix updating gidx.
+       (gstring_subst): New arg OTF.  Callers changed.
+       (lookup_gsub): New arg OTF.  Callers changed.
+
+2004-12-27  Kenichi Handa  <handa@m17n.org>
+
+       * Version 0.9.3 released.
+
+2004-11-19  Kenichi Handa  <handa@m17n.org>
+
+       * libotf-config: Update to version "0.9.3".
+
+       * configure.ac (AC_INIT): Update to 0.9.3.
+       (AM_INIT_AUTOMAKE): Likewise.
+
+       * src/otf.h (LIBOTF_VERSION): Update to "0.9.3".
+       (LIBOTF_RELEASE_NUMBER): Update to 3.
+
+2004-11-09  Kenichi Handa  <handa@m17n.org>
+
+       * src/otf.h (OTF_Glyph): Delete member alternate_set.
+       (OTF_drive_gsub_alternate): Extern it.
+
+       * src/otfdrive.c (lookup_gsub): New arg alternate_subst.  Callers
+       changed.
+       (OTF_drive_gsub_internal): Renamed from OTF_drive_gsub.
+       (OTF_drive_gsub): Just call OTF_drive_gsub_internal.
+       (OTF_drive_gsub_alternate): New function.
+
+       * example/otfview.c (alt_subst, do_alternate_subst): New
+       variables.
+       (update_seq_area): If do_alternate_subst, call
+       OTF_drive_gsub_alternate.  Correctly set advance.  Don't check
+       g->alternate_set.
+       (AltSubstProc): New function.
+       (create_widgets): Create AltSubst widget.
+
 2004-11-08  Kenichi Handa  <handa@m17n.org>
 
        * example/otfview.c: Include "config.h".
        * Version 0.9 released.
 
 \f
-Copyright (C) 2003, 2004
+Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
   National Institute of Advanced Industrial Science and Technology (AIST)
   Registration Number H15PRO112