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

	* Version 2.6.4 released.
	=========================


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

	* docs/VERSION.TXT: Update documentation and bump version number to
	2.6.4.

	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
	builds/windows/vc2005/index.html,
	builds/windows/vc2008/freetype.vcproj,
	builds/windows/vc2008/index.html,
	builds/windows/vc2010/freetype.vcxproj,
	builds/windows/vc2010/index.html,
	builds/windows/visualc/freetype.dsp,
	builds/windows/visualc/freetype.vcproj,
	builds/windows/visualc/index.html,
	builds/windows/visualce/freetype.dsp,
	builds/windows/visualce/freetype.vcproj,
	builds/windows/visualce/index.html,
	builds/wince/vc2005-ce/freetype.vcproj,
	builds/wince/vc2005-ce/index.html,
	builds/wince/vc2008-ce/freetype.vcproj,
	builds/wince/vc2008-ce/index.html: s/2.6.3/2.6.4/, s/263/264/.

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

	* builds/unix/configure.raw (version_info): Set to 18:4:12.
	* CMakeLists.txt (VERSION_PATCH): Set to 4.

	* docs/CHANGES: Updated.

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

	* src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Fix compiler warning.

2016-07-04  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Variable type revision (part 2).

	* src/smooth/ftgrays.c (TArea): Restore original definition as `int'.
	(gray_render_line) [FT_LONG64]: Updated.
	(gray_convert_glyph): 32-bit band bisection stack should be 32 bands.
	(gray_convert_glyph_inner): Trace successes and failures.

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

	[autofit] Handle single-point contours as segments.

	Doing so allows us to link them to edges – some fonts like
	`NotoSansGurmukhi-Regular' have such isolated points sitting exactly
	on other outlines.

	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Don't
	ignore one-point contours but handle them specially as one-point
	segments.
	(af_latin_hints_compute_edges): Append one-point segments to edges
	if possible.

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

	[autofit] Remove unused structure members.

	* src/autofit/afhints.h (AF_SegmentRec, AF_EdgeRec): Remove
	`num_linked'.

	* src/autofit/afcjk.c (af_cjk_hints_link_segments): Updated.

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

	[autofit] Update to Unicode 9.0.0.

	* src/autofit/afranges.c (af_arab_nonbase_uniranges,
	af_cyrl_uniranges): Add new data.

2016-07-01  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Variable type revision (part 1).

	This patch restores original `TCoord' definition as `int' so that the
	rendering pool is used more efficiently on LP64 platforms (unix).

	* src/smooth/ftgrays.c (gray_TWorker, TCell, gray_TBand): Switch some
	fields to `TCoord'.
	(gray_find_cell, gray_render_scanline, gray_render_line, gray_hline,
	gray_sweep, gray_convert_glyph): Updated.

2016-06-28  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Minor clean-ups.

	* src/smooth/ftgrays.c (gray_TWorker): Remove redundant `ycount'.
	(gray_sweep, gray_convert_glyph, gray_dump_cells): Updated.

2016-06-27  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Minor clean-ups.

	* src/smooth/ftgrays.c (gray_convert_glyph): Do not use volatile
	qualifier.
	(gray_raster_render): Move span initializations from here.
	(gray_sweep): ... to here and remove unused `target' argument.

2016-06-26  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[pcf] Fix handling of very large fonts (#47708).

	* src/pcf/pcfread.c (pcf_get_encodings): Make `encodingOffset' an
	unsigned short.
	Only reject `0xFFFF' as an invalid encoding offset.

2016-06-25  Werner Lemberg  <wl@gnu.org>

	[truetype] Really fix deallocation in case of error (#47726).

	* src/truetype/ttgload.c (load_truetype_glyph): Thinko; initialize
	`outline.points' also.

2016-06-23  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Consolidate memory management.

	* src/smooth/ftgrays.c (gray_init_cells): Remove function.
	(gray_TWorker): Remove fields that become local variables.
	(gray_raster_render): Move rendering buffer declaration from here.
	(gray_convert_glyph): ... to here and update accordingly.

2016-06-22  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Consolidate boundary checks.

	Removing the checks from `gray_hline' shaves 1% off rendering speed.

	* src/smooth/ftgrays.c [STANDALONE_]: Duplicate `FT_MIN' and `FT_MAX'.
	(gray_TWorker): No need to store `clip_box'.
	(gray_hline): Remove unnecessary boundary checks.
	(gray_convert_glyph): Move boundary checks from here.
	(gray_raster_render): ... to here and consolidate.

2016-06-21  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Use `FT_Outline_Get_CBox'.

	* src/smooth/ftgrays.c [STANDALONE_]: Duplicate `FT_Outline_Get_CBox'.
	(gray_compute_cbox): Remove this function.
	(gray_convert_glyph): Update to use `FT_Outline_Get_CBox'.

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

	[smooth] Remove compiler warnings.

	* src/smooth/ftgrays.c (gray_convert_glyph): Fix reports from clang.

2016-06-20  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Sanitize memory managenent.

	* src/smooth/ftgrays.c (gray_convert_glyph): Cleaned up.

2016-06-18  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Remove `band_shoot' that never worked.

	* src/smooth/ftgrays.c (gray_TWorker): Remove `band_shoot'.
	(gray_convert_glyph): Updated.

2016-06-17  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[raster, smooth] Handle FT_RENDER_POOL_SIZE better.

	* src/raster/ftraster.c (FT_MAX_BLACK_POOL): New macro.
	(ft_black_render): Updated.
	* src/smooth/ftgrays.c (FT_MAX_GRAY_POOL): New macro.
	(gray_raster_render): Updated.

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

	* src/base/md5.c: Updated to recent version.

2016-06-14  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/smooth/ftgrays.c (gray_hline): Optimize if-condition.

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

	[autofit] Add support for Cherokee script.

	* src/autofit/afblue.dat: Add blue zone data for Cherokee.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Cherokee standard characters.

	* src/autofit/afranges.c: Add Cherokee data.

	* src/autofit/afstyles.h: Add Cherokee data.

2016-06-09  David Capello  <davidcapello@gmail.com>

	[cmake] Avoid modifying `ftconfig.h' and `ftoption.h' files.

	* CMakeLists.txt: Each time cmake is run those files are
	modified and the whole FreeType library is recompiled.  With this
	change we change the files only if there are real modifications, so
	we can avoid recompilations.

