texlive[61211] Build/source/libs: freetype 2.11.1

commits+kakuto at tug.org commits+kakuto at tug.org
Fri Dec 3 05:03:12 CET 2021


Revision: 61211
          http://tug.org/svn/texlive?view=revision&revision=61211
Author:   kakuto
Date:     2021-12-03 05:03:12 +0100 (Fri, 03 Dec 2021)
Log Message:
-----------
freetype 2.11.1

Modified Paths:
--------------
    trunk/Build/source/libs/README
    trunk/Build/source/libs/freetype2/ChangeLog
    trunk/Build/source/libs/freetype2/TLpatches/ChangeLog
    trunk/Build/source/libs/freetype2/TLpatches/TL-Changes
    trunk/Build/source/libs/freetype2/configure
    trunk/Build/source/libs/freetype2/freetype-src/CMakeLists.txt
    trunk/Build/source/libs/freetype2/freetype-src/ChangeLog
    trunk/Build/source/libs/freetype2/freetype-src/README
    trunk/Build/source/libs/freetype2/freetype-src/README.git
    trunk/Build/source/libs/freetype2/freetype-src/autogen.sh
    trunk/Build/source/libs/freetype2/freetype-src/builds/amiga/src/base/ftsystem.c
    trunk/Build/source/libs/freetype2/freetype-src/builds/mac/ftmac.c
    trunk/Build/source/libs/freetype2/freetype-src/builds/toplevel.mk
    trunk/Build/source/libs/freetype2/freetype-src/builds/unix/aclocal.m4
    trunk/Build/source/libs/freetype2/freetype-src/builds/unix/config.sub
    trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure
    trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure.ac
    trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure.raw
    trunk/Build/source/libs/freetype2/freetype-src/builds/unix/ftconfig.h.in
    trunk/Build/source/libs/freetype2/freetype-src/builds/unix/ftsystem.c
    trunk/Build/source/libs/freetype2/freetype-src/builds/vms/ftsystem.c
    trunk/Build/source/libs/freetype2/freetype-src/builds/wince/ftdebug.c
    trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/index.html
    trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/index.html
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/ftdebug.c
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/ftsystem.c
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.sln
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj.filters
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/index.html
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.dsp
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.vcproj
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/index.html
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/index.html
    trunk/Build/source/libs/freetype2/freetype-src/configure
    trunk/Build/source/libs/freetype2/freetype-src/docs/CHANGES
    trunk/Build/source/libs/freetype2/freetype-src/docs/DOCGUIDE
    trunk/Build/source/libs/freetype2/freetype-src/docs/INSTALL
    trunk/Build/source/libs/freetype2/freetype-src/docs/VERSIONS.TXT
    trunk/Build/source/libs/freetype2/freetype-src/docs/formats.txt
    trunk/Build/source/libs/freetype2/freetype-src/docs/freetype-config.1
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/404.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-auto_hinter.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-base_interface.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-basic_types.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bdf_fonts.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bitmap_handling.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bzip2.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cache_subsystem.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cff_driver.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cid_fonts.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-color_management.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-computations.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-debugging_apis.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-error_code_values.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-error_enumerations.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-font_formats.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gasp_table.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_management.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_stroker.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_variants.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gx_validation.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gzip.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-header_file_macros.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-header_inclusion.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-incremental.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-index.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-layer_management.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-lcd_rendering.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-list_processing.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-lzw.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-mac_specific.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-module_management.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-multiple_masters.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-ot_validation.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-outline_processing.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-parameter_tags.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-pcf_driver.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-pfr_fonts.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-preamble.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-properties.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-quick_advance.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-raster.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-sfnt_names.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-sizes_management.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-system_interface.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-t1_cid_driver.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-truetype_engine.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-truetype_tables.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-tt_driver.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-type1_tables.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-user_allocation.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-version.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-winfnt_fonts.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/index.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/search/search_index.json
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/sitemap.xml
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/sitemap.xml.gz
    trunk/Build/source/libs/freetype2/freetype-src/docs/release
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftstdlib.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/config/integer-types.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/config/public-macros.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/freetype.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftcolor.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftglyph.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftimage.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftlcdfil.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftmodapi.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/fttypes.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftwinfnt.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftcalc.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftdebug.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftgloadr.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftmemory.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftobjs.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftstream.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/sfnt.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/tttypes.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/wofftypes.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/t1tables.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ttnameid.h
    trunk/Build/source/libs/freetype2/freetype-src/meson.build
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afglobal.c
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afhints.c
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aflatin.c
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aftypes.h
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/rules.mk
    trunk/Build/source/libs/freetype2/freetype-src/src/base/ftbitmap.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/ftcalc.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/ftdbgmem.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/ftdebug.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/ftglyph.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/ftmac.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/ftobjs.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/ftstream.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/fttrigon.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/ftver.rc
    trunk/Build/source/libs/freetype2/freetype-src/src/bdf/bdfdrivr.c
    trunk/Build/source/libs/freetype2/freetype-src/src/bdf/bdflib.c
    trunk/Build/source/libs/freetype2/freetype-src/src/bzip2/ftbzip2.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftccache.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftccache.h
    trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftccmap.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftcmanag.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftcmru.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftcsbits.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffdrivr.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffgload.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffload.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffobjs.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cid/cidgload.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cid/cidload.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cid/cidload.h
    trunk/Build/source/libs/freetype2/freetype-src/src/cid/cidobjs.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cid/cidparse.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cid/cidparse.h
    trunk/Build/source/libs/freetype2/freetype-src/src/dlg/dlgwrap.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvcommn.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvcommn.h
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvfeat.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvjust.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvkern.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvmod.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvmort.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvmort2.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvmort5.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvmorx.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvmorx2.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvopbd.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvprop.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvtrak.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gzip/ftgzip.c
    trunk/Build/source/libs/freetype2/freetype-src/src/lzw/ftlzw.c
    trunk/Build/source/libs/freetype2/freetype-src/src/otvalid/otvcommn.h
    trunk/Build/source/libs/freetype2/freetype-src/src/otvalid/otvmath.c
    trunk/Build/source/libs/freetype2/freetype-src/src/otvalid/otvmod.c
    trunk/Build/source/libs/freetype2/freetype-src/src/pcf/pcfread.c
    trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrobjs.c
    trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrtypes.h
    trunk/Build/source/libs/freetype2/freetype-src/src/psaux/cffdecode.c
    trunk/Build/source/libs/freetype2/freetype-src/src/psaux/psft.c
    trunk/Build/source/libs/freetype2/freetype-src/src/psaux/psintrp.c
    trunk/Build/source/libs/freetype2/freetype-src/src/psaux/psintrp.h
    trunk/Build/source/libs/freetype2/freetype-src/src/psaux/psstack.c
    trunk/Build/source/libs/freetype2/freetype-src/src/psaux/t1decode.c
    trunk/Build/source/libs/freetype2/freetype-src/src/pshinter/pshalgo.c
    trunk/Build/source/libs/freetype2/freetype-src/src/pshinter/pshalgo.h
    trunk/Build/source/libs/freetype2/freetype-src/src/pshinter/pshrec.c
    trunk/Build/source/libs/freetype2/freetype-src/src/psnames/psmodule.c
    trunk/Build/source/libs/freetype2/freetype-src/src/raster/ftmisc.h
    trunk/Build/source/libs/freetype2/freetype-src/src/raster/ftraster.c
    trunk/Build/source/libs/freetype2/freetype-src/src/sdf/ftbsdf.c
    trunk/Build/source/libs/freetype2/freetype-src/src/sdf/ftsdf.c
    trunk/Build/source/libs/freetype2/freetype-src/src/sdf/ftsdfrend.c
    trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/sfdriver.c
    trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/sfobjs.c
    trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/sfwoff.c
    trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/sfwoff.h
    trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/sfwoff2.c
    trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/sfwoff2.h
    trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/ttcolr.c
    trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/ttcolr.h
    trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/ttload.c
    trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/woff2tags.c
    trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/woff2tags.h
    trunk/Build/source/libs/freetype2/freetype-src/src/smooth/ftgrays.c
    trunk/Build/source/libs/freetype2/freetype-src/src/tools/apinames.c
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttdriver.c
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttgload.c
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttgxvar.c
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttgxvar.h
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttinterp.c
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttinterp.h
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttobjs.c
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttpload.c
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttsubpix.c
    trunk/Build/source/libs/freetype2/freetype-src/src/type1/t1gload.c
    trunk/Build/source/libs/freetype2/freetype-src/src/type1/t1load.c
    trunk/Build/source/libs/freetype2/freetype-src/src/type1/t1objs.c
    trunk/Build/source/libs/freetype2/freetype-src/src/winfonts/winfnt.c
    trunk/Build/source/libs/freetype2/freetype-src/tests/issue-1063/main.c
    trunk/Build/source/libs/freetype2/version.ac

Added Paths:
-----------
    trunk/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.210
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afws-decl.h
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afws-iter.h

Removed Paths:
-------------
    trunk/Build/source/libs/freetype2/TLpatches/patch-01-support-old-compilers
    trunk/Build/source/libs/freetype2/TLpatches/patch-02-try-Nelson-flag
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/script.bat
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afwrtsys.h

Modified: trunk/Build/source/libs/README
===================================================================
--- trunk/Build/source/libs/README	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/README	2021-12-03 04:03:12 UTC (rev 61211)
@@ -13,7 +13,7 @@
 cairo 1.16.0 - checked 20oct18
   http://cairographics.org/releases/
 
-freetype2 2.11.0 - checked 01sep21
+freetype2 2.11.1 - checked 03dec21
   http://download.savannah.gnu.org/releases/freetype/
 
 gd 2.3.3 - checked 13sep21

Modified: trunk/Build/source/libs/freetype2/ChangeLog
===================================================================
--- trunk/Build/source/libs/freetype2/ChangeLog	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/ChangeLog	2021-12-03 04:03:12 UTC (rev 61211)
@@ -1,3 +1,8 @@
+2021-12-03  Akira Kakuto  <kakuto at jcom.zaq.ne.jp>
+
+	Import freetype-2.11.1.
+	* version.ac: Adjusted.
+
 2021-09-01  Akira Kakuto  <kakuto at jcom.zaq.ne.jp>
 
 	Import freetype-2.11.0.

Modified: trunk/Build/source/libs/freetype2/TLpatches/ChangeLog
===================================================================
--- trunk/Build/source/libs/freetype2/TLpatches/ChangeLog	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/TLpatches/ChangeLog	2021-12-03 04:03:12 UTC (rev 61211)
@@ -1,3 +1,10 @@
+2021-12-03  Akira Kakuto  <kakuto at jcom.zaq.ne.jp>
+
+	Import freetype-2.11.1 source tree from:
+	  http://download.savannah.gnu.org/releases/freetype.
+	Remove patch-01-support-old-compilers.
+	Remove patch-02-try-Nelson-flag.
+
 2021-09-07  Mojca Miklavec  <mojca.miklavec.lists at gmail.com>
 
 	Simplified patches for Solaris (fixed upstream).

Modified: trunk/Build/source/libs/freetype2/TLpatches/TL-Changes
===================================================================
--- trunk/Build/source/libs/freetype2/TLpatches/TL-Changes	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/TLpatches/TL-Changes	2021-12-03 04:03:12 UTC (rev 61211)
@@ -1,2 +1,2 @@
-Changes applied to the freetype-2.11.0/ tree as obtained from:
+Changes applied to the freetype-2.11.1/ tree as obtained from:
 	http://download.savannah.gnu.org/releases/freetype/.

Deleted: trunk/Build/source/libs/freetype2/TLpatches/patch-01-support-old-compilers
===================================================================
--- trunk/Build/source/libs/freetype2/TLpatches/patch-01-support-old-compilers	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/TLpatches/patch-01-support-old-compilers	2021-12-03 04:03:12 UTC (rev 61211)
@@ -1,44 +0,0 @@
-diff -ur freetype-2.11.0/src/smooth/ftgrays.c freetype-src/src/smooth/ftgrays.c
---- freetype-2.11.0/src/smooth/ftgrays.c	Sat Jul 17 15:51:32 2021
-+++ freetype-src/src/smooth/ftgrays.c	Wed Sep 01 11:32:04 2021
-@@ -437,17 +437,16 @@
-   typedef int   TCoord;   /* integer scanline/pixel coordinate */
-   typedef int   TArea;    /* cell areas, coordinate products   */
- 
--
--  typedef struct TCell_*  PCell;
--
--  typedef struct  TCell_
-+  struct  TCell_
-   {
-     TCoord  x;     /* same with gray_TWorker.ex    */
-     TCoord  cover; /* same with gray_TWorker.cover */
-     TArea   area;
--    PCell   next;
-+    struct TCell_  *next;
-+  };
- 
--  } TCell;
-+  typedef struct TCell_ TCell;
-+  typedef TCell *PCell;
- 
-   typedef struct TPixmap_
-   {
-@@ -1938,7 +1937,7 @@
-     TCoord*  band;
- 
-     int  continued = 0;
--
-+    PCell null_cell;
- 
-     /* set up vertical bands */
-     if ( height > n )
-@@ -1959,7 +1958,7 @@
-     /* Initialize the null cell at the start of the `cells` array.    */
-     /* Note that this requires `ras.cell_free` initialization to skip */
-     /* over the first entry in the array.                             */
--    PCell null_cell  = NULL_CELL_PTR( ras );
-+    null_cell  = NULL_CELL_PTR( ras );
-     null_cell->x     = CELL_MAX_X_VALUE;
-     null_cell->area  = 0;
-     null_cell->cover = 0;

Deleted: trunk/Build/source/libs/freetype2/TLpatches/patch-02-try-Nelson-flag
===================================================================
--- trunk/Build/source/libs/freetype2/TLpatches/patch-02-try-Nelson-flag	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/TLpatches/patch-02-try-Nelson-flag	2021-12-03 04:03:12 UTC (rev 61211)
@@ -1,36 +0,0 @@
-diff -ur freetype-2.11.0/src/dlg/dlg.c freetype-src/src/dlg/dlg.c
---- freetype-2.11.0/src/dlg/dlg.c	Tue Jul 20 01:08:21 2021
-+++ freetype-src/src/dlg/dlg.c	Thu Sep 02 10:32:31 2021
-@@ -2,7 +2,7 @@
- // Distributed under the Boost Software License, Version 1.0.
- // See accompanying file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt
- 
--#define _XOPEN_SOURCE
-+#define _XOPEN_SOURCE 600
- #define _POSIX_C_SOURCE 200809L
- #define _WIN32_WINNT 0x0600
- 
-diff -ur freetype-2.11.0/src/dlg/dlgwrap.c freetype-src/src/dlg/dlgwrap.c
---- freetype-2.11.0/src/dlg/dlgwrap.c	Sat Feb 13 17:16:54 2021
-+++ freetype-src/src/dlg/dlgwrap.c	Thu Sep 02 10:32:53 2021
-@@ -18,7 +18,7 @@
- 
-   /* We have to duplicate these feature test macros from `dlg.c` */
-   /* since `freetype.h` loads some affected standard headers.    */
--#define _XOPEN_SOURCE
-+#define _XOPEN_SOURCE 600
- #define _POSIX_C_SOURCE 200809L
- 
- #include <freetype/freetype.h>
-diff -ur freetype-2.11.0/src/tools/ftrandom/ftrandom.c freetype-src/src/tools/ftrandom/ftrandom.c
---- freetype-2.11.0/src/tools/ftrandom/ftrandom.c	Thu Aug 27 15:17:20 2020
-+++ freetype-src/src/tools/ftrandom/ftrandom.c	Thu Sep 02 10:28:03 2021
-@@ -29,7 +29,7 @@
- /* This file is now part of the FreeType library */
- 
- 
--#define _XOPEN_SOURCE 500 /* for `kill', `strdup', `random', and `srandom' */
-+#define _XOPEN_SOURCE 600 /* for `kill', `strdup', `random', and `srandom' */
- 
- 
- #include <stdio.h>

Modified: trunk/Build/source/libs/freetype2/configure
===================================================================
--- trunk/Build/source/libs/freetype2/configure	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/configure	2021-12-03 04:03:12 UTC (rev 61211)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for FreeType (TeX Live) 2.11.0.
+# Generated by GNU Autoconf 2.71 for FreeType (TeX Live) 2.11.1.
 #
 # Report bugs to <tex-k at tug.org>.
 #
@@ -610,8 +610,8 @@
 # Identity of this package.
 PACKAGE_NAME='FreeType (TeX Live)'
 PACKAGE_TARNAME='freetype--tex-live-'
-PACKAGE_VERSION='2.11.0'
-PACKAGE_STRING='FreeType (TeX Live) 2.11.0'
+PACKAGE_VERSION='2.11.1'
+PACKAGE_STRING='FreeType (TeX Live) 2.11.1'
 PACKAGE_BUGREPORT='tex-k at tug.org'
 PACKAGE_URL=''
 
@@ -1278,7 +1278,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures FreeType (TeX Live) 2.11.0 to adapt to many kinds of systems.
+\`configure' configures FreeType (TeX Live) 2.11.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1346,7 +1346,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of FreeType (TeX Live) 2.11.0:";;
+     short | recursive ) echo "Configuration of FreeType (TeX Live) 2.11.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1443,7 +1443,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-FreeType (TeX Live) configure 2.11.0
+FreeType (TeX Live) configure 2.11.1
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1566,7 +1566,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by FreeType (TeX Live) $as_me 2.11.0, which was
+It was created by FreeType (TeX Live) $as_me 2.11.1, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -4100,7 +4100,7 @@
 
 # Define the identity of the package.
  PACKAGE='freetype--tex-live-'
- VERSION='2.11.0'
+ VERSION='2.11.1'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -5834,7 +5834,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by FreeType (TeX Live) $as_me 2.11.0, which was
+This file was extended by FreeType (TeX Live) $as_me 2.11.1, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -5893,7 +5893,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-FreeType (TeX Live) config.status 2.11.0
+FreeType (TeX Live) config.status 2.11.1
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/CMakeLists.txt
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/CMakeLists.txt	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/CMakeLists.txt	2021-12-03 04:03:12 UTC (rev 61211)
@@ -12,13 +12,17 @@
 # fully.
 #
 #
-# The following will 1. create a build directory and 2. change into it and
+# The following will (1) create a build directory, and (2) change into it and
 # call cmake to configure the build with default parameters as a static
-# library. See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html
-# for information about Debug, Release, etc. builds.
+# library.  See
 #
+#   https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html
+#
+# for information about debug or release builds, for example
+#
 #   cmake -B build -D CMAKE_BUILD_TYPE=Release
 #
+#
 # For a dynamic library, use
 #
 #   cmake -B build -D BUILD_SHARED_LIBS=true -D CMAKE_BUILD_TYPE=Release
@@ -39,8 +43,9 @@
 #
 #   cmake -E chdir build cmake -G Xcode -D IOS_PLATFORM=SIMULATOR64 ..
 #
-# Finally, build the project with:
 #
+# Finally, build the project with
+#
 #   cmake --build build
 #
 # Install it with
@@ -56,40 +61,47 @@
 #
 # Some notes.
 #
-# . `cmake' creates configuration files in
+# - `cmake' creates configuration files in
 #
 #     <build-directory>/include/freetype/config
 #
 #   which should be further modified if necessary.
 #
-# . You can use `cmake' directly on a freshly cloned FreeType git
+# - You can use `cmake' directly on a freshly cloned FreeType git
 #   repository.
 #
-# . `CMakeLists.txt' is provided as-is since it is normally not used by the
+# - `CMakeLists.txt' is provided as-is since it is normally not used by the
 #   developer team.
 #
-# . Set the `FT_WITH_ZLIB', `FT_WITH_BZIP2', `FT_WITH_PNG',
-#   `FT_WITH_HARFBUZZ', and `FT_WITH_BROTLI' CMake variables to `ON' to
-#   force using a dependency.  Leave a variable undefined (which is the
-#   default) to use the dependency only if it is available. Example:
+# - Set the `FT_REQUIRE_ZLIB', `FT_REQUIRE_BZIP2', `FT_REQUIRE_PNG',
+#   `FT_REQUIRE_HARFBUZZ', and `FT_REQUIRE_BROTLI' CMake variables to `ON'
+#   or `TRUE' to force using a dependency.  Leave a variable undefined
+#   (which is the default) to use the dependency only if it is available.
+#   Example:
 #
-#     cmake -B build -D FT_WITH_ZLIB=ON \
-#                    -D FT_WITH_BZIP2=ON \
-#                    -D FT_WITH_PNG=ON \
-#                    -D FT_WITH_HARFBUZZ=ON \
-#                    -D FT_WITH_BROTLI=ON [...]
+#     cmake -B build -D FT_REQUIRE_ZLIB=TRUE \
+#                    -D FT_REQUIRE_BZIP2=TRUE \
+#                    -D FT_REQUIRE_PNG=TRUE \
+#                    -D FT_REQUIRE_HARFBUZZ=TRUE \
+#                    -D FT_REQUIRE_BROTLI=TRUE [...]
 #
-#   Set `CMAKE_DISABLE_FIND_PACKAGE_XXX=TRUE' to disable a dependency completely
-#   (where `XXX' is a CMake package name like `BZip2').  Example for disabling all
+# - Set `FT_DISABLE_XXX=TRUE' to disable a dependency completely (where
+#   `XXX' is a CMake package name like `BZip2').  Example for disabling all
 #   dependencies:
 #
-#     cmake -B build -D CMAKE_DISABLE_FIND_PACKAGE_ZLIB=TRUE \
-#                    -D CMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE \
-#                    -D CMAKE_DISABLE_FIND_PACKAGE_PNG=TRUE \
-#                    -D CMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE \
-#                    -D CMAKE_DISABLE_FIND_PACKAGE_BrotliDec=TRUE [...]
+#     cmake -B build -D FT_DISABLE_ZLIB=TRUE \
+#                    -D FT_DISABLE_BZIP2=TRUE \
+#                    -D FT_DISABLE_PNG=TRUE \
+#                    -D FT_DISABLE_HARFBUZZ=TRUE \
+#                    -D FT_DISABLE_BROTLI=TRUE [...]
 #
-# . Installation of FreeType can be controlled with the CMake variables
+# - NOTE: If a package is set as DISABLED, it cannot be set as REQUIRED
+#   without unsetting the DISABLED value first.  For example, if
+#   `FT_DISABLE_HARFBUZZ=TRUE' has been set (Cache is present), you need to
+#   call `FT_DISABLE_HARFBUZZ=FALSE' before calling
+#   `FT_REQUIRE_HARFBUZZ=TRUE'.
+#
+# - Installation of FreeType can be controlled with the CMake variables
 #   `SKIP_INSTALL_HEADERS', `SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL'
 #   (this is compatible with the same CMake variables in zlib's CMake
 #   support).
@@ -109,6 +121,7 @@
 endif ()
 
 include(CheckIncludeFile)
+include(CMakeDependentOption)
 
 # CMAKE_TOOLCHAIN_FILE must be set before `project' is called, which
 # configures the base build environment and references the toolchain file
@@ -150,7 +163,7 @@
 
 set(VERSION_MAJOR "2")
 set(VERSION_MINOR "11")
-set(VERSION_PATCH "0")
+set(VERSION_PATCH "1")
 
 # Generate LIBRARY_VERSION and LIBRARY_SOVERSION.
 set(LIBTOOL_REGEX "version_info='([0-9]+):([0-9]+):([0-9]+)'")
@@ -171,15 +184,39 @@
 math(EXPR LIBRARY_SOVERSION "${LIBTOOL_CURRENT} - ${LIBTOOL_AGE}")
 set(LIBRARY_VERSION "${LIBRARY_SOVERSION}.${LIBTOOL_AGE}.${LIBTOOL_REVISION}")
 
-# External dependency library detection is automatic. See the notes at the top
-# of this file, for how to force or disable dependencies completely.
-option(FT_WITH_ZLIB "Use system zlib instead of internal library." OFF)
-option(FT_WITH_BZIP2 "Support bzip2 compressed fonts." OFF)
-option(FT_WITH_PNG "Support PNG compressed OpenType embedded bitmaps." OFF)
-option(FT_WITH_HARFBUZZ "Improve auto-hinting of OpenType fonts." OFF)
-option(FT_WITH_BROTLI "Support compressed WOFF2 fonts." OFF)
+# External dependency library detection is automatic.  See the notes at the
+# top of this file, for how to force or disable dependencies completely.
+option(FT_DISABLE_ZLIB
+  "Disable use of system zlib and use internal zlib library instead." OFF)
+cmake_dependent_option(FT_REQUIRE_ZLIB
+  "Require system zlib instead of internal zlib library." OFF
+  "NOT FT_DISABLE_ZLIB" OFF)
 
+option(FT_DISABLE_BZIP2
+  "Disable support of bzip2 compressed fonts." OFF)
+cmake_dependent_option(FT_REQUIRE_BZIP2
+  "Require support of bzip2 compressed fonts." OFF
+  "NOT FT_DISABLE_BZIP2" OFF)
 
+option(FT_DISABLE_PNG
+  "Disable support of PNG compressed OpenType embedded bitmaps." OFF)
+cmake_dependent_option(FT_REQUIRE_PNG
+  "Require support of PNG compressed OpenType embedded bitmaps." OFF
+  "NOT FT_DISABLE_PNG" OFF)
+
+option(FT_DISABLE_HARFBUZZ
+  "Disable HarfBuzz (used for improving auto-hinting of OpenType fonts)." OFF)
+cmake_dependent_option(FT_REQUIRE_HARFBUZZ
+  "Require HarfBuzz for improving auto-hinting of OpenType fonts." OFF
+  "NOT FT_DISABLE_HARFBUZZ" OFF)
+
+option(FT_DISABLE_BROTLI
+  "Disable support of compressed WOFF2 fonts." OFF)
+cmake_dependent_option(FT_REQUIRE_BROTLI
+  "Require support of compressed WOFF2 fonts." OFF
+  "NOT FT_DISABLE_BROTLI" OFF)
+
+
 # Disallow in-source builds
 if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
   message(FATAL_ERROR
@@ -208,35 +245,45 @@
 
 
 # Find dependencies
-set(HARFBUZZ_MIN_VERSION "2.0.0")
-if (FT_WITH_HARFBUZZ)
-  find_package(HarfBuzz ${HARFBUZZ_MIN_VERSION} REQUIRED)
-else ()
-  find_package(HarfBuzz ${HARFBUZZ_MIN_VERSION})
+if (NOT FT_DISABLE_HARFBUZZ)
+  set(HARFBUZZ_MIN_VERSION "2.0.0")
+  if (FT_REQUIRE_HARFBUZZ)
+    find_package(HarfBuzz ${HARFBUZZ_MIN_VERSION} REQUIRED)
+  else ()
+    find_package(HarfBuzz ${HARFBUZZ_MIN_VERSION})
+  endif ()
 endif ()
 
-if (FT_WITH_PNG)
-  find_package(PNG REQUIRED)
-else ()
-  find_package(PNG)
+if (NOT FT_DISABLE_PNG)
+  if (FT_REQUIRE_PNG)
+    find_package(PNG REQUIRED)
+  else ()
+    find_package(PNG)
+  endif ()
 endif ()
 
-if (FT_WITH_ZLIB)
-  find_package(ZLIB REQUIRED)
-else ()
-  find_package(ZLIB)
+if (NOT FT_DISABLE_ZLIB)
+  if (FT_REQUIRE_ZLIB)
+    find_package(ZLIB REQUIRED)
+  else ()
+    find_package(ZLIB)
+  endif ()
 endif ()
 
-if (FT_WITH_BZIP2)
-  find_package(BZip2 REQUIRED)
-else ()
-  find_package(BZip2)
+if (NOT FT_DISABLE_BZIP2)
+  if (FT_REQUIRE_BZIP2)
+    find_package(BZip2 REQUIRED)
+  else ()
+    find_package(BZip2)
+  endif ()
 endif ()
 
-if (FT_WITH_BROTLI)
-  find_package(BrotliDec REQUIRED)
-else ()
-  find_package(BrotliDec)
+if (NOT FT_DISABLE_BROTLI)
+  if (FT_REQUIRE_BROTLI)
+    find_package(BrotliDec REQUIRED)
+  else ()
+    find_package(BrotliDec)
+  endif ()
 endif ()
 
 # Create the configuration file
@@ -426,7 +473,7 @@
     PRIVATE
       ${CMAKE_CURRENT_BINARY_DIR}/include
       ${CMAKE_CURRENT_SOURCE_DIR}/include
-      
+
       # Make <ftconfig.h> available for builds/unix/ftsystem.c.
       ${CMAKE_CURRENT_BINARY_DIR}/include/freetype/config
 )

Modified: trunk/Build/source/libs/freetype2/freetype-src/ChangeLog
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/ChangeLog	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/ChangeLog	2021-12-03 04:03:12 UTC (rev 61211)
@@ -1,7815 +1,1685 @@
-2021-07-18  Werner Lemberg  <wl at gnu.org>
+2021-12-02  Werner Lemberg  <wl at gnu.org>
 
-	* Version 2.11.0 released.
+	* Version 2.11.1 released.
 	==========================
 
+	Tag sources with `VER-2-11-1'.
 
-	Tag sources with `VER-2-11-0'.
+	* docs/VERSION.TXT: Add entry for version 2.11.1.
+	* docs/CHANGES, docs/release: Updated.
 
-	* 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/.
+	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.11.0/2.11.1/, s/2110/2111/.
 
-	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 11.
-	(FREETYPE_PATCH): Set to 0.
+	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
 
-	* builds/unix/configure.raw (version_info): Set to 24:0:18.
-	* CMakeLists.txt (VERSION_MINOR): Set to 11.
-	(VERSION_PATCH): Set to 0.
+	* builds/unix/configure.raw (version_info): Set to 24:1:18.
+	* CMakeLists.txt (VERSION_PATCH): Set to 1.
 
-	* builds/toplevel.mk (dist): Ignore more git-related files.
+	* builds/toplevel.mk (version_tag, CHANGELOG_SCRIPT): New variables.
+	(do-dist): Generate `ChangeLog` file with all commits since last release.
 
-2021-07-17  David Turner  <david at freetype.org>
+2021-11-30  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/smooth/ftgrays.c: Fix compilation if `FT_LONG64` is undefined.
+	[builds/windows] Improve debugging.
 
-	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.
+	* builds/windows/ftdebug.c (FT_Message, FT_Panic): Buffer output
+	and call `OutputDebugStringA` only if `IsDebuggerPresent`.
+	[_WIN32_WCE] (OutputDebugStringA): Implement the missing API.
 
-	This patch fixes the issue by disabling the special code path when
-	64-bit integer types are not available.
+2021-11-29  Seigo Nonaka  <nona at google.com>
 
-	Fixes #1071.
+	* src/base/ftobjs.c (FT_Request_Metrics): Fix build warning on Android.
 
-2021-07-16  Alex Richardson  <Alexander.Richardson at cl.cam.ac.uk>
+	Use casts since `FT_USHORT_MAX` is unsigned short in bionic (libc used in
+	Android).
 
-	[tests] Allow arbitrary build directories.
+2021-11-28  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* 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.
+	* builds/windows/vc2010/freetype.vcxproj (DlgCopy): Minor tweak.
 
-	* tests/meson.build: Updated.
+2021-11-26  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2021-07-16  Alex Richardson  <Alexander.Richardson at cl.cam.ac.uk>
+	* src/truetype/ttpload.c (tt_face_load_hdmx): Added comments.
 
-	* tests/issue-1063/main.c (main): Fix uninitialized variable.
+2021-11-26  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	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.
+	[truetype] Quietly reject out-of-spec `hdmx` tables.
 
-2021-07-16  Werner Lemberg  <wl at gnu.org>
+	The `hdmx` table is optional and can be safely rejected without
+	an error if it does not follow specifications. The record size
+	must be equal to the number of glyphs + 2 + 32-bit padding.
 
-	[smooth] Minor fixes.
+	* src/truetype/ttpload.c (tt_face_load_hdmx): Thoroughly check
+	the record size and improve tracing.
 
-	* 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-11-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2021-07-15  Ben Wagner  <bungeman at chromium.org>
+	[truetype] Partly revert 5b626281.
 
-	* src/smooth/ftgrays.c: Guard inclusion of `emmintrin.h`.
+	Fixes #1118.
 
-	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.
+	* src/truetype/ttpload.c (tt_face_load_hdmx): Do not assume that
+	`record_size` is rounded even though the records are padded.
 
-2021-07-15  David Turner  <david at freetype.org>
+2021-11-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	[smooth] Implement Bézier quadratic arc flattening with DDA.
+	* builds/windows/vc2010/freetype.vcxproj (DlgCopy): Use transforms.
 
-	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.
+2021-11-22  Werner Lemberg  <wl at gnu.org>
 
-	On a 2017 Core i5-7300U CPU on Linux/x86_64:
+	Update `CHANGES` files, other minor whitespace and documentation issues.
 
-	  ftbench -p -s10 -t5 -cb DroidSansFallbackFull.ttf
+2021-11-21  Werner Lemberg  <wl at gnu.org>
 
-	  Before: 4.033 us/op  (best of 5 runs for all numbers)
-	  After:  3.876 us/op
+	formats.txt: Add info about WOFF and WOFF2.
 
-	  ftbench -p -s60 -t5 -cb DroidSansFallbackFull.ttf
+2021-11-21  Werner Lemberg  <wl at gnu.org>
 
-	  Before: 13.467 us/op
-	  After:  13.385 us/op
+	meson.build: Initialize `common_ldflags`.
 
-	* src/smooth/ftgrays.c (gray_render_conic): New implementation
-	based on DDA and optionally SSE2.
+2021-11-21  Lukas Oberhuber  <@lukaso>
 
-2021-07-15  David Turner  <david at freetype.org>
+	* meson.build: Fix compatibility version on MacOS.
 
-	[smooth] Minor speedup to smooth rasterizer.
+	Fixes #1117.
 
-	This speeds up the smooth rasterizer by avoiding conditional
-	branches in the hot path.
+2021-11-21  Werner Lemberg  <wl at gnu.org>
 
-	- 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.
+	* src/truetype/ttinterp.c (Ins_MD): Avoid `FT_ABS`.
 
-	- 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  <david at freetype.org>
-
-	[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  <Alexander.Richardson at cl.cam.ac.uk>
-
-	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  <chortos at inbox.lv>
-
-	[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  <chortos at inbox.lv>
-
-	[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  <Alexander.Richardson at cl.cam.ac.uk>
-
-	* 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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	Small clean-ups for the last few commits.
-
-	* include/freetype/fttrace.h (afwarp): Removed.
-
-2021-07-12  David Turner  <david at freetype.org>
-
-	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  <david at freetype.org>
-
-	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  <david at freetype.org>
-
-	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  <wl at gnu.org>
-
-	* src/base/ftlcdfil.c (FT_Library_SetLcdGeometry): Fix argument.
-
-	Reported by Hin-Tak.
-
-2021-07-03  Werner Lemberg  <wl at gnu.org>
-
-	* meson_options.txt: Sort alphabetically; no final full stops.
-
-2021-07-01  Ben Wagner  <bungeman at chromium.org>
-
-	* 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  <drott at chromium.org>
-
-	[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  <drott at chromium.org>
-
-	[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  <apodtele at gmail.com>
-
-	* src/raster/ftraster.c (Render_Single_Pass): Simplify `band_stack'.
-
-2021-06-29  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <anuthadev at gmail.com>
-
-	[CI] Introduce linux CI and refactor job names.
-
-	* .gitlab-ci.yml: Added jobs for building freetype on linux.
-
-2021-06-28  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[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  <drott at chromium.org>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	* src/raster/ftraster.c (Render_Single_Pass): Remove dead code.
-
-2021-06-25  Werner Lemberg  <wl at gnu.org>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <drott at chromium.org>
-
-	[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  <drott at chromium.org>
-
-	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  <david at freetype.org>
-
-	[truetype] Fix integer overflow.
-
 	Reported as
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=35312
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=38562
 
-	* src/truetype/ttinterp.c (Ins_JMPR): Use `ADD_LONG`.
+2021-11-20  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2021-06-19  Werner Lemberg  <david at freetype.org>
+	* include/freetype/fttypes.h (FT_MAKE_TAG): Remove the same casting.
 
-	[autofit] Prevent hinting if there are too many segments.
+2021-11-20  Werner Lemberg  <wl at gnu.org>
 
-	This speeds up handling of broken glyphs.
+	[gxvalid] Fix minor compilation warning.
 
-	Reported as
+	* src/gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup): Declare
+	as static.
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=35309
+2021-11-20  Werner Lemberg  <wl at gnu.org>
 
-	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Implement
-	it.
+	[smooth] Fix stand-alone compilation.
 
-2021-06-18  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/smooth/ftgrays.c (FT_Trace_Enable, FT_Trace_Disable)[STANDALONE_]:
+	Define.
 
-	* src/sdf/ftsdfrend.c (ft_(b)sdf_render): Do not FT_ERROR routinely.
+2021-11-20  Werner Lemberg  <wl at gnu.org>
 
-2021-06-16  David Turner  <david at freetype.org>
+	Avoid undefined left-shifts.
 
-	[autofit] Fix return value of `FT_Load_Glyph`.
+	We really have to use double casts to avoid issues with C's and C++'s
+	signedness propagation rules in implicit casts.
 
-	* 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  <david at freetype.org>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <apodtele at gmail.com>
-
-	* src/truetype/ttinterp.c (TT_RunIns): Optimize tracing.
-
-2021-06-09  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	Fix 'devel' build for 'COLR' v1.
-
-	* devel/ftoption.h: Synchronize with
-	  `include/freetype/config/ftoption.h`.
-
-2021-06-08  Werner Lemberg  <wl at gnu.org>
-
-	[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  <drott at chromium.org>
-
-	[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  <wl at gnu.org>
-
-	* src/sdf/ftsdfcommon.c: Fix inclusion of header files.
-
-2021-06-08  Werner Lemberg  <wl at gnu.org>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <bungeman at chromium.org>
-	    Werner Lemberg  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Fix tracing.
-
-	Problem reported by Alexei.
-
-2021-06-02  Werner Lemberg  <wl at gnu.org>
-
-	[psaux] Fix MSVC compiler warnings.
-
-	* src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs):
-	Add cast.
-
-2021-05-29  Werner Lemberg  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	[build] Allow overriding of `ANSIFLAGS` for GNU make build.
-
-	* builds/*: Implement it.
-
-2021-05-27  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	[psaux] Guard and trace AFM kern data allocation.
-
 	Reported as
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31543
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=41178
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=41182
 
-	* include/freetype/internal/fttrace.h: Add 'afmparse' trace
-	component.
+	* include/freetype/config/public-macros.h (FT_STATIC_CAST,
+	FT_REINTERPRET_CAST): Modify macro to take two arguments.
+	Update all callers.
+	(FT_STATIC_BYTE_CAST): New macro.
 
-	* 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.
+	* include/freetype/freetype.h (FT_ENC_TAG): Use `FT_STATIC_BYTE_CAST`.
+	* include/freetype/ftimage.h (FT_IMAGE_TAG): Ditto.
+	* include/freetype/fttypes.h (FT_MAKE_TAG): Ditto.
+	Use `FT_Tag` for casting.
 
-2021-05-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/ftraster/ftmisc.h (FT_MAKE_TAG): Removed, no longer needed.
+	(FT_STATIC_BYTE_CAST): New macro.
 
-	* meson.build (ft2_public_headers): Add missing `ftcid.h'.
+	* src/smooth/ftgrays.c (FT_STATIC_CAST): Replace with...
+	(FT_STATIC_BYTE_CAST): ... this.
 
-	Fixes #1058.
+2021-11-18  Werner Lemberg  <wl at gnu.org>
 
-2021-05-20  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	Provide C++ versions for public macros with casts.
 
-	[type42] Avoid some memory zeroing.
+	Many FreeType clients use C++.  However `g++ -Wold-style-cast` warns for
+	macros with C-style casts even for system header files; this also affects
+	directories included with `-isystem`.  While this could be seen as a problem
+	with g++, the problem is more a philosophical one: Over the time, C and C++
+	diverged more and more, and some features of C are no longer the 'right'
+	solution in C++.
 
-	* src/type42/t42objs.c (T42_Open_Face): Tweak allocation macro.
-	* src/type42/t42parse.c (t42_parse_sfnts): Ditto.
+	* include/freetype/config/public-macros.h (FT_STATIC_CAST,
+	FT_REINTERPRET_CAST): New macros.
 
-2021-05-19  Nikolaus Waxweiler  <madigens at gmail.com>
+	* include/freetype/freetype.h (FT_ENC_TAG, FT_LOAD_TARGET_,
+	FT_LOAD_TARGET_MODE): Use `FT_STATIC_CAST`.
+	Correctly handle negative 'signed char' input.
+	* include/freetype/ftimage.h (FT_IMAGE_TAG): Ditto.
+	* include/freetype/fttypes.h (FT_MAKE_TAG, FT_BOOL): Ditto.
+	* include/freetype/ftmodapi.h (FT_FACE_DRIVER_NAME): Use
+	`FT_REINTERPRET_CAST`.
 
-	[CMake] Update dependency finders.
+	* src/smooth/ftgrays.c (FT_STATIC_CAST)[STANDALONE_]: New macro.
+	[!STANDALONE]: Include `FT_CONFIG_CONFIG_H`.
 
-	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
+	Fixes #1116.
 
-	* CMakeLists.txt, builds/cmake/FindHarfBuzz.cmake: Implement 1 and 2.
-	* builds/cmake/FindBrotliDec.cmake: Implement 3.
+2021-11-16  Werner Lemberg  <wl at gnu.org>
 
-2021-05-19  Ben Wagner  <bungeman at chromium.org>
+	Fix clang++ warnings.
 
-	[gzip] Use exact type for `ft_gzip_alloc` and `ft_gzip_free`.
+	* src/*: Initialize some variables to NULL.
 
-	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.
+2021-11-16  Werner Lemberg  <wl at gnu.org>
 
-	* 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`.
+	[truetype] Updates for the forthcoming OpenType 1.9 standard (2/2).
 
-2021-05-18  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/truetype/ttgxvar.c (ft_var_load_item_variation_store):
+	s/shortDeltaCount/wordDeltaCount/ (as done in the specification, too).
+	Recognize new format and reject it for now.
 
-	Prioritize the anti-aliasing renderer module.
+2021-11-16  Werner Lemberg  <wl at gnu.org>
 
-	* modules.cfg: Reorder the renderers.
-	* include/freetype/config/ftmodule.h: Ditto.
+	[truetype] Updates for the forthcoming OpenType 1.9 standard (1/2).
 
-2021-05-16  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	This is in preparation for implementing `DeltaSetIndexMap` format 1, which
+	is used by `COLR` v1 tables, and which allows 32bit indices.
 
-	[sfnt] Additional guards on the POST table.
+	  https://docs.microsoft.com/en-us/typography/opentype/otspec190/delta/otvarcommonformats_delta.html
 
-	Fixes timeout (#1055) analyzed by Ben Wagner, reported as
+	* src/truetype/ttgxvar.h (GX_DeltaSetIdxMapRec): Change type of `mapCount`
+	to `FT_ULong`.
 
-	  https://crbug.com/1194092
+	* src/truetype/ttgxvar.c (ft_var_load_delta_set_index_mapping): Add argument
+	for passing the table size; update caller.
+	Implement new format.
 
-	* 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-11-14  Werner Lemberg  <wl at gnu.org>
 
-2021-05-13  Daniel McArdle  <dmcardle at chromium.org>
+	Fix clang warnings.
 
-	[psaux] Use doubling allocation strategy for CF2_ArrStack.
+	* src/gxvalid/gxvcmmn.h (GXV_SET_ERR_IF_PARANOID): Use 'do' block.
+	* src/gxvalid/gxvmod.c (GXV_TABLE_LOAD, GXV_TABLE_VALIDATE): Ditto.
 
-	Fixes timeout reported as
+	* src/smooth/ftgrays.c (gray_convert_glyph): Add cast.
 
-	  https://crbug.com/1206181
+	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Remove cast.
+	* src/type1/t1load.c (read_binay_data): Use `FT_ULong` for `size` parameter.
+	(parse_subrs, parse_charstrings, parse_dict): Ditto; also add some casts.
 
-	* src/psaux/psarrst.c (cf2_arrstack_{push,init}): Implement it.
-	* src/psaux/psarrst.h (CF2_ArrStackiRec): Drop `chunk'.
+2021-11-13  Dominik Röttsches  <drott at chromium.org>
 
-2021-05-12  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[sfnt] Avoid undefined shifts in `COLR` v1 paint parsing
 
-	* src/smooth/ftgrays.c (FT_MAX_GRAY_SPANS): Increase from 10 to 16.
+	* src/sfnt/ttcolr.c (read_paint, tt_face_get_paint): Tighten shift
+	behavior by using multiplication, mostly using macros from ftcalc.h.
 
-	Ten was barely enough for two slanted stems. Sixteen can actually fit
-	a bit more complicated scanlines.
+	Fixes: https://bugs.chromium.org/p/chromium/issues/detail?id=1269168
 
-2021-05-11  Alexei Podtelezhnikov  <apodtele at gmail.com>
+2021-11-13  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/smooth/ftgrays.c (FT_GRAY_SET): Adjust for better code.
+	[builds/windows] Improve `DlgCopy` target.
 
-2021-05-11  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	Fixes #1113.
 
-	[smooth] Faster bitmap sweeping.
+	* builds/windows/vc2010/freetype.vcxproj: Run `DlgCopy` conditionally
+	and decouple it from `Build`.
 
-	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.
+2021-11-12  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* 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.
+	Explicitly define `FT_MSB` for Clang.
 
-2021-05-10  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* include/freetype/internal/ftcalc.h [__clang__] (FT_MSB): Updated.
 
-	* src/smooth/ftgrays.c (gray_hline): Simplify even-odd computations.
+2021-11-10  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	It is too bad the even-odd rule is not used much.
+	* src/truetype/ttgxvar.c (ft_var_to_normalized): Edge optimization.
 
-2021-05-07  Alexei Podtelezhnikov  <apodtele at gmail.com>
+2021-11-10  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	[type1] Avoid MM memory zeroing.
+	Additional `FT_MSB` macro definitions.
 
-	* src/type1/t1load.c (t1_allocate_blend, parse_blend_design_map):
-	Tweak allocation macros.
-	* src/type1/t1objs.c (T1_Face_Done): Minor.
+	Better macros for Windoes CE and ARM in general, based on !109
+	from metarutaiga.
 
-2021-05-07  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* include/freetype/internal/ftcalc.h [_MSC_VER] (FT_MSB): Updated.
 
-	* src/bdf/bdflib.c (_bdf_list_ensure): Tweak allocation macro.
+2021-11-09  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2021-05-06  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[build/windows] Remove logging from default debug configurations.
 
-	* src/psaux/psobjs.c (ps_parser_load_field): Tweak allocation macro.
+	DLG is rather costly for performance and should be used judiciously.
+	This removes it from the default configurations but gives an example
+	how to enable it using the `UserDefines` property.
 
-2021-05-06  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* builds/windows/vc2010/freetype.vcxproj: Hide FT_DEBUG_LOGGING.
 
-	* src/sfnt/sfobjs.c (sfnt_load_face): Tweak allocation macro.
+2021-11-08  Werner Lemberg  <wl at gnu.org>
 
-2021-05-06  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/sfnt/sfobjs.c (sfnt_open_font): Fix typo.
 
-	* src/cid/cidload.c (cid_read_subrs): Tweak allocation macro.
+2021-11-08  Werner Lemberg  <wl at gnu.org>
 
-2021-05-06  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/gxvalid.*, src/otvalid.*: Fix `-Wformat` warnings.
 
-	* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Tweak allocation.
+2021-11-08  Werner Lemberg  <wl at gnu.org>
 
-2021-05-05  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[pshinter] Fix C++ compilation.
 
-	[cff,psaux] Avoid memory zeroing (contd.).
+	* src/pshinter/pshalgo.c (psh_compute_dir): Fix type of `result`.
+	(psh_hint_table_find_strong_points): Add cast.
 
-	* 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-11-08  Werner Lemberg  <wl at gnu.org>
 
-2021-05-04  Ben Wagner  <bungeman at chromium.org>
+	[sfnt] Reduce footprint if WOFF and WOFF2 support is not needed.
 
-	* src/cid/cidload.c (cid_hex_to_binary): Improve return value.
+	Based on a patch from metarutaiga (MR !106).  The gist of this commit is
+	that it doesn't make sense to support WOFF without compression (which would
+	be only possible in WOFF 1.0 anyway).
 
-	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.
+	* src/sfnt/sfobjs.c (sfnt_open_font): Guard WOFF code with
+	`FT_CONFIG_OPTION_USE_ZLIB` block.
+	Guard WOFF2 code with `FT_CONFIG_OPTION_USE_BROTLI` block.
 
-	First reported as
+	* src/sfnt/sfwoff.c, src/sfnt/sfwoff.h: Guard files with
+	`FT_CONFIG_OPTION_USE_ZLIB` blocks, not parts of the code.
 
-	  https://crbug.com/1203240
+	* src/sfnt/sfwoff2.c, src/sfnt/sfwoff2.h, src/sfnt/woff2tags.c,
+	src/sfnt/woff2tags.h: Guard files with `FT_CONFIG_OPTION_USE_BROTLI` blocks,
+	not parts of the code.
 
-2021-05-03  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	Fixes #1111.
 
-	[sfnt] Streamline POST format 2.0 handing.
+2021-11-08  Werner Lemberg  <wl at gnu.org>
 
-	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.
+	[truetype] Make trickyness checks depend on TT_USE_BYTECODE_INTERPRETER.
 
-	* 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.
+	Based on a patch from metarutaiga (MR !106).
 
-2021-05-02  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/truetype/ttobjs.c (tt_skip_pdffont_random_tag,
+	tt_check_trickyness_family, tt_synth_sfnt_checksum, tt_get_sfnt_checksum,
+	tt_check_trickyness_sfnt_ids, tt_check_trickyness): Put functions into a
+	`TT_USE_BYTECODE_INTERPRETER` block.
+	(tt_face_init): Put trickyness checks into a `TT_USE_BYTECODE_INTERPRETER`
+	block.
 
-	[bdf,pcf] Avoid memory zeroing (contd.).
+	Fixes #1111.
 
-	* 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-11-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2021-05-01  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/sfnt/ttload.c (tt_face_load_gasp): Fix a type mismatch warning.
 
-	* src/cid/cidload.c (cid_read_subrs): Tweak allocaton macro.
+2021-11-07  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2021-05-01  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[dlg] Define DLG_STATIC explicitly.
 
-	[sfnt] Avoid some memory zeroing.
+	DLG_STATIC is intended to disable Windows DLL linking attributes.
+	It does not hurt to define it explicitly when we wrap DLG code.
+	This fixes tons of LNK4286 and C4273 warnings from MSVC if we
+	forget to define DLG_STATIC as a compiler option.
 
-	* 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.
+	* builds/windows/vc2010/freetype.vcxproj: Remove DLG_STATIC option.
+	* src/dlg/dlgwrap.c [FT_DEBUG_LOGGING]: Define DLG_STATIC.
+	* include/freetype/internal/ftdebug.h [FT_DEBUG_LOGGING]: Ditto.
 
-2021-05-01  Alexei Podtelezhnikov  <apodtele at gmail.com>
+2021-11-07  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/sfnt/ttpost.c (load_format_{20,25}): Tweak allocaton macros.
+	[dlg] Lighten up the inclusions.
 
-2021-05-01  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	The DLG wrapper needs to know if FT_DEBUG_LOGGING is defined in
+	`ftoption.h`. It does not need entire FreeType.
 
-	* src/sfnt/pngshim.c (Load_SBit_Png): Tweak allocaton macro.
+	* src/dlg/dlgwrap.c: Include FT_CONFIG_OPTIONS_H directly.
 
-2021-05-01  Alexei Podtelezhnikov  <apodtele at gmail.com>
+2021-11-07  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	[truetype] Avoid some memory zeroing.
+	[truetype] Avoid some memory zeroing in variations.
 
-	* src/truetype/ttinterp.c (Init_Context): Tweak allocation macro.
-	* src/truetype/ttpload.c (tt_face_load_cvt): Ditto.
+	* src/truetype/ttgxvar.c (ft_var_readpackeddeltas, ft_var_load_avar,
+	ft_var_load_item_variation_store, ft_var_load_gvar): Use FT_QNEW_ARRAY
+	if memory immediately initialized or discarded otherwise.
 
-2021-05-01  Alexei Podtelezhnikov  <apodtele at gmail.com>
+2021-11-05  Jany Belluz  <jany.belluz at daltonmaag.com>
 
-	[woff2] Avoid some memory zeroing.
+	[truetype] Fix handling of packed deltas in Variation Fonts.
 
-	* src/sfnt/sfwoff2.c (store_loca, woff2_open_font): Tweak macros.
+	* src/truetype/ttgxvar (ft_var_readpackeddeltas): Don't expect the number of
+	bytes used to encode the deltas to be higher than the number of encoded
+	values.  The specification allows a very compact encoding; for example, a
+	list of 200 zeros can be encoded with just a couple of bytes.
 
-2021-04-30  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	We now count the consumed bytes to make sure to not read more than expected.
 
-	* src/gzip/ftgzip.c (ft_gzip_alloc): Zero out memory again.
+2021-11-04  Jany Belluz  <jany.belluz at daltonmaag.com>
 
-2021-04-27  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[truetype] Fix CVAR handling of tuples for all points.
 
-	[lzw] Preserve decompression stack when relocating to heap.
+	* src/truetype/ttgxvar (tt_face_vary_cvt): Function
+	`ft_var_readpackedpoints`, when it returns `ALL_POINTS`, also sets
+	`point_count` to value 0.  However, the CVAR code was incorrectly expecting
+	that `point_count` would be set to match the length of the CVT table.
 
-	* src/lzw/ftzopen.c (ft_lzwstate_stack_grow): Copy stack when
-	relocating to heap.
+2021-11-04  Jany Belluz  <jany.belluz at daltonmaag.com>
 
-2021-04-27  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/truetype/ttgxvar.c: Fix typos in macros that guard CVAR code.
 
-	* src/cid/cidgload.c (cid_load_glyph): Restore the glyph_length check.
+2021-11-04  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2021-04-27  Werner Lemberg  <wl at gnu.org>
+	* docs/INSTALL: Mention Meson and MSBuild more prominently.
 
-	* src/psmodule.c (ps_unicodes_init): Ignore empty glyph names.
+2021-11-03  Gabor Kertesz  <gabor.kertesz at linaro.org>
 
-	Reported as
+	[libpng] Update Meson wrap for win-arm64
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=33637
+	1.6.37-5 released patches for win-arm64 to successfully build
+	libpng with Meson:
+	https://github.com/mesonbuild/wrapdb/pull/205
+	https://github.com/mesonbuild/wrapdb/pull/216
 
-2021-04-26  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	Updated by the following command:
+	meson wrap update libpng
 
-	* src/sfnt/sfobjs.c (sfnt_init_face): Revert macro change.
+	Tested on win-arm64 and x64.
 
-2021-04-26  Alexei Podtelezhnikov  <apodtele at gmail.com>
+2021-11-03  Dominik Röttsches  <drott at chromium.org>
 
-	[cff] Avoid some memory zeroing.
+	[sfnt] Clarify `COLR` v1 FT_Paint* format representations
 
-	* 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.
+	* include/freetype/ftcolor.h (FT_PaintLinearGradient,
+	FT_PaintRadialGradient, FT_PaintSweepGradient, FT_PaintTransform,
+	FT_PaintTranslate, FT_PaintScale, FT_PaintRotate, FT_PaintSkew): Clarify
+	16.16 fixed point representation of struct fields.
+	* src/sfnt/ttcolr.c (read_paint): Shift coordinates for
+	FT_PaintLinearGradient, FT_PaintRadialGradient, FT_PaintSweepGradient
+	accordingly.
 
-2021-04-26  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	Fixes: https://gitlab.freedesktop.org/freetype/freetype/-/issues/1110
 
-	[pfr] Avoid some memory zeroing.
+2021-11-03  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* 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.
+	[builds/windows] Let MSBuild handle DLG copy.
 
-2021-04-26  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* builds/windows/vc2010/freetype.vcxproj: Specify DlgCopy target.
+	* builds/windows/vc2010/script.bat: Deleted.
 
-	* src/winfonts/winfnt.c (FNT_Face_Init): Tweak memory macro.
+2021-10-29  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2021-04-26  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/truetype/ttgload.c (load_truetype_glyph): Fix MSVC warning C4312.
 
-	[psaux,psnames] Avoid some memory zeroing.
+2021-10-29  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/psaux/psstack.c (cf2_stack_init): Tweak memory macro.
-	* src/psnames/psmodule.c (ps_unicodes_init): Ditto.
+	[builds/windows] Separate MSVC linker and librarian.
 
-2021-04-25  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	MSVC uses LIB for static and LINK for dynamic libraries. They are
+	related but the former has much smaller set of options.
 
-	[base] Avoid some memory zeroing.
+	* builds/windows/vc2010/freetype.vcxproj: Updated.
 
-	* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Use FT_QNEW_ARRAY.
-	* src/base/ftsnames.c (FT_Get_Sfnt_{Name,LangTag}): Ditto.
+2021-10-29  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2021-04-25  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[builds/windows] Revise MSVC linking optimizations.
 
-	[bdf,pcf] Avoid some memory zeroing.
+	* builds/windows/vc2010/freetype.vcxproj: Optimize DLL linking only.
+	* builds/windows/visualc/freetype.dsp: Ditto.
+	* builds/windows/visualc/freetype.vcproj: Ditto.
 
-	* 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-10-28  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2021-04-25  Issam E. Maghni  <issam.e.maghni at mailbox.org>
+	[woff] Optimize table tagging.
 
-	* builds/meson/process_ftoption_h.py: Add LF at EOF.
+	* include/freetype/internal/wofftypes.h (WOFF_TableRec): Use
+	32-bit tag.
+	* src/sfnt/sfwoff.c (woff_open_font): Use 32-bit tag.
 
-	This fixes
+2021-10-28  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	  .../ftoption.h:1030:10: error:
-	    no newline at end of file [-Werror,-Wnewline-eof]
+	[woff2] Optimize table tagging.
 
-	for the generated `ftoption.h` file.
+	Fixes #1107.
 
-2021-04-24  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* include/freetype/internal/wofftypes.h (WOFF2_TableRec): Use
+	32-bit tag.
+	* src/sfnt/sfwoff2.c (compare_tags, find_table, woff2_open_font):
+	Use 32-bit tag.
+	* src/sfnt/woff2tags.[ch] (woff2_known_tags): Use static storage and
+	return 32-bit tag.
 
-	* src/cff/cffload.c (cff_index_get_pointers): s/FT_QALLOC/FT_ALLOC/.
+2021-10-26  Werner Lemberg  <wl at gnu.org>
 
-2021-04-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	Formatting.
 
-	* 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-10-26  Ben Wagner  <bungeman at chromium.org>
 
-2021-04-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[mm] Tolerate missing Blend dictionary entries
 
-	* src/sdf/ftsdf.c (sdf_{edge,contour,shape}_new): Use FT_QALLOC.
+	In a Multiple Master font, the Blend dictionary must contain valid
+	Private, FontInfo, and FontBBox. The current code will error if any of
+	these are present and invalid, but will not error and will provide
+	uninitialized data if the Blend dictionary exists but does not contain
+	one of these entries. This change reverts to the older behavior of
+	treating any missing entries as containing all zero data and not
+	returning an error.
 
-2021-04-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	In the future it may be best to keep track of when these are actually
+	initialized and error if they are not.
 
-	[sfnt] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
+	* src/type1/t1load.c (t1_allocate_blend): Zero initiailize.
 
-	* 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-10-26  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2021-04-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[builds/windows] Add MSVC linker optimazations.
 
-	[cff,type1,type42] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
+	We continue to build static libraries with statically linked C run-
+	time and add options to optimize references.
 
-	* 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.
+	* builds/windows/vc2010/freetype.vcxproj: Sort entries, add options.
 
-2021-04-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
+2021-10-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	[cid] s/FT_ALLOC/FT_QALLOC/ and clean up.
+	* builds/windows/vc2010/freetype.vcxproj: Use MachineARM64.
 
-	* 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-10-22  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2021-04-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[builds/windows] Prioritize x64.
 
-	[pfr] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
+	* builds/windows/vc2010/freetype.sln: Sort entries.
 
-	* src/pfr/pfrload.c (pfr_extra_item_load_font_id, pfr_aux_name_load):
-	Do not zero out the buffer.
+2021-10-22  Gabor Kertesz  <gabor.kertesz at linaro.org>
 
-2021-04-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[builds/windows] Add ARM64 platform.
 
-	[bzip2,gzip] s/FT_ALLOC/FT_QALLOC/ for initialized buffers.
+	* builds/windows/vc2010/freetype.sln: Updated
+	* builds/windows/vc2010/freetype.vcxproj: Updated.
+	* builds/windows/vc2010/freetype.vcxproj.filters: Minor fix.
 
-	* 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-10-21  Ben Wagner  <bungeman at chromium.org>
 
-2021-04-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[mm] Delay setting blend weight and design position.
 
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <drott at chromium.org>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	* builds/unix/freetype2.m4: Fix help string formatting.
-
-	The indented `dnl` macros inserted unwanted horizontal space.
-
-	Problem reported by Ozkan Sezer <sezeroz at gmail.com>.
-
-2021-04-16  Dominik Röttsches  <drott at chromium.org>
-
-	[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  <bungeman at chromium.org>
-
-	[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  <bungeman at chromium.org>
-
-	[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
+	Previously the `blend->weight_vector`, `blend->default_weight_vector`,
+	and `blend->design_pos` were set early to allocated but uninitialized
+	memory under the assumption that the memory would eventually be
+	initialized. However, it is possible that some of the required
+	keywords may not actually be present, leaving the memory uninitialized.
+	This is different from a present but invalid table, which would produce
 	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  <drott at chromium.org>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	* src/sfnt/pngshim.c (Load_SBit_Png): Free `rows` once later.
-
-2021-03-16  Ben Wagner  <bungeman at google.com>
-
-	[sfnt] Fix memory leak in png loading.
-
 	Reported as
+	  https://bugs.chromium.org/p/chromium/issues/detail?id=1261762
 
-	  https://bugs.chromium.org/p/chromium/issues/detail?id=1182552
+	* src/type1/t1load.c (t1_allocate_blend): Remove early allocation and
+	initialization.
+	(parse_blend_design_positions, parse_weight_vector): Parse into local
+	and assign to blend if valid.
+	(T1_Open_Face): Check that if a blend exists that it has the weight
+	vector and design positions.
 
-	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'.
+2021-10-21  Ben Wagner  <bungeman at chromium.org>
 
-	* src/sfnt/pngshim.c (Load_SBit_Png): Fix memory leak of `rows`.
+	[cff] Commit vstore data and regions on allocation.
 
-2021-03-16  Christopher Degawa  <ccom at randomderp.com>
+	The vstore->regionCount and vstore->dataCount were read directly
+	from the data. However, vstore->varRegionList and vstore->varData
+	would still contain uninitialized entries with uninitialized
+	pointers in the event of an error, leading to issues when attempting
+	to clean up.
 
-	* CMakeLists.txt: Don't limit generation of 'pkg-config' file to UNIX.
+	Reportd as
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40104
 
-	mingw-w64 uses the 'pkg-config' files but does not set UNIX.
+	* src/cff/cffload.c (cff_vstore_load): Read the region and data counts
+	into locals and update the vstore counts immediately after each entry
+	becomes free-able.
 
-2021-03-11  Alexei Podtelezhnikov  <apodtele at gmail.com>
+2021-10-20  Ben Wagner  <bungeman at chromium.org>
 
-	* src/smooth/ftgrays.c (gray_set_cell): Refactor to fix VC++ warning.
+	[sfnt] Delay setting gasp ranges and count until computed.
 
-2021-03-13  Werner Lemberg  <wl at gnu.org>
+	Previously, the gasp.numRanges was set and gasp.gaspRanges was
+	allocated and assigned before a possible early exit if the frame could
+	not be entered. It is also possible that the gaspRanges allocation
+	could fail but the numRanges still be set to non-zero. In such cases
+	an error would be returned, but the face would have a gasp in an
+	inconsistent state which may still be accessed.
 
-	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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	* src/smooth/ftgrays.c (FT_INTEGRATE): New convenience macro.
-	(gray_render_line, gray_render_scanline): Use it.
-
-2021-03-09  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	* src/smooth/ftgrays.c (gray_render_line): Rearrange conditionals.
-
-	These produce faster or more optimizable code.
-
-2021-03-08  Tim-Philipp Müller  <tim at centricular.com>
-
-	[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  <tim at centricular.com>
-
-	[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  <tim at centricular.com>
-
-	[meson] Add subproject fallbacks for 'libpng' and 'zlib'.
-
-	* subprojects/libpng.wrap, subprojects/zlib.wrap: New files.
-
-	* meson.build: Updated.
-
-2021-03-07  Xavier Claessens  <xavier.claessens at collabora.com>
-
-	[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  <wl at gnu.org>
-
-	[woff2] Fix memory leak.
-
 	Reported as
+	  https://bugs.chromium.org/p/chromium/issues/detail?id=1261450
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28148
+	* src/sfnt/ttload.c (tt_face_load_gasp): Delay setting gasp.numRanges
+	and gasp.gaspRanges until after the ranges are initialized.
 
-	* 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-10-20  Ben Wagner  <bungeman at chromium.org>
 
-2021-02-22  Werner Lemberg  <wl at gnu.org>
+	[sfnt] Delay setting names and langTags until computed.
 
-	* CMakeLists.txt: Update location of `LICENSE.TXT`.
+	Previously, the table->names and table->langTags fields were created
+	pointing to uninitialized memory and an early exit could happen if the
+	frame could not be entered. The caller would then be unable to properly
+	dispose of the memory as the string fields had not been initialized.
 
-	Fixes #1035.
-
-2021-02-19  Werner Lemberg  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	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  <drott at chromium.org>
-
-	[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  <daniel.engberg.lists at pyret.net>
-
-	* 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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	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  <apodtele at gmail.com>
-
-	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  <drott at chromium.org>
-
-	[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  <drott at chromium.org>
-
-	[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  <xavier.claessens at collabora.com>
-
-	* 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  <xavier.claessens at collabora.com>
-
-	[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  <xavier.claessens at collabora.com>
-
-	[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  <xavier.claessens at collabora.com>
-
-	* 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  <xavier.claessens at collabora.com>
-
-	* 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  <xavier.claessens at collabora.com>
-
-	* 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  <xavier.claessens at collabora.com>
-
-	* 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  <xavier.claessens at collabora.com>
-
-	* meson.build: Set project version.
-
-2021-02-04  Werner Lemberg  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* 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  <apodtele at gmail.com>
-
-	* builds/unix/configure.raw [mmap]: Restore default path.
-
-	Fixes #1023.
-
-2021-02-03  Werner Lemberg  <wl at gnu.org>
-
-	[psaux] Fix integer overflow.
-
 	Reported as
+	  https://bugs.chromium.org/p/chromium/issues/detail?id=1261343
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=30154
+	* src/sfnt/ttload.c (tt_face_load_name): delay setting table->langTags
+	and table->names until after the memory they will point to is fully
+	initialized.
 
-	* src/psaux/psblues.c (cf2_blues_capture): Use `SUB_INT32`.
+2021-10-20  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2021-02-02  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* tests/issue-1063/main.c: s/PATH_MAX/FILENAME_MAX/.
 
-	* builds/unix/configure.raw [mmap support]: Explicitly handle Windows.
+	Closes !97 for Windows by using a standard macro.
 
-	Fixes #1024.
+2021-10-19  Werner Lemberg  <wl at gnu.org>
 
-2021-01-31  Werner Lemberg  <wl at gnu.org>
+	[bdf, cid, pfr, winfonts] Improve rejection of other font formats.
 
-	* builds/unix/configure.raw [mmap support]: Correctly handle Windows.
+	This is mainly for better diagnostics of malformed fonts.
 
-	Fixes #1024.
+	* src/bdf/bdflib.c (_bfd_readstream): Stop font format testing if the first
+	input line is too long or doesn't end with `\r` or `\n`.
 
-2021-01-31  Werner Lemberg  <wl at gnu.org>
+	* src/cid/cidparse.c (cid_parser_new): Don't handle too short input as an
+	error but as an unknown format.
 
-	* builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c`.
+	* src/pfr/pfrobjs.c (pfr_face_init): Ditto.
 
-2021-01-31  Werner Lemberg  <wl at gnu.org>
+	* src/winfonts/winfnt.c (fnt_font_load, fnt_face_get_dll_font): Ditto.
 
-	Always provide logging API.
+2021-10-19  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	It's easier to have stubs if FT_DEBUG_LOGGING is undefined than to
-	modify `ftexport.sym` conditionally.
+	[pcf] Zero out the allocated properties.
 
-	Problem reported by Alexei.
+	Fallout reported as
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40033
 
-	* 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.
+	* src/pcf/pcfread.c (pcf_get_properties): Use FT_NEW_ARRAY and zero
+	out `properties` in case of failure.
 
-2021-01-31  Werner Lemberg  <wl at gnu.org>
+2021-10-18  Werner Lemberg  <wl at gnu.org>
 
-	* builds/unix/configure.raw: Fix typo.
+	configure: Use string comparison for directory inodes.
 
-	Bug introduced in Vincent's last commit bb33f03.
+	Inode values might be larger than integers supported by the shell.
 
-	Fixes issue #1021.
+	Fixes #1105.
 
-2021-01-27  Alexei Podtelezhnikov  <apodtele at gmail.com>
+2021-10-17  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/base/ftstroke.c (FT_Stroker_EndSubPath): Ignore tiny gaps.
+	* src/sfnt/ttload.c (tt_face_load_name): NULL-initialize langTag.
 
-	Fixes bug #1020.
+	Another attempt to fix fallout reported as
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40024
 
-2021-01-27  Alexei Podtelezhnikov  <apodtele at gmail.com>
+2021-10-17  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	[stroker] Minor clean-up.
+	[bdf] Fix up user properties.
 
-	* src/base/ftstroke.c (FT_Stroker_{ConicTo,CubicTo}): Reset the last
-	line length.
-	(FT_Stroker_EndSubPath): Call `ft_stroker_process_corner'.
+	Fallout reported as
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40027
 
-2021-01-27  Vincent Torri  <vincent.torri at gmail.com>
+	* src/bdf/bdflib.c (_bdf_add_property): Cosmetic NULL.
+	(bdf_create_property): Limit allocations to customary signed
+	FT_Long and NULL-initialize unused storage.
+	(bdf_free_font): Do not free unused storage.
 
-	* builds/windows/ftsystem.c: Add shared memory support on Windows.
+2021-10-17  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* 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).
+	* src/sfnt/ttload.c (tt_face_load_name): Accounting fix.
 
-2021-01-23  Werner Lemberg  <wl at gnu.org>
+	Fallout reported as
+	  https://crbug.com/40024
 
-	Require HarfBuzz 2.0.0.
+2021-10-16  Ben Wagner  <bungeman at chromium.org>
 
-	This is needed to make commit f1f9705f9 work.
+	Fix typos in memory macros.
 
-	* CMakeLists.txt (HARFBUZZ_MIN_VERSION), builds/unix/configure.raw
-	(harfbuzz_pkg), meson.build (harfbuzz_dep): Updated.
+	FT_QNEW_ARRAY and FT_QRENEW_ARRAY were using the non-Q
+	FT_MEM_NEW_ARRAY and FT_MEM_RENEW_ARRAY. Change these to use the Q
+	versions. Also fix the one issue discovered in tt_face_load_name
+	where table->names is created with FT_QNEW_ARRAY but the extra
+	string member is not initialized to NULL.
 
-2021-01-22  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* include/freetype/internal/ftmemory.h (FT_Q(RE)NEW_ARRAY):
+	Use FT_MEM_Q(RE)NEW_ARRAY as needed.
 
-	* autogen.sh: Absorb `version.sed'.
-	* version.sed: Removed.
+	* src/sfnt/ttload.c (tt_face_load_name): Initialize `entry->string`.
 
-2021-01-19  Alexei Podtelezhnikov  <apodtele at gmail.com>
+2021-10-15  Ben Wagner  <bungeman at chromium.org>
 
-	* srd/base/ftlcdfil.c (FT_Library_SetLcdGeometry): Fix return value.
+	[truetype] Reload context after re-executing `prep`.
 
-2021-01-15  Nikolaus Waxweiler  <madigens at gmail.com>
+	When a different hinting mode from the current is selected, the `prep` table
+	must be re-executed with the new mode.  After this happens the context must
+	be re-loaded in preparation for the glyph program to be run.
 
-	[afshaper] Fix hb_ot_tags_from_script deprecation warning.
+	Fixes #1104.
 
-	* 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.
+	* truetype/ttgload.c (tt_loader_init): Add call to `TT_Load_Context`.
 
-2021-01-17  Werner Lemberg  <wl at gnu.org>
+2021-10-15  Werner Lemberg  <wl at gnu.org>
 
-	* src/tools/update-copyright-year: Fix single-year entry handling.
+	[truetype] Minor documentation improvements.
 
-2021-01-16  Alexei Podtelezhnikov  <apodtele at gmail.com>
+2021-10-14  Anurag Thakur  <anuthadev at gmail.com>
 
-	* builds/unix/unixddef.mk: Remove the second DEVEL_DIR definition.
+	Add clang build to linux CI
 
-2021-01-14  Dominik Röttsches  <drott at chromium.org>
+2021-10-12  Anurag Thakur  <anuthadev at gmail.com>
 
-	[sfnt] Additional checks for 'colr' table presence.
+	CI: Add macOS CI, including a clang build
 
-	* 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-10-12  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2021-01-13  Dominik Röttsches  <drott at chromium.org>
+	* src/cid/cidload.c (parse_fd_array): Protect against trancation.
 
-	Add config option to test for 'COLR' v1 support in headers.
+2021-10-12  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* 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.
+	[type1] Revert to signed size for binary data.
 
-2020-12-16  Dominik Röttsches  <drott at chromium.org>
+	Recently introduced and reported as
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=39838
 
-	[base] Fill 'COLR' v1 API templates to make them work (#59703).
+	* src/type1/t1load.c (read_binary_data): Reject negative size.
+	(parse_subrs, parse_charstrings): Use customary signed size.
 
-	* 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.
+2021-10-11  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2020-12-16  Dominik Röttsches  <drott at chromium.org>
+	[psaux] Signedness revisions.
 
-	[sfnt] Register 'COLR' v1 API in driver (#59703).
+	Unsigned indexes are easier to check.
 
-	* 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/psaux/cffdecode.c (cff_decoder_parse_charstrings): Updated.
+	* src/psaux/psintrp.c (cf2_interpT2CharString): Ditto.
+	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Ditto.
+	* src/type1/t1load.c (read_binary_data): Ditto.
 
-	* src/sfnt/sfdriver.c (PUT_COLOR_LAYERS_V1): New macro.
-	(sfnt_interface): Add new function pointers.
+2021-10-11  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2020-12-16  Dominik Röttsches  <drott at chromium.org>
+	[cid] Signedness revisions.
 
-	[sfnt] Add 'COLR' v1 API to retrieve color layers (#59703).
+	Unsigned checks are simpler.
 
-	* 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`.
+	* include/freetype/t1tables.h (CID_FaceInfoRec): Change to unsignd
+	`num_dicts`.
+	* src/cid/cidparse.h (CID_Parser): Change to unsigned `num_dict`.
 
-	* src/sfnt/ttcolr.h: Updated.
+	* src/cid/cidgload.c (cid_load_glyph): Updated.
+	* src/cid/cidload.c (cid_load_keyword, parse_fd_array,
+	parse_expansion_factor, parse_font_name, cid_read_subrs,
+	cid_face_open): Updated.
+	* src/cid/cidobjs.c (cid_face_done): Updated.
+	* src/cid/cidparse.c (cid_parser_new): Updated.
 
-2020-12-16  Dominik Röttsches  <drott at chromium.org>
+2021-10-09  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	[sfnt] Add 'COLR' v1 API to iterate color stops (#59703).
+	* src/cid/cidload.c (cid_face_open): Streamline CIDCount check.
 
-	* 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.
+2021-10-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/sfnt/ttcolr.h: Updated.
+	* src/cid/cidload.c (cid_face_open): Streamline SubrCount check.
 
-2020-12-16  Dominik Röttsches  <drott at chromium.org>
+2021-10-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	[sfnt] Add API to get actual paint from `FT_OpaquePaint` (#59703).
+	* src/cid/cidgload.c (cid_load_glyph): Fortify incremental loading.
 
-	* 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.
+2021-10-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/sfnt/ttcolr.h: Updated.
+	Signedness revisions.
 
-2020-12-16  Dominik Röttsches  <drott at chromium.org>
+	This eliminates explicit casting by switching to unsigned fields.
+	The revisions mostly impact the handling of CID fonts.
 
-	[sfnt] Add API to retrieve 'COLR' v1 root paint (#59703).
+	* include/freetype/fttypes.h (FT_Data): Change to unsigned `length`.
+	* include/freetype/t1tables.h (CID_FaceDictRec): Ditto for `sd_bytes`.
+	(CID_FaceInfoRec): Ditto for `gd_bytes` and `gd_bytes`.
+	* include/freetype/internal/tttypes.h (TT_LoaderRec): Ditto for
+	`byte_len`.
 
-	* 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  <drott at chromium.org>
-
-	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  <drott at chromium.org>
-
-	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  <wl at gnu.org>
-
-	* builds/*: s/BUILD_DIR/PLATFORM_DIR/.
-
-	The old variable name caused confusion.
-
-2021-01-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[builds] Revert `FTMODULE_H' changes.
-
-	* builds/toplevel.mk, builds/freetype.mk: Revert changes.
-
-2021-01-07  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[builds] Relocate `FTMODULE_H'.
-
-	* builds/toplevel.mk: Place `FTMODULE_H' in include/.
-	* builds/freetype.mk: Simplify included path.
-
-2021-01-07  Werner Lemberg  <wl at gnu.org>
-
-	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  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	* meson.build: Add summary.
-
-	Based on a patch from Vincent Torri <vincent.torri at gmail.com>.
-
-2021-01-06  Torsten Hilbrich  <emacs.nolkaf at hilbrich.tk>
-
-	* meson.build: Fix 'png' build option (#59458).
-
-	Without this patch, 'png' is always required.
-
-2021-01-04  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[builds/windows] Add SDF to VC2010 project.
-
-	* builds/windows/vc2010/freetype.vcxproj: Updated;
-	AfterBuild conveniences.
-
-2020-12-26  Werner Lemberg  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* src/base/ftobjs.c (pixel_modes): Updated.
-
-2020-12-26  Anuj Verma  <anujv at iitbhilai.ac.in>
-
-	[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  <wl at gnu.org>
-
-	[sdf] Fix `make multi`.
-
-	* src/sdf/ftsdf.c: Include `ftoutln.h`.
-
-2020-12-24  Werner Lemberg  <wl at gnu.org>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[sdf] Add debugging function.
-
-	* src/sdf/ftsdf.c (sdf_shape_dump): New function.
-
-2020-08-20  Anuj Verma  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[sdf] Add function to copy SDF data into output bitmap.
-
-	* src/sdf/ftbsdf.c (finalize_sdf): New function.
-
-2020-08-20  Anuj Verma  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[sdf] Add function to resolve corner distances.
-
-	* src/sdf/ftsdf.c (resolve_corner): New function.
-
-2020-08-18  Anuj Verma  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	[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  <anujv at iitbhilai.ac.in>
-
-	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  <anujv at iitbhilai.ac.in>
-
-	[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  <wl at gnu.org>
-
-	* 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  <qignacio at amazon.com>
-
-	* meson.build (ft2_defines): Fix builds on Windows.
-
-2020-12-18  Tatsuyuki Ishi  <ishitatsuyuki at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	* 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  <chris.liddell at artifex.com>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* builds/unix/configure.raw: Don't set `FT_DEBUG_LOGGING`.
-
-	All debug options are handled exclusively in `ftoption.h`.
-
-2020-12-07  Werner Lemberg  <wl at gnu.org>
-
-	* src/*: More fixes for using a '\n' in `FT_TRACE` and `FT_ERROR`.
-
-2020-12-07  Werner Lemberg  <wl at gnu.org>
-
-	*/*: s/FT_LOGGING/FT_DEBUG_LOGGING/.
-
-2020-12-05  Werner Lemberg  <wl at gnu.org>
-
-	* builds/toplevel.mk (do-dist): Remove `submodules` directory.
-
-2020-12-02  Werner Lemberg  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* submodules/dlg: Updated to commit 9f0c8b22.
-
-2020-12-02  Werner Lemberg  <wl at gnu.org>
-
-	* src/bdf/bdflib.c: Fix `-Wformat` warning.
-
-2020-12-02  Werner Lemberg  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* src/type42/t42parse.c: Fix `-Wformat` warnings.
-
-2020-12-01  Priyesh Kumar  <priyeshkkumar at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	[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  <priyeshkkumar at gmail.com>
-
-	Update logging related documentation.
-
-	* docs/DEBUG: Updates related to `FT_LOGGING`.
-
-	* README.git: Updates related to logging.
-
-2020-11-30  Priyesh Kumar  <priyeshkkumar at gmail.com>
-
-	* src/*: Fix `-Wformat` warnings.
-
-2020-11-30  Priyesh Kumar  <priyeshkkumar at gmail.com>
-
-	[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  <priyeshkkumar at gmail.com>
-
-	[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  <priyeshkkumar at gmail.com>
-
-	[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  <priyeshkkumar at gmail.com>
-
-	[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  <priyeshkkumar at gmail.com>
-
-	[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  <priyeshkkumar at gmail.com>
-
-	[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  <priyeshkkumar at gmail.com>
-
-	* .gitmodules: Add 'dlg' library's git repository as submodule.
-
-2020-12-01  Werner Lemberg  <wl at gnu.org>
-
-	* src/tools/chktrcmp.py (trace_use_pat): Update to current use.
-
-2020-11-20  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	* src/type42/t42parse.c (t42_parse_sfnts): More tracing messages.
-
-2020-11-04  Werner Lemberg  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* 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  <bungeman at google.com>
-
-	* 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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	[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  <apodtele at gmail.com>
-
-	* src/sfnt/tt{colr,cpal}.c: Fix signedness warnings from VC++.
-
-2020-10-17  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	* src/sfnt/sfwoff2.c (Read255UShort): Tweak types to please VC++.
-
-2020-10-10  Werner Lemberg  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	* 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 <emuller at amazon.com>.
-
-2020-09-24  Werner Lemberg  <wl at gnu.org>
-
-	* src/base/ftobjs.c (FT_Load_Glyph): Trace glyph metrics.
-
-2020-09-22  Werner Lemberg  <wl at gnu.org>
-
-	[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  <david at freetype.org>
-
-	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  <wl at gnu.org>
-
-	* scripts/extract_freetype_version.py: Fix regex typos.
-
-2020-09-21  David Turner  <david at freetype.org>
-
-	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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <dalboris at gmail.com>
-
-	[build] Make CMake install basic version information.
-
-	* CMakeLists.txt: Do it.
-
-2020-09-02  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	* 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  <wl at gnu.org>
-
-	* src/truetype/ttgload.c (TT_Get_VMetrics): Add tracing message.
-
-2020-08-05  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	* src/truetype/ttgload.c (TT_Load_Glyph): More tracing.
-
-2020-07-28  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	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  <anujv at iitbhilai.ac.in>
-
-	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  <priyeshkkumar at gmail.com>
-
-	Fix `-Wformat' compiler warnings.
-
-	* src/*: Fix format specifiers.
-
-	* builds/unix/ftsystem.c (FT_Stream_Open): Ditto.
-
-2020-07-25  Werner Lemberg  <wl at gnu.org>
-
-	Fix `-Wformat' compiler warnings.
-
-	Problem reported by Priyesh kumar <priyeshkkumar at gmail.com>
-
-	* 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  <wl at gnu.org>
-
-	* src/sfnt/sfwoff2.c (woff2_decompress): Fix compiler warning.
-
-	Reported by Hin-Tak.
-
-2020-07-12  Werner Lemberg  <wl at gnu.org>
-
-	* builds/unix/configure.raw: Fix inclusion of `ftoption.h'.
-
-2020-07-07  Werner Lemberg  <wl at gnu.org>
-
-	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  <david at freetype.org>
-
-	[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  <david at freetype.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <david at freetype.org>
-
-	[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  <david at freetype.org>
-
-	[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  <david at freetype.org>
-
-	[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  <david at freetype.org>
-
-	[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  <david at freetype.org>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <sebras at gmail.com>
-
-	[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  <sebras at gmail.com>
-
-	[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  <sebras at gmail.com>
-
-	[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  <sebras at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[base] Rework d1180b5f9598 until further notice.
-
-	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Reject large
-	outlines.
-
-2020-06-19  Sebastian Rasmussen  <sebras at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <svenevs.dev at gmail.com>
-
-	[sfnt] Support Intel compilers.
-
-	* src/sfnt/pngshim.c (premultiply_data): Intel compilers do not
-	currently support `__builtin_shuffle'.
-
-2020-06-19  Sebastian Rasmussen  <sebras at gmail.com>
-
-	[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  <sebras at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	* src/cff/cffload.c (cff_index_get_pointers): Rename `t' to `tbl'.
-
-2020-06-19  Sebastian Rasmussen  <sebras at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	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  <david at freetype.org>
-
-	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  <wl at gnu.org>
-
-	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Trace number of cmaps.
-
-2020-05-18  David Turner  <david at freetype.org>
-
-	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  <david at freetype.org>
-
-	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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	* 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  <jalba at vewd.com>
-
-	* 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  <apodtele at gmail.com>
-
-	* builds/freetype.mk: Refactor for readability.
-
-2020-05-02  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	* devel/ft2build.h: Override FT_CONFIG_MODULES_H here as well.
-
-2020-05-01  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <moazinkhatri at gmail.com>
-
-	[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  <bungeman at google.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <bungeman at google.com>
-
-	[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  <wl at gnu.org>
-
-	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  <drott at chromium.org>
-
-	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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <nikolaus.waxweiler at daltonmaag.com>
-
-	[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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Ignore version (#57708).
-
-2020-02-04  Werner Lemberg  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <drott at chromium.org>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[woff2] Allow bitmap-only fonts (#57394).
-
-	* src/sfnt/sfwoff2.c (reconstruct_font): Fix test for `glyf' and
-	`loca' tables.
-
-2019-12-21  Hugh McMaster  <hugh.mcmaster at outlook.com>
-
-	[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  <hugh.mcmaster at outlook.com>
-
-	[docs] (1/2) Move static web assets (#56745).
-
-	* docs/reference/*: Move ...
-	* docs: ... one directory up.
-
-2019-12-21  Dominik Röttsches  <drott at chromium.org>
-
-	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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	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  <drott at chromium.org>
-
-	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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	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  <drott at chromium.org>
-
-	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  <jstracke at Google.com>
-
-	[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  <wl at gnu.org>
-
-	[truetype] Avoid sanitizer warning (#57289).
-
-	* src/truetype/ttpload.c (tt_face_get_device_metrics): Use
-	`FT_OFFSET'.
-
-2019-11-23  Armin Hasitzka  <prince.cherusker at gmail.com>
-
-	[truetype] Fix integer overflow (#57287).
-
-	* src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'.
-
-2019-11-23  Ben Wagner  <bungeman at google.com>
-
-	[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  <jstracke at Google.com>
-            Werner Lemberg  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* 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  <bungeman at google.com>
-
-	[sfnt] Ensure OTTO fonts have tables (#57285).
-
-	* src/sfnt/ttload.c (tt_face_load_font_dir): Add test.
-
-2019-11-23  Behdad Esfahbod  <behdad at behdad.org>
-
-	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  <madigens at gmail.com>
-
-	* 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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	* 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  <apodtele at gmail.com>
-
-	* src/sfnt/pngshim.c (premultiply_data): Optimize for __SSE__ only.
-
-2019-10-10  Werner Lemberg  <wl at gnu.org>
-
-	* 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  <John.Tytgat at esko.com>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	* 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  <apodtele at gmail.com>
-
-	* src/base/ftstroke.c (ft_stroker_inside): Speed up.
-
-2019-10-01  Werner Lemberg  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* src/sfnt/sfwoff2.c (woff2_open_font): Fix sanity check.
-
-	Correct thinkos in patch from 2019-09-01.
-
-2019-09-28  Werner Lemberg  <wl at gnu.org>
-
-	[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  <apodtele at gmail.com>
-
-	* src/base/ftstroke.c (ft_stroker_cap): Speed up caps.
-
-2019-09-25  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	* src/base/ftstroke.c (ft_stroker_outside): Speed up clipped miter.
-	* include/freetype/ftstroke.h: Wordsmith miter docs.
-
-2019-09-25  Werner Lemberg  <wl at gnu.org>
-
-	* 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  <apodtele at gmail.com>
-
-	* src/base/ftstroke.c (ft_stroke_border_arcto): Speed up calculations.
-
-2019-09-20  Nikhil Ramakrishnan  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	* src/otvalid/otvcommon.c (otv_Coverage_get_last): Guard `count'.
-
-	Problem reported by Marc Schönefeld <marc.schoenefeld at gmx.org>.
-
-2019-09-17  Werner Lemberg  <wl at gnu.org>
-
-	* 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)  <avihpit at yahoo.com>
-
-	[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  <wl at gnu.org>
-
-	[cmake] Add brotli support.
-
-	* CMakeLists.txt (FT_WITH_BROTLI): New option.
-
-	* builds/cmake/FindBrotliDec.cmake: New file.
-
-2019-09-05  Werner Lemberg  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	* 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  <drott at chromium.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	* src/sfnt/sfwoff2.c: Improve trace comments.
-
-	Adjust tracing levels for comments, and more formatting.
-
-2019-08-27  Nikhil Ramakrishnan  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[woff2] Minor.
-
-	* src/sfnt/sfwoff2.c (woff2_uncompress): Add error message
-	(woff2_open_font): Free `uncompressed_buf'.
-
-2019-08-27  Nikhil Ramakrishnan  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	* builds/unix/configure.raw: Change argument name to `brotli'.
-
-2019-08-27  Nikhil Ramakrishnan  <ramakrishnan.nikhil at gmail.com>
-
-	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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	* src/sfnt/sfwoff2.c: #undef macros.
-
-2019-08-27  Nikhil Ramakrishnan  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <ramakrishnan.nikhil at gmail.com>
-
-	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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	[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  <apodtele at gmail.com>
-
-	* src/base/ftbbox.c (cubic_peak): Sanitize left shift (#56586).
-
-2019-07-22  Weiyi Wu  <w1w2y3 at gmail.com>
-
-	* src/cid/cidload.c (cid_hex_to_binary): Fix typo (#56653).
-
-2019-07-12  Werner Lemberg  <wl at gnu.org>
-
-	[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  <bungeman at google.com>
-
-	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  <wl at gnu.org>
-
-	[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 <chris.liddell at artifex.com>
-
-	[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  <wl at gnu.org>
-
-	* 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  <apodtele at gmail.com>
-
-	* src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Fix inequality.
-
-	Reported by Armin Hasitzka.
-
-2019-06-16  Werner Lemberg  <wl at gnu.org>
-
-	* src/tools/apinames.c: Formatting, minor edits.
-
-2019-06-16  Werner Lemberg  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	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
-	<joukj at hrem.nano.tudelft.nl>.
-
-	* builds/vms/ftconfig.h: Update, also from Jouk.
-
-2019-06-13  Werner Lemberg  <wl at gnu.org>
-
-	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Minor.
-
-2019-06-13  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	* 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  <apodtele at gmail.com>
-
-	* src/truetype/ttobjs.c (tt_check_trickyness_family): Add `const'.
-
-2019-06-11  Moazin Khatti  <moazinkhatri at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <philip.race at oracle.com>
-
-	* src/base/ftinit.c (FT_Set_Default_Properties): Fix crash.
-
-	Terminate loop at end of environment.
-
-2019-05-31  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	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  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	[base] Fix `make multi'.
-
-	Reported by Nikhil.
-
-	* src/base/fterrors.c: Include FT_INTERNAL_DEBUG_H.
-
-2019-05-29  Ben Wagner  <bungeman at google.com>
-
-	[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  <wl at gnu.org>
-
-	[truetype] Fix 32bit builds (#56404).
-
-	Patch suggested by Ben Wagner <bungeman at google.com>.
-
-	* src/truetype/ttgxvar.c (FT_fixedToInt, FT_fixedToFdot6): Remove
-	harmful cast to unsigned type.
-
-2019-05-26  Ben Wagner  <bungeman at google.com>
-
-	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Improve accuracy.
-
-2019-05-23  Werner Lemberg  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* src/truetype/ttinterp.c (opcode_name): Improve mnemonics.
-
-2019-05-16  Werner Lemberg  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	[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  <joukj at hrem.nano.tudelft.nl>
-
-	* vms_make.com: Updated.  Handle `bzip2' directory, too.
-
-2019-05-13  Werner Lemberg  <wl at gnu.org>
-
-	* src/psaux/psfont.c (cf2_font_setup): Fix compiler warning.
-
-2019-05-12  Werner Lemberg  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Minor.
-
-2019-05-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	* src/raster/ftraster.c (Draw_Sweep): Unbreak.
-
-2019-05-05  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	* src/raster/ftraster.c: Clean-ups.
-
-2019-05-05  Werner Lemberg  <wl at gnu.org>
-
-	* src/truetype/ttgxvar.c: More use of `FT_fdot14ToFixed'.
-
-2019-05-04  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	* src/smooth/ftgrays.c (gray_render_line): Small shortcut.
-
-2019-05-04  Werner Lemberg  <wl at gnu.org>
-
-	Various clang 8.0 static analyzer fixes.
-
-	Reported by Sender Ghost <lightside at gmx.com>.
-
-	* 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  <apodtele at gmail.com>
-
-	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  <apodtele at gmail.com>
-
-	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):
+	* src/cid/cidgload.c (cid_load_glyph): Updated.
+	* src/cid/cidload.h (cid_get_offset): Update argument.
+	* src/cid/cidload.c (cid_get_offset, cid_read_subrs, cid_face_open):
 	Updated.
-	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Updated.
+	* src/cff/cffgload.c (cff_get_glyph_data, cff_free_glyph_data):
+	Updated.
+	* src/psaux/psft.c (cf2_getT1SeacComponent): Updated.
+	* src/truetype/ttgload.c (TT_Process_Composite_Glyph,
+	load_truetype_glyph): Updated.
 
-2019-05-02  Werner Lemberg  <wl at gnu.org>
+2021-10-07  Jan Alexander Steffens (heftig)  <jan.steffens at gmail.com>
 
-	* vms_make.com: Updated (#56253).
+	meson.build (gen_docs): Use `current_source_dir` instead of `source_root`.
 
-	Remove no longer existing directories (`autohint', `otlayout').
-	Update used base extensions.
-	Activate `autofit' module.
-	Add `gxvalid' module.
-	Update copyright notices.
+	These two are not equal when FreeType is used as a subproject, such as in
+	`freetype-demos`.  In that case, `source_root` points at the root project,
+	causing the docs build to fail.
 
-2019-04-29  Alexei Podtelezhnikov  <apodtele at gmail.com>
+2021-10-05  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	[smooth] Simplify cubic Bézier flattening.
+	* src/smooth/ftgrays.c (FT_DIV_MOD): Limit the ARM workaround.
 
-	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.
+2021-10-05  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	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.
+	[builds/unix, builds/vms] Standardize `mmap` failure.
 
-	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.
+	* builds/unix/ftsystem.c (FT_Stream_Open): Check for MAP_FAILED.
+	* builds/vms/ftsystem.c (FT_Stream_Open): Ditto.
 
-	* src/smooth/ftgrays.c (gray_render_cubic): Replace the split
-	condition.
+	This should cover https://savannah.nongnu.org/patch/?5909 as well.
 
-2019-04-26  Alexei Podtelezhnikov  <apodtele at gmail.com>
+2021-10-05  Hugh McMaster  <hugh.mcmaster at outlook.com>
 
-	[smooth] Bithacks and cosmetics.
+	autogen.sh: Only copy submodules if building from a git branch.
 
-	* src/smooth/ftgrays.c (gray_record_cell, gray_set_cell, gray_hline,
-	gray_render_conic, gray_convert_glyph_inner): Updated.
+	`autogen.sh` fails if building from a standard source tarball.  Firstly, git
+	expects to be called in a git repository, then `copy_submodule_files`
+	blindly attempts to copy files.
 
-2019-04-25  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	Debian, Ubuntu, Linux Mint, and other derivatives all run `autogen.sh`
+	before compiling to regenerate build files.
 
-	Optimize Bézier bisections.
+	This patch ensures that various git commands are only called and 'dlg' files
+	are only copied if `autogen.sh` is called from a git repository.
 
-	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.
+2021-10-05  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* 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.
+	* include/freetype/internal/ftgloadr.h: Add missing header.
 
-2019-04-23  Werner Lemberg  <wl at gnu.org>
+	Noticed by Jouk Jansen.
 
-	* src/sfnt/ttcmap.c (tt_cmap12_next): Remove dead code.
+2021-10-05  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	Found by clang 8.0's static analyzer and reported by Sender Ghost
-	<lightside at gmx.com>.
+	[pshinter] Additional clean-ups.
 
-2019-04-23  Werner Lemberg  <wl at gnu.org>
+	* src/pshinter/pshalgo.h (psh_hint_table_find_strong_points): Streamline code.
+	* src/pshinter/pshalgo.h (PSH_Glyph): Remove unused fields.
 
-	[base] Fix thinko in previous commit.
+2021-10-04  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/base/ftbitmap.c (FT_Bitmap_Blend): Check final width, not
-	target pitch.
+	[pshinter] More convenient direction definition.
 
-	Problem reported by Sender Ghost <lightside at gmx.com>.
+	It is easier to check directions using flags than integer values.
 
-2019-04-22  Werner Lemberg  <wl at gnu.org>
+	* src/pshinter/pshalgo.h (PSH_Dir): Redefine directions.
+	(PSH_PointRec): Use them as an enum type.
 
-	* src/base/ftbitmap.c (FT_Bitmap_Blend): Check target pitch.
+	* src/pshinter/pshalgo.c (psh_compute_dir): Modify return type.
+	(psh_glyph_init, psh_hint_table_find_strong_points,
+	psh_glyph_find_blue_points): Update users.
 
-	Problem reported by Sender Ghost <lightside at gmx.com>.
+2021-10-04  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2019-04-22  Werner Lemberg  <wl at gnu.org>
+	[pshinter] Remove unnecessary check.
 
-	Fix return value of `FT_Set_Named_Instance' (#56186).
+	* src/pshinter/pshalgo.c (psh_hint_table_find_strong_points): Do not
+	check if direction is defined before checking how.
 
-	* src/truetype/ttgxvar.c (TT_Set_Named_Instance): Correctly handle
-	internal return value -1 of `TT_Set_Var_Design'.
+2021-10-02  AnuthaDev  <anuthadev at gmail.com>
 
-2019-04-18  Werner Lemberg  <wl at gnu.org>
+	CI: Hardcode meson version to fix build failure on windows
 
-	[pcf] Fix handling of undefined glyph (#56067).
+2021-10-01  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	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).
+	Additional `FT_MSB` macro definitions.
 
-	* 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.
+	* include/freetype/internal/ftcalc.h [__DECC,_CRAYC]: Use builtins
+	and intrinsics.
 
-	* docs/CHANGES: Updated.
+2021-10-01  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2019-04-15  Minmin Gong  <gongminmin at msn.com>
+	* src/autofit/afhints.c (af_glyph_hints_reload): Decrease casting.
 
-	* CMakeLists.txt: Avoid rewriting of unchanged configuration files.
+2021-09-30  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	Reported as
+	* src/tools/apinames.c: Facilitate OpenVMS linker options.
 
-	  https://savannah.nongnu.org/patch/index.php?9755
+2021-09-29  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2019-04-15  JDG  <JonathanG at iQmetrix.com>
+	* src/winfonts/winfnt.c (FNT_Face_Init): Correct reallocation.
 
-	* src/tools/apinames.c (main): Fix error message.
+2021-09-25  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	Reported as
+	[builds/unix] Do not use autoconf SIZEOF.
 
-	  https://savannah.nongnu.org/patch/?9796
+	* builds/unix/ftconfig.h.in [FT_USE_AUTOCONF_SIZEOF_TYPES]: Removed.
+	* builds/unix/configure.raw: Remove AC_CHECK_SIZEOF and update.
 
-2019-04-11  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	After this commit, autoconf builds will fully rely on <limits.h>
+	rather than falling back on it if AC_CHECK_SIZEOF failed for some
+	reason.  There is a risk that misconfigured cross-compilation might
+	have wrong headers.  Note that Meson and CMake builds always relied on
+	<limits.h> for sizes and availability of integer types.
 
-	[smooth] Fix segfault in direct mode (#56092).
+2021-09-25  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/base/ftoutln.c (FT_Outline_Render): Set missing clip_box for
-	direct mode.
-	* src/smooth/ftgrays.c (gray_raster_render): Use it.
+	Propagate sign when reading OFF3.
 
-2019-04-06  Werner Lemberg  <wl at gnu.org>
+	Signed 24-bit values are extremely rare.  FreeType only reads them in
+	PFR fonts with bitmap strikes conditionally. They have not been seen
+	in the known fonts.  That is why this bug could never be discovered.
+	`FT_FRAME_OFF3` propagates sign correctly.
 
-	* src/sfnt/ttcmap.c (tt_get_glyph_name): Pacify compiler (#56061).
+	* include/freetype/internal/ftstream.h (FT_PEEK_OFF3, FT_PEEK_OFF3_LE):
+	Propagate sign into 32-bit value.
+	(FT_GET_OFF3, FT_READ_OFF3): Needed fixing but removed as unused.
 
-	This is for Visual Studio 2019 on ARM.
+2021-09-25  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2019-04-06  Werner Lemberg  <wl at gnu.org>
+	[bdf] Simplify comment collection or lack thereof.
 
-	For distribution, replace `.tar.bz2' with `.tar.xz' bundles.
+	BDF comments are neither actually collected nor retrieved. There is
+	no need to be fancy with delimiters.
 
-	* builds/toplevel.mk (build): Do it.
+	* src/bdf/bdflib.c (_add_bdf_comment): Delimit comments with zeros...
+	(bdf_load_font): ...and do not null-terminate comments additionally.
+	(_bdf_parse_glyphs): Check if comments are kept, which they are not.
+	(_bdf_parse_start): Minor clean up.
 
-	* README, docs/CHANGES, docs/release: Updated.
+2021-09-24  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2019-04-06  Antony Lee  <anntzer.lee at gmail.com>
+	Use NULL for pointers only.
 
-	Make `glyph_name' parameter to `FT_Get_Name_Index' a `const'.
+	* src/bdf/bdflib.c (*): Code changes.
+	* include/freetype/freetype.h: Comments only.
+	* src/cff/cffload.c, src/cff/cffobjs.c: Ditto.
+	* src/winfonts/winfnt.c: Ditto.
 
-	* 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.
+2021-09-23  Werner Lemberg  <wl at gnu.org>
 
-2019-03-31  Armin Hasitzka  <prince.cherusker at gmail.com>
+	Minor documentation fixes and improvements.
 
-	[cff] Fix boundary checks.
+2021-09-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	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.
+	Reference `fopen` in the docs.
 
-	* src/cff/cffparse.h: Introduce the struct `CFF_T2_StringRec' and
-	the additional field `t2_strings' within `CFF_ParserRec'.
+2021-09-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* 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.
+	[bdf, pcf] Minor optimization.
 
-	Reported as
+	* src/pcf/pcfread.c (pcf_load_font): Do not call `FT_MulDiv` for a
+	small job.
+	* src/bdf/bdfdrivr.c (BDF_Face_Init): Ditto.
+	* src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a comment.
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12137
+2021-09-22  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2019-03-20  Werner Lemberg  <wl at gnu.org>
+	[base] Initialize stream memory earlier.
 
-	[autofit] Fix Mongolian blue zone characters.
+	With Windows memory management tracking heap, it is important to use
+	it during the stream opening fallback. In Unix, the argument is
+	unused, but it is better to set it correctly.
 
-	* 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.
+	* src/base/ftobjs.c (FT_Stream_New): Set memory before calling
+	`FT_Stream_Open`.
+	* builds/windows/ftsystem.c, builds/unix/ftsystem.c (FT_Stream_Open,
+	ft_close_stream_by_free): Call `ft_alloc` and `ft_free` with proper
+	memory argumment.
 
-2019-03-19  Werner Lemberg  <wl at gnu.org>
+2021-09-22  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	[autofit] Add support for Mongolian script.
+	[builds/windows] Revert back to `CreateFileA` only.
 
-	As a de-facto standard, layouts using this script are constructed
-	horizontally line by line, then the lines are rotated clockwise for
-	vertical display.
+	Calling `CreateFileW` without making sure that the patname is really
+	`wchar_t` is a bad idea and can lead to unpredictable overreads. For
+	Windows CE, we impelemnt the missing API.
 
-	* src/autofit/afblue.dat: Add blue zone data for Mongolian.
-	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+	Fixes #1098 and !76 again.
 
-	* src/autofit/afscript.h: Add Mongolian standard characters.
+	* builds/windows/ftsystem.c (FT_Stream_Open): Call `CreateFileA`.
+	[_WIN32_WCE] (CreateFileA, FileSizeEx): Implement missing interfaces.
 
-	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Mongolian
-	data.
+2021-09-21  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2019-03-15  Werner Lemberg  <wl at gnu.org>
+	* src/bdf/bdflib.c (_bdf_parse_{start,glyphs}): Use appropriate scanner.
 
-	* Version 2.10.0 released.
-	==========================
+2021-09-21  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
+	Minor.
 
-	Tag sources with `VER-2-10-0'.
+2021-09-20  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* docs/VERSION.TXT: Add entry for version 2.10.0.
-	* docs/CHANGES: Updated.
+	* src/cff/cffdrivr.c (cff_ps_get_font_{info,extra}): Use FT_QNEW.
 
-	* 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/.
+2021-09-18  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 10.
-	(FREETYPE_PATCH): Set to 0.
+	[cache] Minor clean-ups.
 
-	* builds/unix/configure.raw (version_info): Set to 23:0:17.
-	* CMakeLists.txt (VERSION_MINOR): Set to 10.
-	(VERSION_PATCH): Set to 0.
+	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Remove parantheses.
+	* src/cache/ftccache.c (FTC_Cache_Lookup): Ditto.
+	(FTC_Cache_RemoveFaceID): Remove unnecessary variable.
 
-	* 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.
+2021-09-17  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/cff/cffparse.c (destrict_c2s_item): Guard function with
-	CFF_CONFIG_OPTION_OLD_ENGINE macro.
+	[builds/windows] Try both wide and narrow `CreateFile`
 
-2019-03-07  Andrei Alexeyev  <0x416b617269 at gmail.com>
-            Werner Lemberg  <wl at gnu.org>
+	Windows handles wchar_t* UTF-16 and char* ANSI (presently UTF-8)
+	filenames using alternative -A and -W API. We'll try them both
+	when opening a file. This means that you should not worry about
+	about conversions.
 
-	Fix invalid function pointer casts.
+	Fixes #1098 and !76.
 
-	This change should allow Freetype to work on WASM/Emscripten without
-	needing `-s EMULATE_FUNCTION_POINTER_CASTS=1'.
+	* builds/windows/ftsystem.c (FT_Stream_Open): Call alternative
+	`CreateFile` in the case of failure.
 
-	* src/autofit/afdummy.c (af_dummy_hints_apply): Fix signature.
+2021-09-17  Edwin Steiner  <edwin.steiner at gmail.com>
 
-	* src/cid/cidload.c (cid_parse_font_matrix, parse_fd_array,
-	parse_expansion_factor, parse_font_name): Return `void', not
-	`FT_Error'.
+	[cff] Explicitly set StandardEncoding or ExpertEncoding offsets.
 
-	* include/freetype/internal/ftobjs.h (FT_CMap_CharVarIsDefaultFunc):
-	Fix signature.
+	Fixes #1097.
 
-2019-03-05  Werner Lemberg  <wl at gnu.org>
+	* src/cff/cffload.c (cff_encoding_load): Set special offset values.
 
-	[base] Handle numeric overflow (#55827).
+2021-09-16  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/base/ftglyph.c (FT_Glyph_Get_CBox): Use `FT_PIX_CEIL_LONG'.
+	[cache] Miscellaneous clean-ups.
 
-2019-03-05  Sebastian Rasmussen  <sebras at gmail.com>
+	* src/cache/ftccache.c (ftc_get_top_node_for_hash, FTC_Cache_Clear):
+	Remove barely used variables.
+	(ftc_cache_add): Adjust casting.
+	* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Remove casting.
+	* src/cache/ftcsbits.c (ftc_snode_load): Remove casting.
 
-	[psaux] Fix use of uninitialized memory (#55832).
+2021-09-16  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* 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.
+	* src/cff/cffload.c (cff_fd_select_get): Remove casting.
 
-2019-02-23  Werner Lemberg  <wl at gnu.org>
+2021-09-16  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/base/ftbitmap.c (FT_Bitmap_Blend): No fractional offsets.
+	* src/pcf/pcfread.c (pcf_read_TOC): Remove casting.
 
-	The function only provided a framework without an actual
-	implementation, which this commit removes.
+2021-09-15  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2019-02-23  Werner Lemberg  <wl at gnu.org>
+	Minor type adjustments.
 
-	* src/tools/update-copyright-year: Insert `(C)'.
+	* src/cff/cffobjs.c (cff_face_init): Reduce casting.
+	* src/truetype/ttobjs.c (tt_size_ready_bytecode): Ditto.
+	* src/type1/t1load.c (T1_Set_MM_Design): Ditto.
 
-2019-02-21  Armin Hasitzka  <prince.cherusker at gmail.com>
+2021-09-15  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	[truetype] Mask numeric overflows.
+	Replace boolean allocation macros with MEM ones.
 
-	* src/truetype/ttinterp.c (Move_CVT, Move_CVT_Stretched, Ins_MIRP):
-	Mask numeric overflows.
+	* src/base/ftbitmap.c (FT_Bitmap_Copy): Use MEM-macro.
+	* src/base/ftobjs.c (ft_glyphslot_alloc_bitmap): Ditto.
+	* src/bzip2/ftbzip2.c (ft_bzip2_alloc): Ditto.
+	* src/cache/ftccache.c (ftc_cache_init): Ditto
+	* src/gzip/ftgzip.c (ft_gzip_alloc): Ditto.
+	* src/psnames/psmodule.c (ps_unicodes_init): Ditto.
+	* src/sfnt/sfobjs.c (sfnt_load_face): Ditto.
+	* src/sfnt/ttload.c (tt_face_load_name): Ditto.
 
-	Reported as
+2021-09-15  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11681
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11734
+	[cache] Revert to some zeroing.
 
-2019-02-21  Armin Hasitzka  <prince.cherusker at gmail.com>
+	* src/cache/ftccache.c (ftc_cache_init, ftc_cache_resize): Zero
+	`buckets` again to fix some crashes.
 
-	[psaux] Mask numeric overflow.
+2021-09-14  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings): Mask numeric
-	overflow.
+	* src/pshinter/pshrec.c (ps_mask_table_merge_all): Tweak loops.
 
-	Reported as
+	Fixes fallout from 731d0b685685 reported as
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13041
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=38685
 
-2019-02-16  Wink Saville  <wink at saville.com>
+2021-09-13  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/autofit/afwarp.h (af_warper_compute): Fix declaration.
+	[cff, pshinter] Clean up unsigned counters.
 
-2019-02-02  Nikolaus Waxweiler  <madigens at gmail.com>
+	Loops with unsigned decrement can be reliably stopped when the counter
+	wraps around after reaching zero.
 
-	[truetype] Apply MVAR hasc, hdsc and hlgp metrics to current FT_Face metrics.
+	* src/cff/cffload.c (cff_charset_compute_cids): Use unsigned counter.
+	* src/pshinter/pshalgo.c (psh_hint_table_activate_mask): Ditto.
+	* src/pshinter/pshrec.c (ps_mask_table_merge): Ditto.
 
-	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.
+2021-09-13  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/truetype/ttgxvar.c (tt_apply_mvar): Implement.
+	[bdf, psnames, sfnt] Avoid some memory zeroing.
 
-2019-02-02  Nikolaus Waxweiler  <madigens at gmail.com>
+	* src/bdf/bdfdrivr.c (BDF_Face_Init): Use Q-macro.
+	* src/sfnt/sfobjs.c (sfnt_load_face): Ditto.
+	* src/psnames/psmodule.c (src/psnames/psmodule.c): Remove zero.
 
-	[sfnt] Use typo metrics if OS/2 fsSelection USE_TYPO_METRICS bit is set.
+2021-09-13  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	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/base/ftobjs.c (FT_CMap_New): Revert to zeroing.
 
-	* src/sfnt/sfobjs.c (sfnt_load_face): Implement.
+	Fixes fallout from c1fa7aa2bc96, reported as
 
-2019-01-18  John Tytgat  <John.Tytgat at esko.com>
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=38641
 
-	[sfnt] Handle TT fonts having two PostScript font names (#55471).
+2021-09-13  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/sfnt/sfdriver.c (sfnt_get_name_id): Prefer English over any
-	other language found for PostScript font names.
+	[truetype] Clean up `exec` initialization.
 
-2019-01-08  Chris Liddell <chris.liddell at artifex.com>
+	* src/truetype/ttinterp.c (Init_Context): Absorbed into...
+	(TT_New_Context): ... this function.
 
-	[psaux] Fix closepath (#55414).
+2021-09-13  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	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.
+	[truetype] Avoid some memory zeroing.
 
-	* src/psauc/psinterp.c (cf2_interpT2CharString) <cf2_cmdCLOSEPATH>:
-	Switch to calling `cf2_glyphpath_closeOpenPath'.
+	* src/truetype/ttgload.c (load_truetype_glyph): Use Q-macro.
+	* src/truetype/ttinterp.c (Update_Max): Ditto.
+	* src/truetype/ttpload.c (src/truetype/ttpload.c): Ditto.
 
-2018-12-29  Werner Lemberg  <wl at gnu.org>
+2021-09-13  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/autofit/aflatin2.c: Some fixes from `aflatin.c' (#55310).
+	[base] Avoid some memory zeroing.
 
-2018-12-25  Werner Lemberg  <wl at gnu.org>
+	* src/base/ftobjs.c (FT_New_Size, FT_CMap_New, FT_CMap_Done,
+	ft_open_face_internal, ft_open_face_internal): Use Q-macros.
 
-	* src/psaux/cffdecode.c (cff_operaor_seac): Fix numeric overflow.
+2021-09-13  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	Reported as
+	[cache, psaux] Remove zeros.
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11915
+	* src/cache/ftcmru.c (FTC_MruList_New): Remove initialization.
+	* src/psaux/psstack.c (cf2_stack_init): Ditto.
 
-2018-12-12  Werner Lemberg  <wl at gnu.org>
+2021-09-12  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	[gxvalid] Fix compiler warnings.
+	[cache] Avoid some memory zeroing.
 
-	* src/gxvalid/gxvjust.c (gxv_just_check_max_gid),
-	src/gxvalid/gxvmort.c (gxv_mort_coverage_validate): Use `FT_UNUSED'.
+	* src/cache/ftcmru.c (FTC_MruList_New): Use Q-macro.
+	* src/cache/ftcmanag.c (FTC_Manager_RegisterCache): Ditto.
+	* src/cache/ftccache.c (ftc_cache_init, ftc_cache_resize): Ditto.
 
-2018-12-11  Werner Lemberg  <wl at gnu.org>
+2021-09-11  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/truetype/ttgload.c (TT_Hint_Glyph): Remove useless test.
+	* src/cache/ftcmanag.c (FTC_Manager_New): Add missing zero.
 
-	`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.
+	Fixes fall out from a7b199d081e7.
 
-2018-12-04  Werner Lemberg  <wl at gnu.org>
+2021-09-10  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	[bdf] Ignore data after `ENDFONT'.
+	[truetype] Tweak `hdmx` checking.
 
-	Reported as
+	Fixes #1096.
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10798
+	* src/truetype/ttpload.c (tt_face_load_hdmx): Account for padding.
 
-	* src/bdf/bdflib.c (_bdf_parse_end): New function.
-	(_bdf_parse_glyphs): Switch to `_bdf_parse_end' after `ENDFONT' has
-	been encountered.
+2021-09-10  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2018-12-02  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[truetype] Tweak `loca` clamping.
 
-	* builds/windows/visualc/freetype.dsp: Dust off.
+	Fixes #1095.
 
-2018-11-27  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/truetype/ttpload.c (tt_face_load_loca): Fix up clamping.
+	* include/freetype/internal/tttypes.h (TT_Face): Correct docs.
 
-	* builds/windows/vc2010/freetype.vcxproj: Simplify.
+2021-09-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2018-11-27  Chris Liddell  <chris.liddell at artifex.com>
+	Fortify memory debugging (cont'd).
 
-	[type1,cff] Add FT_{Set,Get}_MM_WeightVector API calls.
+	* src/base/ftdbgmem.c (FT_DumpMemory): Check for active debugger.
+	(ft_mem_table_destroy): Move `FT_DumpMemory` call from here...
+	(ft_mem_debug_done): ... to here.
 
-	For multiple master fonts, common usage (in Postscript) is to modify
-	the WeightVector of an existing font instance, this addition
-	supports that use.
+2021-09-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* include/freetype/ftmm.h, src/base/ftmm.c (FT_Set_MM_WeightVector,
-	FT_Get_MM_WeightVector): New API functions.
+	Fortify memory debugging.
 
-	* 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.
+	These changes are neccessary to properly recover `memory->user` that
+	holds the Windows heap handle now.
 
-	* src/cffcffdrivr.c (cff_set_mm_weightvector,
-	cff_get_mm_weightvector): New functions.
-	(cff_service_multi_masters): Register them.
+	* src/base/ftdbgmem.c (ft_mem_debug_init): Handle all table allocations,
+	initializations, and sizing instead of...
+	(ft_mem_table_new): ... this function removed.
+	(ft_mem_debug_done): Better check for the active debugger and free the
+	debugger table here instead of...
+	(ft_mem_table_destroy): ... here.
 
-	* src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated.
-	This driver doesn't use the new interface.
+2021-09-08  Werner Lemberg  <wl at gnu.org>
 
-	* 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.
+	src/tools/ftrandom/ftrandom.c (_XOPEN_SOURCE): Set to 600.
 
-2018-11-27  Ben Wagner  <bungeman at google.com>
+	This allows C99 compilation on Solaris.
 
-	[cff] Fix compiler warning (#55105).
+	Problem reported by Mojca Miklavec.
 
-	* src/cff/cffparse.c (cff_parser_run): Guard label only used if
-	CFF_CONFIG_OPTION_OLD_ENGINE is active.
+2021-09-07  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2018-11-27  Ben Wagner  <bungeman at google.com>
+	[builds/windows] Use native memory allocation API.
 
-	[truetype] Fix numeric overflow (#55103).
+	* builds/windows/ftsystem.c (ft_alloc, ft_realloc, ft_free):
+	Wrap HeapAlloc, HeapReAlloc, and HeapFree.
+	(FT_New_Memory): Set the heap handle.
 
-	* src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'.
+2021-09-07  Werner Lemberg  <wl at gnu.org>
 
-2018-11-25  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[dlg] Synchronize with upstream.
 
-	[builds] Belated DLL support with vc2002-vc2008.
+	* src/dlg/dlgwrap.c (_XOPEN_SOURCE): Set to 600.
 
-	The solution and project files should be automatically upgraded for
-	the approriate Visual C++ version.
+	Fixes #1093.
 
-	* 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.
+2021-09-04  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2018-11-22  Armin Hasitzka  <prince.cherusker at gmail.com>
+	Cosmetic zeros.
 
-	* src/cff/cffparse.c: Please the compiler.
+2021-09-03  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2018-11-22  Armin Hasitzka  <prince.cherusker at gmail.com>
+	* src/bdf/bdflib.c (_bdf_parse_start): Keep parser memory.
 
-	[cff] Fix memory overflow.
+2021-09-03  Werner Lemberg  <wl at gnu.org>
 
-	Reported as
+	autogen.sh: Make it work with old Solaris 10 shell.
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9869
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10869
+2021-09-03  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/cff/cffparse.c (destruct_t2s_item, cff_parser_run): Store
-	evaluated T2 charstrings in separately allocated memory.
+	[smooth, raster, sdf] Clean up initialization calls.
 
-2018-11-18  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/raster/ftraster.c (ft_black_init): Removed.
+	(ft_black_new): Clean up.
+	* src/sdf/ftbsdf.c (bsdf_raster_new): Ditto.
+	* src/sdf/ftsdf.c (sdf_raster_new): Ditto.
+	* src/smooth/ftgrays.c (gray_raster_new): Ditto.
 
-	* builds/windows/{visualc,vc2005,vc2008}/freetype.vcproj: Fix it.
+2021-09-03  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2018-11-10  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/cache/ftcmanag.c (FTC_Manager_New): Avoid some zeroing.
 
-	[smooth] Placeholder only for library-enabled LCD filtering.
+2021-09-03  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/smooth/ftsmooth.c (ft_smooth_init): Add disabled
-	`FT_Library_SetLcdFilter' call.
+	* src/bdf/bdflib.c (bdf_load_font): Remove memory shuffling.
 
-2018-11-09  Young Xiao  <yangx92 at hotmail.com>
+2021-09-03  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	[psaux] Add safety guard (#54985).
+	Cosmetic zeros.
 
-	* src/psaux/psobjs.c (cff_builder_close_contour): Do it.
+2021-09-02  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2018-11-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[base] Clean up stream reading.
 
-	* builds/unix/configure.raw: Require `windows.h' for windres.
+	* src/base/ftstream.c (FT_Stream_ReadUShort, FT_Stream_ReadUOffset,
+	FT_Stream_ReadULong and their LE variants): Remove unnecessary
+	initialization and slightly refactor.
+	(FT_Stream_GetByte, FT_Stream_ReadByte): Rename to return unsigned
+	value and align with sister functions.
 
-2018-11-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* include/freetype/internal/ftstream.h (FT_Stream_GetByte,
+	FT_Stream_ReadByte): Update prototypes and caller macros.
 
-	[ftstroke] Fix unpredictable failures (#54986).
+2021-09-02  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/base/ftstroke.c (ft_sroke_border_lineto): Fix lineto check.
+	s/0/NULL/ where appropriate.
 
-2018-11-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
+2021-08-30  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	[ftstroke] Fix unpredictable failures (#54976).
+	* builds/windows/ftsystem.c (FT_Stream_Open): Fix double-close.
 
-	* src/base/ftstroke.c (ft_sroke_border_close): Set the start tags.
+2021-08-30  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2018-11-07  Ben Wagner  <bungeman at google.com>
+	[smooth] Reduce shift in multiply-shift optimization.
 
-	[truetype] Fix VF check from 2018-09-12 (#54973).
+	* src/smooth/ftgrays.c (FT_UDIVPREP, FT_UDIV): Reduce shift.
 
-	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Use correct
-	offsets for estimates.
+	Smaller shifts that keep the division operands of FT_UDIVPREP within
+	32 bits result in slightly faster divisions, which is noticeable in
+	the overall performance.  The loss of precision is tolerable until the
+	divisors (the components dx and dy) approach 32 - PIXEL_BITS. With
+	PIXEL_BITS = 8, this corresponds to 65,000 pixels or the bitmap size
+	that we refuse to render anyway.
 
-2018-11-06  Werner Lemberg  <wl at gnu.org>
+	Using `ftbench -p -s60 -t5 -bc timesi.ttf`,
 
-	[pshinter] Fix numeric overflow.
+	Before: 8.52 us/op
+	After:  8.32 us/op
 
-	Reported as
+2021-08-28  Werner Lemberg  <wl at gnu.org>
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11242
+	[truetype] Fix compilation if !TT_CONFIG_OPTION_BYTECODE_INTERPRETER.
 
-	* src/pshinter/pshrec.c (ps_dimension_add_t1stem): Implement it.
+	* src/truetype/ttgxvar.c (tt_cvt_ready_iterator): Compile function
+	conditionally.
+	(tt_face_vary_cvt) [!TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Add code.
 
-2018-11-06  Werner Lemberg  <wl at gnu.org>
+	Fixes #1091.
 
-	[psaux] Fix timeout in old CFF engine.
+2021-08-27  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	Reported as
+	[builds/windows] Revise SSE2 settings.
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11260
+	* builds/windows/vc2010/freetype.vcxproj [x64]: Remove explicit SSE2.
+	* builds/windows/visualc/freetype.vcproj [Win32]: Add explicit SSE2.
 
-	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
-	<cff_op_sqrt> [CFF_CONFIG_OPTION_OLD_ENGINE]: Fix potential endless
-	loop.
+2021-08-27  Ben Wagner  <bungeman at chromium.org>
 
-2018-11-04  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[smooth] Detect SSE2 with MSVC for x86
 
-	* src/truetype/ttgxvar.c: Use enum definitions.
+	MSVC does not set `__SSE2__`. Instead one must check whether `_M_IX86_FP` is
+	defined and greater than or equal to 2.
 
-2018-11-03  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/smooth/ftgrays.c (FT_SSE2): New macro.
+	Use it where appropriate.
 
-	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Adjust condition.
+2021-08-26  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2018-11-03  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	Expand comment (cont'd).
 
-	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Tracing tweaks.
+2021-08-26  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2018-11-03  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	Expand comment.
 
-	Revert due to specs: [truetype] Speed up variation IUP.
+2021-08-24  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2018-11-02  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/smooth/ftgrays.c (gray_render_conic): Refactor redundancy.
 
-	* src/truetype/ttgxvar.c (ft_var_get_item_delta): Fixed logic.
+2021-08-24  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
 
-	Reported and tested by Behdad.
+	[truetype] Fix for the family name shorter than 8 characters.
 
-2018-11-02  Shailesh Mistry  <shailesh.mistry at hotmail.co.uk>
+	* src/truetype/ttobjs.c (tt_skip_pdffont_random_tag):
+	If the family name to be checked is shorter than 8 characters,
+	do not check its syntax.
 
-	[autofit] Prevent SEGV.
+2021-08-24  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
 
-	See
+	[truetype] Simplify `trick_names'.
 
-	  https://bugs.ghostscript.com/show_bug.cgi?id=697545
+	* src/truetype/ttobjs.c (tt_check_trickyness_family): For the case
+	that the beginning part of a long tricky family name is already
+	registered as another tricky family name, no need to double-check
+	the longer one.  Such long tricky family names are removed from
+	the `trick_names'.
 
-	for more details on how the bug was found.
+2021-08-24  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
 
-	* src/autofit/afloader.c (af_loader_load_glyph): Propagate error
-	code.
+	[truetype] Add 2 tricky font names.
 
-2018-10-31  Alexei Podtelezhnikov <apodtele at gmail.com>
+	Additional fix for the issue #1087.
 
-	[truetype] Speed up variation IUP.
+	* src/truetype/ttobjs.c (tt_check_trickyness_family): Add 2 tricky
+	font names reported in #1087.
 
-	* src/truetype/ttgxvar.c (tt_delta_interpolate): Separate trivial
-	snapping to the same position from true interpolation.
+2021-08-24  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
 
-2018-10-31  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[truetype] New function to skip the randomization tag.
 
-	* src/type1/t1load.c (t1_set_mm_blend): Optimized.
+	* src/truetype/ttobjs.c (tt_skip_pdffont_random_tag):
+	New function to skip the randomization tag in the names of the
+	fonts embedded in a PDF.  It is used by tt_check_trickyness_family(),
+	to keep from mistaking "DLC" in the randomization tag as a
+	tricky font name. See discussion in:
 
-2018-10-31  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	https://lists.nongnu.org/archive/html/freetype-devel/2021-02/msg00002.html
 
-	* src/truetype/ttgxvar.c (ft_var_get_item_delta): Optimized.
+	For technical detail about the randomization tag, please find
+	PDF Reference 5.5.3 "Font Subsets".  Thanks to Justyna Wawrzynska
+	for pointing out the issue caused by the randomization tag.
 
-2018-10-29  Werner Lemberg  <wl at gnu.org>
+2021-08-24  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
 
-	[base] Fix numeric overflow.
+	[truetype] Add checksums for 2 tricky fonts.
 
-	Reported as
+	Thanks to Ting717 for providing sample PDF. Fixes #1087.
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11080
+	* src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): Add
+	checksums for 2 tricky fonts `DFHei-Bd-WIN-HK-BF' and
+	`DFMing-Md-WIN-HK-BF'.
 
-	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Use `MUL_LONG'.
+2021-08-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2018-10-29  Werner Lemberg  <wl at gnu.org>
+	Whitespace formatting.
 
-	[cff] Fix numeric overflow.
+2021-08-22  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	Reported as
+	Decorate const arguments.
 
-	  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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	Revert: Align FreeType with standard C memory management.
-
-2018-10-27  Werner Lemberg  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	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  <markand at malikania.fr>
-
-	* CMakeLists.txt: Specify `RUNTIME DESTINATION'.
-
-	This is needed for DLL builds.
-
-2018-10-07  Werner Lemberg  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <apodtele at gmail.com>
-
-	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  <wl at gnu.org>
-
-	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 <tony.smith at macro4.com>.
-
-	* 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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	* 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  <apodtele at gmail.com>
-
-	* src/base/ftobjs.c (ft_glyphslot_preset_bimap): Further tweak.
-
-2018-09-21  Ben Wagner  <bungeman at google.com>
-
-	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  <wl at gnu.org>
-
-	[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  <apodtele at gmail.com>
-
-	* 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  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Fix last commit.
-
-2018-09-13  Werner Lemberg  <wl at gnu.org>
-
-	* 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  <John.Tytgat at esko.com>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* src/truetype/ttgxvar.c (ft_var_load_gvar): Check `glyphoffsets'.
-
-2018-09-10  Armin Hasitzka  <prince.cherusker at gmail.com>
-
-	* 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  <bungeman at google.com>
-
-	* builds/freetype.mk (refdoc-venv): Ensure python version (#54631).
-
-2018-09-07  Werner Lemberg  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	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  <ramakrishnan.nikhil at gmail.com>
-
-	Add documentation guidelines file.
-
-	* docs/DOCGUIDE: New file.
-
-2018-09-04  Werner Lemberg  <wl at gnu.org>
-
-	* devel/ftoption.h: Synchronize with master `ftoption.h'.
-
-2018-09-03  Nikhil Ramakrishnan  <ramakrishnan.nikhil at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	*/*: s/PSNames/psnames/.
-
-	Only tracing messages are affected.
-
-2018-09-03  Werner Lemberg  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	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  <apodtele at gmail.com>
-
-	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Check glyph format.
-
-2018-08-31  Armin Hasitzka  <prince.cherusker at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	* src/base/ftdebug.c (FT_Throw): Restore missing `FT_UNUSED' calls.
-
-2018-08-31  Werner Lemberg  <wl at gnu.org>
-
-	* src/base/ftdebug.c (FT_Throw): Reduce chattiness.
-
-2018-08-31  Werner Lemberg  <wl at gnu.org>
-
-	* src/autofit/afhints.c (af_glyph_hints_reload): Add initialization.
-
-2018-08-30  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	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  <apodtele at gmail.com>
-
-	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Correct mono.
-
-2018-08-30  Armin Hasitzka  <prince.cherusker at gmail.com>
-
-	[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  <prince.cherusker at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	[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  <apodtele at gmail.com>
-
-	[base] Overflow-resistant bitmap presetting.
-
-	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Implement it.
-
-2018-08-29  Armin Hasitzka  <prince.cherusker at gmail.com>
-
-	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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* src/truetype/ttobjs.c (tt_size_read_bytecode): Trace CVT values.
-
-2018-08-26  Nikhil Ramakrishnan  <ramakrishnan.nikhil at gmail.com>
-
-	* 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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	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  <ramakrishnan.nikhil at gmail.com>
-
-	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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <yangx92 at hotmail.com>
-
-	* builds/mac/ftmac.c (parse_fond): Fix buffer overrun.
-
-	Reported as bug #54515, duplicate of #43540.
-
-2018-08-16  Werner Lemberg  <wl at gnu.org>
-
-	* builds/*/ftsystem.c (FT_COMPONENT): Updated also.
-
-2018-08-15  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	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>:
+	* src/base/ftglyph.c (FT_Glyph_Transform, FT_Glyph_To_Bitmap): Do it.
+	* include/freetype/ftglyph.h (FT_Glyph_Transform, FT_Glyph_To_Bitmap):
 	Do it.
 
-	* src/psaux/pshints.c (cf2_hintmap_build): Ditto.
+2021-08-21  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
-	cf2_cmdVSTEM, cf2_cmdHLINETO, cf2_cmdRRCURVETO, cf2_cmdCALLSUBR,
-	cf2_escHSTEM3, cf2_cmdHINTMASK, cf2_cmdHVCURVETO>: Ditto.
+	[smooth] Clean up the null cell usage.
 
-	* src/truetype/ttinterp.c (TT_RunIns): Ditto.
+	Put the null cell at the end of the pool and store it explicitly so that
+	we can use it as both the limit and the dumpster.
 
-2018-08-14  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/smooth/ftgrays.c (gray_TWorker): Store the last `cell_null` and
+	remove unnecesary fields.
+	(NULL_CELL_PTR, CELL_IS_NULL): Remove in favor of explicit `cell_null`.
+	(gray_dump_cells, gray_set_cell, gray_sweep{,_direct}): Update callers.
+	(gray_convert_glyph_inner): Trace remaining cells (oh well).
+	(gray_convert_glyph): Set up `cell_null` and slightly improve the pool
+	management.
 
-	[bdf] Remove unused fields.
+2021-08-20  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* 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.
+	[base] Restore quiet no-op rendering of bitmap glyphs.
 
-2018-08-14  Werner Lemberg  <wl at gnu.org>
+	Fixes #1076.
 
-	[cff] Fix another segv in old engine.
+	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Discard an error when
+	rendering a bitmap glyph.
 
-	Reported as
+2021-08-20  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9872
+	[smooth] Fortify 64-bit algorithm.
 
-	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
-	[CFF_CONFIG_OPTION_OLD_ENGINE]: Disallow invalid T1 opcodes in
-	dictionaries.
+	* src/smooth/ftgrays.c (FT_UDIVPREP, FT_UDIV): s/long/FT_Int64/ and
+	s/unsigned long/FT_UInt64/.
+	(gray_render_line): Adjust a critical variable type.
 
-2018-08-14  Werner Lemberg  <wl at gnu.org>
+2021-08-20  Carlo Bramini  <carlo.bramix at libero.it>
 
-	[cff] Fix missing error handling.
+	* builds/windows/ftsystem.c (FT_Stream_Open): Support legacy Windows.
 
-	Reported as
+2021-08-20  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9865
+	Determine `long long` availability based on its size.
 
-	* src/psaux/cffparse.c (cff_parser_run)
-	[CFF_CONFIG_OPTION_OLD_ENGINE]: Don't ignore return value of
-	`parse_charstrings_old'.
+	MSVC, for example, used `long long` even without full C99 support.
 
-2018-08-14  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* include/freetype/config/ftstdlib.h: Check if `long long` limits are
+	defined in <limits.h>.
+	* include/freetype/config/integer-types.h: Check `long long` size and
+	use it to typedef FT_Int64.
 
-	[bdf] Remove unused overflow storage.
+2021-08-19  Dominik Röttsches  <drott at chromium.org>
 
-	* 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.
+	[sfnt] Fix format expectation for `COLR` v1 ClipList
 
-2018-08-14  Werner Lemberg  <wl at gnu.org>
+	* src/sfnt/ttcolr.c (tt_face_get_color_glyph_clipbox): Change ClipList
+	format expectation to 1 instead of 0 to make it compliant with the
+	latest spec.
 
-	[cff] Fix segv in old engine.
+2021-08-19  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	Reported as
+	Readily use `long long` as a 64-bit type in C99 mode.
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9864
+	* include/freetype/config/integer-types.h (FT_INT64):
+	FT_CONFIG_OPTION_FORCE_INT64 is no longer required to use `long long`.
 
-	* 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.
+2021-08-19  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2018-08-13  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	Use FT_INT64 instead of FT_LONG64.
 
-	[bdf] Use unsigned types.
+	* include/freetype/config/integer-types.h: Remove synonymous FT_LONG64.
+	* include/freetype/internal/ftcalc.h: s/FT_LONG64/FT_INT64/.
+	* src/base/ftcalc.c: Ditto.
+	* src/base/fttrigon.c: Ditto.
+	* src/smooth/ftgrays.c: Ditto.
 
-	* src/bdf/bdf.h (bdf_glyph_t): Unsign `encoding'.
-	(bdf_font_t): Unsign `default_char'.
-	* src/bdf/bdfdrivr.h (BDF_encoding_el): Unsign `enc'.
+2021-08-18  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	* 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.
+	[builds/windows] Do not set CharacterSet for VC++.
 
-2018-08-13  Werner Lemberg  <wl at gnu.org>
+	* builds/windows/vc2010/freetype.vcxproj: s/Unicode/NotSet/.
+	* builds/windows/visualc/freetype.vcproj: s/"1"/"0"/.
 
-	* src/type42/t42parse.c (t42_parse_sfnts): One more format check.
+2021-08-18  Werner Lemberg  <wl at gnu.org>
 
-	Reported as
+	* src/sdf/ftsdf.c (get_control_box): Fix compiler warning.
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9832
+2021-08-18  Werner Lemberg  <wl at gnu.org>
 
-2018-08-11  Werner Lemberg  <wl at gnu.org>
+	[base] Fix ppem size overflow.
 
-	* src/base/ftcalc.c (FT_Matrix_Check): Fix integer overflow.
+	Fixes #1086.
 
-	Reported as
+	* src/base/ftobjs.c (FT_Request_Metrics): Add return value.
+	Check whether ppem values fit into unsigned short values.
+	(FT_Request_Size): Updated.
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9811
+	* include/freetype/internal/ftobjs.h: Updated.
 
-2018-08-10  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/cff/cffobjs.c (cff_size_request), src/cid/cidobjs.c
+	(cid_size_request), src/truetype/ttdriver.c (tt_size_request),
+	src/type1/t1objs.c (T1_Size_Request): Updated.
 
-	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Follow specs.
+2021-08-18  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2018-08-10  Ben Wagner  <bungeman at google.com>
+	* builds/windows/ftsystem.c (FT_Stream_Open): Cast to remove warning.
 
-	* src/sfnt/sfobjs.c (sfnt_done_face): Fix memory leak (#54435).
+2021-08-18  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-2018-08-10  Werner Lemberg  <wl at gnu.org>
+	* builds/windows/ftsystem.c (FT_Stream_Open): Support UNICODE compilation.
 
-	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Improve tracing.
+2021-08-09  Werner Lemberg  <wl at gnu.org>
 
-2018-08-10  Werner Lemberg  <wl at gnu.org>
+	* src/sfnt/ttcolr.c (tt_face_get_color_glyph_clipbox): Minor fix.
 
-	Fix clang warnings.
+2021-08-09  Dominik Röttsches  <drott at chromium.org>
 
-	* src/base/ftdebug.c (ft_trace_level_enabled,
-	ft_trace_level_disabled): Add `static' keyword.
+	[sfnt] Add missing blend mode 'plus' to 'COLR' v1.
 
-2018-08-09  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* include/freetype/ftcolor.h (FT_Composite_Mode): Add missing blend mode
+	'plus' after it was added to the spec.
 
-	[raster, smooth] Reinstate bitmap size limits.
+2021-08-08  Werner Lemberg  <wl at gnu.org>
 
-	This again moves outline and bitmap size checks one level up.
+	include/freetype/freetype.h (FT_Encoding): Improve documentation.
 
-	* 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.
+	Based on a suggestion by Antony Lee <anntzer.lee at gmail.com>.
 
-	* 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.
+2021-08-07  Werner Lemberg  <wl at gnu.org>
 
-2018-08-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	[smooth] Avoid integer overflow.
 
-	[pcf] Revert massive unsigning.
-
-2018-08-08  Werner Lemberg  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <apodtele at gmail.com>
-
-	* src/pcf/pcfread.c (pcf_get_bitmaps): Unsign `offsets' and
-	`bitmapSizes'.
-
-2018-08-06  Werner Lemberg  <wl at gnu.org>
-
-	* devel/ftoption.h: Synchronize with main `ftoption.h'.
-
-2018-08-06  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	* src/truetype/ttgload.c (compute_glyph_metrics): Fix overflow.
-
 	Reported as
 
-	  https://bugs.chromium.org/p/chromium/issues/detail?id=777151
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=36243
 
-2018-08-04  Werner Lemberg  <wl at gnu.org>
+	* src/smooth/ftgrays.c(ADD_LONG, SUB_LONG, MUL_LONG, NEG_LONG)
+	[STANDALONE_]: Removed, unused.
+	(ADD_INT) [STANDALONE_]: New macro.
+	(FT_INTEGRATE): Use ADD_INT.
 
-	* src/truetype/ttinterp.c (opcode_name): Fix typos.
+2021-08-07  Dominik Röttsches  <drott at chromium.org>
 
-2018-08-04  Werner Lemberg  <wl at gnu.org>
+	[sfnt] Add API for retrieving a 'COLR' v1 'ClipBox' table.
 
-	Fix clang warnings.
+	The optional 'COLR' v1 glyph-specific clip box helps upstream graphics
+	libraries allocate a sufficiently large bitmap for a glyph without having to
+	traverse the glyph graph for that.  See
 
-	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Fix type of
-	`orientation'.
+	  https://github.com/googlefonts/colr-gradients-spec/issues/251
 
-	* src/gxvalid/gxvcommn.c (gx_lookup_value_read): Fix signature.
+	for background on the introduction of this specification change.
 
-	* src/pcf/pcfread.c (pcf_get_encodings): Fix type of some variables.
-	Add cast.
+	* include/freetype/ftcolor.h (FT_ClipBox): New structure.
+	(FT_Get_Color_Glyph_ClipBox): New function declaration.
 
-	* src/type1/t1load.c (parse_weight_vector): Fix cast.
+	* include/freetype/internal/sfnt.h (TT_Get_Color_Glyph_ClipBox_Func):
+	New function type.
+	(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Use it.
 
-2018-07-31  Werner Lemberg  <wl at gnu.org>
+	* src/base/ftobjs.c (FT_Get_Color_Glyph_ClipBox): New function to link API
+	with SFNT implementation.
 
-	* src/cid/cidtoken.h: Handle `XUID' keyword.
-
-2018-07-31  Werner Lemberg  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* 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  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	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  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	[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  <htl10 at users.sourceforge.net>
-
-	[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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <prince.cherusker at gmail.com>
-
-	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  <wl at gnu.org>
-
-	[cff] Avoid left-shift of negative numbers (#54322).
-
-	* src/cff/cffgload.c (cff_slot_load): Use multiplication.
-
-2018-07-17  Werner Lemberg  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	* src/pcf/pcfread.c (pcf_get_encodings): Trace `defaultChar'.
-
-2018-07-16  Armin Hasitzka  <prince.cherusker at gmail.com>
-
-	* 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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Init `cbox'.
-
-	Taken from patch #9667, written by Steve Langasek
-	<vorlon at debian.org>.
-
-	This fixes a build failure (most probably a bug in gcc) on ppc64el
-	when building with -O3.
-
-2018-07-05  Werner Lemberg  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	Adjust table size comparisons (#54242).
-
-	* src/sfnt/ttcpal.c (tt_face_load_cpal): Implement it.
-
-2018-07-05  Werner Lemberg  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	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  <Jeff.Carey at monotype.com>
-
-	* src/psnames/psmodule.c (ps_unicodes_init): Fix alloc debugging.
-
-2018-07-02  Werner Lemberg  <wl at gnu.org>
-
-	s/palette_types/palette_flags/.
-
-	Suggested by Behdad.
-
-2018-07-02  Werner Lemberg  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	* src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Guard SFNT function.
-
-	Reported by Behdad.
-
-2018-06-28  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	* src/base/fttrigon.c (FT_Tan): Improve accuracy.
-	(FT_Vector_Rotate): Simplify.
-
-2018-06-28  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	* src/base/ftobjs.c (FT_Set_Charmap): Robustify.
-
-2018-06-25  Werner Lemberg  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* 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  <wl at gnu.org>
-
-	[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 <akiem at underware.nl> 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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	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  <apodtele at gmail.com>
-
-	[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  <prince.cherusker at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* src/base/ftbitmap.c (FT_Bitmap_Blend): Avoid integer overflow.
-
-2018-06-16  Werner Lemberg  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	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.c (Colr): New field `clip_list`.
+	(tt_face_load_colr): Parse global clip list offset.
+	(tt_face_get_color_glyph_clipbox): New function to find the clip box for a
+	glyph id from the clip list array.
 	* src/sfnt/ttcolr.h: Updated.
 
-	* src/truetype/ttgload.c (TT_Load_Glyph): Updated.
+2021-08-06  Werner Lemberg  <wl at gnu.org>
 
-2018-06-14  Werner Lemberg  <wl at gnu.org>
+	[smooth] Fix left shifts of negative numbers.
 
-	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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	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  <madigens at gmail.com>
-
-	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  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	* src/sfnt/ttcolr.c (tt_face_load_colr): Improve overflow checks.
-
-2018-06-09  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	[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  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	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  <parthwazurkar at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	[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  <prince.cherusker at gmail.com>
-
-	* src/smooth/ftgrays.c (gray_convert_glyph): Remove unused variables.
-
-2018-06-03  Werner Lemberg  <wl at gnu.org>
-
-	* src/tools/glnames.py (main): Emit header in `light' comment style.
-
-2018-06-02  Alexei Podtelezhnikov  <apodtele at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	* 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
+	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=36241
 
-2018-06-02  Werner Lemberg  <wl at gnu.org>
+	* src/smooth/ftgrays.c (LEFT_SHIFT): New macro.
+	(gray_render_conic) [BEZIER_USE_DDA]: Use it.
 
-	* src/autofit/afwarp.h: Use AF_CONFIG_OPTION_USE_WARPER (#54033).
+2021-08-02  Werner Lemberg  <wl at gnu.org>
 
-2018-05-31  Werner Lemberg  <wl at gnu.org>
+	* meson.build: Fix zlib support.
 
-	* src/raster/ftraster.c (black_TWorker_): Remove `gTarget' field.
+	This commit synchronizes zlib support with both autotools and cmake: If no
+	external zlib is found (or intentionally disabled on the command line), use
+	the internal zlib by undefining `FT_CONFIG_OPTION_SYSTEM_ZLIB` without
+	modifying `FT_CONFIG_OPTION_USE_ZLIB`.
 
-	This is no longer used.
+	Also improve summary output.
 
-2018-05-31  Werner Lemberg  <wl at gnu.org>
+	Problem reported by Moazin.
 
-	[sfnt] Get colors from `CPAL' table in right order (#54015).
+2021-08-02  Anuj Verma  <anujv at iitbhilai.ac.in>
 
-	* src/sfnt/ttcolr.c (tt_face_find_color): Fix it.
+	[sdf] Fix out-of-range-access.
 
-2018-05-30  Werner Lemberg  <wl at gnu.org>
+	* src/sdf/ftbsdf.c (first_pass, second_pass): Fix range during forward pass.
+	Otherwise the index goes out of range for the last column.
 
-	ftcolor.h: Improve API design, fix typos (#54011, #54014).
+	Fixes issue #1077.
 
-	* 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/.
+2021-08-02  Anuj Verma  <anujv at iitbhilai.ac.in>
 
-2018-05-30  Armin Hasitzka  <prince.cherusker at gmail.com>
+	Fix invalid memory access in `bsdf` rasterizer.
 
-	Beautify a3cfed5e87232c933bdc64f43e8ebebcfd18b41b.
+	Do not generate SDF from bitmap if the `FT_GLYPH_OWN_BITMAP` flag is not
+	set.  In some cases the bitmap buffer is freed but still points to a valid
+	address; to handle those cases check the flag before accessing the memory.
 
-	* src/autofit/afloader.c (af_loader_load_glyph): Move the
-	initialisationand declaration of variables into the if-block.
+	* src/sdf/ftsdfrend.c (ft_bsdf_render): Handle the above case.
+	Also, return an error message if the bitmap's rows/pitch is invalid,
+	otherwise `slot->buffer` might be assigned to some invalid memory location.
+	(ft_sdf_render): Same as above.
+	Plus, move the outline back to original state after rasterization and not if
+	any error occurs.
 
-2018-05-30  Armin Hasitzka  <prince.cherusker at gmail.com>
+2021-07-29  Heiko Becker  <heirecka at exherbo.org>
 
-	Fix pointer underflow.
+	* meson.build: Honor `--includedir` instead of hard-coding 'include'.
 
-	The declaration of `edge2' can be reached with `edge1 == NULL' and
-	`axis->edges == 0' which results in undefined behaviour.
+2021-07-29  Werner Lemberg  <wl at gnu.org>
 
-	* src/autofit/afloader.c (af_loader_load_glyph): Initialise `edge2'
-	after checking `axis->num_edges > 1'.  `edge1 != NULL' can be assumed.
+	src/sfnt/ttcolr.c: Minor formatting.
 
-2018-05-30  Werner Lemberg  <wl at gnu.org>
+2021-07-29  Dominik Röttsches  <drott at chromium.org>
 
-	Various minor color fixes.
+	[sfnt] 'COLR' v1 PaintSweepGradient spec update
 
-	* include/freetype/config/ftheader.h (FT_COLOR_H): New macro.
+	* src/sfnt/ttcolr.c (read_paint): PaintSweepGradient follows other
+	spec changes and now has the angles specified as F2DOT14, reflect
+	that in the implementation.
+	* include/freetype/ftcolor.h (FT_PaintSweepGradient): Update
+	documentation.
 
-	* include/freetype/internal/ftobjs.h (FT_Colr_Internal): Change
-	type of `load_flags' to `FT_Int32'.
+2021-07-29  Dominik Röttsches  <drott at chromium.org>
 
-	* 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'.
+	[sfnt] Retrieve affine matrix from offset in 'COLR' v1 parsing.
 
-	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Change type of
-	`load_flags' to `FT_Int32'.
+	* src/sfnt/ttcolr.c (read_paint): Implement spec change where
+	affine transform matrix is now referenced by offset instead of
+	being placed inline in the PaintTransform table.
 
-	* 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.
+2021-07-29  Dominik Röttsches  <drott at chromium.org>
 
-	* src/sfnt/ttcolr.h: Updated.
+	[sfnt] 'COLR' v1 PaintSkew related spec updates
 
-2018-05-25  Nikhil Ramakrishnan  <ramakrishnan.nikhil at gmail.com>
+	* src/sfnt/ttcolr.c (read_paint): Implement spec changes around
+	PaintSkew, PaintSkewAroundCenter.  Update parsing to read shorter
+	values as changed in the spec.
+	* include/freetype/ftcolor.h (FT_PaintSkew): Update documentation.
 
-	[docmaker] Fix missing `Defined in (...)' under Windows/Cygwin.
+2021-07-29  Dominik Röttsches  <drott at chromium.org>
 
-	This platform uses backslashes for paths, which docmaker didn't
-	understand correctly.
+	[sfnt] PaintRotate/PaintRotateAroundCenter spec updates
 
-	* src/tools/docmaker/tohtml.py (HtmlFormatter::blockEnter): Use
-	`os.path.normpath' to normalize the path for the platform being
-	used.
+	* src/sfnt/ttcolr.c (read_paint): Implement spec change where
+	PaintRotate and PaintRotateAroundCenter were split for a more
+	compact format definition.  Update parsing to read shorter values
+	as changed in the spec.
+	* include/freetype/ftcolor.h (FT_PaintRotate): Update documentation.
 
-2018-05-24  Alexei Podtelezhnikov  <apodtele at gmail.com>
+2021-07-29  Dominik Röttsches  <drott at chromium.org>
 
-	[smooth] Formalize Harmony LCD rendering.
+	[sfnt] 'COLR' v1 PaintTranslate and PaintScale precision
 
-	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.
+	* src/sfnt/ttcolr.c (read_paint): Implement spec changes in
+	PaintTranslate and PaintScale and friends.  Update parsing to read
+	new shorter values.
 
-	* 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.
+2021-07-29  AnuthaDev  <anuthadev at gmail.com>
 
-	* src/smooth/ftsmooth.c [!FT_CONFIG_OPTION_SUBPIXEL_RENDERING]
-	(ft_smooth_init): Initialize `lcd_geometry'.
-	(ft_smooth_render_generic): Formalize outline shifts.
+	README.git: Add Code of Conduct.
 
-2018-05-22  Werner Lemberg  <wl at gnu.org>
+2021-07-25  Werner Lemberg  <wl at gnu.org>
 
-	[truetype] Reject elements of composites with invalid glyph indices.
+	ChangeLog housekeeping.
 
-	Reported as
+	Archive old `ChangeLog` file.
 
-	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8413
+	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
 
-	* src/truetype/ttgload.c (TT_Load_Composite_Glyph): Implement it.
+	  gitlog-to-changelog --format='%B%n'
 
-2018-05-22  Werner Lemberg  <wl at gnu.org>
+	or something similar (this script is part of the 'gnulib' repository).
 
-	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Trace # of points.
+2021-07-24  Werner Lemberg  <wl at gnu.org>
 
-2018-05-20  Werner Lemberg  <wl at gnu.org>
+	Fix some `cppcheck` warnings.
 
-	* include/freetype/ftcolor.h: New file.
+	* src/bzip2/ftbzip2.c (ft_bzip2_file_skip_output), src/gzip/ftgzip.c
+	(ft_gzip_file_skip_output): Reduce scope of `delta`.
 
-	This is an interface to the `CPAL' OpenType table.  No
-	implementation yet.
+	* src/psaux/psintrp.c, src/psaux/psintrp.h (cf2_interpT2CharString): Add
+	`const` to `buf` parameter.
 
-2018-05-18  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/raster/ftraster.c (DelOld): Add `const` to `profile` parameter.
+	(Vertical_Sweep_Span): Reduce scope of `target`.
+	(FT_Outline_Get_CBox): Reduce scope of `xMin`, `xMax`, `yMin`, `yMax`.
 
-	* include/freetype/internal/ftcalc.h (FT_MSB): Verified `_MSC_VER'.
+	* src/smooth/ftgrays.c (gray_render_conic): Reduce scope of `split`.
+	(gray_sweep, gray_sweep_direct): Reduce scope of `area`.
 
-	Actually `_BitScanReverse' is available since VS2005.
+	* src/tools/apinames.c (names_dump) <OUTPUT_WATCOM_LBC>: Reduce scope of
+	`temp`.
 
-2018-05-18  Werner Lemberg  <wl at gnu.org>
+2021-07-24  AnuthaDev  <anuthadev at gmail.com>
 
-	* include/freetype/internal/ftcalc.h (FT_MSB): Use `_MSC_VER' value.
+	* .gitlab-ci.yml: Fixed cmake build, using correct options.
 
-	Older VC versions don't provide `_BitScanReverse'.  We test for VC
-	2013.
+2021-07-24  AnuthaDev  <anuthadev at gmail.com>
 
-	Reported by John Emmas <john at creativepost.co.uk>.
+	* CMakeLists.txt: Make `cmake` handle disabled dependencies correctly.
 
-2018-05-17  Werner Lemberg  <wl at gnu.org>
+	Include 'CMakeDependentOption'.
 
-	s/inline/__inline/ for MSVC.
+	Replace `FT_WITH_XXX` options with `FT_DISABLE_XXX` and `FT_REQUIRE_XXX`
+	pairs.  Update option logic accordingly.
 
-	Reported by John Emmas <john at creativepost.co.uk>.
+	Fixes #1066.
 
-	* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Do it.
+2021-07-24  Ben Wagner  <bungeman at chromium.org>
 
-2018-05-16  Werner Lemberg  <wl at gnu.org>
+	[autofit] Split `afwrtsys.h`.
 
-	Add function `FT_Get_GlyphLayers' to access `COLR' table data.
+	The header file `afwrtsys.h` has two distinct functions: to include the
+	required writing system headers and also to generate code for each writing
+	system.  At each current use site only one or the other is used, with
+	various macro trickery selecting one or the other.  Split this header into
+	`afws-decl.h` for the required writing system declarations and `afws-iter.h`
+	for iterating over the writing systems to generate code.
 
-	* 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.
+	The motivation for this change is that the Visual C++ compiler treats the
+	standard include guard idiom like `#pragma once` 'if no non-comment code or
+	preprocessor directive comes before or after the standard form of the
+	idiom'.  It appears to check this after macro expansion, so if
+	`WRITING_SYSTEM` expands to empty the bottom of `afwrtsys.h` is empty and
+	looks like the standard include guard idiom which is treated like `#pragma
+	once`, so subsequent inclusion of `afwrtsys.h` is elided.
 
-	* src/base/ftobjs.c (FT_Get_GlyphLayers): New function.
+	Fixes #1075.
 
-2018-05-15  Alexei Podtelezhnikov  <apodtele at gmail.com>
+	* src/autofit/afglobal.c (af_writing_system_classes), src/autofit/aftypes.h
+	(AF_WritingSystem), src/autofit/rules.mk (AUTOF_DRV_H): Updated.
 
-	[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  <wl at gnu.org>
-
-	[psaux] Fix compiler warning (#53915).
-
-	* src/psaux/psft.c (cf2_freeT1SeacComponent): Do it.
-
-2018-05-15  Werner Lemberg  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	[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  <wl at gnu.org>
-
-	* src/base/ftobjs.c (FT_Load_Glyph): Fix signature of `pixel_modes'.
-
-2018-05-14  Werner Lemberg  <wl at gnu.org>
-
-	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  <wl at gnu.org>
-
-	* src/base/ftobjs.c (FT_Load_Glyph): Improve tracing.
-
-2018-05-13  Shao Yu Zhang  <shaozhang at fb.com>
-	    Werner Lemberg  <wl at gnu.org>
-
-	[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  <arkady.shapkin at gmail.com>
-
-	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  <alan.coopersmith at oracle.com>
-
-	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  <wl at gnu.org>
-
-	[autofit] Avoid potential SEGV if running out of memory.
-
-	Problem reported by Shailesh Mistry <shailesh.mistry at hotmail.co.uk>.
-
-	* 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  <madigens at gmail.com>
-
-	[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  <wl at gnu.org>
-
-	[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  <mpsuzuki at hiroshima-u.ac.jp>
-
-	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  <madigens at gmail.com>
-
-	Unbreak CMake Windows installation
-
-	* CMakeLists.txt: Generate ftconfig.h on non-UNIX.
-
-2018-05-02  Werner Lemberg  <wl at gnu.org>
-
-	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:
+	* src/autofit/afwrtsys.h: Split into...
+	* src/autofit/afws-decl.h, src/autofit/afws-iter.h: New files.

Modified: trunk/Build/source/libs/freetype2/freetype-src/README
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/README	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/README	2021-12-03 04:03:12 UTC (rev 61211)
@@ -1,4 +1,4 @@
-FreeType 2.11.0
+FreeType 2.11.1
 ===============
 
 Homepage: https://www.freetype.org
@@ -30,9 +30,9 @@
 
 and download one of the following files.
 
-  freetype-doc-2.11.0.tar.xz
-  freetype-doc-2.11.0.tar.gz
-  ftdoc2110.zip
+  freetype-doc-2.11.1.tar.xz
+  freetype-doc-2.11.1.tar.gz
+  ftdoc2111.zip
 
 To view the documentation online, go to
 
@@ -88,7 +88,6 @@
 
 Enjoy!
 
-
   The FreeType Team
 
 ----------------------------------------------------------------------

Modified: trunk/Build/source/libs/freetype2/freetype-src/README.git
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/README.git	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/README.git	2021-12-03 04:03:12 UTC (rev 61211)
@@ -72,26 +72,21 @@
 submodule and copies some files into FreeType's source tree.
 
 
-contributing
-------------
+Code of Conduct
+---------------
 
-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
+Please note that  this project is released with a  Contributor Code of
+Conduct (CoC).  By participating in this project you agree to abide by
+its terms, which you can find in the following link:
 
-  https://git.savannah.gnu.org/cgit/gnulib.git/tree/lib/git-merge-changelog.c
+  https://www.freedesktop.org/wiki/CodeOfConduct
 
-To make  it actually work, add  to file `.git/config` in  the FreeType
-git repository (or to your `$HOME/.gitconfig` file) the lines
+CoC issues may  be raised to the project maintainers  at the following
+address:
 
-  [merge "merge-changelog"]
-     name = GNU-style ChangeLog merge driver
-     driver = /usr/local/bin/git-merge-changelog %O %A %B
+  wl at gnu.org
+  apodtele at gmail.com
 
-
 ----------------------------------------------------------------------
 
 Copyright (C) 2005-2021 by

Modified: trunk/Build/source/libs/freetype2/freetype-src/autogen.sh
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/autogen.sh	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/autogen.sh	2021-12-03 04:03:12 UTC (rev 61211)
@@ -110,7 +110,10 @@
   fi
 }
 
-if test ! -f ./builds/unix/configure.raw; then
+# Solaris 10's shell doesn't like the `!` operator to negate the exit status.
+if test -f ./builds/unix/configure.raw; then
+  :
+else
   echo "You must be in the same directory as \`autogen.sh'."
   echo "Bootstrapping doesn't work if srcdir != builddir."
   exit 1
@@ -179,15 +182,19 @@
   cp $DLG_SRC_DIR/* src/dlg
 }
 
-DLG_INC_DIR=subprojects/dlg/include/dlg
-DLG_SRC_DIR=subprojects/dlg/src/dlg
+if test -d ".git"; then
+  DLG_INC_DIR=subprojects/dlg/include/dlg
+  DLG_SRC_DIR=subprojects/dlg/src/dlg
 
-if ! test -d "$DLG_INC_DIR"; then
-  echo "Checking out submodule in \`subprojects/dlg':"
-  git submodule init
-  git submodule update
+  if test -d "$DLG_INC_DIR"; then
+    :
+  else
+    echo "Checking out submodule in \`subprojects/dlg':"
+    git submodule init
+    git submodule update
+  fi
+
+  copy_submodule_files
 fi
 
-copy_submodule_files
-
 # EOF

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/amiga/src/base/ftsystem.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/amiga/src/base/ftsystem.c	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/amiga/src/base/ftsystem.c	2021-12-03 04:03:12 UTC (rev 61211)
@@ -264,7 +264,7 @@
 
     stream->descriptor.pointer = NULL;
     stream->size               = 0;
-    stream->base               = 0;
+    stream->base               = NULL;
   }
 
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/mac/ftmac.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/mac/ftmac.c	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/mac/ftmac.c	2021-12-03 04:03:12 UTC (rev 61211)
@@ -447,7 +447,7 @@
 
     stream->descriptor.pointer = NULL;
     stream->size               = 0;
-    stream->base               = 0;
+    stream->base               = NULL;
   }
 
 
@@ -939,7 +939,7 @@
     if ( lwfn_file_name[0] )
     {
       err = lookup_lwfn_by_fond( pathname, lwfn_file_name,
-                                 buff, sizeof ( buff )  );
+                                 buff, sizeof ( buff ) );
       if ( !err )
         have_lwfn = 1;
     }

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/toplevel.mk
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/toplevel.mk	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/toplevel.mk	2021-12-03 04:03:12 UTC (rev 61211)
@@ -226,6 +226,7 @@
 # else
   version := $(major).$(minor).$(patch)
   winversion := $(major)$(minor)$(patch)
+  version_tag := VER-$(major)-$(minor)-$(patch)
 # endif
 
 
@@ -282,7 +283,11 @@
 CONFIG_GUESS = ~/git/config/config.guess
 CONFIG_SUB   = ~/git/config/config.sub
 
+# We also use this repository to access the gnulib script that converts git
+# commit messages to a ChangeLog file.
+CHANGELOG_SCRIPT = ~/git/config/gitlog-to-changelog
 
+
 # Don't say `make do-dist'.  Always use `make dist' instead.
 #
 .PHONY: do-dist
@@ -299,6 +304,15 @@
 	cp $(CONFIG_GUESS) builds/unix
 	cp $(CONFIG_SUB) builds/unix
 
+	@# Generate `ChangeLog' file with commits since previous release.
+	$(CHANGELOG_SCRIPT) \
+	  --format='%B%n' \
+	  --no-cluster \
+	  -- `git describe --tags \
+	                   --abbrev=0 \
+	                   $(version_tag)^`..$(version_tag) \
+	> ChangeLog
+
 	@# Remove intermediate files created by the `refdoc' target.
 	rm -rf docs/markdown
 	rm -f docs/mkdocs.yml

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/unix/aclocal.m4
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/unix/aclocal.m4	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/unix/aclocal.m4	2021-12-03 04:03:12 UTC (rev 61211)
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
 
-# Copyright (C) 1996-2020 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -736,7 +736,6 @@
     cat <<_LT_EOF >> "$cfgfile"
 #! $SHELL
 # Generated automatically by $as_me ($PACKAGE) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 
 # Provide generalized library-building support services.
@@ -8360,120 +8359,6 @@
          [0], [convert $build files to toolchain format])dnl
 ])# _LT_PATH_CONVERSION_FUNCTIONS
 
-# longlong.m4 serial 17
-dnl Copyright (C) 1999-2007, 2009-2016 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Paul Eggert.
-
-# Define HAVE_LONG_LONG_INT if 'long long int' works.
-# This fixes a bug in Autoconf 2.61, and can be faster
-# than what's in Autoconf 2.62 through 2.68.
-
-# Note: If the type 'long long int' exists but is only 32 bits large
-# (as on some very old compilers), HAVE_LONG_LONG_INT will not be
-# defined. In this case you can treat 'long long int' like 'long int'.
-
-AC_DEFUN([AC_TYPE_LONG_LONG_INT],
-[
-  AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
-  AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
-     [ac_cv_type_long_long_int=yes
-      if test "x${ac_cv_prog_cc_c99-no}" = xno; then
-        ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
-        if test $ac_cv_type_long_long_int = yes; then
-          dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
-          dnl If cross compiling, assume the bug is not important, since
-          dnl nobody cross compiles for this platform as far as we know.
-          AC_RUN_IFELSE(
-            [AC_LANG_PROGRAM(
-               [[@%:@include <limits.h>
-                 @%:@ifndef LLONG_MAX
-                 @%:@ define HALF \
-                          (1LL << (sizeof (long long int) * CHAR_BIT - 2))
-                 @%:@ define LLONG_MAX (HALF - 1 + HALF)
-                 @%:@endif]],
-               [[long long int n = 1;
-                 int i;
-                 for (i = 0; ; i++)
-                   {
-                     long long int m = n << i;
-                     if (m >> i != n)
-                       return 1;
-                     if (LLONG_MAX / 2 < m)
-                       break;
-                   }
-                 return 0;]])],
-            [],
-            [ac_cv_type_long_long_int=no],
-            [:])
-        fi
-      fi])
-  if test $ac_cv_type_long_long_int = yes; then
-    AC_DEFINE([HAVE_LONG_LONG_INT], [1],
-      [Define to 1 if the system has the type 'long long int'.])
-  fi
-])
-
-# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
-# This fixes a bug in Autoconf 2.61, and can be faster
-# than what's in Autoconf 2.62 through 2.68.
-
-# Note: If the type 'unsigned long long int' exists but is only 32 bits
-# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
-# will not be defined. In this case you can treat 'unsigned long long int'
-# like 'unsigned long int'.
-
-AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
-[
-  AC_CACHE_CHECK([for unsigned long long int],
-    [ac_cv_type_unsigned_long_long_int],
-    [ac_cv_type_unsigned_long_long_int=yes
-     if test "x${ac_cv_prog_cc_c99-no}" = xno; then
-       AC_LINK_IFELSE(
-         [_AC_TYPE_LONG_LONG_SNIPPET],
-         [],
-         [ac_cv_type_unsigned_long_long_int=no])
-     fi])
-  if test $ac_cv_type_unsigned_long_long_int = yes; then
-    AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1],
-      [Define to 1 if the system has the type 'unsigned long long int'.])
-  fi
-])
-
-# Expands to a C program that can be used to test for simultaneous support
-# of 'long long' and 'unsigned long long'. We don't want to say that
-# 'long long' is available if 'unsigned long long' is not, or vice versa,
-# because too many programs rely on the symmetry between signed and unsigned
-# integer types (excluding 'bool').
-AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET],
-[
-  AC_LANG_PROGRAM(
-    [[/* For now, do not test the preprocessor; as of 2007 there are too many
-         implementations with broken preprocessors.  Perhaps this can
-         be revisited in 2012.  In the meantime, code should not expect
-         #if to work with literals wider than 32 bits.  */
-      /* Test literals.  */
-      long long int ll = 9223372036854775807ll;
-      long long int nll = -9223372036854775807LL;
-      unsigned long long int ull = 18446744073709551615ULL;
-      /* Test constant expressions.   */
-      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
-                     ? 1 : -1)];
-      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
-                     ? 1 : -1)];
-      int i = 63;]],
-    [[/* Test availability of runtime routines for shift and division.  */
-      long long int llmax = 9223372036854775807ll;
-      unsigned long long int ullmax = 18446744073709551615ull;
-      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
-              | (llmax / ll) | (llmax % ll)
-              | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
-              | (ullmax / ull) | (ullmax % ull));]])
-])
-
 # Helper functions for option handling.                    -*- Autoconf -*-
 #
 #   Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/unix/config.sub
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/unix/config.sub	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/unix/config.sub	2021-12-03 04:03:12 UTC (rev 61211)
@@ -4,7 +4,7 @@
 
 # shellcheck disable=SC2006,SC2268 # see below for rationale
 
-timestamp='2021-07-03'
+timestamp='2021-08-14'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -121,9 +121,11 @@
 
 # Split fields of configuration type
 # shellcheck disable=SC2162
+saved_IFS=$IFS
 IFS="-" read field1 field2 field3 field4 <<EOF
 $1
 EOF
+IFS=$saved_IFS
 
 # Separate into logical components for further validation
 case $1 in
@@ -172,6 +174,10 @@
 						basic_machine=$field1
 						basic_os=$field2
 						;;
+					zephyr*)
+						basic_machine=$field1-unknown
+						basic_os=$field2
+						;;
 					# Manufacturers
 					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
 					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
@@ -931,9 +937,11 @@
 
 	*-*)
 		# shellcheck disable=SC2162
+		saved_IFS=$IFS
 		IFS="-" read cpu vendor <<EOF
 $basic_machine
 EOF
+		IFS=$saved_IFS
 		;;
 	# We use `pc' rather than `unknown'
 	# because (1) that's what they normally are, and
@@ -1313,9 +1321,11 @@
 		;;
 	*-*)
 		# shellcheck disable=SC2162
+		saved_IFS=$IFS
 		IFS="-" read kernel os <<EOF
 $basic_os
 EOF
+		IFS=$saved_IFS
 		;;
 	# Default OS when just kernel was specified
 	nto*)
@@ -1697,7 +1707,7 @@
 # Now, validate our (potentially fixed-up) OS.
 case $os in
 	# Sometimes we do "kernel-libc", so those need to count as OSes.
-	musl* | newlib* | uclibc*)
+	musl* | newlib* | relibc* | uclibc*)
 		;;
 	# Likewise for "kernel-abi"
 	eabi* | gnueabi*)
@@ -1738,7 +1748,7 @@
 	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
 	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
 	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
-	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*)
+	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr*)
 		;;
 	# This one is extra strict with allowed versions
 	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
@@ -1755,11 +1765,12 @@
 # As a final step for OS-related things, validate the OS-kernel combination
 # (given a valid OS), if there is a kernel.
 case $kernel-$os in
-	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* )
+	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
+		   | linux-musl* | linux-relibc* | linux-uclibc* )
 		;;
 	uclinux-uclibc* )
 		;;
-	-dietlibc* | -newlib* | -musl* | -uclibc* )
+	-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
 		# These are just libc implementations, not actual OSes, and thus
 		# require a kernel.
 		echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure	2021-12-03 04:03:12 UTC (rev 61211)
@@ -1,11 +1,12 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for FreeType 2.11.
+# Generated by GNU Autoconf 2.71 for FreeType 2.11.1.
 #
 # Report bugs to <freetype at nongnu.org>.
 #
 #
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
+# Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -16,7 +17,9 @@
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -23,7 +26,7 @@
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else
+else $as_nop
   case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
@@ -33,46 +36,46 @@
 fi
 
 
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
 as_nl='
 '
 export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
+IFS=" ""	$as_nl"
 
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh).  This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2)            ; then :; else exec 2>/dev/null; fi
+
 # The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
   PATH_SEPARATOR=:
   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -81,13 +84,6 @@
 fi
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
 # Find who we are.  Look in the path if we contain no directory separator.
 as_myself=
 case $0 in #((
@@ -96,8 +92,12 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    test -r "$as_dir$0" && as_myself=$as_dir$0 && break
   done
 IFS=$as_save_IFS
 
@@ -109,31 +109,11 @@
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   exit 1
 fi
 
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
 
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
 # Use a proper internal environment variable to ensure we don't fall
   # into an infinite loop, continuously re-executing ourselves.
   if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
@@ -154,13 +134,15 @@
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
 # out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
   fi
   # We don't want this to propagate to other subprocesses.
           { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  as_bourne_compatible="as_nop=:
+if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
@@ -167,7 +149,7 @@
   # is contrary to our usage.  Disable this feature.
   alias -g '\${1+\"\$@\"}'='\"\$@\"'
   setopt NO_GLOB_SUBST
-else
+else \$as_nop
   case \`(set -o) 2>/dev/null\` in #(
   *posix*) :
     set -o posix ;; #(
@@ -187,12 +169,15 @@
 as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
 as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
 as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+if ( set x; as_fn_ret_success y && test x = \"\$1\" )
+then :
 
-else
+else \$as_nop
   exitcode=1; echo positional parameters were not saved.
 fi
 test x\$exitcode = x0 || exit 1
+blah=\$(echo \$(echo blah))
+test x\"\$blah\" = xblah || exit 1
 test -x / || exit 1"
   as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
@@ -207,30 +192,38 @@
     test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
       || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
 test \$(( 1 + 1 )) = 2 || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
+  if (eval "$as_required") 2>/dev/null
+then :
   as_have_required=yes
-else
+else $as_nop
   as_have_required=no
 fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
+then :
 
-else
+else $as_nop
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 as_found=false
 for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
   as_found=:
   case $as_dir in #(
 	 /*)
 	   for as_base in sh bash ksh sh5; do
 	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
+	     as_shell=$as_dir$as_base
 	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+		    as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
   CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+		   if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
+then :
   break 2
 fi
 fi
@@ -238,14 +231,21 @@
        esac
   as_found=false
 done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
 IFS=$as_save_IFS
+if $as_found
+then :
 
+else $as_nop
+  if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi
+fi
 
-      if test "x$CONFIG_SHELL" != x; then :
+
+      if test "x$CONFIG_SHELL" != x
+then :
   export CONFIG_SHELL
              # We cannot yet assume a decent shell, so we have to provide a
 # neutralization value for shells without unset; and this also
@@ -263,18 +263,19 @@
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
 # out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
 exit 255
 fi
 
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+    if test x$as_have_required = xno
+then :
+  printf "%s\n" "$0: This script requires a shell more modern than all"
+  printf "%s\n" "$0: the shells that I found on your system."
+  if test ${ZSH_VERSION+y} ; then
+    printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
   else
-    $as_echo "$0: Please tell bug-autoconf at gnu.org and
+    printf "%s\n" "$0: Please tell bug-autoconf at gnu.org and
 $0: freetype at nongnu.org about your system, including any
 $0: error possibly output before this message. Then install
 $0: a modern shell, or manually run the script under such a
@@ -302,6 +303,7 @@
 }
 as_unset=as_fn_unset
 
+
 # as_fn_set_status STATUS
 # -----------------------
 # Set $? to STATUS, without forking.
@@ -319,6 +321,14 @@
   as_fn_set_status $1
   exit $1
 } # as_fn_exit
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+  return $?
+}
+as_nop=as_fn_nop
 
 # as_fn_mkdir_p
 # -------------
@@ -333,7 +343,7 @@
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -342,7 +352,7 @@
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -381,12 +391,13 @@
 # advantage of any shell optimizations that allow amortized linear growth over
 # repeated appends, instead of the typical quadratic growth present in naive
 # implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
   eval 'as_fn_append ()
   {
     eval $1+=\$2
   }'
-else
+else $as_nop
   as_fn_append ()
   {
     eval $1=\$$1\$2
@@ -398,12 +409,13 @@
 # Perform arithmetic evaluation on the ARGs, and store the result in the
 # global $as_val. Take advantage of shells that can avoid forks. The arguments
 # must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
   eval 'as_fn_arith ()
   {
     as_val=$(( $* ))
   }'
-else
+else $as_nop
   as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
@@ -410,6 +422,14 @@
   }
 fi # as_fn_arith
 
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+  return $?
+}
+as_nop=as_fn_nop
 
 # as_fn_error STATUS ERROR [LINENO LOG_FD]
 # ----------------------------------------
@@ -421,9 +441,9 @@
   as_status=$1; test $as_status -eq 0 && as_status=1
   if test "$4"; then
     as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
   fi
-  $as_echo "$as_me: error: $2" >&2
+  printf "%s\n" "$as_me: error: $2" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
@@ -450,7 +470,7 @@
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
 	    s//\1/
 	    q
@@ -494,7 +514,7 @@
       s/-\n.*//
     ' >$as_me.lineno &&
   chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+    { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
   # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
   # already done that, so ensure we don't try to do so again and fall
@@ -508,6 +528,10 @@
   exit
 }
 
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
 ECHO_C= ECHO_N= ECHO_T=
 case `echo -n x` in #(((((
 -n*)
@@ -521,6 +545,13 @@
   ECHO_N='-n';;
 esac
 
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n.  New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
+
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
@@ -590,8 +621,8 @@
 # Identity of this package.
 PACKAGE_NAME='FreeType'
 PACKAGE_TARNAME='freetype'
-PACKAGE_VERSION='2.11'
-PACKAGE_STRING='FreeType 2.11'
+PACKAGE_VERSION='2.11.1'
+PACKAGE_STRING='FreeType 2.11.1'
 PACKAGE_BUGREPORT='freetype at nongnu.org'
 PACKAGE_URL=''
 
@@ -598,30 +629,16 @@
 ac_unique_file="ftconfig.h.in"
 # Factoring default headers for most tests.
 ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
+#include <stddef.h>
+#ifdef HAVE_STDIO_H
+# include <stdio.h>
 #endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
+#ifdef HAVE_STDLIB_H
 # include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
 #endif
 #ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-#  include <memory.h>
-# endif
 # include <string.h>
 #endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
 #ifdef HAVE_INTTYPES_H
 # include <inttypes.h>
 #endif
@@ -628,11 +645,21 @@
 #ifdef HAVE_STDINT_H
 # include <stdint.h>
 #endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
 #ifdef HAVE_UNISTD_H
 # include <unistd.h>
 #endif"
 
-ac_header_list=
+ac_header_c_list=
+ac_func_c_list=
 ac_subst_vars='LTLIBOBJS
 LIBOBJS
 build_libtool_libs
@@ -740,6 +767,7 @@
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -770,7 +798,6 @@
 with_gnu_ld
 with_sysroot
 enable_libtool_lock
-enable_biarch_config
 enable_freetype_config
 enable_largefile
 enable_mmap
@@ -847,6 +874,7 @@
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -876,8 +904,6 @@
   *)    ac_optarg=yes ;;
   esac
 
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
   case $ac_dashdash$ac_option in
   --)
     ac_dashdash=yes ;;
@@ -918,9 +944,9 @@
     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
+      as_fn_error $? "invalid feature name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "enable_$ac_useropt"
@@ -944,9 +970,9 @@
     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
+      as_fn_error $? "invalid feature name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "enable_$ac_useropt"
@@ -1099,6 +1125,15 @@
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1148,9 +1183,9 @@
     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
+      as_fn_error $? "invalid package name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "with_$ac_useropt"
@@ -1164,9 +1199,9 @@
     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
+      as_fn_error $? "invalid package name: \`$ac_useropt'"
     ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
       *"
 "with_$ac_useropt"
@@ -1210,9 +1245,9 @@
 
   *)
     # FIXME: should be removed in autoconf 3.0.
-    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+      printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
     : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
     ;;
 
@@ -1228,7 +1263,7 @@
   case $enable_option_checking in
     no) ;;
     fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
-    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+    *)     printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
 
@@ -1236,7 +1271,7 @@
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
+		libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1292,7 +1327,7 @@
 	 X"$as_myself" : 'X\(//\)[^/]' \| \
 	 X"$as_myself" : 'X\(//\)$' \| \
 	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
+printf "%s\n" X"$as_myself" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -1349,7 +1384,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures FreeType 2.11 to adapt to many kinds of systems.
+\`configure' configures FreeType 2.11.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1389,6 +1424,7 @@
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -1415,7 +1451,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of FreeType 2.11:";;
+     short | recursive ) echo "Configuration of FreeType 2.11.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1428,8 +1464,6 @@
   --enable-fast-install[=PKGS]
                           optimize for fast installation [default=yes]
   --disable-libtool-lock  avoid locking (might break parallel builds)
-  --enable-biarch-config  install biarch ftconfig.h to support multiple
-                          architectures by single file
   --enable-freetype-config
                           install freetype-config
   --disable-largefile     omit support for large files
@@ -1523,9 +1557,9 @@
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -1553,7 +1587,8 @@
 ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 
     cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
+    # Check for configure.gnu first; this name is used for a wrapper for
+    # Metaconfig's "Configure" on case-insensitive file systems.
     if test -f "$ac_srcdir/configure.gnu"; then
       echo &&
       $SHELL "$ac_srcdir/configure.gnu" --help=recursive
@@ -1561,7 +1596,7 @@
       echo &&
       $SHELL "$ac_srcdir/configure" --help=recursive
     else
-      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+      printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
     fi || ac_status=$?
     cd "$ac_pwd" || { ac_status=$?; break; }
   done
@@ -1570,10 +1605,10 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-FreeType configure 2.11
-generated by GNU Autoconf 2.69
+FreeType configure 2.11.1
+generated by GNU Autoconf 2.71
 
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1590,7 +1625,7 @@
 ac_fn_c_try_compile ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
+  rm -f conftest.$ac_objext conftest.beam
   if { { ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
@@ -1597,7 +1632,7 @@
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_compile") 2>conftest.err
   ac_status=$?
   if test -s conftest.err; then
@@ -1605,14 +1640,15 @@
     cat conftest.er1 >&5
     mv -f conftest.er1 conftest.err
   fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
+       } && test -s conftest.$ac_objext
+then :
   ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+  printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_retval=1
@@ -1634,7 +1670,7 @@
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
   ac_status=$?
   if test -s conftest.err; then
@@ -1642,14 +1678,15 @@
     cat conftest.er1 >&5
     mv -f conftest.er1 conftest.err
   fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } > conftest.i && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       }; then :
+       }
+then :
   ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+  printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
     ac_retval=1
@@ -1665,7 +1702,7 @@
 ac_fn_c_try_link ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
+  rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
   if { { ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
@@ -1672,7 +1709,7 @@
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_link") 2>conftest.err
   ac_status=$?
   if test -s conftest.err; then
@@ -1680,7 +1717,7 @@
     cat conftest.er1 >&5
     mv -f conftest.er1 conftest.err
   fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
@@ -1687,10 +1724,11 @@
        } && test -s conftest$ac_exeext && {
 	 test "$cross_compiling" = yes ||
 	 test -x conftest$ac_exeext
-       }; then :
+       }
+then :
   ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+  printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_retval=1
@@ -1712,72 +1750,32 @@
 ac_fn_c_check_header_compile ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 #include <$2>
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$3=yes"
-else
+else $as_nop
   eval "$3=no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_compile
 
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-       $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_retval=$ac_status
-fi
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
 # ac_fn_c_check_func LINENO FUNC VAR
 # ----------------------------------
 # Tests whether FUNC exists, setting the cache variable VAR accordingly
@@ -1784,11 +1782,12 @@
 ac_fn_c_check_func ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* Define $2 to an innocuous variant, in case <limits.h> declares $2.
@@ -1796,16 +1795,9 @@
 #define $2 innocuous_$2
 
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $2 (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+   which can conflict with char $2 (); below.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
+#include <limits.h>
 #undef $2
 
 /* Override any GCC internal prototype to avoid an error.
@@ -1823,7 +1815,7 @@
 #endif
 
 int
-main ()
+main (void)
 {
 return $2 ();
   ;
@@ -1830,314 +1822,87 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   eval "$3=yes"
-else
+else $as_nop
   eval "$3=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 fi
 eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_func
 
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that
+# executables *can* be run.
+ac_fn_c_try_run ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval \${$3+:} false; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_header_compiler=yes
-else
-  ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  ac_header_preproc=yes
-else
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
-  yes:no: )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ---------------------------------- ##
-## Report this to freetype at nongnu.org ##
-## ---------------------------------- ##"
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
 esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-
-# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
-# --------------------------------------------
-# Tries to find the compile-time value of EXPR in a program that includes
-# INCLUDES, setting VAR accordingly. Returns whether the value could be
-# computed
-ac_fn_c_compute_int ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if test "$cross_compiling" = yes; then
-    # Depending upon the size, compute the lo and hi bounds.
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_hi=$ac_mid; break
-else
-  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
-			if test $ac_lo -le $ac_mid; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_lo=$ac_mid; break
-else
-  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
-			if test $ac_mid -le $ac_hi; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  ac_lo= ac_hi=
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_hi=$ac_mid
-else
-  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in #((
-?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
-'') ac_retval=1 ;;
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
 esac
-  else
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-static long int longval () { return $2; }
-static unsigned long int ulongval () { return $2; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then :
+  ac_retval=0
+else $as_nop
+  printf "%s\n" "$as_me: program exited with status $ac_status" >&5
+       printf "%s\n" "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (($2) < 0)
-    {
-      long int i = longval ();
-      if (i != ($2))
-	return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ($2))
-	return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
-else
-  ac_retval=1
+       ac_retval=$ac_status
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-rm -f conftest.val
-
-  fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
-} # ac_fn_c_compute_int
+} # ac_fn_c_try_run
 
-# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
-# ---------------------------------------------
+# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
+# ------------------------------------------------------------------
 # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
-# accordingly.
-ac_fn_c_check_decl ()
+# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR.
+ac_fn_check_decl ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   as_decl_name=`echo $2|sed 's/ *(.*//'`
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+printf %s "checking whether $as_decl_name is declared... " >&6; }
+if eval test \${$3+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
-$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  eval ac_save_FLAGS=\$$6
+  as_fn_append $6 " $5"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 int
-main ()
+main (void)
 {
 #ifndef $as_decl_name
 #ifdef __cplusplus
@@ -2151,27 +1916,50 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$3=yes"
-else
+else $as_nop
   eval "$3=no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+  eval $6=\$ac_save_FLAGS
+
 fi
 eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
-} # ac_fn_c_check_decl
+} # ac_fn_check_decl
+ac_configure_args_raw=
+for ac_arg
+do
+  case $ac_arg in
+  *\'*)
+    ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+  esac
+  as_fn_append ac_configure_args_raw " '$ac_arg'"
+done
+
+case $ac_configure_args_raw in
+  *$as_nl*)
+    ac_safe_unquote= ;;
+  *)
+    ac_unsafe_z='|&;<>()$`\\"*?[ ''	' # This string ends in space, tab.
+    ac_unsafe_a="$ac_unsafe_z#~"
+    ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
+    ac_configure_args_raw=`      printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
+esac
+
 cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by FreeType $as_me 2.11, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
+It was created by FreeType $as_me 2.11.1, which was
+generated by GNU Autoconf 2.71.  Invocation command line was
 
-  $ $0 $@
+  $ $0$ac_configure_args_raw
 
 _ACEOF
 exec 5>>config.log
@@ -2204,8 +1992,12 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    printf "%s\n" "PATH: $as_dir"
   done
 IFS=$as_save_IFS
 
@@ -2240,7 +2032,7 @@
     | -silent | --silent | --silen | --sile | --sil)
       continue ;;
     *\'*)
-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+      ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     case $ac_pass in
     1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
@@ -2275,11 +2067,13 @@
 # WARNING: Use '\'' to represent an apostrophe within the trap.
 # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
 trap 'exit_status=$?
+  # Sanitize IFS.
+  IFS=" ""	$as_nl"
   # Save into config.log some information that might help in debugging.
   {
     echo
 
-    $as_echo "## ---------------- ##
+    printf "%s\n" "## ---------------- ##
 ## Cache variables. ##
 ## ---------------- ##"
     echo
@@ -2290,8 +2084,8 @@
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
@@ -2315,7 +2109,7 @@
 )
     echo
 
-    $as_echo "## ----------------- ##
+    printf "%s\n" "## ----------------- ##
 ## Output variables. ##
 ## ----------------- ##"
     echo
@@ -2323,14 +2117,14 @@
     do
       eval ac_val=\$$ac_var
       case $ac_val in
-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
       esac
-      $as_echo "$ac_var='\''$ac_val'\''"
+      printf "%s\n" "$ac_var='\''$ac_val'\''"
     done | sort
     echo
 
     if test -n "$ac_subst_files"; then
-      $as_echo "## ------------------- ##
+      printf "%s\n" "## ------------------- ##
 ## File substitutions. ##
 ## ------------------- ##"
       echo
@@ -2338,15 +2132,15 @@
       do
 	eval ac_val=\$$ac_var
 	case $ac_val in
-	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	*\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
 	esac
-	$as_echo "$ac_var='\''$ac_val'\''"
+	printf "%s\n" "$ac_var='\''$ac_val'\''"
       done | sort
       echo
     fi
 
     if test -s confdefs.h; then
-      $as_echo "## ----------- ##
+      printf "%s\n" "## ----------- ##
 ## confdefs.h. ##
 ## ----------- ##"
       echo
@@ -2354,8 +2148,8 @@
       echo
     fi
     test "$ac_signal" != 0 &&
-      $as_echo "$as_me: caught signal $ac_signal"
-    $as_echo "$as_me: exit $exit_status"
+      printf "%s\n" "$as_me: caught signal $ac_signal"
+    printf "%s\n" "$as_me: exit $exit_status"
   } >&5
   rm -f core *.core core.conftest.* &&
     rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
@@ -2369,63 +2163,48 @@
 # confdefs.h avoids OS command line length limits that DEFS can exceed.
 rm -f -r conftest* confdefs.h
 
-$as_echo "/* confdefs.h */" > confdefs.h
+printf "%s\n" "/* confdefs.h */" > confdefs.h
 
 # Predefined preprocessor variables.
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
+printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
+printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
+printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
+printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
+printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
 
 
 # Let the site file select an alternate cache file if it wants to.
 # Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
 if test -n "$CONFIG_SITE"; then
-  # We do not want a PATH search for config.site.
-  case $CONFIG_SITE in #((
-    -*)  ac_site_file1=./$CONFIG_SITE;;
-    */*) ac_site_file1=$CONFIG_SITE;;
-    *)   ac_site_file1=./$CONFIG_SITE;;
-  esac
+  ac_site_files="$CONFIG_SITE"
 elif test "x$prefix" != xNONE; then
-  ac_site_file1=$prefix/share/config.site
-  ac_site_file2=$prefix/etc/config.site
+  ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
 else
-  ac_site_file1=$ac_default_prefix/share/config.site
-  ac_site_file2=$ac_default_prefix/etc/config.site
+  ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
 fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+
+for ac_site_file in $ac_site_files
 do
-  test "x$ac_site_file" = xNONE && continue
-  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+  case $ac_site_file in #(
+  */*) :
+     ;; #(
+  *) :
+    ac_site_file=./$ac_site_file ;;
+esac
+  if test -f "$ac_site_file" && test -r "$ac_site_file"; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
     . "$ac_site_file" \
-      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+      || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to load site script $ac_site_file
 See \`config.log' for more details" "$LINENO" 5; }
   fi
@@ -2435,8 +2214,8 @@
   # Some versions of bash will fail to source /dev/null (special files
   # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
   if test /dev/null != "$cache_file" && test -f "$cache_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
       [\\/]* | ?:[\\/]* ) . "$cache_file";;
       *)                      . "./$cache_file";;
@@ -2443,14 +2222,428 @@
     esac
   fi
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
 
-as_fn_append ac_header_list " stdlib.h"
-as_fn_append ac_header_list " unistd.h"
-as_fn_append ac_header_list " sys/param.h"
+# Test code for whether the C compiler supports C89 (global declarations)
+ac_c_conftest_c89_globals='
+/* Does the compiler advertise C89 conformance?
+   Do not test the value of __STDC__, because some compilers set it to 0
+   while being otherwise adequately conformant. */
+#if !defined __STDC__
+# error "Compiler does not advertise C89 conformance"
+#endif
+
+#include <stddef.h>
+#include <stdarg.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7 src/conf.sh.  */
+struct buf { int x; };
+struct buf * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not \xHH hex character constants.
+   These do not provoke an error unfortunately, instead are silently treated
+   as an "x".  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously \x00 != x always comes out true, for an
+   array size at least.  It is necessary to write \x00 == 0 to get something
+   that is true only with -std.  */
+int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) '\''x'\''
+int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
+               int, int);'
+
+# Test code for whether the C compiler supports C89 (body of main).
+ac_c_conftest_c89_main='
+ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
+'
+
+# Test code for whether the C compiler supports C99 (global declarations)
+ac_c_conftest_c99_globals='
+// Does the compiler advertise C99 conformance?
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
+# error "Compiler does not advertise C99 conformance"
+#endif
+
+#include <stdbool.h>
+extern int puts (const char *);
+extern int printf (const char *, ...);
+extern int dprintf (int, const char *, ...);
+extern void *malloc (size_t);
+
+// Check varargs macros.  These examples are taken from C99 6.10.3.5.
+// dprintf is used instead of fprintf to avoid needing to declare
+// FILE and stderr.
+#define debug(...) dprintf (2, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+  int x = 1234;
+  int y = 5678;
+  debug ("Flag");
+  debug ("X = %d\n", x);
+  showlist (The first, second, and third items.);
+  report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+  #error "your preprocessor is broken"
+#endif
+#if BIG_OK
+#else
+  #error "your preprocessor is broken"
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+  int datasize;
+  double data[];
+};
+
+struct named_init {
+  int number;
+  const wchar_t *name;
+  double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+  // See if C++-style comments work.
+  // Iterate through items via the restricted pointer.
+  // Also check for declarations in for loops.
+  for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
+    continue;
+  return 0;
+}
+
+// Check varargs and va_copy.
+static bool
+test_varargs (const char *format, ...)
+{
+  va_list args;
+  va_start (args, format);
+  va_list args_copy;
+  va_copy (args_copy, args);
+
+  const char *str = "";
+  int number = 0;
+  float fnumber = 0;
+
+  while (*format)
+    {
+      switch (*format++)
+	{
+	case '\''s'\'': // string
+	  str = va_arg (args_copy, const char *);
+	  break;
+	case '\''d'\'': // int
+	  number = va_arg (args_copy, int);
+	  break;
+	case '\''f'\'': // float
+	  fnumber = va_arg (args_copy, double);
+	  break;
+	default:
+	  break;
+	}
+    }
+  va_end (args_copy);
+  va_end (args);
+
+  return *str && number && fnumber;
+}
+'
+
+# Test code for whether the C compiler supports C99 (body of main).
+ac_c_conftest_c99_main='
+  // Check bool.
+  _Bool success = false;
+  success |= (argc != 0);
+
+  // Check restrict.
+  if (test_restrict ("String literal") == 0)
+    success = true;
+  char *restrict newvar = "Another string";
+
+  // Check varargs.
+  success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
+  test_varargs_macros ();
+
+  // Check flexible array members.
+  struct incomplete_array *ia =
+    malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+  ia->datasize = 10;
+  for (int i = 0; i < ia->datasize; ++i)
+    ia->data[i] = i * 1.234;
+
+  // Check named initializers.
+  struct named_init ni = {
+    .number = 34,
+    .name = L"Test wide string",
+    .average = 543.34343,
+  };
+
+  ni.number = 58;
+
+  int dynamic_array[ni.number];
+  dynamic_array[0] = argv[0][0];
+  dynamic_array[ni.number - 1] = 543;
+
+  // work around unused variable warnings
+  ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
+	 || dynamic_array[ni.number - 1] != 543);
+'
+
+# Test code for whether the C compiler supports C11 (global declarations)
+ac_c_conftest_c11_globals='
+// Does the compiler advertise C11 conformance?
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
+# error "Compiler does not advertise C11 conformance"
+#endif
+
+// Check _Alignas.
+char _Alignas (double) aligned_as_double;
+char _Alignas (0) no_special_alignment;
+extern char aligned_as_int;
+char _Alignas (0) _Alignas (int) aligned_as_int;
+
+// Check _Alignof.
+enum
+{
+  int_alignment = _Alignof (int),
+  int_array_alignment = _Alignof (int[100]),
+  char_alignment = _Alignof (char)
+};
+_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
+
+// Check _Noreturn.
+int _Noreturn does_not_return (void) { for (;;) continue; }
+
+// Check _Static_assert.
+struct test_static_assert
+{
+  int x;
+  _Static_assert (sizeof (int) <= sizeof (long int),
+                  "_Static_assert does not work in struct");
+  long int y;
+};
+
+// Check UTF-8 literals.
+#define u8 syntax error!
+char const utf8_literal[] = u8"happens to be ASCII" "another string";
+
+// Check duplicate typedefs.
+typedef long *long_ptr;
+typedef long int *long_ptr;
+typedef long_ptr long_ptr;
+
+// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
+struct anonymous
+{
+  union {
+    struct { int i; int j; };
+    struct { int k; long int l; } w;
+  };
+  int m;
+} v1;
+'
+
+# Test code for whether the C compiler supports C11 (body of main).
+ac_c_conftest_c11_main='
+  _Static_assert ((offsetof (struct anonymous, i)
+		   == offsetof (struct anonymous, w.k)),
+		  "Anonymous union alignment botch");
+  v1.i = 2;
+  v1.w.k = 5;
+  ok |= v1.i != 5;
+'
+
+# Test code for whether the C compiler supports C11 (complete).
+ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+${ac_c_conftest_c11_globals}
+
+int
+main (int argc, char **argv)
+{
+  int ok = 0;
+  ${ac_c_conftest_c89_main}
+  ${ac_c_conftest_c99_main}
+  ${ac_c_conftest_c11_main}
+  return ok;
+}
+"
+
+# Test code for whether the C compiler supports C99 (complete).
+ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+
+int
+main (int argc, char **argv)
+{
+  int ok = 0;
+  ${ac_c_conftest_c89_main}
+  ${ac_c_conftest_c99_main}
+  return ok;
+}
+"
+
+# Test code for whether the C compiler supports C89 (complete).
+ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
+
+int
+main (int argc, char **argv)
+{
+  int ok = 0;
+  ${ac_c_conftest_c89_main}
+  return ok;
+}
+"
+
+as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H"
+as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H"
+as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H"
+as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H"
+as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H"
+as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H"
+as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H"
+as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H"
+as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
+as_fn_append ac_header_c_list " sys/param.h sys_param_h HAVE_SYS_PARAM_H"
+as_fn_append ac_func_c_list " getpagesize HAVE_GETPAGESIZE"
+
+# Auxiliary files required by this configure script.
+ac_aux_files="install-sh ltmain.sh config.guess config.sub"
+
+# Locations in which to look for auxiliary files.
+ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.."
+
+# Search for a directory containing all of the required auxiliary files,
+# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
+# If we don't find one directory that contains all the files we need,
+# we report the set of missing files from the *first* directory in
+# $ac_aux_dir_candidates and give up.
+ac_missing_aux_files=""
+ac_first_candidate=:
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in $ac_aux_dir_candidates
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+  as_found=:
+
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}:  trying $as_dir" >&5
+  ac_aux_dir_found=yes
+  ac_install_sh=
+  for ac_aux in $ac_aux_files
+  do
+    # As a special case, if "install-sh" is required, that requirement
+    # can be satisfied by any of "install-sh", "install.sh", or "shtool",
+    # and $ac_install_sh is set appropriately for whichever one is found.
+    if test x"$ac_aux" = x"install-sh"
+    then
+      if test -f "${as_dir}install-sh"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}install-sh found" >&5
+        ac_install_sh="${as_dir}install-sh -c"
+      elif test -f "${as_dir}install.sh"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}install.sh found" >&5
+        ac_install_sh="${as_dir}install.sh -c"
+      elif test -f "${as_dir}shtool"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}shtool found" >&5
+        ac_install_sh="${as_dir}shtool install -c"
+      else
+        ac_aux_dir_found=no
+        if $ac_first_candidate; then
+          ac_missing_aux_files="${ac_missing_aux_files} install-sh"
+        else
+          break
+        fi
+      fi
+    else
+      if test -f "${as_dir}${ac_aux}"; then
+        printf "%s\n" "$as_me:${as_lineno-$LINENO}:   ${as_dir}${ac_aux} found" >&5
+      else
+        ac_aux_dir_found=no
+        if $ac_first_candidate; then
+          ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
+        else
+          break
+        fi
+      fi
+    fi
+  done
+  if test "$ac_aux_dir_found" = yes; then
+    ac_aux_dir="$as_dir"
+    break
+  fi
+  ac_first_candidate=false
+
+  as_found=false
+done
+IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+  as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
+fi
+
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+if test -f "${ac_aux_dir}config.guess"; then
+  ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
+fi
+if test -f "${ac_aux_dir}config.sub"; then
+  ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
+fi
+if test -f "$ac_aux_dir/configure"; then
+  ac_configure="$SHELL ${ac_aux_dir}configure"
+fi
+
 # Check that the precious variables saved in the cache have kept the same
 # value.
 ac_cache_corrupted=false
@@ -2461,12 +2654,12 @@
   eval ac_new_val=\$ac_env_${ac_var}_value
   case $ac_old_set,$ac_new_set in
     set,)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,set)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,);;
     *)
@@ -2475,24 +2668,24 @@
 	ac_old_val_w=`echo x $ac_old_val`
 	ac_new_val_w=`echo x $ac_new_val`
 	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
 	  ac_cache_corrupted=:
 	else
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
 	  eval $ac_var=\$ac_old_val
 	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+printf "%s\n" "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+printf "%s\n" "$as_me:   current value: \`$ac_new_val'" >&2;}
       fi;;
   esac
   # Pass precious variables to config.status.
   if test "$ac_new_set" = set; then
     case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
     *) ac_arg=$ac_var=$ac_new_val ;;
     esac
     case " $ac_configure_args " in
@@ -2502,11 +2695,12 @@
   fi
 done
 if $ac_cache_corrupted; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
+	    and start over" "$LINENO" 5
 fi
 ## -------------------- ##
 ## Main body of script. ##
@@ -2524,7 +2718,7 @@
 
 # Don't forget to update `docs/VERSIONS.TXT'!
 
-version_info='24:0:18'
+version_info='24:1:18'
 
 ft_version=`echo $version_info | tr : .`
 
@@ -2532,55 +2726,30 @@
 
 # checks for system type
 
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
-fi
 
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+  # Make sure we can run config.sub.
+$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+printf %s "checking build system type... " >&6; }
+if test ${ac_cv_build+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_build_alias=$build_alias
 test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+  ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
 test "x$ac_build_alias" = x &&
   as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+printf "%s\n" "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
 *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
@@ -2599,21 +2768,22 @@
 case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+printf %s "checking host system type... " >&6; }
+if test ${ac_cv_host+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test "x$host_alias" = x; then
   ac_cv_host=$ac_cv_build
 else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+  ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
 fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+printf "%s\n" "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
 *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
@@ -2636,6 +2806,15 @@
 
 # checks for programs
 
+
+
+
+
+
+
+
+
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -2644,11 +2823,12 @@
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -2656,11 +2836,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2671,11 +2855,11 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -2684,11 +2868,12 @@
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
@@ -2696,11 +2881,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2711,11 +2900,11 @@
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_CC" = x; then
@@ -2723,8 +2912,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -2737,11 +2926,12 @@
           if test -n "$ac_tool_prefix"; then
     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -2749,11 +2939,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2764,11 +2958,11 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -2777,11 +2971,12 @@
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -2790,15 +2985,19 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
      fi
     ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2814,7 +3013,7 @@
     # However, it has the same basename, so the bogon will be chosen
     # first if we set CC to just the basename; use the full file name.
     shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+    ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
   fi
 fi
 fi
@@ -2821,11 +3020,11 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -2836,11 +3035,12 @@
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
@@ -2848,11 +3048,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2863,11 +3067,11 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -2880,11 +3084,12 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
@@ -2892,11 +3097,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2907,11 +3116,11 @@
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -2923,8 +3132,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -2932,18 +3141,122 @@
 fi
 
 fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
+set dummy ${ac_tool_prefix}clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}clang"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
 
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "clang", so it can be a program name with args.
+set dummy clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="clang"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+fi
+
+
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
 See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
+for ac_option in --version -v -V -qversion -version; do
   { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
@@ -2950,7 +3263,7 @@
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
   if test -s conftest.err; then
@@ -2960,7 +3273,7 @@
     cat conftest.er1 >&5
   fi
   rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
 done
 
@@ -2968,7 +3281,7 @@
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -2980,9 +3293,9 @@
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+printf %s "checking whether the C compiler works... " >&6; }
+ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
 
 # The possible output files:
 ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
@@ -3003,11 +3316,12 @@
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_link_default") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+then :
   # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
 # So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
 # in a Makefile.  We should not override ac_cv_exeext if it was cached,
@@ -3024,7 +3338,7 @@
 	# certainly right.
 	break;;
     *.* )
-	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
 	then :; else
 	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
 	fi
@@ -3040,33 +3354,34 @@
 done
 test "$ac_cv_exeext" = no && ac_cv_exeext=
 
-else
+else $as_nop
   ac_file=''
 fi
-if test -z "$ac_file"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
+if test -z "$ac_file"
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "C compiler cannot create executables
 See \`config.log' for more details" "$LINENO" 5; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+printf %s "checking for C compiler default output file name... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+printf "%s\n" "$ac_file" >&6; }
 ac_exeext=$ac_cv_exeext
 
 rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
 ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+printf %s "checking for suffix of executables... " >&6; }
 if { { ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
@@ -3073,11 +3388,12 @@
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+then :
   # If both `conftest.exe' and `conftest' are `present' (well, observable)
 # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
 # work properly (i.e., refer to `conftest.exe'), while it won't with
@@ -3091,15 +3407,15 @@
     * ) break;;
   esac
 done
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+else $as_nop
+  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
 See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+printf "%s\n" "$ac_cv_exeext" >&6; }
 
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
@@ -3108,7 +3424,7 @@
 /* end confdefs.h.  */
 #include <stdio.h>
 int
-main ()
+main (void)
 {
 FILE *f = fopen ("conftest.out", "w");
  return ferror (f) || fclose (f) != 0;
@@ -3120,8 +3436,8 @@
 ac_clean_files="$ac_clean_files conftest.out"
 # Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+printf %s "checking whether we are cross compiling... " >&6; }
 if test "$cross_compiling" != yes; then
   { { ac_try="$ac_link"
 case "(($ac_try" in
@@ -3129,10 +3445,10 @@
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
   if { ac_try='./conftest$ac_cv_exeext'
   { { case "(($ac_try" in
@@ -3140,10 +3456,10 @@
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; }; then
     cross_compiling=no
   else
@@ -3150,29 +3466,30 @@
     if test "$cross_compiling" = maybe; then
 	cross_compiling=yes
     else
-	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
+	{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
 See \`config.log' for more details" "$LINENO" 5; }
     fi
   fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+printf "%s\n" "$cross_compiling" >&6; }
 
 rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
 ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+printf %s "checking for suffix of object files... " >&6; }
+if test ${ac_cv_objext+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -3186,11 +3503,12 @@
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
+printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_compile") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+then :
   for ac_file in conftest.o conftest.obj conftest.*; do
   test -f "$ac_file" || continue;
   case $ac_file in
@@ -3199,31 +3517,32 @@
        break;;
   esac
 done
-else
-  $as_echo "$as_me: failed program was:" >&5
+else $as_nop
+  printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of object files: cannot compile
 See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+printf "%s\n" "$ac_cv_objext" >&6; }
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+printf %s "checking whether the compiler supports GNU C... " >&6; }
+if test ${ac_cv_c_compiler_gnu+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 #ifndef __GNUC__
        choke me
@@ -3233,29 +3552,33 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_compiler_gnu=yes
-else
+else $as_nop
   ac_compiler_gnu=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
 if test $ac_compiler_gnu = yes; then
   GCC=yes
 else
   GCC=
 fi
-ac_test_CFLAGS=${CFLAGS+set}
+ac_test_CFLAGS=${CFLAGS+y}
 ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+printf %s "checking whether $CC accepts -g... " >&6; }
+if test ${ac_cv_prog_cc_g+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    ac_cv_prog_cc_g=no
@@ -3264,7 +3587,7 @@
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -3271,15 +3594,16 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_prog_cc_g=yes
-else
+else $as_nop
   CFLAGS=""
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -3286,9 +3610,10 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
 
-else
+else $as_nop
   ac_c_werror_flag=$ac_save_c_werror_flag
 	 CFLAGS="-g"
 	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3295,7 +3620,7 @@
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -3302,19 +3627,20 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_prog_cc_g=yes
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
    ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
+if test $ac_test_CFLAGS; then
   CFLAGS=$ac_save_CFLAGS
 elif test $ac_cv_prog_cc_g = yes; then
   if test "$GCC" = yes; then
@@ -3329,95 +3655,145 @@
     CFLAGS=
   fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
+ac_prog_cc_stdc=no
+if test x$ac_prog_cc_stdc = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+printf %s "checking for $CC option to enable C11 features... " >&6; }
+if test ${ac_cv_prog_cc_c11+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  ac_cv_prog_cc_c11=no
 ac_save_CC=$CC
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
+$ac_c_conftest_c11_program
+_ACEOF
+for ac_arg in '' -std=gnu11
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_prog_cc_c11=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+  test "x$ac_cv_prog_cc_c11" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
 
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+if test "x$ac_cv_prog_cc_c11" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+  if test "x$ac_cv_prog_cc_c11" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
+     CC="$CC $ac_cv_prog_cc_c11"
+fi
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+  ac_prog_cc_stdc=c11
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
+printf %s "checking for $CC option to enable C99 features... " >&6; }
+if test ${ac_cv_prog_cc_c99+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_c_conftest_c99_program
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+  test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
 
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
+if test "x$ac_cv_prog_cc_c99" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+  if test "x$ac_cv_prog_cc_c99" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
+     CC="$CC $ac_cv_prog_cc_c99"
+fi
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+  ac_prog_cc_stdc=c99
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
+printf %s "checking for $CC option to enable C89 features... " >&6; }
+if test ${ac_cv_prog_cc_c89+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_c_conftest_c89_program
 _ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
+  if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_prog_cc_c89=$ac_arg
 fi
-rm -f core conftest.err conftest.$ac_objext
+rm -f core conftest.err conftest.$ac_objext conftest.beam
   test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
 rm -f conftest.$ac_ext
 CC=$ac_save_CC
-
 fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
 
+if test "x$ac_cv_prog_cc_c89" = xno
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+  if test "x$ac_cv_prog_cc_c89" = x
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
+     CC="$CC $ac_cv_prog_cc_c89"
 fi
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+  ac_prog_cc_stdc=c89
+fi
+fi
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -3430,18 +3806,19 @@
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+printf %s "checking how to run the C preprocessor... " >&6; }
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
-  if ${ac_cv_prog_CPP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+  if test ${ac_cv_prog_CPP+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+      # Double quotes because $CC needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
     do
       ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
@@ -3448,22 +3825,17 @@
 do
   # Use a header file that comes with gcc, so configuring glibc
   # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+#include <limits.h>
 		     Syntax error
 _ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
 
-else
+else $as_nop
   # Broken: fails on valid input.
 continue
 fi
@@ -3475,10 +3847,11 @@
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
   # Broken: success on invalid input.
 continue
-else
+else $as_nop
   # Passes both tests.
 ac_preproc_ok=:
 break
@@ -3488,7 +3861,8 @@
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
+if $ac_preproc_ok
+then :
   break
 fi
 
@@ -3500,29 +3874,24 @@
 else
   ac_cv_prog_CPP=$CPP
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+printf "%s\n" "$CPP" >&6; }
 ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
 do
   # Use a header file that comes with gcc, so configuring glibc
   # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+#include <limits.h>
 		     Syntax error
 _ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
 
-else
+else $as_nop
   # Broken: fails on valid input.
 continue
 fi
@@ -3534,10 +3903,11 @@
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
   # Broken: success on invalid input.
 continue
-else
+else $as_nop
   # Passes both tests.
 ac_preproc_ok=:
 break
@@ -3547,11 +3917,12 @@
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
+if $ac_preproc_ok
+then :
 
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+else $as_nop
+  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
 See \`config.log' for more details" "$LINENO" 5; }
 fi
@@ -3575,11 +3946,12 @@
 	if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
 set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKG_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKG_CONFIG+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $PKG_CONFIG in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
@@ -3589,11 +3961,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -3605,11 +3981,11 @@
 fi
 PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 if test -n "$PKG_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-$as_echo "$PKG_CONFIG" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+printf "%s\n" "$PKG_CONFIG" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -3618,11 +3994,12 @@
   ac_pt_PKG_CONFIG=$PKG_CONFIG
   # Extract the first word of "pkg-config", so it can be a program name with args.
 set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $ac_pt_PKG_CONFIG in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
@@ -3632,11 +4009,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -3648,11 +4029,11 @@
 fi
 ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
 if test -n "$ac_pt_PKG_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
-$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_pt_PKG_CONFIG" = x; then
@@ -3660,8 +4041,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     PKG_CONFIG=$ac_pt_PKG_CONFIG
@@ -3673,22 +4054,23 @@
 fi
 if test -n "$PKG_CONFIG"; then
 	_pkg_min_version=0.24
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
-$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; }
 	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
 	else
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+		{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 		PKG_CONFIG=""
 	fi
 fi
 
+
 case `pwd` in
   *\ * | *\	*)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
 esac
 
 
@@ -3708,6 +4090,7 @@
 
 
 
+
 ltmain=$ac_aux_dir/ltmain.sh
 
 # Backslashify metacharacters that are still active within
@@ -3731,8 +4114,8 @@
 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-$as_echo_n "checking how to print strings... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+printf %s "checking how to print strings... " >&6; }
 # Test print first, because it will be a builtin if present.
 if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
    test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
@@ -3758,12 +4141,12 @@
 }
 
 case $ECHO in
-  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-$as_echo "printf" >&6; } ;;
-  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-$as_echo "print -r" >&6; } ;;
-  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-$as_echo "cat" >&6; } ;;
+  printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+printf "%s\n" "printf" >&6; } ;;
+  print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+printf "%s\n" "print -r" >&6; } ;;
+  *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+printf "%s\n" "cat" >&6; } ;;
 esac
 
 
@@ -3779,11 +4162,12 @@
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+printf %s "checking for a sed that does not truncate output... " >&6; }
+if test ${ac_cv_path_SED+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
             ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
      for ac_i in 1 2 3 4 5 6 7; do
        ac_script="$ac_script$as_nl$ac_script"
@@ -3797,10 +4181,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in sed gsed; do
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_prog in sed gsed
+   do
     for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+      ac_path_SED="$as_dir$ac_prog$ac_exec_ext"
       as_fn_executable_p "$ac_path_SED" || continue
 # Check for GNU ac_path_SED and select it if it is found.
   # Check for GNU $ac_path_SED
@@ -3809,13 +4198,13 @@
   ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
 *)
   ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
+  printf %s 0123456789 >"conftest.in"
   while :
   do
     cat "conftest.in" "conftest.in" >"conftest.tmp"
     mv "conftest.tmp" "conftest.in"
     cp "conftest.in" "conftest.nl"
-    $as_echo '' >> "conftest.nl"
+    printf "%s\n" '' >> "conftest.nl"
     "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
     as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -3843,8 +4232,8 @@
 fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+printf "%s\n" "$ac_cv_path_SED" >&6; }
  SED="$ac_cv_path_SED"
   rm -f conftest.sed
 
@@ -3861,11 +4250,12 @@
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+printf %s "checking for grep that handles long lines and -e... " >&6; }
+if test ${ac_cv_path_GREP+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -z "$GREP"; then
   ac_path_GREP_found=false
   # Loop through the user's path and test for each of PROGNAME-LIST
@@ -3873,10 +4263,15 @@
 for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_prog in grep ggrep
+   do
     for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"
       as_fn_executable_p "$ac_path_GREP" || continue
 # Check for GNU ac_path_GREP and select it if it is found.
   # Check for GNU $ac_path_GREP
@@ -3885,13 +4280,13 @@
   ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
 *)
   ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
+  printf %s 0123456789 >"conftest.in"
   while :
   do
     cat "conftest.in" "conftest.in" >"conftest.tmp"
     mv "conftest.tmp" "conftest.in"
     cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
+    printf "%s\n" 'GREP' >> "conftest.nl"
     "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
     as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -3919,16 +4314,17 @@
 fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+printf "%s\n" "$ac_cv_path_GREP" >&6; }
  GREP="$ac_cv_path_GREP"
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+printf %s "checking for egrep... " >&6; }
+if test ${ac_cv_path_EGREP+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
    then ac_cv_path_EGREP="$GREP -E"
    else
@@ -3939,10 +4335,15 @@
 for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in egrep; do
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_prog in egrep
+   do
     for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
       as_fn_executable_p "$ac_path_EGREP" || continue
 # Check for GNU ac_path_EGREP and select it if it is found.
   # Check for GNU $ac_path_EGREP
@@ -3951,13 +4352,13 @@
   ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
 *)
   ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
+  printf %s 0123456789 >"conftest.in"
   while :
   do
     cat "conftest.in" "conftest.in" >"conftest.tmp"
     mv "conftest.tmp" "conftest.in"
     cp "conftest.in" "conftest.nl"
-    $as_echo 'EGREP' >> "conftest.nl"
+    printf "%s\n" 'EGREP' >> "conftest.nl"
     "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
     as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -3986,16 +4387,17 @@
 
    fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+printf "%s\n" "$ac_cv_path_EGREP" >&6; }
  EGREP="$ac_cv_path_EGREP"
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if ${ac_cv_path_FGREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+printf %s "checking for fgrep... " >&6; }
+if test ${ac_cv_path_FGREP+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
    then ac_cv_path_FGREP="$GREP -F"
    else
@@ -4006,10 +4408,15 @@
 for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in fgrep; do
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_prog in fgrep
+   do
     for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+      ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext"
       as_fn_executable_p "$ac_path_FGREP" || continue
 # Check for GNU ac_path_FGREP and select it if it is found.
   # Check for GNU $ac_path_FGREP
@@ -4018,13 +4425,13 @@
   ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
 *)
   ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
+  printf %s 0123456789 >"conftest.in"
   while :
   do
     cat "conftest.in" "conftest.in" >"conftest.tmp"
     mv "conftest.tmp" "conftest.in"
     cp "conftest.in" "conftest.nl"
-    $as_echo 'FGREP' >> "conftest.nl"
+    printf "%s\n" 'FGREP' >> "conftest.nl"
     "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
     as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -4053,8 +4460,8 @@
 
    fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+printf "%s\n" "$ac_cv_path_FGREP" >&6; }
  FGREP="$ac_cv_path_FGREP"
 
 
@@ -4079,9 +4486,10 @@
 
 
 # Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
+if test ${with_gnu_ld+y}
+then :
   withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
-else
+else $as_nop
   with_gnu_ld=no
 fi
 
@@ -4088,8 +4496,8 @@
 ac_prog=ld
 if test yes = "$GCC"; then
   # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+printf %s "checking for ld used by $CC... " >&6; }
   case $host in
   *-*-mingw*)
     # gcc leaves a trailing carriage return, which upsets mingw
@@ -4118,15 +4526,16 @@
     ;;
   esac
 elif test yes = "$with_gnu_ld"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+printf %s "checking for GNU ld... " >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+printf %s "checking for non-GNU ld... " >&6; }
 fi
-if ${lt_cv_path_LD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+if test ${lt_cv_path_LD+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -z "$LD"; then
   lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
   for ac_dir in $PATH; do
@@ -4155,18 +4564,19 @@
 
 LD=$lt_cv_path_LD
 if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+printf "%s\n" "$LD" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
+if test ${lt_cv_prog_gnu_ld+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
 case `$LD -v 2>&1 </dev/null` in
 *GNU* | *'with BFD'*)
@@ -4177,8 +4587,8 @@
   ;;
 esac
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; }
 with_gnu_ld=$lt_cv_prog_gnu_ld
 
 
@@ -4189,11 +4599,12 @@
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if ${lt_cv_path_NM+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if test ${lt_cv_path_NM+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$NM"; then
   # Let the user override the test.
   lt_cv_path_NM=$NM
@@ -4243,8 +4654,8 @@
   : ${lt_cv_path_NM=no}
 fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+printf "%s\n" "$lt_cv_path_NM" >&6; }
 if test no != "$lt_cv_path_NM"; then
   NM=$lt_cv_path_NM
 else
@@ -4257,11 +4668,12 @@
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DUMPBIN+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DUMPBIN+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$DUMPBIN"; then
   ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
 else
@@ -4269,11 +4681,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -4284,11 +4700,11 @@
 fi
 DUMPBIN=$ac_cv_prog_DUMPBIN
 if test -n "$DUMPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+printf "%s\n" "$DUMPBIN" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -4301,11 +4717,12 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DUMPBIN+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_DUMPBIN"; then
   ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
 else
@@ -4313,11 +4730,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -4328,11 +4749,11 @@
 fi
 ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
 if test -n "$ac_ct_DUMPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+printf "%s\n" "$ac_ct_DUMPBIN" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -4344,8 +4765,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     DUMPBIN=$ac_ct_DUMPBIN
@@ -4373,11 +4794,12 @@
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if ${lt_cv_nm_interface+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+printf %s "checking the name lister ($NM) interface... " >&6; }
+if test ${lt_cv_nm_interface+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
   (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
@@ -4393,26 +4815,27 @@
   fi
   rm -f conftest*
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+printf "%s\n" "$lt_cv_nm_interface" >&6; }
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+printf %s "checking whether ln -s works... " >&6; }
 LN_S=$as_ln_s
 if test "$LN_S" = "ln -s"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+printf "%s\n" "no, using $LN_S" >&6; }
 fi
 
 # find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if ${lt_cv_sys_max_cmd_len+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+printf %s "checking the maximum length of command line arguments... " >&6; }
+if test ${lt_cv_sys_max_cmd_len+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
     i=0
   teststring=ABCD
 
@@ -4539,11 +4962,11 @@
 fi
 
 if test -n "$lt_cv_sys_max_cmd_len"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5
+printf "%s\n" "none" >&6; }
 fi
 max_cmd_len=$lt_cv_sys_max_cmd_len
 
@@ -4587,11 +5010,12 @@
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
-if ${lt_cv_to_host_file_cmd+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+printf %s "checking how to convert $build file names to $host format... " >&6; }
+if test ${lt_cv_to_host_file_cmd+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $host in
   *-*-mingw* )
     case $build in
@@ -4627,18 +5051,19 @@
 fi
 
 to_host_file_cmd=$lt_cv_to_host_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; }
 
 
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
-if ${lt_cv_to_tool_file_cmd+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+printf %s "checking how to convert $build file names to toolchain format... " >&6; }
+if test ${lt_cv_to_tool_file_cmd+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   #assume ordinary cross tools, or native build.
 lt_cv_to_tool_file_cmd=func_convert_file_noop
 case $host in
@@ -4654,22 +5079,23 @@
 fi
 
 to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; }
 
 
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if ${lt_cv_ld_reload_flag+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+printf %s "checking for $LD option to reload object files... " >&6; }
+if test ${lt_cv_ld_reload_flag+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_ld_reload_flag='-r'
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+printf "%s\n" "$lt_cv_ld_reload_flag" >&6; }
 reload_flag=$lt_cv_ld_reload_flag
 case $reload_flag in
 "" | " "*) ;;
@@ -4702,11 +5128,12 @@
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OBJDUMP+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$OBJDUMP"; then
   ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
 else
@@ -4714,11 +5141,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -4729,11 +5160,11 @@
 fi
 OBJDUMP=$ac_cv_prog_OBJDUMP
 if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+printf "%s\n" "$OBJDUMP" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -4742,11 +5173,12 @@
   ac_ct_OBJDUMP=$OBJDUMP
   # Extract the first word of "objdump", so it can be a program name with args.
 set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OBJDUMP+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_OBJDUMP"; then
   ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
 else
@@ -4754,11 +5186,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -4769,11 +5205,11 @@
 fi
 ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
 if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+printf "%s\n" "$ac_ct_OBJDUMP" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_OBJDUMP" = x; then
@@ -4781,8 +5217,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OBJDUMP=$ac_ct_OBJDUMP
@@ -4798,11 +5234,12 @@
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if ${lt_cv_deplibs_check_method+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+printf %s "checking how to recognize dependent libraries... " >&6; }
+if test ${lt_cv_deplibs_check_method+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_file_magic_cmd='$MAGIC_CMD'
 lt_cv_file_magic_test_file=
 lt_cv_deplibs_check_method='unknown'
@@ -4998,8 +5435,8 @@
 esac
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+printf "%s\n" "$lt_cv_deplibs_check_method" >&6; }
 
 file_magic_glob=
 want_nocaseglob=no
@@ -5043,11 +5480,12 @@
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
 set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DLLTOOL+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$DLLTOOL"; then
   ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
 else
@@ -5055,11 +5493,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5070,11 +5512,11 @@
 fi
 DLLTOOL=$ac_cv_prog_DLLTOOL
 if test -n "$DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+printf "%s\n" "$DLLTOOL" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -5083,11 +5525,12 @@
   ac_ct_DLLTOOL=$DLLTOOL
   # Extract the first word of "dlltool", so it can be a program name with args.
 set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DLLTOOL+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_DLLTOOL"; then
   ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
 else
@@ -5095,11 +5538,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_DLLTOOL="dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5110,11 +5557,11 @@
 fi
 ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
 if test -n "$ac_ct_DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+printf "%s\n" "$ac_ct_DLLTOOL" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_DLLTOOL" = x; then
@@ -5122,8 +5569,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     DLLTOOL=$ac_ct_DLLTOOL
@@ -5140,11 +5587,12 @@
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
-if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+printf %s "checking how to associate runtime and link libraries... " >&6; }
+if test ${lt_cv_sharedlib_from_linklib_cmd+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_sharedlib_from_linklib_cmd='unknown'
 
 case $host_os in
@@ -5167,8 +5615,8 @@
 esac
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
 sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
 test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
 
@@ -5184,11 +5632,12 @@
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AR+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$AR"; then
   ac_cv_prog_AR="$AR" # Let the user override the test.
 else
@@ -5196,11 +5645,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5211,11 +5664,11 @@
 fi
 AR=$ac_cv_prog_AR
 if test -n "$AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+printf "%s\n" "$AR" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -5228,11 +5681,12 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_AR+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_AR"; then
   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
 else
@@ -5240,11 +5694,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_AR="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5255,11 +5713,11 @@
 fi
 ac_ct_AR=$ac_cv_prog_ac_ct_AR
 if test -n "$ac_ct_AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+printf "%s\n" "$ac_ct_AR" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -5271,8 +5729,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     AR=$ac_ct_AR
@@ -5292,17 +5750,18 @@
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-$as_echo_n "checking for archiver @FILE support... " >&6; }
-if ${lt_cv_ar_at_file+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+printf %s "checking for archiver @FILE support... " >&6; }
+if test ${lt_cv_ar_at_file+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_ar_at_file=no
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -5309,13 +5768,14 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   echo conftest.$ac_objext > conftest.lst
       lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
       { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
   (eval $lt_ar_try) 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
       if test 0 -eq "$ac_status"; then
 	# Ensure the archiver fails upon bogus file names.
@@ -5323,7 +5783,7 @@
 	{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
   (eval $lt_ar_try) 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
 	if test 0 -ne "$ac_status"; then
           lt_cv_ar_at_file=@
@@ -5332,11 +5792,11 @@
       rm -f conftest.* libconftest.a
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-$as_echo "$lt_cv_ar_at_file" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+printf "%s\n" "$lt_cv_ar_at_file" >&6; }
 
 if test no = "$lt_cv_ar_at_file"; then
   archiver_list_spec=
@@ -5353,11 +5813,12 @@
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_STRIP+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$STRIP"; then
   ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
 else
@@ -5365,11 +5826,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5380,11 +5845,11 @@
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+printf "%s\n" "$STRIP" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -5393,11 +5858,12 @@
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_STRIP+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_STRIP"; then
   ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
 else
@@ -5405,11 +5871,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5420,11 +5890,11 @@
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+printf "%s\n" "$ac_ct_STRIP" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_STRIP" = x; then
@@ -5432,8 +5902,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     STRIP=$ac_ct_STRIP
@@ -5452,11 +5922,12 @@
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_RANLIB+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 else
@@ -5464,11 +5935,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5479,11 +5954,11 @@
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+printf "%s\n" "$RANLIB" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -5492,11 +5967,12 @@
   ac_ct_RANLIB=$RANLIB
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_RANLIB+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_RANLIB"; then
   ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
 else
@@ -5504,11 +5980,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5519,11 +5999,11 @@
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+printf "%s\n" "$ac_ct_RANLIB" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_RANLIB" = x; then
@@ -5531,8 +6011,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     RANLIB=$ac_ct_RANLIB
@@ -5596,11 +6076,12 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AWK+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$AWK"; then
   ac_cv_prog_AWK="$AWK" # Let the user override the test.
 else
@@ -5608,11 +6089,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5623,11 +6108,11 @@
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+printf "%s\n" "$AWK" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -5663,11 +6148,12 @@
 
 
 # Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if ${lt_cv_sys_global_symbol_pipe+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+printf %s "checking command to parse $NM output from $compiler object... " >&6; }
+if test ${lt_cv_sys_global_symbol_pipe+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
 
 # These are sane defaults that work on at least a few old systems.
 # [They come from Ultrix.  What could be older than Ultrix?!! ;)]
@@ -5819,7 +6305,7 @@
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
     # Now try to grab the symbols.
     nlist=conftest.nm
@@ -5826,7 +6312,7 @@
     if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
   (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
@@ -5895,7 +6381,7 @@
 	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && test -s conftest$ac_exeext; then
 	    pipe_works=yes
 	  fi
@@ -5930,11 +6416,11 @@
   lt_cv_sys_global_symbol_to_cdecl=
 fi
 if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+printf "%s\n" "failed" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf "%s\n" "ok" >&6; }
 fi
 
 # Response file support.
@@ -5980,13 +6466,14 @@
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-$as_echo_n "checking for sysroot... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+printf %s "checking for sysroot... " >&6; }
 
 # Check whether --with-sysroot was given.
-if test "${with_sysroot+set}" = set; then :
+if test ${with_sysroot+y}
+then :
   withval=$with_sysroot;
-else
+else $as_nop
   with_sysroot=no
 fi
 
@@ -6004,24 +6491,25 @@
  no|'')
    ;; #(
  *)
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
-$as_echo "$with_sysroot" >&6; }
+   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+printf "%s\n" "$with_sysroot" >&6; }
    as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
    ;;
 esac
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-$as_echo "${lt_sysroot:-no}" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+printf "%s\n" "${lt_sysroot:-no}" >&6; }
 
 
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
-$as_echo_n "checking for a working dd... " >&6; }
-if ${ac_cv_path_lt_DD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+printf %s "checking for a working dd... " >&6; }
+if test ${ac_cv_path_lt_DD+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   printf 0123456789abcdef0123456789abcdef >conftest.i
 cat conftest.i conftest.i >conftest2.i
 : ${lt_DD:=$DD}
@@ -6032,10 +6520,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in dd; do
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_prog in dd
+   do
     for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"
+      ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext"
       as_fn_executable_p "$ac_path_lt_DD" || continue
 if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
   cmp -s conftest.i conftest.out \
@@ -6055,15 +6548,16 @@
 
 rm -f conftest.i conftest2.i conftest.out
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
-$as_echo "$ac_cv_path_lt_DD" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+printf "%s\n" "$ac_cv_path_lt_DD" >&6; }
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
-$as_echo_n "checking how to truncate binary pipes... " >&6; }
-if ${lt_cv_truncate_bin+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+printf %s "checking how to truncate binary pipes... " >&6; }
+if test ${lt_cv_truncate_bin+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   printf 0123456789abcdef0123456789abcdef >conftest.i
 cat conftest.i conftest.i >conftest2.i
 lt_cv_truncate_bin=
@@ -6074,8 +6568,8 @@
 rm -f conftest.i conftest2.i conftest.out
 test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
-$as_echo "$lt_cv_truncate_bin" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+printf "%s\n" "$lt_cv_truncate_bin" >&6; }
 
 
 
@@ -6098,7 +6592,8 @@
 }
 
 # Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
+if test ${enable_libtool_lock+y}
+then :
   enableval=$enable_libtool_lock;
 fi
 
@@ -6114,7 +6609,7 @@
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
     case `/usr/bin/file conftest.$ac_objext` in
       *ELF-32*)
@@ -6134,7 +6629,7 @@
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
     if test yes = "$lt_cv_prog_gnu_ld"; then
       case `/usr/bin/file conftest.$ac_objext` in
@@ -6172,7 +6667,7 @@
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
     emul=elf
     case `/usr/bin/file conftest.$ac_objext` in
@@ -6213,7 +6708,7 @@
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
     case `/usr/bin/file conftest.o` in
       *32-bit*)
@@ -6276,11 +6771,12 @@
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
   SAVE_CFLAGS=$CFLAGS
   CFLAGS="$CFLAGS -belf"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if ${lt_cv_cc_needs_belf+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+printf %s "checking whether the C compiler needs -belf... " >&6; }
+if test ${lt_cv_cc_needs_belf+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -6291,7 +6787,7 @@
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -6298,12 +6794,13 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   lt_cv_cc_needs_belf=yes
-else
+else $as_nop
   lt_cv_cc_needs_belf=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
      ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -6312,8 +6809,8 @@
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
   if test yes != "$lt_cv_cc_needs_belf"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
     CFLAGS=$SAVE_CFLAGS
@@ -6326,7 +6823,7 @@
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
@@ -6363,11 +6860,12 @@
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
 set dummy ${ac_tool_prefix}mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_MANIFEST_TOOL+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$MANIFEST_TOOL"; then
   ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
 else
@@ -6375,11 +6873,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6390,11 +6892,11 @@
 fi
 MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
 if test -n "$MANIFEST_TOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-$as_echo "$MANIFEST_TOOL" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+printf "%s\n" "$MANIFEST_TOOL" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -6403,11 +6905,12 @@
   ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
   # Extract the first word of "mt", so it can be a program name with args.
 set dummy mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_MANIFEST_TOOL"; then
   ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
 else
@@ -6415,11 +6918,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6430,11 +6937,11 @@
 fi
 ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
 if test -n "$ac_ct_MANIFEST_TOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_MANIFEST_TOOL" = x; then
@@ -6442,8 +6949,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
@@ -6453,11 +6960,12 @@
 fi
 
 test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if ${lt_cv_path_mainfest_tool+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if test ${lt_cv_path_mainfest_tool+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_path_mainfest_tool=no
   echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
   $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
@@ -6467,8 +6975,8 @@
   fi
   rm -f conftest*
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; }
 if test yes != "$lt_cv_path_mainfest_tool"; then
   MANIFEST_TOOL=:
 fi
@@ -6483,11 +6991,12 @@
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
 set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DSYMUTIL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DSYMUTIL+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$DSYMUTIL"; then
   ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
 else
@@ -6495,11 +7004,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6510,11 +7023,11 @@
 fi
 DSYMUTIL=$ac_cv_prog_DSYMUTIL
 if test -n "$DSYMUTIL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+printf "%s\n" "$DSYMUTIL" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -6523,11 +7036,12 @@
   ac_ct_DSYMUTIL=$DSYMUTIL
   # Extract the first word of "dsymutil", so it can be a program name with args.
 set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DSYMUTIL+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_DSYMUTIL"; then
   ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
 else
@@ -6535,11 +7049,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6550,11 +7068,11 @@
 fi
 ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
 if test -n "$ac_ct_DSYMUTIL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+printf "%s\n" "$ac_ct_DSYMUTIL" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_DSYMUTIL" = x; then
@@ -6562,8 +7080,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     DSYMUTIL=$ac_ct_DSYMUTIL
@@ -6575,11 +7093,12 @@
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
 set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_NMEDIT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_NMEDIT+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$NMEDIT"; then
   ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
 else
@@ -6587,11 +7106,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6602,11 +7125,11 @@
 fi
 NMEDIT=$ac_cv_prog_NMEDIT
 if test -n "$NMEDIT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+printf "%s\n" "$NMEDIT" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -6615,11 +7138,12 @@
   ac_ct_NMEDIT=$NMEDIT
   # Extract the first word of "nmedit", so it can be a program name with args.
 set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_NMEDIT+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_NMEDIT"; then
   ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
 else
@@ -6627,11 +7151,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_NMEDIT="nmedit"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6642,11 +7170,11 @@
 fi
 ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
 if test -n "$ac_ct_NMEDIT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+printf "%s\n" "$ac_ct_NMEDIT" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_NMEDIT" = x; then
@@ -6654,8 +7182,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     NMEDIT=$ac_ct_NMEDIT
@@ -6667,11 +7195,12 @@
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
 set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LIPO+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_LIPO+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$LIPO"; then
   ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
 else
@@ -6679,11 +7208,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6694,11 +7227,11 @@
 fi
 LIPO=$ac_cv_prog_LIPO
 if test -n "$LIPO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+printf "%s\n" "$LIPO" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -6707,11 +7240,12 @@
   ac_ct_LIPO=$LIPO
   # Extract the first word of "lipo", so it can be a program name with args.
 set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_LIPO+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_LIPO"; then
   ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
 else
@@ -6719,11 +7253,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_LIPO="lipo"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6734,11 +7272,11 @@
 fi
 ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
 if test -n "$ac_ct_LIPO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+printf "%s\n" "$ac_ct_LIPO" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_LIPO" = x; then
@@ -6746,8 +7284,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     LIPO=$ac_ct_LIPO
@@ -6759,11 +7297,12 @@
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
 set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OTOOL+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$OTOOL"; then
   ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
 else
@@ -6771,11 +7310,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6786,11 +7329,11 @@
 fi
 OTOOL=$ac_cv_prog_OTOOL
 if test -n "$OTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+printf "%s\n" "$OTOOL" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -6799,11 +7342,12 @@
   ac_ct_OTOOL=$OTOOL
   # Extract the first word of "otool", so it can be a program name with args.
 set dummy otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OTOOL+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_OTOOL"; then
   ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
 else
@@ -6811,11 +7355,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OTOOL="otool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6826,11 +7374,11 @@
 fi
 ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
 if test -n "$ac_ct_OTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+printf "%s\n" "$ac_ct_OTOOL" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_OTOOL" = x; then
@@ -6838,8 +7386,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OTOOL=$ac_ct_OTOOL
@@ -6851,11 +7399,12 @@
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
 set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL64+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OTOOL64+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$OTOOL64"; then
   ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
 else
@@ -6863,11 +7412,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6878,11 +7431,11 @@
 fi
 OTOOL64=$ac_cv_prog_OTOOL64
 if test -n "$OTOOL64"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+printf "%s\n" "$OTOOL64" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -6891,11 +7444,12 @@
   ac_ct_OTOOL64=$OTOOL64
   # Extract the first word of "otool64", so it can be a program name with args.
 set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OTOOL64+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_OTOOL64"; then
   ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
 else
@@ -6903,11 +7457,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OTOOL64="otool64"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6918,11 +7476,11 @@
 fi
 ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
 if test -n "$ac_ct_OTOOL64"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+printf "%s\n" "$ac_ct_OTOOL64" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_OTOOL64" = x; then
@@ -6930,8 +7488,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OTOOL64=$ac_ct_OTOOL64
@@ -6966,11 +7524,12 @@
 
 
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if ${lt_cv_apple_cc_single_mod+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+printf %s "checking for -single_module linker flag... " >&6; }
+if test ${lt_cv_apple_cc_single_mod+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_apple_cc_single_mod=no
       if test -z "$LT_MULTI_MODULE"; then
 	# By default we will add the -single_module flag. You can override
@@ -6999,14 +7558,15 @@
 	rm -f conftest.*
       fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; }
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if ${lt_cv_ld_exported_symbols_list+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+printf %s "checking for -exported_symbols_list linker flag... " >&6; }
+if test ${lt_cv_ld_exported_symbols_list+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_ld_exported_symbols_list=no
       save_LDFLAGS=$LDFLAGS
       echo "_main" > conftest.sym
@@ -7015,7 +7575,7 @@
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -7022,24 +7582,26 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   lt_cv_ld_exported_symbols_list=yes
-else
+else $as_nop
   lt_cv_ld_exported_symbols_list=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 	LDFLAGS=$save_LDFLAGS
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; }
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-$as_echo_n "checking for -force_load linker flag... " >&6; }
-if ${lt_cv_ld_force_load+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+printf %s "checking for -force_load linker flag... " >&6; }
+if test ${lt_cv_ld_force_load+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_ld_force_load=no
       cat > conftest.c << _LT_EOF
 int forced_loaded() { return 2;}
@@ -7067,8 +7629,8 @@
         rm -rf conftest.dSYM
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-$as_echo "$lt_cv_ld_force_load" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+printf "%s\n" "$lt_cv_ld_force_load" >&6; }
     case $host_os in
     rhapsody* | darwin1.[012])
       _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
@@ -7139,153 +7701,47 @@
     esac
 }
 
+ac_header= ac_cache=
+for ac_item in $ac_header_c_list
+do
+  if test $ac_cache; then
+    ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
+    if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
+      printf "%s\n" "#define $ac_item 1" >> confdefs.h
+    fi
+    ac_header= ac_cache=
+  elif test $ac_header; then
+    ac_cache=$ac_item
+  else
+    ac_header=$ac_item
+  fi
+done
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
 
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
 
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
 
-fi
 
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
+if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
+then :
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
+printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
 
-else
-  ac_cv_header_stdc=no
 fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-		  inttypes.h stdint.h unistd.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
 "
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+if test "x$ac_cv_header_dlfcn_h" = xyes
+then :
+  printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h
 
 fi
 
-done
 
 
-for ac_header in dlfcn.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
 
-fi
 
-done
-
-
-
-
-
 # Set options
 enable_win32_dll=yes
 
@@ -7294,11 +7750,12 @@
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
 set dummy ${ac_tool_prefix}as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AS+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AS+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$AS"; then
   ac_cv_prog_AS="$AS" # Let the user override the test.
 else
@@ -7306,11 +7763,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_AS="${ac_tool_prefix}as"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7321,11 +7782,11 @@
 fi
 AS=$ac_cv_prog_AS
 if test -n "$AS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
-$as_echo "$AS" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
+printf "%s\n" "$AS" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -7334,11 +7795,12 @@
   ac_ct_AS=$AS
   # Extract the first word of "as", so it can be a program name with args.
 set dummy as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AS+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_AS+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_AS"; then
   ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
 else
@@ -7346,11 +7808,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_AS="as"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7361,11 +7827,11 @@
 fi
 ac_ct_AS=$ac_cv_prog_ac_ct_AS
 if test -n "$ac_ct_AS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
-$as_echo "$ac_ct_AS" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
+printf "%s\n" "$ac_ct_AS" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_AS" = x; then
@@ -7373,8 +7839,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     AS=$ac_ct_AS
@@ -7386,11 +7852,12 @@
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
 set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DLLTOOL+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$DLLTOOL"; then
   ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
 else
@@ -7398,11 +7865,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7413,11 +7884,11 @@
 fi
 DLLTOOL=$ac_cv_prog_DLLTOOL
 if test -n "$DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+printf "%s\n" "$DLLTOOL" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -7426,11 +7897,12 @@
   ac_ct_DLLTOOL=$DLLTOOL
   # Extract the first word of "dlltool", so it can be a program name with args.
 set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DLLTOOL+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_DLLTOOL"; then
   ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
 else
@@ -7438,11 +7910,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_DLLTOOL="dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7453,11 +7929,11 @@
 fi
 ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
 if test -n "$ac_ct_DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+printf "%s\n" "$ac_ct_DLLTOOL" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_DLLTOOL" = x; then
@@ -7465,8 +7941,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     DLLTOOL=$ac_ct_DLLTOOL
@@ -7478,11 +7954,12 @@
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OBJDUMP+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$OBJDUMP"; then
   ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
 else
@@ -7490,11 +7967,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7505,11 +7986,11 @@
 fi
 OBJDUMP=$ac_cv_prog_OBJDUMP
 if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+printf "%s\n" "$OBJDUMP" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -7518,11 +7999,12 @@
   ac_ct_OBJDUMP=$OBJDUMP
   # Extract the first word of "objdump", so it can be a program name with args.
 set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OBJDUMP+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_OBJDUMP"; then
   ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
 else
@@ -7530,11 +8012,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7545,11 +8031,11 @@
 fi
 ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
 if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+printf "%s\n" "$ac_ct_OBJDUMP" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_OBJDUMP" = x; then
@@ -7557,8 +8043,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OBJDUMP=$ac_ct_OBJDUMP
@@ -7595,7 +8081,8 @@
 
 
             # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
+if test ${enable_shared+y}
+then :
   enableval=$enable_shared; p=${PACKAGE-default}
     case $enableval in
     yes) enable_shared=yes ;;
@@ -7613,7 +8100,7 @@
       IFS=$lt_save_ifs
       ;;
     esac
-else
+else $as_nop
   enable_shared=yes
 fi
 
@@ -7626,7 +8113,8 @@
 
 
   # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
+if test ${enable_static+y}
+then :
   enableval=$enable_static; p=${PACKAGE-default}
     case $enableval in
     yes) enable_static=yes ;;
@@ -7644,7 +8132,7 @@
       IFS=$lt_save_ifs
       ;;
     esac
-else
+else $as_nop
   enable_static=yes
 fi
 
@@ -7658,7 +8146,8 @@
 
 
 # Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
+if test ${with_pic+y}
+then :
   withval=$with_pic; lt_p=${PACKAGE-default}
     case $withval in
     yes|no) pic_mode=$withval ;;
@@ -7675,7 +8164,7 @@
       IFS=$lt_save_ifs
       ;;
     esac
-else
+else $as_nop
   pic_mode=default
 fi
 
@@ -7687,7 +8176,8 @@
 
 
   # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
+if test ${enable_fast_install+y}
+then :
   enableval=$enable_fast_install; p=${PACKAGE-default}
     case $enableval in
     yes) enable_fast_install=yes ;;
@@ -7705,7 +8195,7 @@
       IFS=$lt_save_ifs
       ;;
     esac
-else
+else $as_nop
   enable_fast_install=yes
 fi
 
@@ -7719,11 +8209,12 @@
   shared_archive_member_spec=
 case $host,$enable_shared in
 power*-*-aix[5-9]*,yes)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
-$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+printf %s "checking which variant of shared library versioning to provide... " >&6; }
 
 # Check whether --with-aix-soname was given.
-if test "${with_aix_soname+set}" = set; then :
+if test ${with_aix_soname+y}
+then :
   withval=$with_aix_soname; case $withval in
     aix|svr4|both)
       ;;
@@ -7732,10 +8223,11 @@
       ;;
     esac
     lt_cv_with_aix_soname=$with_aix_soname
-else
-  if ${lt_cv_with_aix_soname+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+else $as_nop
+  if test ${lt_cv_with_aix_soname+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_with_aix_soname=aix
 fi
 
@@ -7742,8 +8234,8 @@
     with_aix_soname=$lt_cv_with_aix_soname
 fi
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
-$as_echo "$with_aix_soname" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+printf "%s\n" "$with_aix_soname" >&6; }
   if test aix != "$with_aix_soname"; then
     # For the AIX way of multilib, we name the shared archive member
     # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
@@ -7825,11 +8317,12 @@
    setopt NO_GLOB_SUBST
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if ${lt_cv_objdir+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+printf %s "checking for objdir... " >&6; }
+if test ${lt_cv_objdir+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   rm -f .libs 2>/dev/null
 mkdir .libs 2>/dev/null
 if test -d .libs; then
@@ -7840,8 +8333,8 @@
 fi
 rmdir .libs 2>/dev/null
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+printf "%s\n" "$lt_cv_objdir" >&6; }
 objdir=$lt_cv_objdir
 
 
@@ -7848,9 +8341,7 @@
 
 
 
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
+printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h
 
 
 
@@ -7896,11 +8387,12 @@
 case $deplibs_check_method in
 file_magic*)
   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+printf %s "checking for ${ac_tool_prefix}file... " >&6; }
+if test ${lt_cv_path_MAGIC_CMD+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $MAGIC_CMD in
 [\\/*] |  ?:[\\/]*)
   lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
@@ -7949,11 +8441,11 @@
 
 MAGIC_CMD=$lt_cv_path_MAGIC_CMD
 if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+printf "%s\n" "$MAGIC_CMD" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -7962,11 +8454,12 @@
 
 if test -z "$lt_cv_path_MAGIC_CMD"; then
   if test -n "$ac_tool_prefix"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+printf %s "checking for file... " >&6; }
+if test ${lt_cv_path_MAGIC_CMD+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   case $MAGIC_CMD in
 [\\/*] |  ?:[\\/]*)
   lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
@@ -8015,11 +8508,11 @@
 
 MAGIC_CMD=$lt_cv_path_MAGIC_CMD
 if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+printf "%s\n" "$MAGIC_CMD" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -8100,11 +8593,12 @@
     lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
   esac
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if test ${lt_cv_prog_compiler_rtti_exceptions+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_prog_compiler_rtti_exceptions=no
    ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
@@ -8135,8 +8629,8 @@
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 
 if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
     lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
@@ -8493,15 +8987,16 @@
     ;;
 esac
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+printf %s "checking for $compiler option to produce PIC... " >&6; }
+if test ${lt_cv_prog_compiler_pic+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; }
 lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
 
 #
@@ -8508,11 +9003,12 @@
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if test ${lt_cv_prog_compiler_pic_works+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_prog_compiler_pic_works=no
    ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
@@ -8543,8 +9039,8 @@
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; }
 
 if test yes = "$lt_cv_prog_compiler_pic_works"; then
     case $lt_prog_compiler_pic in
@@ -8572,11 +9068,12 @@
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test ${lt_cv_prog_compiler_static_works+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_prog_compiler_static_works=no
    save_LDFLAGS=$LDFLAGS
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
@@ -8600,8 +9097,8 @@
    LDFLAGS=$save_LDFLAGS
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; }
 
 if test yes = "$lt_cv_prog_compiler_static_works"; then
     :
@@ -8615,11 +9112,12 @@
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test ${lt_cv_prog_compiler_c_o+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_prog_compiler_c_o=no
    $RM -r conftest 2>/dev/null
    mkdir conftest
@@ -8662,8 +9160,8 @@
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
 
 
 
@@ -8670,11 +9168,12 @@
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test ${lt_cv_prog_compiler_c_o+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_prog_compiler_c_o=no
    $RM -r conftest 2>/dev/null
    mkdir conftest
@@ -8717,8 +9216,8 @@
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
 
 
 
@@ -8726,8 +9225,8 @@
 hard_links=nottested
 if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
   # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+printf %s "checking if we can lock with hard links... " >&6; }
   hard_links=yes
   $RM conftest*
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
@@ -8734,11 +9233,11 @@
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+printf "%s\n" "$hard_links" >&6; }
   if test no = "$hard_links"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
 else
@@ -8750,8 +9249,8 @@
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   runpath_var=
   allow_undefined_flag=
@@ -9306,14 +9805,15 @@
         if test set = "${lt_cv_aix_libpath+set}"; then
   aix_libpath=$lt_cv_aix_libpath
 else
-  if ${lt_cv_aix_libpath_+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  if test ${lt_cv_aix_libpath_+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -9320,7 +9820,8 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
 
   lt_aix_libpath_sed='
       /Import File Strings/,/^$/ {
@@ -9335,7 +9836,7 @@
     lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
   fi
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
   if test -z "$lt_cv_aix_libpath_"; then
     lt_cv_aix_libpath_=/usr/lib:/lib
@@ -9359,14 +9860,15 @@
 	 if test set = "${lt_cv_aix_libpath+set}"; then
   aix_libpath=$lt_cv_aix_libpath
 else
-  if ${lt_cv_aix_libpath_+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  if test ${lt_cv_aix_libpath_+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -9373,7 +9875,8 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
 
   lt_aix_libpath_sed='
       /Import File Strings/,/^$/ {
@@ -9388,7 +9891,7 @@
     lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
   fi
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
   if test -z "$lt_cv_aix_libpath_"; then
     lt_cv_aix_libpath_=/usr/lib:/lib
@@ -9639,11 +10142,12 @@
 
 	  # Older versions of the 11.00 compiler do not understand -b yet
 	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-$as_echo_n "checking if $CC understands -b... " >&6; }
-if ${lt_cv_prog_compiler__b+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+printf %s "checking if $CC understands -b... " >&6; }
+if test ${lt_cv_prog_compiler__b+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_prog_compiler__b=no
    save_LDFLAGS=$LDFLAGS
    LDFLAGS="$LDFLAGS -b"
@@ -9667,8 +10171,8 @@
    LDFLAGS=$save_LDFLAGS
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-$as_echo "$lt_cv_prog_compiler__b" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+printf "%s\n" "$lt_cv_prog_compiler__b" >&6; }
 
 if test yes = "$lt_cv_prog_compiler__b"; then
     archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
@@ -9708,11 +10212,12 @@
 	# work, assume that -exports_file does not work either and
 	# implicitly export all symbols.
 	# This should be the same for all languages, so no per-tag cache variable.
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-if ${lt_cv_irix_exported_symbol+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if test ${lt_cv_irix_exported_symbol+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   save_LDFLAGS=$LDFLAGS
 	   LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
 	   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -9719,17 +10224,18 @@
 /* end confdefs.h.  */
 int foo (void) { return 0; }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   lt_cv_irix_exported_symbol=yes
-else
+else $as_nop
   lt_cv_irix_exported_symbol=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
            LDFLAGS=$save_LDFLAGS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
 	if test yes = "$lt_cv_irix_exported_symbol"; then
           archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
 	fi
@@ -10009,8 +10515,8 @@
     fi
   fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+printf "%s\n" "$ld_shlibs" >&6; }
 test no = "$ld_shlibs" && can_build_shared=no
 
 with_gnu_ld=$with_gnu_ld
@@ -10046,11 +10552,12 @@
       # Test whether the compiler implicitly links with -lc since on some
       # systems, -lgcc has to come before -lc. If gcc already passes -lc
       # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+printf %s "checking whether -lc should be explicitly linked in... " >&6; }
+if test ${lt_cv_archive_cmds_need_lc+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   $RM conftest*
 	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
@@ -10057,7 +10564,7 @@
 	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } 2>conftest.err; then
 	  soname=conftest
 	  lib=conftest
@@ -10075,7 +10582,7 @@
 	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
   (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
 	  then
 	    lt_cv_archive_cmds_need_lc=no
@@ -10089,8 +10596,8 @@
 	$RM conftest*
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; }
       archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
       ;;
     esac
@@ -10249,8 +10756,8 @@
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+printf %s "checking dynamic linker characteristics... " >&6; }
 
 if test yes = "$GCC"; then
   case $host_os in
@@ -10811,9 +11318,10 @@
   shlibpath_overrides_runpath=no
 
   # Some binutils ld are patched to set DT_RUNPATH
-  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  if test ${lt_cv_shlibpath_overrides_runpath+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   lt_cv_shlibpath_overrides_runpath=no
     save_LDFLAGS=$LDFLAGS
     save_libdir=$libdir
@@ -10823,7 +11331,7 @@
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -10830,12 +11338,14 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+if ac_fn_c_try_link "$LINENO"
+then :
+  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null
+then :
   lt_cv_shlibpath_overrides_runpath=yes
 fi
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
     LDFLAGS=$save_LDFLAGS
     libdir=$save_libdir
@@ -11067,8 +11577,8 @@
   dynamic_linker=no
   ;;
 esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+printf "%s\n" "$dynamic_linker" >&6; }
 test no = "$dynamic_linker" && can_build_shared=no
 
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
@@ -11189,8 +11699,8 @@
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+printf %s "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action=
 if test -n "$hardcode_libdir_flag_spec" ||
    test -n "$runpath_var" ||
@@ -11214,8 +11724,8 @@
   # directories.
   hardcode_action=unsupported
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+printf "%s\n" "$hardcode_action" >&6; }
 
 if test relink = "$hardcode_action" ||
    test yes = "$inherit_rpath"; then
@@ -11259,11 +11769,12 @@
 
   darwin*)
     # if libdl is installed we need to link against it
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+printf %s "checking for dlopen in -ldl... " >&6; }
+if test ${ac_cv_lib_dl_dlopen+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11272,12 +11783,9 @@
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char dlopen ();
 int
-main ()
+main (void)
 {
 return dlopen ();
   ;
@@ -11284,20 +11792,22 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_dl_dlopen=yes
-else
+else $as_nop
   ac_cv_lib_dl_dlopen=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes
+then :
   lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
-else
+else $as_nop
 
     lt_cv_dlopen=dyld
     lt_cv_dlopen_libs=
@@ -11317,14 +11827,16 @@
 
   *)
     ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes; then :
+if test "x$ac_cv_func_shl_load" = xyes
+then :
   lt_cv_dlopen=shl_load
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if ${ac_cv_lib_dld_shl_load+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+printf %s "checking for shl_load in -ldld... " >&6; }
+if test ${ac_cv_lib_dld_shl_load+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldld  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11333,12 +11845,9 @@
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char shl_load ();
 int
-main ()
+main (void)
 {
 return shl_load ();
   ;
@@ -11345,29 +11854,33 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_dld_shl_load=yes
-else
+else $as_nop
   ac_cv_lib_dld_shl_load=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes
+then :
   lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
-else
+else $as_nop
   ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes; then :
+if test "x$ac_cv_func_dlopen" = xyes
+then :
   lt_cv_dlopen=dlopen
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+printf %s "checking for dlopen in -ldl... " >&6; }
+if test ${ac_cv_lib_dl_dlopen+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11376,12 +11889,9 @@
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char dlopen ();
 int
-main ()
+main (void)
 {
 return dlopen ();
   ;
@@ -11388,25 +11898,28 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_dl_dlopen=yes
-else
+else $as_nop
   ac_cv_lib_dl_dlopen=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes
+then :
   lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if ${ac_cv_lib_svld_dlopen+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+printf %s "checking for dlopen in -lsvld... " >&6; }
+if test ${ac_cv_lib_svld_dlopen+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lsvld  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11415,12 +11928,9 @@
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char dlopen ();
 int
-main ()
+main (void)
 {
 return dlopen ();
   ;
@@ -11427,25 +11937,28 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_svld_dlopen=yes
-else
+else $as_nop
   ac_cv_lib_svld_dlopen=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes
+then :
   lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if ${ac_cv_lib_dld_dld_link+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+printf %s "checking for dld_link in -ldld... " >&6; }
+if test ${ac_cv_lib_dld_dld_link+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldld  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11454,12 +11967,9 @@
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char dld_link ();
 int
-main ()
+main (void)
 {
 return dld_link ();
   ;
@@ -11466,18 +11976,20 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_dld_dld_link=yes
-else
+else $as_nop
   ac_cv_lib_dld_dld_link=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes
+then :
   lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
 fi
 
@@ -11516,11 +12028,12 @@
     save_LIBS=$LIBS
     LIBS="$lt_cv_dlopen_libs $LIBS"
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+printf %s "checking whether a program can dlopen itself... " >&6; }
+if test ${lt_cv_dlopen_self+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   	  if test yes = "$cross_compiling"; then :
   lt_cv_dlopen_self=cross
 else
@@ -11599,7 +12112,7 @@
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
@@ -11617,16 +12130,17 @@
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+printf "%s\n" "$lt_cv_dlopen_self" >&6; }
 
     if test yes = "$lt_cv_dlopen_self"; then
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self_static+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+printf %s "checking whether a statically linked program can dlopen itself... " >&6; }
+if test ${lt_cv_dlopen_self_static+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   	  if test yes = "$cross_compiling"; then :
   lt_cv_dlopen_self_static=cross
 else
@@ -11705,7 +12219,7 @@
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
@@ -11723,8 +12237,8 @@
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+printf "%s\n" "$lt_cv_dlopen_self_static" >&6; }
     fi
 
     CPPFLAGS=$save_CPPFLAGS
@@ -11762,13 +12276,13 @@
 
 striplib=
 old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+printf %s "checking whether stripping libraries is possible... " >&6; }
 if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
   test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
   test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
 else
 # FIXME - insert some real tests, host_os isn't really good enough
   case $host_os in
@@ -11776,16 +12290,16 @@
     if test -n "$STRIP"; then
       striplib="$STRIP -x"
       old_striplib="$STRIP -S"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
     else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
     fi
     ;;
   *)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
     ;;
   esac
 fi
@@ -11802,13 +12316,13 @@
 
 
   # Report what library types will actually be built
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+printf %s "checking if libtool supports shared libraries... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+printf "%s\n" "$can_build_shared" >&6; }
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+printf %s "checking whether to build shared libraries... " >&6; }
   test no = "$can_build_shared" && enable_shared=no
 
   # On AIX, shared libraries and static libraries use the same namespace, and
@@ -11832,15 +12346,15 @@
     fi
     ;;
   esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+printf "%s\n" "$enable_shared" >&6; }
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+printf %s "checking whether to build static libraries... " >&6; }
   # Make sure either enable_shared or enable_static is yes.
   test yes = "$enable_shared" || enable_static=yes
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+printf "%s\n" "$enable_static" >&6; }
 
 
 
@@ -11876,16 +12390,18 @@
 # Only expand once:
 
 
-ac_fn_c_check_header_mongrel "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default"
-if test "x$ac_cv_header_windows_h" = xyes; then :
+ac_fn_c_check_header_compile "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default"
+if test "x$ac_cv_header_windows_h" = xyes
+then :
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args.
 set dummy ${ac_tool_prefix}windres; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_RC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$RC"; then
   ac_cv_prog_RC="$RC" # Let the user override the test.
 else
@@ -11893,11 +12409,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_RC="${ac_tool_prefix}windres"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -11908,11 +12428,11 @@
 fi
 RC=$ac_cv_prog_RC
 if test -n "$RC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RC" >&5
-$as_echo "$RC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RC" >&5
+printf "%s\n" "$RC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -11921,11 +12441,12 @@
   ac_ct_RC=$RC
   # Extract the first word of "windres", so it can be a program name with args.
 set dummy windres; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_RC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ac_ct_RC"; then
   ac_cv_prog_ac_ct_RC="$ac_ct_RC" # Let the user override the test.
 else
@@ -11933,11 +12454,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ac_ct_RC="windres"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -11948,11 +12473,11 @@
 fi
 ac_ct_RC=$ac_cv_prog_ac_ct_RC
 if test -n "$ac_ct_RC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RC" >&5
-$as_echo "$ac_ct_RC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RC" >&5
+printf "%s\n" "$ac_ct_RC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
   if test "x$ac_ct_RC" = x; then
@@ -11960,8 +12485,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     RC=$ac_ct_RC
@@ -12051,17 +12576,17 @@
 
 
 
-
 # checks for native programs to generate building tool
 
 if test ${cross_compiling} = yes; then
   # Extract the first word of "${build}-gcc", so it can be a program name with args.
 set dummy ${build}-gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC_BUILD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC_BUILD+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC_BUILD"; then
   ac_cv_prog_CC_BUILD="$CC_BUILD" # Let the user override the test.
 else
@@ -12069,11 +12594,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC_BUILD="${build}-gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -12084,21 +12613,22 @@
 fi
 CC_BUILD=$ac_cv_prog_CC_BUILD
 if test -n "$CC_BUILD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_BUILD" >&5
-$as_echo "$CC_BUILD" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC_BUILD" >&5
+printf "%s\n" "$CC_BUILD" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
   test -z "${CC_BUILD}" && # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC_BUILD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC_BUILD+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC_BUILD"; then
   ac_cv_prog_CC_BUILD="$CC_BUILD" # Let the user override the test.
 else
@@ -12106,11 +12636,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_CC_BUILD="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -12121,21 +12655,22 @@
 fi
 CC_BUILD=$ac_cv_prog_CC_BUILD
 if test -n "$CC_BUILD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_BUILD" >&5
-$as_echo "$CC_BUILD" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC_BUILD" >&5
+printf "%s\n" "$CC_BUILD" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
   test -z "${CC_BUILD}" && # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC_BUILD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC_BUILD+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$CC_BUILD"; then
   ac_cv_prog_CC_BUILD="$CC_BUILD" # Let the user override the test.
 else
@@ -12144,15 +12679,19 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
      fi
     ac_cv_prog_CC_BUILD="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -12168,7 +12707,7 @@
     # However, it has the same basename, so the bogon will be chosen
     # first if we set CC_BUILD to just the basename; use the full file name.
     shift
-    ac_cv_prog_CC_BUILD="$as_dir/$ac_word${1+' '}$@"
+    ac_cv_prog_CC_BUILD="$as_dir$ac_word${1+' '}$@"
   fi
 fi
 fi
@@ -12175,18 +12714,18 @@
 fi
 CC_BUILD=$ac_cv_prog_CC_BUILD
 if test -n "$CC_BUILD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_BUILD" >&5
-$as_echo "$CC_BUILD" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC_BUILD" >&5
+printf "%s\n" "$CC_BUILD" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
   test -z "${CC_BUILD}" && as_fn_error $? "cannot find native C compiler" "$LINENO" 5
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of native executables" >&5
-$as_echo_n "checking for suffix of native executables... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of native executables" >&5
+printf %s "checking for suffix of native executables... " >&6; }
   rm -f a.* b.* a_out.exe conftest.*
   echo > conftest.c "int main() { return 0;}"
   ${CC_BUILD} conftest.c || as_fn_error $? "native C compiler is not working" "$LINENO" 5
@@ -12199,8 +12738,8 @@
     EXEEXT_BUILD=`echo conftest.* | sed -n '1s/^.*\././'`
   fi
   rm -f a.* b.* a_out.exe conftest.*
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXEEXT_BUILD" >&5
-$as_echo "$EXEEXT_BUILD" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $EXEEXT_BUILD" >&5
+printf "%s\n" "$EXEEXT_BUILD" >&6; }
 else
   CC_BUILD=${CC}
   EXEEXT_BUILD=${EXEEXT}
@@ -12215,7 +12754,8 @@
 #
 # This small code snippet has been taken from automake's `ylwrap' script.
 
-# Find a good install program.  We prefer a C program (faster),
+
+  # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
 # incompatible versions:
 # SysV /etc/install, /usr/sbin/install
@@ -12229,20 +12769,25 @@
 # OS/2's system install, which has a completely different semantic
 # ./install, which can be erroneously created by make from ./install.sh.
 # Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+printf %s "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+if test ${ac_cv_path_install+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
-  ./ | .// | /[cC]/* | \
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    # Account for fact that we put trailing slashes in our PATH walk.
+case $as_dir in #((
+  ./ | /[cC]/* | \
   /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
   ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
   /usr/ucb/* ) ;;
@@ -12252,13 +12797,13 @@
     # by default.
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then
 	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 	    # AIX install.  It has an incompatible calling convention.
 	    :
 	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 	    # program-specific install script used by HP pwplus--don't use.
 	    :
 	  else
@@ -12266,12 +12811,12 @@
 	    echo one > conftest.one
 	    echo two > conftest.two
 	    mkdir conftest.dir
-	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+	    if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" &&
 	      test -s conftest.one && test -s conftest.two &&
 	      test -s conftest.dir/conftest.one &&
 	      test -s conftest.dir/conftest.two
 	    then
-	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	      ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c"
 	      break 3
 	    fi
 	  fi
@@ -12287,7 +12832,7 @@
 rm -rf conftest.one conftest.two conftest.dir
 
 fi
-  if test "${ac_cv_path_install+set}" = set; then
+  if test ${ac_cv_path_install+y}; then
     INSTALL=$ac_cv_path_install
   else
     # As a last resort, use the slow shell script.  Don't cache a
@@ -12297,8 +12842,8 @@
     INSTALL=$ac_install_sh
   fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+printf "%s\n" "$INSTALL" >&6; }
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 # It thinks the first close brace ends the variable substitution.
@@ -12316,25 +12861,31 @@
   ;;
 esac
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5
+printf %s "checking for a race-free mkdir -p... " >&6; }
 if test -z "$MKDIR_P"; then
-  if ${ac_cv_path_mkdir+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  if test ${ac_cv_path_mkdir+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_prog in mkdir gmkdir; do
 	 for ac_exec_ext in '' $ac_executable_extensions; do
-	   as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
-	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
-	     'mkdir (GNU coreutils) '* | \
-	     'mkdir (coreutils) '* | \
+	   as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue
+	   case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #(
+	     'mkdir ('*'coreutils) '* | \
+	     'BusyBox '* | \
 	     'mkdir (fileutils) '4.1*)
-	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+	       ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext
 	       break 3;;
 	   esac
 	 done
@@ -12345,7 +12896,7 @@
 fi
 
   test -d ./--version && rmdir ./--version
-  if test "${ac_cv_path_mkdir+set}" = set; then
+  if test ${ac_cv_path_mkdir+y}; then
     MKDIR_P="$ac_cv_path_mkdir -p"
   else
     # As a last resort, use the slow shell script.  Don't cache a
@@ -12355,8 +12906,8 @@
     MKDIR_P="$ac_install_sh -d"
   fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+printf "%s\n" "$MKDIR_P" >&6; }
 
 case "$MKDIR_P" in
 [\\/]* | ?:[\\/]*)
@@ -12369,33 +12920,34 @@
 
 # checks for header files
 
-for ac_header in fcntl.h unistd.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+ac_fn_c_check_header_compile "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default"
+if test "x$ac_cv_header_fcntl_h" = xyes
+then :
+  printf "%s\n" "#define HAVE_FCNTL_H 1" >>confdefs.h
 
 fi
+ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
+if test "x$ac_cv_header_unistd_h" = xyes
+then :
+  printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h
 
-done
+fi
 
 
 
 # checks for typedefs, structures, and compiler characteristics
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
-$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
-if ${ac_cv_c_const+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
+printf %s "checking for an ANSI C-conforming const... " >&6; }
+if test ${ac_cv_c_const+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
 #ifndef __cplusplus
@@ -12408,7 +12960,7 @@
   /* NEC SVR4.0.2 mips cc rejects this.  */
   struct point {int x, y;};
   static struct point const zero = {0,0};
-  /* AIX XL C 1.02.0.0 rejects this.
+  /* IBM XL C 1.02.0.0 rejects this.
      It does not let you subtract one const X* pointer from another in
      an arm of an if-expression whose if-part is not a constant
      expression */
@@ -12436,7 +12988,7 @@
     iptr p = 0;
     ++p;
   }
-  { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
+  { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying
        "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
     struct s { int j; const int *ap[3]; } bx;
     struct s *b = &bx; b->j = 5;
@@ -12452,290 +13004,32 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_c_const=yes
-else
+else $as_nop
   ac_cv_c_const=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
-$as_echo "$ac_cv_c_const" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
+printf "%s\n" "$ac_cv_c_const" >&6; }
 if test $ac_cv_c_const = no; then
 
-$as_echo "#define const /**/" >>confdefs.h
+printf "%s\n" "#define const /**/" >>confdefs.h
 
 fi
 
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
-$as_echo_n "checking size of int... " >&6; }
-if ${ac_cv_sizeof_int+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int"        "$ac_includes_default"; then :
 
-else
-  if test "$ac_cv_type_int" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (int)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_int=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
-$as_echo "$ac_cv_sizeof_int" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_INT $ac_cv_sizeof_int
-_ACEOF
-
-
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
-$as_echo_n "checking size of long... " >&6; }
-if ${ac_cv_sizeof_long+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long"        "$ac_includes_default"; then :
-
-else
-  if test "$ac_cv_type_long" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (long)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_long=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
-$as_echo "$ac_cv_sizeof_long" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_LONG $ac_cv_sizeof_long
-_ACEOF
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
-$as_echo_n "checking for unsigned long long int... " >&6; }
-if ${ac_cv_type_unsigned_long_long_int+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_unsigned_long_long_int=yes
-     if test "x${ac_cv_prog_cc_c99-no}" = xno; then
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-  /* For now, do not test the preprocessor; as of 2007 there are too many
-         implementations with broken preprocessors.  Perhaps this can
-         be revisited in 2012.  In the meantime, code should not expect
-         #if to work with literals wider than 32 bits.  */
-      /* Test literals.  */
-      long long int ll = 9223372036854775807ll;
-      long long int nll = -9223372036854775807LL;
-      unsigned long long int ull = 18446744073709551615ULL;
-      /* Test constant expressions.   */
-      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
-                     ? 1 : -1)];
-      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
-                     ? 1 : -1)];
-      int i = 63;
-int
-main ()
-{
-/* Test availability of runtime routines for shift and division.  */
-      long long int llmax = 9223372036854775807ll;
-      unsigned long long int ullmax = 18446744073709551615ull;
-      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
-              | (llmax / ll) | (llmax % ll)
-              | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
-              | (ullmax / ull) | (ullmax % ull));
-  ;
-  return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-else
-  ac_cv_type_unsigned_long_long_int=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5
-$as_echo "$ac_cv_type_unsigned_long_long_int" >&6; }
-  if test $ac_cv_type_unsigned_long_long_int = yes; then
-
-$as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
-
-  fi
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
-$as_echo_n "checking for long long int... " >&6; }
-if ${ac_cv_type_long_long_int+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_long_long_int=yes
-      if test "x${ac_cv_prog_cc_c99-no}" = xno; then
-        ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
-        if test $ac_cv_type_long_long_int = yes; then
-                                        if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
-                 #ifndef LLONG_MAX
-                 # define HALF \
-                          (1LL << (sizeof (long long int) * CHAR_BIT - 2))
-                 # define LLONG_MAX (HALF - 1 + HALF)
-                 #endif
-int
-main ()
-{
-long long int n = 1;
-                 int i;
-                 for (i = 0; ; i++)
-                   {
-                     long long int m = n << i;
-                     if (m >> i != n)
-                       return 1;
-                     if (LLONG_MAX / 2 < m)
-                       break;
-                   }
-                 return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  ac_cv_type_long_long_int=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-        fi
-      fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5
-$as_echo "$ac_cv_type_long_long_int" >&6; }
-  if test $ac_cv_type_long_long_int = yes; then
-
-$as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
-
-  fi
-
-
-
-# check whether cpp computation of size of int and long in ftconfig.h.in works
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cpp computation of bit length in ftconfig.h.in works" >&5
-$as_echo_n "checking whether cpp computation of bit length in ftconfig.h.in works... " >&6; }
-orig_CPPFLAGS="${CPPFLAGS}"
-CPPFLAGS="-I${srcdir} -I. -I${srcdir}/../../include ${CPPFLAGS}"
-
-ac_clean_files=
-if test ! -f ft2build.h; then
-  ac_clean_files=ft2build.h
-  touch ft2build.h
-fi
-
-cat > conftest.c <<\_ACEOF
-#include <limits.h>
-#define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h>
-#define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h>
-#define FT_UINT_MAX  UINT_MAX
-#define FT_ULONG_MAX ULONG_MAX
-#include "ftconfig.h.in"
-_ACEOF
-echo >> conftest.c "#if FT_SIZEOF_INT == "${ac_cv_sizeof_int}
-echo >> conftest.c "ac_cpp_ft_sizeof_int="${ac_cv_sizeof_int}
-echo >> conftest.c "#endif"
-echo >> conftest.c "#if FT_SIZEOF_LONG == "${ac_cv_sizeof_long}
-echo >> conftest.c "ac_cpp_ft_sizeof_long="${ac_cv_sizeof_long}
-echo >> conftest.c "#endif"
-
-${CPP} ${CPPFLAGS} conftest.c | ${GREP} ac_cpp_ft > conftest.sh
-eval `cat conftest.sh`
-rm -f conftest.* $ac_clean_files
-
-if test x != "x${ac_cpp_ft_sizeof_int}" \
-   -a x != x"${ac_cpp_ft_sizeof_long}"; then
-  unset ft_use_autoconf_sizeof_types
-else
-  ft_use_autoconf_sizeof_types=yes
-fi
-
-# Check whether --enable-biarch-config was given.
-if test "${enable_biarch_config+set}" = set; then :
-  enableval=$enable_biarch_config;
-fi
-
-
-case :${ft_use_autoconf_sizeof_types}:${enable_biarch_config}: in
-  :yes:yes:)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: broken but use it" >&5
-$as_echo "broken but use it" >&6; }
-    unset ft_use_autoconf_sizeof_types
-    ;;
-  ::no:)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: works but ignore it" >&5
-$as_echo "works but ignore it" >&6; }
-    ft_use_autoconf_sizeof_types=yes
-    ;;
-  ::yes: | :::)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    unset ft_use_autoconf_sizeof_types
-    ;;
-  *)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    ft_use_autoconf_sizeof_types=yes
-    ;;
-esac
-
-if test x"${ft_use_autoconf_sizeof_types}" = xyes; then
-
-$as_echo "#define FT_USE_AUTOCONF_SIZEOF_TYPES /**/" >>confdefs.h
-
-fi
-
-CPPFLAGS="${orig_CPPFLAGS}"
-
 # Check whether --enable-freetype-config was given.
-if test "${enable_freetype_config+set}" = set; then :
+if test ${enable_freetype_config+y}
+then :
   enableval=$enable_freetype_config; case "${enableval}" in
     yes) enable_freetype_config="TRUE" ;;
     no)  enable_freetype_config="FALSE" ;;
     *)   as_fn_error $? "unknown value '${enableval}' passed with --enable-freetype-config" "$LINENO" 5 ;;
    esac
-else
+else $as_nop
   enable_freetype_config="FALSE"
 fi
 
@@ -12746,17 +13040,19 @@
 # checks for library functions
 
 # Check whether --enable-largefile was given.
-if test "${enable_largefile+set}" = set; then :
+if test ${enable_largefile+y}
+then :
   enableval=$enable_largefile;
 fi
 
 if test "$enable_largefile" != no; then
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
-$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
-if ${ac_cv_sys_largefile_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
+printf %s "checking for special C compiler options needed for large files... " >&6; }
+if test ${ac_cv_sys_largefile_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_cv_sys_largefile_CC=no
      if test "$GCC" != yes; then
        ac_save_CC=$CC
@@ -12770,12 +13066,12 @@
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
@@ -12782,15 +13078,17 @@
   return 0;
 }
 _ACEOF
-	 if ac_fn_c_try_compile "$LINENO"; then :
+	 if ac_fn_c_try_compile "$LINENO"
+then :
   break
 fi
-rm -f core conftest.err conftest.$ac_objext
+rm -f core conftest.err conftest.$ac_objext conftest.beam
 	 CC="$CC -n32"
-	 if ac_fn_c_try_compile "$LINENO"; then :
+	 if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_sys_largefile_CC=' -n32'; break
 fi
-rm -f core conftest.err conftest.$ac_objext
+rm -f core conftest.err conftest.$ac_objext conftest.beam
 	 break
        done
        CC=$ac_save_CC
@@ -12797,17 +13095,18 @@
        rm -f conftest.$ac_ext
     fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
-$as_echo "$ac_cv_sys_largefile_CC" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; }
   if test "$ac_cv_sys_largefile_CC" != no; then
     CC=$CC$ac_cv_sys_largefile_CC
   fi
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
-$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if ${ac_cv_sys_file_offset_bits+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+if test ${ac_cv_sys_file_offset_bits+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   while :; do
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -12816,12 +13115,12 @@
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
@@ -12828,10 +13127,11 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_sys_file_offset_bits=no; break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #define _FILE_OFFSET_BITS 64
@@ -12840,12 +13140,12 @@
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
@@ -12852,31 +13152,31 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_sys_file_offset_bits=64; break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
   ac_cv_sys_file_offset_bits=unknown
   break
 done
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
-$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
+printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; }
 case $ac_cv_sys_file_offset_bits in #(
   no | unknown) ;;
   *)
-cat >>confdefs.h <<_ACEOF
-#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
-_ACEOF
+printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h
 ;;
 esac
 rm -rf conftest*
   if test $ac_cv_sys_file_offset_bits = unknown; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
-$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
-if ${ac_cv_sys_large_files+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+printf %s "checking for _LARGE_FILES value needed for large files... " >&6; }
+if test ${ac_cv_sys_large_files+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   while :; do
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -12885,12 +13185,12 @@
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
@@ -12897,10 +13197,11 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_sys_large_files=no; break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #define _LARGE_FILES 1
@@ -12909,12 +13210,12 @@
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
@@ -12921,28 +13222,25 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_sys_large_files=1; break
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
   ac_cv_sys_large_files=unknown
   break
 done
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
-$as_echo "$ac_cv_sys_large_files" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+printf "%s\n" "$ac_cv_sys_large_files" >&6; }
 case $ac_cv_sys_large_files in #(
   no | unknown) ;;
   *)
-cat >>confdefs.h <<_ACEOF
-#define _LARGE_FILES $ac_cv_sys_large_files
-_ACEOF
+printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h
 ;;
 esac
 rm -rf conftest*
   fi
-
-
 fi
 
 
@@ -12952,9 +13250,10 @@
 # not covered by `AC_FUNC_MMAP` and/or `FT_UNMAP_PARAM`.
 
 # Check whether --enable-mmap was given.
-if test "${enable_mmap+set}" = set; then :
+if test ${enable_mmap+y}
+then :
   enableval=$enable_mmap; enable_mmap="no"
-else
+else $as_nop
   enable_mmap="yes"
 fi
 
@@ -12961,56 +13260,44 @@
 if test "x${enable_mmap}" != "xno"; then
   case "$host" in
   *-*-mingw*)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5
-$as_echo_n "checking for working mmap... " >&6; }
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: using MapViewOfFile in Windows" >&5
-$as_echo "using MapViewOfFile in Windows" >&6; }
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5
+printf %s "checking for working mmap... " >&6; }
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using MapViewOfFile in Windows" >&5
+printf "%s\n" "using MapViewOfFile in Windows" >&6; }
     FTSYS_SRC='$(TOP_DIR)/builds/windows/ftsystem.c'
     ;;
   *)
 
-
-
-  for ac_header in $ac_header_list
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
+ac_func=
+for ac_item in $ac_func_c_list
+do
+  if test $ac_func; then
+    ac_fn_c_check_func "$LINENO" $ac_func ac_cv_func_$ac_func
+    if eval test \"x\$ac_cv_func_$ac_func\" = xyes; then
+      echo "#define $ac_item 1" >> confdefs.h
+    fi
+    ac_func=
+  else
+    ac_func=$ac_item
+  fi
 done
 
 
-
-
-
-
-
-
-for ac_func in getpagesize
-do :
-  ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
-if test "x$ac_cv_func_getpagesize" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_GETPAGESIZE 1
-_ACEOF
-
-fi
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5
-$as_echo_n "checking for working mmap... " >&6; }
-if ${ac_cv_func_mmap_fixed_mapped+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-  ac_cv_func_mmap_fixed_mapped=no
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5
+printf %s "checking for working mmap... " >&6; }
+if test ${ac_cv_func_mmap_fixed_mapped+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  if test "$cross_compiling" = yes
+then :
+  case "$host_os" in # ((
+			  # Guess yes on platforms where we know the result.
+		  linux*) ac_cv_func_mmap_fixed_mapped=yes ;;
+			  # If we don't know, assume the worst.
+		  *)      ac_cv_func_mmap_fixed_mapped=no ;;
+		esac
+else $as_nop
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
@@ -13042,10 +13329,6 @@
 #include <fcntl.h>
 #include <sys/mman.h>
 
-#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H
-char *malloc ();
-#endif
-
 /* This mess was copied from the GNU getpagesize.h.  */
 #ifndef HAVE_GETPAGESIZE
 # ifdef _SC_PAGESIZE
@@ -13079,7 +13362,7 @@
 #endif /* no HAVE_GETPAGESIZE */
 
 int
-main ()
+main (void)
 {
   char *data, *data2, *data3;
   const char *cdata2;
@@ -13147,12 +13430,15 @@
     if (*(data + i) != *(data3 + i))
       return 14;
   close (fd);
+  free (data);
+  free (data3);
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   ac_cv_func_mmap_fixed_mapped=yes
-else
+else $as_nop
   ac_cv_func_mmap_fixed_mapped=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
@@ -13160,11 +13446,11 @@
 fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5
-$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5
+printf "%s\n" "$ac_cv_func_mmap_fixed_mapped" >&6; }
 if test $ac_cv_func_mmap_fixed_mapped = yes; then
 
-$as_echo "#define HAVE_MMAP 1" >>confdefs.h
+printf "%s\n" "#define HAVE_MMAP 1" >>confdefs.h
 
 fi
 rm -f conftest.mmap conftest.txt
@@ -13172,8 +13458,88 @@
     if test "$ac_cv_func_mmap_fixed_mapped" = "yes"; then
       FTSYS_SRC='$(PLATFORM_DIR)/ftsystem.c'
 
-      ac_fn_c_check_decl "$LINENO" "munmap" "ac_cv_have_decl_munmap" "
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
+printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
+if test ${ac_cv_c_undeclared_builtin_options+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  ac_save_CFLAGS=$CFLAGS
+   ac_cv_c_undeclared_builtin_options='cannot detect'
+   for ac_arg in '' -fno-builtin; do
+     CFLAGS="$ac_save_CFLAGS $ac_arg"
+     # This test program should *not* compile successfully.
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+int
+main (void)
+{
+(void) strchr;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+else $as_nop
+  # This test program should compile successfully.
+        # No library function is consistently available on
+        # freestanding implementations, so test against a dummy
+        # declaration.  Include always-available headers on the
+        # off chance that they somehow elicit warnings.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <float.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stddef.h>
+extern void ac_decl (int, char *);
+
+int
+main (void)
+{
+(void) ac_decl (0, (char *) 0);
+  (void) ac_decl;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  if test x"$ac_arg" = x
+then :
+  ac_cv_c_undeclared_builtin_options='none needed'
+else $as_nop
+  ac_cv_c_undeclared_builtin_options=$ac_arg
+fi
+          break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+    done
+    CFLAGS=$ac_save_CFLAGS
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
+printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
+  case $ac_cv_c_undeclared_builtin_options in #(
+  'cannot detect') :
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot make $CC report undeclared builtins
+See \`config.log' for more details" "$LINENO" 5; } ;; #(
+  'none needed') :
+    ac_c_undeclared_builtin_options='' ;; #(
+  *) :
+    ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
+esac
+
+ac_fn_check_decl "$LINENO" "munmap" "ac_cv_have_decl_munmap" "
+
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
@@ -13180,20 +13546,18 @@
 #include <sys/mman.h>
 
 
-"
-if test "x$ac_cv_have_decl_munmap" = xyes; then :
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl_munmap" = xyes
+then :
   ac_have_decl=1
-else
+else $as_nop
   ac_have_decl=0
 fi
+printf "%s\n" "#define HAVE_DECL_MUNMAP $ac_have_decl" >>confdefs.h
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MUNMAP $ac_have_decl
-_ACEOF
 
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for munmap's first parameter type" >&5
-$as_echo_n "checking for munmap's first parameter type... " >&6; }
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for munmap's first parameter type" >&5
+printf %s "checking for munmap's first parameter type... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -13206,17 +13570,18 @@
 
 
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: void *" >&5
-$as_echo "void *" >&6; }
+if ac_fn_c_try_compile "$LINENO"
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: void *" >&5
+printf "%s\n" "void *" >&6; }
 
-$as_echo "#define MUNMAP_USES_VOIDP /**/" >>confdefs.h
+printf "%s\n" "#define MUNMAP_USES_VOIDP /**/" >>confdefs.h
 
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: char *" >&5
-$as_echo "char *" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: char *" >&5
+printf "%s\n" "char *" >&6; }
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 
     fi
     ;;
@@ -13229,20 +13594,21 @@
 
 
 
-for ac_func in memcpy memmove
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+ac_fn_c_check_func "$LINENO" "memcpy" "ac_cv_func_memcpy"
+if test "x$ac_cv_func_memcpy" = xyes
+then :
+  printf "%s\n" "#define HAVE_MEMCPY 1" >>confdefs.h
 
 fi
-done
+ac_fn_c_check_func "$LINENO" "memmove" "ac_cv_func_memmove"
+if test "x$ac_cv_func_memmove" = xyes
+then :
+  printf "%s\n" "#define HAVE_MEMMOVE 1" >>confdefs.h
 
+fi
 
 
+
 # get compiler flags right
 #
 #   We try to make the compiler work for C99-strict source.  Even if the
@@ -13264,8 +13630,8 @@
 
     for a in "-pedantic" "-std=c99"
     do
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking $CC compiler flag ${a} to assure ANSI C99 works correctly" >&5
-$as_echo_n "checking $CC compiler flag ${a} to assure ANSI C99 works correctly... " >&6; }
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking $CC compiler flag ${a} to assure ANSI C99 works correctly" >&5
+printf %s "checking $CC compiler flag ${a} to assure ANSI C99 works correctly... " >&6; }
       orig_CFLAGS="${CFLAGS}"
       CFLAGS="${CFLAGS} ${XX_ANSIFLAGS} ${a}"
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13277,7 +13643,7 @@
 
 
 int
-main ()
+main (void)
 {
 
 
@@ -13291,16 +13657,17 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok, adding to XX_ANSIFLAGS" >&5
-$as_echo "ok, adding to XX_ANSIFLAGS" >&6; }
+if ac_fn_c_try_compile "$LINENO"
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok, adding to XX_ANSIFLAGS" >&5
+printf "%s\n" "ok, adding to XX_ANSIFLAGS" >&6; }
          XX_ANSIFLAGS="${XX_ANSIFLAGS} ${a}"
 
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
       CFLAGS="${orig_CFLAGS}"
     done
     ;;
@@ -13326,8 +13693,8 @@
 # explicit __attribute__((visibility("default"))).
 #
 found_visibility_flag=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fvisibility=hidden compiler flag" >&5
-$as_echo_n "checking for -fvisibility=hidden compiler flag... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -fvisibility=hidden compiler flag" >&5
+printf %s "checking for -fvisibility=hidden compiler flag... " >&6; }
 orig_CFLAGS="${CFLAGS}"
 CFLAGS="${CFLAGS} -fvisibility=hidden"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13334,7 +13701,7 @@
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -13341,21 +13708,22 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   found_visibility_flag=yes
-                { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
+                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+else $as_nop
   CFLAGS="${orig_CFLAGS}"
-                { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 
 if test "${found_visibility_flag}" = "no"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -xldscope=hidden compiler flag" >&5
-$as_echo_n "checking for -xldscope=hidden compiler flag... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -xldscope=hidden compiler flag" >&5
+printf %s "checking for -xldscope=hidden compiler flag... " >&6; }
   orig_CFLAGS="${CFLAGS}"
   CFLAGS="${CFLAGS} -xldscope=hidden"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13362,7 +13730,7 @@
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -13369,16 +13737,17 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   found_visibility_flag=yes
-                  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
+                  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+else $as_nop
   CFLAGS="${orig_CFLAGS}"
-                  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+                  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 fi
 
@@ -13402,9 +13771,10 @@
 
 
 # Check whether --with-zlib was given.
-if test "${with_zlib+set}" = set; then :
+if test ${with_zlib+y}
+then :
   withval=$with_zlib;
-else
+else $as_nop
   with_zlib=auto
 fi
 
@@ -13416,10 +13786,10 @@
 
   if test x"$ZLIB_CFLAGS" = x -a x"$ZLIB_LIBS" = x; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$zlib_pkg\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$zlib_pkg\""; } >&5
   ($PKG_CONFIG --exists --print-errors "$zlib_pkg") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   have_zlib_pkg=yes
 fi
@@ -13426,17 +13796,17 @@
   fi
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZLIB" >&5
-$as_echo_n "checking for ZLIB... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ZLIB" >&5
+printf %s "checking for ZLIB... " >&6; }
 
 if test -n "$ZLIB_CFLAGS"; then
     pkg_cv_ZLIB_CFLAGS="$ZLIB_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$zlib_pkg\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$zlib_pkg\""; } >&5
   ($PKG_CONFIG --exists --print-errors "$zlib_pkg") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_ZLIB_CFLAGS=`$PKG_CONFIG --cflags "$zlib_pkg" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -13450,10 +13820,10 @@
     pkg_cv_ZLIB_LIBS="$ZLIB_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$zlib_pkg\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$zlib_pkg\""; } >&5
   ($PKG_CONFIG --exists --print-errors "$zlib_pkg") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_ZLIB_LIBS=`$PKG_CONFIG --libs "$zlib_pkg" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -13467,8 +13837,8 @@
 
 
 if test $pkg_failed = yes; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+   	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
@@ -13485,14 +13855,14 @@
 
 	:
 elif test $pkg_failed = untried; then
-     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+     	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 	:
 else
 	ZLIB_CFLAGS=$pkg_cv_ZLIB_CFLAGS
 	ZLIB_LIBS=$pkg_cv_ZLIB_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
 	have_zlib="yes (pkg-config)"
 fi
 
@@ -13511,11 +13881,12 @@
       have_zlib="yes (ZLIB_CFLAGS and ZLIB_LIBS)"
     else
       # fall back to standard autoconf test
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gzsetparams in -lz" >&5
-$as_echo_n "checking for gzsetparams in -lz... " >&6; }
-if ${ac_cv_lib_z_gzsetparams+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gzsetparams in -lz" >&5
+printf %s "checking for gzsetparams in -lz... " >&6; }
+if test ${ac_cv_lib_z_gzsetparams+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lz  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13524,12 +13895,9 @@
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char gzsetparams ();
 int
-main ()
+main (void)
 {
 return gzsetparams ();
   ;
@@ -13536,20 +13904,23 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_z_gzsetparams=yes
-else
+else $as_nop
   ac_cv_lib_z_gzsetparams=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzsetparams" >&5
-$as_echo "$ac_cv_lib_z_gzsetparams" >&6; }
-if test "x$ac_cv_lib_z_gzsetparams" = xyes; then :
-  ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_zlib_h" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzsetparams" >&5
+printf "%s\n" "$ac_cv_lib_z_gzsetparams" >&6; }
+if test "x$ac_cv_lib_z_gzsetparams" = xyes
+then :
+  ac_fn_c_check_header_compile "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_zlib_h" = xyes
+then :
   have_zlib="yes (autoconf test)"
                                      zlib_libspriv="-lz"
                                      zlib_libsstaticconf="$zlib_libspriv"
@@ -13556,7 +13927,6 @@
                                      ZLIB_LIBS="$zlib_libspriv"
 fi
 
-
 fi
 
     fi
@@ -13572,9 +13942,10 @@
 
 
 # Check whether --with-bzip2 was given.
-if test "${with_bzip2+set}" = set; then :
+if test ${with_bzip2+y}
+then :
   withval=$with_bzip2;
-else
+else $as_nop
   with_bzip2=auto
 fi
 
@@ -13586,10 +13957,10 @@
 
   if test x"$BZIP2_CFLAGS" = x -a x"$BZIP2_LIBS" = x; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$bzip2_pkg\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$bzip2_pkg\""; } >&5
   ($PKG_CONFIG --exists --print-errors "$bzip2_pkg") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   have_bzip2_pkg=yes
 fi
@@ -13596,17 +13967,17 @@
   fi
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZIP2" >&5
-$as_echo_n "checking for BZIP2... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BZIP2" >&5
+printf %s "checking for BZIP2... " >&6; }
 
 if test -n "$BZIP2_CFLAGS"; then
     pkg_cv_BZIP2_CFLAGS="$BZIP2_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$bzip2_pkg\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$bzip2_pkg\""; } >&5
   ($PKG_CONFIG --exists --print-errors "$bzip2_pkg") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_BZIP2_CFLAGS=`$PKG_CONFIG --cflags "$bzip2_pkg" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -13620,10 +13991,10 @@
     pkg_cv_BZIP2_LIBS="$BZIP2_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$bzip2_pkg\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$bzip2_pkg\""; } >&5
   ($PKG_CONFIG --exists --print-errors "$bzip2_pkg") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_BZIP2_LIBS=`$PKG_CONFIG --libs "$bzip2_pkg" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -13637,8 +14008,8 @@
 
 
 if test $pkg_failed = yes; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+   	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
@@ -13655,14 +14026,14 @@
 
 	:
 elif test $pkg_failed = untried; then
-     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+     	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 	:
 else
 	BZIP2_CFLAGS=$pkg_cv_BZIP2_CFLAGS
 	BZIP2_LIBS=$pkg_cv_BZIP2_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
 	have_bzip2="yes (pkg-config)"
 fi
 
@@ -13681,11 +14052,12 @@
       have_bzip2="yes (BZIP2_CFLAGS and BZIP2_LIBS)"
     else
       # fall back to standard autoconf test
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzDecompress in -lbz2" >&5
-$as_echo_n "checking for BZ2_bzDecompress in -lbz2... " >&6; }
-if ${ac_cv_lib_bz2_BZ2_bzDecompress+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzDecompress in -lbz2" >&5
+printf %s "checking for BZ2_bzDecompress in -lbz2... " >&6; }
+if test ${ac_cv_lib_bz2_BZ2_bzDecompress+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lbz2  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13694,12 +14066,9 @@
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char BZ2_bzDecompress ();
 int
-main ()
+main (void)
 {
 return BZ2_bzDecompress ();
   ;
@@ -13706,20 +14075,23 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_bz2_BZ2_bzDecompress=yes
-else
+else $as_nop
   ac_cv_lib_bz2_BZ2_bzDecompress=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzDecompress" >&5
-$as_echo "$ac_cv_lib_bz2_BZ2_bzDecompress" >&6; }
-if test "x$ac_cv_lib_bz2_BZ2_bzDecompress" = xyes; then :
-  ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_bzlib_h" = xyes; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzDecompress" >&5
+printf "%s\n" "$ac_cv_lib_bz2_BZ2_bzDecompress" >&6; }
+if test "x$ac_cv_lib_bz2_BZ2_bzDecompress" = xyes
+then :
+  ac_fn_c_check_header_compile "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_bzlib_h" = xyes
+then :
   have_bzip2="yes (autoconf test)"
                                      bzip2_libspriv="-lbz2"
                                      bzip2_libsstaticconf="$bzip2_libspriv"
@@ -13726,7 +14098,6 @@
                                      BZIP2_LIBS="$bzip2_libspriv"
 fi
 
-
 fi
 
     fi
@@ -13742,9 +14113,10 @@
 
 
 # Check whether --with-png was given.
-if test "${with_png+set}" = set; then :
+if test ${with_png+y}
+then :
   withval=$with_png;
-else
+else $as_nop
   with_png=auto
 fi
 
@@ -13756,10 +14128,10 @@
 
   if test x"$LIBPNG_CFLAGS" = x -a x"$LIBPNG_LIBS" = x; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$libpng_pkg\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$libpng_pkg\""; } >&5
   ($PKG_CONFIG --exists --print-errors "$libpng_pkg") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   have_libpng_pkg=yes
 fi
@@ -13766,17 +14138,17 @@
   fi
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBPNG" >&5
-$as_echo_n "checking for LIBPNG... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LIBPNG" >&5
+printf %s "checking for LIBPNG... " >&6; }
 
 if test -n "$LIBPNG_CFLAGS"; then
     pkg_cv_LIBPNG_CFLAGS="$LIBPNG_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$libpng_pkg\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$libpng_pkg\""; } >&5
   ($PKG_CONFIG --exists --print-errors "$libpng_pkg") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_LIBPNG_CFLAGS=`$PKG_CONFIG --cflags "$libpng_pkg" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -13790,10 +14162,10 @@
     pkg_cv_LIBPNG_LIBS="$LIBPNG_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$libpng_pkg\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$libpng_pkg\""; } >&5
   ($PKG_CONFIG --exists --print-errors "$libpng_pkg") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_LIBPNG_LIBS=`$PKG_CONFIG --libs "$libpng_pkg" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -13807,8 +14179,8 @@
 
 
 if test $pkg_failed = yes; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+   	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
@@ -13825,14 +14197,14 @@
 
 	:
 elif test $pkg_failed = untried; then
-     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+     	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 	:
 else
 	LIBPNG_CFLAGS=$pkg_cv_LIBPNG_CFLAGS
 	LIBPNG_LIBS=$pkg_cv_LIBPNG_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
 	have_libpng="yes (pkg-config)"
 fi
 
@@ -13851,8 +14223,8 @@
       have_libpng="yes (LIBPNG_CFLAGS and LIBPNG_LIBS)"
     else
       # fall back to config script
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libpng-config" >&5
-$as_echo_n "checking for libpng-config... " >&6; }
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libpng-config" >&5
+printf %s "checking for libpng-config... " >&6; }
       if which libpng-config > /dev/null 2>&1; then
         LIBPNG_CFLAGS=`libpng-config --cflags`
         LIBPNG_LIBS=`libpng-config --ldflags`
@@ -13859,11 +14231,11 @@
         libpng_libspriv=`libpng-config --static --ldflags`
         libpng_libsstaticconf="$libpng_libspriv"
         have_libpng="yes (libpng-config)"
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
       else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
       fi
     fi
   fi
@@ -13878,9 +14250,10 @@
 
 
 # Check whether --with-harfbuzz was given.
-if test "${with_harfbuzz+set}" = set; then :
+if test ${with_harfbuzz+y}
+then :
   withval=$with_harfbuzz;
-else
+else $as_nop
   with_harfbuzz=auto
 fi
 
@@ -13892,10 +14265,10 @@
 
   if test x"$HARFBUZZ_CFLAGS" = x -a x"$HARFBUZZ_LIBS" = x; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$harfbuzz_pkg\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$harfbuzz_pkg\""; } >&5
   ($PKG_CONFIG --exists --print-errors "$harfbuzz_pkg") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   have_harfbuzz_pkg=yes
 fi
@@ -13902,17 +14275,17 @@
   fi
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for HARFBUZZ" >&5
-$as_echo_n "checking for HARFBUZZ... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for HARFBUZZ" >&5
+printf %s "checking for HARFBUZZ... " >&6; }
 
 if test -n "$HARFBUZZ_CFLAGS"; then
     pkg_cv_HARFBUZZ_CFLAGS="$HARFBUZZ_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$harfbuzz_pkg\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$harfbuzz_pkg\""; } >&5
   ($PKG_CONFIG --exists --print-errors "$harfbuzz_pkg") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_HARFBUZZ_CFLAGS=`$PKG_CONFIG --cflags "$harfbuzz_pkg" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -13926,10 +14299,10 @@
     pkg_cv_HARFBUZZ_LIBS="$HARFBUZZ_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$harfbuzz_pkg\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$harfbuzz_pkg\""; } >&5
   ($PKG_CONFIG --exists --print-errors "$harfbuzz_pkg") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_HARFBUZZ_LIBS=`$PKG_CONFIG --libs "$harfbuzz_pkg" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -13943,8 +14316,8 @@
 
 
 if test $pkg_failed = yes; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+   	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
@@ -13961,14 +14334,14 @@
 
 	:
 elif test $pkg_failed = untried; then
-     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+     	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 	:
 else
 	HARFBUZZ_CFLAGS=$pkg_cv_HARFBUZZ_CFLAGS
 	HARFBUZZ_LIBS=$pkg_cv_HARFBUZZ_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
 	have_harfbuzz="yes (pkg-config)"
 fi
 
@@ -14002,9 +14375,10 @@
 
 
 # Check whether --with-brotli was given.
-if test "${with_brotli+set}" = set; then :
+if test ${with_brotli+y}
+then :
   withval=$with_brotli;
-else
+else $as_nop
   with_brotli=auto
 fi
 
@@ -14016,10 +14390,10 @@
 
   if test x"$BROTLI_CFLAGS" = x -a x"$BROTLI_LIBS" = x; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$brotli_pkg\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$brotli_pkg\""; } >&5
   ($PKG_CONFIG --exists --print-errors "$brotli_pkg") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   have_brotli_pkg=yes
 fi
@@ -14026,17 +14400,17 @@
   fi
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BROTLI" >&5
-$as_echo_n "checking for BROTLI... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BROTLI" >&5
+printf %s "checking for BROTLI... " >&6; }
 
 if test -n "$BROTLI_CFLAGS"; then
     pkg_cv_BROTLI_CFLAGS="$BROTLI_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$brotli_pkg\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$brotli_pkg\""; } >&5
   ($PKG_CONFIG --exists --print-errors "$brotli_pkg") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_BROTLI_CFLAGS=`$PKG_CONFIG --cflags "$brotli_pkg" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -14050,10 +14424,10 @@
     pkg_cv_BROTLI_LIBS="$BROTLI_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$brotli_pkg\""; } >&5
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$brotli_pkg\""; } >&5
   ($PKG_CONFIG --exists --print-errors "$brotli_pkg") 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_BROTLI_LIBS=`$PKG_CONFIG --libs "$brotli_pkg" 2>/dev/null`
 		      test "x$?" != "x0" && pkg_failed=yes
@@ -14067,8 +14441,8 @@
 
 
 if test $pkg_failed = yes; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+   	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 
 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
         _pkg_short_errors_supported=yes
@@ -14085,14 +14459,14 @@
 
 	:
 elif test $pkg_failed = untried; then
-     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+     	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 	:
 else
 	BROTLI_CFLAGS=$pkg_cv_BROTLI_CFLAGS
 	BROTLI_LIBS=$pkg_cv_BROTLI_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
 	have_brotli="yes (pkg-config)"
 fi
 
@@ -14130,11 +14504,12 @@
 # very old Solaris systems.
 
 LIB_CLOCK_GETTIME=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
-$as_echo_n "checking for library containing clock_gettime... " >&6; }
-if ${ac_cv_search_clock_gettime+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
+printf %s "checking for library containing clock_gettime... " >&6; }
+if test ${ac_cv_search_clock_gettime+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ac_func_search_save_LIBS=$LIBS
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -14142,12 +14517,9 @@
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char clock_gettime ();
 int
-main ()
+main (void)
 {
 return clock_gettime ();
   ;
@@ -14154,7 +14526,8 @@
   return 0;
 }
 _ACEOF
-for ac_lib in '' rt; do
+for ac_lib in '' rt
+do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
@@ -14161,27 +14534,31 @@
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  if ac_fn_c_try_link "$LINENO"; then :
+  if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_search_clock_gettime=$ac_res
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext
-  if ${ac_cv_search_clock_gettime+:} false; then :
+  if test ${ac_cv_search_clock_gettime+y}
+then :
   break
 fi
 done
-if ${ac_cv_search_clock_gettime+:} false; then :
+if test ${ac_cv_search_clock_gettime+y}
+then :
 
-else
+else $as_nop
   ac_cv_search_clock_gettime=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
-$as_echo "$ac_cv_search_clock_gettime" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
+printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
 ac_res=$ac_cv_search_clock_gettime
-if test "$ac_res" != no; then :
+if test "$ac_res" != no
+then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
   test "$ac_cv_search_clock_gettime" = "none required" \
                 || LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime
@@ -14204,29 +14581,29 @@
   case "${c}" in
   -isysroot|-arch) # options taking 1 argument
     a=$2
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether CFLAGS and LDFLAGS share ${c} ${a}" >&5
-$as_echo_n "checking whether CFLAGS and LDFLAGS share ${c} ${a}... " >&6; }
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether CFLAGS and LDFLAGS share ${c} ${a}" >&5
+printf %s "checking whether CFLAGS and LDFLAGS share ${c} ${a}... " >&6; }
     if expr " ${LDFLAGS} " : ".* ${c} *${a}.*" > /dev/null
     then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
     else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, copy to LDFLAGS" >&5
-$as_echo "no, copy to LDFLAGS" >&6; }
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, copy to LDFLAGS" >&5
+printf "%s\n" "no, copy to LDFLAGS" >&6; }
       LDFLAGS="${LDFLAGS} ${c} ${a}"
     fi
     shift 1
     ;;
   -m32|-m64|-march=*|-mcpu=*) # options taking no argument
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether CFLAGS and LDFLAGS share ${c}" >&5
-$as_echo_n "checking whether CFLAGS and LDFLAGS share ${c}... " >&6; }
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether CFLAGS and LDFLAGS share ${c}" >&5
+printf %s "checking whether CFLAGS and LDFLAGS share ${c}... " >&6; }
     if expr " ${LDFLAGS} " : ".* ${c} *${a}.*" > /dev/null
     then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
     else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, copy to LDFLAGS" >&5
-$as_echo "no, copy to LDFLAGS" >&6; }
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, copy to LDFLAGS" >&5
+printf "%s\n" "no, copy to LDFLAGS" >&6; }
       LDFLAGS="${LDFLAGS} ${c}"
     fi
     ;;
@@ -14246,14 +14623,15 @@
 
 
 # Check whether --with-old-mac-fonts was given.
-if test "${with_old_mac_fonts+set}" = set; then :
+if test ${with_old_mac_fonts+y}
+then :
   withval=$with_old_mac_fonts;
 fi
 
 if test x$with_old_mac_fonts = xyes; then
   orig_LDFLAGS="${LDFLAGS}"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking CoreServices & ApplicationServices of Mac OS X" >&5
-$as_echo_n "checking CoreServices & ApplicationServices of Mac OS X... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking CoreServices & ApplicationServices of Mac OS X" >&5
+printf %s "checking CoreServices & ApplicationServices of Mac OS X... " >&6; }
   ft2_extra_libs="-Wl,-framework,CoreServices -Wl,-framework,ApplicationServices"
   LDFLAGS="$LDFLAGS $ft2_extra_libs"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14271,7 +14649,7 @@
 
 
 int
-main ()
+main (void)
 {
 
 
@@ -14285,12 +14663,13 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
+if ac_fn_c_try_link "$LINENO"
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf "%s\n" "ok" >&6; }
      ftmac_c='ftmac.c'
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OS_INLINE macro is ANSI compatible" >&5
-$as_echo_n "checking whether OS_INLINE macro is ANSI compatible... " >&6; }
+     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether OS_INLINE macro is ANSI compatible" >&5
+printf %s "checking whether OS_INLINE macro is ANSI compatible... " >&6; }
      orig_CFLAGS="$CFLAGS -DFT_MACINTOSH"
      CFLAGS="$CFLAGS $XX_CFLAGS $XX_ANSIFLAGS"
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14308,7 +14687,7 @@
 
 
 int
-main ()
+main (void)
 {
 
 
@@ -14324,21 +14703,22 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
+if ac_fn_c_try_compile "$LINENO"
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf "%s\n" "ok" >&6; }
         CFLAGS="$orig_CFLAGS"
         CFLAGS="$CFLAGS -DHAVE_ANSI_OS_INLINE=1"
 
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, ANSI incompatible" >&5
-$as_echo "no, ANSI incompatible" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, ANSI incompatible" >&5
+printf "%s\n" "no, ANSI incompatible" >&6; }
         CFLAGS="$orig_CFLAGS"
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking type ResourceIndex" >&5
-$as_echo_n "checking type ResourceIndex... " >&6; }
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking type ResourceIndex" >&5
+printf %s "checking type ResourceIndex... " >&6; }
      orig_CFLAGS="$CFLAGS"
      CFLAGS="$CFLAGS $XX_CFLAGS $XX_ANSIFLAGS"
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14357,7 +14737,7 @@
 
 
 int
-main ()
+main (void)
 {
 
 
@@ -14369,28 +14749,29 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
+if ac_fn_c_try_compile "$LINENO"
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf "%s\n" "ok" >&6; }
         CFLAGS="$orig_CFLAGS"
         CFLAGS="$CFLAGS -DHAVE_TYPE_RESOURCE_INDEX=1"
 
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
         CFLAGS="$orig_CFLAGS"
         CFLAGS="$CFLAGS -DHAVE_TYPE_RESOURCE_INDEX=0"
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-$as_echo "not found" >&6; }
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+printf "%s\n" "not found" >&6; }
      ft2_extra_libs=""
      LDFLAGS="${orig_LDFLAGS}"
      CFLAGS="$CFLAGS -DDARWIN_NO_CARBON"
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 else
   case x$host_os in
@@ -14407,7 +14788,8 @@
 
 
 # Check whether --with-fsspec was given.
-if test "${with_fsspec+set}" = set; then :
+if test ${with_fsspec+y}
+then :
   withval=$with_fsspec;
 fi
 
@@ -14414,8 +14796,8 @@
 if test x$with_fsspec = xno; then
   CFLAGS="$CFLAGS -DHAVE_FSSPEC=0"
 elif test x$with_old_mac_fonts = xyes -a x$with_fsspec != x; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking FSSpec-based FileManager" >&5
-$as_echo_n "checking FSSpec-based FileManager... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking FSSpec-based FileManager" >&5
+printf %s "checking FSSpec-based FileManager... " >&6; }
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -14431,7 +14813,7 @@
 
 
 int
-main ()
+main (void)
 {
 
 
@@ -14451,16 +14833,17 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
+if ac_fn_c_try_link "$LINENO"
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf "%s\n" "ok" >&6; }
      CFLAGS="$CFLAGS -DHAVE_FSSPEC=1"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-$as_echo "not found" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+printf "%s\n" "not found" >&6; }
      CFLAGS="$CFLAGS -DHAVE_FSSPEC=0"
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 fi
 
@@ -14469,17 +14852,18 @@
 
 
 # Check whether --with-fsref was given.
-if test "${with_fsref+set}" = set; then :
+if test ${with_fsref+y}
+then :
   withval=$with_fsref;
 fi
 
 if test x$with_fsref = xno; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING:
 *** WARNING
     FreeType2 built without FSRef API cannot load
     data-fork fonts on MacOS, except of XXX.dfont.
     " >&5
-$as_echo "$as_me: WARNING:
+printf "%s\n" "$as_me: WARNING:
 *** WARNING
     FreeType2 built without FSRef API cannot load
     data-fork fonts on MacOS, except of XXX.dfont.
@@ -14486,8 +14870,8 @@
     " >&2;}
   CFLAGS="$CFLAGS -DHAVE_FSREF=0"
 elif test x$with_old_mac_fonts = xyes -a x$with_fsref != x; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking FSRef-based FileManager" >&5
-$as_echo_n "checking FSRef-based FileManager... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking FSRef-based FileManager" >&5
+printf %s "checking FSRef-based FileManager... " >&6; }
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -14503,7 +14887,7 @@
 
 
 int
-main ()
+main (void)
 {
 
 
@@ -14543,16 +14927,17 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
+if ac_fn_c_try_link "$LINENO"
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf "%s\n" "ok" >&6; }
      CFLAGS="$CFLAGS -DHAVE_FSREF=1"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-$as_echo "not found" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+printf "%s\n" "not found" >&6; }
      CFLAGS="$CFLAGS -DHAVE_FSREF=0"
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 fi
 
@@ -14562,7 +14947,8 @@
 
 
 # Check whether --with-quickdraw-toolbox was given.
-if test "${with_quickdraw_toolbox+set}" = set; then :
+if test ${with_quickdraw_toolbox+y}
+then :
   withval=$with_quickdraw_toolbox;
 fi
 
@@ -14569,8 +14955,8 @@
 if test x$with_quickdraw_toolbox = xno; then
   CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_TOOLBOX=0"
 elif test x$with_old_mac_fonts = xyes -a x$with_quickdraw_toolbox != x; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking QuickDraw FontManager functions in ToolBox" >&5
-$as_echo_n "checking QuickDraw FontManager functions in ToolBox... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking QuickDraw FontManager functions in ToolBox" >&5
+printf %s "checking QuickDraw FontManager functions in ToolBox... " >&6; }
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -14586,7 +14972,7 @@
 
 
 int
-main ()
+main (void)
 {
 
 
@@ -14605,16 +14991,17 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
+if ac_fn_c_try_link "$LINENO"
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf "%s\n" "ok" >&6; }
      CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_TOOLBOX=1"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-$as_echo "not found" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+printf "%s\n" "not found" >&6; }
      CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_TOOLBOX=0"
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 fi
 
@@ -14624,7 +15011,8 @@
 
 
 # Check whether --with-quickdraw-carbon was given.
-if test "${with_quickdraw_carbon+set}" = set; then :
+if test ${with_quickdraw_carbon+y}
+then :
   withval=$with_quickdraw_carbon;
 fi
 
@@ -14631,8 +15019,8 @@
 if test x$with_quickdraw_carbon = xno; then
   CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_CARBON=0"
 elif test x$with_old_mac_fonts = xyes -a x$with_quickdraw_carbon != x; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking QuickDraw FontManager functions in Carbon" >&5
-$as_echo_n "checking QuickDraw FontManager functions in Carbon... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking QuickDraw FontManager functions in Carbon" >&5
+printf %s "checking QuickDraw FontManager functions in Carbon... " >&6; }
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -14648,7 +15036,7 @@
 
 
 int
-main ()
+main (void)
 {
 
 
@@ -14677,16 +15065,17 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
+if ac_fn_c_try_link "$LINENO"
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf "%s\n" "ok" >&6; }
      CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_CARBON=1"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-$as_echo "not found" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+printf "%s\n" "not found" >&6; }
      CFLAGS="$CFLAGS -DHAVE_QUICKDRAW_CARBON=0"
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 fi
 
@@ -14695,7 +15084,8 @@
 
 
 # Check whether --with-ats was given.
-if test "${with_ats+set}" = set; then :
+if test ${with_ats+y}
+then :
   withval=$with_ats;
 fi
 
@@ -14702,8 +15092,8 @@
 if test x$with_ats = xno; then
   CFLAGS="$CFLAGS -DHAVE_ATS=0"
 elif test x$with_old_mac_fonts = xyes -a x$with_ats != x; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking AppleTypeService functions" >&5
-$as_echo_n "checking AppleTypeService functions... " >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking AppleTypeService functions" >&5
+printf %s "checking AppleTypeService functions... " >&6; }
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -14719,7 +15109,7 @@
 
 
 int
-main ()
+main (void)
 {
 
 
@@ -14736,27 +15126,28 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
+if ac_fn_c_try_link "$LINENO"
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf "%s\n" "ok" >&6; }
      CFLAGS="$CFLAGS -DHAVE_ATS=1"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-$as_echo "not found" >&6; }
+else $as_nop
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+printf "%s\n" "not found" >&6; }
      CFLAGS="$CFLAGS -DHAVE_ATS=0"
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 fi
 
 case "$CFLAGS" in
   *HAVE_FSSPEC* | *HAVE_FSREF* | *HAVE_QUICKDRAW* | *HAVE_ATS* )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING:
 *** WARNING
     FSSpec/FSRef/QuickDraw/ATS options are explicitly given,
     thus it is recommended to replace src/base/ftmac.c by builds/mac/ftmac.c.
     " >&5
-$as_echo "$as_me: WARNING:
+printf "%s\n" "$as_me: WARNING:
 *** WARNING
     FSSpec/FSRef/QuickDraw/ATS options are explicitly given,
     thus it is recommended to replace src/base/ftmac.c by builds/mac/ftmac.c.
@@ -14769,21 +15160,22 @@
 
 # Check for pthreads
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
-$as_echo_n "checking target system type... " >&6; }
-if ${ac_cv_target+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+printf %s "checking target system type... " >&6; }
+if test ${ac_cv_target+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test "x$target_alias" = x; then
   ac_cv_target=$ac_cv_host
 else
-  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+  ac_cv_target=`$SHELL "${ac_aux_dir}config.sub" $target_alias` ||
+    as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $target_alias failed" "$LINENO" 5
 fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
-$as_echo "$ac_cv_target" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+printf "%s\n" "$ac_cv_target" >&6; }
 case $ac_cv_target in
 *-*-*) ;;
 *) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
@@ -14812,6 +15204,7 @@
 
 
 
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -14831,16 +15224,18 @@
         ax_pthread_save_CC="$CC"
         ax_pthread_save_CFLAGS="$CFLAGS"
         ax_pthread_save_LIBS="$LIBS"
-        if test "x$PTHREAD_CC" != "x"; then :
+        if test "x$PTHREAD_CC" != "x"
+then :
   CC="$PTHREAD_CC"
 fi
-        if test "x$PTHREAD_CXX" != "x"; then :
+        if test "x$PTHREAD_CXX" != "x"
+then :
   CXX="$PTHREAD_CXX"
 fi
         CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
         LIBS="$PTHREAD_LIBS $LIBS"
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS" >&5
-$as_echo_n "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS... " >&6; }
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS" >&5
+printf %s "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS... " >&6; }
         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -14847,12 +15242,9 @@
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
    builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
 char pthread_join ();
 int
-main ()
+main (void)
 {
 return pthread_join ();
   ;
@@ -14859,13 +15251,14 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ax_pthread_ok=yes
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
-$as_echo "$ax_pthread_ok" >&6; }
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
+printf "%s\n" "$ax_pthread_ok" >&6; }
         if test "x$ax_pthread_ok" = "xno"; then
                 PTHREAD_LIBS=""
                 PTHREAD_CFLAGS=""
@@ -14943,11 +15336,12 @@
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5
-$as_echo "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;}
+  $EGREP "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5
+printf "%s\n" "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;}
 fi
-rm -f conftest*
+rm -rf conftest*
 
         ;;
 
@@ -14967,11 +15361,12 @@
 
 # Are we compiling with Clang?
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC is Clang" >&5
-$as_echo_n "checking whether $CC is Clang... " >&6; }
-if ${ax_cv_PTHREAD_CLANG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC is Clang" >&5
+printf %s "checking whether $CC is Clang... " >&6; }
+if test ${ax_cv_PTHREAD_CLANG+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ax_cv_PTHREAD_CLANG=no
      # Note that Autoconf sets GCC=yes for Clang as well as GCC
      if test "x$GCC" = "xyes"; then
@@ -14984,16 +15379,17 @@
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1; then :
+  $EGREP "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1
+then :
   ax_cv_PTHREAD_CLANG=yes
 fi
-rm -f conftest*
+rm -rf conftest*
 
      fi
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5
-$as_echo "$ax_cv_PTHREAD_CLANG" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5
+printf "%s\n" "$ax_cv_PTHREAD_CLANG" >&6; }
 ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
 
 
@@ -15007,13 +15403,15 @@
 # [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555
 # To solve this, first try -pthread together with -lpthread for GCC
 
-if test "x$GCC" = "xyes"; then :
+if test "x$GCC" = "xyes"
+then :
   ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags"
 fi
 
 # Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first
 
-if test "x$ax_pthread_clang" = "xyes"; then :
+if test "x$ax_pthread_clang" = "xyes"
+then :
   ax_pthread_flags="-pthread,-lpthread -pthread"
 fi
 
@@ -15035,9 +15433,10 @@
         ax_pthread_check_macro="--"
         ;;
 esac
-if test "x$ax_pthread_check_macro" = "x--"; then :
+if test "x$ax_pthread_check_macro" = "x--"
+then :
   ax_pthread_check_cond=0
-else
+else $as_nop
   ax_pthread_check_cond="!defined($ax_pthread_check_macro)"
 fi
 
@@ -15047,20 +15446,20 @@
 
         case $ax_pthread_try_flag in
                 none)
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5
-$as_echo_n "checking whether pthreads work without any flags... " >&6; }
+                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5
+printf %s "checking whether pthreads work without any flags... " >&6; }
                 ;;
 
                 *,*)
                 PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"`
                 PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"`
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"" >&5
-$as_echo_n "checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"... " >&6; }
+                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"" >&5
+printf %s "checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"... " >&6; }
                 ;;
 
                 -*)
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $ax_pthread_try_flag" >&5
-$as_echo_n "checking whether pthreads work with $ax_pthread_try_flag... " >&6; }
+                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $ax_pthread_try_flag" >&5
+printf %s "checking whether pthreads work with $ax_pthread_try_flag... " >&6; }
                 PTHREAD_CFLAGS="$ax_pthread_try_flag"
                 ;;
 
@@ -15067,11 +15466,12 @@
                 pthread-config)
                 # Extract the first word of "pthread-config", so it can be a program name with args.
 set dummy pthread-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ax_pthread_config+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ax_pthread_config+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$ax_pthread_config"; then
   ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test.
 else
@@ -15079,11 +15479,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_ax_pthread_config="yes"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -15095,15 +15499,16 @@
 fi
 ax_pthread_config=$ac_cv_prog_ax_pthread_config
 if test -n "$ax_pthread_config"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5
-$as_echo "$ax_pthread_config" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5
+printf "%s\n" "$ax_pthread_config" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
-                if test "x$ax_pthread_config" = "xno"; then :
+                if test "x$ax_pthread_config" = "xno"
+then :
   continue
 fi
                 PTHREAD_CFLAGS="`pthread-config --cflags`"
@@ -15111,8 +15516,8 @@
                 ;;
 
                 *)
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$ax_pthread_try_flag" >&5
-$as_echo_n "checking for the pthreads library -l$ax_pthread_try_flag... " >&6; }
+                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$ax_pthread_try_flag" >&5
+printf %s "checking for the pthreads library -l$ax_pthread_try_flag... " >&6; }
                 PTHREAD_LIBS="-l$ax_pthread_try_flag"
                 ;;
         esac
@@ -15147,7 +15552,7 @@
                           }
                         static void *start_routine(void *a) { return a; }
 int
-main ()
+main (void)
 {
 pthread_t th; pthread_attr_t attr;
                         pthread_create(&th, 0, start_routine, 0);
@@ -15159,18 +15564,20 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ax_pthread_ok=yes
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 
         CFLAGS="$ax_pthread_save_CFLAGS"
         LIBS="$ax_pthread_save_LIBS"
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
-$as_echo "$ax_pthread_ok" >&6; }
-        if test "x$ax_pthread_ok" = "xyes"; then :
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
+printf "%s\n" "$ax_pthread_ok" >&6; }
+        if test "x$ax_pthread_ok" = "xyes"
+then :
   break
 fi
 
@@ -15216,11 +15623,12 @@
         # that build with -Werror.  So if the active version of Clang has
         # this misfeature, we search for an option to squash it.
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread" >&5
-$as_echo_n "checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread... " >&6; }
-if ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread" >&5
+printf %s "checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread... " >&6; }
+if test ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
              # Create an alternate version of $ac_link that compiles and
              # links in two steps (.c -> .o, .o -> exe) instead of one
@@ -15228,11 +15636,12 @@
              # step
              ax_pthread_save_ac_link="$ac_link"
              ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
-             ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"`
+             ax_pthread_link_step=`printf "%s\n" "$ac_link" | sed "$ax_pthread_sed"`
              ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
              ax_pthread_save_CFLAGS="$CFLAGS"
              for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
-                if test "x$ax_pthread_try" = "xunknown"; then :
+                if test "x$ax_pthread_try" = "xunknown"
+then :
   break
 fi
                 CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
@@ -15241,32 +15650,35 @@
 /* end confdefs.h.  */
 int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_link="$ax_pthread_2step_ac_link"
                      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   break
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
              done
              ac_link="$ax_pthread_save_ac_link"
              CFLAGS="$ax_pthread_save_CFLAGS"
-             if test "x$ax_pthread_try" = "x"; then :
+             if test "x$ax_pthread_try" = "x"
+then :
   ax_pthread_try=no
 fi
              ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5
-$as_echo "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5
+printf "%s\n" "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; }
 
         case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
                 no | unknown) ;;
@@ -15285,11 +15697,12 @@
         LIBS="$PTHREAD_LIBS $LIBS"
 
         # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5
-$as_echo_n "checking for joinable pthread attribute... " >&6; }
-if ${ax_cv_PTHREAD_JOINABLE_ATTR+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5
+printf %s "checking for joinable pthread attribute... " >&6; }
+if test ${ax_cv_PTHREAD_JOINABLE_ATTR+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ax_cv_PTHREAD_JOINABLE_ATTR=unknown
              for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
                  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -15296,7 +15709,7 @@
 /* end confdefs.h.  */
 #include <pthread.h>
 int
-main ()
+main (void)
 {
 int attr = $ax_pthread_attr; return attr /* ; */
   ;
@@ -15303,33 +15716,34 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
              done
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5
-$as_echo "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5
+printf "%s\n" "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; }
         if test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \
                test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \
-               test "x$ax_pthread_joinable_attr_defined" != "xyes"; then :
+               test "x$ax_pthread_joinable_attr_defined" != "xyes"
+then :
 
-cat >>confdefs.h <<_ACEOF
-#define PTHREAD_CREATE_JOINABLE $ax_cv_PTHREAD_JOINABLE_ATTR
-_ACEOF
+printf "%s\n" "#define PTHREAD_CREATE_JOINABLE $ax_cv_PTHREAD_JOINABLE_ATTR" >>confdefs.h
 
                ax_pthread_joinable_attr_defined=yes
 
 fi
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether more special flags are required for pthreads" >&5
-$as_echo_n "checking whether more special flags are required for pthreads... " >&6; }
-if ${ax_cv_PTHREAD_SPECIAL_FLAGS+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether more special flags are required for pthreads" >&5
+printf %s "checking whether more special flags are required for pthreads... " >&6; }
+if test ${ax_cv_PTHREAD_SPECIAL_FLAGS+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   ax_cv_PTHREAD_SPECIAL_FLAGS=no
              case $target_os in
              solaris*)
@@ -15338,24 +15752,26 @@
              esac
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5
-$as_echo "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5
+printf "%s\n" "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; }
         if test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
-               test "x$ax_pthread_special_flags_added" != "xyes"; then :
+               test "x$ax_pthread_special_flags_added" != "xyes"
+then :
   PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
                ax_pthread_special_flags_added=yes
 fi
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5
-$as_echo_n "checking for PTHREAD_PRIO_INHERIT... " >&6; }
-if ${ax_cv_PTHREAD_PRIO_INHERIT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5
+printf %s "checking for PTHREAD_PRIO_INHERIT... " >&6; }
+if test ${ax_cv_PTHREAD_PRIO_INHERIT+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <pthread.h>
 int
-main ()
+main (void)
 {
 int i = PTHREAD_PRIO_INHERIT;
                                                return i;
@@ -15363,21 +15779,23 @@
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ax_cv_PTHREAD_PRIO_INHERIT=yes
-else
+else $as_nop
   ax_cv_PTHREAD_PRIO_INHERIT=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5
-$as_echo "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5
+printf "%s\n" "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; }
         if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
-               test "x$ax_pthread_prio_inherit_defined" != "xyes"; then :
+               test "x$ax_pthread_prio_inherit_defined" != "xyes"
+then :
 
-$as_echo "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h
+printf "%s\n" "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h
 
                ax_pthread_prio_inherit_defined=yes
 
@@ -15396,11 +15814,14 @@
                      case "x$CC" in #(
   x/*) :
 
-			   if as_fn_executable_p ${CC}_r; then :
+			   if as_fn_executable_p ${CC}_r
+then :
   PTHREAD_CC="${CC}_r"
 fi
-			   if test "x${CXX}" != "x"; then :
-  if as_fn_executable_p ${CXX}_r; then :
+			   if test "x${CXX}" != "x"
+then :
+  if as_fn_executable_p ${CXX}_r
+then :
   PTHREAD_CXX="${CXX}_r"
 fi
 fi
@@ -15411,11 +15832,12 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_PTHREAD_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_PTHREAD_CC+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$PTHREAD_CC"; then
   ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test.
 else
@@ -15423,11 +15845,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_PTHREAD_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -15438,11 +15864,11 @@
 fi
 PTHREAD_CC=$ac_cv_prog_PTHREAD_CC
 if test -n "$PTHREAD_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5
-$as_echo "$PTHREAD_CC" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5
+printf "%s\n" "$PTHREAD_CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -15450,16 +15876,18 @@
 done
 test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
 
-			   if test "x${CXX}" != "x"; then :
+			   if test "x${CXX}" != "x"
+then :
   for ac_prog in ${CXX}_r
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_PTHREAD_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_PTHREAD_CXX+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$PTHREAD_CXX"; then
   ac_cv_prog_PTHREAD_CXX="$PTHREAD_CXX" # Let the user override the test.
 else
@@ -15467,11 +15895,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_PTHREAD_CXX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -15482,11 +15914,11 @@
 fi
 PTHREAD_CXX=$ac_cv_prog_PTHREAD_CXX
 if test -n "$PTHREAD_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CXX" >&5
-$as_echo "$PTHREAD_CXX" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CXX" >&5
+printf "%s\n" "$PTHREAD_CXX" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -15541,11 +15973,12 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_PYTHON+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_PYTHON+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
   if test -n "$PYTHON"; then
   ac_cv_prog_PYTHON="$PYTHON" # Let the user override the test.
 else
@@ -15553,11 +15986,15 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
     ac_cv_prog_PYTHON="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -15568,11 +16005,11 @@
 fi
 PYTHON=$ac_cv_prog_PYTHON
 if test -n "$PYTHON"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
-$as_echo "$PYTHON" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+printf "%s\n" "$PYTHON" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
 fi
 
 
@@ -15585,17 +16022,18 @@
 
 
 
-    if test -n "$PYTHON"; then :
+    if test -n "$PYTHON"
+then :
 
         ax_python_version="3.5"
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for python version" >&5
-$as_echo_n "checking for python version... " >&6; }
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for python version" >&5
+printf %s "checking for python version... " >&6; }
 
         python_version=`$PYTHON -V 2>&1 | $GREP "^Python " | $SED -e 's/^.* \([0-9]*\.[0-9]*\.[0-9]*\)/\1/'`
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_version" >&5
-$as_echo "$python_version" >&6; }
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $python_version" >&5
+printf "%s\n" "$python_version" >&6; }
 
 	PYTHON_VERSION=$python_version
 
@@ -15643,10 +16081,10 @@
   fi
 
 
-else
+else $as_nop
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not find the python interpreter" >&5
-$as_echo "$as_me: WARNING: could not find the python interpreter" >&2;}
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: could not find the python interpreter" >&5
+printf "%s\n" "$as_me: WARNING: could not find the python interpreter" >&2;}
 
 
 fi
@@ -15654,16 +16092,16 @@
 
   if test "x$have_py3" = "xyes"; then
     PIP="$PYTHON -m $PIP"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for \`docwriter' Python module" >&5
-$as_echo_n "checking for \`docwriter' Python module... " >&6; }
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for \`docwriter' Python module" >&5
+printf %s "checking for \`docwriter' Python module... " >&6; }
     $PYTHON -m docwriter -h > /dev/null 2>&1
     if test "x$?" = "x0"; then
       have_docwriter=yes
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
     else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
     fi
   fi
 fi
@@ -15829,8 +16267,8 @@
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
@@ -15860,7 +16298,7 @@
      /^ac_cv_env_/b end
      t clear
      :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
      t end
      s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
      :end' >>confcache
@@ -15867,8 +16305,8 @@
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
     if test "x$cache_file" != "x/dev/null"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
       if test ! -f "$cache_file" || test -h "$cache_file"; then
 	cat confcache >"$cache_file"
       else
@@ -15882,8 +16320,8 @@
       fi
     fi
   else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
 rm -f confcache
@@ -15900,7 +16338,7 @@
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
   #    will be set to the directory where LIBOBJS objects are built.
   as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
@@ -15916,8 +16354,8 @@
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
 as_write_fail=0
 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
 #! $SHELL
@@ -15940,7 +16378,9 @@
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -15947,7 +16387,7 @@
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else
+else $as_nop
   case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
@@ -15957,46 +16397,46 @@
 fi
 
 
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
 as_nl='
 '
 export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
+IFS=" ""	$as_nl"
 
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh).  This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2)            ; then :; else exec 2>/dev/null; fi
+
 # The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
   PATH_SEPARATOR=:
   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -16005,13 +16445,6 @@
 fi
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
 # Find who we are.  Look in the path if we contain no directory separator.
 as_myself=
 case $0 in #((
@@ -16020,8 +16453,12 @@
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    test -r "$as_dir$0" && as_myself=$as_dir$0 && break
   done
 IFS=$as_save_IFS
 
@@ -16033,32 +16470,12 @@
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   exit 1
 fi
 
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
 
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
 
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
 # as_fn_error STATUS ERROR [LINENO LOG_FD]
 # ----------------------------------------
 # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
@@ -16069,13 +16486,14 @@
   as_status=$1; test $as_status -eq 0 && as_status=1
   if test "$4"; then
     as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
   fi
-  $as_echo "$as_me: error: $2" >&2
+  printf "%s\n" "$as_me: error: $2" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
 
+
 # as_fn_set_status STATUS
 # -----------------------
 # Set $? to STATUS, without forking.
@@ -16102,6 +16520,7 @@
   { eval $1=; unset $1;}
 }
 as_unset=as_fn_unset
+
 # as_fn_append VAR VALUE
 # ----------------------
 # Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -16108,12 +16527,13 @@
 # advantage of any shell optimizations that allow amortized linear growth over
 # repeated appends, instead of the typical quadratic growth present in naive
 # implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
   eval 'as_fn_append ()
   {
     eval $1+=\$2
   }'
-else
+else $as_nop
   as_fn_append ()
   {
     eval $1=\$$1\$2
@@ -16125,12 +16545,13 @@
 # Perform arithmetic evaluation on the ARGs, and store the result in the
 # global $as_val. Take advantage of shells that can avoid forks. The arguments
 # must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
   eval 'as_fn_arith ()
   {
     as_val=$(( $* ))
   }'
-else
+else $as_nop
   as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
@@ -16161,7 +16582,7 @@
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
+printf "%s\n" X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
 	    s//\1/
 	    q
@@ -16183,6 +16604,10 @@
 as_cr_digits='0123456789'
 as_cr_alnum=$as_cr_Letters$as_cr_digits
 
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
 ECHO_C= ECHO_N= ECHO_T=
 case `echo -n x` in #(((((
 -n*)
@@ -16196,6 +16621,12 @@
   ECHO_N='-n';;
 esac
 
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n.  New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
@@ -16237,7 +16668,7 @@
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -16246,7 +16677,7 @@
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
+printf "%s\n" X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -16308,8 +16739,8 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by FreeType $as_me 2.11, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
+This file was extended by FreeType $as_me 2.11.1, which was
+generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -16371,14 +16802,16 @@
 Report bugs to <freetype at nongnu.org>."
 
 _ACEOF
+ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
+ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-FreeType config.status 2.11
-configured by $0, generated by GNU Autoconf 2.69,
+FreeType config.status 2.11.1
+configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -16418,15 +16851,15 @@
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
     ac_cs_recheck=: ;;
   --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    $as_echo "$ac_cs_version"; exit ;;
+    printf "%s\n" "$ac_cs_version"; exit ;;
   --config | --confi | --conf | --con | --co | --c )
-    $as_echo "$ac_cs_config"; exit ;;
+    printf "%s\n" "$ac_cs_config"; exit ;;
   --debug | --debu | --deb | --de | --d | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
     $ac_shift
     case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     '') as_fn_error $? "missing file argument" ;;
     esac
     as_fn_append CONFIG_FILES " '$ac_optarg'"
@@ -16434,7 +16867,7 @@
   --header | --heade | --head | --hea )
     $ac_shift
     case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     as_fn_append CONFIG_HEADERS " '$ac_optarg'"
     ac_need_defaults=false;;
@@ -16443,7 +16876,7 @@
     as_fn_error $? "ambiguous option: \`$1'
 Try \`$0 --help' for more information.";;
   --help | --hel | -h )
-    $as_echo "$ac_cs_usage"; exit ;;
+    printf "%s\n" "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil | --si | --s)
     ac_cs_silent=: ;;
@@ -16471,7 +16904,7 @@
 if \$ac_cs_recheck; then
   set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
   shift
-  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
   CONFIG_SHELL='$SHELL'
   export CONFIG_SHELL
   exec "\$@"
@@ -16485,7 +16918,7 @@
   sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
 ## Running $as_me. ##
 _ASBOX
-  $as_echo "$ac_log"
+  printf "%s\n" "$ac_log"
 } >&5
 
 _ACEOF
@@ -16878,9 +17311,9 @@
 # We use the long form for the default assignment because of an extremely
 # bizarre bug on SunOS 4.1.3.
 if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+  test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
+  test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
+  test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands
 fi
 
 # Have a temporary directory for convenience.  Make it in the build tree
@@ -17216,7 +17649,7 @@
 	   esac ||
 	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
-      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
     done
 
@@ -17224,17 +17657,17 @@
     # use $as_me), people would be surprised to read:
     #    /* config.h.  Generated by config.status.  */
     configure_input='Generated from '`
-	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	  printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
 	`' by configure.'
     if test x"$ac_file" != x-; then
       configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+printf "%s\n" "$as_me: creating $ac_file" >&6;}
     fi
     # Neutralize special characters interpreted by sed in replacement strings.
     case $configure_input in #(
     *\&* | *\|* | *\\* )
-       ac_sed_conf_input=`$as_echo "$configure_input" |
+       ac_sed_conf_input=`printf "%s\n" "$configure_input" |
        sed 's/[\\\\&|]/\\\\&/g'`;; #(
     *) ac_sed_conf_input=$configure_input;;
     esac
@@ -17251,7 +17684,7 @@
 	 X"$ac_file" : 'X\(//\)[^/]' \| \
 	 X"$ac_file" : 'X\(//\)$' \| \
 	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
+printf "%s\n" X"$ac_file" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -17275,9 +17708,9 @@
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -17339,8 +17772,8 @@
 case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
 *datarootdir*) ac_datarootdir_seen=yes;;
 *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   ac_datarootdir_hack='
@@ -17384,9 +17817,9 @@
   { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
   { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
       "$ac_tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&2;}
 
   rm -f "$ac_tmp/stdin"
@@ -17402,13 +17835,13 @@
   #
   if test x"$ac_file" != x-; then
     {
-      $as_echo "/* $configure_input  */" \
+      printf "%s\n" "/* $configure_input  */" >&1 \
       && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
     } >"$ac_tmp/config.h" \
       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
     if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
       mv "$ac_tmp/config.h" "$ac_file" \
@@ -17415,14 +17848,14 @@
 	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
     fi
   else
-    $as_echo "/* $configure_input  */" \
+    printf "%s\n" "/* $configure_input  */" >&1 \
       && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
       || as_fn_error $? "could not create -" "$LINENO" 5
   fi
  ;;
 
-  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
+  :C)  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
  ;;
   esac
 
@@ -17443,7 +17876,6 @@
     cat <<_LT_EOF >> "$cfgfile"
 #! $SHELL
 # Generated automatically by $as_me ($PACKAGE) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 
 # Provide generalized library-building support services.
@@ -17959,6 +18391,7 @@
   esac
 
 
+
 ltmain=$ac_aux_dir/ltmain.sh
 
 
@@ -18150,12 +18583,12 @@
   $ac_cs_success || as_fn_exit 1
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}:
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:
 
 Library configuration:
   external zlib: $have_zlib
@@ -18165,7 +18598,7 @@
   brotli:        $have_brotli
   pthread:       $have_pthread
 " >&5
-$as_echo "$as_me:
+printf "%s\n" "$as_me:
 
 Library configuration:
   external zlib: $have_zlib
@@ -18179,13 +18612,13 @@
 # Warn if docwriter is not installed
 
 if test $have_docwriter = no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING:
   \`make refdoc' will fail since pip package \`docwriter' is not installed.
   To install, run \`$PIP install docwriter', or to use a Python
   virtual environment, run \`make refdoc-venv' (requires pip package
   \`virtualenv').  These operations require Python >= 3.5.
   " >&5
-$as_echo "$as_me: WARNING:
+printf "%s\n" "$as_me: WARNING:
   \`make refdoc' will fail since pip package \`docwriter' is not installed.
   To install, run \`$PIP install docwriter', or to use a Python
   virtual environment, run \`make refdoc-venv' (requires pip package
@@ -18196,12 +18629,12 @@
 # Warn if pthread is not available
 
 if test $have_pthread = no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING:
   \`FT_DEBUG_LOGGING' will not work since the \`pthread' library is not
   available.  This warning can be safely ignored if you don't plan to use
   this configuration macro.
   " >&5
-$as_echo "$as_me: WARNING:
+printf "%s\n" "$as_me: WARNING:
   \`FT_DEBUG_LOGGING' will not work since the \`pthread' library is not
   available.  This warning can be safely ignored if you don't plan to use
   this configuration macro.
@@ -18209,3 +18642,4 @@
 fi
 
 # end of configure.raw
+

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure.ac
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure.ac	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure.ac	2021-12-03 04:03:12 UTC (rev 61211)
@@ -11,13 +11,13 @@
 # indicate that you have read the license and understand and accept it
 # fully.
 
-AC_INIT([FreeType], [2.11], [freetype at nongnu.org], [freetype])
+AC_INIT([FreeType], [2.11.1], [freetype at nongnu.org], [freetype])
 AC_CONFIG_SRCDIR([ftconfig.h.in])
 
 
 # Don't forget to update `docs/VERSIONS.TXT'!
 
-version_info='24:0:18'
+version_info='24:1:18'
 AC_SUBST([version_info])
 ft_version=`echo $version_info | tr : .`
 AC_SUBST([ft_version])
@@ -103,79 +103,7 @@
 # checks for typedefs, structures, and compiler characteristics
 
 AC_C_CONST
-AC_CHECK_SIZEOF([int])
-AC_CHECK_SIZEOF([long])
-AC_TYPE_LONG_LONG_INT
 
-
-# check whether cpp computation of size of int and long in ftconfig.h.in works
-
-AC_MSG_CHECKING([whether cpp computation of bit length in ftconfig.h.in works])
-orig_CPPFLAGS="${CPPFLAGS}"
-CPPFLAGS="-I${srcdir} -I. -I${srcdir}/../../include ${CPPFLAGS}"
-
-ac_clean_files=
-if test ! -f ft2build.h; then
-  ac_clean_files=ft2build.h
-  touch ft2build.h
-fi
-
-cat > conftest.c <<\_ACEOF
-#include <limits.h>
-#define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h>
-#define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h>
-#define FT_UINT_MAX  UINT_MAX
-#define FT_ULONG_MAX ULONG_MAX
-#include "ftconfig.h.in"
-_ACEOF
-echo >> conftest.c "#if FT_SIZEOF_INT == "${ac_cv_sizeof_int}
-echo >> conftest.c "ac_cpp_ft_sizeof_int="${ac_cv_sizeof_int}
-echo >> conftest.c "#endif"
-echo >> conftest.c "#if FT_SIZEOF_LONG == "${ac_cv_sizeof_long}
-echo >> conftest.c "ac_cpp_ft_sizeof_long="${ac_cv_sizeof_long}
-echo >> conftest.c "#endif"
-
-${CPP} ${CPPFLAGS} conftest.c | ${GREP} ac_cpp_ft > conftest.sh
-eval `cat conftest.sh`
-rm -f conftest.* $ac_clean_files
-
-if test x != "x${ac_cpp_ft_sizeof_int}" \
-   -a x != x"${ac_cpp_ft_sizeof_long}"; then
-  unset ft_use_autoconf_sizeof_types
-else
-  ft_use_autoconf_sizeof_types=yes
-fi
-
-AC_ARG_ENABLE(biarch-config,
-[  --enable-biarch-config  install biarch ftconfig.h to support multiple
-                          architectures by single file], [], [])
-
-case :${ft_use_autoconf_sizeof_types}:${enable_biarch_config}: in
-  :yes:yes:)
-    AC_MSG_RESULT([broken but use it])
-    unset ft_use_autoconf_sizeof_types
-    ;;
-  ::no:)
-    AC_MSG_RESULT([works but ignore it])
-    ft_use_autoconf_sizeof_types=yes
-    ;;
-  ::yes: | :::)
-    AC_MSG_RESULT([yes])
-    unset ft_use_autoconf_sizeof_types
-    ;;
-  *)
-    AC_MSG_RESULT([no])
-    ft_use_autoconf_sizeof_types=yes
-    ;;
-esac
-
-if test x"${ft_use_autoconf_sizeof_types}" = xyes; then
-  AC_DEFINE([FT_USE_AUTOCONF_SIZEOF_TYPES], [],
-            [Define if autoconf sizeof types should be used.])
-fi
-
-CPPFLAGS="${orig_CPPFLAGS}"
-
 AC_ARG_ENABLE([freetype-config],
   AS_HELP_STRING([--enable-freetype-config], [install freetype-config]),
   [case "${enableval}" in

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure.raw
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure.raw	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure.raw	2021-12-03 04:03:12 UTC (rev 61211)
@@ -17,7 +17,7 @@
 
 # Don't forget to update `docs/VERSIONS.TXT'!
 
-version_info='24:0:18'
+version_info='24:1:18'
 AC_SUBST([version_info])
 ft_version=`echo $version_info | tr : .`
 AC_SUBST([ft_version])
@@ -103,79 +103,7 @@
 # checks for typedefs, structures, and compiler characteristics
 
 AC_C_CONST
-AC_CHECK_SIZEOF([int])
-AC_CHECK_SIZEOF([long])
-AC_TYPE_LONG_LONG_INT
 
-
-# check whether cpp computation of size of int and long in ftconfig.h.in works
-
-AC_MSG_CHECKING([whether cpp computation of bit length in ftconfig.h.in works])
-orig_CPPFLAGS="${CPPFLAGS}"
-CPPFLAGS="-I${srcdir} -I. -I${srcdir}/../../include ${CPPFLAGS}"
-
-ac_clean_files=
-if test ! -f ft2build.h; then
-  ac_clean_files=ft2build.h
-  touch ft2build.h
-fi
-
-cat > conftest.c <<\_ACEOF
-#include <limits.h>
-#define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h>
-#define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h>
-#define FT_UINT_MAX  UINT_MAX
-#define FT_ULONG_MAX ULONG_MAX
-#include "ftconfig.h.in"
-_ACEOF
-echo >> conftest.c "#if FT_SIZEOF_INT == "${ac_cv_sizeof_int}
-echo >> conftest.c "ac_cpp_ft_sizeof_int="${ac_cv_sizeof_int}
-echo >> conftest.c "#endif"
-echo >> conftest.c "#if FT_SIZEOF_LONG == "${ac_cv_sizeof_long}
-echo >> conftest.c "ac_cpp_ft_sizeof_long="${ac_cv_sizeof_long}
-echo >> conftest.c "#endif"
-
-${CPP} ${CPPFLAGS} conftest.c | ${GREP} ac_cpp_ft > conftest.sh
-eval `cat conftest.sh`
-rm -f conftest.* $ac_clean_files
-
-if test x != "x${ac_cpp_ft_sizeof_int}" \
-   -a x != x"${ac_cpp_ft_sizeof_long}"; then
-  unset ft_use_autoconf_sizeof_types
-else
-  ft_use_autoconf_sizeof_types=yes
-fi
-
-AC_ARG_ENABLE(biarch-config,
-[  --enable-biarch-config  install biarch ftconfig.h to support multiple
-                          architectures by single file], [], [])
-
-case :${ft_use_autoconf_sizeof_types}:${enable_biarch_config}: in
-  :yes:yes:)
-    AC_MSG_RESULT([broken but use it])
-    unset ft_use_autoconf_sizeof_types
-    ;;
-  ::no:)
-    AC_MSG_RESULT([works but ignore it])
-    ft_use_autoconf_sizeof_types=yes
-    ;;
-  ::yes: | :::)
-    AC_MSG_RESULT([yes])
-    unset ft_use_autoconf_sizeof_types
-    ;;
-  *)
-    AC_MSG_RESULT([no])
-    ft_use_autoconf_sizeof_types=yes
-    ;;
-esac
-
-if test x"${ft_use_autoconf_sizeof_types}" = xyes; then
-  AC_DEFINE([FT_USE_AUTOCONF_SIZEOF_TYPES], [],
-            [Define if autoconf sizeof types should be used.])
-fi
-
-CPPFLAGS="${orig_CPPFLAGS}"
-
 AC_ARG_ENABLE([freetype-config],
   AS_HELP_STRING([--enable-freetype-config], [install freetype-config]),
   [case "${enableval}" in

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/unix/ftconfig.h.in
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/unix/ftconfig.h.in	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/unix/ftconfig.h.in	2021-12-03 04:03:12 UTC (rev 61211)
@@ -42,16 +42,6 @@
 #undef HAVE_UNISTD_H
 #undef HAVE_FCNTL_H
 
-#undef FT_USE_AUTOCONF_SIZEOF_TYPES
-#ifdef FT_USE_AUTOCONF_SIZEOF_TYPES
-
-#undef SIZEOF_INT
-#undef SIZEOF_LONG
-#define FT_SIZEOF_INT  SIZEOF_INT
-#define FT_SIZEOF_LONG SIZEOF_LONG
-
-#endif /* FT_USE_AUTOCONF_SIZEOF_TYPES */
-
 #include <freetype/config/integer-types.h>
 #include <freetype/config/public-macros.h>
 #include <freetype/config/mac-support.h>

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/unix/ftsystem.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/unix/ftsystem.c	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/unix/ftsystem.c	2021-12-03 04:03:12 UTC (rev 61211)
@@ -215,7 +215,7 @@
 
     stream->descriptor.pointer = NULL;
     stream->size               = 0;
-    stream->base               = 0;
+    stream->base               = NULL;
   }
 
 
@@ -233,11 +233,11 @@
   FT_CALLBACK_DEF( void )
   ft_close_stream_by_free( FT_Stream  stream )
   {
-    ft_free( NULL, stream->descriptor.pointer );
+    ft_free( stream->memory, stream->descriptor.pointer );
 
     stream->descriptor.pointer = NULL;
     stream->size               = 0;
-    stream->base               = 0;
+    stream->base               = NULL;
   }
 
 
@@ -313,8 +313,7 @@
                                           file,
                                           0 );
 
-    /* on some RTOS, mmap might return 0 */
-    if ( (long)stream->base != -1 && stream->base != NULL )
+    if ( stream->base != MAP_FAILED )
       stream->close = ft_close_stream_by_munmap;
     else
     {
@@ -324,7 +323,7 @@
       FT_ERROR(( "FT_Stream_Open:" ));
       FT_ERROR(( " could not `mmap' file `%s'\n", filepathname ));
 
-      stream->base = (unsigned char*)ft_alloc( NULL, stream->size );
+      stream->base = (unsigned char*)ft_alloc( stream->memory, stream->size );
 
       if ( !stream->base )
       {
@@ -365,7 +364,7 @@
     stream->descriptor.pointer = stream->base;
     stream->pathname.pointer   = (char*)filepathname;
 
-    stream->read = 0;
+    stream->read = NULL;
 
     FT_TRACE1(( "FT_Stream_Open:" ));
     FT_TRACE1(( " opened `%s' (%ld bytes) successfully\n",
@@ -374,7 +373,7 @@
     return FT_Err_Ok;
 
   Fail_Read:
-    ft_free( NULL, stream->base );
+    ft_free( stream->memory, stream->base );
 
   Fail_Map:
     close( file );
@@ -409,7 +408,7 @@
     memory = (FT_Memory)malloc( sizeof ( *memory ) );
     if ( memory )
     {
-      memory->user    = 0;
+      memory->user    = NULL;
       memory->alloc   = ft_alloc;
       memory->realloc = ft_realloc;
       memory->free    = ft_free;

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/vms/ftsystem.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/vms/ftsystem.c	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/vms/ftsystem.c	2021-12-03 04:03:12 UTC (rev 61211)
@@ -197,7 +197,7 @@
 
     stream->descriptor.pointer = NULL;
     stream->size               = 0;
-    stream->base               = 0;
+    stream->base               = NULL;
   }
 
 
@@ -246,7 +246,7 @@
                                           file,
                                           0 );
 
-    if ( (long)stream->base == -1 )
+    if ( stream->base == MAP_FAILED )
     {
       FT_ERROR(( "FT_Stream_Open:" ));
       FT_ERROR(( " could not `mmap' file `%s'\n", filepathname ));
@@ -259,7 +259,7 @@
     stream->pathname.pointer   = (char*)filepathname;
 
     stream->close = ft_close_stream;
-    stream->read  = 0;
+    stream->read  = NULL;
 
     FT_TRACE1(( "FT_Stream_Open:" ));
     FT_TRACE1(( " opened `%s' (%d bytes) successfully\n",
@@ -300,7 +300,7 @@
     memory = (FT_Memory)malloc( sizeof ( *memory ) );
     if ( memory )
     {
-      memory->user    = 0;
+      memory->user    = NULL;
       memory->alloc   = ft_alloc;
       memory->realloc = ft_realloc;
       memory->free    = ft_free;

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/wince/ftdebug.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/wince/ftdebug.c	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/wince/ftdebug.c	2021-12-03 04:03:12 UTC (rev 61211)
@@ -230,7 +230,7 @@
 
     /* const char*  ft2_debug = getenv( "FT2_DEBUG" ); */
 
-    const char*  ft2_debug = 0;
+    const char*  ft2_debug = NULL;
 
 
     if ( ft2_debug )

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/index.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/index.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/index.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -21,7 +21,7 @@
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 
-It compiles the following libraries from the FreeType 2.11.0 sources:</p>
+It compiles the following libraries from the FreeType 2.11.1 sources:</p>
 
 <ul>
   <pre>

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/index.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/index.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/index.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -21,7 +21,7 @@
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 
-It compiles the following libraries from the FreeType 2.11.0 sources:</p>
+It compiles the following libraries from the FreeType 2.11.1 sources:</p>
 
 <ul>
   <pre>

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/ftdebug.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/ftdebug.c	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/ftdebug.c	2021-12-03 04:03:12 UTC (rev 61211)
@@ -88,18 +88,43 @@
   dlg_handler            ft_default_log_handler = NULL;
   FT_Custom_Log_Handler  custom_output_handler  = NULL;
 
-#endif /* FT_DEBUG_LOGGING*/
+#endif /* FT_DEBUG_LOGGING */
 
 
 #ifdef FT_DEBUG_LEVEL_ERROR
 
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-
+#define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 
 
+#ifdef _WIN32_WCE
+
+  FT_LOACAL_DEF( void )
+  OutputDebugStringA( LPCSTR lpOutputString )
+  {
+    int            len;
+    LPWSTR         lpOutputStringW;
+
+
+    /* allocate memory space for converted string */
+    len = MultiByteToWideChar( CP_ACP, MB_ERR_INVALID_CHARS,
+                               lpOutputString, -1, NULL, 0 );
+
+    lpOutputStringW = (LPWSTR)_alloca( len * sizeof ( WCHAR ) );
+
+    if ( !len || !lpOutputStringW )
+      return;
+
+    /* now it is safe to do the translation */
+    MultiByteToWideChar( CP_ACP, MB_ERR_INVALID_CHARS,
+                         lpOutputString, -1, lpOutputStringW, len );
+
+    OutputDebugStringW( lpOutputStringW );
+  }
+
+#endif /* _WIN32_WCE */
+
+
   /* documentation is in ftdebug.h */
 
   FT_BASE_DEF( void )
@@ -106,15 +131,19 @@
   FT_Message( const char*  fmt,
               ... )
   {
-    static char  buf[8192];
-    va_list      ap;
+    va_list  ap;
 
 
     va_start( ap, fmt );
     vfprintf( stderr, fmt, ap );
-    /* send the string to the debugger as well */
-    vsprintf( buf, fmt, ap );
-    OutputDebugStringA( buf );
+    if ( IsDebuggerPresent() )
+    {
+      static char  buf[1024];
+
+
+      vsnprintf( buf, sizeof buf, fmt, ap );
+      OutputDebugStringA( buf );
+    }
     va_end( ap );
   }
 
@@ -125,13 +154,19 @@
   FT_Panic( const char*  fmt,
             ... )
   {
-    static char  buf[8192];
-    va_list      ap;
+    va_list  ap;
 
 
     va_start( ap, fmt );
-    vsprintf( buf, fmt, ap );
-    OutputDebugStringA( buf );
+    vfprintf( stderr, fmt, ap );
+    if ( IsDebuggerPresent() )
+    {
+      static char  buf[1024];
+
+
+      vsnprintf( buf, sizeof buf, fmt, ap );
+      OutputDebugStringA( buf );
+    }
     va_end( ap );
 
     exit( EXIT_FAILURE );

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/ftsystem.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/ftsystem.c	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/ftsystem.c	2021-12-03 04:03:12 UTC (rev 61211)
@@ -25,12 +25,11 @@
 #include <freetype/fttypes.h>
 #include <freetype/internal/ftstream.h>
 
-  /* memory-mapping includes and definitions */
+  /* memory mapping and allocation includes and definitions */
+#define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 
-#include <stdlib.h>
 
-
   /**************************************************************************
    *
    *                      MEMORY MANAGEMENT INTERFACE
@@ -69,9 +68,7 @@
   ft_alloc( FT_Memory  memory,
             long       size )
   {
-    FT_UNUSED( memory );
-
-    return malloc( size );
+    return HeapAlloc( memory->user, 0, size );
   }
 
 
@@ -105,10 +102,9 @@
               long       new_size,
               void*      block )
   {
-    FT_UNUSED( memory );
     FT_UNUSED( cur_size );
 
-    return realloc( block, new_size );
+    return HeapReAlloc( memory->user, 0, block, new_size );
   }
 
 
@@ -131,9 +127,7 @@
   ft_free( FT_Memory  memory,
            void*      block )
   {
-    FT_UNUSED( memory );
-
-    free( block );
+    HeapFree( memory->user, 0, block );
   }
 
 
@@ -176,7 +170,7 @@
 
     stream->descriptor.pointer = NULL;
     stream->size               = 0;
-    stream->base               = 0;
+    stream->base               = NULL;
   }
 
 
@@ -194,14 +188,69 @@
   FT_CALLBACK_DEF( void )
   ft_close_stream_by_free( FT_Stream  stream )
   {
-    ft_free( NULL, stream->descriptor.pointer );
+    ft_free( stream->memory, stream->descriptor.pointer );
 
     stream->descriptor.pointer = NULL;
     stream->size               = 0;
-    stream->base               = 0;
+    stream->base               = NULL;
   }
 
 
+#ifdef _WIN32_WCE
+
+  FT_LOCAL_DEF( HANDLE )
+  CreateFileA( LPCSTR                lpFileName,
+               DWORD                 dwDesiredAccess,
+               DWORD                 dwShareMode,
+               LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+               DWORD                 dwCreationDisposition,
+               DWORD                 dwFlagsAndAttributes,
+               HANDLE                hTemplateFile )
+  {
+    int            len;
+    LPWSTR         lpFileNameW;
+
+
+    /* allocate memory space for converted path name */
+    len = MultiByteToWideChar( CP_ACP, MB_ERR_INVALID_CHARS,
+                               lpFileName, -1, NULL, 0 );
+
+    lpFileNameW = (LPWSTR)_alloca( len * sizeof ( WCHAR ) );
+
+    if ( !len || !lpFileNameW )
+    {
+      FT_ERROR(( "FT_Stream_Open: cannot convert file name to LPWSTR\n" ));
+      return INVALID_HANDLE_VALUE;
+    }
+
+    /* now it is safe to do the translation */
+    MultiByteToWideChar( CP_ACP, MB_ERR_INVALID_CHARS,
+                         lpFileName, -1, lpFileNameW, len );
+
+    /* open the file */
+    return CreateFileW( lpFileNameW, dwDesiredAccess, dwShareMode,
+                        lpSecurityAttributes, dwCreationDisposition,
+                        dwFlagsAndAttributes, hTemplateFile );
+  }
+
+
+  FT_LOCAL_DEF( BOOL )
+  GetFileSizeEx( HANDLE         hFile,
+                 PLARGE_INTEGER lpFileSize )
+  {
+    lpFileSize->u.LowPart = GetFileSize( hFile,
+                                         (DWORD *)&lpFileSize->u.HighPart );
+
+    if ( lpFileSize->u.LowPart == INVALID_FILE_SIZE &&
+         GetLastError() != NO_ERROR                 )
+      return FALSE;
+    else
+      return TRUE;
+  }
+
+#endif /* _WIN32_WCE */
+
+
   /* documentation is in ftobjs.h */
 
   FT_BASE_DEF( FT_Error )
@@ -217,8 +266,8 @@
       return FT_THROW( Invalid_Stream_Handle );
 
     /* open the file */
-    file = CreateFileA( filepathname, GENERIC_READ, FILE_SHARE_READ, NULL,
-                        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 );
+    file = CreateFileA( (LPCSTR)filepathname, GENERIC_READ, FILE_SHARE_READ,
+                        NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 );
     if ( file == INVALID_HANDLE_VALUE )
     {
       FT_ERROR(( "FT_Stream_Open:" ));
@@ -274,13 +323,13 @@
       FT_ERROR(( "FT_Stream_Open:" ));
       FT_ERROR(( " could not `mmap' file `%s'\n", filepathname ));
 
-      stream->base = (unsigned char*)ft_alloc( NULL, stream->size );
+      stream->base = (unsigned char*)ft_alloc( stream->memory, stream->size );
 
       if ( !stream->base )
       {
         FT_ERROR(( "FT_Stream_Open:" ));
         FT_ERROR(( " could not `alloc' memory\n" ));
-        goto Fail_Map;
+        goto Fail_Open;
       }
 
       total_read_count = 0;
@@ -311,7 +360,7 @@
     stream->descriptor.pointer = stream->base;
     stream->pathname.pointer   = (char*)filepathname;
 
-    stream->read = 0;
+    stream->read = NULL;
 
     FT_TRACE1(( "FT_Stream_Open:" ));
     FT_TRACE1(( " opened `%s' (%ld bytes) successfully\n",
@@ -320,11 +369,8 @@
     return FT_Err_Ok;
 
   Fail_Read:
-    ft_free( NULL, stream->base );
+    ft_free( stream->memory, stream->base );
 
-  Fail_Map:
-    CloseHandle( file );
-
   Fail_Open:
     CloseHandle( file );
 
@@ -352,13 +398,17 @@
   FT_BASE_DEF( FT_Memory )
   FT_New_Memory( void )
   {
+    HANDLE     heap;
     FT_Memory  memory;
 
 
-    memory = (FT_Memory)malloc( sizeof ( *memory ) );
+    heap   = GetProcessHeap();
+    memory = heap ? (FT_Memory)HeapAlloc( heap, 0, sizeof ( *memory ) )
+                  : NULL;
+
     if ( memory )
     {
-      memory->user    = 0;
+      memory->user    = heap;
       memory->alloc   = ft_alloc;
       memory->realloc = ft_realloc;
       memory->free    = ft_free;

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.sln
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.sln	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.sln	2021-12-03 04:03:12 UTC (rev 61211)
@@ -4,34 +4,49 @@
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|x64 = Debug|x64
+		Debug|ARM64 = Debug|ARM64
 		Debug|Win32 = Debug|Win32
-		Debug|x64 = Debug|x64
+		Debug Static|x64 = Debug Static|x64
+		Debug Static|ARM64 = Debug Static|ARM64
 		Debug Static|Win32 = Debug Static|Win32
-		Debug Static|x64 = Debug Static|x64
+		Release|x64 = Release|x64
+		Release|ARM64 = Release|ARM64
 		Release|Win32 = Release|Win32
-		Release|x64 = Release|x64
+		Release Static|x64 = Release Static|x64
+		Release Static|ARM64 = Release Static|ARM64
 		Release Static|Win32 = Release Static|Win32
-		Release Static|x64 = Release Static|x64
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.ActiveCfg = Debug|x64
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.Build.0 = Debug|x64
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|ARM64.Build.0 = Debug|ARM64
 		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32
 		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.ActiveCfg = Debug|x64
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.Build.0 = Debug|x64
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|x64.ActiveCfg = Debug Static|x64
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|x64.Build.0 = Debug Static|x64
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|ARM64.ActiveCfg = Debug Static|ARM64
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|ARM64.Build.0 = Debug Static|ARM64
 		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|Win32.ActiveCfg = Debug Static|Win32
 		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|Win32.Build.0 = Debug Static|Win32
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|x64.ActiveCfg = Debug Static|x64
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Static|x64.Build.0 = Debug Static|x64
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.ActiveCfg = Release|x64
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.Build.0 = Release|x64
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|ARM64.ActiveCfg = Release|ARM64
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|ARM64.Build.0 = Release|ARM64
 		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32
 		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.ActiveCfg = Release|x64
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.Build.0 = Release|x64
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|x64.ActiveCfg = Release Static|x64
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|x64.Build.0 = Release Static|x64
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|ARM64.ActiveCfg = Release Static|ARM64
+		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|ARM64.Build.0 = Release Static|ARM64
 		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|Win32.ActiveCfg = Release Static|Win32
 		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|Win32.Build.0 = Release Static|Win32
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|x64.ActiveCfg = Release Static|x64
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Static|x64.Build.0 = Release Static|x64
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {90811697-0889-4381-80BC-C3FE8FA4931F}
+	EndGlobalSection
 EndGlobal

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj	2021-12-03 04:03:12 UTC (rev 61211)
@@ -1,10 +1,26 @@
 <?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<!--
+  You can use this file to build FreeType with MSBuild as follows
+
+    MSBuild.exe -t:Rebuild
+                -p:Configuration=Debug
+                -p:Platform=x64
+                -p:UserDefines=FT_DEBUG_LOGGING
+                   builds/windows/vc2010/freetype.vcxproj
+
+  or with different appropriate switches. It also works with Visual Studio.
+  Additional customization can be made in `freetype.user.props`.
+-->
+<Project DefaultTargets="DlgCopy;Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|ARM64">
+      <Configuration>Debug</Configuration>
+      <Platform>ARM64</Platform>
+    </ProjectConfiguration>
     <ProjectConfiguration Include="Debug|x64">
       <Configuration>Debug</Configuration>
       <Platform>x64</Platform>
@@ -13,6 +29,10 @@
       <Configuration>Debug Static</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug Static|ARM64">
+      <Configuration>Debug Static</Configuration>
+      <Platform>ARM64</Platform>
+    </ProjectConfiguration>
     <ProjectConfiguration Include="Debug Static|x64">
       <Configuration>Debug Static</Configuration>
       <Platform>x64</Platform>
@@ -21,6 +41,10 @@
       <Configuration>Release</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|ARM64">
+      <Configuration>Release</Configuration>
+      <Platform>ARM64</Platform>
+    </ProjectConfiguration>
     <ProjectConfiguration Include="Release|x64">
       <Configuration>Release</Configuration>
       <Platform>x64</Platform>
@@ -29,6 +53,10 @@
       <Configuration>Release Static</Configuration>
       <Platform>Win32</Platform>
     </ProjectConfiguration>
+    <ProjectConfiguration Include="Release Static|ARM64">
+      <Configuration>Release Static</Configuration>
+      <Platform>ARM64</Platform>
+    </ProjectConfiguration>
     <ProjectConfiguration Include="Release Static|x64">
       <Configuration>Release Static</Configuration>
       <Platform>x64</Platform>
@@ -44,35 +72,51 @@
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
+    <CharacterSet>NotSet</CharacterSet>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
+    <CharacterSet>NotSet</CharacterSet>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
+    <CharacterSet>NotSet</CharacterSet>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|ARM64'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
+    <CharacterSet>NotSet</CharacterSet>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
+    <CharacterSet>NotSet</CharacterSet>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
     <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
+    <CharacterSet>NotSet</CharacterSet>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
+    <CharacterSet>NotSet</CharacterSet>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|ARM64'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'" Label="Configuration">
     <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
+    <CharacterSet>NotSet</CharacterSet>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
@@ -90,7 +134,7 @@
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>$(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT_DEBUG_LOGGING;FT2_BUILD_LIBRARY;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <DisableLanguageExtensions>false</DisableLanguageExtensions>
@@ -106,20 +150,45 @@
       <PreprocessorDefinitions>_DEBUG;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <Culture>0x0409</Culture>
     </ResourceCompile>
-    <Lib>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
       <TargetMachine>MachineX86</TargetMachine>
       <AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
-    </Lib>
-    <PreBuildEvent>
-      <Command>call $(SolutionDir)script.bat</Command>
-    </PreBuildEvent>
+    </Link>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <DisableLanguageExtensions>false</DisableLanguageExtensions>
+      <WarningLevel>Level4</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <CompileAs>Default</CompileAs>
+      <DisableSpecificWarnings>4001</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <TargetMachine>MachineARM64</TargetMachine>
+      <AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>$(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT_DEBUG_LOGGING;FT2_BUILD_LIBRARY;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <DisableLanguageExtensions>false</DisableLanguageExtensions>
@@ -135,20 +204,18 @@
       <PreprocessorDefinitions>_DEBUG;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <Culture>0x0409</Culture>
     </ResourceCompile>
-    <Lib>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
       <TargetMachine>MachineX64</TargetMachine>
       <AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
-    </Lib>
-    <PreBuildEvent>
-      <Command>call $(SolutionDir)script.bat</Command>
-    </PreBuildEvent>
+    </Link>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>$(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT_DEBUG_LOGGING;DLG_STATIC;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <DisableLanguageExtensions>false</DisableLanguageExtensions>
@@ -169,15 +236,38 @@
       <AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
     </Lib>
-    <PreBuildEvent>
-      <Command>call $(SolutionDir)script.bat</Command>
-    </PreBuildEvent>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|ARM64'">
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>$(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <DisableLanguageExtensions>false</DisableLanguageExtensions>
+      <WarningLevel>Level4</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <CompileAs>Default</CompileAs>
+      <DisableSpecificWarnings>4001</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Lib>
+      <TargetMachine>MachineARM64</TargetMachine>
+      <AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+    </Lib>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Static|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>$(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT_DEBUG_LOGGING;DLG_STATIC;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <DisableLanguageExtensions>false</DisableLanguageExtensions>
@@ -198,9 +288,6 @@
       <AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
     </Lib>
-    <PreBuildEvent>
-      <Command>call $(SolutionDir)script.bat</Command>
-    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
@@ -222,13 +309,42 @@
       <PreprocessorDefinitions>NDEBUG;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <Culture>0x0409</Culture>
     </ResourceCompile>
-    <Lib>
-      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
       <TargetMachine>MachineX86</TargetMachine>
       <AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
-    </Lib>
+    </Link>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>$(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <DisableLanguageExtensions>true</DisableLanguageExtensions>
+      <WarningLevel>Level4</WarningLevel>
+      <CompileAs>Default</CompileAs>
+      <DisableSpecificWarnings>4001</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <TargetMachine>MachineARM64</TargetMachine>
+      <AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
@@ -242,7 +358,6 @@
       <CompileAs>Default</CompileAs>
       <DisableSpecificWarnings>4001</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
-      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
       <IntrinsicFunctions>true</IntrinsicFunctions>
     </ClCompile>
     <ResourceCompile>
@@ -249,12 +364,13 @@
       <PreprocessorDefinitions>NDEBUG;DLL_EXPORT;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <Culture>0x0409</Culture>
     </ResourceCompile>
-    <Lib>
-      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
       <TargetMachine>MachineX64</TargetMachine>
       <AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
-    </Lib>
+    </Link>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
     <ClCompile>
@@ -277,12 +393,37 @@
       <Culture>0x0409</Culture>
     </ResourceCompile>
     <Lib>
-      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
       <TargetMachine>MachineX86</TargetMachine>
       <AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
     </Lib>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|ARM64'">
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>$(UserOptionDirectory);..\..\..\include;$(UserIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <DisableLanguageExtensions>true</DisableLanguageExtensions>
+      <WarningLevel>Level4</WarningLevel>
+      <CompileAs>Default</CompileAs>
+      <DisableSpecificWarnings>4001</DisableSpecificWarnings>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;$(UserDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Lib>
+      <TargetMachine>MachineARM64</TargetMachine>
+      <AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
+    </Lib>
+  </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
@@ -296,7 +437,6 @@
       <CompileAs>Default</CompileAs>
       <DisableSpecificWarnings>4001</DisableSpecificWarnings>
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
-      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
       <IntrinsicFunctions>true</IntrinsicFunctions>
     </ClCompile>
     <ResourceCompile>
@@ -304,7 +444,6 @@
       <Culture>0x0409</Culture>
     </ResourceCompile>
     <Lib>
-      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
       <TargetMachine>MachineX64</TargetMachine>
       <AdditionalLibraryDirectories>$(UserLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalDependencies>$(UserDependencies);%(AdditionalDependencies)</AdditionalDependencies>
@@ -361,6 +500,20 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
+  <ItemGroup Condition="Exists('..\..\..\subprojects\dlg\.git')">
+    <DlgSrc Include="..\..\..\subprojects\dlg\include\dlg\output.h">
+      <DlgDst>..\..\..\include\dlg\output.h</DlgDst>
+    </DlgSrc>
+    <DlgSrc Include="..\..\..\subprojects\dlg\include\dlg\dlg.h">
+      <DlgDst>..\..\..\include\dlg\dlg.h</DlgDst>
+    </DlgSrc>
+    <DlgSrc Include="..\..\..\subprojects\dlg\src\dlg\dlg.c">
+      <DlgDst>..\..\..\src\dlg\dlg.c</DlgDst>
+    </DlgSrc>
+  </ItemGroup>
+  <Target Name="DlgCopy" Inputs="@(DlgSrc)" Outputs="@(DlgSrc->'%(DlgDst)')" Condition="Exists('..\..\..\subprojects\dlg\.git')">
+    <Copy SourceFiles="@(DlgSrc)" DestinationFiles="@(DlgSrc->'%(DlgDst)')" />
+  </Target>
   <Target Name="AfterBuild">
     <ItemGroup>
       <TargetFiles Include="$(TargetDir)$(TargetName).*" />

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj.filters
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj.filters	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj.filters	2021-12-03 04:03:12 UTC (rev 61211)
@@ -23,9 +23,6 @@
     <ClCompile Include="..\..\..\src\base\ftinit.c">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\..\src\base\ftsystem.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\..\src\bdf\bdf.c">
       <Filter>Source Files</Filter>
     </ClCompile>
@@ -137,6 +134,9 @@
     <ClCompile Include="..\..\..\src\dlg\dlgwrap.c">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="..\ftsystem.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="..\..\..\src\base\ftver.rc">
@@ -143,4 +143,4 @@
       <Filter>Source Files</Filter>
     </ResourceCompile>
   </ItemGroup>
-</Project>
+</Project>
\ No newline at end of file

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/index.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/index.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/index.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -12,7 +12,7 @@
 <p>This directory contains solution and project files for
 Visual C++ 2010 or newer, named <tt>freetype.sln</tt>,
 and <tt>freetype.vcxproj</tt>.  It compiles the following libraries
-from the FreeType 2.11.0 sources:</p>
+from the FreeType 2.11.1 sources:</p>
 
 <ul>
   <li>freetype.dll using 'Release' or 'Debug' configurations</li>

Deleted: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/script.bat
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/script.bat	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/script.bat	2021-12-03 04:03:12 UTC (rev 61211)
@@ -1,11 +0,0 @@
- at echo OFF
-
-:: Move to Top Dir
-cd ..\..\..\
-
-:: Copy dlg's files from `subprojects\dlg' to `src\dlg'
-IF NOT EXIST include\dlg (
-	mkdir include\dlg
-	COPY subprojects\dlg\include\dlg\dlg.h include\dlg
-	COPY subprojects\dlg\include\dlg\output.h include\dlg
-	COPY subprojects\dlg\src\dlg\dlg.c src\dlg\ )

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.dsp
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.dsp	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.dsp	2021-12-03 04:03:12 UTC (rev 61211)
@@ -58,7 +58,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 /nologo /dll /machine:I386 /out:"$(OutDir)\freetype.dll"
+# ADD LINK32 /nologo /dll /machine:I386 /opt:REF,ICF /out:"$(OutDir)\freetype.dll"
 
 !ELSEIF  "$(CFG)" == "freetype - Win32 Debug"
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.vcproj
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.vcproj	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.vcproj	2021-12-03 04:03:12 UTC (rev 61211)
@@ -19,7 +19,7 @@
 			ConfigurationType="2"
 			UseOfMFC="0"
 			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
+			CharacterSet="0"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -45,6 +45,7 @@
 				PreprocessorDefinitions="NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY;DLL_EXPORT"
 				StringPooling="true"
 				RuntimeLibrary="2"
+				EnableEnhancedInstructionSet="2"
 				EnableFunctionLevelLinking="true"
 				DisableLanguageExtensions="true"
 				WarningLevel="4"
@@ -65,6 +66,8 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -95,7 +98,7 @@
 			ConfigurationType="4"
 			UseOfMFC="0"
 			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
+			CharacterSet="0"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -121,6 +124,7 @@
 				PreprocessorDefinitions="NDEBUG;WIN32;_LIB;_CRT_SECURE_NO_WARNINGS;FT2_BUILD_LIBRARY"
 				StringPooling="true"
 				RuntimeLibrary="0"
+				EnableEnhancedInstructionSet="2"
 				EnableFunctionLevelLinking="true"
 				DisableLanguageExtensions="true"
 				WarningLevel="4"
@@ -165,7 +169,7 @@
 			ConfigurationType="2"
 			UseOfMFC="0"
 			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
+			CharacterSet="0"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
@@ -238,7 +242,7 @@
 			ConfigurationType="4"
 			UseOfMFC="0"
 			ATLMinimizesCRunTimeLibraryUsage="false"
-			CharacterSet="1"
+			CharacterSet="0"
 			>
 			<Tool
 				Name="VCPreBuildEventTool"

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/index.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/index.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/index.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -12,7 +12,7 @@
 <p>This directory contains project files <tt>freetype.dsp</tt> for
 Visual C++ 6.0, and <tt>freetype.vcproj</tt> for Visual C++ 2002
 through 2008, which you might need to upgrade automatically.
-It compiles the following libraries from the FreeType 2.11.0 sources:</p>
+It compiles the following libraries from the FreeType 2.11.1 sources:</p>
 
 <ul>
   <li>freetype.dll using 'Release' or 'Debug' configurations</li>

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/index.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/index.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/index.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -21,7 +21,7 @@
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 
-It compiles the following libraries from the FreeType 2.11.0 sources:</p>
+It compiles the following libraries from the FreeType 2.11.1 sources:</p>
 
 <ul>
   <pre>

Modified: trunk/Build/source/libs/freetype2/freetype-src/configure
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/configure	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/configure	2021-12-03 04:03:12 UTC (rev 61211)
@@ -93,7 +93,7 @@
 inode_src=`ls -id $abs_ft2_dir | awk '{print $1}'`
 inode_dst=`ls -id $abs_curr_dir | awk '{print $1}'`
 
-if test $inode_src -ne $inode_dst; then
+if test $inode_src != $inode_dst; then
   if test ! -d docs; then
     mkdir docs
     echo "Copying documentation assets"

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/CHANGES
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/CHANGES	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/CHANGES	2021-12-03 04:03:12 UTC (rev 61211)
@@ -1,3 +1,35 @@
+CHANGES BETWEEN 2.11.0 and 2.11.1
+
+  I. IMPORTANT CHANGES
+
+    - Some  fields  in  the  `CID_FaceDictRec`, `CID_FaceInfoRec`, and
+      `FT_Data` structures  have been changed  from signed to unsigned
+      type,  which  better reflects  the actual usage.  It is also  an
+      additional means to protect against malformed input.
+
+
+  II. MISCELLANEOUS
+
+    - Cmake support  has been  further improved.   To do  that various
+      backward-incompatible  changes were  necessary; please  see file
+      `CMakeLists.txt` for more details.
+
+    - Since version  2.11.0, a  C99 compiler  is necessary  to compile
+      FreeType.
+
+    - The experimental  'COLR' v1 API  has been updated to  the latest
+      OpenType standard 1.9.
+
+    - The `apinames` tool got a new  option `-wV` to output an OpenVMS
+      Linker Option File.
+
+    - VMS support was updated.
+
+    - MS Visual Studio support was added to build the demo programs.
+
+
+======================================================================
+
 CHANGES BETWEEN 2.10.4 and 2.11.0
 
   I. IMPORTANT CHANGES

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/DOCGUIDE
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/DOCGUIDE	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/DOCGUIDE	2021-12-03 04:03:12 UTC (rev 61211)
@@ -154,7 +154,7 @@
 
 Note that there may be cases where having two asterisks or underscores
 in a line may lead to text being picked up as italics or bold.
-Although unintentional, this is correct markdown behavior. 
+Although unintentional, this is correct markdown behavior.
 
 For inline code, wrap the sequence with backticks (see below).  This
 renders symbols correctly without modifications.  If a symbol is
@@ -201,7 +201,7 @@
 
     @description:
       While FreeType's CFF driver doesn't expose API functions by
-      itself, it is possible to control its behaviour with 
+      itself, it is possible to control its behaviour with
       @FT_Property_Set and @FT_Property_Get.
 
 If a field in the `values` table of another sub-section is linked, the

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/INSTALL
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/INSTALL	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/INSTALL	2021-12-03 04:03:12 UTC (rev 61211)
@@ -9,18 +9,19 @@
 
   FreeType is a low level C library  that only depends on the standard
   C library with very few platform-dependent optimizations utilized at
-  build time.  System libraries, such as  zlib,  Gzip,  bzip2, Brotli,
+  build time.  Any  C99-compliant compiler  should be able  to compile
+  FreeType.  System libraries,  such as  zlib,  Gzip,  bzip2,  Brotli,
   and libpng,  might  be  used  to handle  compressed fonts  or decode
   embedded PNG glyphs.
 
   FreeType  auto-configuration scripts  should be  able to detect  the
   prerequisites if the necessary headers are available  at the default
-  locations.  Otherwise,  modify  `include/freetype/config/ftoption.h'
+  locations.  Otherwise,  modify  `include/freetype/config/ftoption.h`
   to control how the FreeType library gets built.  Normally, you don't
   need to change anything.
 
   Applications have very limited control over FreeType's behaviour  at
-  run-time;  look at the documentation of function `FT_Property_Set'.
+  run-time;  look at the documentation of function `FT_Property_Set`.
 
 
 II. Normal installation and upgrades
@@ -31,7 +32,7 @@
     This also includes MacOS, Cygwin, MinGW + MSYS, Mingw-w64 + MSYS2,
     and possibly other, similar environments.
 
-    Please read `INSTALL.UNIX' to install or upgrade FreeType  2 on  a
+    Please read `INSTALL.UNIX` to install or upgrade FreeType  2 on  a
     Unix system.   Note  that  you  *need*  GNU  Make   for  automatic
     compilation,  since other make tools won't work (this includes BSD
     Make).
@@ -38,16 +39,9 @@
 
     GNU Make VERSION 3.81 OR NEWER IS NEEDED!
 
-    [For `cmake' see below.]
 
+  2. Other systems using GNU Make
 
-  2. On VMS with the `mms' build tool
-
-    See `INSTALL.VMS' for installation instructions on this platform.
-
-
-  3. Other systems using GNU Make
-
     On some  non-Unix platforms, it  is possible to build  the library
     using only  the GNU Make utility.   Note that *NO OTHER  MAKE TOOL
     WILL  WORK*[1]!   This  methods   supports  several  compilers  on
@@ -54,29 +48,36 @@
     Windows, OS/2, and BeOS,  including MinGW* (without MSYS*), Visual
     C++, Borland C++, and more.
 
-    Instructions are provided in the file `INSTALL.GNU'.
+    Instructions are provided in the file `INSTALL.GNU`.
 
 
+  3. Other build tools and platforms.
+
+    A few other tools  can be used  to build FreeType.  You  can  find
+    the  corresponding instruction files  in  the FreeType root folder
+    or the builds/ sub-folder.
+
+      CMake   :: see `CMakeLists.txt` for more information
+      Meson   :: see `meson.build` for more information
+      MSBuild :: see `builds/windows/vc2010/freetype.vcxproj`
+      MMS     :: see `vms_make.com` and `docs/INSTALL.VMS`
+
+
   4. With an IDE Project File (e.g., for Visual Studio or CodeWarrior)
 
-    We provide a  small number of `project files'  for various IDEs to
+    We provide a  small number of 'project files'  for various IDEs to
     automatically build  the library as  well.  Note that  these files
-    are  not supported  and only  sporadically maintained  by FreeType
-    developers, so don't expect them to work in each release.
+    are not actively supported by FreeType developers,  they can break
+    or become obsolete.
 
-    To find them, have a  look at the content of the `builds/<system>'
+    To find them, have a  look at the content of the `builds/<system>`
     directory, where <system> stands for your OS or environment.
 
 
-  5. Using cmake
+  5. From you own IDE, or own Makefiles
 
-    See the top-level `CMakeLists.txt' file for more information.
-
-
-  6. From you own IDE, or own Makefiles
-
     If  you  want  to  create   your  own  project  file,  follow  the
-    instructions   given  in  the   `INSTALL.ANY'  document   of  this
+    instructions   given  in  the   `INSTALL.ANY`  document   of  this
     directory.
 
 
@@ -85,7 +86,7 @@
 
   Customizing the compilation  of FreeType is easy, and  allows you to
   select only the components of  the font engine that you really need.
-  For more details read the file `CUSTOMIZE'.
+  For more details read the file `CUSTOMIZE`.
 
 
 ----------------------------------------------------------------------
@@ -96,7 +97,7 @@
       https://makepp.sourceforge.net
 
     for more information;  you need version 2.0 or newer, and you must
-    pass option `--norc-substitution'.
+    pass option `--norc-substitution`.
 
 ----------------------------------------------------------------------
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/VERSIONS.TXT
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/VERSIONS.TXT	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/VERSIONS.TXT	2021-12-03 04:03:12 UTC (rev 61211)
@@ -60,6 +60,7 @@
 
     release     libtool     so
   -------------------------------
+     2.11.1     24.1.18   6.18.1
      2.11.0     24.0.18   6.18.0
      2.10.4     23.4.17   6.17.4
      2.10.3     23.3.17   6.17.3

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/formats.txt
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/formats.txt	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/formats.txt	2021-12-03 04:03:12 UTC (rev 61211)
@@ -79,8 +79,7 @@
 
   SFNT    PS      TYPE_1  ---        type1    Type 1 GX Font Format
                                               (for the Mac) [3]
-  SFNT    PS      TYPE_1  CID        cid      5180.sfnt.pdf (for the Mac)
-                                              [3]
+  SFNT    PS      TYPE_1  CID        cid      5180.sfnt.pdf (for the Mac) [3]
   SFNT    PS      CFF     ---        cff      OT spec, 5176.CFF.pdf
                                               (`OTTO' format)
   SFNT    PS      CFF     CID        cff      OT spec, 5176.CFF.pdf
@@ -97,6 +96,12 @@
                                               (`?var' + `?VAR' tables)
 
 
+  WOFF    ---     ---     ---        cff,     Compressed SFNT, ver. 1.0 [6]
+                                     truetype
+  WOFF2   ---     ---     ---        cff,     Compressed SFNT, ver. 2.0 [6]
+                                     truetype
+
+
   ---     PS      TYPE_1  ---        type1    T1_SPEC.pdf
                                               (PFA, Type 1 font resource)
   PFB     PS      TYPE_1  ---        type1    T1_SPEC.pdf,
@@ -185,10 +190,14 @@
 
       https://fontforge.github.io/pcf-format.html
 
-[5] This is from MS Windows 3; see Microsoft's Knowledge Base article at
+[5] This is from MS Windows 3;  see Microsoft's Knowledge Base article
+    at
 
       https://support.microsoft.com/kb/65123
 
+[6] Supported  font  formats  are   TrueType  and  OpenType  fonts  as
+    defined in the OpenType specification 1.6 and newer.
+
 ------------------------------------------------------------------------
 
 Copyright (C) 2004-2021 by

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/freetype-config.1
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/freetype-config.1	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/freetype-config.1	2021-12-03 04:03:12 UTC (rev 61211)
@@ -1,4 +1,4 @@
-.TH FREETYPE-CONFIG 1 "July 2021" "FreeType 2.11.0"
+.TH FREETYPE-CONFIG 1 "December 2021" "FreeType 2.11.1"
 .
 .
 .SH NAME

Added: trunk/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.210
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.210	                        (rev 0)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.210	2021-12-03 04:03:12 UTC (rev 61211)
@@ -0,0 +1,7815 @@
+2021-07-18  Werner Lemberg  <wl at gnu.org>
+
+	* 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  <david at freetype.org>
+
+	* 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  <Alexander.Richardson at cl.cam.ac.uk>
+
+	[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  <Alexander.Richardson at cl.cam.ac.uk>
+
+	* 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  <wl at gnu.org>
+
+	[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  <bungeman at chromium.org>
+
+	* 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  <david at freetype.org>
+
+	[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  <david at freetype.org>
+
+	[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  <david at freetype.org>
+
+	[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  <Alexander.Richardson at cl.cam.ac.uk>
+
+	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  <chortos at inbox.lv>
+
+	[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  <chortos at inbox.lv>
+
+	[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  <Alexander.Richardson at cl.cam.ac.uk>
+
+	* 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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	Small clean-ups for the last few commits.
+
+	* include/freetype/fttrace.h (afwarp): Removed.
+
+2021-07-12  David Turner  <david at freetype.org>
+
+	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  <david at freetype.org>
+
+	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  <david at freetype.org>
+
+	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  <wl at gnu.org>
+
+	* src/base/ftlcdfil.c (FT_Library_SetLcdGeometry): Fix argument.
+
+	Reported by Hin-Tak.
+
+2021-07-03  Werner Lemberg  <wl at gnu.org>
+
+	* meson_options.txt: Sort alphabetically; no final full stops.
+
+2021-07-01  Ben Wagner  <bungeman at chromium.org>
+
+	* 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  <drott at chromium.org>
+
+	[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  <drott at chromium.org>
+
+	[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  <apodtele at gmail.com>
+
+	* src/raster/ftraster.c (Render_Single_Pass): Simplify `band_stack'.
+
+2021-06-29  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <anuthadev at gmail.com>
+
+	[CI] Introduce linux CI and refactor job names.
+
+	* .gitlab-ci.yml: Added jobs for building freetype on linux.
+
+2021-06-28  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <drott at chromium.org>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* src/raster/ftraster.c (Render_Single_Pass): Remove dead code.
+
+2021-06-25  Werner Lemberg  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <drott at chromium.org>
+
+	[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  <drott at chromium.org>
+
+	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  <david at freetype.org>
+
+	[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  <david at freetype.org>
+
+	[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  <apodtele at gmail.com>
+
+	* src/sdf/ftsdfrend.c (ft_(b)sdf_render): Do not FT_ERROR routinely.
+
+2021-06-16  David Turner  <david at freetype.org>
+
+	[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  <david at freetype.org>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	* src/truetype/ttinterp.c (TT_RunIns): Optimize tracing.
+
+2021-06-09  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	Fix 'devel' build for 'COLR' v1.
+
+	* devel/ftoption.h: Synchronize with
+	  `include/freetype/config/ftoption.h`.
+
+2021-06-08  Werner Lemberg  <wl at gnu.org>
+
+	[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  <drott at chromium.org>
+
+	[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  <wl at gnu.org>
+
+	* src/sdf/ftsdfcommon.c: Fix inclusion of header files.
+
+2021-06-08  Werner Lemberg  <wl at gnu.org>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <bungeman at chromium.org>
+	    Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Fix tracing.
+
+	Problem reported by Alexei.
+
+2021-06-02  Werner Lemberg  <wl at gnu.org>
+
+	[psaux] Fix MSVC compiler warnings.
+
+	* src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs):
+	Add cast.
+
+2021-05-29  Werner Lemberg  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	[build] Allow overriding of `ANSIFLAGS` for GNU make build.
+
+	* builds/*: Implement it.
+
+2021-05-27  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	* meson.build (ft2_public_headers): Add missing `ftcid.h'.
+
+	Fixes #1058.
+
+2021-05-20  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <madigens at gmail.com>
+
+	[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  <bungeman at chromium.org>
+
+	[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  <apodtele at gmail.com>
+
+	Prioritize the anti-aliasing renderer module.
+
+	* modules.cfg: Reorder the renderers.
+	* include/freetype/config/ftmodule.h: Ditto.
+
+2021-05-16  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <dmcardle at chromium.org>
+
+	[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  <apodtele at gmail.com>
+
+	* 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  <apodtele at gmail.com>
+
+	* src/smooth/ftgrays.c (FT_GRAY_SET): Adjust for better code.
+
+2021-05-11  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* 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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* src/bdf/bdflib.c (_bdf_list_ensure): Tweak allocation macro.
+
+2021-05-06  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/psaux/psobjs.c (ps_parser_load_field): Tweak allocation macro.
+
+2021-05-06  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/sfnt/sfobjs.c (sfnt_load_face): Tweak allocation macro.
+
+2021-05-06  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/cid/cidload.c (cid_read_subrs): Tweak allocation macro.
+
+2021-05-06  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Tweak allocation.
+
+2021-05-05  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <bungeman at chromium.org>
+
+	* 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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* src/cid/cidload.c (cid_read_subrs): Tweak allocaton macro.
+
+2021-05-01  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* src/sfnt/ttpost.c (load_format_{20,25}): Tweak allocaton macros.
+
+2021-05-01  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/sfnt/pngshim.c (Load_SBit_Png): Tweak allocaton macro.
+
+2021-05-01  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[woff2] Avoid some memory zeroing.
+
+	* src/sfnt/sfwoff2.c (store_loca, woff2_open_font): Tweak macros.
+
+2021-04-30  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/gzip/ftgzip.c (ft_gzip_alloc): Zero out memory again.
+
+2021-04-27  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* src/cid/cidgload.c (cid_load_glyph): Restore the glyph_length check.
+
+2021-04-27  Werner Lemberg  <wl at gnu.org>
+
+	* 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  <apodtele at gmail.com>
+
+	* src/sfnt/sfobjs.c (sfnt_init_face): Revert macro change.
+
+2021-04-26  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* src/winfonts/winfnt.c (FNT_Face_Init): Tweak memory macro.
+
+2021-04-26  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <issam.e.maghni at mailbox.org>
+
+	* 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  <apodtele at gmail.com>
+
+	* src/cff/cffload.c (cff_index_get_pointers): s/FT_QALLOC/FT_ALLOC/.
+
+2021-04-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* 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  <apodtele at gmail.com>
+
+	* src/sdf/ftsdf.c (sdf_{edge,contour,shape}_new): Use FT_QALLOC.
+
+2021-04-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <drott at chromium.org>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	* builds/unix/freetype2.m4: Fix help string formatting.
+
+	The indented `dnl` macros inserted unwanted horizontal space.
+
+	Problem reported by Ozkan Sezer <sezeroz at gmail.com>.
+
+2021-04-16  Dominik Röttsches  <drott at chromium.org>
+
+	[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  <bungeman at chromium.org>
+
+	[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  <bungeman at chromium.org>
+
+	[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  <drott at chromium.org>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* src/sfnt/pngshim.c (Load_SBit_Png): Free `rows` once later.
+
+2021-03-16  Ben Wagner  <bungeman at google.com>
+
+	[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  <ccom at randomderp.com>
+
+	* 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  <apodtele at gmail.com>
+
+	* src/smooth/ftgrays.c (gray_set_cell): Refactor to fix VC++ warning.
+
+2021-03-13  Werner Lemberg  <wl at gnu.org>
+
+	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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* src/smooth/ftgrays.c (FT_INTEGRATE): New convenience macro.
+	(gray_render_line, gray_render_scanline): Use it.
+
+2021-03-09  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/smooth/ftgrays.c (gray_render_line): Rearrange conditionals.
+
+	These produce faster or more optimizable code.
+
+2021-03-08  Tim-Philipp Müller  <tim at centricular.com>
+
+	[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  <tim at centricular.com>
+
+	[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  <tim at centricular.com>
+
+	[meson] Add subproject fallbacks for 'libpng' and 'zlib'.
+
+	* subprojects/libpng.wrap, subprojects/zlib.wrap: New files.
+
+	* meson.build: Updated.
+
+2021-03-07  Xavier Claessens  <xavier.claessens at collabora.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* CMakeLists.txt: Update location of `LICENSE.TXT`.
+
+	Fixes #1035.
+
+2021-02-19  Werner Lemberg  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	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  <drott at chromium.org>
+
+	[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  <daniel.engberg.lists at pyret.net>
+
+	* 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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	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  <apodtele at gmail.com>
+
+	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  <drott at chromium.org>
+
+	[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  <drott at chromium.org>
+
+	[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  <xavier.claessens at collabora.com>
+
+	* 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  <xavier.claessens at collabora.com>
+
+	[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  <xavier.claessens at collabora.com>
+
+	[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  <xavier.claessens at collabora.com>
+
+	* 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  <xavier.claessens at collabora.com>
+
+	* 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  <xavier.claessens at collabora.com>
+
+	* 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  <xavier.claessens at collabora.com>
+
+	* 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  <xavier.claessens at collabora.com>
+
+	* meson.build: Set project version.
+
+2021-02-04  Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* 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  <apodtele at gmail.com>
+
+	* builds/unix/configure.raw [mmap]: Restore default path.
+
+	Fixes #1023.
+
+2021-02-03  Werner Lemberg  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	* builds/unix/configure.raw [mmap support]: Explicitly handle Windows.
+
+	Fixes #1024.
+
+2021-01-31  Werner Lemberg  <wl at gnu.org>
+
+	* builds/unix/configure.raw [mmap support]: Correctly handle Windows.
+
+	Fixes #1024.
+
+2021-01-31  Werner Lemberg  <wl at gnu.org>
+
+	* builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c`.
+
+2021-01-31  Werner Lemberg  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	* builds/unix/configure.raw: Fix typo.
+
+	Bug introduced in Vincent's last commit bb33f03.
+
+	Fixes issue #1021.
+
+2021-01-27  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/base/ftstroke.c (FT_Stroker_EndSubPath): Ignore tiny gaps.
+
+	Fixes bug #1020.
+
+2021-01-27  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <vincent.torri at gmail.com>
+
+	* 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  <wl at gnu.org>
+
+	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  <apodtele at gmail.com>
+
+	* autogen.sh: Absorb `version.sed'.
+	* version.sed: Removed.
+
+2021-01-19  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* srd/base/ftlcdfil.c (FT_Library_SetLcdGeometry): Fix return value.
+
+2021-01-15  Nikolaus Waxweiler  <madigens at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	* src/tools/update-copyright-year: Fix single-year entry handling.
+
+2021-01-16  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* builds/unix/unixddef.mk: Remove the second DEVEL_DIR definition.
+
+2021-01-14  Dominik Röttsches  <drott at chromium.org>
+
+	[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  <drott at chromium.org>
+
+	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  <drott at chromium.org>
+
+	[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  <drott at chromium.org>
+
+	[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  <drott at chromium.org>
+
+	[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  <drott at chromium.org>
+
+	[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  <drott at chromium.org>
+
+	[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  <drott at chromium.org>
+
+	[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  <drott at chromium.org>
+
+	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  <drott at chromium.org>
+
+	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  <wl at gnu.org>
+
+	* builds/*: s/BUILD_DIR/PLATFORM_DIR/.
+
+	The old variable name caused confusion.
+
+2021-01-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[builds] Revert `FTMODULE_H' changes.
+
+	* builds/toplevel.mk, builds/freetype.mk: Revert changes.
+
+2021-01-07  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[builds] Relocate `FTMODULE_H'.
+
+	* builds/toplevel.mk: Place `FTMODULE_H' in include/.
+	* builds/freetype.mk: Simplify included path.
+
+2021-01-07  Werner Lemberg  <wl at gnu.org>
+
+	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  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	* meson.build: Add summary.
+
+	Based on a patch from Vincent Torri <vincent.torri at gmail.com>.
+
+2021-01-06  Torsten Hilbrich  <emacs.nolkaf at hilbrich.tk>
+
+	* meson.build: Fix 'png' build option (#59458).
+
+	Without this patch, 'png' is always required.
+
+2021-01-04  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[builds/windows] Add SDF to VC2010 project.
+
+	* builds/windows/vc2010/freetype.vcxproj: Updated;
+	AfterBuild conveniences.
+
+2020-12-26  Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* src/base/ftobjs.c (pixel_modes): Updated.
+
+2020-12-26  Anuj Verma  <anujv at iitbhilai.ac.in>
+
+	[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  <wl at gnu.org>
+
+	[sdf] Fix `make multi`.
+
+	* src/sdf/ftsdf.c: Include `ftoutln.h`.
+
+2020-12-24  Werner Lemberg  <wl at gnu.org>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[sdf] Add debugging function.
+
+	* src/sdf/ftsdf.c (sdf_shape_dump): New function.
+
+2020-08-20  Anuj Verma  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[sdf] Add function to copy SDF data into output bitmap.
+
+	* src/sdf/ftbsdf.c (finalize_sdf): New function.
+
+2020-08-20  Anuj Verma  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[sdf] Add function to resolve corner distances.
+
+	* src/sdf/ftsdf.c (resolve_corner): New function.
+
+2020-08-18  Anuj Verma  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	[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  <anujv at iitbhilai.ac.in>
+
+	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  <anujv at iitbhilai.ac.in>
+
+	[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  <wl at gnu.org>
+
+	* 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  <qignacio at amazon.com>
+
+	* meson.build (ft2_defines): Fix builds on Windows.
+
+2020-12-18  Tatsuyuki Ishi  <ishitatsuyuki at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* 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  <chris.liddell at artifex.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* builds/unix/configure.raw: Don't set `FT_DEBUG_LOGGING`.
+
+	All debug options are handled exclusively in `ftoption.h`.
+
+2020-12-07  Werner Lemberg  <wl at gnu.org>
+
+	* src/*: More fixes for using a '\n' in `FT_TRACE` and `FT_ERROR`.
+
+2020-12-07  Werner Lemberg  <wl at gnu.org>
+
+	*/*: s/FT_LOGGING/FT_DEBUG_LOGGING/.
+
+2020-12-05  Werner Lemberg  <wl at gnu.org>
+
+	* builds/toplevel.mk (do-dist): Remove `submodules` directory.
+
+2020-12-02  Werner Lemberg  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* submodules/dlg: Updated to commit 9f0c8b22.
+
+2020-12-02  Werner Lemberg  <wl at gnu.org>
+
+	* src/bdf/bdflib.c: Fix `-Wformat` warning.
+
+2020-12-02  Werner Lemberg  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* src/type42/t42parse.c: Fix `-Wformat` warnings.
+
+2020-12-01  Priyesh Kumar  <priyeshkkumar at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <priyeshkkumar at gmail.com>
+
+	Update logging related documentation.
+
+	* docs/DEBUG: Updates related to `FT_LOGGING`.
+
+	* README.git: Updates related to logging.
+
+2020-11-30  Priyesh Kumar  <priyeshkkumar at gmail.com>
+
+	* src/*: Fix `-Wformat` warnings.
+
+2020-11-30  Priyesh Kumar  <priyeshkkumar at gmail.com>
+
+	[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  <priyeshkkumar at gmail.com>
+
+	[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  <priyeshkkumar at gmail.com>
+
+	[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  <priyeshkkumar at gmail.com>
+
+	[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  <priyeshkkumar at gmail.com>
+
+	[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  <priyeshkkumar at gmail.com>
+
+	[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  <priyeshkkumar at gmail.com>
+
+	* .gitmodules: Add 'dlg' library's git repository as submodule.
+
+2020-12-01  Werner Lemberg  <wl at gnu.org>
+
+	* src/tools/chktrcmp.py (trace_use_pat): Update to current use.
+
+2020-11-20  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	* src/type42/t42parse.c (t42_parse_sfnts): More tracing messages.
+
+2020-11-04  Werner Lemberg  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* 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  <bungeman at google.com>
+
+	* 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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	* src/sfnt/tt{colr,cpal}.c: Fix signedness warnings from VC++.
+
+2020-10-17  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/sfnt/sfwoff2.c (Read255UShort): Tweak types to please VC++.
+
+2020-10-10  Werner Lemberg  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	* 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 <emuller at amazon.com>.
+
+2020-09-24  Werner Lemberg  <wl at gnu.org>
+
+	* src/base/ftobjs.c (FT_Load_Glyph): Trace glyph metrics.
+
+2020-09-22  Werner Lemberg  <wl at gnu.org>
+
+	[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  <david at freetype.org>
+
+	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  <wl at gnu.org>
+
+	* scripts/extract_freetype_version.py: Fix regex typos.
+
+2020-09-21  David Turner  <david at freetype.org>
+
+	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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <dalboris at gmail.com>
+
+	[build] Make CMake install basic version information.
+
+	* CMakeLists.txt: Do it.
+
+2020-09-02  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* 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  <wl at gnu.org>
+
+	* src/truetype/ttgload.c (TT_Get_VMetrics): Add tracing message.
+
+2020-08-05  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* src/truetype/ttgload.c (TT_Load_Glyph): More tracing.
+
+2020-07-28  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	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  <anujv at iitbhilai.ac.in>
+
+	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  <priyeshkkumar at gmail.com>
+
+	Fix `-Wformat' compiler warnings.
+
+	* src/*: Fix format specifiers.
+
+	* builds/unix/ftsystem.c (FT_Stream_Open): Ditto.
+
+2020-07-25  Werner Lemberg  <wl at gnu.org>
+
+	Fix `-Wformat' compiler warnings.
+
+	Problem reported by Priyesh kumar <priyeshkkumar at gmail.com>
+
+	* 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  <wl at gnu.org>
+
+	* src/sfnt/sfwoff2.c (woff2_decompress): Fix compiler warning.
+
+	Reported by Hin-Tak.
+
+2020-07-12  Werner Lemberg  <wl at gnu.org>
+
+	* builds/unix/configure.raw: Fix inclusion of `ftoption.h'.
+
+2020-07-07  Werner Lemberg  <wl at gnu.org>
+
+	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  <david at freetype.org>
+
+	[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  <david at freetype.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <david at freetype.org>
+
+	[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  <david at freetype.org>
+
+	[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  <david at freetype.org>
+
+	[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  <david at freetype.org>
+
+	[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  <david at freetype.org>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <sebras at gmail.com>
+
+	[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  <sebras at gmail.com>
+
+	[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  <sebras at gmail.com>
+
+	[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  <sebras at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[base] Rework d1180b5f9598 until further notice.
+
+	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Reject large
+	outlines.
+
+2020-06-19  Sebastian Rasmussen  <sebras at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <svenevs.dev at gmail.com>
+
+	[sfnt] Support Intel compilers.
+
+	* src/sfnt/pngshim.c (premultiply_data): Intel compilers do not
+	currently support `__builtin_shuffle'.
+
+2020-06-19  Sebastian Rasmussen  <sebras at gmail.com>
+
+	[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  <sebras at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	* src/cff/cffload.c (cff_index_get_pointers): Rename `t' to `tbl'.
+
+2020-06-19  Sebastian Rasmussen  <sebras at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	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  <david at freetype.org>
+
+	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  <wl at gnu.org>
+
+	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Trace number of cmaps.
+
+2020-05-18  David Turner  <david at freetype.org>
+
+	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  <david at freetype.org>
+
+	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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	* 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  <jalba at vewd.com>
+
+	* 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  <apodtele at gmail.com>
+
+	* builds/freetype.mk: Refactor for readability.
+
+2020-05-02  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* devel/ft2build.h: Override FT_CONFIG_MODULES_H here as well.
+
+2020-05-01  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <moazinkhatri at gmail.com>
+
+	[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  <bungeman at google.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <bungeman at google.com>
+
+	[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  <wl at gnu.org>
+
+	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  <drott at chromium.org>
+
+	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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <nikolaus.waxweiler at daltonmaag.com>
+
+	[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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Ignore version (#57708).
+
+2020-02-04  Werner Lemberg  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <drott at chromium.org>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[woff2] Allow bitmap-only fonts (#57394).
+
+	* src/sfnt/sfwoff2.c (reconstruct_font): Fix test for `glyf' and
+	`loca' tables.
+
+2019-12-21  Hugh McMaster  <hugh.mcmaster at outlook.com>
+
+	[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  <hugh.mcmaster at outlook.com>
+
+	[docs] (1/2) Move static web assets (#56745).
+
+	* docs/reference/*: Move ...
+	* docs: ... one directory up.
+
+2019-12-21  Dominik Röttsches  <drott at chromium.org>
+
+	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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	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  <drott at chromium.org>
+
+	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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	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  <drott at chromium.org>
+
+	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  <jstracke at Google.com>
+
+	[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  <wl at gnu.org>
+
+	[truetype] Avoid sanitizer warning (#57289).
+
+	* src/truetype/ttpload.c (tt_face_get_device_metrics): Use
+	`FT_OFFSET'.
+
+2019-11-23  Armin Hasitzka  <prince.cherusker at gmail.com>
+
+	[truetype] Fix integer overflow (#57287).
+
+	* src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'.
+
+2019-11-23  Ben Wagner  <bungeman at google.com>
+
+	[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  <jstracke at Google.com>
+            Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* 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  <bungeman at google.com>
+
+	[sfnt] Ensure OTTO fonts have tables (#57285).
+
+	* src/sfnt/ttload.c (tt_face_load_font_dir): Add test.
+
+2019-11-23  Behdad Esfahbod  <behdad at behdad.org>
+
+	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  <madigens at gmail.com>
+
+	* 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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	* 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  <apodtele at gmail.com>
+
+	* src/sfnt/pngshim.c (premultiply_data): Optimize for __SSE__ only.
+
+2019-10-10  Werner Lemberg  <wl at gnu.org>
+
+	* 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  <John.Tytgat at esko.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	* 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  <apodtele at gmail.com>
+
+	* src/base/ftstroke.c (ft_stroker_inside): Speed up.
+
+2019-10-01  Werner Lemberg  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* src/sfnt/sfwoff2.c (woff2_open_font): Fix sanity check.
+
+	Correct thinkos in patch from 2019-09-01.
+
+2019-09-28  Werner Lemberg  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	* src/base/ftstroke.c (ft_stroker_cap): Speed up caps.
+
+2019-09-25  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/base/ftstroke.c (ft_stroker_outside): Speed up clipped miter.
+	* include/freetype/ftstroke.h: Wordsmith miter docs.
+
+2019-09-25  Werner Lemberg  <wl at gnu.org>
+
+	* 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  <apodtele at gmail.com>
+
+	* src/base/ftstroke.c (ft_stroke_border_arcto): Speed up calculations.
+
+2019-09-20  Nikhil Ramakrishnan  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	* src/otvalid/otvcommon.c (otv_Coverage_get_last): Guard `count'.
+
+	Problem reported by Marc Schönefeld <marc.schoenefeld at gmx.org>.
+
+2019-09-17  Werner Lemberg  <wl at gnu.org>
+
+	* 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)  <avihpit at yahoo.com>
+
+	[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  <wl at gnu.org>
+
+	[cmake] Add brotli support.
+
+	* CMakeLists.txt (FT_WITH_BROTLI): New option.
+
+	* builds/cmake/FindBrotliDec.cmake: New file.
+
+2019-09-05  Werner Lemberg  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	* 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  <drott at chromium.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	* src/sfnt/sfwoff2.c: Improve trace comments.
+
+	Adjust tracing levels for comments, and more formatting.
+
+2019-08-27  Nikhil Ramakrishnan  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[woff2] Minor.
+
+	* src/sfnt/sfwoff2.c (woff2_uncompress): Add error message
+	(woff2_open_font): Free `uncompressed_buf'.
+
+2019-08-27  Nikhil Ramakrishnan  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	* builds/unix/configure.raw: Change argument name to `brotli'.
+
+2019-08-27  Nikhil Ramakrishnan  <ramakrishnan.nikhil at gmail.com>
+
+	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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	* src/sfnt/sfwoff2.c: #undef macros.
+
+2019-08-27  Nikhil Ramakrishnan  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <ramakrishnan.nikhil at gmail.com>
+
+	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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	* src/base/ftbbox.c (cubic_peak): Sanitize left shift (#56586).
+
+2019-07-22  Weiyi Wu  <w1w2y3 at gmail.com>
+
+	* src/cid/cidload.c (cid_hex_to_binary): Fix typo (#56653).
+
+2019-07-12  Werner Lemberg  <wl at gnu.org>
+
+	[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  <bungeman at google.com>
+
+	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  <wl at gnu.org>
+
+	[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 <chris.liddell at artifex.com>
+
+	[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  <wl at gnu.org>
+
+	* 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  <apodtele at gmail.com>
+
+	* src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Fix inequality.
+
+	Reported by Armin Hasitzka.
+
+2019-06-16  Werner Lemberg  <wl at gnu.org>
+
+	* src/tools/apinames.c: Formatting, minor edits.
+
+2019-06-16  Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	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
+	<joukj at hrem.nano.tudelft.nl>.
+
+	* builds/vms/ftconfig.h: Update, also from Jouk.
+
+2019-06-13  Werner Lemberg  <wl at gnu.org>
+
+	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Minor.
+
+2019-06-13  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* 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  <apodtele at gmail.com>
+
+	* src/truetype/ttobjs.c (tt_check_trickyness_family): Add `const'.
+
+2019-06-11  Moazin Khatti  <moazinkhatri at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <philip.race at oracle.com>
+
+	* src/base/ftinit.c (FT_Set_Default_Properties): Fix crash.
+
+	Terminate loop at end of environment.
+
+2019-05-31  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[base] Fix `make multi'.
+
+	Reported by Nikhil.
+
+	* src/base/fterrors.c: Include FT_INTERNAL_DEBUG_H.
+
+2019-05-29  Ben Wagner  <bungeman at google.com>
+
+	[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  <wl at gnu.org>
+
+	[truetype] Fix 32bit builds (#56404).
+
+	Patch suggested by Ben Wagner <bungeman at google.com>.
+
+	* src/truetype/ttgxvar.c (FT_fixedToInt, FT_fixedToFdot6): Remove
+	harmful cast to unsigned type.
+
+2019-05-26  Ben Wagner  <bungeman at google.com>
+
+	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Improve accuracy.
+
+2019-05-23  Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* src/truetype/ttinterp.c (opcode_name): Improve mnemonics.
+
+2019-05-16  Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	[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  <joukj at hrem.nano.tudelft.nl>
+
+	* vms_make.com: Updated.  Handle `bzip2' directory, too.
+
+2019-05-13  Werner Lemberg  <wl at gnu.org>
+
+	* src/psaux/psfont.c (cf2_font_setup): Fix compiler warning.
+
+2019-05-12  Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Minor.
+
+2019-05-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* src/raster/ftraster.c (Draw_Sweep): Unbreak.
+
+2019-05-05  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/raster/ftraster.c: Clean-ups.
+
+2019-05-05  Werner Lemberg  <wl at gnu.org>
+
+	* src/truetype/ttgxvar.c: More use of `FT_fdot14ToFixed'.
+
+2019-05-04  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/smooth/ftgrays.c (gray_render_line): Small shortcut.
+
+2019-05-04  Werner Lemberg  <wl at gnu.org>
+
+	Various clang 8.0 static analyzer fixes.
+
+	Reported by Sender Ghost <lightside at gmx.com>.
+
+	* 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  <apodtele at gmail.com>
+
+	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  <apodtele at gmail.com>
+
+	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  <wl at gnu.org>
+
+	* 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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	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  <wl at gnu.org>
+
+	* src/sfnt/ttcmap.c (tt_cmap12_next): Remove dead code.
+
+	Found by clang 8.0's static analyzer and reported by Sender Ghost
+	<lightside at gmx.com>.
+
+2019-04-23  Werner Lemberg  <wl at gnu.org>
+
+	[base] Fix thinko in previous commit.
+
+	* src/base/ftbitmap.c (FT_Bitmap_Blend): Check final width, not
+	target pitch.
+
+	Problem reported by Sender Ghost <lightside at gmx.com>.
+
+2019-04-22  Werner Lemberg  <wl at gnu.org>
+
+	* src/base/ftbitmap.c (FT_Bitmap_Blend): Check target pitch.
+
+	Problem reported by Sender Ghost <lightside at gmx.com>.
+
+2019-04-22  Werner Lemberg  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	[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  <gongminmin at msn.com>
+
+	* CMakeLists.txt: Avoid rewriting of unchanged configuration files.
+
+	Reported as
+
+	  https://savannah.nongnu.org/patch/index.php?9755
+
+2019-04-15  JDG  <JonathanG at iQmetrix.com>
+
+	* src/tools/apinames.c (main): Fix error message.
+
+	Reported as
+
+	  https://savannah.nongnu.org/patch/?9796
+
+2019-04-11  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	* src/sfnt/ttcmap.c (tt_get_glyph_name): Pacify compiler (#56061).
+
+	This is for Visual Studio 2019 on ARM.
+
+2019-04-06  Werner Lemberg  <wl at gnu.org>
+
+	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  <anntzer.lee at gmail.com>
+
+	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  <prince.cherusker at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* 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  <0x416b617269 at gmail.com>
+            Werner Lemberg  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	[base] Handle numeric overflow (#55827).
+
+	* src/base/ftglyph.c (FT_Glyph_Get_CBox): Use `FT_PIX_CEIL_LONG'.
+
+2019-03-05  Sebastian Rasmussen  <sebras at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	* src/tools/update-copyright-year: Insert `(C)'.
+
+2019-02-21  Armin Hasitzka  <prince.cherusker at gmail.com>
+
+	[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  <prince.cherusker at gmail.com>
+
+	[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  <wink at saville.com>
+
+	* src/autofit/afwarp.h (af_warper_compute): Fix declaration.
+
+2019-02-02  Nikolaus Waxweiler  <madigens at gmail.com>
+
+	[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  <madigens at gmail.com>
+
+	[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  <John.Tytgat at esko.com>
+
+	[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 <chris.liddell at artifex.com>
+
+	[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  <wl at gnu.org>
+
+	* src/autofit/aflatin2.c: Some fixes from `aflatin.c' (#55310).
+
+2018-12-25  Werner Lemberg  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	* builds/windows/visualc/freetype.dsp: Dust off.
+
+2018-11-27  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* builds/windows/vc2010/freetype.vcxproj: Simplify.
+
+2018-11-27  Chris Liddell  <chris.liddell at artifex.com>
+
+	[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  <bungeman at google.com>
+
+	[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  <bungeman at google.com>
+
+	[truetype] Fix numeric overflow (#55103).
+
+	* src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'.
+
+2018-11-25  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <prince.cherusker at gmail.com>
+
+	* src/cff/cffparse.c: Please the compiler.
+
+2018-11-22  Armin Hasitzka  <prince.cherusker at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* builds/windows/{visualc,vc2005,vc2008}/freetype.vcproj: Fix it.
+
+2018-11-10  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <yangx92 at hotmail.com>
+
+	[psaux] Add safety guard (#54985).
+
+	* src/psaux/psobjs.c (cff_builder_close_contour): Do it.
+
+2018-11-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* builds/unix/configure.raw: Require `windows.h' for windres.
+
+2018-11-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[ftstroke] Fix unpredictable failures (#54986).
+
+	* src/base/ftstroke.c (ft_sroke_border_lineto): Fix lineto check.
+
+2018-11-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[ftstroke] Fix unpredictable failures (#54976).
+
+	* src/base/ftstroke.c (ft_sroke_border_close): Set the start tags.
+
+2018-11-07  Ben Wagner  <bungeman at google.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	* src/truetype/ttgxvar.c: Use enum definitions.
+
+2018-11-03  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Adjust condition.
+
+2018-11-03  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Tracing tweaks.
+
+2018-11-03  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	Revert due to specs: [truetype] Speed up variation IUP.
+
+2018-11-02  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/truetype/ttgxvar.c (ft_var_get_item_delta): Fixed logic.
+
+	Reported and tested by Behdad.
+
+2018-11-02  Shailesh Mistry  <shailesh.mistry at hotmail.co.uk>
+
+	[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 <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* src/type1/t1load.c (t1_set_mm_blend): Optimized.
+
+2018-10-31  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/truetype/ttgxvar.c (ft_var_get_item_delta): Optimized.
+
+2018-10-29  Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	Revert: Align FreeType with standard C memory management.
+
+2018-10-27  Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	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  <markand at malikania.fr>
+
+	* CMakeLists.txt: Specify `RUNTIME DESTINATION'.
+
+	This is needed for DLL builds.
+
+2018-10-07  Werner Lemberg  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	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  <wl at gnu.org>
+
+	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 <tony.smith at macro4.com>.
+
+	* 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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* 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  <apodtele at gmail.com>
+
+	* src/base/ftobjs.c (ft_glyphslot_preset_bimap): Further tweak.
+
+2018-09-21  Ben Wagner  <bungeman at google.com>
+
+	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  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	* 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  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Fix last commit.
+
+2018-09-13  Werner Lemberg  <wl at gnu.org>
+
+	* 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  <John.Tytgat at esko.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* src/truetype/ttgxvar.c (ft_var_load_gvar): Check `glyphoffsets'.
+
+2018-09-10  Armin Hasitzka  <prince.cherusker at gmail.com>
+
+	* 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  <bungeman at google.com>
+
+	* builds/freetype.mk (refdoc-venv): Ensure python version (#54631).
+
+2018-09-07  Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	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  <ramakrishnan.nikhil at gmail.com>
+
+	Add documentation guidelines file.
+
+	* docs/DOCGUIDE: New file.
+
+2018-09-04  Werner Lemberg  <wl at gnu.org>
+
+	* devel/ftoption.h: Synchronize with master `ftoption.h'.
+
+2018-09-03  Nikhil Ramakrishnan  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	*/*: s/PSNames/psnames/.
+
+	Only tracing messages are affected.
+
+2018-09-03  Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	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  <apodtele at gmail.com>
+
+	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Check glyph format.
+
+2018-08-31  Armin Hasitzka  <prince.cherusker at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	* src/base/ftdebug.c (FT_Throw): Restore missing `FT_UNUSED' calls.
+
+2018-08-31  Werner Lemberg  <wl at gnu.org>
+
+	* src/base/ftdebug.c (FT_Throw): Reduce chattiness.
+
+2018-08-31  Werner Lemberg  <wl at gnu.org>
+
+	* src/autofit/afhints.c (af_glyph_hints_reload): Add initialization.
+
+2018-08-30  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	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  <apodtele at gmail.com>
+
+	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Correct mono.
+
+2018-08-30  Armin Hasitzka  <prince.cherusker at gmail.com>
+
+	[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  <prince.cherusker at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	[base] Overflow-resistant bitmap presetting.
+
+	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Implement it.
+
+2018-08-29  Armin Hasitzka  <prince.cherusker at gmail.com>
+
+	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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* src/truetype/ttobjs.c (tt_size_read_bytecode): Trace CVT values.
+
+2018-08-26  Nikhil Ramakrishnan  <ramakrishnan.nikhil at gmail.com>
+
+	* 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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	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  <ramakrishnan.nikhil at gmail.com>
+
+	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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <yangx92 at hotmail.com>
+
+	* builds/mac/ftmac.c (parse_fond): Fix buffer overrun.
+
+	Reported as bug #54515, duplicate of #43540.
+
+2018-08-16  Werner Lemberg  <wl at gnu.org>
+
+	* builds/*/ftsystem.c (FT_COMPONENT): Updated also.
+
+2018-08-15  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	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  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	* 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  <apodtele at gmail.com>
+
+	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Follow specs.
+
+2018-08-10  Ben Wagner  <bungeman at google.com>
+
+	* src/sfnt/sfobjs.c (sfnt_done_face): Fix memory leak (#54435).
+
+2018-08-10  Werner Lemberg  <wl at gnu.org>
+
+	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Improve tracing.
+
+2018-08-10  Werner Lemberg  <wl at gnu.org>
+
+	Fix clang warnings.
+
+	* src/base/ftdebug.c (ft_trace_level_enabled,
+	ft_trace_level_disabled): Add `static' keyword.
+
+2018-08-09  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[pcf] Revert massive unsigning.
+
+2018-08-08  Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	* src/pcf/pcfread.c (pcf_get_bitmaps): Unsign `offsets' and
+	`bitmapSizes'.
+
+2018-08-06  Werner Lemberg  <wl at gnu.org>
+
+	* devel/ftoption.h: Synchronize with main `ftoption.h'.
+
+2018-08-06  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	* src/truetype/ttinterp.c (opcode_name): Fix typos.
+
+2018-08-04  Werner Lemberg  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	* src/cid/cidtoken.h: Handle `XUID' keyword.
+
+2018-07-31  Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* 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  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	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  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <htl10 at users.sourceforge.net>
+
+	[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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <prince.cherusker at gmail.com>
+
+	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  <wl at gnu.org>
+
+	[cff] Avoid left-shift of negative numbers (#54322).
+
+	* src/cff/cffgload.c (cff_slot_load): Use multiplication.
+
+2018-07-17  Werner Lemberg  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	* src/pcf/pcfread.c (pcf_get_encodings): Trace `defaultChar'.
+
+2018-07-16  Armin Hasitzka  <prince.cherusker at gmail.com>
+
+	* 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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Init `cbox'.
+
+	Taken from patch #9667, written by Steve Langasek
+	<vorlon at debian.org>.
+
+	This fixes a build failure (most probably a bug in gcc) on ppc64el
+	when building with -O3.
+
+2018-07-05  Werner Lemberg  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	Adjust table size comparisons (#54242).
+
+	* src/sfnt/ttcpal.c (tt_face_load_cpal): Implement it.
+
+2018-07-05  Werner Lemberg  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	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  <Jeff.Carey at monotype.com>
+
+	* src/psnames/psmodule.c (ps_unicodes_init): Fix alloc debugging.
+
+2018-07-02  Werner Lemberg  <wl at gnu.org>
+
+	s/palette_types/palette_flags/.
+
+	Suggested by Behdad.
+
+2018-07-02  Werner Lemberg  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	* src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Guard SFNT function.
+
+	Reported by Behdad.
+
+2018-06-28  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/base/fttrigon.c (FT_Tan): Improve accuracy.
+	(FT_Vector_Rotate): Simplify.
+
+2018-06-28  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/base/ftobjs.c (FT_Set_Charmap): Robustify.
+
+2018-06-25  Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	[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 <akiem at underware.nl> 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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	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  <apodtele at gmail.com>
+
+	[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  <prince.cherusker at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* src/base/ftbitmap.c (FT_Bitmap_Blend): Avoid integer overflow.
+
+2018-06-16  Werner Lemberg  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	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  <madigens at gmail.com>
+
+	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  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	* src/sfnt/ttcolr.c (tt_face_load_colr): Improve overflow checks.
+
+2018-06-09  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	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  <parthwazurkar at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <prince.cherusker at gmail.com>
+
+	* src/smooth/ftgrays.c (gray_convert_glyph): Remove unused variables.
+
+2018-06-03  Werner Lemberg  <wl at gnu.org>
+
+	* src/tools/glnames.py (main): Emit header in `light' comment style.
+
+2018-06-02  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	* 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  <wl at gnu.org>
+
+	* src/autofit/afwarp.h: Use AF_CONFIG_OPTION_USE_WARPER (#54033).
+
+2018-05-31  Werner Lemberg  <wl at gnu.org>
+
+	* src/raster/ftraster.c (black_TWorker_): Remove `gTarget' field.
+
+	This is no longer used.
+
+2018-05-31  Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	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  <prince.cherusker at gmail.com>
+
+	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  <prince.cherusker at gmail.com>
+
+	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  <wl at gnu.org>
+
+	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  <ramakrishnan.nikhil at gmail.com>
+
+	[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  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Trace # of points.
+
+2018-05-20  Werner Lemberg  <wl at gnu.org>
+
+	* include/freetype/ftcolor.h: New file.
+
+	This is an interface to the `CPAL' OpenType table.  No
+	implementation yet.
+
+2018-05-18  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* include/freetype/internal/ftcalc.h (FT_MSB): Verified `_MSC_VER'.
+
+	Actually `_BitScanReverse' is available since VS2005.
+
+2018-05-18  Werner Lemberg  <wl at gnu.org>
+
+	* 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 <john at creativepost.co.uk>.
+
+2018-05-17  Werner Lemberg  <wl at gnu.org>
+
+	s/inline/__inline/ for MSVC.
+
+	Reported by John Emmas <john at creativepost.co.uk>.
+
+	* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Do it.
+
+2018-05-16  Werner Lemberg  <wl at gnu.org>
+
+	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  <apodtele at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[psaux] Fix compiler warning (#53915).
+
+	* src/psaux/psft.c (cf2_freeT1SeacComponent): Do it.
+
+2018-05-15  Werner Lemberg  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	[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  <wl at gnu.org>
+
+	* src/base/ftobjs.c (FT_Load_Glyph): Fix signature of `pixel_modes'.
+
+2018-05-14  Werner Lemberg  <wl at gnu.org>
+
+	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  <wl at gnu.org>
+
+	* src/base/ftobjs.c (FT_Load_Glyph): Improve tracing.
+
+2018-05-13  Shao Yu Zhang  <shaozhang at fb.com>
+	    Werner Lemberg  <wl at gnu.org>
+
+	[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  <arkady.shapkin at gmail.com>
+
+	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  <alan.coopersmith at oracle.com>
+
+	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  <wl at gnu.org>
+
+	[autofit] Avoid potential SEGV if running out of memory.
+
+	Problem reported by Shailesh Mistry <shailesh.mistry at hotmail.co.uk>.
+
+	* 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  <madigens at gmail.com>
+
+	[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  <wl at gnu.org>
+
+	[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  <mpsuzuki at hiroshima-u.ac.jp>
+
+	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  <madigens at gmail.com>
+
+	Unbreak CMake Windows installation
+
+	* CMakeLists.txt: Generate ftconfig.h on non-UNIX.
+
+2018-05-02  Werner Lemberg  <wl at gnu.org>
+
+	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:

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/404.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/404.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/404.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>FreeType-2.11.0 API Reference</title>
+        <title>FreeType-2.11.1 API Reference</title>
       
     
     
@@ -77,7 +77,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="/index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="/index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="/images/favico.ico" alt="logo">
 
@@ -89,7 +89,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -156,12 +156,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="/index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="/index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="/images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-auto_hinter.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-auto_hinter.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-auto_hinter.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>The auto-hinter - FreeType-2.11.0 API Reference</title>
+        <title>The auto-hinter - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-base_interface.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-base_interface.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-base_interface.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Base Interface - FreeType-2.11.0 API Reference</title>
+        <title>Base Interface - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>
@@ -2464,7 +2464,8 @@
 
 <h4>note</h4>
 
-<p>By default, FreeType enables a Unicode charmap and tags it with <code>FT_ENCODING_UNICODE</code> when it is either provided or can be generated from PostScript glyph name dictionaries in the font file. All other encodings are considered legacy and tagged only if explicitly defined in the font file. Otherwise, <code>FT_ENCODING_NONE</code> is used.</p>
+<p>When loading a font, FreeType makes a Unicode charmap active if possible (either if the font provides such a charmap, or if FreeType can synthesize one from PostScript glyph name dictionaries; in either case, the charmap is tagged with <code>FT_ENCODING_UNICODE</code>). If such a charmap is synthesized, it is placed at the first position of the charmap array.</p>
+<p>All other encodings are considered legacy and tagged only if explicitly defined in the font file. Otherwise, <code>FT_ENCODING_NONE</code> is used.</p>
 <p><code>FT_ENCODING_NONE</code> is set by the BDF and PCF drivers if the charmap is neither Unicode nor ISO-8859-1 (otherwise it is set to <code>FT_ENCODING_UNICODE</code>). Use <code><a href="ft2-bdf_fonts.html#ft_get_bdf_charset_id">FT_Get_BDF_Charset_ID</a></code> to find out which encoding is really present. If, for example, the <code>cs_registry</code> field is ‘KOI8’ and the <code>cs_encoding</code> field is ‘R’, the font is encoded in KOI8-R.</p>
 <p><code>FT_ENCODING_NONE</code> is always set (with a single exception) by the winfonts driver. Use <code><a href="ft2-winfnt_fonts.html#ft_get_winfnt_header">FT_Get_WinFNT_Header</a></code> and examine the <code>charset</code> field of the <code><a href="ft2-winfnt_fonts.html#ft_winfnt_headerrec">FT_WinFNT_HeaderRec</a></code> structure to find out which encoding is really present. For example, <code><a href="ft2-winfnt_fonts.html#ft_winfnt_id_xxx">FT_WinFNT_ID_CP1251</a></code> (204) means Windows code page 1251 (for Russian).</p>
 <p><code>FT_ENCODING_NONE</code> is set if <code>platform_id</code> is <code><a href="ft2-truetype_tables.html#tt_platform_xxx">TT_PLATFORM_MACINTOSH</a></code> and <code>encoding_id</code> is not <code>TT_MAC_ID_ROMAN</code> (otherwise it is set to <code>FT_ENCODING_APPLE_ROMAN</code>).</p>
@@ -2476,12 +2477,13 @@
 <h2 id="ft_enc_tag">FT_ENC_TAG<a class="headerlink" href="#ft_enc_tag" title="Permanent link">¶</a></h2>
 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
 <div class = "codehilite"><pre><code>#<span class="keyword">ifndef</span> <b>FT_ENC_TAG</b>
-#<span class="keyword">define</span> <b>FT_ENC_TAG</b>( value, a, b, c, d )         \
-          value = ( ( (<a href="ft2-basic_types.html#ft_uint32">FT_UInt32</a>)(a) << 24 ) |  \
-                    ( (<a href="ft2-basic_types.html#ft_uint32">FT_UInt32</a>)(b) << 16 ) |  \
-                    ( (<a href="ft2-basic_types.html#ft_uint32">FT_UInt32</a>)(c) <<  8 ) |  \
-                      (<a href="ft2-basic_types.html#ft_uint32">FT_UInt32</a>)(d)         )
 
+#<span class="keyword">define</span> <b>FT_ENC_TAG</b>( value, a, b, c, d )                             \
+          value = ( ( FT_STATIC_BYTE_CAST( <a href="ft2-basic_types.html#ft_uint32">FT_UInt32</a>, a ) << 24 ) | \
+                    ( FT_STATIC_BYTE_CAST( <a href="ft2-basic_types.html#ft_uint32">FT_UInt32</a>, b ) << 16 ) | \
+                    ( FT_STATIC_BYTE_CAST( <a href="ft2-basic_types.html#ft_uint32">FT_UInt32</a>, c ) <<  8 ) | \
+                      FT_STATIC_BYTE_CAST( <a href="ft2-basic_types.html#ft_uint32">FT_UInt32</a>, d )         )
+
 #<span class="keyword">endif</span> /* <b>FT_ENC_TAG</b> */
 </code></pre></div>
 
@@ -3250,6 +3252,7 @@
 <p>FreeType error code. 0 means success.</p>
 <h4>note</h4>
 
+<p>The <code>pathname</code> string should be recognizable as such by a standard <code>fopen</code> call on your system; in particular, this means that <code>pathname</code> must not contain null bytes. If that is not sufficient to address all file name possibilities (for example, to handle wide character file names on Windows in UTF-16 encoding) you might use <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code> to pass a memory array or a stream object instead.</p>
 <p>Use <code><a href="ft2-base_interface.html#ft_done_face">FT_Done_Face</a></code> to destroy the created <code><a href="ft2-base_interface.html#ft_face">FT_Face</a></code> object (along with its slot and sizes).</p>
 <hr>
 
@@ -3561,7 +3564,7 @@
 <p>The size in bytes of the file in memory.</p>
 </td></tr>
 <tr><td class="val" id="pathname">pathname</td><td class="desc">
-<p>A pointer to an 8-bit file pathname. The pointer is not owned by FreeType.</p>
+<p>A pointer to an 8-bit file pathname, which must be a C string (i.e., no null bytes except at the very end). The pointer is not owned by FreeType.</p>
 </td></tr>
 <tr><td class="val" id="stream">stream</td><td class="desc">
 <p>A handle to a source stream object.</p>
@@ -4174,7 +4177,8 @@
 
 <h2 id="ft_load_target_mode">FT_LOAD_TARGET_MODE<a class="headerlink" href="#ft_load_target_mode" title="Permanent link">¶</a></h2>
 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
-<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_LOAD_TARGET_MODE</b>( x )  ( (<a href="ft2-base_interface.html#ft_render_mode">FT_Render_Mode</a>)( ( (x) >> 16 ) & 15 ) )
+<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_LOAD_TARGET_MODE</b>( x )                               \
+          FT_STATIC_CAST( <a href="ft2-base_interface.html#ft_render_mode">FT_Render_Mode</a>, ( (x) >> 16 ) & 15 )
 </code></pre></div>
 
 <p>Return the <code><a href="ft2-base_interface.html#ft_render_mode">FT_Render_Mode</a></code> corresponding to a given <code><a href="ft2-base_interface.html#ft_load_target_xxx">FT_LOAD_TARGET_XXX</a></code> value.</p>
@@ -4964,7 +4968,7 @@
 
 <h2 id="ft_load_target_xxx">FT_LOAD_TARGET_XXX<a class="headerlink" href="#ft_load_target_xxx" title="Permanent link">¶</a></h2>
 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
-<div class = "codehilite"><pre><code>#<span class="keyword">define</span> FT_LOAD_TARGET_( x )   ( (<a href="ft2-basic_types.html#ft_int32">FT_Int32</a>)( (x) & 15 ) << 16 )
+<div class = "codehilite"><pre><code>#<span class="keyword">define</span> FT_LOAD_TARGET_( x )   ( FT_STATIC_CAST( <a href="ft2-basic_types.html#ft_int32">FT_Int32</a>, (x) & 15 ) << 16 )
 
 #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_target_normal">FT_LOAD_TARGET_NORMAL</a>  FT_LOAD_TARGET_( <a href="ft2-base_interface.html#ft_render_mode_normal">FT_RENDER_MODE_NORMAL</a> )
 #<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_load_target_light">FT_LOAD_TARGET_LIGHT</a>   FT_LOAD_TARGET_( <a href="ft2-base_interface.html#ft_render_mode_light">FT_RENDER_MODE_LIGHT</a>  )

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-basic_types.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-basic_types.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-basic_types.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Basic Data Types - FreeType-2.11.0 API Reference</title>
+        <title>Basic Data Types - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>
@@ -2034,7 +2034,7 @@
 <div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_Data_
   {
     <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_byte">FT_Byte</a>*  pointer;
-    <a href="ft2-basic_types.html#ft_int">FT_Int</a>          length;
+    <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>         length;
 
   } <b>FT_Data</b>;
 </code></pre></div>
@@ -2054,15 +2054,14 @@
 
 <h2 id="ft_make_tag">FT_MAKE_TAG<a class="headerlink" href="#ft_make_tag" title="Permanent link">¶</a></h2>
 <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
-<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_MAKE_TAG</b>( _x1, _x2, _x3, _x4 ) \
-          (<a href="ft2-basic_types.html#ft_tag">FT_Tag</a>)                        \
-          ( ( (<a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>)_x1 << 24 ) |     \
-            ( (<a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>)_x2 << 16 ) |     \
-            ( (<a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>)_x3 <<  8 ) |     \
-              (<a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>)_x4         )
+<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_MAKE_TAG</b>( _x1, _x2, _x3, _x4 )                  \
+          ( ( FT_STATIC_BYTE_CAST( <a href="ft2-basic_types.html#ft_tag">FT_Tag</a>, _x1 ) << 24 ) | \
+            ( FT_STATIC_BYTE_CAST( <a href="ft2-basic_types.html#ft_tag">FT_Tag</a>, _x2 ) << 16 ) | \
+            ( FT_STATIC_BYTE_CAST( <a href="ft2-basic_types.html#ft_tag">FT_Tag</a>, _x3 ) <<  8 ) | \
+              FT_STATIC_BYTE_CAST( <a href="ft2-basic_types.html#ft_tag">FT_Tag</a>, _x4 )         )
 </code></pre></div>
 
-<p>This macro converts four-letter tags that are used to label TrueType tables into an unsigned long, to be used within FreeType.</p>
+<p>This macro converts four-letter tags that are used to label TrueType tables into an <code>FT_Tag</code> type, to be used within FreeType.</p>
 <h4>note</h4>
 
 <p>The produced values <strong>must</strong> be 32-bit integers. Don't redefine this macro.</p>
@@ -2260,11 +2259,13 @@
 <h2 id="ft_image_tag">FT_IMAGE_TAG<a class="headerlink" href="#ft_image_tag" title="Permanent link">¶</a></h2>
 <p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
 <div class = "codehilite"><pre><code>#<span class="keyword">ifndef</span> <b>FT_IMAGE_TAG</b>
-#<span class="keyword">define</span> <b>FT_IMAGE_TAG</b>( value, _x1, _x2, _x3, _x4 )  \
-          value = ( ( (<span class="keyword">unsigned</span> <span class="keyword">long</span>)_x1 << 24 ) | \
-                    ( (<span class="keyword">unsigned</span> <span class="keyword">long</span>)_x2 << 16 ) | \
-                    ( (<span class="keyword">unsigned</span> <span class="keyword">long</span>)_x3 << 8  ) | \
-                      (<span class="keyword">unsigned</span> <span class="keyword">long</span>)_x4         )
+
+#<span class="keyword">define</span> <b>FT_IMAGE_TAG</b>( value, _x1, _x2, _x3, _x4 )                         \
+          value = ( ( FT_STATIC_BYTE_CAST( <span class="keyword">unsigned</span> <span class="keyword">long</span>, _x1 ) << 24 ) | \
+                    ( FT_STATIC_BYTE_CAST( <span class="keyword">unsigned</span> <span class="keyword">long</span>, _x2 ) << 16 ) | \
+                    ( FT_STATIC_BYTE_CAST( <span class="keyword">unsigned</span> <span class="keyword">long</span>, _x3 ) << 8  ) | \
+                      FT_STATIC_BYTE_CAST( <span class="keyword">unsigned</span> <span class="keyword">long</span>, _x4 )         )
+
 #<span class="keyword">endif</span> /* <b>FT_IMAGE_TAG</b> */
 </code></pre></div>
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bdf_fonts.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bdf_fonts.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bdf_fonts.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>BDF and PCF Files - FreeType-2.11.0 API Reference</title>
+        <title>BDF and PCF Files - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bitmap_handling.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bitmap_handling.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bitmap_handling.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Bitmap Handling - FreeType-2.11.0 API Reference</title>
+        <title>Bitmap Handling - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bzip2.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bzip2.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bzip2.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>BZIP2 Streams - FreeType-2.11.0 API Reference</title>
+        <title>BZIP2 Streams - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cache_subsystem.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cache_subsystem.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cache_subsystem.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Cache Sub-System - FreeType-2.11.0 API Reference</title>
+        <title>Cache Sub-System - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cff_driver.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cff_driver.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cff_driver.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>The CFF driver - FreeType-2.11.0 API Reference</title>
+        <title>The CFF driver - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cid_fonts.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cid_fonts.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cid_fonts.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>CID Fonts - FreeType-2.11.0 API Reference</title>
+        <title>CID Fonts - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-color_management.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-color_management.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-color_management.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Glyph Color Management - FreeType-2.11.0 API Reference</title>
+        <title>Glyph Color Management - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-computations.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-computations.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-computations.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Computations - FreeType-2.11.0 API Reference</title>
+        <title>Computations - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-debugging_apis.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-debugging_apis.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-debugging_apis.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>External Debugging APIs - FreeType-2.11.0 API Reference</title>
+        <title>External Debugging APIs - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-error_code_values.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-error_code_values.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-error_code_values.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Error Code Values - FreeType-2.11.0 API Reference</title>
+        <title>Error Code Values - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-error_enumerations.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-error_enumerations.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-error_enumerations.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Error Enumerations - FreeType-2.11.0 API Reference</title>
+        <title>Error Enumerations - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-font_formats.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-font_formats.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-font_formats.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Font Formats - FreeType-2.11.0 API Reference</title>
+        <title>Font Formats - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gasp_table.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gasp_table.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gasp_table.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Gasp Table - FreeType-2.11.0 API Reference</title>
+        <title>Gasp Table - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_management.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_management.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_management.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Glyph Management - FreeType-2.11.0 API Reference</title>
+        <title>Glyph Management - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>
@@ -1556,9 +1556,9 @@
 <h2 id="ft_glyph_transform">FT_Glyph_Transform<a class="headerlink" href="#ft_glyph_transform" title="Permanent link">¶</a></h2>
 <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
-  <b>FT_Glyph_Transform</b>( <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a>    glyph,
-                      <a href="ft2-basic_types.html#ft_matrix">FT_Matrix</a>*  matrix,
-                      <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>*  delta );
+  <b>FT_Glyph_Transform</b>( <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a>          glyph,
+                      <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_matrix">FT_Matrix</a>*  matrix,
+                      <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>*  delta );
 </code></pre></div>
 
 <p>Transform a glyph image if its format is scalable.</p>
@@ -1680,10 +1680,10 @@
 <h2 id="ft_glyph_to_bitmap">FT_Glyph_To_Bitmap<a class="headerlink" href="#ft_glyph_to_bitmap" title="Permanent link">¶</a></h2>
 <p>Defined in FT_GLYPH_H (freetype/ftglyph.h).</p>
 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
-  <b>FT_Glyph_To_Bitmap</b>( <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a>*       the_glyph,
-                      <a href="ft2-base_interface.html#ft_render_mode">FT_Render_Mode</a>  render_mode,
-                      <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>*      origin,
-                      <a href="ft2-basic_types.html#ft_bool">FT_Bool</a>         destroy );
+  <b>FT_Glyph_To_Bitmap</b>( <a href="ft2-glyph_management.html#ft_glyph">FT_Glyph</a>*         the_glyph,
+                      <a href="ft2-base_interface.html#ft_render_mode">FT_Render_Mode</a>    render_mode,
+                      <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>*  origin,
+                      <a href="ft2-basic_types.html#ft_bool">FT_Bool</a>           destroy );
 </code></pre></div>
 
 <p>Convert a given glyph object to a bitmap glyph object.</p>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_stroker.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_stroker.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_stroker.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Glyph Stroker - FreeType-2.11.0 API Reference</title>
+        <title>Glyph Stroker - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_variants.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_variants.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_variants.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Unicode Variation Sequences - FreeType-2.11.0 API Reference</title>
+        <title>Unicode Variation Sequences - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gx_validation.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gx_validation.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gx_validation.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>TrueTypeGX/AAT Validation - FreeType-2.11.0 API Reference</title>
+        <title>TrueTypeGX/AAT Validation - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gzip.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gzip.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gzip.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>GZIP Streams - FreeType-2.11.0 API Reference</title>
+        <title>GZIP Streams - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-header_file_macros.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-header_file_macros.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-header_file_macros.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Header File Macros - FreeType-2.11.0 API Reference</title>
+        <title>Header File Macros - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-header_inclusion.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-header_inclusion.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-header_inclusion.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>FreeType's header inclusion scheme - FreeType-2.11.0 API Reference</title>
+        <title>FreeType's header inclusion scheme - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-incremental.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-incremental.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-incremental.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Incremental Loading - FreeType-2.11.0 API Reference</title>
+        <title>Incremental Loading - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-index.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-index.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-index.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Index - FreeType-2.11.0 API Reference</title>
+        <title>Index - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -71,7 +71,7 @@
     <div data-md-component="skip">
       
         
-        <a href="#freetype-2110-api-reference" class="md-skip">
+        <a href="#freetype-2111-api-reference" class="md-skip">
           Skip to content
         </a>
       
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>
@@ -1294,7 +1294,7 @@
                 
                 <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » Global Index</p>
 <hr />
-<h1 id="freetype-2110-api-reference">FreeType-2.11.0 API Reference<a class="headerlink" href="#freetype-2110-api-reference" title="Permanent link">¶</a></h1>
+<h1 id="freetype-2111-api-reference">FreeType-2.11.1 API Reference<a class="headerlink" href="#freetype-2111-api-reference" title="Permanent link">¶</a></h1>
 <h3 id="b">B<a class="headerlink" href="#b" title="Permanent link">¶</a></h3>
 <p><a href="ft2-bdf_fonts.html#bdf_property">BDF_Property</a><br />
 <a href="ft2-bdf_fonts.html#bdf_propertytype">BDF_PROPERTY_TYPE_ATOM</a><br />
@@ -1368,6 +1368,7 @@
 <a href="ft2-header_file_macros.html#ft_cid_h">FT_CID_H</a><br />
 <a href="ft2-gx_validation.html#ft_classickern_free">FT_ClassicKern_Free</a><br />
 <a href="ft2-gx_validation.html#ft_classickern_validate">FT_ClassicKern_Validate</a><br />
+<a href="ft2-layer_management.html#ft_clipbox">FT_ClipBox</a><br />
 <a href="ft2-color_management.html#ft_color">FT_Color</a><br />
 <a href="ft2-header_file_macros.html#ft_color_h">FT_COLOR_H</a><br />
 <a href="ft2-layer_management.html#ft_color_root_transform">FT_COLOR_INCLUDE_ROOT_TRANSFORM</a><br />
@@ -1487,6 +1488,7 @@
 <a href="ft2-cid_fonts.html#ft_get_cid_registry_ordering_supplement">FT_Get_CID_Registry_Ordering_Supplement</a><br />
 <a href="ft2-truetype_tables.html#ft_get_cmap_format">FT_Get_CMap_Format</a><br />
 <a href="ft2-truetype_tables.html#ft_get_cmap_language_id">FT_Get_CMap_Language_ID</a><br />
+<a href="ft2-layer_management.html#ft_get_color_glyph_clipbox">FT_Get_Color_Glyph_ClipBox</a><br />
 <a href="ft2-layer_management.html#ft_get_color_glyph_layer">FT_Get_Color_Glyph_Layer</a><br />
 <a href="ft2-layer_management.html#ft_get_color_glyph_paint">FT_Get_Color_Glyph_Paint</a><br />
 <a href="ft2-layer_management.html#ft_get_colorline_stops">FT_Get_Colorline_Stops</a><br />
@@ -2172,7 +2174,7 @@
 <h3 id="w">W<a class="headerlink" href="#w" title="Permanent link">¶</a></h3>
 <p><a href="ft2-properties.html#warping">warping</a>  </p>
 <hr />
-<div class="timestamp">generated on Mon Jul 19 16:08:15 2021 UTC</div>
+<div class="timestamp">generated on Thu Dec  2 12:36:11 2021 UTC</div>
                 
               
               

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-layer_management.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-layer_management.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-layer_management.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Glyph Layer Management - FreeType-2.11.0 API Reference</title>
+        <title>Glyph Layer Management - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>
@@ -580,6 +580,13 @@
 </li>
       
         <li class="md-nav__item">
+  <a href="#ft_clipbox" class="md-nav__link">
+    FT_ClipBox
+  </a>
+  
+</li>
+      
+        <li class="md-nav__item">
   <a href="#ft_get_color_glyph_paint" class="md-nav__link">
     FT_Get_Color_Glyph_Paint
   </a>
@@ -587,6 +594,13 @@
 </li>
       
         <li class="md-nav__item">
+  <a href="#ft_get_color_glyph_clipbox" class="md-nav__link">
+    FT_Get_Color_Glyph_ClipBox
+  </a>
+  
+</li>
+      
+        <li class="md-nav__item">
   <a href="#ft_get_paint_layers" class="md-nav__link">
     FT_Get_Paint_Layers
   </a>
@@ -1520,6 +1534,13 @@
 </li>
       
         <li class="md-nav__item">
+  <a href="#ft_clipbox" class="md-nav__link">
+    FT_ClipBox
+  </a>
+  
+</li>
+      
+        <li class="md-nav__item">
   <a href="#ft_get_color_glyph_paint" class="md-nav__link">
     FT_Get_Color_Glyph_Paint
   </a>
@@ -1527,6 +1548,13 @@
 </li>
       
         <li class="md-nav__item">
+  <a href="#ft_get_color_glyph_clipbox" class="md-nav__link">
+    FT_Get_Color_Glyph_ClipBox
+  </a>
+  
+</li>
+      
+        <li class="md-nav__item">
   <a href="#ft_get_paint_layers" class="md-nav__link">
     FT_Get_Paint_Layers
   </a>
@@ -1899,22 +1927,23 @@
     FT_COLR_COMPOSITE_SRC_ATOP       = 9,
     FT_COLR_COMPOSITE_DEST_ATOP      = 10,
     FT_COLR_COMPOSITE_XOR            = 11,
-    FT_COLR_COMPOSITE_SCREEN         = 12,
-    FT_COLR_COMPOSITE_OVERLAY        = 13,
-    FT_COLR_COMPOSITE_DARKEN         = 14,
-    FT_COLR_COMPOSITE_LIGHTEN        = 15,
-    FT_COLR_COMPOSITE_COLOR_DODGE    = 16,
-    FT_COLR_COMPOSITE_COLOR_BURN     = 17,
-    FT_COLR_COMPOSITE_HARD_LIGHT     = 18,
-    FT_COLR_COMPOSITE_SOFT_LIGHT     = 19,
-    FT_COLR_COMPOSITE_DIFFERENCE     = 20,
-    FT_COLR_COMPOSITE_EXCLUSION      = 21,
-    FT_COLR_COMPOSITE_MULTIPLY       = 22,
-    FT_COLR_COMPOSITE_HSL_HUE        = 23,
-    FT_COLR_COMPOSITE_HSL_SATURATION = 24,
-    FT_COLR_COMPOSITE_HSL_COLOR      = 25,
-    FT_COLR_COMPOSITE_HSL_LUMINOSITY = 26,
-    FT_COLR_COMPOSITE_MAX            = 27
+    FT_COLR_COMPOSITE_PLUS           = 12,
+    FT_COLR_COMPOSITE_SCREEN         = 13,
+    FT_COLR_COMPOSITE_OVERLAY        = 14,
+    FT_COLR_COMPOSITE_DARKEN         = 15,
+    FT_COLR_COMPOSITE_LIGHTEN        = 16,
+    FT_COLR_COMPOSITE_COLOR_DODGE    = 17,
+    FT_COLR_COMPOSITE_COLOR_BURN     = 18,
+    FT_COLR_COMPOSITE_HARD_LIGHT     = 19,
+    FT_COLR_COMPOSITE_SOFT_LIGHT     = 20,
+    FT_COLR_COMPOSITE_DIFFERENCE     = 21,
+    FT_COLR_COMPOSITE_EXCLUSION      = 22,
+    FT_COLR_COMPOSITE_MULTIPLY       = 23,
+    FT_COLR_COMPOSITE_HSL_HUE        = 24,
+    FT_COLR_COMPOSITE_HSL_SATURATION = 25,
+    FT_COLR_COMPOSITE_HSL_COLOR      = 26,
+    FT_COLR_COMPOSITE_HSL_LUMINOSITY = 27,
+    FT_COLR_COMPOSITE_MAX            = 28
 
   } <b>FT_Composite_Mode</b>;
 </code></pre></div>
@@ -2015,13 +2044,13 @@
 <p>The <code><a href="ft2-layer_management.html#ft_colorline">FT_ColorLine</a></code> information for this paint, i.e., the list of color stops along the gradient.</p>
 </td></tr>
 <tr><td class="val" id="p0">p0</td><td class="desc">
-<p>The starting point of the gradient definition (in font units).</p>
+<p>The starting point of the gradient definition in font units represented as a 16.16 fixed-point <code>FT_Vector</code>.</p>
 </td></tr>
 <tr><td class="val" id="p1">p1</td><td class="desc">
-<p>The end point of the gradient definition (in font units).</p>
+<p>The end point of the gradient definition in font units represented as a 16.16 fixed-point <code>FT_Vector</code>.</p>
 </td></tr>
 <tr><td class="val" id="p2">p2</td><td class="desc">
-<p>Optional point p2 to rotate the gradient (in font units). Otherwise equal to p0.</p>
+<p>Optional point p2 to rotate the gradient in font units represented as a 16.16 fixed-point <code>FT_Vector</code>. Otherwise equal to p0.</p>
 </td></tr>
 </table>
 
@@ -2037,9 +2066,9 @@
     <a href="ft2-layer_management.html#ft_colorline">FT_ColorLine</a>  colorline;
 
     <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>  c0;
-    <a href="ft2-basic_types.html#ft_ushort">FT_UShort</a>  r0;
+    <a href="ft2-basic_types.html#ft_pos">FT_Pos</a>     r0;
     <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>  c1;
-    <a href="ft2-basic_types.html#ft_ushort">FT_UShort</a>  r1;
+    <a href="ft2-basic_types.html#ft_pos">FT_Pos</a>     r1;
 
   } <b>FT_PaintRadialGradient</b>;
 </code></pre></div>
@@ -2051,16 +2080,16 @@
 <p>The <code><a href="ft2-layer_management.html#ft_colorline">FT_ColorLine</a></code> information for this paint, i.e., the list of color stops along the gradient.</p>
 </td></tr>
 <tr><td class="val" id="c0">c0</td><td class="desc">
-<p>The center of the starting point of the radial gradient (in font units).</p>
+<p>The center of the starting point of the radial gradient in font units represented as a 16.16 fixed-point <code>FT_Vector</code>.</p>
 </td></tr>
 <tr><td class="val" id="r0">r0</td><td class="desc">
-<p>The radius of the starting circle of the radial gradient (in font units).</p>
+<p>The radius of the starting circle of the radial gradient in font units represented as a 16.16 fixed-point value.</p>
 </td></tr>
 <tr><td class="val" id="c1">c1</td><td class="desc">
-<p>The center of the end point of the radial gradient (in font units).</p>
+<p>The center of the end point of the radial gradient in font units represented as a 16.16 fixed-point <code>FT_Vector</code>.</p>
 </td></tr>
 <tr><td class="val" id="r1">r1</td><td class="desc">
-<p>The radius of the end circle of the radial gradient (in font units).</p>
+<p>The radius of the end circle of the radial gradient in font units represented as a 16.16 fixed-point value.</p>
 </td></tr>
 </table>
 
@@ -2089,13 +2118,13 @@
 <p>The <code><a href="ft2-layer_management.html#ft_colorline">FT_ColorLine</a></code> information for this paint, i.e., the list of color stops along the gradient.</p>
 </td></tr>
 <tr><td class="val" id="center">center</td><td class="desc">
-<p>The center of the sweep gradient (in font units).</p>
+<p>The center of the sweep gradient in font units represented as a vector of 16.16 fixed-point values.</p>
 </td></tr>
 <tr><td class="val" id="start_angle">start_angle</td><td class="desc">
-<p>The start angle of the sweep gradient, in 16.16 fixed point format specifying degrees. Values are given counter-clockwise, starting from the (positive) y axis.</p>
+<p>The start angle of the sweep gradient in 16.16 fixed-point format specifying degrees divided by 180.0 (as in the spec). Multiply by 180.0f to receive degrees value. Values are given counter-clockwise, starting from the (positive) y axis.</p>
 </td></tr>
 <tr><td class="val" id="end_angle">end_angle</td><td class="desc">
-<p>The end angle of the sweep gradient, in 16.16 fixed point format specifying degrees. Values are given counter-clockwise, starting from the (positive) y axis.</p>
+<p>The end angle of the sweep gradient in 16.16 fixed-point format specifying degrees divided by 180.0 (as in the spec). Multiply by 180.0f to receive degrees value. Values are given counter-clockwise, starting from the (positive) y axis.</p>
 </td></tr>
 </table>
 
@@ -2169,7 +2198,7 @@
 <p>An opaque paint that is subject to being transformed.</p>
 </td></tr>
 <tr><td class="val" id="affine">affine</td><td class="desc">
-<p>A 2x3 transformation matrix in <code><a href="ft2-layer_management.html#ft_affine23">FT_Affine23</a></code> format.</p>
+<p>A 2x3 transformation matrix in <code><a href="ft2-layer_management.html#ft_affine23">FT_Affine23</a></code> format containing 16.16 fixed-point values.</p>
 </td></tr>
 </table>
 
@@ -2197,10 +2226,10 @@
 <p>An <code><a href="ft2-layer_management.html#ft_opaquepaint">FT_OpaquePaint</a></code> object referencing the paint that is to be rotated.</p>
 </td></tr>
 <tr><td class="val" id="dx">dx</td><td class="desc">
-<p>Translation in x direction (in font units).</p>
+<p>Translation in x direction in font units represented as a 16.16 fixed-point value.</p>
 </td></tr>
 <tr><td class="val" id="dy">dy</td><td class="desc">
-<p>Translation in y direction (in font units).</p>
+<p>Translation in y direction in font units represented as a 16.16 fixed-point value.</p>
 </td></tr>
 </table>
 
@@ -2231,16 +2260,16 @@
 <p>An <code><a href="ft2-layer_management.html#ft_opaquepaint">FT_OpaquePaint</a></code> object referencing the paint that is to be scaled.</p>
 </td></tr>
 <tr><td class="val" id="scale_x">scale_x</td><td class="desc">
-<p>Scale factor in x direction.</p>
+<p>Scale factor in x direction represented as a 16.16 fixed-point value.</p>
 </td></tr>
 <tr><td class="val" id="scale_y">scale_y</td><td class="desc">
-<p>Scale factor in y direction.</p>
+<p>Scale factor in y direction represented as a 16.16 fixed-point value.</p>
 </td></tr>
 <tr><td class="val" id="center_x">center_x</td><td class="desc">
-<p>x coordinate of center point to scale from.</p>
+<p>x coordinate of center point to scale from represented as a 16.16 fixed-point value.</p>
 </td></tr>
 <tr><td class="val" id="center_y">center_y</td><td class="desc">
-<p>y coordinate of center point to scale from.</p>
+<p>y coordinate of center point to scale from represented as a 16.16 fixed-point value.</p>
 </td></tr>
 </table>
 
@@ -2270,13 +2299,13 @@
 <p>An <code><a href="ft2-layer_management.html#ft_opaquepaint">FT_OpaquePaint</a></code> object referencing the paint that is to be rotated.</p>
 </td></tr>
 <tr><td class="val" id="angle">angle</td><td class="desc">
-<p>The rotation angle that is to be applied.</p>
+<p>The rotation angle that is to be applied in degrees divided by 180.0 (as in the spec) represented as a 16.16 fixed-point value. Multiply by 180.0f to receive degrees value.</p>
 </td></tr>
 <tr><td class="val" id="center_x">center_x</td><td class="desc">
-<p>The x coordinate of the pivot point of the rotation (in font units).</p>
+<p>The x coordinate of the pivot point of the rotation in font units) represented as a 16.16 fixed-point value.</p>
 </td></tr>
 <tr><td class="val" id="center_y">center_y</td><td class="desc">
-<p>The y coordinate of the pivot point of the rotation (in font units).</p>
+<p>The y coordinate of the pivot point of the rotation in font units represented as a 16.16 fixed-point value.</p>
 </td></tr>
 </table>
 
@@ -2307,16 +2336,16 @@
 <p>An <code><a href="ft2-layer_management.html#ft_opaquepaint">FT_OpaquePaint</a></code> object referencing the paint that is to be skewed.</p>
 </td></tr>
 <tr><td class="val" id="x_skew_angle">x_skew_angle</td><td class="desc">
-<p>The skewing angle in x direction.</p>
+<p>The skewing angle in x direction in degrees divided by 180.0 (as in the spec) represented as a 16.16 fixed-point value. Multiply by 180.0f to receive degrees.</p>
 </td></tr>
 <tr><td class="val" id="y_skew_angle">y_skew_angle</td><td class="desc">
-<p>The skewing angle in y direction.</p>
+<p>The skewing angle in y direction in degrees divided by 180.0 (as in the spec) represented as a 16.16 fixed-point value. Multiply by 180.0f to receive degrees.</p>
 </td></tr>
 <tr><td class="val" id="center_x">center_x</td><td class="desc">
-<p>The x coordinate of the pivot point of the skew (in font units).</p>
+<p>The x coordinate of the pivot point of the skew in font units represented as a 16.16 fixed-point value.</p>
 </td></tr>
 <tr><td class="val" id="center_y">center_y</td><td class="desc">
-<p>The y coordinate of the pivot point of the skew (in font units).</p>
+<p>The y coordinate of the pivot point of the skew in font units represented as a 16.16 fixed-point value.</p>
 </td></tr>
 </table>
 
@@ -2429,6 +2458,40 @@
 <p>2.11 – <strong>currently experimental only!</strong> There might be changes without retaining backward compatibility of both the API and ABI.</p>
 <hr>
 
+<h2 id="ft_clipbox">FT_ClipBox<a class="headerlink" href="#ft_clipbox" title="Permanent link">¶</a></h2>
+<p>Defined in FT_COLOR_H (freetype/ftcolor.h).</p>
+<div class = "codehilite"><pre><code>  <span class="keyword">typedef</span> <span class="keyword">struct</span>  FT_ClipBox_
+  {
+    <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>  bottom_left;
+    <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>  top_left;
+    <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>  top_right;
+    <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>  bottom_right;
+
+  } <b>FT_ClipBox</b>;
+</code></pre></div>
+
+<p>A structure representing a ‘COLR’ v1 ‘ClipBox’ table. ‘COLR’ v1 glyphs may optionally define a clip box for aiding allocation or defining a maximum drawable region. Use <code><a href="ft2-layer_management.html#ft_get_color_glyph_clipbox">FT_Get_Color_Glyph_ClipBox</a></code> to retrieve it.</p>
+<h4>fields</h4>
+<table class="fields">
+<tr><td class="val" id="bottom_left">bottom_left</td><td class="desc">
+<p>The bottom left corner of the clip box as an <code><a href="ft2-basic_types.html#ft_vector">FT_Vector</a></code> with fixed-point coordinates in 26.6 format.</p>
+</td></tr>
+<tr><td class="val" id="top_left">top_left</td><td class="desc">
+<p>The top left corner of the clip box as an <code><a href="ft2-basic_types.html#ft_vector">FT_Vector</a></code> with fixed-point coordinates in 26.6 format.</p>
+</td></tr>
+<tr><td class="val" id="top_right">top_right</td><td class="desc">
+<p>The top right corner of the clip box as an <code><a href="ft2-basic_types.html#ft_vector">FT_Vector</a></code> with fixed-point coordinates in 26.6 format.</p>
+</td></tr>
+<tr><td class="val" id="bottom_right">bottom_right</td><td class="desc">
+<p>The bottom right corner of the clip box as an <code><a href="ft2-basic_types.html#ft_vector">FT_Vector</a></code> with fixed-point coordinates in 26.6 format.</p>
+</td></tr>
+</table>
+
+<h4>since</h4>
+
+<p>2.12 – <strong>currently experimental only!</strong> There might be changes without retaining backward compatibility of both the API and ABI.</p>
+<hr>
+
 <h2 id="ft_get_color_glyph_paint">FT_Get_Color_Glyph_Paint<a class="headerlink" href="#ft_get_color_glyph_paint" title="Permanent link">¶</a></h2>
 <p>Defined in FT_COLOR_H (freetype/ftcolor.h).</p>
 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_bool">FT_Bool</a> )
@@ -2473,6 +2536,43 @@
 <p>2.11 – <strong>currently experimental only!</strong> There might be changes without retaining backward compatibility of both the API and ABI.</p>
 <hr>
 
+<h2 id="ft_get_color_glyph_clipbox">FT_Get_Color_Glyph_ClipBox<a class="headerlink" href="#ft_get_color_glyph_clipbox" title="Permanent link">¶</a></h2>
+<p>Defined in FT_COLOR_H (freetype/ftcolor.h).</p>
+<div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_bool">FT_Bool</a> )
+  <b>FT_Get_Color_Glyph_ClipBox</b>( <a href="ft2-base_interface.html#ft_face">FT_Face</a>      face,
+                              <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>      base_glyph,
+                              <a href="ft2-layer_management.html#ft_clipbox">FT_ClipBox</a>*  clip_box );
+</code></pre></div>
+
+<p>Search for a ‘COLR’ v1 clip box for the specified <code>base_glyph</code> and fill the <code>clip_box</code> parameter with the ‘COLR’ v1 ‘ClipBox’ information if one is found.</p>
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the parent face object.</p>
+</td></tr>
+<tr><td class="val" id="base_glyph">base_glyph</td><td class="desc">
+<p>The glyph index for which to retrieve the clip box.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="clip_box">clip_box</td><td class="desc">
+<p>The clip box for the requested <code>base_glyph</code> if one is found. The clip box is computed taking scale and transformations configured on the <code><a href="ft2-base_interface.html#ft_face">FT_Face</a></code> into account. <code><a href="ft2-layer_management.html#ft_clipbox">FT_ClipBox</a></code> contains <code><a href="ft2-basic_types.html#ft_vector">FT_Vector</a></code> values in 26.6 format.</p>
+</td></tr>
+</table>
+
+<h4>return</h4>
+
+<p>Value 1 if a clip box is found. If no clip box is found or an error occured, value 0 is returned.</p>
+<h4>note</h4>
+
+<p>To retrieve the clip box in font units, reset scale to units-per-em and remove transforms configured using <code><a href="ft2-base_interface.html#ft_set_transform">FT_Set_Transform</a></code>.</p>
+<h4>since</h4>
+
+<p>2.12 – <strong>currently experimental only!</strong> There might be changes without retaining backward compatibility of both the API and ABI.</p>
+<hr>
+
 <h2 id="ft_get_paint_layers">FT_Get_Paint_Layers<a class="headerlink" href="#ft_get_paint_layers" title="Permanent link">¶</a></h2>
 <p>Defined in FT_COLOR_H (freetype/ftcolor.h).</p>
 <div class = "codehilite"><pre><code>  FT_EXPORT( <a href="ft2-basic_types.html#ft_bool">FT_Bool</a> )

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-lcd_rendering.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-lcd_rendering.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-lcd_rendering.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Subpixel Rendering - FreeType-2.11.0 API Reference</title>
+        <title>Subpixel Rendering - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-list_processing.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-list_processing.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-list_processing.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>List Processing - FreeType-2.11.0 API Reference</title>
+        <title>List Processing - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-lzw.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-lzw.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-lzw.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>LZW Streams - FreeType-2.11.0 API Reference</title>
+        <title>LZW Streams - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-mac_specific.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-mac_specific.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-mac_specific.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Mac Specific Interface - FreeType-2.11.0 API Reference</title>
+        <title>Mac Specific Interface - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-module_management.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-module_management.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-module_management.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Module Management - FreeType-2.11.0 API Reference</title>
+        <title>Module Management - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>
@@ -1719,8 +1719,9 @@
 
 <h2 id="ft_face_driver_name">FT_FACE_DRIVER_NAME<a class="headerlink" href="#ft_face_driver_name" title="Permanent link">¶</a></h2>
 <p>Defined in FT_MODULE_H (freetype/ftmodapi.h).</p>
-<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_FACE_DRIVER_NAME</b>( face ) \
-          ( ( *(<a href="ft2-module_management.html#ft_module_class">FT_Module_Class</a>**)( ( face )->driver ) )->module_name )
+<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_FACE_DRIVER_NAME</b>( face )                                     \
+          ( ( *FT_REINTERPRET_CAST( <a href="ft2-module_management.html#ft_module_class">FT_Module_Class</a>**,                  \
+                                    ( face )->driver ) )->module_name )
 </code></pre></div>
 
 <p>A macro that retrieves the name of a font driver from a face object.</p>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-multiple_masters.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-multiple_masters.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-multiple_masters.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Multiple Masters - FreeType-2.11.0 API Reference</title>
+        <title>Multiple Masters - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-ot_validation.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-ot_validation.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-ot_validation.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>OpenType Validation - FreeType-2.11.0 API Reference</title>
+        <title>OpenType Validation - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-outline_processing.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-outline_processing.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-outline_processing.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Outline Processing - FreeType-2.11.0 API Reference</title>
+        <title>Outline Processing - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-parameter_tags.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-parameter_tags.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-parameter_tags.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Parameter Tags - FreeType-2.11.0 API Reference</title>
+        <title>Parameter Tags - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-pcf_driver.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-pcf_driver.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-pcf_driver.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>The PCF driver - FreeType-2.11.0 API Reference</title>
+        <title>The PCF driver - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-pfr_fonts.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-pfr_fonts.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-pfr_fonts.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>PFR Fonts - FreeType-2.11.0 API Reference</title>
+        <title>PFR Fonts - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-preamble.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-preamble.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-preamble.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Preamble - FreeType-2.11.0 API Reference</title>
+        <title>Preamble - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-properties.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-properties.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-properties.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Driver properties - FreeType-2.11.0 API Reference</title>
+        <title>Driver properties - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-quick_advance.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-quick_advance.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-quick_advance.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Quick retrieval of advance values - FreeType-2.11.0 API Reference</title>
+        <title>Quick retrieval of advance values - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-raster.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-raster.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-raster.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Scanline Converter - FreeType-2.11.0 API Reference</title>
+        <title>Scanline Converter - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-sfnt_names.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-sfnt_names.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-sfnt_names.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>SFNT Names - FreeType-2.11.0 API Reference</title>
+        <title>SFNT Names - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-sizes_management.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-sizes_management.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-sizes_management.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Size Management - FreeType-2.11.0 API Reference</title>
+        <title>Size Management - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-system_interface.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-system_interface.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-system_interface.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>System Interface - FreeType-2.11.0 API Reference</title>
+        <title>System Interface - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-t1_cid_driver.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-t1_cid_driver.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-t1_cid_driver.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>The Type 1 and CID drivers - FreeType-2.11.0 API Reference</title>
+        <title>The Type 1 and CID drivers - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-truetype_engine.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-truetype_engine.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-truetype_engine.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>The TrueType Engine - FreeType-2.11.0 API Reference</title>
+        <title>The TrueType Engine - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-truetype_tables.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-truetype_tables.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-truetype_tables.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>TrueType Tables - FreeType-2.11.0 API Reference</title>
+        <title>TrueType Tables - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>
@@ -2635,7 +2635,7 @@
 #<span class="keyword">define</span> TT_MS_LANGID_MALAY_MALAYSIA                    0x043E
 #<span class="keyword">define</span> TT_MS_LANGID_MALAY_BRUNEI_DARUSSALAM           0x083E
 #<span class="keyword">define</span> TT_MS_LANGID_KAZAKH_KAZAKHSTAN                 0x043F
-#<span class="keyword">define</span> TT_MS_LANGID_KYRGYZ_KYRGYZSTAN /* Cyrillic*/   0x0440
+#<span class="keyword">define</span> TT_MS_LANGID_KYRGYZ_KYRGYZSTAN /* Cyrillic */  0x0440
 #<span class="keyword">define</span> TT_MS_LANGID_KISWAHILI_KENYA                   0x0441
 #<span class="keyword">define</span> TT_MS_LANGID_TURKMEN_TURKMENISTAN              0x0442
 #<span class="keyword">define</span> TT_MS_LANGID_UZBEK_UZBEKISTAN_LATIN            0x0443

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-tt_driver.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-tt_driver.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-tt_driver.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>The TrueType driver - FreeType-2.11.0 API Reference</title>
+        <title>The TrueType driver - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-type1_tables.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-type1_tables.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-type1_tables.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Type 1 Tables - FreeType-2.11.0 API Reference</title>
+        <title>Type 1 Tables - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>
@@ -1511,7 +1511,7 @@
 
     <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>        num_subrs;
     <a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>       subrmap_offset;
-    <a href="ft2-basic_types.html#ft_int">FT_Int</a>         sd_bytes;
+    <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>        sd_bytes;
 
   } <b>CID_FaceDictRec</b>;
 </code></pre></div>
@@ -1548,11 +1548,11 @@
     <a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>        xuid[16];
 
     <a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>        cidmap_offset;
-    <a href="ft2-basic_types.html#ft_int">FT_Int</a>          fd_bytes;
-    <a href="ft2-basic_types.html#ft_int">FT_Int</a>          gd_bytes;
+    <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>         fd_bytes;
+    <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>         gd_bytes;
     <a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>        cid_count;
 
-    <a href="ft2-basic_types.html#ft_int">FT_Int</a>          num_dicts;
+    <a href="ft2-basic_types.html#ft_uint">FT_UInt</a>         num_dicts;
     <a href="ft2-type1_tables.html#cid_facedict">CID_FaceDict</a>    font_dicts;
 
     <a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>        data_offset;

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-user_allocation.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-user_allocation.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-user_allocation.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>User allocation - FreeType-2.11.0 API Reference</title>
+        <title>User allocation - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-version.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-version.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-version.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>FreeType Version - FreeType-2.11.0 API Reference</title>
+        <title>FreeType Version - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>
@@ -1295,7 +1295,7 @@
 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
 <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-version.html#freetype_major">FREETYPE_MAJOR</a>  2
 #<span class="keyword">define</span> <a href="ft2-version.html#freetype_minor">FREETYPE_MINOR</a>  11
-#<span class="keyword">define</span> <a href="ft2-version.html#freetype_patch">FREETYPE_PATCH</a>  0
+#<span class="keyword">define</span> <a href="ft2-version.html#freetype_patch">FREETYPE_PATCH</a>  1
 </code></pre></div>
 
 <p>These three macros identify the FreeType source code version. Use <code><a href="ft2-version.html#ft_library_version">FT_Library_Version</a></code> to access them at runtime.</p>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-winfnt_fonts.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-winfnt_fonts.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-winfnt_fonts.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>Window FNT Files - FreeType-2.11.0 API Reference</title>
+        <title>Window FNT Files - FreeType-2.11.1 API Reference</title>
       
     
     
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/index.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/index.html	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/index.html	2021-12-03 04:03:12 UTC (rev 61211)
@@ -6,7 +6,7 @@
       <meta charset="utf-8">
       <meta name="viewport" content="width=device-width,initial-scale=1">
       
-        <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
+        <meta name="description" content="API Reference Documentation for FreeType-2.11.1">
       
       
       
@@ -18,7 +18,7 @@
     
     
       
-        <title>FreeType-2.11.0 API Reference</title>
+        <title>FreeType-2.11.1 API Reference</title>
       
     
     
@@ -71,7 +71,7 @@
     <div data-md-component="skip">
       
         
-        <a href="#freetype-2110-api-reference" class="md-skip">
+        <a href="#freetype-2111-api-reference" class="md-skip">
           Skip to content
         </a>
       
@@ -82,7 +82,7 @@
     
       <header class="md-header" data-md-component="header">
   <nav class="md-header__inner md-grid" aria-label="Header">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
@@ -94,7 +94,7 @@
       <div class="md-header__ellipsis">
         <div class="md-header__topic">
           <span class="md-ellipsis">
-            FreeType-2.11.0 API Reference
+            FreeType-2.11.1 API Reference
           </span>
         </div>
         <div class="md-header__topic" data-md-component="header-topic">
@@ -161,12 +161,12 @@
 
 <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
   <label class="md-nav__title" for="__drawer">
-    <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
+    <a href="index.html" title="FreeType-2.11.1 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.1 API Reference" data-md-component="logo">
       
   <img src="images/favico.ico" alt="logo">
 
     </a>
-    FreeType-2.11.0 API Reference
+    FreeType-2.11.1 API Reference
   </label>
   
   <ul class="md-nav__list" data-md-scrollfix>
@@ -1095,7 +1095,7 @@
                 
                 <p><a href="https://www.freetype.org">FreeType</a> » <a href="../">Docs</a> » Table of Contents</p>
 <hr />
-<h1 id="freetype-2110-api-reference">FreeType-2.11.0 API Reference<a class="headerlink" href="#freetype-2110-api-reference" title="Permanent link">¶</a></h1>
+<h1 id="freetype-2111-api-reference">FreeType-2.11.1 API Reference<a class="headerlink" href="#freetype-2111-api-reference" title="Permanent link">¶</a></h1>
 <h1 id="table-of-contents">Table of Contents<a class="headerlink" href="#table-of-contents" title="Permanent link">¶</a></h1>
 <h2 id="general-remarks">General Remarks<a class="headerlink" href="#general-remarks" title="Permanent link">¶</a></h2>
 <table class="toc">
@@ -1276,7 +1276,7 @@
 </table>
 <h2 id="global-index"><a href="ft2-index.html">Global Index</a><a class="headerlink" href="#global-index" title="Permanent link">¶</a></h2>
 <hr />
-<div class="timestamp">generated on Mon Jul 19 16:08:15 2021 UTC</div>
+<div class="timestamp">generated on Thu Dec  2 12:36:11 2021 UTC</div>
                 
               
               

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/search/search_index.json
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/search/search_index.json	2021-12-03 00:48:32 UTC (rev 61210)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/search/search_index.json	2021-12-03 04:03:12 UTC (rev 61211)
@@ -1 +1 @@

@@ Diff output truncated at 1234567 characters. @@


More information about the tex-live-commits mailing list.