From c1c7df45902c28d68a07508d11224cef86edcb0d Mon Sep 17 00:00:00 2001
From: Akira Kakuto
Date: Fri, 30 Dec 2016 23:22:05 +0000
Subject: freetype2 2.7.1
git-svn-id: svn://tug.org/texlive/trunk@42811 c570f23f-e606-0410-a88d-b1316a301751
---
Build/source/libs/freetype2/ChangeLog | 5 +
Build/source/libs/freetype2/configure | 20 +-
.../libs/freetype2/freetype-PATCHES/ChangeLog | 5 +
.../libs/freetype2/freetype-PATCHES/TL-Changes | 2 +-
.../libs/freetype2/freetype-src/CMakeLists.txt | 4 +-
Build/source/libs/freetype2/freetype-src/ChangeLog | 1443 ++++++++++++++++++++
Build/source/libs/freetype2/freetype-src/Jamfile | 2 +-
Build/source/libs/freetype2/freetype-src/README | 10 +-
.../libs/freetype2/freetype-src/builds/mac/ftmac.c | 18 +-
.../freetype2/freetype-src/builds/unix/aclocal.m4 | 114 ++
.../freetype2/freetype-src/builds/unix/config.sub | 4 +-
.../freetype2/freetype-src/builds/unix/configure | 137 +-
.../freetype-src/builds/unix/configure.ac | 5 +-
.../freetype-src/builds/unix/configure.raw | 3 +-
.../freetype2/freetype-src/builds/unix/ftconfig.in | 23 +-
.../freetype2/freetype-src/builds/vms/ftconfig.h | 17 +-
.../builds/wince/vc2005-ce/freetype.vcproj | 76 +-
.../freetype-src/builds/wince/vc2005-ce/index.html | 10 +-
.../builds/wince/vc2008-ce/freetype.vcproj | 76 +-
.../freetype-src/builds/wince/vc2008-ce/index.html | 10 +-
.../builds/windows/vc2005/freetype.vcproj | 12 +-
.../freetype-src/builds/windows/vc2005/index.html | 10 +-
.../builds/windows/vc2008/freetype.vcproj | 12 +-
.../freetype-src/builds/windows/vc2008/index.html | 10 +-
.../builds/windows/vc2010/freetype.vcxproj | 24 +-
.../freetype-src/builds/windows/vc2010/index.html | 14 +-
.../builds/windows/visualc/freetype.dsp | 20 +-
.../builds/windows/visualc/freetype.vcproj | 12 +-
.../freetype-src/builds/windows/visualc/index.html | 10 +-
.../builds/windows/visualce/freetype.dsp | 20 +-
.../builds/windows/visualce/freetype.vcproj | 84 +-
.../builds/windows/visualce/index.html | 10 +-
.../libs/freetype2/freetype-src/docs/CHANGES | 71 +
.../libs/freetype2/freetype-src/docs/VERSIONS.TXT | 1 +
.../libs/freetype2/freetype-src/docs/formats.txt | 281 ++--
.../freetype2/freetype-src/docs/freetype-config.1 | 2 +-
.../docs/reference/ft2-auto_hinter.html | 4 +-
.../docs/reference/ft2-base_interface.html | 20 +-
.../docs/reference/ft2-basic_types.html | 4 +-
.../freetype-src/docs/reference/ft2-bdf_fonts.html | 4 +-
.../docs/reference/ft2-bitmap_handling.html | 4 +-
.../freetype-src/docs/reference/ft2-bzip2.html | 4 +-
.../docs/reference/ft2-cache_subsystem.html | 4 +-
.../docs/reference/ft2-cff_driver.html | 4 +-
.../freetype-src/docs/reference/ft2-cid_fonts.html | 4 +-
.../docs/reference/ft2-computations.html | 4 +-
.../docs/reference/ft2-error_code_values.html | 4 +-
.../docs/reference/ft2-error_enumerations.html | 4 +-
.../docs/reference/ft2-font_formats.html | 4 +-
.../docs/reference/ft2-gasp_table.html | 4 +-
.../docs/reference/ft2-glyph_management.html | 4 +-
.../docs/reference/ft2-glyph_stroker.html | 4 +-
.../docs/reference/ft2-glyph_variants.html | 4 +-
.../docs/reference/ft2-gx_validation.html | 4 +-
.../freetype-src/docs/reference/ft2-gzip.html | 4 +-
.../docs/reference/ft2-header_file_macros.html | 4 +-
.../docs/reference/ft2-header_inclusion.html | 4 +-
.../docs/reference/ft2-incremental.html | 4 +-
.../freetype-src/docs/reference/ft2-index.html | 553 ++++----
.../docs/reference/ft2-lcd_filtering.html | 4 +-
.../docs/reference/ft2-list_processing.html | 4 +-
.../freetype-src/docs/reference/ft2-lzw.html | 4 +-
.../docs/reference/ft2-mac_specific.html | 4 +-
.../docs/reference/ft2-module_management.html | 4 +-
.../docs/reference/ft2-multiple_masters.html | 103 +-
.../docs/reference/ft2-ot_validation.html | 4 +-
.../docs/reference/ft2-outline_processing.html | 4 +-
.../freetype-src/docs/reference/ft2-pfr_fonts.html | 4 +-
.../docs/reference/ft2-quick_advance.html | 4 +-
.../freetype-src/docs/reference/ft2-raster.html | 5 +-
.../docs/reference/ft2-sfnt_names.html | 4 +-
.../docs/reference/ft2-sizes_management.html | 4 +-
.../docs/reference/ft2-system_interface.html | 4 +-
.../freetype-src/docs/reference/ft2-toc.html | 6 +-
.../docs/reference/ft2-truetype_engine.html | 4 +-
.../docs/reference/ft2-truetype_tables.html | 4 +-
.../freetype-src/docs/reference/ft2-tt_driver.html | 4 +-
.../docs/reference/ft2-type1_tables.html | 4 +-
.../docs/reference/ft2-user_allocation.html | 4 +-
.../freetype-src/docs/reference/ft2-version.html | 6 +-
.../docs/reference/ft2-winfnt_fonts.html | 4 +-
.../include/freetype/config/ftconfig.h | 17 +-
.../freetype-src/include/freetype/freetype.h | 41 +-
.../freetype-src/include/freetype/ftimage.h | 1 +
.../freetype2/freetype-src/include/freetype/ftmm.h | 75 +-
.../freetype-src/include/freetype/ftrender.h | 1 +
.../include/freetype/internal/ftobjs.h | 6 +-
.../include/freetype/internal/ftrfork.h | 5 +-
.../include/freetype/internal/ftserv.h | 114 +-
.../include/freetype/internal/services/svmetric.h | 155 +++
.../include/freetype/internal/services/svmm.h | 91 +-
.../include/freetype/internal/tttypes.h | 217 ++-
.../freetype-src/include/freetype/tttags.h | 4 +
.../freetype2/freetype-src/src/autofit/afcjk.c | 24 +-
.../freetype2/freetype-src/src/autofit/afdummy.c | 12 +-
.../freetype2/freetype-src/src/autofit/afglobal.c | 17 +-
.../freetype2/freetype-src/src/autofit/afhints.c | 12 +-
.../freetype2/freetype-src/src/autofit/afindic.c | 24 +-
.../freetype2/freetype-src/src/autofit/aflatin.c | 16 +-
.../freetype2/freetype-src/src/autofit/aflatin2.c | 14 +-
.../freetype2/freetype-src/src/autofit/afloader.c | 492 ++++---
.../freetype2/freetype-src/src/autofit/afmodule.c | 23 +-
.../freetype2/freetype-src/src/autofit/aftypes.h | 2 +-
.../freetype2/freetype-src/src/base/ftadvanc.c | 13 +-
.../libs/freetype2/freetype-src/src/base/ftbbox.c | 26 +-
.../freetype2/freetype-src/src/base/ftbitmap.c | 2 +-
.../libs/freetype2/freetype-src/src/base/ftcalc.c | 8 +-
.../freetype2/freetype-src/src/base/ftdbgmem.c | 22 +-
.../libs/freetype2/freetype-src/src/base/ftglyph.c | 36 +-
.../libs/freetype2/freetype-src/src/base/ftmac.c | 28 +-
.../libs/freetype2/freetype-src/src/base/ftmm.c | 119 +-
.../libs/freetype2/freetype-src/src/base/ftobjs.c | 220 ++-
.../libs/freetype2/freetype-src/src/base/ftrfork.c | 115 +-
.../freetype2/freetype-src/src/base/ftsnames.c | 2 +-
.../libs/freetype2/freetype-src/src/base/ftutil.c | 6 +-
.../libs/freetype2/freetype-src/src/bdf/bdfdrivr.c | 26 +-
.../libs/freetype2/freetype-src/src/bdf/bdflib.c | 6 +-
.../freetype2/freetype-src/src/bzip2/ftbzip2.c | 2 +-
.../freetype2/freetype-src/src/cache/ftcbasic.c | 51 +-
.../freetype2/freetype-src/src/cache/ftccache.c | 14 +-
.../freetype2/freetype-src/src/cache/ftccache.h | 6 +-
.../freetype2/freetype-src/src/cache/ftccmap.c | 14 +-
.../freetype2/freetype-src/src/cache/ftcmanag.c | 21 +-
.../libs/freetype2/freetype-src/src/cache/ftcmru.c | 10 +-
.../libs/freetype2/freetype-src/src/cache/ftcmru.h | 2 +
.../freetype2/freetype-src/src/cache/ftcsbits.c | 2 +-
.../libs/freetype2/freetype-src/src/cff/cf2arrst.c | 20 +-
.../libs/freetype2/freetype-src/src/cff/cf2error.c | 2 +-
.../libs/freetype2/freetype-src/src/cff/cf2fixed.h | 4 +-
.../libs/freetype2/freetype-src/src/cff/cf2font.c | 54 +-
.../libs/freetype2/freetype-src/src/cff/cf2font.h | 8 +
.../libs/freetype2/freetype-src/src/cff/cf2ft.c | 48 +-
.../libs/freetype2/freetype-src/src/cff/cf2ft.h | 12 +
.../libs/freetype2/freetype-src/src/cff/cf2hints.c | 4 +-
.../libs/freetype2/freetype-src/src/cff/cf2intrp.c | 794 ++++++-----
.../libs/freetype2/freetype-src/src/cff/cf2stack.c | 71 +-
.../libs/freetype2/freetype-src/src/cff/cf2stack.h | 14 +-
.../libs/freetype2/freetype-src/src/cff/cffcmap.c | 37 +-
.../libs/freetype2/freetype-src/src/cff/cffdrivr.c | 218 ++-
.../libs/freetype2/freetype-src/src/cff/cffgload.c | 10 +-
.../libs/freetype2/freetype-src/src/cff/cffload.c | 920 +++++++++++--
.../libs/freetype2/freetype-src/src/cff/cffload.h | 50 +-
.../libs/freetype2/freetype-src/src/cff/cffobjs.c | 91 +-
.../libs/freetype2/freetype-src/src/cff/cffparse.c | 290 +++-
.../libs/freetype2/freetype-src/src/cff/cffparse.h | 25 +-
.../libs/freetype2/freetype-src/src/cff/cffpic.h | 1 +
.../libs/freetype2/freetype-src/src/cff/cfftoken.h | 49 +-
.../libs/freetype2/freetype-src/src/cff/cfftypes.h | 123 +-
.../libs/freetype2/freetype-src/src/cid/cidload.c | 10 +-
.../libs/freetype2/freetype-src/src/cid/cidparse.c | 6 +-
.../libs/freetype2/freetype-src/src/cid/cidriver.c | 10 +-
.../freetype2/freetype-src/src/gxvalid/gxvcommn.c | 16 +-
.../freetype2/freetype-src/src/gxvalid/gxvmod.c | 8 +-
.../freetype2/freetype-src/src/gxvalid/gxvmort.c | 2 +-
.../freetype2/freetype-src/src/gxvalid/gxvmorx.c | 2 +-
.../libs/freetype2/freetype-src/src/gzip/ftgzip.c | 26 +-
.../libs/freetype2/freetype-src/src/gzip/ftzconf.h | 284 ++++
.../libs/freetype2/freetype-src/src/gzip/rules.mk | 2 +-
.../libs/freetype2/freetype-src/src/gzip/zconf.h | 284 ----
.../libs/freetype2/freetype-src/src/gzip/zlib.h | 2 +-
.../libs/freetype2/freetype-src/src/lzw/ftzopen.c | 2 +-
.../freetype2/freetype-src/src/otvalid/otvcommn.c | 2 +-
.../freetype2/freetype-src/src/otvalid/otvmath.c | 20 +-
.../freetype2/freetype-src/src/otvalid/otvmod.c | 8 +-
.../libs/freetype2/freetype-src/src/pcf/pcfdrivr.c | 57 +-
.../libs/freetype2/freetype-src/src/pcf/pcfread.c | 76 +-
.../libs/freetype2/freetype-src/src/pfr/pfrcmap.c | 16 +-
.../libs/freetype2/freetype-src/src/pfr/pfrdrivr.c | 18 +-
.../libs/freetype2/freetype-src/src/pfr/pfrload.c | 4 +-
.../libs/freetype2/freetype-src/src/pfr/pfrobjs.c | 10 +-
.../libs/freetype2/freetype-src/src/pfr/pfrsbit.c | 6 +-
.../libs/freetype2/freetype-src/src/pfr/pfrsbit.h | 3 +-
.../freetype2/freetype-src/src/psaux/psauxmod.c | 72 +-
.../libs/freetype2/freetype-src/src/psaux/psobjs.c | 30 +-
.../libs/freetype2/freetype-src/src/psaux/t1cmap.c | 62 +-
.../freetype2/freetype-src/src/psaux/t1decode.c | 59 +-
.../freetype2/freetype-src/src/pshinter/pshalgo.c | 10 +-
.../freetype2/freetype-src/src/pshinter/pshmod.c | 12 +-
.../freetype2/freetype-src/src/pshinter/pshrec.c | 6 +-
.../freetype2/freetype-src/src/psnames/psmodule.c | 19 +-
.../freetype2/freetype-src/src/psnames/pstables.h | 90 +-
.../freetype2/freetype-src/src/raster/ftraster.c | 31 +-
.../freetype2/freetype-src/src/raster/ftrend1.c | 24 +-
.../libs/freetype2/freetype-src/src/sfnt/pngshim.c | 27 +-
.../libs/freetype2/freetype-src/src/sfnt/pngshim.h | 3 +-
.../freetype2/freetype-src/src/sfnt/sfdriver.c | 53 +-
.../libs/freetype2/freetype-src/src/sfnt/sfobjs.c | 131 +-
.../libs/freetype2/freetype-src/src/sfnt/ttbdf.c | 6 +-
.../libs/freetype2/freetype-src/src/sfnt/ttcmap.c | 269 ++--
.../libs/freetype2/freetype-src/src/sfnt/ttload.c | 2 +-
.../libs/freetype2/freetype-src/src/sfnt/ttmtx.c | 38 +
.../libs/freetype2/freetype-src/src/sfnt/ttpost.c | 4 +-
.../libs/freetype2/freetype-src/src/sfnt/ttsbit.c | 163 ++-
.../freetype2/freetype-src/src/smooth/ftgrays.c | 114 +-
.../freetype2/freetype-src/src/smooth/ftsmooth.c | 73 +-
.../freetype2/freetype-src/src/tools/apinames.c | 14 +-
.../freetype-src/src/tools/ftfuzzer/ftfuzzer.cc | 100 +-
.../freetype-src/src/tools/ftrandom/ftrandom.c | 58 +-
.../freetype2/freetype-src/src/tools/glnames.py | 79 +-
.../freetype2/freetype-src/src/truetype/ttdriver.c | 80 +-
.../freetype2/freetype-src/src/truetype/ttgload.c | 102 +-
.../freetype2/freetype-src/src/truetype/ttgxvar.c | 992 ++++++++++++--
.../freetype2/freetype-src/src/truetype/ttgxvar.h | 98 +-
.../freetype2/freetype-src/src/truetype/ttinterp.c | 82 +-
.../freetype2/freetype-src/src/truetype/ttinterp.h | 8 +
.../freetype2/freetype-src/src/truetype/ttobjs.c | 76 +-
.../freetype2/freetype-src/src/truetype/ttpic.h | 21 +-
.../freetype2/freetype-src/src/truetype/ttpload.c | 67 +-
.../libs/freetype2/freetype-src/src/type1/t1afm.c | 6 +-
.../freetype2/freetype-src/src/type1/t1driver.c | 15 +-
.../libs/freetype2/freetype-src/src/type1/t1load.c | 98 +-
.../libs/freetype2/freetype-src/src/type1/t1load.h | 14 +-
.../freetype2/freetype-src/src/type1/t1parse.c | 2 +-
.../freetype2/freetype-src/src/type42/t42drivr.c | 8 +-
.../freetype2/freetype-src/src/type42/t42objs.c | 2 +-
.../freetype2/freetype-src/src/type42/t42parse.c | 4 +-
.../freetype2/freetype-src/src/winfonts/winfnt.c | 64 +-
Build/source/libs/freetype2/version.ac | 2 +-
218 files changed, 9309 insertions(+), 3240 deletions(-)
create mode 100644 Build/source/libs/freetype2/freetype-src/include/freetype/internal/services/svmetric.h
create mode 100644 Build/source/libs/freetype2/freetype-src/src/gzip/ftzconf.h
delete mode 100644 Build/source/libs/freetype2/freetype-src/src/gzip/zconf.h
diff --git a/Build/source/libs/freetype2/ChangeLog b/Build/source/libs/freetype2/ChangeLog
index b1bb23364e1..3ff13b535e6 100644
--- a/Build/source/libs/freetype2/ChangeLog
+++ b/Build/source/libs/freetype2/ChangeLog
@@ -1,3 +1,8 @@
+2016-12-30 Akira Kakuto
+
+ Import freetype-2.7.1.
+ * version.ac: Adjusted.
+
2016-09-13 Akira Kakuto
Import freetype-2.7.0.
diff --git a/Build/source/libs/freetype2/configure b/Build/source/libs/freetype2/configure
index a00844ec705..0a8d9229f53 100755
--- a/Build/source/libs/freetype2/configure
+++ b/Build/source/libs/freetype2/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for FreeType (TeX Live) 2.7.0.
+# Generated by GNU Autoconf 2.69 for FreeType (TeX Live) 2.7.1.
#
# Report bugs to .
#
@@ -579,8 +579,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='FreeType (TeX Live)'
PACKAGE_TARNAME='freetype--tex-live-'
-PACKAGE_VERSION='2.7.0'
-PACKAGE_STRING='FreeType (TeX Live) 2.7.0'
+PACKAGE_VERSION='2.7.1'
+PACKAGE_STRING='FreeType (TeX Live) 2.7.1'
PACKAGE_BUGREPORT='tex-k@tug.org'
PACKAGE_URL=''
@@ -1235,7 +1235,7 @@ if test "$ac_init_help" = "long"; then
# 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.7.0 to adapt to many kinds of systems.
+\`configure' configures FreeType (TeX Live) 2.7.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1302,7 +1302,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of FreeType (TeX Live) 2.7.0:";;
+ short | recursive ) echo "Configuration of FreeType (TeX Live) 2.7.1:";;
esac
cat <<\_ACEOF
@@ -1398,7 +1398,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-FreeType (TeX Live) configure 2.7.0
+FreeType (TeX Live) configure 2.7.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1499,7 +1499,7 @@ 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 (TeX Live) $as_me 2.7.0, which was
+It was created by FreeType (TeX Live) $as_me 2.7.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3422,7 +3422,7 @@ fi
# Define the identity of the package.
PACKAGE='freetype--tex-live-'
- VERSION='2.7.0'
+ VERSION='2.7.1'
cat >>confdefs.h <<_ACEOF
@@ -4953,7 +4953,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# 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.7.0, which was
+This file was extended by FreeType (TeX Live) $as_me 2.7.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5010,7 +5010,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-FreeType (TeX Live) config.status 2.7.0
+FreeType (TeX Live) config.status 2.7.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/Build/source/libs/freetype2/freetype-PATCHES/ChangeLog b/Build/source/libs/freetype2/freetype-PATCHES/ChangeLog
index 87bcbca0054..d4fe552186d 100644
--- a/Build/source/libs/freetype2/freetype-PATCHES/ChangeLog
+++ b/Build/source/libs/freetype2/freetype-PATCHES/ChangeLog
@@ -1,3 +1,8 @@
+2016-12-30 Akira Kakuto
+
+ Imported freetype-2.7.1 source tree from:
+ http://savannah.nongnu.org/download/freetype/
+
2016-09-13 Akira Kakuto
Imported freetype-2.7.0 source tree from:
diff --git a/Build/source/libs/freetype2/freetype-PATCHES/TL-Changes b/Build/source/libs/freetype2/freetype-PATCHES/TL-Changes
index 2f6ba150c4f..2e27e172fa6 100644
--- a/Build/source/libs/freetype2/freetype-PATCHES/TL-Changes
+++ b/Build/source/libs/freetype2/freetype-PATCHES/TL-Changes
@@ -1,2 +1,2 @@
-Changes applied to the freetype-2.7.0/ tree as obtained from:
+Changes applied to the freetype-2.7.1/ tree as obtained from:
http://savannah.nongnu.org/download/freetype/.
diff --git a/Build/source/libs/freetype2/freetype-src/CMakeLists.txt b/Build/source/libs/freetype2/freetype-src/CMakeLists.txt
index 077d5fd8d86..7c2243b3b0a 100644
--- a/Build/source/libs/freetype2/freetype-src/CMakeLists.txt
+++ b/Build/source/libs/freetype2/freetype-src/CMakeLists.txt
@@ -154,7 +154,7 @@ endif ()
set(VERSION_MAJOR "2")
set(VERSION_MINOR "7")
-set(VERSION_PATCH "0")
+set(VERSION_PATCH "1")
set(PROJECT_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH})
set(SHARED_LIBRARY_VERSION ${VERSION_MAJOR}.${VERSION_MINOR})
@@ -362,7 +362,7 @@ if (BUILD_FRAMEWORK)
)
endif ()
-if (NOT CMAKE_VERSION VERSION_LESS 2.8.11)
+if (NOT CMAKE_VERSION VERSION_LESS 2.8.12)
target_include_directories(freetype
PUBLIC $)
endif ()
diff --git a/Build/source/libs/freetype2/freetype-src/ChangeLog b/Build/source/libs/freetype2/freetype-src/ChangeLog
index c7321f6dee8..23f57482399 100644
--- a/Build/source/libs/freetype2/freetype-src/ChangeLog
+++ b/Build/source/libs/freetype2/freetype-src/ChangeLog
@@ -1,3 +1,1446 @@
+2016-09-08 Werner Lemberg
+
+ * Version 2.7.1 released.
+ =========================
+
+
+ Tag sources with `VER-2-7-1'.
+
+ * docs/VERSION.TXT: Add entry for version 2.7.1.
+
+ * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
+ builds/windows/vc2005/index.html,
+ builds/windows/vc2008/freetype.vcproj,
+ builds/windows/vc2008/index.html,
+ builds/windows/vc2010/freetype.vcxproj,
+ builds/windows/vc2010/index.html,
+ builds/windows/visualc/freetype.dsp,
+ builds/windows/visualc/freetype.vcproj,
+ builds/windows/visualc/index.html,
+ builds/windows/visualce/freetype.dsp,
+ builds/windows/visualce/freetype.vcproj,
+ builds/windows/visualce/index.html,
+ builds/wince/vc2005-ce/freetype.vcproj,
+ builds/wince/vc2005-ce/index.html,
+ builds/wince/vc2008-ce/freetype.vcproj,
+ builds/wince/vc2008-ce/index.html: s/2.7/2.7.1/, s/27/271/.
+
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
+
+ * builds/unix/configure.raw (version_info): Set to 19:0:13.
+ * CMakeLists.txt (VERSION_PATCH): Set to 1.
+
+2016-12-30 Werner Lemberg
+
+ [ftfuzzer] Replace `rand' with an xorshift algorithm.
+
+ * src/tools/ftfuzzer/ftfuzzer.cc: Don't include `stdlib.h'.
+ (Random): Implement and use a 32bit `xorshift' algorithm.
+
+2016-12-30 Werner Lemberg
+
+ [ftfuzzer] Restrict number of tested bitmap strikes.
+
+ Malformed fonts often have large values for the number of bitmap
+ strikes, and FreeType doesn't check the validity of all bitmap
+ strikes in advance.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=353
+
+ * src/tools/ftfuzzer/ftfuzzer.cc: Include `stdlib.h' for `rand'.
+ (Random): Small class to provide n randomly selected numbers
+ (without repitition) out of the value set [1,N].
+ (LLVMFuzzerTestOneInput): Use it to test only up to 10 bitmap
+ strikes.
+
+2016-12-29 Werner Lemberg
+
+ [truetype] Variation font API stability issues.
+
+ Make some functions work before a call to `TT_Set_MM_Blend'.
+
+ * src/truetype/ttgxvar.c (tt_hadvance_adjust): Exit immediately if
+ we don't blend.
+ (TT_Get_MM_Blend, TT_Get_Var_Design): Return default values if we
+ don't blend.
+
+2016-12-29 Werner Lemberg
+
+ * src/truetype/ttgxvar.c (TT_Get_MM_Var): Check axis data.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=348
+
+2016-12-29 Werner Lemberg
+
+ [truetype] Tracing fixes.
+
+ * src/truetype/ttgxvar.c (tt_hadvance_adjust): Emit correct
+ information.
+ (TT_Set_Var_Design): Fix typo.
+ (TT_Get_Var_Design): Fix typos.
+
+2016-12-29 Werner Lemberg
+
+ */*: Use `0.5f' for tracing 16.16 numbers.
+
+2016-12-29 Werner Lemberg
+
+ [pcf] Protect against gzip bombs.
+
+ Fix suggested by Kostya; reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=345
+
+ * src/pcf/pcfread.c (pcf_read_TOC): Limit number of TOC entries to
+ 1024.
+
+2016-12-28 Werner Lemberg
+
+ [psnames] Only declare, not define, data in `pstables.h' (#49949).
+
+ Pdfium includes `pstables.h' a second time; moving the definition
+ from `pstables.h' to `psmodule.c' saves more than 60kByte data
+ segment space for this case.
+
+ * src/tools/glnames.py (StringTable::dump,
+ StringTable::dump_sublist, dump_encoding, dump_array): Emit
+ additional code to only define tables if `DEFINE_PS_TABLES' is set.
+
+ * src/psnames/pstables.h: Regenerated.
+ * src/psnames/psmodule.c (DEFINE_PS_TABLES): Define.
+
+2016-12-28 Werner Lemberg
+
+ [cff] Catch `blend' op in non-variant fonts.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=334
+
+ * src/cff/cf2intrp.c (cf2_interpT2CharString) : Don't
+ allow `blend' op for non-variant fonts.
+
+2016-12-28 Werner Lemberg
+
+ [cff] Better check of number of blends.
+
+ * src/cff/cf2intrp.c (cf2_interpT2CharString) ,
+ src/cff/cffparse.c (cff_parse_blend): Compare number of blends with
+ stack size.
+
+2016-12-27 Werner Lemberg
+
+ Documentation updates.
+
+ * docs/CHANGES: Add missing information.
+
+ * docs/formats.txt: Rewritten and updated.
+
+2016-12-27 Werner Lemberg
+
+ [truetype, type1] Implement `FT_Get_Var_Design_Coordinates'.
+
+ * src/truetype/ttgxvar.c (TT_Get_Var_Design): Implement.
+ (TT_Set_Var_Design): Fix tracing.
+
+ * src/type1/t1load.c (T1_Get_Var_Design): Implement.
+
+2016-12-24 Werner Lemberg
+
+ * src/truetype/ttpload.c (tt_face_load_hdmx): Ignore `version'.
+
+ Problem reported by 張俊芝 <418092625@qq.com>.
+
+2016-12-24 Werner Lemberg
+
+ * src/sfnt/ttsbit.c (tt_face_load_sbit): Allow more version values.
+
+ Some fonts seem to have the `version' field in the wrong byte order.
+
+ Problem reported by 張俊芝 <418092625@qq.com>.
+
+2016-12-24 Werner Lemberg
+
+ * src/truetype/ttpload.c (tt_face_load_loca): Sanitize table length.
+
+ This trivial fix allows us to accept more fonts.
+
+ Problem reported by 張俊芝 <418092625@qq.com>.
+
+2016-12-24 Werner Lemberg
+
+ * src/sfnt/sfobjs.c (sfnt_init_face): Fix tracing.
+
+2016-12-22 Werner Lemberg
+
+ * CMakeLists.txt: Make it work with cmake 2.8.11.2 (#49909).
+
+2016-12-22 Werner Lemberg
+
+ Ensure used preprocessor symbols are defined (#49790).
+
+ * builds/unix/ftconfig.in, builds/vms/ftconfig.h,
+ include/freetype/config/ftconfig.h: Check `__GNUC__', `__IBMC__',
+ and `__SUNPRO_C' correctly.
+
+2016-12-22 Werner Lemberg
+
+ * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Check `count'.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=308
+
+2016-12-22 Werner Lemberg
+
+ [cff] Protect against invalid `vsindex' and `blend' values.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=305
+
+ * src/cff/cf2intrp.c (cf2_interpT2CharString) : Implement it.
+
+2016-12-22 Werner Lemberg
+
+ [ftfuzzer] Always use Adobe CFF engine.
+
+ * src/tools/ftfuzzer/ftfuzzer.cc (FT_Global::FT_Global): Implement
+ it.
+
+2016-12-21 Werner Lemberg
+
+ * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Thinko.
+
+ I should really stop coding late in the evening...
+
+ Thanks again to Ben for checking.
+
+2016-12-21 Werner Lemberg
+
+ [autofit] Support variation fonts.
+
+ (This ChangeLog entry was added later on.)
+
+ * src/autofit/afglobal.c (af_face_globals_free): Remove useless
+ code.
+
+ * src/base/ftmm.c (FT_Set_MM_Design_Coordinates,
+ * FT_Set_Var_Design_Coordinates, FT_Set_MM_Blend_Coordinates,
+ FT_Set_Var_Blend_Coordinates): Finalize
+ auto-hinter data to enforce recomputation. Note that this is a
+ brute-force method which should be improved.
+
+2016-12-21 Werner Lemberg
+
+ * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Thinko.
+
+ Don't apply deltas twice for non-phantom points.
+
+ Spotted by Ben Wagner.
+
+2016-12-21 Werner Lemberg
+
+ [cff, truetype] Another try for #49829.
+
+ * src/cff/cffdrivr.c: Don't include
+ `FT_SERVICE_METRICS_VARIATIONS_H'.
+ (cff_get_advances): Use `ttface->variation_support'.
+
+ * src/truetype/ttdriver.c (tt_get_advances): Use
+ `ttface->variation_support'.
+
+ * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
+ load_truetype_glyph): Use `ttface->variation_support'.
+
+2016-12-21 Werner Lemberg
+
+ [truetype, sfnt] Introduce font variation flags to `TT_Face'.
+
+ * include/freetype/internal/tttypes.h (TT_FACE_FLAG_VAR_XXX):
+ New macros describing available functionality of various OpenType
+ tables related to font variation.
+ (TT_Face): New fields `variation_support' and `mvar_support',
+ replacing and extending `use_fvar'.
+
+ * src/sfnt/sfobjs.c (sfnt_init_face, sfnt_load_face): Use
+ `variation_support'.
+
+ * src/truetype/ttgxvar.c (ft_var_load_hvar): Set `variation_support'
+ field.
+ (TT_Vary_Apply_Glyph_Deltas): Updated.
+
+2016-12-21 Werner Lemberg
+
+ [base] Improve sanity check for Mac resources (#49888).
+
+ * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Abort if `rlen' is not
+ positive.
+
+2016-12-20 Werner Lemberg
+
+ [base] More sanity checks for Mac resources.
+
+ We use
+
+ https://github.com/kreativekorp/ksfl/wiki/Macintosh-Resource-File-Format
+
+ and
+
+ https://developer.apple.com/legacy/library/documentation/mac/pdf/MoreMacintoshToolbox.pdf#page=151
+
+ as references.
+
+ * include/freetype/internal/ftrfork.h (FT_RFork_Ref): Use FT_Short
+ for `res_id'.
+
+ * src/base/ftrfork.c (FT_Raccess_Get_HeaderInfo): Extract map length
+ and use it to improve sanity checks.
+ Follow the specification more closely;in particular, all data types
+ are signed, not unsigned.
+ (FT_Raccess_Get_DataOffsets): Follow the specification more closely;
+ in particular, all data types are signed, not unsigned.
+ Add some sanity checks.
+
+2016-12-20 Werner Lemberg
+
+ [truetype] Improve logic for getting fast advance widths.
+
+ * src/cff/cffdrivr.c (cff_get_advances), src/truetype/ttdriver.c
+ (tt_get_advances): Use `is_default_instance' for test; this gets
+ recomputed after changing blend coordinates.
+
+2016-12-20 Ben Wagner
+ Werner Lemberg
+
+ [truetype] Fix linear metrics of GX variation fonts (#49829).
+
+ When asking for an unhinted non-default variations,
+ `linearVertAdvance' is currently the value from the `hmtx' table
+ instead of the actual value after applying the variation. `HVAR'
+ support fixes this, but fonts will exist without that table and will
+ need sane fallback.
+
+ Problem also reported as
+
+ https://bugs.chromium.org/p/skia/issues/detail?id=5917
+
+ * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
+ load_truetype_glyph): Implement linear advance adjustments if `HVAR'
+ or `VVAR' tables are missing.
+
+2016-12-20 Werner Lemberg
+
+ [cff, truetype] Fast advance width retrieval for fonts with HVAR.
+
+ Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT.
+
+ * src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Don't handle MM.
+
+ * src/cff/cffdrivr.c: Include FT_SERVICE_METRICS_VARIATIONS_H.
+ (cff_get_advances): Test for HVAR and VVAR.
+
+ * src/truetype/ttdriver.c (tt_get_advances): Test for HVAR and VVAR.
+
+2016-12-18 Werner Lemberg
+
+ [base] Fix invalid mac font recursion.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=304
+
+ * src/base/ftobjs.c (FT_Open_Face): Code moved to...
+ (ft_open_face_internal): ... this function.
+ Add a parameter to control whether we try special Mac font handling
+ in case of failure.
+ (FT_Open_Face, FT_New_Face, FT_New_Memory_Face,
+ open_face_from_buffer): Use `ft_open_face_internal'.
+
+2016-12-18 Werner Lemberg
+
+ * src/cff/cffobjs.c (cff_face_init): Make named instances work.
+
+2016-12-18 Werner Lemberg
+
+ [truetype, cff] Extend `get_var_blend' function of MM service.
+
+ In particular, we need access to named instance data.
+
+ * include/freetype/internal/services/svmm.h (FT_Get_Var_Blend_Func):
+ Add argument for `FT_MM_Var'.
+
+ * src/cff/cffload.c (cff_get_var_blend): Updated.
+ * src/cff/cffload.h: Updated.
+
+ * src/cff/cf2ft.c (cf2_getNormalizedVector): Updated.
+
+ * src/truetype/ttgxvar.c (tt_get_var_blend): Updated.
+ Accept value `NULL' for arguments.
+ * src/truetype/ttgxvar.h: Updated.
+
+2016-12-18 Werner Lemberg
+
+ [sfnt] Handle `fvar' with zero axes as a non-MM font.
+
+ This is better behaviour than exiting with an error.
+
+ * include/freetype/internal/tttypes.h (TT_Face): Add `use_fvar'
+ field.
+
+ * src/sfnt/sfobjs.c (sfnt_init_face): Compute `use_fvar', also
+ updating the validation code.
+ Use `use_fvar' to compute FT_FACE_FLAG_MULTIPLE_MASTERS.
+
+ * src/truetype/ttgxvar.c (TT_Get_MM_Var): Remove `fvar' validation
+ code.
+
+2016-12-18 Werner Lemberg
+
+ Minor GX code shuffling.
+
+ * include/freetype/internal/tttypes.h (TT_Face): Move
+ `is_default_instance' into TT_CONFIG_OPTION_GX_VAR_SUPPORT
+ block.
+
+ * src/sfnt/sfobjs.c (sfnt_init_face): Updated.
+ * src/truetype/ttgload.c (IS_DEFAULT_INSTANCE): New macro.
+ (TT_Load_Glyph): Use it.
+
+2016-12-18 Werner Lemberg
+
+ [cff] Better handling of non-CFF font formats.
+
+ * src/cff/cffload.c (cff_font_load): Pure CFFs don't have a
+ signature, so return `FT_Err_Unknown_File_Format' more often.
+
+2016-12-17 Werner Lemberg
+
+ * src/cff/cffload.c (cff_build_blend_vector): Remove redundant code.
+
+2016-12-17 Werner Lemberg
+
+ * src/truetype/ttobjs.c (tt_face_init): Simplify conditional code.
+
+2016-12-17 Werner Lemberg
+
+ [sfnt, truetype] Various sanitizing fixes.
+
+ * src/sfnt/sfobjs.c (sfnt_init_face): If the axis count in `fvar' is
+ zero, set `num_instances' to zero.
+
+ * src/truetype/ttgxvar.c (TT_Get_MM_Var): Handle `fvar' table with
+ zero axes as invalid.
+
+ * src/truetype/ttobjs.c (tt_face_init): Improve logic of loading
+ `loca', `cvt', `fpgm', and `prep' table.
+
+2016-12-17 Werner Lemberg
+
+ Improve tracing of `FT_Open_Face'.
+
+ * src/base/ftobjs.c (FT_Open_Face): Return info on number of
+ available faces and numbered instances, or the indices of the
+ requested face and numbered instance.
+
+ * src/sfnt/sfobjs. (sfnt_open_font): Trace number of subfonts.
+
+2016-12-17 Werner Lemberg
+
+ * src/cff/cffload.c (cff_load_private_dict): Always init `blend'.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=295
+
+2016-12-16 Werner Lemberg
+
+ [truetype] Fix `cvar' sanity test.
+
+ Reported by Dave Arnold.
+
+ * src/truetype/ttgxvar.c (tt_face_vary_cvt): Use tuple count mask.
+
+2016-12-16 Werner Lemberg
+
+ [cff, truetype] Remove compiler warnings; fix `make multi'.
+
+ * src/cff/cf2font.h: Include `cffload.h'.
+
+ * src/cff/cffload.c: Include FT_MULTIPLE_MASTERS_H and
+ FT_SERVICE_MULTIPLE_MASTERS_H.
+ (cff_vstore_load): Eliminate `vsSize'.
+ (cff_load_private_dict): Tag as `FT_LOCAL_DEF'.
+
+ * src/cff/cffload.h: Include `cffobjs.h'.
+ Provide declaration for `cff_load_private_dict'.
+
+ * src/truetype/ttgxvar.c (ft_var_load_hvar): Eliminate
+ `minorVersion' and `map_offset'.
+
+2016-12-16 Werner Lemberg
+
+ [cff] Fix heap buffer overflow (#49858).
+
+ * src/cff/cffparse.c (cff_parser_run): Add one more stack size
+ check.
+
+2016-12-15 Werner Lemberg
+
+ Fix clang warnings.
+
+ * src/cff/cffload.c (cff_blend_doBlend): Add cast.
+ (cff_subfont_load): Set `error' correctly.
+
+ * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
+
+2016-12-15 Dave Arnold
+ Werner Lemberg
+
+ [cff] Implement CFF2 support (2/2).
+
+ The font variation code. All parts dependent on the GX code in the
+ `truetype' module are guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT.
+ In other words, you can still compile the `cff' module without
+ defining TT_CONFIG_OPTION_GX_VAR_SUPPORT (which brings you CFF2
+ support without font variation).
+
+ * src/cff/cf2font.c (cf2_font_setup): Add support for font
+ variation.
+ * src/cff/cf2font.h (CF2_Font): Add fields for variation data.
+
+ * src/cff/cf2ft.c (cf2_free_instance): Free blend data.
+ (cf2_getVStore, cf2_getNormalizedVector): New functions.
+ * src/cff/cf2ft.h: Updated.
+
+ * src/cff/cf2intrp.c: Include `cffload.h'.
+ (cf2_cmdRESERVED_15, cf2_cmdRESERVED_16): Replace with...
+ (cf2_cmdVSINDEX, cf2_cmdBLEND): ... this new enum values.
+ (cf2_doBlend): New function.
+ (cf2_interpT2CharString): Handle `vsindex' and `blend' opcodes.
+
+ * src/cff/cffload.c (FT_fdot14ToFixed): New macro.
+ (cff_vstore_done, cff_vstore_load): New functions.
+ (cff_blend_clear, cff_blend_doBlend, cff_blend_build_vector,
+ cff_blend_check_vector): New functions.
+ (cff_load_private_dict): Add arguments for blend vector.
+ Handle blend data.
+ (cff_subfont_load, cff_subfont_done): Updated.
+ (cff_font_load): Handle CFF2 variation store data.
+ (cff_font_done): Updated.
+ * src/cff/cffload.h: Include `cffparse.h'.
+ Updated.
+
+ * src/cff/cffobjs.c (cff_face_done): Updated.
+
+ * src/cff/cffparse.c: Include `cffload.h'.
+ (cff_parse_num): Handle internal value 255.
+ (cff_parse_vsindex, cff_parse_blend): New functions.
+ (CFF_FIELD_BLEND): New macro.
+ (cff_parser_run): Updated.
+ * src/cff/cffparse.h (cff_kind_blend): New enum value.
+
+ * src/cff/cfftoken.h: Handle `vstore', `vsindex', and `blend'
+ dictionary values.
+
+ * src/cff/cfftypes.h (CFF_VarData, CFF_AxisCoords, CFF_VarRegion,
+ CFF_VStore, CFF_Blend): New structures.
+ (CFF_FontRecDict): Add `vstore_offset' field.
+ (CFF_Private): Add `vsindex' field.
+ (CFF_SubFont): Add fields for blend data.
+ (CFF_Font): Add `vstore' field.
+
+ * src/truetype/ttgxvar.c (TT_Get_MM_Var): `CFF2' is equal to `gvar',
+ since glyph variation data is directly embedded.
+ (TT_Set_MM_Blend): Don't load `gvar' table for CFF2 fonts.
+
+2016-12-15 Dave Arnold
+ Werner Lemberg
+
+ [cff] Implement CFF2 support (1/2).
+
+ This commit does not contain the blend code for font variation
+ support, which follows in another commit.
+
+ You should ignore whitespace while inspecting this commit.
+
+ * include/freetype/internal/tttypes.h (TT_Face): Add `isCFF2'
+ member.
+
+ * src/cff/cf2font.h (CF2_Font): Add `isCFF2' member.
+
+ * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Handle `isCFF2'
+ flag.
+ (cf2_getMaxstack): New function.
+ * src/cff/cf2ft.h: Updated.
+
+ * src/cff/cf2intrp.c (cf2_escRESERVED_38): New enum.
+ (cf2_interpT2CharString): Handle CFF2 differences.
+ Add tracing message for errors.
+
+ * src/cff/cffdrivr.c (cff_get_glyph_name, cff_get_name_index):
+ Update for CFF2.
+
+ * src/cff/cffload.c (FT_FIXED_ONE): New macro.
+ (cff_index_init, cff_index_load_offsets, cff_index_access_element,
+ cff_index_get_name, cff_ft_select_get, cff_load_private_dict,
+ cff_subfont_load, cff_font_load): Handle CFF2.
+ * src/cff/cffload.h: Updated.
+
+ * src/cff/cffobjs.c (cff_face_init): Handle CFF2.
+
+ * src/cff/cffparse.c (cff_parse_maxstack): New function.
+ (CFFCODE_TOPDICT, CFFCODE_PRIVATE): Removed
+ * src/cff/cffparse.h (CFF2_MAX_STACK, CFF2_DEFAULT_STACK): New
+ macros.
+ (CFF2_CODE_TOPDICT, CFF2_CODE_FONTDICT, CFF2_CODE_PRIVATE): New
+ macros.
+
+ * src/cff/cfftoken.h: Add fields for CFF2 dictionaries (but no blend
+ stuff).
+
+ * src/cff/cfftypes.h (CFF_Index): Add `hdr_size' field.
+ (CFF_FontRecDict): Add `maxstack' field.
+ (CFF_Private): Add `subfont' field.
+ (CFF_Font): Add `top_dict_length' and `cff2' fields.
+
+ * src/sfnt/sfobjs.c (sfnt_load_face): Handle `CFF2' table.
+
+2016-12-15 Werner Lemberg
+ Dave Arnold
+
+ [truetype] Provide HVAR advance width variation as a service.
+
+ Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT.
+
+ * src/truetype/ttdriver.c (tt_service_metrics_variations): Updated.
+
+ * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Prevent
+ double adjustment of advance width.
+
+ * src/sfnt/ttmtx.c: Include FT_SERVICE_METRICS_VARIATIONS_H.
+ (tt_face_get_metrics): Apply metrics variations.
+
+2016-12-15 Dave Arnold
+ Werner Lemberg
+
+ [truetype] Provide function to apply `HVAR' advance width variation.
+
+ Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT.
+
+ * src/truetype/ttgxvar.c (tt_hadvance_adjust): New function.
+ * src/truetype/ttgxvar.h: Updated.
+
+2016-12-15 Dave Arnold
+ Werner Lemberg
+
+ [truetype] Add `HVAR' table parsing.
+
+ Note that this is not complete yet; it only handles advance width
+ variation.
+
+ Activation of the code follows in another commit.
+
+ Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT.
+
+ * include/freetype/ftmm.h (FT_Var_Named_Style): Add `psid' member.
+
+ * src/truetype/ttgxvar.h (GX_HVarData, GX_AxisCoords, GX_HVarRegion,
+ GX_HVStore, GX_WidthMap): New auxiliary structures for...
+ (GX_HVarTable): ... HVAR main structure.
+ (GX_BlendRec): Add data for HVAR loading.
+
+ * src/truetype/ttgxvar.c (FT_FIXED_ONE, FT_fdot14ToFixed,
+ FT_intToFixed, FT_fixedToInt): New macros.
+ (ft_var_load_hvar): New function.
+ (TT_Get_MM_Var): Updated.
+ (tt_done_blend): Deallocate HVAR data.
+
+2016-12-15 Dave Arnold
+
+ [cff] Extend number parsing.
+
+ The forthcoming CFF2 support needs a dynamic parsing limit.
+
+ * src/cff/cffparse.c (cff_parse_num, do_fixed, cff_parse_fixed,
+ cff_parse_fixed_scaled, cff_parse_fixed_dynamic): Add argument for
+ parser.
+ (cff_parse_font_matrix, cff_parse_font_bbox, cff_parse_private_dict,
+ cff_parse_multiple_master, cff_parse_cid_ros, cff_parser_run): Updated.
+
+ * src/cff/cffparse.h (cff_parse_num): Export locally.
+
+2016-12-15 Dave Arnold
+
+ [cff] Implement dynamic stack size for Adobe engine.
+
+ This also adds `cf2_stack_setReal' and `cf2_stack_pop', needed for
+ the forthcoming CFF2 support.
+
+ * src/cff/cf2stack.c (cf2_stack_init): Add argument for stack size.
+ (cf2_stack_free): Deallocate stack.
+ (cf2_stack_count, cf2_stack_pushInt, cf2_stack_pushFixed,
+ cf2_stack_popInt, cf2_stack_popFixed, cf2_stack_getReal,
+ cf2_stack_clear): Updated.
+ (cf2_stack_setReal, cf2_stack_pop): New functions.
+
+ * src/cff/cf2stack.h (CF2_Stack): Add `stackSize' member.
+ Update function declarations.
+
+ * src/cff/cf2intrp.c (cf2_interpT2CharString): Updated.
+
+ * src/cff/cffparse.c (cff_parser_init): Add parameter for stack
+ size; return error code.
+ (cff_parser_done): New function.
+ (cff_parser_run): Updated.
+
+ * src/cff/cffparse.h (CFF_Parser): Add `stackSize' member and make
+ `stack' a pointer.
+ Update function declarations.
+
+ * src/cff/cffload.c (cff_load_private_dict, cff_subfont_load):
+ Updated.
+
+2016-12-15 Dave Arnold
+ Werner Lemberg
+
+ [cff] Code shuffling.
+
+ * src/cff/cfftypes.h (CFF_Font): Add `library' and `base_offset'
+ fields.
+
+ * src/cff/cffload.c (cff_subfont_load): Change last argument to
+ `CFF_Font'
+ Split off parsing of private dictionary into...
+ (cff_load_private_dict): ...this new function.
+ (cff_font_load): Updated.
+
+2016-12-14 Werner Lemberg
+
+ [sfnt, truetype] Add framework for Metrics Variations service.
+
+ No effect yet; service functions will be implemented later on.
+
+ Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT.
+
+ * include/freetype/internal/services/svmetric.h: New file.
+
+ * include/freetype/internal/ftserv.h
+ (FT_SERVICE_METRICS_VARIATIONS_H): New macro.
+
+ * include/freetype/internal/tttypes.h (TT_Face): New field `var'.
+
+ * src/sfnt/sfobjs.c: Include FT_SERVICE_METRICS_VARIATIONS_H.
+ (sfnt_init_face): Initialize `face->var'.
+
+ * src/truetype/ttdriver.c: Include FT_SERVICE_METRICS_VARIATIONS_H.
+ (tt_service_metrics_variations): New service.
+ (tt_services): Updated.
+
+ * src/truetype/ttpic.h: Updated.
+
+2016-12-14 Werner Lemberg
+
+ [cff] Add Multiple Masters service.
+
+ The code simply uses the MM functions from the `truetype' module.
+
+ Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT.
+
+ * include/freetype/internal/tttypes.h (TT_Face): New field `mm'.
+
+ * src/cff/cffdrivr.c: Include FT_SERVICE_MULTIPLE_MASTERS_H.
+ (cff_set_mm_blend, cff_get_mm_blend, cff_get_mm_var,
+ cff_set_var_design, cff_get_var_design): New functions.
+ (cff_service_multi_masters): New service.
+ (cff_services): Updated.
+
+ * src/cff/cffload.c (cff_get_var_blend, cff_done_blend): New
+ functions.
+ * src/cff/cffload.h: Updated.
+
+ * src/cff/cffpic.h (CFF_SERVICE_MULTI_MASTERS_GET): New macro.
+
+ * src/sfnt/sfobjs.c: Include FT_SERVICE_MULTIPLE_MASTERS_H.
+ (sfnt_init_face): Initialize `face->mm'.
+
+2016-12-14 Werner Lemberg
+
+ Extend functionality of `ft_module_get_service'.
+
+ It can now differentiate between local and global searches.
+
+ * src/base/ftobjs.c (ft_module_get_service): Add `global' argument.
+ (FT_Get_TrueType_Engine_Type): Updated.
+
+ * src/cff/cffdrivr.c (cff_get_ps_name, cff_get_cmap_info): Updated.
+
+ * include/freetype/internal/ftobjs.h: Updated.
+ * include/freetype/internal/ftserv.h (FT_FACE_FIND_GLOBAL_SERVICE):
+ Updated.
+
+2016-12-14 Werner Lemberg
+
+ * src/truetype/ttgxvar.c (tt_get_var_blend): Fix compiler warning.
+
+2016-12-14 Dave Arnold
+ Werner Lemberg
+
+ [sfnt, cff] Minor preparations.
+
+ * include/freetype/tttags.h (TTAG_CFF2, TTAG_HVAR, TTAG_MVAR,
+ TTAG_VVAR): New SFNT table tags.
+
+ * src/cff/cf2fixed.h (CF2_FIXED_ONE, CF2_FIXED_EPSILON): Add cast.
+
+2016-12-10 Werner Lemberg
+
+ [truetype, type1] Add `get_var_blend' to MM service.
+
+ For internal use; we want to share code between the forthcoming CFF2
+ support and TrueType.
+
+ * include/freetype/internal/services/svmm.h (FT_Get_Var_Blend_Func):
+ New typedef.
+ (MultiMasters): Add `get_var_blend'.
+ (FT_Service_MultiMasters): Updated.
+
+ * src/truetype/ttgxvar.c (tt_get_var_blend): New function.
+ * src/truetype/ttgxvar.h: Updated.
+
+ * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated.
+ * src/type1/t1driver.c (t1_service_multi_masters): Updated.
+
+2016-12-10 Werner Lemberg
+
+ [truetype, type1] Add `done_blend' to MM service.
+
+ For internal use; we want to share code between the forthcoming CFF2
+ support and TrueType.
+
+ * include/freetype/internal/services/svmm.h (FT_Done_Blend_Func):
+ New typedef.
+ (MultiMasters): Add `done_blend'.
+ (FT_Service_MultiMasters): Updated.
+
+ * src/truetype/ttgxvar.c (tt_done_blend): Use `TT_Face' as argument.
+ * src/truetype/ttgxvar.h: Updated.
+
+ * src/truetype/ttobjs.c (TT_Face_Done): Updated.
+
+ * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated.
+ * src/type1/t1driver.c (t1_service_multi_masters): Updated.
+
+2016-12-09 Werner Lemberg
+
+ [sfnt] Revert change from 2016-12-08.
+
+ I missed the functionality of `ft_module_get_service', which makes
+ the change unnecessary.
+
+2016-12-08 Werner Lemberg
+
+ Add framework to support services with 8 functions.
+
+ We will need this for CFF variation font support.
+
+ * include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC8):
+ New macro.
+
+2016-12-08 Werner Lemberg
+
+ [sfnt] Add `get_glyph_name' and `get_name_index' to SFNT interface.
+
+ CFF2 fonts will need access to those two functions.
+
+ * include/freetype/internal/sfnt.h: Include FT_SERVICE_GLYPH_DICT_H.
+ (SFNT_Interface): Add `get_glyph_name' and `get_name_index' members.
+ (FT_DEFINE_SFNT_INTERFACE): Updated.
+
+ * src/sfnt/sfdriver.c (sfnt_get_glyph_name, sfnt_get_name_index):
+ Fix signatures to exactly correspond to the glyph dict service
+ function typedefs.
+ (sfnt_interface): Updated.
+
+2016-12-06 Dave Arnold
+
+ Add `FT_Get_Var_Design_Coordinates' function.
+
+ Note that the low-level functions aren't implemented yet.
+
+ * include/freetype/ftmm.h: Declare.
+
+ * include/freetype/internal/services/svmm.h
+ (FT_Get_Var_Design_Func): New typedef.
+ (MultiMasters): New MM service function `get_var_design'.
+ (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
+ Update all callers.
+
+ * src/base/ftmm.c (FT_Get_Var_Design_Coordinates): Implement.
+
+ * src/truetype/ttdriver.c: Updated.
+
+ * src/truetype/ttgxvar.c (TT_Get_Var_Design): New dummy function to
+ handle `get_var_design' service.
+ * src/truetype/ttgxvar.h: Updated.
+
+ * src/type1/t1driver.c: Updated.
+
+ * src/type1/t1load.c (T1_Get_Var_Design): New dummp function to
+ handle `get_var_design' service.
+ * src/type1/t1load.h: Updated.
+
+2016-12-06 Werner Lemberg
+
+ * src/type1/t1load.c (parse_subrs): Fix memory leak.
+
+ The `subrs' keyword might erroneously occur multiple times.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=231
+
+2016-12-01 Werner Lemberg
+
+ [gzip] Improve building with external zlib (#49673).
+
+ Building FreeType with external zlib 1.2.8 makes msvc 14 stop with
+ the following error.
+
+ ftgzip.c
+ zlib-1.2.8\zlib.h(86): error C2061:
+ syntax error: identifier 'z_const'
+ zlib-1.2.8\zlib.h(94): error C2054:
+ expected '(' to follow 'z_const'
+ zlib-1.2.8\zlib.h(94): error C2085:
+ 'msg': not in formal parameter list
+ ...
+ zlib-1.2.8\zlib.h(877): fatal error C1003:
+ error count exceeds 100; stopping compilation
+
+ The error happens because FreeType keeps an own copy of zlib-1.1.4
+ under `src/gzip'. When building `src/gzip/ftgzip.c' with
+ FT_CONFIG_OPTION_SYSTEM_ZLIB defined, it uses
+
+ #include
+
+ which correctly finds an external `zlib.h', but `zlib.h' itself has
+ a line
+
+ #include "zconf.h"
+
+ which makes Visual Studio 2015 find `src/gzip/zconf.h' while
+ compiling the files in `src/gzip'.
+
+ * src/gzip/zconf.h: Rename to...
+ * src/gzip/ftzconf.h: ... this.
+ * src/gzip/zlib.h, src/gzip/rules.mk (GZIP_DRV_SRCS): Updated.
+
+2016-12-01 Oleksandr Chekhovskyi
+
+ [autofit] Fix Emscripten crash (patch #9180).
+
+ Function calls through pointers must use a matching signature to
+ work on Emscripten, since such calls are dispatched through lookup
+ tables grouped by signature.
+
+ * src/autofit/aftypes.h (AF_WritingSystem_ApplyHintsFunc): Fix
+ typedef.
+
+2016-11-29 Werner Lemberg
+
+ [smooth] Revert previous commit. Already fixed with 6ca54c64.
+
+2016-11-29 Werner Lemberg
+
+ [smooth] Avoid conditional jump on uninitialized value (#49711).
+
+ * src/smooth/ftgrays.c (gray_raster_render): Initialize `worker'.
+
+2016-11-27 Nikolaus Waxweiler
+
+ [autofit] Code shuffling.
+
+ Also improve some comments and remove unused code.
+
+ No functional change.
+
+ * src/autofit/afloader.c (af_loader_load_g): Merged with...
+ (af_loader_load_glyph): ...this function.
+ Split off emboldening code into...
+ (af_loader_embolden_glyph_in_slot): ... this function.
+
+2016-11-17 Werner Lemberg
+
+ Better support of LLP64 systems with gcc (and clang).
+
+ * builds/unix/configure.raw: Call `AC_TYPE_LONG_LONG_INT'.
+
+ * builds/unix/ftconfig.in (FT_LONG64): Enable for LLP64 systems (and
+ suppress warnings) even without `FT_CONFIG_OPTION_FORCE_INT64'.
+
+2016-11-10 Werner Lemberg
+
+ Fix `lcd_weights' array size.
+
+ * include/freetype/internal/ftobjs.h (FT_LibraryRec): Do it.
+
+ Reported by Nikolaus.
+
+2016-11-06 Werner Lemberg
+
+ * src/base/ftobjs.c (FT_Render_Glyph_Internal): Fix tracing.
+
+2016-11-06 Werner Lemberg
+
+ [sfnt] Improve FT_LOAD_BITMAP_METRICS_ONLY for `sbix' format.
+
+ It's unavoidable to call the PNG engine, but to get the metrics it
+ is sufficient to read the PNG image's header only.
+
+ * src/sfnt/pngshim.c (Load_SBit_Png): Add argument to control the
+ allocation of the glyph slot.
+ * src/sfnt/pngshim.h: Updated.
+ * src/sfnt/ttsbit.c (tt_sbit_decoder_load_png,
+ tt_face_load_sbix_image, tt_face_load_sbit_image): Updated.
+
+2016-11-06 Werner Lemberg
+
+ [sfnt] Speed up `sbix' lookup.
+
+ This also fixes a bug introduced in 2016-10-01 which prevents
+ display of embedded bitmap fonts that use the `sbix' format.
+
+ * src/sfnt/ttsbit.c (tt_face_load_sbit): Store `sbix' size and
+ offset also in `ebdt_size' and `ebdt_start', respectively. This
+ makes the test for an embedded bitmap data table succeed for this
+ format.
+
+ (tt_face_load_strike_metrics) : Use
+ `ebdt_size' and `ebdt_start'
+ (tt_face_load_sbix_image): Ditto.
+
+2016-11-06 Seigo Nonaka
+ Werner Lemberg
+
+ Introduce a way of quickly retrieving (embedded) bitmap metrics.
+
+ `FT_Load_Glyph' doesn't generate a bitmap for a non-bitmap glyph
+ until the user calls `FT_Render_Glyph'. However, it always
+ allocates memory for bitmaps and copies or decodes the contents of a
+ bitmap glyph, which can be quite slow for PNG data.
+
+ * include/freetype/freetype.h (FT_LOAD_BITMAP_METRICS_ONLY): New
+ macro.
+
+ * src/base/ftobjs.c (FT_Load_Glyph): Unset FT_LOAD_RENDER if
+ FT_LOAD_BITMAP_METRICS_ONLY is used.
+
+ * src/sfnt/ttsbit.c (tt_sbit_decoder_alloc_bitmap,
+ tt_sbit_decoder_load_bitmap): Add argument to control allocation of
+ the glyph slot.
+ (tt_sbit_decoder_load_image, tt_sbit_decoder_load_compound,
+ tt_face_load_sbit_image): Updated.
+
+ * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Quickly exit if
+ `FT_LOAD_BITMAP_METRICS_ONLY' is set.
+
+ * src/pfr/pfrsbit.c, src/pfr/pfrsbit.h (pfr_slot_load_bitmap): Add
+ argument to control allocation of the glyph slot.
+ * src/pfr/pfrobjs (pfr_slot_load): Updated.
+
+ * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto.
+
+ * docs/CHANGES: Updated.
+
+2016-11-06 Werner Lemberg
+
+ Synchronize with gnulib (#49448).
+
+ * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in,
+ builds/vms/ftconfig.h (FT_TYPEOF): Update code to use definition in
+ current version of `intprops.h'.
+ Other minor synchronization to reduce code differences between the
+ three files.
+
+2016-11-03 Behdad Esfahbod
+
+ [truetype] Clamp variation requests to valid range.
+
+ This is required by OpenType 1.8; it also avoids rounding surprises.
+
+ * src/truetype/ttgxvar.c (TT_Set_Var_Design): Clamp design coordinates
+ outside of the allowed range to always stay within the range instead
+ of producing an error.
+
+2016-10-29 Werner Lemberg
+
+ [truetype] Remove clang warnings.
+
+ * src/truetype/ttinterp.h (TT_ExecContextRec): Using `FT_ULong' for
+ loop counter handling.
+
+ * src/truetype/ttinterp.c: Updated.
+ (Ins_SCANTYPE): Use signed constant.
+ (TT_RunIns): Ensure `num_twilight_points' is 16bit.
+
+2016-10-27 Werner Lemberg
+
+ [truetype] Fix commit from 2014-11-24.
+
+ Problem reported by Hin-Tak Leung .
+
+ * src/truetype/ttpload.c (tt_face_load_hdmx): Fix file checking
+ logic.
+
+2016-10-26 Werner Lemberg
+
+ Add `FT_Get_{MM,Var}_Blend_Coordinates' functions.
+
+ * include/freetype/ftmm.h: Declare.
+
+ * include/freetype/internal/services/svmm.h (FT_Get_MM_Blend_Func):
+ New typedef.
+ (MultiMasters): New MM service function `get_mm_blend'.
+ (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
+ Update all callers.
+
+ * src/base/ftmm.c (FT_Get_MM_Blend_Coordinates,
+ FT_Get_Var_Blend_Coordinates): Implement.
+
+ * src/truetype/ttdriver.c: Updated.
+
+ * src/truetype/ttgxvar.c (TT_Get_MM_Blend): New function to handle
+ `get_mm_blend' service.
+ * src/truetype/ttgxvar.h: Updated.
+
+ * src/type1/t1driver.c: Updated.
+
+ * src/type1/t1load.c (T1_Get_MM_Blend): New function to handle
+ `get_mm_blend' service.
+ * src/type1/t1load.h: Updated.
+
+ * docs/CHANGES: Document.
+
+2016-10-26 Werner Lemberg
+
+ * src/type1/t1load.c (parse_subrs): Fix limit check.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=81
+
+2016-10-25 Alexei Podtelezhnikov
+
+ [cff] Correct cmap format reporting (#24819).
+
+ * src/cff/cffdrivr.c (cff_get_cmap_info): Throw an error on synthetic
+ charmap instead of guessing its format and language.
+
+2016-10-22 Werner Lemberg
+
+ [truetype] Fix SCANTYPE instruction (#49394).
+
+ * src/truetype/ttinterp.c (Ins_SCANTYPE): Only use lower 16bits.
+
+2016-10-22 Werner Lemberg
+
+ [sfnt] Improve handling of invalid post 2.5 tables [#49393].
+
+ * src/sfnt/ttpost.c (load_format_25): We need at least a single
+ table entry.
+
+2016-10-14 Werner Lemberg
+
+ [truetype] Fix handling of `cvar' table data.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53
+
+ * src/truetype/ttgxvar.c (tt_face_vary_cvt): Ignore invalid CVT
+ indices.
+
+2016-10-11 Werner Lemberg
+
+ [psaux] Fix handling of invalid flex subrs.
+
+ Problem reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52
+
+ * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
+ : Set `flex_state' after error checking.
+
+2016-10-11 Werner Lemberg
+
+ * src/truetype/ttgxvar.c (tt_done_blend): Fix deallocation.
+
+2016-10-08 Werner Lemberg
+
+ * src/cid/cidload.c (cid_face_open): Properly propagate `error'.
+
+2016-10-08 Werner Lemberg
+
+ [cid] Fix parsing of subr offsets.
+
+ Bug introduced 2016-05-16.
+
+ * src/cid/cidparse.c (cid_parser_new): Fix off-by-one error.
+
+2016-10-01 Werner Lemberg
+
+ [sfnt] Disable bitmap strikes if we don't have a bitmap data table.
+
+ * src/sfnt/ttsbit.c (tt_face_load_sbit): Check whether we have
+ a bitmap data table.
+
+2016-10-01 Alexei Podtelezhnikov
+
+ [smooth] Remove impossibility.
+
+ * src/smooth/ftgrays.c (TWorker): Rearrange fields.
+ (gray_convert_glyph): Remove impossible condition and clean up.
+
+2016-09-29 Werner Lemberg
+
+ [pcf] Enrich family name with foundry name and glyph width info.
+
+ This is a very old patch from openSuSE (from 2006, submitted to
+ FreeType in 2011) that I forgot to apply.
+
+ https://build.opensuse.org/package/view_file/openSUSE:Factory/freetype2/freetype2-bitmap-foundry.patch
+
+ Prepend the foundry name plus a space to the family name. There are
+ many fonts just called `Fixed' which look completely different, and
+ which have nothing to do with each other. When selecting `Fixed' in
+ KDE or Gnome one gets results that appear rather random, the style
+ changes often if one changes the size and one cannot select some
+ fonts at all.
+
+ We also check whether we have `wide' characters; all put together,
+ we get family names like `Sony Fixed' or `Misc Fixed Wide'.
+
+ * src/pcf/pcfread.c (pcf_load_font): Implement it.
+
+ * docs/CHANGES: Document it.
+
+2016-09-29 Werner Lemberg
+
+ [ftfuzzer] Speed up.
+
+ * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Don't
+ check for embedded bitmaps if we have a non-default instance.
+
+2016-09-29 Werner Lemberg
+
+ [truetype] Disallow bitmap strokes for non-default instances.
+
+ Also speed up access of default instances if GX variations are
+ active.
+
+ * include/freetype/internal/tttypes.h (TT_FaceRec): Add
+ `is_default_instance' member.
+
+ * src/sfnt/sfobjs.c (sfnt_init_face): Initialize
+ `is_default_instance'.
+
+ * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
+ load_truetype_glyph): Add test for default instance.
+ (TT_Load_Glyph): Load embedded bitmaps for default instance only.
+
+ * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Compute
+ `is_default_instance'.
+
+2016-09-29 Werner Lemberg
+
+ [truetype] Clean up `TT_Face' structure.
+
+ * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
+ fields `horz_metrics' and `vert_metrics'.
+ Update documentation.
+
+ * src/sfnt/sfobjs.c (sfnt_done_face): Updated.
+
+2016-09-28 Werner Lemberg
+
+ More FT_ZERO usage.
+
+ * src/gxvalid/gxvcommn.c (gxv_ClassTable_validate):
+ s/ft_memset/FT_MEM_ZERO/.
+
+ * src/psaux/t1decode.c (t1_decoder_parse_charstrings):
+ s/ft_memset/FT_ARRAY_ZERO/.
+
+ * src/raster/ftraster.c (FT_ZERO): Define.
+ (ft_black_new): Use it.
+ * src/raster/ftrend1.c (ft_raster1_get_cbox):
+ s/FT_MEM_ZERO/FT_ZERO/.
+
+ * src/smooth/ftgrays.c (FT_ZERO): Define.
+ (gray_raster_new): Use it.
+ * src/smooth/ftsmooth.c (ft_smooth_get_cbox):
+ s/FT_MEM_ZERO/FT_ZERO/.
+
+2016-09-28 Werner Lemberg
+
+ */*: s/FT_MEM_ZERO/FT_ZERO/ where appropriate.
+
+2016-09-27 Werner Lemberg
+
+ [truetype] Trace number of executed opcodes.
+
+ * src/truetype/ttinterp.c (TT_RunIns): Implement it.
+
+2016-09-27 Werner Lemberg
+
+ [truetype] Speed up `TT_Load_Glyph'.
+
+ This avoids additional calls to `tt_face_lookup_table' for the
+ `glyf' table, which can be expensive.
+
+ * include/freetype/internal/tttypes.h (TT_LoaderRec): Move
+ `glyf_offset' field to ...
+ (TT_FaceRec): ... this structure.
+ * src/truetype/ttgload.c (load_truetype_glyph): Updated.
+ (tt_loader_init): Move initialization of `glyf_offset' to ...
+ * src/truetype/ttpload.c (tt_face_load_loca): ... this function.
+
+2016-09-27 Werner Lemberg
+
+ [truetype] Introduce dynamic limits for some bytecode opcodes.
+
+ This speeds up FreeType's handling of malformed fonts.
+
+ * src/truetype/ttinterp.c (TT_RunIns): Set up limits for the number
+ of twilight points, the total number of negative jumps, and the
+ total number of loops in LOOPCALL opcodes. The values are based on
+ the number of points and entries in the CVT table.
+ (Ins_JMPR): Test negative jump counter.
+ (Ins_LOOPCALL): Test loopcall counter.
+
+ * src/truetype/ttinterp.h (TT_ExecContext): Updated.
+
+ * docs/CHANGES: Updated.
+
+2016-09-25 Werner Lemberg
+
+ [truetype] Sanitize only last entry of `loca' table.
+
+ Without this patch, a loca sequence like `0 100000 0 100000 ...',
+ where value 100000 is larger than the `glyf' table size, makes
+ FreeType handle the whole `glyf' table as a single glyph again and
+ again, which is certainly invalid (and can be very slow, too).
+
+ * src/truetype/ttpload.c (tt_face_get_location): Implement.
+ Improve tracing messages.
+
+2016-09-25 Werner Lemberg
+
+ * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Fix typo.
+
+2016-09-24 Werner Lemberg
+
+ [autofit] Tracing fixes.
+
+ * src/autofit/afmodule.c (af_autofitter_load_glyph): Call dumping
+ functions only if we actually do tracing.
+
+2016-09-22 Alexei Podtelezhnikov
+
+ [smooth] Reduce divisions in the line renderer.
+
+ We don't need some divisions if a line segments stays within a single
+ row or a single column of pixels.
+
+ * src/smooth/ftgrays.c (gray_render_line) [FT_LONG64]: Make divisions
+ conditional.
+
+2016-09-15 Alexei Podtelezhnikov
+
+ * src/smooth/ftgrays.c (gray_sweep): Remove check for empty table.
+
+2016-09-14 Alexei Podtelezhnikov
+
+ [smooth] Another tiny speed-up.
+
+ * src/smooth/ftgrays.c (gray_find_cell): Merge into...
+ (gray_record_cell): ... this function.
+
+2016-09-11 Alexei Podtelezhnikov
+
+ * src/smooth/ftgrays.c (gray_{find,set}_cell): Remove dubious code.
+
+2016-09-11 Alexei Podtelezhnikov
+
+ [smooth] Fix valgrind warning and reoptimize.
+
+ The algorithm calls `gray_set_cell' at the start of each new contour
+ or when the contours cross the cell boundaries. Double-checking for
+ that is wasteful.
+
+ * src/smooth/ftgrays.c (gray_set_cell): Remove check for a new cell.
+ (gray_convert_glyph): Remove initialization introduced by 44b172e88.
+
+2016-09-10 Werner Lemberg
+
+ [sfnt] Fix previous commit.
+
+ Problems reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40
+
+ We now map the strike index right before accessing the physical
+ data, not earlier.
+
+ * src/sfnt/sfobjs.c (sfnt_load_face): Set `face->sbit_strike_map'
+ after creating the map so that...
+
+ * src/sfnt/ttsbit.c (tt_face_load_strike_metrics): ... this function
+ can be used before and after setting up `sbit_strike_map'.
+ (tt_face_set_sbit_strike): Revert change.
+ (tt_sbit_decoder_init, tt_face_load_sbix_image): Map strike index.
+
+ * src/truetype/ttdriver.c (tt_size_select): Revert change.
+
+2016-09-09 Werner Lemberg
+
+ [ftfuzzer] Minor improvements.
+
+ * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Ignore
+ invalid strikes.
+ Use better values for call to `FT_Set_Char_Size'.
+
+2016-09-09 Werner Lemberg
+
+ [sfnt] Don't provide (completely) broken strike data.
+
+ FreeType tries to sanitize strike header data; we now reject
+ completely broken ones.
+
+ * include/freetype/internal/tttypes.h (TT_FaceRec): New
+ `sbit_strike_map' array pointer.
+
+ * src/base/ftobjs.c (FT_Match_Size): Reject matches where either
+ width or height would be zero.
+ Add tracing message in case of error.
+
+ * src/sfnt/sfobjs.c (sfnt_load_face): Populate `sbit_strike_map',
+ only using (more or less) valid strike header data for
+ FT_Face's `available_sizes' array.
+ (sfnt_done_face): Updated.
+
+ * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Use
+ `sbit_strike_map'.
+ (tt_face_load_strike_metrics): Improve tracing.
+
+ * src/truetype/ttdriver.c (tt_size_select): Use `sbit_strike_map'.
+
2016-09-08 Werner Lemberg
* Version 2.7 released.
diff --git a/Build/source/libs/freetype2/freetype-src/Jamfile b/Build/source/libs/freetype2/freetype-src/Jamfile
index 94231e4a76d..581241758f8 100644
--- a/Build/source/libs/freetype2/freetype-src/Jamfile
+++ b/Build/source/libs/freetype2/freetype-src/Jamfile
@@ -210,7 +210,7 @@ actions RefDoc
{
python $(FT2_SRC)/tools/docmaker/docmaker.py
--prefix=ft2
- --title=FreeType-2.7
+ --title=FreeType-2.7.1
--output=$(DOC_DIR)
$(FT2_INCLUDE)/freetype/*.h
$(FT2_INCLUDE)/freetype/config/*.h
diff --git a/Build/source/libs/freetype2/freetype-src/README b/Build/source/libs/freetype2/freetype-src/README
index 5a49290bb22..097024c6e9b 100644
--- a/Build/source/libs/freetype2/freetype-src/README
+++ b/Build/source/libs/freetype2/freetype-src/README
@@ -1,5 +1,5 @@
- FreeType 2.7
- ============
+ FreeType 2.7.1
+ ==============
Homepage: http://www.freetype.org
@@ -24,9 +24,9 @@
and download one of the following files.
- freetype-doc-2.7.tar.bz2
- freetype-doc-2.7.tar.gz
- ftdoc27.zip
+ freetype-doc-2.7.1.tar.bz2
+ freetype-doc-2.7.1.tar.gz
+ ftdoc271.zip
To view the documentation online, go to
diff --git a/Build/source/libs/freetype2/freetype-src/builds/mac/ftmac.c b/Build/source/libs/freetype2/freetype-src/builds/mac/ftmac.c
index 4691deda045..cbb3cd73175 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/mac/ftmac.c
+++ b/Build/source/libs/freetype2/freetype-src/builds/mac/ftmac.c
@@ -940,7 +940,7 @@ typedef short ResourceIndex;
{
err = lookup_lwfn_by_fond( pathname, lwfn_file_name,
buff, sizeof ( buff ) );
- if ( FT_Err_Ok == err )
+ if ( !err )
have_lwfn = 1;
}
@@ -1217,7 +1217,7 @@ typedef short ResourceIndex;
}
CloseResFile( res_ref );
- if ( FT_Err_Ok == error && NULL != aface )
+ if ( !error && aface )
(*aface)->num_faces = num_faces_in_res;
return error;
}
@@ -1279,7 +1279,7 @@ typedef short ResourceIndex;
error = lookup_lwfn_by_fond( path_fond, lwfn_file_name,
path_lwfn, sizeof ( path_lwfn ) );
- if ( FT_Err_Ok == error )
+ if ( !error )
have_lwfn = 1;
}
@@ -1315,7 +1315,7 @@ typedef short ResourceIndex;
error = lookup_lwfn_by_fond( path_fond, lwfn_file_name,
path_lwfn, sizeof ( path_lwfn ) );
- if ( FT_Err_Ok == error )
+ if ( !error )
have_lwfn = 1;
}
@@ -1332,7 +1332,7 @@ typedef short ResourceIndex;
error = FT_ERR( Unknown_File_Format );
found_no_lwfn_file:
- if ( have_sfnt && FT_Err_Ok != error )
+ if ( have_sfnt && error )
error = FT_New_Face_From_SFNT( library,
sfnt_id,
face_index,
@@ -1363,7 +1363,7 @@ typedef short ResourceIndex;
/* if it works, fine. */
error = FT_New_Face_From_Suitcase( library, pathname, face_index, aface );
- if ( error == 0 )
+ if ( !error )
return error;
/* let it fall through to normal loader (.ttf, .otf, etc.); */
@@ -1403,7 +1403,7 @@ typedef short ResourceIndex;
/* try resourcefork based font: LWFN, FFIL */
error = FT_New_Face_From_Resource( library, (UInt8 *)pathname,
face_index, aface );
- if ( error != 0 || *aface != NULL )
+ if ( error || *aface )
return error;
/* let it fall through to normal loader (.ttf, .otf, etc.) */
@@ -1458,7 +1458,7 @@ typedef short ResourceIndex;
error = FT_ERR( Cannot_Open_Resource );
error = FT_New_Face_From_Resource( library, pathname, face_index, aface );
- if ( error != 0 || *aface != NULL )
+ if ( error || *aface )
return error;
/* fallback to datafork font */
@@ -1515,7 +1515,7 @@ typedef short ResourceIndex;
error = FT_ERR( Cannot_Open_Resource );
error = FT_New_Face_From_Resource( library, pathname, face_index, aface );
- if ( error != 0 || *aface != NULL )
+ if ( error || *aface )
return error;
/* fallback to datafork font */
diff --git a/Build/source/libs/freetype2/freetype-src/builds/unix/aclocal.m4 b/Build/source/libs/freetype2/freetype-src/builds/unix/aclocal.m4
index 0a8c94d3881..eb7517a932c 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/unix/aclocal.m4
+++ b/Build/source/libs/freetype2/freetype-src/builds/unix/aclocal.m4
@@ -8360,6 +8360,120 @@ _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
[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
+ @%:@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
diff --git a/Build/source/libs/freetype2/freetype-src/builds/unix/config.sub b/Build/source/libs/freetype2/freetype-src/builds/unix/config.sub
index 62b82599d98..a2a01128b53 100755
--- a/Build/source/libs/freetype2/freetype-src/builds/unix/config.sub
+++ b/Build/source/libs/freetype2/freetype-src/builds/unix/config.sub
@@ -2,7 +2,7 @@
# Configuration validation subroutine script.
# Copyright 1992-2016 Free Software Foundation, Inc.
-timestamp='2016-12-24'
+timestamp='2016-11-19'
# 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
@@ -1409,7 +1409,7 @@ case $os in
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
- | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
+ | -onefs* | -tirtos* | -phoenix* | -fuchsia*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
diff --git a/Build/source/libs/freetype2/freetype-src/builds/unix/configure b/Build/source/libs/freetype2/freetype-src/builds/unix/configure
index 6190d709e76..831e33643bc 100755
--- a/Build/source/libs/freetype2/freetype-src/builds/unix/configure
+++ b/Build/source/libs/freetype2/freetype-src/builds/unix/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for FreeType 2.7.
+# Generated by GNU Autoconf 2.69 for FreeType 2.7.1.
#
# Report bugs to .
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='FreeType'
PACKAGE_TARNAME='freetype'
-PACKAGE_VERSION='2.7'
-PACKAGE_STRING='FreeType 2.7'
+PACKAGE_VERSION='2.7.1'
+PACKAGE_STRING='FreeType 2.7.1'
PACKAGE_BUGREPORT='freetype@nongnu.org'
PACKAGE_URL=''
@@ -1329,7 +1329,7 @@ if test "$ac_init_help" = "long"; then
# 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.7 to adapt to many kinds of systems.
+\`configure' configures FreeType 2.7.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1394,7 +1394,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of FreeType 2.7:";;
+ short | recursive ) echo "Configuration of FreeType 2.7.1:";;
esac
cat <<\_ACEOF
@@ -1541,7 +1541,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-FreeType configure 2.7
+FreeType configure 2.7.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2139,7 +2139,7 @@ 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.7, which was
+It was created by FreeType $as_me 2.7.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2495,7 +2495,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
# Don't forget to update `docs/VERSIONS.TXT'!
-version_info='18:6:12'
+version_info='19:0:13'
ft_version=`echo $version_info | tr : .`
@@ -12443,6 +12443,123 @@ _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
+ #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.in works
@@ -14900,7 +15017,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# 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.7, which was
+This file was extended by FreeType $as_me 2.7.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -14966,7 +15083,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-FreeType config.status 2.7
+FreeType config.status 2.7.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/Build/source/libs/freetype2/freetype-src/builds/unix/configure.ac b/Build/source/libs/freetype2/freetype-src/builds/unix/configure.ac
index 690be765fe5..85701617d08 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/unix/configure.ac
+++ b/Build/source/libs/freetype2/freetype-src/builds/unix/configure.ac
@@ -11,13 +11,13 @@
# indicate that you have read the license and understand and accept it
# fully.
-AC_INIT([FreeType], [2.7], [freetype@nongnu.org], [freetype])
+AC_INIT([FreeType], [2.7.1], [freetype@nongnu.org], [freetype])
AC_CONFIG_SRCDIR([ftconfig.in])
# Don't forget to update `docs/VERSIONS.TXT'!
-version_info='18:6:12'
+version_info='19:0:13'
AC_SUBST([version_info])
ft_version=`echo $version_info | tr : .`
AC_SUBST([ft_version])
@@ -105,6 +105,7 @@ AC_CHECK_HEADERS([fcntl.h unistd.h])
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.in works
diff --git a/Build/source/libs/freetype2/freetype-src/builds/unix/configure.raw b/Build/source/libs/freetype2/freetype-src/builds/unix/configure.raw
index 72dd2ae6a80..33deed647d2 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/unix/configure.raw
+++ b/Build/source/libs/freetype2/freetype-src/builds/unix/configure.raw
@@ -17,7 +17,7 @@ AC_CONFIG_SRCDIR([ftconfig.in])
# Don't forget to update `docs/VERSIONS.TXT'!
-version_info='18:6:12'
+version_info='19:0:13'
AC_SUBST([version_info])
ft_version=`echo $version_info | tr : .`
AC_SUBST([ft_version])
@@ -105,6 +105,7 @@ AC_CHECK_HEADERS([fcntl.h unistd.h])
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.in works
diff --git a/Build/source/libs/freetype2/freetype-src/builds/unix/ftconfig.in b/Build/source/libs/freetype2/freetype-src/builds/unix/ftconfig.in
index fbb1c147411..6401f657cea 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/unix/ftconfig.in
+++ b/Build/source/libs/freetype2/freetype-src/builds/unix/ftconfig.in
@@ -287,8 +287,8 @@ FT_BEGIN_HEADER
#endif
- /* determine whether we have a 64-bit int type for platforms without */
- /* Autoconf */
+ /* determine whether we have a 64-bit int type */
+ /* (mostly for environments without `autoconf') */
#if FT_SIZEOF_LONG == 8
/* FT_LONG64 must be defined if a 64-bit type is available */
@@ -296,6 +296,16 @@ FT_BEGIN_HEADER
#define FT_INT64 long
#define FT_UINT64 unsigned long
+ /* we handle the LLP64 scheme separately for GCC and clang, */
+ /* suppressing the `long long' warning */
+#elif ( FT_SIZEOF_LONG == 4 ) && \
+ defined( HAVE_LONG_LONG_INT ) && \
+ defined( __GNUC__ )
+#pragma GCC diagnostic ignored "-Wlong-long"
+#define FT_LONG64
+#define FT_INT64 long long int
+#define FT_UINT64 unsigned long long int
+
/*************************************************************************/
/* */
/* A 64-bit data type may create compilation problems if you compile */
@@ -368,10 +378,11 @@ FT_BEGIN_HEADER
/* typeof condition taken from gnulib's `intprops.h' header file */
-#if ( __GNUC__ >= 2 || \
- defined( __IBM__TYPEOF__ ) || \
- ( __SUNPRO_C >= 0x5110 && !__STDC__ ) )
-#define FT_TYPEOF( type ) (__typeof__ (type))
+#if ( ( defined( __GNUC__ ) && __GNUC__ >= 2 ) || \
+ ( defined( __IBMC__ ) && __IBMC__ >= 1210 && \
+ defined( __IBM__TYPEOF__ ) ) || \
+ ( defined( __SUNPRO_C ) && __SUNPRO_C >= 0x5110 && !__STDC__ ) )
+#define FT_TYPEOF( type ) ( __typeof__ ( type ) )
#else
#define FT_TYPEOF( type ) /* empty */
#endif
diff --git a/Build/source/libs/freetype2/freetype-src/builds/vms/ftconfig.h b/Build/source/libs/freetype2/freetype-src/builds/vms/ftconfig.h
index fb75e4064f7..eb7fced3a0d 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/vms/ftconfig.h
+++ b/Build/source/libs/freetype2/freetype-src/builds/vms/ftconfig.h
@@ -116,6 +116,14 @@ FT_BEGIN_HEADER
#endif
+ /* Fix compiler warning with sgi compiler */
+#if defined( __sgi ) && !defined( __GNUC__ )
+#if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
+#pragma set woff 3505
+#endif
+#endif
+
+
/*************************************************************************/
/* */
/* */
@@ -311,10 +319,11 @@ FT_BEGIN_HEADER
/* typeof condition taken from gnulib's `intprops.h' header file */
-#if ( __GNUC__ >= 2 || \
- defined( __IBM__TYPEOF__ ) || \
- ( __SUNPRO_C >= 0x5110 && !__STDC__ ) )
-#define FT_TYPEOF( type ) (__typeof__ (type))
+#if ( ( defined( __GNUC__ ) && __GNUC__ >= 2 ) || \
+ ( defined( __IBMC__ ) && __IBMC__ >= 1210 && \
+ defined( __IBM__TYPEOF__ ) ) || \
+ ( defined( __SUNPRO_C ) && __SUNPRO_C >= 0x5110 && !__STDC__ ) )
+#define FT_TYPEOF( type ) ( __typeof__ ( type ) )
#else
#define FT_TYPEOF( type ) /* empty */
#endif
diff --git a/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/freetype.vcproj b/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/freetype.vcproj
index be091012f5e..279abeefa94 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/freetype.vcproj
+++ b/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/freetype.vcproj
@@ -21,7 +21,7 @@
-
+
@@ -41,7 +41,7 @@
-
+
@@ -61,7 +61,7 @@
-
+
@@ -81,7 +81,7 @@
-
+
@@ -101,7 +101,7 @@
-
+
@@ -121,7 +121,7 @@
-
+
@@ -141,7 +141,7 @@
-
+
@@ -161,7 +161,7 @@
-
+
@@ -181,7 +181,7 @@
-
+
@@ -201,7 +201,7 @@
-
+
@@ -221,7 +221,7 @@
-
+
@@ -241,7 +241,7 @@
-
+
@@ -261,7 +261,7 @@
-
+
@@ -281,7 +281,7 @@
-
+
@@ -301,7 +301,7 @@
-
+
@@ -321,7 +321,7 @@
-
+
@@ -341,7 +341,7 @@
-
+
@@ -361,7 +361,7 @@
-
+
@@ -381,7 +381,7 @@
-
+
@@ -401,7 +401,7 @@
-
+
@@ -421,7 +421,7 @@
-
+
@@ -441,7 +441,7 @@
-
+
@@ -461,7 +461,7 @@
-
+
@@ -481,7 +481,7 @@
-
+
@@ -501,7 +501,7 @@
-
+
@@ -521,7 +521,7 @@
-
+
@@ -541,7 +541,7 @@
-
+
@@ -561,7 +561,7 @@
-
+
@@ -581,7 +581,7 @@
-
+
@@ -601,7 +601,7 @@
-
+
@@ -621,7 +621,7 @@
-
+
@@ -641,7 +641,7 @@
-
+
@@ -661,7 +661,7 @@
-
+
@@ -681,7 +681,7 @@
-
+
@@ -701,7 +701,7 @@
-
+
@@ -721,7 +721,7 @@
-
+
@@ -741,7 +741,7 @@
-
+
@@ -758,7 +758,7 @@
-
+
diff --git a/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/index.html b/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/index.html
index 89b06a62bb5..58d6093bcc8 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/index.html
+++ b/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/index.html
@@ -21,14 +21,14 @@ the following targets:
PPC/SP WM6 (Windows Mobile 6)
-It compiles the following libraries from the FreeType 2.7 sources:
+It compiles the following libraries from the FreeType 2.7.1 sources:
- freetype27.lib - release build; single threaded
- freetype27_D.lib - debug build; single threaded
- freetype27MT.lib - release build; multi-threaded
- freetype27MT_D.lib - debug build; multi-threaded
+ freetype271.lib - release build; single threaded
+ freetype271_D.lib - debug build; single threaded
+ freetype271MT.lib - release build; multi-threaded
+ freetype271MT_D.lib - debug build; multi-threaded
Be sure to extract the files with the Windows (CR+LF) line endings. ZIP
diff --git a/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/freetype.vcproj b/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/freetype.vcproj
index 1a6007d5e9a..ca306ceffdd 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/freetype.vcproj
+++ b/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/freetype.vcproj
@@ -88,7 +88,7 @@
/>
PPC/SP WM6 (Windows Mobile 6)
-It compiles the following libraries from the FreeType 2.7 sources:
+It compiles the following libraries from the FreeType 2.7.1 sources:
- freetype27.lib - release build; single threaded
- freetype27_D.lib - debug build; single threaded
- freetype27MT.lib - release build; multi-threaded
- freetype27MT_D.lib - debug build; multi-threaded
+ freetype271.lib - release build; single threaded
+ freetype271_D.lib - debug build; single threaded
+ freetype271MT.lib - release build; multi-threaded
+ freetype271MT_D.lib - debug build; multi-threaded
Be sure to extract the files with the Windows (CR+LF) line endings. ZIP
diff --git a/Build/source/libs/freetype2/freetype-src/builds/windows/vc2005/freetype.vcproj b/Build/source/libs/freetype2/freetype-src/builds/windows/vc2005/freetype.vcproj
index 8201c9d930b..b643840c2e8 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/windows/vc2005/freetype.vcproj
+++ b/Build/source/libs/freetype2/freetype-src/builds/windows/vc2005/freetype.vcproj
@@ -16,7 +16,7 @@
-
+
@@ -33,7 +33,7 @@
-
+
@@ -50,7 +50,7 @@
-
+
@@ -67,7 +67,7 @@
-
+
@@ -84,7 +84,7 @@
-
+
@@ -101,7 +101,7 @@
-
+
diff --git a/Build/source/libs/freetype2/freetype-src/builds/windows/vc2005/index.html b/Build/source/libs/freetype2/freetype-src/builds/windows/vc2005/index.html
index e5473d2ad2e..c3a5ab7d522 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/windows/vc2005/index.html
+++ b/Build/source/libs/freetype2/freetype-src/builds/windows/vc2005/index.html
@@ -11,14 +11,14 @@
This directory contains project files for Visual C++, named
freetype.vcproj, and Visual Studio, called freetype.sln. It
-compiles the following libraries from the FreeType 2.7 sources:
+compiles the following libraries from the FreeType 2.7.1 sources:
- freetype27.lib - release build; single threaded
- freetype27_D.lib - debug build; single threaded
- freetype27MT.lib - release build; multi-threaded
- freetype27MT_D.lib - debug build; multi-threaded
+ freetype271.lib - release build; single threaded
+ freetype271_D.lib - debug build; single threaded
+ freetype271MT.lib - release build; multi-threaded
+ freetype271MT_D.lib - debug build; multi-threaded
Be sure to extract the files with the Windows (CR+LF) line endings. ZIP
diff --git a/Build/source/libs/freetype2/freetype-src/builds/windows/vc2008/freetype.vcproj b/Build/source/libs/freetype2/freetype-src/builds/windows/vc2008/freetype.vcproj
index 409f1da66e4..20d82c4bf3a 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/windows/vc2008/freetype.vcproj
+++ b/Build/source/libs/freetype2/freetype-src/builds/windows/vc2008/freetype.vcproj
@@ -70,7 +70,7 @@
/>
This directory contains project files for Visual C++, named
freetype.vcproj, and Visual Studio, called freetype.sln. It
-compiles the following libraries from the FreeType 2.7 sources:
+compiles the following libraries from the FreeType 2.7.1 sources:
- freetype27.lib - release build; single threaded
- freetype27_D.lib - debug build; single threaded
- freetype27MT.lib - release build; multi-threaded
- freetype27MT_D.lib - debug build; multi-threaded
+ freetype271.lib - release build; single threaded
+ freetype271_D.lib - debug build; single threaded
+ freetype271MT.lib - release build; multi-threaded
+ freetype271MT_D.lib - debug build; multi-threaded
Be sure to extract the files with the Windows (CR+LF) line endings. ZIP
diff --git a/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj b/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj
index ce81ac87f08..64a71f8bc4f 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj
+++ b/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj
@@ -191,18 +191,18 @@
- freetype27d
- freetype27d
- freetype27MTd
- freetype27MTd
- freetype27STd
- freetype27STd
- freetype27
- freetype27
- freetype27MT
- freetype27MT
- freetype27ST
- freetype27ST
+ freetype271d
+ freetype271d
+ freetype271MTd
+ freetype271MTd
+ freetype271STd
+ freetype271STd
+ freetype271
+ freetype271
+ freetype271MT
+ freetype271MT
+ freetype271ST
+ freetype271ST
diff --git a/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/index.html b/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/index.html
index 512251ec140..2b47a00924c 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/index.html
+++ b/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/index.html
@@ -12,16 +12,16 @@
This directory contains a project file for Visual C++ (VS.NET 2010
or newer), named freetype.vcxproj, and Visual Studio, called
freetype.sln. It compiles the following libraries from the
-FreeType 2.7 sources:
+FreeType 2.7.1 sources:
- freetype27.lib - release build
- freetype27d.lib - debug build
- freetype27ST.lib - release build; single threaded
- freetype27STd.lib - debug build; single threaded
- freetype27MT.lib - release build; multi-threaded
- freetype27MTd.lib - debug build; multi-threaded
+ freetype271.lib - release build
+ freetype271d.lib - debug build
+ freetype271ST.lib - release build; single threaded
+ freetype271STd.lib - debug build; single threaded
+ freetype271MT.lib - release build; multi-threaded
+ freetype271MTd.lib - debug build; multi-threaded
Both Win32 and x64 builds are supported.
diff --git a/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.dsp b/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.dsp
index 2827e42ed63..f6eeeb368a5 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.dsp
+++ b/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype27.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271.lib"
!ELSEIF "$(CFG)" == "freetype - Win32 Debug"
@@ -78,7 +78,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype27_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271_D.lib"
!ELSEIF "$(CFG)" == "freetype - Win32 Debug Multithreaded"
@@ -102,8 +102,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"lib\freetype27_D.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype27MT_D.lib"
+# ADD BASE LIB32 /nologo /out:"lib\freetype271_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271MT_D.lib"
!ELSEIF "$(CFG)" == "freetype - Win32 Release Multithreaded"
@@ -126,8 +126,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"lib\freetype27.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype27MT.lib"
+# ADD BASE LIB32 /nologo /out:"lib\freetype271.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271MT.lib"
!ELSEIF "$(CFG)" == "freetype - Win32 Release Singlethreaded"
@@ -151,8 +151,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype27.lib"
-# ADD LIB32 /out:"..\..\..\objs\freetype27ST.lib"
+# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype271.lib"
+# ADD LIB32 /out:"..\..\..\objs\freetype271ST.lib"
# SUBTRACT LIB32 /nologo
!ELSEIF "$(CFG)" == "freetype - Win32 Debug Singlethreaded"
@@ -177,8 +177,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype27_D.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype27ST_D.lib"
+# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype271_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271ST_D.lib"
!ENDIF
diff --git a/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.vcproj b/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.vcproj
index 4c77d69756d..69c084cce3a 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.vcproj
+++ b/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.vcproj
@@ -69,7 +69,7 @@
/>
This directory contains project files for Visual C++, named
freetype.dsp, and Visual Studio, called freetype.sln. It
-compiles the following libraries from the FreeType 2.7 sources:
+compiles the following libraries from the FreeType 2.7.1 sources:
- freetype27.lib - release build; single threaded
- freetype27_D.lib - debug build; single threaded
- freetype27MT.lib - release build; multi-threaded
- freetype27MT_D.lib - debug build; multi-threaded
+ freetype271.lib - release build; single threaded
+ freetype271_D.lib - debug build; single threaded
+ freetype271MT.lib - release build; multi-threaded
+ freetype271MT_D.lib - debug build; multi-threaded
Be sure to extract the files with the Windows (CR+LF) line endings. ZIP
diff --git a/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/freetype.dsp b/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/freetype.dsp
index 2827e42ed63..f6eeeb368a5 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/freetype.dsp
+++ b/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/freetype.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype27.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271.lib"
!ELSEIF "$(CFG)" == "freetype - Win32 Debug"
@@ -78,7 +78,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype27_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271_D.lib"
!ELSEIF "$(CFG)" == "freetype - Win32 Debug Multithreaded"
@@ -102,8 +102,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"lib\freetype27_D.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype27MT_D.lib"
+# ADD BASE LIB32 /nologo /out:"lib\freetype271_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271MT_D.lib"
!ELSEIF "$(CFG)" == "freetype - Win32 Release Multithreaded"
@@ -126,8 +126,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"lib\freetype27.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype27MT.lib"
+# ADD BASE LIB32 /nologo /out:"lib\freetype271.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271MT.lib"
!ELSEIF "$(CFG)" == "freetype - Win32 Release Singlethreaded"
@@ -151,8 +151,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype27.lib"
-# ADD LIB32 /out:"..\..\..\objs\freetype27ST.lib"
+# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype271.lib"
+# ADD LIB32 /out:"..\..\..\objs\freetype271ST.lib"
# SUBTRACT LIB32 /nologo
!ELSEIF "$(CFG)" == "freetype - Win32 Debug Singlethreaded"
@@ -177,8 +177,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype27_D.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype27ST_D.lib"
+# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype271_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype271ST_D.lib"
!ENDIF
diff --git a/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/freetype.vcproj b/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/freetype.vcproj
index 10f94ac084e..55c874df80d 100644
--- a/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/freetype.vcproj
+++ b/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/freetype.vcproj
@@ -87,7 +87,7 @@
/>
PPC/SP WM6 (Windows Mobile 6)
-It compiles the following libraries from the FreeType 2.7 sources:
+It compiles the following libraries from the FreeType 2.7.1 sources:
- freetype27.lib - release build; single threaded
- freetype27_D.lib - debug build; single threaded
- freetype27MT.lib - release build; multi-threaded
- freetype27MT_D.lib - debug build; multi-threaded
+ freetype271.lib - release build; single threaded
+ freetype271_D.lib - debug build; single threaded
+ freetype271MT.lib - release build; multi-threaded
+ freetype271MT_D.lib - debug build; multi-threaded
Be sure to extract the files with the Windows (CR+LF) line endings. ZIP
diff --git a/Build/source/libs/freetype2/freetype-src/docs/CHANGES b/Build/source/libs/freetype2/freetype-src/docs/CHANGES
index 49590f8662c..dccdb6e28bb 100644
--- a/Build/source/libs/freetype2/freetype-src/docs/CHANGES
+++ b/Build/source/libs/freetype2/freetype-src/docs/CHANGES
@@ -1,4 +1,75 @@
+CHANGES BETWEEN 2.7 and 2.7.1
+
+ I. IMPORTANT CHANGES
+
+ - Support for the new CFF2 font format as introduced with OpenType
+ 1.8 has been contributed by Dave Arnolds from Adobe.
+
+ - Preliminary support for variation fonts as specified in OpenType
+ 1.8 (in addition to the already existing support for Adobe's MM
+ and Apple's GX formats). Dave Arnolds contributed handling of
+ advance width change variation; more will come in the next
+ version.
+
+
+ II. IMPORTANT BUG FIXES
+
+ - Handling of raw CID fonts was partially broken (bug introduced
+ in 2.6.4).
+
+
+ III. MISCELLANEOUS
+
+ - Some limits for TrueType bytecode execution have been tightened
+ to speed up FreeType's handling of malformed fonts, in
+ particular to quickly abort endless loops.
+
+ - The number of twilight points can no longer be set to an
+ arbitrarily large value.
+
+ - The total number of jump opcode instructions (like JMPR) with
+ negative arguments is dynamically restricted; the same holds
+ for the total number of iterations in LOOPCALL opcodes.
+
+ The dynamic limits are based on the number of points in a glyph
+ and the number of CVT entries. Please report if you encounter a
+ font where the selected values are not adequate.
+
+ - PCF family names are made more `colourful'; they now include the
+ foundry and information whether they contain wide characters.
+ For example, you no longer get `Fixed' but rather `Sony Fixed'
+ or `Misc Fixed Wide'.
+
+ - A new function `FT_Get_Var_Blend_Coordinates' (with its alias
+ name `FT_Get_MM_Blend_Coordinates') to retrieve the normalized
+ blend coordinates of the currently selected variation instance
+ has been added to the Multiple Masters interface.
+
+ - A new function `FT_Get_Var_Design_Coordinates' to retrieve the
+ design coordinates of the currently selected variation instance
+ has been added to the Multiple Masters interface.
+
+ - A new load flag `FT_LOAD_BITMAP_METRICS_ONLY' to retrieve bitmap
+ information without loading the (embedded) bitmap itself.
+
+ - Retrieving advance widths from bitmap strikes (using
+ `FT_Get_Advance' and `FT_Get_Advances') have been sped up.
+
+ - The usual round of fuzzer fixes to better reject malformed
+ fonts.
+
+ - The `ftmulti' demo program can now switch engines with key `H'.
+
+ - The `ftstring' demo program can now show some built-in,
+ non-latin sample strings (to be selected with the TAB key).
+
+ - The `ftview' demo program can now switch between a font's
+ charmaps using the TAB key.
+
+
+======================================================================
+
CHANGES BETWEEN 2.6.5 and 2.7
I. IMPORTANT CHANGES
diff --git a/Build/source/libs/freetype2/freetype-src/docs/VERSIONS.TXT b/Build/source/libs/freetype2/freetype-src/docs/VERSIONS.TXT
index a1eb0be2bbf..82f63a3a6e3 100644
--- a/Build/source/libs/freetype2/freetype-src/docs/VERSIONS.TXT
+++ b/Build/source/libs/freetype2/freetype-src/docs/VERSIONS.TXT
@@ -52,6 +52,7 @@ on _most_ systems, but not all of them:
release libtool so
-------------------------------
+ 2.7.1 19.0.13 6.13.0
2.7.0 18.6.12 6.12.6
2.6.5 18.5.12 6.12.5
2.6.4 18.4.12 6.12.4
diff --git a/Build/source/libs/freetype2/freetype-src/docs/formats.txt b/Build/source/libs/freetype2/freetype-src/docs/formats.txt
index 4966bd746e8..2181352bdf4 100644
--- a/Build/source/libs/freetype2/freetype-src/docs/formats.txt
+++ b/Build/source/libs/freetype2/freetype-src/docs/formats.txt
@@ -1,141 +1,161 @@
-This file contains a list of various font formats. It gives the
+This file contains a list of various font formats. It gives the
reference document and whether it is supported in FreeType 2.
+Table fields
+------------
- file type:
- The only special case is `MAC'; on older Mac OS versions, a `file'
- is stored as a data and a resource fork, this is, within two
- separate data chunks. In all other cases, the font data is stored
- in a single file.
-
- wrapper format:
- The format used to represent the font data. In the table below it
- is used only if the font format differs. Possible values are `SFNT'
- (binary), `PS' (a text header, followed by binary or text data),
- `LZW' (compressed with either `gzip' or `compress'), and
+ wrapper format
+ The format used to represent the font data. In the table below it
+ is used only if the font format differs. Possible values are
+ `SFNT' (binary), `PS' (a text header, followed by binary or text
+ data), `LZW' (compressed with either `gzip' or `compress'), and
`BZ2' (compressed with `bzip2`).
- font format:
- How the font is to be accessed, possibly after converting the file
- type and wrapper format into a generic form. Bitmap formats are
- `BDF', `PCF', and one form of `WINFNT'; all others are vector
- formats.
-
- font type:
- Sub-formats of the font format. `SBIT' and `MACSBIT' are bitmap
- formats, `MM' and `VAR' support optical axes.
-
- glyph access:
- If not specified, the glyph access is `standard' to the font format.
- Values are `CID' for CID-keyed fonts, `SYNTHETIC' for fonts which
- are modified versions of other fonts by means of a transformation
- matrix, `COLLECTION' for collecting multiple fonts (sharing most of
- the data) into a single file, and `TYPE_0' for PS fonts which are to
- be accessed in a tree-like structure.
-
- FreeType driver:
- The module in the FreeType library which handles the specific font
- format. A missing entry means that FreeType doesn't support the
+ font format
+ How the font is to be accessed, possibly after converting the file
+ type and wrapper format into a generic form. Bitmap formats are
+ `BDF', `PCF', and one form of `WINFNT'; all others are vector
+ formats. `PS' indicates third-order, `TT' second-order Bézier
+ curves.
+
+ font type
+ Sub-formats of the font format. `SBIT' and `MACSBIT' are bitmap
+ formats, `MM' and `VAR' support optical axes. `CFF2' supports
+ optical axes also.
+
+ glyph access
+ If not specified, the glyph access is `standard' to the font
+ format. Values are `CID' for CID-keyed fonts, `SYNTHETIC' for
+ fonts that are modified versions of other fonts by means of a
+ transformation matrix, and `TYPE_0' for PS fonts which are to be
+ accessed in a tree-like structure.
+
+ FreeType driver
+ The module in the FreeType library which handles the specific font
+ format. A missing entry means that FreeType doesn't support the
font format (yet).
-Please send additions and/or corrections to wl@gnu.org or to the
-FreeType developer's list at freetype-devel@nongnu.org (for subscribers
-only). If you can provide a font example for a format which isn't
-supported yet please send a mail too.
-
-
-file wrapper font font glyph FreeType reference
-type format format type access driver documents
-----------------------------------------------------------------------------
-
---- --- BDF --- --- bdf 5005.BDF_Spec.pdf, X11
-
-
---- SFNT PS TYPE_1 --- type1 Type 1 GX Font Format
- (for the Mac) [3]
-MAC 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]
-MAC SFNT PS TYPE_1 CID cid 5180.sfnt.pdf (for the Mac)
- [3]
---- SFNT PS CFF --- cff OT spec, 5176.CFF.pdf
- (`OTTO' format)
-MAC SFNT PS CFF --- cff OT spec, 5176.CFF.pdf
- (`OTTO' format)
---- SFNT PS CFF CID cff OT spec, 5176.CFF.pdf
-MAC SFNT PS CFF CID cff OT spec, 5176.CFF.pdf
---- SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf
-MAC SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf
---- SFNT TT SBIT --- sfnt XFree86 (bitmaps only;
- with `head' table)
---- SFNT TT MACSBIT --- sfnt OT spec (for the Mac;
- bitmaps only; `bhed' table)
-MAC SFNT TT MACSBIT --- sfnt OT spec (for the Mac;
- bitmaps only; `bhed' table)
---- SFNT TT --- --- truetype OT spec (`normal' TT font)
-MAC SFNT TT --- --- truetype OT spec (`normal' TT font)
-MAC SFNT TT VAR --- truetype GX spec (`?var' tables)
---- SFNT TT --- COLLECTION truetype OT spec (this can't be CFF)
-MAC SFNT TT --- COLLECTION truetype OT spec (this can't be CFF)
-
-
---- --- PS TYPE_1 --- type1 T1_SPEC.pdf
- (`normal' Type 1 font)
-MAC --- PS TYPE_1 --- type1 T1_SPEC.pdf
- (`normal' Type 1 font)
---- --- PS TYPE_1 CID cid PLRM.pdf (CID Font Type 0;
- Type 9 font)
---- --- PS MM --- type1 5015.Type1_Supp.pdf
- (Multiple Masters)
---- --- PS CFF --- cff 5176.CFF.pdf (`pure' CFF)
---- --- PS CFF CID cff 5176.CFF.pdf (`pure' CFF)
---- --- PS CFF SYNTHETIC --- 5176.CFF.pdf (`pure' CFF)
---- PS PS CFF --- --- PLRM.pdf (Type 2) [1]
---- PS PS CFF CID --- PLRM.pdf (Type 2) [1]
---- PS PS CFF SYNTHETIC --- PLRM.pdf (Type 2) [1]
---- --- PS --- TYPE_0 --- PLRM.pdf
---- --- PS TYPE_3 --- --- PLRM.pdf (never supported)
---- --- PS TYPE_3 CID --- PLRM.pdf (CID Font Type 1;
- Type 10 font; never supported)
---- PS PS TYPE_14 --- --- PLRM.pdf (Chameleon font;
- Type 14 font; never supported?)
---- --- PS TYPE_32 CID --- PLRM.pdf (CID Font Type 4;
- Type 32 font; never supported?)
---- PS TT --- --- type42 5012.Type42_Spec.pdf
- (Type 42 font)
---- PS TT --- CID --- PLRM.pdf (CID Font Type 2;
- Type 11 font)
-
-
---- ? ? CEF ? cff ?
-
-
---- --- PCF --- --- pcf X11 [4]
---- LZW PCF --- --- pcf X11 [4]
---- BZ2 PCF --- --- pcf X11 [4]
-
-
---- --- PFR PFR0 --- pfr [2]
---- --- PFR PFR1 --- --- (undocumented, proprietary;
- probably never supported)
-
-
---- --- WINFNT --- --- winfonts Windows developer's notes [5]
---- --- WINFNT VECTOR --- --- Windows developer's notes [5]
-
-
-[1] Support should be rather simple since this is identical to `CFF' but
- in a PS wrapper.
+Notes
+-----
+
+ The SFNT container format also provides `collections' (usually
+ having the file extension `.ttc' or `.otc'). A collection contains
+ multiple font faces that share some tables to avoid redundancy, thus
+ reducing the file size. In FreeType, elements of a collection can
+ be accessed with a proper face index.
+
+ Both the GX and the OpenType 1.8 variation fonts provide `named
+ instances'. FreeType maps them to face indices (they can also be
+ accessed with the standard MM interface).
+
+ Other font formats (not using the SFNT wrapper) also provide
+ multiple faces within one file; they are marked with an asterisk
+ (`*') in the table below.
+
+ FreeType can be configured to support Mac files (on older Mac OS
+ versions, a `file' is stored as a data and a resource fork, this is,
+ within two separate data chunks). If a file can't be opened as a
+ font, FreeType then checks whether it is a resource fork, trying to
+ extract the contained font data from either a `POST' or `sfnt'
+ resource.
+
+
+Please send additions and/or corrections to wl@gnu.org or to the
+FreeType developer's list at freetype-devel@nongnu.org (for
+subscribers only). If you can provide a font example for a format
+which isn't supported yet please send a mail too.
+
+
+ wrapper font font glyph FreeType reference
+ format format type access driver documents
+ -----------------------------------------------------------------------------
+
+ --- BDF --- --- bdf 5005.BDF_Spec.pdf, X11
+
+
+ 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 CFF --- cff OT spec, 5176.CFF.pdf
+ (`OTTO' format)
+ SFNT PS CFF CID cff OT spec, 5176.CFF.pdf
+ SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf
+ SFNT PS CFF2 --- cff OT spec 1.8
+
+ SFNT TT SBIT --- sfnt XFree86 (bitmaps only;
+ with `head' table)
+ SFNT TT MACSBIT --- sfnt OT spec (for the Mac;
+ bitmaps only; `bhed' table)
+ SFNT TT --- --- truetype OT spec (`normal' TT font)
+ SFNT TT VAR --- truetype GX spec (`?var' tables)
+ SFNT TT VAR --- truetype OT spec 1.8
+ (`?var' + `?VAR' tables)
+
+
+ --- PS TYPE_1 --- type1 T1_SPEC.pdf
+ (`normal' Type 1 font)
+ --- PS TYPE_1 CID cid PLRM.pdf (CID Font Type 0;
+ Type 9 font)
+ --- PS MM --- type1 5015.Type1_Supp.pdf
+ (Multiple Masters)
+ --- PS CFF --- cff 5176.CFF.pdf (`pure' CFF)
+ --- PS* CFF CID cff 5176.CFF.pdf (`pure' CFF)
+ --- PS CFF SYNTHETIC --- 5176.CFF.pdf (`pure' CFF)
+ --- PS CFF/MM --- cff old 5167.CFF.pdf (`pure' CFF)
+ [3]
+ --- PS* CFF/MM CID cff old 5167.CFF.pdf (`pure' CFF)
+ [3]
+ --- PS CFF/MM SYNTHETIC --- old 5167.CFF.pdf (`pure' CFF)
+ [3]
+ PS PS CFF --- --- PLRM.pdf (Type 2) [1]
+ PS PS* CFF CID --- PLRM.pdf (Type 2) [1]
+ PS PS CFF SYNTHETIC --- PLRM.pdf (Type 2) [1]
+ PS PS CFF/MM --- --- PLRM.pdf (Type 2) [1]
+ PS PS* CFF/MM CID --- PLRM.pdf (Type 2) [1]
+ PS PS CFF/MM SYNTHETIC --- PLRM.pdf (Type 2) [1]
+ --- PS --- TYPE_0 --- PLRM.pdf
+ --- PS TYPE_3 --- --- PLRM.pdf (never supported)
+ --- PS TYPE_3 CID --- PLRM.pdf (CID Font Type 1;
+ Type 10 font; never supported)
+ PS PS TYPE_14 --- --- PLRM.pdf (Chameleon font;
+ Type 14 font; never supported?)
+ --- PS TYPE_32 CID --- PLRM.pdf (CID Font Type 4;
+ Type 32 font; never supported?)
+ PS TT --- --- type42 5012.Type42_Spec.pdf
+ (Type 42 font)
+ PS TT --- CID --- PLRM.pdf (CID Font Type 2;
+ Type 11 font)
+
+
+ ? ? CEF ? cff ?
+
+
+ --- PCF --- --- pcf X11 [4]
+ LZW PCF --- --- pcf X11 [4]
+ BZ2 PCF --- --- pcf X11 [4]
+
+
+ --- PFR* PFR0 --- pfr [2]
+ --- PFR PFR1 --- --- (undocumented, proprietary;
+ probably never supported)
+
+
+ --- WINFNT* --- --- winfonts Windows developer's notes [5]
+ --- WINFNT VECTOR --- --- Windows developer's notes [5]
+
+
+[1] Support should be rather simple since this is identical to `CFF'
+ but in a PS wrapper.
[2] Official PFR specification:
http://www.bitstream.com/categories/developer/truedoc/pfrspec.html
http://www.bitstream.com/categories/developer/truedoc/pfrspec1.2.pdf
- The syntax of the auxiliary data is not defined there, but is
- partially defined in MHP 1.0.3 (also called ETSI TS 101812 V1.3.1)
+ The syntax of the auxiliary data is not defined there, but is
+ partially defined in MHP 1.0.3 (also called ETSI TS 101812 V1.3.1)
section 7.4.
http://www.etsi.org/
@@ -143,7 +163,8 @@ MAC --- PS TYPE_1 --- type1 T1_SPEC.pdf
(free registration required).
-[3] Support is rudimentary currently; some tables are not loaded yet.
+[3] Support is rudimentary currently; some tables or data are not
+ loaded yet.
[4] See
@@ -151,13 +172,13 @@ MAC --- PS TYPE_1 --- type1 T1_SPEC.pdf
Elias Israel, Erik Fortune, Digital Press, 1992
ISBN 1-55558-096-3
- for a specification given in Appendix D on pgs. 436-450. However,
- this information might be out of date; unfortunately, there is no
- PCF specification available online, and this book is out of print.
- George Williams deduced the font format from the X11 sources and
+ for a specification given in Appendix D on pgs. 436-450. However,
+ this information might be out of date; unfortunately, there is no
+ PCF specification available online, and this book is out of print.
+ George Williams deduced the font format from the X11 sources and
documented it for his FontForge font editor:
- http://fontforge.sourceforge.net/pcf-format.html
+ http://fontforge.github.io/pcf-format.html
[5] This is from MS Windows 3; see Microsoft's Knowledge Base article at
diff --git a/Build/source/libs/freetype2/freetype-src/docs/freetype-config.1 b/Build/source/libs/freetype2/freetype-src/docs/freetype-config.1
index 02b80db1a9f..76082ec1158 100644
--- a/Build/source/libs/freetype2/freetype-src/docs/freetype-config.1
+++ b/Build/source/libs/freetype2/freetype-src/docs/freetype-config.1
@@ -1,4 +1,4 @@
-.TH FREETYPE-CONFIG 1 "September 2016" "FreeType 2.7"
+.TH FREETYPE-CONFIG 1 "December 2016" "FreeType 2.7.1"
.
.
.SH NAME
diff --git a/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-auto_hinter.html b/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-auto_hinter.html
index 2a93d5cd03b..79d1fe0e40d 100644
--- a/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-auto_hinter.html
+++ b/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-auto_hinter.html
@@ -3,7 +3,7 @@
-FreeType-2.7 API Reference
+FreeType-2.7.1 API Reference