2005-10-13  David Turner  <david@freetype.org>

    * include/freetype/cache/ftcmanag.h, src/cache/ftcint.h,
    src/cache/ftcbasic.c, src/cache/ftccmap.c, src/cache/ftccache.c,
    src/cache/ftcglyph.c, src/cache/ftcimage.c, src/cache/ftcmanag.c,
    src/cache/ftcmru.c, src/cache/ftcsbits.c, src/cache/rules.mk:

      make various fields of the @FTC_ManagerRec structure private, i.e.
      un-accessible from client applications, introducing the new private
      "src/cache/ftcint.h" header

    * include/freetype/cache/ftcmru.h, src/cache/ftcmru.c: implement
    the new convenience function FTC_MruList_RemoveOldest()

    * include/freetype/cache/ftcmanag.h, src/cache/ftcint.h,
    src/cache/ftcmanag.h:

      introducing FTC_RETRY_LOOP and FTC_RETRY_END and corresponding
      functions.

      moving "ftc_node_destroy" to private headers, it's now a local,
      non-public, function

    * MANY FILES... Mergin with main branch (HEAD)

    * src/cache/ftcmanag.c (FTC_Manager_Reset): add missing cache flush

    * src/cache/ftcback.h, src/cache/rules.mk: removed obsolete ftcback.h
    which was revived by the merge operation (blooody cvs)

    * src/cache/ftcsbit.c: using FTC_RETRY_LOOP ... FTC_RETRY_END

2005-09-21  David Turner  <david@freetype.org>

    * massive redesign of the cache sub-system internals.
    in order to simplify the code and even slightly improve
    performance (ftbench shows a 3% improvements in the SBit
    and Image caches)


