2007-01-12  Werner Lemberg  <wl@gnu.org>

	* src/base/ftbitmap.c: fixing memory stomping bug in the
	bitmap embolderner when the pitch of the source bitmap is
	*much* larger than its width

	* src/truetype/ttinterp.c: fixing aliasing-related compilation
	warning

	* builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
	`automake' CVS module from sources.redhat.com.

2007-01-11  Werner Lemberg  <wl@gnu.org>

	* src/type1/t1load.c (is_space): Removed.
	(parse_encoding, parse_charstrings): Use IS_PS_DELIM.
	(parse_charstrings): Use IS_PS_TOKEN.


	* autogen.sh: Avoid bash specific syntax.

2007-01-11  David Turner  <david@freetype.org>

	* docs/CHANGES: Small update.

	* builds/unix/configure.raw (version_info): Set to 9:11:3.

	* src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
	crash with some Mac OS X .dfont files.  Submitted by Masatake
	Yamoto.

	* autogen.sh: Small fix to get it working on Mac OS X properly:
	The issue is that GNU libtool is called `glibtool' on this platform,
	and we must call `glibtoolize', since `libtoolize' doesn't exist.

2007-01-10  David Turner  <david@freetype.org>

	* all-sources: Tag all sources with VER-2-3-0-RC1 and
	VER-2-3-0.

	* Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
	builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
	version number to 2.3.0.

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

	* include/freetype/ftchapters.h, include/freetype/ftgasp.h,
	include/freetype/ftlcdfil.h: Update reference documentation with
	GASP support and LCD filtering sections.

	* src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
	which created an endless loop with some malformed font files.

2007-01-10  Derek Clegg  <dclegg@apple.com>

	* src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
	values.

2007-01-08  David Turner  <david@freetype.org>

	* docs/CHANGES: Updated.

	* include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
	a new API `FT_Get_Gasp' to return entries of the `gasp' table
	corresponding to a given character pixel size.

	* src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
	`gasp' table, in order to avoid potential problems with later
	versions.

	* include/freetype/config/ftheader.h (FT_GASP_H): New macro for
	<freetype/ftgasp.h>.

	* src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
	modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
	builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
	default build.

2007-01-07  Werner Lemberg  <wl@gnu.org>

	* src/cid/cidparse.c (cid_parser_new): Improve error message for
	Type 11 fonts.
	Scan for `/sfnts' token.

2007-01-07  Werner Lemberg  <wl@gnu.org>

	* src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.

2007-01-06  Werner Lemberg  <wl@gnu.org>

	* src/cff/cffload.c (cff_index_init): Remove unused variable.
	(cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.

2007-01-04  David Turner  <david@freetype.org>

	* src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
	correctly.  This fixes Savannah bug #17876.


	Do not allocate interpreter-specific tables in memory if we are not
	going to load glyphs with the bytecode interpreter anyway.

	* src/truetype/ttgload.c (tt_loader_init): Load execution context
	only if glyph is hinted.
	Updated.
	* src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
	and `cvs_ready'.
	Add `tt_size_ready_bytecode' declaration.
	* src/truetype/ttobjs.c (tt_size_done_bytecode,
	tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
	(tt_size_init): Move most code into `tt_size_init_bytecode'.
	(tt_size_done): Move most code into `tt_size_done_bytecode'.
	(tt_size_reset): Move some code to `tt_size_ready_bytecode'.
	

	Don't extract the metrics table from the SFNT font file.  Instead,
	reparse it on each glyph load.  The runtime difference is not
	noticeable, and it can save a lot of heap memory when memory-mapped
	files are not used.

	* include/freetype/internal/tttypes.h (TT_FaceRec): Add members
	`horz_metrics_offset' and `vert_metrics_ofset'.
	* src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
	Updated.


	* src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.


	Do not load the CFF index offsets into memory, since this wastes a
	*lot* of heap memory with large Asian CFF fonts.  There is no
	significant performance loss.

	* src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
	* src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
	`data_size'.
	(CFF_CharsetRec): Add field `num_glyphs'.

	* src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
	cff_charset_cid_to_gindex): New functions.
	(cff_new_index): Renamed to...
	(cff_index_init): This.  Update all callers.
	Updated -- some code has been moved to `cff_index_load_offsets'.
	(cff_done_index): Renamed to...
	(cff_index_done): This.  Update all callers.
	(cff_index_get_pointers, cff_index_access_element): Updated to use
	stream offsets.
	(cff_charset_compute_cids): Set `num_glyphs' field.
	(cff_encoding_load): Updated.

	* src/cff/cffgload.c (cff_slot_load): Updated.

2007-01-04  David Turner  <david@freetype.org>

	* docs/INSTALL.UNIX: Simplify some parts, add reference to
	autogen.sh and pointer to README.CVS.

	* README.CVS: Add common problem description and solution
	when running autogen.sh.

	* docs/INSTALL: Add reference to MacOS X.

	* docs/MAKEPP, docs/INSTALL.MAC: New documentation files.

	* docs/TODO: Remove obsolete items.

	* src/raster/ftraster.c: (TRaster_Instance): Replace it with...
	(TWorker): This.
	Remove `count_table' and `memory'.
	Make `grays' a pointer.
	(TRaster): New structure.
	(count_table): New static array.
	(RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
	Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
	ft_black_set_mode, ft_black_render): Updated.
	(ft_black_init): Don't initialize `count_table'.
	(ft_black_reset): Use the render pool.  This saves about 6KB of
	heap space for each FT_Library instance.

	* src/smooth/ftgrays.c (TRaster): Replaced with...
	(TWorker): This.
	Remove `memory'.
	(TRaster): New structure.

	(RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
	gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
	gray_render_span, gray_raster_render): Updated.
	(gray_raster_reset): Use the render pool.  This saves about 6KB of
	heap space for each FT_Library instance.

	* src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
	src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
	src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
	FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
	the optimization is no longer experimental.

	* src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
	Remove a typo that results in no hinting and a memory leak with some
	large Asian CFF fonts.

	* src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
	which happens when FT_Done_Library is called with still opened
	CFF_Faces in it.  We need to close all faces before destroying the
	modules, or else some bad things (memory leaks) may happen.

2007-01-02  Werner Lemberg  <wl@gnu.org>

	* src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
	Remove compiler warning.

2007-01-02  David Turner  <david@freetype.org>

	* src/sfnt/sfobjs.c: Add documentation comment.

2006-12-31  Masatake YAMATO  <jet@gyve.org>

	* src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
	function.
	Check uniqueness of the gid pairs.
	(gxv_kern_subtable_fmt0_validate): Move some code to 
	`gxv_kern_subtable_fmt0_pairs_validate'.

2006-12-22  David Turner  <david@freetype.org>

	* src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
	warnings.

	* builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
	to avoid deprecation warnings with Visual C++ 8.

2006-12-16  Anders Kaseorg  <anders@kaseorg.com>

	* src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
	[FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.

2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* include/freetype/internal/services/svotval.h: Add `volatile' to 
	sync with the modification by Jens Claudius on 2006-08-22; cf.
	  http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5

2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* src/base/ftmac.c: Specialized for Mac OS X only.
	* builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
	* builds/unix/configure.raw: Ditto. When explicit switches for
	FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
	builds/mac/ftmac.c is used instead of default src/base/ftmac.c.

2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
	* builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
	instead of src/base/ftmac.c
	* builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
	* builds/mac/FreeType.ppc_classic.make.txt: Ditto.
	* builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
	that cannot be built at present.

2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* src/base/ftobjs.c: Improvement of resource fork handler for
	POSIX, cf.
	  http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
	(Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
	format or .dfont, to simulate the face index number counted by ftmac.c.
	(IsMacResource): Return the number of scalable faces correctly.

2006-12-10  Werner Lemberg  <wl@gnu.org>

	* builds/toplevel.mk (version): Protect against `distclean' target.

2006-12-09  Werner Lemberg  <wl@gnu.org>

	* builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
	or `type'.

	* builds/freetype.mk (version): Extracted from freetype.h, using
	GNU make's built-in string functions.
	(refdoc): Use $(version) instead of static version number.

2006-12-08  Werner Lemberg  <wl@gnu.org>

	* builds/toplevel.mk (dist): Extract version number from freetype.h.

2006-12-08  Vladimir Volovich  <vvv@vsu.ru>

	* src/tools/apinames (State): Remove final comma in structure -- xlc
	v5 under AIX 4.3 doesn't like this.

2006-12-07  David Turner  <david@freetype.org>

	* src/autofit/afloader.c (af_loader_load_g): Small adjustment
	to the spacing of auto-fitted glyphs.  This only impacts rare
	cases (e.g., Arial Bold at rather small character sizes).

2006-12-03  Werner Lemberg  <wl@gnu.org>

	* src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.

2006-12-01  Werner Lemberg  <wl@gnu.org>

	* src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
	encoded in UTF-16BE.  Patch from Rajeev Pahuja <rpahuja@esri.com>.
	(tt_name_entry_ascii_from_ucs4): Removed.


	* include/freetype/ftxf86.h: Fix and extend comment so that it
	appears in the documentation.

	* include/freetype/ftchapters.h: Add `font_format' section.


	* src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
	to TOC in index page.

2006-11-28  David Turner  <david@freetype.org>

	* src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
	trying to render into a zero-width/height bitmap, not an error code.

	* src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.

	* src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
	ones instead.

	* src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
	variable.

2006-11-26  Pierre Hanser  <hanser@club-internet.fr>

	* src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.

2006-11-25  David Turner  <david@freetype.org>

	* src/autofit/afhints.c	(af_glyph_hints_dump_points,
	af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
	Add stubs to link the `ftgrid' test program when debugging is
	disabled in the auto-hinter.

2006-11-23  David Turner  <david@freetype.org>

	* src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
	src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.

	* src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
	Emit more sensible information.

	* src/autofit/afhints.h (AF_SegmentRec): Add `height' member.

	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
	rounding of blue values.
	(af_latin_hints_compute_segments): Hint segment heights.
	(af_latin_hints_link_segments): Reduce `len_score' value.
	(af_latin_hints_compute_edges): Increase `segment_length_threshold'
	value and use `height' member for comparisons.
	(af_latin_hint_edges): Extend logging message.
	Improve handling of remaining edges.

2006-11-22  Werner Lemberg  <wl@gnu.org>

	Fix Savannah bug #15553.

	* src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
	program after a change from mono to grayscaling (and vice versa).
	Use correct constant for comparison to get `exec->grayscale'.

2006-11-18  Werner Lemberg  <wl@gnu.org>

	Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
	test for a valid glyph index must be deferred to the font drivers.
	This patch fixes Savannah bug #18301.

	* src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
	* src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
	(cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
	src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
	(pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
	src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
	(FNT_Load_Glyph): Check validity of `glyph_index'.

2006-11-13  David Turner  <david@freetype.org>

	* src/truetype/ttinterp.c (FIX_BYTECODE): Undefine.  The interpreter
	`enhancements' are still too buggy for general use.

	* src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
	FT_FORCE_LEGACY_LCD_FILTER at compile time.  Define these macros
	when building the library to change the default LCD filter to be
	used.  This is only useful for experimentation.

	* include/freetype/ftlcdfil.h: Update documentation.

2006-11-10  David Turner  <david@freetype.org>

	* src/smooth/ftsmooth.c: API change for the LCD
	filter.  The FT_LcdFilter value is an enumeration describing which
	filter to apply, with new values FT_LCD_FILTER_LIGHT and
	FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
	algorithm which produces strong color fringes for everything
	except very-well hinted text).

	* include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
	second parameter to an enum type.

	* src/base/ftlcdfil.c (USE_LEGACY): Define.
	(_ft_lcd_filter): Rename to...
	(_ft_lcd_filter_fir): This.
	Update parameters.
	(_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
	(FT_Library_Set_LcdFilter): Update parameters.
	Handle new filter modes.

	* include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
	(FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
	(FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
	callback and update other fields.

	* src/smooth/ftsmooth.c (ft_smooth_render_generic)
	[FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
	Other minor improvements.

	* src/autofit/aflatin.c: Various tiny improvements that drastically
	improve the handling of serif fonts and of LCD/LCD_V hinting modes.
	(af_latin_hints_compute_edges): Fix typo.
	(af_latin_compute_stem_width): Take better care of diagonal stems.

2006-11-09  David Turner  <david@freetype.org>

	* src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
	typo which created a variable-used-before-initialized bug.

2006-11-07  Zhe Su  <james.su@gmail.com>

	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
	also.

2006-11-03  Werner Lemberg  <wl@gnu.org>

	* src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.

2006-11-02  David Turner  <david@freetype.org>

	Add a few tweaks to better handle serif fonts.
	Add more debugging messages.

	* src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
	segments that are less than 1.5 pixels high.  This gets rid of
	*many* corner cases with serifs.
	(af_latin_align_linked_edge): Add logging message.
	(af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
	Add logging messages.
	Handle AF_EDGE_FLAG flag specially.

	* src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
	_af_debug_disable_blue_hints, and _af_debug_hints variables.

	* src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
	Update external declarations.
	(af_corner_orientation, af_corner_is_flat): Replaced by...

	* include/freetype/internal/ftcalc.h (ft_corner_orientation,
	ft_corner_is_flat): These declarations.

	* src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
	Comment out.  Replaced by...

	* src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
	These functions.  Update all callers.
	(FT_Add64) [!FT_LONG64]: Simplify.

	* src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
	(af_direction_compute): Add a missing FT_ABS call.  This bug caused
	production of garbage by missing lots of segments.

	* src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.

	* src/autofit/afloader.c (af_loader_init, af_loader_done)
	[AF_DEBUG]: Set _af_debug_hints.


	* src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
	(psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
	and ft_corner_orientation.


	* src/gzip/inftrees.c (huft_build): Remove compiler warning.

2006-10-24  Werner Lemberg  <wl@gnu.org>

	* src/cff/cffload.c (cff_encoding_load): Remove unused variable.

	* src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
	as argument.

2006-10-23  Zhe Su  <zsu@novell.com>

	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
	better deal with broken Asian fonts with strange glyphs, having
	self-intersections and other peculiarities.  The used algorithm is
	based on the nonzero winding rule.

2006-10-23  David Turner  <david@freetype.org>

	Speed up the CFF font loader.  With some large CFF fonts,
	FT_Open_Face is now more than three times faster.

	* src/cff/cffload.c (cff_get_offset): Removed.
	(cff_new_index): Inline functionality of `cff_get_offset'.
	(cff_charset_compute_cids, cff_charset_free_cids): New functions.
	(cff_charset_done): Call `cff_charset_free_cids'.
	(cff_charset_load): Call `cff_charset_compute_cids'.
	(cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.

	* src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
	with FT_NEXT_XXX.


	Speed up the Postscript hinter, with more than 100% speed increase
	on my machine.

	* src/pshinter/pshalgo.c (psh_corner_is_flat,
	psh_corner_orientation): New functions.
	(psh_glyph_compute_inflections): Merge loops for efficiency.
	Use `psh_corner_orientation'.
	(psh_glyph_init): Use `psh_corner_is_flat'.
	(psh_hint_table_find_strong_point): Renamed to...
	(psh_hint_table_find_strong_points): This.
	Rewrite, adding argument to handle all points at once.
	Update all callers.
	(PSH_MAX_STRONG_INTERNAL): New macro.
	(psh_glyph_interpolate_normal_points): Rewrite for efficiency.

2006-10-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
	`error' with FT_Err_Ok.

2006-10-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* docs/INSTALL.CROSS: New document file for cross-building.

	* builds/unix/configure.raw: Preliminary cross-building support.
	Find native C compiler and pass it by CC_BUILD, and
	find suffix for native executable and pass it by EXEEXT_BUILD.
	Also suffix for target executable is passed by EXEEXT.

	* builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
	build `apinames' which runs on building system.  They are set by
	CC_BUILD and EXEEXT_BUILD.

	* builds/exports.mk (APINAMES_EXE): Change the extension for
	apinames from the suffix for target (E) to that for building host
	(E_BUILD).

2006-10-12  Werner Lemberg  <wl@gnu.org>

	* docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
	* docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This.  Update all documents
	which reference those files.

2006-10-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable.  It is
	embedded in freetype2.pc and freetype-config.  Use it to record
	Carbon dependency of MacOSX.

	* builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.

	* builds/unix/freetype-config.in: Ditto.

2006-10-11  Werner Lemberg  <wl@gnu.org>

	* devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
	development.

2006-10-03  Jens Claudius  <jens.claudius@yahoo.com>

	* include/freetype/config/ftstdlib.h: Cast away volatileness from
	argument to ft_setjmp.

	* include/freetype/internal/ftvalid.h: Add comment that
	ft_validator_run must not be used.

2006-10-01  Werner Lemberg  <wl@gnu.org>

	* src/base/ftbase.c: Undo change from 2006-09-30.

	* src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.

2006-09-30  David Turner  <david@freetype.org>

	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
	s/unpatented_hinting/ignore_unpatented_hinter/.
	Update all callers.

	* src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
	auto-hinting shall be used or not.

	* src/truetype/ttobjs.c (tt_face_init): Ditto.

2006-09-30  Werner Lemberg  <wl@gnu.org>

	* src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
	in use).

	* src/base/ftbase.c: Include `ftlcdfil.c'.

2006-09-29  Werner Lemberg  <wl@gnu.org>

	* src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
	overlapping segments.  Bug reported by Stefan Koch.

2006-09-28  David Turner  <david@freetype.org>

	Fix a bug in the automatic unpatented hinting support which prevents
	normal bytecode hinting to work properly.

	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
	s/force_autohint/unpatented_hinting/.  Update all callers.

	* src/base/ftobjs.c (FT_Load_Glyph): Updated code.

	* src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.

2006-09-27  David Turner  <david@freetype.org>

	* include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.


	Add a new API to support color filtering of subpixel glyph bitmaps.
	In a default build, the function `FT_Library_SetLcdFilter' returns
	`FT_Err_Unimplemented_Feature'; you need to #define
	FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
	real implementation.

	* include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.

	* include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
	typedef.
	(FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
	`lcd_filter_weights' and `lcd_filter'.

	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
	`hmul' and `vmul'.

	Handle subpixel rendering.
	Simplify function.
	(ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
	(ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.

	* include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
	pointing to <freetype/ftlcdfil.h>.

	* src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
	vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.

	* modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.

2006-09-26  David Bustin

	* src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
	correctly.  Reported as Savannah bug #17843.

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

	* src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
	AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
	horizontal and vertical hinting for the purpose of debugging the
	auto-fitter.

	* src/autofit/afmodule.c (_af_debug_disable_horz_hints,
	_af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.

	* src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.

	* include/freetype/config/ftoption.h, devel/ftoption.h
	(FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
	we want to compile LCD-optimized rendering code (à la ClearType) or
	not.  The macro *must* be disabled in default builds of the library
	for patent reasons.

	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
	LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
	isn't defined at compile time.  This only changes the content of the
	rendered glyph to match the one of normal gray-level rendering,
	hence clients should not need to be modified.

	* docs/CHANGES: Updated.

2006-09-18  Garrick Meeker  <garrick@digitalanarchy.com>

	* src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
	LWFN fails and both are available.

2006-09-11  David Turner  <david@freetype.org>

	* src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
	report their English names through an Apple Roman
	(platform,encoding) pair, with language_id != English.

	If the font uses another name entry with language_id == English, it
	will be selected correctly, though.

	* src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
	selection for `mingli.ttf'.

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

	* src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
	values which have the upper two bytes set to 0xFF instead of 0x00
	(as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
	`HAN NOM B.ttf').

	* src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.

2006-09-05  David Turner  <david@freetype.org>

	Minor source cleanups and optimizations.

	* src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
	(TRaster): Remove `count_ex' and `count_ey'.
	(gray_find_cell): Remove 2nd and 3rd argument.
	(gray_alloc_cell): Merged with `gray_find_cell'.
	(gray_record_cell): Simplify.
	(gray_set_cell): Rewrite.
	(gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
	(gray_render_span): Don't use FT_MEM_SET for small values.
	(gray_dump_cells) [DEBUG_GRAYS]: New function.
	(gray_sweep): Avoid buffer overwrites when to drawing the end of a
	bitmap scanline.
	(gray_convert_glyph): Fix speed-up.

2006-09-04  David Turner  <david@freetype.org>

	* src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
	64bit processors.

2006-09-03  Werner Lemberg  <wl@gnu.org>

	* devel/ftoption.h: Synchronize with
	include/freetype/config/ftoption.h.

	* src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
	variable declaration.
	(gray_convert_glyph): Fix compiler warnings.

2006-09-01  David Turner  <david@freetype.org>

	* src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
	to recognize a few fonts that require the automatic unpatented
	loader.

	* src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
	rasterizer.  The speed improvement is between 15% and 25%, depending
	on the font data.

	(GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
	(TCell): Redefine.
	(TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
	(gray_init_cells): Updated.
	(gray_find_cell, gray_alloc_cell): New functions.
	(gray_record_cell): Rewritten to use `gray_find_cell' and
	`gray_alloc_cell'.
	(PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
	QSORT_THRESHOLD):
	Removed.
	(gray_shell_sort, gray_quick_sort, gray_check_sort,
	gray_dump_cells): Removed.
	(gray_sweep): Rewritten.
	(gray_convert_glyph): Rewrite code which used one of the sorting
	functions.
	(gray_raster_render): Updated.

2006-08-29  Dr. Werner Fink  <werner@suse.de>

	* configure: Make it possible to handle configure options which
	have strings containing spaces.

2006-08-27  David Turner  <david@freetype.org>

	* include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
	New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
	or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.

	* include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
	src/truetype/truetype.c, src/truetype/ttdriver.c,
	src/truetype/ttgload.c, src/truetype/ttgload.h,
	src/truetype/ttinterp.c, src/truetype/ttobjs.c,
	src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
	s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.

	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
	member `force_autohint'.

	* src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.

	* src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
	against a list of font names which need the bytecode interpreter.

2006-08-27  Jens Claudius  <jens.claudius@yahoo.com>

	Fix miscellaneous compiler warnings.

	* freetype2/include/freetype/internal/ftobjs.h: Close comment with
	`*/' to avoid `/* in comment' compiler warning.

	* freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
	`(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
	64-bit platforms void* is larger than FT_UInt32.

	* freetype2/src/base/ftobjs.c (t_validator_error): Cast away
	volatileness of argument to ft_longjmp.  Spotted by Werner
	`Putzfrau' Lemberg.

	* freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
	variable `lineno'.

	* freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
	variable `error' as volatile.

2006-08-27  Werner Lemberg  <wl@gnu.org>

	* builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
	Reported by Jens.

2006-08-22  Jens Claudius  <jens.claudius@yahoo.com>

	Fix for previous commit, which caused many compiler warnings/errors
	about addresses of volatile objects passed as function arguments as
	non-volatile pointers.

	* freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
	typedef a pointer to a volatile object.

	* freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
	argument `table' a pointer to a volatile object.

	* freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
	argument `table' a pointer to a volatile object.

2006-08-18  Jens Claudius  <jens.claudius@yahoo.com>

	* freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
	variable `_sfnt' as volatile since it must keep its value across
	a call to ft_setjmp.
	(gxv_validate): Same for local variables `memory' and `valid'.
	(classic_kern_validate): Same for local variables `memory',
	`ckern', and `valid'.

	* freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
	parameter `face' and local variables `base', `gdef', `gpos', `gsub',
	`jstf', and 'valid'.

	* freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
	local variable `cmap'.

2006-08-16  David Turner  <david@freetype.org>

	* src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
	warnings.

	* src/base/ftobjs.c (ft_validator_run): Disable function; it is
	buggy by design.  Always return -1.


	Improvements to native TrueType hinting. This is a first try,
	controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.

	* include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
	`extra_points2'.

	* include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
	`orus'.

	* src/base/ftgloadr.c (FT_GlyphLoader_Reset,
	FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
	FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
	handle `extra_points2'.

	* src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
	Remove compiler warning.
	(cur_to_arg): Remove macro.
	(TT_Hint_Glyph): Updated.
	(TT_Process_Simple_Glyph): Handle `orus'.

	* src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
	(Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
	(LOC_Ins_IUP): Renamed to...
	(IUP_WorkerRec): This.
	Add `orus' member.
	(Shift): Renamed to...
	(_iup_worker_shift): This.
	Updated.
	(Interp): Renamed to...
	(_iup_worker_interpolate): This.
	Updated to handle `orus'.
	(Ins_IUP): Updated.

	* src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
	Handle `orus'.

2006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
	build ftvalid in ft2demos.  This has been inadvertedly changed
	2006-08-13.

2006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	`ft_validator_run' wrapping `setjmp' can cause a crash, as found by
	Jens:
	http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.

	* freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
	`ft_setjmp'.  It reverts the change introduced on 2005-08-20.

	* freetype2/src/gxvalid/gxvmod.c: Ditto.

2006-08-13  Jens Claudius  <jens.claudius@yahoo.com>

	* freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
	T1_TOKEN_TYPE_KEY.
	(T1_FieldRec): Add `dict'.
	(T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
	(T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
	keyword is expected as an additional argument.

	* freetype2/src/cid/cidload.c: (cid_field_records): Adjust
	invocations of T1_FIELD_XXX.

	* freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.

	* freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
	(ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
	not T1_TOKEN_TYPE_ANY.
	(ps_parser_load_field): Make sure a token that should be a string or
	name is really a string or name.
	Avoid memory leak if a keyword has been already encountered and its
	value is overwritten.
	* freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
	T1_FIELD_XXX.
	(parse_dict): Ignore keywords that occur in the wrong dictionary
	(e.g., in `Private' instead of `FontDict').

	* freetype2/src/type1/t1tokens.h: Adjust invocations of
	T1_FIELD_XXX.

	* freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
	invocations of T1_FIELD_XXX.

2006-07-18  Jens Claudius  <jens.claudius@yahoo.com>

	Move creation of field `buildchar' of T1_DecoderRec out of
	`t1_decoder_init' and let the caller of `t1_decoder_init' take care
	of it.

	Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
	and `T1_Compute_Max_Advance'.

	* freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
	Remove field `face', add `len_buildchar'.

	* freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
	field `buildchar'.

	* freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
	finisher for T1_Decoder.
	(cid_slot_load_glyph): Do not ignore failure when initializing the
	T1_Decoder.

	* freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
	Updated.
	(t1_decoder_init): Remove initialization of fields `buildchar' and
	`len_buildchar'.
	(t1_decoder_done): Remove deallocation of field `buildchar'.

	* freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
	T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
	T1_Decoder.
	(T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
	`len_buildchar'; make sure to call finisher for T1_Decoder even in
	case of error.

	* freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
	`buildchar' of T1_FaceRec.

	* freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
	`buildchar' of T1_FaceRec.

2006-07-14  Jens Claudius  <jens.claudius@yahoo.com>

	* freetype2/include/freetype/internal/psaux.h: New macros
	IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
	IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
	(T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
	T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
	(T1_DecoderRec): New fields `buildchar' and `face'.
	(IS_PS_TOKEN): New macro.

	* freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
	fields `ndv_idx', `cdv_idx', and `len_buildchar'.

	* freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
	`default_design_vector' and `num_default_design_vector'.

	* freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
	IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
	and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.

	* freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
	`token' argument to be NULL if we want only to count the number of
	tokens.
	(ps_tocoordarray): Allow `coords' argument to be NULL if we just
	want to skip the array.
	(ps_tofixedarray): Allow `values' argument to be NULL if we just
	want to skip the array.

	* freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
	support for (partially commented out) othersubrs 19-25, 27, and 28.
	(t1_decoder_init): Initialize new fields `face' and `buildchar'.
	(t1_decoder_done): Release new field `buildchar'.

	* freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
	functions.
	(t1_keywords): Register them.
	(t1_allocate_blend): Updated.
	(t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
	T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
	(parse_dict): Remove `keyword_flags' argument.
	Use new macro IS_PS_TOKEN.
	Changed function so that later PostScript definitions override
	earlier ones.
	(t1_init_loader): Initialize new field `keywords_encountered'.
	(T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
	`len_buildchar'.
	Remove `keywords_flags'.

	* freetype2/src/type1/t1load.h (T1_LoaderRect): New field
	`keywords_encountered'.
	(T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.

	* freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
	New entries for parsing /NDV, /CDV, and /DesignVector.

2006-07-07  Werner Lemberg  <wl@gnu.org>

	Add many checks to protect against malformed PCF files.

	* src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
	(PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.

	* src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
	data and check that tables don't overlap (using a simple
	bubblesort).
	(PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
	New macros which give the size of data structures in the data
	stream.
	(pcf_get_properties): Use rough estimates to get array size limits.
	Assign `face->nprops' and `face->properties' earlier so that a call
	to PCF_Face_Done can do the clean-up in case of error.
	Protect against invalid string offsets.
	(pcf_get_metrics): Clean up code.
	Adjust tracing message levels.
	Use rough estimate to get array size limit.
	(pcf_get_bitmaps): Clean up code.
	Adjust tracing message levels.
	Use rough estimates to get offset limits.
	(pcf_get_encodings): Adjust tracing message level.
	(pcf_get_accel): Clean up code.

2006-06-26  Werner Lemberg  <wl@gnu.org>

	* src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
	don't have a POINT_SIZE property.  This fixes Savannah bug #16914.

2006-06-26  Jens Claudius  <jens.claudius@yahoo.com>

	* src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
	(t1_decoder_parse_charstrings): Operator with
	opcode 15 pops its two arguments.
	Handle the case where the pops of an othersubr may be part of a
	subroutine.
	Handle unknown othersubrs gracefully: count their operands and let
	the following pop operators push the operands as the results onto
	the Type1 stack.
	Improve handling of setcurrentpoint opcode.

2006-06-25  Jens Claudius  <jens.claudius@yahoo.com>

	The Type 1 parser now skips over top-level procedures as required
	for a `Simplified Parser'.  This makes the parser more robust as it
	doesn't poke around in PostScript code.  Additionally, it makes the
	FontDirectory hackery in src/type1/t1load.c unnecessary.

	* src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
	(skip_literal_string): Add FT_Error as return value.
	Handle escapes better.
	(skip_string): Add FT_Error as return value.
	Don't set `parser->error' but return error code directly.
	(skip_procedure): New function.
	(ps_parser_skip_PS_token): Handle procedures.
	Update code.
	(ps_parser_to_token): Update code.
	(ps_parser_load_field_table): Handle bbox entries also.

	* src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
	Add commented-out code for synthetic fonts.

2006-06-24  Eugeniy Meshcheryakov  <eugen@univ.kiev.ua>

	Fix two hinting bugs as reported in
	http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.

	* include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
	`first_point' member.

	* src/truetype/ttgload.c (tt_prepare_zone): Initialize
	`first_point'.
	(TT_Process_Composite_Glyph): Always untouch points.

	* src/truetype/ttinterp.c (Ins_SHC): Fix computation of
	`first_point' and `last_point' in case of composite glyphs.
	(Ins_IUP): Fix computation of `end_point'.

2006-06-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
	Mac.  The original patch was written by David Sachitano and Lawrence
	Coopet, and modified by Sean McBride for MPW compatibility.  Only
	required data are converted; unused data are left in big endian.

	* src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
	Mac OS X platforms.
	(OS_INLINE): Undefine before definition.
	(count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
	FontAssociation table in FOND resource.
	(count_faces_scalable): Insert EndianS16_BtoN to parse the header
	and fontSize at each entry of FontAssociation table in FOND
	resource.
	(parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
	ffStylOff of FamilyRecord header of FOND resource, the header,
	fontSize, fontID at each entry of FontAssociation table, and
	StyleMapping table.
	(count_faces): Call `HUnlock' after all FOND utilization.

2006-06-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	Public API of TrueTypeGX, OpenType, and classic kern table validator
	should return `FT_Err_Unimplemented_Feature' if validation service
	is unavailable (disabled in `modules.cfg').  It is originally
	suggested by David Turner, cf.
	http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html

	* src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
	FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
	unavailable.
	(FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
	classic kern table validation service is unavailable.

	* src/base/ftotval.c (FT_OpenType_Validate): Return
	FT_Err_Unimplemented_Feature if OpenType validation service is
	unavailable.

2006-06-08  Werner Lemberg  <wl@gnu.org>

	* src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
	errors.

2006-06-07  David Turner  <david@freetype.org>

	* src/type1/t1afm.c (KERN_INDEX): Make it more robust.
	(T1_Read_Metrics): Fix memory leak which happened when the metrics
	file doesn't have kerning pairs.  This fixes Savannah bug #16768.

2006-06-06  David Turner  <david@freetype.org>

	Fix memory leak described in Savannah bug #16759.

	We change `ps_unicodes_init' so that it also takes a
	`free_glyph_name' callback to release the glyph names returned by
	`get_glyph_name'

	* include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
	Renamed to ...
	(PS_GetGlyphNameFunc): This.
	(PS_FreeGlyphNameFunc): New typedef.
	(PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.

	* src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
	argument.
	(cff_sid_free_glyph_name): New function.
	(cff_cmap_unicode_init): Updated.

	* src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.

	* src/psnames/psmodule.c (ps_unicodes_init): Add variable for
	PS_FreeGlyphNameFunc and use it.


2006-06-04  David Turner  <david@freetype.org>

	* src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
	`item_size == 0' as well -- though this sounds weird, it can
	theorically happen.  This fixes Savannah bug #16669.

	* src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
	of `face->num_glyphs' which missed the last glyph, due to
	the offset-by-1 computation, since the PFR format doesn't
	guarantee that glyph index 0 corresponds to the `missing
	glyph.  This fixes Savannah bug #16668.

2006-05-25  Werner Lemberg  <wl@gnu.org>

	* builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
	`-no-undefined'.  Reported by Christian Biesinger.

2006-05-19  Brian Weed  <bw@imaginengine.com>

	* builds/win32/visualc/freetype.dsp: Release libraries no longer
	have debug information, and debug libraries use `C7 compatible'
	debug info.

2006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	Apply patch by Derek Clegg to fix two memory leaks in the MacOS
	resource fork handler.  This fixes Savannah bug #16631.

	* src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
	`FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.

	* src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
	Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.

2006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* build/unix/configure.raw: Add a fallback to disable Carbon
	dependency, if configured with no options on Mac OS X.

2006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
	its content cannot be parsed as supported font.  This fixes
	the second part of Savannah bug #16590.

2006-05-18  Werner Lemberg  <wl@gnu.org>

	* src/truetype/ttgload.c (TT_Load_Composite_Glyph)
	[FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.

2006-05-17  David Turner  <david@freetype.org>

	This is a major patch used to drastically improve the performance of
	loading glyphs.  This both speeds up loading the glyph vectors
	themselves and the auto-fitter module.

	We now use inline assembler code with GCC to implement `FT_MulFix',
	which is probably the most important function related to the
	engine's performance.

	The resulting speed-up is about 25%.


	* include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
	`cursor' and `limit'.

	* src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
	New functions.
	(AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
	[TEST]: Remove.

	* src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
	code.

	* src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
	`FT_ZERO'
	(af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
	(af_glyph_hints_reload: Rewrite recognition of weak points.

	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
	constant values out of the loops.

	* src/autofit/aftypes.h: Updated.

	* src/base/ftcalc.c (FT_MulFix): Use inline assembler code.

	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
	product to get orientation.

	* src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
	(FT_Stream_OpenGzip): Use it to handle small files directly in
	memory.

	* src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
	Improve performance.

	* src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
	`limit'.

	(TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
	TT_Load_Composite_Glyph): Updated.  Add threshold to protect against
	exceedingly large values of number of contours.  Speed up by
	reducing the number of loops.

	* src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.


	* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
	used to detect rogue clients from 4 to 16.  This is to prevent some
	segmentation faults with fonts like `KozMinProVI-Regular.otf' which
	comes from the Japanese Adobe Reader Asian Font pack.

2007-05-17  Werner Lemberg  <wl@gnu.org>

	* src/cff/cffload.c (cff_font_done): Deallocate subfont array.  This
	fixes the first part of Savannah bug #16590.

2006-05-16  Werner Lemberg  <wl@gnu.org>

	* docs/PROBLEMS: Updated icl issues.

2006-05-12  Werner Lemberg  <wl@gnu.org>


	* Version 2.2.1 released.
	=========================


	Tag sources with `VER-2-2-1'.

2006-05-12  Werner Lemberg  <wl@gnu.org>

	* src/tools/docmaker/sources.py (re_source_keywords): Add word
	boundary markers.
	* src/tools/docmaker/content.py (re_field): Allow `.' in field names
	(but not at the beginning or end).
	* src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset.
	(block_footer): Split into...
	(block_footer_start, block_footer_middle, block_footer_end): This to
	add navigation buttons.
	(HtmlFormatter::block_exit): Updated.

	* include/freetype/*: Many minor documentation improvements (adding
	links, spelling errors, etc.).

2006-05-11  Werner Lemberg  <wl@gnu.org>

	* README: Minor updates.

	* include/freetype/*: s/scale/scaling value/ where appropriate.
	Many other minor documentation improvements.

	* src/tools/docmaker/sources.py (re_italic, re_bold): Handle
	trailing punctuation.
	* src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add
	warning message for undefined cross references.
	Update handling of re_italic and re_bold.

2006-05-11  Masatake YAMATO  <jet@gyve.org>

	* builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if
	read system call returns -1.
	Remove a redundant parenthesis.

2006-05-10  Werner Lemberg  <wl@gnu.org>

	* builds/unix/ftsystem.c (FT_Stream_Open): Avoid infinite loop if
	given an empty, un-mmap()able file.  Reported and suggested fix in
	Savannah bug #16555.

	* builds/freetype.mk (refdoc): Write-protect the `docmaker'
	directory to suppress generation of .pyc files.  According to the
	Python docs there isn't a more elegant solution (currently).

	* builds/toplevel.mk (dist): New target which builds .tar.gz,
	.tar.bz2, and .zip files.  Note that the version number is still
	hard-coded.
	(do-dist): Sub-target of `dist'.
	(CONFIG_GUESS, CONFIG_SUB): New variables.
	(.PHONY): Updated.

2006-05-09  Rajeev Pahuja  <rpahuja@esri.com>

	* builds/win32/visualc/freetype.sln,
	builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from
	VS.NET 2003
	Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c.

	* builds/win32/visualc/index.html: Updated.

2006-05-07  Werner Lemberg  <wl@gnu.org>

	Put version information into the configure script.  Reported by Paul
	Watson <pwatson@redlinepy.com>.

	* builds/unix/configure.ac: Renamed to...
	* builds/unix/configure.raw: This which now serves (with appropriate
	modifications) as a template for configure.ac.

	* version.sed: New script.

	* autogen.sh: Generate configure.ac from configure.raw, using
	FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h.

2006-05-06  Werner Lemberg  <wl@gnu.org>

	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.

	* builds/unix/configure.ac (version_info): Set to 9:10:3.

	* builds/win32/visualc/index.html,
	builds/win32/visualc/freetype.dsp,
	builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc),
	Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/.
	Minor updates.

	* docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS:
	Updated.

	* builds/unix/install-sh: Updated from `texinfo' CVS module at
	savannah.gnu.org.

	* devel/ftoption.h: Synchronize with
	include/freetype/config/ftoption.h.

2006-05-04  Werner Lemberg  <wl@gnu.org>

	* src/lzw/ftlzw2.c: Renamed to...
	* src/lzw/ftlzw.c: This.

	* src/lzw/Jamfile, src/lzw/rules.mk: Updated.

	* builds/mac/FreeType.m68k_cfm.make.txt,
	builds/mac/FreeType.m68k_far.make.txt,
	builds/mac/FreeType.ppc_carbon.make.txt,
	builds/mac/FreeType.ppc_classic.make.txt: Updated.

2006-05-03  David Turner  <david@freetype.org>

	Allow compilation again with C++ compilers.

	* include/freetype/internal/ftmemory.h (FT_ASSIGNP,
	FT_ASSIGNP_INNER): New macros which do the actual assignment, and
	which exist in two variants (for C and C++).
	Update callers accordingly.

2006-05-03  Werner Lemberg  <wl@gnu.org>

	* include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed.

2006-05-02  Werner Lemberg  <wl@gnu.org>

	* include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++).
	(FT_ALLOC): Remove redundant redefinition.

	* builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use
	`-Wstrict-prototypes'.

	* src/base/ftstream.c (FT_Stream_EnterFrame): Add cast.

	* include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]:
	Remove `extern'.

2006-05-02  David Turner  <david@freetype.org>

	Update the memory management functions and macros to safely deal
	with array size buffer overflows.  This corresponds to attemps to
	allocate arrays that are too large.  For an example, consider the
	following code:

	  count = read_uint32_from_file(); array = malloc( sizeof ( Item ) *
	  count ); for ( nn = 0; nn < count; nn++ )
	    array[nn] = read_item_from_file();

	If `count' is larger than `FT_UINT_MAX/sizeof(Item)', the
	multiplication overflows, and the array allocated os smaller than
	the data read from the file.  In this case, the heap will be
	trashed, and this can be used as a denial-of-service attack, or make
	the engine crash later.

	The FT_ARRAY_NEW and FT_ARRAY_RENEW macros now ensure that the new
	count is no larger than `FT_INT_MAX/item_size', otherwise a new
	error code `FT_Err_Array_Too_Large' will be returned.

	Note that the memory debugger now works again when FT_DEBUG_MEMORY
	is defined.  FT_STRICT_ALIASING has disappeared; the corresponding
	code is now the default.


	* include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]:
	Don't use `extern'.

	* include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error
	code.

	* include/freetype/internal/ftmemory.h (FT_DEBUG_INNER)
	[FT_DEBUG_MEMORY]: New macro.
	(ft_mem_realloc, ft_mem_qrealloc): Pass new object size count also.
	(ft_mem_alloc_debug, ft_mem_qalloc_debug, ft_mem_realloc_debug,
	ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
	(FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC,
	FT_MEM_FREE): Redefine.
	(FT_MEM_NEW_ARRAY, FT_MEM_RENEW_ARRAY, FT_MEM_QNEW_ARRAY,
	FT_MEM_QRENEW_ARRAY): Redefine.
	(FT_ALLOC_MULT, FT_REALLOC_MULT, FT_MEM_QALLOC_MULT,
	FT_MEM_QREALLOC_MULT): New macros.  Update callers where
	appropriate.
	(FT_MEM_SET_ERROR): Slightly redefine.


	* src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno)
	[FT_DEBUG_MEMORY]: New global variables, replacing...
	(FT_MemTable_Rec) [FT_DEBUG_MEMORY]: Remove `filename' and
	`line_no'.  Update all callers.
	(ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer
	overflow.
	(ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug,
	ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.

	* src/base/ftmac.c (read_lwfn): Catch integer overflow.
	* src/base/ftrfork.c (raccess_guess_darwin_hfsplus): Ditto.
	* src/base/ftutil.c: Remove special code for FT_STRICT_ALIASING.
	(ft_mem_alloc. ft_mem_realloc, ft_mem_qrealloc): Rewrite.


	* include/freetype/ftstream.h (FT_FRAME_ENTER, FT_FRAME_EXIT,
	FT_FRAME_EXTRACT, FT_FRAME_RELEASE): Use FT_DEBUG_INNER to report the
	place where the frames were entered, extracted, exited or released
	in the memory debugger.

	* src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]:
	Call ft_mem_free.
	(FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc.
	(FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free.

2006-04-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* src/base/ftobjs.c (Mac_Read_POST_Resource): Correct pfb_pos
	initialization, remove extra cast to copy to pfb_lenpos.  This fixes
	parsing of PFB fonts with MacOS resource fork (bug introduced
	2003-09-11).  Patch provided by Huib-Jan Imbens <ft@imbens.nl>.

2006-04-29  Werner Lemberg  <wl@gnu.org>

	Further C library abstraction.  Based on a patch from
	msn2@bidyut.com.

	* include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE,
	ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc,
	ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for
	C library functions.  Update all users accordingly (and catch some
	other places where the C library function was used instead of the
	wrapper functions).

	* src/base/ftsystem.c: Don't include stdio.h and stdlib.h.
	* src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't
	include malloc.h.


	* builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c
	and forthcoming versions.

2006-04-28  Werner Lemberg  <wl@gnu.org>

	* src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
	obsolete.

2006-04-27  yi luo  <luoyi.ly@gmail.com>

	* builds/win32/visualc/freetype.vcproj: Updated.

2006-04-26  David Turner  <david@freetype.org>


	* Version 2.2 released.
	=======================


	Tag sources with `VER-2-2-0'.

2006-04-26  Werner Lemberg  <wl@gnu.org>

	* src/psaux/psobjs.c (shift_elements): Don't use FT_Long but
	FT_PtrDiff for `delta'.  Reported by Céline PILLET
	<Celine.Pillet@Tagginfo.com>.

2006-04-21  David Turner  <david@freetype.org>

	* include/freetype/ftincrem.h: Documentation updates.
	(FT_Incremental_Interface): New typedef.

	* include/freetype/ftmodapi.h, include/freetype/ftglyph.h:
	Documentation updates.

	* include/freetype/freetype.h: Documentation update.
	(FT_HAS_FAST_GLYPHS): Always set to 0.

	* include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New):
	Take an FT_Library argument instead of FT_Memory.

	* src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2).

2006-04-13  David Turner  <david@freetype.org>

	* src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove
	superfluous code in the auto-fitter's loader.

2006-04-05  Detlef Würkner  <TetiSoft@apg.lahn.de>

	* builds/amiga/makefile, builds/amiga/makefile.os4,
	builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define.

2006-04-03  luoyi  <luoyi.ly@gmail.com>

	* builds/compiler/intelc.mk (TE): New variable.
	(ANSIFLAGS): Updated.

2006-04-03  Werner Lemberg  <wl@gnu.org>

	* builds/exports.mk (clean_symbols_list, clean_apinames): Removed.
	(CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE).
	(.PHONY): Updated.

	* configure.ac: Minor fixes to improve --help output.


	* docs/PROBLEMS: New file.

2006-04-01  David Turner  <david@freetype.org>

	* docs/CHANGES: Updated.

	* include/freetype/ftcache.h, include/freetype/config/ftheader.h:
	Update documentation comments.

2006-04-01  Werner Lemberg  <wl@gnu.org>

	* builds/unix/install.mk (uninstall): Don't handle `cache'
	directory which no longer exists.

2006-03-29  Detlef Würkner  <TetiSoft@apg.lahn.de>

	* src/psaux/psconv.c: Changed some variables which are expected to
	hold negative values from `char' to `FT_Char' to allow building with
	a compiler where `char' is unsigned by default.

2006-03-27  David Turner  <david@freetype.org>

	* src/sfnt/ttkern.c (tt_face_get_kerning): Fix a serious bug that
	causes some programs to go into an infinite loop when dealing with
	fonts that don't have a properly sorted kerning sub-table.

2006-03-26  Werner Lemberg  <wl@gnu.org>

	* src/bdf/bdflib.c (ERRMSG4): New macro.
	(_bdf_parse_glyphs): Handle invalid BBX values.

	* include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error
	macro.

2006-03-23  Werner Lemberg  <wl@gnu.org>

	* docs/CHANGES: Updated.


	* src/tools/docmaker/tohtml.py (html_header_2): Add horizontal
	padding between table elements.
	(html_header_1): The `DOCTYPE' comment must be in uppercase.
	(make_html_para): Convert `...' quotations into real left and
	right single quotes.
	Use `para_header' and `para_footer'.

	* src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'"
	also.

2006-03-23  David Turner <david@freetype.org>

	Add FT_Get_SubGlyph_Info API to retrieve subglyph data.  Note that
	we do not expose the FT_SubGlyphRec structure.

	* include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved
	to...
	* include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here.
	(FT_Get_SybGlyph_Info): New declaration.

	* src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function.


	* src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and
	rsb_delta correctly in edge cases.

2006-03-22  Werner Lemberg  <wl@gnu.org>

	* src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup)
	[!FTC_INLINE]: Compile conditionally.
	* src/cache/ftccache.h: Updated.

	* src/cache/ftcglyph.c (FTC_GNode_Init, FTC_GNode_UnselectFamily,
	FTC_GNode_Done, FTC_GNode_Compare, FTC_Family_Init, FTC_GCache_New):
	s/FT_EXPORT/FT_LOCAL/.
	(FTC_GCache_Init, FTC_GCache_Done): Commented out.
	(FTC_GCache_Lookup) [!FTC_INLINE]: Compile conditionally.
	s/FT_EXPORT/FT_LOCAL/.
	* src/cache/ftcglyph.h: Updated.

	* src/cache/ftcimage.c (FTC_INode_Free, FTC_INode_New):
	s/FT_EXPORT/FT_LOCAL/.
	(FTC_INode_Weight): Commented out.
	* src/cache/ftcimage.h: Updated.

	* src/cache/ftmanag.c (FTC_Manager_Compress,
	FTC_Manager_RegisterCache, FTC_Manager_FlushN):
	s/FT_EXPORT/FT_LOCAL/.
	* src/cache/ftmanag.h: Updated.

	* src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New,
	FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/.
	(FTC_SNode_Weight): Commented out.
	* src/cache/ftcsbits.h: Updated.

2006-03-22  Werner Lemberg  <wl@gnu.org>

	* src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy):
	Remove, unused.

	* src/cache/ftccmap.h: Remove, unused.

	* src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h.

2006-03-21  Zhe Su  <james.su@gmail.com>

	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
	algorithm.

2006-03-21  Werner Lemberg  <wl@gnu.org>

	* src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member.

	* src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'.

	* src/cff/cffgload.c (cff_slot_load): Change type of third parameter
	to `FT_UInt'.
	Check range of `glyph_index'.
	* src/cff/cffgload.h: Updated.


	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset
	correctly.


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

2006-03-21  David Turner  <david@freetype.org>

	* src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug
	that crashes the auto-hinter (introduced by previous patch).

2006-03-20  Werner Lemberg  <wl@gnu.org>

	* builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
	(FREETYPE_H): Updated.

	* src/cache/rules.mk (CACHE_H_DIR): Remove.
	(CACHE_DRV_H): Updated.

2006-03-20  David Turner  <david@freetype.org>

	* include/freetype/cache/ftccache.h,
	include/freetype/cache/ftccmap.h, include/freetype/cache/ftcglyph.h
	include/freetype/cache/ftcimage.h include/freetype/cache/ftcmanag.h
	include/freetype/cache/ftcmru.h include/freetype/cache/ftcsbits.h:
	Move to...

	* src/cache/ftccache.h, src/cache/ftcglyph.h, src/cache/ftcimage.h,
	src/cache/ftcsbits.h, src/cache/ftcmanag.h, src/cache/ftccmap.h,
	src/cache/ftcmru.h: This new location.
	Update declarations according to the changes in the corresponding
	source files.

	Note that these files are not used by FreeType clients; all public
	APIs of the cache module have been already moved to
	`include/freetype/ftcache.h', and all FT_CACHE_INTERNAL_XXXX_H
	macros resolve to it.

	Reason for the move is to allow modifications of the internals
	without interferences with rogue clients.  Note that there are no
	known clients that access the cache internals at the moment.

	* builds/unix/install.mk (install): Don't install headers from
	$(CACHE_H).
	Remove `freetype/cache' from the target directory.

	* include/freetype/config/ftheader.h (FT_CACHE_MANAGER_H,
	FT_CACHE_INTERNAL_MRU_H, FT_CACHE_INTERNAL_MANAGER_H,
	FT_CACHE_INTERNAL_CACHE_H, FT_CACHE_INTERNAL_GLYPH_H,
	FT_CACHE_INTERNAL_IMAGE_H, FT_CACHE_INTERNAL_SBITS_H): Point to
	FT_CACHE_H.

	* src/cache/ftcbasic.c, src/cache/ftccache.h, src/cache/ftccback.h,
	src/cache/ftccmap.c, src/cache/ftcglyph.c, src/cache/ftcglyph.h,
	src/cache/ftcimage.c, src/cache/ftcimage.h, src/cache/ftcmanag.c,
	src/cache/ftcmanag.h, src/cache/ftcmru.h, src/cache/ftcsbits.c,
	src/cache/ftcsbits.h: Don't use the FT_CACHE_INTERNAL_XXX_H macros
	but include the headers directly (which are now in `src/cache').

	* src/cache/ftccache.c:  Don't use the FT_CACHE_INTERNAL_XXX_H
	macros but include the headers directly.
	(FTC_Cache_Init, FTC_Cache_Done, FTC_Cache_NewNode,
	FTC_Cache_Lookup, FTC_Cache_RemoveFaceID): Declare as FT_LOCAL_DEF.

	* src/cache/ftccache.c:  Don't use the FT_CACHE_INTERNAL_XXX_H
	macros but include the headers directly.
	(FTC_MruNode_Prepend, FTC_MruNode_Up, FTC_MruNode_Remove,
	FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done,
	FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection):
	Declare as FT_LOCAL_DEF.
	(FTC_MruListFind, FTC_MruList_Lookup) [!FTC_INLINE]: Compile
	conditionally.
	Declare as FT_LOCAL_DEF.


	* builds/win32/visualc/freetype.dsp: Update project file, add
	missing base source files (ftstroke.c, ftxf86.c, etc.).


	* src/autofit/afcjk.c, src/autofit/aflatin.c, src/base/ftobjs.c,
	src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrobjs.c,
	src/sfnt/sfobjs.c, src/sfnt/ttmtx.c, src/type1/t1afm.c,
	src/type1/t1objs.c: Remove compiler warnings when building with
	Visual C++ 6 and /W4.

	* src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
	hinting for italic/oblique fonts.



	* src/truetype/ttpload.c, src/truetype/ttpload.h
	(tt_face_get_device_metrics): Change second argument to `FT_UInt'.

2006-03-06  David Turner  <david@freetype.org>

	* src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in
	Mozilla/FireFox print preview in Ubuntu Hoary.

2006-02-28  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not
	return error when size == 0.

2006-02-28  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/base/ftobjs.c (FT_Done_Library): Remove modules in reverse
	order so that type42 module is removed before truetype module.  This
	avoids double free in some occasions.

2006-02-28  David Turner  <david@freetype.org>

	* Release candidate VER-2-2-0-RC4.
	----------------------------------

	* docs/CHANGES: Documentation updates.

2006-02-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
	build ftvalid in ft2demos.  It works as dummy ABI if gxvalid is not
	built.

2006-02-27  Werner Lemberg  <wl@gnu.org>

	* include/freetype/cache/ftccache.h
	[FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
	ftc_node_done.

	* src/cache/ftccache.c (ftc_node_destroy)
	[!FT_CONFIG_OPTION_OLD_INTERNALS]: Mark as FT_LOCAL_DEF.  This
	should now fix all possible compilation options.

2006-02-27  David Turner  <david@freetype.org>

	* src/base/ftutil.c (ft_mem_alloc, ft_mem_qalloc, ft_mem_realloc,
	ft_mem_qrealloc): Return an error if a negative size is passed in
	parameters.

	* src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since
	it needs to be exported for rogue clients.

	* src/pshinter/pshglob.c (psh_blues_set_zones_0): Prevent problems
	with malformed fonts which have an odd number of blue values (these
	are broken according to the specs).

	* src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c
	(T1_Open_Face): Modify the loaders to force even-ness of
	`num_blue_values'.

	(cff_index_access_element): Ignore invalid entries in index files.

2006-02-27  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width
	or height is 0.

2006-02-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* builds/mac/FreeType.m68k_cfm.make.txt,
	builds/mac/FreeType.m68k_far.make.txt,
	builds/mac/FreeType.ppc_carbon.make.txt,
	builds/mac/FreeType.ppc_classic.make.txt: Update to new header
	inclusion introduced on 2006-02-16.

2006-02-27  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/base/ftobjs.c (GRID_FIT_METRICS): New macro.
	(ft_glyphslot_grid_fit_metrics, FT_Load_Glyph) [GRID_FIT_METRICS]:
	Re-enable glyph metrics grid-fitting.  It is now done in the base
	layer.
	(FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and
	height are not too small or too large, just like we were doing in
	2.1.10.

	* src/autofit/afloader.c (af_loader_load_g): The vertical metrics
	are not scaled.

2006-02-26  Werner Lemberg  <wl@gnu.org>

	* docs/release: Minor additions and clarifications.

	* docs/CHANGES: Updated to reflect many fixes for backwards
	compatibility.  Still incomplete.

2006-02-26  David Turner  <david@freetype.org>

	* src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable
	conservative rounding of metrics to avoid breaking clients like
	Pango (see http://bugzilla.gnome.org/show_bug.cgi?id=327852).

2006-02-25  Werner Lemberg  <wl@gnu.org>

	* devel/ftoption.h: Synchronize with
	include/freetype/config/ftoption.h.

	* src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again).

2006-02-25  David Turner  <david@freetype.org>

	Fix compiler warnings as well as C++ compilation problems.
	Add missing prototypes.

	* src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c,
	src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c,
	src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c
	src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts,
	initialize variables, and decorate functions with FT_CALLBACK_DEF,
	etc., to fix compiler warnings (and C++ compiling errors).

	* src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with
	gcc.

	* builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but
	FT_INTERNAL_STREAM_H.

	* src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H.

	* include/freetype/config/ftheader.h (FT_PFR_H): New macro.

	* include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't
	define for C++.

	* include/freetype/internal/services/svotval.h: Don't include
	FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H.

	* include/freetype/internal/services/svpfr.h: Include FT_PFR_H.

	* src/gzip/ftgzip.c: Include FT_GZIP_H.

	* src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H.

	* src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code.

2006-02-24  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
	ft_contour_enclosed, ft_outline_get_orientation): Commented out.  We
	have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized.
	(FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'.

2006-02-24  Chia-I Wu  <b90201047@ntu.edu.tw>

	* include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update
	documentation.

	* include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap),
	src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make
	sure a glyph slot owns its bitmap.  It is also marked experimental
	and due to change.
	(FT_GlyphSlot_Embolden): Undo the last change.  It turns out that
	rendering the outline confuses some applications.

2006-02-24  David Turner  <david@freetype.org>

	* Release candidate VER-2-2-0-RC3.
	----------------------------------

	* src/cache/ftcbasic.c: Correct compatibility hack bug.

2006-02-24  Chia-I Wu  <b90201047@ntu.edu.tw>

	* include/freetype/freetype.h (FT_Size_RequestRec): Change the type
	of `width' and `height' to `FT_Long'.
	(enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics):
	New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales
	directly.

2006-02-23  David Turner  <david@freetype.org>

	Two BDF patches from Debian libfreetype6 for 2.1.10.

	* src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width
	glyphs.
	Fix a problem with large encodings.


	Fix binary compatibility issues for gnustep-back (GNUstep backend
	module) which still crashes under Sarge.

	* src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec,
	FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data
	structures and enumerations.
	(FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New
	compatibility code.

	* src/cache/ftcbasic.c: Fix a silly bug that prevented our `hack' to
	support rogue clients compiled against 2.1.7 to work correctly.
	This probably explains the GNUstep crashes with the second release
	candidate.

2006-02-23  Chia-I Wu  <b90201047@ntu.edu.tw>

	* include/freetype/ftoutln.h (enum FT_Orientation): New value
	`FT_ORIENTATION_NONE'.

	* src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
	ft_contour_enclosed, ft_outline_get_orientation): Another version of
	`FT_Outline_Get_Orientation'.  This version differs from the public
	one in that each part (contour not enclosed in another contour) of the
	outline is checked for orientation.
	(FT_Outline_Embolden): Use `ft_outline_get_orientation'.

	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and
	use bitmap's embolden routine when the outline one failed.

2006-02-22  Chia-I Wu  <b90201047@ntu.edu.tw>

	* modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI
	compatibility.

	* src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak.

	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
	tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit
	loading.  (Only tested with bit aligned sbit with x_pos == 0.)

	* src/truetype/ttpload.c (tt_face_load_hdmx,
	tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
	actually used.

2006-02-21  David Turner  <david@freetype.org>

	Add a new API named FT_Get_TrueType_Engine_Type to determine whether
	we have a patented, unpatented, or unimplemented TrueType bytecode
	interpreter.

	The FT_Get_Module_Flags API was removed consequently.

	* include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed.
	Replaced with...
	(FT_Get_TrueType_Engine_Type): This.
	(FT_TrueTypeEngineType): New enumeration.

	* include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
	New macro.

	* src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
	(FT_Module_Get_Flags): Removed.  Replaced with...
	(FT_Get_TrueType_Engine_Type): This.

	* src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
	(tt_service_truetype_engine): New service structure.
	(tt_services): Register it.

	* include/freetype/internal/services/svtteng.h: New file.


	* src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
	embedded bitmaps from being correctly listed and used.


	* src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization
	if FT_CONFIG_OPTION_OLD_INTERNALS is used.  The is necessary because
	libXfont is directly accessing the HMTX data, unfortunately.
	Fix some compiler warnings.
	(tt_face_get_metrics): Ditto.


	* src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
	character advances.

2006-02-20  David Turner  <david@freetype.org>

	Support binary compatibility with the X.Org server's Xfont library.
	Note that this change unfortunately prevents memory optimizations
	for the embedded bitmap loader.

	* include/freetype/internal/sfnt.h (SFNT_Interface): Move
	`set_sbit_strike' and `load_sbit_metrics' fields to the location of
	version 2.1.8.

	* src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call
	FT_Size_Request.
	(sfnt_interface): Updated.

	* src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load
	ttsbit0.c.
	(tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static.

	* src/sfnt/ttsbit.h: Updated.

2006-02-17  David Turner  <david@freetype.org>

	* builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported
	functions anymore.  This ensures that all FT_BASE internal functions
	are available for dynamic linking.

	* include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE,
	FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec,
	FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New,
	FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx,
	ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup,
	FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup)
	[FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the
	cache sub-system.  We try to recognize old legacy signatures with a
	gross hack (hope it works).

2006-02-17  Werner Lemberg  <wl@gnu.org>

	* devel/ftoption.h: Synchronize with
	include/freetype/config/ftoption.h.

2006-02-16  David Turner  <david@freetype.org>

	Massive changes to the internals to respect the internal object
	layouts and exported functions of FreeType 2.1.7.  Note that the
	cache sub-system cannot be fully retrofitted, unfortunately.

	* include/freetype/config/ftoption.h
	(FT_CONFIG_OPTION_OLD_INTERNALS): New macro.

	* include/freetype/ftcache.h, include/freetype/cache/ftccache.h,
	include/freetype/cache/ftccmap.h,
	include/freetype/internal/ftcalc.h,
	include/freetype/internal/ftdriver.h,
	include/freetype/internal/ftmemory.h,
	include/freetype/internal/ftobjs.h,
	include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
	include/freetype/internal/t1types.h,
	include/freetype/internal/tttypes.h, src/base/ftcalc.c,
	src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c,
	src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h,
	src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
	src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
	src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
	src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
	Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data
	structures.

	Move newly added structure elements to the end of the affected
	structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is
	defined) to assure binary compatibility with older FreeType
	versions.
	Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old
	functions:

	  ft_stub_set_char_sizes
	  ft_stub_set_pixel_sizes

	Rename the following internal functions to provide the old function
	names as stubs:

	  FT_Alloc          -> ft_mem_alloc
	  FT_QAlloc         -> ft_mem_qalloc
	  FT_Realloc        -> ft_mem_realloc
	  FT_QRealloc       -> ft_mem_qrealloc
	  FT_Free           -> ft_mem_free
	  FT_Alloc_Debug    -> ft_mem_alloc_debug
	  FT_QAlloc_Debug   -> ft_mem_qalloc_debug
	  FT_Realloc_Debug  -> ft_mem_realloc_debug
	  FT_QRealloc_Debug -> ft_mem_qrealloc_debug
	  FT_Free_Debug     -> ft_mem_free_debug

2006-02-15  Chia-I Wu  <b90201047@ntu.edu.tw>

	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
	unused `max_points' and `max_contours'.

	* src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
	(T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update.

	* include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
	`max_components'.

	* src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused
	`loadSize' and `loadStack'.

	* src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context),
	src/sfnt/ttload.c (tt_face_load_maxp): Update.

	* src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c
	(sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix
	compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not
	defined.

	* src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix
	possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions.
	(finally!)


	For most OpenType tables, `tt_face_load_xxxx' simply loads the table
	and `face->root' is set later in `sfnt_load_face'.  Here, we try to
	make this work for _all_ tables.  Also improve tracing messages.

	* src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c,
	src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and
	then exit.  Error handling or setting face->root is done later in
	`sfnt_load_face'.

	* src/sfnt/sfobjs.c (sfnt_load_face): Work harder.
	Mac bitmap-only fonts are not scalable.
	Check that `face->header.Units_Per_EM' is not zero.
	(LOAD_, LOADM_): Emit pretty trace messages.

	* src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics
	from `eblc'.

	* src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c
	(load_format_20, load_format_25, tt_face_get_ps_name): Use
	face->max_profile.numGlyphs, instead of face->root.num_glyphs.

2006-02-14  Werner Lemberg  <wl@gnu.org>

	* include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in
	documentation that negative strength values are possible.
	Give an example call.

	* include/freetype/freetype.h (FT_GlyphSlotRec): Improve
	documentation of `outline' field.

	* src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
	* src/sfnt/sfdriver.c: Include ttmtx.h.

	* src/autofit/afcjk.c: Include aftypes.h and aflatin.h.

2006-02-14  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.

2006-02-14  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply
	return error if table is missing.
	Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'.

	* src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics
	tables.  The last change makes Mac bitmap-only font not load and
	this fixes it.

	* src/truetype/ttgload.c (load_truetype_glyph): Fix compilation
	error when FT_CONFIG_OPTION_INCREMENTAL is defined.

2006-02-13  Chia-I Wu  <b90201047@ntu.edu.tw>

	Clean up the SFNT_Interface.  In this final pass, `load_hmtx' is
	split from `load_hhea'.

	* include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
	src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.

	* src/sfnt/sfobjs.c (sfnt_load_face): Update.

2006-02-13  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
	code...

2006-02-13  Chia-I Wu  <b90201047@ntu.edu.tw>

	Clean up the SFNT_Interface.  In this pass, we want to treat the
	font directory (offset table and table directory) as a normal table
	like the others.  This also means that TTCs are no longer recognized
	there but in `init_face'.

	* include/freetype/internal/sfnt.h (SFNT_Interface),
	src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are
	combined and renamed to `load_font_dir'.

	* src/sfnt/ttload.h, src/sfnt/ttload.c:
	s/sfnt_dir_check/check_table_dir/.
	`sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'.
	`tt_face_load_sfnt_header' and `tt_face_load_directory' are combined
	and renamed to `tt_face_load_font_dir'.

	* src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.

2006-02-13  Chia-I Wu  <b90201047@ntu.edu.tw>

	Clean up the SFNT_Interface.  Table loading functions are now named
	after the tables' tags; `hdmx' is TrueType-specific and thus the
	code is moved to the truetype module; `get_metrics' is moved here
	from the truetype module so that the code can be shared with the cff
	module.

	This pass involves no real changes.  That is, the code is moved
	verbatim mostly.  The only exception is the return value of
	`tt_face_get_metrics'.

	* include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
	src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
	src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
	src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.

	* src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: New files.  Metrics-related
	tables' loading and parsing code is moved to here.
	Move `tt_face_get_metrics' here from the truetype module.  The
	return value is changed from `void' to `FT_Error'.

	* include/freetype/internal/fttrace.h: New trace: ttmtx.

	* src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
	parsing code is moved here.
	New function `tt_face_load_prep' split from `tt_face_load_fpgm'.
	`tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.

	* src/cff/cffgload.c, src/cff/cffobjs.c: Update.

	* src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.

2006-02-11  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug...

	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Use
	AF_LatinMetricsRec as the dummy metrics because we cast the metrics
	to it later in `af_latin_hints_link_segments'.

2006-02-11  Chia-I Wu  <b90201047@ntu.edu.tw>

	* include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define
	to enable autofit CJK script support.  (#define'd by default.)

	* src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro.

	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure
	that `edge_distance_threshold' is always set.
	(af_latin_hints_link_segments): Potential divide-by-zero bug.
	Use latin constant in the scoring formula.

	* src/autofit/afcjk.c: Minor updates due to the above three changes.

	* docs/TODO, docs/CHANGES: Updated.

2006-02-09  Chia-I Wu  <b90201047@ntu.edu.tw>

	Introduce experimental autofit CJK module based on akito's autohint
	patch.  You need to #define AF_MOD_CJK in afcjk.c to enable it.

	* src/autofit/afglobal.c, src/autofit/afcjk.h, src/autofit/afcjk.c,
	src/autofit/rules.mk, src/autofit/autofit.c, src/autofit/aftypes.h:
	Add CJK module based on akito's autohint patch.

	* src/autofit/afhints.h (AF_SegmentRec): New field `len' for the
	overlap length of the segments.
	(AF_SEGMENT_LEN, AF_SEGMENT_DIST): New macros.

	* src/autofit/aflatin.h (af_latin_metrics_init_widths),
	src/autofit/aflatin.c (af_latin_metrics_init_widths): Made
	`FT_LOCAL'.
	Use the character given by the caller.
	(af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale
	the thresholds.

	* src/autofit/afloader.c (af_loader_load_g): Respect
	AF_SCALER_FLAG_NO_ADVANCE.

2006-02-09  Werner Lemberg  <wl@gnu.org>

	* src/cid/cidparse.c (cid_parse_new): Remove shadowing variable.

2006-02-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* src/cid/cidparse.c (cid_parse_new): Fix for abnormally short or
	broken CIDFont.  Reported by Taek Kwan(TK) Lee (see ft-devel
	2005-11-02).

2006-02-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* builds/unix/configure.ac: Fix bug for `--with-old-mac-fonts'
	option on UNIX platform.  It has been broken since 2006-01-11.

2006-02-01  Werner Lemberg  <wl@gnu.org>

	* src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/.
	* src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/.

	* builds/unix/unixddef.mk: Actually do define PLATFORM (fixing
	change from 2006-01-31).
	(TOP_DIR, OBJ_DIR): Update.

	* builds/unix/install.mk (install): Fix path for ftmodule.h.

	* Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use
	`?=' where appropriate.

	* builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR),
	builds/win32/w32-dev.mk (TOP_DIR): Removed.  Defined elsewhere.

2006-01-31  Werner Lemberg  <wl@gnu.org>

	Implement new, simplified module selection.  With GNU make it is now
	sufficient to modify a single file, `modules.cfg', to control the
	inclusion of modules and base extension files.

	This change also fixes the creation of ftmodule.h; it now depends on
	`modules.cfg' and thus is rebuilt only if necessary.

	Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
	default location.

	* modules.cfg: New file.

	* builds/freetype.mk: Don't include `modules.mk'.
	Include all `rules.mk' files as specified in `modules.cfg'.
	(FTOPTION_FLAG, FTOPTION_H): New variables.
	(FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
	Add FTOPTION_FLAG.
	($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
	(CONFIG_H): Add FTMODULE_H and FTOPTION_H.
	(INCLUDES): Add DEVEL_DIR.
	(INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
	OBJ_M, OBJ_S): Use `:=', not `='.
	(remove_ftmodule_h): New phony target to delete `ftmodule.h'.
	(distclean): Add remove_ftmodule_h.

	* builds/modules.mk: (MODULE_LIST): Removed.
	(make_module_list, clean_module_list): Replace targets
	with...
	(FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
	variables.  Reason for the change is that it is not possible to have
	a phony prerequisite which is run only if the target file must be
	rebuilt (phony prerequisites act like subroutines and are *always*
	executed).  We only want to rebuild `ftmodule.h' if `module.cfg' is
	changed.
	Update all callers.
	($FTMODULE_H)): Rule to create `ftmodule.h', depending on
	`modules.cfg'.

	* builds/toplevel.mk: Rewrite and simplify module handling.
	(MODULES_CFG, FTMODULE_H): New variables.
	Include MODULES_CFG.
	(MODULES): New variable to include all `module.mk' and `rules.mk'
	files.  We no longer use make's `wildcard' function for this.

	* Makefile (USE_MODULES): Remove.  Update all users.
	(OBJ_DIR): Define it here.

	* src/*/module.mk: Change

	    make_module_list: foo
	    foo: ...

	to

	    FTMODULE_H_COMMANDS += FOO
	    define FOO
	    ...
	    endef

	in all files.  `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.

	* src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.

	* builds/unix/detect.mk (setup): Always execute `configure' script.
	(have_mk): Rename to...
	(have_Makefile): This.
	Don't use `strip' function.

	* builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
	defined.
	(have_mk): Don't use `strip' function.
	Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
	accordingly).

	* builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.

	* builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
	builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
	BUILD_DIR but DEVEL_DIR for development header files.

	* builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
	builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
	(TOP_DIR, OBJ_DIR): Removed.  Defined elsewhere.

	* builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
	builds/win32/win32-def.mk (OBJ_DIR): Removed.  Defined elsewhere.

	* builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
	development header files.
	Don't define PLATFORM.

	* configure: Copy `modules.cfg' to builddir if builddir != srcdir.
	Update snippet taken from autoconf's m4sh.m4 to current CVS version.
	Be more verbose.

	* include/freetype/config/ftmodule.h: Add comments -- this file is
	no longer used if FreeType is built with GNU make.

	* docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
	docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
	Other minor updates.

	* modules.txt: Removed.  Contents included in `modules.cfg'.


	* include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
	FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.

	* src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
	FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
	[FT_STRICT_ALIASING]: Implement.

2006-01-31  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
	(cid_face_init), src/pfr/pfrobjs.c (pfr_face_init),
	src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 *
	units_per_EM, ascender - descender).

2006-01-31  Chia-I Wu  <b90201047@ntu.edu.tw>

	* include/freetype/internal/t1types.h (AFM_FontInfo),
	src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox',
	`Ascender', and `Descender' from an AFM.

	* src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.

	* include/freetype/freetype.h (FT_FaceRec): Mention that fields may
	be changed after file attachment.

2006-01-28  Werner Lemberg  <wl@gnu.org>

	* src/*/module.mk (.PHONY): Add.

2006-01-27  Werner Lemberg  <wl@gnu.org>

	* README, docs/FTL.TXT: Fix email address for bug reports.
	Other minor formatting.

	* devel/ftoption.h: Synchronize with
	include/freetype/config/ftoption.h.

	* src/autofit/module.mk (add_autofit_module), src/bdf/module.mk
	(add_bdf_module), src/type42/module.mk (add_type42_driver): Fix
	whitespace.

	* src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv
	renderer classes.

2006-01-27  David Turner  <david@freetype.org>

	* builds/unix/configure.ac: Fix build problem on Cygwin.

	* builds/unix/install.mk (install): Don't install the internal
	headers, and remove existing ones if found in the target install
	directory.

	* src/autofit/afwarp.c: Add simple #ifdef to prevent compilation
	if the warp hinter isn't active (it shouldn't, still experimental).

	* Jamfile, include/freetype/config/ftmodule.h: Remove `gxvalid'
	and `otvalid' from the list of modules that are linked statically
	to a given FreeType library.  Functionality has been moved to the
	`ftvalid' CVS module.

	Note also that current Make-based build system still compiles the
	modules though.

	* include/freetype/config/ftoption.h (FT_STRICT_ALIASING): New macro
	which controls the definitions of the memory management functions to
	avoid warnings with recent versions of GCC.  This macro is only here
	to be disabled, in case we detect problems with the new scheme.

	NOTE: Disable macro to use the memory debugger -- this will be fixed
	      later!

	* include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc,
	FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]:
	New versions.


	* builds/win32/visualc/freetype.dsp: Updating project file to
	define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from
	compilation.


	* builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the
	macro FT2_BUILD_LIBRARY when compiling the library.

	* include/freetype/config/ftheader.h: Remove inclusions of internal
	headers except if the macro FT2_BUILD_LIBRARY is defined.


	* include/freetype/internal/psaux.h (AFM_KernPair, AFM_TrackKern,
	AFM_FontInfo): Move structure declarations to...
	* include/freetype/internal/t1types.h: This file.


	* (many files): Fix compiler warnings.
	Various minor reorganizations.


	* src/cff/cffload.c (cff_font_done): Don't free static array
	`subfonts'.

	* src/otvalid/otvcommn.c (otv_ClassDef_validate),
	src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information.


	Get rid of writable static variables (i.e., the string table) in
	afmparse, and fix compilation in FT2_MULTI mode.

	* src/psaux/afmparse.c: Include ft2build.h and FT_FREETYPE_H.
	(AFM_MAX_ARGUMENTS): Define...
	* src/psaux/afmparse.h: Here.
	* src/psaux/Jamfile (_sources): Add afmparse.

	* src/psaux/psconv.c: Include psconv.h.

	* src/type1/t1afm.c: Don't include FT_INTERNAL_TYPE1_TYPES_H but
	FT_INTERNAL_POSTSCRIPT_AUX_H.
	* src/type1/t1afm.h: Include FT_INTERNAL_TYPE1_TYPES_H.

2006-01-23  Chia-I Wu  <b90201047@ntu.edu.tw>

	* include/freetype/freetype.h (FT_Select_Size): Rename the second
	argument from `idx' to `strike_index'.
	(FT_Size_Request_Type): Add FT_SIZE_REQUEST_TYPE_MAX to the end of
	this enum.

	* include/freetype/internal/ftobjs.h (FT_REQUEST_WIDTH,
	FT_REQUEST_HEIGHT): New macros to get the width and height of a
	request, in fractional pixels.

	* include/freetype/internal/ftobjs.h (FT_Select_Metrics,
	FT_Request_Metrics), src/base/ftobjs.c (FT_Select_Metrics,
	FT_Request_Metrics): New base functions to set the font metrics.  They
	were part of FT_Select_Size/FT_Request_Size and are made independent
	functions so that metrics are not set again and again.

	* src/base/ftobjs.c (FT_Select_Size, FT_Request_Size): Metrics are set
	only when driver's size_select/size_request is NULL.  That is, drivers
	should set the metrics themselves.
	(FT_Match_Size): Round before matching.  This was what we did and it
	does cause some problems without rounding.

	* src/cff/cffobjs.c (cff_size_select), src/truetype/ttdriver.c
	(tt_size_select): Set the font metrics.
	s/index/strike_index/.
	The scaled metrics are always preferred over strikes' metrics, even
	when some strike is selected.  This is done because the strikes'
	metrics are not reliable, e.g., the sign of the descender is wrong for
	some fonts.

	* src/cff/cffobjs.c (cff_size_request), src/truetype/ttdriver.c
	(tt_size_request): Set the font metrics.
	Call cff_size_select/tt_size_select when some strike is matched.

	* src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/cid/cidobjs.c,
	src/pcf/pcfdrivr.c, src/truetype/ttdriver.c, src/type1/t1objs.c,
	src/type1/t1objs.h, src/type42/t42objs.c, src/winfonts/winfnt.c:
	Set the font metrics.
	s/index/strike_index/.

	* src/tools/test_afm.c, src/psaux/psconv.c: Older versions of these
	files were committed.  Just a catch-up.
	(PS_Conv_ToFixed): Remove the `goto'.
	(PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Speed up a little.

	* src/sfnt/ttsbit.c (tt_face_load_sbit_strikes,
	tt_face_load_strike_metrics), src/sfnt/ttsbit0.c
	(tt_face_load_sbit_strikes, tt_face_load_strike_metrics): The
	advertised metrics in `available_sizes' are different from those
	actually used.

2006-01-23  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/psaux/psaux.c src/psaux/psauxmod.c src/type1/t1driver.c: Make
	AFM parser optional, controlled by `T1_CONFIG_OPTION_NO_AFM'.

2006-01-22  Werner Lemberg  <wl@gnu.org>

	* builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
	`texinfo' CVS module at savannah.gnu.org.

2006-01-21  Werner Lemberg  <wl@gnu.org>

	* src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c.

	* src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up
	to avoid compiler warnings.

	* src/autofit/afwarp.c (af_warper_compute_line_best): Remove
	shadowing variable declarations.
	Fix warning parameters and replace printf with AF_LOG.
	(af_warper_compute): Remove unused variable.

2006-01-20  David Turner  <david@freetype.org>

	Adding experimental implementation of `warp hinting' (new hinting
	algorithm for gray-level and LCD rendering).  It is disabled by
	default, you need to #define AF_USE_WARPER in aftypes.h.

	* src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]:
	New function.
	* src/autofit/afhints.h: Updated.

	* src/autofit/aflatin.c [AF_USE_WARPER]: Include afwarp.h.
	(af_latin_hints_init) [AF_USE_WARPER]: Reset mode to
	FT_RENDER_MODE_NORMAL if an LCD mode is selected.
	(af_latin_hints_apply) [AF_USE_WARPER]: Call af_warper_compute
	appropriately.

	* src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]:
	Isolate code for adjusting metrics.

	* src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by
	default).

	* src/autofit/afwarp.c, src/autofit/afwarp.h: New files.

	* src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c.

	* src/autofit/Jamfile (_sources): Add afwarp.

2006-01-19  David Turner  <david@freetype.org>

	* src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug
	that prevented compilation when FT_OPTIMIZE_MEMORY is defined.

2006-01-19  Brian Weed  <bw@imaginengine.com>

	* builds/win32/visualc/freetype.dsp: Updated.

2006-01-17  Werner Lemberg  <wl@gnu.org>

	Use pscmap service in CFF module.

	* src/cff/cffcmap.c (cff_cmap_uni_pair_compare): Removed.
	(cff_sid_to_glyph_name): New function.
	(cff_cmap_unicode_init, cff_cmap_unicode_done,
	cff_cmap_unicode_char_index, cff_cmap_unicode_char next): Use pscmap
	service.
	(cff_cmap_unicode_class_rec): Updated.
	* src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed.


	* src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode'
	return value.


	* src/psaux/afmparse.c (afm_parser_read_vals): Use double casting
	to avoid compiler warnings regarding type-punning.

2006-01-16  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
	implement an AFM parser.

	* src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
	conversion functions (e.g., PS real number => FT_Fixed) for the
	PS_Parser and AFM_Parser.  Some of the functions are taken, with
	some modifications, from the file psobjs.c.

	* src/psaux/psobjs.c: Use functions from psconv.c.

	* include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add
	`AFM_Parser' to the `psaux' service.

	* src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include
	those new files.

	* src/tools/test_afm.c: A test program for AFM parser.

	* include/freetype/internal/services/svkern.h: New file providing a
	`Kerning' service.  It is currently only used to get the track
	kerning information.

	* include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New
	macro.

	* src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
	src/type1/t1afm.h: Update to use the AFM parser.
	Provide the `Kerning' service.

	* include/freetype/freetype.h, src/base/ftobjs.c: New API
	`FT_Get_Track_Kerning'.

2006-01-15  Chia-I Wu  <b90201047@ntu.edu.tw>

	* include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
	src/bdf/bdfdrivr.c, src/cff/cffgload.c, src/cid/cidgload.c,
	src/pcf/pcfdrivr.c, src/type1/t1gload.c, src/winfonts/winfnt.c:
	s/ft_fake_vertical_metrics/ft_synthesize_vertical_metrics/.

	* docs/CHANGES: Mention that vertical metrics are synthesized for
	fonts not having this info.

2006-01-15  Chia-I Wu  <b90201047@ntu.edu.tw>

	* include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics),
	src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake
	vertical metrics.

	* src/cff/cffgload.c, src/cid/cidgload.c, src/pcf/pcfdrivr.c,
	src/type1/t1gload.c, src/winfonts/winfnt.c: Fake vertical metrics,
	which are monotone.

	* src/truetype/ttgload.c (compute_glyph_metrics): Some fixes and
	formattings in vertical metrics faking.  There is still room for
	improvements (and so does the CFF module).

2006-01-15  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdrivr.c
	(PCF_Glyph_Load), src/winfonts/winfnt.c (FNT_Load_Glyph): Don't set
	the linear advance fields as they are only used by the outline
	glyphs.

	* include/freetype/freetype.h: Documentation updates and
	clarifications.
	The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real
	change need be made to the code.

	* src/base/ftobjs.c (FT_Load_Glyph): Resolve flag dependencies and
	decide whether to use the auto-hinter according to documentation.
	There should to be no real difference.
	Some checks (e.g., is text height positve?) after the glyph is
	loaded.
	(FT_Select_Size, FT_Request_Size): Scales are set to wrong values.
	Be careful that scales won't be negative.

2006-01-14  Chia-I Wu  <b90201047@ntu.edu.tw>

	* docs/CHANGES: Mention the size selection change.

	* src/bdf/bdfdrivr.c (BDF_Size_Request, BDF_Size_Select),
	src/pcf/pcfdrivr.c (PCF_Size_Request, PCF_Size_Select),
	src/winfonts/winfnt.c (FNT_Size_Request, FNT_Size_Select): Do size
	matching for requests of type NOMINAL and REAL_DIM.

	* src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when
	`pixel_height' is used for nominal height.

	* src/base/ftobjs.c (FT_Request_Size): Call `FT_Match_Size' if the
	face is bitmap only and driver doesn't provide `request_size'.  This
	is added merely for completion as no driver satisfies the conditions.

2006-01-13  Chia-I Wu  <b90201047@ntu.edu.tw>

	Introduce new size selection interface.

	* include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec):
	Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
	`select_size'.

	* include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
	FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
	(FT_Select_Size, FT_Request_Size): API additions to export the new
	size selection interface.

	* src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
	`FT_Request_Size'.

	* include/freetype/internal/ftobjs.h (FT_Match_Size),
	src/base/ftobjs.c (FT_Match_Size): New function to match a size
	request against `available_sizes'.  Drivers supporting bitmap strikes
	can use this function to implement `request_size'.

	* src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
	src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
	src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
	src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
	Update to new size selection interface.

	* src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
	src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
	src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
	selection interface.
	Make `strike_index' FT_ULong and always defined.
	Use `load_strike_metrics' provided by SFNT interface.

2006-01-13  Chia-I Wu  <b90201047@ntu.edu.tw>

	* include/freetype/internal/sfnt.h (SFNT_Interface): New method
	`load_strike_metrics' used to load the strike's metrics.

	* src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
	src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.

	* src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.

	* src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
	nominal size unless it is obviously incorrect.

	* include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
	FNT driver.

2006-01-12  Werner Lemberg  <wl@gnu.org>

	Prepare use of pscmap service within CFF module.

	* include/freetype/internal/services/svpscmap.h: Include
	FT_INTERNAL_OBJECTS_H.
	(PS_Unicode_Index_Func): Removed.  Unused.
	(PS_Macintosh_Name_Func): Renamed to...
	(PS_Macintosh_NameFunc): This.
	Update all callers.
	(PS_Adobe_Std_Strings_Func): Renamed to...
	(PS_Adobe_Std_StringsFunc): This.
	Update all callers.
	(PS_UnicodesRec): This is the former `PS_Unicodes' structure.
	Add `cmap' member.
	Update all callers.
	(PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec.
	Update all callers.
	(PS_Glyph_NameFunc): New typedef.
	(PS_Unicodes_InitFunc): Change arguments to expect a function
	and generic data pointer which returns a glyph name from a given
	index.

	* src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index,
	ps_unicodes_char_next, pscmaps_interface): Updated.

	* include/freetype/internal/t1types.h (T1_FaceRec): Updated.

	* src/psaux/t1cmap.h (T1_CmapStdRec): Updated.
	(T1_CmapUnicode, T1_CmapUnicodeRec): Removed.

	* src/psaux/t1cmap.c (t1_get_glyph_name): New callback function.
	(t1_cmap_unicode_init, t1_cmap_unicode_done,
	t1_cmap_unicode_char_index, t1_cmap_unicode_char_next,
	t1_cmap_unicode_class_rec): Updated.

	* src/type42/t42types.h (T42_FaceRec): Updated.

2006-01-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* include/freetype/ftmac.h: Add declaration of new functions
	FT_New_Face_From_FSRef and FT_GetFile_From_Mac_ATS_Name that
	were introduced by the jumbo patch on  2006-01-11.

2006-01-11  Werner Lemberg  <wl@gnu.org>

	Fix Savannah bug #15056 and use pscmap service in psaux module.

	* include/freetype/internal/services/svpscmap.h (PS_UniMap): Use
	FT_UInt32 for `glyph_index'.
	(PS_Unicodes_InitFunc): Use FT_String for `glyph_names'.
	(PS_Unicodes_CharIndexFunc): Use FT_UInt32 for `unicode'.
	(PS_Unicodes_CharNextFunc): Make second argument a pointer to
	FT_UInt32.

	* src/psnames/psmodule.c (VARIANT_BIT, BASE_GLYPH): New macros.
	(ps_unicode_value): Set VARIANT_BIT in return value if glyph is a
	variant glyph (this is, it has non-leading `.' in its name).
	(compare_uni_maps): Sort base glyphs before variant glyphs.
	(ps_unicodes_init): Use FT_String for `glyph_names' argument.
	Reallocate only if number of used entries is much smaller.
	Updated to handle variant glyphs.
	(ps_unicodes_char_index, ps_unicodes_char_next): Prefer base glyphs
	over variant glyphs.
	Simplify code.

	* src/psaux/t1cmap.c (t1_cmap_uni_pair_compare): Removed.
	(t1_cmap_unicode_init, t1_cmap_unicode_char_index,
	t1_cmap_unicode_char_next): Use pscmap service.
	(t1_cmap_unicode_done): Updated.

	* src/psaux/t1cmap.h (T1_CMapUniPair): Removed.
	(T1_CMapUnicode): Use PS_Unicodes structure.

2006-01-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	Jumbo patch to fix `deprecated' warning of cross-build for Tiger on
	Intel, as reported by Sean McBride <sean@rogue-research.com> on
	2005-08-24.

	* src/base/ftmac.c: Heavy change to build without deprecated Carbon
	functions on Tiger.

	* builds/unix/configure.ac: Add options and autochecks for Carbon
	functions availabilities, for MacOS X.

	* builds/mac/ascii2mpw.py: Add converter for character `\305'.
	* builds/mac/FreeType.m68k_{far|cfm}.make.txt: Add conditional
	macros to avoid unavailable functions.
	ftmac.c must be compiled without `-strict ansi', because it disables
	cpp macro to use ToolBox system call.

	* builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional
	macros to avoid unavailable functions.

	* builds/mac/README: Detailed notes on function availabilities.

	* docs/CHANGES: Notes about (possible) incompatibilities.

2006-01-08  Werner Lemberg  <wl@gnu.org>

	* docs/CHANGES: Updated.

2006-01-08  Huw D M Davies  <h.davies1@physics.ox.ac.uk>

	* include/freetype/ftmodapi.h (FT_Module_Get_Flags): New
	declaration.

	* src/base/ftobjs.c (FT_Module_Get_Flags): New function.

2006-01-07  Werner Lemberg  <wl@gnu.org>

	* src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable
	`bitmaps'.  Reported by Yu Lei <yulei0@gmail.com>.

	* src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/.
	Reported by Niels Boldt <nielsboldt@gmail.com>.

2005-12-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for
	MPW compiler.

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

	* Jamfile (RefDoc), docs/reference/README: Fix it so that `jam
	refdoc' works correctly to generate the API reference in
	`docs/reference'.

	* src/tools/docmaker/tohtml.py (print_html_field,
	print_html_field_list): Update to output nicer fields lists in the
	API reference.

	* src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now
	forces auto-hinting.

	* freetype/freetype.h: Updating the documentation for
	FT_LOAD_TARGET_XXX and FT_Render_Mode values.

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

	* src/base/ftmac.c (FT_New_Face_From_Suitcase): Count scalable faces
	in supported formats (sfnt, LWFN) only, and ignore bitmap faces in
	unsupported formats (fbit, NFNT).  The number of available faces are
	passed via face->num_faces.  If bitmap faces are embedded in sfnt
	resource, face->num_fixed_size is correctly set.  In public API,
	FT_New_Face() and FT_New_Face_From_FSSpec() count the faces as
	FT_GetFile_From_Mac_Name(), which ignores NFNT resources.

	* doc/CHANGES: Mention the changes.

2005-12-17  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/truetype/ttinterp.c (Update_Max): Set current size of buffer
	correctly (so that memory debug system won't panic).

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

	* include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics),
	src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed.

	* src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round.

	* src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
	(cid_slot_load_glyph), src/truetype/ttgload.c (compute_glyph_metrics),
	src/type1/t1gload.c (T1_Load_Glyph): Do not round glyph metrics.

	* doc/CHANGES: Mention the changes.

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

	Change the implementation of the LIGHT hinting mode to completely
	disable horizontal hinting.  This is an experimental effort to
	integrate David Chester's latest patch without affecting the other
	hinting modes as well.

	Note that this doesn't force auto-hinting for all fonts, however.

	* src/autofit/afhints.c (af_glyph_hints_reload): Don't set
	scaler_fiags here but...
	(af_glyph_hints_rescale): Here.

	* src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
	hinting for `light' hinting mode.


	* Jamfile: Small fix to ensure that ftexport.sym is placed into the
	same location as other generated objects (i.e., within the `objs'
	directory of the current directory).


	Add support for an embedded `BDF ' table within SFNT-based bitmap
	font files.  This is used to store atoms & properties from the
	original BDF fonts that were used to generate the font file.

	The feature is controlled by TT_CONFIG_OPTION_BDF within
	`ftoption.h' and is used to implement FT_Get_BDF_Property for these
	font files.

	At the moment, this is still experimental, the BDF table format
	isn't cast into stone yet.

	* include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New
	macro.

	* include/freetype/config/ftstdlib.h (ft_memchr): New macro.

	* include/freetype/internal/tttypes.h (TT_BDFRec, TT_BDF)
	[TT_CONFIG_OPTION_BDF]: New structure.
	(TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'.

	* include/freetype/ttags.h (TTAG_BDF): New macro.

	* src/sfnt/Jamfile (_sources): Add ttbdf.

	* src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c.

	* src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and
	FT_SERVICE_BDF_H.
	(sfnt_get_charset_it) [TT_CONFIG_OPTION_BDF]: New function.
	(sfnt_service_bdf) [TT_CONFIG_OPTION_BDF]: New service.
	(sfnt_servives) [TT_CONFIG_OPTION_BDF]: Add sfnt_service_bdf.

	* src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c.

	* src/sfnt/sfobjs.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h.
	(sfnt_done_face) [TT_CONFIG_OPTION_BDF]: Call
	tt_face_free_bdf_props.

	* src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files.

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

	* src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to...
	* src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.

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

	* src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is
	initialized twice.
	size->strike_index is not initialized.

2005-12-02  Taek Kwan(TK) Lee  <taeklee@gmail.com>

	* src/type42/t42objs.c (T42_Face_Init): Replace call to
	FT_New_Memory_Face with call to FT_Open_Face to pass `params'.

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

	* docs/CHANGES: Document ftdump's `-v' option.
	Document latest charmap code changes.

	* src/sfnt/ttcmap.c, src/sfnt/ttcmap.h:
	s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/.

2005-11-30  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/sfnt/ttcmap.c (tt_cmap4_char_map_binary,
	tt_cmap12_char_map_binary): Fix compiler warnings.

2005-11-29  Chia-I Wu  <b90201047@ntu.edu.tw>

	Major update to distinguish between unsorted and overlapping
	segments for cmap format 4.  For overlapping but sorted segments,
	which is previously considered unsorted, we still use binary search.

	* src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'.
	(TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.

	* src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined.
	(TT_CMap4Rec_): Remove `old_charcode' and `table_length'.
	(tt_cmap4_reset): Removed.
	(tt_cmap4_init): Updated accordingly.
	(tt_cmap4_next): Updated accordingly.
	Take care of overlapping segments.
	(tt_cmap4_validate): Make sure the subtable is large enough.
	Do not check glyph_ids because some fonts set the length wrongly.
	Also, if all segments have offset 0, glyph_ids is always invalid.
	It does not cause any problem so far only because the check misses
	equality.
	Distinguish between unsorted and overlapping segments.
	(tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions
	to do `charcode => glyph index' by linear/binary search.
	(tt_cmap4_char_index, tt_cmap4_char_next): Use
	tt_cmap4_char_map_linear and tt_cmap4_char_map_binary.
	(tt_face_build_cmaps): Treat the return value of validator as flags
	for cmap.

2005-11-29  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next):
	New structures and functions for fast `next char'.
	(tt_cmap12_char_map_binary): New function to do `charcode => glyph
	index' by binary search.
	(tt_cmap12_char_index, tt_cmap12_char_next): Use
	tt_cmap12_char_map_binary.
	(tt_face_build_cmaps): Check table and offset correctly (equality is
	missing).

2005-11-15  Detlef Würkner  <TetiSoft@apg.lahn.de>

	* builds/amiga/smakefile: Adjusted the compiler options
	to the current sources, now really builds the gxvalid, gzip
	and psnames modules.

	* builds/amiga/src/base/ftsystem.c: The assumed Seek() position
	in the file cache was off by one byte which could cause false
	errors in font files.

2005-11-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* builds/mac/FreeType.m68k_far.make.txt,
	builds/mac/FreeType.m68k_cfm.make.txt,
	builds/mac/FreeType.ppc_classic.make.txt,
	builds/mac/FreeType.ppc_carbon.make.txt:
	Updated for MPW to build all available modules.

2005-11-21  Håvard Wall  <haavardw@ifi.uio.no>

	* src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small
	memory leak.

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

	* src/sfnt/ttload.c (sfnt_init): Add tracing message.

2005-11-21  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Image_offset was
	added twice to image_start if image_format was 2 or 5.

2005-11-21  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known
	before loading the table directory.

	* src/sfnt/ttload.c (tt_face_load_sfnt_header,
	tt_face_load_directory): Delay sfnt_dir_check from
	tt_face_load_sfnt_header to tt_face_load_directory.

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

	* src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct
	error code.
	(sfnt_init): New function to fill in face->ttc_header.  A non-TTC font
	is synthesized into a TTC font with one offset table.
	(tt_face_load_sfnt_header): Use sfnt_init.
	Fix an invalid access if the font is TTC and face_index is -1.

2005-11-18  Werner Lemberg  <wl@gnu.org>

	* src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number
	of metrics instead of aborting.  Patch suggested by Derek Noonburg.

	* src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
	(cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Scale
	the glyph properly if no hinter is available.

	* docs/CHANGES: Mention scaling bug.

2005-11-18  susuzki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* include/freetype/ftgxval.h, src/base/ftgxval.c
	(FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free
	buffers allocated by gxvalid module.
	* include/freetype/ftotval.h, src/base/ftotval.c
	(FT_OpenType_Free): New function to free buffer allocated by
	otvalid module.

2005-11-18  Chia-I Wu  <b90201047@ntu.edu.tw>

	* builds/unix/ftsystem.c (FT_Stream_Open, FT_New_Memory,
	FT_Done_Memory), builds/vms/ftsystem.c (FT_Stream_Open, FT_New_Memory,
	FT_Done_Memory), builds/win32/ftdebug.c (FT_Message, FT_Panic):
	s/FT_EXPORT/FT_BASE/.

2005-11-17  Detlef Würkner  <TetiSoft@apg.lahn.de>

	* builds/amiga/src/base/ftdebug.c (FT_Trace_Get_Count,
	FT_Trace_Get_Name, FT_Message, FT_Panic),
	builds/amiga/src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory,
	FT_Stream_Open): s/FT_EXPORT/FT_BASE/.

2005-11-17  Detlef Würkner  <TetiSoft@apg.lahn.de>

	* builds/amiga/makefile, builds/amiga/makefile.os4,
	builds/amiga/smakefile,
	builds/amiga/include/freetype/config/ftmodule.h: Updated the Amiga
	build files (added support for the gxvalid module).

2005-11-17  Werner Lemberg  <wl@gnu.org>

	Add vertical metrics support to OpenType CFF outlines.  Based on a
	patch from Mike Moening <MikeM@RetekSolutions.com>.

	* src/cff/cffgload.c (cff_face_get_vertical_metrics): New function.
	(cff_slot_load): Use cff_face_get_vertical_metrics.

	* docs/CHANGES: Updated.

2005-11-17  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/base/ftcalc.c (FT_MulTo64): Commented out.

	* include/freetype/internal/ftcalc.h (FT_SqrtFixed),
	src/base/ftcalc.c (FT_SqrtFixed),
	include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
	FT_Trace_Get_Name, FT_Message, FT_Panic), src/base/ftdebug.c
	(FT_Trace_Get_Count, FT_Trace_Get_Name, FT_Message, FT_Panic),
	include/freetype/internal/ftobjs.h (FT_New_Memory, FT_Done_Memory),
	include/freetype/internal/ftstream.h (FT_Stream_Open),
	src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, FT_Stream_Open):
	s/FT_EXPORT/FT_BASE/.

	* builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST
	too.

2005-11-15  David Turner  <david@freetype.org>

	* src/base/fttrigon.c (ft_trig_prenorm): Fix a bug that created
	invalid computations, resulting in very weird bugs in TrueType
	bytecode hinted fonts.

	* src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a
	structure copy each time.

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

	* src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c
	(FTC_Manager_Check): Remove FT_EXPORT_DEF tag.

	* src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag.
	(FT_Div64by32, FT_Sqrt32): Commented out.  Unused.

	* include/freetype/internal/ftcalc.h (SQRT_32): Removed.  Unused.
	(FT_Sqrt32): Commented out.  Unused.

	* include/freetype/cache/ftccache.h:
	s/ftc_node_destroy/FTC_Node_Destroy/.

	* src/cache/ftccback.h (ftc_node_destroy): New declaration.

	* src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF tag.
	(FTC_Node_Destroy): New exported wrapper function for
	ftc_node_destroy.

	* src/cache/ftcmanag.c: Include ftccback.c.

2005-11-10  Werner Lemberg  <wl@gnu.org>

	* src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff):
	Comment out.  Unused.

	* builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns.

2005-11-10  Christian Biesinger  <cbiesinger@web.de>

	* builds/beos/beos.mk: Call beos-def.mk before anything else to
	define the separator.

	* builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag.

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

	* src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning
	table available'.  From Sergey Tolstov <stolstov@esri.com>.

2005-11-03  Ville Syrjälä  <syrjala@sci.fi>

	* src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak.

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

	Make compiling instructions in docs/CUSTOMIZE work again.

	* builds/unix/unix-cc.in (CPPFLAGS): New variable.
	(CFLAGS): Don't include @CPPFLAGS@.
	* builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS.

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

	Update build system to support the generation of a list of exported
	symbols or Windows .DEF files by parsing the public headers with the
	`apinames' tool located in src/tools/apinames.c.

	Only tested on Unix at the moment.  On Windows, the .DEF file is
	generated but isn't used yet to generate a DLL.

	* builds/exports.mk: New file.

	* builds/freetype.mk: Include exports.mk.
	(dll): New target.
	(clean_project_dos): Fix rule.

	* builds/compiler/visualc.mk (TE), builds/dos/dos-def.mk (E),
	builds/os2/os2-def.mk (E), builds/win32/win32-def.mk (E): New
	variables for controlling executable extensions.

	* builds/unix/unix-cc.in (EXPORTS_LIST, CCexe),
	builds/win32/w32-bcc.mk, builds/win32/w32-gcc.mk,
	builds/win32/w32-icc.mk, builds/win32/w32-icc.mk,
	builds/win32/w32-mingw32.mk, builds/win32/w32-vcc,
	builds/win32/w32-wat.mk (EXPORTS_LIST, EXPORT_OPTIONS,
	APINAMES_OPTIONS): New targets for controlling the `apinames' tool.

	* Jamfile (GenExportSymbols): Updated.


	* src/pfr/pfrtypes.h, src/pfr/pfrload.c, src/pfr/pfrobjs.c
	[!FT_OPTIMIZE_MEMORY]: Fold memory optimization code into
	FT_OPTIMIZE_MEMORY chunks for better maintainability and simplicity.


	* src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c
	(FT_MulFix): Performance optimizations.


	* include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
	FT_GLYPHLOADER_CHECK_C, FT_GLYPHLOADER_CHECK_POINTS): New macros for
	checking points and contours.  Update callers to use
	FT_GLYPHLOADER_CHECK_POINTS instead of FT_GlyphLoader_CheckPoints
	at profile-detected hot-spots.

	* src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust'
	to 0 to not call `AdjustPoints' every time.


	* src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline
	FT_Angle_Diff.

	* src/autofit/afhints.c (af_direction_compute): Re-implement.
	(af_glyph_hints_compute_inflections, af_glyph_hints_reload): Use
	AF_ANGLE_DIFF to speed up the detection of inflexions.


	* src/tools/apinames.c: Include <string.h>.
	(OutputFormat): New enumeration.
	(names_dump): Add two parameters to control output format and DLL
	name.
	(names_dump_windef): Removed.  Code folded into `names_dump'.
	(read_header_file): Use isalnum, not isalpha.  Otherwise function
	names with digits aren't read correctly.
	(usage): Updated.
	(main): New option `-o' to control output file name.
	New option `-d' to indicate DLL file name.
	Extend `-w' flag to handle Borland and Watcom compilers and linkers.

2005-10-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* builds/mac/ftlib.prj, builds/mac/freetype.mak: Removed.
	ftlib.prj is unmaintained and incompatible with current tree.
	freetype.mak is unrecoverably broken.

	* builds/mac/ftlib.prj.xml: Added.
	Generated by Metrowerks CodeWarrior 9.0.

	* builds/mac/FreeType.m68k_far.make.txt,
	builds/mac/FreeType.m68k_cfm.make.txt,
	builds/mac/FreeType.ppc_classic.make.txt,
	builds/mac/FreeType.ppc_carbon.make.txt: Added.
	Skeleton files of MPW makefiles.

	* builds/mac/ascii2mpw.py: Added.
	Python script to make MPW makefile from skeleton.

	* builds/mac/README: Updated.
	Almost rewritten to use new files.

2005-10-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* src/base/ftmac.c: Fix invalid casts from NULL to integer typed
	variables.  Advised by David Turner, Masatake YAMATO, Sean McBride,
	and George Williams.

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

	* include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed.
	Obsolete.

2005-10-25  Werner Lemberg  <wl@gnu.org>

	* src/sfnt/sfdriver.c (sfnt_interface): Move out
	`tt_face_get_kerning' from a #ifdef clause.  Reported by Tony J.
	Ibbs <tibs@sj.co.uk>.

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

	* src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with
	C++.

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

	* src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc):
	Another realloc memory counting bug fix.

	* src/tools/Jamfile: Add missing file.

	* src/lzw/Jamfile: Fix incorrect source file reference.

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

	* src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_table_remove,
	ft_mem_debug_alloc, ft_mem_debug_free, ft_mem_debug_realloc): Fixes
	to better account for memory reallocations.

	* src/lzw/ftlzw2.c, src/lzw/ftzopen.h, src/lzw/ftzopen.c,
	src/lzw/rules.mk: First version of LZW loader re-implementation.
	Apparently, this saves about 330 KB of heap memory when loading
	timR24.pcf.Z.

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

	* include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden),
	src/base/ftbdf.c (FT_Get_BDF_Property), src/cache/ftcmru.c
	(FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_Lookup): Fix
	FT_EXPORT/FT_EXPORT_DEF tagging.

2005-10-19  Chia-I Wu  <b90201047@ntu.edu.tw>

	* src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to
	be invalid when FT_LOAD_NO_SCALE is set.

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

	* src/base/ftobjs.c (FT_Open_Face): Don't call FT_New_GlyphSlot and
	FT_New_Size if we are opening a face with face_index < 0 (which is
	only used for testing the format).

	* src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate):
	Remove compiler warning.

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

	* src/tools/apinames.c: Add new tool to extract public API function
	names from header files.

2005-10-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, 2006, 2007 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: utf-8
End:
