shithub: freetype+ttf2subf

Download patch

ref: ba47af32ba6a8a5f2cd5c0a5868c37c6a2665c1c
parent: c2fa51d9bd350c55427b62982bf464ffd5e0a068
author: Werner Lemberg <[email protected]>
date: Sun Jul 25 02:50:36 EDT 2021

ChangeLog housekeeping.

Archive old `ChangeLog` file.

We no longer write ChangeLog entries manually; instead, the file will be
created from commit messages (which should be formatted in GNU's ChangeLog
style) by a call to

  gitlog-to-changelog --format='%B%n'

or something similar (this script is part of the 'gnulib' repository).

git/fs: mount .git/fs: mount/attach disallowed
--- a/.gitattributes
+++ /dev/null
@@ -1,1 +1,0 @@
-ChangeLog       merge=merge-changelog
--- a/ChangeLog
+++ /dev/null
@@ -1,7815 +1,0 @@
-2021-07-18  Werner Lemberg  <[email protected]>
-
-	* Version 2.11.0 released.
-	==========================
-
-
-	Tag sources with `VER-2-11-0'.
-
-	* docs/VERSION.TXT: Add entry for version 2.11.0.
-	* docs/CHANGES: Updated.
-
-	* README, src/base/ftver.rc, builds/windows/vc2010/index.html,
-	builds/windows/visualc/index.html,
-	builds/windows/visualce/index.html,
-	builds/wince/vc2005-ce/index.html,
-	builds/wince/vc2008-ce/index.html, docs/freetype-config.1:
-	s/2.10.4/2.11.0/, s/2104/2110/.
-
-	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 11.
-	(FREETYPE_PATCH): Set to 0.
-
-	* builds/unix/configure.raw (version_info): Set to 24:0:18.
-	* CMakeLists.txt (VERSION_MINOR): Set to 11.
-	(VERSION_PATCH): Set to 0.
-
-	* builds/toplevel.mk (dist): Ignore more git-related files.
-
-2021-07-17  David Turner  <[email protected]>
-
-	* src/smooth/ftgrays.c: Fix compilation if `FT_LONG64` is undefined.
-
-	The code assumed that if `__SSE2__` is defined, then 64-bit integer
-	types are available.  This is not the case apparently for certain
-	multilib compiler targets like 'x86_32.x86' used by Gentoo.
-
-	This patch fixes the issue by disabling the special code path when
-	64-bit integer types are not available.
-
-	Fixes #1071.
-
-2021-07-16  Alex Richardson  <[email protected]>
-
-	[tests] Allow arbitrary build directories.
-
-	* tests/issue-1063/main.c (main): I am building with a build
-	directory that is not directly inside the source tree, so the path
-	`../tests/data/As.I.Lay.Dying.ttf` does not resolve to the test
-	input file.  This change passes the test data directory as an
-	environment variable to allow arbitrary build directories.
-
-	* tests/meson.build: Updated.
-
-2021-07-16  Alex Richardson  <[email protected]>
-
-	* tests/issue-1063/main.c (main): Fix uninitialized variable.
-
-	I tried running `meson test` but the test just crashed and gdb
-	reported that the face argument to `FT_Get_Char_Index` was nonsense. 
-	With this change the test prints 'Could not open file: ' as it
-	should.
-
-2021-07-16  Werner Lemberg  <[email protected]>
-
-	[smooth] Minor fixes.
-
-	* src/smooth/ftgrays.c (gray_render_conic): Move variable and
-	structure declarations to beginning of function.  Inspite of C99
-	compliance we still do this for the sake of backward compatibility.
-	This also avoids a shadowing declaration of `count`.
-	(gray_convert_glyph_inner): Fix typo.
-
-2021-07-15  Ben Wagner  <[email protected]>
-
-	* src/smooth/ftgrays.c: Guard inclusion of `emmintrin.h`.
-
-	Guard inclusion of `emmintrin.h` with `#ifdef __SSE2__`.  The gcc
-	version of this header, `xmmintrin.h`, and `mmintrin.h` check that
-	the appropriate defines are set before defining anything (are
-	internally guarded).  However, the clang versions of these includes
-	are not internally guarded.  As a result of this, externally guard
-	the inclusion of these headers.
-
-2021-07-15  David Turner  <[email protected]>
-
-	[smooth] Implement Bézier quadratic arc flattening with DDA.
-
-	Benchmarking shows that this provides a very slighty performance
-	boost when rendering fonts with lots of quadratic Bézier arcs,
-	compared to the recursive arc splitting, but only when SSE2 is
-	available, or on 64-bit CPUs.
-
-	On a 2017 Core i5-7300U CPU on Linux/x86_64:
-
-	  ftbench -p -s10 -t5 -cb DroidSansFallbackFull.ttf
-
-	  Before: 4.033 us/op  (best of 5 runs for all numbers)
-	  After:  3.876 us/op
-
-	  ftbench -p -s60 -t5 -cb DroidSansFallbackFull.ttf
-
-	  Before: 13.467 us/op
-	  After:  13.385 us/op
-
-	* src/smooth/ftgrays.c (gray_render_conic): New implementation
-	based on DDA and optionally SSE2.
-
-2021-07-15  David Turner  <[email protected]>
-
-	[smooth] Minor speedup to smooth rasterizer.
-
-	This speeds up the smooth rasterizer by avoiding conditional
-	branches in the hot path.
-
-	- Define a fixed 'null cell', which will be pointed to whenever the
-	  current cell is outside of the current target region.  This avoids
-	  a `ras.cell != NULL` check in the `FT_INTEGRATE` macro.
-
-	- Also use the null cell as a sentinel at the end of all `ycells`
-	  linked-lists, by setting its x coordinate to `INT_MAX`.  This
-	  avoids a `if (!cell)` check in `gray_set_cell` as well.
-
-	- Slightly change the worker struct fields to perform a little less
-	  operations during rendering.
-
-	Example results (on a 2013 Corei5-3337U CPU)
-
-	  out/ftbench -p -s10 -t5 -bc DroidSansFallbackFull.ttf
-
-	  Before: 5.472 us/op
-	  After:  5.275 us/op
-
-	  out/ftbench -p -s60 -t5 -bc DroidSansFallbackFull.ttf
-
-	  Before: 17.988 us/op
-	  After:  17.389 us/op
-
-	* src/smooth/ftgrays.c (grat_TWorker): Replace `num_cells` field with
-	`cell_free` and `cell_limit`.
-	(NULL_CELL_PTR, CELL_MAX_X_VALUE, CELL_IS_NULL): New macros.
-	(gray_dump_cells, gray_set_cell, gray_sweep, gray_sweep_direct,
-	gray_convert_glyph_inner, gray_convert_glyph): Updated.
-
-2021-07-15  David Turner  <[email protected]>
-
-	[tests] Rewrite download script in Python3.
-
-	This commit replaces the bash script with a Python script that does
-	the same work, plus avoiding to download anything if the files are
-	already installed with the right content.
-
-	We now use the first 8 bytes of each file's sha256 hash for the
-	digest.
-
-	* tests/scripts/download-test-fonts.sh: Removed.
-	* tests/scripts/download-test-fonts.py: New script.
-	* tests/README.md: Updated.
-
-2021-07-15  Alex Richardson  <[email protected]>
-
-	Support architectures where `long` is smaller than pointers.
-
-	I am currently trying to compile FreeType for CHERI-extended ISAs
-	(CHERI-RISC-V and Arm's Morello), but I am getting compiler warnings
-	from the `FT_UINT_TO_POINTER` macro.  When compiling with the CHERI
-	Clang compiler, not using `uinptr_t` for casts between integers an
-	pointers results in the following `-Werror` build failures:
-
-	```
-	In file included from .../src/truetype/truetype.c:22:
-	  .../src/truetype/ttgload.c:1925:22: error:
-	    cast from provenance-free integer type to pointer type will
-	    give pointer that can not be dereferenced
-	    [-Werror,-Wcheri-capability-misuse]
-	  node->data = FT_UINT_TO_POINTER( glyph_index );
-	               ^
-	  .../include/freetype/internal/compiler-macros.h:79:34: note:
-	    expanded from macro 'FT_UINT_TO_POINTER'
-	```
-
-	* include/freetype/internal/compiler-macros.h (FT_UINT_TO_POINTER):
-	The ISO C standard compliant fix for this would be to use
-	`uintptr_t` from `stdint.h`, but I am not sure if this is supported
-	by the minimum compiler version.  Therefore, use the
-	compiler-defined `__UINTPTR_TYPE__` macro (supported in GCC 4.6+ and
-	Clang since about 3.0) before checking for `_WIN64` and falling back
-	to `unsigned long`.
-
-2021-07-13  Oleg Oshmyan  <[email protected]>
-
-	[base] Fix `FT_Open_Face`'s handling of user-supplied streams.
-
-	This was already true (though undocumented) most of the time, but
-	not if `FT_NEW` inside `FT_Stream_New` failed or if the
-	`FT_OPEN_XXX` flags were bad.
-
-	Normally, `FT_Open_Face` calls `FT_Stream_New`, which returns the
-	user-supplied stream unchanged, and in case of any subsequent error
-	in `FT_Open_Face`, the stream is closed via `FT_Stream_Free`.
-
-	Up to now, however, `FT_Stream_New` allocates a new stream even if
-	it is already given one by the user.  If this allocation fails, the
-	user-supplied stream is not returned to `FT_Open_Face` and never
-	closed.  Moreover, the user cannot detect this situation: all they
-	see is that `FT_Open_Face` returns `FT_Err_Out_Of_Memory`, but that
-	can also happen after a different allocation fails within the main
-	body of `FT_Open_Face`, when the user's stream has already been
-	closed by `FT_Open_Face`.  It is plausible that the user stream's
-	`close` method frees memory allocated for the stream object itself,
-	so the user cannot defensively free it upon `FT_Open_Face` failure
-	lest it ends up doubly freed.  All in all, this ends up leaking the
-	memory/resources used by user's stream.
-
-	Furthermore, `FT_Stream_New` simply returns an error if the
-	`FT_OPEN_XXX` flags are unsupported, which can mean either an
-	invalid combination of flags or a perfectly innocent
-	`FT_OPEN_STREAM` on a FreeType build that lacks stream support.
-	With this patch, the user-supplied stream is closed even in these
-	cases, so the user can be sure that if `FT_Open_Face` failed, the
-	stream is definitely closed.
-
-	* src/base/ftobjs.c (FT_Stream_New): Don't allocate a buffer
-	unnecessarily.
-	Move error-handling code to make the control flow more obvious.
-	Close user-supplied stream if the flags are unsupported.
-	`FT_Stream_Open` always sets `pathname.pointer`, so remove the
-	redundant (re)assignment.  None of the `FT_Stream_Open...` functions
-	uses `stream->memory`, so keep just one assignment at the end,
-	shared among all possible control flow paths.
-	('Unsupported flags' that may need a stream closure can be either an
-	invalid combination of multiple `FT_OPEN_XXX` mode flags or a clean
-	`FT_OPEN_STREAM` flag on a FreeType build that lacks stream
-	support.)
-
-2021-07-13  Oleg Oshmyan  <[email protected]>
-
-	[base] Reject combinations of incompatible `FT_OPEN_XXX` flags.
-
-	The three modes are mutually exclusive, and the documentation of the
-	`FT_OPEN_XXX` constants notes this.  However, there was no check to
-	validate this in the code, and the documentation on `FT_Open_Args`
-	claimed that the corresponding bits were checked in a well-defined
-	order, implying it was valid (if useless) to specify more than one.
-	Ironically, this documented order did not agree with the actual
-	code, so it could not be relied upon; hopefully, nobody did this and
-	nobody will be hurt by the new validation.
-
-	Even if multiple mode bits were allowed, they could cause memory
-	leaks: if both `FT_OPEN_STREAM` and `stream` are set along with
-	either `FT_OPEN_MEMORY` or `FT_OPEN_PATHNAME`, then `FT_Stream_New`
-	allocated a new stream but `FT_Open_Face` marked it as an 'external'
-	stream, so the stream object was never released.
-
-	* src/base/ftobjs.c (FT_Stream_New): Reject incompatible
-	`FT_OPEN_XXX` flags.
-
-2021-07-12  Alex Richardson  <[email protected]>
-
-	* meson.build: Fix build for other UNIX systems (e.g., FreeBSD).
-
-	Without this change the build of `unix/ftsystem.c` fails because the
-	`ftconfig.h` header that defines macros such as `HAVE_UNISTD_H` and
-	`HAVE_FCNTL_H` is only being generated for Linux, macOS, and Cygwin
-	systems:
-
-	```
-	.../builds/unix/ftsystem.c:258:32: error:
-	    use of undeclared identifier 'O_RDONLY'
-	file = open( filepathname, O_RDONLY );
-	```
-
-	Instead of hardcoding a list of operating systems for this check,
-	update the logic that decides whether to build the file and set a
-	boolean flag that can be checked instead.
-
-2021-07-12  Werner Lemberg  <[email protected]>
-
-	[autofit] More clean-ups.
-
-	* src/autofit/afhints.h (AF_GlyphHintsRec): Remove the no longer
-	needed fields `xmin_delta` and `xmax_delta`.
-
-	* src/autofit/afhints.c (af_glyph_hints_reload),
-	src/autofit/afloader.c (af_loader_load_glyph): Updated.
-
-2021-07-12  Werner Lemberg  <[email protected]>
-
-	Small clean-ups for the last few commits.
-
-	* include/freetype/fttrace.h (afwarp): Removed.
-
-2021-07-12  David Turner  <[email protected]>
-
-	Remove obsolete `AF_Angle` type and related sources.
-
-	* src/autofit/afangles.c: File removed.  Functions related to
-	sorting moved to...
-	* src/autofit/afhints.c (af_sort_pos, af_sort_and_quantize_widths):
-	This file.
-	* src/autofit/afangles.h: File removed.
-	* src/autofit/aftypes.h: Updated.
-	* src/autofit/autofit.c: Updated.
-
-	* src/autofit/rules.mk (AUTOF_DRV_SRC): Updated.
-
-2021-07-12  David Turner  <[email protected]>
-
-	Remove experimental auto-hinting 'warp' mode.
-
-	This feature was always experimental, and probably never worked
-	properly.  This patch completely removes it from the source code,
-	except for a documentation block describing it for historical
-	purposes.
-
-	* devel/ftoption.h, include/freetype/config/ftoption.h: Remove
-	`AF_CONFIG_OPTION_USE_WARPER`.
-
-	* include/freetype/ftdriver.h: Document 'warping' property as
-	obsolete.
-
-	* src/autofit/afwarp.c, src/autofit/afwarp.h: Files removed.
-	* src/autofit/*: Remove any code related to warp mode.
-
-2021-07-12  David Turner  <[email protected]>
-
-	Remove experimental 'Latin2' writing system (`FT_OPTION_AUTOFIT2`).
-
-	This code has always been experimental and was never compiled anyway
-	(`FT_OPTION_AUTOFIT2` does not appear in `ftoption.h` or even any of
-	our build files).
-
-	* include/freetype/internal/fttrace.h (aflatin2): Removed.
-	* src/autofit/aflatin2.h, src/autofit/aflatin2.c: Files removed.
-	* src/autofit/afloader.c: Remove undocumented hook to activate
-	Latin2 system.
-	* src/autofit/afstyles.h: Remove `ltn2_dflt` style definition.
-	* src/autofit/afwrtsys.h: Remove `LATIN2` writing system definition.
-	* src/autofit/autofit.c: Updated.
-
-2021-07-05  Werner Lemberg  <[email protected]>
-
-	* src/base/ftlcdfil.c (FT_Library_SetLcdGeometry): Fix argument.
-
-	Reported by Hin-Tak.
-
-2021-07-03  Werner Lemberg  <[email protected]>
-
-	* meson_options.txt: Sort alphabetically; no final full stops.
-
-2021-07-01  Ben Wagner  <[email protected]>
-
-	* src/truetype/ttgxvar.c (tt_set_mm_blend): Test `coords`.
-
-	It is undefined behavior to pass `NULL` to `memcpy`.  `coords' is
-	passed to `memcpy` but `TT_Get_MM_Blend` and `TT_Get_Var_Design`
-	explictly call `tt_set_mm_blend` with `coords` as `NULL`.  In
-	addition, `TT_Set_MM_Blend` has a similar possible issue.
-
-2021-06-30  Dominik Röttsches  <[email protected]>
-
-	[sfnt] Support PaintScale in 'COLR' v1 parsing.
-
-	* include/freetype/ftcolor.h (FT_PaintFormat): Renumber values, add
-	`FT_COLR_PAINTFORMAT_SCALE`.
-	(FT_PaintScale): New structure to represent 'PaintScale*' tables.
-	(FT_COLR_Paint): Updated.
-
-	* src/sfnt/ttcolr.c (FT_PaintFormat_Internal): New enumeration.
-	(read_paint): Parse 'PaintScale' and friends.
-
-2021-06-30  Dominik Röttsches  <[email protected]>
-
-	[sfnt] Handle fonts without layer list in 'COLR' v1.
-
-	'COLR' v1 fonts do not necessarily need to have a layer list; for
-	this reason, 'fontTools' recently started generating fonts in a way
-	that drops the layer list if there are no layers in it.  This
-	results in the layer list offset becoming zero, which FreeType
-	treated as an invalid table.  Fix that and handle the case for layer
-	list offset being 0.  This slightly changes how we need to calculate
-	the starting offset for paints.
-
-	* src/sfnt/ttcolr.c (tt_face_load_colr): Handle case of layer list
-	offset being zero without outright rejecting table.
-
-2021-06-30  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/raster/ftraster.c (Render_Single_Pass): Simplify `band_stack'.
-
-2021-06-29  Alexei Podtelezhnikov  <[email protected]>
-
-	[raster] Do not skip the second pass without dropout control.
-
-	The second pass also fixes horizontal lines through the pixel centers.
-
-	* src/raster/ftraster.c (black_TWorker): Do not use `second_pass'.
-	(Render_Glyph): Skip the second pass only with the appropriate flag.
-
-2021-06-29  Alexei Podtelezhnikov  <[email protected]>
-
-	[raster] Handle sub-band stack locally.
-
-	* src/raster/ftraster.c (black_TWorker): Move `band_stack' from here..
-	(Render_Single_Pass): ... to here and accept limit arguments.
-	(Render_Glyph): Updated.
-
-2021-06-25  Anurag Thakur  <[email protected]>
-
-	[CI] Introduce linux CI and refactor job names.
-
-	* .gitlab-ci.yml: Added jobs for building freetype on linux.
-
-2021-06-28  Alexei Podtelezhnikov  <[email protected]>
-
-	[raster] Handle Bézier stack locally.
-
-	* src/raster/ftraster.c (black_TWorker): Move `arcs' from here...
-	(Conic_To, Cubic_To): ... to here to tighten their scope.
-	(Bezier_Up, Bezier_Down): ... Take the current `arc' argument.
-
-2021-06-28  Dominik Röttsches  <[email protected]>
-
-	[sfnt] Improve paint limit checks
-
-	Paint tables can appear before the `base_glyphs_v1` offset if the
-	font is produced with the layer list before the base glyph list.  In
-	this case paint tables can occur after the layer list but before the
-	base glyph list.  Checks in the 'COLR' v1 code were rejecting fonts
-	with this layout.  Improve these checks by calculating a minimum
-	offset after which paint tables can occur and use that in safety
-	checks.
-
-	* src/sfnt/ttcolr.c (Colr, tt_face_load_colr): Declare
-	`paint_start_v1` and calculate that as the minimum of the end of
-	layer list and base glyph list.
-	(get_child_table_pointer, read_paint, tt_face_get_paint_layers):
-	Use that in safety checks.
-
-2021-06-28  Alexei Podtelezhnikov  <[email protected]>
-
-	[raster] Clean up vertical sweep.
-
-	* src/raster/ftraster.c (black_TWorker): Replace the current line
-	offset with the pointer and drop the increment.
-	(Function_Sweep_Init): Take values as arguments instead of pointers.
-	(Vertical_Sweep_*, Horizontal_Sweep_Init, Draw_Sweep): Updated.
-
-2021-06-25  Alexei Podtelezhnikov  <[email protected]>
-
-	[raster] Make `band_top' local variable.
-
-	* src/raster/ftraster.c (black_TWorker): Move `band_top' from here...
-	(Render_Single_Pass): ... to here, and refactor.
-	(Render_Glyph): Updated.
-
-2021-06-25  Alexei Podtelezhnikov  <[email protected]>
-
-	[raster] Adjust sub-band bisecting limits.
-
-	We can bisect a band until it is just a single scan line.  This might
-	be slow and cause time-outs but if we need to impose limits it should
-	be elsewhere.
-
-	* src/raster/ftraster.c (Render_Single_Pass): Tweak sub-banding.
-
-2021-06-25  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/raster/ftraster.c (Render_Single_Pass): Remove dead code.
-
-2021-06-25  Werner Lemberg  <[email protected]>
-
-	[base] Add trace level to logging output.
-
-	Some practical debugging work has shown that displaying level X of
-	an `FT_TRACEX` macro in the output of `FT2_DEBUG="...  -v"` would be
-	very helpful to find out which trace level should be selected.  As
-	an example, we now get output like
-
-	```
-	[ttobjs:2]    TTF driver
-	[ttobjs:2]      SFNT driver
-	[sfobjs:2]      not a font using the SFNT container format
-	[t1objs:2]    Type 1 driver
-	[stream:7]    FT_Stream_EnterFrame: 14 bytes
-	```
-
-	* include/freetype/internal/ftdebug.h (FT_LOGGING_TAGX): New macro.
-	(FT_LOG): Use it to add the trace level to the logging tag.
-
-	* include/freetype/internal/fttrace.h (FT_MAX_TRACE_LEVEL_LENGTH):
-	Adjust.
-
-	* docs/DEBUG: Updated.
-
-2021-06-24  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth, raster] Fix up and align error codes.
-
-	FT_Render_Glyph picked up FAILURE or 1 returned from the raster
-	function, which became a confusing error code. Instead, return
-	Raster_Overflow in the unlikely event that banding does not help or
-	another meaningful error.
-
-	* src/smooth/ftgrays.c (gray_convert_glyph_inner, gray_convert_glyph):
-	Use Raster_Overflow when the rendering pool is exhausted and return it
-	if banding does not help.
-	(gray_raster_render): Use Smooth_Err_Ok.
-
-	* src/raster/ftraster.c (Render_Single_Pass): Return Raster_Overflow
-	if banding does not help or another error code.
-
-2021-06-23  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth, raster] Remove synonymous error macros.
-
-	* src/smooth/ftgays.c [STANDALONE_]: s/ErrRaster_/Smooth_Err_/.
-	(gray_convert_glyph_inner): Updated accordingly.
-
-	* src/raster/ftraster.c [STANDALONE_]: Do not abbreviate error macros.
-	(New_Profile, End_Profile, Insert_Y_Turn, Line_Up, Bezier_Up,
-	Decompose_Curve, Draw_Sweep, Render_Single_Pass, ft_black_render):
-	Updated accordingly.
-
-2021-06-22  Dominik Röttsches  <[email protected]>
-
-	[sfnt] s/PaintTransformed/PaintTransform/, s/transformed/transform/.
-
-	* include/freetype/ftcolor.h (FT_PaintTransformed, FT_PaintFormat,
-	FT_COLR_Paint): Do it to make it harmonize with other names such as
-	'PaintTranslate'.
-
-	* src/sfnt/ttcolr.c (read_paint, tt_face_get_paint): Ditto.
-
-2021-06-22  Dominik Röttsches  <[email protected]>
-
-	Move 'COLR' API to `ftcolor.h`.
-
-	* include/freetype/freetype.h: Cut section layer managament
-	containing 'COLR' v0 and v1 API and move it to `ftcolor.h` as
-	requested by Werner on freetype-devel.
-	* include/freetype/ftcolor.h: Paste that section.
-
-2021-06-19  Werner Lemberg  <[email protected]>
-
-	[truetype] Fix integer overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=35312
-
-	* src/truetype/ttinterp.c (Ins_JMPR): Use `ADD_LONG`.
-
-2021-06-19  Werner Lemberg  <[email protected]>
-
-	[autofit] Prevent hinting if there are too many segments.
-
-	This speeds up handling of broken glyphs.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=35309
-
-	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Implement
-	it.
-
-2021-06-18  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/sdf/ftsdfrend.c (ft_(b)sdf_render): Do not FT_ERROR routinely.
-
-2021-06-16  David Turner  <[email protected]>
-
-	[autofit] Fix return value of `FT_Load_Glyph`.
-
-	* src/autofit/afglobal.c (af_face_globals_get_metrics): The issue is
-	that `style_metrics_init` sometimes returns -1 without clearing
-	`error`.  While looping to `Again`, the next operation is
-	successful, but -1 is still returned by the function.  The fix is to
-	set `error` to 0 appropriately.
-
-	Fixes #1063.
-
-2021-06-15  David Turner  <[email protected]>
-
-	[meson] Add first regression test to FreeType.
-
-	* tests/README.md: New file that explains how to build and run the
-	tests with the Meson build.
-
-	* tests/scripts/download-test-fonts.sh: New bash script to download
-	test font files to the `tests/data` folder.
-
-	* meson.build, meson_options.txt: Add 'tests' option to enable
-	building and running the test programs (disabled by default).
-
-	* tests/meson.build: New file.
-
-	* tests/issue-1063/main.c: Simple regression test to exhibit issue
-	1063.
-
-	* .gitignore: Ignore the content of the `tests/data` folder for
-	now.
-
-2021-06-12  Alexei Podtelezhnikov  <[email protected]>
-
-	[type42] Fix new memory leak.
-
-	We need to inverse inheritance of FT_GlyphSlot_Internal so that we
-	have a chance to free the rendered bitmap from the parent slot.
-
-	* src/type42/t42objs.c (T42_GlyphSlot_Init): Remove the internal parts
-	of the child `ttslot' and replace it with the parent structure.
-	(T42_GlyphSlot_Done): Updated accordingly.
-
-2021-06-12  Werner Lemberg  <[email protected]>
-
-	[psaux] Fix another assertion.
-
-	* src/psaux/psintrp.c (cf2_interpT2CharString)
-	<cf2_escCALLOTHERSUBR>: Convert assertion into error, since the
-	problem can happen with invalid user input.
-
-	Test case is file
-
-	  fuzzing/corpora/legacy/oss-fuzz/5754332360212480-unknown-read
-
-	in the `freetype2-testing` repository.
-
-2021-06-12  Werner Lemberg  <[email protected]>
-
-	[psaux] Fix assertions.
-
-	* src/psaux/pshints.c (cf2_hintmap_adjustHints): Check for overflow
-	before emitting an assertion error.
-
-	Test case is file
-
-	 fuzzing/corpora/legacy/oss-fuzz/4594115297673216-integer-overflow
-
-	in the `freetype2-testing` repository.
-
-2021-06-09  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/truetype/ttinterp.c (TT_RunIns): Optimize tracing.
-
-2021-06-09  Alexei Podtelezhnikov  <[email protected]>
-
-	[sdf] Fix SDF positioning.
-
-	* src/sdf/ftsdfrend.c (ft_sdf_render, ft_bsdf_render): Add padding to
-	`bitmap_top' and `bitmap_left'.
-
-	* sdf/sdf/ftsdf.c (sdf_generate_with_overlaps): Fix VC++ warning.
-
-2021-06-08  Werner Lemberg  <[email protected]>
-
-	Fix 'devel' build for 'COLR' v1.
-
-	* devel/ftoption.h: Synchronize with
-	  `include/freetype/config/ftoption.h`.
-
-2021-06-08  Werner Lemberg  <[email protected]>
-
-	[sfnt] Sanitize cmap4 table better.
-
-	Fixes #1062.
-
-	* src/sfnt/ttcmap.c (tt_cmap4_validate): Handle a too-small value of
-	`length` gracefully.
-
-2021-06-08  Dominik Röttsches  <[email protected]>
-
-	[sfnt] Pointer validity check when reading 'COLR' v1 layers
-
-	* src/sfnt/ttcolr.c (tt_face_get_paint_layers): In addition to the
-	existing sanity checks, ensure that the pointer to the layer to be
-	read is within the 'COLR' v1 table.
-
-2021-06-08  Werner Lemberg  <[email protected]>
-
-	* src/sdf/ftsdfcommon.c: Fix inclusion of header files.
-
-2021-06-08  Werner Lemberg  <[email protected]>
-
-	[sdf] Make `make multi` work.
-
-	* src/sdf/ftsdf.c: Include `ftbitmap.h`.
-
-	* src/sdf/ftsdfcommon.h: Move function bodies to `ftsdfcommon.c`.
-	Include `ftobjs.h` to get definitions of `FT_LOCAL` and friends.
-
-	* src/sdf/ftsdfcommon.c: New file.
-
-	* src/sdf/rules.mk, src/sdf/sdf.c: Updated.
-
-2021-06-08  Anuj Verma  <[email protected]>
-
-	[sdf] Use 8 bits for final SDF output instead of 16bits.
-
-	Since 8-bits is enough to represent SDF data we no longer require
-	16-bits for this purpose.  Also, we now normalize the output data
-	to use the entire 8-bit range efficiently.  For example: if we use
-	3.5 format with a spread of 1 we basically only use the starting
-	5-bits.  By normalizing we can use the entire 8-bit range.
-
-	* include/freetype/freetype.h (FT_Render_Mode): Updated description
-	for `FT_RENDER_MODE_SDF` regarding this change.
-
-	* include/freetype/ftimage.h (FT_Pixel_Mode): Removed
-	`FT_PIXEL_MODE_GRAY16` since no longer required.
-
-	* include/freetype/fttypes.h (FT_F6Dot10): Removed since no longer
-	required.
-
-	* src/sdf/ftsdfrend.c (ft_sdf_render, ft_bsdf_render): Allocate 8-bit
-	bitmap instead of 16-bit buffer.
-
-	* src/sdf/ftsdfcommon.h (map_fixed_to_sdf): Added function to convert
-	16.16 distance value to our desired format.
-
-	* src/sdf/ftsdf.c (sdf_generate_with_overlaps,
-	sdf_generate_bounding_box): Use the new `map_fixed_to_sdf` function
-	and also use 8-bit output buffer.
-
-	* src/sdf/ftbsdf.c (finalize_sdf): Output to a 8-bit buffer instead
-	of 16-bit buffer.
-
-2021-06-02  Ben Wagner  <[email protected]>
-	    Werner Lemberg  <[email protected]>
-
-	[sfnt] Fix fallout from 2021-05-29 change.
-
-	* src/sfnt/ttcolr.c (find_base_glyph_record,
-	find_base_glyph_v1_record): Adjust binary search.
-
-	Needs to be updated with change to unsigned.
-
-2021-06-02  Werner Lemberg  <[email protected]>
-
-	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Fix tracing.
-
-	Problem reported by Alexei.
-
-2021-06-02  Werner Lemberg  <[email protected]>
-
-	[psaux] Fix MSVC compiler warnings.
-
-	* src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs):
-	Add cast.
-
-2021-05-29  Werner Lemberg  <[email protected]>
-
-	Fix compilation errors and (some) warnings for clang++.
-
-	* src/autofit/afmodule.c (AF_GlyphHintsRec): Make it static.
-
-	* src/cache/ftcache.c (FTC_Cache_NewNode), src/cache/ftcsbits.c
-	(ftc_snode_compare): Remove semicolon.
-
-	* src/cff/cffparse.c (cff_parser_run): Add `break` statement.
-
-	* src/cid/cidload.c (cid_hex_to_binary): Add cast.
-
-	* src/sdf/ftbsdf.c (CHECK_NEIGHBOR): Use `do {} while(0)` loop.
-	(bsdf_init_distance_map, finalize_sdf, bsdf_raster_render): Add
-	casts.
-	* src/sdf/ftsdf.c (sdf_generate_bounding_box,
-	sdf_generate_with_overlaps): Ditto.
-	* src/sdf/ftsdfcommon.h (square_root): Ditto.
-	* src/sdf/ftsdfrend.c (sdf_property_get, ft_sdf_render,
-	ft_bsdf_render): Ditto.
-
-	* src/sfnt/ttcolr.c (find_base_glyph_record,
-	find_base_glyph_v1_record): Fix variable signedness.
-	(read_color_line): Add cast.
-	(read_paint): Add casts.
-	Fix signedness issue.
-	(tt_face_get_colorline_stops) Fix signedness issues.
-
-	* src/sfnt/ttpost.c (load_format_20): Add casts.
-
-	* src/truetype/ttsubpix.c (TWEAK_RULES, TWEAK_RULES_EXCEPTIONS):
-	Remove final semicolons.
-
-2021-05-29  Werner Lemberg  <[email protected]>
-
-	[build] Allow overriding of `ANSIFLAGS` for GNU make build.
-
-	* builds/*: Implement it.
-
-2021-05-27  Alexei Podtelezhnikov  <[email protected]>
-
-	[type42] Fix auto-hinting.
-
-	The autohinter could not access the base (unscaled) outline in the
-	child TrueType glyph slot. We now share the internal parts between
-	the parent and child glyph slots. Fixes #1057.
-
-	* src/type42/t42objs.c (T42_GlyphSlot_Init): Remove the internal parts
-	of `T42_GlyphSlot' and replace it with the child TrueType structure.
-	(T42_GlyphSlot_Done): Updated accordingly.
-
-2021-05-25  Werner Lemberg  <[email protected]>
-
-	[psaux] Guard and trace AFM kern data allocation.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31543
-
-	* include/freetype/internal/fttrace.h: Add 'afmparse' trace
-	component.
-
-	* src/psaux/afmparse.c (FT_COMPONENT): Define.
-	(afm_parse_track_kern, afm_parse_kern_pairs): Protect against
-	allocations bombs.
-	Add tracing.
-	(afm_parse_kern_data): Don't allow multiple kern data sections.
-
-2021-05-23  Alexei Podtelezhnikov  <[email protected]>
-
-	* meson.build (ft2_public_headers): Add missing `ftcid.h'.
-
-	Fixes #1058.
-
-2021-05-20  Alexei Podtelezhnikov  <[email protected]>
-
-	[type42] Avoid some memory zeroing.
-
-	* src/type42/t42objs.c (T42_Open_Face): Tweak allocation macro.
-	* src/type42/t42parse.c (t42_parse_sfnts): Ditto.
-
-2021-05-19  Nikolaus Waxweiler  <[email protected]>
-
-	[CMake] Update dependency finders.
-
-	1. Fixes CMake using any found HarfBuzz version lower than the minimum
-	required. This is based on HALX99's merge request at
-	https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests/31
-	2. Update FindHarfBuzz.cmake from
-	https://github.com/WebKit/WebKit/blob/1ce32454/Source/cmake/FindHarfBuzz.cmake
-	and guard post-CMake-3.1 features to keep the minimum version unchanged
-	3. Update FindBrotliDec.cmake to stop the warnings, based on what
-	https://github.com/google/woff2/blob/a0d0ed7d/cmake/FindBrotliDec.cmake
-	is doing
-
-	* CMakeLists.txt, builds/cmake/FindHarfBuzz.cmake: Implement 1 and 2.
-	* builds/cmake/FindBrotliDec.cmake: Implement 3.
-
-2021-05-19  Ben Wagner  <[email protected]>
-
-	[gzip] Use exact type for `ft_gzip_alloc` and `ft_gzip_free`.
-
-	While a function pointer may be cast to another function pointer
-	type, it is required to cast the function pointer back to the
-	original function pointer type before calling it.  If a parameter is
-	a pointer the exact pointer type is required.  Using a pointer to a
-	different underlying type is technically undefined behavior.  The
-	wrapper functions `ft_gzip_alloc` and `ft_gzip_free` took
-	`FT_Memory` (a `FT_MemoryRec_*`) instead of `voidpf` (`void*`), so
-	when gzip calls these callbacks through `alloc_func` or `free_func`
-	it invokes undefined behavior.  On most platforms this works out as
-	expected, but newer undefined behavior detectors and targets like
-	wasm can detect this and will produce an error.
-
-	* src/gzip/ftgzip.c (ft_gzip_alloc, ft_gzip_free): Update signatures
-	to exactly match `alloc_func` and `free_func`, respectively.
-	Internally, cast the `void*` opaque pointer to `FT_Memory`.
-
-2021-05-18  Alexei Podtelezhnikov  <[email protected]>
-
-	Prioritize the anti-aliasing renderer module.
-
-	* modules.cfg: Reorder the renderers.
-	* include/freetype/config/ftmodule.h: Ditto.
-
-2021-05-16  Alexei Podtelezhnikov  <[email protected]>
-
-	[sfnt] Additional guards on the POST table.
-
-	Fixes timeout (#1055) analyzed by Ben Wagner, reported as
-
-	  https://crbug.com/1194092
-
-	* src/sfnt/ttload.c (tt_face_load_post): Check POST format.
-	* src/sfnt/sfobjs.c (sfnt_load_face): Synthesize the missing unicode
-	charmap only if the glyph names exist.
-	* src/psnames/psmodule.c (ps_unicode_value): Short cut ".notdef" and
-	".null".
-
-2021-05-13  Daniel McArdle  <[email protected]>
-
-	[psaux] Use doubling allocation strategy for CF2_ArrStack.
-
-	Fixes timeout reported as
-
-	  https://crbug.com/1206181
-
-	* src/psaux/psarrst.c (cf2_arrstack_{push,init}): Implement it.
-	* src/psaux/psarrst.h (CF2_ArrStackiRec): Drop `chunk'.
-
-2021-05-12  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/smooth/ftgrays.c (FT_MAX_GRAY_SPANS): Increase from 10 to 16.
-
-	Ten was barely enough for two slanted stems. Sixteen can actually fit
-	a bit more complicated scanlines.
-
-2021-05-11  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/smooth/ftgrays.c (FT_GRAY_SET): Adjust for better code.
-
-2021-05-11  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Faster bitmap sweeping.
-
-	Selecting the fill rule or checking the direct mode each time we call
-	`gray_hline' is sub-optimal.  This effectively splits the direct mode
-	into a separate code path while inlining `gray_hline' and saving 5-7%
-	of rendering time.
-
-	* src/smooth/ftgrays.c (gray_hline): Eliminated in favor of...
-	(FT_FILL_RULE, FT_GRAY_SET): ... these new macros...
-	(gray_sweep): ... inlined here.
-	(gray_sweep_direct): New function that handles the direct span buffer.
-	(gray_TWorker): Remove the span buffer.
-	(gray_raster_render, gray_convert_glyph): Updated.
-
-2021-05-10  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/smooth/ftgrays.c (gray_hline): Simplify even-odd computations.
-
-	It is too bad the even-odd rule is not used much.
-
-2021-05-07  Alexei Podtelezhnikov  <[email protected]>
-
-	[type1] Avoid MM memory zeroing.
-
-	* src/type1/t1load.c (t1_allocate_blend, parse_blend_design_map):
-	Tweak allocation macros.
-	* src/type1/t1objs.c (T1_Face_Done): Minor.
-
-2021-05-07  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/bdf/bdflib.c (_bdf_list_ensure): Tweak allocation macro.
-
-2021-05-06  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/psaux/psobjs.c (ps_parser_load_field): Tweak allocation macro.
-
-2021-05-06  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/sfnt/sfobjs.c (sfnt_load_face): Tweak allocation macro.
-
-2021-05-06  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/cid/cidload.c (cid_read_subrs): Tweak allocation macro.
-
-2021-05-06  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Tweak allocation.
-
-2021-05-05  Alexei Podtelezhnikov  <[email protected]>
-
-	[cff,psaux] Avoid memory zeroing (contd.).
-
-	* src/cff/cffload.c (cff_blend_doBlend, cff_blend_build_vector): Tweak
-	allocation macros.
-	* src/psaux/psarrst.c (cf2_arrstack_setNumElements): Ditto.
-	* src/psaux/psstack.c (cf2_stack_init): Ditto.
-
-2021-05-04  Ben Wagner  <[email protected]>
-
-	* src/cid/cidload.c (cid_hex_to_binary): Improve return value.
-
-	Add argument to return the actual number of bytes that were decoded.
-	The actual number of bytes decoded can be quite variable depending
-	on the number of ignored 'whitespace' bytes or early termination
-	with `>`.
-	(cid_face_open): Updated to use this calculated value.  This avoids
-	trusting `parser->binary_length` is always be correct and reading
-	uninitialized bits if fewer are actually decoded.
-
-	First reported as
-
-	  https://crbug.com/1203240
-
-2021-05-03  Alexei Podtelezhnikov  <[email protected]>
-
-	[sfnt] Streamline POST format 2.0 handing.
-
-	To reduce memory allocations, we read an entire Pascal-string buffer
-	and convert it to a C-string buffer.  We also reject tables with
-	Postscript glyph names exceeding 63 bytes.
-
-	* src/sfnt/ttpost.c (load_format20): Implement it.
-	(load_post_names): Check the minimal POST table size.
-	(load_format25, tt_face_free_ps_names): Updated accordingly.
-
-2021-05-02  Alexei Podtelezhnikov  <[email protected]>
-
-	[bdf,pcf] Avoid memory zeroing (contd.).
-
-	* src/bdf/bdflib.c (bdf_create_property, _bdf_add_comment,
-	_bdf_add_property, bdf_load_font): Tweak allocation macros.
-	* src/pcf/pcfread.c (pcf_get_properties, pcf_get_metrics): Ditto.
-
-2021-05-01  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/cid/cidload.c (cid_read_subrs): Tweak allocaton macro.
-
-2021-05-01  Alexei Podtelezhnikov  <[email protected]>
-
-	[sfnt] Avoid some memory zeroing.
-
-	* src/sfnt/sfobjs.c (sfnt_open_font, sfnt_init_face,
-	tt_name_ascii_from_{utf16,other}): Tweak allocaton macros.
-	* src/sfnt/ttload.c (tt_face_load_name): Ditto.
-
-2021-05-01  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/sfnt/ttpost.c (load_format_{20,25}): Tweak allocaton macros.
-
-2021-05-01  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/sfnt/pngshim.c (Load_SBit_Png): Tweak allocaton macro.
-
-2021-05-01  Alexei Podtelezhnikov  <[email protected]>
-
-	[truetype] Avoid some memory zeroing.
-
-	* src/truetype/ttinterp.c (Init_Context): Tweak allocation macro.
-	* src/truetype/ttpload.c (tt_face_load_cvt): Ditto.
-
-2021-05-01  Alexei Podtelezhnikov  <[email protected]>
-
-	[woff2] Avoid some memory zeroing.
-
-	* src/sfnt/sfwoff2.c (store_loca, woff2_open_font): Tweak macros.
-
-2021-04-30  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/gzip/ftgzip.c (ft_gzip_alloc): Zero out memory again.
-
-2021-04-27  Alexei Podtelezhnikov  <[email protected]>
-
-	[lzw] Preserve decompression stack when relocating to heap.
-
-	* src/lzw/ftzopen.c (ft_lzwstate_stack_grow): Copy stack when
-	relocating to heap.
-
-2021-04-27  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/cid/cidgload.c (cid_load_glyph): Restore the glyph_length check.
-
-2021-04-27  Werner Lemberg  <[email protected]>
-
-	* src/psmodule.c (ps_unicodes_init): Ignore empty glyph names.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=33637
-
-2021-04-26  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/sfnt/sfobjs.c (sfnt_init_face): Revert macro change.
-
-2021-04-26  Alexei Podtelezhnikov  <[email protected]>
-
-	[cff] Avoid some memory zeroing.
-
-	* src/cff/cffparse.c (cff_parser_init): Tweak memory macro.
-	* src/cff/cffload.c (cff_index_load_offsets, cff_index_get_pointers,
-	cff_charset_load, cff_vstore_load): Ditto.
-
-2021-04-26  Alexei Podtelezhnikov  <[email protected]>
-
-	[pfr] Avoid some memory zeroing.
-
-	* src/pfr/pfrobjs.c (pfr_face_init) : Tweak memory macro.
-	* src/pfr/pfrload.c (pfr_extra_item_load_stem_snaps,
-	pfr_phy_font_load): Ditto.
-
-2021-04-26  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/winfonts/winfnt.c (FNT_Face_Init): Tweak memory macro.
-
-2021-04-26  Alexei Podtelezhnikov  <[email protected]>
-
-	[psaux,psnames] Avoid some memory zeroing.
-
-	* src/psaux/psstack.c (cf2_stack_init): Tweak memory macro.
-	* src/psnames/psmodule.c (ps_unicodes_init): Ditto.
-
-2021-04-25  Alexei Podtelezhnikov  <[email protected]>
-
-	[base] Avoid some memory zeroing.
-
-	* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Use FT_QNEW_ARRAY.
-	* src/base/ftsnames.c (FT_Get_Sfnt_{Name,LangTag}): Ditto.
-
-2021-04-25  Alexei Podtelezhnikov  <[email protected]>
-
-	[bdf,pcf] Avoid some memory zeroing.
-
-	* src/pcf/pcfread.c (pcf_read_TOC, pcf_get_properties, pcf_load_font):
-	Tweak memory macros.
-	* src/bdf/bdfdrivr.c (BDF_Face_Init): Ditto.
-	* src/bdf/bdflib.c (_bdf_readstreami, bdf_create_property,
-	_bdf_parse_glyphs, _bdf_parse_start): Ditto.
-	(_bdf_add_property): Do not handle zero size.
-
-2021-04-25  Issam E. Maghni  <[email protected]>
-
-	* builds/meson/process_ftoption_h.py: Add LF at EOF.
-
-	This fixes
-
-	  .../ftoption.h:1030:10: error:
-	    no newline at end of file [-Werror,-Wnewline-eof]
-
-	for the generated `ftoption.h` file.
-
-2021-04-24  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/cff/cffload.c (cff_index_get_pointers): s/FT_QALLOC/FT_ALLOC/.
-
-2021-04-23  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/base/ftobjs.c (Mac_Read_POST_Resource): s/FT_ALLOC/FT_QALLOC/.
-	* builds/mac/ftmac.c (FT_New_Face_From_SFNT, read_lwfn): Ditto.
-
-2021-04-23  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/sdf/ftsdf.c (sdf_{edge,contour,shape}_new): Use FT_QALLOC.
-
-2021-04-23  Alexei Podtelezhnikov  <[email protected]>
-
-	[sfnt] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
-
-	* src/sfnt/sfdriver.c (get_win_string, get_apple_string,
-	sfnt_get_var_ps_name): Do not zero out the buffer.
-	* src/sfnt/sfobjs.c (sfnt_init_face): Ditto.
-	* src/sfnt/sfwoff.c (woff_open_font): Ditto.
-	* src/sfnt/sfwoff2.c (woff2_open_font): Ditto.
-
-2021-04-23  Alexei Podtelezhnikov  <[email protected]>
-
-	[cff,type1,type42] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
-
-	* src/cff/cffload.c (cff_index_get_pointers, cff_index_get_name):
-	Do not zero out the buffer.
-	* src/cff/cffdrivr.c (cff_ps_get_font_info): Ditto.
-	* src/type1/t1load.c (parse_subrs, parse_charstrings,
-	parse_blend_axis_types): Ditto.
-	* src/type1/t1parse.c (T1_New_Parser, T1_Get_Private_Dict): Ditto.
-	* src/type42/t42parse.c (t42_parser_init): Ditto.
-
-2021-04-23  Alexei Podtelezhnikov  <[email protected]>
-
-	[cid] s/FT_ALLOC/FT_QALLOC/ and clean up.
-
-	* src/cid/cidgload.c (cid_load_glyph): Do not zero out the buffer.
-	* src/cid/cidload.c (cid_face_open, cid_read_subrs): Ditto.
-
-2021-04-23  Alexei Podtelezhnikov  <[email protected]>
-
-	[pfr] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
-
-	* src/pfr/pfrload.c (pfr_extra_item_load_font_id, pfr_aux_name_load):
-	Do not zero out the buffer.
-
-2021-04-23  Alexei Podtelezhnikov  <[email protected]>
-
-	[bzip2,gzip] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
-
-	* src/bzip2/ftbzip2.c (ft_bzip2_alloc): Do not zero out the buffer.
-	* src/gzip/ftgzip.c (ft_gzip_alloc, FT_Stream_OpenGzip): Ditto.
-
-2021-04-23  Alexei Podtelezhnikov  <[email protected]>
-
-	[pcf,bdf,winfonts] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
-
-	* src/pcf/pcfread.c (pcf_interpret_style): Do not zero out the buffer.
-	* src/bdf/bdfdrivr.c (bdf_interpret_style): Ditto.
-	* src/winfonts/winfnt.c (FNT_Face_Init, FNT_Load_Glyph): Ditto.
-
-2021-04-22  Alexei Podtelezhnikov  <[email protected]>
-
-	[cache] Optimize SBit copying.
-
-	* src/cache/ftcsbits.c (ftc_snode_load): Do not initialize the buffer.
-	(ftc_sbit_copy_bitmap): Accept zero size, s/FT_ALLOC/FT_QALLOC/.
-
-2021-04-22  Alexei Podtelezhnikov  <[email protected]>
-
-	[gxvalid,otvalid] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
-
-	* src/gxvalid/gxvmod.c (gxv_load_table): Do not zero out the buffer.
-	* src/otvalid/otvmod.c (otv_load_table): Ditto.
-
-2021-04-22  Alexei Podtelezhnikov  <[email protected]>
-
-	[psaux] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
-
-	* src/psaux/psobjs.c (ps_table_done, ps_parser_load_field): Do not
-	zero out the buffer.
-
-2021-04-22  Alexei Podtelezhnikov  <[email protected]>
-
-	[base] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
-
-	* src/base/ftobjs.c (open_face_PS_from_sfnt_stream,
-	Mac_Read_sfnt_Resource): Do not zero out the buffer.
-	* src/base/ftmac.c (FT_New_Face_From_SFNT, read_lwfn): Ditto.
-	* src/base/ftrfork.c (raccess_make_file_name,
-	raccess_guess_darwin_hfsplus, raccess_guess_darwin_newvfs): Ditto.
-
-2021-04-20  Alexei Podtelezhnikov  <[email protected]>
-
-	[cache] Restore SBit copying for unowned (BDF) bitmaps.
-
-	* src/cache/ftcsbits.c (ftc_sbit_copy_bitmap): Restore.
-	(ftc_snode_load): Check ownership and copy unowned bitmaps.
-
-2021-04-19  Dominik Röttsches  <[email protected]>
-
-	[sfnt] Return in 'COLR' v1 when layer pointer outside table
-
-	* src/sfnt/ttcolr.c (tt_face_get_paint_layers): Add missing return
-	when paint pointer outside table.
-	(read_paint): Add missing return when paint pointer outside table.
-
-2021-04-18  Alexei Podtelezhnikov  <[email protected]>
-
-	[cache] Switch to lazy SBit setting.
-
-	* src/cache/ftcsbits.c (ftc_sbit_copy_bitmap): Removed.
-	(ftc_snode_load): Take the bitmap ownership instead of copying.
-
-2021-04-16  Daniel Welty  <@danielwelty>
-
-	* src/cache/ftcsbits.c (ftc_snode_load): Properly handle short pitch.
-
-2021-04-16  Werner Lemberg  <[email protected]>
-
-	* builds/unix/freetype2.m4: Fix help string formatting.
-
-	The indented `dnl` macros inserted unwanted horizontal space.
-
-	Problem reported by Ozkan Sezer <[email protected]>.
-
-2021-04-16  Dominik Röttsches  <[email protected]>
-
-	[sfnt] Safeguard 'COLR' v1 layer extraction
-
-	* src/sfnt/ttcolr.c (tt_face_get_paint_layers): Do not output
-	layer pointer to iterator if it is outside the 'COLR' table.
-	(read_paint): Do not attempt to read layers that are outside the
-	table.
-
-2021-04-02  Ben Wagner  <[email protected]>
-
-	[base] Complete `ft_glyphslot_clear`.
-
-	* src/base/ftobjs.c (ft_glyphslot_clear): This function is intended
-	to reset all the values of a glyph slot.  However, it was not
-	resetting the values of the advances and `glyph_index`.  Reset the
-	advances and `glyph_index` to zero.
-
-2021-04-02  Ben Wagner  <[email protected]>
-
-	[truetype] Prevent glyph program state from persisting.
-
-	`FDEF` instructions are specified as allowed only in 'prep' or
-	'fpgm'.  FreeType has attempted to prevent their use in the glyph
-	program, but they were still allowed in glyph programs if defined in
-	a function defined in 'prep' or 'fpgm' and called from the glyph
-	program.
-
-	Similarly, `IDEF` instructions are specified not to be able to
-	modify any existing instruction.  FreeType has attempted to prevent
-	their use in the glyph program, but they can still be used like
-	`FDEF`.
-
-	This change stores the initial bytecode range type and disallows the
-	use of `FDEF` and `IDEF` while running the glyph program.
-
-	Most other state is copied from the `TT_Size` into the execution
-	context.  However, it is possible for a glyph program to use `WS` to
-	write to the storage area or `WCVTP`, `WCVTF`, and `DELTAC[123]` to
-	write to the control value table.
-
-	Allowing any change to the global state from the glyph program is
-	problematic as the outlines of any given glyph may change based on
-	the order the glyphs are loaded or even how many times they are
-	loaded.  There exist fonts that write to the storage area or the
-	control value table in the glyph program, so their use should not be
-	an error.
-
-	Possible solutions to using these in the glyph program are
-
-	  * ignore the writes;
-	  * value-level copy on write, discard modified values when finished;
-	  * array-level copy on write, discard the copy when finished;
-	  * array-level copy up-front.
-
-	Ignoring the writes may break otherwise good uses.  A full copy
-	up-front was implemented, but was quite heavy as even well behaved
-	fonts required a full copy and the memory management that goes along
-	with it.  Value-level copy on write could use less memory but
-	requires a great deal more record keeping and complexity.  This
-	change implements array-level copy on write.  If any attempt is made
-	to write to the control value table or the storage area when the
-	initial bytecode range was in a glyph program, the relevant array
-	will be copied to a designated storage area and the copy used for
-	the rest of the glyph program's execution.
-
-	* src/truetype/ttinterp.h (TT_ExecContextRec): New fields
-	`iniRange`, `glyfCvtSize`, `glyfCvt`, `origCvt`, `glyfStoreSize`,
-	`glyfStorage`, and `origStorage`.
-
-	* src/truetype/ttinterp.c (Modify_CVT_Check): New function to handle
-	`exc->glyfCvt`.
-	(Write_CVT, Write_CVT_Stretched, Move_CVT, Move_CVT_Stretched): Use
-	it.
-	(Ins_WS): Handle `exc->glyfStorage`.
-	(Ins_FDEF, Ins_IDEF): Updated.
-	(TT_RunIns): Updated.
-	(TT_Done_Context): Free 'glyf' CVT working and storage area.
-	(TT_Load_Context): Fix/add casts.
-
-	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix cast.
-
-2021-03-30  Dominik Röttsches  <[email protected]>
-
-	[sfnt] Check validity of pointer location of `read_color_line`.
-
-	* src/sfnt/ttcolr.c (get_child_table_pointer): New function to fetch
-	child table pointer early for all paint formats that compute a child
-	table pointer.
-	(read_color_line, read_paint): Updated.
-	(tt_face_get_colorline_stops): Check `colr->table`.
-
-2021-03-28  Nikhil Ramakrishnan  <[email protected]>
-
-	[docs] Update docwriter stylesheet for 1.3.1.
-
-	This change is required to support docwriter 1.3.1.
-
-	See
-
-	  https://gitlab.freedesktop.org/freetype/docwriter/-/merge_requests/101
-
-	for more information.
-
-	* docs/markdown/stylesheets/extra.css:
-	(.wy-nav-content, .md-sidebar--secondary): Remove.
-
-2021-03-16  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/sfnt/pngshim.c (Load_SBit_Png): Free `rows` once later.
-
-2021-03-16  Ben Wagner  <[email protected]>
-
-	[sfnt] Fix memory leak in png loading.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/chromium/issues/detail?id=1182552
-
-	Memory is allocated and the pointer assigned to `rows` inside a
-	'setjmp' scope.  This memory must be freed outside the 'setjmp'
-	scope after a 'longjmp'.  Since `rows` is a local and modified
-	inside the 'setjmp' scope it must be marked volatile or it will have
-	an indeterminate value after the 'longjmp'.
-
-	* src/sfnt/pngshim.c (Load_SBit_Png): Fix memory leak of `rows`.
-
-2021-03-16  Christopher Degawa  <[email protected]>
-
-	* CMakeLists.txt: Don't limit generation of 'pkg-config' file to UNIX.
-
-	mingw-w64 uses the 'pkg-config' files but does not set UNIX.
-
-2021-03-11  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/smooth/ftgrays.c (gray_set_cell): Refactor to fix VC++ warning.
-
-2021-03-13  Werner Lemberg  <[email protected]>
-
-	Handle various VC++ compiler warnings.
-
-	Fixes #1039.
-
-	* src/base/ftstroke.c (ft_stroker_inside, ft_stroker_outside):
-	Initialize `sigma`.
-
-	* src/sdf/ftsdf.c (sdf_generate_with_overlaps): Exit immediately if
-	function arguments are invalid.
-	* src/sdf/ftsdfrend.c (sdf_property_set) <"overlaps">: Fix cast.
-
-	* src/sfnt/sfwoff2.c (woff2_decompress)
-	[!FT_CONFIG_OPTION_USE_BROTLI]: Use `FT_UNUSED`.
-
-	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Initialize `fvar_head`.
-
-2021-03-11  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Reduce copying during integration phase.
-
-	We now record `cover' and `area' directly into the linked list. This
-	makes rendering faster by 10% or even more at larger sizes.
-
-	* src/smooth/ftgrays.c (FT_INTEGRATE): Write directly.
-	(gray_TWorker): Add direct cell reference and remove unused fields.
-	(gray_set_cell): Consolidate the linked list management and pointers.
-	(gray_convert_glyph, gray_convert_glyph_inner): Updated.
-
-2021-03-10  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/smooth/ftgrays.c (FT_INTEGRATE): New convenience macro.
-	(gray_render_line, gray_render_scanline): Use it.
-
-2021-03-09  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/smooth/ftgrays.c (gray_render_line): Rearrange conditionals.
-
-	These produce faster or more optimizable code.
-
-2021-03-08  Tim-Philipp Müller  <[email protected]>
-
-	[meson] Fix 'mmap' handling on Windows.
-
-	* meson.build (ft2_sources): Always use `windows/ftsystem.c` on
-	Windows unless mmap has been disabled.
-
-	  https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests/5#note_829289
-
-2021-03-07  Tim-Philipp Müller  <[email protected]>
-
-	[ci] Add basic support for Meson builds with MSVC on Windows.
-
-	This adds meson jobs for VS2017 (x86 and x86_64).
-
-	* .gitlab-ci.yml: New file.
-
-2021-03-07  Tim-Philipp Müller  <[email protected]>
-
-	[meson] Add subproject fallbacks for 'libpng' and 'zlib'.
-
-	* subprojects/libpng.wrap, subprojects/zlib.wrap: New files.
-
-	* meson.build: Updated.
-
-2021-03-07  Xavier Claessens  <[email protected]>
-
-	[meson] Make it work with Windows.
-
-	* meson.build: Do not process `ftconfig.h` when not using
-	`ftconfig.h.in`.
-
-	Fixes #1029.
-
-2021-02-25  Werner Lemberg  <[email protected]>
-
-	[woff2] Fix memory leak.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28148
-
-	* src/sfnt/sfwoff2.c (woff2_open_font): Reject fonts that have
-	multiple tables with the same tag.  While not explicitly forbidden
-	in the OpenType specification, it is implicitly forbidden by
-	describing a binary search algorithm for tables that only works
-	reliably if table tags are unique.
-
-2021-02-22  Werner Lemberg  <[email protected]>
-
-	* CMakeLists.txt: Update location of `LICENSE.TXT`.
-
-	Fixes #1035.
-
-2021-02-19  Werner Lemberg  <[email protected]>
-
-	* builds/unix/ax_pthread.m4: Update from 'autoconf-archive'.
-
-	A bunch of fixes were added recently to its git repository.
-
-2021-02-17  Werner Lemberg  <[email protected]>
-
-	[unix] Updates for autoconf 2.71.
-
-	This fixes warnings reported by autoupdate.
-
-	* builds/unix/ax_pthread.m4: Replace `as_echo` with `AS_ECHO`.
-
-	* builds/unix/configure.raw: Remove obsolete `AC_HEADER_STDC`.
-	Don't escape back quotes in messages for `AC_MSG_WARN`.
-
-2021-02-16  Werner Lemberg  <[email protected]>
-
-	* builds/toplevel.mk: Fix previous commit.
-
-	<top_level>: Use `TOP_DIR` in `wildcard` function.
-	(check_out_submodule, copy_submodule): Move down to come after
-	definition of `all` rule.
-	Call `mkdir` conditionally.
-
-2021-02-16  Werner Lemberg  <[email protected]>
-
-	* builds/toplevel.mk: Use rules for handling 'dlg'.
-
-	Suggested by Alexei.
-
-	(check_out_submodule, copy_submodule): New targets.
-	<top-level>: Replace calls to `shell` with rules.
-
-2021-02-16  Werner Lemberg  <[email protected]>
-
-	* builds/toplevel.mk: Avoid side effects of `shell`.
-
-	We use a dummy variable to catch its output.  Otherwise the `make`
-	program is going to interpret the return value of `shell`; this can
-	cause obscure warning or error messages or even be harmful.
-
-2021-02-16  Werner Lemberg  <[email protected]>
-
-	Move 'dlg' submodule to `subprojects` directory.
-
-	This is for future changes with Meson, which doesn't allow a
-	different name for its `subprojects` directory.  Having both a
-	`submodules` and a `subprojects` directory is confusing.
-
-	* .gitmodules, autogen.sh (copy_submodule_files, DLG_INC_DIR,
-	DLG_SRC_DIR): Updated.
-
-	* builds/toplevel.mk (<top-level>, do-dist),
-	builds/windows/vc2010/script.bat: Updated.
-
-	* src/tools/no-copyright: Updated.
-
-2021-02-16  Dominik Röttsches  <[email protected]>
-
-	[sfnt] Update paint format values to support non-variable paints.
-
-	* freetype.h (FT_PaintFormat): Update paint format identifiers after
-	a specification change.  The specification was updated to have
-	sibling formats, variable and non-variable variants for each.
-	Reflect that here.
-
-	* sfnt/ttcolr.c (read_paint): Remove parsing of variable indices as
-	the non-variable formats no longer have them.
-
-2021-02-15  Daniel E  <[email protected]>
-
-	* CMakeLists.txt: Improve 'bz2' support.
-
-	Not all distributions such as FreeBSD provide a `.pc` file for
-	'(lib)bz2' so follow autotools and add it to `Libs.private` instead.
-
-2021-02-13  Werner Lemberg  <[email protected]>
-
-	* src/tools/update-copyright-year: Fix single-year entry handling.
-
-	The fix from 2021-01-17 didn't cover the case where the year to be
-	updated is identical to the current year.
-
-2021-02-13  Werner Lemberg  <[email protected]>
-
-	Add new function `FT_Get_Transform`.
-
-	See
-
-	  https://github.com/harfbuzz/harfbuzz/issues/2428
-
-	for some reasons to introduce this function.
-
-	* include/freetype/freetype.h, src/base/ftobjs.c (FT_Get_Transform):
-	Implement it.
-
-2021-02-12  Alexei Podtelezhnikov  <[email protected]>
-
-	Decorate `qsort` callbacks with `cdecl`.
-
-	* include/freetype/internal/compiler-macros.h (FT_COMPARE_DEF):
-	Add new macro.
-
-	* src/base/ftrfork.c, src/bdf/bdflib.c, src/gxvalid/gxvcommn.c,
-	src/psaux/afmparse.c, src/psnames/psmodule.c, src/type1/t1afm.c,
-	src/sfnt/sfwoff.c, src/sfnt/sfwoff2.c: Update `qsort` callbacks.
-
-	Fixes #1026 when compiling FreeType with an unusual calling
-	convention while the C library function `qsort` still expects
-	`cdecl`.
-
-2021-02-10  Dominik Röttsches  <[email protected]>
-
-	[sfnt] Implement 'COLR' v1 sweep gradients.
-
-	* freetype.h (FT_PaintSweepGradient): Add `FT_PaintSweepGradient` to
-	represent a 'COLR' v1 sweep gradient.
-	Update format.
-	(FT_PaintFormat): Update shifted paint formats.
-	Sync with spec.
-	* sfnt/ttcolr.c (read_paint): Logic to parse sweep gradients.
-	Fix struct access in radial gradient implementation.
-
-2021-02-09  Dominik Röttsches  <[email protected]>
-
-	[sfnt] Provide optional root transform for 'COLR' v1 glyph graph.
-
-	* include/freetype/freetype.h (FT_Get_Color_Glyph_Paint):
-	Additional function argument `root_transform` to control whether
-	root transform should be returned.
-	(FT_OpaquePaint): Additional tracking field to denote whether
-	root transform is to be returned.
-	* include/freetype/internal/sfnt.h
-	(TT_Get_Color_Glyph_Paint_Func): Propagate additional argument.
-	* src/base/ftobjs.c (FT_Get_Color_Glyph_Paint): Ditto.
-	* src/sfnt/ttcolr.c (tt_face_get_colr_glyph_paint): Return root
-	transform reflecting the size and tranform configured on
-	`FT_Face`.
-	(read_paint): Initialize and track status of insert_root_transform
-	flag.
-
-2021-02-09  Xavier Claessens  <[email protected]>
-
-	* meson.build: s/freetype2_dep/freetype_dep/.
-
-	Many projects (e.g., fontconfig, cairo) hardcode the `freetype_dep`
-	variable name to use FreeType as subproject because that was the
-	variable name in Centricular's Meson port of FreeType.  While they
-	should stop hardcoding that variable name, it does not cost us
-	anything to keep using that name to ease transition.
-
-2021-02-09  Xavier Claessens  <[email protected]>
-
-	[meson] Fix handling of HarfBuzz library.
-
-	* meson.build (harfbuzz_dep): Do not fall back to HarfBuzz by
-	default.
-
-	Otherwise it causes a dependency cycle:
-
-	  cairo => fontconfig => freetype2 => harfbuzz => cairo
-
-	Meson will still fall back to HarfBuzz subprojects if the `harfbuzz`
-	option is set to `enabled` instead of `auto` and a
-	`subprojects/harfbuzz.wrap` file is present.  In that case it is the
-	responsibility of the main project to set the proper options on each
-	subproject to break the dependency cycle.
-
-	Fixes: #1028.
-
-2021-02-09  Xavier Claessens  <[email protected]>
-
-	[meson] Fix dependency lookup and generate `ftconfig.h`.
-
-	- zlib: If not found on the system, meson can build it as a
-	  subproject.  We thus never use the (outdated) zlib support that
-	  comes with FreeType.  Doing so has the additional advantage that
-	  the zlib code can be shared with other projects like GLib if both
-	  are subprojects of an application.
-	- harfbuzz: Build as a subproject if not found on the system.
-	- 'QUESTION: What if the compiler doesn't support `-D` but uses `/D`
-	  instead as on Windows?'  Answer: Meson translate arguments for us.
-	- visibility: Replace self-made code with meson-specific solution.
-
-	* meson.build (ft2_defines): Rewrite logic to set and handle it.
-	(process_header_command): New variable, previously called
-	`ftoption_command`.
-	(ftoption_command, ftconfig_command): New variables.
-	(zlib_option): Removed.
-	(zlib_dep): New variable.
-	(ft2_deps): Updated.
-	(harfbuzz_dep): Updated.
-	(ftconfig_h_in, ftconfig_h): New variables.
-	(ft2_sources): Updated.
-	(ft2_lib): Updated, handle visibility.
-	(summary): Updted.
-
-	* meson_options.txt (zlib): Updated.
-
-2021-02-09  Xavier Claessens  <[email protected]>
-
-	* meson.build: Fix resource compilation on Windows.
-
-	This is copied from GStreamer's meson port of FreeType.
-
-	(ft2_sources): Add both debug and resource file (the latter for
-	Windows only).
-	(ft2_debug_src): Removed.
-
-2021-02-09  Xavier Claessens  <[email protected]>
-
-	* meson.build: s/ft2_libtool_version/ft2_pkgconfig_version/.
-
-	(freetype2_dep): Use it.
-
-	`ft2_libtool_version` would be the shared library version, not the
-	one we should use in file `freetype2.pc`.
-
-2021-02-09  Xavier Claessens  <[email protected]>
-
-	* meson.build: Use `meson.override_dependency`.
-
-	This is a new meson mechanism to avoid other projects to hard-code
-	the `freetype2_dep` variable name in their build definition.  It
-	also ensures that meson does not mix system and subproject versions
-	of FreeType inside of the same project.
-
-	Also remove outdated TODO because `declare_dependency` was already
-	there.
-
-2021-02-09  Xavier Claessens  <[email protected]>
-
-	* meson.build (bzip2_dep): Simplify.
-
-	We remove `static:false` from `find_library('bz2')`.
-
-	I don't know whether the previous code was a workaround for an old
-	meson bug, but at least with version >=0.55.0 (which FreeType uses)
-	it picks the shared library when both are available.
-
-	File `freetype2.pc` still contains the full path to file `libbz2.so`
-	instead of `-lbz2` – that we need to do this is a meson bug even
-	present in the current version (0.57.0).
-
-2021-02-09  Xavier Claessens  <[email protected]>
-
-	* meson.build: Set project version.
-
-2021-02-04  Werner Lemberg  <[email protected]>
-
-	[base] Fix Netpbm tracing message.
-
-	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Don't emit Netpbm
-	warning if there is nothing to output.
-
-2021-02-04  Werner Lemberg  <[email protected]>
-
-	* src/*: Don't use more than one '\n' in `FT_TRACE` and `FT_ERROR`.
-
-	This ensures good logging output, with all lines having a proper
-	prefix (if requested).
-
-	This is a continuation of a similar patch from 2020-12-02, which
-	missed some locations.
-
-2021-02-03  Alexei Podtelezhnikov  <[email protected]>
-
-	* builds/unix/configure.raw [mmap]: Restore default path.
-
-	Fixes #1023.
-
-2021-02-03  Werner Lemberg  <[email protected]>
-
-	[psaux] Fix integer overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30154
-
-	* src/psaux/psblues.c (cf2_blues_capture): Use `SUB_INT32`.
-
-2021-02-02  Alexei Podtelezhnikov  <[email protected]>
-
-	* builds/unix/configure.raw [mmap support]: Explicitly handle Windows.
-
-	Fixes #1024.
-
-2021-01-31  Werner Lemberg  <[email protected]>
-
-	* builds/unix/configure.raw [mmap support]: Correctly handle Windows.
-
-	Fixes #1024.
-
-2021-01-31  Werner Lemberg  <[email protected]>
-
-	* builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c`.
-
-2021-01-31  Werner Lemberg  <[email protected]>
-
-	Always provide logging API.
-
-	It's easier to have stubs if FT_DEBUG_LOGGING is undefined than to
-	modify `ftexport.sym` conditionally.
-
-	Problem reported by Alexei.
-
-	* src/base/ftdebug.c: Include `ftlogging.h`.
-	(FT_Trace_Set_Level, FT_Trace_Set_Default_Level, FT_Set_Log_Handler,
-	FT_Set_Default_Log_Handler) [!FT_DEBUG_LOGGING]: Provide stubs.
-
-2021-01-31  Werner Lemberg  <[email protected]>
-
-	* builds/unix/configure.raw: Fix typo.
-
-	Bug introduced in Vincent's last commit bb33f03.
-
-	Fixes issue #1021.
-
-2021-01-27  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/base/ftstroke.c (FT_Stroker_EndSubPath): Ignore tiny gaps.
-
-	Fixes bug #1020.
-
-2021-01-27  Alexei Podtelezhnikov  <[email protected]>
-
-	[stroker] Minor clean-up.
-
-	* src/base/ftstroke.c (FT_Stroker_{ConicTo,CubicTo}): Reset the last
-	line length.
-	(FT_Stroker_EndSubPath): Call `ft_stroker_process_corner'.
-
-2021-01-27  Vincent Torri  <[email protected]>
-
-	* builds/windows/ftsystem.c: Add shared memory support on Windows.
-
-	* CMakeLists.txt (BASE_SRCS), builds/unix/configure.raw (FTSYS_SRC),
-	builds/windows/vc2010/freetype.vcxproj,
-	builds/windows/visualc/freetype.vcproj, meson.build (ft2_sources):
-	Add it (conditionally).
-
-2021-01-23  Werner Lemberg  <[email protected]>
-
-	Require HarfBuzz 2.0.0.
-
-	This is needed to make commit f1f9705f9 work.
-
-	* CMakeLists.txt (HARFBUZZ_MIN_VERSION), builds/unix/configure.raw
-	(harfbuzz_pkg), meson.build (harfbuzz_dep): Updated.
-
-2021-01-22  Alexei Podtelezhnikov  <[email protected]>
-
-	* autogen.sh: Absorb `version.sed'.
-	* version.sed: Removed.
-
-2021-01-19  Alexei Podtelezhnikov  <[email protected]>
-
-	* srd/base/ftlcdfil.c (FT_Library_SetLcdGeometry): Fix return value.
-
-2021-01-15  Nikolaus Waxweiler  <[email protected]>
-
-	[afshaper] Fix hb_ot_tags_from_script deprecation warning.
-
-	* autofit/afshaper.c (af_shaper_get_coverage): Copy the source code
-	of the function as suggested in
-	https://github.com/harfbuzz/harfbuzz/issues/2737 and adjust to handle
-	at most three tags.
-
-2021-01-17  Werner Lemberg  <[email protected]>
-
-	* src/tools/update-copyright-year: Fix single-year entry handling.
-
-2021-01-16  Alexei Podtelezhnikov  <[email protected]>
-
-	* builds/unix/unixddef.mk: Remove the second DEVEL_DIR definition.
-
-2021-01-14  Dominik Röttsches  <[email protected]>
-
-	[sfnt] Additional checks for 'colr' table presence.
-
-	* sfnt/ttcolr.c (tt_face_get_colr_glyph_paint,
-	tt_face_get_colorline_stops, tt_face_get_paint): Additional checks
-	for whether colr table is present.  Prevents crashes when these
-	methods are called on non-COLR fonts.
-
-2021-01-13  Dominik Röttsches  <[email protected]>
-
-	Add config option to test for 'COLR' v1 support in headers.
-
-	* include/freetype/config/ftoption.h (TT_SUPPORT_COLRV1): New macro
-	so that clients can test whether the FreeType checkout that they are
-	building against supports the 'COLR' v1 API.  This is intended to be
-	a temporary solution until 'COLR' v1 support is released in a
-	FreeType version and such a check can be made by using the version
-	number instead.
-
-2020-12-16  Dominik Röttsches  <[email protected]>
-
-	[base] Fill 'COLR' v1 API templates to make them work (#59703).
-
-	* src/base/ftobjs.c (FT_Get_Color_Glyph_Paint, FT_Get_Paint_Layers,
-	FT_Get_Paint, FT_Get_Colorline_Stops): Add basic sanity checks,
-	check for existence of `FT_Face`, check arguments and delegate calls
-	for the respective 'COLR' v1 API to the SFNT driver.
-
-2020-12-16  Dominik Röttsches  <[email protected]>
-
-	[sfnt] Register 'COLR' v1 API in driver (#59703).
-
-	* include/freetype/internal/sfnt.h (TT_Get_Color_Glyph_Paint_Func,
-	TT_Get_Paint_Layers_Func, TT_Get_Colorline_Stops_Func,
-	TT_Get_Paint_Func): New function pointer types.
-	(SFNT_Interface): Add them.
-	(FT_DEFINE_SFNT_INTERFACE): Updated.
-
-	* src/sfnt/sfdriver.c (PUT_COLOR_LAYERS_V1): New macro.
-	(sfnt_interface): Add new function pointers.
-
-2020-12-16  Dominik Röttsches  <[email protected]>
-
-	[sfnt] Add 'COLR' v1 API to retrieve color layers (#59703).
-
-	* src/sfnt/ttcolr.c (tt_face_get_paint_layers): New function to get
-	the layers of a `PaintColrLayers` table in the font, using an
-	`FT_LayerIterator` from an `FT_PaintColrLayers` object retrieved via
-	`tt_face_get_paint`.
-
-	* src/sfnt/ttcolr.h: Updated.
-
-2020-12-16  Dominik Röttsches  <[email protected]>
-
-	[sfnt] Add 'COLR' v1 API to iterate color stops (#59703).
-
-	* src/sfnt/ttcolr.c (tt_face_get_colorline_stops): New function to
-	return the current `FT_ColorStop` object from `FT_ColorStopIterator`.
-	Also increment the iterator.
-
-	* src/sfnt/ttcolr.h: Updated.
-
-2020-12-16  Dominik Röttsches  <[email protected]>
-
-	[sfnt] Add API to get actual paint from `FT_OpaquePaint` (#59703).
-
-	* src/sfnt/ttcolr.c (tt_face_get_paint): New function to resolve an
-	`FT_OpaquePaint` paint reference into an `FT_COLR_Paint` object of a
-	certain format, which contains the detailed information stored in a
-	paint of the respective format.
-	(read_paint): New function to provide the format specific parsing
-	and to populate the data members of each specific `FT_COLR_Paint`
-	subtype.
-	(read_color_line): New function to parse retrieved color line
-	information into an `FT_ColorLine` object, which has information
-	about the color line extend mode as well as an
-	`FT_ColorStopIterator` object.
-
-	* src/sfnt/ttcolr.h: Updated.
-
-2020-12-16  Dominik Röttsches  <[email protected]>
-
-	[sfnt] Add API to retrieve 'COLR' v1 root paint (#59703).
-
-	* src/sfnt/ttcolr.c (BaseGlyphV1Record): New structure.
-	(tt_face_load_colr): Handle version 1 table header.
-	(find_base_glyph_v1_record): New auxiliary function.
-	(tt_face_get_colr_glyph_paint): New function to find the root
-	`FT_OpaquePaint` object for a given glyph ID.
-
-	* src/sfnt/ttcolr.h: Updated.
-
-2020-12-16  Dominik Röttsches  <[email protected]>
-
-	Add new methods required for 'COLR' v1 to public API (#59703).
-
-	* include/freetype/freetype.h (FT_Get_Color_Glyph_Paint): New method
-	for retrieving the root paint object for a color glyph by specifying
-	a glyph ID.
-	(FT_Get_Paint_Layers): New method for retrieving the layers of a
-	`PaintColorGlyph`.
-	(FT_Get_ColorLine_Stops): New method for retrieving the stops of a
-	color.
-	(FT_Get_Paint): New method for resolving an `FT_OpaquePaint` into an
-	`FT_COLR_Paint` object.
-
-2020-12-16  Dominik Röttsches  <[email protected]>
-
-	Add types required for 'COLR' v1 to public API (#59703).
-
-	* include/freetype/freetype.h (FT_PaintFormat, FT_ColorStopIterator,
-	FT_ColorIndex, FT_ColorStop, FT_PaintExtend, FT_ColorLine,
-	FT_Affine23, FT_CompositeMode, FT_OpaquePaint, FT_PaintColrLayers,
-	FT_PaintSolid, FT_PaintLinearGradient, FT_PaintRadialGradient,
-	FT_PaintGlyph, FT_PaintColrGlyph, FT_PaintTransformed,
-	FT_PaintTranslate, FT_PaintRotate, FT_PaintSkew, FT_PaintComposite,
-	FT_COLR_Paint): Adding structs and enum to represent paint format,
-	color stop information, gradient extend information, structs to
-	reference paint offsets, and to define transforms and compositions.
-	Adding a union type to represent the union of the structs,
-	distinguished by `FT_PaintFormat`.
-
-2021-01-10  Werner Lemberg  <[email protected]>
-
-	* builds/*: s/BUILD_DIR/PLATFORM_DIR/.
-
-	The old variable name caused confusion.
-
-2021-01-08  Alexei Podtelezhnikov  <[email protected]>
-
-	[builds] Revert `FTMODULE_H' changes.
-
-	* builds/toplevel.mk, builds/freetype.mk: Revert changes.
-
-2021-01-07  Alexei Podtelezhnikov  <[email protected]>
-
-	[builds/windows] Fix up DLG build with VC++.
-
-	* builds/windows/vc2010/script.bat: Copy headers to include/.
-	* builds/windows/vc2010/freetype.vcxproj: Remove DLG paths.
-
-2021-01-07  Alexei Podtelezhnikov  <[email protected]>
-
-	[builds] Relocate `FTMODULE_H'.
-
-	* builds/toplevel.mk: Place `FTMODULE_H' in include/.
-	* builds/freetype.mk: Simplify included path.
-
-2021-01-07  Werner Lemberg  <[email protected]>
-
-	Fix ABI incompatibility.
-
-	* include/freetype/ftimage.h (FT_Pixel_Mode): Don't insert
-	`FT_PIXEL_MODE_GRAY16' but append it.
-
-	* src/base/ftobjs.c (pixel_modes): Updated.
-
-2021-01-07  Alexei Podtelezhnikov  <[email protected]>
-
-	[dlg] Move the headers to include/dlg to simplify their use.
-
-	* autogen.sh, builds/toplevel.mk: Copy headers to include/dlg.
-	* builds/freetype.mk, builds/windows/vc2010/freetype.vcxproj:
-	Simplify included path.
-	* include/freetype/internal/ftdebug.h: Simplify #include.
-	* src/dlg/rules.mk, .gitignore: Updated.
-
-2021-01-06  Werner Lemberg  <[email protected]>
-
-	* meson.build: Add summary.
-
-	Based on a patch from Vincent Torri <[email protected]>.
-
-2021-01-06  Torsten Hilbrich  <[email protected]>
-
-	* meson.build: Fix 'png' build option (#59458).
-
-	Without this patch, 'png' is always required.
-
-2021-01-04  Alexei Podtelezhnikov  <[email protected]>
-
-	[builds/windows] Add SDF to VC2010 project.
-
-	* builds/windows/vc2010/freetype.vcxproj: Updated;
-	AfterBuild conveniences.
-
-2020-12-26  Werner Lemberg  <[email protected]>
-
-	[sdf] Use 'counter-clockwise', not 'anti-clockwise'.
-
-	We prefer US nomenclature.
-
-	* src/sdf/ftsdf.c (SDF_Contour_Orientation):
-	s/SDF_ORIENTATION-ACW/SDF_ORIENTATION_CCW/.
-	Update all users.
-
-2020-12-26  Werner Lemberg  <[email protected]>
-
-	* src/base/ftobjs.c (pixel_modes): Updated.
-
-2020-12-26  Anuj Verma  <[email protected]>
-
-	[sdf] Remove custom memory tracker.
-
-	The internal FreeType memory tracker is sufficient.
-
-	* src/sdf/ftsdf.c (FT_DEBUG_INNER, FT_ASSIGNP_INNER, SDF_MemoryUser,
-	sdf_alloc, sdf_free, SDF_ALLOC, SDF_FREE,
-	SDF_MEMORY_TRACKER_DECLARE, SDF_MEMORY_TRACKER_SETUP,
-	SDF_MEMORY_TRACKER_DONE): Removed.
-
-	s/SDF_ALLOC/FT_ALLOC/.
-	s/SDF_FREE/FT_FREE/.
-
-	Other updates.
-
-2020-12-24  Werner Lemberg  <[email protected]>
-
-	[sdf] Fix `make multi`.
-
-	* src/sdf/ftsdf.c: Include `ftoutln.h`.
-
-2020-12-24  Werner Lemberg  <[email protected]>
-
-	[sdf] Fix tracing.
-
-	* include/freetype/internal.fttrace.h: Add 'bsdf' component.
-
-	* src/sdf/ftbsdf.c, src/sdf/ftsdf.c (FT_COMPONENT): Define.
-
-2020-08-21  Anuj Verma  <[email protected]>
-
-	[sdf] Add debugging function.
-
-	* src/sdf/ftsdf.c (sdf_shape_dump): New function.
-
-2020-08-20  Anuj Verma  <[email protected]>
-
-	[sdf] Add 'bsdf' renderer to 'sdf' module.
-
-	* src/sdf/ftsdfrend.c (ft_bsdf_render): New function.
-
-	(ft_bitmap_sdf_renderer_class): New structure.
-
-2020-08-20  Anuj Verma  <[email protected]>
-
-	[sdf] Add interface functions for the 'bsdf' rasterizer.
-
-	* src/sdf/ftsdf.c (bsdf_raster_new, bsdf_raster_reset,
-	bsdf_raster_set_mode, bsdf_raster_render, bsdf_raster_done): New
-	functions.
-
-	(ft_bitmap_sdf_raster): New variable.
-
-	* src/sdf/ftsdf.h: Updated.
-
-2020-08-20  Anuj Verma  <[email protected]>
-
-	[sdf] Add function to copy SDF data into output bitmap.
-
-	* src/sdf/ftbsdf.c (finalize_sdf): New function.
-
-2020-08-20  Anuj Verma  <[email protected]>
-
-	[sdf] Add '8-point sequential Euclidean distance mapping' algorithm.
-
-	* src/sdf/ftbsdf.c (compare_neighbor, first_pass, second_pass,
-	edt8): New functions.
-
-2020-08-20  Anuj Verma  <[email protected]>
-
-	[sdf] Add function to copy source bitmap to distance map.
-
-	* src/sdf/ftbsdf.c (bsdf_init_distance_map): New function.
-
-2020-08-20  Anuj Verma  <[email protected]>
-
-	[sdf] Add functions to compute pixel edge distances.
-
-	* src/sdf/ftbsdf.c (compute_edge_distance, bsdf_approximate_edge):
-	New functions.
-
-2020-08-20  Anuj Verma  <[email protected]>
-
-	[sdf] Add function to find edge pixels in a grid of alpha values.
-
-	* src/sdf/ftbsdf.c (bsdf_is_edge): New function.
-
-2020-08-20  Anuj Verma  <[email protected]>
-
-	[sdf] Add essential structures for the 'bsdf' rasterizer.
-
-	* src/sdf/ftbsdf.c (ONE): New macro.
-	(BSDF_TRaster, ED, BSDF_Worker): New structures.
-	(zero_ed): New constant.
-
-2020-08-20  Anuj Verma  <[email protected]>
-
-	[sdf] Add 'sdf' module to non-gnumake build systems.
-
-	* include/freetype/config/ftmodule.h: Add both the 'sdf' and 'bsdf'
-	renderers to the list of modules.
-
-	* CMakeLists.txt (BASE_SRCS): Add 'sdf' single-object module.
-
-2020-08-20  Anuj Verma  <[email protected]>
-
-	[sdf] Added basic overlapping contour support.
-
-	* src/sdf/ftsdf.c (sdf_generate_with_overlaps): New function.
-	(sdf_raster_render): Enable it.
-
-2020-08-19  Anuj Verma  <[email protected]>
-
-	[sdf] Add build infrastructure.
-
-	* src/sdf/module.mk, src/sdf/rules.mk: New files.
-
-	* src/sdf/ftsdf.h (ft_sdf_raster): New forward declaration.
-
-	* include/freetype/ftmoderr.h (FT_MODERRDEF): Add error definition
-	for the 'sdf' module.
-
-	* include/freetype/internal/fttrace.h (FT_TRACE_DEF): Add trace
-	definition for the `sdf' module.
-
-	* modules.cfg (RASTER_MODULES): Add the `sdf' module to the list of
-	rasterizers.
-
-2020-08-19  Anuj Verma  <[email protected]>
-
-	[sdf] Add interface functions for the 'sdf' rasterizer.
-
-	* src/sdf/ftsdf.c (sdf_raster_new, sdf_raster_reset,
-	sdf_raster_set_mode, sdf_raster_render, sdf_raster_done): New
-	functions.
-	(ft_sdf_raster): New structure.
-
-2020-08-19  Anuj Verma  <[email protected]>
-
-	[sdf] Add subdivision and bounding box optimization.
-
-	* src/sdf/ftsdf.c (sdf_generate_bounding_box): New function, which
-	is an optimized version of `sdf_generate`.
-	(sdf_generate_subdivision): New function.
-
-2020-08-19  Anuj Verma  <[email protected]>
-
-	[sdf] Add function to generate SDF.
-
-	* src/sdf/ftsdf.c (sdf_generate): New function, currently disabled.
-	This is a proof-of-concept implementation: It doesn't use any
-	optimization, it simply checks all grid points against all contours.
-
-2020-08-19  Anuj Verma  <[email protected]>
-
-	[sdf] Add functions to get shortest distance from any edge/contour.
-
-	* src/sdf/ftsdf.c (sdf_edge_get_min_distance): New function.
-	(sdf_contour_get_min_distance): New function, currently disabled.
-
-2020-08-18  Anuj Verma  <[email protected]>
-
-	[sdf] Add shortest distance finding functions.
-
-	* src/sdf/ftsdf.c (get_min_distance_line, get_min_distance_conic,
-	get_min_distance_cubic): New functions.  Note that
-	`get_min_distance_conic` comes with two implementations (using an
-	analytical and an iterative method, to be controlled with the
-	`USE_NEWTON_FOR_CONIC` macro).
-
-2020-08-18  Anuj Verma  <[email protected]>
-
-	[sdf] Add function to resolve corner distances.
-
-	* src/sdf/ftsdf.c (resolve_corner): New function.
-
-2020-08-18  Anuj Verma  <[email protected]>
-
-	[sdf] Add essential math functions.
-
-	* src/sdf/ftsdf.c (cube_root, arc_cos) [!USE_NEWTON_FOR_CONIC]: New
-	auxiliary functions.
-
-	* src/sdf/ftsdf.c (solve_quadratic_equation, solve_cubic_equation)
-	[!USE_NEWTON_FOR_CONIC]: New functions.
-
-2020-08-18  Anuj Verma  <[email protected]>
-
-	[sdf] Add utility functions for contours.
-
-	* src/sdf/ftsdf.c (get_control_box, get_contour_orientation): New
-	functions.
-	(split_conic, split_cubic, split_sdf_conic, split_sdf_cubic,
-	split_sdf_shape): New functions.
-
-2020-08-17  Anuj Verma  <[email protected]>
-
-	[sdf] Add functions to decompose `FT_Outline`.
-
-	* src/sdf/ftsdf.c (sdf_move_to, sdf_line_to, sdf_conic_to,
-	sdf_cubic_to): New auxiliary decomposition functions.
-	(sdf_compose_funcs): New structure.
-	(sdf_outline_decompose): New function.
-
-2020-08-17  Anuj Verma  <[email protected]>
-
-	[sdf] Structs, enums, macros, and functions for 'sdf' rasterizer.
-
-	* src/sdf/ftsdf.c (FT_DEBUG_INNER, FT_ASSIGNP_INNER)
-	[FT_DEBUG_LEVEL_TRACE && FT_DEBUG_MEMORY]: New macros.
-	(SDF_MemoryUser) [FT_DEBUG_LEVEL_TRACE && FT_DEBUG_MEMORY]: New
-	struct for memory usage tracing.
-	(sdf_alloc, sdf_free) [FT_DEBUG_LEVEL_TRACE && FT_DEBUG_MEMORY]: New
-	functions for memory usage tracing.
-
-	(SDF_ALLOC, SDF_FREE): New macros for memory management.
-	(SDF_MEMORY_TRACKER_DECLARE, SDF_MEMORY_TRACKER_SETUP,
-	SDF_MEMORY_TRACKER_DONE): New macros to set up memory usage tracing.
-
-	(USE_NEWTON_FOR_CONIC, MAX_NEWTON_DIVISIONS, MAX_NEWTON_STEPS,
-	CORNER_CHECK_EPSILON, CG_DIMEN): New configuration macros for
-	controlling the process of finding the shortest distance.
-
-	(MUL_26D6, VEC_26D6_DOT): New auxiliary macros.
-
-	(SDF_TRaster, SDF_Edge, SDF_Contour, SDF_Shape, SDF_Signed_Distance,
-	SDF_Params): New structs for setting up SDF data.
-	(SDF_Edge_Type, SDF_Contour_Orientation): New enums for SDF data.
-
-	(zero_vector, null_edge, null_contour, null_shape, max_sdf): Useful
-	constants.
-
-	(sdf_edge_new, sdf_edge_done, sdf_contour_new, sdf_contour_done,
-	sdf_shape_new, sdf_shape_done): New constructors and destructors.
-
-2020-08-17  Anuj Verma  <[email protected]>
-
-	[sdf] Add raster parameters structure.
-
-	* src/sdf/ftsdf.h (SDF_Raster_Params): New structure.
-
-	* src/sdf/sdf.c: Include source files in order to make a single
-	object of the module.
-
-2020-08-17  Anuj Verma  <[email protected]>
-
-	[sdf] Add 'sdf' renderer.
-
-	* src/sdf/ftsdf.c: Add 'sdf' renderer along with its interface
-	functions.
-	Also add functions to set and get properties.
-
-2020-08-17  Anuj Verma  <[email protected]>
-
-	[sdf] Add common elements for 'sdf' and 'bsdf' renderers.
-
-	* src/sdf/ftsdfrend.h (SDF_Rendere_Module, ft_sdf_renderer_class,
-	ft_bitmap_sdf_renderer_class): New structures.
-
-	* src/sdf/ftsdfcommon.h (DEFAULT_SPREAD, MIN_SPREAD_MAX_SPREAD,
-	USE_SQUARED_DISTANCES): New macros.
-	(FT_INT_26D6, FT_INT_16D16, FT_26D6_16D16): New macros.
-	(FT_CALL, VECTOR_LENGTH_16D16): New macros.
-	(FT_26D6_Vec, FT_16D16_Vec, FT_16D16, FT_26D6, FT_6D10, FT_CBox):
-	New typedefs.
-	(square_root): New macro.
-
-	* src/sdf/ftsdferrs.h: Add module error setup.
-
-2020-08-16  Anuj Verma  <[email protected]>
-
-	[sdf] Add files for new 'sdf' module.
-
-	Here is a breakdown of what the files will contain.
-
-	* src/sdf/ftsdfrend.c, src/sdf/ftsdfrend.h: The 'sdf' and 'bsdf'
-	renderers.
-
-	* src/sdf/ftsdf.c, src/sdf/ftsdf.h: The rasterizer for the 'sdf'
-	renderer.
-	* src/sdf/ftbsdf.c, src/sdf/ftbsdf.h: The rasterizer for the 'bsdf'
-	renderer.
-
-	* src/sdf/ftsdfcommon.h: Commmon properties and functions for both
-	rasterizers.
-	* src/sdf/ftsdferrs.h: Common error defines.
-
-	* src/sdf/sdf.c: For building a single object of the entire module.
-
-2020-08-16  Anuj Verma  <[email protected]>
-
-	[base] Allow renderers of different formats.
-
-	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Do not return if the
-	glyph's slot format is `FT_GLYPH_FORMAT_BITMAP`.  The forthcoming
-	'bsdf' renderer will require bitmaps for processing.
-
-	* src/base/ftobjs.c (ft_add_renderer, ft_remove_renderer): Remove
-	renderer's glyph format check before adding and removing them.  The
-	'bsdf' renderer will have a format `FT_GLYPH_FORMAT_BITMAP`.
-
-2020-08-16  Anuj Verma  <[email protected]>
-
-	Add data types required for the forthcoming 'sdf' module.
-
-	* include/freetype/freetype.h (FT_Render_Mode): Add new render mode
-	`FT_RENDER_MODE_SDF`, which will be used to generate SDF.
-
-	* include/freetype/ftimage.h (FT_Pixel_Mode): Add new pixel mode
-	`FT_PIXEL_MODE_GRAY16`, which will be the output of the 'sdf'
-	module.
-	(FT_RASTER_FLAG_SDF): New raster flag to be used internally by the
-	'sdf' module.
-
-	* include/freetype/fttypes.h (FT_F6Dot10): New data type.
-
-2020-08-16  Anuj Verma  <[email protected]>
-
-	[base] Allow renderers of different formats.
-
-	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Do not return if the
-	glyph's slot format is `FT_GLYPH_FORMAT_BITMAP`.  The forthcoming
-	'bsdf' renderer will require bitmaps for processing.
-
-	* src/base/ftobjs.c (ft_add_renderer, ft_remove_renderer): Remove
-	renderer's glyph format check before adding and removing them.  The
-	'bsdf' renderer will have a format `FT_GLYPH_FORMAT_BITMAP`.
-
-2020-12-23  Werner Lemberg  <[email protected]>
-
-	* builds/windows/detect.mk (COPY): Make it work with `shell`.
-
-	Without this patch, we get the error
-
-	  builds/toplevel.mk:127: *** missing separator.  Stop.
-
-	Reported by Anuj, with a solution from Alexei.
-
-2020-12-23  Ignacio Casal Quinteiro  <[email protected]>
-
-	* meson.build (ft2_defines): Fix builds on Windows.
-
-2020-12-18  Tatsuyuki Ishi  <[email protected]>
-
-	[autofit] Fix double division in stem darkening.
-
-	The old code used to divide the darkening amount by em_ratio twice,
-	leading to unnecessarily bold stems on certain fonts with higher
-	units per em (e.g. Inter). This patch fixes it.
-
-	The return value of af_loader_compute_darkening was also changed to
-	use 16.16 fixed point to get rid of a redundant truncation operation.
-	This should slightly improve the precision, although it's still
-	bottlenecked by the emboldening function, which uses 26.6 fixed point.
-
-	* src/autofit/afloader.[ch]
-	(af_loader_compute_darkening): Return FT_Fixed.
-	(af_loader_embolden_glyph_in_slot): Revise calculations.
-
-2020-12-17  Alexei Podtelezhnikov  <[email protected]>
-
-	* include/freetype/ftmodapi.h (FT_FACE_DRIVER_NAME): New public macro.
-
-	The driver name is needed for `FT_Property_Set' and `FT_Property_Get'.
-
-2020-12-16  Chris Liddell  <[email protected]>
-
-	[truetype] Fix incremental metrics (#59503).
-
-	* src/truetype/ttgload.c (tt_get_metrics, load_truetype_glyph):
-	Previously, the code would populate the phantom points before
-	calling the `get_glyph_metrics` callback.  For formats like PCL XL
-	format 1, class 2 downloaded fonts (where metrics are removed from
-	the TTF header), this causes problems when the hinting program uses
-	the phantom points (misplaced and distorted glyphs) due to the
-	metrics being unset (all zeros).
-	(tt_get_metrics_incr_overrides): Renamed to...
-	(tt_get_metrics_incremental): ... this.  Updated caller
-
-	* include/freetype/ftincrem.h: Update the documentation to make it
-	clearer that `get_glyph_metrics` is to retrieve metrics from a
-	non-standard source, but *not* for the purpose of imposing custom
-	metrics.
-
-2020-12-14  Werner Lemberg  <[email protected]>
-
-	[type42] Pacify static analysis tools (#59682).
-
-	* src/type42/t42objs.c (T42_Size_Init, T42_GlyphSlot_Init): Avoid
-	warnings about uninitialized variables.
-
-2020-12-07  Werner Lemberg  <[email protected]>
-
-	* builds/unix/configure.raw: Don't set `FT_DEBUG_LOGGING`.
-
-	All debug options are handled exclusively in `ftoption.h`.
-
-2020-12-07  Werner Lemberg  <[email protected]>
-
-	* src/*: More fixes for using a '\n' in `FT_TRACE` and `FT_ERROR`.
-
-2020-12-07  Werner Lemberg  <[email protected]>
-
-	*/*: s/FT_LOGGING/FT_DEBUG_LOGGING/.
-
-2020-12-05  Werner Lemberg  <[email protected]>
-
-	* builds/toplevel.mk (do-dist): Remove `submodules` directory.
-
-2020-12-02  Werner Lemberg  <[email protected]>
-
-	* src/*: Don't use more than one '\n' in `FT_TRACE` and `FT_ERROR`.
-
-	This ensures good logging output, with all lines having a proper
-	prefix (if requested).
-
-2020-12-02  Werner Lemberg  <[email protected]>
-
-	[base] Don't close 'stderr' after logging.
-
-	* src/base/ftdebug.c, builds/windows/ftdebug.c (ft_logging_deinit):
-	Fix it.
-
-2020-12-02  Werner Lemberg  <[email protected]>
-
-	* submodules/dlg: Updated to commit 9f0c8b22.
-
-2020-12-02  Werner Lemberg  <[email protected]>
-
-	* src/bdf/bdflib.c: Fix `-Wformat` warning.
-
-2020-12-02  Werner Lemberg  <[email protected]>
-
-	Improve setup for 'dlg' library.
-
-	* autogen.sh (copy_submodule_file), builds/toplevel.mk: Redirect
-	stderr to `/dev/null`.
-
-	* builds/toplevel.mk: Move code block to handle 'dlg' stuff into
-	`check_platform` conditional.
-	Also fix wildcard expressions for guarding `git submodule` commands.
-	Also make file copying work with non-Unix platforms (untested).
-
-2020-12-01  Werner Lemberg  <[email protected]>
-
-	[build] Use gcc (and clang) in C99 mode.
-
-	Other compilers are unchanged.
-
-	* builds/compiler/gcc-dev.mk, builds/compiler/gcc.mk (ANSIFLAGS):
-	s/-ansi/-std=c99/.
-
-	* builds/freetype.mk (FT_CFLAGS): Remove `-std=c99`.
-
-	* builds/unix/configure.raw: Handle C99.
-	Remove no longer needed test for gcc 4.6 and earlier.
-
-2020-12-01  Werner Lemberg  <[email protected]>
-
-	[dlg] Fix compiler warnings.
-
-	* src/dlg/dlgwrap.c: Duplicate some feature test macros from
-	`dlg.c`, which must come first before loading standard headers.  For
-	example, `freetype.h` loads `stdio.h` if compiled in debug mode.
-
-2020-12-01  Werner Lemberg  <[email protected]>
-
-	* src/type42/t42parse.c: Fix `-Wformat` warnings.
-
-2020-12-01  Priyesh Kumar  <[email protected]>
-
-	[builds/unix] Check for 'pthread' library.
-
-	* builds/unix/ax_pthread.m4: New file, taken from 'autoconf-archive'
-	git repository.
-
-	* builds/unix/configure.raw: Check for 'pthread'; also check whether
-	it works.
-
-2020-12-01  Werner Lemberg  <[email protected]>
-
-	[base] Implement vertical alignment of log printing.
-
-	Based on a patch by Priyesh.
-
-	* include/freetype/internal/fttrace.h (FT_MAX_TRACE_LEVEL_LENGTH):
-	New macro.
-
-	* src/base/ftdebug.c, builds/windows/ftdebug.c (ft_log_handler):
-	Print logs after a fixed width to handle different lengths of
-	`FT_COMPONENT` entries.
-	Use `ft_strrchr` to check for final newline character.
-
-2020-11-30  Priyesh Kumar  <[email protected]>
-
-	Update logging related documentation.
-
-	* docs/DEBUG: Updates related to `FT_LOGGING`.
-
-	* README.git: Updates related to logging.
-
-2020-11-30  Priyesh Kumar  <[email protected]>
-
-	* src/*: Fix `-Wformat` warnings.
-
-2020-11-30  Priyesh Kumar  <[email protected]>
-
-	[builds/windows] Changes to build 'dlg' with FreeType on Windows.
-
-	We only support Visual C++ 2010 and newer.
-
-	* builds/windows/vc2010/script.bat: New windows batch file to copy
-	necessary 'dlg' files from `submodules/dlg` to `src/dlg`.  This file
-	is used as a pre-built event in Visual C++.
-
-	* builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c`.
-
-	* builds/windows/vc2010/freetype.vcxproj.filters: Add
-	`src/dlgwrap.c`.
-
-	* builds/windows/vc2010/freetype.vcxproj
-	(AdditionalIncludeDirectories): Add include files of dlg for 'Debug'
-	and 'Debug Static' configurations on both 'x64' and 'win32'
-	platforms.
-	(PreprocessorDefinitions): Add `FT_LOGGING` for 'Debug' and 'Debug
-	Static' configurations on both 'x64' and 'win32' platforms.
-	Add `DLG_STATIC' for 'Debug' configuration on 'x64' and 'win32'
-	platforms.
-	(DisableLanguageExtensions): We need to disable the `/Za` option
-	when building 'dlg' with FreeType as 'dlg' strictly follows the C99
-	standard.  Visual C++ produces behaves unexpectedly when
-	compiling a C99 file with `/Za` option enabled.
-
-2020-11-30  Priyesh Kumar  <[email protected]>
-
-	[base] Add public API to change log handling function.
-
-	* include/freetype/ftlogging.h (FT_Custom_Log_Handler): New function
-	typedef to store the custom callback logging function.
-	(FT_Set_Log_Handler, FT_Set_Default_Log_Handler): New functions to
-	set and reset custom log handler.
-
-	* include/freetype/internal/ftdebug.h (custom_output_handler): New
-	variable to support a custom callback logging function.
-	(FT_Logging_Callback): A new function typedef to print log using
-	custom callback logging function, which is set using
-	`FT_Set_Log_Handler`.
-	(FT_Log): Use it.
-
-	* src/base/ftdebug.c (FT_Set_Log_Handler,
-	FT_Set_Default_Log_Handler, FT_Logging_Callback): Add function
-	definitions.
-
-2020-11-28  Priyesh Kumar  <[email protected]>
-
-	[base] Add public API to change the levels of tracing components.
-
-	* include/freetype/ftlogging.h: New header file.
-
-	* include/freetype/internal/ftdebug.h [FT_LOGGING]: Include
-	`ftlogging.h`.
-
-	* src/base/ftdebug.c (ft_custom_trace_level): New variable.
-	(ft_debug_init): Update to support change of levels of tracing
-	components of FreeType at run-time.
-	(FT_Trace_Set_Level): New function to change the levels of tracing
-	components at run-time.
-	(FT_Trace_Set_Default_Level): New function to reset the levels of
-	tracing components back to default.
-
-2020-11-28  Priyesh Kumar  <[email protected]>
-
-	[base] Updates to print timestamp and name of `FT_COMPONENT` in logs.
-
-	* include/freetype/internal/ftdebug.h (FT_LOGGING_TAG,
-	FT_LOGGING_TAG_): New macros to resolve the value of `FT_COMPONENT'
-	into a string.
-	(ft_add_tag, ft_remove_tag): New functions to add and remove dlg tags.
-
-	* src/base/ftdebug.c: Add new variables to control the logging of
-	timestamp and name of `FT_COMPONENT` along with actual logs.
-	(ft_add_tag, ft_remove_tag): Add function definitions.
-	(ft_log_handler): Updates to print timestamp and name of
-	`FT_COMPONENT`.
-	(ft_debug_init) [FT_LOGGING]: Users can now control the logging of
-	timestamp and name of `FT_COMPONENT` by adding tags in the
-	`FT2_DEBUG` environment variable.
-
-2020-11-27  Priyesh Kumar  <[email protected]>
-
-	[base] Add functions and variables to print logs to a file.
-
-	* include/freetype/internal/ftdebug.h: Added dlg's header files.
-	(FT_LOG): New macro to redirect trace logs to dlg's API's whenever
-	`FT_LOGGING' is defined.
-	(ft_logging_init, ft_logging_deinit): New functions to handle
-	initialization and uninitialization of logging related variables.
-	(ft_log_handler): New function to handle logs of FreeType.
-
-	* src/base/ftdebug.c: Add necessary logging related variables.
-	(ft_logging_init, ft_logging_deinit, ft_log_handler): Add function
-	definitions.
-
-	* src/base/ftinit.c (FT_Init_FreeType) [FT_LOGGING]: Call
-	`ft_logging_init`.
-	(FT_Done_FreeType) [FT_LOGGING]: Call `ft_logging_deinit`.
-
-	* src/base/ftobjs.c (FT_New_Library): Call `ft_debug_init` only if
-	`FT_LOGGING` is not defined.
-
-2020-11-27  Priyesh Kumar  <[email protected]>
-
-	[builds] Necessary changes to make 'dlg' compile.
-
-	* autogen.sh (copy_submodule_files): New script to copy all the
-	necessary source and include files from `submodules/dlg` to
-	`src/dlg`.
-
-	* src/dlg/dlgwrap.c: New wrapper file for `src/dlg.c`.  It enables
-	the build of 'dlg' if the `FT_LOGGING` macro is defined.
-
-	* src/dlg/rules.mk: New sub-Makefile.
-
-	* builds/freetype.mk (DLG_DIR): New variable to include the
-	header files of the 'dlg' library.
-	(INCLUDES): Add `DLG_DIR`.
-	(FT_CFLAGS): Add `-std=c99' flag.
-	Include `src/dlg/rules.mk` file to build 'dlg' library.
-	(OBJ_S, OBJ_M): Add `DLG_OBJS_M` and `DLG_OBJS_S`.
-
-	* builds/toplevel.mk: For builds directly from the git repository
-	we need to copy files from `submodule/dlg` to `src/dlg`.
-
-	* include/freetype/config/ftoption.h, devel/ftoption.h (FT_LOGGING):
-	New macro to enable or disable the logging facility in FreeType.
-
-2020-11-27  Priyesh Kumar  <[email protected]>
-
-	* .gitmodules: Add 'dlg' library's git repository as submodule.
-
-2020-12-01  Werner Lemberg  <[email protected]>
-
-	* src/tools/chktrcmp.py (trace_use_pat): Update to current use.
-
-2020-11-20  Alexei Podtelezhnikov  <[email protected]>
-
-	[cff,cid,type1] Demote old engine for lack of CFF2.
-
-	* src/cff/cffobjs.c (cff_driver_init): Always default to Adobe engine.
-	* src/cid/cidobjs.c (cid_driver_init): Ditto.
-	* src/type1/t1objs.c (T1_Driver_Init): Ditto.
-
-2020-11-09  Werner Lemberg  <[email protected]>
-
-	* src/type42/t42parse.c (t42_parse_sfnts): More tracing messages.
-
-2020-11-04  Werner Lemberg  <[email protected]>
-
-	* meson.build: Fix .pc file generation.
-
-	For backwards compatibility we need the libtool version, not the .so
-	number.
-
-	Reported by Nikolaus.
-
-2020-10-28  Werner Lemberg  <[email protected]>
-
-	[truetype] Minor update to forthcoming OpenType 1.8.4 standard.
-
-	* src/truetype/ttgxvar.c (ft_var_load_item_variation_store): Limit
-	size of `regionCount`.
-
-2020-10-26  Werner Lemberg  <[email protected]>
-
-	* meson.build: Fix 'harfbuzz' and 'brotli' build options (#59347).
-
-	Without this patch, 'harfbuzz' and 'brotli' are always required.
-
-	Patch submitted anonymously in Savannah bug report.
-
-2020-10-23  Ben Wagner  <[email protected]>
-
-	* src/sfnt/pngshim.c (Load_SBit_Png): Fix memory leak (#59322).
-
-	The issue is that `rows` is allocated but will not be freed in the
-	event that the call to `png_read_image` fails and calls `longjmp`.
-
-2020-10-20  Werner Lemberg  <[email protected]>
-
-	* Version 2.10.4 released.
-	==========================
-
-
-	Tag sources with `VER-2-10-4'.
-
-	* docs/VERSION.TXT: Add entry for version 2.10.4.
-	* docs/CHANGES: Updated.
-
-	* README, src/base/ftver.rc, builds/windows/vc2010/index.html,
-	builds/windows/visualc/index.html,
-	builds/windows/visualce/index.html,
-	builds/wince/vc2005-ce/index.html,
-	builds/wince/vc2008-ce/index.html, docs/freetype-config.1:
-	s/2.10.3/2.10.4/, s/2103/2104/.
-
-	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
-
-	* builds/unix/configure.raw (version_info): Set to 23:4:17.
-	* CMakeLists.txt (VERSION_PATCH): Set to 4.
-
-2020-10-19  Werner Lemberg  <[email protected]>
-
-	[sfnt] Fix heap buffer overflow (#59308).
-
-	This is CVE-2020-15999.
-
-	* src/sfnt/pngshim.c (Load_SBit_Png): Test bitmap size earlier.
-
-2020-10-17  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/sfnt/tt{colr,cpal}.c: Fix signedness warnings from VC++.
-
-2020-10-17  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/sfnt/sfwoff2.c (Read255UShort): Tweak types to please VC++.
-
-2020-10-10  Werner Lemberg  <[email protected]>
-
-	* Version 2.10.3 released.
-	==========================
-
-
-	Tag sources with `VER-2-10-3'.
-
-	* docs/VERSION.TXT: Add entry for version 2.10.3.
-
-	* README, src/base/ftver.rc, builds/windows/vc2010/index.html,
-	builds/windows/visualc/index.html,
-	builds/windows/visualce/index.html,
-	builds/wince/vc2005-ce/index.html,
-	builds/wince/vc2008-ce/index.html, docs/freetype-config.1:
-	s/2.10.2/2.10.3/, s/2102/2103/.
-
-	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
-
-	* builds/unix/configure.raw (version_info): Set to 23:3:17.
-	* CMakeLists.txt (VERSION_PATCH): Set to 3.
-
-2020-09-25  Werner Lemberg  <[email protected]>
-
-	[autofit] Synchronize with ttfautohint.
-
-	This corresponds to the following commits in the ttfautohint git
-	repository:
-
-	  bb6842bd3bd437b7b4a7921b0376c860f5e73d18  Typo, formatting.
-	  d5c91ddb1cb310257a3dfe9a8e20e1fc51335faa  Add Medefaidrin script.
-
-	* src/autofit/afblue.dat: Add blue zone data for Medefaidrin.
-	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
-
-	* src/autofit/afscript.h: Add Medefaidrin standard characters.
-
-	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Medefaidrin
-	data.
-
-2020-09-25  Werner Lemberg  <[email protected]>
-
-	Move `scripts/make_distribution_archives.py` to `src/tools`.
-
-	* scr/tools/scripts/make_distribution_archives.py: (_TOP_DIR,
-	_SCRIPT_DIR): Updated to new location.
-	(main): s/shutils.copyfile/shutils.copy/ to preserve file
-	permissions.
-	(main): Prefix source file paths with `git_dir` while copying files
-	to allow calls of the script from other places than the top-level
-	directory.
-
-2020-09-24  Werner Lemberg  <[email protected]>
-
-	* src/cff/cffgload.c (cff_slot_load): Scale `vertBearingY`.
-
-	Towards the end of the the function there is a call to
-	`FT_Outline_Get_CBox` that retrieves the glyph bbox in scaled units.
-	That sets `horiBearing{X,Y}` and `vertBearingX` but `vertBearingY`
-	is left alone, and is not scaled.
-
-	Patch from Eric Muller <[email protected]>.
-
-2020-09-24  Werner Lemberg  <[email protected]>
-
-	* src/base/ftobjs.c (FT_Load_Glyph): Trace glyph metrics.
-
-2020-09-22  Werner Lemberg  <[email protected]>
-
-	[meson] Move auxiliary scripts to `builds/meson`.
-
-	Suggested by Alexei.
-
-	* scripts/*.py: Move meson scripts to...
-	* builds/meson/*.py: ... this new location.
-
-	* meson.build: Updated.
-
-2020-09-21  David Turner  <[email protected]>
-
-	Add python script for building tarballs.
-
-	* scripts/make_distribution_archives.py: New file.
-
-	This standalone Python script should be equivalent to running `make
-	dist` with the Make-based build system, with the following minor
-	differences:
-
-	- Since `make distclean` doesn't always clean up `objs/` properly,
-	  `make dist` archives may contain some stale binaries like
-	  `objs/.libs/libfreetype.so.6` or others.
-
-	- `config.guess` and `config.sub` are not updated unless option
-	  `--gnu-config-dir=DIR` is used to specify the location of these
-	  files.
-
-	- Some bits of the auto-generated reference documentation may
-	  appear in slightly different order, probably due to issues related
-	  to mkdocs and docwriter.
-
-	As an example, the call
-
-	  scripts/make_distribution_archives.py /tmp/freetype2-dist
-
-	creates the following files under `/tmp/freetype2-dist`:
-
-	  freetype-<version>.tar.gz
-	  freetype-<version>.tar.xz
-	  ft<winversion>.zip
-
-2020-09-21  Werner Lemberg  <[email protected]>
-
-	* scripts/extract_freetype_version.py: Fix regex typos.
-
-2020-09-21  David Turner  <[email protected]>
-
-	Add Meson build project file.
-
-	Example usage:
-
-	  # Configure Meson build in directory `build-meson` to generate
-	  # release binaries comparable to to the ones from the
-	  # autotools/make build system.
-	  meson setup build-meson \
-	        --prefix=/usr/local \
-	        --buildtype=debugoptimized \
-	        --strip \
-	        -Db_ndebug=true
-
-	  # After configuring the Meson build with the above command,
-	  # compile and install to `/usr/local/`; this includes a pkg-config
-	  # file.
-	  ninja -C build-meson install
-
-	  # Alternatively, compile and install to `/tmp/aa/usr/local/...`
-	  # for packaging.
-	  DESTDIR=/tmp/aa ninja -C build-meson install
-
-	  # Generate documentation under `build-meson/docs`.
-	  ninja -C build-meson docs
-
-	Library size comparison for stripped `libfreetype.so` generated by
-	all three build systems:
-
-	  - Default build (autotools + libtool): 712 KiB
-	  - CMake build (RelWithDebInfo):        712 KiB
-	  - Meson build:                         712 KiB
-
-
-	* meson.build: New top-level Meson build file for the library.
-
-	* meson_options.txt: New file.  It holds user-selectable options for
-	the build, which can be printed with `meson configure`, and selected
-	at `meson setup` or `meson --reconfigure` time with
-	`-D<option>=<value>`.
-
-	* scripts/parse_modules_cfg.py: A script invoked by `meson.build` to
-	parse `modules.cfg` and extract important information out of it
-	(i.e., the list of modules).
-
-	* scripts/process_ftoption_h.py: New script invoked by `meson.build`
-	to process the original `ftoption.h` file.  It enables or disables
-	configuration macro variables based on the available dependencies.
-	This is similar to what other build systems are using (i.e., Meson's
-	`configure_file()` command is not used here).
-
-	* scripts/extract_freetype_version.py: New script invoked by
-	`meson.build` to extract the FreeType version number from
-	`<freetype/freetype.h>`.
-
-	* scripts/extract_libtool_version.py: New script invoked by
-	`meson.build` to extract the libtool `revision_info` data from
-	`builds/unix/configure.raw`, and to generate the corresponding
-	shared library suffix.
-
-	* scripts/generate_reference_docs.py: New script invoked by
-	`meson.build` to generate the FreeType 2 reference documentation
-	(using the `docwriter` and `mkdocs` packages, which must be already
-	installed).
-
-2020-09-11  Alexei Podtelezhnikov  <[email protected]>
-
-	[raster] Improve the second pass (#58373).
-
-	Besides dropout control the second horizontal sweep is supposed to
-	clean up straight horizontal edges that are mishandled by the first
-	vertical sweep when a line passes through pixel centers.  This line
-	would present as perfectly aligned span edges in the second sweep.
-
-	* src/raster/ftraster.c (Horizontal_Sweep_Span): Replace the old
-	implementation with a better one focusing on aligned span edges only.
-
-2020-09-08  Alexei Podtelezhnikov  <[email protected]>
-
-	[raster] Tune SMART macro (#58352).
-
-	Windows seems to perform smart dropout control at 26.6 precision.
-	To mimick Windows independent of increased precision, we need to tweak
-	the macro so that some close calls break down rather than up.
-
-	* src/raster/ftraster.c (SMART): Tweak the macro.
-
-2020-09-08  Alexei Podtelezhnikov  <[email protected]>
-
-	[raster] Introduce SMART macro.
-
-	* src/raster/ftraster.c (SMART): New macro for smart dropout rounding.
-	(Verstical_Sweep_Drop, Horizontal_Sweep_Drop): Use it.
-
-2020-09-03  Boris Dalstein  <[email protected]>
-
-	[build] Make CMake install basic version information.
-
-	* CMakeLists.txt: Do it.
-
-2020-09-02  Alexei Podtelezhnikov  <[email protected]>
-
-	[truetype] Reduce Infinality footprint (cont'd).
-
-	* src/truetype/ttinterp.c (Ins_DELTAP): Shrink variable scope.
-	(Ins_SHPIX, Ins_MIRP): Revise if-logic.
-
-2020-09-02  Alexei Podtelezhnikov  <[email protected]>
-
-	[truetype] Reduce Infinality footprint.
-
-	* src/truetype/ttinterp.c (Ins_SHPIX, Ins_MSIRP, Ins_MIAP, Ins_MDRP,
-	Ins_MIRP): Shrink variable scopes and consolidate ifdefs.
-
-2020-09-01  Alexei Podtelezhnikov  <[email protected]>
-
-	[truetype] Refactor compensation color.
-
-	* src/truetype/ttinterp.h (TT_Round_Func): Change the last argument.
-	* src/truetype/ttinterp.c (Ins_ROUND, Ins_NROUND, Ins_MDAP, Ins_MIAP,
-	Ins_MDRP, Ins_MIRP): Move compensation retrieval from here...
-	(Round_*): ... to here.
-	* src/truetype/ttobjs.c (tt_size_init_bytecode): Reserve zero
-	compensation at color index 3.
-
-2020-08-28  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Don't set target in direct mode.
-
-	* src/smooth/ftsmooth.c (ft_smooth_raster_overlap): Remove assignment.
-	(ft_smooth_raster_lcd) [!FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Ditto.
-
-2020-08-25  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/smooth/ftsmooth.c (ft_smooth_raster_overlap): Limit width.
-
-	Segmentation fault reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24729
-
-2020-08-22  Werner Lemberg  <[email protected]>
-
-	* src/truetype/ttgload.c (TT_Get_VMetrics): Add tracing message.
-
-2020-08-05  Alexei Podtelezhnikov  <[email protected]>
-
-	[truetype] Retain OVERLAP_SIMPLE and OVERLAP_COMPOUND.
-
-	For glyphs with OVERLAP_SIMPLE or OVERLAP_COMPOUND, set
-	FT_OUTLINE_OVERLAP to render them with direct oversampling, which
-	mitigates artifacts (see 3bb512bc9f62).
-
-	* include/freetype/ftimage.h (FT_OUTLINE_OVERLAP): Redefine to rhyme
-	with OVERLAP_SIMPLE.
-	* src/base/ftgloadr.c (FT_GlyphLoader_Rewind): Reset outline flags.
-	* src/truetype/ttgload.c
-	(TT_Load_Simple_Glyph): Retain OVERLAP_SIMPLE.
-	(load_truetype_glyph): Retain OVERLAP_COMPOUND.
-
-2020-08-04  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/truetype/ttgload.c (TT_Load_Glyph): More tracing.
-
-2020-07-28  Alexei Podtelezhnikov  <[email protected]>
-
-	Hide internal functions with SunPro.
-
-	* include/freetype/internal/compiler-macros.h
-	(FT_INTERNAL_FUNCTION_ATTRIBUTE) <__SUNPRO_C>: Define as __hidden.
-
-2020-07-28  Anuj Verma  <[email protected]>
-
-	Fix static compilation with Visual C.
-
-	* include/freetype/internal/compiler-macros.h
-	(FT_INTERNAL_FUNCTION_ATTRIBUTE) <_WIN32>: Define as empty.
-
-2020-07-28  Priyesh Kumar  <[email protected]>
-
-	Fix `-Wformat' compiler warnings.
-
-	* src/*: Fix format specifiers.
-
-	* builds/unix/ftsystem.c (FT_Stream_Open): Ditto.
-
-2020-07-25  Werner Lemberg  <[email protected]>
-
-	Fix `-Wformat' compiler warnings.
-
-	Problem reported by Priyesh kumar <[email protected]>
-
-	* src/base/ftoutln.c (FT_Outline_Decompose): Fix number of arguments
-	to tracing macro.
-
-	* src/bdf/bdfdrivr.c (bdf_cmap_char_next, bdf_get_bdf_property):
-	Ditto.
-
-	* src/cache/ftcbasic.c (ftc_basic_family_get_count): Ditto.
-	Reformulate message.
-
-	* src/pcf/pcfdrivr.c (pcf_get_bdf_property): Ditto.
-
-	* src/sfnt/sfwoff2.c (woff2_open_font): Ditto.
-	Trace table offset, too.
-
-	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Ditto.
-
-2020-07-23  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/sfwoff2.c (woff2_decompress): Fix compiler warning.
-
-	Reported by Hin-Tak.
-
-2020-07-12  Werner Lemberg  <[email protected]>
-
-	* builds/unix/configure.raw: Fix inclusion of `ftoption.h'.
-
-2020-07-07  Werner Lemberg  <[email protected]>
-
-	Fix clang warnings.
-
-	* include/freetype/internal/autohint.h
-	(FT_DECLARE_AUTOHINTER_INTERFACE): New macro.
-	* src/autofit/afmodule.h: Use it to declare
-	`af_autofitter_interface'.
-
-	* include/freetype/internal/ftobjs.h (FT_DECLARE_GLYPH): New macro.
-	* src/base/ftbase.h: Use it to declare `ft_bitmap_glyph_class' and
-	`ft_outline_glyph_class'.
-
-	* src/base/ftglyph.c: Include `ftbase.h'.
-
-	* src/cff/cffparse.c (cff_parser_run): Fix type of `t2_size'.
-
-	* src/pcf/pcfdrivr.c (pcf_cmap_char_next): Fix type of `result'.
-
-	* src/psaux/psauxmod.c (psaux_module_class): Use `FT_DEFINE_MODULE'.
-	* src/psaux/psauxmod.h: Declare `afm_parser_funcs',
-	`t1_cmap_classes', `cff_decoder_funcs', and `psaux_module_class'.
-
-	* src/pshinter/pshmod.c: Include `pshmod.h'.
-
-	* src/sfnt/sfwoff2.c (ROUND4, WRITE_SHORT): Fix implicit sign
-	conversion.
-	(compute_ULong_sum): Fix return type.
-	Fix implicit sign conversion.
-	(store_points): Fix type of `last_flag', `repeat_count', and `flag'.
-	Use casts to avoid warnings.
-	(reconstruct_glyf): Fix implicit sign conversion.
-	Use cast to avoid warning.
-	(get_x_mins): Fix implicit sign conversion.
-	* src/sfnt/ttcmap.c: Undef `TTCMAPCITEM'.
-	* src/sfnt/ttcmap.h: Define `TTCMAPCITEM' and include `ttcmapc.h' to
-	declare cmap classes.
-
-	* src/smooth/ftsmooth.c (ft_smooth_overlap_spans): Use cast.
-
-	* src/truetype/ttinterp.c (Ins_MIAP): Fix typo.
-
-2020-07-07  David Turner  <[email protected]>
-
-	[build] Really fix multi and C++ builds.
-
-	The following builds were still failing due to previous changes:
-
-	  make multi
-	  make multi CC="c++"
-	  make CC="c++"
-
-	This patch fixes the issues, which were missing includes to get the
-	right macro definitions in multi-build mode.
-
-	Also, `FT_UNUSED' is actually used by third-party code, so move it
-	back to `public-macros.h' to avoid breaking it.
-
-	* include/freetype/config/public-macros.h (FT_EXPORT): Remove
-	special definition for C++.
-	(FT_UNUSED): Define here instead of...
-	* include/freetype/config/compiler-macros.h: ... here.
-	(FT_FUNCTION_DECLARATION): Remove special definition for C++.
-	(FT_LOCAL_ARRAY_DEF): Fix definition.
-
-	* src/cache/ftccback.h, src/lzw/ftzopen.h, src/gxvalid/gxvmort.h,
-	src/gxvalid/gxvmorx.h: Add `FT_BEGIN_HEADER' and `FT_END_HEADER'.
-
-2020-07-06  David Turner  <[email protected]>
-
-	[build] Fix multi and C++ builds.
-
-	The following builds were failing due to previous changes:
-
-	  make multi
-	  make multi CC="c++"
-
-	* include/freetype/config/ftconfig.h: Remove `FT_END_HEADER'.
-
-	* include/freetype/config/ftheader.h (FT_BEGIN_HEADER,
-	FT_END_HEADER): Protect against redefinition.
-
-	* src/cache/ftccache.h, src/cache/ftcmru.h, src/pcf/pcfutil.h,
-	src/psaux/pserror.h, src/psaux/psft.h, src/psaux/psstack.h,
-	src/sfnt/woff2tags.h: Include `compiler-macros.h'.
-
-	* src/sfnt/woff2tags.c: Include `woff2tags.h'.
-
-2020-07-06  Werner Lemberg  <[email protected]>
-
-	[psaux] Improve `t1_decoder_parse_metrics' (#58646).
-
-	* src/psaux/t1decode.c (t1_decoder_parse_metrics): Copy
-	corresponding code from old engine's `t1_decoder_parse_charstrings'
-	function to handle `op_callsubr' and `op_return'.
-
-2020-07-05  David Turner  <[email protected]>
-
-	[build] Improve visibility support of library function names.
-
-	* include/freetype/config/public-macros.h
-	(FT_PUBLIC_FUNCTION_ATTRIBUTE): New macro to tag functions as
-	public (and thus exportable).
-	(FT_EXPORT): Use it.
-
-	* include/freetype/config/compiler-macros.h
-	(FT_INTERNAL_FUNCTION_ATTRIBUTE): New macro to tag functions as
-	internal to the library (and thus hidden).  Note that on ELF
-	systems, all internal functions have hidden visibility, which avoids
-	the need to enforce this when invoking the compiler (e.g., with an
-	option like `-fvisibility=hidden').
-
-	(FT_FUNCTION_DECLARATION, FT_FUNCTION_DEFINITION): New base macros
-	to deal with C and C++ linkage issues at the same time.
-
-	(FT_LOCAL, FT_LOCAL_DEF, FT_LOCAL_ARRAY, FT_LOCAL_ARRAY_DEF,
-	FT_BASE, FT_BASE_DEF, FT_EXPORT_VAR, FT_BASE_CALLBACK,
-	FT_BASE_CALLBACK_DEF): Redefined using new macros.
-
-2020-07-05  David Turner  <[email protected]>
-
-	[build] Split off more stuff from `ftconfig.h'.
-
-	* builds/unix/ftconfig.h.in, builds/vms/ftconfig.h,
-	include/freetype/config/ftconfig.h: Split off macro definitions
-	required by the FreeType API headers to...
-	* include/freetype/config/public-macros.h: ...this new file.
-
-	* builds/unix/ftconfig.h.in, builds/vms/ftconfig.h,
-	include/freetype/config/ftconfig.h: Split off macro definitions used
-	by the library but not to be exposed to clients to...
-	* include/freetype/config/compiler-macros.h: ...this new file.
-
-	* include/freetype/internal/*.h, src/raster/ftraster.h: Include
-	`compiler-macros.h' where needed.
-
-2020-07-05  David Turner  <[email protected]>
-
-	[build] Move mac support code to `mac-support.h'.
-
-	* builds/unix/ftconfig.h.in, builds/vms/ftconfig.h,
-	include/freetype/config/ftconfig.h: Split off mac-specific stuff
-	to...
-	* include/freetype/config/mac-support.h: ...this new file.
-
-	* CMakeLists.txt, builds/unix/configure.raw: Remove `/undef ->
-	#undef' string replacement; the affected code is no longer part of
-	the `ftconfig.h' template.
-
-2020-07-05  David Turner  <[email protected]>
-
-	[build] Put integer type definitions into `integer-types.h'.
-
-	Refactor some of the `ftconfig.h' headers and template to move the
-	definition of the FreeType integer types (e.g., `FT_Int16') to a
-	common header file `freetype/config/integer-types.h'.
-
-	* builds/unix/ftconfig.h.in, builds/vms/ftconfig.h,
-	include/freetype/config/ftconfig.h: Split off integer type
-	definition stuff to...
-	* include/freetype/config/integer-types.h: ...this new file.
-
-	* builds/unix/ftconfig.h.in: Control the definition of
-	`FT_SIZEOF_INT' and `FT_SIZEOF_LONG' with macro
-	`FT_USE_AUTOCONF_SIZEOF_TYPES'.  If these are not defined, auto
-	detection happens in `integer-types.h' as usual based on `INTXX_MAX'
-	values.  Otherwise the autoconf-detected values are used.
-
-	* builds/unix/configure.raw (CPPFLAGS): Don't include path to
-	`config' directory.  Instead, ...
-	(FT_CONFIG_STANDARD_LIBRARY_H): Use complete path.
-
-2020-07-05  David Turner  <[email protected]>
-
-	[build] Rename `build/unix/ftconfig.in' to `ftconfig.h.in'.
-
-	Since we are no longer limited to 8.3 file names, it is simpler to
-	follow the usual conventions for template files.
-
-	* builds/unix/ftconfig.in: Renamed to...
-	* builds/unix/ftconfig.h.in: ...this.
-
-	* CMakeLists.txt, builds/unix/configure.raw: Updated.
-
-2020-07-03  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Introduce direct oversampling for overlaps.
-
-	This implements oversampling to mitigate artifacts in pixels partially
-	covered by overlapping contours.  It turns out that the 4x4
-	oversampling is sufficient but, at least, quadruples the rendering
-	time.  The outline has to set FT_OUTLINE_OVERLAP to use this method.
-
-	* include/freetype/ftimage.h (FT_OUTLINE_OVERLAP): New flag.
-	* src/smooth/ftsmooth.c (ft_smooth_render): Check it to...
-	(ft_smooth_raster_overlap): ... inflate outline and set up direct
-	rendering for oversampling with...
-	(ft_smooth_overlap_spans): ... new span function that integrates them.
-
-2020-07-03  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Use direct rendering mode in Harmony.
-
-	Instead of rendering 3 bitmaps side by side and reshuffling, we use
-	direct rendering to deliver the bitmaps on each third byte.
-
-	* src/smooth/ftsmooth.c (ft_smooth_raster_lcd)
-	[!FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Set up direct mode with...
-	(ft_smooth_lcd_spans): ... new span function.
-
-2020-07-03  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Separate LCD paths from gray rendering.
-
-	This makes `ft_smooth_render' a lot smaller and easier to follow. It
-	also cleanly separates Harmony and ClearType-style LCD rendering
-	algorithms. Now I only wish to move LCD filtering and geometry from
-	FT_Library to FT_Renderer.
-
-	* src/smooth/ftsmooth.c (ft_smooth_render): Move LCD code from here...
-	(ft_smooth_raster_lcd, ft_smooth_raster_lcdv): ... to here.
-	[FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Reorganize #ifdef's.
-
-2020-06-20  Sebastian Rasmussen  <[email protected]>
-
-	[cff] Fix handling of `style_name == NULL' (#58630).
-
-	* src/cff/cffobjs.c (cff_face_init): If a call to `cff_strcpy' fails
-	by returning NULL in `cff_face_init', `remove_style' is still
-	called.  This means that the NULL pointer is dereferenced, causing a
-	crash.
-
-2020-06-19  Sebastian Rasmussen  <[email protected]>
-
-	[cff] Fix another two memory leaks (#58629).
-
-	* src/cff/cffobjs.c (cff_size_init): If a call to `funcs->create'
-	fails to allocate one of the `internal->subfont' variables, make
-	sure to free `internal->topfont' and any successfully allocated
-	subfonts.
-
-2020-06-19  Sebastian Rasmussen  <[email protected]>
-
-	[psaux] Fix memory leak (#58626).
-
-	* src/psaux/psstack.c (cf2_stack_init): If `cf2_stack_init' fails to
-	allocate the stack, return error early.
-
-2020-06-19  Sebastian Rasmussen  <[email protected]>
-
-	[base] Fix memory leak (#58624).
-
-	* src/base/ftobjs.c (FT_New_Size): Avoid trying to free
-	`size->internal' unless `size' has been allocated.  This mistake
-	appeared in the fix for issue #58611.
-
-2020-06-19  Alexei Podtelezhnikov  <[email protected]>
-
-	[base] Rework d1180b5f9598 until further notice.
-
-	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Reject large
-	outlines.
-
-2020-06-19  Sebastian Rasmussen  <[email protected]>
-
-	[cff, cid] Fix segfaults in case of error (#58621).
-
-	* src/cff/cffobjs.c (cff_slot_done), src/cid/cidobjs.c
-	(cid_slot_done): If `ft_glyphslot_init' fails to allocate
-	`internal', then the class' `done_slot' callback (called by
-	`ft_glyphslot_done') must not dereference the pointer to `internal'.
-
-2020-06-19  Werner Lemberg  <[email protected]>
-
-	[base] Fix UBSAN error.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=23166
-
-	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Avoid values
-	larger than 32 bits.
-
-2020-06-19  Werner Lemberg  <[email protected]>
-
-	[woff2] Fix segfault.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=23402
-
-	* src/sfnt/sfwoff2.c (get_x_mins): Check whether `loca' table
-	exists.
-
-2020-06-19  Stephen McDowell  <[email protected]>
-
-	[sfnt] Support Intel compilers.
-
-	* src/sfnt/pngshim.c (premultiply_data): Intel compilers do not
-	currently support `__builtin_shuffle'.
-
-2020-06-19  Sebastian Rasmussen  <[email protected]>
-
-	[base] Fix memory leak (#58611).
-
-	* src/base/ftobjs.c (FT_New_Size): When the call to `clazz->init_size'
-	fails, make sure to free `size->internal'.
-
-2020-06-19  Sebastian Rasmussen  <[email protected]>
-
-	[cff] Fix memory leak (#58610).
-
-	* src/cff/cffobjs.c (cff_size_init): When the call to
-	`funcs->create' fails, make sure to free `internal'.
-
-2020-06-19  Werner Lemberg  <[email protected]>
-
-	* src/cff/cffload.c (cff_index_get_pointers): Rename `t' to `tbl'.
-
-2020-06-19  Sebastian Rasmussen  <[email protected]>
-
-	[cff] Free table upon error allocating other data (#58609).
-
-	* src/cff/cffload.c (cff_index_get_pointers): When new_bytes fails
-	to allocate, make sure to free the table.  Do the same for both
-	allocations if there is a later error.
-
-2020-06-13  Werner Lemberg  <[email protected]>
-
-	Remove redundant inclusion of `ft2build.h'.
-
-	* */*: Remove `#include <ft2build.h>' where possible.
-
-	* include/freetype/freetype.h: Remove cpp error about missing
-	inclusion of `ft2build.h'.
-
-2020-06-08  David Turner  <[email protected]>
-
-	Make macros for header file names optional.
-
-	We no longer have to take care of the 8.3 file name limit; this
-	allows us (a) to introduce longer, meaningful file names, and (b) to
-	avoid macro names in `#include' lines altogether since some
-	compilers (most notably Visual C++) doesn't support this properly.
-
-	*/*: Replace
-
-	   #include FOO_H
-
-	with
-
-	   #include <freetype/foo.h>
-
-	or something similar.  Also update the documentation.
-
-2020-06-02  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Trace number of cmaps.
-
-2020-05-18  David Turner  <[email protected]>
-
-	Remove obsolete HAVE_STDINT_H probing macro.
-
-	This macro was updated by the unix configure script and the
-	`CMakeLists.txt' one, but is never used in the source tree (nor is
-	<stdint.h> included anywhere).
-
-	* CMakeLists.txt, builds/unix/ftconfig.in: Don't handle
-	`HAVE_STDINT_H'.
-
-2020-05-18  David Turner  <[email protected]>
-
-	Remove Jamfile files from the tree.
-
-	These have not been used in a very, very long time, so better remove
-	them.  A corresponding patch will be submitted to the
-	`freetype2-demos' repository.
-
-	* src/Jamfile, src/*/Jamfile, Jamrules: Delete.
-
-2020-05-12  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Turn on LCD filtering during FreeType initialization.
-
-	* src/smooth/ftsmooth.c (ft_smooth_init): Enable LCD filtering.
-
-	* include/freetype/ftlcdfil.h: Document it, remove patent warnings.
-	* include/freetype/freetype.h (FT_Render_Mode): Updated.
-	* include/freetype/config/ftoption.h, devel/ftoption.h
-	[FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Do not mention patents.
-
-2020-05-11  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Stop using dedicated LCD modules and classes.
-
-	The LCD modules were never truly independent. They mostly served as
-	a way to disable patented LCD rendering, which is no longer necessary.
-	The `smooth' module now handles LCD modes as well.
-
-	* src/smooth/ftsmooth.c (ft_smooth_lcd_renderer_class.
-	ft_smooth_lcdv_renderer_class): Deleted.
-	(ft_render_smooth): Reworked from `ft_render_smooth_generic'.
-	* src/smooth/ftsmooth.h: Remove dedicated LCD classes.
-	* src/smooth/module.mk: Remove dedicated LCD modules.
-	* include/freetype/config/ftmodule.h: Ditto.
-	* builds/amiga/include/config/ftmodule.h: Ditto.
-	* include/freetype/ftmodapi.h: Do not mention LCD modules.
-
-2020-05-09  Werner Lemberg  <[email protected]>
-
-	* Version 2.10.2 released.
-	==========================
-
-
-	Tag sources with `VER-2-10-2'.
-
-	* docs/VERSION.TXT: Add entry for version 2.10.2.
-
-	* README, Jamfile (RefDoc), src/base/ftver.rc,
-	builds/windows/vc2010/index.html, builds/windows/visualc/index.html,
-	builds/windows/visualce/index.html,
-	builds/wince/vc2005-ce/index.html,
-	builds/wince/vc2008-ce/index.html, docs/freetype-config.1:
-	s/2.10.1/2.10.2/, s/2101/2102/.
-
-	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
-
-	* builds/unix/configure.raw (version_info): Set to 23:2:17.
-	* CMakeLists.txt (VERSION_PATCH): Set to 2.
-
-	* docs/CHANGES: Updated.
-
-2020-05-08  Jakub Alba  <[email protected]>
-
-	* src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter (#58319).
-
-	The font that exceeds the old limit is Icono Regular, version
-	1.00000.
-
-2020-05-03  Alexei Podtelezhnikov  <[email protected]>
-
-	* builds/freetype.mk: Refactor for readability.
-
-2020-05-02  Alexei Podtelezhnikov  <[email protected]>
-
-	[builds] Clean up Windows CE project files.
-
-	Remove version from filenames that caused a lot of polution in the
-	release process. Use VERSIONINFO resource instead.
-
-	* builds/wince/vc2005-ce/freetype.vcproj,
-	builds/wince/vc2008-ce/freetype.vcproj,
-	builds/windows/visualce/freetype.vcproj,
-	builds/windows/visualce/freetype.dsp: s/2101//g, but add `ftver.rc'.
-	* builds/wince/vc2008-ce/index.html,
-	builds/wince/vc2005-ce/index.html,
-	builds/windows/visualce/index.html: s/2101//g.
-
-2020-05-01  Alexei Podtelezhnikov  <[email protected]>
-
-	* devel/ft2build.h: Override FT_CONFIG_MODULES_H here as well.
-
-2020-05-01  Alexei Podtelezhnikov  <[email protected]>
-
-	[builds/unix] Consolidate marco overrides (for the demos to see them).
-
-	* builds/unix/unix-cc.in (FT_CONFIG_MODULES_H, FT_CONFIG_OPTIONS_H):
-	Override them here...
-	* builds/freetype.mk: ... instead of here.
-
-2020-04-08  Werner Lemberg  <[email protected]>
-
-	Allow setting `CC' in Unix build (#58051).
-
-	* builds/unix/unix-cc.in (CC): Use `override'.  The command line
-	  value of `CC' (if any) is stored already in `CCraw'.
-
-2020-04-04  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Return if single stream operation fails.
-
-	* src/sfnt/sfwoff2.c (get_x_mins): Do it.
-
-	* src/sfnt/woff2tags.c: Remove unused include.
-
-2020-03-22  Nikhil Ramakrishnan  <[email protected]>
-
-	[docs] Fix building docs if `srcdir' != `builddir'.
-
-	`docs/reference/*' was moved one directory up in commit 237fed6.
-
-	* builds/unix/unix-def.in (PIP): Remove variable.
-
-	* configure: Create `docs' directory and copy assets from
-	`docs/markdown'.
-
-	* docs/README: Output directory is `reference'.
-
-2020-03-21  Nikhil Ramakrishnan  <[email protected]>
-
-	[docwriter] Drop support for Python < 3.5.
-
-	Python versions < 3.5 have reached end-of-life and as such, no
-	security or bug fixes will be provided for those versions.  See
-
-	  https://devguide.python.org/#status-of-python-branches
-
-	for more information.
-
-	* Jamfile (RefDoc): Add `site' parameter.
-
-	* builds/detect.mk (std_setup): Update Python version requirement.
-
-	* builds/freetype.mk (refdoc-venv): Use pip as `python -m pip'.
-
-	* builds/unix/ax_compare_version.m4,
-	builds/unix/ax_prog_python_version.m4: Macros to detect Python
-	version.  New files.
-
-	* builds/unix/configure.raw: Check for Python >= 3.5 and remove
-	check for `pip'.
-
-	* docs/CHANGES, docs/INSTALL.GNU, docs/README: Updated.
-
-2020-03-02  Moazin Khatti  <[email protected]>
-
-	[gzip] Support `gzip' encoded header conditionally.
-
-	In order to support `gzip' encoded header the call to
-	`inflateInit2' was modified in commit 6a92b1fadde26477a9179.
-	However, this code breaks with the outdated internal version
-	of zlib.  This is a temporary fix to conditionally support
-	`gzip' encoded header whenever a system installation of zlib
-	is being used.
-
-	Problem report in
-
-	  https://lists.nongnu.org/archive/html/freetype-devel/2020-02/msg00023.html
-
-	* src/gzip/ftgzip.c (FT_Gzip_Uncompress): Change the the call to
-	`inflateInit2' depending on whether the system installation is
-	being used or the internal copy.
-
-2020-02-29  Ben Wagner  <[email protected]>
-
-	[truetype] Fix state of `FT_Face' for buggy `gvar' tables (#57923).
-
-	By resetting the blend as implemented with this commit fonts with
-	invalid `gvar' tables may keep calling into `ft_var_load_gvar' from
-	`tt_set_mm_blend' and failing, but the font was invalid anyway and
-	we want to keep seeing the failure in `tt_set_mm_blend'.
-
-	* src/truetype/ttgxvar.c (ft_var_load_gvar): Calculate length of
-	offset array once.
-	Allocate arrays after `FT_FRAME_ENTER' (extra check before
-	allocating and avoid needing to free array later if error entering
-	frame).
-	Always call `FT_FRAME_EXIT'.
-	Consistently set counts immediately after array initialized.
-	Reset the blend (particularly `blend->glyphoffsets') on failure.
-
-2020-03-01  Nikhil Ramakrishnan  <[email protected]>
-
-	[docs] Update docwriter stylesheet.
-
-	This change is required to support docwriter 1.2.1.
-
-	See
-
-	  https://github.com/freetype/docwriter/issues/36
-
-	for more information.
-
-	* docs/markdown/stylesheets/extra.css:
-	(.md-typeset code) -> (.md-typeset pre>code)
-	(pre) -> (pre>code)
-	(p, .md-typeset p, h4): Remove commented styles.
-	(table.index): Remove unused styles.
-
-2020-02-28  Ben Wagner  <[email protected]>
-
-	[truetype] Add better checks for loading `gvar' table (#57905).
-
-	* src/truetype/ttgxvar.c (ft_var_load_gvar): Delay settings of any
-	`blend->xxxcount' values until the corresponding data has been
-	checked.
-	Also do some sanitizing to avoid a too early exit.
-
-	(TT_Vary_Apply_Glyph_Deltas): Improve tracing message.
-
-2020-02-27  Werner Lemberg  <[email protected]>
-
-	Make `FT_HAS_*' and `FT_IS_*' really return true (#57906).
-
-	* include/freetype/freetype.h (FT_HAS_*, FT_IS_*): Implement it.
-
-2020-02-25  Dominik Röttsches  <[email protected]>
-
-	Fix for CFF space glyph regression (#57541).
-
-	* src/psaux/psft.c (cf2_decoder_parse_substrings): Replace early-out
-	  with FT_OFFSET.
-
-2020-02-22  Werner Lemberg  <[email protected]>
-
-	[woff2] Fix font table access.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20778
-
-	* src/sfnt/sfwoff2.c (get_x_mins): Explicitly check for presence of
-	`head' table, which might not have been processed yet.
-
-2020-02-21  Werner Lemberg  <[email protected]>
-
-	[psaux] Make `t1_decoder_parse_metrics' handle `op_div' (#57519).
-
-	* src/psaux/t1decode.c (t1_decoder_parse_metrics): Copy
-	corresponding code from old engine's `t1_decoder_parse_charstrings'
-	function.
-
-2020-02-19  Nikolaus Waxweiler  <[email protected]>
-
-	[autofit] Add support for Hanifi Rohingya script.
-
-	* src/autofit/afblue.dat: Add blue zone data for Hanifi Rohingya.
-	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
-
-	* src/autofit/afscript.h: Add Hanifi Rohingya standard character.
-
-	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Hanifi
-	  Rohingya data.
-
-2020-02-19  Werner Lemberg  <[email protected]>
-
-	Require HarfBuzz 1.8.
-
-	* builds/unix/configure.raw, CMakeLists.txt: Request HarfBuzz 1.8.0
-	or newer.
-
-	We are going to add auto-hinter support for Hanifi Rohingya, which
-	was introduced in Unicode 11.0.
-
-2020-02-12  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Ignore version (#57708).
-
-2020-02-04  Werner Lemberg  <[email protected]>
-
-	* src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter (#57732).
-
-	The font that exceeds the old limit is Constantine, version 1.001.
-
-2020-01-04  Werner Lemberg  <[email protected]>
-
-	[base] Fix `FREETYPE_PROPERTIES=type1:hinting-engine=adobe`.
-
-	* src/base/ftpsprop.c (ps_property_set) [hinting-engine]: Avoid an
-	incorrect return value that caused a warning.  The function did the
-	right thing, though.
-
-2020-01-03  Werner Lemberg  <[email protected]>
-
-	[woff2] Fix memory leaks and a runtime warning.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19773
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18101
-
-	* src/sfnt/sfwoff2.c (compute_ULong_sum): Add missing cast.
-	(reconstruct_hmtx): Add missing deallocation calls.
-
-2020-01-02  Dominik Röttsches  <[email protected]>
-
-	[truetype] Fix UBSan warning on offset to nullptr (#57501).
-
-	* src/truetype/ttinterp.c (Ins_CALL): Fail if `exc->FDefs' is null.
-
-2019-12-31  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Allow bitmap-only fonts (#57394).
-
-	* src/sfnt/sfwoff2.c (reconstruct_font): Fix test for `glyf' and
-	`loca' tables.
-
-2019-12-21  Hugh McMaster  <[email protected]>
-
-	[docs] (2/2) Fix generation of API documentation (#56745).
-
-	Creating the API Reference in the (new) `reference' sub-directory is
-	consistent with other documentation sub-topics, such as `design',
-	`glyphs' and `tutorial'.
-
-	This patch fixes broken hyperlinks in the documentation pointing to
-	and from the API Reference.  It also allows web assets to load from
-	their relative paths.
-
-	* builds/freetype.mk (DOC_DIR): Adjust.
-	(refdoc, refdoc-venv): Add `--site' argument.
-
-	* builds/toplevel.mk (do-dist): Updated.
-
-2019-12-21  Hugh McMaster  <[email protected]>
-
-	[docs] (1/2) Move static web assets (#56745).
-
-	* docs/reference/*: Move ...
-	* docs: ... one directory up.
-
-2019-12-21  Dominik Röttsches  <[email protected]>
-
-	Fix more UBSan warnings on adding offset to nullptr (#57432).
-
-	* src/truetype/ttinterp.c (Ins_LOOPCALL), src/psaux/psft.c
-	(cf2_initLocalRegionBuffer): Use `FT_OFFSET'.
-
-2019-12-16  Werner Lemberg  <[email protected]>
-
-	[truetype] Fix UBSan warnings on adding offsets to nullptr.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/chromium/issues/detail?id=1032152
-
-	* src/truetype/ttinterp.c (Ins_FDEF, Ins_IDEF): Use `FT_OFFSET'.
-
-2019-12-14  Werner Lemberg  <[email protected]>
-
-	[truetype] Fix integer overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19305
-
-	* src/truetype/ttinterp.c (Ins_MIRP): Use `ADD_LONG'.
-
-2019-12-13  Werner Lemberg  <[email protected]>
-
-	Another bunch of UBSan warnings on adding offsets to nullptr.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19427
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19433
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19441
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19451
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19452
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19457
-
-	* src/autofit/aflatin.c (af_latin_hints_compute_segments,
-	af_latin_hints_compute_edges): Use `FT_OFFSET'.
-
-	* src/base/ftstream.c (FT_Stream_EnterFrame): Use `FT_OFFSET'.
-
-	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings): Exit early
-	if there is no charstring.
-
-	* src/psaux/psobjs.c (t1_decrypt): Use `FT_OFFSET'.
-
-	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Exit early for
-	zero bitmap dimensions.
-
-2019-12-09  Dominik Röttsches  <[email protected]>
-
-	Fix more UBSan warnings on adding offset to nullptr (#57384).
-
-	* src/smooth/ftsmooth.c (ft_smooth_render_generic),
-	src/psaux/psobjs.c (ps_table_add): Use `FT_OFFSET'.
-
-2019-12-05  Werner Lemberg  <[email protected]>
-
-	* src/truetype/ttinterp.c (TT_RunIns): Use `FT_OFFSET'.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/chromium/issues/detail?id=1030614
-
-2019-12-03  Werner Lemberg  <[email protected]>
-
-	More nullptr offset UBSan warnings (#57331, #57347).
-
-	* src/autofit/afcjk.c (af_cjk_hints_compute_segments),
-	src/psaux/psft.c (cf2_getSeacComponent), src/truetype/ttinterp.c
-	(Ins_UNKNOWN): Use `FT_OFFSET'.
-
-2019-11-29  Dominik Röttsches  <[email protected]>
-
-	Avoid more nullptr offset UBSan warnings (#57316).
-
-	* src/base/ftoutln.c (FT_Outline_Transform): Bail on empty points.
-	* src/cff/cffload.c (cff_subfont_load): Use `FT_OFFSET'.
-	* src/psaux/psft.c (cf2_decoder_parse_substrings): Early out if
-	`charstring_base' or `charstring_len' are null.
-	* src/sfnt/ttload.c (tt_face_load_name): Use `FT_OFFSET'.
-
-2019-11-23  John Stracke  <[email protected]>
-
-	[base] Really fix #57194.
-
-	Apply accidentally missed second part of patch.
-
-	* src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Call
-	`FT_GlyphLoader_CreateExtra'.
-
-2019-11-23  Werner Lemberg  <[email protected]>
-
-	[truetype] Avoid sanitizer warning (#57289).
-
-	* src/truetype/ttpload.c (tt_face_get_device_metrics): Use
-	`FT_OFFSET'.
-
-2019-11-23  Armin Hasitzka  <[email protected]>
-
-	[truetype] Fix integer overflow (#57287).
-
-	* src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'.
-
-2019-11-23  Ben Wagner  <[email protected]>
-
-	[sfnt] Avoid sanitizer warning (#57286).
-
-	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Avoid possible `NULL +
-	offset' computation.
-	Tag `table' as `const'.
-
-2019-11-23  John Stracke  <[email protected]>
-            Werner Lemberg  <[email protected]>
-
-	[base] Fix `NULL + offset' sanitizer warnings (#57194).
-
-	* src/base/ftgloadr.c (FT_GlyphLoader_Adjust_Points,
-	FT_GlyphLoader_Adjust_Subglyphs): Use `FT_OFFSET'.
-	(FT_GlyphLoader_CreateExtra): Add short cut if some values are zero.
-
-2019-11-23  Werner Lemberg  <[email protected]>
-
-	* include/freetype/internal/ftmemory.h (FT_OFFSET): New macro.
-
-	Use this for `base + offset' pointer calculations where `base' can
-	be NULL (triggering a sanitizer warning even if the resulting
-	pointer gets never dereferenced since it is undefined behaviour
-	in C).
-
-	Suggested by Ben Wagner.
-
-2019-11-23  Ben Wagner  <[email protected]>
-
-	[sfnt] Ensure OTTO fonts have tables (#57285).
-
-	* src/sfnt/ttload.c (tt_face_load_font_dir): Add test.
-
-2019-11-23  Behdad Esfahbod  <[email protected]>
-
-	Minor fixes for recent compilers.
-
-	* src/gzip/infutil.h (inflate_mask): Add `const'.
-
-	* src/autofit/aflatin2.c: Include `ft2build.h'.
-
-2019-11-07  Nikolaus Waxweiler  <[email protected]>
-
-	* CMakeLists.txt: Minor additions to the notes, compile
-	  builds/unix/ftsystem.c instead of src/base/ftsystem.c on UNIX.
-
-	The latter change is based on the code proposed by rim in #55235.
-
-2019-10-25  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/sfwoff2.c (woff2_open_font): Check `num_fonts' for TTCs.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18494
-
-2019-10-22  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/sfwoff2.c (woff2_open_font): Avoid undefined shift.
-
-	Also improve tracing.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18390
-
-2019-10-10  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/sfnt/pngshim.c (premultiply_data): Optimize for __SSE__ only.
-
-2019-10-10  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/sfwoff2.c (reconstruct_glyf): Check `triplet_size'.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18108
-
-2019-10-09  John Tytgat  <[email protected]>
-
-	[cff] Fix FT_FACE_FLAG_GLYPH_NAMES for CFF2 based fonts (#57023).
-
-	* src/cff/cffobjs.c (cff_face_init): Don't set
-	FT_FACE_FLAG_GLYPH_NAMES for CFF2 based fonts.
-
-2019-10-08  Werner Lemberg  <[email protected]>
-
-	[woff2] Fix SFNT table checks.
-
-	Also reduce number of SFNT table lookups.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18065
-
-	* include/freetype/internal/wofftypes.h (WOFF2_InfoRec): Add fields
-	`glyf_table', `loca_table', and `head_table'.
-
-	* src/sfnt/sfwoff2.c (reconstruct_glyf): Update signature.
-	Use table pointers in `info' parameter.
-	(get_x_mins): Check `maxp_table'
-	Use table pointers in `info' parameter.
-	(reconstruct_font):  Use and set table pointers in `info' parameter.
-	Fix check for `glyf' and `loca' tables.
-	Update call to `reconstruct_glyf'.
-	(woff2_open_font): Updated.
-
-2019-10-06  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/sfwoff2.c (reconstruct_glyf): Fix reallocation.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18046
-
-2019-10-06  Werner Lemberg  <[email protected]>
-
-	Improve memory debugging.
-
-	* include/freetype/internal/ftmemory.h (FT_MEM_FREE): Use
-	`FT_DEBUG_INNER' to set source code file name and line.
-
-	* src/base/ftdbgmem.c (ft_mem_table_remove): Better formatting of
-	tracing message.
-
-2019-10-03  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/sfwoff2 (reconstruct_font): Fix reallocation.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17966
-
-2019-10-01  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/base/ftstroke.c (ft_stroker_inside): Speed up.
-
-2019-10-01  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/sfwoff2 (woff2_open_font): Initialize `woff2.ttc_fonts'.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17804
-
-2019-09-30  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/sfwoff2.c (reconstruct_font): Fix memory leak.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17812
-
-2019-09-30  Werner Lemberg  <[email protected]>
-
-	[woff2] Reject fonts without `head' table.
-
-	Also fix memory deallocation in case of error.
-
-	`head' problem reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17820
-
-	* src/sfnt/sfwoff2.c (reconstruct_glyf): Don't use `stream_close'.
-	Abort if `head_table' is NULL.
-	Don't free `transformed_buf' in case of error.
-	(woff2_open_font): Don't set `uncompressed_buf' to NULL.
-
-2019-09-29  Werner Lemberg  <[email protected]>
-
-	[woff2] Fix compiler warnings.
-
-	Problem reported by Alexei.
-
-	* src/sfnt/sfwoff2.c (reconstruct_glyf): Initialize `x_min'.
-	(reconstruct_font): Initialize `num_hmetrics'.
-	(woff2_open_font): Initialize `info'.
-
-2019-09-28  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/sfwoff2.c (woff2_open_font): Fix sanity check.
-
-	Correct thinkos in patch from 2019-09-01.
-
-2019-09-28  Werner Lemberg  <[email protected]>
-
-	[woff2] Fix memory leaks.
-
-	One of them reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17766
-
-	* src/sfnt/sfwoff2.c (woff2_open_font): Free `info->x_mins' and
-	`woff2->ttc_fonts'.
-
-	(reconstruct_glyf): Initialize `info->x_mins'.
-
-2019-09-27  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/base/ftstroke.c (ft_stroker_cap): Speed up caps.
-
-2019-09-25  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/base/ftstroke.c (ft_stroker_outside): Speed up clipped miter.
-	* include/freetype/ftstroke.h: Wordsmith miter docs.
-
-2019-09-25  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/sfwoff2.c (woff2_open_font): Check (sum of) table sizes.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17684
-
-2019-09-23  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/base/ftstroke.c (ft_stroke_border_arcto): Speed up calculations.
-
-2019-09-20  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Fix memory leaks.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16896
-
-	* src/sfnt/sfwoff2.c (woff2_open_font): Fix error handling.
-	Free `uncompressed_buf'.
-	(reconstruct_font): Free `transformed_buf'.
-
-2019-09-17  Werner Lemberg  <[email protected]>
-
-	* src/otvalid/otvcommon.c (otv_Coverage_get_last): Guard `count'.
-
-	Problem reported by Marc Schönefeld <[email protected]>.
-
-2019-09-17  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/sfwoff2.c (woff2_open_font): Check table index.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17100
-
-2019-09-15  Avi Halachmi (:avih)  <[email protected]>
-
-	[cmake] Don't fail if brotli is missing (#56894).
-
-	The libs which cmake controls are commented out at
-
-	  include/freetype/config/ftoption.h
-
-	and cmake un-comment each enabled library, but the brotli option was
-	not commented out, therefore `FT_CONFIG_OPTION_USE_BROTLI' remained
-	defined even if brotli was missing/disabled/etc.
-
-	Comment it such that cmake can control it, which means leaving it
-	undefined if brotli is missing.
-
-	* include/freetype/config/ftoption.h: Fix typo.
-
-2019-09-05  Werner Lemberg  <[email protected]>
-
-	[cmake] Add brotli support.
-
-	* CMakeLists.txt (FT_WITH_BROTLI): New option.
-
-	* builds/cmake/FindBrotliDec.cmake: New file.
-
-2019-09-05  Werner Lemberg  <[email protected]>
-
-	Fix handling of `AF_CONFIG_OPTION_INDIC'.
-
-	* devel/ftoption.h, include/freetype/config/ftoption.h:
-	`AF_CONFIG_OPTION_INDIC' needs `AF_CONFIG_OPTION_CJK'.
-
-2019-09-05  Werner Lemberg  <[email protected]>
-
-	CMakeLists.txt: Fix generation of DLL related stuff (#56852).
-
-	Extract `version_info' variable from `builds/unix/configure.raw' and
-	use the data to correctly set `LIBRARY_VERSION' and
-	`LIBRARY_SOVERSION'.
-
-	Also use the data to set `ft_version' field in `freetype2.pc'.
-	Also fix the needed minimum version of HarfBuzz in `freetype2.pc'.
-
-2019-09-03  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/sfwoff2.c (compute_ULong_sum): Fix undefined shift.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16933
-
-2019-09-01  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/sfwoff2.c (woff2_open_font): Add sanity check.
-
-	Don't trust `totalSfntSize' unconditionally.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16893
-
-2019-08-27  Dominik Röttsches  <[email protected]>
-
-	[woff2] Don't use `FT_UInt64' (#56815).
-
-	* src/sfnt/sfwoff2.c (woff2_open_font): Use `FT_UInt32' for
-	`file_offset'.  This fixes builds on platforms where `FT_LONG64' is
-	not defined while still being sufficient to store a file offset.
-
-2019-08-27  Werner Lemberg  <[email protected]>
-
-	[truetype] Prevent crash in `TT_Set_Named_Instance' (#56813).
-
-	* src/truetype/ttgxvar.c (TT_Set_Named_Instance): Fix error
-	handling.
-
-2019-08-27  Werner Lemberg  <[email protected]>
-
-	[woff2] Fix compiler warnings.
-
-	* src/sfnt/sfwoff2.c (read_num_hmetrics): Remove unused argument
-	`table_len'.
-	Update caller.
-	(triplet_decode, compute_bbox, store_loca, reconstruct_glyf): Make
-	`i' variable unsigned.
-	(reconstruct_glyph): Remove condition which is always false.
-	(reconstruct_html): Removed unused argument `transformed_size'.
-	Update caller.
-
-	* src/sfnt/woff2tags.c (woff2_known_tags): Remove condition which is
-	always false.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Check whether known tag is in array bounds.
-
-	If table tag is not 0x3f, we expect a value between 0 and 62.  If
-	this is not the case, exit with errors.
-
-	* src/sfnt/sfwoff2/c: Check whether table tag makes sense.
-
-	* src/sfnt/woff2tags.c: Return 0 if tag is out of bounds.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	* src/sfnt/sfwoff2.c: Improve trace comments.
-
-	Adjust tracing levels for comments, and more formatting.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Support `hmtx' reconstruction when `glyf' is untransformed.
-
-	`reconstruct_hmtx' requires `info->x_mins' and `info->num_glyphs' to
-	reconstruct the hmtx table.  In case glyf is not transformed, we
-	call `get_x_mins' which does the necessary work.
-
-	* src/sfnt/sfwoff2.c (get_x_mins): New function.
-	(reconstruct_font): Call get_x_mins.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[sfnt] Support `face->num_faces' for WOFF2 fonts.
-
-	Set correct value of `face->num_faces' for WOFF2 fonts.  This is
-	being handled separately because we only load the tables for the
-	requested font face in `woff2_open_font' and create a single-face
-	sfnt stream.
-
-	The full discussion is at:
-
-	  https://lists.gnu.org/archive/html/freetype-devel/2019-08/msg00000.html
-
-	* src/sfnt/sfobjs.c (sfnt_open_font): Add parameter
-	`woff2_num_faces'.
-	(sfnt_init_face): Introduce variable `woff2_num_faces', and change
-	`face->root.num_faces' if `woff2_num_faces' is set.
-
-	* src/sfnt/sfwoff2.c (woff2_open_font): Validate requested face
-	index and handle negative face indices.
-
-	* src/sfnt/sfwoff2.h (woff2_open_font): Add parameter `num_faces' to
-	declaration.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Improve memory and error handling.
-
-	Free up memory after use, and improve error handling.
-
-	* src/sfnt/sfwoff2.c (reconstruct_font, woff2_open_font): Implement
-	changes.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Avoid too many calls to `FT_REALLOC'.
-
-	We do this by using `totalSfntSize' as an initial reference, and
-	extending the buffer when required.  This reduces rendering time
-	considerably.
-
-	* include/freetype/internal/wofftypes.h (WOFF2_HeaderRec): Add
-	`totalSfntSize', rename `total_sfnt_size' to `actual_sfnt_size'.
-
-	* src/sfnt/sfwoff2.c (write_buf): Add parameter `dst_size' to keep
-	track of and update total size of stream.
-
-	(WRITE_SFNT_BUF, WRITE_SFNT_BUF_AT): Modify macros accordingly.
-
-	(pad4, store_loca, reconstruct_glyf, reconstruct_hmtx,
-	reconstruct_font): Update parameters to accept `sfnt_size'.
-
-	(woff2_open_font): Add variable `sfnt_size'.  Use WOFF2 header field
-	`totalSfntSize' as initial reference (if value makes sense) and
-	allocate `totalSfntSize' bytes for the sfnt stream.  `write_buf'
-	handles reallocation if and when required.  Also resize the stream
-	to `actual_sfnt_size' after reconstruction.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Reconstruct `loca', `hmtx', and swap out stream.
-
-	Add necessary functions to reconstruct loca and hmtx tables (the two
-	remaining tables that can have a transform).  `woff2_open_font' is
-	now capable of loading a woff2 font face.  This code may still need
-	more refining and better memory management.
-
-	* include/freetype/internal/wofftypes.h (WOFF2_HeaderRec): Add total
-	(final) size of sfnt stream.
-
-	(WOFF2_InfoRec): Add header checksum value.
-
-	* src/sfnt/sfobjs.c (sfnt_open_font): Change `face_instance_index'
-	parameter to its pointer so its value can be modified by
-	`woff2_open_font'.
-
-	* src/sfnt/sfwoff2.c: (WRITE_SFNT_BUF_AT): New macro to write into
-	sfnt buffer at given position.
-
-	(write_buf): Add parameter `extend_buf' which allows caller to
-	specify whether buffer should be reallocated before copying data.
-
-	(WRITE_SFNT_BUF): Updated.
-
-	(pad4, store_loca, reconstruct_htmx): New functions.
-
-	(reconstruct_glyf): Calculate loca values and store them.
-
-	(reconstruct_font): Call `reconstruct_hmtx', write table record
-	entries, and calculate table checksums.  Also calculate font
-	checksum and update `checksumAdjustment' entry in head table.
-
-	(woff2_open_font): Open stream for sfnt buffer, swap out input
-	stream and return.
-
-	* src/sfnt/sfwoff2.h (woff2_open_font): Modify parameter to accept
-	pointer to `face_index'.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Reconstruct transformed `glyf' table.
-
-	Reconstruct `glyf' table if it is transformed in the uncompressed
-	table stream.  Also add necessary structures, macros and functions.
-
-	* include/freetype/internal/wofftypes.h (WOFF2_InfoRec,
-	WOFF2_SubstreamRec, WOFF2_PointRec): New structures.
-	(WOFF2_TableRec): s/OrigLength/dst_length/.
-
-	* src/sfnt/sfwoff2.c (READ_255USHORT, READ_BASE128): Use
-	`FT_SET_ERROR' to set implicit `error' variable.
-
-	(WRITE_SHORT): New macro.
-
-	(N_CONTOUR_STREAM, N_POINTS_STREAM, FLAG_STREAM, GLYPH_STREAM,
-	COMPOSITE_STREAM, BBOX_STREAM, INSTRUCTION_STREAM): New macros to
-	refer to substreams of the transformed `glyf' tables.
-
-	(Read255UShort, ReadBase128): Return errors set by `FT_READ_XXX'
-	macros.
-
-	(with_sign, safe_int_addition): New functions to add sign to values
-	based on a flag and perform safe addition respectively.
-
-	(triplet_decode): Decode variable-length (flag, xCoordinate,
-	yCoordinate) triplet for a simple glyph.   See
-
-	  https://www.w3.org/TR/WOFF2/#triplet_decoding
-
-	(store_points, compute_bbox, composteGlyph_size, reconstruct_glyf):
-	New functions.
-
-	(reconstruct_font): Call `reconstruct_glyf'.
-
-	* src/sfnt/sfwoff2.h: Add required constants.
-
-	* src/sfnt/woff2tags.h: Move out constants to `sfwoff2.h'.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Copy un-transformed tables to sfnt stream.
-
-	Copy un-transformed tables to the sfnt stream.
-
-	* src/sfnt/sfwoff2.c: (WRITE_SFNT_BUF): New macro.
-	(write_buf): New function.  Extend memory of `dst' buffer and copy
-	bytes from `src'.
-	(compute_ULong_sum): New function.  Calculate checksum of table.
-	(reconstruct_font): Change `FT_Byte* sfnt' to `FT_Byte**
-	sfnt_bytes'.  This has been done because we reallocate memory to
-	`sfnt' multiple times, which may change the pointer value of `sfnt'.
-	This new pointer must be propogated back to the caller.  Same reason
-	for using a double pointer in `write_buf'.
-
-	* src/sfnt/woff2tags.h (WOFF2_DEFAULT_MAX_SIZE): New macro used for
-	overflow checking.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Create stream for uncompressed buffer.
-
-	Uncompressed buffer is now an `FT_Stream'.
-
-	Perform basic checks and start iterating over tables.
-
-	* src/sfnt/sfwoff2.c (stream_close, find_table, read_num_hmetrics):
-	New functions.
-	(reconstruct_font): Modify parameters and iterate over tables.
-	(woff2_open_font): Updated.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Handle TTCs and start reconstructing font.
-
-	We `handle' TTCs by modifying the `indices' array to point to only
-	those tables that are part of the requested `face_index'.
-
-	Set and use `num_tables' in `WOFF2_TtcFont'.
-
-	* src/sfnt/sfwoff2.c (reconstruct_font): New function.
-	(woff2_open_font): Start reconstruction of font.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Get known tags from function.
-
-	Change `KnownTags' to a function (`woff2_known_tags').  This avoids
-	introducing a global constant array.  This function returns the
-	specified index without *any* checks.  The caller must ensure that
-	`index' is within array limits.
-
-	* src/sfnt/sfwoff2.c (woff2_open_font): Change `KnownTags[...]'
-	notation to `woff2_known_tags( ...  )'.
-
-	* src/sfnt/woff2tags.c: Perform changes.
-
-	* src/sfnt/woff2tags.h: Update definitions.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Minor.
-
-	* src/sfnt/sfwoff2.c (woff2_uncompress): Add error message
-	(woff2_open_font): Free `uncompressed_buf'.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Uncompress Brotli streams and `face_index' support.
-
-	WOFF2 compressed stream is now uncompressed if Brotli is available.
-	This data is stored in a separate buffer (uncompressed_buf) because
-	it does not contain direct table data.  Certain tables have
-	transformations applied to them, and they must be reconstructed
-	before we can write those tables to the SFNT stream.
-
-	`face_index' is now being passed as a parameter to
-	`woff2_open_font'.
-
-	* src/sfnt/sfobjs.c (sfnt_open_font): Add parameter
-	`face_instance_index'.
-
-	* src/sfnt/sfwoff2.c (woff2_uncompress): New function.
-	(woff2_open_font): Call `woff2_uncompress'.
-	(compute_first_table_offset): Fix return type.
-
-	* src/sfnt/sfwoff2.h (woff2_open_font): Modify declaration.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	* builds/unix/configure.raw: Change argument name to `brotli'.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	Add Brotli dependency and required checks.
-
-	Brotli is required for decompressing WOFF2 font directory streams.
-	The library is thus being added as an optional dependency for
-	FreeType.
-
-	* builds/unix/configure.raw: Add checks for `libbrotlidec'.
-	(REQUIRES_PRIVATE, LIBS_PRIVATE, LIBSSTATIC_CONFIG): Updated.
-
-	* devel/ftoption.h, include/freetype/config/ftoption.h
-	(FT_CONFIG_OPTION_USE_BROTLI): New macro.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Write SFNT Offset table.
-
-	* src/sfnt/sfwoff2.c (WRITE_USHORT, WRITE_ULONG): New macros.
-	(compare_tags): New function.
-	(woff2_open_font): Implement it.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	* src/sfnt/sfwoff2.c: #undef macros.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[woff2] Read table and collection directory.
-
-	* include/freetype/internal/wofftypes.h (WOFF2_TtcFontRec): New
-	structure.
-	(WOFF2_HeaderRec): Add more fields.
-
-	* src/sfnt/sfwoff2.c (READ_255USHORT, READ_BASE128, ROUND4): New
-	macros.
-	(Read255UShort, CollectionHeaderSize, compute_first_table_offset):
-	New functions.
-	(ReadBase128): Use `FT_READ_BYTE'.
-	(woff2_open_font): Add functionality to read table directory and
-	collection directory (if present).
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[sfnt] Include `woff2tags.c' for building.
-
-	* src/sfnt/rules.mk (SFNT_DRV_SRC): Add `woff2tags.c'.
-
-	* src/sfnt/sfnt.c: Include `woff2tags.c'.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[sfnt] Add WOFF2 constants.
-
-	Add constants required for WOFF2, and known table tags as defined in
-	the specification.  See
-
-	  https://www.w3.org/TR/WOFF2/#table_dir_format
-
-	for details.
-
-	* src/sfnt/woff2tags.c, src/sfnt/woff2tags.h: New files.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	[sfnt] Read WOFF 2 header.
-
-	Check for WOFF2 tag, call `woff2_open_font', and implement it to read
-	header according to specification.
-
-	* include/freetype/internal/fttrace.h: Add `sfwoff2.c'.
-
-	* src/sfnt/rules.mk (SFNT_DRV_SRC): Add `sfwoff2.c'.
-
-	* src/sfnt/sfnt.c: Include `sfwoff2.c'.
-
-	* src/sfnt/sfobjs.c (sfnt_open_font): Check for `wOF2' tag and call
-	`woff2_open_font'.
-
-	* src/sfnt/sfwoff2.c, src/sfnt/sfwoff2.h: New files.
-
-2019-08-27  Nikhil Ramakrishnan  <[email protected]>
-
-	Add structures for WOFF2.
-
-	Add structures and macro for WOFF 2 header and table directory.
-
-	* include/freetype/internal/wofftypes.h (WOFF2_HeaderRec,
-	WOFF2_TableRec_): New structures.
-
-	* include/freetype/tttags.h (TTAG_wOF2): New macro.
-
-2019-08-26  Werner Lemberg  <[email protected]>
-
-	* src/psaux/cffdecode.c (cff_operator_seac): Fix numeric overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16470
-
-2019-08-26  Werner Lemberg  <[email protected]>
-
-	[type1] Fix `FT_Get_Var_Axis_Flags' (#56804).
-
-	* src/type1/t1load.c (T1_Get_MM_Var): Allocate space for axis flags.
-	Also remove redundant assignment.
-
-2019-07-24  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/base/ftbbox.c (cubic_peak): Sanitize left shift (#56586).
-
-2019-07-22  Weiyi Wu  <[email protected]>
-
-	* src/cid/cidload.c (cid_hex_to_binary): Fix typo (#56653).
-
-2019-07-12  Werner Lemberg  <[email protected]>
-
-	[sfnt, winfonts] Avoid memory leaks in case of error (#56587).
-
-	* src/sfnt/sfwoff.c (woff_open_font): Call `FT_FRAME_EXIT' in case
-	of error.
-
-	* src/winfonts/winfnt.c (fnt_face_get_dll_font): Ditto.
-
-2019-07-12  Ben Wagner  <[email protected]>
-
-	Properly handle phantom points for variation fonts (#56601).
-
-	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Scale phantom
-	points if HVAR and/or VVAR is present.
-
-2019-07-04  Werner Lemberg  <[email protected]>
-
-	[psaux] (2/2) Handle fonts that use SEAC for ligatures (#56580).
-
-	The same as previous commit but for the old engine.
-
-	* src/psaux/t1decode.c (t1operator_seac): Implement it.
-
-2019-07-04  Chris Liddell <[email protected]>
-
-	[psaux] (1/2) Handle fonts that use SEAC for ligatures (#56580).
-
-	As originally intended, a Type 1 SEAC charstring would be used for
-	an accented glyph (like `acaron' or `uumlaut'), where the advance
-	width of the SEAC glyph is the same as that of the `base' glyph
-	(like `a' or `u').  In this case it is not uncommon for the SEAC
-	glyph to not use an (H)SBW opcode of its own but to rely on the
-	value from the base glyph.
-
-	However, out-of-spec fonts also use SEAC glyphs for ligatures (like
-	`oe' or `fi'), and in those cases the overall advance width is
-	greater than that of the `base' glyph.  For this reason we have to
-	allow that the SEAC glyph can have an (H)SBW value of its own, and
-	if it has, retain this value, rather than the one from the base
-	glyph.
-
-	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_escSEAC>:
-	Implement it.
-
-2019-07-01  Werner Lemberg  <[email protected]>
-
-	* Version 2.10.1 released.
-	==========================
-
-
-	Tag sources with `VER-2-10-1'.
-
-	* docs/VERSION.TXT: Add entry for version 2.10.1.
-
-	* README, Jamfile (RefDoc), src/base/ftver.rc,
-	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.10.0/2.10.1/, s/2100/2101/.
-
-	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
-
-	* builds/unix/configure.raw (version_info): Set to 23:1:17.
-	* CMakeLists.txt (VERSION_PATCH): Set to 1.
-
-	* include/freetype/fterrors.h (FT_Error_String): Fix C++ compilation.
-
-2019-06-26  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Fix inequality.
-
-	Reported by Armin Hasitzka.
-
-2019-06-16  Werner Lemberg  <[email protected]>
-
-	* src/tools/apinames.c: Formatting, minor edits.
-
-2019-06-16  Werner Lemberg  <[email protected]>
-
-	[autofit] Disable hinting if no blue zones are available (#56450).
-
-	* src/autofit/afglobal.c (af_face_global_get_metrics): Start again
-	(with dummy hinter module) if no blue zones are present.
-
-	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Change
-	signature to return error code.
-	If no blue zones are found, update `glyph_styles' array to hold
-	AF_STYLE_NONE_DFLT instead of the current style.
-	(af_latin_metrics_init): Return internal error code if no blue zones
-	are found.
-
-2019-06-16  Werner Lemberg  <[email protected]>
-
-	Towards better VMS support.
-
-	More to come.
-
-	* builds/vms/LIBS.OPT_IA64, builds/vms/_LINK.OPT_IA64,
-	builds/vms/vmslib.dat: New files provided by Jouk Jansen
-	<[email protected]>.
-
-	* builds/vms/ftconfig.h: Update, also from Jouk.
-
-2019-06-13  Werner Lemberg  <[email protected]>
-
-	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Minor.
-
-2019-06-13  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Restore the span buffering for direct mode only.
-
-	The buffer size FT_MAX_GRAY_SPANS is set to 10 spans, which should be
-	enough to cover the entire scanline for simple glyphs in most cases:
-	each slightly slanted edge needs up to two spans, plus a filling span
-	in-between.  This is not new, we used to do it before cb4388783cecc.
-
-	* src/smooth/ftgrays.c (gray_TWorker): Add `spans' and `num_spans'.
-	(gray_hline, gray_sweep): Implement the span buffering.
-	(gray_raster_render): Use negative `num_spans' to avoid the direct
-	mode.
-
-2019-06-12  Alexei Podtelezhnikov  <[email protected]>
-
-	* include/freetype/ftmodapi.h (FT_DebugHook_Func): Return error.
-
-	Fix a warning by adding a return value as in `TT_RunIns',
-	which should not be a compatibility issue.
-
-2019-06-11  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/truetype/ttobjs.c (tt_check_trickyness_family): Add `const'.
-
-2019-06-11  Moazin Khatti  <[email protected]>
-
-	[gzip] Add support for `gzip' encoded header.
-
-	* src/gzip/ftgzip.c (FT_Gzip_Uncompress): Modify the the call to
-	`inflateInit2' to enable support for `gzip' encoded headers.
-
-2019-06-10  Alexei Podtelezhnikov  <[email protected]>
-
-	[type1,type42] Use `const' for string literals.
-
-	* include/freetype/internal/psaux.h (PS_Table_FuncsRec): Updated.
-	* include/freetype/internal/t1types.h (T1_EncodingRec): Updated.
-	* src/psaux/psobjs.[ch] (ps_table_add): Updated.
-	* src/type1/t1load.c (T1_Open_Face, parse_encoding): Updated.
-	* src/type42/t42objs.c (T42_Open_Face): Updated.
-	* src/type42/t42parse.c (t42_parse_encoding): Updated.
-
-	* src/cff/cffobjs.c (cff_face_init): Minor.
-
-2019-06-10  Alexei Podtelezhnikov  <[email protected]>
-
-	[bdf,pcf] Use `const' for string literals.
-
-	* src/bdf/bdf.h (bdf_property_t): Updated `name'.
-	* src/bdf/bdflib.c (_bdf_list_split,bdf_create_property,
-	_bdf_add_property,_bdf_ato*): Updated.
-	* src/bdf/bdfdrivr.c (bdf_interpret_style): Updated.
-	* src/pcf/pcfread.c (pcf_intrpret_style): Ditto.
-
-2019-06-07  Philip Race  <[email protected]>
-
-	* src/base/ftinit.c (FT_Set_Default_Properties): Fix crash.
-
-	Terminate loop at end of environment.
-
-2019-05-31  Alexei Podtelezhnikov  <[email protected]>
-
-	Solidify VC2005 builds.
-
-	* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Explicitly
-	declare `_BitScanReverse' intrinsic.
-	* builds/windows/visualc/freetype.vcproj [Debug]: Disable intrinsics.
-
-2019-05-30  Nikhil Ramakrishnan  <[email protected]>
-
-	[sfnt] Separate WOFF sources and headers.
-
-	Move WOFF sources and headers to separate files.
-
-	* include/freetype/internal/wofftypes.h, src/sfnt/sfwoff.c,
-	src/sfnt/sfwoff.h: New files.
-
-	* include/freetype/internal/fttrace.h: Register `sfwoff.c'.
-
-	* include/freetype/internal/internal.h: Define
-	FT_INTERNAL_WOFF_TYPES_H.
-
-	* include/freetype/internal/sfnt.h: Include FT_INTERNAL_WOFF_TYPES_H.
-
-	* include/freetype/internal/tttypes.h: Move out WOFF structures.
-
-	* src/sfnt/rules.mk: Add `sfwoff.c'.
-
-	* src/sfnt/sfnt.c: Include `sfwoff.c'.
-
-	* src/sfnt/sfobjs.c: Include `sfwoff.h', move out WOFF sources.
-
-2019-05-30  Werner Lemberg  <[email protected]>
-
-	[base] Fix `make multi'.
-
-	Reported by Nikhil.
-
-	* src/base/fterrors.c: Include FT_INTERNAL_DEBUG_H.
-
-2019-05-29  Ben Wagner  <[email protected]>
-
-	[truetype] Fix copy-and-paste error (#56409).
-
-	* src/truetype/ttgload.c (load_truetype_glyph): Use correct indices
-	into `unrounded' array for phantom points.
-
-2019-05-29  Werner Lemberg  <[email protected]>
-
-	[truetype] Fix 32bit builds (#56404).
-
-	Patch suggested by Ben Wagner <[email protected]>.
-
-	* src/truetype/ttgxvar.c (FT_fixedToInt, FT_fixedToFdot6): Remove
-	harmful cast to unsigned type.
-
-2019-05-26  Ben Wagner  <[email protected]>
-
-	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Improve accuracy.
-
-2019-05-23  Werner Lemberg  <[email protected]>
-
-	[truetype] Draw glyphs without deltas in variation font (#56374).
-
-	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Always fill
-	`unrounded' array.
-
-2019-05-21  Werner Lemberg  <[email protected]>
-
-	* src/truetype/ttinterp.c (opcode_name): Improve mnemonics.
-
-2019-05-16  Werner Lemberg  <[email protected]>
-
-	[truetype] Actually scale varied CVT values.
-
-	Up to now, only the unscaled CVT values were varied; in other words,
-	the `CVAR' data was never used for bytecode hinting.
-
-	* src/truetype/ttgxvar.c (tt_cvt_ready_iterator): New auxiliary
-	function.
-	(tt_face_vary_cvt): Use it to trigger rescaling of CVT values.
-
-2019-05-16  Werner Lemberg  <[email protected]>
-
-	[truetype] Use 26.6 format for storing unscaled CVT values.
-
-	If `CVAR' data is applied to variation fonts, fractional values are
-	possible.
-
-	* include/freetype/internal/tttypes.h (TT_FaceRec): Change type of
-	`cvt' from `FT_Short' to `FT_Int32'.
-
-	* src/truetype/ttgxvar.c (FT_fdot6ToFixed): New macro.
-	(tt_face_vary_cvt): Use it to update code to 26.6 format.
-
-	* src/truetype/ttobjs.c (tt_size_run_prep): Update code to 26.6
-	format.
-
-	* src/truetype/ttpload.c (tt_face_load_cvt): Stora data in 26.6
-	format.
-
-2019-05-16  Werner Lemberg  <[email protected]>
-
-	* src/truetype/ttgload.c (load_truetype_glyph): Init `unrounded'.
-
-	This fixes linear advance width values for spacing glyphs.  Bug
-	introduced 2019-05-09.
-
-2019-05-16  Werner Lemberg  <[email protected]>
-
-	[truetype] Avoid code duplication.
-
-	* src/truetype/ttobjs.c (tt_size_run_prep): Scale CVT values in this
-	function.
-	(tt_size_ready_bytecode): Updated.
-	* src/truetype/ttgload.c (tt_loader_init): Updated.
-
-2019-05-13  Jouk Jansen  <[email protected]>
-
-	* vms_make.com: Updated.  Handle `bzip2' directory, too.
-
-2019-05-13  Werner Lemberg  <[email protected]>
-
-	* src/psaux/psfont.c (cf2_font_setup): Fix compiler warning.
-
-2019-05-12  Werner Lemberg  <[email protected]>
-
-	[truetype] Doh.  Fix last commit to make it work.
-
-	Very embarassing :-)
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14701
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14705
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14710
-
-	* src/truetype/ttgload.c (IS_DEFAULT_INSTANCE): Move up and add
-	argument; update all callers.
-	(TT_Process_Simple_Glyph): Use it.  The `unrounded' array is active
-	for variation fonts only, thus also enclose related code with
-	`#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT ...  #endif' where
-	necessary.
-	Revert commit a113e5d from 2019-05-09, and don't use `extra_points2'
-	but allocate a temporary array.
-	Speed up the scaling of the `unrounded' array.
-
-	* src/truetype/ttgxvar.c (FT_fixedToInt, FT_FixedToFdot6): Fix type
-	conversions and rounding.  The unsigned type must have more or equal
-	bits to the signed type.
-
-2019-05-09  Werner Lemberg  <[email protected]>
-
-	[truetype] Increase precision of font variation (#54371).
-
-	This patch makes FreeType use font units in 26.6 format internally
-	instead of integers.
-
-	* src/truetype/ttgxvar.c (FT_fixedToFdot6): New macro.
-	(TT_Vary_Apply_Glyph_Deltas): Add argument to output unrounded font
-	coordinates.
-	* src/truetype/ttgxvar.h: Updated.
-
-	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Use
-	`extra_points2' array to temporarily hold unrounded point
-	coordinates; use them to compute scaled coordinates and linear
-	advance width and height.
-	(load_truetype_code): Adjust similarly.
-
-2019-05-09  Werner Lemberg  <[email protected]>
-
-	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Minor.
-
-2019-05-08  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Faster fractions.
-
-	* src/smooth/ftgrays.c (SUBPIXELS): Replace with...
-	(FRACT): A fractional coordinate macro to use in...
-	(gray_render_line, gray_render_scanline): ... here.
-
-2019-05-07  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/raster/ftraster.c (Draw_Sweep): Unbreak.
-
-2019-05-05  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/raster/ftraster.c: Clean-ups.
-
-2019-05-05  Werner Lemberg  <[email protected]>
-
-	* src/truetype/ttgxvar.c: More use of `FT_fdot14ToFixed'.
-
-2019-05-04  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/smooth/ftgrays.c (gray_render_line): Small shortcut.
-
-2019-05-04  Werner Lemberg  <[email protected]>
-
-	Various clang 8.0 static analyzer fixes.
-
-	Reported by Sender Ghost <[email protected]>.
-
-	* src/autofit/afcjk.c (af_cjk_hints_compute_edges): Catch a corner
-	case where `edge->first' could be NULL.
-
-	* src/pfr/pfrobjs.c (pfr_slot_load): Remove unnecessary test of
-	`size'.
-
-	* src/raster/ftraster.c (Draw_Sweep): Catch a corner case where
-	`draw_right' might be NULL.
-
-	* src/sfnt/ttmtx.c (tt_face_get_metrics): Fix limit test for
-	`aadvance'.
-	Ensure `abearing' always hold a meaningful result.
-
-	* src/truetype/ttgload.c (load_truetype_glyph): Ensure `subglyph' is
-	not NULL before accessing it.
-	* src/truetype/ttgxvar.c (TT_Set_Named_Instance): Remove unnecessary
-	test of `namedstyle'.
-
-	* src/type42/t42parse.c (t42_parser_done): Ensure
-	`parser->root.funcs.done' is not NULL before accessing it.
-
-2019-05-03  Alexei Podtelezhnikov  <[email protected]>
-
-	Miscellaneous macro updates.
-
-	* src/base/ftoutln.c (SCALED): Updated.
-	* src/smooth/ftgrays.c (SCALED): Ditto.
-	(FLOOR, ROUND, CEILING): Removed.
-	* src/psaux/psfixed.h (cf2_fracToFixed): Updated.
-
-2019-05-02  Alexei Podtelezhnikov  <[email protected]>
-
-	Tweak LCD filtering.
-
-	* src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy):
-	Choose direction from bitmap's pixel_mode.
-	* include/freetype/internal/ftobjs.c (FT_Bitmap_LcdFilterFunc):
-	Updated.
-	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Updated.
-
-2019-05-02  Werner Lemberg  <[email protected]>
-
-	* vms_make.com: Updated (#56253).
-
-	Remove no longer existing directories (`autohint', `otlayout').
-	Update used base extensions.
-	Activate `autofit' module.
-	Add `gxvalid' module.
-	Update copyright notices.
-
-2019-04-29  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Simplify cubic Bézier flattening.
-
-	The previous implementation is correct but it is too complex.
-	The revised algorithm is based on the fact that each split moves
-	the control points closer to the trisection points on the chord.
-	The corresponding distances are good surrogates for the curve
-	deviation from the straight line.
-
-	This cubic flattening algorithm is somewhat similar to the conic
-	algorithm based the distance from the control point to the middle of
-	the chord.  The cubic distances, however, decrease less predictably
-	but are easy enough to calculate on each step.
-
-	The new algorithm produces slightly larger number of splits, which is
-	compensated by its simplicity.  The overall rendering performance is
-	improved by 1-2%.  The larger number of splits does not necessarily
-	result in higher quality, which stays comparable.
-
-	* src/smooth/ftgrays.c (gray_render_cubic): Replace the split
-	condition.
-
-2019-04-26  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Bithacks and cosmetics.
-
-	* src/smooth/ftgrays.c (gray_record_cell, gray_set_cell, gray_hline,
-	gray_render_conic, gray_convert_glyph_inner): Updated.
-
-2019-04-25  Alexei Podtelezhnikov  <[email protected]>
-
-	Optimize Bézier bisections.
-
-	This change makes bisections faster by 20-30%. When inlined into
-	`gray_render_cubic', this makes the function faster by 10% and is
-	noticeable in the overall rendering performance.
-
-	* src/raster/ftraster.c (Split_Conic, Split_Cubic): Use shifts and
-	refactor.
-	* src/smooth/ftgrays.c (gray_split_conic, gray_split_cubic): Ditto.
-	* src/base/ftstroke.c (ft_conic_split, ft_cubic_split): Ditto.
-	* src/base/ftbbox.c (cubic_peak): Use shifts.
-
-2019-04-23  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/ttcmap.c (tt_cmap12_next): Remove dead code.
-
-	Found by clang 8.0's static analyzer and reported by Sender Ghost
-	<[email protected]>.
-
-2019-04-23  Werner Lemberg  <[email protected]>
-
-	[base] Fix thinko in previous commit.
-
-	* src/base/ftbitmap.c (FT_Bitmap_Blend): Check final width, not
-	target pitch.
-
-	Problem reported by Sender Ghost <[email protected]>.
-
-2019-04-22  Werner Lemberg  <[email protected]>
-
-	* src/base/ftbitmap.c (FT_Bitmap_Blend): Check target pitch.
-
-	Problem reported by Sender Ghost <[email protected]>.
-
-2019-04-22  Werner Lemberg  <[email protected]>
-
-	Fix return value of `FT_Set_Named_Instance' (#56186).
-
-	* src/truetype/ttgxvar.c (TT_Set_Named_Instance): Correctly handle
-	internal return value -1 of `TT_Set_Var_Design'.
-
-2019-04-18  Werner Lemberg  <[email protected]>
-
-	[pcf] Fix handling of undefined glyph (#56067).
-
-	This commit fixes the changes from 2018-07-21, which broke charmap
-	iteration.  We now add the default character as a new glyph with
-	index 0, thus increasing the number of glyphs by one (as before).
-
-	* src/pcf/pcfread.c (pcf_get_metrics): Adjust to new artificial
-	glyph with index 0.
-	Limit number of elements to 65534.
-	(pcf_get_bitmaps): Ditto.
-	Unify two loops into one; this avoids allocation of an intermediate
-	array.
-	(pcf_get_encodings): Don't flip indices but copy glyph metrics of
-	default character to index 0.
-	Also handle invalid default character.
-
-	* docs/CHANGES: Updated.
-
-2019-04-15  Minmin Gong  <[email protected]>
-
-	* CMakeLists.txt: Avoid rewriting of unchanged configuration files.
-
-	Reported as
-
-	  https://savannah.nongnu.org/patch/index.php?9755
-
-2019-04-15  JDG  <[email protected]>
-
-	* src/tools/apinames.c (main): Fix error message.
-
-	Reported as
-
-	  https://savannah.nongnu.org/patch/?9796
-
-2019-04-11  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Fix segfault in direct mode (#56092).
-
-	* src/base/ftoutln.c (FT_Outline_Render): Set missing clip_box for
-	direct mode.
-	* src/smooth/ftgrays.c (gray_raster_render): Use it.
-
-2019-04-06  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/ttcmap.c (tt_get_glyph_name): Pacify compiler (#56061).
-
-	This is for Visual Studio 2019 on ARM.
-
-2019-04-06  Werner Lemberg  <[email protected]>
-
-	For distribution, replace `.tar.bz2' with `.tar.xz' bundles.
-
-	* builds/toplevel.mk (build): Do it.
-
-	* README, docs/CHANGES, docs/release: Updated.
-
-2019-04-06  Antony Lee  <[email protected]>
-
-	Make `glyph_name' parameter to `FT_Get_Name_Index' a `const'.
-
-	* include/freetype/freetype.h (FT_Get_Name_Index),
-	include/freetype/internal/ftobjs.h (FT_Face_GetGlyphNameIndexFunc),
-	include/freetype/internal/services/svgldict.h
-	(FT_GlyphDict_NameIndexFunc), src/base/ftobjs.c (FT_Get_Name_Index),
-	src/cff/cffdrivr.c (cff_get_name_index), src/sfnt/sfdriver.c
-	(sfnt_get_name_index), src/type1/t1driver.c (t1_get_name_index),
-	src/type42/t42drivr.c (t42_get_name_index): Add `const' to second
-	argument.
-
-2019-03-31  Armin Hasitzka  <[email protected]>
-
-	[cff] Fix boundary checks.
-
-	642bc7590c701c8cd35a9f60fa899cfa518b17ff introduced dynamically
-	allocated memory when parsing CFF files with the "old" engine.  Bounds
-	checks have never been updated, however, leading to pointless
-	comparisons of pointers in some cases.  This commit presents a
-	solution for bounds checks in the CFF module with an extended logic
-	for the "old" engine while staying as concise as possible for the
-	"new" one.
-
-	* src/cff/cffparse.h: Introduce the struct `CFF_T2_StringRec' and
-	the additional field `t2_strings' within `CFF_ParserRec'.
-
-	* src/cff/cffparse.c (cff_parser_within_limits): Move all boundary
-	checks into this new function and update the rest of `cffparse.c' to
-	use it.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12137
-
-2019-03-20  Werner Lemberg  <[email protected]>
-
-	[autofit] Fix Mongolian blue zone characters.
-
-	* src/autofit/afblue.dat: Use U+200D (ZERO-WIDTH JOINER) characters
-	to get medial forms for some Mongolian characters.
-	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
-
-2019-03-19  Werner Lemberg  <[email protected]>
-
-	[autofit] Add support for Mongolian script.
-
-	As a de-facto standard, layouts using this script are constructed
-	horizontally line by line, then the lines are rotated clockwise for
-	vertical display.
-
-	* src/autofit/afblue.dat: Add blue zone data for Mongolian.
-	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
-
-	* src/autofit/afscript.h: Add Mongolian standard characters.
-
-	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Mongolian
-	data.
-
-2019-03-15  Werner Lemberg  <[email protected]>
-
-	* Version 2.10.0 released.
-	==========================
-
-
-	Tag sources with `VER-2-10-0'.
-
-	* docs/VERSION.TXT: Add entry for version 2.10.0.
-	* docs/CHANGES: Updated.
-
-	* README, Jamfile (RefDoc), src/base/ftver.rc,
-	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.9.1/2.10.0/, s/291/2100/.
-
-	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 10.
-	(FREETYPE_PATCH): Set to 0.
-
-	* builds/unix/configure.raw (version_info): Set to 23:0:17.
-	* CMakeLists.txt (VERSION_MINOR): Set to 10.
-	(VERSION_PATCH): Set to 0.
-
-	* builds/toplevel.mk (version, winversion): Since the minor version
-	number has two digits now, never omit the patch number.  We would
-	get ambiguous zip file names otherwise.
-	(dist): Remove remnants of `docmaker' tool.
-	(do-dist): Remove unused intermediate files.
-
-	* src/cff/cffparse.c (destrict_c2s_item): Guard function with
-	CFF_CONFIG_OPTION_OLD_ENGINE macro.
-
-2019-03-07  Andrei Alexeyev  <[email protected]>
-            Werner Lemberg  <[email protected]>
-
-	Fix invalid function pointer casts.
-
-	This change should allow Freetype to work on WASM/Emscripten without
-	needing `-s EMULATE_FUNCTION_POINTER_CASTS=1'.
-
-	* src/autofit/afdummy.c (af_dummy_hints_apply): Fix signature.
-
-	* src/cid/cidload.c (cid_parse_font_matrix, parse_fd_array,
-	parse_expansion_factor, parse_font_name): Return `void', not
-	`FT_Error'.
-
-	* include/freetype/internal/ftobjs.h (FT_CMap_CharVarIsDefaultFunc):
-	Fix signature.
-
-2019-03-05  Werner Lemberg  <[email protected]>
-
-	[base] Handle numeric overflow (#55827).
-
-	* src/base/ftglyph.c (FT_Glyph_Get_CBox): Use `FT_PIX_CEIL_LONG'.
-
-2019-03-05  Sebastian Rasmussen  <[email protected]>
-
-	[psaux] Fix use of uninitialized memory (#55832).
-
-	* src/psaux/psintrp.c (cf2_interpT2CharString): The call to
-	`cf2_arrstack_setCount' may fail because the allocator ran out of
-	memory.  When this happens the stack is still written to before the
-	error condition is checked.  This means that FreeType writes outside
-	of allocated memory.  This commit moves the error check prior to the
-	stack assignment, hence the function now properly returns with an
-	error condition.
-
-2019-02-23  Werner Lemberg  <[email protected]>
-
-	* src/base/ftbitmap.c (FT_Bitmap_Blend): No fractional offsets.
-
-	The function only provided a framework without an actual
-	implementation, which this commit removes.
-
-2019-02-23  Werner Lemberg  <[email protected]>
-
-	* src/tools/update-copyright-year: Insert `(C)'.
-
-2019-02-21  Armin Hasitzka  <[email protected]>
-
-	[truetype] Mask numeric overflows.
-
-	* src/truetype/ttinterp.c (Move_CVT, Move_CVT_Stretched, Ins_MIRP):
-	Mask numeric overflows.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11681
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11734
-
-2019-02-21  Armin Hasitzka  <[email protected]>
-
-	[psaux] Mask numeric overflow.
-
-	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings): Mask numeric
-	overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13041
-
-2019-02-16  Wink Saville  <[email protected]>
-
-	* src/autofit/afwarp.h (af_warper_compute): Fix declaration.
-
-2019-02-02  Nikolaus Waxweiler  <[email protected]>
-
-	[truetype] Apply MVAR hasc, hdsc and hlgp metrics to current FT_Face metrics.
-
-	Instead of setting typo or win metrics as the new `FT_Face' metrics
-	indiscriminately, apply only typo deltas to the currently active
-	`FT_Face' metrics.  This prevents line height differences when the
-	default outlines were used as the regular face and instances for
-	everything else, for example.
-
-	* src/truetype/ttgxvar.c (tt_apply_mvar): Implement.
-
-2019-02-02  Nikolaus Waxweiler  <[email protected]>
-
-	[sfnt] Use typo metrics if OS/2 fsSelection USE_TYPO_METRICS bit is set.
-
-	If the `OS/2' table exists and `fsSelection' bit 7
-	(USE_TYPO_METRICS) is set, use the `sTypo*' set of values to compute
-	the `FT_Face's ascender, descender, and height.  Otherwise, fall
-	back to old behavior.
-
-	* src/sfnt/sfobjs.c (sfnt_load_face): Implement.
-
-2019-01-18  John Tytgat  <[email protected]>
-
-	[sfnt] Handle TT fonts having two PostScript font names (#55471).
-
-	* src/sfnt/sfdriver.c (sfnt_get_name_id): Prefer English over any
-	other language found for PostScript font names.
-
-2019-01-08  Chris Liddell <[email protected]>
-
-	[psaux] Fix closepath (#55414).
-
-	All of the Type 1 path building is done with code common to the
-	revised CFF engine, with the exception of closepath, which was still
-	calling ps_builder_close_contour(), thus previously cached segments
-	were not always written to the path, and glyph corruption, or even
-	invalid outlines were possible.
-
-	* src/psauc/psinterp.c (cf2_interpT2CharString) <cf2_cmdCLOSEPATH>:
-	Switch to calling `cf2_glyphpath_closeOpenPath'.
-
-2018-12-29  Werner Lemberg  <[email protected]>
-
-	* src/autofit/aflatin2.c: Some fixes from `aflatin.c' (#55310).
-
-2018-12-25  Werner Lemberg  <[email protected]>
-
-	* src/psaux/cffdecode.c (cff_operaor_seac): Fix numeric overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11915
-
-2018-12-12  Werner Lemberg  <[email protected]>
-
-	[gxvalid] Fix compiler warnings.
-
-	* src/gxvalid/gxvjust.c (gxv_just_check_max_gid),
-	src/gxvalid/gxvmort.c (gxv_mort_coverage_validate): Use `FT_UNUSED'.
-
-2018-12-11  Werner Lemberg  <[email protected]>
-
-	* src/truetype/ttgload.c (TT_Hint_Glyph): Remove useless test.
-
-	`control_len' only gets its value from `n_ins' (and vice versa),
-	which is always read as `unsigned short' and thus can't be larger
-	than 0xFFFF.
-
-2018-12-04  Werner Lemberg  <[email protected]>
-
-	[bdf] Ignore data after `ENDFONT'.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10798
-
-	* src/bdf/bdflib.c (_bdf_parse_end): New function.
-	(_bdf_parse_glyphs): Switch to `_bdf_parse_end' after `ENDFONT' has
-	been encountered.
-
-2018-12-02  Alexei Podtelezhnikov  <[email protected]>
-
-	* builds/windows/visualc/freetype.dsp: Dust off.
-
-2018-11-27  Alexei Podtelezhnikov  <[email protected]>
-
-	* builds/windows/vc2010/freetype.vcxproj: Simplify.
-
-2018-11-27  Chris Liddell  <[email protected]>
-
-	[type1,cff] Add FT_{Set,Get}_MM_WeightVector API calls.
-
-	For multiple master fonts, common usage (in Postscript) is to modify
-	the WeightVector of an existing font instance, this addition
-	supports that use.
-
-	* include/freetype/ftmm.h, src/base/ftmm.c (FT_Set_MM_WeightVector,
-	FT_Get_MM_WeightVector): New API functions.
-
-	* include/freetype/internalservices/svmm.h
-	(FT_Set_MM_WeightVector_Func, FT_Get_MM_WeightVector_Func): New
-	function types.
-	(MultiMasters): Add `set_mm_weightvector' and `get_mm_weightvector'
-	members.
-	(FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
-
-	* src/cffcffdrivr.c (cff_set_mm_weightvector,
-	cff_get_mm_weightvector): New functions.
-	(cff_service_multi_masters): Register them.
-
-	* src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated.
-	This driver doesn't use the new interface.
-
-	* src/type1/t1load.c (T1_Set_MM_WeightVector,
-	T1_Get_MM_WeightVector): New functions.
-	* src/type1/t1driver.c (t1_service_multi_masters): Register them.
-	* src/type1/t1load.h: Updated.
-
-2018-11-27  Ben Wagner  <[email protected]>
-
-	[cff] Fix compiler warning (#55105).
-
-	* src/cff/cffparse.c (cff_parser_run): Guard label only used if
-	CFF_CONFIG_OPTION_OLD_ENGINE is active.
-
-2018-11-27  Ben Wagner  <[email protected]>
-
-	[truetype] Fix numeric overflow (#55103).
-
-	* src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'.
-
-2018-11-25  Alexei Podtelezhnikov  <[email protected]>
-
-	[builds] Belated DLL support with vc2002-vc2008.
-
-	The solution and project files should be automatically upgraded for
-	the approriate Visual C++ version.
-
-	* builds/windows/visualc/freetype.{sln,vcproj}: Major upgrades.
-	* builds/windows/visualc/index.html: Document the change.
-	* builds/windows/vc2005, builds/windows/vc2008: Removed as redundant.
-
-2018-11-22  Armin Hasitzka  <[email protected]>
-
-	* src/cff/cffparse.c: Please the compiler.
-
-2018-11-22  Armin Hasitzka  <[email protected]>
-
-	[cff] Fix memory overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9869
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10869
-
-	* src/cff/cffparse.c (destruct_t2s_item, cff_parser_run): Store
-	evaluated T2 charstrings in separately allocated memory.
-
-2018-11-18  Alexei Podtelezhnikov  <[email protected]>
-
-	* builds/windows/{visualc,vc2005,vc2008}/freetype.vcproj: Fix it.
-
-2018-11-10  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Placeholder only for library-enabled LCD filtering.
-
-	* src/smooth/ftsmooth.c (ft_smooth_init): Add disabled
-	`FT_Library_SetLcdFilter' call.
-
-2018-11-09  Young Xiao  <[email protected]>
-
-	[psaux] Add safety guard (#54985).
-
-	* src/psaux/psobjs.c (cff_builder_close_contour): Do it.
-
-2018-11-08  Alexei Podtelezhnikov  <[email protected]>
-
-	* builds/unix/configure.raw: Require `windows.h' for windres.
-
-2018-11-08  Alexei Podtelezhnikov  <[email protected]>
-
-	[ftstroke] Fix unpredictable failures (#54986).
-
-	* src/base/ftstroke.c (ft_sroke_border_lineto): Fix lineto check.
-
-2018-11-08  Alexei Podtelezhnikov  <[email protected]>
-
-	[ftstroke] Fix unpredictable failures (#54976).
-
-	* src/base/ftstroke.c (ft_sroke_border_close): Set the start tags.
-
-2018-11-07  Ben Wagner  <[email protected]>
-
-	[truetype] Fix VF check from 2018-09-12 (#54973).
-
-	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Use correct
-	offsets for estimates.
-
-2018-11-06  Werner Lemberg  <[email protected]>
-
-	[pshinter] Fix numeric overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11242
-
-	* src/pshinter/pshrec.c (ps_dimension_add_t1stem): Implement it.
-
-2018-11-06  Werner Lemberg  <[email protected]>
-
-	[psaux] Fix timeout in old CFF engine.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11260
-
-	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
-	<cff_op_sqrt> [CFF_CONFIG_OPTION_OLD_ENGINE]: Fix potential endless
-	loop.
-
-2018-11-04  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/truetype/ttgxvar.c: Use enum definitions.
-
-2018-11-03  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Adjust condition.
-
-2018-11-03  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Tracing tweaks.
-
-2018-11-03  Alexei Podtelezhnikov  <[email protected]>
-
-	Revert due to specs: [truetype] Speed up variation IUP.
-
-2018-11-02  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/truetype/ttgxvar.c (ft_var_get_item_delta): Fixed logic.
-
-	Reported and tested by Behdad.
-
-2018-11-02  Shailesh Mistry  <[email protected]>
-
-	[autofit] Prevent SEGV.
-
-	See
-
-	  https://bugs.ghostscript.com/show_bug.cgi?id=697545
-
-	for more details on how the bug was found.
-
-	* src/autofit/afloader.c (af_loader_load_glyph): Propagate error
-	code.
-
-2018-10-31  Alexei Podtelezhnikov <[email protected]>
-
-	[truetype] Speed up variation IUP.
-
-	* src/truetype/ttgxvar.c (tt_delta_interpolate): Separate trivial
-	snapping to the same position from true interpolation.
-
-2018-10-31  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/type1/t1load.c (t1_set_mm_blend): Optimized.
-
-2018-10-31  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/truetype/ttgxvar.c (ft_var_get_item_delta): Optimized.
-
-2018-10-29  Werner Lemberg  <[email protected]>
-
-	[base] Fix numeric overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11080
-
-	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Use `MUL_LONG'.
-
-2018-10-29  Werner Lemberg  <[email protected]>
-
-	[cff] Fix numeric overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10988
-
-	* src/cff/cffparse.c (cff_parser_run)
-	[CFF_CONFIG_OPTION_OLD_ENGINE]: Use `NEG_LONG'.
-
-2018-10-27  Alexei Podtelezhnikov  <[email protected]>
-
-	[sfnt] Make `head' timestamps unsigned.
-
-	It's been more than 2^31 seconds since 1904.
-
-	* include/freetype/tttables.h (TT_Header): Change field types.
-	* src/sfnt/ttload.c (tt_face_load_generic_header): Updated.
-
-2018-10-27  Alexei Podtelezhnikov  <[email protected]>
-
-	Revert: Align FreeType with standard C memory management.
-
-2018-10-27  Werner Lemberg  <[email protected]>
-
-	[psaux] Fix numeric overflow.
-
-	Triggered by
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11157
-
-	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_blend>
-	[CFF_CONFIG_OPTION_OLD_ENGINE]: Fix integer overflow.
-
-2018-10-20  Werner Lemberg  <[email protected]>
-
-	Avoid endless loop while tracing (#54858).
-
-	* src/type1/t1load.c (parse_buildchar): Guard tracing stuff with
-	FT_DEBUG_LEVEL_TRACE.
-
-2018-10-17  David Demelier  <[email protected]>
-
-	* CMakeLists.txt: Specify `RUNTIME DESTINATION'.
-
-	This is needed for DLL builds.
-
-2018-10-07  Werner Lemberg  <[email protected]>
-
-	A missing Unicode cmap is not a fatal error.
-
-	This is a follow-up to the previous commit.
-
-	* src/cff/cffobjs.c (cff_face_init), src/sfnt/sfobjs.c
-	(sfnt_load_face), src/type1/t1objs.c (T1_Face_Init),
-	src/type42/t42objs.c (T42_Face_Init): Implement it.
-
-2018-10-07  Werner Lemberg  <[email protected]>
-
-	Fix handling of FT_CONFIG_OPTION_ADOBE_GLYPH_LIST (#54794).
-
-	* src/cff/cffcmap.c (cff_cmap_unicode_init), src/psaux/t1cmap.c
-	(t1_cmap_unicode_init), src/sfnt/ttcmap.c (tt_cmap_unicode_init):
-	Check `unicodes_init' field.
-
-2018-10-03  Werner Lemberg  <[email protected]>
-
-	[ftgrays] Fix typo in stand-alone mode (#54771).
-
-	* src/smooth/ftgrays.c (FT_THROW) [STANDALONE_ &&
-	FT_DEBUG_LEVEL_TRACE]: Fix call to `FT_ERR_CAT'.
-
-2018-10-02  Werner Lemberg  <[email protected]>
-
-	[psaux] Fix segfault.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10768
-
-	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
-	<cff_op_callothersubr> [CFF_CONFIG_OPTION_OLD_ENGINE]: Check
-	argument.
-
-2018-10-02  Werner Lemberg  <[email protected]>
-
-	[psaux] Fix numeric overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10740
-
-	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_roll>
-	[CFF_CONFIG_OPTION_OLD_ENGINE]: Use NEG_INT.
-
-2018-10-02  Werner Lemberg  <[email protected]>
-
-	[pshinter] Handle numeric overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10550
-
-	* src/pshinter/pshglob.c (psh_blues_snap_stem): Mask numeric
-	overflow.
-
-2018-09-27  Alexei Podtelezhnikov  <[email protected]>
-
-	Align FreeType with standard C memory management.
-
-	* include/freetype/ftsystem.h: Include FT_TYPES_H.
-	(*FT_Alloc_Func, *FT_Realloc_Func): Use size_t for the size arguments.
-	* src/raster/ftmisc.h: Ditto.
-
-	* builds/amiga/src/base/ftsystem.c, builds/unix/ftsystem.c,
-	* builds/vms/ftsystem.c, src/base/ftsystem.c (ft_alloc, ft_realloc):
-	Use size_t for the size arguments.
-
-	* src/base/ftdbgmem.c (ft_mem_debug_alloc, ft_mem_debug_realloc): Use
-	FT_Offset, aka size_t, for the size arguments.
-
-2018-09-25  Werner Lemberg  <[email protected]>
-
-	Fix handling of `FT_Bool'.
-
-	Before this commit we had code like
-
-	  (FT_Bool)( globals->glyph_styles[gindex] & 0x8000)
-
-	Since `FT_Bool' is defined to be an `unsigned char', the code
-	evaluated to something like
-
-	  (unsigned char)( 0x8532 & 0x8000)
-
-	which in turn expanded to
-
-	  (unsigned char)( 0x8000)
-
-	and finally yielded 0x00 – i.e., false – not as expected.
-
-	Problem reported and analyzed by Tony Smith <[email protected]>.
-
-	* include/freetype/fttypes.h (FT_BOOL): Add a comparison against
-	zero so that we always have a Boolean expression.
-
-	*/*: Replace castings to `FT_Bool' with calls to `FT_BOOL' where
-	possible.
-
-2018-09-23  Alexei Podtelezhnikov  <[email protected]>
-
-	[bdf] Speed up charmap access.
-
-	This makes FT_Get_Char_Index and FT_Get_Next_Char 4-5 times faster.
-
-	* src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Help binary search
-	with continuous prediction.
-
-2018-09-22  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/base/ftobjs.c (ft_glyphslot_preset_bimap): Another tweak.
-
-	This one should be clearer. When the rounded monochrome bbox collapses
-	we add a pixel that covers most if not all original cbox.
-
-2018-09-21  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/base/ftobjs.c (ft_glyphslot_preset_bimap): Further tweak.
-
-2018-09-21  Ben Wagner  <[email protected]>
-
-	Improve auto-hinter handling of bitmap fonts (#54681).
-
-	For bitmap fonts, `FT_Load_Glyph' should either return an error or
-	not set the format to `FT_GLYPH_FORMAT_OUTLINE'.  However, in this
-	case `FT_Load_Glyph' calls into the auto-hinter which calls back
-	into `FT_Load_Glyph' with `FT_LOAD_NO_SCALE' in the flags, which
-	marks the glyph as `FT_GLYPH_FORMAT_OUTLINE' with an empty path
-	(even though it doesn't have any path).  It appears that the
-	auto-hinter should not be called when the face doesn't have
-	outlines.  The current test for using the auto-hinter in
-	`FT_Load_Glyph' checks whether the driver supports scalable
-	outlines, but not if the face supports scalable outlines.
-
-	* src/base/ftobjs.c (FT_Load_Glyph): Directly check whether we have
-	scalable outlines.
-
-2018-09-21  Werner Lemberg  <[email protected]>
-
-	[raster] Fix disappearing vertical lines (#54589).
-
-	* src/raster/ftraster.c (Vertical_Sweep_Span): Handle special case
-	where both left and right outline exactly pass pixel centers.
-
-2018-09-20  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/base/ftobjs.c (ft_glyphslot_preset_bimap): Tiny rounding tweak.
-
-	This adds pixels in case a contour goes through the center
-	and they need to be turned on in the b/w rasterizer.
-
-2018-09-20  Alexei Podtelezhnikov  <[email protected]>
-
-	[pcf] Replace charmap implementation.
-
-	PCF comes with charmap lookup table, aka PCF encodings.  Using it
-	directly makes FT_Get_Char_Index and FT_Get_Next_Char 4-5 times
-	faster than the original BDF-like binary searches.
-
-	* src/pcf/pcf.h (PCF_EncodingRec): Removed.
-	(PCF_FaceRec): Remove `nencodings' and `encodings'.
-	* src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Replaced.
-	* src/pcf/pcfread.c (pcf_get_encodings): Store data differently.
-
-2018-09-20  Werner Lemberg  <[email protected]>
-
-	[base] Remove unused function `FT_GlyphLoader_CopyPoints'.
-
-	* include/freetype/internal/ftgloadr.h, src/base/ftgloadr.c
-	(FT_GlyphLoader_CopyPoints): Do it.
-
-2018-09-19  Alexei Podtelezhnikov  <[email protected]>
-
-	[pcf] Prepare to replace charmap implementation.
-
-	* src/pcf/pcf.h (PCF_FaceRec): Updated to include...
-	(PCF_EncRec): ... this new structure to store charmap geometry.
-
-	* src/pcf/pcfread.c (pcf_get_encodings): Store charmap geometry.
-
-2018-09-18  Alexei Podtelezhnikov  <[email protected]>
-
-	Remove unused fields.
-
-	* src/pcf.h (PCF_FaceRec): Remove `charmap' and `charmap_handle'.
-	* src/bdfdrvr.h (BDF_FaceRec): Ditto.
-	* src/winfonts/winfnt.h (FNT_FaceRec): Ditto.
-
-2018-09-17  Werner Lemberg  <[email protected]>
-
-	[pshinter] Handle numeric overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10396
-
-	* src/pshinter/pshglob.c: Include FT_INTERNAL_CALC_H.
-	(psh_blues_snap_stem): Mask numeric overflow.
-
-2018-09-13  Werner Lemberg  <[email protected]>
-
-	[truetype] Some fixes for VF checks.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10317
-
-	* src/truetype/ttgxvar.c (ft_var_load_gvar): Properly exit memory
-	frame if we have invalid glyph variation data offsets.
-	(tt_face_vary_cvt): Protect against missing `tuplecoords' array.
-	Fix typo.
-
-2018-09-13  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Fix last commit.
-
-2018-09-13  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Check `result'.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10316
-
-2018-09-12  John Tytgat  <[email protected]>
-
-	[sfnt] Better PS name handling (#54629).
-
-	* src/sfnt/sfdriver (IS_WIN, IS_APPLE): Omit language ID checks.
-	(get_win_string, get_apple_string): Return NULL when the PostScript
-	font name characters is not according to specification.
-	(get_win_string): Make trace output work if the high byte if
-	non-zero.
-	(sfnt_get_var_ps_name, sfnt_get_ps_name): Previously we preferred
-	Win PS name (when there is also an Apple PS name); change this into
-	a fallback to Apple PS name in case the Win PS name is invalid.
-
-2018-09-12  Werner Lemberg  <[email protected]>
-
-	[truetype] Improve VF check.
-
-	Triggered by
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10255
-
-	* src/truetype/ttgxvar.c (ft_var_load_gvar): Use better limit check
-	for `tupleCount'.
-
-2018-09-12  Werner Lemberg  <[email protected]>
-
-	* src/truetype/ttgxvar.c (ft_var_load_gvar): Check `glyphoffsets'.
-
-2018-09-10  Armin Hasitzka  <[email protected]>
-
-	* src/pshinter/pshrec.c (t2_hints_stems): Mask numeric overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10215
-
-2018-09-09  Ben Wagner  <[email protected]>
-
-	* builds/freetype.mk (refdoc-venv): Ensure python version (#54631).
-
-2018-09-07  Werner Lemberg  <[email protected]>
-
-	[truetype] Fix assertion failure.
-
-	Triggered by
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10212
-
-	* src/truetype/ttgload.c (load_truetype_glyph): Reintroduce
-	`opened_frame' (removed in a change from 2018-08-26) to handle
-	deallocation of the second frame.
-
-2018-09-05  Werner Lemberg  <[email protected]>
-
-	Synchronize `ftdebug.c' files.
-
-	* builds/amiga/src/base/ftdebug.c, builds/wince/ftdebug.c,
-	builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c'.
-
-2018-09-05  Nikhil Ramakrishnan  <[email protected]>
-
-	Add documentation guidelines file.
-
-	* docs/DOCGUIDE: New file.
-
-2018-09-04  Werner Lemberg  <[email protected]>
-
-	* devel/ftoption.h: Synchronize with master `ftoption.h'.
-
-2018-09-03  Nikhil Ramakrishnan  <[email protected]>
-
-	[docwriter] Don't break code snippets accross lines.
-
-	Reported as
-
-	  https://lists.nongnu.org/archive/html/freetype-devel/2018-08/msg00124.html
-
-	* docs/reference/markdown/stylesheets/extra.css (.md-typeset code):
-	Add rule `white-space'.
-
-2018-09-03  Werner Lemberg  <[email protected]>
-
-	*/*: s/PSNames/psnames/.
-
-	Only tracing messages are affected.
-
-2018-09-03  Werner Lemberg  <[email protected]>
-
-	[sfnt] Fix heap buffer overflow in CPAL handling.
-
-	* src/sfnt/ttcpal.c (tt_face_palette_set): Fix boundary test.
-	(tt_face_load_cpal): Updated.
-
-2018-09-01  Werner Lemberg  <[email protected]>
-
-	Remove `FT_Outline_{New,Done}_Internal'.
-
-	These public API functions(!) were always undocumented and have
-	escaped all clean-up efforts until now.
-
-	* include/freetype/ftoutln.h (FT_Outline_New_Internal,
-	FT_Outline_Done_Internal): Removed.
-
-	* src/base/ftoutln.h (FT_Outline_New_Internal,
-	FT_Outline_Done_Internal): Merge into...
-	(FT_Outline_New, FT_Outline_Done): ... these functions.
-
-	* docs/README: Updated.
-
-2018-08-30  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Check glyph format.
-
-2018-08-31  Armin Hasitzka  <[email protected]>
-
-	[errors] Refine the macro logic surrounding `FT_Error_String'.
-
-	* include/freetype/fterrors.h (FT_INCLUDE_ERR_PROTOS,
-	FT_ERR_PROTOS_DEFINED): Undefine `FT_INCLUDE_ERR_PROTOS' after
-	checking it and introduce a new macro that takes proper care of
-	multiple-inclusion protection.
-
-2018-08-31  Werner Lemberg  <[email protected]>
-
-	* src/base/ftdebug.c (FT_Throw): Restore missing `FT_UNUSED' calls.
-
-2018-08-31  Werner Lemberg  <[email protected]>
-
-	* src/base/ftdebug.c (FT_Throw): Reduce chattiness.
-
-2018-08-31  Werner Lemberg  <[email protected]>
-
-	* src/autofit/afhints.c (af_glyph_hints_reload): Add initialization.
-
-2018-08-30  Alexei Podtelezhnikov  <[email protected]>
-
-	Consolidate bitmap presetting and size assessment.
-
-	* include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap):
-	Change return type.
-	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Return the bitmap
-	size assessment.
-
-	* src/raster/ftrend1.c (ft_raster1_render): Use it to refuse the
-	rendering of enourmous or far-fetched outlines.
-	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
-
-2018-08-30  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Correct mono.
-
-2018-08-30  Armin Hasitzka  <[email protected]>
-
-	[errors] Introduce a macro to control `FT_Error_String'.
-
-	* devel/ftoption.h (FT_CONFIG_OPTION_ERROR_STRINGS),
-	include/freetype/config/ftoption.h (FT_CONFIG_OPTION_ERROR_STRINGS):
-	New macro.
-
-2018-08-30  Armin Hasitzka  <[email protected]>
-
-	[errors] Introduce `FT_Error_String'.
-
-	* include/freetype/fterrors.h (FT_Error_String),
-	src/base/fterrors.c (FT_Error_String): Implement `FT_Error_String'.
-
-	* src/base/ftbase.c, src/base/Jamfile (_source),
-	src/base/rules.mk (BASE_SRC): Add `fterrors.c' to the build logic.
-
-	* src/base/ftdebug.c (FT_Throw): Use `FT_Error_String'.
-
-2018-08-30  Werner Lemberg  <[email protected]>
-
-	[autofit] Trace `before' and `after' edges of strong points.
-
-	* src/autofit/afhints.h (AF_PointRec) [FT_DEBUG_AUTOFIT]: New arrays
-	`before' and `after'.
-
-	* src/autofit/afhints.c (af_get_strong_edge_index): New auxiliary
-	function.
-	(af_glyph_hints_dump_points): Trace `before' and `after' edges.
-	(af_glyph_hints_align_strong_points) [FT_DEBUG_AUTOFIT]: Set
-	`before' and `after' information.
-
-2018-08-30  Alexei Podtelezhnikov  <[email protected]>
-
-	[base] Overflow-resistant bitmap presetting.
-
-	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Implement it.
-
-2018-08-29  Armin Hasitzka  <[email protected]>
-
-	Fix numeric overflows.
-
-	* src/pshint/pshalgo.c (psh_hint_align, psh_hint_align_light,
-	psh_hint_table_find_strong_points): Fix numeric overflows.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10083
-
-2018-08-29  Werner Lemberg  <[email protected]>
-
-	[cff] Fix handling of `roll' op in old engine.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10080
-
-	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_roll>
-	[CFF_CONFIG_OPTION_OLD_ENGINE]: Use modulo for loop count, as
-	documented in the specification.
-
-2018-08-26  Werner Lemberg  <[email protected]>
-
-	* src/truetype/ttobjs.c (tt_size_read_bytecode): Trace CVT values.
-
-2018-08-26  Nikhil Ramakrishnan  <[email protected]>
-
-	* configure: Copy assets required by docwriter.
-
-	Copy directory `docs/reference/markdown' when FreeType is compiled in a
-	different directory.
-
-	Fixes `make refdoc' if builddir != srcdir.
-
-	Reported as
-
-	  https://lists.nongnu.org/archive/html/freetype-devel/2018-08/msg00083.html
-
-2018-08-26  Werner Lemberg  <[email protected]>
-
-	* src/pshint/pshalgo.c (psh_hint_overlap): Fix numeric overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10057
-
-2018-08-26  Werner Lemberg  <[email protected]>
-
-	Minor tracing adjustments.
-
-	* src/base/ftstream.c (FT_Stream_EnterFrame, FT_Stream_ExitFrame):
-	Trace.
-
-	* src/truetype/ttgload.c (TT_Access_Glyph_Frame): Remove tracing.
-
-2018-08-26  Werner Lemberg  <[email protected]>
-
-	[truetype] Avoid nested frames.
-
-	Triggered by
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10054
-
-	* src/truetype/ttgload.c (load_truetype_glyph): Don't use variable
-	`opened_frame' to trace whether a frame must be closed at the end of
-	function: This fails because `TT_Vary_Apply_Glyph_Deltas' (which
-	gets called for space glyphs) uses a frame by itself.  Instead,
-	close the frame after loading the header, then use another frame for
-	the remaining part of the glyph later on.
-
-	Also avoid calling `tt_get_metrics' twice under some circumstances.
-
-2018-08-26  Werner Lemberg  <[email protected]>
-
-	Various minor clean-ups.
-
-	* src/base/ftapi.c: Remove.  Unused.
-	* src/base/Jamfile (_sources): Updated.
-
-	* src/base/ftstream.c (FT_Stream_ReleaseFrame): Remove redundant
-	code.
-
-2018-08-25  Nikhil Ramakrishnan  <[email protected]>
-
-	Convert documentation markup to Markdown.
-
-	It is the result of a GSoC 2018 project; this separate ChangeLog
-	commit covers the last four commits
-
-	  ae5d1a4cec37557f31aec270332cfe886a62f9a0
-	  53c69ce04faed3dcc68ca0f54cb8d703d8babf69
-	  195728d5ba38f34fb2c2c20807c01656f2f59b66
-	  c962db28ea59225f0105c03d907d4a9b71765687
-
-	* docs/reference/markdown/images/favico.ico,
-	docs/reference/markdown/javascripts/extra.js,
-	docs/reference/markdown/stylesheets/extra.css: New files.
-
-	* docs/reference/.gitignore, docs/reference/README: Updated.
-
-	* src/tools/docmaker/*: Removed.  It has been replaced with
-	`docwriter', a python package available at
-
-	  https://pypi.org/project/docwriter/
-
-	* Jamfile: Updated.
-	* builds/ansi/ansi-def.mk, builds/beos/beos-def.mk,
-	builds/dos/dos-def.mk, builds/os2/os2-def.mk (BIN),
-	builds/unix/unixddef.mk, builds/windows/win32-def.mk: New variable.
-
-	* builds/unix/configure.raw: Check for `python' and `pip'.
-	If not present, warn that `make refdoc' will fail.
-	* builds/unix/unix-def.in (PYTHON, PIP, BIN): New variables.
-
-	* builds/freetype.mk (PYTHON, PIP, VENV_NAME, VENV_DIR, ENV_PYTHON,
-	ENV_PIP): New variables.
-	(refdoc): Updated.
-	(refdoc-venv): New target.
-	(.PHONY): Updated.
-
-2018-08-23  Werner Lemberg  <[email protected]>
-
-	Add macros for handling over-/underflowing `FT_Int64' values.
-
-	* include/freetype/internal/ftcalc.h (ADD_INT64, SUB_INT64,
-	MUL_INT64, DIV_INT64) [FT_LONG64]: New macros.
-
-	* src/base/ftcalc.c (ft_corner_orientation) [FT_LONG64]: Use
-	`SUB_INT64' and `MUL_INT64'.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10028
-
-2018-08-22  Werner Lemberg  <[email protected]>
-
-	[truetype] Improve legibility of `glyf' parsing.
-
-	* src/truetype/ttgload.c (ON_CURVE_POINT, X_SHORT_VECTOR,
-	Y_SHORT_VECTOR, REPEAT_FLAG, X_POSITIVE, SAME_X, Y_POSITIVE, SAME_Y,
-	OVERLAP_SIMPLE): New macros.
-	(TT_Load_Simple_Glyph): Use new macros to make code more readable.
-	Remove useless adjustment of `outline->tags' elements.
-
-2018-08-21  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/ttcpal.c (tt_face_load_cpal): Add missing safety check.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9981
-
-2018-08-18  Werner Lemberg  <[email protected]>
-
-	[psaux] Avoid slow PS font parsing in case of error.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9955
-
-	* src/psaux/psobjs.c (ps_parser_to_bytes): Set `parser->cursor' even
-	in case of error to avoid potential re-scanning.
-
-2018-08-18  Werner Lemberg  <[email protected]>
-
-	[cff] Fix heap buffer overflow in old engine.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9967
-
-	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
-	<cff_op_blend> [CFF_CONFIG_OPTION_OLD_ENGINE]: `num_designs' must be
-	non-zero.
-
-2018-08-16  Young Xiao  <[email protected]>
-
-	* builds/mac/ftmac.c (parse_fond): Fix buffer overrun.
-
-	Reported as bug #54515, duplicate of #43540.
-
-2018-08-16  Werner Lemberg  <[email protected]>
-
-	* builds/*/ftsystem.c (FT_COMPONENT): Updated also.
-
-2018-08-15  Alexei Podtelezhnikov  <[email protected]>
-
-	[bdf] Don't track duplicate encodings.
-
-	There is no harm except some umbiguity in broken fonts with duplicate
-	encodings.
-
-	* src/bdf/bdflib.c (_bdf_parse_glyphs): Remove duplicate tracking.
-	(_bdf_parse_t): Remove large `have' bitfield.
-
-2018-08-15  Werner Lemberg  <[email protected]>
-
-	Don't use `trace_' prefix for FT_COMPONENT arguments.
-
-	* include/freetype/internal/ftdebug.h (FT_TRACE_COMP,
-	FT_TRACE_COMP_): New auxiliary macros to add `trace_' prefix.
-	(FT_TRACE): Use `FT_TRACE_COMP'.
-
-	*/* (FT_COMPONENT): Updated.
-
-2018-08-14  Werner Lemberg  <[email protected]>
-
-	Use formatting string in FT_TRACEX calls for non-simple arguments.
-
-	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
-	<cff_op_hstem, cff_op_hintmask, cff_op_hlineto, cff_op_vhcurveto>:
-	Do it.
-
-	* src/psaux/pshints.c (cf2_hintmap_build): Ditto.
-
-	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
-	cf2_cmdVSTEM, cf2_cmdHLINETO, cf2_cmdRRCURVETO, cf2_cmdCALLSUBR,
-	cf2_escHSTEM3, cf2_cmdHINTMASK, cf2_cmdHVCURVETO>: Ditto.
-
-	* src/truetype/ttinterp.c (TT_RunIns): Ditto.
-
-2018-08-14  Alexei Podtelezhnikov  <[email protected]>
-
-	[bdf] Remove unused fields.
-
-	* src/bdf/bdf.h (bdf_font_t): Remove `nmod', `umod', and `modified',
-	which were set but never used.
-	* src/bdf/bdflib.c (_bdf_parse_{glyphs,properties}, bdf_load_font):
-	Updated accordingly.
-
-2018-08-14  Werner Lemberg  <[email protected]>
-
-	[cff] Fix another segv in old engine.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9872
-
-	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
-	[CFF_CONFIG_OPTION_OLD_ENGINE]: Disallow invalid T1 opcodes in
-	dictionaries.
-
-2018-08-14  Werner Lemberg  <[email protected]>
-
-	[cff] Fix missing error handling.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9865
-
-	* src/psaux/cffparse.c (cff_parser_run)
-	[CFF_CONFIG_OPTION_OLD_ENGINE]: Don't ignore return value of
-	`parse_charstrings_old'.
-
-2018-08-14  Alexei Podtelezhnikov  <[email protected]>
-
-	[bdf] Remove unused overflow storage.
-
-	* src/bdf/bdf.h (bdf_glyphlist_t): Remove this type.
-	(bdf_font_t): Remove `overflow' field.
-	* src/bdf/bdflib.c (bdf_free_font): Remove `overflow' freeing.
-
-2018-08-14  Werner Lemberg  <[email protected]>
-
-	[cff] Fix segv in old engine.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9864
-
-	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
-	<cff_op_random> [CFF_CONFIG_OPTION_OLD_ENGINE]: Use top dict's
-	`random' field directly if parsing dictionaries.
-
-2018-08-13  Alexei Podtelezhnikov  <[email protected]>
-
-	[bdf] Use unsigned types.
-
-	* src/bdf/bdf.h (bdf_glyph_t): Unsign `encoding'.
-	(bdf_font_t): Unsign `default_char'.
-	* src/bdf/bdfdrivr.h (BDF_encoding_el): Unsign `enc'.
-
-	* src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_glyphs,
-	_bdf_parse_start): Updated accordingly.
-	* src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Ditto.
-
-2018-08-13  Werner Lemberg  <[email protected]>
-
-	* src/type42/t42parse.c (t42_parse_sfnts): One more format check.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9832
-
-2018-08-11  Werner Lemberg  <[email protected]>
-
-	* src/base/ftcalc.c (FT_Matrix_Check): Fix integer overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9811
-
-2018-08-10  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Follow specs.
-
-2018-08-10  Ben Wagner  <[email protected]>
-
-	* src/sfnt/sfobjs.c (sfnt_done_face): Fix memory leak (#54435).
-
-2018-08-10  Werner Lemberg  <[email protected]>
-
-	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Improve tracing.
-
-2018-08-10  Werner Lemberg  <[email protected]>
-
-	Fix clang warnings.
-
-	* src/base/ftdebug.c (ft_trace_level_enabled,
-	ft_trace_level_disabled): Add `static' keyword.
-
-2018-08-09  Alexei Podtelezhnikov  <[email protected]>
-
-	[raster, smooth] Reinstate bitmap size limits.
-
-	This again moves outline and bitmap size checks one level up.
-
-	* src/base/ftoutln.c (FT_Outline_Render): Explicitly reject enormous
-	outlines.
-	* src/raster/ftrend1.c (ft_raster1_render): Reject enormous bitmaps
-	and, therefore, outlines that require them.
-	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
-
-	* src/raster/ftraster.c (ft_black_render): Remove outline size checks.
-	* src/smooth/ftgrays.c (gray_raster_render): Ditto.
-	[STANDALONE]: Remove `FT_Outline_Get_CBox' copy.
-
-2018-08-08  Alexei Podtelezhnikov  <[email protected]>
-
-	[pcf] Revert massive unsigning.
-
-2018-08-08  Werner Lemberg  <[email protected]>
-
-	[smooth] Improve tracing.
-
-	* src/smooth/ftgrays.c (gray_convert_glyph_inner): Only use tracing
-	if called the first time.
-	(gray_convert_glyph): Updated.
-
-2018-08-08  Werner Lemberg  <[email protected]>
-
-	Add internal functions `FT_Trace_Disable' and `FT_Trace_Enable'.
-
-	It sometimes makes sense to suppress tracing informations, for
-	example, if it outputs identical messages again and again.
-
-	* include/freetype/internal/ftdebug.h: Make `ft_trace_levels' a
-	pointer.
-	(FT_Trace_Disable, FT_Trace_Enable): New declarations.
-
-	* src/base/ftdebug.c (ft_trace_levels): Rename to...
-	(ft_trace_levels_enabled): ... this.
-	(ft_trace_levels_disabled): New array.
-	(ft_trace_levels): New pointer.
-	(FT_Trace_Disable, FT_Trace_Enable): Implement.
-	(ft_debug_init): Updated.
-
-2018-08-08  Werner Lemberg  <[email protected]>
-
-	Debugging improvements.
-
-	* src/base/ftobjs.c (pixel_modes): Move this array to top level
-	from ...
-	(FT_Load_Glyph): ... here.
-	(FT_Render_Glyph_Internal): Use `width' x `height' in trace message.
-	Use `pixel_modes'.
-
-2018-08-08  Alexei Podtelezhnikov  <[email protected]>
-
-	[pcf] Massive unsigning (part 2).
-
-	Treat all size related properties as unsigned values.
-
-	* src/pcf/pcf.h (PCF_ParsePropertyRec): Use unsigned `name' and
-	`value'.
-	* src/pcf/pcfread.c (pcf_get_properties, pcf_load_font): Updated
-	parsing code and handling of AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE,
-	RESOLUTION_X and RESOLUTION_Y.
-
-2018-08-08  Alexei Podtelezhnikov  <[email protected]>
-
-	[pcf] Massive unsigning (part 1).
-
-	Unofficial specifications hesitate to use unsigned 32-bit integers.
-	Negative values caused a lot of trouble in the past and it is safer
-	and easier to treat some properties as unsigned.
-
-	* src/pcf/pcf.h (PCF_AccelRec): Use unsigned values for `fontAscent',
-	`fontDescent', and `maxOverlap'.
-	* src/pcf/pcfread.c (pcf_load_font, pcf_get_accel): Updated.
-	* src/pcf/pcfdrivr.c (PCF_Glyph_Load, PCF_Size_Select,
-	PCF_Size_Request): Updated.
-
-2018-08-07  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/pcf/pcfread.c (pcf_get_bitmaps): Unsign `offsets' and
-	`bitmapSizes'.
-
-2018-08-06  Werner Lemberg  <[email protected]>
-
-	* devel/ftoption.h: Synchronize with main `ftoption.h'.
-
-2018-08-06  Alexei Podtelezhnikov  <[email protected]>
-
-	[pcf] Use unsigned types.
-
-	* src/pcf/pcf.h (PCF_Encoding): Use unsigned `enc'.
-	* src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Ditto.
-	* src/pcf/pcfread.c (pcf_get_encodings): Use unsigned types.
-
-2018-08-05  Werner Lemberg  <[email protected]>
-
-	* src/truetype/ttgload.c (compute_glyph_metrics): Fix overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/chromium/issues/detail?id=777151
-
-2018-08-04  Werner Lemberg  <[email protected]>
-
-	* src/truetype/ttinterp.c (opcode_name): Fix typos.
-
-2018-08-04  Werner Lemberg  <[email protected]>
-
-	Fix clang warnings.
-
-	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Fix type of
-	`orientation'.
-
-	* src/gxvalid/gxvcommn.c (gx_lookup_value_read): Fix signature.
-
-	* src/pcf/pcfread.c (pcf_get_encodings): Fix type of some variables.
-	Add cast.
-
-	* src/type1/t1load.c (parse_weight_vector): Fix cast.
-
-2018-07-31  Werner Lemberg  <[email protected]>
-
-	* src/cid/cidtoken.h: Handle `XUID' keyword.
-
-2018-07-31  Werner Lemberg  <[email protected]>
-
-	[cid] Trace PostScript dictionaries.
-
-	* src/cid/cidload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
-	(cid_load_keyword, cid_parse_font_matrix, parse_fd_array,
-	parse_expansion_factor, cid_parse_dict): Add tracing calls.
-	(parse_font_name): New function to trace `/FontName' keywords in
-	/FDArray dict.
-	(cid_field_records): Register `parse_font_name'.
-
-2018-07-30  Werner Lemberg  <[email protected]>
-
-	[cff] Fix typo.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9409
-
-	* src/cff/cffdrivr.c (cff_get_cid_from_glyph_index): Fix boundary
-	check.
-
-2018-07-29  Werner Lemberg  <[email protected]>
-
-	* src/pcf/pcfread.c (pcf_get_encodings): Another thinko.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9608
-
-2018-07-28  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Fix Harmony memory management.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9501
-
-	* src/smooth/ftgrays.c (ft_smooth_render_generic): Restore buffer
-	after each rendering in case of failure.
-
-2018-07-28  Werner Lemberg  <[email protected]>
-
-	[type1] Avoid segfaults with `FT_Get_PS_Font_Value'.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9610
-
-	* src/type1/t1driver.c (t1_ps_get_font_value): Protect against NULL.
-
-2018-07-27  Werner Lemberg  <[email protected]>
-
-	[truetype] Make `TT_Set_MM_Blend' idempotent (#54388).
-
-	* src/truetype/ttgxvar.c (tt_set_mm_blend): Correctly set
-	`face->doblend' if the current call to the function yields the same
-	blend coordinates as the previous call.
-
-2018-07-27  Werner Lemberg  <[email protected]>
-
-	[psaux, type1]: More tracing improvements.
-
-	* src/psaux/psintrp.c (cf2_interpT2CharString): Trace skipped
-	outline commands.
-
-	* src/psaux/t1decode.c (t1_decoder_parse_charstring): Fix
-	missing case.
-	(t1_decoder_parse_metrics): Make tracing output more compact.
-
-	* src/type1/t1gload.c (T1_Compute_Max_Advance): Be less verbose.
-	(T1_Get_Advances): Add tracing.
-
-2018-07-25  Werner Lemberg  <[email protected]>
-
-	[psaux, type1] Trace PostScript dictionaries and other things.
-
-	The tracing of /Encoding, /Subrs, and /Charstrings is rudimentary
-	right now.
-
-	* src/psaux/psobjs.c (ps_parser_load_field,
-	ps_parser_load_field_table): Add tracing calls.
-
-	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Make tracing
-	output more compact.
-
-	* src/type1/t1gload.c (T1_Compute_Max_Advance, T1_Get_Advances): Add
-	tracing messages.
-
-	* src/type1/t1load.c (parse_blend_axis_types,
-	parse_blend_design_positions, parse_blend_design_map,
-	parse_weight_vector, t1_load_keyword, t1_parse_font_matrix,
-	parse_encoding, parse_subrs, parse_charstrings, T1_Open_Face): Add
-	tracing calls.
-
-	* src/type1/t1objs.c (T1_Face_Init): Add tracing call.
-
-	* src/sfnt/sfobjs.c (sfnt_init_face): Make tracing message more
-	verbose.
-
-2018-07-25  Werner Lemberg  <[email protected]>
-
-	Fix minor ASAN run-time warnings.
-
-	* src/base/ftutil.c (ft_mem_alloc, ft_mem_realloc): Only call
-	`FT_MEM_ZERO' if we actually have a buffer.
-	(ft_mem_dup): Only call `ft_memcpy' if we actually have a buffer.
-
-2018-07-24  Alexei Podtelezhnikov  <[email protected]>
-
-	[build] Fortify dllexport/dllimport attributes (#53969,#54330).
-
-	We no longer use predefined _DLL, which can be defined for static
-	builds too with /MD. We use DLL_EXPORT and DLL_IMPORT instead,
-	following libtool convention.
-
-	* CMakeLists.txt [WIN32], builds/windows/vc2010/freetype.vcxproj:
-	Define DLL_EXPORT manually.
-
-	* include/freetype/config/ftconfig.h, builds/unix/ftconfig.in,
-	builds/vms/ftconfig.h, builds/windows/vc2010/index.html,
-	src/base/ftver.rc: /_DLL/d, s/FT2_DLLIMPORT/DLL_IMPORT/.
-
-2018-07-24  Werner Lemberg  <[email protected]>
-
-	[type1] Check relationship between number of axes and designs.
-
-	For Multiple Masters fonts we don't support intermediate designs;
-	this implies that
-
-	  number_of_designs == 2 ^^ number_of_axes
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9557
-
-	* src/type1/t1load.c (T1_Open_Face): Ensure above constraint.
-	(T1_Get_MM_Var): Remove now redundant test.
-
-2018-07-24  Hin-Tak Leung  <[email protected]>
-
-	[truetype] Match ttdebug's naming of instruction mnemonics.
-
-	* src/truetype/ttinterp.c: The form used in ttdebug,
-	"MDRP[G,B,W,?]", etc., is slightly more readable than
-	"MDRP[00,01,02,03]".
-
-2018-07-24  Werner Lemberg  <[email protected]>
-
-	* src/pcf/pcfread.c (pcf_get_encodings): Thinko.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9561
-
-2018-07-22  Werner Lemberg  <[email protected]>
-
-	* src/pcf/pcfread.c (pcf_get_encodings): Check index of defaultChar.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9527
-
-2018-07-22  Werner Lemberg  <[email protected]>
-
-	* src/pcf/pcfread.c (pcf_load_font): Fix number of glyphs.
-
-	This is an oversight of the module change 2018-07-21.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9524
-
-2018-07-22  Werner Lemberg  <[email protected]>
-
-	[cid] Sanitize `BlueShift' and `BlueFuzz'.
-
-	This code is taken from the type1 module.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9510
-
-	* src/cid/cidload.c (parse_fd_array): Set some private dict default
-	values.
-	(cid_face_open): Do the sanitizing.
-	Fix some tracing messages.
-
-2018-07-21  Werner Lemberg  <[email protected]>
-
-	[pcf] Fix handling of the undefined glyph.
-
-	This change makes the driver use the `defaultChar' property of PCF
-	files.
-
-	* src/pcf/pcf.h (PCF_FaceRec): Change type of `defaultChar' to
-	unsigned.
-
-	* src/pcf/pcfread.c (pcf_get_encodings): Read `defaultChar' as
-	unsigned.
-	Validate `defaultChar'.
-	If `defaultChar' doesn't point to glyph index zero, swap glyphs with
-	index zero and index `defaultChar' and adjust the encodings
-	accordingly.
-
-	* src/pcf/pcfdrivr.c (pcf_cmap_char_index, pcf_cmap_char_next,
-	PCF_Glyph_Load): Undo change from 2002-06-16 which always enforced
-	the first character in the font to be the default character.
-
-2018-07-20  Armin Hasitzka  <[email protected]>
-
-	Move the legacy fuzz target to the `freetype-testing' repository.
-
-	It can now be found at
-
-	  https://github.com/freetype/freetype2-testing/tree/master/fuzzing/src/legacy
-
-	* src/tools/ftfuzzer: Remove this folder and its contents from the
-	repository.
-
-2018-07-20  Werner Lemberg  <[email protected]>
-
-	[cff] Avoid left-shift of negative numbers (#54322).
-
-	* src/cff/cffgload.c (cff_slot_load): Use multiplication.
-
-2018-07-17  Werner Lemberg  <[email protected]>
-
-	Allow FT_ENCODING_NONE for `FT_Select_Charmap'.
-
-	This is a valid encoding tag for BDF, PCF, and Windows FNT, and
-	there is no reason to disallow it for these formats.
-
-	* src/base/ftobjs.c (FT_Select_Charmap): Implement it.
-
-2018-07-17  Werner Lemberg  <[email protected]>
-
-	* src/pcf/pcfread.c (pcf_get_encodings): Trace `defaultChar'.
-
-2018-07-16  Armin Hasitzka  <[email protected]>
-
-	* include/freetype/internal/ftcalc.h: Add macros for handling
-	harmless over-/underflowing `FT_Int' values.
-
-	* src/sfnt/sfdriver.c (fixed2float): Fix negation of
-	`(int)(-2147483648)'.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9423
-
-2018-07-16  Werner Lemberg  <[email protected]>
-
-	* src/truetype/ttgxvar.c (tt_set_mm_blend): Fix off-by-one error.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9412
-
-2018-07-12  Werner Lemberg  <[email protected]>
-
-	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Init `cbox'.
-
-	Taken from patch #9667, written by Steve Langasek
-	<[email protected]>.
-
-	This fixes a build failure (most probably a bug in gcc) on ppc64el
-	when building with -O3.
-
-2018-07-05  Werner Lemberg  <[email protected]>
-
-	Fix typo (#54238).
-
-	* src/base/ftcolor.c (FT_Palette_Set_Foreground_Color)
-	[!TT_CONFIG_OPTION_COLOR_LAYERS]: Add return value.
-
-2018-07-05  Werner Lemberg  <[email protected]>
-
-	Adjust table size comparisons (#54242).
-
-	* src/sfnt/ttcpal.c (tt_face_load_cpal): Implement it.
-
-2018-07-05  Werner Lemberg  <[email protected]>
-
-	Fix more 32bit issues (#54208).
-
-	* src/cff/cffload.c (cff_blend_build_vector): Convert assertion into
-	run-time error.
-
-	* src/truetype/ttgxvar.c (ft_var_to_normalized): Protect against
-	numeric overflow.
-
-2018-07-04  Werner Lemberg  <[email protected]>
-
-	Fix 32bit build warnings (#54239).
-
-	* src/base/ftbitmap.c (FT_Bitmap_Blend): Add casts to avoid signed
-	vs. unsigned comparisons.
-
-	* srb/sfnt/ttcolr.c (tt_face_get_colr_layer): Ditto.
-
-2018-07-02  Jeff Carey  <[email protected]>
-
-	* src/psnames/psmodule.c (ps_unicodes_init): Fix alloc debugging.
-
-2018-07-02  Werner Lemberg  <[email protected]>
-
-	s/palette_types/palette_flags/.
-
-	Suggested by Behdad.
-
-2018-07-02  Werner Lemberg  <[email protected]>
-
-	Make `FT_Get_Color_Glyph_Layer' return FT_Bool.
-
-	* include/freetype/freetype.h, src/base/ftobjs.c
-	(FT_Get_Color_Glyph_Layer, FT_Render_Glyph_Internal): Updated.
-
-	* include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func),
-	src/sfnt/ttcolr.h, src/sfnt/ttcolr.c (tt_face_get_colr_layer):
-	Updated.
-
-2018-07-01  Werner Lemberg  <[email protected]>
-
-	* src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Guard SFNT function.
-
-	Reported by Behdad.
-
-2018-06-28  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/base/fttrigon.c (FT_Tan): Improve accuracy.
-	(FT_Vector_Rotate): Simplify.
-
-2018-06-28  Alexei Podtelezhnikov  <[email protected]>
-
-	* src/base/ftobjs.c (FT_Set_Charmap): Robustify.
-
-2018-06-25  Werner Lemberg  <[email protected]>
-
-	[truetype] Fix memory leak.
-
-	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Add initializers.
-	Fix typo in `goto' destination.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9071
-
-2018-06-25  Werner Lemberg  <[email protected]>
-
-	* src/truetype/ttgxvar.c (tt_face_vary_cvt): Add initializers.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9070
-
-2018-06-24  Werner Lemberg  <[email protected]>
-
-	[truetype] Increase precision while applying VF deltas.
-
-	It turned out that we incorrectly round CVT and glyph point deltas
-	before accumulation, leading to severe positioning errors if there
-	are many delta values to sum up.
-
-	Problem reported by Akiem Helmling <[email protected]> and analyzed
-	by Behdad.
-
-	* src/truetype/ttgxvar.c (ft_var_readpackeddelta): Return deltas in
-	16.16 format.
-	(tt_face_var_cvt): Collect deltas in `cvt_deltas', which is a 16.16
-	format array, and add the accumulated values to the CVT at the end
-	of the function.
-	(TT_Vary_Apply_Glyph_Deltas): Store data in `points_org' and
-	`points_out' in 16.16 format.
-	Collect deltas in `point_deltas_x' and `point_deltas_y', which are
-	16.16 format arrays, and add the accumulated values to the glyph
-	coordinates at the end of the function.
-
-2018-06-24  Werner Lemberg  <[email protected]>
-
-	New base function `FT_Matrix_Check' (#54019).
-
-	* src/base/ftcalc.c (FT_Matrix_Check): New base function to properly
-	reject degenerate font matrices.
-
-	* include/freetype/internal/ftcalc.h: Updated.
-
-	* src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c
-	(cid_parse_font_matrix), src/type1/t1load.c (t1_parse_font_matrix),
-	src/type42/t42parse.c (t42_parse_font_matrix): Use
-	`FT_Matrix_Check'.
-
-2018-06-23  Werner Lemberg  <[email protected]>
-
-	Fix typo.
-
-	Reported by Behdad.
-
-	* src/base/ftcolor.c (FT_Palette_Data_Get)
-	[!TT_CONFIG_OPTION_COLOR_LAYERS]: s/apalette/apalette_data/.
-
-2018-06-21  Werner Lemberg  <[email protected]>
-
-	s/FT_PALETTE_USABLE_WITH_/FT_PALETTE_FOR_/.
-
-	* include/freetype/ftcolor.h, include/freetype/internal/sfnt.h,
-	src/sfnt/ttcolr.c: Do it.
-
-2018-06-19  Werner Lemberg  <[email protected]>
-
-	[sfnt] Fix CPAL heap buffer overflow.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8968
-
-	* src/sfnt/ttcpal.c (tt_face_load_cpal): Guard CPAL version 1
-	offsets.
-
-2018-06-19  Werner Lemberg  <[email protected]>
-
-	Doh.  Don't use CPAL or COLR data if tables are missing.
-
-	Reported by Alexei.
-
-	* src/sfnt/ttcolr.c (tt_face_get_colr_layer): Return immediately if
-	`colr' is NULL.
-
-	* src/sfnt/ttcpal.c (tt_face_palette_set): Return immediately, if
-	`cpal' is NULL.
-
-2018-06-17  Alexei Podtelezhnikov  <[email protected]>
-
-	[base] Introduce `FT_New_Glyph'.
-
-	This function facilitates access to full capabilities of FreeType
-	rendering engine for custom glyphs. This can be quite useful for
-	consistent rendering of mathematical and chemical formulas, e.g.
-
-	  https://bugs.chromium.org/p/chromium/issues/detail?id=757078
-
-	* include/freetype/ftglyph.h, src/base/ftglyph.c (FT_New_Glyph): New
-	function.
-
-2018-06-17  Armin Hasitzka  <[email protected]>
-
-	[bdf] Fix underflow of an unsigned value.
-
-	bdflib.c:1562 could be reached with `font->glyphs_used == 0'.  That
-	caused an underflow of the unsigned value which results in undefined
-	behaviour.
-
-	* src/bdf/bdflib.c (_bdf_parse_glyphs): Bail out earlier than before
-	if the `ENCODING' keyword cannot be found.
-
-2018-06-17  Werner Lemberg  <[email protected]>
-
-	[base] Add tracing for `FT_Bitmap_Blend'.
-
-	* include/freetype/internal/fttrace.h (trace_bitmap): New
-	enumeration.
-
-	* src/base/ftbitmap.c (FT_COMPONENT): Define.
-	(FT_Bitmap_Blend): Add `FT_TRACE5' calls.
-
-2018-06-17  Werner Lemberg  <[email protected]>
-
-	s/trace_bitmap/trace_checksum/.
-
-	* include/freetype/internal/fttrace.h: s/bitmap/checksum/.
-
-	* src/base/ftobjs.c (FT_COMPONENT): s/trace_bitmap/trace_checksum/.
-	Adjust code.
-
-2018-06-16  Werner Lemberg  <[email protected]>
-
-	[sfnt] Fix color glyph layer loading.
-
-	* src/sfnt/ttcolr.c (Colr): Add `table_size' field.
-	(tt_face_load_colr): Set it.
-	(tt_face_get_colr_layer): Check pointer limit for layer entries.
-
-2018-06-16  Werner Lemberg  <[email protected]>
-
-	[sfnt] Fix color palette loading.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8933
-
-	* src/sfnt/ttcpal.c (Cpal): Add `table_size' field.
-	(tt_face_load_cpal): Set it.
-	(tt_face_palette_set): Check pointer limit for color entries.
-
-2018-06-16  Werner Lemberg  <[email protected]>
-
-	* src/base/ftbitmap.c (FT_Bitmap_Blend): Avoid integer overflow.
-
-2018-06-16  Werner Lemberg  <[email protected]>
-
-	Add `FT_Bitmap_Blend' API.
-
-	Still missing: Support for negative bitmap pitch and subpixel offset
-	of source bitmap.
-
-	* include/freetype/ftbitmap.h, src/base/ftbitmap.c
-	(FT_Bitmap_Blend): New function.
-
-2018-06-14  Werner Lemberg  <[email protected]>
-
-	Replace `FT_Get_GlyphLayers' with `FT_Get_Color_Glyph_Layer'.
-
-	This avoids any additional allocation of COLR related structures in
-	a glyph slot.
-
-	* include/freetype/freetype.h (FT_Glyph_Layer, FT_Glyph_LayerRec,
-	FT_Get_GlyphLayers): Removed.
-
-	* include/freetype/internal/ftobjs.h (FT_Colr_InternalRec): Removed.
-	(FT_Slot_InternalRec): Remove `color_layers'.
-
-	* include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func):
-	Removed.
-	(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Remove
-	`load_colr_layer'.
-
-	* src/base/ftobjs.c (ft_glyph_slot_done): Updated.
-	(FT_Render_Glyph_Internal): Use `FT_Get_Color_Glyph_Layer'.
-	(FT_Get_GlyphLayers): Removed.
-
-	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
-
-	* src/sfnt/ttcolr.c (tt_face_load_colr_layers): Removed.
-	* src/sfnt/ttcolr.h: Updated.
-
-	* src/truetype/ttgload.c (TT_Load_Glyph): Updated.
-
-2018-06-14  Werner Lemberg  <[email protected]>
-
-	Provide iterative API to access `COLR' data.
-
-	This solution doesn't store any data in an `FT_GlyphSlot' object.
-
-	* include/freetype/freetype.h (FT_LayerIterator): New structure.
-	(FT_Get_Color_Glyph_Layer): New function.
-
-	* include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func): New
-	function type.
-	(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it.
-
-	* src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Implement it.
-
-	* src/sfnt/ttcolr.c (tt_face_get_colr_layer): New function.
-	* src/sfnt/ttcolr.h: Updated.
-
-	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
-
-2018-06-14  Werner Lemberg  <[email protected]>
-
-	Add glyph index and glyph load flags to glyph slot.
-
-	* include/freetype/freetype.h (FT_GlyphSlotRec): Rename unused
-	`reserved' field to `glyph_index'.
-
-	* include/freetype/internal/ftobjs.h (FT_Slot_InternalRec): Add
-	`load_flags' field.
-
-	* src/base/ftobjs.c (FT_Load_Glyph): Set new fields.
-
-2018-06-14  Werner Lemberg  <[email protected]>
-
-	[sfnt] Move `CPAL' stuff into separate files.
-
-	* src/sfnt/sfdriver.c: Include `ttcpal.h'.
-	* src/sfnt/sfnt.c: Include `ttcpal.c'.
-
-	* src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: Move CPAL stuff to ...
-	* src/sfnt/ttcpal.c, src/sfnt/ttcpal.c: ... these new files.
-
-	* src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC):
-	Updated.
-
-	* include/freetype/internal/fttrace.h: Add support for `colr' and
-	`cpal'.
-	Sort entries.
-
-2018-06-13  Werner Lemberg  <[email protected]>
-
-	[sfnt] Separate `CPAL' and `COLR' table handling.
-
-	Later on we want to support the `SVG' table also, which needs `CPAL'
-	(but not `COLR').
-
-	* include/freetype/internal/sfnt.h (SFNT_Interface): Add `load_cpal'
-	and `free_cpal' fields.
-	(FT_DEFINE_SFNT_INTERFACE): Updated.
-
-	* include/freetype/internal/tttypes.h (TT_FaceRec): Replace
-	`colr_and_cpal' fields with `cpal' and `colr'.
-
-	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
-
-	* src/sfnt/sfobjs.c (sfnt_load_face, sfnt_done_face): Updated.
-
-	* src/sfnt/ttcolr.c (Colr, Cpal): Add `table' field.
-	(ColrCpal): Removed.
-	(tt_face_load_colr): Split off CPAL handling into...
-	(tt_face_load_cpal): ... this new function.
-	(tt_face_free_colr): Split off CPAL handling into...
-	(tt_face_free_cpal): ... this new function.
-	(tt_face_load_colr_layers, tt_face_palette_set): Updated.
-
-	* src/sfnt/ttcolr.h: Updated.
-
-	* src/truetype/ttgload.c (TT_Load_Glyph): Updated.
-
-2018-06-12  Werner Lemberg  <[email protected]>
-
-	[sfnt] Fix `sizeof' thinko.
-
-	* src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_palette_set): Don't
-	use `sizeof' for computing array limit.
-
-2018-06-12  Werner Lemberg  <[email protected]>
-
-	Finish CPAL/COLR support (4/4).
-
-	* src/sfnt/ttcolr.c (tt_face_find_color): Removed.
-	(tt_face_colr_blend_layer): Use `face->palette' instead of calling
-	`tt_face_find_color'.
-	Use and set text foreground color.
-
-2018-06-12  Werner Lemberg  <[email protected]>
-
-	Finish CPAL/COLR support (3/4).
-
-	* src/base/ftcolor.c: Include FT_INTERNAL_SFNT_H.
-	(FT_Palette_Select, FT_Palette_Set_Foreground_Color): Implement
-	functions.
-
-2018-06-12  Werner Lemberg  <[email protected]>
-
-	Finish CPAL/COLR support (2/4).
-
-	* src/sfnt/ttcolr.c (tt_face_palette_set): New function.
-	(tt_face_load_colr): Allocate `face->palette' and call
-	`tt_face_palette_set'.
-	Adjust return error code in case of error.
-
-	* src/sfnt/ttcolr.h: Updated.
-
-	* include/freetype/internal/sfnt.h (TT_Set_Palette_Func): New
-	function type.
-	(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it.
-
-	* src/sfnt/sfdriver.c (sfnt_interface), src/sfnt/sfobjs.c
-	(sfnt_done_face): Updated.
-
-2018-06-12  Werner Lemberg  <[email protected]>
-
-	Finish CPAL/COLR support (1/4).
-
-	* include/freetype/internal/tttypes.h (TT_FaceRec): New fields
-	`palette_index', `palette', `have_foreground_color' and
-	`foreground_color'.
-
-2018-06-12  Werner Lemberg  <[email protected]>
-
-	[sfnt] Minor.
-
-	* src/sfnt/ttcolr.c (tt_face_load_colr_layers):
-	s/palette_index/palette_entry_index/ for consistency.
-	Adjust return error code in case of error.
-
-2018-06-11  Alexei Podtelezhnikov  <[email protected]>
-
-	[raster] Clean up.
-
-	* src/raster/ftraster.c (black_TWorker, SCALED, Set_High_Precision):
-	Clean up after 5-level gray removal (8dc8635874).
-	(Vertical_Sweep_Span): Be brief.
-
-2018-06-10  Werner Lemberg  <[email protected]>
-
-	[sfnt] Fix compiler warnings.
-
-	* src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_load_colr_layers,
-	tt_face_colr_blend_layer): Add `NULL' initializers.
-
-2018-06-10  Werner Lemberg  <[email protected]>
-
-	s/FT_Palette/FT_Palette_Data/, s/palette/palette_data/.
-
-	* include/freetype/ftcolor.h, include/freetype/internal/tttypes.h,
-	src/base/ftcolor.c, src/sfnt/sfobjs.c, src/sfnt/ttcolr.c: Updated.
-
-2018-06-10  Nikolaus Waxweiler  <[email protected]>
-
-	CMakeLists: also accept IOS_PLATFORM=SIMULATOR64
-
-	This might be needed to build FreeType for the iOS simulator. See
-	https://savannah.nongnu.org/bugs/index.php?54048. Patch contributed
-	by Steve Robinson.
-
-	* CMakeLists.txt: Accept IOS_PLATFORM=SIMULATOR64
-
-2018-06-10  Werner Lemberg  <[email protected]>
-
-	Implement `FT_Palette_Get'.
-
-	* src/base/ftcolor.c: New file.
-
-	* src/base/Jamefile (_sources), src/base/rules.mk (BASE_SRC),
-	src/base/ftbase.c: Add `ftcolor.c'.
-
-2018-06-10  Werner Lemberg  <[email protected]>
-
-	* src/sfnt/ttcolr.c (tt_face_load_colr): Improve overflow checks.
-
-2018-06-09  Alexei Podtelezhnikov  <[email protected]>
-
-	[raster] Deal with pitch sign earlier.
-
-	* src/raster/ftraster.c (black_TWorker): Remove unused `traceG',
-	s/bTarget/bOrigin/.
-	(Render_Glyph): Set `ras.bOrigin' at the bottom-left corner.
-	(Vertical_Sweep_Init, {Vertical,Horizontal}_Sweep_{Span,Drop}):
-	Updated accordingly.
-
-2018-06-09  Werner Lemberg  <[email protected]>
-
-	[sfnt] Read `CPAL' version 1 tables.
-
-	* include/freetype/internal.tttypes.h: Include FT_COLOR_H.
-	(TT_FaceRec): Add `palette' field.
-
-	* src/sfnt/ttcolr.c: Include FT_COLOR_H.
-	(Cpal): Remove all data covered by the new `palette' field in
-	`TT_FaceRec'.
-	(tt_face_load_colr): Updated.
-	Read `CPAL' version 1 data.
-	(tt_face_load_colr_layers, tt_face_find_color): Updated.
-
-	* src/sfnt/sfobjs.c (sfnt_done_face): Free glyph color palette data.
-
-2018-06-07  Alexei Podtelezhnikov  <[email protected]>
-
-	[base] API for Harmony LCD rendering.
-
-	This introduces `FT_Library_SetLcdGeometry' for setting up arbitrary
-	LCD subpixel geometry including non-striped patterns.
-
-	* src/base/ftlcdfil.c (FT_Library_SetLcdGeometry): New function.
-	* include/freetype/ftlcdfil.h: Document it.
-	* include/freetype/freetype.h: Minor.
-	* include/freetype/ftchapters.h: Minor.
-
-2018-06-06  Werner Lemberg  <[email protected]>
-
-	ftcolor.h: Redesign API.
-
-	While going to implement it I noticed that I need access to most of
-	the `CPAL' elements; I thus plan to add a `cpal' field to
-	`TT_FaceRec', which makes most of the previously suggested API
-	functions obsolete because the fields will be directly accessible.
-
-2018-06-06  Parth Wazurkar  <[email protected]>
-
-	[bdf, pcf] Remove deprecated FT_FACE_FLAG_FAST_GLYPHS flag.
-
-	* src/bdf/bdfdrivr.c (BDF_Face_Init): Remove deprecated
-	FT_FACE_FLAG_FAST_GLYPHS flag.
-
-	* src/pcf/pcfread.c (pcf_load_font): Remove deprecated
-	FT_FACE_FLAG_FAST_GLYPHS flag.
-
-2018-06-06  Werner Lemberg  <[email protected]>
-
-	[smooth, raster] Limit bitmap size (#54019).
-
-	* src/raster/ftraster.c [STANDALONE] (FT_Outline_Get_CBox): Add
-	function.
-	[!STANDALONE]: Include FT_OUTLINE_H.
-	(ft_black_render): Compute CBox and reject glyphs larger than
-	0xFFFF x 0xFFFF.
-
-	* src/smooth/ftgrays.c (gray_raster_render): Reject glyphs larger
-	than 0xFFFF x 0xFFFF.
-
-2018-06-03  Armin Hasitzka  <[email protected]>
-
-	* src/smooth/ftgrays.c (gray_convert_glyph): Remove unused variables.
-
-2018-06-03  Werner Lemberg  <[email protected]>
-
-	* src/tools/glnames.py (main): Emit header in `light' comment style.
-
-2018-06-02  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Attempt to mitigate bug #54019.
-
-	The robust rendering of estra large glyphs came with unbearable cost.
-	The old way of bisecting should fail but fail faster.
-
-	* src/smooth/ftgrays.c (gray_convert_glyph): Switch back to bisecting
-	in y-direction.
-
-2018-06-02  Werner Lemberg  <[email protected]>
-
-	* src/truetype/ttinterp.c (Ins_MIRP): Use SUB_LONG; avoid FT_ABS.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8706
-
-2018-06-02  Werner Lemberg  <[email protected]>
-
-	* src/autofit/afwarp.h: Use AF_CONFIG_OPTION_USE_WARPER (#54033).
-
-2018-05-31  Werner Lemberg  <[email protected]>
-
-	* src/raster/ftraster.c (black_TWorker_): Remove `gTarget' field.
-
-	This is no longer used.
-
-2018-05-31  Werner Lemberg  <[email protected]>
-
-	[sfnt] Get colors from `CPAL' table in right order (#54015).
-
-	* src/sfnt/ttcolr.c (tt_face_find_color): Fix it.
-
-2018-05-30  Werner Lemberg  <[email protected]>
-
-	ftcolor.h: Improve API design, fix typos (#54011, #54014).
-
-	* include/freetype/ftcolor.h (FT_Palette_Get_Names): Replace with...
-	(FT_Palette_Get_Name_IDs): ... this function.
-	(FT_Palette_Get_Entry_Names): Replace with...
-	(FT_Palette_Get_Entry_Name_IDs): ... this function
-	s/FT_Palette_Set_Foreground_COlor/FT_Palette_Set_Foreground_Color/.
-
-2018-05-30  Armin Hasitzka  <[email protected]>
-
-	Beautify a3cfed5e87232c933bdc64f43e8ebebcfd18b41b.
-
-	* src/autofit/afloader.c (af_loader_load_glyph): Move the
-	initialisationand declaration of variables into the if-block.
-
-2018-05-30  Armin Hasitzka  <[email protected]>
-
-	Fix pointer underflow.
-
-	The declaration of `edge2' can be reached with `edge1 == NULL' and
-	`axis->edges == 0' which results in undefined behaviour.
-
-	* src/autofit/afloader.c (af_loader_load_glyph): Initialise `edge2'
-	after checking `axis->num_edges > 1'.  `edge1 != NULL' can be assumed.
-
-2018-05-30  Werner Lemberg  <[email protected]>
-
-	Various minor color fixes.
-
-	* include/freetype/config/ftheader.h (FT_COLOR_H): New macro.
-
-	* include/freetype/internal/ftobjs.h (FT_Colr_Internal): Change
-	type of `load_flags' to `FT_Int32'.
-
-	* include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func): Change
-	type of `idx' to `FT_UInt'.
-	(TT_Blend_Colr_Func): Change type of `color_index' to `FT_UInt'.
-
-	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Change type of
-	`load_flags' to `FT_Int32'.
-
-	* src/sfnt/ttcolr.c (find_base_glyph_record,
-	tt_face_load_colr_layers): Change type of `glyph_id' to `FT_UInt'.
-	(tt_face_find_color, tt_face_colr_blend_layer): Change type of
-	`color_index' to `FT_UInt'.
-	Fix signedness and type issues.
-
-	* src/sfnt/ttcolr.h: Updated.
-
-2018-05-25  Nikhil Ramakrishnan  <[email protected]>
-
-	[docmaker] Fix missing `Defined in (...)' under Windows/Cygwin.
-
-	This platform uses backslashes for paths, which docmaker didn't
-	understand correctly.
-
-	* src/tools/docmaker/tohtml.py (HtmlFormatter::blockEnter): Use
-	`os.path.normpath' to normalize the path for the platform being
-	used.
-
-2018-05-24  Alexei Podtelezhnikov  <[email protected]>
-
-	[smooth] Formalize Harmony LCD rendering.
-
-	This generalizes magic outline shifts that make Harmony LCD
-	rendering work in terms of precise two-dimensional RGB subpixel
-	positions. These coordinates are now set in time of the `smooth'
-	module initialization and later used to shift a glyph outline for
-	rendering. FT_RENDER_MODE_LCD and FT_RENDER_MODE_LCD_V use the same
-	coordinates. The letter, however, rotates them before using.
-	The LCD bitmap padding is also calculated using these coordinates.
-
-	* include/freetype/internal/ftobjs.h (FT_LibraryRec): New array field
-	`lcd_geometry'.
-	* src/base/ftlcdfil.c (ft_lcd_padding): Reworked.
-	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Updated accordingly.
-
-	* src/smooth/ftsmooth.c [!FT_CONFIG_OPTION_SUBPIXEL_RENDERING]
-	(ft_smooth_init): Initialize `lcd_geometry'.
-	(ft_smooth_render_generic): Formalize outline shifts.
-
-2018-05-22  Werner Lemberg  <[email protected]>
-
-	[truetype] Reject elements of composites with invalid glyph indices.
-
-	Reported as
-
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8413
-
-	* src/truetype/ttgload.c (TT_Load_Composite_Glyph): Implement it.
-
-2018-05-22  Werner Lemberg  <[email protected]>
-
-	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Trace # of points.
-
-2018-05-20  Werner Lemberg  <[email protected]>
-
-	* include/freetype/ftcolor.h: New file.
-
-	This is an interface to the `CPAL' OpenType table.  No
-	implementation yet.
-
-2018-05-18  Alexei Podtelezhnikov  <[email protected]>
-
-	* include/freetype/internal/ftcalc.h (FT_MSB): Verified `_MSC_VER'.
-
-	Actually `_BitScanReverse' is available since VS2005.
-
-2018-05-18  Werner Lemberg  <[email protected]>
-
-	* include/freetype/internal/ftcalc.h (FT_MSB): Use `_MSC_VER' value.
-
-	Older VC versions don't provide `_BitScanReverse'.  We test for VC
-	2013.
-
-	Reported by John Emmas <[email protected]>.
-
-2018-05-17  Werner Lemberg  <[email protected]>
-
-	s/inline/__inline/ for MSVC.
-
-	Reported by John Emmas <[email protected]>.
-
-	* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Do it.
-
-2018-05-16  Werner Lemberg  <[email protected]>
-
-	Add function `FT_Get_GlyphLayers' to access `COLR' table data.
-
-	* include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec): Move this
-	structure to...
-	* include/freetype/freetype.h (FT_Glyph_LayerRec): ... this
-	header file.
-	(FT_Glyph_Layer): New typedef.
-	Update code to use it where appropriate.
-
-	* src/base/ftobjs.c (FT_Get_GlyphLayers): New function.
-
-2018-05-15  Alexei Podtelezhnikov  <[email protected]>
-
-	[base] Fix mono bitmap presetting (#53896).
-
-	It is rather fundamental to set monochrome bitmap based on rounded
-	CBox because the b/w rasterizer turns on pixels when their centers are
-	inside the glyph outline. The dropout control is unpredictable and can
-	distort narrow glyphs if the bitmap is too wide.
-
-	Reported by Chris Liddell.
-
-	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): If BBox boundaries
-	are too close, adjust them before rounding.
-
-2018-05-15  Werner Lemberg  <[email protected]>
-
-	[psaux] Fix compiler warning (#53915).
-
-	* src/psaux/psft.c (cf2_freeT1SeacComponent): Do it.
-
-2018-05-15  Werner Lemberg  <[email protected]>
-
-	[sfnt] Fix memory leak in handling `COLR' data.
-
-	* src/truetype/ttgload.c (TT_Load_Glyph): Free old `layers' array
-	before reassigning allocated memory.
-	Only allocate `color_layers' if we don't have one already.
-
-2018-05-15  Werner Lemberg  <[email protected]>
-
-	[sfnt] If `COLR' is present, don't assume that all glyphs use it.
-
-	* src/sfnt/ttcolr.c (tt_face_load_colr_layers): Return FT_Err_Ok if
-	current glyph is not a `COLR' base glyph.
-
-	* src/truetype/ttgload.c (TT_Load_Glyph): Don't allocate
-	`color_layers' if there are no color layers.
-
-2018-05-14  Werner Lemberg  <[email protected]>
-
-	* src/base/ftobjs.c (FT_Load_Glyph): Fix signature of `pixel_modes'.
-
-2018-05-14  Werner Lemberg  <[email protected]>
-
-	Provide dummy functions if `TT_CONFIG_OPTION_SFNT_NAMES' is not set.
-
-	* src/base/ftsnames.c [!TT_CONFIG_OPTION_SFNT_NAMES]: Implement it.
-
-2018-05-13  Werner Lemberg  <[email protected]>
-
-	* src/base/ftobjs.c (FT_Load_Glyph): Improve tracing.
-
-2018-05-13  Shao Yu Zhang  <[email protected]>
-	    Werner Lemberg  <[email protected]>
-
-	[sfnt] Preliminary support of colored layer outlines (#44689).
-
-	This commit enables OpenType's COLR/CPAL table handling; a typical
-	application are color emojis that can be scaled to any size.
-
-	If the color palette does not exist or is invalid, the rendering
-	step rasterizes the outline instead.  The current implementation
-	assumes that the foreground is black.
-
-	Enable this by defining option TT_CONFIG_OPTION_COLOR_LAYERS.
-
-	There are still some issues with metrics; additionally, an API to
-	fetch color layers is missing.
-
-	* devel/ftoption.h, include/freetype/config/ftoption.h
-	(TT_CONFIG_OPTION_COLOR_LAYERS): New macro.
-
-	* include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec,
-	FT_Colr_InternalRec): New structures.
-	(FT_Slot_InternalRec): Add `color_layers' field.
-
-	* include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func,
-	TT_Blend_Colr_Func): New function types.
-	(SFNT_Interface): Add `load_colr', `free_colr', `load_colr_layer',
-	and `colr_blend' fields.
-
-	* include/freetype/internal/tttypes.h (TT_FaceRec): Add
-	`colr_and_cpal' field.
-
-	* include/freetype/internal/tttags. (TTAG_COLR, TTAG_CPAL): New
-	macros.
-
-	* src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: New files.
-
-	* src/base/ftobjs.c (ft_glyphslot_done, FT_Render_Glyph_Internal):
-	Handle glyph color layers.
-
-	* src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC): Add
-	`ttcolr.c'.
-
-	* src/sfnt/sfdriver.c: Include `ttcolr.h'.
-	(PUT_COLOR_LAYERS): New macro.
-	Update call to `FT_DEFINE_SFNT_INTERFACE'.
-
-	* src/sfnt/sfnt.c: Include `ttcolr.c'.
-
-	* src/sfnt/sfobjs.c (sfnt_load_face): Load `COLR' and `CPAL' tables.
-	(sfnt_done_face): Updated.
-
-	* src/truetype/ttgload.c (TT_Load_Glyph): Handle color layers.
-
-2018-05-12  Arkady Shapkin  <[email protected]>
-
-	Use MS VC++'s _BitScanReverse to calculate MSB (patch #9636).
-
-	* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Implement
-	it.
-
-2018-05-10  Alan Coopersmith  <[email protected]>
-
-	Fix DLL compilation on Solaris.
-
-	AC_COMPILE_IFELSE only tries to compile a `*.c' to a `*.o'.  The
-	Solaris Studio 12.1 through 12.5 compilers see the
-	`-fvisibility=hidden' flag, but ignore it with a warning of:
-
-	  cc: Warning: Option -fvisibility=hidden passed to ld,
-	               if ld is invoked, ignored otherwise
-
-	AC_LINK_IFELSE does the compile and then tries to link the result,
-	at which point the Solaris linker will issue an error:
-
-	  ld: fatal: option '-fvisibility=hidden' is incompatible with
-	      building a dynamic executable
-
-	If we don't use AC_LINK_IFELSE to catch the error, then configure
-	will fail further tests which attempt to link, such as those testing
-	dependencies like `libbz2'.
-
-	Also, don't try adding `-fvisibility' if we have already added
-	`-xldscope', just use one of them, since Sun Studio 12 and earlier
-	compilers only issue a warning, and don't try passing through to the
-	linker to generate an error, so AC_LINK_IFELSE doesn't catch them.
-
-	Tested on Solaris 11.4 beta with compiler versions:
-
-	  Sun Studio 8 (Sun C 5.5)
-	  Sun Studio 10 (Sun C 5.7)
-	  Sun Studio 11 (Sun C 5.8)
-	  Sun Studio 12 (Sun C 5.9)
-	  Sun Studio 12.1 (Sun C 5.10)
-	  Oracle Solaris Studio 12.2 (Sun C 5.11)
-	  Oracle Solaris Studio 12.3 (Sun C 5.12)
-	  Oracle Solaris Studio 12.4 (Sun C 5.13)
-	  Oracle Developer Studio 12.5 (Sun C 5.14)
-	  Oracle Developer Studio 12.6 (Sun C 5.15)
-	  gcc 5.5.0
-	  gcc 7.3.0
-
-	and verified the libfreetype.so.6 generated by each of those
-	compilers exported the same set of symbols.
-
-	* builds/unix/configure.raw: Implement it.
-
-2018-05-08  Werner Lemberg  <[email protected]>
-
-	[autofit] Avoid potential SEGV if running out of memory.
-
-	Problem reported by Shailesh Mistry <[email protected]>.
-
-	* src/autofit/afshaper.c (af_shaper_buf_create,
-	af_shaper_buf_destroy) [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Don't
-	allocate and free a four-byte buffer.  Instead, make those functions
-	no-ops; the calling functions will provide a pointer to a buffer
-	instead.
-
-	* src/autofit/afcjk.c (af_cjk_metrics_init_widths,
-	af_cjk_metrics_init_blues, af_cjk_metrics_check_digits),
-	src/autofit/aflatin.c (af_latin_metrics_init_widths,
-	af_latin_metrics_init_blues, af_latin_metrics_check_digits)
-	[!FT_CONFIG_OPTION_USE_HARFBUZZ]: Use pointer to local variable for
-	`shaper_buf'.
-
-2018-05-07  Nikolaus Waxweiler  <[email protected]>
-
-	[cmake] Allow using project as subfolder in other project.
-
-	* CMakeLists.txt: Test for CMake build directory being different
-	from source directory.  Provide other parts of the build system
-	access the full include directory.
-
-2018-05-07  Werner Lemberg  <[email protected]>
-
-	[build] Suppress configure's `nothing to be done' message.
-
-	This is due to calling the configure script via `make' (within the
-	top-level `configure' wrapper script).  The same can happen for all
-	other secondary make targets that are used to only modify the
-	primary one, e.g., `make setup devel'.
-
-	* builds/dos/detect.mk (emx, turboc, watcom, borlandc, borlandc16),
-	builds/os2/detect (visualage, watcom, borlandc, devel),
-	builds/unix/detect.mk (devel, lcc, unix), builds/windows/detect.mk
-	(visualc, watcom, visualage, lcc, mingw32, bcc32, devel-bcc,
-	devel-gcc): Use no-op recipe.
-
-2018-05-04  suzuki toshiya  <[email protected]>
-
-	Support symbol visibility features of Sun / Oracle C compilers.
-
-	Reported by Kiyoshi Kanazawa:
-	https://lists.gnu.org/archive/html/freetype-devel/2018-05/msg00008.html
-	Thanks to the suggestions by Alexei and Alan Coopersmith.
-
-	* builds/unix/configure.raw: Check if "-xldscope=hidden" is
-	accepted, and if so, it is added to CFLAGS.  This is the option
-	making Sun / Oracle C compilers hide the symbols from global
-	scope.
-	* include/freetype/config/ftconfig.h: Use "__global" prefix
-	for FT_EXPORT() macro, if SunPro C is newer than Sun ONE
-	Studio 8 (2003).
-	* builds/unix/ftconfig.in: Ditto.
-	* builds/vms/ftconfig.h: Ditto.
-
-2018-05-02  Nikolaus Waxweiler  <[email protected]>
-
-	Unbreak CMake Windows installation
-
-	* CMakeLists.txt: Generate ftconfig.h on non-UNIX.
-
-2018-05-02  Werner Lemberg  <[email protected]>
-
-	Remove FT_CONFIG_OPTION_PIC and related code.
-
-	*/* [FT_CONFIG_OPTION_PIC]: Remove all code guarded by this
-	preprocessor symbol.
-
-	*/*: Replace `XXX_GET' macros (which could be either a function in
-	PIC mode or an array in non-PIC mode) with `xxx' arrays.
-
-	* include/freetype/internal/ftpic.h, src/autofit/afpic.c,
-	src/autofit/afpic.h, src/base/basepic.c, src/base/basepic.h,
-	src/base/ftpic.c, src/cff/cffpic.c, src/cff/cffpic.h,
-	src/pshinter/pshpic.c, src/pshinter/pshpic.h, src/psnames/pspic.c,
-	src/psnames/pspic.h, src/raster/rastpic.c, src/raster/rastpic.h,
-	src/sfnt/sfntpic.c, src/sfnt/sfntpic.h, src/smooth/ftspic.c,
-	src/smooth/ftspic.h, src/truetype/ttpic.c, src/truetype/ttpic.h:
-	Removed.
-
-
-----------------------------------------------------------------------------
-
-Copyright (C) 2018-2021 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:
--- a/README.git
+++ b/README.git
@@ -72,26 +72,6 @@
 submodule and copies some files into FreeType's source tree.
 
 
-contributing
-------------
-
-If you want to contribute to FreeType it is recommended to install the
-`git-merge-changelog` program – we use a `ChangeLog` file, which often
-prevents   simple   merging   due  to   conflicts.    Most   GNU/Linux
-distributions  have a  package  for this  program;  otherwise you  can
-install it via the 'gnulib' git repository.  Detailed instructions can
-be found at the beginning of
-
-  https://git.savannah.gnu.org/cgit/gnulib.git/tree/lib/git-merge-changelog.c
-
-To make  it actually work, add  to file `.git/config` in  the FreeType
-git repository (or to your `$HOME/.gitconfig` file) the lines
-
-  [merge "merge-changelog"]
-     name = GNU-style ChangeLog merge driver
-     driver = /usr/local/bin/git-merge-changelog %O %A %B
-
-
 ----------------------------------------------------------------------
 
 Copyright (C) 2005-2021 by
--- /dev/null
+++ b/docs/oldlogs/ChangeLog.210
@@ -1,0 +1,7815 @@
+2021-07-18  Werner Lemberg  <[email protected]>
+
+	* Version 2.11.0 released.
+	==========================
+
+
+	Tag sources with `VER-2-11-0'.
+
+	* docs/VERSION.TXT: Add entry for version 2.11.0.
+	* docs/CHANGES: Updated.
+
+	* README, src/base/ftver.rc, builds/windows/vc2010/index.html,
+	builds/windows/visualc/index.html,
+	builds/windows/visualce/index.html,
+	builds/wince/vc2005-ce/index.html,
+	builds/wince/vc2008-ce/index.html, docs/freetype-config.1:
+	s/2.10.4/2.11.0/, s/2104/2110/.
+
+	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 11.
+	(FREETYPE_PATCH): Set to 0.
+
+	* builds/unix/configure.raw (version_info): Set to 24:0:18.
+	* CMakeLists.txt (VERSION_MINOR): Set to 11.
+	(VERSION_PATCH): Set to 0.
+
+	* builds/toplevel.mk (dist): Ignore more git-related files.
+
+2021-07-17  David Turner  <[email protected]>
+
+	* src/smooth/ftgrays.c: Fix compilation if `FT_LONG64` is undefined.
+
+	The code assumed that if `__SSE2__` is defined, then 64-bit integer
+	types are available.  This is not the case apparently for certain
+	multilib compiler targets like 'x86_32.x86' used by Gentoo.
+
+	This patch fixes the issue by disabling the special code path when
+	64-bit integer types are not available.
+
+	Fixes #1071.
+
+2021-07-16  Alex Richardson  <[email protected]>
+
+	[tests] Allow arbitrary build directories.
+
+	* tests/issue-1063/main.c (main): I am building with a build
+	directory that is not directly inside the source tree, so the path
+	`../tests/data/As.I.Lay.Dying.ttf` does not resolve to the test
+	input file.  This change passes the test data directory as an
+	environment variable to allow arbitrary build directories.
+
+	* tests/meson.build: Updated.
+
+2021-07-16  Alex Richardson  <[email protected]>
+
+	* tests/issue-1063/main.c (main): Fix uninitialized variable.
+
+	I tried running `meson test` but the test just crashed and gdb
+	reported that the face argument to `FT_Get_Char_Index` was nonsense. 
+	With this change the test prints 'Could not open file: ' as it
+	should.
+
+2021-07-16  Werner Lemberg  <[email protected]>
+
+	[smooth] Minor fixes.
+
+	* src/smooth/ftgrays.c (gray_render_conic): Move variable and
+	structure declarations to beginning of function.  Inspite of C99
+	compliance we still do this for the sake of backward compatibility.
+	This also avoids a shadowing declaration of `count`.
+	(gray_convert_glyph_inner): Fix typo.
+
+2021-07-15  Ben Wagner  <[email protected]>
+
+	* src/smooth/ftgrays.c: Guard inclusion of `emmintrin.h`.
+
+	Guard inclusion of `emmintrin.h` with `#ifdef __SSE2__`.  The gcc
+	version of this header, `xmmintrin.h`, and `mmintrin.h` check that
+	the appropriate defines are set before defining anything (are
+	internally guarded).  However, the clang versions of these includes
+	are not internally guarded.  As a result of this, externally guard
+	the inclusion of these headers.
+
+2021-07-15  David Turner  <[email protected]>
+
+	[smooth] Implement Bézier quadratic arc flattening with DDA.
+
+	Benchmarking shows that this provides a very slighty performance
+	boost when rendering fonts with lots of quadratic Bézier arcs,
+	compared to the recursive arc splitting, but only when SSE2 is
+	available, or on 64-bit CPUs.
+
+	On a 2017 Core i5-7300U CPU on Linux/x86_64:
+
+	  ftbench -p -s10 -t5 -cb DroidSansFallbackFull.ttf
+
+	  Before: 4.033 us/op  (best of 5 runs for all numbers)
+	  After:  3.876 us/op
+
+	  ftbench -p -s60 -t5 -cb DroidSansFallbackFull.ttf
+
+	  Before: 13.467 us/op
+	  After:  13.385 us/op
+
+	* src/smooth/ftgrays.c (gray_render_conic): New implementation
+	based on DDA and optionally SSE2.
+
+2021-07-15  David Turner  <[email protected]>
+
+	[smooth] Minor speedup to smooth rasterizer.
+
+	This speeds up the smooth rasterizer by avoiding conditional
+	branches in the hot path.
+
+	- Define a fixed 'null cell', which will be pointed to whenever the
+	  current cell is outside of the current target region.  This avoids
+	  a `ras.cell != NULL` check in the `FT_INTEGRATE` macro.
+
+	- Also use the null cell as a sentinel at the end of all `ycells`
+	  linked-lists, by setting its x coordinate to `INT_MAX`.  This
+	  avoids a `if (!cell)` check in `gray_set_cell` as well.
+
+	- Slightly change the worker struct fields to perform a little less
+	  operations during rendering.
+
+	Example results (on a 2013 Corei5-3337U CPU)
+
+	  out/ftbench -p -s10 -t5 -bc DroidSansFallbackFull.ttf
+
+	  Before: 5.472 us/op
+	  After:  5.275 us/op
+
+	  out/ftbench -p -s60 -t5 -bc DroidSansFallbackFull.ttf
+
+	  Before: 17.988 us/op
+	  After:  17.389 us/op
+
+	* src/smooth/ftgrays.c (grat_TWorker): Replace `num_cells` field with
+	`cell_free` and `cell_limit`.
+	(NULL_CELL_PTR, CELL_MAX_X_VALUE, CELL_IS_NULL): New macros.
+	(gray_dump_cells, gray_set_cell, gray_sweep, gray_sweep_direct,
+	gray_convert_glyph_inner, gray_convert_glyph): Updated.
+
+2021-07-15  David Turner  <[email protected]>
+
+	[tests] Rewrite download script in Python3.
+
+	This commit replaces the bash script with a Python script that does
+	the same work, plus avoiding to download anything if the files are
+	already installed with the right content.
+
+	We now use the first 8 bytes of each file's sha256 hash for the
+	digest.
+
+	* tests/scripts/download-test-fonts.sh: Removed.
+	* tests/scripts/download-test-fonts.py: New script.
+	* tests/README.md: Updated.
+
+2021-07-15  Alex Richardson  <[email protected]>
+
+	Support architectures where `long` is smaller than pointers.
+
+	I am currently trying to compile FreeType for CHERI-extended ISAs
+	(CHERI-RISC-V and Arm's Morello), but I am getting compiler warnings
+	from the `FT_UINT_TO_POINTER` macro.  When compiling with the CHERI
+	Clang compiler, not using `uinptr_t` for casts between integers an
+	pointers results in the following `-Werror` build failures:
+
+	```
+	In file included from .../src/truetype/truetype.c:22:
+	  .../src/truetype/ttgload.c:1925:22: error:
+	    cast from provenance-free integer type to pointer type will
+	    give pointer that can not be dereferenced
+	    [-Werror,-Wcheri-capability-misuse]
+	  node->data = FT_UINT_TO_POINTER( glyph_index );
+	               ^
+	  .../include/freetype/internal/compiler-macros.h:79:34: note:
+	    expanded from macro 'FT_UINT_TO_POINTER'
+	```
+
+	* include/freetype/internal/compiler-macros.h (FT_UINT_TO_POINTER):
+	The ISO C standard compliant fix for this would be to use
+	`uintptr_t` from `stdint.h`, but I am not sure if this is supported
+	by the minimum compiler version.  Therefore, use the
+	compiler-defined `__UINTPTR_TYPE__` macro (supported in GCC 4.6+ and
+	Clang since about 3.0) before checking for `_WIN64` and falling back
+	to `unsigned long`.
+
+2021-07-13  Oleg Oshmyan  <[email protected]>
+
+	[base] Fix `FT_Open_Face`'s handling of user-supplied streams.
+
+	This was already true (though undocumented) most of the time, but
+	not if `FT_NEW` inside `FT_Stream_New` failed or if the
+	`FT_OPEN_XXX` flags were bad.
+
+	Normally, `FT_Open_Face` calls `FT_Stream_New`, which returns the
+	user-supplied stream unchanged, and in case of any subsequent error
+	in `FT_Open_Face`, the stream is closed via `FT_Stream_Free`.
+
+	Up to now, however, `FT_Stream_New` allocates a new stream even if
+	it is already given one by the user.  If this allocation fails, the
+	user-supplied stream is not returned to `FT_Open_Face` and never
+	closed.  Moreover, the user cannot detect this situation: all they
+	see is that `FT_Open_Face` returns `FT_Err_Out_Of_Memory`, but that
+	can also happen after a different allocation fails within the main
+	body of `FT_Open_Face`, when the user's stream has already been
+	closed by `FT_Open_Face`.  It is plausible that the user stream's
+	`close` method frees memory allocated for the stream object itself,
+	so the user cannot defensively free it upon `FT_Open_Face` failure
+	lest it ends up doubly freed.  All in all, this ends up leaking the
+	memory/resources used by user's stream.
+
+	Furthermore, `FT_Stream_New` simply returns an error if the
+	`FT_OPEN_XXX` flags are unsupported, which can mean either an
+	invalid combination of flags or a perfectly innocent
+	`FT_OPEN_STREAM` on a FreeType build that lacks stream support.
+	With this patch, the user-supplied stream is closed even in these
+	cases, so the user can be sure that if `FT_Open_Face` failed, the
+	stream is definitely closed.
+
+	* src/base/ftobjs.c (FT_Stream_New): Don't allocate a buffer
+	unnecessarily.
+	Move error-handling code to make the control flow more obvious.
+	Close user-supplied stream if the flags are unsupported.
+	`FT_Stream_Open` always sets `pathname.pointer`, so remove the
+	redundant (re)assignment.  None of the `FT_Stream_Open...` functions
+	uses `stream->memory`, so keep just one assignment at the end,
+	shared among all possible control flow paths.
+	('Unsupported flags' that may need a stream closure can be either an
+	invalid combination of multiple `FT_OPEN_XXX` mode flags or a clean
+	`FT_OPEN_STREAM` flag on a FreeType build that lacks stream
+	support.)
+
+2021-07-13  Oleg Oshmyan  <[email protected]>
+
+	[base] Reject combinations of incompatible `FT_OPEN_XXX` flags.
+
+	The three modes are mutually exclusive, and the documentation of the
+	`FT_OPEN_XXX` constants notes this.  However, there was no check to
+	validate this in the code, and the documentation on `FT_Open_Args`
+	claimed that the corresponding bits were checked in a well-defined
+	order, implying it was valid (if useless) to specify more than one.
+	Ironically, this documented order did not agree with the actual
+	code, so it could not be relied upon; hopefully, nobody did this and
+	nobody will be hurt by the new validation.
+
+	Even if multiple mode bits were allowed, they could cause memory
+	leaks: if both `FT_OPEN_STREAM` and `stream` are set along with
+	either `FT_OPEN_MEMORY` or `FT_OPEN_PATHNAME`, then `FT_Stream_New`
+	allocated a new stream but `FT_Open_Face` marked it as an 'external'
+	stream, so the stream object was never released.
+
+	* src/base/ftobjs.c (FT_Stream_New): Reject incompatible
+	`FT_OPEN_XXX` flags.
+
+2021-07-12  Alex Richardson  <[email protected]>
+
+	* meson.build: Fix build for other UNIX systems (e.g., FreeBSD).
+
+	Without this change the build of `unix/ftsystem.c` fails because the
+	`ftconfig.h` header that defines macros such as `HAVE_UNISTD_H` and
+	`HAVE_FCNTL_H` is only being generated for Linux, macOS, and Cygwin
+	systems:
+
+	```
+	.../builds/unix/ftsystem.c:258:32: error:
+	    use of undeclared identifier 'O_RDONLY'
+	file = open( filepathname, O_RDONLY );
+	```
+
+	Instead of hardcoding a list of operating systems for this check,
+	update the logic that decides whether to build the file and set a
+	boolean flag that can be checked instead.
+
+2021-07-12  Werner Lemberg  <[email protected]>
+
+	[autofit] More clean-ups.
+
+	* src/autofit/afhints.h (AF_GlyphHintsRec): Remove the no longer
+	needed fields `xmin_delta` and `xmax_delta`.
+
+	* src/autofit/afhints.c (af_glyph_hints_reload),
+	src/autofit/afloader.c (af_loader_load_glyph): Updated.
+
+2021-07-12  Werner Lemberg  <[email protected]>
+
+	Small clean-ups for the last few commits.
+
+	* include/freetype/fttrace.h (afwarp): Removed.
+
+2021-07-12  David Turner  <[email protected]>
+
+	Remove obsolete `AF_Angle` type and related sources.
+
+	* src/autofit/afangles.c: File removed.  Functions related to
+	sorting moved to...
+	* src/autofit/afhints.c (af_sort_pos, af_sort_and_quantize_widths):
+	This file.
+	* src/autofit/afangles.h: File removed.
+	* src/autofit/aftypes.h: Updated.
+	* src/autofit/autofit.c: Updated.
+
+	* src/autofit/rules.mk (AUTOF_DRV_SRC): Updated.
+
+2021-07-12  David Turner  <[email protected]>
+
+	Remove experimental auto-hinting 'warp' mode.
+
+	This feature was always experimental, and probably never worked
+	properly.  This patch completely removes it from the source code,
+	except for a documentation block describing it for historical
+	purposes.
+
+	* devel/ftoption.h, include/freetype/config/ftoption.h: Remove
+	`AF_CONFIG_OPTION_USE_WARPER`.
+
+	* include/freetype/ftdriver.h: Document 'warping' property as
+	obsolete.
+
+	* src/autofit/afwarp.c, src/autofit/afwarp.h: Files removed.
+	* src/autofit/*: Remove any code related to warp mode.
+
+2021-07-12  David Turner  <[email protected]>
+
+	Remove experimental 'Latin2' writing system (`FT_OPTION_AUTOFIT2`).
+
+	This code has always been experimental and was never compiled anyway
+	(`FT_OPTION_AUTOFIT2` does not appear in `ftoption.h` or even any of
+	our build files).
+
+	* include/freetype/internal/fttrace.h (aflatin2): Removed.
+	* src/autofit/aflatin2.h, src/autofit/aflatin2.c: Files removed.
+	* src/autofit/afloader.c: Remove undocumented hook to activate
+	Latin2 system.
+	* src/autofit/afstyles.h: Remove `ltn2_dflt` style definition.
+	* src/autofit/afwrtsys.h: Remove `LATIN2` writing system definition.
+	* src/autofit/autofit.c: Updated.
+
+2021-07-05  Werner Lemberg  <[email protected]>
+
+	* src/base/ftlcdfil.c (FT_Library_SetLcdGeometry): Fix argument.
+
+	Reported by Hin-Tak.
+
+2021-07-03  Werner Lemberg  <[email protected]>
+
+	* meson_options.txt: Sort alphabetically; no final full stops.
+
+2021-07-01  Ben Wagner  <[email protected]>
+
+	* src/truetype/ttgxvar.c (tt_set_mm_blend): Test `coords`.
+
+	It is undefined behavior to pass `NULL` to `memcpy`.  `coords' is
+	passed to `memcpy` but `TT_Get_MM_Blend` and `TT_Get_Var_Design`
+	explictly call `tt_set_mm_blend` with `coords` as `NULL`.  In
+	addition, `TT_Set_MM_Blend` has a similar possible issue.
+
+2021-06-30  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Support PaintScale in 'COLR' v1 parsing.
+
+	* include/freetype/ftcolor.h (FT_PaintFormat): Renumber values, add
+	`FT_COLR_PAINTFORMAT_SCALE`.
+	(FT_PaintScale): New structure to represent 'PaintScale*' tables.
+	(FT_COLR_Paint): Updated.
+
+	* src/sfnt/ttcolr.c (FT_PaintFormat_Internal): New enumeration.
+	(read_paint): Parse 'PaintScale' and friends.
+
+2021-06-30  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Handle fonts without layer list in 'COLR' v1.
+
+	'COLR' v1 fonts do not necessarily need to have a layer list; for
+	this reason, 'fontTools' recently started generating fonts in a way
+	that drops the layer list if there are no layers in it.  This
+	results in the layer list offset becoming zero, which FreeType
+	treated as an invalid table.  Fix that and handle the case for layer
+	list offset being 0.  This slightly changes how we need to calculate
+	the starting offset for paints.
+
+	* src/sfnt/ttcolr.c (tt_face_load_colr): Handle case of layer list
+	offset being zero without outright rejecting table.
+
+2021-06-30  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/raster/ftraster.c (Render_Single_Pass): Simplify `band_stack'.
+
+2021-06-29  Alexei Podtelezhnikov  <[email protected]>
+
+	[raster] Do not skip the second pass without dropout control.
+
+	The second pass also fixes horizontal lines through the pixel centers.
+
+	* src/raster/ftraster.c (black_TWorker): Do not use `second_pass'.
+	(Render_Glyph): Skip the second pass only with the appropriate flag.
+
+2021-06-29  Alexei Podtelezhnikov  <[email protected]>
+
+	[raster] Handle sub-band stack locally.
+
+	* src/raster/ftraster.c (black_TWorker): Move `band_stack' from here..
+	(Render_Single_Pass): ... to here and accept limit arguments.
+	(Render_Glyph): Updated.
+
+2021-06-25  Anurag Thakur  <[email protected]>
+
+	[CI] Introduce linux CI and refactor job names.
+
+	* .gitlab-ci.yml: Added jobs for building freetype on linux.
+
+2021-06-28  Alexei Podtelezhnikov  <[email protected]>
+
+	[raster] Handle Bézier stack locally.
+
+	* src/raster/ftraster.c (black_TWorker): Move `arcs' from here...
+	(Conic_To, Cubic_To): ... to here to tighten their scope.
+	(Bezier_Up, Bezier_Down): ... Take the current `arc' argument.
+
+2021-06-28  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Improve paint limit checks
+
+	Paint tables can appear before the `base_glyphs_v1` offset if the
+	font is produced with the layer list before the base glyph list.  In
+	this case paint tables can occur after the layer list but before the
+	base glyph list.  Checks in the 'COLR' v1 code were rejecting fonts
+	with this layout.  Improve these checks by calculating a minimum
+	offset after which paint tables can occur and use that in safety
+	checks.
+
+	* src/sfnt/ttcolr.c (Colr, tt_face_load_colr): Declare
+	`paint_start_v1` and calculate that as the minimum of the end of
+	layer list and base glyph list.
+	(get_child_table_pointer, read_paint, tt_face_get_paint_layers):
+	Use that in safety checks.
+
+2021-06-28  Alexei Podtelezhnikov  <[email protected]>
+
+	[raster] Clean up vertical sweep.
+
+	* src/raster/ftraster.c (black_TWorker): Replace the current line
+	offset with the pointer and drop the increment.
+	(Function_Sweep_Init): Take values as arguments instead of pointers.
+	(Vertical_Sweep_*, Horizontal_Sweep_Init, Draw_Sweep): Updated.
+
+2021-06-25  Alexei Podtelezhnikov  <[email protected]>
+
+	[raster] Make `band_top' local variable.
+
+	* src/raster/ftraster.c (black_TWorker): Move `band_top' from here...
+	(Render_Single_Pass): ... to here, and refactor.
+	(Render_Glyph): Updated.
+
+2021-06-25  Alexei Podtelezhnikov  <[email protected]>
+
+	[raster] Adjust sub-band bisecting limits.
+
+	We can bisect a band until it is just a single scan line.  This might
+	be slow and cause time-outs but if we need to impose limits it should
+	be elsewhere.
+
+	* src/raster/ftraster.c (Render_Single_Pass): Tweak sub-banding.
+
+2021-06-25  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/raster/ftraster.c (Render_Single_Pass): Remove dead code.
+
+2021-06-25  Werner Lemberg  <[email protected]>
+
+	[base] Add trace level to logging output.
+
+	Some practical debugging work has shown that displaying level X of
+	an `FT_TRACEX` macro in the output of `FT2_DEBUG="...  -v"` would be
+	very helpful to find out which trace level should be selected.  As
+	an example, we now get output like
+
+	```
+	[ttobjs:2]    TTF driver
+	[ttobjs:2]      SFNT driver
+	[sfobjs:2]      not a font using the SFNT container format
+	[t1objs:2]    Type 1 driver
+	[stream:7]    FT_Stream_EnterFrame: 14 bytes
+	```
+
+	* include/freetype/internal/ftdebug.h (FT_LOGGING_TAGX): New macro.
+	(FT_LOG): Use it to add the trace level to the logging tag.
+
+	* include/freetype/internal/fttrace.h (FT_MAX_TRACE_LEVEL_LENGTH):
+	Adjust.
+
+	* docs/DEBUG: Updated.
+
+2021-06-24  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth, raster] Fix up and align error codes.
+
+	FT_Render_Glyph picked up FAILURE or 1 returned from the raster
+	function, which became a confusing error code. Instead, return
+	Raster_Overflow in the unlikely event that banding does not help or
+	another meaningful error.
+
+	* src/smooth/ftgrays.c (gray_convert_glyph_inner, gray_convert_glyph):
+	Use Raster_Overflow when the rendering pool is exhausted and return it
+	if banding does not help.
+	(gray_raster_render): Use Smooth_Err_Ok.
+
+	* src/raster/ftraster.c (Render_Single_Pass): Return Raster_Overflow
+	if banding does not help or another error code.
+
+2021-06-23  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth, raster] Remove synonymous error macros.
+
+	* src/smooth/ftgays.c [STANDALONE_]: s/ErrRaster_/Smooth_Err_/.
+	(gray_convert_glyph_inner): Updated accordingly.
+
+	* src/raster/ftraster.c [STANDALONE_]: Do not abbreviate error macros.
+	(New_Profile, End_Profile, Insert_Y_Turn, Line_Up, Bezier_Up,
+	Decompose_Curve, Draw_Sweep, Render_Single_Pass, ft_black_render):
+	Updated accordingly.
+
+2021-06-22  Dominik Röttsches  <[email protected]>
+
+	[sfnt] s/PaintTransformed/PaintTransform/, s/transformed/transform/.
+
+	* include/freetype/ftcolor.h (FT_PaintTransformed, FT_PaintFormat,
+	FT_COLR_Paint): Do it to make it harmonize with other names such as
+	'PaintTranslate'.
+
+	* src/sfnt/ttcolr.c (read_paint, tt_face_get_paint): Ditto.
+
+2021-06-22  Dominik Röttsches  <[email protected]>
+
+	Move 'COLR' API to `ftcolor.h`.
+
+	* include/freetype/freetype.h: Cut section layer managament
+	containing 'COLR' v0 and v1 API and move it to `ftcolor.h` as
+	requested by Werner on freetype-devel.
+	* include/freetype/ftcolor.h: Paste that section.
+
+2021-06-19  Werner Lemberg  <[email protected]>
+
+	[truetype] Fix integer overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=35312
+
+	* src/truetype/ttinterp.c (Ins_JMPR): Use `ADD_LONG`.
+
+2021-06-19  Werner Lemberg  <[email protected]>
+
+	[autofit] Prevent hinting if there are too many segments.
+
+	This speeds up handling of broken glyphs.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=35309
+
+	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Implement
+	it.
+
+2021-06-18  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sdf/ftsdfrend.c (ft_(b)sdf_render): Do not FT_ERROR routinely.
+
+2021-06-16  David Turner  <[email protected]>
+
+	[autofit] Fix return value of `FT_Load_Glyph`.
+
+	* src/autofit/afglobal.c (af_face_globals_get_metrics): The issue is
+	that `style_metrics_init` sometimes returns -1 without clearing
+	`error`.  While looping to `Again`, the next operation is
+	successful, but -1 is still returned by the function.  The fix is to
+	set `error` to 0 appropriately.
+
+	Fixes #1063.
+
+2021-06-15  David Turner  <[email protected]>
+
+	[meson] Add first regression test to FreeType.
+
+	* tests/README.md: New file that explains how to build and run the
+	tests with the Meson build.
+
+	* tests/scripts/download-test-fonts.sh: New bash script to download
+	test font files to the `tests/data` folder.
+
+	* meson.build, meson_options.txt: Add 'tests' option to enable
+	building and running the test programs (disabled by default).
+
+	* tests/meson.build: New file.
+
+	* tests/issue-1063/main.c: Simple regression test to exhibit issue
+	1063.
+
+	* .gitignore: Ignore the content of the `tests/data` folder for
+	now.
+
+2021-06-12  Alexei Podtelezhnikov  <[email protected]>
+
+	[type42] Fix new memory leak.
+
+	We need to inverse inheritance of FT_GlyphSlot_Internal so that we
+	have a chance to free the rendered bitmap from the parent slot.
+
+	* src/type42/t42objs.c (T42_GlyphSlot_Init): Remove the internal parts
+	of the child `ttslot' and replace it with the parent structure.
+	(T42_GlyphSlot_Done): Updated accordingly.
+
+2021-06-12  Werner Lemberg  <[email protected]>
+
+	[psaux] Fix another assertion.
+
+	* src/psaux/psintrp.c (cf2_interpT2CharString)
+	<cf2_escCALLOTHERSUBR>: Convert assertion into error, since the
+	problem can happen with invalid user input.
+
+	Test case is file
+
+	  fuzzing/corpora/legacy/oss-fuzz/5754332360212480-unknown-read
+
+	in the `freetype2-testing` repository.
+
+2021-06-12  Werner Lemberg  <[email protected]>
+
+	[psaux] Fix assertions.
+
+	* src/psaux/pshints.c (cf2_hintmap_adjustHints): Check for overflow
+	before emitting an assertion error.
+
+	Test case is file
+
+	 fuzzing/corpora/legacy/oss-fuzz/4594115297673216-integer-overflow
+
+	in the `freetype2-testing` repository.
+
+2021-06-09  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/truetype/ttinterp.c (TT_RunIns): Optimize tracing.
+
+2021-06-09  Alexei Podtelezhnikov  <[email protected]>
+
+	[sdf] Fix SDF positioning.
+
+	* src/sdf/ftsdfrend.c (ft_sdf_render, ft_bsdf_render): Add padding to
+	`bitmap_top' and `bitmap_left'.
+
+	* sdf/sdf/ftsdf.c (sdf_generate_with_overlaps): Fix VC++ warning.
+
+2021-06-08  Werner Lemberg  <[email protected]>
+
+	Fix 'devel' build for 'COLR' v1.
+
+	* devel/ftoption.h: Synchronize with
+	  `include/freetype/config/ftoption.h`.
+
+2021-06-08  Werner Lemberg  <[email protected]>
+
+	[sfnt] Sanitize cmap4 table better.
+
+	Fixes #1062.
+
+	* src/sfnt/ttcmap.c (tt_cmap4_validate): Handle a too-small value of
+	`length` gracefully.
+
+2021-06-08  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Pointer validity check when reading 'COLR' v1 layers
+
+	* src/sfnt/ttcolr.c (tt_face_get_paint_layers): In addition to the
+	existing sanity checks, ensure that the pointer to the layer to be
+	read is within the 'COLR' v1 table.
+
+2021-06-08  Werner Lemberg  <[email protected]>
+
+	* src/sdf/ftsdfcommon.c: Fix inclusion of header files.
+
+2021-06-08  Werner Lemberg  <[email protected]>
+
+	[sdf] Make `make multi` work.
+
+	* src/sdf/ftsdf.c: Include `ftbitmap.h`.
+
+	* src/sdf/ftsdfcommon.h: Move function bodies to `ftsdfcommon.c`.
+	Include `ftobjs.h` to get definitions of `FT_LOCAL` and friends.
+
+	* src/sdf/ftsdfcommon.c: New file.
+
+	* src/sdf/rules.mk, src/sdf/sdf.c: Updated.
+
+2021-06-08  Anuj Verma  <[email protected]>
+
+	[sdf] Use 8 bits for final SDF output instead of 16bits.
+
+	Since 8-bits is enough to represent SDF data we no longer require
+	16-bits for this purpose.  Also, we now normalize the output data
+	to use the entire 8-bit range efficiently.  For example: if we use
+	3.5 format with a spread of 1 we basically only use the starting
+	5-bits.  By normalizing we can use the entire 8-bit range.
+
+	* include/freetype/freetype.h (FT_Render_Mode): Updated description
+	for `FT_RENDER_MODE_SDF` regarding this change.
+
+	* include/freetype/ftimage.h (FT_Pixel_Mode): Removed
+	`FT_PIXEL_MODE_GRAY16` since no longer required.
+
+	* include/freetype/fttypes.h (FT_F6Dot10): Removed since no longer
+	required.
+
+	* src/sdf/ftsdfrend.c (ft_sdf_render, ft_bsdf_render): Allocate 8-bit
+	bitmap instead of 16-bit buffer.
+
+	* src/sdf/ftsdfcommon.h (map_fixed_to_sdf): Added function to convert
+	16.16 distance value to our desired format.
+
+	* src/sdf/ftsdf.c (sdf_generate_with_overlaps,
+	sdf_generate_bounding_box): Use the new `map_fixed_to_sdf` function
+	and also use 8-bit output buffer.
+
+	* src/sdf/ftbsdf.c (finalize_sdf): Output to a 8-bit buffer instead
+	of 16-bit buffer.
+
+2021-06-02  Ben Wagner  <[email protected]>
+	    Werner Lemberg  <[email protected]>
+
+	[sfnt] Fix fallout from 2021-05-29 change.
+
+	* src/sfnt/ttcolr.c (find_base_glyph_record,
+	find_base_glyph_v1_record): Adjust binary search.
+
+	Needs to be updated with change to unsigned.
+
+2021-06-02  Werner Lemberg  <[email protected]>
+
+	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Fix tracing.
+
+	Problem reported by Alexei.
+
+2021-06-02  Werner Lemberg  <[email protected]>
+
+	[psaux] Fix MSVC compiler warnings.
+
+	* src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs):
+	Add cast.
+
+2021-05-29  Werner Lemberg  <[email protected]>
+
+	Fix compilation errors and (some) warnings for clang++.
+
+	* src/autofit/afmodule.c (AF_GlyphHintsRec): Make it static.
+
+	* src/cache/ftcache.c (FTC_Cache_NewNode), src/cache/ftcsbits.c
+	(ftc_snode_compare): Remove semicolon.
+
+	* src/cff/cffparse.c (cff_parser_run): Add `break` statement.
+
+	* src/cid/cidload.c (cid_hex_to_binary): Add cast.
+
+	* src/sdf/ftbsdf.c (CHECK_NEIGHBOR): Use `do {} while(0)` loop.
+	(bsdf_init_distance_map, finalize_sdf, bsdf_raster_render): Add
+	casts.
+	* src/sdf/ftsdf.c (sdf_generate_bounding_box,
+	sdf_generate_with_overlaps): Ditto.
+	* src/sdf/ftsdfcommon.h (square_root): Ditto.
+	* src/sdf/ftsdfrend.c (sdf_property_get, ft_sdf_render,
+	ft_bsdf_render): Ditto.
+
+	* src/sfnt/ttcolr.c (find_base_glyph_record,
+	find_base_glyph_v1_record): Fix variable signedness.
+	(read_color_line): Add cast.
+	(read_paint): Add casts.
+	Fix signedness issue.
+	(tt_face_get_colorline_stops) Fix signedness issues.
+
+	* src/sfnt/ttpost.c (load_format_20): Add casts.
+
+	* src/truetype/ttsubpix.c (TWEAK_RULES, TWEAK_RULES_EXCEPTIONS):
+	Remove final semicolons.
+
+2021-05-29  Werner Lemberg  <[email protected]>
+
+	[build] Allow overriding of `ANSIFLAGS` for GNU make build.
+
+	* builds/*: Implement it.
+
+2021-05-27  Alexei Podtelezhnikov  <[email protected]>
+
+	[type42] Fix auto-hinting.
+
+	The autohinter could not access the base (unscaled) outline in the
+	child TrueType glyph slot. We now share the internal parts between
+	the parent and child glyph slots. Fixes #1057.
+
+	* src/type42/t42objs.c (T42_GlyphSlot_Init): Remove the internal parts
+	of `T42_GlyphSlot' and replace it with the child TrueType structure.
+	(T42_GlyphSlot_Done): Updated accordingly.
+
+2021-05-25  Werner Lemberg  <[email protected]>
+
+	[psaux] Guard and trace AFM kern data allocation.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31543
+
+	* include/freetype/internal/fttrace.h: Add 'afmparse' trace
+	component.
+
+	* src/psaux/afmparse.c (FT_COMPONENT): Define.
+	(afm_parse_track_kern, afm_parse_kern_pairs): Protect against
+	allocations bombs.
+	Add tracing.
+	(afm_parse_kern_data): Don't allow multiple kern data sections.
+
+2021-05-23  Alexei Podtelezhnikov  <[email protected]>
+
+	* meson.build (ft2_public_headers): Add missing `ftcid.h'.
+
+	Fixes #1058.
+
+2021-05-20  Alexei Podtelezhnikov  <[email protected]>
+
+	[type42] Avoid some memory zeroing.
+
+	* src/type42/t42objs.c (T42_Open_Face): Tweak allocation macro.
+	* src/type42/t42parse.c (t42_parse_sfnts): Ditto.
+
+2021-05-19  Nikolaus Waxweiler  <[email protected]>
+
+	[CMake] Update dependency finders.
+
+	1. Fixes CMake using any found HarfBuzz version lower than the minimum
+	required. This is based on HALX99's merge request at
+	https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests/31
+	2. Update FindHarfBuzz.cmake from
+	https://github.com/WebKit/WebKit/blob/1ce32454/Source/cmake/FindHarfBuzz.cmake
+	and guard post-CMake-3.1 features to keep the minimum version unchanged
+	3. Update FindBrotliDec.cmake to stop the warnings, based on what
+	https://github.com/google/woff2/blob/a0d0ed7d/cmake/FindBrotliDec.cmake
+	is doing
+
+	* CMakeLists.txt, builds/cmake/FindHarfBuzz.cmake: Implement 1 and 2.
+	* builds/cmake/FindBrotliDec.cmake: Implement 3.
+
+2021-05-19  Ben Wagner  <[email protected]>
+
+	[gzip] Use exact type for `ft_gzip_alloc` and `ft_gzip_free`.
+
+	While a function pointer may be cast to another function pointer
+	type, it is required to cast the function pointer back to the
+	original function pointer type before calling it.  If a parameter is
+	a pointer the exact pointer type is required.  Using a pointer to a
+	different underlying type is technically undefined behavior.  The
+	wrapper functions `ft_gzip_alloc` and `ft_gzip_free` took
+	`FT_Memory` (a `FT_MemoryRec_*`) instead of `voidpf` (`void*`), so
+	when gzip calls these callbacks through `alloc_func` or `free_func`
+	it invokes undefined behavior.  On most platforms this works out as
+	expected, but newer undefined behavior detectors and targets like
+	wasm can detect this and will produce an error.
+
+	* src/gzip/ftgzip.c (ft_gzip_alloc, ft_gzip_free): Update signatures
+	to exactly match `alloc_func` and `free_func`, respectively.
+	Internally, cast the `void*` opaque pointer to `FT_Memory`.
+
+2021-05-18  Alexei Podtelezhnikov  <[email protected]>
+
+	Prioritize the anti-aliasing renderer module.
+
+	* modules.cfg: Reorder the renderers.
+	* include/freetype/config/ftmodule.h: Ditto.
+
+2021-05-16  Alexei Podtelezhnikov  <[email protected]>
+
+	[sfnt] Additional guards on the POST table.
+
+	Fixes timeout (#1055) analyzed by Ben Wagner, reported as
+
+	  https://crbug.com/1194092
+
+	* src/sfnt/ttload.c (tt_face_load_post): Check POST format.
+	* src/sfnt/sfobjs.c (sfnt_load_face): Synthesize the missing unicode
+	charmap only if the glyph names exist.
+	* src/psnames/psmodule.c (ps_unicode_value): Short cut ".notdef" and
+	".null".
+
+2021-05-13  Daniel McArdle  <[email protected]>
+
+	[psaux] Use doubling allocation strategy for CF2_ArrStack.
+
+	Fixes timeout reported as
+
+	  https://crbug.com/1206181
+
+	* src/psaux/psarrst.c (cf2_arrstack_{push,init}): Implement it.
+	* src/psaux/psarrst.h (CF2_ArrStackiRec): Drop `chunk'.
+
+2021-05-12  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/smooth/ftgrays.c (FT_MAX_GRAY_SPANS): Increase from 10 to 16.
+
+	Ten was barely enough for two slanted stems. Sixteen can actually fit
+	a bit more complicated scanlines.
+
+2021-05-11  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/smooth/ftgrays.c (FT_GRAY_SET): Adjust for better code.
+
+2021-05-11  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Faster bitmap sweeping.
+
+	Selecting the fill rule or checking the direct mode each time we call
+	`gray_hline' is sub-optimal.  This effectively splits the direct mode
+	into a separate code path while inlining `gray_hline' and saving 5-7%
+	of rendering time.
+
+	* src/smooth/ftgrays.c (gray_hline): Eliminated in favor of...
+	(FT_FILL_RULE, FT_GRAY_SET): ... these new macros...
+	(gray_sweep): ... inlined here.
+	(gray_sweep_direct): New function that handles the direct span buffer.
+	(gray_TWorker): Remove the span buffer.
+	(gray_raster_render, gray_convert_glyph): Updated.
+
+2021-05-10  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/smooth/ftgrays.c (gray_hline): Simplify even-odd computations.
+
+	It is too bad the even-odd rule is not used much.
+
+2021-05-07  Alexei Podtelezhnikov  <[email protected]>
+
+	[type1] Avoid MM memory zeroing.
+
+	* src/type1/t1load.c (t1_allocate_blend, parse_blend_design_map):
+	Tweak allocation macros.
+	* src/type1/t1objs.c (T1_Face_Done): Minor.
+
+2021-05-07  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/bdf/bdflib.c (_bdf_list_ensure): Tweak allocation macro.
+
+2021-05-06  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/psaux/psobjs.c (ps_parser_load_field): Tweak allocation macro.
+
+2021-05-06  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/sfobjs.c (sfnt_load_face): Tweak allocation macro.
+
+2021-05-06  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/cid/cidload.c (cid_read_subrs): Tweak allocation macro.
+
+2021-05-06  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Tweak allocation.
+
+2021-05-05  Alexei Podtelezhnikov  <[email protected]>
+
+	[cff,psaux] Avoid memory zeroing (contd.).
+
+	* src/cff/cffload.c (cff_blend_doBlend, cff_blend_build_vector): Tweak
+	allocation macros.
+	* src/psaux/psarrst.c (cf2_arrstack_setNumElements): Ditto.
+	* src/psaux/psstack.c (cf2_stack_init): Ditto.
+
+2021-05-04  Ben Wagner  <[email protected]>
+
+	* src/cid/cidload.c (cid_hex_to_binary): Improve return value.
+
+	Add argument to return the actual number of bytes that were decoded.
+	The actual number of bytes decoded can be quite variable depending
+	on the number of ignored 'whitespace' bytes or early termination
+	with `>`.
+	(cid_face_open): Updated to use this calculated value.  This avoids
+	trusting `parser->binary_length` is always be correct and reading
+	uninitialized bits if fewer are actually decoded.
+
+	First reported as
+
+	  https://crbug.com/1203240
+
+2021-05-03  Alexei Podtelezhnikov  <[email protected]>
+
+	[sfnt] Streamline POST format 2.0 handing.
+
+	To reduce memory allocations, we read an entire Pascal-string buffer
+	and convert it to a C-string buffer.  We also reject tables with
+	Postscript glyph names exceeding 63 bytes.
+
+	* src/sfnt/ttpost.c (load_format20): Implement it.
+	(load_post_names): Check the minimal POST table size.
+	(load_format25, tt_face_free_ps_names): Updated accordingly.
+
+2021-05-02  Alexei Podtelezhnikov  <[email protected]>
+
+	[bdf,pcf] Avoid memory zeroing (contd.).
+
+	* src/bdf/bdflib.c (bdf_create_property, _bdf_add_comment,
+	_bdf_add_property, bdf_load_font): Tweak allocation macros.
+	* src/pcf/pcfread.c (pcf_get_properties, pcf_get_metrics): Ditto.
+
+2021-05-01  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/cid/cidload.c (cid_read_subrs): Tweak allocaton macro.
+
+2021-05-01  Alexei Podtelezhnikov  <[email protected]>
+
+	[sfnt] Avoid some memory zeroing.
+
+	* src/sfnt/sfobjs.c (sfnt_open_font, sfnt_init_face,
+	tt_name_ascii_from_{utf16,other}): Tweak allocaton macros.
+	* src/sfnt/ttload.c (tt_face_load_name): Ditto.
+
+2021-05-01  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/ttpost.c (load_format_{20,25}): Tweak allocaton macros.
+
+2021-05-01  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/pngshim.c (Load_SBit_Png): Tweak allocaton macro.
+
+2021-05-01  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Avoid some memory zeroing.
+
+	* src/truetype/ttinterp.c (Init_Context): Tweak allocation macro.
+	* src/truetype/ttpload.c (tt_face_load_cvt): Ditto.
+
+2021-05-01  Alexei Podtelezhnikov  <[email protected]>
+
+	[woff2] Avoid some memory zeroing.
+
+	* src/sfnt/sfwoff2.c (store_loca, woff2_open_font): Tweak macros.
+
+2021-04-30  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/gzip/ftgzip.c (ft_gzip_alloc): Zero out memory again.
+
+2021-04-27  Alexei Podtelezhnikov  <[email protected]>
+
+	[lzw] Preserve decompression stack when relocating to heap.
+
+	* src/lzw/ftzopen.c (ft_lzwstate_stack_grow): Copy stack when
+	relocating to heap.
+
+2021-04-27  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/cid/cidgload.c (cid_load_glyph): Restore the glyph_length check.
+
+2021-04-27  Werner Lemberg  <[email protected]>
+
+	* src/psmodule.c (ps_unicodes_init): Ignore empty glyph names.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=33637
+
+2021-04-26  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/sfobjs.c (sfnt_init_face): Revert macro change.
+
+2021-04-26  Alexei Podtelezhnikov  <[email protected]>
+
+	[cff] Avoid some memory zeroing.
+
+	* src/cff/cffparse.c (cff_parser_init): Tweak memory macro.
+	* src/cff/cffload.c (cff_index_load_offsets, cff_index_get_pointers,
+	cff_charset_load, cff_vstore_load): Ditto.
+
+2021-04-26  Alexei Podtelezhnikov  <[email protected]>
+
+	[pfr] Avoid some memory zeroing.
+
+	* src/pfr/pfrobjs.c (pfr_face_init) : Tweak memory macro.
+	* src/pfr/pfrload.c (pfr_extra_item_load_stem_snaps,
+	pfr_phy_font_load): Ditto.
+
+2021-04-26  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/winfonts/winfnt.c (FNT_Face_Init): Tweak memory macro.
+
+2021-04-26  Alexei Podtelezhnikov  <[email protected]>
+
+	[psaux,psnames] Avoid some memory zeroing.
+
+	* src/psaux/psstack.c (cf2_stack_init): Tweak memory macro.
+	* src/psnames/psmodule.c (ps_unicodes_init): Ditto.
+
+2021-04-25  Alexei Podtelezhnikov  <[email protected]>
+
+	[base] Avoid some memory zeroing.
+
+	* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Use FT_QNEW_ARRAY.
+	* src/base/ftsnames.c (FT_Get_Sfnt_{Name,LangTag}): Ditto.
+
+2021-04-25  Alexei Podtelezhnikov  <[email protected]>
+
+	[bdf,pcf] Avoid some memory zeroing.
+
+	* src/pcf/pcfread.c (pcf_read_TOC, pcf_get_properties, pcf_load_font):
+	Tweak memory macros.
+	* src/bdf/bdfdrivr.c (BDF_Face_Init): Ditto.
+	* src/bdf/bdflib.c (_bdf_readstreami, bdf_create_property,
+	_bdf_parse_glyphs, _bdf_parse_start): Ditto.
+	(_bdf_add_property): Do not handle zero size.
+
+2021-04-25  Issam E. Maghni  <[email protected]>
+
+	* builds/meson/process_ftoption_h.py: Add LF at EOF.
+
+	This fixes
+
+	  .../ftoption.h:1030:10: error:
+	    no newline at end of file [-Werror,-Wnewline-eof]
+
+	for the generated `ftoption.h` file.
+
+2021-04-24  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/cff/cffload.c (cff_index_get_pointers): s/FT_QALLOC/FT_ALLOC/.
+
+2021-04-23  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftobjs.c (Mac_Read_POST_Resource): s/FT_ALLOC/FT_QALLOC/.
+	* builds/mac/ftmac.c (FT_New_Face_From_SFNT, read_lwfn): Ditto.
+
+2021-04-23  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sdf/ftsdf.c (sdf_{edge,contour,shape}_new): Use FT_QALLOC.
+
+2021-04-23  Alexei Podtelezhnikov  <[email protected]>
+
+	[sfnt] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
+
+	* src/sfnt/sfdriver.c (get_win_string, get_apple_string,
+	sfnt_get_var_ps_name): Do not zero out the buffer.
+	* src/sfnt/sfobjs.c (sfnt_init_face): Ditto.
+	* src/sfnt/sfwoff.c (woff_open_font): Ditto.
+	* src/sfnt/sfwoff2.c (woff2_open_font): Ditto.
+
+2021-04-23  Alexei Podtelezhnikov  <[email protected]>
+
+	[cff,type1,type42] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
+
+	* src/cff/cffload.c (cff_index_get_pointers, cff_index_get_name):
+	Do not zero out the buffer.
+	* src/cff/cffdrivr.c (cff_ps_get_font_info): Ditto.
+	* src/type1/t1load.c (parse_subrs, parse_charstrings,
+	parse_blend_axis_types): Ditto.
+	* src/type1/t1parse.c (T1_New_Parser, T1_Get_Private_Dict): Ditto.
+	* src/type42/t42parse.c (t42_parser_init): Ditto.
+
+2021-04-23  Alexei Podtelezhnikov  <[email protected]>
+
+	[cid] s/FT_ALLOC/FT_QALLOC/ and clean up.
+
+	* src/cid/cidgload.c (cid_load_glyph): Do not zero out the buffer.
+	* src/cid/cidload.c (cid_face_open, cid_read_subrs): Ditto.
+
+2021-04-23  Alexei Podtelezhnikov  <[email protected]>
+
+	[pfr] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
+
+	* src/pfr/pfrload.c (pfr_extra_item_load_font_id, pfr_aux_name_load):
+	Do not zero out the buffer.
+
+2021-04-23  Alexei Podtelezhnikov  <[email protected]>
+
+	[bzip2,gzip] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
+
+	* src/bzip2/ftbzip2.c (ft_bzip2_alloc): Do not zero out the buffer.
+	* src/gzip/ftgzip.c (ft_gzip_alloc, FT_Stream_OpenGzip): Ditto.
+
+2021-04-23  Alexei Podtelezhnikov  <[email protected]>
+
+	[pcf,bdf,winfonts] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
+
+	* src/pcf/pcfread.c (pcf_interpret_style): Do not zero out the buffer.
+	* src/bdf/bdfdrivr.c (bdf_interpret_style): Ditto.
+	* src/winfonts/winfnt.c (FNT_Face_Init, FNT_Load_Glyph): Ditto.
+
+2021-04-22  Alexei Podtelezhnikov  <[email protected]>
+
+	[cache] Optimize SBit copying.
+
+	* src/cache/ftcsbits.c (ftc_snode_load): Do not initialize the buffer.
+	(ftc_sbit_copy_bitmap): Accept zero size, s/FT_ALLOC/FT_QALLOC/.
+
+2021-04-22  Alexei Podtelezhnikov  <[email protected]>
+
+	[gxvalid,otvalid] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
+
+	* src/gxvalid/gxvmod.c (gxv_load_table): Do not zero out the buffer.
+	* src/otvalid/otvmod.c (otv_load_table): Ditto.
+
+2021-04-22  Alexei Podtelezhnikov  <[email protected]>
+
+	[psaux] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
+
+	* src/psaux/psobjs.c (ps_table_done, ps_parser_load_field): Do not
+	zero out the buffer.
+
+2021-04-22  Alexei Podtelezhnikov  <[email protected]>
+
+	[base] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
+
+	* src/base/ftobjs.c (open_face_PS_from_sfnt_stream,
+	Mac_Read_sfnt_Resource): Do not zero out the buffer.
+	* src/base/ftmac.c (FT_New_Face_From_SFNT, read_lwfn): Ditto.
+	* src/base/ftrfork.c (raccess_make_file_name,
+	raccess_guess_darwin_hfsplus, raccess_guess_darwin_newvfs): Ditto.
+
+2021-04-20  Alexei Podtelezhnikov  <[email protected]>
+
+	[cache] Restore SBit copying for unowned (BDF) bitmaps.
+
+	* src/cache/ftcsbits.c (ftc_sbit_copy_bitmap): Restore.
+	(ftc_snode_load): Check ownership and copy unowned bitmaps.
+
+2021-04-19  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Return in 'COLR' v1 when layer pointer outside table
+
+	* src/sfnt/ttcolr.c (tt_face_get_paint_layers): Add missing return
+	when paint pointer outside table.
+	(read_paint): Add missing return when paint pointer outside table.
+
+2021-04-18  Alexei Podtelezhnikov  <[email protected]>
+
+	[cache] Switch to lazy SBit setting.
+
+	* src/cache/ftcsbits.c (ftc_sbit_copy_bitmap): Removed.
+	(ftc_snode_load): Take the bitmap ownership instead of copying.
+
+2021-04-16  Daniel Welty  <@danielwelty>
+
+	* src/cache/ftcsbits.c (ftc_snode_load): Properly handle short pitch.
+
+2021-04-16  Werner Lemberg  <[email protected]>
+
+	* builds/unix/freetype2.m4: Fix help string formatting.
+
+	The indented `dnl` macros inserted unwanted horizontal space.
+
+	Problem reported by Ozkan Sezer <[email protected]>.
+
+2021-04-16  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Safeguard 'COLR' v1 layer extraction
+
+	* src/sfnt/ttcolr.c (tt_face_get_paint_layers): Do not output
+	layer pointer to iterator if it is outside the 'COLR' table.
+	(read_paint): Do not attempt to read layers that are outside the
+	table.
+
+2021-04-02  Ben Wagner  <[email protected]>
+
+	[base] Complete `ft_glyphslot_clear`.
+
+	* src/base/ftobjs.c (ft_glyphslot_clear): This function is intended
+	to reset all the values of a glyph slot.  However, it was not
+	resetting the values of the advances and `glyph_index`.  Reset the
+	advances and `glyph_index` to zero.
+
+2021-04-02  Ben Wagner  <[email protected]>
+
+	[truetype] Prevent glyph program state from persisting.
+
+	`FDEF` instructions are specified as allowed only in 'prep' or
+	'fpgm'.  FreeType has attempted to prevent their use in the glyph
+	program, but they were still allowed in glyph programs if defined in
+	a function defined in 'prep' or 'fpgm' and called from the glyph
+	program.
+
+	Similarly, `IDEF` instructions are specified not to be able to
+	modify any existing instruction.  FreeType has attempted to prevent
+	their use in the glyph program, but they can still be used like
+	`FDEF`.
+
+	This change stores the initial bytecode range type and disallows the
+	use of `FDEF` and `IDEF` while running the glyph program.
+
+	Most other state is copied from the `TT_Size` into the execution
+	context.  However, it is possible for a glyph program to use `WS` to
+	write to the storage area or `WCVTP`, `WCVTF`, and `DELTAC[123]` to
+	write to the control value table.
+
+	Allowing any change to the global state from the glyph program is
+	problematic as the outlines of any given glyph may change based on
+	the order the glyphs are loaded or even how many times they are
+	loaded.  There exist fonts that write to the storage area or the
+	control value table in the glyph program, so their use should not be
+	an error.
+
+	Possible solutions to using these in the glyph program are
+
+	  * ignore the writes;
+	  * value-level copy on write, discard modified values when finished;
+	  * array-level copy on write, discard the copy when finished;
+	  * array-level copy up-front.
+
+	Ignoring the writes may break otherwise good uses.  A full copy
+	up-front was implemented, but was quite heavy as even well behaved
+	fonts required a full copy and the memory management that goes along
+	with it.  Value-level copy on write could use less memory but
+	requires a great deal more record keeping and complexity.  This
+	change implements array-level copy on write.  If any attempt is made
+	to write to the control value table or the storage area when the
+	initial bytecode range was in a glyph program, the relevant array
+	will be copied to a designated storage area and the copy used for
+	the rest of the glyph program's execution.
+
+	* src/truetype/ttinterp.h (TT_ExecContextRec): New fields
+	`iniRange`, `glyfCvtSize`, `glyfCvt`, `origCvt`, `glyfStoreSize`,
+	`glyfStorage`, and `origStorage`.
+
+	* src/truetype/ttinterp.c (Modify_CVT_Check): New function to handle
+	`exc->glyfCvt`.
+	(Write_CVT, Write_CVT_Stretched, Move_CVT, Move_CVT_Stretched): Use
+	it.
+	(Ins_WS): Handle `exc->glyfStorage`.
+	(Ins_FDEF, Ins_IDEF): Updated.
+	(TT_RunIns): Updated.
+	(TT_Done_Context): Free 'glyf' CVT working and storage area.
+	(TT_Load_Context): Fix/add casts.
+
+	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix cast.
+
+2021-03-30  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Check validity of pointer location of `read_color_line`.
+
+	* src/sfnt/ttcolr.c (get_child_table_pointer): New function to fetch
+	child table pointer early for all paint formats that compute a child
+	table pointer.
+	(read_color_line, read_paint): Updated.
+	(tt_face_get_colorline_stops): Check `colr->table`.
+
+2021-03-28  Nikhil Ramakrishnan  <[email protected]>
+
+	[docs] Update docwriter stylesheet for 1.3.1.
+
+	This change is required to support docwriter 1.3.1.
+
+	See
+
+	  https://gitlab.freedesktop.org/freetype/docwriter/-/merge_requests/101
+
+	for more information.
+
+	* docs/markdown/stylesheets/extra.css:
+	(.wy-nav-content, .md-sidebar--secondary): Remove.
+
+2021-03-16  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/pngshim.c (Load_SBit_Png): Free `rows` once later.
+
+2021-03-16  Ben Wagner  <[email protected]>
+
+	[sfnt] Fix memory leak in png loading.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/chromium/issues/detail?id=1182552
+
+	Memory is allocated and the pointer assigned to `rows` inside a
+	'setjmp' scope.  This memory must be freed outside the 'setjmp'
+	scope after a 'longjmp'.  Since `rows` is a local and modified
+	inside the 'setjmp' scope it must be marked volatile or it will have
+	an indeterminate value after the 'longjmp'.
+
+	* src/sfnt/pngshim.c (Load_SBit_Png): Fix memory leak of `rows`.
+
+2021-03-16  Christopher Degawa  <[email protected]>
+
+	* CMakeLists.txt: Don't limit generation of 'pkg-config' file to UNIX.
+
+	mingw-w64 uses the 'pkg-config' files but does not set UNIX.
+
+2021-03-11  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/smooth/ftgrays.c (gray_set_cell): Refactor to fix VC++ warning.
+
+2021-03-13  Werner Lemberg  <[email protected]>
+
+	Handle various VC++ compiler warnings.
+
+	Fixes #1039.
+
+	* src/base/ftstroke.c (ft_stroker_inside, ft_stroker_outside):
+	Initialize `sigma`.
+
+	* src/sdf/ftsdf.c (sdf_generate_with_overlaps): Exit immediately if
+	function arguments are invalid.
+	* src/sdf/ftsdfrend.c (sdf_property_set) <"overlaps">: Fix cast.
+
+	* src/sfnt/sfwoff2.c (woff2_decompress)
+	[!FT_CONFIG_OPTION_USE_BROTLI]: Use `FT_UNUSED`.
+
+	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Initialize `fvar_head`.
+
+2021-03-11  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Reduce copying during integration phase.
+
+	We now record `cover' and `area' directly into the linked list. This
+	makes rendering faster by 10% or even more at larger sizes.
+
+	* src/smooth/ftgrays.c (FT_INTEGRATE): Write directly.
+	(gray_TWorker): Add direct cell reference and remove unused fields.
+	(gray_set_cell): Consolidate the linked list management and pointers.
+	(gray_convert_glyph, gray_convert_glyph_inner): Updated.
+
+2021-03-10  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/smooth/ftgrays.c (FT_INTEGRATE): New convenience macro.
+	(gray_render_line, gray_render_scanline): Use it.
+
+2021-03-09  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/smooth/ftgrays.c (gray_render_line): Rearrange conditionals.
+
+	These produce faster or more optimizable code.
+
+2021-03-08  Tim-Philipp Müller  <[email protected]>
+
+	[meson] Fix 'mmap' handling on Windows.
+
+	* meson.build (ft2_sources): Always use `windows/ftsystem.c` on
+	Windows unless mmap has been disabled.
+
+	  https://gitlab.freedesktop.org/freetype/freetype/-/merge_requests/5#note_829289
+
+2021-03-07  Tim-Philipp Müller  <[email protected]>
+
+	[ci] Add basic support for Meson builds with MSVC on Windows.
+
+	This adds meson jobs for VS2017 (x86 and x86_64).
+
+	* .gitlab-ci.yml: New file.
+
+2021-03-07  Tim-Philipp Müller  <[email protected]>
+
+	[meson] Add subproject fallbacks for 'libpng' and 'zlib'.
+
+	* subprojects/libpng.wrap, subprojects/zlib.wrap: New files.
+
+	* meson.build: Updated.
+
+2021-03-07  Xavier Claessens  <[email protected]>
+
+	[meson] Make it work with Windows.
+
+	* meson.build: Do not process `ftconfig.h` when not using
+	`ftconfig.h.in`.
+
+	Fixes #1029.
+
+2021-02-25  Werner Lemberg  <[email protected]>
+
+	[woff2] Fix memory leak.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28148
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): Reject fonts that have
+	multiple tables with the same tag.  While not explicitly forbidden
+	in the OpenType specification, it is implicitly forbidden by
+	describing a binary search algorithm for tables that only works
+	reliably if table tags are unique.
+
+2021-02-22  Werner Lemberg  <[email protected]>
+
+	* CMakeLists.txt: Update location of `LICENSE.TXT`.
+
+	Fixes #1035.
+
+2021-02-19  Werner Lemberg  <[email protected]>
+
+	* builds/unix/ax_pthread.m4: Update from 'autoconf-archive'.
+
+	A bunch of fixes were added recently to its git repository.
+
+2021-02-17  Werner Lemberg  <[email protected]>
+
+	[unix] Updates for autoconf 2.71.
+
+	This fixes warnings reported by autoupdate.
+
+	* builds/unix/ax_pthread.m4: Replace `as_echo` with `AS_ECHO`.
+
+	* builds/unix/configure.raw: Remove obsolete `AC_HEADER_STDC`.
+	Don't escape back quotes in messages for `AC_MSG_WARN`.
+
+2021-02-16  Werner Lemberg  <[email protected]>
+
+	* builds/toplevel.mk: Fix previous commit.
+
+	<top_level>: Use `TOP_DIR` in `wildcard` function.
+	(check_out_submodule, copy_submodule): Move down to come after
+	definition of `all` rule.
+	Call `mkdir` conditionally.
+
+2021-02-16  Werner Lemberg  <[email protected]>
+
+	* builds/toplevel.mk: Use rules for handling 'dlg'.
+
+	Suggested by Alexei.
+
+	(check_out_submodule, copy_submodule): New targets.
+	<top-level>: Replace calls to `shell` with rules.
+
+2021-02-16  Werner Lemberg  <[email protected]>
+
+	* builds/toplevel.mk: Avoid side effects of `shell`.
+
+	We use a dummy variable to catch its output.  Otherwise the `make`
+	program is going to interpret the return value of `shell`; this can
+	cause obscure warning or error messages or even be harmful.
+
+2021-02-16  Werner Lemberg  <[email protected]>
+
+	Move 'dlg' submodule to `subprojects` directory.
+
+	This is for future changes with Meson, which doesn't allow a
+	different name for its `subprojects` directory.  Having both a
+	`submodules` and a `subprojects` directory is confusing.
+
+	* .gitmodules, autogen.sh (copy_submodule_files, DLG_INC_DIR,
+	DLG_SRC_DIR): Updated.
+
+	* builds/toplevel.mk (<top-level>, do-dist),
+	builds/windows/vc2010/script.bat: Updated.
+
+	* src/tools/no-copyright: Updated.
+
+2021-02-16  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Update paint format values to support non-variable paints.
+
+	* freetype.h (FT_PaintFormat): Update paint format identifiers after
+	a specification change.  The specification was updated to have
+	sibling formats, variable and non-variable variants for each.
+	Reflect that here.
+
+	* sfnt/ttcolr.c (read_paint): Remove parsing of variable indices as
+	the non-variable formats no longer have them.
+
+2021-02-15  Daniel E  <[email protected]>
+
+	* CMakeLists.txt: Improve 'bz2' support.
+
+	Not all distributions such as FreeBSD provide a `.pc` file for
+	'(lib)bz2' so follow autotools and add it to `Libs.private` instead.
+
+2021-02-13  Werner Lemberg  <[email protected]>
+
+	* src/tools/update-copyright-year: Fix single-year entry handling.
+
+	The fix from 2021-01-17 didn't cover the case where the year to be
+	updated is identical to the current year.
+
+2021-02-13  Werner Lemberg  <[email protected]>
+
+	Add new function `FT_Get_Transform`.
+
+	See
+
+	  https://github.com/harfbuzz/harfbuzz/issues/2428
+
+	for some reasons to introduce this function.
+
+	* include/freetype/freetype.h, src/base/ftobjs.c (FT_Get_Transform):
+	Implement it.
+
+2021-02-12  Alexei Podtelezhnikov  <[email protected]>
+
+	Decorate `qsort` callbacks with `cdecl`.
+
+	* include/freetype/internal/compiler-macros.h (FT_COMPARE_DEF):
+	Add new macro.
+
+	* src/base/ftrfork.c, src/bdf/bdflib.c, src/gxvalid/gxvcommn.c,
+	src/psaux/afmparse.c, src/psnames/psmodule.c, src/type1/t1afm.c,
+	src/sfnt/sfwoff.c, src/sfnt/sfwoff2.c: Update `qsort` callbacks.
+
+	Fixes #1026 when compiling FreeType with an unusual calling
+	convention while the C library function `qsort` still expects
+	`cdecl`.
+
+2021-02-10  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Implement 'COLR' v1 sweep gradients.
+
+	* freetype.h (FT_PaintSweepGradient): Add `FT_PaintSweepGradient` to
+	represent a 'COLR' v1 sweep gradient.
+	Update format.
+	(FT_PaintFormat): Update shifted paint formats.
+	Sync with spec.
+	* sfnt/ttcolr.c (read_paint): Logic to parse sweep gradients.
+	Fix struct access in radial gradient implementation.
+
+2021-02-09  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Provide optional root transform for 'COLR' v1 glyph graph.
+
+	* include/freetype/freetype.h (FT_Get_Color_Glyph_Paint):
+	Additional function argument `root_transform` to control whether
+	root transform should be returned.
+	(FT_OpaquePaint): Additional tracking field to denote whether
+	root transform is to be returned.
+	* include/freetype/internal/sfnt.h
+	(TT_Get_Color_Glyph_Paint_Func): Propagate additional argument.
+	* src/base/ftobjs.c (FT_Get_Color_Glyph_Paint): Ditto.
+	* src/sfnt/ttcolr.c (tt_face_get_colr_glyph_paint): Return root
+	transform reflecting the size and tranform configured on
+	`FT_Face`.
+	(read_paint): Initialize and track status of insert_root_transform
+	flag.
+
+2021-02-09  Xavier Claessens  <[email protected]>
+
+	* meson.build: s/freetype2_dep/freetype_dep/.
+
+	Many projects (e.g., fontconfig, cairo) hardcode the `freetype_dep`
+	variable name to use FreeType as subproject because that was the
+	variable name in Centricular's Meson port of FreeType.  While they
+	should stop hardcoding that variable name, it does not cost us
+	anything to keep using that name to ease transition.
+
+2021-02-09  Xavier Claessens  <[email protected]>
+
+	[meson] Fix handling of HarfBuzz library.
+
+	* meson.build (harfbuzz_dep): Do not fall back to HarfBuzz by
+	default.
+
+	Otherwise it causes a dependency cycle:
+
+	  cairo => fontconfig => freetype2 => harfbuzz => cairo
+
+	Meson will still fall back to HarfBuzz subprojects if the `harfbuzz`
+	option is set to `enabled` instead of `auto` and a
+	`subprojects/harfbuzz.wrap` file is present.  In that case it is the
+	responsibility of the main project to set the proper options on each
+	subproject to break the dependency cycle.
+
+	Fixes: #1028.
+
+2021-02-09  Xavier Claessens  <[email protected]>
+
+	[meson] Fix dependency lookup and generate `ftconfig.h`.
+
+	- zlib: If not found on the system, meson can build it as a
+	  subproject.  We thus never use the (outdated) zlib support that
+	  comes with FreeType.  Doing so has the additional advantage that
+	  the zlib code can be shared with other projects like GLib if both
+	  are subprojects of an application.
+	- harfbuzz: Build as a subproject if not found on the system.
+	- 'QUESTION: What if the compiler doesn't support `-D` but uses `/D`
+	  instead as on Windows?'  Answer: Meson translate arguments for us.
+	- visibility: Replace self-made code with meson-specific solution.
+
+	* meson.build (ft2_defines): Rewrite logic to set and handle it.
+	(process_header_command): New variable, previously called
+	`ftoption_command`.
+	(ftoption_command, ftconfig_command): New variables.
+	(zlib_option): Removed.
+	(zlib_dep): New variable.
+	(ft2_deps): Updated.
+	(harfbuzz_dep): Updated.
+	(ftconfig_h_in, ftconfig_h): New variables.
+	(ft2_sources): Updated.
+	(ft2_lib): Updated, handle visibility.
+	(summary): Updted.
+
+	* meson_options.txt (zlib): Updated.
+
+2021-02-09  Xavier Claessens  <[email protected]>
+
+	* meson.build: Fix resource compilation on Windows.
+
+	This is copied from GStreamer's meson port of FreeType.
+
+	(ft2_sources): Add both debug and resource file (the latter for
+	Windows only).
+	(ft2_debug_src): Removed.
+
+2021-02-09  Xavier Claessens  <[email protected]>
+
+	* meson.build: s/ft2_libtool_version/ft2_pkgconfig_version/.
+
+	(freetype2_dep): Use it.
+
+	`ft2_libtool_version` would be the shared library version, not the
+	one we should use in file `freetype2.pc`.
+
+2021-02-09  Xavier Claessens  <[email protected]>
+
+	* meson.build: Use `meson.override_dependency`.
+
+	This is a new meson mechanism to avoid other projects to hard-code
+	the `freetype2_dep` variable name in their build definition.  It
+	also ensures that meson does not mix system and subproject versions
+	of FreeType inside of the same project.
+
+	Also remove outdated TODO because `declare_dependency` was already
+	there.
+
+2021-02-09  Xavier Claessens  <[email protected]>
+
+	* meson.build (bzip2_dep): Simplify.
+
+	We remove `static:false` from `find_library('bz2')`.
+
+	I don't know whether the previous code was a workaround for an old
+	meson bug, but at least with version >=0.55.0 (which FreeType uses)
+	it picks the shared library when both are available.
+
+	File `freetype2.pc` still contains the full path to file `libbz2.so`
+	instead of `-lbz2` – that we need to do this is a meson bug even
+	present in the current version (0.57.0).
+
+2021-02-09  Xavier Claessens  <[email protected]>
+
+	* meson.build: Set project version.
+
+2021-02-04  Werner Lemberg  <[email protected]>
+
+	[base] Fix Netpbm tracing message.
+
+	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Don't emit Netpbm
+	warning if there is nothing to output.
+
+2021-02-04  Werner Lemberg  <[email protected]>
+
+	* src/*: Don't use more than one '\n' in `FT_TRACE` and `FT_ERROR`.
+
+	This ensures good logging output, with all lines having a proper
+	prefix (if requested).
+
+	This is a continuation of a similar patch from 2020-12-02, which
+	missed some locations.
+
+2021-02-03  Alexei Podtelezhnikov  <[email protected]>
+
+	* builds/unix/configure.raw [mmap]: Restore default path.
+
+	Fixes #1023.
+
+2021-02-03  Werner Lemberg  <[email protected]>
+
+	[psaux] Fix integer overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30154
+
+	* src/psaux/psblues.c (cf2_blues_capture): Use `SUB_INT32`.
+
+2021-02-02  Alexei Podtelezhnikov  <[email protected]>
+
+	* builds/unix/configure.raw [mmap support]: Explicitly handle Windows.
+
+	Fixes #1024.
+
+2021-01-31  Werner Lemberg  <[email protected]>
+
+	* builds/unix/configure.raw [mmap support]: Correctly handle Windows.
+
+	Fixes #1024.
+
+2021-01-31  Werner Lemberg  <[email protected]>
+
+	* builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c`.
+
+2021-01-31  Werner Lemberg  <[email protected]>
+
+	Always provide logging API.
+
+	It's easier to have stubs if FT_DEBUG_LOGGING is undefined than to
+	modify `ftexport.sym` conditionally.
+
+	Problem reported by Alexei.
+
+	* src/base/ftdebug.c: Include `ftlogging.h`.
+	(FT_Trace_Set_Level, FT_Trace_Set_Default_Level, FT_Set_Log_Handler,
+	FT_Set_Default_Log_Handler) [!FT_DEBUG_LOGGING]: Provide stubs.
+
+2021-01-31  Werner Lemberg  <[email protected]>
+
+	* builds/unix/configure.raw: Fix typo.
+
+	Bug introduced in Vincent's last commit bb33f03.
+
+	Fixes issue #1021.
+
+2021-01-27  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftstroke.c (FT_Stroker_EndSubPath): Ignore tiny gaps.
+
+	Fixes bug #1020.
+
+2021-01-27  Alexei Podtelezhnikov  <[email protected]>
+
+	[stroker] Minor clean-up.
+
+	* src/base/ftstroke.c (FT_Stroker_{ConicTo,CubicTo}): Reset the last
+	line length.
+	(FT_Stroker_EndSubPath): Call `ft_stroker_process_corner'.
+
+2021-01-27  Vincent Torri  <[email protected]>
+
+	* builds/windows/ftsystem.c: Add shared memory support on Windows.
+
+	* CMakeLists.txt (BASE_SRCS), builds/unix/configure.raw (FTSYS_SRC),
+	builds/windows/vc2010/freetype.vcxproj,
+	builds/windows/visualc/freetype.vcproj, meson.build (ft2_sources):
+	Add it (conditionally).
+
+2021-01-23  Werner Lemberg  <[email protected]>
+
+	Require HarfBuzz 2.0.0.
+
+	This is needed to make commit f1f9705f9 work.
+
+	* CMakeLists.txt (HARFBUZZ_MIN_VERSION), builds/unix/configure.raw
+	(harfbuzz_pkg), meson.build (harfbuzz_dep): Updated.
+
+2021-01-22  Alexei Podtelezhnikov  <[email protected]>
+
+	* autogen.sh: Absorb `version.sed'.
+	* version.sed: Removed.
+
+2021-01-19  Alexei Podtelezhnikov  <[email protected]>
+
+	* srd/base/ftlcdfil.c (FT_Library_SetLcdGeometry): Fix return value.
+
+2021-01-15  Nikolaus Waxweiler  <[email protected]>
+
+	[afshaper] Fix hb_ot_tags_from_script deprecation warning.
+
+	* autofit/afshaper.c (af_shaper_get_coverage): Copy the source code
+	of the function as suggested in
+	https://github.com/harfbuzz/harfbuzz/issues/2737 and adjust to handle
+	at most three tags.
+
+2021-01-17  Werner Lemberg  <[email protected]>
+
+	* src/tools/update-copyright-year: Fix single-year entry handling.
+
+2021-01-16  Alexei Podtelezhnikov  <[email protected]>
+
+	* builds/unix/unixddef.mk: Remove the second DEVEL_DIR definition.
+
+2021-01-14  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Additional checks for 'colr' table presence.
+
+	* sfnt/ttcolr.c (tt_face_get_colr_glyph_paint,
+	tt_face_get_colorline_stops, tt_face_get_paint): Additional checks
+	for whether colr table is present.  Prevents crashes when these
+	methods are called on non-COLR fonts.
+
+2021-01-13  Dominik Röttsches  <[email protected]>
+
+	Add config option to test for 'COLR' v1 support in headers.
+
+	* include/freetype/config/ftoption.h (TT_SUPPORT_COLRV1): New macro
+	so that clients can test whether the FreeType checkout that they are
+	building against supports the 'COLR' v1 API.  This is intended to be
+	a temporary solution until 'COLR' v1 support is released in a
+	FreeType version and such a check can be made by using the version
+	number instead.
+
+2020-12-16  Dominik Röttsches  <[email protected]>
+
+	[base] Fill 'COLR' v1 API templates to make them work (#59703).
+
+	* src/base/ftobjs.c (FT_Get_Color_Glyph_Paint, FT_Get_Paint_Layers,
+	FT_Get_Paint, FT_Get_Colorline_Stops): Add basic sanity checks,
+	check for existence of `FT_Face`, check arguments and delegate calls
+	for the respective 'COLR' v1 API to the SFNT driver.
+
+2020-12-16  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Register 'COLR' v1 API in driver (#59703).
+
+	* include/freetype/internal/sfnt.h (TT_Get_Color_Glyph_Paint_Func,
+	TT_Get_Paint_Layers_Func, TT_Get_Colorline_Stops_Func,
+	TT_Get_Paint_Func): New function pointer types.
+	(SFNT_Interface): Add them.
+	(FT_DEFINE_SFNT_INTERFACE): Updated.
+
+	* src/sfnt/sfdriver.c (PUT_COLOR_LAYERS_V1): New macro.
+	(sfnt_interface): Add new function pointers.
+
+2020-12-16  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Add 'COLR' v1 API to retrieve color layers (#59703).
+
+	* src/sfnt/ttcolr.c (tt_face_get_paint_layers): New function to get
+	the layers of a `PaintColrLayers` table in the font, using an
+	`FT_LayerIterator` from an `FT_PaintColrLayers` object retrieved via
+	`tt_face_get_paint`.
+
+	* src/sfnt/ttcolr.h: Updated.
+
+2020-12-16  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Add 'COLR' v1 API to iterate color stops (#59703).
+
+	* src/sfnt/ttcolr.c (tt_face_get_colorline_stops): New function to
+	return the current `FT_ColorStop` object from `FT_ColorStopIterator`.
+	Also increment the iterator.
+
+	* src/sfnt/ttcolr.h: Updated.
+
+2020-12-16  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Add API to get actual paint from `FT_OpaquePaint` (#59703).
+
+	* src/sfnt/ttcolr.c (tt_face_get_paint): New function to resolve an
+	`FT_OpaquePaint` paint reference into an `FT_COLR_Paint` object of a
+	certain format, which contains the detailed information stored in a
+	paint of the respective format.
+	(read_paint): New function to provide the format specific parsing
+	and to populate the data members of each specific `FT_COLR_Paint`
+	subtype.
+	(read_color_line): New function to parse retrieved color line
+	information into an `FT_ColorLine` object, which has information
+	about the color line extend mode as well as an
+	`FT_ColorStopIterator` object.
+
+	* src/sfnt/ttcolr.h: Updated.
+
+2020-12-16  Dominik Röttsches  <[email protected]>
+
+	[sfnt] Add API to retrieve 'COLR' v1 root paint (#59703).
+
+	* src/sfnt/ttcolr.c (BaseGlyphV1Record): New structure.
+	(tt_face_load_colr): Handle version 1 table header.
+	(find_base_glyph_v1_record): New auxiliary function.
+	(tt_face_get_colr_glyph_paint): New function to find the root
+	`FT_OpaquePaint` object for a given glyph ID.
+
+	* src/sfnt/ttcolr.h: Updated.
+
+2020-12-16  Dominik Röttsches  <[email protected]>
+
+	Add new methods required for 'COLR' v1 to public API (#59703).
+
+	* include/freetype/freetype.h (FT_Get_Color_Glyph_Paint): New method
+	for retrieving the root paint object for a color glyph by specifying
+	a glyph ID.
+	(FT_Get_Paint_Layers): New method for retrieving the layers of a
+	`PaintColorGlyph`.
+	(FT_Get_ColorLine_Stops): New method for retrieving the stops of a
+	color.
+	(FT_Get_Paint): New method for resolving an `FT_OpaquePaint` into an
+	`FT_COLR_Paint` object.
+
+2020-12-16  Dominik Röttsches  <[email protected]>
+
+	Add types required for 'COLR' v1 to public API (#59703).
+
+	* include/freetype/freetype.h (FT_PaintFormat, FT_ColorStopIterator,
+	FT_ColorIndex, FT_ColorStop, FT_PaintExtend, FT_ColorLine,
+	FT_Affine23, FT_CompositeMode, FT_OpaquePaint, FT_PaintColrLayers,
+	FT_PaintSolid, FT_PaintLinearGradient, FT_PaintRadialGradient,
+	FT_PaintGlyph, FT_PaintColrGlyph, FT_PaintTransformed,
+	FT_PaintTranslate, FT_PaintRotate, FT_PaintSkew, FT_PaintComposite,
+	FT_COLR_Paint): Adding structs and enum to represent paint format,
+	color stop information, gradient extend information, structs to
+	reference paint offsets, and to define transforms and compositions.
+	Adding a union type to represent the union of the structs,
+	distinguished by `FT_PaintFormat`.
+
+2021-01-10  Werner Lemberg  <[email protected]>
+
+	* builds/*: s/BUILD_DIR/PLATFORM_DIR/.
+
+	The old variable name caused confusion.
+
+2021-01-08  Alexei Podtelezhnikov  <[email protected]>
+
+	[builds] Revert `FTMODULE_H' changes.
+
+	* builds/toplevel.mk, builds/freetype.mk: Revert changes.
+
+2021-01-07  Alexei Podtelezhnikov  <[email protected]>
+
+	[builds/windows] Fix up DLG build with VC++.
+
+	* builds/windows/vc2010/script.bat: Copy headers to include/.
+	* builds/windows/vc2010/freetype.vcxproj: Remove DLG paths.
+
+2021-01-07  Alexei Podtelezhnikov  <[email protected]>
+
+	[builds] Relocate `FTMODULE_H'.
+
+	* builds/toplevel.mk: Place `FTMODULE_H' in include/.
+	* builds/freetype.mk: Simplify included path.
+
+2021-01-07  Werner Lemberg  <[email protected]>
+
+	Fix ABI incompatibility.
+
+	* include/freetype/ftimage.h (FT_Pixel_Mode): Don't insert
+	`FT_PIXEL_MODE_GRAY16' but append it.
+
+	* src/base/ftobjs.c (pixel_modes): Updated.
+
+2021-01-07  Alexei Podtelezhnikov  <[email protected]>
+
+	[dlg] Move the headers to include/dlg to simplify their use.
+
+	* autogen.sh, builds/toplevel.mk: Copy headers to include/dlg.
+	* builds/freetype.mk, builds/windows/vc2010/freetype.vcxproj:
+	Simplify included path.
+	* include/freetype/internal/ftdebug.h: Simplify #include.
+	* src/dlg/rules.mk, .gitignore: Updated.
+
+2021-01-06  Werner Lemberg  <[email protected]>
+
+	* meson.build: Add summary.
+
+	Based on a patch from Vincent Torri <[email protected]>.
+
+2021-01-06  Torsten Hilbrich  <[email protected]>
+
+	* meson.build: Fix 'png' build option (#59458).
+
+	Without this patch, 'png' is always required.
+
+2021-01-04  Alexei Podtelezhnikov  <[email protected]>
+
+	[builds/windows] Add SDF to VC2010 project.
+
+	* builds/windows/vc2010/freetype.vcxproj: Updated;
+	AfterBuild conveniences.
+
+2020-12-26  Werner Lemberg  <[email protected]>
+
+	[sdf] Use 'counter-clockwise', not 'anti-clockwise'.
+
+	We prefer US nomenclature.
+
+	* src/sdf/ftsdf.c (SDF_Contour_Orientation):
+	s/SDF_ORIENTATION-ACW/SDF_ORIENTATION_CCW/.
+	Update all users.
+
+2020-12-26  Werner Lemberg  <[email protected]>
+
+	* src/base/ftobjs.c (pixel_modes): Updated.
+
+2020-12-26  Anuj Verma  <[email protected]>
+
+	[sdf] Remove custom memory tracker.
+
+	The internal FreeType memory tracker is sufficient.
+
+	* src/sdf/ftsdf.c (FT_DEBUG_INNER, FT_ASSIGNP_INNER, SDF_MemoryUser,
+	sdf_alloc, sdf_free, SDF_ALLOC, SDF_FREE,
+	SDF_MEMORY_TRACKER_DECLARE, SDF_MEMORY_TRACKER_SETUP,
+	SDF_MEMORY_TRACKER_DONE): Removed.
+
+	s/SDF_ALLOC/FT_ALLOC/.
+	s/SDF_FREE/FT_FREE/.
+
+	Other updates.
+
+2020-12-24  Werner Lemberg  <[email protected]>
+
+	[sdf] Fix `make multi`.
+
+	* src/sdf/ftsdf.c: Include `ftoutln.h`.
+
+2020-12-24  Werner Lemberg  <[email protected]>
+
+	[sdf] Fix tracing.
+
+	* include/freetype/internal.fttrace.h: Add 'bsdf' component.
+
+	* src/sdf/ftbsdf.c, src/sdf/ftsdf.c (FT_COMPONENT): Define.
+
+2020-08-21  Anuj Verma  <[email protected]>
+
+	[sdf] Add debugging function.
+
+	* src/sdf/ftsdf.c (sdf_shape_dump): New function.
+
+2020-08-20  Anuj Verma  <[email protected]>
+
+	[sdf] Add 'bsdf' renderer to 'sdf' module.
+
+	* src/sdf/ftsdfrend.c (ft_bsdf_render): New function.
+
+	(ft_bitmap_sdf_renderer_class): New structure.
+
+2020-08-20  Anuj Verma  <[email protected]>
+
+	[sdf] Add interface functions for the 'bsdf' rasterizer.
+
+	* src/sdf/ftsdf.c (bsdf_raster_new, bsdf_raster_reset,
+	bsdf_raster_set_mode, bsdf_raster_render, bsdf_raster_done): New
+	functions.
+
+	(ft_bitmap_sdf_raster): New variable.
+
+	* src/sdf/ftsdf.h: Updated.
+
+2020-08-20  Anuj Verma  <[email protected]>
+
+	[sdf] Add function to copy SDF data into output bitmap.
+
+	* src/sdf/ftbsdf.c (finalize_sdf): New function.
+
+2020-08-20  Anuj Verma  <[email protected]>
+
+	[sdf] Add '8-point sequential Euclidean distance mapping' algorithm.
+
+	* src/sdf/ftbsdf.c (compare_neighbor, first_pass, second_pass,
+	edt8): New functions.
+
+2020-08-20  Anuj Verma  <[email protected]>
+
+	[sdf] Add function to copy source bitmap to distance map.
+
+	* src/sdf/ftbsdf.c (bsdf_init_distance_map): New function.
+
+2020-08-20  Anuj Verma  <[email protected]>
+
+	[sdf] Add functions to compute pixel edge distances.
+
+	* src/sdf/ftbsdf.c (compute_edge_distance, bsdf_approximate_edge):
+	New functions.
+
+2020-08-20  Anuj Verma  <[email protected]>
+
+	[sdf] Add function to find edge pixels in a grid of alpha values.
+
+	* src/sdf/ftbsdf.c (bsdf_is_edge): New function.
+
+2020-08-20  Anuj Verma  <[email protected]>
+
+	[sdf] Add essential structures for the 'bsdf' rasterizer.
+
+	* src/sdf/ftbsdf.c (ONE): New macro.
+	(BSDF_TRaster, ED, BSDF_Worker): New structures.
+	(zero_ed): New constant.
+
+2020-08-20  Anuj Verma  <[email protected]>
+
+	[sdf] Add 'sdf' module to non-gnumake build systems.
+
+	* include/freetype/config/ftmodule.h: Add both the 'sdf' and 'bsdf'
+	renderers to the list of modules.
+
+	* CMakeLists.txt (BASE_SRCS): Add 'sdf' single-object module.
+
+2020-08-20  Anuj Verma  <[email protected]>
+
+	[sdf] Added basic overlapping contour support.
+
+	* src/sdf/ftsdf.c (sdf_generate_with_overlaps): New function.
+	(sdf_raster_render): Enable it.
+
+2020-08-19  Anuj Verma  <[email protected]>
+
+	[sdf] Add build infrastructure.
+
+	* src/sdf/module.mk, src/sdf/rules.mk: New files.
+
+	* src/sdf/ftsdf.h (ft_sdf_raster): New forward declaration.
+
+	* include/freetype/ftmoderr.h (FT_MODERRDEF): Add error definition
+	for the 'sdf' module.
+
+	* include/freetype/internal/fttrace.h (FT_TRACE_DEF): Add trace
+	definition for the `sdf' module.
+
+	* modules.cfg (RASTER_MODULES): Add the `sdf' module to the list of
+	rasterizers.
+
+2020-08-19  Anuj Verma  <[email protected]>
+
+	[sdf] Add interface functions for the 'sdf' rasterizer.
+
+	* src/sdf/ftsdf.c (sdf_raster_new, sdf_raster_reset,
+	sdf_raster_set_mode, sdf_raster_render, sdf_raster_done): New
+	functions.
+	(ft_sdf_raster): New structure.
+
+2020-08-19  Anuj Verma  <[email protected]>
+
+	[sdf] Add subdivision and bounding box optimization.
+
+	* src/sdf/ftsdf.c (sdf_generate_bounding_box): New function, which
+	is an optimized version of `sdf_generate`.
+	(sdf_generate_subdivision): New function.
+
+2020-08-19  Anuj Verma  <[email protected]>
+
+	[sdf] Add function to generate SDF.
+
+	* src/sdf/ftsdf.c (sdf_generate): New function, currently disabled.
+	This is a proof-of-concept implementation: It doesn't use any
+	optimization, it simply checks all grid points against all contours.
+
+2020-08-19  Anuj Verma  <[email protected]>
+
+	[sdf] Add functions to get shortest distance from any edge/contour.
+
+	* src/sdf/ftsdf.c (sdf_edge_get_min_distance): New function.
+	(sdf_contour_get_min_distance): New function, currently disabled.
+
+2020-08-18  Anuj Verma  <[email protected]>
+
+	[sdf] Add shortest distance finding functions.
+
+	* src/sdf/ftsdf.c (get_min_distance_line, get_min_distance_conic,
+	get_min_distance_cubic): New functions.  Note that
+	`get_min_distance_conic` comes with two implementations (using an
+	analytical and an iterative method, to be controlled with the
+	`USE_NEWTON_FOR_CONIC` macro).
+
+2020-08-18  Anuj Verma  <[email protected]>
+
+	[sdf] Add function to resolve corner distances.
+
+	* src/sdf/ftsdf.c (resolve_corner): New function.
+
+2020-08-18  Anuj Verma  <[email protected]>
+
+	[sdf] Add essential math functions.
+
+	* src/sdf/ftsdf.c (cube_root, arc_cos) [!USE_NEWTON_FOR_CONIC]: New
+	auxiliary functions.
+
+	* src/sdf/ftsdf.c (solve_quadratic_equation, solve_cubic_equation)
+	[!USE_NEWTON_FOR_CONIC]: New functions.
+
+2020-08-18  Anuj Verma  <[email protected]>
+
+	[sdf] Add utility functions for contours.
+
+	* src/sdf/ftsdf.c (get_control_box, get_contour_orientation): New
+	functions.
+	(split_conic, split_cubic, split_sdf_conic, split_sdf_cubic,
+	split_sdf_shape): New functions.
+
+2020-08-17  Anuj Verma  <[email protected]>
+
+	[sdf] Add functions to decompose `FT_Outline`.
+
+	* src/sdf/ftsdf.c (sdf_move_to, sdf_line_to, sdf_conic_to,
+	sdf_cubic_to): New auxiliary decomposition functions.
+	(sdf_compose_funcs): New structure.
+	(sdf_outline_decompose): New function.
+
+2020-08-17  Anuj Verma  <[email protected]>
+
+	[sdf] Structs, enums, macros, and functions for 'sdf' rasterizer.
+
+	* src/sdf/ftsdf.c (FT_DEBUG_INNER, FT_ASSIGNP_INNER)
+	[FT_DEBUG_LEVEL_TRACE && FT_DEBUG_MEMORY]: New macros.
+	(SDF_MemoryUser) [FT_DEBUG_LEVEL_TRACE && FT_DEBUG_MEMORY]: New
+	struct for memory usage tracing.
+	(sdf_alloc, sdf_free) [FT_DEBUG_LEVEL_TRACE && FT_DEBUG_MEMORY]: New
+	functions for memory usage tracing.
+
+	(SDF_ALLOC, SDF_FREE): New macros for memory management.
+	(SDF_MEMORY_TRACKER_DECLARE, SDF_MEMORY_TRACKER_SETUP,
+	SDF_MEMORY_TRACKER_DONE): New macros to set up memory usage tracing.
+
+	(USE_NEWTON_FOR_CONIC, MAX_NEWTON_DIVISIONS, MAX_NEWTON_STEPS,
+	CORNER_CHECK_EPSILON, CG_DIMEN): New configuration macros for
+	controlling the process of finding the shortest distance.
+
+	(MUL_26D6, VEC_26D6_DOT): New auxiliary macros.
+
+	(SDF_TRaster, SDF_Edge, SDF_Contour, SDF_Shape, SDF_Signed_Distance,
+	SDF_Params): New structs for setting up SDF data.
+	(SDF_Edge_Type, SDF_Contour_Orientation): New enums for SDF data.
+
+	(zero_vector, null_edge, null_contour, null_shape, max_sdf): Useful
+	constants.
+
+	(sdf_edge_new, sdf_edge_done, sdf_contour_new, sdf_contour_done,
+	sdf_shape_new, sdf_shape_done): New constructors and destructors.
+
+2020-08-17  Anuj Verma  <[email protected]>
+
+	[sdf] Add raster parameters structure.
+
+	* src/sdf/ftsdf.h (SDF_Raster_Params): New structure.
+
+	* src/sdf/sdf.c: Include source files in order to make a single
+	object of the module.
+
+2020-08-17  Anuj Verma  <[email protected]>
+
+	[sdf] Add 'sdf' renderer.
+
+	* src/sdf/ftsdf.c: Add 'sdf' renderer along with its interface
+	functions.
+	Also add functions to set and get properties.
+
+2020-08-17  Anuj Verma  <[email protected]>
+
+	[sdf] Add common elements for 'sdf' and 'bsdf' renderers.
+
+	* src/sdf/ftsdfrend.h (SDF_Rendere_Module, ft_sdf_renderer_class,
+	ft_bitmap_sdf_renderer_class): New structures.
+
+	* src/sdf/ftsdfcommon.h (DEFAULT_SPREAD, MIN_SPREAD_MAX_SPREAD,
+	USE_SQUARED_DISTANCES): New macros.
+	(FT_INT_26D6, FT_INT_16D16, FT_26D6_16D16): New macros.
+	(FT_CALL, VECTOR_LENGTH_16D16): New macros.
+	(FT_26D6_Vec, FT_16D16_Vec, FT_16D16, FT_26D6, FT_6D10, FT_CBox):
+	New typedefs.
+	(square_root): New macro.
+
+	* src/sdf/ftsdferrs.h: Add module error setup.
+
+2020-08-16  Anuj Verma  <[email protected]>
+
+	[sdf] Add files for new 'sdf' module.
+
+	Here is a breakdown of what the files will contain.
+
+	* src/sdf/ftsdfrend.c, src/sdf/ftsdfrend.h: The 'sdf' and 'bsdf'
+	renderers.
+
+	* src/sdf/ftsdf.c, src/sdf/ftsdf.h: The rasterizer for the 'sdf'
+	renderer.
+	* src/sdf/ftbsdf.c, src/sdf/ftbsdf.h: The rasterizer for the 'bsdf'
+	renderer.
+
+	* src/sdf/ftsdfcommon.h: Commmon properties and functions for both
+	rasterizers.
+	* src/sdf/ftsdferrs.h: Common error defines.
+
+	* src/sdf/sdf.c: For building a single object of the entire module.
+
+2020-08-16  Anuj Verma  <[email protected]>
+
+	[base] Allow renderers of different formats.
+
+	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Do not return if the
+	glyph's slot format is `FT_GLYPH_FORMAT_BITMAP`.  The forthcoming
+	'bsdf' renderer will require bitmaps for processing.
+
+	* src/base/ftobjs.c (ft_add_renderer, ft_remove_renderer): Remove
+	renderer's glyph format check before adding and removing them.  The
+	'bsdf' renderer will have a format `FT_GLYPH_FORMAT_BITMAP`.
+
+2020-08-16  Anuj Verma  <[email protected]>
+
+	Add data types required for the forthcoming 'sdf' module.
+
+	* include/freetype/freetype.h (FT_Render_Mode): Add new render mode
+	`FT_RENDER_MODE_SDF`, which will be used to generate SDF.
+
+	* include/freetype/ftimage.h (FT_Pixel_Mode): Add new pixel mode
+	`FT_PIXEL_MODE_GRAY16`, which will be the output of the 'sdf'
+	module.
+	(FT_RASTER_FLAG_SDF): New raster flag to be used internally by the
+	'sdf' module.
+
+	* include/freetype/fttypes.h (FT_F6Dot10): New data type.
+
+2020-08-16  Anuj Verma  <[email protected]>
+
+	[base] Allow renderers of different formats.
+
+	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Do not return if the
+	glyph's slot format is `FT_GLYPH_FORMAT_BITMAP`.  The forthcoming
+	'bsdf' renderer will require bitmaps for processing.
+
+	* src/base/ftobjs.c (ft_add_renderer, ft_remove_renderer): Remove
+	renderer's glyph format check before adding and removing them.  The
+	'bsdf' renderer will have a format `FT_GLYPH_FORMAT_BITMAP`.
+
+2020-12-23  Werner Lemberg  <[email protected]>
+
+	* builds/windows/detect.mk (COPY): Make it work with `shell`.
+
+	Without this patch, we get the error
+
+	  builds/toplevel.mk:127: *** missing separator.  Stop.
+
+	Reported by Anuj, with a solution from Alexei.
+
+2020-12-23  Ignacio Casal Quinteiro  <[email protected]>
+
+	* meson.build (ft2_defines): Fix builds on Windows.
+
+2020-12-18  Tatsuyuki Ishi  <[email protected]>
+
+	[autofit] Fix double division in stem darkening.
+
+	The old code used to divide the darkening amount by em_ratio twice,
+	leading to unnecessarily bold stems on certain fonts with higher
+	units per em (e.g. Inter). This patch fixes it.
+
+	The return value of af_loader_compute_darkening was also changed to
+	use 16.16 fixed point to get rid of a redundant truncation operation.
+	This should slightly improve the precision, although it's still
+	bottlenecked by the emboldening function, which uses 26.6 fixed point.
+
+	* src/autofit/afloader.[ch]
+	(af_loader_compute_darkening): Return FT_Fixed.
+	(af_loader_embolden_glyph_in_slot): Revise calculations.
+
+2020-12-17  Alexei Podtelezhnikov  <[email protected]>
+
+	* include/freetype/ftmodapi.h (FT_FACE_DRIVER_NAME): New public macro.
+
+	The driver name is needed for `FT_Property_Set' and `FT_Property_Get'.
+
+2020-12-16  Chris Liddell  <[email protected]>
+
+	[truetype] Fix incremental metrics (#59503).
+
+	* src/truetype/ttgload.c (tt_get_metrics, load_truetype_glyph):
+	Previously, the code would populate the phantom points before
+	calling the `get_glyph_metrics` callback.  For formats like PCL XL
+	format 1, class 2 downloaded fonts (where metrics are removed from
+	the TTF header), this causes problems when the hinting program uses
+	the phantom points (misplaced and distorted glyphs) due to the
+	metrics being unset (all zeros).
+	(tt_get_metrics_incr_overrides): Renamed to...
+	(tt_get_metrics_incremental): ... this.  Updated caller
+
+	* include/freetype/ftincrem.h: Update the documentation to make it
+	clearer that `get_glyph_metrics` is to retrieve metrics from a
+	non-standard source, but *not* for the purpose of imposing custom
+	metrics.
+
+2020-12-14  Werner Lemberg  <[email protected]>
+
+	[type42] Pacify static analysis tools (#59682).
+
+	* src/type42/t42objs.c (T42_Size_Init, T42_GlyphSlot_Init): Avoid
+	warnings about uninitialized variables.
+
+2020-12-07  Werner Lemberg  <[email protected]>
+
+	* builds/unix/configure.raw: Don't set `FT_DEBUG_LOGGING`.
+
+	All debug options are handled exclusively in `ftoption.h`.
+
+2020-12-07  Werner Lemberg  <[email protected]>
+
+	* src/*: More fixes for using a '\n' in `FT_TRACE` and `FT_ERROR`.
+
+2020-12-07  Werner Lemberg  <[email protected]>
+
+	*/*: s/FT_LOGGING/FT_DEBUG_LOGGING/.
+
+2020-12-05  Werner Lemberg  <[email protected]>
+
+	* builds/toplevel.mk (do-dist): Remove `submodules` directory.
+
+2020-12-02  Werner Lemberg  <[email protected]>
+
+	* src/*: Don't use more than one '\n' in `FT_TRACE` and `FT_ERROR`.
+
+	This ensures good logging output, with all lines having a proper
+	prefix (if requested).
+
+2020-12-02  Werner Lemberg  <[email protected]>
+
+	[base] Don't close 'stderr' after logging.
+
+	* src/base/ftdebug.c, builds/windows/ftdebug.c (ft_logging_deinit):
+	Fix it.
+
+2020-12-02  Werner Lemberg  <[email protected]>
+
+	* submodules/dlg: Updated to commit 9f0c8b22.
+
+2020-12-02  Werner Lemberg  <[email protected]>
+
+	* src/bdf/bdflib.c: Fix `-Wformat` warning.
+
+2020-12-02  Werner Lemberg  <[email protected]>
+
+	Improve setup for 'dlg' library.
+
+	* autogen.sh (copy_submodule_file), builds/toplevel.mk: Redirect
+	stderr to `/dev/null`.
+
+	* builds/toplevel.mk: Move code block to handle 'dlg' stuff into
+	`check_platform` conditional.
+	Also fix wildcard expressions for guarding `git submodule` commands.
+	Also make file copying work with non-Unix platforms (untested).
+
+2020-12-01  Werner Lemberg  <[email protected]>
+
+	[build] Use gcc (and clang) in C99 mode.
+
+	Other compilers are unchanged.
+
+	* builds/compiler/gcc-dev.mk, builds/compiler/gcc.mk (ANSIFLAGS):
+	s/-ansi/-std=c99/.
+
+	* builds/freetype.mk (FT_CFLAGS): Remove `-std=c99`.
+
+	* builds/unix/configure.raw: Handle C99.
+	Remove no longer needed test for gcc 4.6 and earlier.
+
+2020-12-01  Werner Lemberg  <[email protected]>
+
+	[dlg] Fix compiler warnings.
+
+	* src/dlg/dlgwrap.c: Duplicate some feature test macros from
+	`dlg.c`, which must come first before loading standard headers.  For
+	example, `freetype.h` loads `stdio.h` if compiled in debug mode.
+
+2020-12-01  Werner Lemberg  <[email protected]>
+
+	* src/type42/t42parse.c: Fix `-Wformat` warnings.
+
+2020-12-01  Priyesh Kumar  <[email protected]>
+
+	[builds/unix] Check for 'pthread' library.
+
+	* builds/unix/ax_pthread.m4: New file, taken from 'autoconf-archive'
+	git repository.
+
+	* builds/unix/configure.raw: Check for 'pthread'; also check whether
+	it works.
+
+2020-12-01  Werner Lemberg  <[email protected]>
+
+	[base] Implement vertical alignment of log printing.
+
+	Based on a patch by Priyesh.
+
+	* include/freetype/internal/fttrace.h (FT_MAX_TRACE_LEVEL_LENGTH):
+	New macro.
+
+	* src/base/ftdebug.c, builds/windows/ftdebug.c (ft_log_handler):
+	Print logs after a fixed width to handle different lengths of
+	`FT_COMPONENT` entries.
+	Use `ft_strrchr` to check for final newline character.
+
+2020-11-30  Priyesh Kumar  <[email protected]>
+
+	Update logging related documentation.
+
+	* docs/DEBUG: Updates related to `FT_LOGGING`.
+
+	* README.git: Updates related to logging.
+
+2020-11-30  Priyesh Kumar  <[email protected]>
+
+	* src/*: Fix `-Wformat` warnings.
+
+2020-11-30  Priyesh Kumar  <[email protected]>
+
+	[builds/windows] Changes to build 'dlg' with FreeType on Windows.
+
+	We only support Visual C++ 2010 and newer.
+
+	* builds/windows/vc2010/script.bat: New windows batch file to copy
+	necessary 'dlg' files from `submodules/dlg` to `src/dlg`.  This file
+	is used as a pre-built event in Visual C++.
+
+	* builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c`.
+
+	* builds/windows/vc2010/freetype.vcxproj.filters: Add
+	`src/dlgwrap.c`.
+
+	* builds/windows/vc2010/freetype.vcxproj
+	(AdditionalIncludeDirectories): Add include files of dlg for 'Debug'
+	and 'Debug Static' configurations on both 'x64' and 'win32'
+	platforms.
+	(PreprocessorDefinitions): Add `FT_LOGGING` for 'Debug' and 'Debug
+	Static' configurations on both 'x64' and 'win32' platforms.
+	Add `DLG_STATIC' for 'Debug' configuration on 'x64' and 'win32'
+	platforms.
+	(DisableLanguageExtensions): We need to disable the `/Za` option
+	when building 'dlg' with FreeType as 'dlg' strictly follows the C99
+	standard.  Visual C++ produces behaves unexpectedly when
+	compiling a C99 file with `/Za` option enabled.
+
+2020-11-30  Priyesh Kumar  <[email protected]>
+
+	[base] Add public API to change log handling function.
+
+	* include/freetype/ftlogging.h (FT_Custom_Log_Handler): New function
+	typedef to store the custom callback logging function.
+	(FT_Set_Log_Handler, FT_Set_Default_Log_Handler): New functions to
+	set and reset custom log handler.
+
+	* include/freetype/internal/ftdebug.h (custom_output_handler): New
+	variable to support a custom callback logging function.
+	(FT_Logging_Callback): A new function typedef to print log using
+	custom callback logging function, which is set using
+	`FT_Set_Log_Handler`.
+	(FT_Log): Use it.
+
+	* src/base/ftdebug.c (FT_Set_Log_Handler,
+	FT_Set_Default_Log_Handler, FT_Logging_Callback): Add function
+	definitions.
+
+2020-11-28  Priyesh Kumar  <[email protected]>
+
+	[base] Add public API to change the levels of tracing components.
+
+	* include/freetype/ftlogging.h: New header file.
+
+	* include/freetype/internal/ftdebug.h [FT_LOGGING]: Include
+	`ftlogging.h`.
+
+	* src/base/ftdebug.c (ft_custom_trace_level): New variable.
+	(ft_debug_init): Update to support change of levels of tracing
+	components of FreeType at run-time.
+	(FT_Trace_Set_Level): New function to change the levels of tracing
+	components at run-time.
+	(FT_Trace_Set_Default_Level): New function to reset the levels of
+	tracing components back to default.
+
+2020-11-28  Priyesh Kumar  <[email protected]>
+
+	[base] Updates to print timestamp and name of `FT_COMPONENT` in logs.
+
+	* include/freetype/internal/ftdebug.h (FT_LOGGING_TAG,
+	FT_LOGGING_TAG_): New macros to resolve the value of `FT_COMPONENT'
+	into a string.
+	(ft_add_tag, ft_remove_tag): New functions to add and remove dlg tags.
+
+	* src/base/ftdebug.c: Add new variables to control the logging of
+	timestamp and name of `FT_COMPONENT` along with actual logs.
+	(ft_add_tag, ft_remove_tag): Add function definitions.
+	(ft_log_handler): Updates to print timestamp and name of
+	`FT_COMPONENT`.
+	(ft_debug_init) [FT_LOGGING]: Users can now control the logging of
+	timestamp and name of `FT_COMPONENT` by adding tags in the
+	`FT2_DEBUG` environment variable.
+
+2020-11-27  Priyesh Kumar  <[email protected]>
+
+	[base] Add functions and variables to print logs to a file.
+
+	* include/freetype/internal/ftdebug.h: Added dlg's header files.
+	(FT_LOG): New macro to redirect trace logs to dlg's API's whenever
+	`FT_LOGGING' is defined.
+	(ft_logging_init, ft_logging_deinit): New functions to handle
+	initialization and uninitialization of logging related variables.
+	(ft_log_handler): New function to handle logs of FreeType.
+
+	* src/base/ftdebug.c: Add necessary logging related variables.
+	(ft_logging_init, ft_logging_deinit, ft_log_handler): Add function
+	definitions.
+
+	* src/base/ftinit.c (FT_Init_FreeType) [FT_LOGGING]: Call
+	`ft_logging_init`.
+	(FT_Done_FreeType) [FT_LOGGING]: Call `ft_logging_deinit`.
+
+	* src/base/ftobjs.c (FT_New_Library): Call `ft_debug_init` only if
+	`FT_LOGGING` is not defined.
+
+2020-11-27  Priyesh Kumar  <[email protected]>
+
+	[builds] Necessary changes to make 'dlg' compile.
+
+	* autogen.sh (copy_submodule_files): New script to copy all the
+	necessary source and include files from `submodules/dlg` to
+	`src/dlg`.
+
+	* src/dlg/dlgwrap.c: New wrapper file for `src/dlg.c`.  It enables
+	the build of 'dlg' if the `FT_LOGGING` macro is defined.
+
+	* src/dlg/rules.mk: New sub-Makefile.
+
+	* builds/freetype.mk (DLG_DIR): New variable to include the
+	header files of the 'dlg' library.
+	(INCLUDES): Add `DLG_DIR`.
+	(FT_CFLAGS): Add `-std=c99' flag.
+	Include `src/dlg/rules.mk` file to build 'dlg' library.
+	(OBJ_S, OBJ_M): Add `DLG_OBJS_M` and `DLG_OBJS_S`.
+
+	* builds/toplevel.mk: For builds directly from the git repository
+	we need to copy files from `submodule/dlg` to `src/dlg`.
+
+	* include/freetype/config/ftoption.h, devel/ftoption.h (FT_LOGGING):
+	New macro to enable or disable the logging facility in FreeType.
+
+2020-11-27  Priyesh Kumar  <[email protected]>
+
+	* .gitmodules: Add 'dlg' library's git repository as submodule.
+
+2020-12-01  Werner Lemberg  <[email protected]>
+
+	* src/tools/chktrcmp.py (trace_use_pat): Update to current use.
+
+2020-11-20  Alexei Podtelezhnikov  <[email protected]>
+
+	[cff,cid,type1] Demote old engine for lack of CFF2.
+
+	* src/cff/cffobjs.c (cff_driver_init): Always default to Adobe engine.
+	* src/cid/cidobjs.c (cid_driver_init): Ditto.
+	* src/type1/t1objs.c (T1_Driver_Init): Ditto.
+
+2020-11-09  Werner Lemberg  <[email protected]>
+
+	* src/type42/t42parse.c (t42_parse_sfnts): More tracing messages.
+
+2020-11-04  Werner Lemberg  <[email protected]>
+
+	* meson.build: Fix .pc file generation.
+
+	For backwards compatibility we need the libtool version, not the .so
+	number.
+
+	Reported by Nikolaus.
+
+2020-10-28  Werner Lemberg  <[email protected]>
+
+	[truetype] Minor update to forthcoming OpenType 1.8.4 standard.
+
+	* src/truetype/ttgxvar.c (ft_var_load_item_variation_store): Limit
+	size of `regionCount`.
+
+2020-10-26  Werner Lemberg  <[email protected]>
+
+	* meson.build: Fix 'harfbuzz' and 'brotli' build options (#59347).
+
+	Without this patch, 'harfbuzz' and 'brotli' are always required.
+
+	Patch submitted anonymously in Savannah bug report.
+
+2020-10-23  Ben Wagner  <[email protected]>
+
+	* src/sfnt/pngshim.c (Load_SBit_Png): Fix memory leak (#59322).
+
+	The issue is that `rows` is allocated but will not be freed in the
+	event that the call to `png_read_image` fails and calls `longjmp`.
+
+2020-10-20  Werner Lemberg  <[email protected]>
+
+	* Version 2.10.4 released.
+	==========================
+
+
+	Tag sources with `VER-2-10-4'.
+
+	* docs/VERSION.TXT: Add entry for version 2.10.4.
+	* docs/CHANGES: Updated.
+
+	* README, src/base/ftver.rc, builds/windows/vc2010/index.html,
+	builds/windows/visualc/index.html,
+	builds/windows/visualce/index.html,
+	builds/wince/vc2005-ce/index.html,
+	builds/wince/vc2008-ce/index.html, docs/freetype-config.1:
+	s/2.10.3/2.10.4/, s/2103/2104/.
+
+	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
+
+	* builds/unix/configure.raw (version_info): Set to 23:4:17.
+	* CMakeLists.txt (VERSION_PATCH): Set to 4.
+
+2020-10-19  Werner Lemberg  <[email protected]>
+
+	[sfnt] Fix heap buffer overflow (#59308).
+
+	This is CVE-2020-15999.
+
+	* src/sfnt/pngshim.c (Load_SBit_Png): Test bitmap size earlier.
+
+2020-10-17  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/tt{colr,cpal}.c: Fix signedness warnings from VC++.
+
+2020-10-17  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/sfwoff2.c (Read255UShort): Tweak types to please VC++.
+
+2020-10-10  Werner Lemberg  <[email protected]>
+
+	* Version 2.10.3 released.
+	==========================
+
+
+	Tag sources with `VER-2-10-3'.
+
+	* docs/VERSION.TXT: Add entry for version 2.10.3.
+
+	* README, src/base/ftver.rc, builds/windows/vc2010/index.html,
+	builds/windows/visualc/index.html,
+	builds/windows/visualce/index.html,
+	builds/wince/vc2005-ce/index.html,
+	builds/wince/vc2008-ce/index.html, docs/freetype-config.1:
+	s/2.10.2/2.10.3/, s/2102/2103/.
+
+	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
+
+	* builds/unix/configure.raw (version_info): Set to 23:3:17.
+	* CMakeLists.txt (VERSION_PATCH): Set to 3.
+
+2020-09-25  Werner Lemberg  <[email protected]>
+
+	[autofit] Synchronize with ttfautohint.
+
+	This corresponds to the following commits in the ttfautohint git
+	repository:
+
+	  bb6842bd3bd437b7b4a7921b0376c860f5e73d18  Typo, formatting.
+	  d5c91ddb1cb310257a3dfe9a8e20e1fc51335faa  Add Medefaidrin script.
+
+	* src/autofit/afblue.dat: Add blue zone data for Medefaidrin.
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Medefaidrin standard characters.
+
+	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Medefaidrin
+	data.
+
+2020-09-25  Werner Lemberg  <[email protected]>
+
+	Move `scripts/make_distribution_archives.py` to `src/tools`.
+
+	* scr/tools/scripts/make_distribution_archives.py: (_TOP_DIR,
+	_SCRIPT_DIR): Updated to new location.
+	(main): s/shutils.copyfile/shutils.copy/ to preserve file
+	permissions.
+	(main): Prefix source file paths with `git_dir` while copying files
+	to allow calls of the script from other places than the top-level
+	directory.
+
+2020-09-24  Werner Lemberg  <[email protected]>
+
+	* src/cff/cffgload.c (cff_slot_load): Scale `vertBearingY`.
+
+	Towards the end of the the function there is a call to
+	`FT_Outline_Get_CBox` that retrieves the glyph bbox in scaled units.
+	That sets `horiBearing{X,Y}` and `vertBearingX` but `vertBearingY`
+	is left alone, and is not scaled.
+
+	Patch from Eric Muller <[email protected]>.
+
+2020-09-24  Werner Lemberg  <[email protected]>
+
+	* src/base/ftobjs.c (FT_Load_Glyph): Trace glyph metrics.
+
+2020-09-22  Werner Lemberg  <[email protected]>
+
+	[meson] Move auxiliary scripts to `builds/meson`.
+
+	Suggested by Alexei.
+
+	* scripts/*.py: Move meson scripts to...
+	* builds/meson/*.py: ... this new location.
+
+	* meson.build: Updated.
+
+2020-09-21  David Turner  <[email protected]>
+
+	Add python script for building tarballs.
+
+	* scripts/make_distribution_archives.py: New file.
+
+	This standalone Python script should be equivalent to running `make
+	dist` with the Make-based build system, with the following minor
+	differences:
+
+	- Since `make distclean` doesn't always clean up `objs/` properly,
+	  `make dist` archives may contain some stale binaries like
+	  `objs/.libs/libfreetype.so.6` or others.
+
+	- `config.guess` and `config.sub` are not updated unless option
+	  `--gnu-config-dir=DIR` is used to specify the location of these
+	  files.
+
+	- Some bits of the auto-generated reference documentation may
+	  appear in slightly different order, probably due to issues related
+	  to mkdocs and docwriter.
+
+	As an example, the call
+
+	  scripts/make_distribution_archives.py /tmp/freetype2-dist
+
+	creates the following files under `/tmp/freetype2-dist`:
+
+	  freetype-<version>.tar.gz
+	  freetype-<version>.tar.xz
+	  ft<winversion>.zip
+
+2020-09-21  Werner Lemberg  <[email protected]>
+
+	* scripts/extract_freetype_version.py: Fix regex typos.
+
+2020-09-21  David Turner  <[email protected]>
+
+	Add Meson build project file.
+
+	Example usage:
+
+	  # Configure Meson build in directory `build-meson` to generate
+	  # release binaries comparable to to the ones from the
+	  # autotools/make build system.
+	  meson setup build-meson \
+	        --prefix=/usr/local \
+	        --buildtype=debugoptimized \
+	        --strip \
+	        -Db_ndebug=true
+
+	  # After configuring the Meson build with the above command,
+	  # compile and install to `/usr/local/`; this includes a pkg-config
+	  # file.
+	  ninja -C build-meson install
+
+	  # Alternatively, compile and install to `/tmp/aa/usr/local/...`
+	  # for packaging.
+	  DESTDIR=/tmp/aa ninja -C build-meson install
+
+	  # Generate documentation under `build-meson/docs`.
+	  ninja -C build-meson docs
+
+	Library size comparison for stripped `libfreetype.so` generated by
+	all three build systems:
+
+	  - Default build (autotools + libtool): 712 KiB
+	  - CMake build (RelWithDebInfo):        712 KiB
+	  - Meson build:                         712 KiB
+
+
+	* meson.build: New top-level Meson build file for the library.
+
+	* meson_options.txt: New file.  It holds user-selectable options for
+	the build, which can be printed with `meson configure`, and selected
+	at `meson setup` or `meson --reconfigure` time with
+	`-D<option>=<value>`.
+
+	* scripts/parse_modules_cfg.py: A script invoked by `meson.build` to
+	parse `modules.cfg` and extract important information out of it
+	(i.e., the list of modules).
+
+	* scripts/process_ftoption_h.py: New script invoked by `meson.build`
+	to process the original `ftoption.h` file.  It enables or disables
+	configuration macro variables based on the available dependencies.
+	This is similar to what other build systems are using (i.e., Meson's
+	`configure_file()` command is not used here).
+
+	* scripts/extract_freetype_version.py: New script invoked by
+	`meson.build` to extract the FreeType version number from
+	`<freetype/freetype.h>`.
+
+	* scripts/extract_libtool_version.py: New script invoked by
+	`meson.build` to extract the libtool `revision_info` data from
+	`builds/unix/configure.raw`, and to generate the corresponding
+	shared library suffix.
+
+	* scripts/generate_reference_docs.py: New script invoked by
+	`meson.build` to generate the FreeType 2 reference documentation
+	(using the `docwriter` and `mkdocs` packages, which must be already
+	installed).
+
+2020-09-11  Alexei Podtelezhnikov  <[email protected]>
+
+	[raster] Improve the second pass (#58373).
+
+	Besides dropout control the second horizontal sweep is supposed to
+	clean up straight horizontal edges that are mishandled by the first
+	vertical sweep when a line passes through pixel centers.  This line
+	would present as perfectly aligned span edges in the second sweep.
+
+	* src/raster/ftraster.c (Horizontal_Sweep_Span): Replace the old
+	implementation with a better one focusing on aligned span edges only.
+
+2020-09-08  Alexei Podtelezhnikov  <[email protected]>
+
+	[raster] Tune SMART macro (#58352).
+
+	Windows seems to perform smart dropout control at 26.6 precision.
+	To mimick Windows independent of increased precision, we need to tweak
+	the macro so that some close calls break down rather than up.
+
+	* src/raster/ftraster.c (SMART): Tweak the macro.
+
+2020-09-08  Alexei Podtelezhnikov  <[email protected]>
+
+	[raster] Introduce SMART macro.
+
+	* src/raster/ftraster.c (SMART): New macro for smart dropout rounding.
+	(Verstical_Sweep_Drop, Horizontal_Sweep_Drop): Use it.
+
+2020-09-03  Boris Dalstein  <[email protected]>
+
+	[build] Make CMake install basic version information.
+
+	* CMakeLists.txt: Do it.
+
+2020-09-02  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Reduce Infinality footprint (cont'd).
+
+	* src/truetype/ttinterp.c (Ins_DELTAP): Shrink variable scope.
+	(Ins_SHPIX, Ins_MIRP): Revise if-logic.
+
+2020-09-02  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Reduce Infinality footprint.
+
+	* src/truetype/ttinterp.c (Ins_SHPIX, Ins_MSIRP, Ins_MIAP, Ins_MDRP,
+	Ins_MIRP): Shrink variable scopes and consolidate ifdefs.
+
+2020-09-01  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Refactor compensation color.
+
+	* src/truetype/ttinterp.h (TT_Round_Func): Change the last argument.
+	* src/truetype/ttinterp.c (Ins_ROUND, Ins_NROUND, Ins_MDAP, Ins_MIAP,
+	Ins_MDRP, Ins_MIRP): Move compensation retrieval from here...
+	(Round_*): ... to here.
+	* src/truetype/ttobjs.c (tt_size_init_bytecode): Reserve zero
+	compensation at color index 3.
+
+2020-08-28  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Don't set target in direct mode.
+
+	* src/smooth/ftsmooth.c (ft_smooth_raster_overlap): Remove assignment.
+	(ft_smooth_raster_lcd) [!FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Ditto.
+
+2020-08-25  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/smooth/ftsmooth.c (ft_smooth_raster_overlap): Limit width.
+
+	Segmentation fault reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24729
+
+2020-08-22  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttgload.c (TT_Get_VMetrics): Add tracing message.
+
+2020-08-05  Alexei Podtelezhnikov  <[email protected]>
+
+	[truetype] Retain OVERLAP_SIMPLE and OVERLAP_COMPOUND.
+
+	For glyphs with OVERLAP_SIMPLE or OVERLAP_COMPOUND, set
+	FT_OUTLINE_OVERLAP to render them with direct oversampling, which
+	mitigates artifacts (see 3bb512bc9f62).
+
+	* include/freetype/ftimage.h (FT_OUTLINE_OVERLAP): Redefine to rhyme
+	with OVERLAP_SIMPLE.
+	* src/base/ftgloadr.c (FT_GlyphLoader_Rewind): Reset outline flags.
+	* src/truetype/ttgload.c
+	(TT_Load_Simple_Glyph): Retain OVERLAP_SIMPLE.
+	(load_truetype_glyph): Retain OVERLAP_COMPOUND.
+
+2020-08-04  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/truetype/ttgload.c (TT_Load_Glyph): More tracing.
+
+2020-07-28  Alexei Podtelezhnikov  <[email protected]>
+
+	Hide internal functions with SunPro.
+
+	* include/freetype/internal/compiler-macros.h
+	(FT_INTERNAL_FUNCTION_ATTRIBUTE) <__SUNPRO_C>: Define as __hidden.
+
+2020-07-28  Anuj Verma  <[email protected]>
+
+	Fix static compilation with Visual C.
+
+	* include/freetype/internal/compiler-macros.h
+	(FT_INTERNAL_FUNCTION_ATTRIBUTE) <_WIN32>: Define as empty.
+
+2020-07-28  Priyesh Kumar  <[email protected]>
+
+	Fix `-Wformat' compiler warnings.
+
+	* src/*: Fix format specifiers.
+
+	* builds/unix/ftsystem.c (FT_Stream_Open): Ditto.
+
+2020-07-25  Werner Lemberg  <[email protected]>
+
+	Fix `-Wformat' compiler warnings.
+
+	Problem reported by Priyesh kumar <[email protected]>
+
+	* src/base/ftoutln.c (FT_Outline_Decompose): Fix number of arguments
+	to tracing macro.
+
+	* src/bdf/bdfdrivr.c (bdf_cmap_char_next, bdf_get_bdf_property):
+	Ditto.
+
+	* src/cache/ftcbasic.c (ftc_basic_family_get_count): Ditto.
+	Reformulate message.
+
+	* src/pcf/pcfdrivr.c (pcf_get_bdf_property): Ditto.
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): Ditto.
+	Trace table offset, too.
+
+	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Ditto.
+
+2020-07-23  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfwoff2.c (woff2_decompress): Fix compiler warning.
+
+	Reported by Hin-Tak.
+
+2020-07-12  Werner Lemberg  <[email protected]>
+
+	* builds/unix/configure.raw: Fix inclusion of `ftoption.h'.
+
+2020-07-07  Werner Lemberg  <[email protected]>
+
+	Fix clang warnings.
+
+	* include/freetype/internal/autohint.h
+	(FT_DECLARE_AUTOHINTER_INTERFACE): New macro.
+	* src/autofit/afmodule.h: Use it to declare
+	`af_autofitter_interface'.
+
+	* include/freetype/internal/ftobjs.h (FT_DECLARE_GLYPH): New macro.
+	* src/base/ftbase.h: Use it to declare `ft_bitmap_glyph_class' and
+	`ft_outline_glyph_class'.
+
+	* src/base/ftglyph.c: Include `ftbase.h'.
+
+	* src/cff/cffparse.c (cff_parser_run): Fix type of `t2_size'.
+
+	* src/pcf/pcfdrivr.c (pcf_cmap_char_next): Fix type of `result'.
+
+	* src/psaux/psauxmod.c (psaux_module_class): Use `FT_DEFINE_MODULE'.
+	* src/psaux/psauxmod.h: Declare `afm_parser_funcs',
+	`t1_cmap_classes', `cff_decoder_funcs', and `psaux_module_class'.
+
+	* src/pshinter/pshmod.c: Include `pshmod.h'.
+
+	* src/sfnt/sfwoff2.c (ROUND4, WRITE_SHORT): Fix implicit sign
+	conversion.
+	(compute_ULong_sum): Fix return type.
+	Fix implicit sign conversion.
+	(store_points): Fix type of `last_flag', `repeat_count', and `flag'.
+	Use casts to avoid warnings.
+	(reconstruct_glyf): Fix implicit sign conversion.
+	Use cast to avoid warning.
+	(get_x_mins): Fix implicit sign conversion.
+	* src/sfnt/ttcmap.c: Undef `TTCMAPCITEM'.
+	* src/sfnt/ttcmap.h: Define `TTCMAPCITEM' and include `ttcmapc.h' to
+	declare cmap classes.
+
+	* src/smooth/ftsmooth.c (ft_smooth_overlap_spans): Use cast.
+
+	* src/truetype/ttinterp.c (Ins_MIAP): Fix typo.
+
+2020-07-07  David Turner  <[email protected]>
+
+	[build] Really fix multi and C++ builds.
+
+	The following builds were still failing due to previous changes:
+
+	  make multi
+	  make multi CC="c++"
+	  make CC="c++"
+
+	This patch fixes the issues, which were missing includes to get the
+	right macro definitions in multi-build mode.
+
+	Also, `FT_UNUSED' is actually used by third-party code, so move it
+	back to `public-macros.h' to avoid breaking it.
+
+	* include/freetype/config/public-macros.h (FT_EXPORT): Remove
+	special definition for C++.
+	(FT_UNUSED): Define here instead of...
+	* include/freetype/config/compiler-macros.h: ... here.
+	(FT_FUNCTION_DECLARATION): Remove special definition for C++.
+	(FT_LOCAL_ARRAY_DEF): Fix definition.
+
+	* src/cache/ftccback.h, src/lzw/ftzopen.h, src/gxvalid/gxvmort.h,
+	src/gxvalid/gxvmorx.h: Add `FT_BEGIN_HEADER' and `FT_END_HEADER'.
+
+2020-07-06  David Turner  <[email protected]>
+
+	[build] Fix multi and C++ builds.
+
+	The following builds were failing due to previous changes:
+
+	  make multi
+	  make multi CC="c++"
+
+	* include/freetype/config/ftconfig.h: Remove `FT_END_HEADER'.
+
+	* include/freetype/config/ftheader.h (FT_BEGIN_HEADER,
+	FT_END_HEADER): Protect against redefinition.
+
+	* src/cache/ftccache.h, src/cache/ftcmru.h, src/pcf/pcfutil.h,
+	src/psaux/pserror.h, src/psaux/psft.h, src/psaux/psstack.h,
+	src/sfnt/woff2tags.h: Include `compiler-macros.h'.
+
+	* src/sfnt/woff2tags.c: Include `woff2tags.h'.
+
+2020-07-06  Werner Lemberg  <[email protected]>
+
+	[psaux] Improve `t1_decoder_parse_metrics' (#58646).
+
+	* src/psaux/t1decode.c (t1_decoder_parse_metrics): Copy
+	corresponding code from old engine's `t1_decoder_parse_charstrings'
+	function to handle `op_callsubr' and `op_return'.
+
+2020-07-05  David Turner  <[email protected]>
+
+	[build] Improve visibility support of library function names.
+
+	* include/freetype/config/public-macros.h
+	(FT_PUBLIC_FUNCTION_ATTRIBUTE): New macro to tag functions as
+	public (and thus exportable).
+	(FT_EXPORT): Use it.
+
+	* include/freetype/config/compiler-macros.h
+	(FT_INTERNAL_FUNCTION_ATTRIBUTE): New macro to tag functions as
+	internal to the library (and thus hidden).  Note that on ELF
+	systems, all internal functions have hidden visibility, which avoids
+	the need to enforce this when invoking the compiler (e.g., with an
+	option like `-fvisibility=hidden').
+
+	(FT_FUNCTION_DECLARATION, FT_FUNCTION_DEFINITION): New base macros
+	to deal with C and C++ linkage issues at the same time.
+
+	(FT_LOCAL, FT_LOCAL_DEF, FT_LOCAL_ARRAY, FT_LOCAL_ARRAY_DEF,
+	FT_BASE, FT_BASE_DEF, FT_EXPORT_VAR, FT_BASE_CALLBACK,
+	FT_BASE_CALLBACK_DEF): Redefined using new macros.
+
+2020-07-05  David Turner  <[email protected]>
+
+	[build] Split off more stuff from `ftconfig.h'.
+
+	* builds/unix/ftconfig.h.in, builds/vms/ftconfig.h,
+	include/freetype/config/ftconfig.h: Split off macro definitions
+	required by the FreeType API headers to...
+	* include/freetype/config/public-macros.h: ...this new file.
+
+	* builds/unix/ftconfig.h.in, builds/vms/ftconfig.h,
+	include/freetype/config/ftconfig.h: Split off macro definitions used
+	by the library but not to be exposed to clients to...
+	* include/freetype/config/compiler-macros.h: ...this new file.
+
+	* include/freetype/internal/*.h, src/raster/ftraster.h: Include
+	`compiler-macros.h' where needed.
+
+2020-07-05  David Turner  <[email protected]>
+
+	[build] Move mac support code to `mac-support.h'.
+
+	* builds/unix/ftconfig.h.in, builds/vms/ftconfig.h,
+	include/freetype/config/ftconfig.h: Split off mac-specific stuff
+	to...
+	* include/freetype/config/mac-support.h: ...this new file.
+
+	* CMakeLists.txt, builds/unix/configure.raw: Remove `/undef ->
+	#undef' string replacement; the affected code is no longer part of
+	the `ftconfig.h' template.
+
+2020-07-05  David Turner  <[email protected]>
+
+	[build] Put integer type definitions into `integer-types.h'.
+
+	Refactor some of the `ftconfig.h' headers and template to move the
+	definition of the FreeType integer types (e.g., `FT_Int16') to a
+	common header file `freetype/config/integer-types.h'.
+
+	* builds/unix/ftconfig.h.in, builds/vms/ftconfig.h,
+	include/freetype/config/ftconfig.h: Split off integer type
+	definition stuff to...
+	* include/freetype/config/integer-types.h: ...this new file.
+
+	* builds/unix/ftconfig.h.in: Control the definition of
+	`FT_SIZEOF_INT' and `FT_SIZEOF_LONG' with macro
+	`FT_USE_AUTOCONF_SIZEOF_TYPES'.  If these are not defined, auto
+	detection happens in `integer-types.h' as usual based on `INTXX_MAX'
+	values.  Otherwise the autoconf-detected values are used.
+
+	* builds/unix/configure.raw (CPPFLAGS): Don't include path to
+	`config' directory.  Instead, ...
+	(FT_CONFIG_STANDARD_LIBRARY_H): Use complete path.
+
+2020-07-05  David Turner  <[email protected]>
+
+	[build] Rename `build/unix/ftconfig.in' to `ftconfig.h.in'.
+
+	Since we are no longer limited to 8.3 file names, it is simpler to
+	follow the usual conventions for template files.
+
+	* builds/unix/ftconfig.in: Renamed to...
+	* builds/unix/ftconfig.h.in: ...this.
+
+	* CMakeLists.txt, builds/unix/configure.raw: Updated.
+
+2020-07-03  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Introduce direct oversampling for overlaps.
+
+	This implements oversampling to mitigate artifacts in pixels partially
+	covered by overlapping contours.  It turns out that the 4x4
+	oversampling is sufficient but, at least, quadruples the rendering
+	time.  The outline has to set FT_OUTLINE_OVERLAP to use this method.
+
+	* include/freetype/ftimage.h (FT_OUTLINE_OVERLAP): New flag.
+	* src/smooth/ftsmooth.c (ft_smooth_render): Check it to...
+	(ft_smooth_raster_overlap): ... inflate outline and set up direct
+	rendering for oversampling with...
+	(ft_smooth_overlap_spans): ... new span function that integrates them.
+
+2020-07-03  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Use direct rendering mode in Harmony.
+
+	Instead of rendering 3 bitmaps side by side and reshuffling, we use
+	direct rendering to deliver the bitmaps on each third byte.
+
+	* src/smooth/ftsmooth.c (ft_smooth_raster_lcd)
+	[!FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Set up direct mode with...
+	(ft_smooth_lcd_spans): ... new span function.
+
+2020-07-03  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Separate LCD paths from gray rendering.
+
+	This makes `ft_smooth_render' a lot smaller and easier to follow. It
+	also cleanly separates Harmony and ClearType-style LCD rendering
+	algorithms. Now I only wish to move LCD filtering and geometry from
+	FT_Library to FT_Renderer.
+
+	* src/smooth/ftsmooth.c (ft_smooth_render): Move LCD code from here...
+	(ft_smooth_raster_lcd, ft_smooth_raster_lcdv): ... to here.
+	[FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Reorganize #ifdef's.
+
+2020-06-20  Sebastian Rasmussen  <[email protected]>
+
+	[cff] Fix handling of `style_name == NULL' (#58630).
+
+	* src/cff/cffobjs.c (cff_face_init): If a call to `cff_strcpy' fails
+	by returning NULL in `cff_face_init', `remove_style' is still
+	called.  This means that the NULL pointer is dereferenced, causing a
+	crash.
+
+2020-06-19  Sebastian Rasmussen  <[email protected]>
+
+	[cff] Fix another two memory leaks (#58629).
+
+	* src/cff/cffobjs.c (cff_size_init): If a call to `funcs->create'
+	fails to allocate one of the `internal->subfont' variables, make
+	sure to free `internal->topfont' and any successfully allocated
+	subfonts.
+
+2020-06-19  Sebastian Rasmussen  <[email protected]>
+
+	[psaux] Fix memory leak (#58626).
+
+	* src/psaux/psstack.c (cf2_stack_init): If `cf2_stack_init' fails to
+	allocate the stack, return error early.
+
+2020-06-19  Sebastian Rasmussen  <[email protected]>
+
+	[base] Fix memory leak (#58624).
+
+	* src/base/ftobjs.c (FT_New_Size): Avoid trying to free
+	`size->internal' unless `size' has been allocated.  This mistake
+	appeared in the fix for issue #58611.
+
+2020-06-19  Alexei Podtelezhnikov  <[email protected]>
+
+	[base] Rework d1180b5f9598 until further notice.
+
+	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Reject large
+	outlines.
+
+2020-06-19  Sebastian Rasmussen  <[email protected]>
+
+	[cff, cid] Fix segfaults in case of error (#58621).
+
+	* src/cff/cffobjs.c (cff_slot_done), src/cid/cidobjs.c
+	(cid_slot_done): If `ft_glyphslot_init' fails to allocate
+	`internal', then the class' `done_slot' callback (called by
+	`ft_glyphslot_done') must not dereference the pointer to `internal'.
+
+2020-06-19  Werner Lemberg  <[email protected]>
+
+	[base] Fix UBSAN error.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=23166
+
+	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Avoid values
+	larger than 32 bits.
+
+2020-06-19  Werner Lemberg  <[email protected]>
+
+	[woff2] Fix segfault.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=23402
+
+	* src/sfnt/sfwoff2.c (get_x_mins): Check whether `loca' table
+	exists.
+
+2020-06-19  Stephen McDowell  <[email protected]>
+
+	[sfnt] Support Intel compilers.
+
+	* src/sfnt/pngshim.c (premultiply_data): Intel compilers do not
+	currently support `__builtin_shuffle'.
+
+2020-06-19  Sebastian Rasmussen  <[email protected]>
+
+	[base] Fix memory leak (#58611).
+
+	* src/base/ftobjs.c (FT_New_Size): When the call to `clazz->init_size'
+	fails, make sure to free `size->internal'.
+
+2020-06-19  Sebastian Rasmussen  <[email protected]>
+
+	[cff] Fix memory leak (#58610).
+
+	* src/cff/cffobjs.c (cff_size_init): When the call to
+	`funcs->create' fails, make sure to free `internal'.
+
+2020-06-19  Werner Lemberg  <[email protected]>
+
+	* src/cff/cffload.c (cff_index_get_pointers): Rename `t' to `tbl'.
+
+2020-06-19  Sebastian Rasmussen  <[email protected]>
+
+	[cff] Free table upon error allocating other data (#58609).
+
+	* src/cff/cffload.c (cff_index_get_pointers): When new_bytes fails
+	to allocate, make sure to free the table.  Do the same for both
+	allocations if there is a later error.
+
+2020-06-13  Werner Lemberg  <[email protected]>
+
+	Remove redundant inclusion of `ft2build.h'.
+
+	* */*: Remove `#include <ft2build.h>' where possible.
+
+	* include/freetype/freetype.h: Remove cpp error about missing
+	inclusion of `ft2build.h'.
+
+2020-06-08  David Turner  <[email protected]>
+
+	Make macros for header file names optional.
+
+	We no longer have to take care of the 8.3 file name limit; this
+	allows us (a) to introduce longer, meaningful file names, and (b) to
+	avoid macro names in `#include' lines altogether since some
+	compilers (most notably Visual C++) doesn't support this properly.
+
+	*/*: Replace
+
+	   #include FOO_H
+
+	with
+
+	   #include <freetype/foo.h>
+
+	or something similar.  Also update the documentation.
+
+2020-06-02  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Trace number of cmaps.
+
+2020-05-18  David Turner  <[email protected]>
+
+	Remove obsolete HAVE_STDINT_H probing macro.
+
+	This macro was updated by the unix configure script and the
+	`CMakeLists.txt' one, but is never used in the source tree (nor is
+	<stdint.h> included anywhere).
+
+	* CMakeLists.txt, builds/unix/ftconfig.in: Don't handle
+	`HAVE_STDINT_H'.
+
+2020-05-18  David Turner  <[email protected]>
+
+	Remove Jamfile files from the tree.
+
+	These have not been used in a very, very long time, so better remove
+	them.  A corresponding patch will be submitted to the
+	`freetype2-demos' repository.
+
+	* src/Jamfile, src/*/Jamfile, Jamrules: Delete.
+
+2020-05-12  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Turn on LCD filtering during FreeType initialization.
+
+	* src/smooth/ftsmooth.c (ft_smooth_init): Enable LCD filtering.
+
+	* include/freetype/ftlcdfil.h: Document it, remove patent warnings.
+	* include/freetype/freetype.h (FT_Render_Mode): Updated.
+	* include/freetype/config/ftoption.h, devel/ftoption.h
+	[FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Do not mention patents.
+
+2020-05-11  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Stop using dedicated LCD modules and classes.
+
+	The LCD modules were never truly independent. They mostly served as
+	a way to disable patented LCD rendering, which is no longer necessary.
+	The `smooth' module now handles LCD modes as well.
+
+	* src/smooth/ftsmooth.c (ft_smooth_lcd_renderer_class.
+	ft_smooth_lcdv_renderer_class): Deleted.
+	(ft_render_smooth): Reworked from `ft_render_smooth_generic'.
+	* src/smooth/ftsmooth.h: Remove dedicated LCD classes.
+	* src/smooth/module.mk: Remove dedicated LCD modules.
+	* include/freetype/config/ftmodule.h: Ditto.
+	* builds/amiga/include/config/ftmodule.h: Ditto.
+	* include/freetype/ftmodapi.h: Do not mention LCD modules.
+
+2020-05-09  Werner Lemberg  <[email protected]>
+
+	* Version 2.10.2 released.
+	==========================
+
+
+	Tag sources with `VER-2-10-2'.
+
+	* docs/VERSION.TXT: Add entry for version 2.10.2.
+
+	* README, Jamfile (RefDoc), src/base/ftver.rc,
+	builds/windows/vc2010/index.html, builds/windows/visualc/index.html,
+	builds/windows/visualce/index.html,
+	builds/wince/vc2005-ce/index.html,
+	builds/wince/vc2008-ce/index.html, docs/freetype-config.1:
+	s/2.10.1/2.10.2/, s/2101/2102/.
+
+	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
+
+	* builds/unix/configure.raw (version_info): Set to 23:2:17.
+	* CMakeLists.txt (VERSION_PATCH): Set to 2.
+
+	* docs/CHANGES: Updated.
+
+2020-05-08  Jakub Alba  <[email protected]>
+
+	* src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter (#58319).
+
+	The font that exceeds the old limit is Icono Regular, version
+	1.00000.
+
+2020-05-03  Alexei Podtelezhnikov  <[email protected]>
+
+	* builds/freetype.mk: Refactor for readability.
+
+2020-05-02  Alexei Podtelezhnikov  <[email protected]>
+
+	[builds] Clean up Windows CE project files.
+
+	Remove version from filenames that caused a lot of polution in the
+	release process. Use VERSIONINFO resource instead.
+
+	* builds/wince/vc2005-ce/freetype.vcproj,
+	builds/wince/vc2008-ce/freetype.vcproj,
+	builds/windows/visualce/freetype.vcproj,
+	builds/windows/visualce/freetype.dsp: s/2101//g, but add `ftver.rc'.
+	* builds/wince/vc2008-ce/index.html,
+	builds/wince/vc2005-ce/index.html,
+	builds/windows/visualce/index.html: s/2101//g.
+
+2020-05-01  Alexei Podtelezhnikov  <[email protected]>
+
+	* devel/ft2build.h: Override FT_CONFIG_MODULES_H here as well.
+
+2020-05-01  Alexei Podtelezhnikov  <[email protected]>
+
+	[builds/unix] Consolidate marco overrides (for the demos to see them).
+
+	* builds/unix/unix-cc.in (FT_CONFIG_MODULES_H, FT_CONFIG_OPTIONS_H):
+	Override them here...
+	* builds/freetype.mk: ... instead of here.
+
+2020-04-08  Werner Lemberg  <[email protected]>
+
+	Allow setting `CC' in Unix build (#58051).
+
+	* builds/unix/unix-cc.in (CC): Use `override'.  The command line
+	  value of `CC' (if any) is stored already in `CCraw'.
+
+2020-04-04  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Return if single stream operation fails.
+
+	* src/sfnt/sfwoff2.c (get_x_mins): Do it.
+
+	* src/sfnt/woff2tags.c: Remove unused include.
+
+2020-03-22  Nikhil Ramakrishnan  <[email protected]>
+
+	[docs] Fix building docs if `srcdir' != `builddir'.
+
+	`docs/reference/*' was moved one directory up in commit 237fed6.
+
+	* builds/unix/unix-def.in (PIP): Remove variable.
+
+	* configure: Create `docs' directory and copy assets from
+	`docs/markdown'.
+
+	* docs/README: Output directory is `reference'.
+
+2020-03-21  Nikhil Ramakrishnan  <[email protected]>
+
+	[docwriter] Drop support for Python < 3.5.
+
+	Python versions < 3.5 have reached end-of-life and as such, no
+	security or bug fixes will be provided for those versions.  See
+
+	  https://devguide.python.org/#status-of-python-branches
+
+	for more information.
+
+	* Jamfile (RefDoc): Add `site' parameter.
+
+	* builds/detect.mk (std_setup): Update Python version requirement.
+
+	* builds/freetype.mk (refdoc-venv): Use pip as `python -m pip'.
+
+	* builds/unix/ax_compare_version.m4,
+	builds/unix/ax_prog_python_version.m4: Macros to detect Python
+	version.  New files.
+
+	* builds/unix/configure.raw: Check for Python >= 3.5 and remove
+	check for `pip'.
+
+	* docs/CHANGES, docs/INSTALL.GNU, docs/README: Updated.
+
+2020-03-02  Moazin Khatti  <[email protected]>
+
+	[gzip] Support `gzip' encoded header conditionally.
+
+	In order to support `gzip' encoded header the call to
+	`inflateInit2' was modified in commit 6a92b1fadde26477a9179.
+	However, this code breaks with the outdated internal version
+	of zlib.  This is a temporary fix to conditionally support
+	`gzip' encoded header whenever a system installation of zlib
+	is being used.
+
+	Problem report in
+
+	  https://lists.nongnu.org/archive/html/freetype-devel/2020-02/msg00023.html
+
+	* src/gzip/ftgzip.c (FT_Gzip_Uncompress): Change the the call to
+	`inflateInit2' depending on whether the system installation is
+	being used or the internal copy.
+
+2020-02-29  Ben Wagner  <[email protected]>
+
+	[truetype] Fix state of `FT_Face' for buggy `gvar' tables (#57923).
+
+	By resetting the blend as implemented with this commit fonts with
+	invalid `gvar' tables may keep calling into `ft_var_load_gvar' from
+	`tt_set_mm_blend' and failing, but the font was invalid anyway and
+	we want to keep seeing the failure in `tt_set_mm_blend'.
+
+	* src/truetype/ttgxvar.c (ft_var_load_gvar): Calculate length of
+	offset array once.
+	Allocate arrays after `FT_FRAME_ENTER' (extra check before
+	allocating and avoid needing to free array later if error entering
+	frame).
+	Always call `FT_FRAME_EXIT'.
+	Consistently set counts immediately after array initialized.
+	Reset the blend (particularly `blend->glyphoffsets') on failure.
+
+2020-03-01  Nikhil Ramakrishnan  <[email protected]>
+
+	[docs] Update docwriter stylesheet.
+
+	This change is required to support docwriter 1.2.1.
+
+	See
+
+	  https://github.com/freetype/docwriter/issues/36
+
+	for more information.
+
+	* docs/markdown/stylesheets/extra.css:
+	(.md-typeset code) -> (.md-typeset pre>code)
+	(pre) -> (pre>code)
+	(p, .md-typeset p, h4): Remove commented styles.
+	(table.index): Remove unused styles.
+
+2020-02-28  Ben Wagner  <[email protected]>
+
+	[truetype] Add better checks for loading `gvar' table (#57905).
+
+	* src/truetype/ttgxvar.c (ft_var_load_gvar): Delay settings of any
+	`blend->xxxcount' values until the corresponding data has been
+	checked.
+	Also do some sanitizing to avoid a too early exit.
+
+	(TT_Vary_Apply_Glyph_Deltas): Improve tracing message.
+
+2020-02-27  Werner Lemberg  <[email protected]>
+
+	Make `FT_HAS_*' and `FT_IS_*' really return true (#57906).
+
+	* include/freetype/freetype.h (FT_HAS_*, FT_IS_*): Implement it.
+
+2020-02-25  Dominik Röttsches  <[email protected]>
+
+	Fix for CFF space glyph regression (#57541).
+
+	* src/psaux/psft.c (cf2_decoder_parse_substrings): Replace early-out
+	  with FT_OFFSET.
+
+2020-02-22  Werner Lemberg  <[email protected]>
+
+	[woff2] Fix font table access.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20778
+
+	* src/sfnt/sfwoff2.c (get_x_mins): Explicitly check for presence of
+	`head' table, which might not have been processed yet.
+
+2020-02-21  Werner Lemberg  <[email protected]>
+
+	[psaux] Make `t1_decoder_parse_metrics' handle `op_div' (#57519).
+
+	* src/psaux/t1decode.c (t1_decoder_parse_metrics): Copy
+	corresponding code from old engine's `t1_decoder_parse_charstrings'
+	function.
+
+2020-02-19  Nikolaus Waxweiler  <[email protected]>
+
+	[autofit] Add support for Hanifi Rohingya script.
+
+	* src/autofit/afblue.dat: Add blue zone data for Hanifi Rohingya.
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Hanifi Rohingya standard character.
+
+	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Hanifi
+	  Rohingya data.
+
+2020-02-19  Werner Lemberg  <[email protected]>
+
+	Require HarfBuzz 1.8.
+
+	* builds/unix/configure.raw, CMakeLists.txt: Request HarfBuzz 1.8.0
+	or newer.
+
+	We are going to add auto-hinter support for Hanifi Rohingya, which
+	was introduced in Unicode 11.0.
+
+2020-02-12  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Ignore version (#57708).
+
+2020-02-04  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter (#57732).
+
+	The font that exceeds the old limit is Constantine, version 1.001.
+
+2020-01-04  Werner Lemberg  <[email protected]>
+
+	[base] Fix `FREETYPE_PROPERTIES=type1:hinting-engine=adobe`.
+
+	* src/base/ftpsprop.c (ps_property_set) [hinting-engine]: Avoid an
+	incorrect return value that caused a warning.  The function did the
+	right thing, though.
+
+2020-01-03  Werner Lemberg  <[email protected]>
+
+	[woff2] Fix memory leaks and a runtime warning.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19773
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18101
+
+	* src/sfnt/sfwoff2.c (compute_ULong_sum): Add missing cast.
+	(reconstruct_hmtx): Add missing deallocation calls.
+
+2020-01-02  Dominik Röttsches  <[email protected]>
+
+	[truetype] Fix UBSan warning on offset to nullptr (#57501).
+
+	* src/truetype/ttinterp.c (Ins_CALL): Fail if `exc->FDefs' is null.
+
+2019-12-31  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Allow bitmap-only fonts (#57394).
+
+	* src/sfnt/sfwoff2.c (reconstruct_font): Fix test for `glyf' and
+	`loca' tables.
+
+2019-12-21  Hugh McMaster  <[email protected]>
+
+	[docs] (2/2) Fix generation of API documentation (#56745).
+
+	Creating the API Reference in the (new) `reference' sub-directory is
+	consistent with other documentation sub-topics, such as `design',
+	`glyphs' and `tutorial'.
+
+	This patch fixes broken hyperlinks in the documentation pointing to
+	and from the API Reference.  It also allows web assets to load from
+	their relative paths.
+
+	* builds/freetype.mk (DOC_DIR): Adjust.
+	(refdoc, refdoc-venv): Add `--site' argument.
+
+	* builds/toplevel.mk (do-dist): Updated.
+
+2019-12-21  Hugh McMaster  <[email protected]>
+
+	[docs] (1/2) Move static web assets (#56745).
+
+	* docs/reference/*: Move ...
+	* docs: ... one directory up.
+
+2019-12-21  Dominik Röttsches  <[email protected]>
+
+	Fix more UBSan warnings on adding offset to nullptr (#57432).
+
+	* src/truetype/ttinterp.c (Ins_LOOPCALL), src/psaux/psft.c
+	(cf2_initLocalRegionBuffer): Use `FT_OFFSET'.
+
+2019-12-16  Werner Lemberg  <[email protected]>
+
+	[truetype] Fix UBSan warnings on adding offsets to nullptr.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/chromium/issues/detail?id=1032152
+
+	* src/truetype/ttinterp.c (Ins_FDEF, Ins_IDEF): Use `FT_OFFSET'.
+
+2019-12-14  Werner Lemberg  <[email protected]>
+
+	[truetype] Fix integer overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19305
+
+	* src/truetype/ttinterp.c (Ins_MIRP): Use `ADD_LONG'.
+
+2019-12-13  Werner Lemberg  <[email protected]>
+
+	Another bunch of UBSan warnings on adding offsets to nullptr.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19427
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19433
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19441
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19451
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19452
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19457
+
+	* src/autofit/aflatin.c (af_latin_hints_compute_segments,
+	af_latin_hints_compute_edges): Use `FT_OFFSET'.
+
+	* src/base/ftstream.c (FT_Stream_EnterFrame): Use `FT_OFFSET'.
+
+	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings): Exit early
+	if there is no charstring.
+
+	* src/psaux/psobjs.c (t1_decrypt): Use `FT_OFFSET'.
+
+	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Exit early for
+	zero bitmap dimensions.
+
+2019-12-09  Dominik Röttsches  <[email protected]>
+
+	Fix more UBSan warnings on adding offset to nullptr (#57384).
+
+	* src/smooth/ftsmooth.c (ft_smooth_render_generic),
+	src/psaux/psobjs.c (ps_table_add): Use `FT_OFFSET'.
+
+2019-12-05  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttinterp.c (TT_RunIns): Use `FT_OFFSET'.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/chromium/issues/detail?id=1030614
+
+2019-12-03  Werner Lemberg  <[email protected]>
+
+	More nullptr offset UBSan warnings (#57331, #57347).
+
+	* src/autofit/afcjk.c (af_cjk_hints_compute_segments),
+	src/psaux/psft.c (cf2_getSeacComponent), src/truetype/ttinterp.c
+	(Ins_UNKNOWN): Use `FT_OFFSET'.
+
+2019-11-29  Dominik Röttsches  <[email protected]>
+
+	Avoid more nullptr offset UBSan warnings (#57316).
+
+	* src/base/ftoutln.c (FT_Outline_Transform): Bail on empty points.
+	* src/cff/cffload.c (cff_subfont_load): Use `FT_OFFSET'.
+	* src/psaux/psft.c (cf2_decoder_parse_substrings): Early out if
+	`charstring_base' or `charstring_len' are null.
+	* src/sfnt/ttload.c (tt_face_load_name): Use `FT_OFFSET'.
+
+2019-11-23  John Stracke  <[email protected]>
+
+	[base] Really fix #57194.
+
+	Apply accidentally missed second part of patch.
+
+	* src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Call
+	`FT_GlyphLoader_CreateExtra'.
+
+2019-11-23  Werner Lemberg  <[email protected]>
+
+	[truetype] Avoid sanitizer warning (#57289).
+
+	* src/truetype/ttpload.c (tt_face_get_device_metrics): Use
+	`FT_OFFSET'.
+
+2019-11-23  Armin Hasitzka  <[email protected]>
+
+	[truetype] Fix integer overflow (#57287).
+
+	* src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'.
+
+2019-11-23  Ben Wagner  <[email protected]>
+
+	[sfnt] Avoid sanitizer warning (#57286).
+
+	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Avoid possible `NULL +
+	offset' computation.
+	Tag `table' as `const'.
+
+2019-11-23  John Stracke  <[email protected]>
+            Werner Lemberg  <[email protected]>
+
+	[base] Fix `NULL + offset' sanitizer warnings (#57194).
+
+	* src/base/ftgloadr.c (FT_GlyphLoader_Adjust_Points,
+	FT_GlyphLoader_Adjust_Subglyphs): Use `FT_OFFSET'.
+	(FT_GlyphLoader_CreateExtra): Add short cut if some values are zero.
+
+2019-11-23  Werner Lemberg  <[email protected]>
+
+	* include/freetype/internal/ftmemory.h (FT_OFFSET): New macro.
+
+	Use this for `base + offset' pointer calculations where `base' can
+	be NULL (triggering a sanitizer warning even if the resulting
+	pointer gets never dereferenced since it is undefined behaviour
+	in C).
+
+	Suggested by Ben Wagner.
+
+2019-11-23  Ben Wagner  <[email protected]>
+
+	[sfnt] Ensure OTTO fonts have tables (#57285).
+
+	* src/sfnt/ttload.c (tt_face_load_font_dir): Add test.
+
+2019-11-23  Behdad Esfahbod  <[email protected]>
+
+	Minor fixes for recent compilers.
+
+	* src/gzip/infutil.h (inflate_mask): Add `const'.
+
+	* src/autofit/aflatin2.c: Include `ft2build.h'.
+
+2019-11-07  Nikolaus Waxweiler  <[email protected]>
+
+	* CMakeLists.txt: Minor additions to the notes, compile
+	  builds/unix/ftsystem.c instead of src/base/ftsystem.c on UNIX.
+
+	The latter change is based on the code proposed by rim in #55235.
+
+2019-10-25  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): Check `num_fonts' for TTCs.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18494
+
+2019-10-22  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): Avoid undefined shift.
+
+	Also improve tracing.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18390
+
+2019-10-10  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/pngshim.c (premultiply_data): Optimize for __SSE__ only.
+
+2019-10-10  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfwoff2.c (reconstruct_glyf): Check `triplet_size'.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18108
+
+2019-10-09  John Tytgat  <[email protected]>
+
+	[cff] Fix FT_FACE_FLAG_GLYPH_NAMES for CFF2 based fonts (#57023).
+
+	* src/cff/cffobjs.c (cff_face_init): Don't set
+	FT_FACE_FLAG_GLYPH_NAMES for CFF2 based fonts.
+
+2019-10-08  Werner Lemberg  <[email protected]>
+
+	[woff2] Fix SFNT table checks.
+
+	Also reduce number of SFNT table lookups.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18065
+
+	* include/freetype/internal/wofftypes.h (WOFF2_InfoRec): Add fields
+	`glyf_table', `loca_table', and `head_table'.
+
+	* src/sfnt/sfwoff2.c (reconstruct_glyf): Update signature.
+	Use table pointers in `info' parameter.
+	(get_x_mins): Check `maxp_table'
+	Use table pointers in `info' parameter.
+	(reconstruct_font):  Use and set table pointers in `info' parameter.
+	Fix check for `glyf' and `loca' tables.
+	Update call to `reconstruct_glyf'.
+	(woff2_open_font): Updated.
+
+2019-10-06  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfwoff2.c (reconstruct_glyf): Fix reallocation.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=18046
+
+2019-10-06  Werner Lemberg  <[email protected]>
+
+	Improve memory debugging.
+
+	* include/freetype/internal/ftmemory.h (FT_MEM_FREE): Use
+	`FT_DEBUG_INNER' to set source code file name and line.
+
+	* src/base/ftdbgmem.c (ft_mem_table_remove): Better formatting of
+	tracing message.
+
+2019-10-03  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfwoff2 (reconstruct_font): Fix reallocation.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17966
+
+2019-10-01  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftstroke.c (ft_stroker_inside): Speed up.
+
+2019-10-01  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfwoff2 (woff2_open_font): Initialize `woff2.ttc_fonts'.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17804
+
+2019-09-30  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfwoff2.c (reconstruct_font): Fix memory leak.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17812
+
+2019-09-30  Werner Lemberg  <[email protected]>
+
+	[woff2] Reject fonts without `head' table.
+
+	Also fix memory deallocation in case of error.
+
+	`head' problem reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17820
+
+	* src/sfnt/sfwoff2.c (reconstruct_glyf): Don't use `stream_close'.
+	Abort if `head_table' is NULL.
+	Don't free `transformed_buf' in case of error.
+	(woff2_open_font): Don't set `uncompressed_buf' to NULL.
+
+2019-09-29  Werner Lemberg  <[email protected]>
+
+	[woff2] Fix compiler warnings.
+
+	Problem reported by Alexei.
+
+	* src/sfnt/sfwoff2.c (reconstruct_glyf): Initialize `x_min'.
+	(reconstruct_font): Initialize `num_hmetrics'.
+	(woff2_open_font): Initialize `info'.
+
+2019-09-28  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): Fix sanity check.
+
+	Correct thinkos in patch from 2019-09-01.
+
+2019-09-28  Werner Lemberg  <[email protected]>
+
+	[woff2] Fix memory leaks.
+
+	One of them reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17766
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): Free `info->x_mins' and
+	`woff2->ttc_fonts'.
+
+	(reconstruct_glyf): Initialize `info->x_mins'.
+
+2019-09-27  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftstroke.c (ft_stroker_cap): Speed up caps.
+
+2019-09-25  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftstroke.c (ft_stroker_outside): Speed up clipped miter.
+	* include/freetype/ftstroke.h: Wordsmith miter docs.
+
+2019-09-25  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): Check (sum of) table sizes.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17684
+
+2019-09-23  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftstroke.c (ft_stroke_border_arcto): Speed up calculations.
+
+2019-09-20  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Fix memory leaks.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16896
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): Fix error handling.
+	Free `uncompressed_buf'.
+	(reconstruct_font): Free `transformed_buf'.
+
+2019-09-17  Werner Lemberg  <[email protected]>
+
+	* src/otvalid/otvcommon.c (otv_Coverage_get_last): Guard `count'.
+
+	Problem reported by Marc Schönefeld <[email protected]>.
+
+2019-09-17  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): Check table index.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=17100
+
+2019-09-15  Avi Halachmi (:avih)  <[email protected]>
+
+	[cmake] Don't fail if brotli is missing (#56894).
+
+	The libs which cmake controls are commented out at
+
+	  include/freetype/config/ftoption.h
+
+	and cmake un-comment each enabled library, but the brotli option was
+	not commented out, therefore `FT_CONFIG_OPTION_USE_BROTLI' remained
+	defined even if brotli was missing/disabled/etc.
+
+	Comment it such that cmake can control it, which means leaving it
+	undefined if brotli is missing.
+
+	* include/freetype/config/ftoption.h: Fix typo.
+
+2019-09-05  Werner Lemberg  <[email protected]>
+
+	[cmake] Add brotli support.
+
+	* CMakeLists.txt (FT_WITH_BROTLI): New option.
+
+	* builds/cmake/FindBrotliDec.cmake: New file.
+
+2019-09-05  Werner Lemberg  <[email protected]>
+
+	Fix handling of `AF_CONFIG_OPTION_INDIC'.
+
+	* devel/ftoption.h, include/freetype/config/ftoption.h:
+	`AF_CONFIG_OPTION_INDIC' needs `AF_CONFIG_OPTION_CJK'.
+
+2019-09-05  Werner Lemberg  <[email protected]>
+
+	CMakeLists.txt: Fix generation of DLL related stuff (#56852).
+
+	Extract `version_info' variable from `builds/unix/configure.raw' and
+	use the data to correctly set `LIBRARY_VERSION' and
+	`LIBRARY_SOVERSION'.
+
+	Also use the data to set `ft_version' field in `freetype2.pc'.
+	Also fix the needed minimum version of HarfBuzz in `freetype2.pc'.
+
+2019-09-03  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfwoff2.c (compute_ULong_sum): Fix undefined shift.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16933
+
+2019-09-01  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): Add sanity check.
+
+	Don't trust `totalSfntSize' unconditionally.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16893
+
+2019-08-27  Dominik Röttsches  <[email protected]>
+
+	[woff2] Don't use `FT_UInt64' (#56815).
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): Use `FT_UInt32' for
+	`file_offset'.  This fixes builds on platforms where `FT_LONG64' is
+	not defined while still being sufficient to store a file offset.
+
+2019-08-27  Werner Lemberg  <[email protected]>
+
+	[truetype] Prevent crash in `TT_Set_Named_Instance' (#56813).
+
+	* src/truetype/ttgxvar.c (TT_Set_Named_Instance): Fix error
+	handling.
+
+2019-08-27  Werner Lemberg  <[email protected]>
+
+	[woff2] Fix compiler warnings.
+
+	* src/sfnt/sfwoff2.c (read_num_hmetrics): Remove unused argument
+	`table_len'.
+	Update caller.
+	(triplet_decode, compute_bbox, store_loca, reconstruct_glyf): Make
+	`i' variable unsigned.
+	(reconstruct_glyph): Remove condition which is always false.
+	(reconstruct_html): Removed unused argument `transformed_size'.
+	Update caller.
+
+	* src/sfnt/woff2tags.c (woff2_known_tags): Remove condition which is
+	always false.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Check whether known tag is in array bounds.
+
+	If table tag is not 0x3f, we expect a value between 0 and 62.  If
+	this is not the case, exit with errors.
+
+	* src/sfnt/sfwoff2/c: Check whether table tag makes sense.
+
+	* src/sfnt/woff2tags.c: Return 0 if tag is out of bounds.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	* src/sfnt/sfwoff2.c: Improve trace comments.
+
+	Adjust tracing levels for comments, and more formatting.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Support `hmtx' reconstruction when `glyf' is untransformed.
+
+	`reconstruct_hmtx' requires `info->x_mins' and `info->num_glyphs' to
+	reconstruct the hmtx table.  In case glyf is not transformed, we
+	call `get_x_mins' which does the necessary work.
+
+	* src/sfnt/sfwoff2.c (get_x_mins): New function.
+	(reconstruct_font): Call get_x_mins.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[sfnt] Support `face->num_faces' for WOFF2 fonts.
+
+	Set correct value of `face->num_faces' for WOFF2 fonts.  This is
+	being handled separately because we only load the tables for the
+	requested font face in `woff2_open_font' and create a single-face
+	sfnt stream.
+
+	The full discussion is at:
+
+	  https://lists.gnu.org/archive/html/freetype-devel/2019-08/msg00000.html
+
+	* src/sfnt/sfobjs.c (sfnt_open_font): Add parameter
+	`woff2_num_faces'.
+	(sfnt_init_face): Introduce variable `woff2_num_faces', and change
+	`face->root.num_faces' if `woff2_num_faces' is set.
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): Validate requested face
+	index and handle negative face indices.
+
+	* src/sfnt/sfwoff2.h (woff2_open_font): Add parameter `num_faces' to
+	declaration.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Improve memory and error handling.
+
+	Free up memory after use, and improve error handling.
+
+	* src/sfnt/sfwoff2.c (reconstruct_font, woff2_open_font): Implement
+	changes.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Avoid too many calls to `FT_REALLOC'.
+
+	We do this by using `totalSfntSize' as an initial reference, and
+	extending the buffer when required.  This reduces rendering time
+	considerably.
+
+	* include/freetype/internal/wofftypes.h (WOFF2_HeaderRec): Add
+	`totalSfntSize', rename `total_sfnt_size' to `actual_sfnt_size'.
+
+	* src/sfnt/sfwoff2.c (write_buf): Add parameter `dst_size' to keep
+	track of and update total size of stream.
+
+	(WRITE_SFNT_BUF, WRITE_SFNT_BUF_AT): Modify macros accordingly.
+
+	(pad4, store_loca, reconstruct_glyf, reconstruct_hmtx,
+	reconstruct_font): Update parameters to accept `sfnt_size'.
+
+	(woff2_open_font): Add variable `sfnt_size'.  Use WOFF2 header field
+	`totalSfntSize' as initial reference (if value makes sense) and
+	allocate `totalSfntSize' bytes for the sfnt stream.  `write_buf'
+	handles reallocation if and when required.  Also resize the stream
+	to `actual_sfnt_size' after reconstruction.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Reconstruct `loca', `hmtx', and swap out stream.
+
+	Add necessary functions to reconstruct loca and hmtx tables (the two
+	remaining tables that can have a transform).  `woff2_open_font' is
+	now capable of loading a woff2 font face.  This code may still need
+	more refining and better memory management.
+
+	* include/freetype/internal/wofftypes.h (WOFF2_HeaderRec): Add total
+	(final) size of sfnt stream.
+
+	(WOFF2_InfoRec): Add header checksum value.
+
+	* src/sfnt/sfobjs.c (sfnt_open_font): Change `face_instance_index'
+	parameter to its pointer so its value can be modified by
+	`woff2_open_font'.
+
+	* src/sfnt/sfwoff2.c: (WRITE_SFNT_BUF_AT): New macro to write into
+	sfnt buffer at given position.
+
+	(write_buf): Add parameter `extend_buf' which allows caller to
+	specify whether buffer should be reallocated before copying data.
+
+	(WRITE_SFNT_BUF): Updated.
+
+	(pad4, store_loca, reconstruct_htmx): New functions.
+
+	(reconstruct_glyf): Calculate loca values and store them.
+
+	(reconstruct_font): Call `reconstruct_hmtx', write table record
+	entries, and calculate table checksums.  Also calculate font
+	checksum and update `checksumAdjustment' entry in head table.
+
+	(woff2_open_font): Open stream for sfnt buffer, swap out input
+	stream and return.
+
+	* src/sfnt/sfwoff2.h (woff2_open_font): Modify parameter to accept
+	pointer to `face_index'.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Reconstruct transformed `glyf' table.
+
+	Reconstruct `glyf' table if it is transformed in the uncompressed
+	table stream.  Also add necessary structures, macros and functions.
+
+	* include/freetype/internal/wofftypes.h (WOFF2_InfoRec,
+	WOFF2_SubstreamRec, WOFF2_PointRec): New structures.
+	(WOFF2_TableRec): s/OrigLength/dst_length/.
+
+	* src/sfnt/sfwoff2.c (READ_255USHORT, READ_BASE128): Use
+	`FT_SET_ERROR' to set implicit `error' variable.
+
+	(WRITE_SHORT): New macro.
+
+	(N_CONTOUR_STREAM, N_POINTS_STREAM, FLAG_STREAM, GLYPH_STREAM,
+	COMPOSITE_STREAM, BBOX_STREAM, INSTRUCTION_STREAM): New macros to
+	refer to substreams of the transformed `glyf' tables.
+
+	(Read255UShort, ReadBase128): Return errors set by `FT_READ_XXX'
+	macros.
+
+	(with_sign, safe_int_addition): New functions to add sign to values
+	based on a flag and perform safe addition respectively.
+
+	(triplet_decode): Decode variable-length (flag, xCoordinate,
+	yCoordinate) triplet for a simple glyph.   See
+
+	  https://www.w3.org/TR/WOFF2/#triplet_decoding
+
+	(store_points, compute_bbox, composteGlyph_size, reconstruct_glyf):
+	New functions.
+
+	(reconstruct_font): Call `reconstruct_glyf'.
+
+	* src/sfnt/sfwoff2.h: Add required constants.
+
+	* src/sfnt/woff2tags.h: Move out constants to `sfwoff2.h'.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Copy un-transformed tables to sfnt stream.
+
+	Copy un-transformed tables to the sfnt stream.
+
+	* src/sfnt/sfwoff2.c: (WRITE_SFNT_BUF): New macro.
+	(write_buf): New function.  Extend memory of `dst' buffer and copy
+	bytes from `src'.
+	(compute_ULong_sum): New function.  Calculate checksum of table.
+	(reconstruct_font): Change `FT_Byte* sfnt' to `FT_Byte**
+	sfnt_bytes'.  This has been done because we reallocate memory to
+	`sfnt' multiple times, which may change the pointer value of `sfnt'.
+	This new pointer must be propogated back to the caller.  Same reason
+	for using a double pointer in `write_buf'.
+
+	* src/sfnt/woff2tags.h (WOFF2_DEFAULT_MAX_SIZE): New macro used for
+	overflow checking.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Create stream for uncompressed buffer.
+
+	Uncompressed buffer is now an `FT_Stream'.
+
+	Perform basic checks and start iterating over tables.
+
+	* src/sfnt/sfwoff2.c (stream_close, find_table, read_num_hmetrics):
+	New functions.
+	(reconstruct_font): Modify parameters and iterate over tables.
+	(woff2_open_font): Updated.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Handle TTCs and start reconstructing font.
+
+	We `handle' TTCs by modifying the `indices' array to point to only
+	those tables that are part of the requested `face_index'.
+
+	Set and use `num_tables' in `WOFF2_TtcFont'.
+
+	* src/sfnt/sfwoff2.c (reconstruct_font): New function.
+	(woff2_open_font): Start reconstruction of font.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Get known tags from function.
+
+	Change `KnownTags' to a function (`woff2_known_tags').  This avoids
+	introducing a global constant array.  This function returns the
+	specified index without *any* checks.  The caller must ensure that
+	`index' is within array limits.
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): Change `KnownTags[...]'
+	notation to `woff2_known_tags( ...  )'.
+
+	* src/sfnt/woff2tags.c: Perform changes.
+
+	* src/sfnt/woff2tags.h: Update definitions.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Minor.
+
+	* src/sfnt/sfwoff2.c (woff2_uncompress): Add error message
+	(woff2_open_font): Free `uncompressed_buf'.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Uncompress Brotli streams and `face_index' support.
+
+	WOFF2 compressed stream is now uncompressed if Brotli is available.
+	This data is stored in a separate buffer (uncompressed_buf) because
+	it does not contain direct table data.  Certain tables have
+	transformations applied to them, and they must be reconstructed
+	before we can write those tables to the SFNT stream.
+
+	`face_index' is now being passed as a parameter to
+	`woff2_open_font'.
+
+	* src/sfnt/sfobjs.c (sfnt_open_font): Add parameter
+	`face_instance_index'.
+
+	* src/sfnt/sfwoff2.c (woff2_uncompress): New function.
+	(woff2_open_font): Call `woff2_uncompress'.
+	(compute_first_table_offset): Fix return type.
+
+	* src/sfnt/sfwoff2.h (woff2_open_font): Modify declaration.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	* builds/unix/configure.raw: Change argument name to `brotli'.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	Add Brotli dependency and required checks.
+
+	Brotli is required for decompressing WOFF2 font directory streams.
+	The library is thus being added as an optional dependency for
+	FreeType.
+
+	* builds/unix/configure.raw: Add checks for `libbrotlidec'.
+	(REQUIRES_PRIVATE, LIBS_PRIVATE, LIBSSTATIC_CONFIG): Updated.
+
+	* devel/ftoption.h, include/freetype/config/ftoption.h
+	(FT_CONFIG_OPTION_USE_BROTLI): New macro.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Write SFNT Offset table.
+
+	* src/sfnt/sfwoff2.c (WRITE_USHORT, WRITE_ULONG): New macros.
+	(compare_tags): New function.
+	(woff2_open_font): Implement it.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	* src/sfnt/sfwoff2.c: #undef macros.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[woff2] Read table and collection directory.
+
+	* include/freetype/internal/wofftypes.h (WOFF2_TtcFontRec): New
+	structure.
+	(WOFF2_HeaderRec): Add more fields.
+
+	* src/sfnt/sfwoff2.c (READ_255USHORT, READ_BASE128, ROUND4): New
+	macros.
+	(Read255UShort, CollectionHeaderSize, compute_first_table_offset):
+	New functions.
+	(ReadBase128): Use `FT_READ_BYTE'.
+	(woff2_open_font): Add functionality to read table directory and
+	collection directory (if present).
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[sfnt] Include `woff2tags.c' for building.
+
+	* src/sfnt/rules.mk (SFNT_DRV_SRC): Add `woff2tags.c'.
+
+	* src/sfnt/sfnt.c: Include `woff2tags.c'.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[sfnt] Add WOFF2 constants.
+
+	Add constants required for WOFF2, and known table tags as defined in
+	the specification.  See
+
+	  https://www.w3.org/TR/WOFF2/#table_dir_format
+
+	for details.
+
+	* src/sfnt/woff2tags.c, src/sfnt/woff2tags.h: New files.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	[sfnt] Read WOFF 2 header.
+
+	Check for WOFF2 tag, call `woff2_open_font', and implement it to read
+	header according to specification.
+
+	* include/freetype/internal/fttrace.h: Add `sfwoff2.c'.
+
+	* src/sfnt/rules.mk (SFNT_DRV_SRC): Add `sfwoff2.c'.
+
+	* src/sfnt/sfnt.c: Include `sfwoff2.c'.
+
+	* src/sfnt/sfobjs.c (sfnt_open_font): Check for `wOF2' tag and call
+	`woff2_open_font'.
+
+	* src/sfnt/sfwoff2.c, src/sfnt/sfwoff2.h: New files.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
+	Add structures for WOFF2.
+
+	Add structures and macro for WOFF 2 header and table directory.
+
+	* include/freetype/internal/wofftypes.h (WOFF2_HeaderRec,
+	WOFF2_TableRec_): New structures.
+
+	* include/freetype/tttags.h (TTAG_wOF2): New macro.
+
+2019-08-26  Werner Lemberg  <[email protected]>
+
+	* src/psaux/cffdecode.c (cff_operator_seac): Fix numeric overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16470
+
+2019-08-26  Werner Lemberg  <[email protected]>
+
+	[type1] Fix `FT_Get_Var_Axis_Flags' (#56804).
+
+	* src/type1/t1load.c (T1_Get_MM_Var): Allocate space for axis flags.
+	Also remove redundant assignment.
+
+2019-07-24  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftbbox.c (cubic_peak): Sanitize left shift (#56586).
+
+2019-07-22  Weiyi Wu  <[email protected]>
+
+	* src/cid/cidload.c (cid_hex_to_binary): Fix typo (#56653).
+
+2019-07-12  Werner Lemberg  <[email protected]>
+
+	[sfnt, winfonts] Avoid memory leaks in case of error (#56587).
+
+	* src/sfnt/sfwoff.c (woff_open_font): Call `FT_FRAME_EXIT' in case
+	of error.
+
+	* src/winfonts/winfnt.c (fnt_face_get_dll_font): Ditto.
+
+2019-07-12  Ben Wagner  <[email protected]>
+
+	Properly handle phantom points for variation fonts (#56601).
+
+	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Scale phantom
+	points if HVAR and/or VVAR is present.
+
+2019-07-04  Werner Lemberg  <[email protected]>
+
+	[psaux] (2/2) Handle fonts that use SEAC for ligatures (#56580).
+
+	The same as previous commit but for the old engine.
+
+	* src/psaux/t1decode.c (t1operator_seac): Implement it.
+
+2019-07-04  Chris Liddell <[email protected]>
+
+	[psaux] (1/2) Handle fonts that use SEAC for ligatures (#56580).
+
+	As originally intended, a Type 1 SEAC charstring would be used for
+	an accented glyph (like `acaron' or `uumlaut'), where the advance
+	width of the SEAC glyph is the same as that of the `base' glyph
+	(like `a' or `u').  In this case it is not uncommon for the SEAC
+	glyph to not use an (H)SBW opcode of its own but to rely on the
+	value from the base glyph.
+
+	However, out-of-spec fonts also use SEAC glyphs for ligatures (like
+	`oe' or `fi'), and in those cases the overall advance width is
+	greater than that of the `base' glyph.  For this reason we have to
+	allow that the SEAC glyph can have an (H)SBW value of its own, and
+	if it has, retain this value, rather than the one from the base
+	glyph.
+
+	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_escSEAC>:
+	Implement it.
+
+2019-07-01  Werner Lemberg  <[email protected]>
+
+	* Version 2.10.1 released.
+	==========================
+
+
+	Tag sources with `VER-2-10-1'.
+
+	* docs/VERSION.TXT: Add entry for version 2.10.1.
+
+	* README, Jamfile (RefDoc), src/base/ftver.rc,
+	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.10.0/2.10.1/, s/2100/2101/.
+
+	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
+
+	* builds/unix/configure.raw (version_info): Set to 23:1:17.
+	* CMakeLists.txt (VERSION_PATCH): Set to 1.
+
+	* include/freetype/fterrors.h (FT_Error_String): Fix C++ compilation.
+
+2019-06-26  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Fix inequality.
+
+	Reported by Armin Hasitzka.
+
+2019-06-16  Werner Lemberg  <[email protected]>
+
+	* src/tools/apinames.c: Formatting, minor edits.
+
+2019-06-16  Werner Lemberg  <[email protected]>
+
+	[autofit] Disable hinting if no blue zones are available (#56450).
+
+	* src/autofit/afglobal.c (af_face_global_get_metrics): Start again
+	(with dummy hinter module) if no blue zones are present.
+
+	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Change
+	signature to return error code.
+	If no blue zones are found, update `glyph_styles' array to hold
+	AF_STYLE_NONE_DFLT instead of the current style.
+	(af_latin_metrics_init): Return internal error code if no blue zones
+	are found.
+
+2019-06-16  Werner Lemberg  <[email protected]>
+
+	Towards better VMS support.
+
+	More to come.
+
+	* builds/vms/LIBS.OPT_IA64, builds/vms/_LINK.OPT_IA64,
+	builds/vms/vmslib.dat: New files provided by Jouk Jansen
+	<[email protected]>.
+
+	* builds/vms/ftconfig.h: Update, also from Jouk.
+
+2019-06-13  Werner Lemberg  <[email protected]>
+
+	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Minor.
+
+2019-06-13  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Restore the span buffering for direct mode only.
+
+	The buffer size FT_MAX_GRAY_SPANS is set to 10 spans, which should be
+	enough to cover the entire scanline for simple glyphs in most cases:
+	each slightly slanted edge needs up to two spans, plus a filling span
+	in-between.  This is not new, we used to do it before cb4388783cecc.
+
+	* src/smooth/ftgrays.c (gray_TWorker): Add `spans' and `num_spans'.
+	(gray_hline, gray_sweep): Implement the span buffering.
+	(gray_raster_render): Use negative `num_spans' to avoid the direct
+	mode.
+
+2019-06-12  Alexei Podtelezhnikov  <[email protected]>
+
+	* include/freetype/ftmodapi.h (FT_DebugHook_Func): Return error.
+
+	Fix a warning by adding a return value as in `TT_RunIns',
+	which should not be a compatibility issue.
+
+2019-06-11  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/truetype/ttobjs.c (tt_check_trickyness_family): Add `const'.
+
+2019-06-11  Moazin Khatti  <[email protected]>
+
+	[gzip] Add support for `gzip' encoded header.
+
+	* src/gzip/ftgzip.c (FT_Gzip_Uncompress): Modify the the call to
+	`inflateInit2' to enable support for `gzip' encoded headers.
+
+2019-06-10  Alexei Podtelezhnikov  <[email protected]>
+
+	[type1,type42] Use `const' for string literals.
+
+	* include/freetype/internal/psaux.h (PS_Table_FuncsRec): Updated.
+	* include/freetype/internal/t1types.h (T1_EncodingRec): Updated.
+	* src/psaux/psobjs.[ch] (ps_table_add): Updated.
+	* src/type1/t1load.c (T1_Open_Face, parse_encoding): Updated.
+	* src/type42/t42objs.c (T42_Open_Face): Updated.
+	* src/type42/t42parse.c (t42_parse_encoding): Updated.
+
+	* src/cff/cffobjs.c (cff_face_init): Minor.
+
+2019-06-10  Alexei Podtelezhnikov  <[email protected]>
+
+	[bdf,pcf] Use `const' for string literals.
+
+	* src/bdf/bdf.h (bdf_property_t): Updated `name'.
+	* src/bdf/bdflib.c (_bdf_list_split,bdf_create_property,
+	_bdf_add_property,_bdf_ato*): Updated.
+	* src/bdf/bdfdrivr.c (bdf_interpret_style): Updated.
+	* src/pcf/pcfread.c (pcf_intrpret_style): Ditto.
+
+2019-06-07  Philip Race  <[email protected]>
+
+	* src/base/ftinit.c (FT_Set_Default_Properties): Fix crash.
+
+	Terminate loop at end of environment.
+
+2019-05-31  Alexei Podtelezhnikov  <[email protected]>
+
+	Solidify VC2005 builds.
+
+	* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Explicitly
+	declare `_BitScanReverse' intrinsic.
+	* builds/windows/visualc/freetype.vcproj [Debug]: Disable intrinsics.
+
+2019-05-30  Nikhil Ramakrishnan  <[email protected]>
+
+	[sfnt] Separate WOFF sources and headers.
+
+	Move WOFF sources and headers to separate files.
+
+	* include/freetype/internal/wofftypes.h, src/sfnt/sfwoff.c,
+	src/sfnt/sfwoff.h: New files.
+
+	* include/freetype/internal/fttrace.h: Register `sfwoff.c'.
+
+	* include/freetype/internal/internal.h: Define
+	FT_INTERNAL_WOFF_TYPES_H.
+
+	* include/freetype/internal/sfnt.h: Include FT_INTERNAL_WOFF_TYPES_H.
+
+	* include/freetype/internal/tttypes.h: Move out WOFF structures.
+
+	* src/sfnt/rules.mk: Add `sfwoff.c'.
+
+	* src/sfnt/sfnt.c: Include `sfwoff.c'.
+
+	* src/sfnt/sfobjs.c: Include `sfwoff.h', move out WOFF sources.
+
+2019-05-30  Werner Lemberg  <[email protected]>
+
+	[base] Fix `make multi'.
+
+	Reported by Nikhil.
+
+	* src/base/fterrors.c: Include FT_INTERNAL_DEBUG_H.
+
+2019-05-29  Ben Wagner  <[email protected]>
+
+	[truetype] Fix copy-and-paste error (#56409).
+
+	* src/truetype/ttgload.c (load_truetype_glyph): Use correct indices
+	into `unrounded' array for phantom points.
+
+2019-05-29  Werner Lemberg  <[email protected]>
+
+	[truetype] Fix 32bit builds (#56404).
+
+	Patch suggested by Ben Wagner <[email protected]>.
+
+	* src/truetype/ttgxvar.c (FT_fixedToInt, FT_fixedToFdot6): Remove
+	harmful cast to unsigned type.
+
+2019-05-26  Ben Wagner  <[email protected]>
+
+	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Improve accuracy.
+
+2019-05-23  Werner Lemberg  <[email protected]>
+
+	[truetype] Draw glyphs without deltas in variation font (#56374).
+
+	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Always fill
+	`unrounded' array.
+
+2019-05-21  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttinterp.c (opcode_name): Improve mnemonics.
+
+2019-05-16  Werner Lemberg  <[email protected]>
+
+	[truetype] Actually scale varied CVT values.
+
+	Up to now, only the unscaled CVT values were varied; in other words,
+	the `CVAR' data was never used for bytecode hinting.
+
+	* src/truetype/ttgxvar.c (tt_cvt_ready_iterator): New auxiliary
+	function.
+	(tt_face_vary_cvt): Use it to trigger rescaling of CVT values.
+
+2019-05-16  Werner Lemberg  <[email protected]>
+
+	[truetype] Use 26.6 format for storing unscaled CVT values.
+
+	If `CVAR' data is applied to variation fonts, fractional values are
+	possible.
+
+	* include/freetype/internal/tttypes.h (TT_FaceRec): Change type of
+	`cvt' from `FT_Short' to `FT_Int32'.
+
+	* src/truetype/ttgxvar.c (FT_fdot6ToFixed): New macro.
+	(tt_face_vary_cvt): Use it to update code to 26.6 format.
+
+	* src/truetype/ttobjs.c (tt_size_run_prep): Update code to 26.6
+	format.
+
+	* src/truetype/ttpload.c (tt_face_load_cvt): Stora data in 26.6
+	format.
+
+2019-05-16  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttgload.c (load_truetype_glyph): Init `unrounded'.
+
+	This fixes linear advance width values for spacing glyphs.  Bug
+	introduced 2019-05-09.
+
+2019-05-16  Werner Lemberg  <[email protected]>
+
+	[truetype] Avoid code duplication.
+
+	* src/truetype/ttobjs.c (tt_size_run_prep): Scale CVT values in this
+	function.
+	(tt_size_ready_bytecode): Updated.
+	* src/truetype/ttgload.c (tt_loader_init): Updated.
+
+2019-05-13  Jouk Jansen  <[email protected]>
+
+	* vms_make.com: Updated.  Handle `bzip2' directory, too.
+
+2019-05-13  Werner Lemberg  <[email protected]>
+
+	* src/psaux/psfont.c (cf2_font_setup): Fix compiler warning.
+
+2019-05-12  Werner Lemberg  <[email protected]>
+
+	[truetype] Doh.  Fix last commit to make it work.
+
+	Very embarassing :-)
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14701
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14705
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14710
+
+	* src/truetype/ttgload.c (IS_DEFAULT_INSTANCE): Move up and add
+	argument; update all callers.
+	(TT_Process_Simple_Glyph): Use it.  The `unrounded' array is active
+	for variation fonts only, thus also enclose related code with
+	`#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT ...  #endif' where
+	necessary.
+	Revert commit a113e5d from 2019-05-09, and don't use `extra_points2'
+	but allocate a temporary array.
+	Speed up the scaling of the `unrounded' array.
+
+	* src/truetype/ttgxvar.c (FT_fixedToInt, FT_FixedToFdot6): Fix type
+	conversions and rounding.  The unsigned type must have more or equal
+	bits to the signed type.
+
+2019-05-09  Werner Lemberg  <[email protected]>
+
+	[truetype] Increase precision of font variation (#54371).
+
+	This patch makes FreeType use font units in 26.6 format internally
+	instead of integers.
+
+	* src/truetype/ttgxvar.c (FT_fixedToFdot6): New macro.
+	(TT_Vary_Apply_Glyph_Deltas): Add argument to output unrounded font
+	coordinates.
+	* src/truetype/ttgxvar.h: Updated.
+
+	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Use
+	`extra_points2' array to temporarily hold unrounded point
+	coordinates; use them to compute scaled coordinates and linear
+	advance width and height.
+	(load_truetype_code): Adjust similarly.
+
+2019-05-09  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Minor.
+
+2019-05-08  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Faster fractions.
+
+	* src/smooth/ftgrays.c (SUBPIXELS): Replace with...
+	(FRACT): A fractional coordinate macro to use in...
+	(gray_render_line, gray_render_scanline): ... here.
+
+2019-05-07  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/raster/ftraster.c (Draw_Sweep): Unbreak.
+
+2019-05-05  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/raster/ftraster.c: Clean-ups.
+
+2019-05-05  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttgxvar.c: More use of `FT_fdot14ToFixed'.
+
+2019-05-04  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/smooth/ftgrays.c (gray_render_line): Small shortcut.
+
+2019-05-04  Werner Lemberg  <[email protected]>
+
+	Various clang 8.0 static analyzer fixes.
+
+	Reported by Sender Ghost <[email protected]>.
+
+	* src/autofit/afcjk.c (af_cjk_hints_compute_edges): Catch a corner
+	case where `edge->first' could be NULL.
+
+	* src/pfr/pfrobjs.c (pfr_slot_load): Remove unnecessary test of
+	`size'.
+
+	* src/raster/ftraster.c (Draw_Sweep): Catch a corner case where
+	`draw_right' might be NULL.
+
+	* src/sfnt/ttmtx.c (tt_face_get_metrics): Fix limit test for
+	`aadvance'.
+	Ensure `abearing' always hold a meaningful result.
+
+	* src/truetype/ttgload.c (load_truetype_glyph): Ensure `subglyph' is
+	not NULL before accessing it.
+	* src/truetype/ttgxvar.c (TT_Set_Named_Instance): Remove unnecessary
+	test of `namedstyle'.
+
+	* src/type42/t42parse.c (t42_parser_done): Ensure
+	`parser->root.funcs.done' is not NULL before accessing it.
+
+2019-05-03  Alexei Podtelezhnikov  <[email protected]>
+
+	Miscellaneous macro updates.
+
+	* src/base/ftoutln.c (SCALED): Updated.
+	* src/smooth/ftgrays.c (SCALED): Ditto.
+	(FLOOR, ROUND, CEILING): Removed.
+	* src/psaux/psfixed.h (cf2_fracToFixed): Updated.
+
+2019-05-02  Alexei Podtelezhnikov  <[email protected]>
+
+	Tweak LCD filtering.
+
+	* src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy):
+	Choose direction from bitmap's pixel_mode.
+	* include/freetype/internal/ftobjs.c (FT_Bitmap_LcdFilterFunc):
+	Updated.
+	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Updated.
+
+2019-05-02  Werner Lemberg  <[email protected]>
+
+	* vms_make.com: Updated (#56253).
+
+	Remove no longer existing directories (`autohint', `otlayout').
+	Update used base extensions.
+	Activate `autofit' module.
+	Add `gxvalid' module.
+	Update copyright notices.
+
+2019-04-29  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Simplify cubic Bézier flattening.
+
+	The previous implementation is correct but it is too complex.
+	The revised algorithm is based on the fact that each split moves
+	the control points closer to the trisection points on the chord.
+	The corresponding distances are good surrogates for the curve
+	deviation from the straight line.
+
+	This cubic flattening algorithm is somewhat similar to the conic
+	algorithm based the distance from the control point to the middle of
+	the chord.  The cubic distances, however, decrease less predictably
+	but are easy enough to calculate on each step.
+
+	The new algorithm produces slightly larger number of splits, which is
+	compensated by its simplicity.  The overall rendering performance is
+	improved by 1-2%.  The larger number of splits does not necessarily
+	result in higher quality, which stays comparable.
+
+	* src/smooth/ftgrays.c (gray_render_cubic): Replace the split
+	condition.
+
+2019-04-26  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Bithacks and cosmetics.
+
+	* src/smooth/ftgrays.c (gray_record_cell, gray_set_cell, gray_hline,
+	gray_render_conic, gray_convert_glyph_inner): Updated.
+
+2019-04-25  Alexei Podtelezhnikov  <[email protected]>
+
+	Optimize Bézier bisections.
+
+	This change makes bisections faster by 20-30%. When inlined into
+	`gray_render_cubic', this makes the function faster by 10% and is
+	noticeable in the overall rendering performance.
+
+	* src/raster/ftraster.c (Split_Conic, Split_Cubic): Use shifts and
+	refactor.
+	* src/smooth/ftgrays.c (gray_split_conic, gray_split_cubic): Ditto.
+	* src/base/ftstroke.c (ft_conic_split, ft_cubic_split): Ditto.
+	* src/base/ftbbox.c (cubic_peak): Use shifts.
+
+2019-04-23  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/ttcmap.c (tt_cmap12_next): Remove dead code.
+
+	Found by clang 8.0's static analyzer and reported by Sender Ghost
+	<[email protected]>.
+
+2019-04-23  Werner Lemberg  <[email protected]>
+
+	[base] Fix thinko in previous commit.
+
+	* src/base/ftbitmap.c (FT_Bitmap_Blend): Check final width, not
+	target pitch.
+
+	Problem reported by Sender Ghost <[email protected]>.
+
+2019-04-22  Werner Lemberg  <[email protected]>
+
+	* src/base/ftbitmap.c (FT_Bitmap_Blend): Check target pitch.
+
+	Problem reported by Sender Ghost <[email protected]>.
+
+2019-04-22  Werner Lemberg  <[email protected]>
+
+	Fix return value of `FT_Set_Named_Instance' (#56186).
+
+	* src/truetype/ttgxvar.c (TT_Set_Named_Instance): Correctly handle
+	internal return value -1 of `TT_Set_Var_Design'.
+
+2019-04-18  Werner Lemberg  <[email protected]>
+
+	[pcf] Fix handling of undefined glyph (#56067).
+
+	This commit fixes the changes from 2018-07-21, which broke charmap
+	iteration.  We now add the default character as a new glyph with
+	index 0, thus increasing the number of glyphs by one (as before).
+
+	* src/pcf/pcfread.c (pcf_get_metrics): Adjust to new artificial
+	glyph with index 0.
+	Limit number of elements to 65534.
+	(pcf_get_bitmaps): Ditto.
+	Unify two loops into one; this avoids allocation of an intermediate
+	array.
+	(pcf_get_encodings): Don't flip indices but copy glyph metrics of
+	default character to index 0.
+	Also handle invalid default character.
+
+	* docs/CHANGES: Updated.
+
+2019-04-15  Minmin Gong  <[email protected]>
+
+	* CMakeLists.txt: Avoid rewriting of unchanged configuration files.
+
+	Reported as
+
+	  https://savannah.nongnu.org/patch/index.php?9755
+
+2019-04-15  JDG  <[email protected]>
+
+	* src/tools/apinames.c (main): Fix error message.
+
+	Reported as
+
+	  https://savannah.nongnu.org/patch/?9796
+
+2019-04-11  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Fix segfault in direct mode (#56092).
+
+	* src/base/ftoutln.c (FT_Outline_Render): Set missing clip_box for
+	direct mode.
+	* src/smooth/ftgrays.c (gray_raster_render): Use it.
+
+2019-04-06  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/ttcmap.c (tt_get_glyph_name): Pacify compiler (#56061).
+
+	This is for Visual Studio 2019 on ARM.
+
+2019-04-06  Werner Lemberg  <[email protected]>
+
+	For distribution, replace `.tar.bz2' with `.tar.xz' bundles.
+
+	* builds/toplevel.mk (build): Do it.
+
+	* README, docs/CHANGES, docs/release: Updated.
+
+2019-04-06  Antony Lee  <[email protected]>
+
+	Make `glyph_name' parameter to `FT_Get_Name_Index' a `const'.
+
+	* include/freetype/freetype.h (FT_Get_Name_Index),
+	include/freetype/internal/ftobjs.h (FT_Face_GetGlyphNameIndexFunc),
+	include/freetype/internal/services/svgldict.h
+	(FT_GlyphDict_NameIndexFunc), src/base/ftobjs.c (FT_Get_Name_Index),
+	src/cff/cffdrivr.c (cff_get_name_index), src/sfnt/sfdriver.c
+	(sfnt_get_name_index), src/type1/t1driver.c (t1_get_name_index),
+	src/type42/t42drivr.c (t42_get_name_index): Add `const' to second
+	argument.
+
+2019-03-31  Armin Hasitzka  <[email protected]>
+
+	[cff] Fix boundary checks.
+
+	642bc7590c701c8cd35a9f60fa899cfa518b17ff introduced dynamically
+	allocated memory when parsing CFF files with the "old" engine.  Bounds
+	checks have never been updated, however, leading to pointless
+	comparisons of pointers in some cases.  This commit presents a
+	solution for bounds checks in the CFF module with an extended logic
+	for the "old" engine while staying as concise as possible for the
+	"new" one.
+
+	* src/cff/cffparse.h: Introduce the struct `CFF_T2_StringRec' and
+	the additional field `t2_strings' within `CFF_ParserRec'.
+
+	* src/cff/cffparse.c (cff_parser_within_limits): Move all boundary
+	checks into this new function and update the rest of `cffparse.c' to
+	use it.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12137
+
+2019-03-20  Werner Lemberg  <[email protected]>
+
+	[autofit] Fix Mongolian blue zone characters.
+
+	* src/autofit/afblue.dat: Use U+200D (ZERO-WIDTH JOINER) characters
+	to get medial forms for some Mongolian characters.
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+2019-03-19  Werner Lemberg  <[email protected]>
+
+	[autofit] Add support for Mongolian script.
+
+	As a de-facto standard, layouts using this script are constructed
+	horizontally line by line, then the lines are rotated clockwise for
+	vertical display.
+
+	* src/autofit/afblue.dat: Add blue zone data for Mongolian.
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Mongolian standard characters.
+
+	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Mongolian
+	data.
+
+2019-03-15  Werner Lemberg  <[email protected]>
+
+	* Version 2.10.0 released.
+	==========================
+
+
+	Tag sources with `VER-2-10-0'.
+
+	* docs/VERSION.TXT: Add entry for version 2.10.0.
+	* docs/CHANGES: Updated.
+
+	* README, Jamfile (RefDoc), src/base/ftver.rc,
+	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.9.1/2.10.0/, s/291/2100/.
+
+	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 10.
+	(FREETYPE_PATCH): Set to 0.
+
+	* builds/unix/configure.raw (version_info): Set to 23:0:17.
+	* CMakeLists.txt (VERSION_MINOR): Set to 10.
+	(VERSION_PATCH): Set to 0.
+
+	* builds/toplevel.mk (version, winversion): Since the minor version
+	number has two digits now, never omit the patch number.  We would
+	get ambiguous zip file names otherwise.
+	(dist): Remove remnants of `docmaker' tool.
+	(do-dist): Remove unused intermediate files.
+
+	* src/cff/cffparse.c (destrict_c2s_item): Guard function with
+	CFF_CONFIG_OPTION_OLD_ENGINE macro.
+
+2019-03-07  Andrei Alexeyev  <[email protected]>
+            Werner Lemberg  <[email protected]>
+
+	Fix invalid function pointer casts.
+
+	This change should allow Freetype to work on WASM/Emscripten without
+	needing `-s EMULATE_FUNCTION_POINTER_CASTS=1'.
+
+	* src/autofit/afdummy.c (af_dummy_hints_apply): Fix signature.
+
+	* src/cid/cidload.c (cid_parse_font_matrix, parse_fd_array,
+	parse_expansion_factor, parse_font_name): Return `void', not
+	`FT_Error'.
+
+	* include/freetype/internal/ftobjs.h (FT_CMap_CharVarIsDefaultFunc):
+	Fix signature.
+
+2019-03-05  Werner Lemberg  <[email protected]>
+
+	[base] Handle numeric overflow (#55827).
+
+	* src/base/ftglyph.c (FT_Glyph_Get_CBox): Use `FT_PIX_CEIL_LONG'.
+
+2019-03-05  Sebastian Rasmussen  <[email protected]>
+
+	[psaux] Fix use of uninitialized memory (#55832).
+
+	* src/psaux/psintrp.c (cf2_interpT2CharString): The call to
+	`cf2_arrstack_setCount' may fail because the allocator ran out of
+	memory.  When this happens the stack is still written to before the
+	error condition is checked.  This means that FreeType writes outside
+	of allocated memory.  This commit moves the error check prior to the
+	stack assignment, hence the function now properly returns with an
+	error condition.
+
+2019-02-23  Werner Lemberg  <[email protected]>
+
+	* src/base/ftbitmap.c (FT_Bitmap_Blend): No fractional offsets.
+
+	The function only provided a framework without an actual
+	implementation, which this commit removes.
+
+2019-02-23  Werner Lemberg  <[email protected]>
+
+	* src/tools/update-copyright-year: Insert `(C)'.
+
+2019-02-21  Armin Hasitzka  <[email protected]>
+
+	[truetype] Mask numeric overflows.
+
+	* src/truetype/ttinterp.c (Move_CVT, Move_CVT_Stretched, Ins_MIRP):
+	Mask numeric overflows.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11681
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11734
+
+2019-02-21  Armin Hasitzka  <[email protected]>
+
+	[psaux] Mask numeric overflow.
+
+	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings): Mask numeric
+	overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13041
+
+2019-02-16  Wink Saville  <[email protected]>
+
+	* src/autofit/afwarp.h (af_warper_compute): Fix declaration.
+
+2019-02-02  Nikolaus Waxweiler  <[email protected]>
+
+	[truetype] Apply MVAR hasc, hdsc and hlgp metrics to current FT_Face metrics.
+
+	Instead of setting typo or win metrics as the new `FT_Face' metrics
+	indiscriminately, apply only typo deltas to the currently active
+	`FT_Face' metrics.  This prevents line height differences when the
+	default outlines were used as the regular face and instances for
+	everything else, for example.
+
+	* src/truetype/ttgxvar.c (tt_apply_mvar): Implement.
+
+2019-02-02  Nikolaus Waxweiler  <[email protected]>
+
+	[sfnt] Use typo metrics if OS/2 fsSelection USE_TYPO_METRICS bit is set.
+
+	If the `OS/2' table exists and `fsSelection' bit 7
+	(USE_TYPO_METRICS) is set, use the `sTypo*' set of values to compute
+	the `FT_Face's ascender, descender, and height.  Otherwise, fall
+	back to old behavior.
+
+	* src/sfnt/sfobjs.c (sfnt_load_face): Implement.
+
+2019-01-18  John Tytgat  <[email protected]>
+
+	[sfnt] Handle TT fonts having two PostScript font names (#55471).
+
+	* src/sfnt/sfdriver.c (sfnt_get_name_id): Prefer English over any
+	other language found for PostScript font names.
+
+2019-01-08  Chris Liddell <[email protected]>
+
+	[psaux] Fix closepath (#55414).
+
+	All of the Type 1 path building is done with code common to the
+	revised CFF engine, with the exception of closepath, which was still
+	calling ps_builder_close_contour(), thus previously cached segments
+	were not always written to the path, and glyph corruption, or even
+	invalid outlines were possible.
+
+	* src/psauc/psinterp.c (cf2_interpT2CharString) <cf2_cmdCLOSEPATH>:
+	Switch to calling `cf2_glyphpath_closeOpenPath'.
+
+2018-12-29  Werner Lemberg  <[email protected]>
+
+	* src/autofit/aflatin2.c: Some fixes from `aflatin.c' (#55310).
+
+2018-12-25  Werner Lemberg  <[email protected]>
+
+	* src/psaux/cffdecode.c (cff_operaor_seac): Fix numeric overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11915
+
+2018-12-12  Werner Lemberg  <[email protected]>
+
+	[gxvalid] Fix compiler warnings.
+
+	* src/gxvalid/gxvjust.c (gxv_just_check_max_gid),
+	src/gxvalid/gxvmort.c (gxv_mort_coverage_validate): Use `FT_UNUSED'.
+
+2018-12-11  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttgload.c (TT_Hint_Glyph): Remove useless test.
+
+	`control_len' only gets its value from `n_ins' (and vice versa),
+	which is always read as `unsigned short' and thus can't be larger
+	than 0xFFFF.
+
+2018-12-04  Werner Lemberg  <[email protected]>
+
+	[bdf] Ignore data after `ENDFONT'.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10798
+
+	* src/bdf/bdflib.c (_bdf_parse_end): New function.
+	(_bdf_parse_glyphs): Switch to `_bdf_parse_end' after `ENDFONT' has
+	been encountered.
+
+2018-12-02  Alexei Podtelezhnikov  <[email protected]>
+
+	* builds/windows/visualc/freetype.dsp: Dust off.
+
+2018-11-27  Alexei Podtelezhnikov  <[email protected]>
+
+	* builds/windows/vc2010/freetype.vcxproj: Simplify.
+
+2018-11-27  Chris Liddell  <[email protected]>
+
+	[type1,cff] Add FT_{Set,Get}_MM_WeightVector API calls.
+
+	For multiple master fonts, common usage (in Postscript) is to modify
+	the WeightVector of an existing font instance, this addition
+	supports that use.
+
+	* include/freetype/ftmm.h, src/base/ftmm.c (FT_Set_MM_WeightVector,
+	FT_Get_MM_WeightVector): New API functions.
+
+	* include/freetype/internalservices/svmm.h
+	(FT_Set_MM_WeightVector_Func, FT_Get_MM_WeightVector_Func): New
+	function types.
+	(MultiMasters): Add `set_mm_weightvector' and `get_mm_weightvector'
+	members.
+	(FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
+
+	* src/cffcffdrivr.c (cff_set_mm_weightvector,
+	cff_get_mm_weightvector): New functions.
+	(cff_service_multi_masters): Register them.
+
+	* src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated.
+	This driver doesn't use the new interface.
+
+	* src/type1/t1load.c (T1_Set_MM_WeightVector,
+	T1_Get_MM_WeightVector): New functions.
+	* src/type1/t1driver.c (t1_service_multi_masters): Register them.
+	* src/type1/t1load.h: Updated.
+
+2018-11-27  Ben Wagner  <[email protected]>
+
+	[cff] Fix compiler warning (#55105).
+
+	* src/cff/cffparse.c (cff_parser_run): Guard label only used if
+	CFF_CONFIG_OPTION_OLD_ENGINE is active.
+
+2018-11-27  Ben Wagner  <[email protected]>
+
+	[truetype] Fix numeric overflow (#55103).
+
+	* src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'.
+
+2018-11-25  Alexei Podtelezhnikov  <[email protected]>
+
+	[builds] Belated DLL support with vc2002-vc2008.
+
+	The solution and project files should be automatically upgraded for
+	the approriate Visual C++ version.
+
+	* builds/windows/visualc/freetype.{sln,vcproj}: Major upgrades.
+	* builds/windows/visualc/index.html: Document the change.
+	* builds/windows/vc2005, builds/windows/vc2008: Removed as redundant.
+
+2018-11-22  Armin Hasitzka  <[email protected]>
+
+	* src/cff/cffparse.c: Please the compiler.
+
+2018-11-22  Armin Hasitzka  <[email protected]>
+
+	[cff] Fix memory overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9869
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10869
+
+	* src/cff/cffparse.c (destruct_t2s_item, cff_parser_run): Store
+	evaluated T2 charstrings in separately allocated memory.
+
+2018-11-18  Alexei Podtelezhnikov  <[email protected]>
+
+	* builds/windows/{visualc,vc2005,vc2008}/freetype.vcproj: Fix it.
+
+2018-11-10  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Placeholder only for library-enabled LCD filtering.
+
+	* src/smooth/ftsmooth.c (ft_smooth_init): Add disabled
+	`FT_Library_SetLcdFilter' call.
+
+2018-11-09  Young Xiao  <[email protected]>
+
+	[psaux] Add safety guard (#54985).
+
+	* src/psaux/psobjs.c (cff_builder_close_contour): Do it.
+
+2018-11-08  Alexei Podtelezhnikov  <[email protected]>
+
+	* builds/unix/configure.raw: Require `windows.h' for windres.
+
+2018-11-08  Alexei Podtelezhnikov  <[email protected]>
+
+	[ftstroke] Fix unpredictable failures (#54986).
+
+	* src/base/ftstroke.c (ft_sroke_border_lineto): Fix lineto check.
+
+2018-11-08  Alexei Podtelezhnikov  <[email protected]>
+
+	[ftstroke] Fix unpredictable failures (#54976).
+
+	* src/base/ftstroke.c (ft_sroke_border_close): Set the start tags.
+
+2018-11-07  Ben Wagner  <[email protected]>
+
+	[truetype] Fix VF check from 2018-09-12 (#54973).
+
+	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Use correct
+	offsets for estimates.
+
+2018-11-06  Werner Lemberg  <[email protected]>
+
+	[pshinter] Fix numeric overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11242
+
+	* src/pshinter/pshrec.c (ps_dimension_add_t1stem): Implement it.
+
+2018-11-06  Werner Lemberg  <[email protected]>
+
+	[psaux] Fix timeout in old CFF engine.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11260
+
+	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
+	<cff_op_sqrt> [CFF_CONFIG_OPTION_OLD_ENGINE]: Fix potential endless
+	loop.
+
+2018-11-04  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/truetype/ttgxvar.c: Use enum definitions.
+
+2018-11-03  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Adjust condition.
+
+2018-11-03  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Tracing tweaks.
+
+2018-11-03  Alexei Podtelezhnikov  <[email protected]>
+
+	Revert due to specs: [truetype] Speed up variation IUP.
+
+2018-11-02  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/truetype/ttgxvar.c (ft_var_get_item_delta): Fixed logic.
+
+	Reported and tested by Behdad.
+
+2018-11-02  Shailesh Mistry  <[email protected]>
+
+	[autofit] Prevent SEGV.
+
+	See
+
+	  https://bugs.ghostscript.com/show_bug.cgi?id=697545
+
+	for more details on how the bug was found.
+
+	* src/autofit/afloader.c (af_loader_load_glyph): Propagate error
+	code.
+
+2018-10-31  Alexei Podtelezhnikov <[email protected]>
+
+	[truetype] Speed up variation IUP.
+
+	* src/truetype/ttgxvar.c (tt_delta_interpolate): Separate trivial
+	snapping to the same position from true interpolation.
+
+2018-10-31  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/type1/t1load.c (t1_set_mm_blend): Optimized.
+
+2018-10-31  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/truetype/ttgxvar.c (ft_var_get_item_delta): Optimized.
+
+2018-10-29  Werner Lemberg  <[email protected]>
+
+	[base] Fix numeric overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11080
+
+	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Use `MUL_LONG'.
+
+2018-10-29  Werner Lemberg  <[email protected]>
+
+	[cff] Fix numeric overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10988
+
+	* src/cff/cffparse.c (cff_parser_run)
+	[CFF_CONFIG_OPTION_OLD_ENGINE]: Use `NEG_LONG'.
+
+2018-10-27  Alexei Podtelezhnikov  <[email protected]>
+
+	[sfnt] Make `head' timestamps unsigned.
+
+	It's been more than 2^31 seconds since 1904.
+
+	* include/freetype/tttables.h (TT_Header): Change field types.
+	* src/sfnt/ttload.c (tt_face_load_generic_header): Updated.
+
+2018-10-27  Alexei Podtelezhnikov  <[email protected]>
+
+	Revert: Align FreeType with standard C memory management.
+
+2018-10-27  Werner Lemberg  <[email protected]>
+
+	[psaux] Fix numeric overflow.
+
+	Triggered by
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11157
+
+	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_blend>
+	[CFF_CONFIG_OPTION_OLD_ENGINE]: Fix integer overflow.
+
+2018-10-20  Werner Lemberg  <[email protected]>
+
+	Avoid endless loop while tracing (#54858).
+
+	* src/type1/t1load.c (parse_buildchar): Guard tracing stuff with
+	FT_DEBUG_LEVEL_TRACE.
+
+2018-10-17  David Demelier  <[email protected]>
+
+	* CMakeLists.txt: Specify `RUNTIME DESTINATION'.
+
+	This is needed for DLL builds.
+
+2018-10-07  Werner Lemberg  <[email protected]>
+
+	A missing Unicode cmap is not a fatal error.
+
+	This is a follow-up to the previous commit.
+
+	* src/cff/cffobjs.c (cff_face_init), src/sfnt/sfobjs.c
+	(sfnt_load_face), src/type1/t1objs.c (T1_Face_Init),
+	src/type42/t42objs.c (T42_Face_Init): Implement it.
+
+2018-10-07  Werner Lemberg  <[email protected]>
+
+	Fix handling of FT_CONFIG_OPTION_ADOBE_GLYPH_LIST (#54794).
+
+	* src/cff/cffcmap.c (cff_cmap_unicode_init), src/psaux/t1cmap.c
+	(t1_cmap_unicode_init), src/sfnt/ttcmap.c (tt_cmap_unicode_init):
+	Check `unicodes_init' field.
+
+2018-10-03  Werner Lemberg  <[email protected]>
+
+	[ftgrays] Fix typo in stand-alone mode (#54771).
+
+	* src/smooth/ftgrays.c (FT_THROW) [STANDALONE_ &&
+	FT_DEBUG_LEVEL_TRACE]: Fix call to `FT_ERR_CAT'.
+
+2018-10-02  Werner Lemberg  <[email protected]>
+
+	[psaux] Fix segfault.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10768
+
+	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
+	<cff_op_callothersubr> [CFF_CONFIG_OPTION_OLD_ENGINE]: Check
+	argument.
+
+2018-10-02  Werner Lemberg  <[email protected]>
+
+	[psaux] Fix numeric overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10740
+
+	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_roll>
+	[CFF_CONFIG_OPTION_OLD_ENGINE]: Use NEG_INT.
+
+2018-10-02  Werner Lemberg  <[email protected]>
+
+	[pshinter] Handle numeric overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10550
+
+	* src/pshinter/pshglob.c (psh_blues_snap_stem): Mask numeric
+	overflow.
+
+2018-09-27  Alexei Podtelezhnikov  <[email protected]>
+
+	Align FreeType with standard C memory management.
+
+	* include/freetype/ftsystem.h: Include FT_TYPES_H.
+	(*FT_Alloc_Func, *FT_Realloc_Func): Use size_t for the size arguments.
+	* src/raster/ftmisc.h: Ditto.
+
+	* builds/amiga/src/base/ftsystem.c, builds/unix/ftsystem.c,
+	* builds/vms/ftsystem.c, src/base/ftsystem.c (ft_alloc, ft_realloc):
+	Use size_t for the size arguments.
+
+	* src/base/ftdbgmem.c (ft_mem_debug_alloc, ft_mem_debug_realloc): Use
+	FT_Offset, aka size_t, for the size arguments.
+
+2018-09-25  Werner Lemberg  <[email protected]>
+
+	Fix handling of `FT_Bool'.
+
+	Before this commit we had code like
+
+	  (FT_Bool)( globals->glyph_styles[gindex] & 0x8000)
+
+	Since `FT_Bool' is defined to be an `unsigned char', the code
+	evaluated to something like
+
+	  (unsigned char)( 0x8532 & 0x8000)
+
+	which in turn expanded to
+
+	  (unsigned char)( 0x8000)
+
+	and finally yielded 0x00 – i.e., false – not as expected.
+
+	Problem reported and analyzed by Tony Smith <[email protected]>.
+
+	* include/freetype/fttypes.h (FT_BOOL): Add a comparison against
+	zero so that we always have a Boolean expression.
+
+	*/*: Replace castings to `FT_Bool' with calls to `FT_BOOL' where
+	possible.
+
+2018-09-23  Alexei Podtelezhnikov  <[email protected]>
+
+	[bdf] Speed up charmap access.
+
+	This makes FT_Get_Char_Index and FT_Get_Next_Char 4-5 times faster.
+
+	* src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Help binary search
+	with continuous prediction.
+
+2018-09-22  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftobjs.c (ft_glyphslot_preset_bimap): Another tweak.
+
+	This one should be clearer. When the rounded monochrome bbox collapses
+	we add a pixel that covers most if not all original cbox.
+
+2018-09-21  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftobjs.c (ft_glyphslot_preset_bimap): Further tweak.
+
+2018-09-21  Ben Wagner  <[email protected]>
+
+	Improve auto-hinter handling of bitmap fonts (#54681).
+
+	For bitmap fonts, `FT_Load_Glyph' should either return an error or
+	not set the format to `FT_GLYPH_FORMAT_OUTLINE'.  However, in this
+	case `FT_Load_Glyph' calls into the auto-hinter which calls back
+	into `FT_Load_Glyph' with `FT_LOAD_NO_SCALE' in the flags, which
+	marks the glyph as `FT_GLYPH_FORMAT_OUTLINE' with an empty path
+	(even though it doesn't have any path).  It appears that the
+	auto-hinter should not be called when the face doesn't have
+	outlines.  The current test for using the auto-hinter in
+	`FT_Load_Glyph' checks whether the driver supports scalable
+	outlines, but not if the face supports scalable outlines.
+
+	* src/base/ftobjs.c (FT_Load_Glyph): Directly check whether we have
+	scalable outlines.
+
+2018-09-21  Werner Lemberg  <[email protected]>
+
+	[raster] Fix disappearing vertical lines (#54589).
+
+	* src/raster/ftraster.c (Vertical_Sweep_Span): Handle special case
+	where both left and right outline exactly pass pixel centers.
+
+2018-09-20  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftobjs.c (ft_glyphslot_preset_bimap): Tiny rounding tweak.
+
+	This adds pixels in case a contour goes through the center
+	and they need to be turned on in the b/w rasterizer.
+
+2018-09-20  Alexei Podtelezhnikov  <[email protected]>
+
+	[pcf] Replace charmap implementation.
+
+	PCF comes with charmap lookup table, aka PCF encodings.  Using it
+	directly makes FT_Get_Char_Index and FT_Get_Next_Char 4-5 times
+	faster than the original BDF-like binary searches.
+
+	* src/pcf/pcf.h (PCF_EncodingRec): Removed.
+	(PCF_FaceRec): Remove `nencodings' and `encodings'.
+	* src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Replaced.
+	* src/pcf/pcfread.c (pcf_get_encodings): Store data differently.
+
+2018-09-20  Werner Lemberg  <[email protected]>
+
+	[base] Remove unused function `FT_GlyphLoader_CopyPoints'.
+
+	* include/freetype/internal/ftgloadr.h, src/base/ftgloadr.c
+	(FT_GlyphLoader_CopyPoints): Do it.
+
+2018-09-19  Alexei Podtelezhnikov  <[email protected]>
+
+	[pcf] Prepare to replace charmap implementation.
+
+	* src/pcf/pcf.h (PCF_FaceRec): Updated to include...
+	(PCF_EncRec): ... this new structure to store charmap geometry.
+
+	* src/pcf/pcfread.c (pcf_get_encodings): Store charmap geometry.
+
+2018-09-18  Alexei Podtelezhnikov  <[email protected]>
+
+	Remove unused fields.
+
+	* src/pcf.h (PCF_FaceRec): Remove `charmap' and `charmap_handle'.
+	* src/bdfdrvr.h (BDF_FaceRec): Ditto.
+	* src/winfonts/winfnt.h (FNT_FaceRec): Ditto.
+
+2018-09-17  Werner Lemberg  <[email protected]>
+
+	[pshinter] Handle numeric overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10396
+
+	* src/pshinter/pshglob.c: Include FT_INTERNAL_CALC_H.
+	(psh_blues_snap_stem): Mask numeric overflow.
+
+2018-09-13  Werner Lemberg  <[email protected]>
+
+	[truetype] Some fixes for VF checks.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10317
+
+	* src/truetype/ttgxvar.c (ft_var_load_gvar): Properly exit memory
+	frame if we have invalid glyph variation data offsets.
+	(tt_face_vary_cvt): Protect against missing `tuplecoords' array.
+	Fix typo.
+
+2018-09-13  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Fix last commit.
+
+2018-09-13  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Check `result'.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10316
+
+2018-09-12  John Tytgat  <[email protected]>
+
+	[sfnt] Better PS name handling (#54629).
+
+	* src/sfnt/sfdriver (IS_WIN, IS_APPLE): Omit language ID checks.
+	(get_win_string, get_apple_string): Return NULL when the PostScript
+	font name characters is not according to specification.
+	(get_win_string): Make trace output work if the high byte if
+	non-zero.
+	(sfnt_get_var_ps_name, sfnt_get_ps_name): Previously we preferred
+	Win PS name (when there is also an Apple PS name); change this into
+	a fallback to Apple PS name in case the Win PS name is invalid.
+
+2018-09-12  Werner Lemberg  <[email protected]>
+
+	[truetype] Improve VF check.
+
+	Triggered by
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10255
+
+	* src/truetype/ttgxvar.c (ft_var_load_gvar): Use better limit check
+	for `tupleCount'.
+
+2018-09-12  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttgxvar.c (ft_var_load_gvar): Check `glyphoffsets'.
+
+2018-09-10  Armin Hasitzka  <[email protected]>
+
+	* src/pshinter/pshrec.c (t2_hints_stems): Mask numeric overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10215
+
+2018-09-09  Ben Wagner  <[email protected]>
+
+	* builds/freetype.mk (refdoc-venv): Ensure python version (#54631).
+
+2018-09-07  Werner Lemberg  <[email protected]>
+
+	[truetype] Fix assertion failure.
+
+	Triggered by
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10212
+
+	* src/truetype/ttgload.c (load_truetype_glyph): Reintroduce
+	`opened_frame' (removed in a change from 2018-08-26) to handle
+	deallocation of the second frame.
+
+2018-09-05  Werner Lemberg  <[email protected]>
+
+	Synchronize `ftdebug.c' files.
+
+	* builds/amiga/src/base/ftdebug.c, builds/wince/ftdebug.c,
+	builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c'.
+
+2018-09-05  Nikhil Ramakrishnan  <[email protected]>
+
+	Add documentation guidelines file.
+
+	* docs/DOCGUIDE: New file.
+
+2018-09-04  Werner Lemberg  <[email protected]>
+
+	* devel/ftoption.h: Synchronize with master `ftoption.h'.
+
+2018-09-03  Nikhil Ramakrishnan  <[email protected]>
+
+	[docwriter] Don't break code snippets accross lines.
+
+	Reported as
+
+	  https://lists.nongnu.org/archive/html/freetype-devel/2018-08/msg00124.html
+
+	* docs/reference/markdown/stylesheets/extra.css (.md-typeset code):
+	Add rule `white-space'.
+
+2018-09-03  Werner Lemberg  <[email protected]>
+
+	*/*: s/PSNames/psnames/.
+
+	Only tracing messages are affected.
+
+2018-09-03  Werner Lemberg  <[email protected]>
+
+	[sfnt] Fix heap buffer overflow in CPAL handling.
+
+	* src/sfnt/ttcpal.c (tt_face_palette_set): Fix boundary test.
+	(tt_face_load_cpal): Updated.
+
+2018-09-01  Werner Lemberg  <[email protected]>
+
+	Remove `FT_Outline_{New,Done}_Internal'.
+
+	These public API functions(!) were always undocumented and have
+	escaped all clean-up efforts until now.
+
+	* include/freetype/ftoutln.h (FT_Outline_New_Internal,
+	FT_Outline_Done_Internal): Removed.
+
+	* src/base/ftoutln.h (FT_Outline_New_Internal,
+	FT_Outline_Done_Internal): Merge into...
+	(FT_Outline_New, FT_Outline_Done): ... these functions.
+
+	* docs/README: Updated.
+
+2018-08-30  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Check glyph format.
+
+2018-08-31  Armin Hasitzka  <[email protected]>
+
+	[errors] Refine the macro logic surrounding `FT_Error_String'.
+
+	* include/freetype/fterrors.h (FT_INCLUDE_ERR_PROTOS,
+	FT_ERR_PROTOS_DEFINED): Undefine `FT_INCLUDE_ERR_PROTOS' after
+	checking it and introduce a new macro that takes proper care of
+	multiple-inclusion protection.
+
+2018-08-31  Werner Lemberg  <[email protected]>
+
+	* src/base/ftdebug.c (FT_Throw): Restore missing `FT_UNUSED' calls.
+
+2018-08-31  Werner Lemberg  <[email protected]>
+
+	* src/base/ftdebug.c (FT_Throw): Reduce chattiness.
+
+2018-08-31  Werner Lemberg  <[email protected]>
+
+	* src/autofit/afhints.c (af_glyph_hints_reload): Add initialization.
+
+2018-08-30  Alexei Podtelezhnikov  <[email protected]>
+
+	Consolidate bitmap presetting and size assessment.
+
+	* include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap):
+	Change return type.
+	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Return the bitmap
+	size assessment.
+
+	* src/raster/ftrend1.c (ft_raster1_render): Use it to refuse the
+	rendering of enourmous or far-fetched outlines.
+	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
+
+2018-08-30  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Correct mono.
+
+2018-08-30  Armin Hasitzka  <[email protected]>
+
+	[errors] Introduce a macro to control `FT_Error_String'.
+
+	* devel/ftoption.h (FT_CONFIG_OPTION_ERROR_STRINGS),
+	include/freetype/config/ftoption.h (FT_CONFIG_OPTION_ERROR_STRINGS):
+	New macro.
+
+2018-08-30  Armin Hasitzka  <[email protected]>
+
+	[errors] Introduce `FT_Error_String'.
+
+	* include/freetype/fterrors.h (FT_Error_String),
+	src/base/fterrors.c (FT_Error_String): Implement `FT_Error_String'.
+
+	* src/base/ftbase.c, src/base/Jamfile (_source),
+	src/base/rules.mk (BASE_SRC): Add `fterrors.c' to the build logic.
+
+	* src/base/ftdebug.c (FT_Throw): Use `FT_Error_String'.
+
+2018-08-30  Werner Lemberg  <[email protected]>
+
+	[autofit] Trace `before' and `after' edges of strong points.
+
+	* src/autofit/afhints.h (AF_PointRec) [FT_DEBUG_AUTOFIT]: New arrays
+	`before' and `after'.
+
+	* src/autofit/afhints.c (af_get_strong_edge_index): New auxiliary
+	function.
+	(af_glyph_hints_dump_points): Trace `before' and `after' edges.
+	(af_glyph_hints_align_strong_points) [FT_DEBUG_AUTOFIT]: Set
+	`before' and `after' information.
+
+2018-08-30  Alexei Podtelezhnikov  <[email protected]>
+
+	[base] Overflow-resistant bitmap presetting.
+
+	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Implement it.
+
+2018-08-29  Armin Hasitzka  <[email protected]>
+
+	Fix numeric overflows.
+
+	* src/pshint/pshalgo.c (psh_hint_align, psh_hint_align_light,
+	psh_hint_table_find_strong_points): Fix numeric overflows.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10083
+
+2018-08-29  Werner Lemberg  <[email protected]>
+
+	[cff] Fix handling of `roll' op in old engine.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10080
+
+	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_roll>
+	[CFF_CONFIG_OPTION_OLD_ENGINE]: Use modulo for loop count, as
+	documented in the specification.
+
+2018-08-26  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttobjs.c (tt_size_read_bytecode): Trace CVT values.
+
+2018-08-26  Nikhil Ramakrishnan  <[email protected]>
+
+	* configure: Copy assets required by docwriter.
+
+	Copy directory `docs/reference/markdown' when FreeType is compiled in a
+	different directory.
+
+	Fixes `make refdoc' if builddir != srcdir.
+
+	Reported as
+
+	  https://lists.nongnu.org/archive/html/freetype-devel/2018-08/msg00083.html
+
+2018-08-26  Werner Lemberg  <[email protected]>
+
+	* src/pshint/pshalgo.c (psh_hint_overlap): Fix numeric overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10057
+
+2018-08-26  Werner Lemberg  <[email protected]>
+
+	Minor tracing adjustments.
+
+	* src/base/ftstream.c (FT_Stream_EnterFrame, FT_Stream_ExitFrame):
+	Trace.
+
+	* src/truetype/ttgload.c (TT_Access_Glyph_Frame): Remove tracing.
+
+2018-08-26  Werner Lemberg  <[email protected]>
+
+	[truetype] Avoid nested frames.
+
+	Triggered by
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10054
+
+	* src/truetype/ttgload.c (load_truetype_glyph): Don't use variable
+	`opened_frame' to trace whether a frame must be closed at the end of
+	function: This fails because `TT_Vary_Apply_Glyph_Deltas' (which
+	gets called for space glyphs) uses a frame by itself.  Instead,
+	close the frame after loading the header, then use another frame for
+	the remaining part of the glyph later on.
+
+	Also avoid calling `tt_get_metrics' twice under some circumstances.
+
+2018-08-26  Werner Lemberg  <[email protected]>
+
+	Various minor clean-ups.
+
+	* src/base/ftapi.c: Remove.  Unused.
+	* src/base/Jamfile (_sources): Updated.
+
+	* src/base/ftstream.c (FT_Stream_ReleaseFrame): Remove redundant
+	code.
+
+2018-08-25  Nikhil Ramakrishnan  <[email protected]>
+
+	Convert documentation markup to Markdown.
+
+	It is the result of a GSoC 2018 project; this separate ChangeLog
+	commit covers the last four commits
+
+	  ae5d1a4cec37557f31aec270332cfe886a62f9a0
+	  53c69ce04faed3dcc68ca0f54cb8d703d8babf69
+	  195728d5ba38f34fb2c2c20807c01656f2f59b66
+	  c962db28ea59225f0105c03d907d4a9b71765687
+
+	* docs/reference/markdown/images/favico.ico,
+	docs/reference/markdown/javascripts/extra.js,
+	docs/reference/markdown/stylesheets/extra.css: New files.
+
+	* docs/reference/.gitignore, docs/reference/README: Updated.
+
+	* src/tools/docmaker/*: Removed.  It has been replaced with
+	`docwriter', a python package available at
+
+	  https://pypi.org/project/docwriter/
+
+	* Jamfile: Updated.
+	* builds/ansi/ansi-def.mk, builds/beos/beos-def.mk,
+	builds/dos/dos-def.mk, builds/os2/os2-def.mk (BIN),
+	builds/unix/unixddef.mk, builds/windows/win32-def.mk: New variable.
+
+	* builds/unix/configure.raw: Check for `python' and `pip'.
+	If not present, warn that `make refdoc' will fail.
+	* builds/unix/unix-def.in (PYTHON, PIP, BIN): New variables.
+
+	* builds/freetype.mk (PYTHON, PIP, VENV_NAME, VENV_DIR, ENV_PYTHON,
+	ENV_PIP): New variables.
+	(refdoc): Updated.
+	(refdoc-venv): New target.
+	(.PHONY): Updated.
+
+2018-08-23  Werner Lemberg  <[email protected]>
+
+	Add macros for handling over-/underflowing `FT_Int64' values.
+
+	* include/freetype/internal/ftcalc.h (ADD_INT64, SUB_INT64,
+	MUL_INT64, DIV_INT64) [FT_LONG64]: New macros.
+
+	* src/base/ftcalc.c (ft_corner_orientation) [FT_LONG64]: Use
+	`SUB_INT64' and `MUL_INT64'.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10028
+
+2018-08-22  Werner Lemberg  <[email protected]>
+
+	[truetype] Improve legibility of `glyf' parsing.
+
+	* src/truetype/ttgload.c (ON_CURVE_POINT, X_SHORT_VECTOR,
+	Y_SHORT_VECTOR, REPEAT_FLAG, X_POSITIVE, SAME_X, Y_POSITIVE, SAME_Y,
+	OVERLAP_SIMPLE): New macros.
+	(TT_Load_Simple_Glyph): Use new macros to make code more readable.
+	Remove useless adjustment of `outline->tags' elements.
+
+2018-08-21  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/ttcpal.c (tt_face_load_cpal): Add missing safety check.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9981
+
+2018-08-18  Werner Lemberg  <[email protected]>
+
+	[psaux] Avoid slow PS font parsing in case of error.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9955
+
+	* src/psaux/psobjs.c (ps_parser_to_bytes): Set `parser->cursor' even
+	in case of error to avoid potential re-scanning.
+
+2018-08-18  Werner Lemberg  <[email protected]>
+
+	[cff] Fix heap buffer overflow in old engine.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9967
+
+	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
+	<cff_op_blend> [CFF_CONFIG_OPTION_OLD_ENGINE]: `num_designs' must be
+	non-zero.
+
+2018-08-16  Young Xiao  <[email protected]>
+
+	* builds/mac/ftmac.c (parse_fond): Fix buffer overrun.
+
+	Reported as bug #54515, duplicate of #43540.
+
+2018-08-16  Werner Lemberg  <[email protected]>
+
+	* builds/*/ftsystem.c (FT_COMPONENT): Updated also.
+
+2018-08-15  Alexei Podtelezhnikov  <[email protected]>
+
+	[bdf] Don't track duplicate encodings.
+
+	There is no harm except some umbiguity in broken fonts with duplicate
+	encodings.
+
+	* src/bdf/bdflib.c (_bdf_parse_glyphs): Remove duplicate tracking.
+	(_bdf_parse_t): Remove large `have' bitfield.
+
+2018-08-15  Werner Lemberg  <[email protected]>
+
+	Don't use `trace_' prefix for FT_COMPONENT arguments.
+
+	* include/freetype/internal/ftdebug.h (FT_TRACE_COMP,
+	FT_TRACE_COMP_): New auxiliary macros to add `trace_' prefix.
+	(FT_TRACE): Use `FT_TRACE_COMP'.
+
+	*/* (FT_COMPONENT): Updated.
+
+2018-08-14  Werner Lemberg  <[email protected]>
+
+	Use formatting string in FT_TRACEX calls for non-simple arguments.
+
+	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
+	<cff_op_hstem, cff_op_hintmask, cff_op_hlineto, cff_op_vhcurveto>:
+	Do it.
+
+	* src/psaux/pshints.c (cf2_hintmap_build): Ditto.
+
+	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
+	cf2_cmdVSTEM, cf2_cmdHLINETO, cf2_cmdRRCURVETO, cf2_cmdCALLSUBR,
+	cf2_escHSTEM3, cf2_cmdHINTMASK, cf2_cmdHVCURVETO>: Ditto.
+
+	* src/truetype/ttinterp.c (TT_RunIns): Ditto.
+
+2018-08-14  Alexei Podtelezhnikov  <[email protected]>
+
+	[bdf] Remove unused fields.
+
+	* src/bdf/bdf.h (bdf_font_t): Remove `nmod', `umod', and `modified',
+	which were set but never used.
+	* src/bdf/bdflib.c (_bdf_parse_{glyphs,properties}, bdf_load_font):
+	Updated accordingly.
+
+2018-08-14  Werner Lemberg  <[email protected]>
+
+	[cff] Fix another segv in old engine.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9872
+
+	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
+	[CFF_CONFIG_OPTION_OLD_ENGINE]: Disallow invalid T1 opcodes in
+	dictionaries.
+
+2018-08-14  Werner Lemberg  <[email protected]>
+
+	[cff] Fix missing error handling.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9865
+
+	* src/psaux/cffparse.c (cff_parser_run)
+	[CFF_CONFIG_OPTION_OLD_ENGINE]: Don't ignore return value of
+	`parse_charstrings_old'.
+
+2018-08-14  Alexei Podtelezhnikov  <[email protected]>
+
+	[bdf] Remove unused overflow storage.
+
+	* src/bdf/bdf.h (bdf_glyphlist_t): Remove this type.
+	(bdf_font_t): Remove `overflow' field.
+	* src/bdf/bdflib.c (bdf_free_font): Remove `overflow' freeing.
+
+2018-08-14  Werner Lemberg  <[email protected]>
+
+	[cff] Fix segv in old engine.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9864
+
+	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
+	<cff_op_random> [CFF_CONFIG_OPTION_OLD_ENGINE]: Use top dict's
+	`random' field directly if parsing dictionaries.
+
+2018-08-13  Alexei Podtelezhnikov  <[email protected]>
+
+	[bdf] Use unsigned types.
+
+	* src/bdf/bdf.h (bdf_glyph_t): Unsign `encoding'.
+	(bdf_font_t): Unsign `default_char'.
+	* src/bdf/bdfdrivr.h (BDF_encoding_el): Unsign `enc'.
+
+	* src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_glyphs,
+	_bdf_parse_start): Updated accordingly.
+	* src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Ditto.
+
+2018-08-13  Werner Lemberg  <[email protected]>
+
+	* src/type42/t42parse.c (t42_parse_sfnts): One more format check.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9832
+
+2018-08-11  Werner Lemberg  <[email protected]>
+
+	* src/base/ftcalc.c (FT_Matrix_Check): Fix integer overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9811
+
+2018-08-10  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Follow specs.
+
+2018-08-10  Ben Wagner  <[email protected]>
+
+	* src/sfnt/sfobjs.c (sfnt_done_face): Fix memory leak (#54435).
+
+2018-08-10  Werner Lemberg  <[email protected]>
+
+	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Improve tracing.
+
+2018-08-10  Werner Lemberg  <[email protected]>
+
+	Fix clang warnings.
+
+	* src/base/ftdebug.c (ft_trace_level_enabled,
+	ft_trace_level_disabled): Add `static' keyword.
+
+2018-08-09  Alexei Podtelezhnikov  <[email protected]>
+
+	[raster, smooth] Reinstate bitmap size limits.
+
+	This again moves outline and bitmap size checks one level up.
+
+	* src/base/ftoutln.c (FT_Outline_Render): Explicitly reject enormous
+	outlines.
+	* src/raster/ftrend1.c (ft_raster1_render): Reject enormous bitmaps
+	and, therefore, outlines that require them.
+	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
+
+	* src/raster/ftraster.c (ft_black_render): Remove outline size checks.
+	* src/smooth/ftgrays.c (gray_raster_render): Ditto.
+	[STANDALONE]: Remove `FT_Outline_Get_CBox' copy.
+
+2018-08-08  Alexei Podtelezhnikov  <[email protected]>
+
+	[pcf] Revert massive unsigning.
+
+2018-08-08  Werner Lemberg  <[email protected]>
+
+	[smooth] Improve tracing.
+
+	* src/smooth/ftgrays.c (gray_convert_glyph_inner): Only use tracing
+	if called the first time.
+	(gray_convert_glyph): Updated.
+
+2018-08-08  Werner Lemberg  <[email protected]>
+
+	Add internal functions `FT_Trace_Disable' and `FT_Trace_Enable'.
+
+	It sometimes makes sense to suppress tracing informations, for
+	example, if it outputs identical messages again and again.
+
+	* include/freetype/internal/ftdebug.h: Make `ft_trace_levels' a
+	pointer.
+	(FT_Trace_Disable, FT_Trace_Enable): New declarations.
+
+	* src/base/ftdebug.c (ft_trace_levels): Rename to...
+	(ft_trace_levels_enabled): ... this.
+	(ft_trace_levels_disabled): New array.
+	(ft_trace_levels): New pointer.
+	(FT_Trace_Disable, FT_Trace_Enable): Implement.
+	(ft_debug_init): Updated.
+
+2018-08-08  Werner Lemberg  <[email protected]>
+
+	Debugging improvements.
+
+	* src/base/ftobjs.c (pixel_modes): Move this array to top level
+	from ...
+	(FT_Load_Glyph): ... here.
+	(FT_Render_Glyph_Internal): Use `width' x `height' in trace message.
+	Use `pixel_modes'.
+
+2018-08-08  Alexei Podtelezhnikov  <[email protected]>
+
+	[pcf] Massive unsigning (part 2).
+
+	Treat all size related properties as unsigned values.
+
+	* src/pcf/pcf.h (PCF_ParsePropertyRec): Use unsigned `name' and
+	`value'.
+	* src/pcf/pcfread.c (pcf_get_properties, pcf_load_font): Updated
+	parsing code and handling of AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE,
+	RESOLUTION_X and RESOLUTION_Y.
+
+2018-08-08  Alexei Podtelezhnikov  <[email protected]>
+
+	[pcf] Massive unsigning (part 1).
+
+	Unofficial specifications hesitate to use unsigned 32-bit integers.
+	Negative values caused a lot of trouble in the past and it is safer
+	and easier to treat some properties as unsigned.
+
+	* src/pcf/pcf.h (PCF_AccelRec): Use unsigned values for `fontAscent',
+	`fontDescent', and `maxOverlap'.
+	* src/pcf/pcfread.c (pcf_load_font, pcf_get_accel): Updated.
+	* src/pcf/pcfdrivr.c (PCF_Glyph_Load, PCF_Size_Select,
+	PCF_Size_Request): Updated.
+
+2018-08-07  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/pcf/pcfread.c (pcf_get_bitmaps): Unsign `offsets' and
+	`bitmapSizes'.
+
+2018-08-06  Werner Lemberg  <[email protected]>
+
+	* devel/ftoption.h: Synchronize with main `ftoption.h'.
+
+2018-08-06  Alexei Podtelezhnikov  <[email protected]>
+
+	[pcf] Use unsigned types.
+
+	* src/pcf/pcf.h (PCF_Encoding): Use unsigned `enc'.
+	* src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Ditto.
+	* src/pcf/pcfread.c (pcf_get_encodings): Use unsigned types.
+
+2018-08-05  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttgload.c (compute_glyph_metrics): Fix overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/chromium/issues/detail?id=777151
+
+2018-08-04  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttinterp.c (opcode_name): Fix typos.
+
+2018-08-04  Werner Lemberg  <[email protected]>
+
+	Fix clang warnings.
+
+	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Fix type of
+	`orientation'.
+
+	* src/gxvalid/gxvcommn.c (gx_lookup_value_read): Fix signature.
+
+	* src/pcf/pcfread.c (pcf_get_encodings): Fix type of some variables.
+	Add cast.
+
+	* src/type1/t1load.c (parse_weight_vector): Fix cast.
+
+2018-07-31  Werner Lemberg  <[email protected]>
+
+	* src/cid/cidtoken.h: Handle `XUID' keyword.
+
+2018-07-31  Werner Lemberg  <[email protected]>
+
+	[cid] Trace PostScript dictionaries.
+
+	* src/cid/cidload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
+	(cid_load_keyword, cid_parse_font_matrix, parse_fd_array,
+	parse_expansion_factor, cid_parse_dict): Add tracing calls.
+	(parse_font_name): New function to trace `/FontName' keywords in
+	/FDArray dict.
+	(cid_field_records): Register `parse_font_name'.
+
+2018-07-30  Werner Lemberg  <[email protected]>
+
+	[cff] Fix typo.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9409
+
+	* src/cff/cffdrivr.c (cff_get_cid_from_glyph_index): Fix boundary
+	check.
+
+2018-07-29  Werner Lemberg  <[email protected]>
+
+	* src/pcf/pcfread.c (pcf_get_encodings): Another thinko.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9608
+
+2018-07-28  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Fix Harmony memory management.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9501
+
+	* src/smooth/ftgrays.c (ft_smooth_render_generic): Restore buffer
+	after each rendering in case of failure.
+
+2018-07-28  Werner Lemberg  <[email protected]>
+
+	[type1] Avoid segfaults with `FT_Get_PS_Font_Value'.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9610
+
+	* src/type1/t1driver.c (t1_ps_get_font_value): Protect against NULL.
+
+2018-07-27  Werner Lemberg  <[email protected]>
+
+	[truetype] Make `TT_Set_MM_Blend' idempotent (#54388).
+
+	* src/truetype/ttgxvar.c (tt_set_mm_blend): Correctly set
+	`face->doblend' if the current call to the function yields the same
+	blend coordinates as the previous call.
+
+2018-07-27  Werner Lemberg  <[email protected]>
+
+	[psaux, type1]: More tracing improvements.
+
+	* src/psaux/psintrp.c (cf2_interpT2CharString): Trace skipped
+	outline commands.
+
+	* src/psaux/t1decode.c (t1_decoder_parse_charstring): Fix
+	missing case.
+	(t1_decoder_parse_metrics): Make tracing output more compact.
+
+	* src/type1/t1gload.c (T1_Compute_Max_Advance): Be less verbose.
+	(T1_Get_Advances): Add tracing.
+
+2018-07-25  Werner Lemberg  <[email protected]>
+
+	[psaux, type1] Trace PostScript dictionaries and other things.
+
+	The tracing of /Encoding, /Subrs, and /Charstrings is rudimentary
+	right now.
+
+	* src/psaux/psobjs.c (ps_parser_load_field,
+	ps_parser_load_field_table): Add tracing calls.
+
+	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Make tracing
+	output more compact.
+
+	* src/type1/t1gload.c (T1_Compute_Max_Advance, T1_Get_Advances): Add
+	tracing messages.
+
+	* src/type1/t1load.c (parse_blend_axis_types,
+	parse_blend_design_positions, parse_blend_design_map,
+	parse_weight_vector, t1_load_keyword, t1_parse_font_matrix,
+	parse_encoding, parse_subrs, parse_charstrings, T1_Open_Face): Add
+	tracing calls.
+
+	* src/type1/t1objs.c (T1_Face_Init): Add tracing call.
+
+	* src/sfnt/sfobjs.c (sfnt_init_face): Make tracing message more
+	verbose.
+
+2018-07-25  Werner Lemberg  <[email protected]>
+
+	Fix minor ASAN run-time warnings.
+
+	* src/base/ftutil.c (ft_mem_alloc, ft_mem_realloc): Only call
+	`FT_MEM_ZERO' if we actually have a buffer.
+	(ft_mem_dup): Only call `ft_memcpy' if we actually have a buffer.
+
+2018-07-24  Alexei Podtelezhnikov  <[email protected]>
+
+	[build] Fortify dllexport/dllimport attributes (#53969,#54330).
+
+	We no longer use predefined _DLL, which can be defined for static
+	builds too with /MD. We use DLL_EXPORT and DLL_IMPORT instead,
+	following libtool convention.
+
+	* CMakeLists.txt [WIN32], builds/windows/vc2010/freetype.vcxproj:
+	Define DLL_EXPORT manually.
+
+	* include/freetype/config/ftconfig.h, builds/unix/ftconfig.in,
+	builds/vms/ftconfig.h, builds/windows/vc2010/index.html,
+	src/base/ftver.rc: /_DLL/d, s/FT2_DLLIMPORT/DLL_IMPORT/.
+
+2018-07-24  Werner Lemberg  <[email protected]>
+
+	[type1] Check relationship between number of axes and designs.
+
+	For Multiple Masters fonts we don't support intermediate designs;
+	this implies that
+
+	  number_of_designs == 2 ^^ number_of_axes
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9557
+
+	* src/type1/t1load.c (T1_Open_Face): Ensure above constraint.
+	(T1_Get_MM_Var): Remove now redundant test.
+
+2018-07-24  Hin-Tak Leung  <[email protected]>
+
+	[truetype] Match ttdebug's naming of instruction mnemonics.
+
+	* src/truetype/ttinterp.c: The form used in ttdebug,
+	"MDRP[G,B,W,?]", etc., is slightly more readable than
+	"MDRP[00,01,02,03]".
+
+2018-07-24  Werner Lemberg  <[email protected]>
+
+	* src/pcf/pcfread.c (pcf_get_encodings): Thinko.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9561
+
+2018-07-22  Werner Lemberg  <[email protected]>
+
+	* src/pcf/pcfread.c (pcf_get_encodings): Check index of defaultChar.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9527
+
+2018-07-22  Werner Lemberg  <[email protected]>
+
+	* src/pcf/pcfread.c (pcf_load_font): Fix number of glyphs.
+
+	This is an oversight of the module change 2018-07-21.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9524
+
+2018-07-22  Werner Lemberg  <[email protected]>
+
+	[cid] Sanitize `BlueShift' and `BlueFuzz'.
+
+	This code is taken from the type1 module.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9510
+
+	* src/cid/cidload.c (parse_fd_array): Set some private dict default
+	values.
+	(cid_face_open): Do the sanitizing.
+	Fix some tracing messages.
+
+2018-07-21  Werner Lemberg  <[email protected]>
+
+	[pcf] Fix handling of the undefined glyph.
+
+	This change makes the driver use the `defaultChar' property of PCF
+	files.
+
+	* src/pcf/pcf.h (PCF_FaceRec): Change type of `defaultChar' to
+	unsigned.
+
+	* src/pcf/pcfread.c (pcf_get_encodings): Read `defaultChar' as
+	unsigned.
+	Validate `defaultChar'.
+	If `defaultChar' doesn't point to glyph index zero, swap glyphs with
+	index zero and index `defaultChar' and adjust the encodings
+	accordingly.
+
+	* src/pcf/pcfdrivr.c (pcf_cmap_char_index, pcf_cmap_char_next,
+	PCF_Glyph_Load): Undo change from 2002-06-16 which always enforced
+	the first character in the font to be the default character.
+
+2018-07-20  Armin Hasitzka  <[email protected]>
+
+	Move the legacy fuzz target to the `freetype-testing' repository.
+
+	It can now be found at
+
+	  https://github.com/freetype/freetype2-testing/tree/master/fuzzing/src/legacy
+
+	* src/tools/ftfuzzer: Remove this folder and its contents from the
+	repository.
+
+2018-07-20  Werner Lemberg  <[email protected]>
+
+	[cff] Avoid left-shift of negative numbers (#54322).
+
+	* src/cff/cffgload.c (cff_slot_load): Use multiplication.
+
+2018-07-17  Werner Lemberg  <[email protected]>
+
+	Allow FT_ENCODING_NONE for `FT_Select_Charmap'.
+
+	This is a valid encoding tag for BDF, PCF, and Windows FNT, and
+	there is no reason to disallow it for these formats.
+
+	* src/base/ftobjs.c (FT_Select_Charmap): Implement it.
+
+2018-07-17  Werner Lemberg  <[email protected]>
+
+	* src/pcf/pcfread.c (pcf_get_encodings): Trace `defaultChar'.
+
+2018-07-16  Armin Hasitzka  <[email protected]>
+
+	* include/freetype/internal/ftcalc.h: Add macros for handling
+	harmless over-/underflowing `FT_Int' values.
+
+	* src/sfnt/sfdriver.c (fixed2float): Fix negation of
+	`(int)(-2147483648)'.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9423
+
+2018-07-16  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttgxvar.c (tt_set_mm_blend): Fix off-by-one error.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9412
+
+2018-07-12  Werner Lemberg  <[email protected]>
+
+	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Init `cbox'.
+
+	Taken from patch #9667, written by Steve Langasek
+	<[email protected]>.
+
+	This fixes a build failure (most probably a bug in gcc) on ppc64el
+	when building with -O3.
+
+2018-07-05  Werner Lemberg  <[email protected]>
+
+	Fix typo (#54238).
+
+	* src/base/ftcolor.c (FT_Palette_Set_Foreground_Color)
+	[!TT_CONFIG_OPTION_COLOR_LAYERS]: Add return value.
+
+2018-07-05  Werner Lemberg  <[email protected]>
+
+	Adjust table size comparisons (#54242).
+
+	* src/sfnt/ttcpal.c (tt_face_load_cpal): Implement it.
+
+2018-07-05  Werner Lemberg  <[email protected]>
+
+	Fix more 32bit issues (#54208).
+
+	* src/cff/cffload.c (cff_blend_build_vector): Convert assertion into
+	run-time error.
+
+	* src/truetype/ttgxvar.c (ft_var_to_normalized): Protect against
+	numeric overflow.
+
+2018-07-04  Werner Lemberg  <[email protected]>
+
+	Fix 32bit build warnings (#54239).
+
+	* src/base/ftbitmap.c (FT_Bitmap_Blend): Add casts to avoid signed
+	vs. unsigned comparisons.
+
+	* srb/sfnt/ttcolr.c (tt_face_get_colr_layer): Ditto.
+
+2018-07-02  Jeff Carey  <[email protected]>
+
+	* src/psnames/psmodule.c (ps_unicodes_init): Fix alloc debugging.
+
+2018-07-02  Werner Lemberg  <[email protected]>
+
+	s/palette_types/palette_flags/.
+
+	Suggested by Behdad.
+
+2018-07-02  Werner Lemberg  <[email protected]>
+
+	Make `FT_Get_Color_Glyph_Layer' return FT_Bool.
+
+	* include/freetype/freetype.h, src/base/ftobjs.c
+	(FT_Get_Color_Glyph_Layer, FT_Render_Glyph_Internal): Updated.
+
+	* include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func),
+	src/sfnt/ttcolr.h, src/sfnt/ttcolr.c (tt_face_get_colr_layer):
+	Updated.
+
+2018-07-01  Werner Lemberg  <[email protected]>
+
+	* src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Guard SFNT function.
+
+	Reported by Behdad.
+
+2018-06-28  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/fttrigon.c (FT_Tan): Improve accuracy.
+	(FT_Vector_Rotate): Simplify.
+
+2018-06-28  Alexei Podtelezhnikov  <[email protected]>
+
+	* src/base/ftobjs.c (FT_Set_Charmap): Robustify.
+
+2018-06-25  Werner Lemberg  <[email protected]>
+
+	[truetype] Fix memory leak.
+
+	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Add initializers.
+	Fix typo in `goto' destination.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9071
+
+2018-06-25  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttgxvar.c (tt_face_vary_cvt): Add initializers.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9070
+
+2018-06-24  Werner Lemberg  <[email protected]>
+
+	[truetype] Increase precision while applying VF deltas.
+
+	It turned out that we incorrectly round CVT and glyph point deltas
+	before accumulation, leading to severe positioning errors if there
+	are many delta values to sum up.
+
+	Problem reported by Akiem Helmling <[email protected]> and analyzed
+	by Behdad.
+
+	* src/truetype/ttgxvar.c (ft_var_readpackeddelta): Return deltas in
+	16.16 format.
+	(tt_face_var_cvt): Collect deltas in `cvt_deltas', which is a 16.16
+	format array, and add the accumulated values to the CVT at the end
+	of the function.
+	(TT_Vary_Apply_Glyph_Deltas): Store data in `points_org' and
+	`points_out' in 16.16 format.
+	Collect deltas in `point_deltas_x' and `point_deltas_y', which are
+	16.16 format arrays, and add the accumulated values to the glyph
+	coordinates at the end of the function.
+
+2018-06-24  Werner Lemberg  <[email protected]>
+
+	New base function `FT_Matrix_Check' (#54019).
+
+	* src/base/ftcalc.c (FT_Matrix_Check): New base function to properly
+	reject degenerate font matrices.
+
+	* include/freetype/internal/ftcalc.h: Updated.
+
+	* src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c
+	(cid_parse_font_matrix), src/type1/t1load.c (t1_parse_font_matrix),
+	src/type42/t42parse.c (t42_parse_font_matrix): Use
+	`FT_Matrix_Check'.
+
+2018-06-23  Werner Lemberg  <[email protected]>
+
+	Fix typo.
+
+	Reported by Behdad.
+
+	* src/base/ftcolor.c (FT_Palette_Data_Get)
+	[!TT_CONFIG_OPTION_COLOR_LAYERS]: s/apalette/apalette_data/.
+
+2018-06-21  Werner Lemberg  <[email protected]>
+
+	s/FT_PALETTE_USABLE_WITH_/FT_PALETTE_FOR_/.
+
+	* include/freetype/ftcolor.h, include/freetype/internal/sfnt.h,
+	src/sfnt/ttcolr.c: Do it.
+
+2018-06-19  Werner Lemberg  <[email protected]>
+
+	[sfnt] Fix CPAL heap buffer overflow.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8968
+
+	* src/sfnt/ttcpal.c (tt_face_load_cpal): Guard CPAL version 1
+	offsets.
+
+2018-06-19  Werner Lemberg  <[email protected]>
+
+	Doh.  Don't use CPAL or COLR data if tables are missing.
+
+	Reported by Alexei.
+
+	* src/sfnt/ttcolr.c (tt_face_get_colr_layer): Return immediately if
+	`colr' is NULL.
+
+	* src/sfnt/ttcpal.c (tt_face_palette_set): Return immediately, if
+	`cpal' is NULL.
+
+2018-06-17  Alexei Podtelezhnikov  <[email protected]>
+
+	[base] Introduce `FT_New_Glyph'.
+
+	This function facilitates access to full capabilities of FreeType
+	rendering engine for custom glyphs. This can be quite useful for
+	consistent rendering of mathematical and chemical formulas, e.g.
+
+	  https://bugs.chromium.org/p/chromium/issues/detail?id=757078
+
+	* include/freetype/ftglyph.h, src/base/ftglyph.c (FT_New_Glyph): New
+	function.
+
+2018-06-17  Armin Hasitzka  <[email protected]>
+
+	[bdf] Fix underflow of an unsigned value.
+
+	bdflib.c:1562 could be reached with `font->glyphs_used == 0'.  That
+	caused an underflow of the unsigned value which results in undefined
+	behaviour.
+
+	* src/bdf/bdflib.c (_bdf_parse_glyphs): Bail out earlier than before
+	if the `ENCODING' keyword cannot be found.
+
+2018-06-17  Werner Lemberg  <[email protected]>
+
+	[base] Add tracing for `FT_Bitmap_Blend'.
+
+	* include/freetype/internal/fttrace.h (trace_bitmap): New
+	enumeration.
+
+	* src/base/ftbitmap.c (FT_COMPONENT): Define.
+	(FT_Bitmap_Blend): Add `FT_TRACE5' calls.
+
+2018-06-17  Werner Lemberg  <[email protected]>
+
+	s/trace_bitmap/trace_checksum/.
+
+	* include/freetype/internal/fttrace.h: s/bitmap/checksum/.
+
+	* src/base/ftobjs.c (FT_COMPONENT): s/trace_bitmap/trace_checksum/.
+	Adjust code.
+
+2018-06-16  Werner Lemberg  <[email protected]>
+
+	[sfnt] Fix color glyph layer loading.
+
+	* src/sfnt/ttcolr.c (Colr): Add `table_size' field.
+	(tt_face_load_colr): Set it.
+	(tt_face_get_colr_layer): Check pointer limit for layer entries.
+
+2018-06-16  Werner Lemberg  <[email protected]>
+
+	[sfnt] Fix color palette loading.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8933
+
+	* src/sfnt/ttcpal.c (Cpal): Add `table_size' field.
+	(tt_face_load_cpal): Set it.
+	(tt_face_palette_set): Check pointer limit for color entries.
+
+2018-06-16  Werner Lemberg  <[email protected]>
+
+	* src/base/ftbitmap.c (FT_Bitmap_Blend): Avoid integer overflow.
+
+2018-06-16  Werner Lemberg  <[email protected]>
+
+	Add `FT_Bitmap_Blend' API.
+
+	Still missing: Support for negative bitmap pitch and subpixel offset
+	of source bitmap.
+
+	* include/freetype/ftbitmap.h, src/base/ftbitmap.c
+	(FT_Bitmap_Blend): New function.
+
+2018-06-14  Werner Lemberg  <[email protected]>
+
+	Replace `FT_Get_GlyphLayers' with `FT_Get_Color_Glyph_Layer'.
+
+	This avoids any additional allocation of COLR related structures in
+	a glyph slot.
+
+	* include/freetype/freetype.h (FT_Glyph_Layer, FT_Glyph_LayerRec,
+	FT_Get_GlyphLayers): Removed.
+
+	* include/freetype/internal/ftobjs.h (FT_Colr_InternalRec): Removed.
+	(FT_Slot_InternalRec): Remove `color_layers'.
+
+	* include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func):
+	Removed.
+	(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Remove
+	`load_colr_layer'.
+
+	* src/base/ftobjs.c (ft_glyph_slot_done): Updated.
+	(FT_Render_Glyph_Internal): Use `FT_Get_Color_Glyph_Layer'.
+	(FT_Get_GlyphLayers): Removed.
+
+	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
+
+	* src/sfnt/ttcolr.c (tt_face_load_colr_layers): Removed.
+	* src/sfnt/ttcolr.h: Updated.
+
+	* src/truetype/ttgload.c (TT_Load_Glyph): Updated.
+
+2018-06-14  Werner Lemberg  <[email protected]>
+
+	Provide iterative API to access `COLR' data.
+
+	This solution doesn't store any data in an `FT_GlyphSlot' object.
+
+	* include/freetype/freetype.h (FT_LayerIterator): New structure.
+	(FT_Get_Color_Glyph_Layer): New function.
+
+	* include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func): New
+	function type.
+	(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it.
+
+	* src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Implement it.
+
+	* src/sfnt/ttcolr.c (tt_face_get_colr_layer): New function.
+	* src/sfnt/ttcolr.h: Updated.
+
+	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
+
+2018-06-14  Werner Lemberg  <[email protected]>
+
+	Add glyph index and glyph load flags to glyph slot.
+
+	* include/freetype/freetype.h (FT_GlyphSlotRec): Rename unused
+	`reserved' field to `glyph_index'.
+
+	* include/freetype/internal/ftobjs.h (FT_Slot_InternalRec): Add
+	`load_flags' field.
+
+	* src/base/ftobjs.c (FT_Load_Glyph): Set new fields.
+
+2018-06-14  Werner Lemberg  <[email protected]>
+
+	[sfnt] Move `CPAL' stuff into separate files.
+
+	* src/sfnt/sfdriver.c: Include `ttcpal.h'.
+	* src/sfnt/sfnt.c: Include `ttcpal.c'.
+
+	* src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: Move CPAL stuff to ...
+	* src/sfnt/ttcpal.c, src/sfnt/ttcpal.c: ... these new files.
+
+	* src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC):
+	Updated.
+
+	* include/freetype/internal/fttrace.h: Add support for `colr' and
+	`cpal'.
+	Sort entries.
+
+2018-06-13  Werner Lemberg  <[email protected]>
+
+	[sfnt] Separate `CPAL' and `COLR' table handling.
+
+	Later on we want to support the `SVG' table also, which needs `CPAL'
+	(but not `COLR').
+
+	* include/freetype/internal/sfnt.h (SFNT_Interface): Add `load_cpal'
+	and `free_cpal' fields.
+	(FT_DEFINE_SFNT_INTERFACE): Updated.
+
+	* include/freetype/internal/tttypes.h (TT_FaceRec): Replace
+	`colr_and_cpal' fields with `cpal' and `colr'.
+
+	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
+
+	* src/sfnt/sfobjs.c (sfnt_load_face, sfnt_done_face): Updated.
+
+	* src/sfnt/ttcolr.c (Colr, Cpal): Add `table' field.
+	(ColrCpal): Removed.
+	(tt_face_load_colr): Split off CPAL handling into...
+	(tt_face_load_cpal): ... this new function.
+	(tt_face_free_colr): Split off CPAL handling into...
+	(tt_face_free_cpal): ... this new function.
+	(tt_face_load_colr_layers, tt_face_palette_set): Updated.
+
+	* src/sfnt/ttcolr.h: Updated.
+
+	* src/truetype/ttgload.c (TT_Load_Glyph): Updated.
+
+2018-06-12  Werner Lemberg  <[email protected]>
+
+	[sfnt] Fix `sizeof' thinko.
+
+	* src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_palette_set): Don't
+	use `sizeof' for computing array limit.
+
+2018-06-12  Werner Lemberg  <[email protected]>
+
+	Finish CPAL/COLR support (4/4).
+
+	* src/sfnt/ttcolr.c (tt_face_find_color): Removed.
+	(tt_face_colr_blend_layer): Use `face->palette' instead of calling
+	`tt_face_find_color'.
+	Use and set text foreground color.
+
+2018-06-12  Werner Lemberg  <[email protected]>
+
+	Finish CPAL/COLR support (3/4).
+
+	* src/base/ftcolor.c: Include FT_INTERNAL_SFNT_H.
+	(FT_Palette_Select, FT_Palette_Set_Foreground_Color): Implement
+	functions.
+
+2018-06-12  Werner Lemberg  <[email protected]>
+
+	Finish CPAL/COLR support (2/4).
+
+	* src/sfnt/ttcolr.c (tt_face_palette_set): New function.
+	(tt_face_load_colr): Allocate `face->palette' and call
+	`tt_face_palette_set'.
+	Adjust return error code in case of error.
+
+	* src/sfnt/ttcolr.h: Updated.
+
+	* include/freetype/internal/sfnt.h (TT_Set_Palette_Func): New
+	function type.
+	(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it.
+
+	* src/sfnt/sfdriver.c (sfnt_interface), src/sfnt/sfobjs.c
+	(sfnt_done_face): Updated.
+
+2018-06-12  Werner Lemberg  <[email protected]>
+
+	Finish CPAL/COLR support (1/4).
+
+	* include/freetype/internal/tttypes.h (TT_FaceRec): New fields
+	`palette_index', `palette', `have_foreground_color' and
+	`foreground_color'.
+
+2018-06-12  Werner Lemberg  <[email protected]>
+
+	[sfnt] Minor.
+
+	* src/sfnt/ttcolr.c (tt_face_load_colr_layers):
+	s/palette_index/palette_entry_index/ for consistency.
+	Adjust return error code in case of error.
+
+2018-06-11  Alexei Podtelezhnikov  <[email protected]>
+
+	[raster] Clean up.
+
+	* src/raster/ftraster.c (black_TWorker, SCALED, Set_High_Precision):
+	Clean up after 5-level gray removal (8dc8635874).
+	(Vertical_Sweep_Span): Be brief.
+
+2018-06-10  Werner Lemberg  <[email protected]>
+
+	[sfnt] Fix compiler warnings.
+
+	* src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_load_colr_layers,
+	tt_face_colr_blend_layer): Add `NULL' initializers.
+
+2018-06-10  Werner Lemberg  <[email protected]>
+
+	s/FT_Palette/FT_Palette_Data/, s/palette/palette_data/.
+
+	* include/freetype/ftcolor.h, include/freetype/internal/tttypes.h,
+	src/base/ftcolor.c, src/sfnt/sfobjs.c, src/sfnt/ttcolr.c: Updated.
+
+2018-06-10  Nikolaus Waxweiler  <[email protected]>
+
+	CMakeLists: also accept IOS_PLATFORM=SIMULATOR64
+
+	This might be needed to build FreeType for the iOS simulator. See
+	https://savannah.nongnu.org/bugs/index.php?54048. Patch contributed
+	by Steve Robinson.
+
+	* CMakeLists.txt: Accept IOS_PLATFORM=SIMULATOR64
+
+2018-06-10  Werner Lemberg  <[email protected]>
+
+	Implement `FT_Palette_Get'.
+
+	* src/base/ftcolor.c: New file.
+
+	* src/base/Jamefile (_sources), src/base/rules.mk (BASE_SRC),
+	src/base/ftbase.c: Add `ftcolor.c'.
+
+2018-06-10  Werner Lemberg  <[email protected]>
+
+	* src/sfnt/ttcolr.c (tt_face_load_colr): Improve overflow checks.
+
+2018-06-09  Alexei Podtelezhnikov  <[email protected]>
+
+	[raster] Deal with pitch sign earlier.
+
+	* src/raster/ftraster.c (black_TWorker): Remove unused `traceG',
+	s/bTarget/bOrigin/.
+	(Render_Glyph): Set `ras.bOrigin' at the bottom-left corner.
+	(Vertical_Sweep_Init, {Vertical,Horizontal}_Sweep_{Span,Drop}):
+	Updated accordingly.
+
+2018-06-09  Werner Lemberg  <[email protected]>
+
+	[sfnt] Read `CPAL' version 1 tables.
+
+	* include/freetype/internal.tttypes.h: Include FT_COLOR_H.
+	(TT_FaceRec): Add `palette' field.
+
+	* src/sfnt/ttcolr.c: Include FT_COLOR_H.
+	(Cpal): Remove all data covered by the new `palette' field in
+	`TT_FaceRec'.
+	(tt_face_load_colr): Updated.
+	Read `CPAL' version 1 data.
+	(tt_face_load_colr_layers, tt_face_find_color): Updated.
+
+	* src/sfnt/sfobjs.c (sfnt_done_face): Free glyph color palette data.
+
+2018-06-07  Alexei Podtelezhnikov  <[email protected]>
+
+	[base] API for Harmony LCD rendering.
+
+	This introduces `FT_Library_SetLcdGeometry' for setting up arbitrary
+	LCD subpixel geometry including non-striped patterns.
+
+	* src/base/ftlcdfil.c (FT_Library_SetLcdGeometry): New function.
+	* include/freetype/ftlcdfil.h: Document it.
+	* include/freetype/freetype.h: Minor.
+	* include/freetype/ftchapters.h: Minor.
+
+2018-06-06  Werner Lemberg  <[email protected]>
+
+	ftcolor.h: Redesign API.
+
+	While going to implement it I noticed that I need access to most of
+	the `CPAL' elements; I thus plan to add a `cpal' field to
+	`TT_FaceRec', which makes most of the previously suggested API
+	functions obsolete because the fields will be directly accessible.
+
+2018-06-06  Parth Wazurkar  <[email protected]>
+
+	[bdf, pcf] Remove deprecated FT_FACE_FLAG_FAST_GLYPHS flag.
+
+	* src/bdf/bdfdrivr.c (BDF_Face_Init): Remove deprecated
+	FT_FACE_FLAG_FAST_GLYPHS flag.
+
+	* src/pcf/pcfread.c (pcf_load_font): Remove deprecated
+	FT_FACE_FLAG_FAST_GLYPHS flag.
+
+2018-06-06  Werner Lemberg  <[email protected]>
+
+	[smooth, raster] Limit bitmap size (#54019).
+
+	* src/raster/ftraster.c [STANDALONE] (FT_Outline_Get_CBox): Add
+	function.
+	[!STANDALONE]: Include FT_OUTLINE_H.
+	(ft_black_render): Compute CBox and reject glyphs larger than
+	0xFFFF x 0xFFFF.
+
+	* src/smooth/ftgrays.c (gray_raster_render): Reject glyphs larger
+	than 0xFFFF x 0xFFFF.
+
+2018-06-03  Armin Hasitzka  <[email protected]>
+
+	* src/smooth/ftgrays.c (gray_convert_glyph): Remove unused variables.
+
+2018-06-03  Werner Lemberg  <[email protected]>
+
+	* src/tools/glnames.py (main): Emit header in `light' comment style.
+
+2018-06-02  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Attempt to mitigate bug #54019.
+
+	The robust rendering of estra large glyphs came with unbearable cost.
+	The old way of bisecting should fail but fail faster.
+
+	* src/smooth/ftgrays.c (gray_convert_glyph): Switch back to bisecting
+	in y-direction.
+
+2018-06-02  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttinterp.c (Ins_MIRP): Use SUB_LONG; avoid FT_ABS.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8706
+
+2018-06-02  Werner Lemberg  <[email protected]>
+
+	* src/autofit/afwarp.h: Use AF_CONFIG_OPTION_USE_WARPER (#54033).
+
+2018-05-31  Werner Lemberg  <[email protected]>
+
+	* src/raster/ftraster.c (black_TWorker_): Remove `gTarget' field.
+
+	This is no longer used.
+
+2018-05-31  Werner Lemberg  <[email protected]>
+
+	[sfnt] Get colors from `CPAL' table in right order (#54015).
+
+	* src/sfnt/ttcolr.c (tt_face_find_color): Fix it.
+
+2018-05-30  Werner Lemberg  <[email protected]>
+
+	ftcolor.h: Improve API design, fix typos (#54011, #54014).
+
+	* include/freetype/ftcolor.h (FT_Palette_Get_Names): Replace with...
+	(FT_Palette_Get_Name_IDs): ... this function.
+	(FT_Palette_Get_Entry_Names): Replace with...
+	(FT_Palette_Get_Entry_Name_IDs): ... this function
+	s/FT_Palette_Set_Foreground_COlor/FT_Palette_Set_Foreground_Color/.
+
+2018-05-30  Armin Hasitzka  <[email protected]>
+
+	Beautify a3cfed5e87232c933bdc64f43e8ebebcfd18b41b.
+
+	* src/autofit/afloader.c (af_loader_load_glyph): Move the
+	initialisationand declaration of variables into the if-block.
+
+2018-05-30  Armin Hasitzka  <[email protected]>
+
+	Fix pointer underflow.
+
+	The declaration of `edge2' can be reached with `edge1 == NULL' and
+	`axis->edges == 0' which results in undefined behaviour.
+
+	* src/autofit/afloader.c (af_loader_load_glyph): Initialise `edge2'
+	after checking `axis->num_edges > 1'.  `edge1 != NULL' can be assumed.
+
+2018-05-30  Werner Lemberg  <[email protected]>
+
+	Various minor color fixes.
+
+	* include/freetype/config/ftheader.h (FT_COLOR_H): New macro.
+
+	* include/freetype/internal/ftobjs.h (FT_Colr_Internal): Change
+	type of `load_flags' to `FT_Int32'.
+
+	* include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func): Change
+	type of `idx' to `FT_UInt'.
+	(TT_Blend_Colr_Func): Change type of `color_index' to `FT_UInt'.
+
+	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Change type of
+	`load_flags' to `FT_Int32'.
+
+	* src/sfnt/ttcolr.c (find_base_glyph_record,
+	tt_face_load_colr_layers): Change type of `glyph_id' to `FT_UInt'.
+	(tt_face_find_color, tt_face_colr_blend_layer): Change type of
+	`color_index' to `FT_UInt'.
+	Fix signedness and type issues.
+
+	* src/sfnt/ttcolr.h: Updated.
+
+2018-05-25  Nikhil Ramakrishnan  <[email protected]>
+
+	[docmaker] Fix missing `Defined in (...)' under Windows/Cygwin.
+
+	This platform uses backslashes for paths, which docmaker didn't
+	understand correctly.
+
+	* src/tools/docmaker/tohtml.py (HtmlFormatter::blockEnter): Use
+	`os.path.normpath' to normalize the path for the platform being
+	used.
+
+2018-05-24  Alexei Podtelezhnikov  <[email protected]>
+
+	[smooth] Formalize Harmony LCD rendering.
+
+	This generalizes magic outline shifts that make Harmony LCD
+	rendering work in terms of precise two-dimensional RGB subpixel
+	positions. These coordinates are now set in time of the `smooth'
+	module initialization and later used to shift a glyph outline for
+	rendering. FT_RENDER_MODE_LCD and FT_RENDER_MODE_LCD_V use the same
+	coordinates. The letter, however, rotates them before using.
+	The LCD bitmap padding is also calculated using these coordinates.
+
+	* include/freetype/internal/ftobjs.h (FT_LibraryRec): New array field
+	`lcd_geometry'.
+	* src/base/ftlcdfil.c (ft_lcd_padding): Reworked.
+	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Updated accordingly.
+
+	* src/smooth/ftsmooth.c [!FT_CONFIG_OPTION_SUBPIXEL_RENDERING]
+	(ft_smooth_init): Initialize `lcd_geometry'.
+	(ft_smooth_render_generic): Formalize outline shifts.
+
+2018-05-22  Werner Lemberg  <[email protected]>
+
+	[truetype] Reject elements of composites with invalid glyph indices.
+
+	Reported as
+
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8413
+
+	* src/truetype/ttgload.c (TT_Load_Composite_Glyph): Implement it.
+
+2018-05-22  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Trace # of points.
+
+2018-05-20  Werner Lemberg  <[email protected]>
+
+	* include/freetype/ftcolor.h: New file.
+
+	This is an interface to the `CPAL' OpenType table.  No
+	implementation yet.
+
+2018-05-18  Alexei Podtelezhnikov  <[email protected]>
+
+	* include/freetype/internal/ftcalc.h (FT_MSB): Verified `_MSC_VER'.
+
+	Actually `_BitScanReverse' is available since VS2005.
+
+2018-05-18  Werner Lemberg  <[email protected]>
+
+	* include/freetype/internal/ftcalc.h (FT_MSB): Use `_MSC_VER' value.
+
+	Older VC versions don't provide `_BitScanReverse'.  We test for VC
+	2013.
+
+	Reported by John Emmas <[email protected]>.
+
+2018-05-17  Werner Lemberg  <[email protected]>
+
+	s/inline/__inline/ for MSVC.
+
+	Reported by John Emmas <[email protected]>.
+
+	* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Do it.
+
+2018-05-16  Werner Lemberg  <[email protected]>
+
+	Add function `FT_Get_GlyphLayers' to access `COLR' table data.
+
+	* include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec): Move this
+	structure to...
+	* include/freetype/freetype.h (FT_Glyph_LayerRec): ... this
+	header file.
+	(FT_Glyph_Layer): New typedef.
+	Update code to use it where appropriate.
+
+	* src/base/ftobjs.c (FT_Get_GlyphLayers): New function.
+
+2018-05-15  Alexei Podtelezhnikov  <[email protected]>
+
+	[base] Fix mono bitmap presetting (#53896).
+
+	It is rather fundamental to set monochrome bitmap based on rounded
+	CBox because the b/w rasterizer turns on pixels when their centers are
+	inside the glyph outline. The dropout control is unpredictable and can
+	distort narrow glyphs if the bitmap is too wide.
+
+	Reported by Chris Liddell.
+
+	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): If BBox boundaries
+	are too close, adjust them before rounding.
+
+2018-05-15  Werner Lemberg  <[email protected]>
+
+	[psaux] Fix compiler warning (#53915).
+
+	* src/psaux/psft.c (cf2_freeT1SeacComponent): Do it.
+
+2018-05-15  Werner Lemberg  <[email protected]>
+
+	[sfnt] Fix memory leak in handling `COLR' data.
+
+	* src/truetype/ttgload.c (TT_Load_Glyph): Free old `layers' array
+	before reassigning allocated memory.
+	Only allocate `color_layers' if we don't have one already.
+
+2018-05-15  Werner Lemberg  <[email protected]>
+
+	[sfnt] If `COLR' is present, don't assume that all glyphs use it.
+
+	* src/sfnt/ttcolr.c (tt_face_load_colr_layers): Return FT_Err_Ok if
+	current glyph is not a `COLR' base glyph.
+
+	* src/truetype/ttgload.c (TT_Load_Glyph): Don't allocate
+	`color_layers' if there are no color layers.
+
+2018-05-14  Werner Lemberg  <[email protected]>
+
+	* src/base/ftobjs.c (FT_Load_Glyph): Fix signature of `pixel_modes'.
+
+2018-05-14  Werner Lemberg  <[email protected]>
+
+	Provide dummy functions if `TT_CONFIG_OPTION_SFNT_NAMES' is not set.
+
+	* src/base/ftsnames.c [!TT_CONFIG_OPTION_SFNT_NAMES]: Implement it.
+
+2018-05-13  Werner Lemberg  <[email protected]>
+
+	* src/base/ftobjs.c (FT_Load_Glyph): Improve tracing.
+
+2018-05-13  Shao Yu Zhang  <[email protected]>
+	    Werner Lemberg  <[email protected]>
+
+	[sfnt] Preliminary support of colored layer outlines (#44689).
+
+	This commit enables OpenType's COLR/CPAL table handling; a typical
+	application are color emojis that can be scaled to any size.
+
+	If the color palette does not exist or is invalid, the rendering
+	step rasterizes the outline instead.  The current implementation
+	assumes that the foreground is black.
+
+	Enable this by defining option TT_CONFIG_OPTION_COLOR_LAYERS.
+
+	There are still some issues with metrics; additionally, an API to
+	fetch color layers is missing.
+
+	* devel/ftoption.h, include/freetype/config/ftoption.h
+	(TT_CONFIG_OPTION_COLOR_LAYERS): New macro.
+
+	* include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec,
+	FT_Colr_InternalRec): New structures.
+	(FT_Slot_InternalRec): Add `color_layers' field.
+
+	* include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func,
+	TT_Blend_Colr_Func): New function types.
+	(SFNT_Interface): Add `load_colr', `free_colr', `load_colr_layer',
+	and `colr_blend' fields.
+
+	* include/freetype/internal/tttypes.h (TT_FaceRec): Add
+	`colr_and_cpal' field.
+
+	* include/freetype/internal/tttags. (TTAG_COLR, TTAG_CPAL): New
+	macros.
+
+	* src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: New files.
+
+	* src/base/ftobjs.c (ft_glyphslot_done, FT_Render_Glyph_Internal):
+	Handle glyph color layers.
+
+	* src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC): Add
+	`ttcolr.c'.
+
+	* src/sfnt/sfdriver.c: Include `ttcolr.h'.
+	(PUT_COLOR_LAYERS): New macro.
+	Update call to `FT_DEFINE_SFNT_INTERFACE'.
+
+	* src/sfnt/sfnt.c: Include `ttcolr.c'.
+
+	* src/sfnt/sfobjs.c (sfnt_load_face): Load `COLR' and `CPAL' tables.
+	(sfnt_done_face): Updated.
+
+	* src/truetype/ttgload.c (TT_Load_Glyph): Handle color layers.
+
+2018-05-12  Arkady Shapkin  <[email protected]>
+
+	Use MS VC++'s _BitScanReverse to calculate MSB (patch #9636).
+
+	* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Implement
+	it.
+
+2018-05-10  Alan Coopersmith  <[email protected]>
+
+	Fix DLL compilation on Solaris.
+
+	AC_COMPILE_IFELSE only tries to compile a `*.c' to a `*.o'.  The
+	Solaris Studio 12.1 through 12.5 compilers see the
+	`-fvisibility=hidden' flag, but ignore it with a warning of:
+
+	  cc: Warning: Option -fvisibility=hidden passed to ld,
+	               if ld is invoked, ignored otherwise
+
+	AC_LINK_IFELSE does the compile and then tries to link the result,
+	at which point the Solaris linker will issue an error:
+
+	  ld: fatal: option '-fvisibility=hidden' is incompatible with
+	      building a dynamic executable
+
+	If we don't use AC_LINK_IFELSE to catch the error, then configure
+	will fail further tests which attempt to link, such as those testing
+	dependencies like `libbz2'.
+
+	Also, don't try adding `-fvisibility' if we have already added
+	`-xldscope', just use one of them, since Sun Studio 12 and earlier
+	compilers only issue a warning, and don't try passing through to the
+	linker to generate an error, so AC_LINK_IFELSE doesn't catch them.
+
+	Tested on Solaris 11.4 beta with compiler versions:
+
+	  Sun Studio 8 (Sun C 5.5)
+	  Sun Studio 10 (Sun C 5.7)
+	  Sun Studio 11 (Sun C 5.8)
+	  Sun Studio 12 (Sun C 5.9)
+	  Sun Studio 12.1 (Sun C 5.10)
+	  Oracle Solaris Studio 12.2 (Sun C 5.11)
+	  Oracle Solaris Studio 12.3 (Sun C 5.12)
+	  Oracle Solaris Studio 12.4 (Sun C 5.13)
+	  Oracle Developer Studio 12.5 (Sun C 5.14)
+	  Oracle Developer Studio 12.6 (Sun C 5.15)
+	  gcc 5.5.0
+	  gcc 7.3.0
+
+	and verified the libfreetype.so.6 generated by each of those
+	compilers exported the same set of symbols.
+
+	* builds/unix/configure.raw: Implement it.
+
+2018-05-08  Werner Lemberg  <[email protected]>
+
+	[autofit] Avoid potential SEGV if running out of memory.
+
+	Problem reported by Shailesh Mistry <[email protected]>.
+
+	* src/autofit/afshaper.c (af_shaper_buf_create,
+	af_shaper_buf_destroy) [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Don't
+	allocate and free a four-byte buffer.  Instead, make those functions
+	no-ops; the calling functions will provide a pointer to a buffer
+	instead.
+
+	* src/autofit/afcjk.c (af_cjk_metrics_init_widths,
+	af_cjk_metrics_init_blues, af_cjk_metrics_check_digits),
+	src/autofit/aflatin.c (af_latin_metrics_init_widths,
+	af_latin_metrics_init_blues, af_latin_metrics_check_digits)
+	[!FT_CONFIG_OPTION_USE_HARFBUZZ]: Use pointer to local variable for
+	`shaper_buf'.
+
+2018-05-07  Nikolaus Waxweiler  <[email protected]>
+
+	[cmake] Allow using project as subfolder in other project.
+
+	* CMakeLists.txt: Test for CMake build directory being different
+	from source directory.  Provide other parts of the build system
+	access the full include directory.
+
+2018-05-07  Werner Lemberg  <[email protected]>
+
+	[build] Suppress configure's `nothing to be done' message.
+
+	This is due to calling the configure script via `make' (within the
+	top-level `configure' wrapper script).  The same can happen for all
+	other secondary make targets that are used to only modify the
+	primary one, e.g., `make setup devel'.
+
+	* builds/dos/detect.mk (emx, turboc, watcom, borlandc, borlandc16),
+	builds/os2/detect (visualage, watcom, borlandc, devel),
+	builds/unix/detect.mk (devel, lcc, unix), builds/windows/detect.mk
+	(visualc, watcom, visualage, lcc, mingw32, bcc32, devel-bcc,
+	devel-gcc): Use no-op recipe.
+
+2018-05-04  suzuki toshiya  <[email protected]>
+
+	Support symbol visibility features of Sun / Oracle C compilers.
+
+	Reported by Kiyoshi Kanazawa:
+	https://lists.gnu.org/archive/html/freetype-devel/2018-05/msg00008.html
+	Thanks to the suggestions by Alexei and Alan Coopersmith.
+
+	* builds/unix/configure.raw: Check if "-xldscope=hidden" is
+	accepted, and if so, it is added to CFLAGS.  This is the option
+	making Sun / Oracle C compilers hide the symbols from global
+	scope.
+	* include/freetype/config/ftconfig.h: Use "__global" prefix
+	for FT_EXPORT() macro, if SunPro C is newer than Sun ONE
+	Studio 8 (2003).
+	* builds/unix/ftconfig.in: Ditto.
+	* builds/vms/ftconfig.h: Ditto.
+
+2018-05-02  Nikolaus Waxweiler  <[email protected]>
+
+	Unbreak CMake Windows installation
+
+	* CMakeLists.txt: Generate ftconfig.h on non-UNIX.
+
+2018-05-02  Werner Lemberg  <[email protected]>
+
+	Remove FT_CONFIG_OPTION_PIC and related code.
+
+	*/* [FT_CONFIG_OPTION_PIC]: Remove all code guarded by this
+	preprocessor symbol.
+
+	*/*: Replace `XXX_GET' macros (which could be either a function in
+	PIC mode or an array in non-PIC mode) with `xxx' arrays.
+
+	* include/freetype/internal/ftpic.h, src/autofit/afpic.c,
+	src/autofit/afpic.h, src/base/basepic.c, src/base/basepic.h,
+	src/base/ftpic.c, src/cff/cffpic.c, src/cff/cffpic.h,
+	src/pshinter/pshpic.c, src/pshinter/pshpic.h, src/psnames/pspic.c,
+	src/psnames/pspic.h, src/raster/rastpic.c, src/raster/rastpic.h,
+	src/sfnt/sfntpic.c, src/sfnt/sfntpic.h, src/smooth/ftspic.c,
+	src/smooth/ftspic.h, src/truetype/ttpic.c, src/truetype/ttpic.h:
+	Removed.
+
+
+----------------------------------------------------------------------------
+
+Copyright (C) 2018-2021 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: