Blob Blame History Raw
2012-09-18  Kenichi Handa  <>

	* Version 0.9.13 released.

2012-04-27  Kenichi Handa  <>

	* Change versions to 0.9.13.

2012-04-23  Kenichi Handa  <>

	* src/otfdrive.c (get_class_def_auto): Return 0 if C is negative.

2011-02-11  Kenichi Handa  <>

	* src/otfopen.c (read_anchor_array): Do not read an anchor if its
	offset is zero.
	(read_ligature_attach): Fix return code on error.
	(read_ligature_array): Do not read an anchor if its offset is
	(read_lookup_subtable_gpos): Fix typo.

	* example/otfdump.c (indent_spaces): Delete it.
	(IPRINT): Do not use indent_spaces.
	(dump_anchor): Do nothing if anchor->offset is zero.

2010-11-05  Elias Pipping  <>  (tiny change)

	* example/ (bin_PROGRAMS): Add otfview conditionally.


2010-10-04  Kenichi Handa  <>

	* Version 0.9.12 released.

2010-09-22  Kenichi Handa  <>

	* src/otfopen.c (OTF_check_features): If language is specified but
	not found, return 0 instead of using the default langsys.

2010-09-16  Kenichi Handa  <>

	* src/internal.h: Include alloca.h if available.

	* example/otftobdf.c: Include alloca.h if available.

	* example/otfview.c: Include alloca.h if available.

	* example/otflist.c: Include alloca.h if available.

2010-09-13  Martin Gieseking  <>  (tiny change)

	* example/otftobdf.c (main): Fix checking number of arguments.

2010-09-10  Kenichi Handa  <>

	* src/otfopen.c (OTF_check_features): If LANGUAGE is specified but
	not found in a font, return 0.

2010-05-18  Kenichi Handa  <>

	* example/otfview.c (create_otf_script_widgets): Create a box
	widget for each script in a limited-width box.

2010-04-21  Kenichi Handa  <>

	* Versions changed to 0.9.12.

	* src/otfopen.c (OTF_check_features): Even if no feature is
	specified, check script support.

	* src/otf.h (LIBOTF_VERSION): Changed to 0.9.12
	(LIBOTF_RELEASE_NUMBER): Changed to 12.

2010-03-30  Kenichi Handa  <>

	* Versions changed to 0.9.11.

2010-03-23  Kenichi Handa  <>

	* src/ (libotf_la_SOURCES): Include internal.h.

2010-03-19  Kenichi Handa  <>

	* src/ (libotf_la_SOURCES): Exclude otferror.h.

	* Versions changed to 0.9.11pre.

2010-01-22  Kenichi Handa  <>

	* src/otfdrive.c (lookup_gsub): Change the meaning of the arg

2009-12-17  Kenichi Handa  <>

	* 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

2009-11-30  Kenichi Handa  <>

	* src/otfdrive.c (OTF_drive_gsub_internal): Fix previous change.
	(OTF_drive_gpos_internal): Likewise.

2009-11-27  Kenichi Handa  <>

	* 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  <>

	* 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
	(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_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  <>

	* 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
	(FeatureProc): Don't re-order FeatureRec->features.

2009-11-18  Kenichi Handa  <>

	* 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
	(OTF_open): Accept "ttc".

2009-11-13  Kenichi Handa  <>

	* 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  <>

	* src/otfdrive.c (get_anchor): Delete it.
	(get_class_def_auto): Make it static.

2009-11-07  Kenichi Handa  <>

	* example/otfview.c (update_seq_area): Accumulate adjustments by

	* src/otfdrive.c (print_anchor, print_glyph_positioning): New
	(lookup_gpos): Improve debug info printing.

2009-11-04  Kenichi Handa  <>

	* example/otfview.c (update_seq_area): Call OTF_driver_gdef after

	* 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

2009-10-08  Kenichi Handa  <>

	* src/otfopen.c (read_cmap_table): Fix bug of handling
	(OTF_close): Free app_data before free all memories.

2009-10-02  Kenichi Handa  <>

	* 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  <>

	* 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  <>

	* Version 0.9.10 released.

2009-08-13  Kenichi Handa  <>

	* src/otf.h (LIBOTF_VERSION): Changed to "0.9.10".
	(LIBOTF_RELEASE_NUMBER): Changed to 10.

	* Versions changed to 0.9.10.

2009-07-23  Kenichi Handa  <>

	* 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
	(OTF_drive_cmap, OTF_drive_cmap2): Call one of lookup functions in

2009-07-10  Kenichi Handa  <>

	* example/otfview.c (update_seq_area): Drive features of the
	correct script and langsys.

2009-03-03  Kenichi Handa  <>

	* Version 0.9.9 released.

2009-03-03  Kenichi Handa  <>

	* src/otf.h (LIBOTF_VERSION): Changed to "0.9.9".

2009-03-02  Kenichi Handa  <>

	* Versions changed to 0.9.9.

2009-02-26  Kenichi Handa  <>

	* src/otfopen.c (free_stream): Check stream->buf before freeing
	(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

2009-02-25  Kenichi Handa  <>

	* 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  <>

	* src/otfdrive.c (check_cmap_uvs): Update the member

2008-12-29  Kenichi Handa  <>

	* 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
	(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
	(main): Setup sub14. Set font in gc_set.

2008-12-24  Kenichi Handa  <>

	* src/otfdrive.c (get_uvs_glyph): Complete the code.

2008-12-23  Kenichi Handa  <>

	* 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  <>

	* 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  <>

	* 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
	(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  <>  (tiny change)

	* src/otfdrive.c (setup_lookup_indices): New arg LangSys.
	(OTF_drive_gsub_internal, OTF_drive_gpos): Adjusted for the above

2008-07-01  Kenichi Handa  <>

	* 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  <>

	* Version 0.9.8 released.

2008-06-29  Kenichi Handa  <>

	* 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  <>

	* Version 0.9.7 released.

2007-12-28  Kenichi Handa  <>

	* Versions changed to 0.9.7.

2007-12-20  Kenichi Handa  <>

	* src/otfdrive.c (gstring_subst): If a glyph is changed, set the
	character code to 0, and update GlyphClass.

2007-10-29  Kenichi Handa  <>

	* example/otfdump.c (dump_chain_class_set_list): Ignore an element
	whose offset is zero.

2007-09-06  Kenichi Handa  <>

	* src/otfdrive.c (lookup_gpos): Ignore mark glyphs while
	processing GPOS_MarkBase1.

2007-08-17  Kenichi Handa  <>

	* src/otfdrive.c (lookup_gpos): Fix handling of IGNORED_GLYPH.

2007-08-06  Kenichi Handa  <>

	* 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  <>

	* Version 0.9.6 released.

2007-07-13  Kenichi Handa  <>

	* Updated to 0.9.6.

	* src/otf.h (LIBOTF_VERSION): Updated to 0.9.6.

2007-07-09  Kenichi Handa  <>

	* src/otfdrive.c (gstring_subst): Remove a glyph if it is ignored
	because of 0 glyph ID.

2007-01-09  Kenichi Handa  <>

	* 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  <>

	* Version 0.9.5 released.

2006-07-25  Kenichi Handa  <>

	* src/otfdrive.c (gstring_subst): Setup all members of struct
	(lookup_gsub): Call gstring_subst with correct args.

2006-07-19  Kenichi Handa  <>

	* New file.

	* (pkgconfigdir, pkgconfig_DATA): New variables.

	* Updated to 0.9.5.
	(AC_CONFIG_FILES): Include libotf.pc.

	in output.

2006-07-18  Kenichi Handa  <>

	* example/otfview.c (bitmap): Array increated to cover full
	(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  <>

	* 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.
	(OTF_open_ft_face): Extern it.

2006-07-11  Kenichi Handa  <>

	* src/otf.h (OTF_ERROR_FT_FACE): New macro.

2006-07-07  Kenichi Handa  <>

	* src/otf.h (OTF_Anchor): Distinguish XDeviceTable and

2006-06-23  Kenichi Handa  <>

	* 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  <>

	* example/otfview.c (DumpProc): Fix handling of non-existing glyph.
	(create_otf_script_widgets): Fix typo; gsub -> gpos.

2006-02-10  Kenichi Handa  <>

	* src/otfopen.c (read_table_directory): Fix setting of

2006-02-07  Kenichi Handa  <>

	* example/otfview.c (DumpProc): Fix calculation of x/y offsets.

2006-01-27  Kenichi Handa  <>

	* example/otfview.c (DumpProc): Completely re-written to produce
	PostScirpt instead of PBM.

2005-12-22  Kenichi Handa  <>

	* Version 0.9.4 released.

	* src/otf.h (LIBOTF_VERSION): Updated to "0.9.4"

2005-12-22  Kenichi Handa  <>

	* example/otfview.c (update_glyph_area): Use non_pixmap for
	non-existing glyphs.

2005-11-22  Kenichi Handa  <>

	* example/otfview.c (main) [! HAVE_X11_XAW_COMMAND_H]: Fix args to


2005-09-02  Kenichi Handa  <>

	* example/ (otfview_LDFLAGS): Use @X11_XT_XAW_XMU@
	instead of directory listing libraries.

	* Run automake with -a -c.

	* (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  <>

	* src/otfdrive.c (OTF_drive_gsub_internal): Call OTF_get_table
	(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  <>

	* 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  <>

	* 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  <>

	* 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  <>

	* example/otfview.c (langsys_tag): New variable.
	(get_features): Check if rec->langsys and rec->features are not
	(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  <>

	* src/otfopen.c (OTF_check_features): Fix indexing to
	(OTF_tag): Handle the case that the length of NAME is short.

2005-05-21  Kenichi Handa  <>

	* src/otfopen.c (OTF_get_features): If table_info doesn't have
	stream nor address, return -1.

2005-05-19  Kenichi Handa  <>

	* 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_get_table): Likewise.
	(OTF_get_scripts, OTF_get_features, OTF_check_features): New

2005-05-13  Kenichi Handa  <>

	* src/otfdrive.c (lookup_gsub): Increment `gidx' correctly in the
	case of GSUB_Ligature1.

2005-02-18  Kenichi Handa  <>

	* 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  <>

	* 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  <>

	* Version 0.9.3 released.

2004-11-19  Kenichi Handa  <>

	* libotf-config: Update to version "0.9.3".

	* (AC_INIT): Update to 0.9.3.
	(AM_INIT_AUTOMAKE): Likewise.

	* src/otf.h (LIBOTF_VERSION): Update to "0.9.3".

2004-11-09  Kenichi Handa  <>

	* 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
	(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
	(update_seq_area): If do_alternate_subst, call
	OTF_drive_gsub_alternate.  Correctly set advance.  Don't check
	(AltSubstProc): New function.
	(create_widgets): Create AltSubst widget.

2004-11-08  Kenichi Handa  <>

	* example/otfview.c: Include "config.h".

2004-11-02  Kenichi Handa  <>

	* example/otfview.c (MAX_FEATURE_COUNT): Delete this macro.
	(FeatureElement): New type.
	(FeatureRec): New element num_features and parent.
	(update_seq_area): Show alternate glyphs if any.
	(setup_feature_rec): (Re)allocate rec->features.  Create widgets.
	(create_otf_widgets): Don't create widgets here.

	* example/otfdump.c (dump_cmap_table): Support Format 2 of cmap.

	* src/otfopen.c (read_cmap_table): Support Format 2 of cmap.

	* src/otfdrive.c (lookup_gsub): For Format 3, set

	* src/otf.h (OTF_EncodingSubtable2): New members subHeaderCount
	and glyphIndexCount.
	(OTF_Glyph): New member alternate_set.

2004-10-27  Kenichi Handa  <>

	* example/otfview.c: Pay attention to HAVE_X11_XAW_COMMAND_H.

	* Check existence of X11/Xaw/Command.h.

2004-09-03  Kenichi Handa  <>

	* src/otfdrive.c (GSTRING_INSERT): Fix size of reallocating
	(lookup_gpos): For LooupType 5, fix finding a base/ligature glyph.

	* example/otfview.c (update_seq_area): Use malloc and free for

2004-08-13  Kenichi Handa  <>

	* Version 0.9.2 released.

2004-08-13  Kenichi Handa  <>

	* src/otfdrive.c (IGNORED_GLYPH): Fix checking of MarkAttachClass.

	* Updated to 0.9.2.

	* src/otf.h (LIBOTF_VERSION): Updated to 0.9.2.

2004-08-09  Kenichi Handa  <>

	* Version 0.9.1 released.

2004-08-09  Kenichi Handa  <>

	* src/otfdrive.c (setup_lookup_indices): Fix handling of "*" in

	* example/otfview.c (update_seq_area): Call OTF_drive_gdef only
	when otf is not NULL.

2004-08-07  Kenichi Handa  <>

	* example/otfview.c (FeatureProc): Highlight selected features by
	changing border width, not by changing fore and back color.
	(setup_feature_rec): Setup internal height and width of widgets.
	(create_otf_widgets): Likewise.

	* src/otfdrive.c (IGNORED_GLYPH): New macro.
	(gstring_subst, match_ids, match_chain_ids, match_classes)
	(match_chain_classes, match_coverages, match_chain_coverages):
	(lookup_gsub): Likewise.  Include OTF_MarkAttachmentType in flag.
	(lookup_gpos): Likewise.

2004-08-06  Kenichi Handa  <>

	* src/otfdrive.c (lookup_gsub): Fix handling of Extension lookup.
	(lookup_gpos): Support Extension lookup.
	(gstring_subst): Fix previous change.

2004-08-05  Kenichi Handa  <>

	* src/otf.h (enum OTF_LookupFlagBit): Fix OTF_IgnoreMarks.

	* example/otfview.c (update_seq_area): Fix sign of yoff.
	Support more positioning_type.

	* example/otfdump.c (dump_lookup_subtable_gpos): Add support for
	LookupType 5.

	* src/otfopen.c (read_ligature_attach): Fix for the case that an
	offset is NULL.

	* src/otfdrive.c (lookup_gpos): Add support for LookupType 5.
	Fix handling of flag.
	(gstring_subst): Fix previous change.

2004-08-04  Kenichi Handa  <>

	* example/otfview.c (bidi, reversed): New variables.
	(update_seq_area): Call OTF_drive_gdef.  If reversed is nonzero,
	reorder glyphs properly.  Create pixmap if necessary.  Handle
	OTF_XAdvance and OTF_XAdvDevice.
	(BidiProc): New function.
	(create_widgets): Setup bidi.

	* src/otfdrive.c (gstring_subst): New arg flag.  Caller changed.
	Ignore glyphs specified in flag.
	(match_ids, match_classes, match_coverages): Likewise.
	(match_chain_ids, match_chain_classes, match_chain_coverages): New
	arg flag.
	(lookup_gsub): Fix handling of LookupFlag.
	(lookup_gpos): Likewise.  Support more LookupType.

	* src/otf.h (OTF_LookupFlagIgnoreMask): New macro.

2004-07-29  Kenichi Handa  <>

	* example/otfview.c (create_widgets): Fix width of index glyphs..

2004-07-26  Kenichi Handa  <>

	* src/otfopen.c (read_value_record): Fix typo.

	* src/otfdrive.c (lookup_gpos): Don't apply a GPOS feature twice.
	(OTF_drive_gpos): Initialize values positioning_type memeber.
	(OTF_drive_gsub): Fix previous change.

2004-07-24  Kenichi Handa  <>

	* src/otfdrive.c (gstring_subst): Set `c' and `f.index' of
	(OTF_drive_gsub): Iniialize f.index member of OTF_Glhph.

	* src/otf.h (OTF_Glyph): New union member u.index.

2004-07-23  Kenichi Handa  <>

	* example/otfview.c: Big change to implement selection of script.

2004-07-12  Kenichi Handa  <>

	* example/otfview.c: Big change to implement driving OpenType
	tables (GSUB and GPOS).

	* src/otfdrive.c (get_langsys): If script is NULL, use the first
	one in script_list.

2004-07-09  Kenichi Handa  <>

	* src/otfdrive.c (lookup_gpos): Ignore glyphs whose ID is 0 (fix
	for the case of LookupType 2).

2004-07-08  Kenichi Handa  <>

	* src/otfopen.c (read_class_set_list): Allocate the array *set

2004-07-07  Kenichi Handa  <>

	* src/otfdrive.c (lookup_gsub): For LookupType 5 Subformat 2, if
	ClassSet is not defined, do nothing.

2004-06-29  Kenichi Handa  <>

	* src/otfdrive.c (lookup_gsub): Fix handling of lookup type 6
	format 3.

2004-05-28  Kenichi Handa  <>

	* example/otflist.c: Include <sys/types.h> and "config.h".
	(next_file): New function.
	(main): Call next_file.

	* Check functions scandir and alphasort.

2004-05-06  Kenichi Handa  <>

	* example/otftobdf.c (registry): New variable.
	(dump_header): Include registry in the font name.
	(main): Handle the encoding arg of the format M-N.  Without this
	arg, generate a font with raw-encoding.

	* src/otfdrive.c: Include "config.h".  Delete '//' style comments.
	(lookup_encoding_0, lookup_encoding_2, lookup_encoding_4)
	(lookup_encoding_6, lookup_encoding_8, lookup_encoding_10)
	(lookup_encoding_12, OTF_drive_cmap2): New functions.

	* src/otfopen.c (read_name): Argument changed.  Set
	OTF_NameRecord->ascii.  If possible, convert Unicode sequence to
	(read_name_table): Adjusted for the change of read_name.
	(read_cmap_table): Signal an error (not-yet-supported) if format
	is 2.  Support for formats, 8, 10, 12.
	(read_value_record): Clear value_record at first.
	(read_lookup_subtable_gpos): Fix for the case subFormat is 1 and
	(OTF_open): Check file name extension.

	* example/otflist.c: Include <otf.h>.
	(FATAL_ERROR): New macro.
	(print_tag, print_gsub_gpos_info, help_and_exit): New functions.
	(main): Handle -h, --help, -l args.  Prefer family/style names
	extracted by the otf library.

2004-03-30  Kenichi Handa  <>

	* src/otfopen.c (read_value_record): Clear value_record at
	(read_lookup_subtable_gpos): For Lookup Type 1, read Coverage at

2004-03-29  Kenichi Handa  <>

	* example/otfdump.c (dump_lookup_subtable_gsub): For Lookup Type
	7, fix arg to dump_lookup_subtable_gsub.
	(dump_lookup_subtable_gpos): Support Lookup Type 9.

	* Run automake after autoheader.

	* src/otfopen.c (OTF_close): Free otf->filename.

2004-02-01  Kenichi Handa  <>

	* Version 0.9 released.

Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
  National Institute of Advanced Industrial Science and Technology (AIST)
  Registration Number H15PRO112

This file is part of the m17n library.

The m17n library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2.1 of
the License, or (at your option) any later version.

The m17n library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with the m17n library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307, USA.