2005-09-05  Werner Lemberg  <wl@gnu.org>

	Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has
	a hinting engine of its own.

	* include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro.

	* src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
	(cid_face_init), src/truetype/ttobjs.c (tt_face_init)
	[TT_CONFIG_OPTION_BYTECODE_INTERPRETER], src/type1/t1objs.c
	(T1_Face_Init), src/type42/t42objs.c (T42_Face_Init)
	[TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Update face flags.

	* docs/CHANGES: Document it.

2005-09-27  Werner Lemberg  <wl@gnu.org>

	* builds/unix/freetype2.m4: Add license exception so that the file
	can be used in any other autoconf script.

2005-09-26  David Turner  <david@freetype.org>

	* src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad
	computation of the `vertical' flag, causing ugly things in LCD mode
	and others.

2005-09-23  David Turner  <david@freetype.org>

	* src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that
	prevented internal hint mode bitflags from being computed correctly.

	* src/base/Jamfile: Adding src/base/ftgxval.c.

	* src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
	src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, src/gxvalid/gxvkern.c,
	src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
	src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
	src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
	src/gxvalid/gxvmort5.c, src/gxvalid/gxvmorx.c,
	src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
	src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx5.c,
	src/gxvalid/gxvopbd.c, src/gxvalid/gxvprop.c,
	src/truetype/ttgload.c: Remove _many_ compiler warnings when
	compiling with Visual C++ at maximum level (/W4).

	* src/autofit/afangles.c (af_angle_atan): Replaced CORDIC-based
	implementation with one using lookup tables.  This simple thing
	speeds up glyph loading by 18%, according to ftbench!

	* src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for
	`get_sfnt' and `load_sfnt' module interfaces.

2005-09-22  Werner Lemberg  <wl@gnu.org>

	* docs/CHANGES: Mention SING Glyphlet support.

2005-09-22  David Turner  <david@freetype.org>

	* src/base/Jamfile: Disable compilation of ftgxval module
	temporarily.


2005-09-19  David Somers  <dsomers@omz13.com>

	* freetype2/src/sfnt/ttload.c (sfnt_dir_check): Modified to allow a
	font to have no `head' table if tables `SING' and `META' are
	present; this is to support `SING Glyphlet'.

	`SING Glyphlet' is an extension to OpenType developed by Adobe
	primarily to facilitate adding supplemental glyphs to an OpenType
	font (with emphasis on, but not necessariy limited to, gaiji to a
	CJK font).  A SING Glyphlet Font is an OpenType font that contains
	the outline(s), either in a `glyf' or `CFF' table, for a glyph;
	`cmap', `BASE', and `GSUB' tables are present with the same format
	and functionaliy as a regular OpenType font; there are no `name',
	`head', `OS/2', and `post' tables; there are two new tables, `SING'
	which contains details about the glyphlet, and `META' which contains
	metadata.

	Further information on the SING Glyphlet format can be found at:

	  http://www.adobe.com/products/indesign/sing_gaiji.html

	* freetype2/include/freetype/ttags.h (TTAG_SING, TTAG_META): New
	macros for the OpenType tables `SING' and `META'.  These two tables
	are used in SING Glyphlet Format fonts.

2005-09-09  Werner Lemberg  <wl@gnu.org>

	* src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set
	FT_FACE_FLAG_KERNING which has been commented out erroneously.

	* docs/CHANGES: Document it.

2005-09-05  Werner Lemberg  <wl@gnu.org>

	Fixes for `make multi' and using C++ compiler.

	* gxvalid/gxvcommn.c (gxv_set_length_by_ushort_offset,
	gxv_set_length_by_ulong_offset, gxv_array_getlimits_byte,
	gxv_array_getlimits_ushort): Declare with FT_LOCAL_DEF.
	(gxv_compare_ranges): Make it static.
	(gxv_LookupTable_fmt0_validate, gxv_LookupTable_fmt2_validate,
	gxv_LookupTable_fmt4_validate, gxv_LookupTable_fmt6_validate,
	gxv_LookupTable_fmt8_validate, gxv_LookupTable_validate): Improve
	trace messages.
	(gxv_StateArray_validate, gxv_XStateArray_validate): s/class/clazz/.
	(GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
	GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Move to
	gxvcommn.h.

	* gxvalid/gxvcommn.h: Add prototypes for
	gxv_StateTable_subtable_setup, gxv_XStateTable_subtable_setup,
	gxv_XStateTable_validate, gxv_array_getlimits_byte,
	gxv_array_getlimits_ushort, gxv_set_length_by_ushort_offset,
	gxv_set_length_by_ulong_offset, gxv_odtect_add_range,
	gxv_odtect_validate.
	(GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
	GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Moved from
	gxvcommn.c.

	* src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
	gxv_bsln_parts_fmt1_validate): Improve trace messages.

	* gxvalid/gxvfeat.c: Split off predefined registry stuff to...
	* gxvalid/gxvfeat.h: New file.

	* gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace
	message.

	* gxvalid/gxvkern.c (GXV_kern_Dialect): Add KERN_DIALECT_UNKNOWN.
	(gxv_kern_subtable_fmt1_valueTable_load,
	gxv_kern_subtable_fmt1_subtable_setup,
	gxv_kern_subtable_fmt1_entry_validate): Fix C++ compiler errors.
	(gxv_kern_coverage_validate): Use KERN_DIALECT_UNKWOWN.
	Improve trace message.
	(gxv_kern_validate_generic): Fix C++ compiler error.
	Improve trace message.
	(gxv_kern_validate_classic): Fix C++ compiler error.

	* gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare
	with FT_LOCAL_DEF.

	* gxvalid/gxvmort1.c
	(gxv_mort_subtable_type1_substitutionTable_load,
	gxv_mort_subtable_type1_subtable_setup): Fix C++ compiler errors.
	(gxv_mort_subtable_type1_substTable_validate): Improve trace
	message.
	(gxv_mort_subtable_type1_validate): Declare with FT_LOCAL_DEF.

	* gxvalid/gxvmort2.c (gxv_mort_subtable_type2_opttable_load,
	gxv_mort_subtable_type2_subtable_setup,
	gxv_mort_subtable_type2_ligActionOffset_validate,
	gxv_mort_subtable_type2_ligatureTable_validate): Fix C++ compiler
	errors.
	(gxv_mort_subtable_type2_validate): Declare with FT_LOCAL_DEF.

	* gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare
	with FT_LOCAL_DEF.

	* gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup,
	gxv_mort_subtable_type5_InsertList_validate): Fix C++ compiler
	errors.
	(gxv_mort_subtable_type5_validate): Declare with FT_LOCAL_DEF.

	* gxvalid/gxvmort.c: Include gxvfeat.h.
	(gxv_mort_featurearray_validate, gxv_mort_coverage_validate):
	Declare with FT_LOCAL_DEF.
	(gxv_mort_subtables_validate, gxv_mort_validate): Improve trace
	messages.

	* gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove.

	* gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare
	with FT_LOCAL_DEF.

	* gxvalid/gxvmorx1.c
	(gxv_morx_subtable_type1_substitutionTable_load,
	gxv_morx_subtable_type1_subtable_setup,
	gxv_morx_subtable_type1_entry_validate,
	gxv_morx_subtable_type1_substitutionTable_validate): Fix C++
	compiler errors.
	(gxv_morx_subtable_type1_validate): Declare with FT_LOCAL_DEF.

	* gxvalid/gxvmorx2.c (gxv_morx_subtable_type2_opttable_load,
	gxv_morx_subtable_type2_subtable_setup,
	gxv_morx_subtable_type2_ligActionIndex_validate,
	gxv_morx_subtable_type2_ligatureTable_validate): Fix C++ compiler
	errors.
	(gxv_morx_subtable_type2_validate): Declare with FT_LOCAL_DEF.
	Fix typo.

	* gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare
	with FT_LOCAL_DEF.

	* gxvalid/gxvmorx5.c (gxv_morx_subtable_type5_insertionGlyph_load,
	gxv_morx_subtable_type5_subtable_setup): Fix C++ compiler error.
	(gxv_morx_subtable_type5_validate): Declare with FT_LOCAL_DEF.

	* gxvalid/gxvmorx.c (gxv_morx_subtables_validate,
	gxv_morx_validate): Improve trace message.

	* gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler
	warnings.
	(gxv_opbd_validate): Improve trace message.

	* gxvalid/gxvprop.c: Decorate constants with `U' and `L' where
	appropriate.
	(gxv_prop_zero_advance_validate, gxv_prop_validate): Improve trace
	message.

	* gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused
	parameter.  Update all callers.
	(gxv_trak_validate): Improve trace message.

	* rules.mk (GXV_DRV_H): Add gxvfeat.h.

2005-09-01  Werner Lemberg  <wl@gnu.org>

	* src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'.

	* src/gxvalid/gxmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE),
	src/gxvalid/gxmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix
	typo.

	* src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
	src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx4.c,
	src/gxvalid/gxvmorx5.c, src/gxvalid/gxvmort.c: Improve trace
	messages.
	Decorate constants with `U' and `L' where appropriate.
	Fix compiler warnings.

2005-08-31  Werner Lemberg  <wl@gnu.org>

	* src/truetype/ttgload.c (load_truetype_glyph): Fix typo.

	* src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message.

	* src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'.

	* src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c,
	src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmod.c,
	src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
	src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
	src/gxvalid/gxvmort5.c, src/gxvalid/gxvmort.c: Improve trace
	messages.
	Decorate constants with `U' and `L' where appropriate.
	Fix compiler warnings.

2005-08-30  Werner Lemberg  <wl@gnu.org>

	* src/gxvalid/README: Revised.
	* src/gxvalid/gxvbsln.c: Fix compiler warnings.
	* src/gxvalid/gxvcommn.c: Fix compiler warnings.
	(gxv_XEntryTable_validate, gxv_compare_ranges): Remove unused
	parameter.  Update all callers.
	Improve trace messages.
	Some formatting.

2005-08-29  Werner Lemberg  <wl@gnu.org>

	* include/freetype/freetype.h, include/freetype/ftchapters.h: Add
	a preliminary section with some explanations about user allocation.

	* src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
	Don't abort if there are no data types, functions, etc., in a
	section.
	Print synopsis only if we have a data type, function, etc.

	* docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
	docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
	docs/VERSION.DLL, docs/formats.txt: Revised, formatted.

2005-08-28  George Williams  <gww@silcom.com>

	* src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed.
	(load_truetype_glyph): Limit recursion depth by `maxComponentDepth'.

2005-08-25  J. Ali Harlow  <ali@avrc.city.ac.uk>

	* builds/unix/freetype2.in (CFlags): Add missing directory.

2005-08-24  Werner Lemberg  <wl@gnu.org>

	* docs/CHANGES: Mention gxvalid module.

2005-08-23  Werner Lemberg  <wl@gnu.org>

	* src/autofit/aflatin.c (af_latin_metrics_scale): Initialize
	render mode properly.  Reported by chris@dokein.co.uk.

2005-08-23  suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>

	Add gxvalid module to validate TrueType GX/AAT tables.

	Modifications on existing files:

	* Jamfile: Register gxvalid module.
	* src/base/Jamfile: Register ftgxval.c.
	* src/base/rule.mk: Register ftgxval.c.
	* docs/INSTALL.ANY: Register gxvalid/gxvalid.c.

	* include/freetype/config/ftheader.h (FT_GX_VALIDATE_H): New macro
	to include gxvalid header file.
	* include/freetype/config/ftmodule.h: Register gxv_module_class.

	* include/freetype/ftchapters.h: Add comment about gx_validation.
	* include/freetype/ftotval.h: Change keyword FT_VALIDATE_XXX
	to FT_VALIDATE_OTXXX to co-exist with gxvalid.
	* include/freetype/tttags.h: Add tags for TrueType GX/AAT tables.

	* include/freetype/internal/ftserv.h (FT_SERVICE_GX_VALIDATE_H): New
	macro for gxvalid service.
	* include/freetype/internal/fttrace.h: Add trace facilities for
	gxvalid.

	New files on existing directories:

	* include/freetype/internal/services/svgxval.h: Registration of
	validation service for TrueType GX/AAT and classic kern table.
	* include/freetype/ftgxval.h: Public API definition to use gxvalid.
	* src/base/ftgxval.c: Public API of gxvalid.

	New files under src/gxvalid/:

	* src/gxvalid/Jamfile src/gxvalid/README src/gxvalid/module.mk
	src/gxvalid/rules.mk src/gxvalid/gxvalid.c src/gxvalid/gxvalid.h
	src/gxvalid/gxvbsln.c src/gxvalid/gxvcommn.c src/gxvalid/gxvcommn.h
	src/gxvalid/gxverror.h src/gxvalid/gxvfeat.c src/gxvalid/gxvfgen.c
	src/gxvalid/gxvjust.c src/gxvalid/gxvkern.c src/gxvalid/gxvlcar.c
	src/gxvalid/gxvmod.c src/gxvalid/gxvmod.h src/gxvalid/gxvmort.c
	src/gxvalid/gxvmort.h src/gxvalid/gxvmort0.c src/gxvalid/gxvmort1.c
	src/gxvalid/gxvmort2.c src/gxvalid/gxvmort4.c src/gxvalid/gxvmort5.c
	src/gxvalid/gxvmorx.c src/gxvalid/gxvmorx.h src/gxvalid/gxvmorx0.c
	src/gxvalid/gxvmorx1.c src/gxvalid/gxvmorx2.c src/gxvalid/gxvmorx4.c
	src/gxvalid/gxvmorx5.c src/gxvalid/gxvopbd.c src/gxvalid/gxvprop.c
	src/gxvalid/gxvtrak.c: New files, gxvalid body.

2005-08-21  Werner Lemberg  <wl@gnu.org>

	* src/truetype/ttgload.c (TT_Load_Glyph): Only translate outline
	to (0,0) if bit 1 of the `head' table isn't set.  This improves
	rendering of buggy fonts.

2005-08-20  Chia I Wu  <b90201047@ntu.edu.tw>

	* src/truetype/ttdriver.c (Load_Glyph): Don't check the validity of
	ttmetrics here.  TrueType fonts with only sbits always have
	ttmetrics.valid set to false.

	* src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is
	valid before loading outline glyph.

	* src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak.

2005-08-20  Werner Lemberg  <wl@gnu.org>

	* src/sfnt/ttload.c (tt_face_load_metrics_header): Ignore missing
	`hhea' table for SFNT Mac fonts.  Change based on a patch by
	mpsuzuki@hiroshima-u.ac.jp.

2005-08-20  Masatake YAMATO  <jet@gyve.org>

	* src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead
	of ft_setjmp.

2005-08-19  Werner Lemberg  <wl@gnu.org>

	* src/truetype/ttgload.c (load_truetype_glyph): Fix compiler
	warnings.

2005-08-16  Chia I Wu  <b90201047@ntu.edu.tw>

	* src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright
	messages.

2005-08-16  Chia I Wu  <b90201047@ntu.edu.tw>

	* src/truetype/ttinterp.c, src/truetype/ttinterp.h: Remove original
	TT_Done_Context and rename TT_Destroy_Context to TT_Done_Context
	with slight changes.
	Update all callers.
	(TT_New_Context): Now takes TT_Driver argument directly.
	Update all callers.

	* src/truetype/ttobjs.h (tt_slot_init): New function.
	* src/truetype/ttobjs.c (tt_driver_init): Initialize execution
	context here.
	(tt_slot_init): New function to create extra points for the internal
	glyph loader.  We then use it directly, instead of face's glyph
	loader, when loading glyph.

	* src/truetype/ttdriver.c (tt_driver_class): Use tt_slot_init for
	glyph slot initialization.
	(Load_Glyph): Load flag dependencies are handled here.  Return error
	if size is NULL.

	* src/truetype/ttgload.c: Heavy cleanup and refactoring.
	(org_to_cur): Removed.
	(TT_Load_Simple_Glyph): Call FT_GlyphLoader_CheckPoints.
	(TT_Hint_Glyph): New funcion to hint a zone, prepared by caller.
	(TT_Process_Simple_Glyph): s/load/loader/.
	Use loader->pp values instead of recalculation.
	Use TT_Hint_Glyph.
	No need to save/restore loader->stream before and after
	TT_Vary_Get_Glyph_Deltas now.
	(TT_LOADER_SET_PP): New macro to calculate and set the four phantom
	points.
	(load_truetype_glyph): Never set exec->glyphSize to 0.  This closes
	Savannah bug #13107.
	Forget glyph frame before calling TT_Process_Simple_Glyph.
	Use TT_LOADER_SET_PP.
	Scale all four phantom points.
	Split off some functionality to ...
	(TT_Process_Composite_Component, TT_Process_Composite_Glyph): These
	new functions.
	(TT_Load_Glyph): Set various fields of `glyph' here, not in
	load_truetype_glyph and compute_glyph_metrics.
	Split off some functionality to ...
	(load_sbit_image, tt_loader_init): These new functions.
	(compute_glyph_metrics): Call FT_Outline_Get_CBox.

2005-08-08  Werner Lemberg  <wl@gnu.org>

	* docs/INSTALL.ANY: Updated.

2005-08-05  Werner Lemberg  <wl@gnu.org>

	* src/cff/cffgload.c (cff_builder_close_contour),
	src/psaux/psobjs.c (t1_builder_close_contour): Protect against
	zero `outline' pointer.

	* src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero
	`loader' address.

2005-08-03  Werner Lemberg  <wl@gnu.org>

	* src/sfnt/sfdriver.c (sfnt_interface) [FT_OPTIMIZE_MEMORY]:
	Reactivate pointers to tt_find_sbit_image and tt_load_sbit_metrics
	to make X work again.

2005-08-02  Werner Lemberg  <wl@gnu.org>

	* src/otvalid/otvcommn.h: Remove dead code.

2005-07-31  Chia I Wu  <b90201047@ntu.edu.tw>

	* src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New
	functions.

	* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): New
	functions.
	(tt_size_init): Add 4, instead of 2, (phantom) points to twilight
	zone.
	Move code that runs fpgm to tt_size_run_fpgm.
	(Reset_Outline_Size): Move code that runs prep to tt_size_run_prep.
	(tt_glyphzone_new): Allocate right size of arrays.
	Set max_points and max_contours properly.

2005-07-26  Chia I Wu  <b90201047@ntu.edu.tw>

	* src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary
	computations and clean up.

	* src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the
	internal copy of metrics.

2005-07-12  Werner Lemberg  <wl@gnu.org>

	* include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype.
	Reported by Xerxes.

2005-07-04  Werner Lemberg  <wl@gnu.org>

	* include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo.
	Reported by Brett Hutley.

2005-06-30  David Turner  <david@freetype.org>

	* src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c:
	Removing compiler warnings (Visual C++ /W4).


	Implement a work-around for broken C preprocessor in Visual C++ (it
	has been confirmed by the MS developers that it is indeed a bug
	which won't be fixed in the very near future).

	* Jamfile (FT2_COMPONENTS): Include otvalid (again).

	* src/otvalid/otvcommn.h (OTV_NAME, OTV_FUNC): New macros.
	(OTV_NEST1, OTV_NEST2, OTV_NEST3): Use OTV_NAME and OTV_FUNC to
	avoid argument expansion by argument prescan.
	Append `Func' to all affected macros and change them to take just a
	single argument.  Example: `AttachList' is renamed to
	`AttachListFunc'.

	* src/otvalid/otvgdef.c, src/otvalid/otvgpos.c,
	src/otvalid/otvgsub.c, src/otvjstf.c: Append `Func' to macros
	affected by the changes to OTV_NESTx and modify them to take just a
	single argument.

2005-06-20  Chia I Wu  <b90201047@ntu.edu.tw>

	* include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function
	ft_glyphslot_grid_fit_metrics.

	* src/truetype/ttgload.c (compute_glyph_metrics): Use
	ft_glyphslot_grid_fit_metrics.

	* src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
	(cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Use
	ft_glyphslot_grid_fit_metrics.
	FT_Outline_Get_CBox is called twice.

	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify metrics to more
	reasonable values when emboldening outline glyphs.  The theoretic
	ones are unrealistic.

2005-06-16  Chia I Wu  <b90201047@ntu.edu.tw>

	* src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
	halved.

	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
	strength.
	Don't increase slot->advance.y.

2005-06-16  Werner Lemberg  <wl@gnu.org>

	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
	(FREETYPE_PATCH): Set to 0.

	* builds/unix/configure.ac (version_info): Set to 9:9:3.
	Currently, we are still binary compatible.

	* builds/win32/visualc/index.html,
	builds/win32/visualc/freetype.dsp,
	builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.

	* builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
	s/2.1.9/2.1.10/.

	* docs/CHANGES, docs/VERSION.DLL: Updated.

	* ChangeLog: Split off older entries into...
	* ChangeLog.20, ChangeLog.21: These new files.

2005-06-15  Kirill Smelkov  <kirr@mns.spb.ru>

	The next release will be 2.2.0, so don't worry about source code
	backwards compatibility.

	* include/freetype/ftimage.h (FT_Outline_MoveToFunc,
	FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
	FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
	include/freetype/ftrender.h (FT_Glyph_TransformFunc,
	FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
	parameters with `const' where appropriate.

2005-06-15  Chia I Wu  <b90201047@ntu.edu.tw>

	* src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
	to make glyphs centered vertically.

	* src/truetype/ttgload.c (compute_glyph_metrics): Compute
	vertBearingY to make glyphs centered vertically.
	Fix some bugs in vertical metrics:

	  . loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
	    units.
	  . As we use the glyph's cbox to calculate the top bearing now
	    there iss no need to adjust `top'.

2005-06-15  Werner Lemberg  <wl@gnu.org>

	* src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
	in sync with OTV_OPTIONAL_OFFSET.  Reported by YAMATO Masatake.

2005-06-13  Werner Lemberg  <wl@gnu.org>

	* docs/release: Update.

----------------------------------------------------------------------------

Copyright 2005 by
David Turner, Robert Wilhelm, and Werner Lemberg.

This file is part of the FreeType project, and may only be used, modified,
and distributed under the terms of the FreeType project license,
LICENSE.TXT.  By continuing to use, modify, or distribute this file you
indicate that you have read the license and understand and accept it
fully.


Local Variables:
version-control: never
coding: latin-1
End:
