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

	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
	`round' to pacify compiler.

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


	* Version 2.3.5 released.
	=========================


	Tag sources with `VER-2-3-5'.

	* docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
	version number to 2.3.5.

	* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
	builds/win32/visualc/freetype.dsp,
	builds/win32/visualc/freetype.vcproj,
	builds/win32/visualce/index.html,
	builds/win32/visualce/freetype.dsp,
	builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.

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

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

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

	* include/freetype/freetype.h, src/base/ftpatent.c
	(FT_Face_SetUnpatentedHinting): New function to dynamically change
	the setting after a face is created.

	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
	that created distortions in the bytecode interpreter results.

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

	* src/truetype/ttinterp.c (Ins_IUP): Add missing variable
	initialization.

	* src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
	infinite loop in the case of degenerate fonts.

2007-06-26  Rahul Bhalerao  <b.rahul.pm@gmail.com>

	Add autofit module for Indic scripts.  This currently just reuses
	the CJK-specific functions.

	* include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
	macro.
	* devel/ftoption.h: Synchronize with
	include/freetype/config/ftoption.h.

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

	* src/autofit/afglobal.c, src/autofit/aftypes.h,
	src/autofit/autofit.c: Updated.

	* src/autofit/Jamfile (_sources), * src/autofit/rules.mk
	(AUTOF_DRV_SRC): Updated.

2007-06-23  David Turner  <david@freetype.org>

	* src/truetype/ttgload.c (TT_Load_Simple): Fix change from
	2007-06-16 that prevented the TrueType module from loading most
	glyphs.

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

	* src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
	change.

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

	* src/type1/t1load.c (parse_encoding): Handle one more error.

2007-06-19  Dmitry Timoshkov  <dmitry@codeweavers.com>

	* src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
	FNT_Err_Invalid_File_Format if file format was recognized but
	the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
	Add verbose debug logs to make it easier to debug failing load
	attempts.
	(FNT_Face_Init): A single FNT font can't contain more than 1 face,
	so return an error if requested face index is > 0.
	Do not do further attempt to load fonts if a previous attempt has
	failed but returned error FNT_Err_Invalid_File_Format, i.e., the
	file format has been recognized but no fonts found in the file.