2016-06-09  Werner Lemberg  <wl@gnu.org>

	[bdf] Check number of properties (#48166).

	* src/bdf/bdflib.c (_bdf_parse_start): Implement.

2016-06-08  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Re-enable new line renderer on 64-bit archs.

	* src/smooth/ftgrays.c (gray_render_line): Conditionally re-enable new
	implementation, where it is safe from overflows.

2016-06-08  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Minor clean-ups.

	* src/smooth/ftgrays.c (gray_dump_cells): Move out of the way.
	(gray_render_span): Remove spurious casts and streamline.

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

	[autofit] Add support for Ethiopic script.

	* src/autofit/afblue.dat: Add blue zone data for Ethiopic.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Ethiopic standard characters.

	* src/autofit/afranges.c: Add Ethiopic data.

	* src/autofit/afstyles.h: Add Ethiopic data.

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

	[autofit] Fix compilation with VS2016 (#48126).

	This compiler doesn't recognize the end-of-comment sequence `*/' if
	it immediately follows non-ASCII characters.

	* src/autofit/afscript.h: Ensure whitespace before `*/'.

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

	Fix a test for named instances (#48122).

	This was missed while giving negative face indices an extended
	meaning.

	* src/base/ftobjs.c (Mac_Read_sfnt_Resource): Implement.

2016-05-31  Nikolaus Waxweiler  <madigens@gmail.com>

	[truetype] Let SHPIX move points in the twilight zone in v40.

	* src/truetype/ttinterp.c (Ins_SHPIX): Allow SHPIX to move points in
	the twilight zone.  Otherwise, treat SHPIX the same as DELTAP.
	Unbreaks various fonts such as older versions of Rokkitt and DTL
	Argo T Light that would glitch severly after calling ALIGNRP after a
	blocked SHPIX.

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

	[type42] Support `CharStrings' entry format as created by LilyPond.

	* src/type42/t42parse.c (t42_parse_charstrings): Handle entries
	having the format

	  (foo) cvn 12345 def

2016-05-28  Werner Lemberg  <wl@gnu.org>

	* src/autofit/afranges.c: Remove `UL' postfix from hex numbers.

	Suggested by Alexei.  `UL' is only needed for 16bit compilers, but
	it seems noone is using this anymore (and we no longer test whether
	FreeType compiles in such an environment).  Otherwise, it is easy to
	add the postfix to the `AF_UNICODE_RANGE' macro.

2016-05-26  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Shrink bisection stack.

	The convergence of Bézier flatteners is fast with the deviation
	from straight line being assymptotically cut 4-fold on each bisection.
	This justifies smaller bisection stack size.

	* src/smooth/ftgrays.c (gray_TWorker): Remove common `bez_stack'.
	(gray_render_conic): Create and use conic `bez_stack'. Move back the
	band analysis from...
	(gray_conic_to): ... here.
	(gray_render_cubic): Create and use cubic `bez_stack'. Move back the
	band analysis from...
	(gray_cubic_to): ... here.
	(gray_move_to): Updated.

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

	[autofit] Fixes for Armenian and Gujarati ranges.

	* src/autofit/afranges.c (af_armn_uniranges): Corrected.
	(af_guru_nonbase_uniranges): Make U+0A3E a base character.

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

	[autofit] Add support for Armenian script.

	* src/autofit/afblue.dat: Add blue zone data for Armenian.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Armenian standard characters.

	* src/autofit/afranges.c: Add Armenian data.

	* src/autofit/afstyles.h: Add Armenian data.

2016-05-23  Werner Lemberg  <wl@gnu.org>

	* builds/unix/unix-cc.in (LINK_LIBRARY): Use `-export-symbols'.

	This was commented about 10 years ago – I think the reason then to
	disable libtool's `-export-symbols' option was to give some badly
	programmed applications access to internal FreeType functions.

	I believe that we should no longer take care of such programs; the
	number of symbols exported should be rather restricted as much as
	possible.

2016-05-22  Werner Lemberg  <wl@gnu.org>

	[autofit] Add blue-zone support for Gurmukhi script.

	This essentially moves the Gurmukhi script from the `Indic' hinter to
	the `Latin' hinter.

	* src/autofit/afblue.dat: Add blue zone data for Gurmukhi.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Gurmukhi standard characters and move
	data out of AF_CONFIG_OPTION_INDIC block.

	* src/autofit/afranges.c: Move Gurmukhi data out of
	AF_CONFIG_OPTION_INDIC block.

	* src/autofit/afstyles.h: Update Gurmukhi data; in particular, use
	AF_WRITING_SYSTEM_LATIN.

2016-05-21  Werner Lemberg  <wl@gnu.org>

	Minor clang++ fixes.

	* src/base/ftobjs.c (FT_Add_Module), src/psaux/psobjs.c
	(ps_parser_load_field), src/type1/t1load.c (parse_subrs): Add
	initializer.

	* src/cache/ftccache.h (FTC_CACHE_TRYLOOP_END): Avoid implicit
	conversion from NULL to boolean.

2016-05-21  Werner Lemberg  <wl@gnu.org>

	Work around a bug of the C 8.0.0.1 compiler on AIX 5.3 (#47955).

	* include/freetype/internal/ftmemory.h (cplusplus_typeof): Use
	braces for `extern "C++"'.

2016-05-17  Nikolaus Waxweiler  <madigens@gmail.com>

	[truetype] Make TT_LOADER_SET_PP support subpixel hinting [3/3].

	* src/truetype/ttgload.c (TT_LOADER_SET_PP): Replace macro with...
	(tt_loader_set_pp): ... this new function.
	Update all callers.

2016-05-17  Nikolaus Waxweiler  <madigens@gmail.com>

	[truetype] New implementation of v38 bytecode interpreter [2/3].

	This patch actually modifies the bytecode interpreter.

	See added comments in `ttinterp.h' for more information on this and
	the following commit in the series.

	* src/truetype/ttinterp.c (SUBPIXEL_HINTING): Replaced by...
	(NO_SUBPIXEL_HINTING, SUBPIXEL_HINTING_INFINALITY,
	SUBPIXEL_HINTING_MINIMAL): ...new macros.
	(Direct_Move, Direct_Move_X, Direct_Move_Y): Handle backwards
	compatibility.
	Updated.
	(Ins_RS, Ins_FDEF, Ins_ENDF, Ins_CALL, Ins_LOOPCALL, Ins_MD):
	Updated.
	(Ins_INSTCTRL): Handle native ClearType mode flag.
	Updated.
	(Ins_FLIPPT, Ins_FLIPRGON, Ins_FLIPRGOFF): Handle backwards
	compatibility.
	(Move_Zp2_Point): Ditto.
	(Ins_SHP): Updated.
	(Ins_SHPIX): Handle backwards compatibility.
	Updated.
	(Ins_MSIRP, Ins_MDAP, Ins_MIAP, Ins_MDRP, Ins_MIRP): Updated.
	(Ins_ALIGNRP): Updated.
	(Ins_IUP, Ins_DELTAP): Handle backwards compatibility.
	Updated.
	(Ins_GETINFO): Handle v38 flags.
	Updated.
	(TT_RunIns): Handle backwards compatibility mode.
	Updated.

2016-05-17  Nikolaus Waxweiler  <madigens@gmail.com>

	[truetype] New implementation of v38 bytecode interpreter [1/3].

	This patch prepares data structures and the like.

	See added comments in `ttinterp.h' for more information on this and
	the following commits in the series.

	* devel/ftoption.h, include/freetype/config/ftoption.h
	(TT_CONFIG_OPTION_SUBPIXEL_HINTING): Assign values to differentiate
	between subpixel versions.
	(TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY,
	TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL): New macros.

	* include/freetype/ftttdrv.h (TT_INTERPRETER_VERSION_40): New macro.

	* include/freetype/internal/tttypes.h (TT_FaceRec): Updated.

	* src/truetype/ttinterp.h (TT_ExecContextRec): Define new fields
	`subpixel_hinting_lean', `vertical_lcd_lean',
	`backwards_compatibility', `iupx_called', iupy_called', and
	`grayscale_cleartype' for new hinting mode.

	* src/truetype/ttdriver.c (tt_property_set): Handle v38 and v40
	interpreters conditionally.

	* src/truetype/ttgload.c (TT_Hint_Glyph): Save phantom points unless
	in v38 backwards compatibility mode.
	Updated.
	(compute_glyph_metrics): Add v38 backwards compatibility mode
	constraint for adjusting advance widths.
	Updated.
	(tt_loader_init): Handle new flags `subpixel_hinting_lean',
	`grayscale_cleartype', and `vertical_lcd_lean'.
	Updated.
	(tt_get_metrics, TT_Process_Simple_Glyph, TT_LOADER_SET_PP):
	Updated.

	* src/truetype/ttobjs.c (tt_driver_init): Conditionally set
	default interpreter version number.

	* src/truetype/ttsubpix.c, src/truetype/ttsubpix.h: Updated.

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

	[cff] Fix matrix scaling (#47848).

	* include/freetype/config/ftstdlib.h (FT_LONG_MIN): New macro.

	* src/cff/cffparse.c (cff_parse_font_matrix): Use largest scaling
	value of all matrix coefficients to scale matrix.

	* src/cff/cffobjs.c (cff_face_init): Use `matrix->yx' member for
	matrix normalization if `matrix->yy' is zero.

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

	[base] Reject invalid sfnt Mac resource (#47891).

	* src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Check validity
	of `CID ' and `TYPE1' table offset and length.

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

	[cid] Fix scanning for `StartData' and `/sfnts' (#47892).

	* src/cid/cidparse.c (STARTDATA, STARTDATA_LEN, SFNTS, SFNTS_LEN):
	New macros.
	(cid_parser_new): Fix and document algorithm.

2016-05-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	[truetype] Improve the recursive reference detector.

	The previous fix for #46372 misunderstood a composite glyph referring
	same component twice as a recursive reference.  See the discussion

	  http://lists.gnu.org/archive/html/freetype/2016-05/msg00000.html

	Thanks to Khaled Hosny for finding this issue.

	* src/truetype/ttgload.c (ft_list_get_node_at): A function to get
	the i-th node from FT_List.
	(load_truetype_glyph): In the traversal scan of the reference tree
	in the composite glyph, we clear the nodes filled by previous
	sibling chain.

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

	[cache] Allow value 0 for face ID.

	We never dereference `face_id', and some implementations might use a
	running number instead of a pointer.  Additionally, disallowing
	value zero was undocumented.

	* src/cache/ftccmap.c (FTC_CMapCache_Lookup), src/cache/ftcmanag.c
	(FTC_Manager_LookupFace, FTC_Manager_RemoveFaceID): Remove test for
	`face_id'.

2016-05-05  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] More efficient accounting of conic splits and draws.

	A single decrement counter of segments to draw, instead of an array,
	contains all the information necessary to decide when to split and
	when to draw a conic segment. The number of splits before each draw is
	equal to the number of trailing zeros in the counter.

	* src/smooth/ftgrays.c (gray_TWorker): Remove `lev_stack'.
	(gray_render_conic): Updated to use decrement counter of segments.

2016-05-05  Werner Lemberg  <wl@gnu.org>

	[cff, truetype] Fix logic for `FT_Property_Set'.

	Otherwise some properties could be set to arbitrary values, which is
	harmless, but querying could give wrong positive results.

	* src/cff/cffdrivr.c (cff_property_set) [hinting-engine],
	* src/truetype/ttdriver.c (tt_property_set) [interpreter-version]:
	Only allow defined values.

2016-04-25  Werner Lemberg  <wl@gnu.org>

	[autofit] Add blue-zone support for Gujarati script.

	This essentially moves the Gujarati script from the `Indic' hinter to
	the `Latin' hinter.

	* src/autofit/afblue.dat: Add blue zone data for Gujarati.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Gujarati standard characters and move
	data out of AF_CONFIG_OPTION_INDIC block.

	* src/autofit/afranges.c: Move Gujarati data out of
	AF_CONFIG_OPTION_INDIC block.

	* src/autofit/afstyles.h: Update Gujarati data; in particular, use
	AF_WRITING_SYSTEM_LATIN.

2016-04-24  Werner Lemberg  <wl@gnu.org>

	Minor.

	* include/freetype/freetype.h (FT_HAS_*, FT_IS_*): Protect macro
	argument with parentheses.

2016-04-24  Werner Lemberg  <wl@gnu.org>

	[truetype] Fix deallocation in case of error (#47726).

	* src/truetype/ttgload.c (load_truetype_glyph): Initialize fields in
	`outline' that are going to be deallocated in case of error.

2016-04-23  Werner Lemberg  <wl@gnu.org>

	[autofit] Improve Georgian blue zone characters.

	Suggested by Akaki Razmadze <razmadzekoko@gmail.com>.

	* src/autofit/afblue.dat (AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM):
	Updated.

	* src/autofit/afblue.c: Regenerated.

2016-04-16  David Capello  <davidcapello@gmail.com>

	[cmake] Honor SKIP_INSTALL_* settings (as used in zlib).

	As FreeType depends on zlib, if we don't install zlib (e.g., because
	we defined SKIP_INSTALL_ALL), FreeType cannot be installed, too
	(cmake triggers an error saying that FreeType cannot be installed
	because zlib target isn't in the export set).

	* CMakeLists.txt: Honor `SKIP_INSTALL_HEADERS',
	`SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL' settings.

2016-04-16  Behdad Esfahbod  <behdad@behdad.org>

	[truetype] Another fix for non-intermediate GX tuples.

	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Add some missing
	cases.

2016-04-12  Alexei Podtelezhnikov  <apodtele@gmail.com>

	Remove forgotten macro.

	* include/freetype/internal/internal.h
	[FT_INTERNAL_POSTSCRIPT_GLOBALS_H]: Remove.

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

	[autofit] Add support for Georgian scripts.

	Georgian is problematic, since `uppercase' forms of Mkhedruli
	(called Mtavruli) are not yet defined in Unicode, which means that
	proper blue zones can't be defined.  However, there is already a
	proposal submitted to Unicode; see

	  http://www.unicode.org/L2/L2016/16034-n4707-georgian.pdf

	Additionally, due to historical reasons, Unicode treats Khutsuri as
	the same script as Mkhedruli, and so does OpenType.  However, since
	the two scripts have completely different shapes it can happen that
	blue zones differ considerably.  The tag `geok' used here (derived
	from ISO 15924) to differentiate the two scripts is not an OpenType
	tag in use.  If we now have a font that contains both glyphs for
	Mkhedruli and Khutsuri, and it uses OpenType features for both also,
	HarfBuzz unavoidably treats all glyphs as `geor'.  As a consequence,
	blue zones for `geok' are not used for glyphs involved in the
	OpenType features.

	An issue not yet resolved is which OpenType feature should be used
	to access Mtavruli glyph shapes; right now, FreeType doesn't set up
	support for them, but it is easy to add them later on as soon as
	more information is available.

	* src/autofit/afblue.dat: Add blue zone data for Georgian.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Georgian standard characters.

	* src/autofit/afranges.c: Add Georgian data.

	* src/autofit/afstyles.h: Add Georgian data.

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

	[autofit] Provide dummy blue zone for pseudo script `none'.

	Even if the dummy hinter is used as the handler for `none' (which
	doesn't use blue zones), it is more consistent than the old value
	(which was 0), pointing to Arabic...

	* src/autofit/afblue.dat: Add `AF_BLUE_STRINGSET_NONE'.
	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afstyles.h (none_dflt): Use AF_BLUE_STRINGSET_NONE.

2016-03-30  Werner Lemberg  <wl@gnu.org>

	* src/pfr/pfrload.c (pfr_aux_name_load): Thinko (#47567).

2016-03-30  Werner Lemberg  <wl@gnu.org>

	* src/pfr/pfrload.c (pfr_log_font_count): Better font size estimate.

2016-03-30  Werner Lemberg  <wl@gnu.org>

	* src/pfr/pfrload.c (pfr_aux_name_load): Fix memory leak (#47567).

2016-03-29  Werner Lemberg  <wl@gnu.org>

	* src/base/ftadvanc.c (FT_Get_Advances): Fix invalid left shift.

2016-03-29  Werner Lemberg  <wl@gnu.org>

	[pfr] Fix binary search (#47514).

	* src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Handle border
	conditions correctly.

2016-03-29  Werner Lemberg  <wl@gnu.org>

	[pfr] Minor.

	* src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Replace `left',
	`right', and `middle' with `min', `max', and `mid' as used in other
	FreeType binary search code.
	(pfr_load_bitmap_metrics): Fix invalid left shift.

2016-03-29  Werner Lemberg  <wl@gnu.org>

	* src/pfr/pfrtypes.h: Replace all enums with macros.

	We need `~FOO' to unset bits, and only with unsigned values (which
	`enum' isn't normally) this works cleanly.

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

	[pfr] Robustify bitmap strike handling (#47514).

	We did a binary search for a charcode without ensuring that the
	searched data is ordered.  Validating the order is now done lazily,
	this is, the first access to a bitmap glyph triggers the order check
	in the corresponding bitmap strike.

	* src/pfr/pfrtypes.h (PFR_BitmapFlags): New values
	`PFR_BITMAP_VALID_CHARCODES' and `PFR_BITMAP_CHARCODES_VALIDATED'.

	* src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Make `flags' argument
	a pointer.  Handle new PFR_BITMAP_XXX flags.
	(pfr_slot_load_bitmap): Updated.

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

	[pfr] Fix handling of compound glyphs.

	Extra items are indicated with different bit positions.

	* src/pfr/pfrtypes.h (PFR_GlyphFlags): Replace
	`PFR_GLYPH_EXTRA_ITEMS' with `PFR_GLYPH_SIMPLE_EXTRA_ITEMS' and
	`PFR_GLYPH_COMPOUND_EXTRA_ITEMS'.

	* src/pfr/pfrgload.c (pfr_glyph_load_simple,
	pfr_glyph_load_compound): Use them.

2016-03-25  Werner Lemberg  <wl@gnu.org>

	[pfr] Minor.

	* src/pfr/pfrsbit.c, src/pfr/pfrobjs.c: Use flag names instead of
	bare numbers.

2016-03-25  Werner Lemberg  <wl@gnu.org>

	[pfr] Various clang sanitizer fixes.

	* src/pfr/pfrsbit.c (pfr_load_bitmap_metrics): Correctly handle
	signed nibbles.
	(pfr_slot_load_bitmap): Correctly exit frame in case of error.
	Fix invalid left shifts.

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

	Rename `VERSION.DLL' (#47472).

	* docs/VERSION.DLL: Renamed to...
	* docs/VERSIONS.TXT: ...this.

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

	[raster, smooth] Directly test outline size (#47500).

	This improves stand-alone compilation.

	* src/base/ftoutln.c (FT_Outline_Render): Move cbox size test to...

	* src/raster/ftraster.c (ft_black_render), src/smooth/ftgrays.c
	(gray_raster_render): ...these functions.

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

	[raster, smooth] Fix some clang sanitizer runtime issues.

	* src/raster/ftraster.c (ft_black_reset, ft_black_set_mode,
	ft_black_render): Harmonize signatures with `ftimage.h'.

	* src/smooth/ftgrays.c (gray_raster_render, gray_raster_reset):
	Ditto.

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

	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Minor.

	This fixes an AddressSanitizer issue:

	  ttgload.c:430:7: runtime error: null pointer passed as argument 1,
	                   which is declared to never be null

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

	* src/autofit/afhints.c (af_glyph_hints_reload): Thinko.

	This fixes the previous commit to this file.

2016-03-21  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Partly revert recent changes.

	* src/smooth/ftgrays.c (gray_conic_to, gray_cubic_to): Rework
	conditions to fix rendering issues.

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

	[autofit] Show `near' points in tracing.

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

	* src/autofit/afhints.c (af_glyph_hints_dump_points): Implement it.
	(af_glyph_hints_reload): Handle AF_FLAG_NEAR.

2016-03-18  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Minor refactoring and microoptimizations.

	* src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move
	band clipping from here.
	(gray_conic_to, gray_cubic_to): ... to here.
	(gray_rander_line, gray_render_scanline): Initialize variables closer
	to their use.

2016-03-17  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Minor refactoring.

	* src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move
	upscaling from here.
	(gray_conic_to, gray_cubic_to): ... to here.

2016-03-15  Werner Lemberg  <wl@gnu.org>

	* src/autofit/aflatin.c (af_latin_compute_stem_width): Optimize.

2016-03-14  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Temporarily revert 6eb6158dd787 (#47114).

	* src/smooth/ftgrays.c (gray_render_line): Old implementation.

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

	[ftfuzzer] Improve coverage of rasterfuzzer.

	* src/tools/ftfuzzer/rasterfuzzer.cc (LLVMFuzzerTestOneInput): Use
	input data for `tags' array also.
	Trim input data to get more positive hits.

2016-03-11  Pavlo Denysov  <paul.kiev+savannah@gmail.com>

	Fix CMake issues for iOS (patch #8941).

	* CMakeLists.txt (CMAKE_TOOLCHAIN_FILE): Fix directory.
	* builds/cmake/iOS.cmake: No longer enforce gcc.

2016-03-09  Behdad Esfahbod  <behdad@behdad.org>

	[truetype] Fix handling of non-intermediate GX tuples.

	We probably did not notice this as all fonts we tested had only
	tuple_coords[i] be +1 or -1 for non-intermediate tuples.

	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Implement it.

2016-03-06  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[base] Refuse to render enormous outlines (#47114).

	The goal is to avoid integer overflows in the rendering algorithms.
	The limit is chosen arbitrarily at some 2^18 pixels, which should be
	enough for modern devices including printers.

	* src/base/ftoutln.c (FT_Outline_Render): Check CBox and reject
	enormous outlines.

2016-03-06  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Replace left shifts with multiplications (#47114).

	* src/smooth/ftgrays.c (SUBPIXELS, UPSCALE, DOWNSCALE): Do it.

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

	[autofit] Avoid excessive stem length rounding (#25392).

	* src/autofit/aflatin.c (af_latin_compute_stem_width): Add argument
	to pass difference between hinted and unhinted position of base
	point; use this to adjust the stem width depending on the PPEM so
	that it doesn't become too large under certain circumstances.
	Update all callers using value 0 for this argument except...
	(af_latin_align_linked_edge): Pass position delta of base point to
	`af_latin_compute_stem_width'.

2016-03-05  J Raynor  <jxraynor@gmail.com>

	Make FreeType compile on AIX out of the box.

	* builds/unix/configure.raw (XX_ANSIFLAGS): Don't use `-ansi' on
	AIX.

2016-03-01  Werner Lemberg  <wl@gnu.org>
	    Kostya Serebryany  <kcc@google.com>

	[ftfuzzer] Add unit for testing smooth and black rasterizers.

	* src/tools/ftfuzzer/rasterfuzzer.cc: New file.

2016-03-01  Werner Lemberg  <wl@gnu.org>

	[autofit] Fix reallocation error introduced in 2016-02-27 (#47310).

	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Reassign
	`prev_segment' after reallocation.

2016-03-01  Werner Lemberg  <wl@gnu.org>

	Fix clang warnings.

	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Use
	FT_UShort for `min_flags' and `max_flags'.
	Initialize `prev_*' variables.

	* src/cff/cffobjs.c (cff_face_init) [FT_DEBUG_LEVEL_TRACE]: Fix
	types of local variables.

	* src/smooth/ftgrays.c (gray_dump_cells) [FT_DEBUG_LEVEL_TRACE]:
	Update `printf' format string.

	* src/tools/ftfuzzer/ftfuzzer.cc (setIntermediateAxis): Add cast.
	(LLVMFuzzerTestOneInput): Fix loop type.

2016-02-29  Werner Lemberg  <wl@gnu.org>

	[autofit] Add blue-zone support for Sinhala script.

	This essentially moves the Sinhala script from the `Indic' hinter to
	the `Latin' hinter.

	* src/autofit/afblue.dat: Add blue zone data for Sinhala.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Sinhala standard character and move data
	out of AF_CONFIG_OPTION_INDIC block.

	* src/autofit/afranges.c: Move Sinhala data out of
	AF_CONFIG_OPTION_INDIC block.

	* src/autofit/afstyles.h: Update Sinhala data; in particular, use
	AF_WRITING_SYSTEM_LATIN.

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

	[autofit] Properly handle spikes pointing to the x-axis.

	An example that gets better rendered is glyph `uusignTaml' (glyph
	index 2286) in font `FreeSerif.ttf' (Version 0412.2263) at 22ppem.

	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Properly
	handle segments where the last point of the first segment is
	identical to the first point in the second one.  This can happen for
	malformed fonts or spikes.  We either merge the new segment with the
	previous one (both segments point into the same direction), or we
	discard the shorter segment if they point into different directions.

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

	[autofit] Minor code clean-up.

	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Change
	some local variable names to better differentiate between values
	along a segment and values orthogonal to it.

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

	[autofit] Improve BOUND action.

	In complex glyph shapes, the original logic was too simple to cater
	for situations that would actually need something similar to PS Hint
	masks.  This fix should alleviate the worst cases.

	* src/autofit/aflatin.c (af_latin_hint_edges): Don't allow
	complete disappearance of stems.

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

	[autofit] Add blue-zone support for Tamil script.

	This essentially moves the Tamil script from the `Indic' hinter to
	the `Latin' hinter.

	* src/autofit/afblue.dat: Add blue zone data for Tamil.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Tamil standard character and move data
	out of AF_CONFIG_OPTION_INDIC block.

	* src/autofit/afranges.c: Move Tamil data out of
	AF_CONFIG_OPTION_INDIC block.

	* src/autofit/afstyles.h: Update Tamil data; in particular, use
	AF_WRITING_SYSTEM_LATIN.

2016-02-18  Werner Lemberg  <wl@gnu.org>

	[autofit] Add blue-zone support for Malayalam script.

	This essentially moves the Malayalam script from the `Indic' hinter
	to the `Latin' hinter.

	* src/autofit/afblue.dat: Add blue zone data for Malayalam.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Malayalam standard characters and move
	data out of AF_CONFIG_OPTION_INDIC block.

	* src/autofit/afranges.c: Move Malayalam data out of
	AF_CONFIG_OPTION_INDIC block.

	* src/autofit/afstyles.h: Update Malayalam data; in particular, use
	AF_WRITING_SYSTEM_LATIN.

2016-02-16  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Fix integer overflow (#47114).

	* src/smooth/ftgrays.c (TArea): Make it unconditionally `long'.

2016-02-15  Werner Lemberg  <wl@gnu.org>

	* src/cff/cffparse.c (cff_parse_multiple_master): Improve tracing.

2016-02-15  Werner Lemberg  <wl@gnu.org>

	[cff] Handle T2 operator only with old CFF engine (#47157).

	* src/cff/cffparse.c (cff_parser_run) <opcode 31>: Enclose with
	#ifdef CFF_CONFIG_OPTION_OLD_ENGINE...#endif.

2016-02-15  Werner Lemberg  <wl@gnu.org>

	[cff] Partially handle `load' and `store' ops in old CFF engine.

	Now all glyphs of MM CFFs like `ITCGaramondMM-It.otf' can be
	displayed.

	* src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_store,
	cff_op_load>: Partially implement it.

	* src/cff/cffparse.c (cff_parser_init): Add new parameter to pass
	the number of Multiple Master axes.
	Update all callers.
	(cff_parse_multiple_master): Get number of axes.
	(cff_parser_run) <opcode 31>: Updated.
	* src/cff/cffparse.h: Updated.
	(CFF_ParserRec): Add `num_axes' field.

	* src/cff/cffload.c: Updated.

	* src/cff/cfftypes.h (CFF_FontRecDictRec): Add `num_axes' field.

2016-02-15  Werner Lemberg  <wl@gnu.org>

	[cff] Correctly trace SIDs that contain NULL bytes.

	We need this to properly trace Multiple Master CFFs, which contain
	two SIDs that are charstrings.

	This commit makes FreeType also show the last SID, omitted
	previously due to a bug.

	* src/cff/cfftypes.h (CFF_FontRec): Add `string_pool_size' field.

	* src/cff/cffload.c (cff_index_get_pointers): Add argument to return
	the pool size.
	Update all callers.

	* src/cff/cffobjs.c (cff_face_init) [FT_DEBUG_LEVEL_TRACE]: Directly
	access `cff->strings' to display the non-default strings.

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

	* src/base/fthash.c: Include FT_INTERNAL_MEMORY_H.

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

	* src/cff/cffparse.c: Include `cffgload.h'.

	Problem reported by Colin Walters <walters@verbum.org>.

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

	[cff] Make old CFF engine show MM CFFs (without variations).

	The new code only displays the first master in the font.

	* src/cff/cffgload.c (cff_decode_parse_charstrings): Add new
	parameter to allow function calls from dictionaries also.
	<cff_op_blend>: Partially implement it.
	Update all callers.
	* src/cff/cffgload.h: Updated.

	* src/cff/cffparse.c (cff_parser_init): Add new parameter to pass the
	number of Multiple Master designs.
	Update all callers.
	(cff_parse_multiple_master): New function to rudimentarily parse
	operator.
	(cff_parser_run): Handle `T2' operator.
	* src/cff/cffparse.h: Updated.
	(CFF_ParserRec): Add `num_designs' field.

	* src/cff/cffload.c: Updated.

	* src/cff/cfftoken.h: Handle `MultipleMaster' operator.

	* src/cff/cfftypes.h (CFF_FontRecDictRec): Add `num_designs' field.

	* src/sfnt/sfobjs.c (sfnt_init_face): Don't handle `fvar' table for
	MM CFFs.

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

	[docmaker] Don't emit trailing newlines.

	* src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_code):
	Use `rstrip'.

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

	* Version 2.6.3 released.
	=========================


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

	* docs/VERSION.DLL: Update documentation and bump version number to
	2.6.3.

	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
	builds/windows/vc2005/index.html,
	builds/windows/vc2008/freetype.vcproj,
	builds/windows/vc2008/index.html,
	builds/windows/vc2010/freetype.vcxproj,
	builds/windows/vc2010/index.html,
	builds/windows/visualc/freetype.dsp,
	builds/windows/visualc/freetype.vcproj,
	builds/windows/visualc/index.html,
	builds/windows/visualce/freetype.dsp,
	builds/windows/visualce/freetype.vcproj,
	builds/windows/visualce/index.html,
	builds/wince/vc2005-ce/freetype.vcproj,
	builds/wince/vc2005-ce/index.html,
	builds/wince/vc2008-ce/freetype.vcproj,
	builds/wince/vc2008-ce/index.html: s/2.6.2/2.6.3/, s/262/263/.

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

	* builds/unix/configure.raw (version_info): Set to 18:3:12.
	* CMakeLists.txt (VERSION_PATCH): Set to 3.

	* docs/CHANGES: Updated.

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

	Fix another runtime error found by clang's sanitizer (#47082).

	* src/base/ftstroke.c (ft_stroke_border_export): Properly handle
	empty input buffer.

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

	Fix runtime errors found by clang's sanitizer (#47082).

	* src/base/ftobjs.c (FT_Render_Glyph_Internal), src/base/ftoutln.c
	(FT_Outline_Copy), src/cache/ftcsbits.c (ftc_sbit_copy_bitmap):
	Properly handle empty input buffer.

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

	[cff] Minor.

	* src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_sqrt>:
	Remove dead code.

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

	[cff] Implement missing operators in new engine (except `random').

	* src/cff/cf2font.h (CF2_STORAGE_SIZE): New macro.

	* src/cff/cf2intrp.c (cf2_interpT2CharString): Implement the
	following operators: abs, add, and, div, drop, dup, eq, exch, get,
	ifelse, index, mul, neg, not, or, put, roll, sqrt, sub.

	* src/cff/cf2stack.h, src/cff/cf2stack.c (cf2_stack_roll): New
	auxiliary function for `roll' operator.

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

	[cff] Fix some Type 2 operators in old CFF engine.

	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Fix `eq'
	operator, add `not' and (unsupported) `blend' operators.

2016-02-05  Sebastian Rasmussen  <sebras@gmail.com>

	Make direct call of `make install' work (#47072).

	* builds/unix/unix-def.in (freetype-config): Make sure
	`freetype-config' is generated for both make targets (`all' and
	`install').

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

	[base] Fix advance width loading for MM and GX fonts (#47064).

	* src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Return false for
	MM and GX fonts.
	Update callers.

2016-02-03  Werner Lemberg  <wl@gnu.org>

	[cff] Fix handling of face_index == -1 for pure CFF.

	* src/cff/cffobjs.c (cff_face_init): Return correct number of faces.

2016-01-30  Werner Lemberg  <wl@gnu.org>

	[autofit] Minor tracing improvement.

	* src/autofit/afhints.c (af_glyph_hints_dump_points): Insert newline
	at the start of a new contour.

2016-01-28  Nikolaus Waxweiler  <madigens@gmail.com>

	Remove unpatented hinter (3/3).

	* include/freetype/config/ftoption.h
	(TT_CONFIG_OPTION_UNPATENTED_HINTING): Remove.

	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
	`ignore_unpatented_hinter' field.
	Update users.
	(FT_DEBUG_HOOK_UNPATENTED_HINTING): Remove.
	Update users.

	* include/freetype/internal/tttypes.h (TT_FaceRec): Remove
	`unpatented_hinting' field.
	Update users.

	* src/base/ftpatent.c (_tt_check_patents_in_range,
	_tt_check_patents_in_table, _tt_face_check_patents): Remove.
	(FT_Face_CheckTrueTypePatents, FT_Face_SetUnpatentedHinting):
	Replace code with dummies.

	* src/truetype/ttobjs.c (tt_face_init): Remove now defunct code.
	* src/truetype/ttobjs.h (TT_GraphicsState): Remove `both_x_axis'
	field.

2016-01-28  Nikolaus Waxweiler  <madigens@gmail.com>

	Remove unpatented hinter (2/3).

	* devel/ftoption.h (TT_CONFIG_OPTION_UNPATENTED_HINTING): Remove.

2016-01-28  Nikolaus Waxweiler  <madigens@gmail.com>

	Remove unpatented hinter (1/3).

	* src/truetype/ttinterp.c [TT_CONFIG_OPTION_UNPATENTED_HINTING]:
	Remove all code related to this macro.

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

	[autofit] Add blue-zone support for Kannada script.

	This essentially moves the Kannada script from the `Indic' hinter to
	the `Latin' hinter.

	* src/autofit/afblue.dat: Add blue zone data for Kannada.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Kannada standard characters and move
	data out of AF_CONFIG_OPTION_INDIC block.

	* src/autofit/afranges.c: Move Kannada data out of
	AF_CONFIG_OPTION_INDIC block.

	* src/autofit/afstyles.h: Update Kannada data; in particular, use
	AF_WRITING_SYSTEM_LATIN.

2016-01-22  Alexei Podtelezhnikov  <apodtele@gmail.com>

	Better access to 64-bit integers for C99 compilers.

	* include/freetype/config/ftconfig.h [FT_LONG64]: Use
	__STDC_VERSION__ to define 64-bit integers.
	* builds/unix/ftconfig.in [FT_LONG64]: Ditto.
	* builds/vms/ftconfig.h [FT_LONG64]: Ditto.

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

	[gxvalid] Remove commented out code.

	* src/gxvalid/gxvcommn.c (gxv_EntryTable_validate): Do it.

2016-01-20  Werner Lemberg  <wl@gnu.org>

	[autofit] Complete last autofit commit.

	Problem reported by Kostya Serebryany <kcc@google.com>.

	* src/autofit/afshaper.c (af_shaper_get_coverage)
	[!FT_CONFIG_OPTION_USE_HARFBUZZ]: Update signature.

2016-01-20  Werner Lemberg  <wl@gnu.org>

	Still handle `__FTERRORS_H__'.

	We need this for backwards compatibility.

	Problem reported by John Emmas <johne53@tiscali.co.uk>.

	* include/freetype/fterrors.h: Fix inclusion guard so that
	undefining either `FTERRORS_H_' or `__FTERRORS_H__' works as
	expected.

2016-01-19  Werner Lemberg  <wl@gnu.org>

	[autofit] Fix handling of default script.

	Patch taken from ttfautohint, commit
	071ae2c00e0d67f9d19418f4fade1c23d27dc185.

	There were two bugs.

	  - We now use non-standard script tags like `khms' for special
	    purposes.  However, HarfBuzz maps such tags to `DFLT', and
	    without this commit the associated lookups were incorrectly
	    assigned to the non-standard tags.

	  - Let's assume we have a Bengali font, and the font's `DFLT'
	    script tag handles the necessary lookups for Bengali, too.
	    Without this commit, the `DFLT' lookups were assigned to
	    ttfautohint's default script (usually `latn') before the
	    standard lookups for Bengali were handled.

	    We now have the following order while searching for covered
	    glyph indices.

	      special features of scripts (e.g. `sups' for Cyrillic)
	      Unicode mappings of scripts
	      remaining features of scripts (especially important for Indic
	        scripts)
	      default features of default script

	* src/autofit/afshaper.c, src/autofit/afshaper.h
	(af_shaper_get_coverage): Add boolean parameter to indicate default
	script.
	Update all callers.

	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
	Fix search order for coverages.

2016-01-19  Werner Lemberg  <wl@gnu.org>

	Various minor clang fixes.

	* src/autofit/afcjk.c (af_cjk_metrics_init_widths),
	src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
	`ch'.

	* src/base/ftcalc.c (FT_MulFix) [FT_LONG64]: Add cast.

	* src/base/ftdbgmem.c (ft_mem_table_destroy): Add cast.

	* src/base/fthash.c (hash_num_lookup): Add cast.

	* src/base/fttrigon.c (ft_trig_downscale) [FT_LONG64]: Fix cast.

	* src/gxvalid/gxvcommn.c (gxv_EntryTable_validate): Comment out
	redundant code.

	* src/type1/t1driver.c (t1_get_ps_font_value) <PS_DICT_SUBR>: Add
	cast.

	* src/type1/t1load.c (parse_subrs): Fix type of `count'.

2016-01-19  Derek B. Noonburg  <derekn@glyphandcog.com>

	[truetype] Add another tricky font.

	* src/truetype/ttobjs.c (TRICK_SFNT_IDS_NUM_FACES): Increase.
	(sfnt_id): Add variant of `DFKaiShu'.

2016-01-14  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[base] Empower `FT_Library_SetLcdFilterWeights'.

	* src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights): Enable filter
	in addition to setting weights.
	(FT_Library_SetLcdFilter): Clean out FT_FORCE_LIGHT_LCD_FILTER and
	FT_FORCE_LEGACY_LCD_FILTER.
	* include/freetype/ftlcdfil.h: Documentation update.

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

	Don't use macro names that start with `_[A-Z]' [3/3].

	Such macro names are reserved for both C and C++.

	* src/cache/ftccache.h: s/_FTC_FACE_ID_HASH/FTC_FACE_ID_HASH/.
	Update all callers.
	(FTC_CACHE_LOOKUP_CMP): Replace `_XXX' with `XXX_'.
	* src/cache/ftcmru.c (FTC_MRULIST_LOOKUP_CMP): Ditto.

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

	Don't use macro names that start with `_[A-Z]' [2/3].

	Such macro names are reserved for both C and C++.

	* include/freetype/ftimage.h, src/raster/ftraster.c,
	src/smooth/ftgrays.c, src/smooth/ftgrays.h:
	s/_STANDALONE_/STANDALONE_/.

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

	Don't use macro names that start with `_[A-Z]' [1/3].

	Such macro names are reserved for both C and C++.

	* src/bdf/bdflib.c: Replace macros of the form `_BDF_XXX' with
	`BDF_XXX_'.

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

	Don't use macro names that contain `__' [2/2].

	Such macro names are reserved for both C and C++.

	* src/cache/*: s/__/_/.

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

	Don't use macro names that contain `__' [1/2].

	Such macro names are reserved for both C and C++.

	* */*: Replace macros of the form `__XXX_H__' with `XXX_H_'.

2016-01-10  Jered Gray  <jegray@google.com>

	[cff] Fix usage of `|' operator.

	* src/cff/cf2intrp.c (cf2_interpT2CharString) [cf2_cmdEXTENDEDNMBR,
	default]: `|' is not guaranteed to be processed from left to right
	by the compiler.  However, the code repeatedly calls
	`cf2_buf_readByte' to get the arguments to `|' ...  Fix this.

2015-12-25  Werner Lemberg  <wl@gnu.org>

	[autofit] Make top-to-bottom hinting work in latin auto-hinter.

	This improves rendering of scripts like Bengali or Devanagari.

	* src/autofit/afhints.c (af_axis_hints_new_edge): Add parameter to
	pass top-to-bottom hinting flag.  This makes the function sort edges
	in descending vertical position.

	* src/autofit/afhints.c: Updated.

	* src/autofit/aflatin.c (af_latin_hints_compute_edges,
	af_latin_hint_edges): Use `top_to_bottom_hinting' flag.

	* src/autofit/afcjk.c (af_cjk_hints_compute_edges),
	src/autofit/aflatin2.c (af_latin2_hints_compute_edges): Updated.

2015-12-24  Werner Lemberg  <wl@gnu.org>

	[autofit] Add hinting direction to `AF_ScriptClassRec'.

	Still unused.

	* src/autofit/afglobal.c (SCRIPT): Handle hinting direction.

	* src/autofit/aftypes.h (AF_ScriptClassRec): Add
	`top_to_bottom_hinting' field.
	(AF_HINTING_BOTTOM_TO_TOP, AF_HINTING_TOP_TO_BOTTOM): New macros.
	(AF_DEFINE_SCRIPT_CLASS): Updated.

2015-12-23  Werner Lemberg  <wl@gnu.org>

	[autofit] Start implementing hinting direction (up/down, down/up).

	Right now, it does nothing.

	* src/autofit/afscript.h: Add another parameter to `SCRIPT',
	specifying hinting direction.

	* src/autofit/afglobal.c, src/autofit/afglobal.h,
	src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/afshaper.c,
	src/autofit/aftypes.h: Extend `SCRIPT' definitions.

2015-12-22  Werner Lemberg  <wl@gnu.org>

	* src/type1/t1load.c (parse_subrs): Fix memory leak (#46744).

2015-12-22  Werner Lemberg  <wl@gnu.org>

	[base] Make hash interface symmetric.

	Use `num' and `str' infixes everywhere.

	* src/base/fthash.c (ft_hash_init): Renamed to...
	(hash_init): ... This.
	(ft_hash_str_init, ft_hash_num_init): New functions.
	(ft_hash_free): Renamed to...
	(ft_hash_str_free): ... This.

	* include/freetype/internal/fthash.h: Updated.

	* src/bdf/bdflib.c, src/type1/t1load.c, src/type1/t1objs.c: Updated.

2015-12-21  Werner Lemberg  <wl@gnu.org>

	[type1] Avoid shift of negative numbers (#46732).

	* src/type1/t1load.c (parse_subrs): Do it.

2015-12-20  Werner Lemberg  <wl@gnu.org>

	[type1, psaux] Handle large values of num_subrs correctly (#46692).

	We now use a hash to map from subr indices to array elements holding
	the subroutines, if necessary.

	* include/freetype/internal/t1types.h: Include FT_INTERNAL_HASH_H.
	(T1_FontRec): Add `subrs_hash' field.

	* include/freetype/internal/psaux.h: Include FT_INTERNAL_HASH_H.
	(T1_DecoderRec): Add `subrs_hash' field.

	* src/type1/t1load.h (T1_LoaderRec): Add `subrs_hash' field.

	* src/type1/t1driver.c: Include FT_INTERNAL_HASH_H.
	(t1_ps_get_font_value) [PS_DICT_SUBR]: Look up hash if necessary.

	* src/type1/t1load.c: Include FT_INTERNAL_HASH_H.
	(parse_subrs): Use hash for subr indices that exceed the allocated
	number of subr slots.
	(t1_init_loader): Remove unnecessary code.
	(t1_done_loader, T1_Open_Face): Updated.

	* src/type1/t1gload.c (T1_Compute_Max_Advance, T1_Get_Advances,
	T1_Load_Glyph): Updated.

	* src/type1/t1objs.c (T1_Face_Done): Updated.

	* src/psaux/t1decode.c: Include FT_INTERNAL_HASH_H.
	(t1_decoder_parse_charstrings) [op_callsubr]: Look up hash if
	necessary.

	* src/cid/cidgload.c (cid_load_glyph): Updated.

2015-12-20  Werner Lemberg  <wl@gnu.org>

	[base] Thinko: Remove free function pointer.

	We don't copy keys or values while hashing.

	* include/freetype/internal/fthash.h (FT_Hash_FreeFunc): Removed.
	(FT_HashRec): Remove `free' field.

	* src/base/fthash.c (hash_str_free): Removed.
	(ft_hash_init, ft_hash_free): Updated.

2015-12-20  Werner Lemberg  <wl@gnu.org>

	[base, bdf] Don't expose `FT_Hashnode' in hash functions.

	* src/base/fthash.c (hash_lookup, ft_hash_str_lookup,
	ft_hash_num_lookup): Return pointer to `size_t' instead of
	`FT_Hashnode'.

	* include/freetype/internal/fthash.h: Updated.

	* src/bdf/bdflib.c (bdf_get_property, _bdf_add_property,
	bdf_get_font_property): Updated.

2015-12-20  Werner Lemberg  <wl@gnu.org>

	[base, bdf] Add number hashing.

	* src/base/fthash.c (hash_num_lookup, hash_num_compare): New
	functions.
	(ft_hash_init): Add argument to select between number and string
	hashing.
	(ft_hash_num_insert, ft_hash_num_lookup): New functions.

	* include/freetype/internal/fthash.h: Updated.

	* src/bdf/bdflib.c (_bdf_parse_start): Updated.

2015-12-20  Werner Lemberg  <wl@gnu.org>

	[base] Introduce hash lookup, compare, and free function pointers.

	* include/freetype/internal/fthash.c (FT_Hash_LookupFunc,
	FT_Hash_CompareFunc, FT_Hash_FreeFunc): New typedefs.
	(FT_HashRec): Add `lookup', `compare', and `free' fields.

	* src/base/fthash.c (hash_str_lookup, hash_str_compare,
	hash_str_free): New functions.
	(ft_hash_init): Set function pointers.
	(hash_bucket, ft_hash_free): Use them.

2015-12-20  Werner Lemberg  <wl@gnu.org>

	[base, bdf] Use a union as a hash key.

	We want to support both an integer and a string key later on.

	* include/freetype/internal/fthash.h (FT_Hashkey): New union.
	(FT_HashnodeRec): Updated.
	(ft_hash_insert, ft_hash_lookup): Renamed to ...
	(ft_hash_str_insert, ft_hash_str_lookup): ... this.

	* src/base/fthash.c (hash_bucket): Updated.
	(ft_hash_insert, ft_hash_lookup): Renamed to ...
	(hash_insert, hash_lookup): ... this.
	(ft_hash_str_insert, ft_hash_str_lookup): New wrapper functions.

	* src/bdf/bdflib.c: Updated.

2015-12-19  Werner Lemberg  <wl@gnu.org>

	[bdf] Use new hash functions.

	* src/bdf/bdf.h: Include FT_INTERNAL_HASH_H.
	(hashnode, hashtable): Removed.
	(bdf_font_t): Use `FT_HashRec' type for `proptbl'.

	* src/bdf/bdflib.c: Remove all hash functions.
	Update code for new hash structure and function names.

2015-12-19  Werner Lemberg  <wl@gnu.org>

	[bdf, base] Lift hash functions from bdf driver to base module.

	* src/base/fthash.c, include/freetype/internal/fthash.h: New files,
	containing (massaged) code from `bdflib.c' and `bdf.h'.

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

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

	* src/base/Jamfile (_sources): Add `fthash'.

	* src/base/rules.mk (BASE_SRC): Add `fthash.c'.

	* docs/LICENSE.TXT: Updated.

2015-12-15  Werner Lemberg  <wl@gnu.org>

	[autofit] Add blue-zone support for Bengali script.

	This essentially moves the Bengali script from the `Indic' hinter to
	the `Latin' hinter.

	* src/autofit/afblue.dat: Add blue zone data for Bengali.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Bengali standard characters and move
	data out of AF_CONFIG_OPTION_INDIC block.

	* src/autofit/afranges.c: Move Bengali data out of
	AF_CONFIG_OPTION_INDIC block.

	* src/autofit/afstyles.h: Update Bengali data; in particular, use
	AF_WRITING_SYSTEM_LATIN.

2015-12-14  Ben Wagner  <bungeman@gmail.com>

	[bdf] Remove dead code (#46625).

	The BDF specification only allows decimal numbers, no octal or
	hexadecimal decoding is needed.

	* src/bdf/bdflib.c (_bdf_atoul, _bdf_atol, _bdf_atous,
	_bdf_atos): Remove unused code and parameters.
	Update all callers.
	(odigits): Remove.

2015-12-14  Werner Lemberg  <wl@gnu.org>

	[base] Fix calls to `FT_Stream_Seek'.

	* src/base/ftobjs.c (Mac_Read_sfnt_Resource, FT_Open_Face): Set
	`error'.

2015-12-14  Ben Wagner  <bungeman@gmail.com>

	[base] Check error when seeking to data supplied offset (#46635).

	* src/base/ftobjs.c (open_face_PS_from_sfnt_stream):
	`ft_lookup_PS_in_sfnt_stream' returns offset and length from
	user supplied data.  Use of this these values must be checked.

2015-12-13  Werner Lemberg  <wl@gnu.org>

	[autofit] Add support for Myanmar script.

	* src/autofit/afblue.dat: Add blue zone data for Myanmar.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Myanmar standard characters.

	* src/autofit/afranges.c: Add Myanmar data.

	* src/autofit/afstyles.h: Add Myanmar data.

2015-12-12  Werner Lemberg  <wl@gnu.org>

	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Minor.

2015-12-12  Werner Lemberg  <wl@gnu.org>

	* src/autofit/afscript.h: Avoid potential crash.

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

	[autofit] Restore OpenType feature check.

	This was removed while rewriting the HarfBuzz interface.

	* src/autofit/afglobal.h (AF_FaceGlobalsRec): Add `hb_buf' field to
	hold internal HarfBuzz buffer, needed for feature comparison.

	* src/autofit/afglobal.c (af_face_globals_new,
	af_face_globals_free): Initialize and destroy `hb_buf'.

	* src/autofit/afshaper.c (af_shaper_get_cluster): Compare character
	(cluster) with and without applied feature.

	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix tracing
	message.

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

	[autofit] Remove redundant code.

	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Do it.

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

	[autofit] Thinko.

	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Don't count
	empty blue zones (bug introduced 2015-12-06).

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

	[autofit] Introduce subscript top blue zones.

	This feature is mainly for Khmer: The idea is to avoid a clash
	between the top of subscript glyphs and the bottom of normal
	baseline glyphs.

	This only works for character clusters mapped to multiple glyphs.

	* src/autofit/afblue.dat: Add subscript top blue zone for Khmer.

	* src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_SUB_TOP): New
	macro.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/aflatin.h (AF_LATIN_IS_SUB_TOP_BLUE,
	AF_LATIN_BLUE_SUB_TOP): New macros.

	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle new
	blue zone property.
	Update tracing messages.
	(af_latin_metrics_scale_dim): Handle new blue zone property.
	(af_latin_hints_compute_blue_edges): Updated.

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

	[autofit] Fix tracing message.

	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Display
	inactive blue zones also.

2015-12-06  Werner Lemberg  <wl@gnu.org>

	* src/autofit/afblue.dat: Add more Khmer clusters.

	Some fonts have incorrect ligatures; we need more samples to get a
	good mean value.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

2015-12-06  Werner Lemberg  <wl@gnu.org>

	[autofit] Typos.

	* src/autofit/afshaper.c (af_shaper_buf_create, af_shaper_get_elem)
	[!FT_CONFIG_OPTION_USE_HARFBUZZ]: Make it compile.

2015-12-06  Werner Lemberg  <wl@gnu.org>

	[autofit] Add support for Khmer script.

	We split Khmer into two auto-hinter scripts: `Khmer' (`khmr') and
	`Khmer symbols' (`khms', U+19E0-U+19FF).

	* src/autofit/afblue.dat: Add blue zone data for Khmer.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Khmer standard characters.

	* src/autofit/afranges.c: Add Khmer data.

	* src/autofit/afstyles.h: Add Khmer data.

2015-12-06  Werner Lemberg  <wl@gnu.org>

	[autofit] Rewrite HarfBuzz interface to support character clusters.

	Scripts like Khmer have blue zones that can't be directly
	represented by Unicode characters.  Instead, it is necessary to let
	HarfBuzz convert character clusters into proper glyph representation
	forms, then deriving the blue zone information from the resulting
	glyphs.

	* src/autofit/hbshim.c, src/autofit/hbshim.h: Replaced by...
	* src/autofit/afshaper.c, src/autofit/afshaper.h: ... these two new
	files, providing a new API to access HarfBuzz.

	The new API manages a HarfBuzz buffer with `af_shaper_buf_create'
	and `af_shaper_buf_destroy'.  The buffer receives a UTF8 encoded
	string with function `af_shaper_get_cluster', and the resulting
	glyph data (indices, advance widths, vertical offsets) can be
	iteratively accessed with function `af_shaper_get_elem'.

	* src/autofit/afcjk.c (af_cjk_metrics_init_widths,
	af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated.

	* src/autofit/aflatin.c (af_latin_metrics_init_widths,
	af_latin_metrics_init_blues, af_latin_metrics_check_digits):
	Updated.

	* include/freetype/internal/fttrace.h: s/afharfbuzz/afshaper/.

	* src/autofit/afglobal.c: s/hbshim.h/afshaper.h/.
	(af_face_globals_compute_style_coverage): Updated.

	* src/autofit/afglobal.h: s/hbshim.h/afshaper.h/.

	* src/autofit/autofit.c: s/hbshim.c/afshaper.c/.

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

2015-12-06  Werner Lemberg  <wl@gnu.org>

	[autofit] Prepare forthcoming changes.

	This makes it easier to control the commits.

	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Add dummy
	loop.  No functional change.

2015-12-06  Werner Lemberg  <wl@gnu.org>

	[autofit] Use string of standard characters.

	This is more flexible; additionally, it would allow character
	clusters.

	* src/autofit/aftypes.h (SCRIPT, AF_DEFINE_SCRIPT_CLASS): Updated.
	(AF_ScriptClassRec): Replace `standard_char[123]' with
	`standard_charstring'.

	* src/autofit/afscript.h: Replace last three character arguments
	of the `SCRIPT' calls with a string parameter, holding the standard
	characters (in UTF-8 encoding) separated with spaces.

	* src/autofit/afglobal.c, src/autofit/afglobal.h,
	src/autofit/afpic.c, src/autofit/afranges.c, src/autofit/hbshim.c
	(SCRIPT): Updated.

	* src/autofit/afcjk.c (af_cjk_metrics_init_widths),
	src/autofit/aflatin.c (af_latin_metrics_init_widths): Updated.

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

	* src/autofit/afblue.dat: Separate blue zone characters with spaces.

	Another preparation for character cluster support.

	* src/autofit/afblue.c, src/autofit.afblue.h: Regenerated.

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

	* src/tools/afblue.pl (convert_ascii_chars): Don't ignore spaces.

	Instead, reduce multiple spaces to a single one.  We need this later
	for supporting character clusters in `afblue.dat'.

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

	* src/autofit/afblue.hin (GET_UTF8_CHAR): Use `do...while(0)'.

	* src/autofit/afblue.h: Regenerated.

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

	* src/autofit/afwarp.c: s/INT_MIN/FT_INT_MIN/.

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

	* builds/unix/install.mk (install): Remove stale `ft2build.h'.

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

	[type1] Avoid dangling pointer (#46572).

	* src/type1/t1afm.c (T1_Read_Metrics): Properly reset
	`face->afm_data'.

2015-11-28  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* include/freetype/ftlcdfil.h: Documentation tweak.

2015-11-28  Werner Lemberg  <wl@gnu.org>

	* Version 2.6.2 released.
	=========================


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

	* docs/VERSION.DLL: Update documentation and bump version number to
	2.6.2.

	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
	builds/windows/vc2005/index.html,
	builds/windows/vc2008/freetype.vcproj,
	builds/windows/vc2008/index.html,
	builds/windows/vc2010/freetype.vcxproj,
	builds/windows/vc2010/index.html,
	builds/windows/visualc/freetype.dsp,
	builds/windows/visualc/freetype.vcproj,
	builds/windows/visualc/index.html,
	builds/windows/visualce/freetype.dsp,
	builds/windows/visualce/freetype.vcproj,
	builds/windows/visualce/index.html,
	builds/wince/vc2005-ce/freetype.vcproj,
	builds/wince/vc2005-ce/index.html,
	builds/wince/vc2008-ce/freetype.vcproj,
	builds/wince/vc2008-ce/index.html: s/2.6.1/2.6.2/, s/261/262/.

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

	* builds/unix/configure.raw (version_info): Set to 18:2:12.
	* CMakeLists.txt (VERSION_PATCH): Set to 2.

	* docs/CHANGES: Updated.

2015-11-28  Werner Lemberg  <wl@gnu.org>

	Fix C++ compilation.

	* src/autofit/afloader.c: Include FT_INTERNAL_CALC_H.

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

2015-11-28  Nikolaus Waxweiler  <madigens@gmail.com>

	Change default LCD filter to be normalized and color-balanced.

	* src/base/ftlcdfil.c (FT_Library_SetLcdFilter): Update
	`default_filter'.

2015-11-28  Werner Lemberg  <wl@gnu.org>

	[docmaker] Allow references to section names.

	In the reference, we show the section's title enclosed in single
	quotes.

	* src/tools/docmaker/formatter.py (Formatter::__init__): Collect
	section names as identifiers.

	* src/tools/docmaker/tohtml.py (section_title_header): Split into...
	(section_title_header1, section_title_header2): ... these two
	strings.
	(HtmlFormatter::make_block_url, make_html_word, html_source_quote):
	Handle sections.
	(HtmlFormatter::section_enter): Updated to add `id' HTML attribute.

2015-11-27  Tamas Kenez  <tamas.kenez@adasworks.com>

	[cmake] Add script to test the config module.

	* builds/cmake/testbuild.sh: New file.

2015-11-27  Tamas Kenez  <tamas.kenez@adasworks.com>

	* CMakeLists.txt: Create `freetype-config.cmake' config module.

2015-11-27  Tamas Kenez  <tamas.kenez@adasworks.com>

	* CMakeLists.txt: Set CMAKE_DEBUG_POSTFIX to `d'.

2015-11-27  Tamas Kenez  <tamas.kenez@adasworks.com>

	[cmake] Add better control of library dependencies.

	* CMakeLists.txt: Add `WITH_*' variables to force/auto/omit
	ZLIB/BZip2/PNG/HarfBuzz.

2015-11-27  Tamas Kenez  <tamas.kenez@adasworks.com>

	[cmake] Make `FindHarfBuzz' observe the REQUIRED option.

	* builds/cmake/FindHarfBuzz.cmake: Implement it.

2015-11-27  Werner Lemberg  <wl@gnu.org>

	[cmake] Collect files specific to cmake in `builds/cmake'.

	* builds/FindHarfBuzz.cmake: Move to ...
	* builds/cmake/FindHarfBuzz.cmake: ... this place.

	* CMakeLists.txt (CMAKE_MODULE_PATH): Updated.

2015-11-27  Alexander Bock  <alexander.j.bock@nasa.gov>

	CMakeLists.txt: Honour new command line flag `FREETYPE_NO_DIST'.

2015-11-26  Werner Lemberg  <wl@gnu.org>

	[docmaker] Allow `foo[bar]' as identifier.

	We need this to handle equally named properties in different
	modules.

	* src/tools/docmaker/content.py (re_identifier),
	src/tools/docmaker/sources.py (re_crossref): Allow `foo[bar]'.

	* src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word,
	HtmlFormatter::index_exit, HtmlFormatter::section_enter,
	HtmlFormatter::block_enter): Handle `foo[bar]'.

2015-11-25  Werner Lemberg  <wl@gnu.org>

	* src/bdf/bdflib.c (bdf_load_font): Fix small memory leak (#46480).

	(_bdf_parse_glyphs): Always reset `p->glyph_name' after moving its
	contents.

2015-11-21  Werner Lemberg  <wl@gnu.org>

	* include/freetype/internal/ftcalc.h: Don't use `register' keyword.

	This fixes compiler warnings.

	Reported by Behdad.

2015-11-20  Werner Lemberg  <wl@gnu.org>

	Add `FT_LCD_FILTER_LEGACY1' enum value.

	This does the same as `FT_LCD_FILTER_LEGACY'.

	See

	  https://bugs.freedesktop.org/show_bug.cgi?id=92981

	for the reasoning.

	* include/freetype/ftlcdfil.h (FT_LcdFilter): New value
	`FT_LCD_FILTER_LEGACY1'.

	* src/base/ftlcdfil.c (FT_Library_SetLcdFilter): Use it.

2015-11-15  Werner Lemberg  <wl@gnu.org>

	* src/autofit/afhints.c (af_get_segment_index): Fix it.

	The old code was too simple, returning invalid values in most cases
	where a segment crosses the contour start.

2015-11-15  Werner Lemberg  <wl@gnu.org>

	* src/bdf/bdflib.c (bdf_load_font): Fix small memory leak (#46439).

2015-11-11  Werner Lemberg  <wl@gnu.org>

	[cff, autofit] Switch off stem darkening by default.

	* src/autofit/afmodule.c (af_autofitter_init), src/cff/cffobjs.c
	(cff_driver_init): Do it.

2015-11-10  Jan Alexander Steffens (heftig)  <jan.steffens@gmail.com>

	Allow native CFF hinter in FT_RENDER_MODE_LIGHT.

	Both the native CFF hinter and the auto-hinter now have a very
	similar rendering style.

	* include/freetype/freetype.h: Mention that FT_LOAD_TARGET_LIGHT no
	longer implies FT_LOAD_FORCE_AUTOHINT.

	* include/freetype/ftmodapi.h (FT_MODULE_DRIVER_HINTS_LIGHTLY): New
	macro.

	* include/freetype/internal/ftobjs.h (FT_DRIVER_HINTS_LIGHTLY): New
	macro.

	* src/cff/cffdrivr.c (cff_driver_class): Use it.

	* src/base/ftobjs.c (FT_Load_Glyph): Update auto-hinter selection
	logic.

2015-11-09  Werner Lemberg  <wl@gnu.org>

	* src/cid/cidload.c (cid_face_open): Fix GDBytes guard (#46408).

2015-11-09  Werner Lemberg  <wl@gnu.org>

	[truetype] Remove integer to pointer conversion compiler warning.

	Problem reported by Alexei.

	* src/truetype/ttgload.c (load_truetype_glyph): Use a solution found
	in the glib library to fix the issue.

2015-11-08  Behdad Esfahbod  <behdad@behdad.org>

	[sfnt] Accept version 3 of `EBLC' and `CBLC' tables also.

	* src/sfnt/ttsbit.c (tt_face_load_sbit): Implement it.

2015-11-08  Philipp Knechtges  <philipp-dev@knechtges.com>

	[autofit] Don't distort (latin) glyphs too much (#46195).

	* src/autofit/aflatin.h (AF_LatinBlueRec): Add `ascender' and
	`descender' fields.

	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Collect
	ascender and descender data for blue zones.
	(af_latin_metrics_scale_dim): Reject vertical scaling values that
	change the result by more than two pixels.

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

	[sfnt] Ignore embedded bitmaps with zero size (#46379).

	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_bit_aligned): Implement
	it.

2015-11-04  Werner Lemberg  <wl@gnu.org>

	[truetype] Catch infinite recursion in subglyphs (#46372).

	* include/freetype/internal/tttypes.h (TT_LoaderRec): New field
	`composites'.

	* src/truetype/ttgload.c: Include FT_LIST_H.
	(load_truetype_glyph): Add composite subglyph index to a list;
	abort if index is already in list.
	(tt_loader_init): Updated.
	(tt_loader_done): New function.
	(TT_Load_Glyph): Call `tt_loader_done'.

2015-11-04  Werner Lemberg  <wl@gnu.org>

	[truetype] Better tracing of composite glyphs.

	* src/truetype/ttgload.c (TT_Load_Composite_Glyph,
	load_truetype_glyph): Implement it.

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

	[sfnt] Protect against zero-size bitmaps (#46345).

	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Check
	`glyph_size'.

2015-11-02  Nikolaus Waxweiler  <madigens@gmail.com>

	* src/autofit/afloader.c (af_loader_load_g): Implement emboldening.

2015-11-02  Nikolaus Waxweiler  <madigens@gmail.com>

	[autofit] Implement darkening computation function.

	This is a crude adaption of the original `cf2_computeDarkening'
	function.

	* src/autofit/afloader.c (af_intToFixed, af_fixedToInt,
	af_floatToFixed): New macros, taken from `cf2fixed.h'.
	(af_loader_compute_darkening): New function.
	* src/autofit/afloader.h: Updated.

2015-11-02  Nikolaus Waxweiler  <madigens@gmail.com>

	[autofit] Add functions to get standard widths for writing systems.

	We need the computed standard horizontal and vertical widths for the
	emboldening calculation.  This method provides a convenient way to
	extract it from writing-system-specific metrics structures, which
	all script definitions must implement.

	* src/autofit/aftypes.h (AF_WritingSystem_GetStdWidthsFunc): New
	function type.
	(AF_WritingSystemClassRec): New member `style_metrics_getstdw'.
	(AF_DEFINE_WRITING_SYSTEM_CLASS): Updated.

	* src/autofit/afcjk.c (af_cjk_get_standard_width): New function.
	(af_cjk_writing_system_class): Updated.
	* src/autofit/afdummy.c	(af_dummy_writing_system_class): Updated.
	* src/autofit/afindic.c (af_cjk_get_standard_width): New function.
	(af_indic_writing_system_class): Updated.
	* src/autofit/aflatin.c (af_latin_get_standard_width): New function.
	(af_indic_writing_system_class): Updated.
	* src/autofit/aflatin.c (af_latin_get_standard_width): New function.
	(af_indic_writing_system_class): Updated.

2015-11-02  Nikolaus Waxweiler  <madigens@gmail.com>

	[autofit] Extend `AF_FaceGlobalsRec' to hold emboldening data.

	* src/autofit/afglobal.h (AF_FaceGlobalsRec): Add fields.

	* src/autofit/afglobal.c (af_face_globals_new): Initialize new
	fields.
	(af_face_globals_free): Reset new fields.

2015-11-02  Nikolaus Waxweiler  <madigens@gmail.com>

	[autofit] Add stem-darkening properties.

	Actual code follows in a later commit.

	* include/freetype/ftautoh.h: Document `no-stem-darkening' and
	`darkening-parameters'.

	* src/autofit/afmodule.h: New fields `no_stem_darkening' and
	`darken_params'.

	* src/autofit/afmodule.c (af_property_set, af_property_get):
	Handle them.
	(af_autofitter_init): Initialize them.

2015-11-02  Ben Wagner  <bungeman@gmail.com>

	[ftfuzzer] Add support for multiple files (patch #8779).

	Currently, libFuzzer only supports mutation of a single file.  We
	circumvent this problem by using an uncompressed tar archive as
	multiple-file input for the fuzzer.

	This patch enables tests of `FT_Attach_Stream' and AFM/PFM parsing;
	a constructed tarball should contain a font file as the first
	element, and files to be attached as further elements.

	* src/tools/ftfuzzer/ftfuzzer.cc: Include libarchive headers.
	(archive_read_entry_data, parse_data): New functions.
	(LLVMFuzzerTestOneInput): Updated.

	* src/tools/ftfuzzer/ftmutator.cc: New file, providing a custom
	mutator for libFuzzer that can mutate tarballs in a sensible way.

2015-10-31  Werner Lemberg  <wl@gnu.org>

	[sfnt] Fix cmap 14 validation (#46346).

	* src/sfnt/ttcmap.c (tt_cmap14_validate): Check limit before
	accessing `numRanges' and `numMappings'.
	Fix size check for non-default UVS table.

2015-10-31  Werner Lemberg  <wl@gnu.org>

	[sfnt] Handle infinite recursion in bitmap strikes (#46344).

	* src/sfnt/ttsbit.c (TT_SBitDecoder_LoadFunc,
	tt_sbit_decoder_load_bitmap, tt_sbit_decoder_load_byte_aligned,
	tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_png): Add
	argument for recursion depth.
	(tt_sbit_decoder_load_compound): Add argument for recursion depth.
	Increase recursion counter for recursive call.
	(tt_sbit_decoder_load_image): Add argument for recursion depth.
	Check recurse depth.
	(tt_face_load_sbit_image): Updated.

2015-10-29  Werner Lemberg  <wl@gnu.org>

	* src/autofit/afhints.c (af_glyph_hints_dump_points): Minor.

2015-10-29  Werner Lemberg  <wl@gnu.org>

	* CMakeLists.txt: Remove code to set MSVC's /FD compiler switch.

	Problem reported by David Capello <davidcapello@gmail.com>; see

	  http://lists.nongnu.org/archive/html/freetype-devel/2015-10/msg00108.html

	for details.

2015-10-27  Werner Lemberg  <wl@gnu.org>

	[pfr] Add some safety guards (#46302).

	* src/pfr/pfrload.h (PFR_CHECK): Rename to...
	(PFR_CHECK_SIZE): ... this.
	(PFR_SIZE): [!PFR_CONFIG_NO_CHECKS]: Define to PFR_CHECK_SIZE.

	* src/pfr/pfrload.c (pfr_log_font_count): Check `count'.
	(pfr_extra_item_load_kerning_pairs): Remove tracing message.
	(pfr_phy_font_load): Use PFR_CHECK_SIZE where appropriate.
	Allocate `chars' after doing a size checks.

	* src/pfr/pfrsbit.c (pfr_load_bitmap_bits): Move test for invalid
	bitmap format to...
	(pfr_slot_load_bitmap): ... this function.
	Check bitmap size.

2015-10-26  Werner Lemberg  <wl@gnu.org>

	[truetype] Fix sanitizing logic for `loca' (#46223).

	* src/truetype/ttpload.c (tt_face_load_loca): A thinko caused an
	incorrect adjustment of the number of glyphs, most often using far
	too large values.

2015-10-25  Werner Lemberg  <wl@gnu.org>

	[autofit] Improve tracing.

	* src/autofit/afhints.c (af_print_idx, af_get_segment_index,
	af_get_edge_index): New functions.

	(af_glyph_hints_dump_points): Remove unnecessary `|', `[', and `]'.
	Add segment and edge index for each point.
	Slightly change printing order of some elements.
	Don't print `-1' but `--' for missing elements.

	(af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Remove
	unnecessary `|', `[', and `]'.
	Don't print `-1' but `--' for missing elements.

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

	[sfnt] Sanitize bitmap strike glyph height.

	Problem reported by Nikolay Sivov <bunglehead@gmail.com>.

	* src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Avoid zero value
	for `metrics->height' by applying some heuristics.

2015-10-22  Werner Lemberg  <wl@gnu.org>

	[sfnt, type42] Fix clang compiler warnings.

	* src/sfnt/sfobjs.c (sfnt_init_face): Initialize `offset'.

	* src/type42/t42parse.c (t42_parse_sfnts): Use proper cast.

2015-10-22  Dave Arnold  <darnold@adobe.com>
	    Werner Lemberg  <wl@gnu.org>

	[cff] Avoid overflow/module arithmetic.

	This modifies the addition of subroutine number to subroutine bias
	from unsigned to signed, but does not change any results.

	* src/cff/cf2ft.c (cf2_initGlobalRegionBuffer,
	cf2_initLocalRegionBuffer): Change variable names from (unsigned)
	`idx' to (signed) `subrNum', since it is not an index until after
	the bias is added.
	* src/cff/cf2ft.h: Updated.

	* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdCALLSUBR>:
	Updated similarly.

2015-10-22  Werner Lemberg  <wl@gnu.org>

	[cid] Better check of `SubrCount' dictionary entry (#46272).

	* src/cid/cidload.c (cid_face_open): Add more sanity tests for
	`fd_bytes', `gd_bytes', `sd_bytes', and `num_subrs'.

2015-10-21  Werner Lemberg  <wl@gnu.org>

	[base] Pacify compiler (#46266).

	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Initialize `in' and
	`anchor'.

2015-10-21  Werner Lemberg  <wl@gnu.org>

	[type42] Fix heap buffer overflow (#46269).

	* src/type42/t42parse.c (t42_parse_sfnts): Fix off-by-one error in
	bounds checking.

2015-10-21  Dave Arnold  <darnold@adobe.com>

	[cff] Fix limit in assert for max hints.

	* src/cff/cf2interp.c (cf2_hintmask_setAll): Allow mask equal to the
	limit (96 bits).

2015-10-21  Dave Arnold  <darnold@adobe.com>

	[cff] Remove an assert (#46107).

	* src/cff/cf2hints.c (cf2_hintmap_insertHint): Ignore paired edges
	in wrong order.

2015-10-21  Werner Lemberg  <wl@gnu.org>

	[sfnt] Avoid unnecessarily large allocation for WOFFs (#46257).

	* src/sfnt/sfobjs.c (woff_open_font): Use WOFF's `totalSfntSize'
	only after thorough checks.
	Add tracing messages.

2015-10-21  Werner Lemberg  <wl@gnu.org>

	[type42] Better check invalid `sfnts' array data (#46255).

	* src/type42/t42parse.c (t42_parse_sfnts): Table lengths must be
	checked individually against available data size.

2015-10-20  Werner Lemberg  <wl@gnu.org>

	[cid] Add a bunch of safety checks.

	* src/cid/cidload.c (parse_fd_array): Check `num_dicts' against
	stream size.
	(cid_read_subrs): Check largest offset against stream size.
	(cid_parse_dict): Move safety check to ...
	(cid_face_open): ... this function.
	Also test length of binary data and values of `SDBytes',
	`SubrMapOffset', `SubrCount', `CIDMapOffset', and `CIDCount'.

2015-10-20  Werner Lemberg  <wl@gnu.org>

	[cid] Avoid segfault with malformed input (#46250).

	* src/cid/cidload.c (cid_read_subrs): Return a proper error code for
	unsorted offsets.

2015-10-20  StudioEtrange  <nomorgan@gmail.com>

	* CMakeLists.txt: Enable shared library builds on MinGW (#46233).

2015-10-20  Werner Lemberg  <wl@gnu.org>

	* src/type1/t1afm.c (T1_Read_Metrics): Fix memory leak (#46229).

2015-10-19  Ben Wagner  <bungeman@gmail.com>

	[cid] Better handle invalid glyph stream offsets (#46221).

	* src/cid/cidgload.c (cid_load_glyph): Check minimum size of glyph
	length.

2015-10-18  Werner Lemberg  <wl@gnu.org>

	[psaux] Fix tracing of negative numbers.

	Due to incorrect casting negative numbers were shown as very large
	(positive) integers on 64bit systems.

	* src/psaux/t1decode.c (t1_decoder_parse_charstrings) <op_none>:
	Use division instead of shift.

2015-10-18  Werner Lemberg  <wl@gnu.org>

	[truetype] Improve TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES (#46223).

	* devel/ftoption.h, include/freetype/config/ftoption.h: Surround it
	with #ifndef ... #endif, as suggested in the tracker issue.

2015-10-18  Werner Lemberg  <wl@gnu.org>

	[truetype] Better protection against malformed `fpgm' (#46223).

	* src/truetype/ttobjs.c (tt_size_init_bytecode): Don't execute a
	malformed `fpgm' table more than once.

2015-10-17  Werner Lemberg  <wl@gnu.org>

	* src/cid/cidgload.c (cid_load_glyph): Fix memory leak.

	Reported by Kostya Serebryany <kcc@google.com>.

2015-10-17  Werner Lemberg  <wl@gnu.org>

	[bdf] Prevent memory leak (#46217).

	* src/bdf/bdflib.c (_bdf_parse_glyphs) <STARTCHAR>: Check
	_BDF_GLYPH_BITS.

2015-10-17  Werner Lemberg  <wl@gnu.org>

	[bdf] Use stream size to adjust number of glyphs.

	* src/bdf/bdflib.c (ACMSG17): New message macro.
	(_bdf_parse_t): Add member `size'.
	(bdf_load_font): Set `size'.
	(_bdf_parse_glyphs): Adjust `cnt' if necessary.

2015-10-17  Werner Lemberg  <wl@gnu.org>

	* src/cid/cidload.c (cid_parse_dict): Check `[FG]DBytes' size.

2015-10-17  Werner Lemberg  <wl@gnu.org>

	* src/cid/cidgload.c (cid_glyph_load): Check file offsets (#46222).

2015-10-17  Werner Lemberg  <wl@gnu.org>

	[psaux] Fix heap buffer overflow (#46221).

	* src/psaux/t1decode.c (t1_decoder_parse_charstring) <operator 12>:
	Fix limit check.

2015-10-17  Werner Lemberg  <wl@gnu.org>

	* src/cid/cidload.c (cid_parse_dict): Handle invalid input (#46220).

2015-10-15  Kostya Serebryany  <kcc@google.com>

	[ftfuzzer] Add README.

	* src/tools/ftfuzzer/README: New file.

2015-10-15  Ben Wagner  <bungeman@gmail.com>

	[bdf] Fix memory leak (#46213).

	* src/bdf/bdflib.c (bdf_load_font): Always go to label `Fail' in
	case of error.

2015-10-15  Werner Lemberg  <wl@gnu.org>

	[truetype] Add TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES (#46208).

	* devel/ftoption.h, include/freetype/config/ftoption.h
	(TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES): New configuration macro.

	* src/truetype/ttinterp.c (MAX_RUNNABLE_OPCODES): Removed.
	(TT_RunIns): Updated.

2015-10-15  Werner Lemberg  <wl@gnu.org>

	* src/truetype/ttinterp.c (TT_RunIns): Fix bytecode stack tracing.

	The used indices were off by 1.

2015-10-15  Ben Wagner  <bungeman@gmail.com>
	    Werner Lemberg  <wl@gnu.org>

	* src/tools/ftfuzzer/ftfuzzer.cc: Handle fixed sizes (#46211).

2015-10-15  Werner Lemberg  <wl@gnu.org>

	[base] Compute MD5 checksums only if explicitly requested.

	This improves profiling accuracy.

	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Implement it.

2015-10-14  Werner Lemberg  <wl@gnu.org>

	[base] Use `FT_' namespace for MD5 functions (#42366).

	* src/base/ftobjs.c (MD5_*): Define as `FT_MD5_*'.
	Undefine HAVE_OPENSSL.

2015-10-13  Werner Lemberg  <wl@gnu.org>

	[type1] Correctly handle missing MM axis names (#46202).

	* src/type1/t1load.c (T1_Get_MM_Var): Implement it.

2015-10-13  Werner Lemberg  <wl@gnu.org>

	[pcf] Quickly exit if font index < 0.

	Similar to other font formats, this commit makes the parser no
	longer check the whole PCF file but only the header and the TOC if
	we just want to get the number of available faces (and a proper
	recognition of the font format).

	* src/pcf/pcfdrivr.c (PCF_Face_Init): Updated.
	Exit quickly if face_index < 0.

	* src/pcfread.c (pcf_load_font): Add `face_index' argument.
	Exit quickly if face_index < 0.

	* src/pcf/pcf.h: Updated.

2015-10-13  Werner Lemberg  <wl@gnu.org>

	[ftfuzzer] Handle TTCs and MM/GX variations.

	This patch also contains various other improvements.

	* src/tools/ftfuzzer/ftfuzzer.cc: Add preprocessor guard to reject
	pre-C++11 compilers.
	(FT_Global): New class.  Use it to provide a global constructor and
	destructor for the `FT_Library' object.
	(setIntermediateAxis): New function to select an (arbitrary)
	instance.
	(LLVMFuzzerTestOneInput): Loop over all faces and named instances.
	Also call `FT_Set_Char_Size'.

2015-10-13  Werner Lemberg  <wl@gnu.org>

	[truetype] Refine some GX sanity tests.

	Use the `gvar' table size instead of the remaining bytes in the
	stream.

	* src/truetype/ttgxvar.h (GX_BlendRec): New field `gvar_size'.

	* src/truetype/ttgxvar.c (ft_var_load_gvar): Set `gvar_size'.
	(ft_var_readpackedpoints, ft_var_readpackeddeltas: New argument
	`size'.
	(tt_face_vary_cvt, TT_Vary_Apply_Glyph_Deltas): Updated.

2015-10-13  Werner Lemberg  <wl@gnu.org>

	[truetype] Another GX sanity test.

	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Check
	`tupleCount'.
	Add tracing message.

2015-10-13  Werner Lemberg  <wl@gnu.org>

	[truetype] Fix memory leak for broken GX fonts (#46188).

	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix scope of
	deallocation.

2015-10-13  Werner Lemberg  <wl@gnu.org>

	[truetype] Fix commit from 2015-10-10.

	* src/truetype/ttgxvar.c (ft_var_load_gvar): Add missing error
	handling body to condition.

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

	[unix] Make MKDIR_P actually work.

	* builds/unix/configure.raw: Fix underquoting of `INSTALL' and
	`MKDIR_P'.

	Problem reported by Dan Liddell <lddll@yahoo.com>.

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

	[sfnt] Improve extraction of number of named instances.

	* src/sfnt/sfobjs.c (sfnt_init_face)
	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Check number of instances against
	`fvar' table size.

2015-10-10  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix overflow
	(#46149).

2015-10-10  Werner Lemberg  <wl@gnu.org>

	[sfnt] Fix infinite loops with broken cmaps (#46167).

	* src/sfnt/ttcmap.c (tt_cmap8_char_next, tt_cmap12_next): Take care
	of border conditions (i.e., if the loops exit naturally).

2015-10-10  Werner Lemberg  <wl@gnu.org>

	[truetype] More sanity tests for GX handling.

	These tests should mainly help avoid unnecessarily large memory
	allocations in case of malformed fonts.

	* src/truetype/ttgxvar.c (ft_var_readpackedpoints,
	ft_var_readpackeddeltas): Check number of points against stream
	size.
	(ft_var_load_avar): Check `pairCount' against table length.
	(ft_var_load_gvar): Check `globalCoordCount' and `glyphCount'
	against table length.
	(tt_face_vary_cvt): Check `tupleCount' and `offsetToData'.
	Fix trace.
	(TT_Vary_Apply_Glyph_Deltas): Fix trace.
	Free `sharedpoints' to avoid memory leak.

2015-10-10  Werner Lemberg  <wl@gnu.org>

	[truetype] Better protection against malformed GX data (#46166).

	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Correctly
	handle empty `localpoints' array.

2015-10-10  Werner Lemberg  <wl@gnu.org>

	* src/pcf/pcfread.c (pcf_read_TOC): Check stream size (#46162).

2015-10-09  Werner Lemberg  <wl@gnu.org>

	* src/gzip/ftgzip.c (FT_Stream_OpenGzip): Use real stream size.

2015-10-08  Werner Lemberg  <wl@gnu.org>

	[pcf] Protect against invalid number of TOC entries (#46159).

	* src/pcf/pcfread.c (pcf_read_TOC): Check number of TOC entries
	against size of data stream.

2015-10-08  Werner Lemberg  <wl@gnu.org>

	[type42] Protect against invalid number of glyphs (#46159).

	* src/type42/t42parse.c (t42_parse_charstrings): Check number of
	`CharStrings' dictionary entries against size of data stream.

2015-10-08  Werner Lemberg  <wl@gnu.org>

	[sfnt] Fix some signed overflows (#46149).

	* src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
	<TT_SBIT_TABLE_TYPE_SBIX>: Use `FT_MulDiv'.

2015-10-08  Werner Lemberg  <wl@gnu.org>

	[type1] Protect against invalid number of subroutines (#46150).

	* src/type1/t1load.c (parse_subrs): Check number of
	`Subrs' dictionary entries against size of data stream.

2015-10-07  Kostya Serebryany  <kcc@google.com>

	[ftfuzzer] Add support for LLVM's LibFuzzer.

	* src/tools/ftfuzzer/ftfuzzer.cc, src/tools/runinput.cc: New files.

2015-10-06  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Faster alternative line renderer.

	This implementation renders the entire line segment at once without
	subdividing it into scanlines.  The main speed improvement comes from
	reducing the number of divisions to just two per line segment, which
	is a bare minimum to calculate cell coverage in a smooth rasterizer.
	Notably, the progression from cell to cell does not itself require any
	divisions at all.  The speed improvement is more noticeable at larger
	sizes.

	* src/smooth/ftgrays.c (gray_render_line): New implementation.

2015-10-06  Werner Lemberg  <wl@gnu.org>

	[cff] Return correct PS names from pure CFF (#46130).

	* src/cff/cffdrivr.c (cff_get_ps_name): Use SFNT service only for
	SFNT.

2015-10-04  Werner Lemberg  <wl@gnu.org>

	[base] Replace left shifts with multiplication (#46118).

	* src/base/ftglyph.c (ft_bitmap_glyph_bbox, FT_Get_Glyph): Do it.

2015-10-04  Werner Lemberg  <wl@gnu.org>

	* Version 2.6.1 released.
	=========================


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

	* docs/VERSION.DLL: Update documentation and bump version number to
	2.6.1.

	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
	builds/windows/vc2005/index.html,
	builds/windows/vc2008/freetype.vcproj,
	builds/windows/vc2008/index.html,
	builds/windows/vc2010/freetype.vcxproj,
	builds/windows/vc2010/index.html,
	builds/windows/visualc/freetype.dsp,
	builds/windows/visualc/freetype.vcproj,
	builds/windows/visualc/index.html,
	builds/windows/visualce/freetype.dsp,
	builds/windows/visualce/freetype.vcproj,
	builds/windows/visualce/index.html,
	builds/wince/vc2005-ce/freetype.vcproj,
	builds/wince/vc2005-ce/index.html,
	builds/wince/vc2008-ce/freetype.vcproj,
	builds/wince/vc2008-ce/index.html: s/2.6/2.6.1/, s/26/261/.

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

	* builds/unix/configure.raw (version_info): Set to 18:1:12.
	* CMakeLists.txt (VERSION_PATCH): Set to 1.

	* src/autofit/afmodule.c [AF_DEBUG_AUTOFIT]: Ensure C linking for
	dumping functions.

2015-10-04  Werner Lemberg  <wl@gnu.org>

	[bzip2, gzip] Avoid access of uninitialized memory (#46109).

	* src/bzip2/ftbzip2.c (ft_bzip2_file_fill_input), src/gzip/ftgzip.c
	(ft_gzip_file_fill_input): In case of an error, adjust the limit to
	avoid copying uninitialized memory.

2015-10-03  Werner Lemberg  <wl@gnu.org>

	[bzip2, gzip] Avoid access of uninitialized memory (#46109).

	* src/bzip2/ftbzip2.c (ft_bzip2_file_fill_output), src/gzip/ftgzip.c
	(ft_gzip_file_fill_output): In case of an error, adjust the limit to
	avoid copying uninitialized memory.

2015-10-01  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Clean up worker.

	* src/smooth/ftgrays.c (gray_TWorker): Remove never used fields.

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

	[sfnt] Make `tt_cmap4_char_map_linear' more robust (#46078).

	* src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Take care of
	border conditions (i.e., if the loop exits naturally).

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

	* src/autofit/afranges.c (af_deva_nonbase_uniranges): Fix ranges.
	They should be a subset of `af_deva_uniranges'.

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

	[sfnt] Make `tt_cmap4_char_map_linear' faster (#46078).

	* src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Use inner loop to
	reject too large glyph indices.

2015-09-30  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Clean up worker.

	* src/smooth/ftgrays.c (gray_TWorker): Remove lightly used `last_ey'.
	(gray_start_cell, gray_render_line): Update.

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

	[autofit] Replace `no-base' with `non-base'.

	* src/autofit/*: Do it.

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

	[sfnt] Rewrite `tt_cmap4_char_map_linear' (#46078).

	* src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Add code to better
	skip invalid segments.
	If searching the next character, provide a more efficient logic to
	speed up the code.

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

	[truetype] Adjust number of glyphs for malformed `loca' tables.

	* src/truetype/ttpload.c (tt_face_load_loca): Implement it.

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

	[pshinter] Avoid harmless overflow (#45984).

	* src/pshinter/pshglob.c (psh_blues_set_zones): Fix it.

2015-09-28  Werner Lemberg  <wl@gnu.org>

	[autofit] Add support for Lao script.

	Thanks to Danh Hong <danhhong@gmail.com> for guidance with blue zone
	characters!

	* src/autofit/afblue.dat: Add blue zone data for Lao.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Lao standard characters.

	* src/autofit/afranges.c: Add Lao data.

	* src/autofit/afstyles.h: Add Lao data.

2015-09-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	[base] Fix a leak by broken sfnt-PS or resource fork (#46028).

	open_face_from_buffer() frees passed buffer if valid font
	is not found.  But if copying to the buffer is failed,
	the allocated buffer should be freed within the caller.

	* src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Free
	the buffer `sfnt_ps' if an error caused before calling
	open_face_from_buffer().
	(Mac_Read_sfnt_Resource): Free the buffer `sfnt_data' if
	an error caused before calling open_face_from_buffer();

2015-09-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	[mac] Fix buffer size calculation for LWFN font.

	* src/base/ftmac.c (read_lwfn): Cast post_size to FT_ULong
	to prevent confused copy by too large chunk size.

2015-09-26  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/smooth/ftgrays.c (PIXEL_MASK): Remove unused macro.

2015-09-26  Werner Lemberg  <wl@gnu.org>

	[autofit] Minor tracing improvement.

	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Don't emit
	blue zones header line if there are no blue zones.

2015-09-26  Werner Lemberg  <wl@gnu.org>

	[bzip2, gzip, lzw] Harmonize function signatures with prototype.

	Suggested by Hin-Tak Leung.

	* src/bzip2/ftbzip2.c (ft_bzip2_stream_io), src/gzip/ftgzip.c
	(ft_gzip_stream_io), src/lzw/ftlzw.c (ft_lzw_stream_io): Do it.

2015-09-26  Hin-Tak Leung  <htl10@users.sourceforge.net>

	Add new FT_LOAD_COMPUTE_METRICS load flag.

	* include/freetype/freetype.h (FT_LOAD_COMPUTE_METRICS): New macro.
	* src/truetype/ttgload.c (compute_glyph_metrics): Usage.

2015-09-26  Werner Lemberg  <wl@gnu.org>

	* src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add cast.

2015-09-25  Werner Lemberg  <wl@gnu.org>

	[type1] Protect against invalid number of glyphs (#46029).

	* src/type1/t1load.c (parse_charstrings): Check number of
	`CharStrings' dictionary entries against size of data stream.

2015-09-23  Werner Lemberg  <wl@gnu.org>

	[sfnt] Better checks for invalid cmaps (2/2) (#46019).

	While the current code in `FT_Get_Next_Char' correctly rejects
	out-of-bounds glyph indices, it can be extremely slow for malformed
	cmaps that use 32bit values.  This commit tries to improve that.

	* src/sfnt/ttcmap.c (tt_cmap8_char_next, tt_cmap12_next,
	tt_cmap12_char_map_binary, tt_cmap13_next,
	tt_cmap13_char_map_binary): Reject glyph indices larger than or
	equal to the number of glyphs.

2015-09-23  Werner Lemberg  <wl@gnu.org>

	[base, sfnt] Better checks for invalid cmaps (1/2).

	* src/base/ftobjs.c (FT_Get_Char_Index): Don't return out-of-bounds
	glyph indices.
	(FT_Get_First_Char): Updated.

	* src/sfnt/ttcmap.c (tt_cmap6_char_next): Don't return character
	codes greater than 0xFFFF.

	(tt_cmap8_char_index): Avoid integer overflow in computation of
	glyph index.
	(tt_cmap8_char_next): Avoid integer overflows in computation of
	both next character code and glyph index.

	(tt_cmap10_char_index): Fix unsigned integer logic.
	(tt_cmap10_char_next): Avoid integer overflow in computation of
	next character code.

	(tt_cmap12_next): Avoid integer overflows in computation of both
	next character code and glyph index.
	(tt_cmap12_char_map_binary): Ditto.
	(tt_cmap12_char_next): Simplify.

	(tt_cmap13_char_map_binary): Avoid integer overflow in computation
	of next character code.
	(tt_cmap13_char_next): Simplify.

2015-09-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	[base] Check too long POST and sfnt resource (#45919).

	* src/base/ftbase.h (FT_MAC_RFORK_MAX_LEN): Maximum length of the
	resource fork for Mac OS.  Resource forks larger than 16 MB can be
	written but can't be handled correctly, at least in Carbon routine.
	See https://support.microsoft.com/en-us/kb/130437.

	* src/base/ftobjs.c (Mac_Read_POST_Resource): No need to use `0x'
	prefix for `%p' formatter.

	* src/base/ftbase.c (Mac_Read_POST_Resource): Check the fragment and
	total size of the concatenated POST resource before buffer
	allocation.
	(Mac_Read_sfnt_Resource): Check the declared size of sfnt resource
	before buffer allocation.

	* src/base/ftmac.c (read_lwfn, FT_New_Face_From_SFNT): Check the
	total resource size before buffer allocation.

2015-09-19  Werner Lemberg  <wl@gnu.org>

	[sfnt] Improve handling of invalid SFNT table entries (#45987).

	This patch fixes weaknesses in function `tt_face_load_font_dir'.

	- It incorrectly assumed that valid tables are always at the
	  beginning.  As a consequence, some valid tables after invalid
	  entries (which are ignored) were never seen.

	- Duplicate table entries (this is, having the same tag) were not
	  rejected.

	- The number of valid tables was sometimes too large, leading to
	  access of invalid tables.

	* src/sfnt/ttload.c (check_table_dir): Add argument to return number
	of valid tables.
	Add another tracing message.
	(tt_face_load_font_dir): Only allocate table array for valid
	entries as returned by `check_table_dir'.
	Reject duplicate tables and adjust number of valid tables
	accordingly.

2015-09-19  Werner Lemberg  <wl@gnu.org>

	[pcf] Improve `FT_ABS' fix from 2015-09-17 (#45999).

	* src/pcf/pcfread.c (pcf_load_font): Do first the cast to FT_Short,
	then take the absolute value.
	Also apply FT_ABS to `height'.

2015-09-17  Werner Lemberg  <wl@gnu.org>

	[type42] Fix memory leak (#45989).

	* src/type42/t42parse.c (t42_parse_charstrings): Allow only a single
	`CharStrings' array.

2015-09-17  Werner Lemberg  <wl@gnu.org>

	[psaux] Fix memory leak (#45986).

	* src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_MM_BBOX>:
	Free `temp' in case of error.

2015-09-17  Werner Lemberg  <wl@gnu.org>

	[psaux] Improve tracing message.

	* src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_MM_BBOX>:
	Handle plural correctly.

2015-09-17  Werner Lemberg  <wl@gnu.org>

	[pcf] Fix integer overflows (#45985).

	* src/pcf/pcfread.c (pcf_load_font): Use FT_MulDiv.

2015-09-17  Werner Lemberg  <wl@gnu.org>

	[pcf] Use FT_ABS for some property values (#45893).

	* src/pcf/pcfread.c (pcf_load_font): Take absolute values for
	AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE, RESOLUTION_X, and
	RESOLUTION_Y.  In tracing mode, add warnings.

2015-09-16  Werner Lemberg  <wl@gnu.org>

	Minor fixes for some clang warnings.

	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Cast, possible missing
	initialization.

	* src/truetype/ttgload.c (TT_Process_Composite_Component): Cast.

2015-09-15  Werner Lemberg  <wl@gnu.org>

	[type1, type42] Fix memory leaks (#45966).

	* src/type1/t1load.c (parse_blend_axis_types): Handle multiple axis
	names.
	(parse_blend_design_map): Allow only a single design map.
	(parse_encoding): Handle multiple encoding vectors.

	* src/type42/t42parse.c (t42_parse_encoding): Handle multiple
	encoding vectors.

2015-09-15  Werner Lemberg  <wl@gnu.org>

	[truetype] Fix integer type (#45965).

	* src/truetype/ttobjs.c (tt_synth_sfnt_checksum): Implement it.

2015-09-15  Werner Lemberg  <wl@gnu.org>

	* src/pcf/pcfread.c (pcf_load_font): Fix integer overflow (#45964).

2015-09-15  Werner Lemberg  <wl@gnu.org>

	[type1, type42] Check encoding array size (#45961).

	* src/type1/t1load.c (parse_encoding), src/type42/t42parse.c
	(t42_parse_encoding): Do it.

2015-09-14  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/base/ftcalc.c (FT_MulFix) [FT_LONG64]: Improve.

2015-09-14  Werner Lemberg  <wl@gnu.org>

	[type1] Fix another potential buffer overflow (#45955).

	* src/type1/t1parse (T1_Get_Private_Dict): Assure that check for
	`eexec' doesn't exceed `limit'.

2015-09-13  Werner Lemberg  <wl@gnu.org>

	Replace `mkinstalldirs' with AC_PROG_MKDIR_P.

	* builds/unix/mkinstalldirs: Removed, no longer needed.

	* builds/unix/configure.raw: Call `AC_PROG_MKDIR_P'.
	Update pwd call for `$INSTALL'.

	* builds/unix/unix-def.in (MKINSTALLDIRS): Use `@MKDIR_P@'.

	* autogen.sh: Updated.

2015-09-13  Werner Lemberg  <wl@gnu.org>

	[winfonts] Check alignment shift count for resource data (#45938).

	* src/winfonts/winfnt.c (fnt_face_get_dll_font): Implement it.

2015-09-13  Werner Lemberg  <wl@gnu.org>

	[type1] Fix potential buffer overflow (#45923).

	* src/type1/t1parse.c (T1_Get_Private_Dict): Assure `cur' doesn't
	point to end of file buffer.

2015-09-13  Werner Lemberg  <wl@gnu.org>

	[gzip] Fix access of small compressed files (#45937).

	* src/gzip/ftgzip.c (ft_gzip_stream_close): Avoid memory leak.

	(ft_gzip_get_uncompressed_file): Correct byte order while reading
	unsigned long value.  Without this change, the whole optimization of
	accessing small files in `FT_Stream_OpenGzip' is never executed!  As
	a consequence, access to PCF files in general (which are normally
	small files) should be much improved now as originally intended.

2015-09-11  Werner Lemberg  <wl@gnu.org>

	[psaux] Fix potential buffer overflow (#45922).

	* src/psaux/psobjs.c (ps_parser_skip_PS_token): If a token is
	enclosed in balanced expressions, ensure that the cursor position
	doesn't get larger than the current limit.

2015-09-11  Werner Lemberg  <wl@gnu.org>

	[base] Avoid crash while tracing `load_mac_face'.

	Reported in Savannah bug #45919.

	* src/base/ftobjs.c (load_mac_face): Honour FT_OPEN_MEMORY while
	tracing.

2015-09-11  Werner Lemberg  <wl@gnu.org>

	[type42] Fix endless loop (#45920).

	* src/type42/t42parse.c (t42_parse_encoding): Synchronize with
	type1's `parse_encoding'.

2015-09-10  Werner Lemberg  <wl@gnu.org>

	[docmaker] Allow `-' in bold and italic markup.

	* src/tools/docmaker/sources.py (re_italic, re_bold): Adjust
	accordingly.

2015-09-09  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/base/ftcalc.c (FT_RoundFix): Improve.

2015-09-09  Wojciech Mamrak  <wmamrak@gmail.com>

	* src/base/ftcalc.c (FT_CeilFix, FT_FloorFix): Normalize.

	This commit makes the functions behave as expected, this is,
	rounding towards plus or minus infinity.

2015-09-07  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/smooth/ftgrays.c (gray_render_line): Simplify clipping.

2015-09-04  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[raster,smooth] Microoptimizations.

	* src/raster/ftraster.c (Insert_Y_Turn, Finalize_Profile_Table,
	Bezier_Up, ): Use do-while loops.

	* src/smooth/ftgrays.c (gray_render_scanline, gray_render_line,
	gray_convert_glyph): Ditto.

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

	[autofit] Redesign code ranges (2/2).

	This commit adds two fallback scripts (`latb', `latp') and
	implements support for the no-base character ranges introduced in
	the previous commit.

	* src/autofit/aftypes.h (AF_ScriptClassRec): Add
	`script_uni_nobase_ranges' field.
	(AF_DEFINE_SCRIPT_CLASS): Updated.

	* src/autofit/afscript.h, src/autofit/afstyles.h: Add `latb' and
	`latp' fallback scripts.

	* src/autofit/afblue.dat: Add blue zones for Latin subscript and
	superscript fallback scripts.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afglobal.h (AF_NOBASE): New style flag for no-base
	characters.
	(AF_STYLE_MASK): Updated.

	* src/autofit/afglobal.c (SCRIPT): Updated.
	(af_face_globals_compute_style_coverage): Handle new style flag.

	* src/autofit/aflatin.c (af_latin_hints_apply): Handle new style
	flag.

	* src/autofit/afranges.h (SCRIPT): Use it to export no-base ranges.

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

	[autofit] Redesign code ranges (1/2).

	This patch introduces auxiliary code ranges that identify no-base
	characters; they refer to glyphs of a script that should be hinted
	without alignments to blue zones (mostly diacritics).

	It also splits off ranges for fallback scripts that handle subscript
	and superscript characters not covered by OpenType features.  For
	example, this greatly helps improve the hinting of various phonetic
	alphabets, which contain a large amount characters that look like
	superscript glyphs.

	Finally, code ranges are updated to Unicode 8.0, and enclosed
	characters are removed in general since they normally look better if
	they stay unhinted.

	* src/autofit/afranges.c (af_latn_uniranges): Updated to Unicode
	8.0.
	Split off superscript-like and subscript-like glyphs into...

	(af_latb_uniranges, af_latp_uniranges): ... these two new arrays.

	(af_xxxx_nobase_uniranges): New arrays that hold no-base characters
	of the corresponding character ranges.

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

	[autofit] Pass glyph index to hinting function.

	No functionality change yet.

	* src/autofit/aftypes.h (AF_WritingSystem_ApplyHintsFunc): Pass
	glyph index.

	* src/autofit/afcjk.c, src/autofit/afcjk.h (af_cjk_hints_apply),
	src/autofit/afdummy.c (af_dummy_hints_apply), src/autofit/afindic.c
	(af_indic_hints_apply), src/autofit/aflatin.c
	(af_latin_hints_apply), src/autofit/aflatin2.c
	(af_latin2_hints_apply), src/autofit/afloader.c (af_loader_load_g):
	Updated.

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

	[autofit] Code clean-up.

	* src/autofit/afglobal.h (AF_STYLE_MASK): New macro.
	(AF_STYLE_UNASSIGNED): Use AF_STYLE_MASK for definition.

	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
	Updated.

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

	[autofit] Make glyph style array use 16bit values.

	* include/freetype/ftautoh.h (FT_Prop_GlyphToScriptMap): Use
	`FT_UShort' for `map' field.

	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage,
	af_face_globals_new), src/autofit/hbshim.c, src/autofit/hbshim.h
	(af_get_coverage): Use FT_UShort for `glyph_styles' array.

	* src/autofit/afglobal.h (AF_STYLE_UNASSIGNED, AF_DIGIT): Extend to
	16 bits.
	(AF_FaceGlobalsRec): Use `FT_UShort' for `glyph_styles' field.

2015-08-26  Werner Lemberg  <wl@gnu.org>

	* builds/unix/configure.raw: Need harfbuzz >= 0.9.21 (#45828).

2015-08-25  Werner Lemberg  <wl@gnu.org>

	[base] Improve kerning tracing and documentation.

	* src/base/ftobjs.c (FT_Get_Kerning): Emit tracing message if
	scaled-down kerning values differ.

2015-08-18  Werner Lemberg  <wl@gnu.org>

	[raster] Remove last remnants of `raster5' driver.

	* src/raster/ftrend1.h (ft_raster5_renderer_class): Removed.

	* src/raster/rastpic.c, src/raster/rastpic.h
	(ft_raster5_renderer_class_pic_init,
	ft_raster5_renderer_class_pic_free): Removed.

2015-08-17  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[base] Improve emboldener (#45596).

	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Correct displacement
	of zero-length segments.

2015-08-16  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[base] Reoptimize arithmetic.

	* src/base/ftcalc.c (FT_MulDiv, FT_MulFix) [!FT_LONG64]: Remove
	special cases that slow down the general use.

2015-08-15  pazer  <ibemad@gmail.com>

	Fix C++ compilation (#45762).

	* src/base/ftstroke.c (ft_outline_glyph_class): Use
	FT_CALLBACK_TABLE.

2015-08-14  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[truetype] Clean up.

	* src/truetype/ttgload.c (TT_Process_Composite_Component): Use
	`FT_Outline_Transform' and `FT_Outline_Translate'.
	(translate_array): Dropped.

2015-08-14  Andreas Enge  <andreas.enge@inria.fr>

	* builds/unix/detect.mk (CONFIG_SHELL): Don't handle it (#44261).

2015-08-13  Werner Lemberg  <wl@gnu.org>

	[truetype] Introduce named instance access to GX fonts.

	For functions querying a face, bits 16-30 of the face index can hold
	the named instance index if we have a GX font.  The indices start
	with value 1; value 0 indicates font access without GX variation
	data.

	* include/freetype/freetype.h (FT_FaceRec): Update documentation.
	* include/freetype/internal/sfnt.h: Ditto.

	* src/sfnt/sfobjs.c (sfnt_init_face)
	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Get number of named instances and
	do argument checks.
	(sfnt_load_face): Updated.

	* src/truetype/ttobjs.c (tt_face_init)
	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Use named instance, overwriting
	the style name.

	* src/base/ftobjs.c (open_face_from_buffer,
	open_face_PS_from_sfnt_stream): Updated.
	* src/bdf/bdfdrivr.c (BDF_Face_Init): Updated.
	* src/cff/cffload.c (cff_font_load): Updated.

	* src/cff/cffobjs.c (cff_face_init): Make function exit early for
	pure CFF fonts if `font_index < 0'.
	Updated.

	* src/cid/cidobjs.c (cid_face_init): Updated.
	* src/pcf/pcfdrivr.c (PCF_Face_Init): Updated.
	* src/pfr/pfrobjs.c (pfr_face_init): Updated.
	* src/type1/t1objs.c (T1_Face_Init): Updated.
	* src/type42/t42objs.c (T42_Face_Init): Updated.
	* src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
	Updated.

	* docs/CHANGES: Updated.

2015-08-12  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[type1,cff,cid] Streamline font matrix application.

	* src/type1/t1gload.c (T1_Load_Glyph): Directly modify advances only
	if font matrix is not trivial.
	* src/cff/cffgload.c (cff_slot_load): Ditto.
	* src/cid/cidgload.c (cid_slot_load_glyph): Ditto for advances and the
	entire outline.

2015-08-11  Werner Lemberg  <wl@gnu.org>

	[builds/unix] Minor.

	* builds/unix/configure.raw:
	s/lib{priv,staticconf}/libs{priv,staticconf}/ for orthogonality with
	similarly named uppercase variables.

2015-08-10  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[type1,cid,type42] Minor improvements.

	* src/type1/t1load.c (t1_parse_font_matrix): Scale units per EM only
	when necessary. Refresh comments.
	* src/cid/cidload.c (cid_parse_font_matrix): Ditto.
	* src/type42/t42parse.c (t42_parse_font_matrix): Refresh comments.

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

	[type42] Fix glyph access.

	This is a severe bug: We've missed one level of indirection, as
	described in the Type 42 specification.  As a result, ftview
	sometimes showed incorrect glyphs for given glyph names, and even
	displayed `error 0x0006' (invalid argument!) in case the number of
	glyph indices differed between the Type 42 font and the embedded
	TTF.

	Apparently, noone ever noticed it; this shows how much Type 42 fonts
	are in use...

	* src/type42/t42objs.c (T42_GlyphSlot_Load): Map Type 42 glyph index
	to embedded TTF's glyph index.

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

	[type42] Minor clean-up.

	* src/type42/t42parse.c (t42_parse_font_matrix): Remove unused
	variable.

2015-08-06  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[type42] Parse FontMatrix according to specifications.

	* src/type42/t42parse.c (t42_parse_font_matrix): Type 42 FontMatrix
	does not need scaling by 1000. Units_per_EM are taken from the
	embedded TrueType.

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

	[autofit] Improve Arabic hinting.

	Problem reported by Titus Nemeth <tn@tntypography.eu> (by using
	ttfautohint).

	* src/autofit/afblue.dat: Add neutral blue zone for the tatweel
	character.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

2015-08-05  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[truetype] Clean up types.

	* src/truetype/ttobjs.c (TT_Size): Move declaration from here.
	* include/freetype/internal/tttypes.h (TT_Size): ... to here.
	(TT_LoaderRec): Switch to appropriate types for `face' and `size'.
	* src/truetype/ttgload.c: Remove corresponding type casts.
	* src/truetype/ttsubpix.c: Ditto.

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

	[autofit] Improve recognition of flat vs. rounded segments.

	Lower the flatness threshold from upem/8 to upem/14, making the
	auto-hinter accept shorter elements.

	Synchronize flat/round stem selection algorithm with blue zone code.

	* src/autofit/aflatin.c (FLAT_THRESHOLD): New macro.
	(af_latin_metrics_init_blues): Use it.
	(af_latin_hints_compute_segments): Collect information on maximum
	and minimum coordinates of `on' points; use this to add a constraint
	for the flat/round decision similar to
	`af_latin_metrics_init_blues'.

2015-08-04  Werner Lemberg  <wl@gnu.org>

	Another left-shift bug (#45681).

	* src/base/ftobjs.c (IsMacBinary): Only accept positive values for
	`dlen'.

2015-08-03  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[base] Fix `ft_corner_orientation'.

	Remove casting from `FT_Long' to `FT_Int' that might change the sign
	of the return value and make it faster too.

	* src/base/ftcalc.c (ft_corner_orientation): On 32-bit systems, stay
	with 32-bit arithmetic when safe. Use plain math on 64-bit systems.
	* src/pshinter/pshalgo.c: Remove old unused code.

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

	* src/truetype/ttgload.c (load_truetype_glyph)
	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Fix crash for composite glyphs
	having a depth greater than 1.

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

	Fix typo in clang bug from 2015-07-31 (#45678).

	* src/base/ftrfork.c (FT_Raccess_Get_HeaderInfo): Fix inequality.

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

	* CMakeLists.txt: Improve shared library support.

	Based on a patch from John Cary <cary@txcorp.com>.

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

	* builds/unix/freetype-config.in (enable_shared): Remove.  Unused.

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

	Fix more invalid left-shifts.

	* src/pfr/pfrgload.c (pfr_glyph_load_compound): Use multiplication,
	not left-shift.

	* src/truetype/ttgxvar.c (ft_var_load_avar, ft_var_load_gvar,
	tt_face_vary_cvt, TT_Vary_Apply_Glyph_Deltas): Use multiplication,
	not left-shift.

2015-07-31  Werner Lemberg  <wl@gnu.org>

	Fix some bugs found by clang's `-fsanitize=undefined' (#45661).

	* src/base/ftrfork.c (FT_Raccess_Get_HeaderInfo): Only accept
	positive values from header.
	Check overflow.

	* src/base/ftoutln.c (SCALED): Correctly handle left-shift of
	negative values.

	* src/bdf/bdf.h (_bdf_glyph_modified, _bdf_set_glyph_modified,
	_bdf_clear_glyph_modified): Use unsigned long constant.

	* src/bdf/bdfdrivr.c (BDF_Size_Select, BDF_Glyph_Load): Don't
	left-shift values that can be negative.

	* src/pcf/pcfdrivr.c (PCF_Size_Select, PCF_Glyph_Load): Don't
	left-shift values that can be negative.

	* src/raster/ftraster.c (SCALED): Correctly handle left-shift of
	negative values.

	* src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Don't left-shift
	values that can be negative.

	* src/truetype/ttgload.c (TT_Load_Composite_Glyph,
	compute_glyph_metrics, load_sbit_image): Don't left-shift values
	that can be negative.

2015-07-31  Werner Lemberg  <wl@gnu.org>

	Define FT_LONG_MAX.

	* include/freetype/config/ftstdlib.h (FT_LONG_MAX): New macro.
	* src/cff/cf2arrst.c (cf2_arrstack_setNumElements): Use it.

2015-07-28  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/base/ftcalc.c (FT_Vector_NormLen): Clarify.

2015-07-27  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/base/ftcalc.c (FT_Vector_NormLen): Explicate type conversions.

2015-07-26  Matthias Clasen  <matthias.clasen@gmail.com>

	[cff] Don't use `hmtx' table for LSB (#45520).

	* src/cff/cffgload.c (cff_slot_load): Use `htmx' table for advance
	width only.  Bug introduced 2015-04-10.

2015-07-09  Werner Lemberg  <wl@gnu.org>

	Better support of user-supplied C++ namespaces.

	See

	  http://lists.nongnu.org/archive/html/freetype-devel/2015-07/msg00008.html

	for a rationale.

	* src/autofit/afpic.h, src/base/basepic.h, src/cff/cffpic.h,
	src/pshinter/pshpic.h, src/psnames/pspic.h, src/raster/rastpic.h,
	src/sfnt/sfntpic.h, src/smooth/ftspic.h, src/truetype/ttpic.h
	(FT_BEGIN_HEADER, FT_END_HEADER): Move macro calls to not enclose
	header files that contain FT_{BEGIN,END}_HEADER macros by
	themselves.

	* src/autofit/aftypes.h [FT_DEBUG_AUTOFIT]: Include
	FT_CONFIG_STANDARD_LIBRARY_H earlier.

	* src/truetype/ttpic.h: Include FT_INTERNAL_PIC_H.

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

	[sfnt] Make `tt_face_get_name' member of the SFNT interface.

	* include/freetype/internal/sfnt.h (TT_Get_Name_Func): New
	prototype.
	(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): New member `get_name'.

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

	* src/sfnt/sfobjs.c (tt_face_get_name): Tag it with `LOCAL_DEF'.
	* src/sfnt/sfobjs.h: Add prototype for it.

2015-06-30  Werner Lemberg  <wl@gnu.org>

	Fix some clang compiler warnings.

	* src/base/ftoutln.c (FT_Outline_EmboldenXY), src/cff/cf2intrp.c
	(cf2_interpT2CharString), src/truetype/ttgload.c
	(load_truetype_glyph), src/truetype/ttgxvar.c (tt_handle_deltas),
	src/truetype/ttinterp.c (Ins_INSTCTRL): Fix signedness issues.

2015-06-29  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[truetype] Speed up bytecode interpreter.

	* src/truetype/ttinterp.c (Normalize): Use `FT_Vector_NormLen'.

2015-06-29  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[base] Speed up emboldening.

	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Use
	`FT_Vector_NormLen'.

2015-06-29  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[base] Implement fast vector normalization.

	The function uses Newton's iterations instead of dividing vector
	components by its length, which needs a square root. This is,
	literally, a bit less accurate but a lot faster.

	* src/base/ftcalc.c (FT_Vector_NormLen): New function.

2015-06-28  Werner Lemberg  <wl@gnu.org>

	* CMakeLists.txt: Always create `ftconfig.h'.

	For non-UNIX builds, the file stays unmodified.  However, it's
	better to have the main configuration files at the same place
	regardless of the OS.

2015-06-28  Werner Lemberg  <wl@gnu.org>

	* CMakeLists.txt: Improve MSVC support (#43737).

2015-06-28  Werner Lemberg  <wl@gnu.org>

	[cmake] Check for libraries and create `ftoption.h'.

	* builds/FindHarfBuzz.cmake: New file, taken from

	  https://trac.webkit.org/browser/trunk/Source/cmake/FindHarfBuzz.cmake

	* CMakeLists.Txt: Add path to local cmake modules.
	Find dependencies for zlib, bzip2, libpng, and harfbuzz.
	Create `ftoption.h' file.
	Set up include and linker stuff for libraries.

2015-06-28  Werner Lemberg  <wl@gnu.org>

	* CMakeLists.txt: Fix creation of `ftconfig.h'.
	Check for UNIX header files using `check_include_file'.
	Set up correct header include directories.

2015-06-28  Werner Lemberg  <wl@gnu.org>

	* CMakeLists.txt: Disallow in-source builds.

2015-06-27  Werner Lemberg  <wl@gnu.org>

	* src/tools/docmaker/utils.py (check_output): Add missing `\n'.

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

	* CMakeLists.txt: Select platform-dependent `ftdebug.c'.

2015-06-25  Werner Lemberg  <wl@gnu.org>

	* CMakeLists.txt: Use cmake functions for generating `ftconfig.h'.
	Additionally, do this for UNIX only.

2015-06-25  Werner Lemberg  <wl@gnu.org>

	* CMakeLists.txt (BASE_SRCS): Use `ftbase.c' and `psnames.c'.

2015-06-25  Werner Lemberg  <wl@gnu.org>

	Another adjustment to header locations.

	This change is a result of a discussion thread on freetype-devel

	  http://lists.nongnu.org/archive/html/freetype-devel/2015-06/msg00041.html

	Re-introduce the `freetype2' subdirectory for all FreeType header
	files after installation, and rename the `freetype2' subdirectory in
	the git repository to `freetype'.

	* include/freetype2: Renamed to...
	* include/freetype: This.

	* CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS,
	PRIVATE_HEADERS): Updated.
	Update creation of `ftconfig.h'.
	Install generated `ftconfig.h'.

	* Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated.

	* builds/amiga/include/config/ftconfig.h, builds/freetype.mk
	(PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work),
	builds/unix/freetype2.in: Updated.

	* builds/unix/freetype-config.in: Updated.
	* builds/unix/configure.raw: Don't check for `rmdir'.
	* builds/unix/unix-def.in (DELDIR): Use `rm -rf', which is portable
	according to the autoconf info manual.
	* builds/unix/install.mk (install, uninstall,
	distclean_project_unix): Update and simplify.

	* builds/wince/*, builds/windows/*: Updated.

	* devel/ft2build.h, include/ft2build.h: Updated.

	* include/freetype2/config/ftheader.h,
	include/freetype2/internal/ftserv.h,
	include/freetype2/internal/internal.h: Update all header file
	macros.

	* src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated.

	* docs/*: Updated.

2015-06-24  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/bdf/bdflib.c (_bdf_parse_start): Disallow 0 bpp.

2015-06-24  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/bdf/bdflib.c (_bdf_parse_start): Simplify bpp parsing.

2015-06-23  Werner Lemberg  <wl@gnu.org>

	s/TYPEOF/FT_TYPEOF/ (#45376).

	* builds/unix/ftconfig.in, builds/vms/ftconfig.in,
	include/freetype2/config/ftconfig.h,
	include/freetype2/internal/ftobjs.h, src/autofit/afwarp.h: Do it.

2015-06-22  Werner Lemberg  <wl@gnu.org>

	Fix Savannah bug #45097.

	We no longer `pollute' the namespace of possible header file names;
	instead we move `ft2build.h' up by one level so that it gets
	installed in the default include directory (e.g.,
	/usr/local/include).  After this commit, only `ft2build.h' stays in
	the compiler's include path.

	No visible changes for the user who follows the standard FreeType
	header inclusion rules.

	* include/*: Move to ...
	* include/freetype2/*: This directory, except `ft2build.h'.

	* CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS,
	PRIVATE_HEADERS), Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated.

	* builds/amiga/include/config/ftconfig.h, builds/freetype.mk
	(PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work),
	builds/unix/install.mk (install, uninstall),
	builds/unix/freetype2.in: Updated.

	* builds/unix/freetype-config.in: Updated.
	Emit -I directory only if it is not `/usr/include'.

	* builds/wince/*, builds/windows/*: Updated.

	* devel/ft2build.h, include/ft2build.h: Updated.

	* include/freetype2/config/ftheader.h,
	include/freetype2/internal/ftserv.h,
	include/freetype2/internal/internal.h: Update all header file
	macros.

	* src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated.

2015-06-21  Werner Lemberg  <wl@gnu.org>

	Make Jam support work again.

	This is just very basic stuff and just a little bit tested on
	GNU/Linux only.  I won't delve into this since I'm not a Jam user.

	* Jamfile: Call `HDRMACRO' for `ftserv.h' also.
	(DEFINES): Replace with...
	(CCFLAGS): ... this.

	* src/Jamfile: Don't call `HDRMACRO' for `internal.h'; this is
	already handled in the top-level Jamfile.

	* src/autofit/Jamfile (DEFINES): Replace with...
	(CCFLAGS): ... this.
	(_sources): Add missing files.

	* src/cache/Jamfile: Don't call `HDRMACRO' for `ftcache.h'; it no
	longer contains macro header definitions.

	* src/base/Jamfile, src/cff/Jamfile, src/sfnt/Jamfile,
	src/truetype/Jamfile (_sources): Add missing files.

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

	Fix Savannah bug #45326.

	* src/sfnt/sfntpic.h (SFNT_SERVICES_GET): Remove duplicate
	definitions.

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

	* Version 2.6 released.
	=======================


	Tag sources with `VER-2-6'.

	* docs/VERSION.DLL: Update documentation and bump version number to
	2.6.

	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
	builds/windows/vc2005/index.html,
	builds/windows/vc2008/freetype.vcproj,
	builds/windows/vc2008/index.html,
	builds/windows/vc2010/freetype.vcxproj,
	builds/windows/vc2010/index.html,
	builds/windows/visualc/freetype.dsp,
	builds/windows/visualc/freetype.vcproj,
	builds/windows/visualc/index.html,
	builds/windows/visualce/freetype.dsp,
	builds/windows/visualce/freetype.vcproj,
	builds/windows/visualce/index.html,
	builds/wince/vc2005-ce/freetype.vcproj,
	builds/wince/vc2005-ce/index.html,
	builds/wince/vc2008-ce/freetype.vcproj,
	builds/wince/vc2008-ce/index.html: s/2.5.5/2.6/, s/255/26/.

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

	* builds/unix/configure.raw (version_info): Set to 18:0:12.
	* CMakeLists.txt (VERSION_MINOR): Set to 6.
	(VERSION_PATCH): Set to 0.

	* src/autofit/afmodule.c [!FT_MAKE_OPTION_SINGLE_OBJECT]: Add
	declarations for dumping functions.

	* src/truetype/ttinterp.c (TT_New_Context): Pacify compiler.

	* builds/toplevel.mk: Use `freetype.mk's code to compute the version
	string.
	Don't include a zero patch level in version string.
	* builds/freetype.mk: Remove code for computing the version string.

2015-06-06  Ashish Azad  <ashish.azad@samsung.com>

	Fix Savannah bug #45260.

	* src/pfr/pfrdrivr.c (pfr_get_kerning): Fix typo.

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

	[truetype] Fix memory leak.

	Problem reported by Grissiom <chaos.proton@gmail.com>; in

	  http://lists.nongnu.org/archive/html/freetype/2015-05/msg00013.html

	there is an example code to trigger the bug.

	* src/truetype/ttobjs.c (tt_size_init_bytecode): Free old `size'
	data before allocating again.  Bug most probably introduced four
	years ago in version 2.4.3.

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

	[raster] Add more tracing.

	* src/raster/ftraster.c (FT_TRACE7) [_STANDALONE_]: Define.
	(Vertical_Sweep_Span, Vertical_Sweep_Drop, Horizontal_Sweep_Span,
	Horizontal_Sweep_Drop, Render_Glyph): Add tracing calls.

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

	[truetype] While tracing opcodes, show code position and stack.

	* src/truetype/ttinterp.c: Change all existing TRACE7 calls to
	TRACE6.
	(opcode_name): Add string lengths.
	(TT_RunIns): Implement display of code position and stack.

2015-05-31  Werner Lemberg  <wl@gnu.org>

	[truetype] In GX, make private point numbers work correctly.

	This is completely missing in Apple's documentation: If a `gvar'
	tuple uses private point numbers (this is, deltas are specified for
	some points only), the uncovered points must be interpolated for
	this tuple similar to the IUP bytecode instruction.  Examples that
	need this functionality are glyphs `Oslash' and `Q' in Skia.ttf.

	* src/truetype/ttgxvar.c (tt_delta_shift, tt_delta_interpolate,
	tt_handle_deltas): New functions.
	(TT_Vary_Get_Glyph_Deltas): Renamed to...
	(TT_Vary_Apply_Glyph_Deltas): ... this; it directly processes the
	points and does no longer return an array of deltas.
	Add tracing information.
	Call `tt_handle_deltas' to interpolate missing deltas.
	Also fix a minor memory leak in case of error.

	* src/truetype/ttgxvar.h: Updated.

	* src/truetype/ttgload.c (TT_Process_Simple_Glyph,
	load_truetype_glyph): Updated.

2015-05-31  Werner Lemberg  <wl@gnu.org>

	[truetype] In GX, make intermediate tuplets work at extrema.

	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix range condition.

2015-05-31  Werner Lemberg  <wl@gnu.org>

	[truetype] Add tracing information to GX code.

	* src/truetype/ttgxvar.c (ft_var_load_avar, ft_var_load_gvar,
	ft_var_apply_tuple, TT_Get_MM_Var, TT_Set_MM_Blend,
	TT_Set_Var_Design, tt_face_vary_cvt): Do it.

2015-05-28  Werner Lemberg  <wl@gnu.org>

	* src/tools/apinames.c (names_dump): Fix invalid reference.

	Problem reported by Guzman Mosqueda, Jose R
	<jose.r.guzman.mosqueda@intel.com>.

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

	[truetype] Fix commit from 2015-05-22.

	* src/truetype/ttgload.c, src/truetype/ttinterp.c: Guard new code
	with `TT_CONFIG_OPTION_SUBPIXEL_HINTING'.

	Problem reported by Nikolaus Waxweiler <madigens@gmail.com>.

2015-05-23  Werner Lemberg  <wl@gnu.org>

	[truetype] Fix return values of GETINFO bytecode instruction.

	* src/truetype/ttinterp.h (TT_ExecContextRec): New fields
	`vertical_lcd' and `gray_cleartype'.

	* src/truetype/ttgload.c (tt_loader_init): Initialize new fields.
	Change `symmetrical smoothing' to TRUE, since FreeType produces
	exactly this.

	* src/truetype/ttinterp.c (Ins_GETINFO): Fix selector/return bit
	values for symmetrical smoothing, namely 11/18.
	Handle bits for vertical LCD subpixels (8/15) and Gray ClearType
	(12/19).

2015-05-23  Werner Lemberg  <wl@gnu.org>

	[truetype] Minor.

	* src/truetype/ttinterp.h (TT_ExecContext):
	 s/subpixel/subpixel_hinting.

	* src/truetype/ttgload.c, src/truetype/ttgload.h: Updated.

2015-05-22  Werner Lemberg  <wl@gnu.org>

	[truetype] Support selector index 3 of the INSTCTRL instruction.

	This flag activates `native ClearType hinting', disabling backwards
	compatibility mode as described in Greg Hitchcocks whitepaper.  In
	other words, it enables unrestricted functionality of all TrueType
	instructions in ClearType.

	* src/truetype/ttgload.c (tt_get_metrics): Call `sph_set_tweaks'
	unconditionally.
	(tt_loader_init): Unset `ignore_x_mode' flag if bit 2 of
	`GS.instruct_control' is active.

	* src/truetype/ttinterp.c (Ins_INSTCTRL): Handle selector index 3.
	(Ins_GETINFO): Updated.

	* docs/CHANGES: Document it.

2015-05-20  Werner Lemberg  <wl@gnu.org>

	[truetype] Minor.

	* src/truetype/ttinterp.h (SetSuperRound): Fix type of `GridPeriod'
	argument.

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

	[truetype] Fix loading of composite glyphs.

	* src/truetype/ttgload.c (TT_Load_Composite_Glyph): If the
	ARGS_ARE_XY_VALUES flag is not set, handle argument values as
	unsigned.  I trust `ttx' (which has exactly such code) that it does
	the right thing here...

	The reason that noone has ever noticed this bug is probably the fact
	that point-aligned subglyphs are rare, as are subglyphs with a
	number of points in the range [128;255], which is quite large (or
	even in the range [32768;65535], which is extremely unlikely).

2015-05-12  Chris Liddell  <chris.liddell@artifex.com>

	[cff] Make the `*curveto' operators more tolerant.

	* src/cff/cf2intrp.c (cf2_interpT2CharString): The opcodes
	`vvcurveto', `hhcurveto', `vhcurveto', and `hvcurveto' all iterate,
	pulling values off the stack until the stack is exhausted.
	Implicitly the stack must be a multiple (or for subtly different
	behaviour) a multiple plus a specific number of extra values deep.
	If that's not the case, enforce it (as the old code did).

2015-05-12  Chris Liddell  <chris.liddell@artifex.com>

	[cff] fix incremental interface with new cff code.

	* src/cff/cf2ft.c (cf2_getSeacComponent): When using the incremental
	interface to retrieve glyph data for a SEAC, it be left to the
	incremental interface callback to apply the encoding to raw
	character index (as it was in the previous code).

2015-04-29  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[autofit] Speed up IUP.

	* src/autofit/afhints.c (af_iup_interp): Separate trivial snapping to
	the same position from true interpolation, use `scale' to reduce
	divisions.

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

	[cff] Use `name' table for PS name if we have a SFNT-CFF.

	This follows the OpenType 1.7 specification.  See

	  http://tug.org/pipermail/tex-live/2015-April/036634.html

	for a discussion.

	* src/cff/cffdrivr.c (cff_get_ps_name): Use the `sfnt' service if we
	have an SFNT.

2015-04-27  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[truetype] Speed up IUP.

	* src/truetype/ttinterp.c (_iup_worker_interpolate): Separate trivial
	snapping to the same position from true interpolation.

2015-04-21  Werner Lemberg  <wl@gnu.org>

	[autofit] By default, enable warping code but switch off warping.

	Suggested by Behdad.

	* include/config/ftoption.h: Define AF_CONFIG_OPTION_USE_WARPER.

	* src/autofit/afmodule.c (af_autofitter_init): Initialize `warping'
	with `false'.

2015-04-21  Werner Lemberg  <wl@gnu.org>

	* docs/CHANGES: Updated.

2015-04-21  Werner Lemberg  <wl@gnu.org>

	[autofit] Introduce `warping' property.

	This code replaces the debugging hook from the previous commit with
	a better, more generic solution.

	* include/ftautoh.h: Document it.

	* src/autofit/afmodule.h (AF_ModuleRec)
	[AF_CONFIG_OPTION_USE_WARPER]: Add `warping' field.

	* src/autofit/afmodule.c (_af_debug_disable_warper): Remove.
	(af_property_set, af_property_get, af_autofitter_init)
	[AF_CONFIG_OPTION_USE_WARPER]: Handle `warping' option.

	* src/autofit/afhints.h (AF_HINTS_DO_WARP): Remove use of the no
	longer existing `_af_debug_disable_warper'.

	* src/autofit/afcjk.c (af_cjk_hints_init), src/autofit/aflatin.c
	(af_latin_hints_init), src/autofit/aflatin2.c (af_latin2_hints_init)
	[AF_CONFIG_OPTION_USE_WARPER]: Add `AF_SCALER_FLAG_NO_WARPER' to the
	scaler flags if warping is off.

	* src/autofit/aftypes.h: Updated.

2015-04-16  Werner Lemberg  <wl@gnu.org>

	[autofit] Add debugging hook to disable warper.

	* src/autofit/afmodule.c (_af_debug_disable_warper)
	[FT_DEBUG_AUTOFIT]: New global variable.

	* src/autofit/aftypes.h: Updated.
	(AF_SCALER_FLAG_NO_WARPER): New macro (not actively used yet).

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

	* src/autofit/aflatin.c (af_latin_hints_apply)
	[AF_CONFIG_OPTION_USE_WARPER]: Use `AF_HINTS_DO_WARP' to control use
	of warper.

	* src/autofit/afcjk.c (af_cjk_hints_init, af_cjk_hints_apply)
	[AF_CONFIG_OPTION_USE_WARPER]: Synchronize with `aflatin.c'.

	* src/autofit/aflatin2.c (af_latin2_hints_apply)
	[AF_CONFIG_OPTION_USE_WARPER]: Synchronize with `aflatin.c'.

2015-04-10  Werner Lemberg  <wl@gnu.org>

	[cff] Update advance width handling to OpenType 1.7.

	Problem reported by Behdad.

	* src/cff/cffdrivr.c (cff_get_advances): Handle SFNT case
	separately.

	* src/cff/cffgload.c (cff_slot_load): Use advance width and side
	bearing values from `hmtx' table if present.

2015-04-03  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/autofit/afhints.c (af_glyph_hints_reload): Use do-while loop.

2015-04-02  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/autofit/aflatin.c (af_latin_hint_edges): Reduce logic.

2015-04-01  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[autofit] Finish the thought.

	* src/autofit/afhints.c (af_direction_compute): make sure the long arm
	is never negative so that its `FT_ABS' is not necessary.

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

	[autofit] Call dumper functions for tracing.

	* src/autofit/afcjk.c (af_cjk_hints_apply): Remove dead code.
	* src/autofit/afhints.c (af_glyph_hints_dump_points): Minor
	improvement.
	* src/autofit/afmodule.c (af_autofitter_load_glyph): Implement it.

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

	[autofit] Make debugging stuff work again.

	The interface to ftgrid was broken in the series of commits starting
	with

	  [autofit] Allocate AF_Loader on the stack instead of AF_Module.

	from 2015-01-14.

	* src/autofit/afmodule.c (_af_debug_hints_rec) [FT_DEBUG_AUTOFIT]:
	Use a global AF_GlyphHintsRec object for debugging.
	(af_autofitter_done, af_autofitter_load_glyph): Updated.

	* src/autofit/afloader.c (af_loader_init, af_loader_done): Updated.

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

	* src/autofit/afhints.c (af_glyph_hints_done): Fix minor thinko.

2015-03-29  Werner Lemberg  <wl@gnu.org>

	[cff] Fix Savannah bug #44629.

	* src/cff/cf2font.h (CF2_MAX_SUBR), src/cff/cffgload.h
	(CFF_MAX_SUBRS_CALLS): Set to 16.

2015-03-29  Werner Lemberg  <wl@gnu.org>

	[type1, truetype] Make the MM API more flexible w.r.t. `num_coords'.

	This commit allows `num_coords' to be larger or smaller than the
	number of available axes while selecting a design instance, either
	ignoring excess data or using defaults if data is missing.

	* src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design):
	Implement it.

	* src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design,
	T1_Set_Var_Design): Ditto.

2015-03-29  Werner Lemberg  <wl@gnu.org>

	[type1] Minor.

	* src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design): Use
	FT_THROW.
	(T1_Set_Var_Design): Use T1_MAX_MM_AXIS and FT_THROW.

2015-03-27  Werner Lemberg  <wl@gnu.org>

	[cff] Trace charstring nesting levels.

	* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdCALLGSUBR,
	cf2_cmdCALLSUBR, cf2_cmdRETURN>: Implement it.

	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
	<cff_op_callsubr, cff_op_callgsubr, cff_op_return>: Ditto.

2015-03-21  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[base] Optimize `FT_Angle_Diff'.

	Under normal circumstances we are usually close to the desired range
	of angle values, so that the remainder is not really necessary.

	* src/base/fttrigon.c (FT_Angle_Diff): Use loops instead of remainder.

	* src/autofit/aftypes.h (AF_ANGLE_DIFF): Ditto in the unused macro.

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

	[truetype] Improve `gvar' handling.

	* src/truetype/ttgxvar.c (ft_var_readpackedpoints): Correctly handle
	single-element runs.  Cf. glyph `Q' in Skia.ttf with weights larger
	than the default.

2015-03-20  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/base/fttrigon.c (FT_Vector_Rotate): Minor refactoring.

2015-03-17  Alexei Podtelezhnikov  <apodtele@gmail.com>

	Fix Savannah bug #44412 (part 2).

	* src/base/fttrigon.c (FT_Sin, FT_Cos, FT_Tan): Call `FT_Vector_Unit'.

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

	[autofit] Add support for Arabic script.

	Thanks to Titus Nemeth <tn@tntypography.eu> for guidance!

	* src/autofit/afblue.dat: Add blue zone data for Arabic.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Arabic standard characters.

	* src/autofit/afranges.c: Add Arabic data.

	* src/autofit/afstyles.h: Add Arabic data.

	* docs/CHANGES: Document it.

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

	Rename `svxf86nm.h' to `svfntfmt.h'; update related symbols.

	* include/internal/ftserv.h (FT_SERVICE_XFREE86_NAME_H): Renamed
	to...
	(FT_SERVICE_FONT_FORMAT_H): This.

	* include/internal/services/svfntfmt.h (FT_XF86_FORMAT_*): Renamed
	to ...
	(FT_FONT_FORMAT_*): This.

	src/base/ftfntfmt.c, src/bdf/bdfdrivr.c, src/cff/cffdrivr.c,
	src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c,
	src/truetype/ttdriver.c, src/type1/t1driver.c,
	src/type42/t42drivr.c, src/winfonts/winfnt.c: Updated.

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

	[base] Rename `FT_XFREE86_H' to `FT_FONT_FORMATS_H'.

	* include/config/ftheader.h: Implement it.
	* src/base/ftfntfmt.c, docs/CHANGES: Updated.

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

	[base] Rename `FT_Get_X11_Font_Format' to `FT_Get_Font_Format'.

	* include/ftfntfmt.h, src/base/ftfntfmt.c: Implement it.

	* docs/CHANGES: Updated.

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

	Fix automatic copyright updating.

	* src/tools/update-copyright: Make scanning of `no-copyright'
	actually work.

	* src/tools/no-copyright: Don't include README in general.

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

	Rename `ftxf86.[ch]' to `ftfntfmt.[ch]'.

	CMakeLists.txt, builds/amiga/makefile, builds/amiga/makefile.os4,
	builds/amiga/smakefile, 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, builds/symbian/bld.inf,
	builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj,
	builds/wince/vc2008-ce/freetype.vcproj,
	builds/windows/vc2005/freetype.vcproj,
	builds/windows/vc2008/freetype.vcproj,
	builds/windows/vc2010/freetype.vcxproj,
	builds/windows/vc2010/freetype.vcxproj.filters,
	builds/windows/visualc/freetype.dsp,
	builds/windows/visualc/freetype.vcproj,
	builds/windows/visualce/freetype.dsp,
	builds/windows/visualce/freetype.vcproj, docs/INSTALL.ANY,
	include/config/ftheader.h, include/ftfntfmt.h, modules.cfg,
	src/base/ftfntfmt.c, vms_make.com: Updated.

2015-03-10  Alexei Podtelezhnikov  <apodtele@gmail.com>

	Fix Savannah bug #44412 (part 1).

	* src/base/ftstroke.c (ft_stroker_inside): Handle near U-turns.

2015-03-10  Werner Lemberg  <wl@gnu.org>

	[base] Rename `FT_Bitmap_New' to `FT_Bitmap_Init'.

	* include/ftbitmap.h, src/base/ftbitmap.c: Implement it.
	Update all callers.

	* docs/CHANGES: Updated.

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

	* src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning.

	Found by Alexei.

2015-03-05  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/base/ftstroke.c: Simplify.

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

	[truetype] Some fixes and code refactoring in `ttgxvar.c'.

	* src/truetype/ttgxvar.c (ft_var_readpackedpoints): Fix return value
	of `point_cnt' if two bytes are read.
	Use a more vertical coding style.
	(ft_var_readpackeddeltas): Use FT_UInt for `delta_cnt' parameter.
	Use a more vertical coding style.

2015-03-03  Werner Lemberg  <wl@gnu.org>

	[autofit] Fix Savannah bug #44241.

	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Reject glyphs
	with less than 3 points.

2015-03-02  Werner Lemberg  <wl@gnu.org>

	Simplify `TYPEOF' macro.

	No need for two arguments.

	* include/config/ftconfig.h, builds/unix/ftconfig.in,
	builds/vms/ftconfig.h (TYPEOF): Updated.

	* include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
	src/autofit/afwarp.h (AF_WARPER_FLOOR): Updated.

2015-03-01  Werner Lemberg  <wl@gnu.org>

	Various compiler warning fixes for `make multi'.

	* src/autofit/afcjk.c (af_cjk_hints_compute_blue_edges),
	src/autofit/aflatin.c (af_latin_hint_compute_blue_edges,
	af_latin_hint_edges), src/autofit/aflatin2.c
	(af_latin2_hints_compute_blue_edges, af_latin2_hint_edges): Declare
	as `static'.

	* src/cache/ftccmap.c (FTC_CMAP_QUERY_HASH, FTC_CMAP_NODE_HASH):
	Removed.  Unused.
	* src/cache/ftcimage.c: Include FT_INTERNAL_OBJECTS_H.
	* src/cache/ftcmanag.c (FTC_LRU_GET_MANAGER): Removed.  Unused.

	* src/cff/cf2intrp.c: Include `cf2intrp.h'.
	* src/cff/cffdrivr.c (PAIR_TAG): Removed.  Unused.

	* src/gzip/ftgzip.c (NO_DUMMY_DECL): Removed.  Unused.

	* src/psaux/afmparse.c (afm_parser_read_int): Declare as `static'.

	* src/pshinter/pshalgo.c (STRONGER, PSH_ZONE_MIN, PSH_ZONE_MAX):
	Removed.  Unused.

	* src/raster/ftraster.c (Render_Glyph): Declare as `static'.

	* src/sfnt/ttpost.c (load_format_20): Fix signedness warning.

	* src/truetype/ttdriver.c (PAIR_TAG): Removed.  Unused.
	* src/truetype/ttsubpix.c (is_member_of_family_class,
	is_member_of_style_class): Declare as `static'.

	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Declare
	as `static'.
	* src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): Declare as
	`static'.
	(T1_FIELD_COUNT): Removed.  Unused.
	* src/type1/t1parse.h (T1_Done_Table): Removed.  Unused.

	* src/type42/t42parse.c (T1_Done_Table): Removed.  Unused.

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

	[psaux] Signedness fixes.

	* include/internal/psaux.h, src/psaux/afmparse.c,
	src/psaux/afmparse.h, src/psaux/psconv.c, src/psaux/psobjs.c,
	src/psaux/t1cmap.c, src/psaux/t1decode.c: Apply.

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

	[otvalid] Signedness fixes.

	* src/otvalid/otvcommn.c, src/otvalid/otvgdef.c,
	src/otvalid/otvgpos.c, src/otvalid/otvgsub.c, src/otvalid/otvmath.c:
	Apply.

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

	* src/bzip2/ftbzip2.c (ft_bzip2_alloc): Signedness fix.

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

	[lzw] Signedness fixes.

	* src/lzw/ftzopen.c, src/lzw/ftzopen.h: Apply.

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

	[gxvalid] Signedness fixes.

	* src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
	src/gxvalid/gxvcommn.h, src/gxvalid/gxvjust.c,
	src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
	src/gxvalid/gxvmort1.c, src/gxvalid/gxvmort2.c,
	src/gxvalid/gxvmorx.c, src/gxvalid/gxvmorx1.c,
	src/gxvalid/gxvmorx2.c, src/gxvalid/gxvopbd.c,
	src/gxvalid/gxvprop.c, src/gxvalid/gxvtrak.c: Apply.

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

	[cache] Signedness fixes.

	* src/cache/ftcbasic.c, src/cache/ftccmap.c, src/cache/ftcimage.c,
	src/cache/ftcmanag.c, src/cache/ftcsbits.c: Apply.

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

	Change dimension fields in `FTC_ImageTypeRec' to unsigned type.

	This doesn't break ABI.

	* include/ftcache.h (FTC_ImageTypeRec): Use unsigned types for
	`width' and `height'.

	* docs/CHANGES: Document it.

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

	[cache] Don't use `labs'.

	This is the only place in FreeType where this function was used.

	* include/config/ftstdlib.h (ft_labs): Remove.

	* src/cache/ftcimage.c (ftc_inode_weight): Replace `ft_labs' with
	`FT_ABS'.

2015-02-23  Werner Lemberg  <wl@gnu.org>

	[cache] Replace `FT_PtrDist' with `FT_Offset'.

	* src/cache/ftccache.h (FTC_NodeRec): `FT_Offset' (a.k.a. `size_t')
	is a better choice for `hash' to hold a pointer than `FT_PtrDist'
	(a.k.a. `ptrdiff_t'), especially since the latter is signed,
	causing zillions of signedness warnings.  [Note that `hash' was of
	type `FT_UInt32' before the change to `FT_PtrDist'.]
	Update all users.

	* src/cache/ftcbasic.c, src/cache/ftccache.c, src/cache/ftccmap.c,
	src/cache/ftcglyph.c, src/cache/ftcglyph.h: Updated.

2015-02-23  Werner Lemberg  <wl@gnu.org>

	[smooth, raster] Re-enable standalone compilation.

	* src/raster/ftraster.c (FT_RENDER_POOL_SIZE, FT_MAX)
	[_STANDALONE_]: Define macros.

	* src/smooth/ftgrays.c (FT_RENDER_POOL_SIZE, FT_MAX, FT_ABS,
	FT_HYPOT) [_STANDALONE_]: Define macros.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	[smooth] Signedness fixes.

	* src/smooth/ftgrays.c, src/smooth/ftsmooth.c: Apply.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	* src/raster/ftraster.c: Use the file's typedefs everywhere.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	* src/sfnt/ttpost.c (load_format_20): Fix error tracing message.

	Bug introduced 6 commits earlier.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	[pshinter] Fix thinko.

	* src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Correctly
	check `count'.
	Bug introduced two commits earlier.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	[raster] Signedness fixes.

	* src/raster/ftraster.c, src/raster/ftrend1.c: Apply.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	[pshinter] Signedness fixes.

	* src/pshinter/pshalgo.c, src/pshinter/pshglob.c,
	src/pshinter/pshrec.c: Apply.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	[pshinter] Use macros for (unsigned) flags, not enumerations.

	* src/pshinter/pshalgo.h (PSH_Hint_Flags): Replace with macros.
	Updated.
	* src/pshinter/pshrec.h (PS_Hint_Flags): Replace with macros.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	* src/pshinter/pshrec.c: Simplify.
	(ps_hints_open, ps_hints_stem): Remove switch statement.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	[sfnt] Signedness fixes.

	* src/sfnt/pngshim.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap.c,
	src/sfnt/ttkern.c, src/sfnt/ttload.c, src/sfnt/ttpost.c,
	src/sfnt/ttsbit.c: Apply.
	* src/sfnt/sfdriver.c: Apply.
	(sfnt_get_ps_name): Simplify.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	[bdf] Signedness fixes.

	* src/bdf/bdf.h, src/bdf/bdfdrivr.c, src/bdf/bdfdrivr.h,
	src/bdf/bdflib.c: Apply.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	* src/bdf/bdflib.c (_bdf_atous): New function.
	(_bdf_parse_glyphs, _bdf_parse_start): Use it.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	[pcf] Signedness fixes.

	* src/pcf/pcf.h, src/pcf/pcfdrivr.c: Apply.
	* src/pcf/pcfread.c: Apply.
	(pcf_get_encodings): Ignore invalid negative encoding offsets.

2015-02-21  Werner Lemberg  <wl@gnu.org>

	* src/winfonts/winfnt.c: Signedness fixes.

2015-02-21  Werner Lemberg  <wl@gnu.org>

	[type42] Signedness fixes.

	* src/type42/t42parse.c, src/type42/t42parse.h,
	src/type42/t42types.h: Apply.

2015-02-21  Werner Lemberg  <wl@gnu.org>

	[pfr] Signedness fixes.

	* src/pfr/pfrdrivr.c, src/pfr/pfrgload.c, src/pfr/pfrload.c,
	src/pfr/pfrload.h, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c,
	src/pfr/pfrtypes.h: Apply.

2015-02-21  Werner Lemberg  <wl@gnu.org>

	[cff] Minor signedness fixes related to last commit.

	* src/cff/cf2ft.c, src/cff/cf2intrp.c, src/cff/cffgload.c: Apply.

2015-02-20  Werner Lemberg  <wl@gnu.org>

	[cff] Thinkos in bias handling.

	Only the final result is always positive.

	Bug introduced three commits earlier.

	* src/cff/cffgload.c, src/cff/cffgload.h: Apply.

2015-02-20  Werner Lemberg  <wl@gnu.org>

	[cid] Fix signedness issues and emit some better error codes.

	* src/cid/cidgload.c, src/cid/cidload.h, src/cid/cidobjs.c,
	src/cid/cidparse.h: Apply.
	* src/cid/cidload.c: Apply.
	(parse_fd_array): Reject negative values for number of dictionaries.
	* src/cid/cidparse.c: Apply.
	(cid_parser_new): Reject negative values for hex data length.

2015-02-20  Werner Lemberg  <wl@gnu.org>

	[cff] Signedness fixes for new engine.

	* src/cff/cf2arrst.c, src/cff/cf2fixed.h, src/cff/cf2ft.c,
	src/cff/cf2ft.h, src/cff/cf2hints.c, src/cff/cf2intrp.c: Apply.

2015-02-20  Werner Lemberg  <wl@gnu.org>

	[cff] Signedness fixes for basic infrastructure and old engine.

	* include/internal/pshints.h, src/cff/cffdrivr.c,
	src/cff/cffgload.c, src/cff/cffgload.h, src/cff/cffload.c,
	src/cff/cffobjs.c, src/cff/cffparse.c, src/pshinter/pshrec.c: Apply.

2015-02-19  Werner Lemberg  <wl@gnu.org>

	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Ignore `countSizePairs'.

	This is hard-coded to value 2 in `fvar' version 1.0 (and no newer
	version exists), but some fonts set it incorrectly.

	Problem reported by Adam Twardoch <adam@fontlab.com>.

2015-02-19  Werner Lemberg  <wl@gnu.org>

	[cff] Emit better error code for invalid private dict size.

	* src/cff/cffparse.c (cff_parse_private_dict): Reject negative
	values for size and offset.

2015-02-19  Werner Lemberg  <wl@gnu.org>

	[autofit] Fix signedness issues.

	* src/autofit/afangles.c, src/autofit/afcjk.c,
	src/autofit/afglobal.c, src/autofit/afhints.c,
	src/autofit/aflatin.c, src/autofit/aflatin2.c, src/autofit/afwarp.c,
	src/autofit/hbshim.c: Apply.

2015-02-19  Werner Lemberg  <wl@gnu.org>

	[autofit] Use macros for (unsigned) flags, not enumerations.

	This harmonizes with other code in FreeType (and reduces the number
	of necessary casts to avoid compiler warnings).

	* src/autofit/afblue.hin: Make flag macros unsigned.
	* src/autofit/afblue.h: Regenerated.

	* src/autofit/afcjk.h: Replace flag enumeration with macros.
	* src/autofit/afcjk.c: Updated.

	* src/autofit/afhints.h (AF_Flags, AF_Edge_Flags): Replace with
	macros.
	* src/autofit/afhints.c: Updated.

	* src/autofit/aflatin.h: Replace flag enumerations with macros.
	* src/autofit/aflatin.c, src/autofit/aflatin2.c: Updated.

	* src/autofit/aftypes.h (AF_ScalerFlags): Replace with macros.

2015-02-18  Werner Lemberg  <wl@gnu.org>

	[type1] Fix signedness issues.

	* include/internal/psaux.h, include/internal/t1types.h,
	src/psaux/psobjs.c, src/psaux/psobjs.h, src/psaux/t1decode.c,
	src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1parse.c: Apply.

2015-02-18  Werner Lemberg  <wl@gnu.org>

	[psaux, type1] Fix minor AFM issues.

	* include/internal/t1types.h (AFM_KernPairRec): Make indices
	unsigned.
	Update users.
	(AFM_FontInfoRec): Make element counters unsigned.
	Update users.
	* src/psaux/afmparse.h (AFM_ValueRec): Add union member for unsigned
	int.

	* src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs):
	Reject negative values for number of kerning elements.

	* src/type1/t1afm.c, src/tools/test_afm.c: Updated.

2015-02-18  Werner Lemberg  <wl@gnu.org>

	Don't use `FT_PtrDist' for lengths.

	Use FT_UInt instead.

	* include/internal/psaux.h (PS_Table_FuncsRec, PS_TableRec,
	T1_DecoderRec): Do it.

	* include/internal/t1types.h (T1_FontRec): Ditto.

	* src/cid/cidload.c (cid_parse_dict): Updated.
	* src/pfr/pfrload.c (pfr_extra_item_load_font_id): Ditto.
	* src/psaux/psobjs.c (ps_table_add), src/psaux/psobjs.h: Ditto.
	* src/type1/t1load.c (parse_blend_axis_types, parse_encoding,
	parse_charstrings, parse_dict): Ditto.
	* src/type42/t42parse.c (t42_parse_encoding, t42_parse_charstrings,
	t42_parse_dict): Ditto.

2015-02-18  Werner Lemberg  <wl@gnu.org>

	* src/type1/t1driver.c (t1_ps_get_font_value): Clean up.
	This handles negative values better, avoiding many casts.

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

	[base] Fix Savannah bug #44284.

	* src/base/ftcalc.c (FT_MulFix): Typos.

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

	[truetype] Finish compiler warning fixes for signedness issues.

	* src/truetype/ttgxvar.c, src/truetype/ttsubpix.c,
	src/truetype/ttsubpix.h: Apply.

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

	* src/truetype/ttsubpix.c: Adding missing `static' keywords.

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

	[truetype] More signedness fixes.

	* include/internal/tttypes.h, src/truetype/ttinterp.h,
	src/truetype/ttobjs.h, src/truetype/ttinterp.c,
	src/truetype/ttobjs.c: Apply.

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

	[truetype] Various signedness fixes.

	* include/internal/ftgloadr.h, src/truetype/ttpload.c: Apply.

	* src/truetype/ttgload.c: Apply.
	(TT_Get_VMetrics): Protect against invalid ascenders and descenders
	while constructing advance height.

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

	[base] Finish compiler warning fixes for signedness issues.

	* src/base/ftglyph.c, src/base/ftlcdfil.c, src/base/ftstroke.c:
	Apply.

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

	* include/tttables.h (TT_OS2): `fsType' must be FT_UShort.

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

	More minor signedness warning fixes.

	* src/base/ftbbox.c, src/base/ftbitmap.c, src/base/fttrigon.c,
	src/base/ftutil.c: Apply.

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

	Next round of minor compiler warning fixes.

	* include/internal/ftrfork.h (FT_RFork_Ref): Change `offset' member
	type to `FT_Long'.
	(CONST_FT_RFORK_RULE_ARRAY_BEGIN): Add `static' keyword.

	* include/internal/ftstream.h (FT_Stream_Pos): Return `FT_ULong'.

	* src/base/ftoutln.c, src/base/ftrfork.c, src/base/ftstream.c:
	Signedness fixes.

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

	Various minor signedness fixes.

	* include/ftadvanc.h, include/internal/ftobjs.h,
	src/base/ftgloadr.c, src/base/ftobjs.c: Apply.

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

	New `TYPEOF' macro.

	This helps suppress signedness warnings, avoiding issues with
	implicit conversion changes.

	* include/config/ftconfig.h, builds/unix/ftconfig.in,
	builds/vms/ftconfig.h (TYPEOF): Define.

	* include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
	src/autofit/afwarp.h (AF_WARPER_FLOOR): Use it.

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

	* src/base/ftsystem.c: Use casts in standard C function wrappers.
	(ft_alloc, ft_realloc, ft_ansi_stream_io, FT_Stream_Open): Do it.

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

	Fix Savannah bug #44261.

	* builds/unix/detect.mk (setup) [unix]: Set `CONFIG_SHELL' in the
	environment also while calling the configure script.

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

	* include/internal/ftmemory.h: Add some `FT_Offset' casts.
	(FT_MEM_SET, FT_MEM_COPY, FT_MEM_MOVE, FT_ARRAY_ZERO, FT_ARRAY_COPY,
	FT_MEM_MOVE): Do it.

2015-02-15  Werner Lemberg  <wl@gnu.org>

	[base] Clean up signedness issues in `ftdbgmem.c'.

	Also fix other minor issues.

	* src/base/ftdbgmem.c (FT_MemTableRec): Replace all FT_ULong types
	with FT_Long for consistency.
	(ft_mem_primes): Change type to `FT_Int'.
	(ft_mem_closest_prime, ft_mem_table_set): Updated.

	(ft_mem_debug_panic, ft_mem_debug_alloc, ft_mem_debug_free,
	ft_mem_debug_realloc): Use `static' keyword and fix signedness
	warnings where necessary.

	(ft_mem_table_resize, ft_mem_table_new, ft_mem_table_destroy,
	ft_mem_table_get_nodep, ft_mem_debug_init, FT_DumpMemory): Fix types
	and add or remove casts to avoid signedness warnings.

2015-02-15  Werner Lemberg  <wl@gnu.org>

	[base] Clean up signedness in arithmetic functions.

	This makes the code more readable and reduces compiler warnings.

	* src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round, FT_MulFix,
	FT_DivFix): Convert input parameters to unsigned, do the
	computation, then convert the result back to signed.
	(ft_corner_orientation): Fix casts.

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

	[sfnt] Fix Savannah bug #44184.

	* src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir): No
	longer reject `htmx' and `vmtx' tables with invalid length but
	sanitize them.

2015-02-06  Jon Anderson  <jon@websupergoo.com>

	[truetype] Fix regression in the incremental glyph loader.

	* src/truetype/ttgload.c (load_truetype_glyph): For incremental
	fonts, the glyph index may be greater than the number of glyphs
	indicated, so guard the check with a preprocessor conditional.

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

	[autofit] Fix potential memory leak.

	While this doesn't show up with FreeType, exactly the same code
	leaks with ttfautohint's modified auto-hinter code (which gets used
	in a slightly different way).

	It certainly doesn't harm since it is similar to already existing
	checks in the code for embedded arrays.

	* src/autofit/afhints.c (af_glyph_hints_reload): Set `max_contours'
	and `max_points' for all cases.

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

	[autofit] Add support for Thai script.

	Thanks to Ben Mitchell <ben@rosettatype.com> for guidance with blue
	zone characters!

	* src/autofit/afblue.dat: Add blue zone data for Thai.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Thai standard characters.

	* src/autofit/afranges.c: Add Thai data.

	* src/autofit/afstyles.h: Add Thai data.

2015-01-23  Behdad Esfahbod  <behdad@behdad.org>

	[raster] Handle `FT_RASTER_FLAG_AA' correctly.

	This fixes a breakage caused by the commit `[raster] Remove
	5-level gray AA mode from monochrome rasterizer.'.

	Problem reported by Markus Trippelsdorf <markus@trippelsdorf.de>.

	* src/raster/ftraster.c (ft_black_render): Handle
	`FT_RASTER_FLAG_AA'.

	* src/raster/ftrend1.c (ft_raster1_render): Remove gray AA mode
	remnants.

2015-01-18  Werner Lemberg  <wl@gnu.org>

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

2015-01-18  Chris Liddell  <chris.liddell@artifex.com>

	[raster] Fix Savannah bug #44022.

	Add fallback for glyphs with degenerate bounding boxes.

	If a glyph has only one very narrow feature, the bbox can end up
	with either the width or height of the bbox being 0, in which case
	no raster memory is allocated and no attempt is made to render the
	glyph.  This is less than ideal when the drop-out compensation in
	the rendering code would actually result in the glyph being
	rendered.

	This problem can be observed with the `I' glyph (gid 47) in the
	Autodesk RomanS TrueType font.

	* src/raster/ftrend1.c (ft_raster1_render): Add a fallback if either
	dimension is zero to explicitly round up/down (instead of simply
	round).

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

	Add some tools to handle yearly copyright notice updates.

	We are now following the GNU guidelines: A new release automatically
	means that the copyright year of all affected files gets updated; it
	is no longer used to track years of modification changes.

	* src/tools/update-copyright-year: New Perl script.
	* src/tools/update-copyright: New shell script that calls
	`update-copyright-year' on all files.
	* src/tools/no-copyright: Exceptions that should not be handled by
	`update-copyright'

2015-01-14  Werner Lemberg  <wl@gnu.org>

	* docs/CHANGES: Updated, using a description from Behdad.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	* src/autofit/afmodule.c (af_autofitter_done): Fix compiler warning.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[autofit] Add embedded array of segments and edges.

	Avoids multiple mallocs per typical glyphs.

	With this and recent changes to avoid mallocs, the thread-safe
	stack-based loader is now as fast as the previous model that had one
	cached singleton.

	* src/autofit/afhints.h (AF_SEGMENTS_EMBEDDED, AF_EDGES_EMBEDDED):
	New macros.
	(AF_AxisHintsRec): Add two arrays for segments and edges.

	* src/autofit/afhints.c (af_axis_hints_new_segment): Only allocate
	data if number of segments exceeds given threshold value.
	(af_axis_hints_new_edge):  Only allocate data if number of edges
	exceeds given threshold value.
	(af_glyph_hints_done): Updated.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[autofit] Add embedded arrays for points and contours.

	This avoids at least two malloc calls for typical glyphs.

	* src/autofit/afhints.h (AF_POINTS_EMBEDDED, AF_CONTOURS_EMBEDDED):
	New macros.
	(AF_GlyphHintsRec): Add two arrays for contours and points.

	* src/autofit/afhints.c (af_glyph_hints_init, af_glyph_hints_done):
	Updated.
	(af_glyph_hints_reload): Only allocate data if number of contours or
	points exceeds given threshold values.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[autofit] Allocate hints object on the stack.

	This avoids one malloc per load.

	* src/autofit/afloader.h (AF_LoaderRec): Change type of `hints' to
	`AF_GlyphHints'.
	Update prototype.

	* src/autofit/afloader.c (af_loader_init): Use `AF_GlyphHints'
	parameter instead of `FT_Memory'.
	(af_loader_done): Directly reset `load_hints'.
	(af_loader_load_g): Updated.

	* src/autofit/afmodule.c (af_autofitter_load_glyph): Use local
	`hints' object.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[autofit] Reuse slot glyph loader.

	No need to create a new glyph loader; we can reuse the one from
	`slot->internal->loader'.  It's hard to tell why it was written that
	way originally, but new code looks sound and correct to me, and
	avoids lots of allocations.

	* src/autofit/afloader.c (af_loader_init): Change return type to
	`void'.
	Don't call `FT_GlyphLoader_New'.
	(af_loader_reset): Don't call `FT_GlyphLoader_Rewind'.
	(af_loader_load_g): Update code to use `internal->loader', which
	doesn't need copying of data.

	* src/autofit/afloader.h (AF_LoaderRec): Remove `gloader' member.
	Update prototype.

	* src/autofit/afmodule.c (af_autofitter_load_glyph): Updated.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[autofit] Remove (unused) support for composite glyphs.

	We never have to deal with composite glyphs in the autohinter, as
	those will be loaded into FORMAT_OUTLINE by the recursed
	`FT_Load_Glyph' function.

	In the rare cases that FT_LOAD_NO_RECURSE is set, it will imply
	FT_LOAD_NO_SCALE as per `FT_Load_Glyph', which then implies
	FT_LOAD_NO_HINTING:

	  /* resolve load flags dependencies */

	  if ( load_flags & FT_LOAD_NO_RECURSE )
	    load_flags |= FT_LOAD_NO_SCALE         |
	                  FT_LOAD_IGNORE_TRANSFORM;

	  if ( load_flags & FT_LOAD_NO_SCALE )
	  {
	    load_flags |= FT_LOAD_NO_HINTING |
	                  FT_LOAD_NO_BITMAP;

	    load_flags &= ~FT_LOAD_RENDER;
	  }

	and as such the auto-hinter is never called.  Thus, the recursion in
	`af_loader_load_g' never actually happens.  So remove the depth
	counter as well.

	* src/autofit/afloader.c (af_loader_load_g): Remove `depth'
	parameter.
	<FT_GLYPH_FORMAT_COMPOSITE>: Remove associated code.
	(af_loader_load_glyph): Updated.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[raster] Fix uninitialized memory access.

	Apparently `ras.cProfile' might be uninitialized.  This will be the
	case if `ras.top == ras.cProfile->offset', as can be seen in
	`End_Profile'.  The overshoot code introduced in a change `Fix B/W
	rasterization of subglyphs with different drop-out modes.' (from
	2009-06-18) violated this, accessing `ras.cProfile->flags'
	unconditionally just before calling `End_Profile' (which then
	detected that `cProfile' is uninitialized and didn't touch it).

	This was harmless, and was not detected by valgrind before because
	the objects were allocated on the `raster_pool', which was always
	initialized.  With recent change to allocate raster buffers on the
	stack, valgrind now reported this invalid access.

	* src/raster/ftraster.c (Convert_Glyph): Don't access an
	uninitialized `cProfile'.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[smooth] Fix uninitialized memory access.

	Looks like `ras.span_y' could always be used without initialization.
	This was never detected by valgrind before because the library-wide
	`raster_pool' was used for the worker object and `raster_pool' was
	originally zero'ed.  But subsequent reuses of it were using `span_y'
	uninitialized.  With the recent change to not use `render_pool' and
	allocate worker and buffer on the stack, valgrind now detects this
	uninitialized access.

	* src/smooth/ftgrays.c (gray_raster_render): Initialize
	`ras.span_y'.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[base] Don't initialize unused `driver->glyph_loader'.

	* src/base/ftobjs.c (Destroy_Driver): Don't call
	`FT_GlyphLoader_Done'.
	(FT_Add_Module): Don't call `FT_GlyphLoader_New'.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[base] Don't allocate `library->raster_pool' anymore.

	It's unused after the following commits:

	  [raster] Allocate render pool for mono rasterizer on the stack.
	  [raster] Remove 5-level gray AA mode from monochrome rasterizer.

	The value of FT_RENDER_POOL_SIZE still serves the purpose it used to
	serve, which is, to adjust the pool size.  But the pool is now
	allocated on the stack on demand.

	* src/base/ftobjs.c (FT_New_Library, FT_Done_Library): Implement.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[base] Do not reorder library->renderers upon use.

	Instead of keeping `library->renderers' in a MRU order, just leave
	it as-is.  The MRU machinery wasn't thread-safe.

	With this patch, rasterizing glyphs from different faces from
	different threads doesn't fail choosing rasterizer
	(FT_Err_Cannot_Render_Glyph).

	Easiest to see that crash was to add a `printf' (or otherwise let
	thread yield in FT_Throw with debugging enabled).

	* src/base/ftobjs.c (FT_Render_Glyph_Internal), src/base/ftoutln.c
	(FT_Outline_Render): Don't call `FT_Set_Renderer'.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[raster] Allocate render pool for mono rasterizer on the stack.

	Instead of using the `render_pool' member of `FT_Library' that is
	provided down to the rasterizer, completely ignore that and allocate
	needed objects on the stack instead.

	With this patch, rasterizing glyphs from different faces from
	different threads doesn't crash in the monochrome rasterizer.

	* src/raster/ftraster.c (black_TRaster): Remove `buffer',
	`buffer_size', and `worker' members.

	(ft_black_render): Create `buffer' locally.
	(ft_black_reset): Updated.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[raster] Remove 5-level gray AA mode from monochrome rasterizer.

	It was off by default and couldn't be turned on at runtime.  And the
	smooth rasterizer superceded it over ten years ago.  No point in
	keeping.  Comments suggested that it was there for compatibility
	with FreeType 1.

	550 lines down.

	* src/raster/ftraster.c (FT_RASTER_OPTION_ANTI_ALIASING,
	RASTER_GRAY_LINES): Remove macros and all associated code.

	(black_TWorker): Remove `gray_min_x' and `gray_max_x'.
	(black_TRaster): Remove `grays' and `gray_width'.

	(Vertical_Sweep_Init, Vertical_Sweep_Span, Vertical_Sweep_Drop,
	ft_black_render): Updated.

	* src/raster/ftrend1.c (ft_raster1_render): Simplify code.
	(ft_raster5_renderer_class): Removed.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[smooth] Allocate render pool for smooth rasterizer on the stack.

	Instead of using the `render_pool' member of `FT_Library' that is
	provided down to the rasterizer, completely ignore that and allocate
	needed objects on the stack instead.

	With this patch, rasterizing glyphs from different faces from
	different threads doesn't crash in the smooth rasterizer.

	Bugs:

	  https://bugzilla.redhat.com/show_bug.cgi?id=678397
	  https://bugzilla.redhat.com/show_bug.cgi?id=1004315
	  https://bugzilla.redhat.com/show_bug.cgi?id=1165471
	  https://bugs.freedesktop.org/show_bug.cgi?id=69034

	* src/smooth/ftgrays.c (gray_TRaster): Remove `buffer',
	`buffer_size', `band_size', and `worker' members.

	(gray_raster_render): Create `buffer', `buffer_size', and
	`band_size' locally.
	(gray_raster_reset): Updated.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[truetype] Allocate TT_ExecContext in TT_Size instead of TT_Driver.

	Previously the code had stipulation for using a per-TT_Size exec
	context if `size->debug' was true.  But there was no way that
	`size->debug' could *ever* be true.  As such, the code was always
	using the singleton `TT_ExecContext' that was stored in `TT_Driver'.
	This was, clearly, not threadsafe.

	With this patch, loading glyphs from different faces from different
	threads doesn't crash in the bytecode loader code.

	* src/truetype/ttobjs.h (TT_SizeRec): Remove `debug' member.
	(TT_DriverRec): Remove `context' member.

	* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Remove
	`TT_ExecContext' code related to a global `TT_Driver' object.

	(tt_driver_done): Don't remove `TT_ExecContext' object here but ...
	(tt_size_done_bytecode): ... here.

	(tt_driver_init): Don't create `TT_ExecContext' object here but ...
	(tt_size_init_bytecode): ... here, only on demand.

	* src/truetype/ttinterp.c (TT_Run_Context): Remove defunct debug
	code.
	(TT_New_Context): Remove `TT_ExecContext' code related to a global
	`TT_Driver' object.

	* src/truetype/ttinterp.h: Updated.

	* src/truetype/ttgload.c (TT_Hint_Glyph, tt_loader_init): Updated.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[autofit] Allocate AF_Loader on the stack instead of AF_Module.

	Stop sharing a global `AF_Loader'.  Allocate one on the stack during
	glyph load.

	Right now this results in about 25% slowdown, to be fixed in a
	following commit.

	With this patch loading glyphs from different faces from different
	threads doesn't immediately crash in the autohinting loader code.

	Bugs:

	  https://bugzilla.redhat.com/show_bug.cgi?id=1164941

	* src/autofit/afloader.c (af_loader_init): Pass
	`AF_Loader' and `FT_Memory' instead of `AF_Module' as arguments.
	(af_loader_reset, af_loader_load_glyph): Also pass `loader' as
	argument.
	(af_loader_done): Use `AF_Loader' instead of `AF_Module' as
	argument.

	* src/autofit/afmodule.c (af_autofitter_init): Don't call
	`af_loader_init'.
	(af_autofitter_done): Don't call `af_loader_done'.
	(af_autofitter_load_glyph): Use a local `AF_Loader' object.

	* src/autofit/afloader.h: Include `afmodule.h'.
	Update prototypes.
	Move typedef for `AF_Module' to...

	* src/autofit/afmodule.h: ... this place.
	No longer include `afloader.h'.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	* src/type42/t42objs.h (T42_DriverRec): Remove unused member.

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

	Fix Savannah bug #43976.

	Assure that FreeType's internal include directories are found before
	`CPPFLAGS' (which might be set by the user in the environment), and
	`CPPFLAGS' before `CFLAGS'.

	* builds/freetype.mk (FT_CFLAGS): Don't add `INCLUDE_FLAGS'.
	(FT_COMPILE): Make this a special variable for compiling only the
	files handled in `freetype.mk'.
	(.c.$O): Removed, unused.

	* src/*/rules.mk (*_COMPILE): Fix order of include directories.

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

	[truetype] Prettifying.

	* src/truetype/ttinterp.c (project, dualproj, fast_project,
	fast_dualproj): Rename to...
	(PROJECT, DUALPROJ, FAST_PROJECT, FAST_DUALPROJ): ... this.

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

	* src/truetype/ttinterp.c (Ins_JROT, Ins_JROF): Simplify.

	Based on a patch from Behdad.

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

	* src/truetype/ttinterp.c (Ins_SxVTL): Simplify function call.

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

	* src/truetype/ttinterp.c (Normalize): Remove unused argument.

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

	[truetype] More macro expansions.

	* src/truetype/ttinterp.c (FT_UNUSED_EXEC): Remove macro by
	expansion.

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

	[truetype] More macro expansions.

	* src/truetype/ttinterp.c (INS_ARG): Remove macro by expansion,
	adjusting function calls where necessary.
	(FT_UNUSED_ARG): Removed, no longer needed.

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

	[truetype] More macro expansions.

	Based on a patch from Behdad.

	* src/truetype/ttinterp.c (DO_*): Expand macros into corresponding
	`Ins_*' functions.
	(TT_RunIns): Replace `DO_*' macros with `Ins_*' function calls.
	(ARRAY_BOUND_ERROR): Remove second definition, which is no longer
	needed.
	(Ins_SVTCA, Ins_SPVTCA, Ins_SFVTCA): Replaced with...
	(Ins_SxyTCA): New function.

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

	[truetype] Remove TT_CONFIG_OPTION_INTERPRETER_SWITCH.

	Behdad suggested this code simplification, and nobody objected...

	* include/config/ftoption.h, devel/ftoption.h
	(TT_CONFIG_OPTION_INTERPRETER_SWITCH): Remove.

	* src/truetype/ttinterp.c [TT_CONFIG_OPTION_INTERPRETER_SWITCH]:
	Remove related code.
	(ARRAY_BOUND_ERROR): Use do-while loop.

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

	[truetype] More macro expansions.

	* src/truetype/ttinterp.c, src/truetype/ttinterp.h (EXEC_ARG_,
	EXEC_ARG): Remove by replacing with expansion.

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

	[truetype] More macro expansions.

	Based on a patch from Behdad.

	* src/truetype/ttinterp.c (SKIP_Code, GET_ShortIns, NORMalize,
	SET_SuperRound, ROUND_None, INS_Goto_CodeRange, CUR_Func_move,
	CUR_Func_move_orig, CUR_Func_round, CUR_Func_cur_ppem,
	CUR_Func_read_cvt, CUR_Func_write_cvt, CUR_Func_move_cvt,
	CURRENT_Ratio, INS_SxVTL, COMPUTE_Funcs, COMPUTE_Round,
	COMPUTE_Point_Displacement, MOVE_Zp2_Point): Remove by replacing
	with expansion.

	(Cur_Func_project, CUR_Func_dualproj, CUR_fast_project,
	CUR_fast_dualproj): Replace with macros `project', `dualproj',
	`fast_project', `fast_dualproj'.

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

	[truetype] More macro expansions.

	* src/truetype/ttinterp.c (EXEC_OP_, EXEC_OP): Remove by replacing
	with expansion.

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

	[truetype] Remove code for static TrueType interpreter.

	This is a follow-up patch.

	* src/truetype/ttinterp.c, src/truetype/ttinterp.h
	[TT_CONFIG_OPTION_STATIC_INTERPRETER,
	TT_CONFIG_OPTION_STATIC_RASTER]: Remove macros and related code.

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

	* src/truetype/ttinterp.c (CUR): Remove by replacing with expansion.

	This starts a series of patches that simplifies the code of the
	bytecode interpreter.


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

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