2007-07-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* src/base/ftmac.c: Apply patches proposed by Sean McBride.
	(FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
	the compiler warnings against unused arguments.
	(FT_ATSFontGetFileReference): Ditto.
	(FT_GetFile_From_Mac_ATS_Name): Ditto.
	(FT_New_Face_From_FSSpec): Ditto.
	(lookup_lwfn_by_fond): Fix wrong comment.
	Replace `const StringPtr' by more appropriate type
	`ConstStr255Param'.
	FSRefMakePathPath always returns UTF8 POSIX pathname in
	Mach-O, thus HFS pathname support is dropped.
	(count_faces): Remove HLock and HUnlock which is not
	required on Mac OS X anymore.
	(FT_New_Face_From_SFNT): Ditto.
	(FT_New_Face_From_FOND): Ditto.
	* builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
	except of HFS pathname support and HLock/HUnlock.
	They are required on classic CFM environment.

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

	* src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
	assertion.
	(ps_parser_to_bytes): Fix error message.

	* src/type42/t42objs.c (T42_Open_Face): Handle one more error.
	* src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
	Don't allow mixed binary and hex strings.
	Handle string_size == 0 and string_buf == 0.
	(t42_parse_encoding): Handle one more error.

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

	* src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
	logic.
	(ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
	correctly.
	(ps_parser_load_field_table): Use `fields->array_max' instead of
	T1_MAX_TABLE_ELEMENTS to limit the number of arguments.

	* src/cff/cffgload.c (cff_decoder_prepare): Fix change from
	2007-06-06.

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

	* src/tools/ftrandom.c (font_size): New global variable.
	(TestFace): Use it.
	(main): Handle new option `--size' to set `font_size'.
	(Usage): Updated.

	* src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
	invalid font.
	(FNT_Load_Glyph): Protect against invalid bitmap width.

2007-06-16  David Turner  <david@freetype.org>

	* src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
	Prevent integer overflows when rendering very large outlines.

	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
	well-formedness of the contours array when loading a glyph.

	* src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
	and `zp2'.
	(Ins_IP): Check argument ranges to reject bogus operations properly.
	(IUP_WorkerRec): Add `max_points' member.
	(_iup_worker_interpolate): Check argument ranges.
	(Ins_IUP): Ignore empty outlines.

2007-06-16  Dmitry Timoshkov  <dmitry@codeweavers.com>

	* src/winfonts/winfnt.h: Add necessary structures for PE resource
	parsing.
	(WinPE32_HeaderRec): New structure.
	(WinPE32_SectionRec): New structure.
	(WinPE_RsrcDirRec): New structure.
	(WinPE_RsrcDirEntryRec): New structure.
	(WinPE_RsrcDataEntryRec): New structure.
	(FNT_FontRec): Remove unused `size_shift' field.

	* src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
	loading bitmap .fon files in PE format.

2007-06-15  Dmitry Timoshkov  <dmitry@codeweavers.com>

	* builds/win32/ftdebug.c: Unify debug level handling with other
	platforms.

2007-06-14  Dmitry Timoshkov  <dmitry@codeweavers.com>

	* builds/win32/ftdebug.c (FT_Message): Send debug output to the
	console as well as to the debugger.

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

	* src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
	cover all ranges which could possibly be handled by the aflatin
	module (since the default fallback for unknown ranges is now the
	afcjk module).  It might be necessary to fine-tune this further by
	splitting off modules for Greek, Cyrillic, or other blocks.

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

	* src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
	incorrect segment linking computation.  This was the root cause of
	Savannah bug #19565.


	* src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
	to improve the Latin auto-hinter.  Note that the new code is
	disabled by default since it is not stabilized yet.

	* src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
	(disabled currently).

	* src/autofit/afhints.c: Remove dead code.
	(af_axis_hints_new_edge): Add argument to handle segment directions.
	(af_edge_flags_to_string): New function.
	(af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
	option flags.
	(af_glyph_hints_reload): Add argument to handle inflections.
	Simplify.
	(af_direction_compute): Fine tuning.
	(af_glyph_hints_align_edge_points): Fix logic.
	(af_glyph_hints_align_strong_points): Do linear search for small
	edge counts.
	(af_glyph_hints_align_weak_points): Skip any touched neighbors.
	(af_iup_shift): Handle zero `delta'.

	* src/autofit/afhints.h: Updated.
	(AF_SORT_SEGMENTS): New macro (disabled).
	(AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.

	* src/autofit/afglobal.c (af_face_globals_get_metrics): Add
	argument to pass option flags for handling scripts.
	* src/autofit/afglobal.h: Updated.

	* src/autofit/afcjk.c: Updated.
	* src/autofit/aflatin.c: Updated.
	(af_latin_metrics_scale_dim): Don't reduce scale by 2%.

	(af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
	(af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
	Don't set `edge->dir'
	(af_latin_hint_edges): Add more logging.

	* src/autofit/afloader.c: Updated.

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

	* docs/CHANGES: Document FT_Face_CheckTrueTypePatents.

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

	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
	the TrueType glyph loader.

	* include/freetype/config/ftoption.h: Clarify documentation
	regarding unpatented hinting.


	Add new `FT_Face_CheckTrueTypePatents' API.

	* include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
	declaration.

	* include/freetype/internal/services/svttglyf.h,
	src/base/ftpatent.c: New files.

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

	* src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
	`ttpload.h'.
	(tt_service_truetype_glyf): New service structure.
	(tt_services): Register it.

	* modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
	`ftpatent.c'.

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

	* src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
	Fonts without a cmap must be handled correctly by FreeType (anything
	else would be a bug).


	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
	[FT_DEBUG_LEVEL_TRACE]: Improve tracing message.

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

	* src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
	tt_sbit_decoder_load_image): Protect against integer overflows.


	* src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
	for `x_control' and `y_control'.

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

	* src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.


	* src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
	FreeType error.


	* src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
	`font_count'.


	* src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.


	* src/cff/cffgload.c (cff_decoder_prepare): Change return type to
	`FT_Error'.
	Check `fd_index'.
	(cff_slot_load): Updated.
	* src/cff/cffgload.h: Updated.

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

	* src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
	(pfr_glyph_load_simple): Convert assertion into normal FreeType
	error.
	Check `idx'.
	(pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
	Convert assertion into normal FreeType error.

	* src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.


	* src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.


	* src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
	in case of parsing error.
	(ps_parser_load_field): Updated.

	* src/type1/t1load.c (parse_font_matrix): Updated.

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

	* src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.

	* src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.

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

	* src/tools/ftrandom/*: Add the `ftrandom' test program written by
	George Williams (with some modifications).

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

	* src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
	(T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
	face == NULL.  Suggested by Graham Asher.

2007-06-03  Ismail Dönmez  <ismail@pardus.org.tr>

	* src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.

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

	* include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
	FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.

	* src/bdf/bdflib.c (bdf_load_font): Use them.

	* src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.

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

	* src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
	(FTC_CMapCache_Lookup): Remove unused code.

2007-06-01  Sean McBride  <sean@rogue-research.com>

	* src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
	unused.

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

	* src/cid/cidparse.c (cid_parser_new): Don't continue second search
	pass for `StartData' if an error has occurred.
	Exit properly if no `StartData' has been seen at all.

	* builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
	LONG_MAX to avoid compiler warning.  Suggested by Sean McBride.

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

	* src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
	against too small binary data strings.

	* src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.

2007-05-28  David Turner  <david@freetype.org>

	* src/cff/cffgload.c (cff_slot_load): Do not apply the identity
	transformation.  This significantly reduces the loading time of CFF
	glyphs.

	* docs/CHANGES: Updated.

	* src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
	hinting script to CJK, since it works well with more scripts than
	latin.  Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
	this out!

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

	* docs/CHANGES: Updated.

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

	* src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
	into TT_USE_BYTECODE_INTERPRETER preprocessor block.

2007-05-24  Graham Asher  <graham.asher@btinternet.com>

	* src/truetype/ttobjs.c (tt_size_ready_bytecode)
	[!TT_USE_BYTECODE_INTERPRETER]: Removed.  Unused.

2007-05-22  David Turner  <david@freetype.org>

	* src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
	avoid crashes in case the bytecode interpreter is not used.


	Avoid heap blowup with very large .Z font files.  This fixes
	Savannah bug #19910.

	* src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
	`in_limit', `pad', `pad_bits', and `in_buff' members.
	Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
	`buf_total' members.

	* src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten.  It now takes
	only one argument.
	(ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.

2007-05-20  Ismail Dönmez  <ismail@pardus.org.tr>

	* src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
	(ps_dimension_set_mask_bits): Remove `const'.

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

	* src/sfnt/ttmtx.c (tt_face_get_metrics)
	[!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.

2007-05-19  Derek Clegg  <dclegg@apple.com>

	Savannah patch #5929.

	* include/freetype/tttables.h, src/base/ftobjcs.c
	(FT_Get_CMap_Format): New function.

	* include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
	`format' member.
	* src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
	cmap_info->format.

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

	* src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
	before handling subglyphs so that it can be reinitialized each time.
	This fixes Savannah bug #19859.

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

	* src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
	src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
	(FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
	src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
	tt_face_get_metrics): Fix type-punning issues.

2007-05-15  David Turner  <david@freetype.org>

	* include/freetype/config/ftstdlib.h,
	include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
	ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
	instead on relying on the locale-dependent functions provided by
	<ctypes.h>.

2007-05-15  Graham Asher  <graham.asher@btinternet.com>

	* src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
	variable.
	* src/autofit/afloader.c (af_loader_load_g): Ditto.

	* src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
	(open_face_from_buffer): Initialize `stream'.
	(FT_Request_Metrics): Remove unused variable.
	Remove redundant `break' statements.
	(FT_Get_Track_Kerning): Remove unused variable.

	* src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
	afm_parse_kern_data): Remove redundant
	`break' statements.
	(afm_parser_parse): Ditto.
	Don't use uninitialized variables.

	* src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
	Use `|' operator instead of `^' to set it.
	Update all users.

	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
	* src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.

	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
	comparison.
	(TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
	(TT_Load_Glyph): Remove unused variable.

2007-05-13  Derek Clegg  <dclegg@apple.com>

	* src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
	if FT_RENDER_POOL_SIZE is > 0.  From Savannah patch #5928.

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

	* src/cache/ftbasic.c, include/freetype/ftcache.h
	(FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
	functions that allow us to look up glyphs using an FTC_Scaler object
	to specify the size, making it possible to use fractional pixel
	sizes.

	* src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
	`size->cvt_ready'.  Reported by Boris Letocha.

2007-05-09  Graham Asher  <graham.asher@btinternet.com>

	* src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
	(af_latin_metrics_scale_dim): Fix compiler warnings.

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

	* builds/win32/visualce/freetype.sln: Removed, as requested by
	Vincent.

2007-05-04  Vincent RICHOMME  <richom.v@free.fr>

	* builds/win32/visualce/*: Add Visual C++ project files for Pocket
	PC targets.

	* docs/CHANGES: Document them.

2007-05-04  <harry@kdevelop.org>

	* builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
	mmap (which might happen on some RTOS).  From Savannah patch #5909.

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

	* src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
	* include/freetype/freetype.h (FT_Set_Char_Size): Update
	documentation.

2007-04-28  Victor Stinner  <victor.stinner@inl.fr>

	* src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
	`cmap'.

2007-04-27  Werner Lemberg  <wl@gnu.org>

	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
	number of points in contours.  Problem reported by Victor Stinner
	<victor.stinner@haypocalc.com>.
	(TT_Process_Simple_Glyph): Synchronize variable types.

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

	* src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
	zero in case of error.  This fixes Savannah bug #19689.

2007-04-25  Boris Letocha <b.letocha@cz.gmc.net>

	* src/truetype/ttobjs.c: Fix a typo that created a speed regression
	in the TrueType bytecode loader.

2007-04-10  Martin Horak  <horakm@centrum.cz>

	* src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
	Ignore `hhea' table.  This fixes Savannah bug #19261.

2007-04-09  Werner Lemberg  <wl@gnu.org>


	* Version 2.3.4 released.
	=========================


	Tag sources with `VER-2-3-4'.

	* docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
	version number to 2.3.4.

	* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
	builds/win32/visualc/freetype.dsp,
	builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.

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

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

2007-04-09  Martin Horak  <horakm@centrum.cz>

	* src/truetype/ttgload.c (load_truetype_glyph): Save and restore
	memory stream to avoid a crash with the incremental memory
	interface (Savannah bug #19260).

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

	* src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
	(Savannah bug #19536).

2007-04-04  Werner Lemberg  <wl@gnu.org>


	* Version 2.3.3 released.
	=========================


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

	* docs/CHANGES: Mention CVE-2007-1351.

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

	* src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
	if one of the resolution values is 0, treat it as if it were the
	same as the other value.

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

	Add special code to detect `extra-light' fonts and do not snap their
	stem widths too much to avoid bizarre hinting effects.

	* src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
	`extra_light' members.

	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
	them.
	(af_latin_metrics_scale_dim): Set `extra_light'.
	(af_latin_compute_stem_width): Use `extra_light'.

2007-03-28  David Turner  <david@freetype.org>

	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
	padding.

2007-03-28  Werner Lemberg  <wl@gnu.org>

	* src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
	gracefully.
	(_bdf_set_default_spacing): Increase `name' buffer size to 256 and
	issue an error for longer names.  This fixes CVE-2007-1351.
	(_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
	number of code points in Unicode.

	* builds/win32/visualc/index.html,
	builds/win32/visualc/freetype.dsp,
	builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
	s/232/233/.

	* docs/CHANGES: Mention ftdiff.

2007-03-26  David Turner  <david@freetype.org>

	* src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
	corresponding code.
	(Ins_MD): Last regression fix.

	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
	computations in order to ignore single-point contours.  These are
	never rasterized and correspond in certain fonts to mark-attach
	points that are very far from the glyph's real outline, ruining the
	computation.

	* src/autofit/afloader.c (af_loader_load_g): In the case of
	monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
	Otherwise code that uses them will most certainly ruin the fixed
	advance property.

	* docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
	documentation and bump version number to 2.3.3.

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

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

2007-03-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* builds/unix/ftconfig.in: Disable Carbon framework dependency on
	64bit ABI on Mac OS X 10.4.x (ppc & i386).  Found by Sean McBride.
	* builds/vms/ftconfig.h: Ditto.
	* include/freetype/config/ftconfig.h: Ditto.

2007-03-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
	32bit unsigned long overflow by 64bit filesize on LP64 platform, as
	proposed by Sean McBride:
	http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html

2007-03-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* builds/unix/ftconfig.in: Suppress SGI compiler's warning against
	setjmp, proposed by Sean McBride:
	http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html

2007-03-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
	conftest.c, to avoid unexpected shell evaluation.  Possibly it is a
	bug or undocumented behaviour of autoconf.

2007-03-18  David Turner   <david@freetype.org>

	* src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
	fix; testing still needed.

	* src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.

2007-03-17  David Turner   <david@freetype.org>

	* src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
	(undocumented) twilight zone special case.

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


	* Version 2.3.2 released.
	=========================


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

	* builds/win32/visualc/index.html,
	builds/win32/visualc/freetype.dsp,
	builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
	s/231/232/.

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

	* docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.

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

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

	* README, Jamfile (RefDoc): s/2.3.1/2.3.2/.

	* src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
	function to work properly, over-writing user-provided buffers in
	some cases.  Reported by James Cloos <cloos@jhcloos.com>.


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

	* include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
	macro for `strstr'.

	* src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
	`trick_names', as suggested by Ivan Nincic.

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

	* src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
	case FT_Init_FreeType fails for some reason.  Problem reported by
	Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.

	* src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
	and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
	`TT_Size.root.metrics'.  Problem reported by Daniel Glöckner
	<daniel-gl@gmx.net>.

	* src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
	signed values, not unsigned ones.  Problem reported by Johannes
	Walther <joh_walt@yahoo.de>.

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

	* src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
	of small and ghost stems in the Postscript interpreter.

2007-02-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
	leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
	* builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.

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

	* src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
	* src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.

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

	It seems that the following changes fix most of the known
	interpreter problems with my fonts, but more testing is needed,
	though.

	* src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
	(TT_MulFix14): Rewrite.
	(Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
	(Ins_MIRP): Ditto.

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

	* src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
	warnings.

	* src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
	(bdf_interpret_style): Ditto.

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

	Simplify projection and dual-projection code interface.

	* src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
	FT_Vector' as argument type.
	* src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
	Updated.
	(CUR_fast_project, CUR_fast_dualproj): New macros.
	(Project, Dual_Project, Project_x, Project_y): Updated.
	(Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
	macros.


	* src/autofit/afloader.c (af_loader_load_g): Improve spacing
	adjustments for the non-light auto-hinted modes.  Gets rid of
	`inter-letter spacing is too wide' problems.

	* src/autofit/aflatin.c (af_latin_hints_link_segments,
	af_latin_hints_compute_edges): Slight optimization of the segment
	linker and better handling of serif segments to get rid of broken
	`9' in Arial at 9pt (96dpi).


	Introduce new string functions and the corresponding macros to get
	rid of various uses of strcpy and other `evil' functions, as well as
	to simplify a few things.

	* include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
	ft_mem_strcpyn): New declarations.
	(FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
	macros.
	* src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
	functions.

	* src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
	src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
	(pcf_get_properties, pcf_interpret_style, pcf_load_font),
	src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
	(cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
	src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
	(t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
	t42_get_name_index): Use new functions and simplify code.

	* builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.

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

	* src/autofit/afloader.c (af_loader_load_g): Don't change width for
	non-spacing glyphs.

2007-02-07  Tom Parker  <palfrey@tevp.net>

	* src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
	pointer.

2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
	Introduce __attribute((deprecated))__ to warn functions
	which use non-ANSI data types in its interfaces.
	(FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
	(FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
	(FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
	(FT_New_Face_From_FSRef): Deprecated, using FSRef.

	* src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
	to avoid warning in building FreeType.
	* builds/mac/ftmac.c: Ditto.

2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
	`--with-fsspec' etc.  Replace #include "ftmac.c" with
	#include <ftmac.c>.

2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
	Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
	* src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
	(FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
	FT_GetFilePath_From_Mac_ATS_Name.
	* builds/mac/ftmac.c: Ditto.

2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
	FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
	for passing to FT_New_Face_From_FSSpec.

2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* builds/unix/configure.raw: Check whether Mac OS X system headers
	can be built under ANSI C mode.

	* src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
	compatible to ANSI C in case system headers are ANSI C incompatible.
	* builds/mac/ftmac.c (OS_INLINE): Ditto.

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

	* include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
	Explain why applications shouldn't use it.  Found by Alexei.

2007-02-01  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
	message.

	* src/gxvalid/gxvmort1.c
	(gxv_mort_subtable_type1_substTable_validate): Fix debugging
	message.

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


	* Version 2.3.1 released.
	=========================


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

	* builds/win32/visualc/freetype.dsp,
	builds/win32/visualc/freetype.vcproj: s/230/231/.
	* builds/win32/visualc/index.html: s/221/231/.

	* vms_make.com: Add `ftgasp'.

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

	Tag sources with VER-2-3-1 to prepare release.

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

	* docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
	s/2.3.0/2.3.1/.

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


	* src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
	(af_loader_load_g): Disable the warper (i.e., the light hinting
	improvements) to make a 2.3.1 bugfix release before introducing a
	new feature.  This should give us more time to tune and improve the
	warper for the next release.

	* docs/CHANGES: Update accordingly.

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

	For light auto-hinting, improve glyph advance widths and resurrect
	normal/full hinting to its normal quality.

	* src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
	and `xmax_delta'.
	* src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
	and `xmax_delta'.

	* src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
	preprocessor conditional with if-clause, handling both light and
	normal mode.

	* src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
	(af_warper_compute): Handle `xmin_delta' and `xmax_delta'.

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

	* docs/release: Updated -- Savannah uses a new uploading scheme.

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

	* src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.

	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
	<cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
	functions.

	* docs/CHANGES: Document light auto-hinting improvement.

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

	* src/cff/cffload.c (cff_index_get_pointers): Handle last entry
	correctly in a sanity check.  Since this function is only used to
	load local and global functions, any charstring that called the last
	local/global function would fail otherwise.  This fixes Savannah bug
	#18867.

	* docs/CHANGES: Document it.

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

	* src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
	prevented compilation when disabling both the unpatented and the
	bytecode interpreter in the TrueType font driver.


	Fix and enable the warper to improve `light' hinting mode.  This is
	not necessarily a final version, but it seems to work well.

	* src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
	Disable code.
	(af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
	* src/autofit/aftypes.h: Activate AF_USE_WARPER.

	* src/autofit/afwarp.c (AF_WarpScore): Tune table.
	(af_warper_compute_line_best): Fix array size of `scores'.
	(af_warper_compute): Better handling of border cases.
	* src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
	and `X2'.

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

	* ChangeLog: Split off older entries into...
	* ChangeLog.22: This new file.

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

	* docs/CHANGES: Document SHZ fix.

2007-01-21  George Williams  <gww@silcom.com>

	* src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
	points.

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

	* src/sfnt/ttmtx.c (tt_face_get_metrics)
	[!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.

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


	* Version 2.3.0 released.
	=========================


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

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

	* docs/release: Updated.

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

	* src/autofit/aflatin.c (af_latin_hints_compute_segments),
	src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
	(tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
	warnings.

2007-01-15  Detlef Würkner  <TetiSoft@apg.lahn.de>

	* builds/amiga/makefile, builds/amiga/makefile.os4,
	builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.

	* builds/amiga/include/freetype/config/ftconfig.h: Synchronize.

2007-01-14  Detlef Würkner  <TetiSoft@apg.lahn.de>

	Fix various compiler warnings.

	* src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
	src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
	s/index/strike_index/.
	* src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.

	* src/gxvalid/gxvmorx5.c
	(gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.

	* src/truetype/ttinterp.c (Compute_Point_Displacement),
	src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
	uninitialized variables.

2007-01-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	* docs/CHANGES, docs/INSTALL.MAC: Improvements.

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

	* src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
	versions up to 0x3FF without complaining.

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

	Add FT_Get_PS_Font_Info interface to CFF driver.

	* src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
	(CFF_FontRec): Add `font_info' field.

	* src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
	(cff_font_done): Free font->font_info if necessary.

	* src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
	(cff_service_ps_info): Register cff_ps_get_font_info.

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

	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
	with C++ compiler.

	* src/autofit/afhints.c (af_glyph_hints_dump_segments,
	af_glyph_hints_dump_edges): Ditto.

	* src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
	`modules.cfg').

	* src/sfnt/ttsbit0.h: Remove.

	* src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.

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

	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
	bug in the bitmap emboldener if the pitch of the source bitmap is
	much larger than its width.

	* src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
	compilation warning.

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

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

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

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

Copyright 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:
