texlive[41649] Build/source/libs/freetype2: freetype 2.6.4

commits+kakuto at tug.org commits+kakuto at tug.org
Thu Jul 7 11:56:43 CEST 2016


Revision: 41649
          http://tug.org/svn/texlive?view=revision&revision=41649
Author:   kakuto
Date:     2016-07-07 11:56:43 +0200 (Thu, 07 Jul 2016)
Log Message:
-----------
freetype 2.6.4

Modified Paths:
--------------
    trunk/Build/source/libs/freetype2/ChangeLog
    trunk/Build/source/libs/freetype2/configure
    trunk/Build/source/libs/freetype2/freetype-PATCHES/ChangeLog
    trunk/Build/source/libs/freetype2/freetype-PATCHES/TL-Changes
    trunk/Build/source/libs/freetype2/freetype-src/CMakeLists.txt
    trunk/Build/source/libs/freetype2/freetype-src/ChangeLog
    trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.20
    trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.21
    trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.22
    trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.23
    trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.24
    trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.25
    trunk/Build/source/libs/freetype2/freetype-src/Jamfile
    trunk/Build/source/libs/freetype2/freetype-src/README
    trunk/Build/source/libs/freetype2/freetype-src/builds/cmake/iOS.cmake
    trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure
    trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure.ac
    trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure.raw
    trunk/Build/source/libs/freetype2/freetype-src/builds/unix/unix-cc.in
    trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/freetype.sln
    trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/freetype.vcproj
    trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/index.html
    trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/freetype.sln
    trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/freetype.vcproj
    trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/index.html
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2005/freetype.vcproj
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2005/index.html
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2008/freetype.vcproj
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2008/index.html
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.sln
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj.filters
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/index.html
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.dsp
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.vcproj
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/index.html
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/freetype.dsp
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/freetype.vcproj
    trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/index.html
    trunk/Build/source/libs/freetype2/freetype-src/devel/ftoption.h
    trunk/Build/source/libs/freetype2/freetype-src/docs/CHANGES
    trunk/Build/source/libs/freetype2/freetype-src/docs/FTL.TXT
    trunk/Build/source/libs/freetype2/freetype-src/docs/freetype-config.1
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-auto_hinter.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-base_interface.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-basic_types.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bdf_fonts.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bitmap_handling.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bzip2.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cache_subsystem.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cff_driver.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cid_fonts.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-computations.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-error_code_values.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-error_enumerations.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-font_formats.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gasp_table.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_management.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_stroker.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_variants.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gx_validation.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gzip.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-header_file_macros.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-header_inclusion.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-incremental.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-index.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-lcd_filtering.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-list_processing.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-lzw.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-mac_specific.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-module_management.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-multiple_masters.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-ot_validation.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-outline_processing.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-pfr_fonts.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-quick_advance.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-raster.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-sfnt_names.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-sizes_management.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-system_interface.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-toc.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-truetype_engine.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-truetype_tables.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-tt_driver.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-type1_tables.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-user_allocation.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-version.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-winfnt_fonts.html
    trunk/Build/source/libs/freetype2/freetype-src/docs/release
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftoption.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftstdlib.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/freetype.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftautoh.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftcache.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftcffdrv.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftcid.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftgzip.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftimage.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftotval.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftsystem.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftttdrv.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftdriver.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftmemory.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftobjs.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftrfork.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/internal.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/tttypes.h
    trunk/Build/source/libs/freetype2/freetype-src/include/freetype/tttables.h
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afblue.c
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afblue.dat
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afblue.h
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afcjk.c
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afhints.c
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afhints.h
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aflatin.c
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aflatin2.c
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aflatin2.h
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afranges.c
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afscript.h
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afstyles.h
    trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aftypes.h
    trunk/Build/source/libs/freetype2/freetype-src/src/base/ftadvanc.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/ftbitmap.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/fthash.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/ftmac.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/ftobjs.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/ftoutln.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/ftrfork.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/ftstream.c
    trunk/Build/source/libs/freetype2/freetype-src/src/base/md5.c
    trunk/Build/source/libs/freetype2/freetype-src/src/bdf/bdflib.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftccache.h
    trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftccmap.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftcmanag.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftcmru.h
    trunk/Build/source/libs/freetype2/freetype-src/src/cff/cf2error.h
    trunk/Build/source/libs/freetype2/freetype-src/src/cff/cf2hints.h
    trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffdrivr.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffgload.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffgload.h
    trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffload.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffobjs.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffparse.c
    trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffparse.h
    trunk/Build/source/libs/freetype2/freetype-src/src/cff/cfftoken.h
    trunk/Build/source/libs/freetype2/freetype-src/src/cff/cfftypes.h
    trunk/Build/source/libs/freetype2/freetype-src/src/cid/cidparse.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvcommn.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvcommn.h
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvjust.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvkern.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvlcar.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvmort1.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvtrak.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gzip/ftgzip.c
    trunk/Build/source/libs/freetype2/freetype-src/src/gzip/zlib.h
    trunk/Build/source/libs/freetype2/freetype-src/src/otvalid/otvmath.c
    trunk/Build/source/libs/freetype2/freetype-src/src/pcf/pcfread.c
    trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrgload.c
    trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrload.c
    trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrobjs.c
    trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrsbit.c
    trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrtypes.h
    trunk/Build/source/libs/freetype2/freetype-src/src/psaux/psobjs.c
    trunk/Build/source/libs/freetype2/freetype-src/src/pshinter/pshalgo.c
    trunk/Build/source/libs/freetype2/freetype-src/src/pshinter/pshglob.c
    trunk/Build/source/libs/freetype2/freetype-src/src/raster/ftraster.c
    trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/sfobjs.c
    trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/ttcmap.c
    trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/ttpost.c
    trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/ttpost.h
    trunk/Build/source/libs/freetype2/freetype-src/src/smooth/ftgrays.c
    trunk/Build/source/libs/freetype2/freetype-src/src/tools/docmaker/tohtml.py
    trunk/Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/ftfuzzer.cc
    trunk/Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/runinput.cc
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttdriver.c
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttgload.c
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttgxvar.c
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttinterp.c
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttinterp.h
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttobjs.c
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttsubpix.c
    trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttsubpix.h
    trunk/Build/source/libs/freetype2/freetype-src/src/type1/t1afm.c
    trunk/Build/source/libs/freetype2/freetype-src/src/type1/t1load.c
    trunk/Build/source/libs/freetype2/freetype-src/src/type1/t1objs.c
    trunk/Build/source/libs/freetype2/freetype-src/src/type42/t42parse.c
    trunk/Build/source/libs/freetype2/freetype-src/vms_make.com
    trunk/Build/source/libs/freetype2/version.ac

Added Paths:
-----------
    trunk/Build/source/libs/freetype2/freetype-src/docs/VERSIONS.TXT
    trunk/Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/rasterfuzzer.cc

Removed Paths:
-------------
    trunk/Build/source/libs/freetype2/freetype-src/docs/VERSION.DLL

Modified: trunk/Build/source/libs/freetype2/ChangeLog
===================================================================
--- trunk/Build/source/libs/freetype2/ChangeLog	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/ChangeLog	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,3 +1,8 @@
+2016-07-07  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	Import freetype-2.6.4.
+	* version.ac: Adjusted.
+
 2016-02-15  Karl Berry  <karl at tug.org>
 
 	* freetype-PATCHES: rename from freetype-src-PATCHES.

Modified: trunk/Build/source/libs/freetype2/configure
===================================================================
--- trunk/Build/source/libs/freetype2/configure	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/configure	2016-07-07 09:56:43 UTC (rev 41649)
@@ -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.6.3.
+# Generated by GNU Autoconf 2.69 for FreeType (TeX Live) 2.6.4.
 #
 # Report bugs to <tex-k at tug.org>.
 #
@@ -579,8 +579,8 @@
 # Identity of this package.
 PACKAGE_NAME='FreeType (TeX Live)'
 PACKAGE_TARNAME='freetype--tex-live-'
-PACKAGE_VERSION='2.6.3'
-PACKAGE_STRING='FreeType (TeX Live) 2.6.3'
+PACKAGE_VERSION='2.6.4'
+PACKAGE_STRING='FreeType (TeX Live) 2.6.4'
 PACKAGE_BUGREPORT='tex-k at tug.org'
 PACKAGE_URL=''
 
@@ -1235,7 +1235,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures FreeType (TeX Live) 2.6.3 to adapt to many kinds of systems.
+\`configure' configures FreeType (TeX Live) 2.6.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1302,7 +1302,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of FreeType (TeX Live) 2.6.3:";;
+     short | recursive ) echo "Configuration of FreeType (TeX Live) 2.6.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1398,7 +1398,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-FreeType (TeX Live) configure 2.6.3
+FreeType (TeX Live) configure 2.6.4
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1499,7 +1499,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by FreeType (TeX Live) $as_me 2.6.3, which was
+It was created by FreeType (TeX Live) $as_me 2.6.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3422,7 +3422,7 @@
 
 # Define the identity of the package.
  PACKAGE='freetype--tex-live-'
- VERSION='2.6.3'
+ VERSION='2.6.4'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4953,7 +4953,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by FreeType (TeX Live) $as_me 2.6.3, which was
+This file was extended by FreeType (TeX Live) $as_me 2.6.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -5010,7 +5010,7 @@
 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.6.3
+FreeType (TeX Live) config.status 2.6.4
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/libs/freetype2/freetype-PATCHES/ChangeLog
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-PATCHES/ChangeLog	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-PATCHES/ChangeLog	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,3 +1,8 @@
+2016-07-07  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	Imported freetype-2.6.4 source tree from:
+	  http://savannah.nongnu.org/download/freetype/
+
 2016-02-12  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
 
 	Imported freetype-2.6.3 source tree from:

Modified: trunk/Build/source/libs/freetype2/freetype-PATCHES/TL-Changes
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-PATCHES/TL-Changes	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-PATCHES/TL-Changes	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,6 +1,2 @@
-Changes applied to the freetype-2.6.3/ tree as obtained from:
+Changes applied to the freetype-2.6.4/ tree as obtained from:
 	http://savannah.nongnu.org/download/freetype/.
-
-Updated:
-	builds/unix/config.guess
-	builds/unix/config.sub

Modified: trunk/Build/source/libs/freetype2/freetype-src/CMakeLists.txt
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/CMakeLists.txt	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/CMakeLists.txt	2016-07-07 09:56:43 UTC (rev 41649)
@@ -36,11 +36,11 @@
 #
 # For an iOS static library, use
 #
-#   cmake <path-to-freetype2-src-dir> -D IOS_PLATFORM=OS -G Xcode
+#   cmake -D IOS_PLATFORM=OS -G Xcode <path-to-freetype2-src-dir>
 #
 # or
 #
-#   cmake <path-to-freetype2-src-dir> -D IOS_PLATFORM=SIMULATOR -G Xcode
+#   cmake -D IOS_PLATFORM=SIMULATOR -G Xcode <path-to-freetype2-src-dir>
 #
 # Please refer to the cmake manual for further options, in particular, how
 # to modify compilation and linking parameters.
@@ -68,6 +68,11 @@
 #   only if it is available.  Example:
 #
 #     cmake ... -DWITH_ZLIB=ON -DWITH_HarfBuzz=OFF ...
+#
+# . Installation of FreeType can be controlled with the CMake variables
+#   `SKIP_INSTALL_HEADERS', `SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL'
+#   (this is compatible with the same CMake variables in zlib's CMake
+#   support).
 
 
 cmake_minimum_required(VERSION 2.6)
@@ -102,7 +107,7 @@
     set(BUILD_SHARED_LIBS OFF)
 
     set(CMAKE_TOOLCHAIN_FILE
-      ${PROJECT_SOURCE_DIR}/builds/cmake/iOS.cmake)
+      ${CMAKE_SOURCE_DIR}/builds/cmake/iOS.cmake)
   endif ()
 else ()
   if (DEFINED IOS_PLATFORM)
@@ -149,7 +154,7 @@
 
 set(VERSION_MAJOR "2")
 set(VERSION_MINOR "6")
-set(VERSION_PATCH "3")
+set(VERSION_PATCH "4")
 
 set(PROJECT_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH})
 set(SHARED_LIBRARY_VERSION ${VERSION_MAJOR}.${VERSION_MINOR})
@@ -173,7 +178,7 @@
 
   if (${d}_FOUND OR ${D}_FOUND)
     message(STATUS "Building with ${d}")
-  endif()
+  endif ()
 endforeach ()
 
 
@@ -210,14 +215,17 @@
   endif ()
   string(REPLACE "/undef " "#undef "
     FTCONFIG_H "${FTCONFIG_H}")
-  file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h"
+  file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h-new"
     "${FTCONFIG_H}")
 else ()
   file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftconfig.h"
     FTCONFIG_H)
-  file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h"
+  file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h-new"
     "${FTCONFIG_H}")
 endif ()
+execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
+  "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h-new"
+  "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h")
 
 
 # Create the options file
@@ -246,8 +254,11 @@
     "/\\* +(#define +FT_CONFIG_OPTION_USE_HARFBUZZ) +\\*/" "\\1"
     FTOPTION_H "${FTOPTION_H}")
 endif ()
-file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h"
+file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h-new"
   "${FTOPTION_H}")
+execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
+  "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h-new"
+  "${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h")
 
 
 # Specify library include directories
@@ -383,30 +394,35 @@
 
 # Installations
 # Note the trailing slash in the argument to the `DIRECTORY' directive
-install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/
-  DESTINATION include/freetype2
-  PATTERN "internal" EXCLUDE
-  PATTERN "ftconfig.h" EXCLUDE
-  PATTERN "ftoption.h" EXCLUDE
-)
-install(FILES
-  ${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h
-  ${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h
-  DESTINATION include/freetype2/freetype/config
-)
-install(TARGETS freetype
-  EXPORT freetype-targets
-  RUNTIME DESTINATION bin
-  LIBRARY DESTINATION lib
-  ARCHIVE DESTINATION lib
-  FRAMEWORK DESTINATION Library/Frameworks
-)
-install(EXPORT freetype-targets
-  DESTINATION lib/cmake/freetype
-  FILE freetype-config.cmake
-)
+if (NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL)
+  install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/
+    DESTINATION include/freetype2
+    PATTERN "internal" EXCLUDE
+    PATTERN "ftconfig.h" EXCLUDE
+    PATTERN "ftoption.h" EXCLUDE
+    )
+  install(FILES
+    ${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h
+    ${PROJECT_BINARY_DIR}/include/freetype/config/ftoption.h
+    DESTINATION include/freetype2/freetype/config
+    )
+endif ()
 
+if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
+  install(TARGETS freetype
+    EXPORT freetype-targets
+    RUNTIME DESTINATION bin
+    LIBRARY DESTINATION lib
+    ARCHIVE DESTINATION lib
+    FRAMEWORK DESTINATION Library/Frameworks
+    )
+  install(EXPORT freetype-targets
+    DESTINATION lib/cmake/freetype
+    FILE freetype-config.cmake
+    )
+endif ()
 
+
 # Packaging
 # CPack version numbers for release tarball name.
 set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})

Modified: trunk/Build/source/libs/freetype2/freetype-src/ChangeLog
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/ChangeLog	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/ChangeLog	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,3 +1,1126 @@
+2016-07-05  Werner Lemberg  <wl at gnu.org>
+
+	* Version 2.6.4 released.
+	=========================
+
+
+	Tag sources with `VER-2-6-4'.
+
+	* docs/VERSION.TXT: Update documentation and bump version number to
+	2.6.4.
+
+	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
+	builds/windows/vc2005/index.html,
+	builds/windows/vc2008/freetype.vcproj,
+	builds/windows/vc2008/index.html,
+	builds/windows/vc2010/freetype.vcxproj,
+	builds/windows/vc2010/index.html,
+	builds/windows/visualc/freetype.dsp,
+	builds/windows/visualc/freetype.vcproj,
+	builds/windows/visualc/index.html,
+	builds/windows/visualce/freetype.dsp,
+	builds/windows/visualce/freetype.vcproj,
+	builds/windows/visualce/index.html,
+	builds/wince/vc2005-ce/freetype.vcproj,
+	builds/wince/vc2005-ce/index.html,
+	builds/wince/vc2008-ce/freetype.vcproj,
+	builds/wince/vc2008-ce/index.html: s/2.6.3/2.6.4/, s/263/264/.
+
+	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
+
+	* builds/unix/configure.raw (version_info): Set to 18:4:12.
+	* CMakeLists.txt (VERSION_PATCH): Set to 4.
+
+	* docs/CHANGES: Updated.
+
+2016-07-05  Werner Lemberg  <wl at gnu.org>
+
+	* src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Fix compiler warning.
+
+2016-07-04  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Variable type revision (part 2).
+
+	* src/smooth/ftgrays.c (TArea): Restore original definition as `int'.
+	(gray_render_line) [FT_LONG64]: Updated.
+	(gray_convert_glyph): 32-bit band bisection stack should be 32 bands.
+	(gray_convert_glyph_inner): Trace successes and failures.
+
+2016-07-04  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Handle single-point contours as segments.
+
+	Doing so allows us to link them to edges – some fonts like
+	`NotoSansGurmukhi-Regular' have such isolated points sitting exactly
+	on other outlines.
+
+	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Don't
+	ignore one-point contours but handle them specially as one-point
+	segments.
+	(af_latin_hints_compute_edges): Append one-point segments to edges
+	if possible.
+
+2016-07-02  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Remove unused structure members.
+
+	* src/autofit/afhints.h (AF_SegmentRec, AF_EdgeRec): Remove
+	`num_linked'.
+
+	* src/autofit/afcjk.c (af_cjk_hints_link_segments): Updated.
+
+2016-07-02  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Update to Unicode 9.0.0.
+
+	* src/autofit/afranges.c (af_arab_nonbase_uniranges,
+	af_cyrl_uniranges): Add new data.
+
+2016-07-01  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Variable type revision (part 1).
+
+	This patch restores original `TCoord' definition as `int' so that the
+	rendering pool is used more efficiently on LP64 platforms (unix).
+
+	* src/smooth/ftgrays.c (gray_TWorker, TCell, gray_TBand): Switch some
+	fields to `TCoord'.
+	(gray_find_cell, gray_render_scanline, gray_render_line, gray_hline,
+	gray_sweep, gray_convert_glyph): Updated.
+
+2016-06-28  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Minor clean-ups.
+
+	* src/smooth/ftgrays.c (gray_TWorker): Remove redundant `ycount'.
+	(gray_sweep, gray_convert_glyph, gray_dump_cells): Updated.
+
+2016-06-27  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Minor clean-ups.
+
+	* src/smooth/ftgrays.c (gray_convert_glyph): Do not use volatile
+	qualifier.
+	(gray_raster_render): Move span initializations from here.
+	(gray_sweep): ... to here and remove unused `target' argument.
+
+2016-06-26  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[pcf] Fix handling of very large fonts (#47708).
+
+	* src/pcf/pcfread.c (pcf_get_encodings): Make `encodingOffset' an
+	unsigned short.
+	Only reject `0xFFFF' as an invalid encoding offset.
+
+2016-06-25  Werner Lemberg  <wl at gnu.org>
+
+	[truetype] Really fix deallocation in case of error (#47726).
+
+	* src/truetype/ttgload.c (load_truetype_glyph): Thinko; initialize
+	`outline.points' also.
+
+2016-06-23  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Consolidate memory management.
+
+	* src/smooth/ftgrays.c (gray_init_cells): Remove function.
+	(gray_TWorker): Remove fields that become local variables.
+	(gray_raster_render): Move rendering buffer declaration from here.
+	(gray_convert_glyph): ... to here and update accordingly.
+
+2016-06-22  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Consolidate boundary checks.
+
+	Removing the checks from `gray_hline' shaves 1% off rendering speed.
+
+	* src/smooth/ftgrays.c [STANDALONE_]: Duplicate `FT_MIN' and `FT_MAX'.
+	(gray_TWorker): No need to store `clip_box'.
+	(gray_hline): Remove unnecessary boundary checks.
+	(gray_convert_glyph): Move boundary checks from here.
+	(gray_raster_render): ... to here and consolidate.
+
+2016-06-21  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Use `FT_Outline_Get_CBox'.
+
+	* src/smooth/ftgrays.c [STANDALONE_]: Duplicate `FT_Outline_Get_CBox'.
+	(gray_compute_cbox): Remove this function.
+	(gray_convert_glyph): Update to use `FT_Outline_Get_CBox'.
+
+2016-06-20  Werner Lemberg  <wl at gnu.org>
+
+	[smooth] Remove compiler warnings.
+
+	* src/smooth/ftgrays.c (gray_convert_glyph): Fix reports from clang.
+
+2016-06-20  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Sanitize memory managenent.
+
+	* src/smooth/ftgrays.c (gray_convert_glyph): Cleaned up.
+
+2016-06-18  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Remove `band_shoot' that never worked.
+
+	* src/smooth/ftgrays.c (gray_TWorker): Remove `band_shoot'.
+	(gray_convert_glyph): Updated.
+
+2016-06-17  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[raster, smooth] Handle FT_RENDER_POOL_SIZE better.
+
+	* src/raster/ftraster.c (FT_MAX_BLACK_POOL): New macro.
+	(ft_black_render): Updated.
+	* src/smooth/ftgrays.c (FT_MAX_GRAY_POOL): New macro.
+	(gray_raster_render): Updated.
+
+2016-06-16  Werner Lemberg  <wl at gnu.org>
+
+	* src/base/md5.c: Updated to recent version.
+
+2016-06-14  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	* src/smooth/ftgrays.c (gray_hline): Optimize if-condition.
+
+2016-06-13  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Add support for Cherokee script.
+
+	* src/autofit/afblue.dat: Add blue zone data for Cherokee.
+
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Cherokee standard characters.
+
+	* src/autofit/afranges.c: Add Cherokee data.
+
+	* src/autofit/afstyles.h: Add Cherokee data.
+
+2016-06-09  David Capello  <davidcapello at gmail.com>
+
+	[cmake] Avoid modifying `ftconfig.h' and `ftoption.h' files.
+
+	* CMakeLists.txt: Each time cmake is run those files are
+	modified and the whole FreeType library is recompiled.  With this
+	change we change the files only if there are real modifications, so
+	we can avoid recompilations.
+
+2016-06-09  Werner Lemberg  <wl at gnu.org>
+
+	[bdf] Check number of properties (#48166).
+
+	* src/bdf/bdflib.c (_bdf_parse_start): Implement.
+
+2016-06-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Re-enable new line renderer on 64-bit archs.
+
+	* src/smooth/ftgrays.c (gray_render_line): Conditionally re-enable new
+	implementation, where it is safe from overflows.
+
+2016-06-08  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Minor clean-ups.
+
+	* src/smooth/ftgrays.c (gray_dump_cells): Move out of the way.
+	(gray_render_span): Remove spurious casts and streamline.
+
+2016-06-07  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Add support for Ethiopic script.
+
+	* src/autofit/afblue.dat: Add blue zone data for Ethiopic.
+
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Ethiopic standard characters.
+
+	* src/autofit/afranges.c: Add Ethiopic data.
+
+	* src/autofit/afstyles.h: Add Ethiopic data.
+
+2016-06-07  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Fix compilation with VS2016 (#48126).
+
+	This compiler doesn't recognize the end-of-comment sequence `*/' if
+	it immediately follows non-ASCII characters.
+
+	* src/autofit/afscript.h: Ensure whitespace before `*/'.
+
+2016-06-04  Werner Lemberg  <wl at gnu.org>
+
+	Fix a test for named instances (#48122).
+
+	This was missed while giving negative face indices an extended
+	meaning.
+
+	* src/base/ftobjs.c (Mac_Read_sfnt_Resource): Implement.
+
+2016-05-31  Nikolaus Waxweiler  <madigens at gmail.com>
+
+	[truetype] Let SHPIX move points in the twilight zone in v40.
+
+	* src/truetype/ttinterp.c (Ins_SHPIX): Allow SHPIX to move points in
+	the twilight zone.  Otherwise, treat SHPIX the same as DELTAP.
+	Unbreaks various fonts such as older versions of Rokkitt and DTL
+	Argo T Light that would glitch severly after calling ALIGNRP after a
+	blocked SHPIX.
+
+2016-05-30  Werner Lemberg  <wl at gnu.org>
+
+	[type42] Support `CharStrings' entry format as created by LilyPond.
+
+	* src/type42/t42parse.c (t42_parse_charstrings): Handle entries
+	having the format
+
+	  (foo) cvn 12345 def
+
+2016-05-28  Werner Lemberg  <wl at gnu.org>
+
+	* src/autofit/afranges.c: Remove `UL' postfix from hex numbers.
+
+	Suggested by Alexei.  `UL' is only needed for 16bit compilers, but
+	it seems noone is using this anymore (and we no longer test whether
+	FreeType compiles in such an environment).  Otherwise, it is easy to
+	add the postfix to the `AF_UNICODE_RANGE' macro.
+
+2016-05-26  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Shrink bisection stack.
+
+	The convergence of Bézier flatteners is fast with the deviation
+	from straight line being assymptotically cut 4-fold on each bisection.
+	This justifies smaller bisection stack size.
+
+	* src/smooth/ftgrays.c (gray_TWorker): Remove common `bez_stack'.
+	(gray_render_conic): Create and use conic `bez_stack'. Move back the
+	band analysis from...
+	(gray_conic_to): ... here.
+	(gray_render_cubic): Create and use cubic `bez_stack'. Move back the
+	band analysis from...
+	(gray_cubic_to): ... here.
+	(gray_move_to): Updated.
+
+2016-05-25  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Fixes for Armenian and Gujarati ranges.
+
+	* src/autofit/afranges.c (af_armn_uniranges): Corrected.
+	(af_guru_nonbase_uniranges): Make U+0A3E a base character.
+
+2016-05-24  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Add support for Armenian script.
+
+	* src/autofit/afblue.dat: Add blue zone data for Armenian.
+
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Armenian standard characters.
+
+	* src/autofit/afranges.c: Add Armenian data.
+
+	* src/autofit/afstyles.h: Add Armenian data.
+
+2016-05-23  Werner Lemberg  <wl at gnu.org>
+
+	* builds/unix/unix-cc.in (LINK_LIBRARY): Use `-export-symbols'.
+
+	This was commented about 10 years ago – I think the reason then to
+	disable libtool's `-export-symbols' option was to give some badly
+	programmed applications access to internal FreeType functions.
+
+	I believe that we should no longer take care of such programs; the
+	number of symbols exported should be rather restricted as much as
+	possible.
+
+2016-05-22  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Add blue-zone support for Gurmukhi script.
+
+	This essentially moves the Gurmukhi script from the `Indic' hinter to
+	the `Latin' hinter.
+
+	* src/autofit/afblue.dat: Add blue zone data for Gurmukhi.
+
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Gurmukhi standard characters and move
+	data out of AF_CONFIG_OPTION_INDIC block.
+
+	* src/autofit/afranges.c: Move Gurmukhi data out of
+	AF_CONFIG_OPTION_INDIC block.
+
+	* src/autofit/afstyles.h: Update Gurmukhi data; in particular, use
+	AF_WRITING_SYSTEM_LATIN.
+
+2016-05-21  Werner Lemberg  <wl at gnu.org>
+
+	Minor clang++ fixes.
+
+	* src/base/ftobjs.c (FT_Add_Module), src/psaux/psobjs.c
+	(ps_parser_load_field), src/type1/t1load.c (parse_subrs): Add
+	initializer.
+
+	* src/cache/ftccache.h (FTC_CACHE_TRYLOOP_END): Avoid implicit
+	conversion from NULL to boolean.
+
+2016-05-21  Werner Lemberg  <wl at gnu.org>
+
+	Work around a bug of the C 8.0.0.1 compiler on AIX 5.3 (#47955).
+
+	* include/freetype/internal/ftmemory.h (cplusplus_typeof): Use
+	braces for `extern "C++"'.
+
+2016-05-17  Nikolaus Waxweiler  <madigens at gmail.com>
+
+	[truetype] Make TT_LOADER_SET_PP support subpixel hinting [3/3].
+
+	* src/truetype/ttgload.c (TT_LOADER_SET_PP): Replace macro with...
+	(tt_loader_set_pp): ... this new function.
+	Update all callers.
+
+2016-05-17  Nikolaus Waxweiler  <madigens at gmail.com>
+
+	[truetype] New implementation of v38 bytecode interpreter [2/3].
+
+	This patch actually modifies the bytecode interpreter.
+
+	See added comments in `ttinterp.h' for more information on this and
+	the following commit in the series.
+
+	* src/truetype/ttinterp.c (SUBPIXEL_HINTING): Replaced by...
+	(NO_SUBPIXEL_HINTING, SUBPIXEL_HINTING_INFINALITY,
+	SUBPIXEL_HINTING_MINIMAL): ...new macros.
+	(Direct_Move, Direct_Move_X, Direct_Move_Y): Handle backwards
+	compatibility.
+	Updated.
+	(Ins_RS, Ins_FDEF, Ins_ENDF, Ins_CALL, Ins_LOOPCALL, Ins_MD):
+	Updated.
+	(Ins_INSTCTRL): Handle native ClearType mode flag.
+	Updated.
+	(Ins_FLIPPT, Ins_FLIPRGON, Ins_FLIPRGOFF): Handle backwards
+	compatibility.
+	(Move_Zp2_Point): Ditto.
+	(Ins_SHP): Updated.
+	(Ins_SHPIX): Handle backwards compatibility.
+	Updated.
+	(Ins_MSIRP, Ins_MDAP, Ins_MIAP, Ins_MDRP, Ins_MIRP): Updated.
+	(Ins_ALIGNRP): Updated.
+	(Ins_IUP, Ins_DELTAP): Handle backwards compatibility.
+	Updated.
+	(Ins_GETINFO): Handle v38 flags.
+	Updated.
+	(TT_RunIns): Handle backwards compatibility mode.
+	Updated.
+
+2016-05-17  Nikolaus Waxweiler  <madigens at gmail.com>
+
+	[truetype] New implementation of v38 bytecode interpreter [1/3].
+
+	This patch prepares data structures and the like.
+
+	See added comments in `ttinterp.h' for more information on this and
+	the following commits in the series.
+
+	* devel/ftoption.h, include/freetype/config/ftoption.h
+	(TT_CONFIG_OPTION_SUBPIXEL_HINTING): Assign values to differentiate
+	between subpixel versions.
+	(TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY,
+	TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL): New macros.
+
+	* include/freetype/ftttdrv.h (TT_INTERPRETER_VERSION_40): New macro.
+
+	* include/freetype/internal/tttypes.h (TT_FaceRec): Updated.
+
+	* src/truetype/ttinterp.h (TT_ExecContextRec): Define new fields
+	`subpixel_hinting_lean', `vertical_lcd_lean',
+	`backwards_compatibility', `iupx_called', iupy_called', and
+	`grayscale_cleartype' for new hinting mode.
+
+	* src/truetype/ttdriver.c (tt_property_set): Handle v38 and v40
+	interpreters conditionally.
+
+	* src/truetype/ttgload.c (TT_Hint_Glyph): Save phantom points unless
+	in v38 backwards compatibility mode.
+	Updated.
+	(compute_glyph_metrics): Add v38 backwards compatibility mode
+	constraint for adjusting advance widths.
+	Updated.
+	(tt_loader_init): Handle new flags `subpixel_hinting_lean',
+	`grayscale_cleartype', and `vertical_lcd_lean'.
+	Updated.
+	(tt_get_metrics, TT_Process_Simple_Glyph, TT_LOADER_SET_PP):
+	Updated.
+
+	* src/truetype/ttobjs.c (tt_driver_init): Conditionally set
+	default interpreter version number.
+
+	* src/truetype/ttsubpix.c, src/truetype/ttsubpix.h: Updated.
+
+2016-05-17  Werner Lemberg  <wl at gnu.org>
+
+	[cff] Fix matrix scaling (#47848).
+
+	* include/freetype/config/ftstdlib.h (FT_LONG_MIN): New macro.
+
+	* src/cff/cffparse.c (cff_parse_font_matrix): Use largest scaling
+	value of all matrix coefficients to scale matrix.
+
+	* src/cff/cffobjs.c (cff_face_init): Use `matrix->yx' member for
+	matrix normalization if `matrix->yy' is zero.
+
+2016-05-16  Werner Lemberg  <wl at gnu.org>
+
+	[base] Reject invalid sfnt Mac resource (#47891).
+
+	* src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Check validity
+	of `CID ' and `TYPE1' table offset and length.
+
+2016-05-16  Werner Lemberg  <wl at gnu.org>
+
+	[cid] Fix scanning for `StartData' and `/sfnts' (#47892).
+
+	* src/cid/cidparse.c (STARTDATA, STARTDATA_LEN, SFNTS, SFNTS_LEN):
+	New macros.
+	(cid_parser_new): Fix and document algorithm.
+
+2016-05-16  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
+
+	[truetype] Improve the recursive reference detector.
+
+	The previous fix for #46372 misunderstood a composite glyph referring
+	same component twice as a recursive reference.  See the discussion
+
+	  http://lists.gnu.org/archive/html/freetype/2016-05/msg00000.html
+
+	Thanks to Khaled Hosny for finding this issue.
+
+	* src/truetype/ttgload.c (ft_list_get_node_at): A function to get
+	the i-th node from FT_List.
+	(load_truetype_glyph): In the traversal scan of the reference tree
+	in the composite glyph, we clear the nodes filled by previous
+	sibling chain.
+
+2016-05-07  Werner Lemberg  <wl at gnu.org>
+
+	[cache] Allow value 0 for face ID.
+
+	We never dereference `face_id', and some implementations might use a
+	running number instead of a pointer.  Additionally, disallowing
+	value zero was undocumented.
+
+	* src/cache/ftccmap.c (FTC_CMapCache_Lookup), src/cache/ftcmanag.c
+	(FTC_Manager_LookupFace, FTC_Manager_RemoveFaceID): Remove test for
+	`face_id'.
+
+2016-05-05  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] More efficient accounting of conic splits and draws.
+
+	A single decrement counter of segments to draw, instead of an array,
+	contains all the information necessary to decide when to split and
+	when to draw a conic segment. The number of splits before each draw is
+	equal to the number of trailing zeros in the counter.
+
+	* src/smooth/ftgrays.c (gray_TWorker): Remove `lev_stack'.
+	(gray_render_conic): Updated to use decrement counter of segments.
+
+2016-05-05  Werner Lemberg  <wl at gnu.org>
+
+	[cff, truetype] Fix logic for `FT_Property_Set'.
+
+	Otherwise some properties could be set to arbitrary values, which is
+	harmless, but querying could give wrong positive results.
+
+	* src/cff/cffdrivr.c (cff_property_set) [hinting-engine],
+	* src/truetype/ttdriver.c (tt_property_set) [interpreter-version]:
+	Only allow defined values.
+
+2016-04-25  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Add blue-zone support for Gujarati script.
+
+	This essentially moves the Gujarati script from the `Indic' hinter to
+	the `Latin' hinter.
+
+	* src/autofit/afblue.dat: Add blue zone data for Gujarati.
+
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Gujarati standard characters and move
+	data out of AF_CONFIG_OPTION_INDIC block.
+
+	* src/autofit/afranges.c: Move Gujarati data out of
+	AF_CONFIG_OPTION_INDIC block.
+
+	* src/autofit/afstyles.h: Update Gujarati data; in particular, use
+	AF_WRITING_SYSTEM_LATIN.
+
+2016-04-24  Werner Lemberg  <wl at gnu.org>
+
+	Minor.
+
+	* include/freetype/freetype.h (FT_HAS_*, FT_IS_*): Protect macro
+	argument with parentheses.
+
+2016-04-24  Werner Lemberg  <wl at gnu.org>
+
+	[truetype] Fix deallocation in case of error (#47726).
+
+	* src/truetype/ttgload.c (load_truetype_glyph): Initialize fields in
+	`outline' that are going to be deallocated in case of error.
+
+2016-04-23  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Improve Georgian blue zone characters.
+
+	Suggested by Akaki Razmadze <razmadzekoko at gmail.com>.
+
+	* src/autofit/afblue.dat (AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM):
+	Updated.
+
+	* src/autofit/afblue.c: Regenerated.
+
+2016-04-16  David Capello  <davidcapello at gmail.com>
+
+	[cmake] Honor SKIP_INSTALL_* settings (as used in zlib).
+
+	As FreeType depends on zlib, if we don't install zlib (e.g., because
+	we defined SKIP_INSTALL_ALL), FreeType cannot be installed, too
+	(cmake triggers an error saying that FreeType cannot be installed
+	because zlib target isn't in the export set).
+
+	* CMakeLists.txt: Honor `SKIP_INSTALL_HEADERS',
+	`SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL' settings.
+
+2016-04-16  Behdad Esfahbod  <behdad at behdad.org>
+
+	[truetype] Another fix for non-intermediate GX tuples.
+
+	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Add some missing
+	cases.
+
+2016-04-12  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	Remove forgotten macro.
+
+	* include/freetype/internal/internal.h
+	[FT_INTERNAL_POSTSCRIPT_GLOBALS_H]: Remove.
+
+2016-04-09  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Add support for Georgian scripts.
+
+	Georgian is problematic, since `uppercase' forms of Mkhedruli
+	(called Mtavruli) are not yet defined in Unicode, which means that
+	proper blue zones can't be defined.  However, there is already a
+	proposal submitted to Unicode; see
+
+	  http://www.unicode.org/L2/L2016/16034-n4707-georgian.pdf
+
+	Additionally, due to historical reasons, Unicode treats Khutsuri as
+	the same script as Mkhedruli, and so does OpenType.  However, since
+	the two scripts have completely different shapes it can happen that
+	blue zones differ considerably.  The tag `geok' used here (derived
+	from ISO 15924) to differentiate the two scripts is not an OpenType
+	tag in use.  If we now have a font that contains both glyphs for
+	Mkhedruli and Khutsuri, and it uses OpenType features for both also,
+	HarfBuzz unavoidably treats all glyphs as `geor'.  As a consequence,
+	blue zones for `geok' are not used for glyphs involved in the
+	OpenType features.
+
+	An issue not yet resolved is which OpenType feature should be used
+	to access Mtavruli glyph shapes; right now, FreeType doesn't set up
+	support for them, but it is easy to add them later on as soon as
+	more information is available.
+
+	* src/autofit/afblue.dat: Add blue zone data for Georgian.
+
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Georgian standard characters.
+
+	* src/autofit/afranges.c: Add Georgian data.
+
+	* src/autofit/afstyles.h: Add Georgian data.
+
+2016-04-05  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Provide dummy blue zone for pseudo script `none'.
+
+	Even if the dummy hinter is used as the handler for `none' (which
+	doesn't use blue zones), it is more consistent than the old value
+	(which was 0), pointing to Arabic...
+
+	* src/autofit/afblue.dat: Add `AF_BLUE_STRINGSET_NONE'.
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afstyles.h (none_dflt): Use AF_BLUE_STRINGSET_NONE.
+
+2016-03-30  Werner Lemberg  <wl at gnu.org>
+
+	* src/pfr/pfrload.c (pfr_aux_name_load): Thinko (#47567).
+
+2016-03-30  Werner Lemberg  <wl at gnu.org>
+
+	* src/pfr/pfrload.c (pfr_log_font_count): Better font size estimate.
+
+2016-03-30  Werner Lemberg  <wl at gnu.org>
+
+	* src/pfr/pfrload.c (pfr_aux_name_load): Fix memory leak (#47567).
+
+2016-03-29  Werner Lemberg  <wl at gnu.org>
+
+	* src/base/ftadvanc.c (FT_Get_Advances): Fix invalid left shift.
+
+2016-03-29  Werner Lemberg  <wl at gnu.org>
+
+	[pfr] Fix binary search (#47514).
+
+	* src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Handle border
+	conditions correctly.
+
+2016-03-29  Werner Lemberg  <wl at gnu.org>
+
+	[pfr] Minor.
+
+	* src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Replace `left',
+	`right', and `middle' with `min', `max', and `mid' as used in other
+	FreeType binary search code.
+	(pfr_load_bitmap_metrics): Fix invalid left shift.
+
+2016-03-29  Werner Lemberg  <wl at gnu.org>
+
+	* src/pfr/pfrtypes.h: Replace all enums with macros.
+
+	We need `~FOO' to unset bits, and only with unsigned values (which
+	`enum' isn't normally) this works cleanly.
+
+2016-03-26  Werner Lemberg  <wl at gnu.org>
+
+	[pfr] Robustify bitmap strike handling (#47514).
+
+	We did a binary search for a charcode without ensuring that the
+	searched data is ordered.  Validating the order is now done lazily,
+	this is, the first access to a bitmap glyph triggers the order check
+	in the corresponding bitmap strike.
+
+	* src/pfr/pfrtypes.h (PFR_BitmapFlags): New values
+	`PFR_BITMAP_VALID_CHARCODES' and `PFR_BITMAP_CHARCODES_VALIDATED'.
+
+	* src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Make `flags' argument
+	a pointer.  Handle new PFR_BITMAP_XXX flags.
+	(pfr_slot_load_bitmap): Updated.
+
+2016-03-26  Werner Lemberg  <wl at gnu.org>
+
+	[pfr] Fix handling of compound glyphs.
+
+	Extra items are indicated with different bit positions.
+
+	* src/pfr/pfrtypes.h (PFR_GlyphFlags): Replace
+	`PFR_GLYPH_EXTRA_ITEMS' with `PFR_GLYPH_SIMPLE_EXTRA_ITEMS' and
+	`PFR_GLYPH_COMPOUND_EXTRA_ITEMS'.
+
+	* src/pfr/pfrgload.c (pfr_glyph_load_simple,
+	pfr_glyph_load_compound): Use them.
+
+2016-03-25  Werner Lemberg  <wl at gnu.org>
+
+	[pfr] Minor.
+
+	* src/pfr/pfrsbit.c, src/pfr/pfrobjs.c: Use flag names instead of
+	bare numbers.
+
+2016-03-25  Werner Lemberg  <wl at gnu.org>
+
+	[pfr] Various clang sanitizer fixes.
+
+	* src/pfr/pfrsbit.c (pfr_load_bitmap_metrics): Correctly handle
+	signed nibbles.
+	(pfr_slot_load_bitmap): Correctly exit frame in case of error.
+	Fix invalid left shifts.
+
+2016-03-23  Werner Lemberg  <wl at gnu.org>
+
+	Rename `VERSION.DLL' (#47472).
+
+	* docs/VERSION.DLL: Renamed to...
+	* docs/VERSIONS.TXT: ...this.
+
+2016-03-23  Werner Lemberg  <wl at gnu.org>
+
+	[raster, smooth] Directly test outline size (#47500).
+
+	This improves stand-alone compilation.
+
+	* src/base/ftoutln.c (FT_Outline_Render): Move cbox size test to...
+
+	* src/raster/ftraster.c (ft_black_render), src/smooth/ftgrays.c
+	(gray_raster_render): ...these functions.
+
+2016-03-23  Werner Lemberg  <wl at gnu.org>
+
+	[raster, smooth] Fix some clang sanitizer runtime issues.
+
+	* src/raster/ftraster.c (ft_black_reset, ft_black_set_mode,
+	ft_black_render): Harmonize signatures with `ftimage.h'.
+
+	* src/smooth/ftgrays.c (gray_raster_render, gray_raster_reset):
+	Ditto.
+
+2016-03-22  Werner Lemberg  <wl at gnu.org>
+
+	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Minor.
+
+	This fixes an AddressSanitizer issue:
+
+	  ttgload.c:430:7: runtime error: null pointer passed as argument 1,
+	                   which is declared to never be null
+
+2016-03-21  Werner Lemberg  <wl at gnu.org>
+
+	* src/autofit/afhints.c (af_glyph_hints_reload): Thinko.
+
+	This fixes the previous commit to this file.
+
+2016-03-21  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Partly revert recent changes.
+
+	* src/smooth/ftgrays.c (gray_conic_to, gray_cubic_to): Rework
+	conditions to fix rendering issues.
+
+2016-03-20  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Show `near' points in tracing.
+
+	* src/autofit/afhints.h (AF_FLAG_NEAR): New macro.
+
+	* src/autofit/afhints.c (af_glyph_hints_dump_points): Implement it.
+	(af_glyph_hints_reload): Handle AF_FLAG_NEAR.
+
+2016-03-18  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Minor refactoring and microoptimizations.
+
+	* src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move
+	band clipping from here.
+	(gray_conic_to, gray_cubic_to): ... to here.
+	(gray_rander_line, gray_render_scanline): Initialize variables closer
+	to their use.
+
+2016-03-17  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Minor refactoring.
+
+	* src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move
+	upscaling from here.
+	(gray_conic_to, gray_cubic_to): ... to here.
+
+2016-03-15  Werner Lemberg  <wl at gnu.org>
+
+	* src/autofit/aflatin.c (af_latin_compute_stem_width): Optimize.
+
+2016-03-14  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Temporarily revert 6eb6158dd787 (#47114).
+
+	* src/smooth/ftgrays.c (gray_render_line): Old implementation.
+
+2016-03-12  Werner Lemberg  <wl at gnu.org>
+
+	[ftfuzzer] Improve coverage of rasterfuzzer.
+
+	* src/tools/ftfuzzer/rasterfuzzer.cc (LLVMFuzzerTestOneInput): Use
+	input data for `tags' array also.
+	Trim input data to get more positive hits.
+
+2016-03-11  Pavlo Denysov  <paul.kiev+savannah at gmail.com>
+
+	Fix CMake issues for iOS (patch #8941).
+
+	* CMakeLists.txt (CMAKE_TOOLCHAIN_FILE): Fix directory.
+	* builds/cmake/iOS.cmake: No longer enforce gcc.
+
+2016-03-09  Behdad Esfahbod  <behdad at behdad.org>
+
+	[truetype] Fix handling of non-intermediate GX tuples.
+
+	We probably did not notice this as all fonts we tested had only
+	tuple_coords[i] be +1 or -1 for non-intermediate tuples.
+
+	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Implement it.
+
+2016-03-06  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[base] Refuse to render enormous outlines (#47114).
+
+	The goal is to avoid integer overflows in the rendering algorithms.
+	The limit is chosen arbitrarily at some 2^18 pixels, which should be
+	enough for modern devices including printers.
+
+	* src/base/ftoutln.c (FT_Outline_Render): Check CBox and reject
+	enormous outlines.
+
+2016-03-06  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Replace left shifts with multiplications (#47114).
+
+	* src/smooth/ftgrays.c (SUBPIXELS, UPSCALE, DOWNSCALE): Do it.
+
+2016-03-05  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Avoid excessive stem length rounding (#25392).
+
+	* src/autofit/aflatin.c (af_latin_compute_stem_width): Add argument
+	to pass difference between hinted and unhinted position of base
+	point; use this to adjust the stem width depending on the PPEM so
+	that it doesn't become too large under certain circumstances.
+	Update all callers using value 0 for this argument except...
+	(af_latin_align_linked_edge): Pass position delta of base point to
+	`af_latin_compute_stem_width'.
+
+2016-03-05  J Raynor  <jxraynor at gmail.com>
+
+	Make FreeType compile on AIX out of the box.
+
+	* builds/unix/configure.raw (XX_ANSIFLAGS): Don't use `-ansi' on
+	AIX.
+
+2016-03-01  Werner Lemberg  <wl at gnu.org>
+	    Kostya Serebryany  <kcc at google.com>
+
+	[ftfuzzer] Add unit for testing smooth and black rasterizers.
+
+	* src/tools/ftfuzzer/rasterfuzzer.cc: New file.
+
+2016-03-01  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Fix reallocation error introduced in 2016-02-27 (#47310).
+
+	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Reassign
+	`prev_segment' after reallocation.
+
+2016-03-01  Werner Lemberg  <wl at gnu.org>
+
+	Fix clang warnings.
+
+	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Use
+	FT_UShort for `min_flags' and `max_flags'.
+	Initialize `prev_*' variables.
+
+	* src/cff/cffobjs.c (cff_face_init) [FT_DEBUG_LEVEL_TRACE]: Fix
+	types of local variables.
+
+	* src/smooth/ftgrays.c (gray_dump_cells) [FT_DEBUG_LEVEL_TRACE]:
+	Update `printf' format string.
+
+	* src/tools/ftfuzzer/ftfuzzer.cc (setIntermediateAxis): Add cast.
+	(LLVMFuzzerTestOneInput): Fix loop type.
+
+2016-02-29  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Add blue-zone support for Sinhala script.
+
+	This essentially moves the Sinhala script from the `Indic' hinter to
+	the `Latin' hinter.
+
+	* src/autofit/afblue.dat: Add blue zone data for Sinhala.
+
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Sinhala standard character and move data
+	out of AF_CONFIG_OPTION_INDIC block.
+
+	* src/autofit/afranges.c: Move Sinhala data out of
+	AF_CONFIG_OPTION_INDIC block.
+
+	* src/autofit/afstyles.h: Update Sinhala data; in particular, use
+	AF_WRITING_SYSTEM_LATIN.
+
+2016-02-27  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Properly handle spikes pointing to the x-axis.
+
+	An example that gets better rendered is glyph `uusignTaml' (glyph
+	index 2286) in font `FreeSerif.ttf' (Version 0412.2263) at 22ppem.
+
+	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Properly
+	handle segments where the last point of the first segment is
+	identical to the first point in the second one.  This can happen for
+	malformed fonts or spikes.  We either merge the new segment with the
+	previous one (both segments point into the same direction), or we
+	discard the shorter segment if they point into different directions.
+
+2016-02-27  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Minor code clean-up.
+
+	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Change
+	some local variable names to better differentiate between values
+	along a segment and values orthogonal to it.
+
+2016-02-26  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Improve BOUND action.
+
+	In complex glyph shapes, the original logic was too simple to cater
+	for situations that would actually need something similar to PS Hint
+	masks.  This fix should alleviate the worst cases.
+
+	* src/autofit/aflatin.c (af_latin_hint_edges): Don't allow
+	complete disappearance of stems.
+
+2016-02-25  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Add blue-zone support for Tamil script.
+
+	This essentially moves the Tamil script from the `Indic' hinter to
+	the `Latin' hinter.
+
+	* src/autofit/afblue.dat: Add blue zone data for Tamil.
+
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Tamil standard character and move data
+	out of AF_CONFIG_OPTION_INDIC block.
+
+	* src/autofit/afranges.c: Move Tamil data out of
+	AF_CONFIG_OPTION_INDIC block.
+
+	* src/autofit/afstyles.h: Update Tamil data; in particular, use
+	AF_WRITING_SYSTEM_LATIN.
+
+2016-02-18  Werner Lemberg  <wl at gnu.org>
+
+	[autofit] Add blue-zone support for Malayalam script.
+
+	This essentially moves the Malayalam script from the `Indic' hinter
+	to the `Latin' hinter.
+
+	* src/autofit/afblue.dat: Add blue zone data for Malayalam.
+
+	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+	* src/autofit/afscript.h: Add Malayalam standard characters and move
+	data out of AF_CONFIG_OPTION_INDIC block.
+
+	* src/autofit/afranges.c: Move Malayalam data out of
+	AF_CONFIG_OPTION_INDIC block.
+
+	* src/autofit/afstyles.h: Update Malayalam data; in particular, use
+	AF_WRITING_SYSTEM_LATIN.
+
+2016-02-16  Alexei Podtelezhnikov  <apodtele at gmail.com>
+
+	[smooth] Fix integer overflow (#47114).
+
+	* src/smooth/ftgrays.c (TArea): Make it unconditionally `long'.
+
+2016-02-15  Werner Lemberg  <wl at gnu.org>
+
+	* src/cff/cffparse.c (cff_parse_multiple_master): Improve tracing.
+
+2016-02-15  Werner Lemberg  <wl at gnu.org>
+
+	[cff] Handle T2 operator only with old CFF engine (#47157).
+
+	* src/cff/cffparse.c (cff_parser_run) <opcode 31>: Enclose with
+	#ifdef CFF_CONFIG_OPTION_OLD_ENGINE...#endif.
+
+2016-02-15  Werner Lemberg  <wl at gnu.org>
+
+	[cff] Partially handle `load' and `store' ops in old CFF engine.
+
+	Now all glyphs of MM CFFs like `ITCGaramondMM-It.otf' can be
+	displayed.
+
+	* src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_store,
+	cff_op_load>: Partially implement it.
+
+	* src/cff/cffparse.c (cff_parser_init): Add new parameter to pass
+	the number of Multiple Master axes.
+	Update all callers.
+	(cff_parse_multiple_master): Get number of axes.
+	(cff_parser_run) <opcode 31>: Updated.
+	* src/cff/cffparse.h: Updated.
+	(CFF_ParserRec): Add `num_axes' field.
+
+	* src/cff/cffload.c: Updated.
+
+	* src/cff/cfftypes.h (CFF_FontRecDictRec): Add `num_axes' field.
+
+2016-02-15  Werner Lemberg  <wl at gnu.org>
+
+	[cff] Correctly trace SIDs that contain NULL bytes.
+
+	We need this to properly trace Multiple Master CFFs, which contain
+	two SIDs that are charstrings.
+
+	This commit makes FreeType also show the last SID, omitted
+	previously due to a bug.
+
+	* src/cff/cfftypes.h (CFF_FontRec): Add `string_pool_size' field.
+
+	* src/cff/cffload.c (cff_index_get_pointers): Add argument to return
+	the pool size.
+	Update all callers.
+
+	* src/cff/cffobjs.c (cff_face_init) [FT_DEBUG_LEVEL_TRACE]: Directly
+	access `cff->strings' to display the non-default strings.
+
+2016-02-14  Werner Lemberg  <wl at gnu.org>
+
+	* src/base/fthash.c: Include FT_INTERNAL_MEMORY_H.
+
+2016-02-14  Werner Lemberg  <wl at gnu.org>
+
+	* src/cff/cffparse.c: Include `cffgload.h'.
+
+	Problem reported by Colin Walters <walters at verbum.org>.
+
+2016-02-14  Werner Lemberg  <wl at gnu.org>
+
+	[cff] Make old CFF engine show MM CFFs (without variations).
+
+	The new code only displays the first master in the font.
+
+	* src/cff/cffgload.c (cff_decode_parse_charstrings): Add new
+	parameter to allow function calls from dictionaries also.
+	<cff_op_blend>: Partially implement it.
+	Update all callers.
+	* src/cff/cffgload.h: Updated.
+
+	* src/cff/cffparse.c (cff_parser_init): Add new parameter to pass the
+	number of Multiple Master designs.
+	Update all callers.
+	(cff_parse_multiple_master): New function to rudimentarily parse
+	operator.
+	(cff_parser_run): Handle `T2' operator.
+	* src/cff/cffparse.h: Updated.
+	(CFF_ParserRec): Add `num_designs' field.
+
+	* src/cff/cffload.c: Updated.
+
+	* src/cff/cfftoken.h: Handle `MultipleMaster' operator.
+
+	* src/cff/cfftypes.h (CFF_FontRecDictRec): Add `num_designs' field.
+
+	* src/sfnt/sfobjs.c (sfnt_init_face): Don't handle `fvar' table for
+	MM CFFs.
+
+2016-02-09  Werner Lemberg  <wl at gnu.org>
+
+	[docmaker] Don't emit trailing newlines.
+
+	* src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_code):
+	Use `rstrip'.
+
 2016-02-07  Werner Lemberg  <wl at gnu.org>
 
 	* Version 2.6.3 released.
@@ -29,7 +1152,7 @@
 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
 
 	* builds/unix/configure.raw (version_info): Set to 18:3:12.
-	* CMakeLists.txt (VERSION_PATCH): Set to 2.
+	* CMakeLists.txt (VERSION_PATCH): Set to 3.
 
 	* docs/CHANGES: Updated.
 
@@ -372,7 +1495,7 @@
 	* src/autofit/afscript.h: Add another parameter to `SCRIPT',
 	specifying hinting direction.
 
-	* src/autofit/afglobal.c, scr/autofit/afglobal.h,
+	* src/autofit/afglobal.c, src/autofit/afglobal.h,
 	src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/afshaper.c,
 	src/autofit/aftypes.h: Extend `SCRIPT' definitions.
 
@@ -561,7 +1684,7 @@
 	[bdf] Remove dead code (#46625).
 
 	The BDF specification only allows decimal numbers, no octal or
-	hexidecimal decoding is needed.
+	hexadecimal decoding is needed.
 
 	* src/bdf/bdflib.c (_bdf_atoul, _bdf_atol, _bdf_atous,
 	_bdf_atos): Remove unused code and parameters.
@@ -575,12 +1698,12 @@
 	* src/base/ftobjs.c (Mac_Read_sfnt_Resource, FT_Open_Face): Set
 	`error'.
 
-2015-12-14  Ben Wagner <bungeman at gmail.com>
+2015-12-14  Ben Wagner  <bungeman at gmail.com>
 
 	[base] Check error when seeking to data supplied offset (#46635).
 
 	* src/base/ftobjs.c (open_face_PS_from_sfnt_stream):
-	`ft_lookup_PS_in_sfnt_stream' returns offset and and length from
+	`ft_lookup_PS_in_sfnt_stream' returns offset and length from
 	user supplied data.  Use of this these values must be checked.
 
 2015-12-13  Werner Lemberg  <wl at gnu.org>
@@ -734,7 +1857,7 @@
 	* src/autofit/afglobal.c: s/hbshim.h/afshaper.h/.
 	(af_face_globals_compute_style_coverage): Updated.
 
-	* src/autofit/afglocal.h: s/hbshim.h/afshaper.h/.
+	* src/autofit/afglobal.h: s/hbshim.h/afshaper.h/.
 
 	* src/autofit/autofit.c: s/hbshim.c/afshaper.c/.
 
@@ -902,7 +2025,7 @@
 
 2015-11-27  Tamas Kenez  <tamas.kenez at adasworks.com>
 
-	[cmake] Make `FindHarfbuzz' observe the REQUIRED option.
+	[cmake] Make `FindHarfBuzz' observe the REQUIRED option.
 
 	* builds/cmake/FindHarfBuzz.cmake: Implement it.
 
@@ -1700,7 +2823,7 @@
 
 2015-10-04  Werner Lemberg  <wl at gnu.org>
 
-	[bzip2, gzip] Avoid access of unitialized memory (#46109).
+	[bzip2, gzip] Avoid access of uninitialized memory (#46109).
 
 	* src/bzip2/ftbzip2.c (ft_bzip2_file_fill_input), src/gzip/ftgzip.c
 	(ft_gzip_file_fill_input): In case of an error, adjust the limit to
@@ -1708,7 +2831,7 @@
 
 2015-10-03  Werner Lemberg  <wl at gnu.org>
 
-	[bzip2, gzip] Avoid access of unitialized memory (#46109).
+	[bzip2, gzip] Avoid access of uninitialized memory (#46109).
 
 	* src/bzip2/ftbzip2.c (ft_bzip2_file_fill_output), src/gzip/ftgzip.c
 	(ft_gzip_file_fill_output): In case of an error, adjust the limit to
@@ -2117,7 +3240,7 @@
 	[raster,smooth] Microoptimizations.
 
 	* src/raster/ftraster.c (Insert_Y_Turn, Finalize_Profile_Table,
-	Beziier_Up, ): Use do-while loops.
+	Bezier_Up, ): Use do-while loops.
 
 	* src/smooth/ftgrays.c (gray_render_scanline, gray_render_line,
 	gray_convert_glyph): Ditto.
@@ -2248,7 +3371,7 @@
 	[base] Improve emboldener (#45596).
 
 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Correct displacement
-	of zero-lenght segments.
+	of zero-length segments.
 
 2015-08-16  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
@@ -2323,7 +3446,7 @@
 	* src/type1/t1gload.c (T1_Load_Glyph): Directly modify advances only
 	if font matrix is not trivial.
 	* src/cff/cffgload.c (cff_slot_load): Ditto.
-	* sff/cid/cidgload.c (cid_slot_load_glyph): Ditto for advances and the
+	* src/cid/cidgload.c (cid_slot_load_glyph): Ditto for advances and the
 	entire outline.
 
 2015-08-11  Werner Lemberg  <wl at gnu.org>
@@ -2536,7 +3659,7 @@
 	* src/autofit/aftypes.h [FT_DEBUG_AUTOFIT]: Include
 	FT_CONFIG_STANDARD_LIBRARY_H earlier.
 
-	* src/truetype/ttpic.h: Include FT_INTERNL_PIC_H.
+	* src/truetype/ttpic.h: Include FT_INTERNAL_PIC_H.
 
 2015-07-07  Werner Lemberg  <wl at gnu.org>
 
@@ -2560,13 +3683,13 @@
 	(load_truetype_glyph), src/truetype/ttgxvar.c (tt_handle_deltas),
 	src/truetype/ttinterp.c (Ins_INSTCTRL): Fix signedness issues.
 
-2015-06-29  Alexei Podtelezhnikov <apodtele at gmail.com>
+2015-06-29  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
 	[truetype] Speed up bytecode interpreter.
 
 	* src/truetype/ttinterp.c (Normalize): Use `FT_Vector_NormLen'.
 
-2015-06-29  Alexei Podtelezhnikov <apodtele at gmail.com>
+2015-06-29  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
 	[base] Speed up emboldening.
 
@@ -2573,7 +3696,7 @@
 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Use
 	`FT_Vector_NormLen'.
 
-2015-06-29  Alexei Podtelezhnikov <apodtele at gmail.com>
+2015-06-29  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
 	[base] Implement fast vector normalization.
 
@@ -2681,11 +3804,11 @@
 
 	* docs/*: Updated.
 
-2015-06-24  Alexei Podtelezhnikov <apodtele at gmail.com>
+2015-06-24  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
 	* src/bdf/bdflib.c (_bdf_parse_start): Disallow 0 bpp.
 
-2015-06-24  Alexei Podtelezhnikov <apodtele at gmail.com>
+2015-06-24  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
 	* src/bdf/bdflib.c (_bdf_parse_start): Simplify bpp parsing.
 
@@ -2987,7 +4110,7 @@
 	incremental interface callback to apply the encoding to raw
 	character index (as it was in the previous code).
 
-2015-04-29  Alexei Podtelezhnikov <apodtele at gmail.com>
+2015-04-29  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
 	[autofit] Speed up IUP.
 
@@ -3008,7 +4131,7 @@
 	* src/cff/cffdrivr.c (cff_get_ps_name): Use the `sfnt' service if we
 	have an SFNT.
 
-2015-04-27  Alexei Podtelezhnikov <apodtele at gmail.com>
+2015-04-27  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
 	[truetype] Speed up IUP.
 
@@ -3068,7 +4191,7 @@
 
 	* src/autofit/afhints.h (AF_HINTS_DO_WARP): New macro.
 
-	* src/autofi/aflatin.c (af_latin_hints_apply)
+	* src/autofit/aflatin.c (af_latin_hints_apply)
 	[AF_CONFIG_OPTION_USE_WARPER]: Use `AF_HINTS_DO_WARP' to control use
 	of warper.
 
@@ -3090,15 +4213,15 @@
 	* src/cff/cffgload.c (cff_slot_load): Use advance width and side
 	bearing values from `hmtx' table if present.
 
-2015-04-03  Alexei Podtelezhnikov <apodtele at gmail.com>
+2015-04-03  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
 	* src/autofit/afhints.c (af_glyph_hints_reload): Use do-while loop.
 
-2015-04-02  Alexei Podtelezhnikov <apodtele at gmail.com>
+2015-04-02  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
 	* src/autofit/aflatin.c (af_latin_hint_edges): Reduce logic.
 
-2015-04-01  Alexei Podtelezhnikov <apodtele at gmail.com>
+2015-04-01  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
 	[autofit] Finish the thought.
 
@@ -3174,7 +4297,7 @@
 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
 	<cff_op_callsubr, cff_op_callgsubr, cff_op_return>: Ditto.
 
-2015-03-21  Alexei Podtelezhnikov <apodtele at gmail.com>
+2015-03-21  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
 	[base] Optimize `FT_Angle_Diff'.
 
@@ -3193,11 +4316,11 @@
 	single-element runs.  Cf. glyph `Q' in Skia.ttf with weights larger
 	than the default.
 
-2015-03-20  Alexei Podtelezhnikov <apodtele at gmail.com>
+2015-03-20  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
 	* src/base/fttrigon.c (FT_Vector_Rotate): Minor refactoring.
 
-2015-03-17  Alexei Podtelezhnikov <apodtele at gmail.com>
+2015-03-17  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
 	Fix Savannah bug #44412 (part 2).
 
@@ -3284,7 +4407,7 @@
 	include/config/ftheader.h, include/ftfntfmt.h, modules.cfg,
 	src/base/ftfntfmt.c, vms_make.com: Updated.
 
-2015-03-10  Alexei Podtelezhnikov <apodtele at gmail.com>
+2015-03-10  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
 	Fix Savannah bug #44412 (part 1).
 
@@ -3305,7 +4428,7 @@
 
 	Found by Alexei.
 
-2015-03-05  Alexei Podtelezhnikov <apodtele at gmail.com>
+2015-03-05  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
 	* src/base/ftstroke.c: Simplify.
 
@@ -3699,7 +4822,7 @@
 	* src/pfr/pfrload.c (pfr_extra_item_load_font_id): Ditto.
 	* src/psaux/psobjs.c (ps_table_add), src/psaux/psobjs.h: Ditto.
 	* src/type1/t1load.c (parse_blend_axis_types, parse_encoding,
-	parse_chharstrings, parse_dict): Ditto.
+	parse_charstrings, parse_dict): Ditto.
 	* src/type42/t42parse.c (t42_parse_encoding, t42_parse_charstrings,
 	t42_parse_dict): Ditto.
 
@@ -3772,7 +4895,7 @@
 	* include/internal/ftstream.h (FT_Stream_Pos): Return `FT_ULong'.
 
 	* src/base/ftoutln.c, src/base/ftrfork.c, src/base/ftstream.c:
-	Signedess fixes.
+	Signedness fixes.
 
 2015-02-16  Werner Lemberg  <wl at gnu.org>
 
@@ -4290,7 +5413,7 @@
 
 2015-01-11  Werner Lemberg  <wl at gnu.org>
 
-	[truetype] Prettyfing.
+	[truetype] Prettifying.
 
 	* src/truetype/ttinterp.c (project, dualproj, fast_project,
 	fast_dualproj): Rename to...
@@ -4322,7 +5445,7 @@
 	[truetype] More macro expansions.
 
 	* src/truetype/ttinterp.c (INS_ARG): Remove macro by expansion,
-	adjusting funtion calls where necessary.
+	adjusting function calls where necessary.
 	(FT_UNUSED_ARG): Removed, no longer needed.
 
 2015-01-10  Werner Lemberg  <wl at gnu.org>

Modified: trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.20
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.20	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.20	2016-07-07 09:56:43 UTC (rev 41649)
@@ -330,7 +330,7 @@
 
 2001-12-22  Francesco Zappa Nardelli  <Francesco.Zappa.Nardelli at ens.fr>
 
-	* src/pfc/pcfread.c (pcf_load_font): Handle property `POINT_SIZE'
+	* src/pcf/pcfread.c (pcf_load_font): Handle property `POINT_SIZE'
 	and fix incorrect computation of `available_sizes'.
 
 2001-12-22  David Turner  <david at freetype.org>
@@ -412,7 +412,7 @@
 	* src/cff/cffgload.h: Updated.
 	* src/cff/cffobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
 	(CFF_Size_Get_Globals_Funcs, CFF_Size_Done, CFF_Size_Init,
-	CFF_Size_Reset, CFF_GlyphSlot_Done, CFF_GLyphSlot_Init): New
+	CFF_Size_Reset, CFF_GlyphSlot_Done, CFF_GlyphSlot_Init): New
 	functions.
 	(CFF_Init_Face): Renamed to ...
 	(CFF_Face_Init): This.
@@ -1056,7 +1056,7 @@
 
 2001-08-30  Anthony Feik  <afeick at hotmail.com>
 
-	* src/type1/t1afm.c (T1_Read_Afm): Now correctly sets the flag
+	* src/type1/t1afm.c (T1_Read_AFM): Now correctly sets the flag
 	FT_FACE_FLAG_KERNING when appropriate for Type1 + AFM files.
 
 2001-08-25  Werner Lemberg  <wl at gnu.org>
@@ -1176,7 +1176,7 @@
 
 	* include/freetype/internal/psaux.h (PS_Table): Use FT_Offset for
 	`cursor' and `capacity'.
-	* src/psaux/psobjc.c (reallocate_t1_table): Use FT_Long for second
+	* src/psaux/psobjs.c (reallocate_t1_table): Use FT_Long for second
 	parameter.
 	(PS_Table_Add): Use FT_Offset for `new_size'.
 
@@ -1710,7 +1710,7 @@
 	`FT_Err_*' with `CFF_Err_*'.
 	* src/cid/cidparse.c: Replaced `FT_Err_*' with `T1_Err_*'.
 	* src/psaux/psobjs.c, src/psaux/t1decode.c: Ditto.
-	* src/sfnt/sfobcs.c, src/sfnt/ttload.c: Replaced `FT_Err_*' with
+	* src/sfnt/sfobjs.c, src/sfnt/ttload.c: Replaced `FT_Err_*' with
 	`TT_Err_*'.
 	* src/truetype/ttgload.c, src/truetype/ttobjs.c: Ditto.
 	* src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1objs.c,
@@ -1730,7 +1730,7 @@
 	* src/cff/cffobjs.c (CFF_Init_Face, CFF_Done_Face): Use
 	FT_LOCAL_DEF.
 	* src/cid/cidobjs.c (CID_Done_Driver): Ditto.
-	* src/trutype/ttobjs.c (TT_Init_Face, TT_Done_Face, TT_Init_Size):
+	* src/truetype/ttobjs.c (TT_Init_Face, TT_Done_Face, TT_Init_Size):
 	Ditto.
 	* src/type1/t1objs.c (T1_Done_Driver): Ditto.
 	* src/pcf/pcfdriver.c (PCF_Done_Face): Ditto.
@@ -1759,7 +1759,7 @@
 
 2001-03-20  Werner Lemberg  <wl at gnu.org>
 
-	* builds/win32/detekt.mk: Fix .PHONY target for Intel compiler.
+	* builds/win32/detect.mk: Fix .PHONY target for Intel compiler.
 
 2001-03-20  David Turner  <david.turner at freetype.org>
 
@@ -2338,7 +2338,7 @@
 2000-12-06  Werner Lemberg  <wl at gnu.org>
 
 	* builds/module.mk: Replaced `xxx #' with `xxx$(space).
-	* builds/os2/detekt.mk, builds/win32/detekt.mk: Moved comment to
+	* builds/os2/detect.mk, builds/win32/detect.mk: Moved comment to
 	avoid trailing spaces in variable.
 	* builds/freetype.mk: Use $(D) instead of $D to make statement more
 	readable.
@@ -2412,7 +2412,7 @@
 	* builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
 	`setup'.
 
-2000-11-30  David Turner  <david.turner at freetype.ogr>
+2000-11-30  David Turner  <david.turner at freetype.org>
 
 	* INSTALL: Slightly updated the quick starter documentation to
 	include IDE compilation, prevent against BSD Make, and specify `make

Modified: trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.21
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.21	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.21	2016-07-07 09:56:43 UTC (rev 41649)
@@ -327,7 +327,7 @@
 	Blaskey <listtarget at danbala.com>).
 
 	* src/sfnt/ttcmap.h (TT_CMap): Add member `unsorted'.
-	* src/sfnt/ttcmac.c: Use SFNT_Err_Ok where appropriate.
+	* src/sfnt/ttcmap.c: Use SFNT_Err_Ok where appropriate.
 
 	(tt_cmap0_validate, tt_cmap2_validate, tt_cmap6_validate,
 	tt_cmap8_validate, tt_cmap10_validate, tt_cmap12_validate): Use
@@ -571,7 +571,7 @@
 	doing anything else.  This avoids unnecessary heap allocations
 	(400KByte of heap memory for the LZW decoder).
 
-	* src/gzip/ftgzip.c (FT_Stream_OpenGZip): Ditto for the gzip
+	* src/gzip/ftgzip.c (FT_Stream_OpenGzip): Ditto for the gzip
 	decoder, although the code savings are smaller.
 
 	* docs/CHANGES: Updated.
@@ -756,7 +756,7 @@
 	(AF_AxisHintsRec): Add `max_segments' and `max_edges'.
 	(af_axis_hints_new_segment, af_axis_hints_new_edge): New prototypes.
 
-	* src/autofit/aflatin.c (af_latin_metricsc_scale): Don't call
+	* src/autofit/aflatin.c (af_latin_metrics_scale): Don't call
 	AF_SCALER_EQUAL_SCALES.
 	(af_latin_hints_compute_segments): Change return type to FT_Error.
 	Update all callers.
@@ -1014,7 +1014,7 @@
 	t42_parse_charstrings, t42_parse_dict): Check parser error value
 	after call to T1_Skip_PS_Token (where necessary).
 
-	* src/psaux/psobjc.c (skip_string, ps_parser_skip_PS_token,
+	* src/psaux/psobjs.c (skip_string, ps_parser_skip_PS_token,
 	ps_tobytes): Add error messages.
 
 2005-02-12  Werner Lemberg  <wl at gnu.org>
@@ -1112,7 +1112,7 @@
 	but return them as-is.
 
 	* docs/CHANGES: Mention new bitmap API.
-	* include/freetype/ftchapter.s: Updated.
+	* include/freetype/ftchapters.h: Updated.
 
 2004-12-11  Robert Clark  <freetype at ratty.org.uk>
 
@@ -1159,7 +1159,7 @@
 	(ah_test_extremum, ah_get_orientation): Removed.
 	(ah_outline_load): Use FT_Outline_Get_Orientation.
 
-	* src/base/ftsynth.c (ft_test_extrama, ft_get_orientation): Removed.
+	* src/base/ftsynth.c (ft_test_extrema, ft_get_orientation): Removed.
 	(FT_GlyphSlot_Embolden): Use FT_Outline_Get_Orientation.
 
 2004-11-23  Fernando Papa  <fpapa at netgate.com.uy>
@@ -1829,7 +1829,7 @@
 
 2004-08-05  David Turner  <david at freetype.org>
 
-	`Activate' gray-scale specifing hinting within the TrueType
+	`Activate' gray-scale specifying hinting within the TrueType
 	bytecode interpreter.  This is an experimental feature which
 	should probably be made optional.
 
@@ -1839,7 +1839,7 @@
 	(TT_Load_Glyph): Here.
 	Set `grayscale' flag except for `FT_LOAD_TARGET_MONO'.
 
-	* src/truetyep/ttinterp.c (Ins_GETINFO): Return MS rasterizer
+	* src/truetype/ttinterp.c (Ins_GETINFO): Return MS rasterizer
 	version 1.7.
 	Return rotation and stretching info only if glyph is rotated or
 	stretched, respectively.
@@ -2048,7 +2048,7 @@
 	pcf_get_metrics, pcf_get_bitmaps, pcf_get_encodings): Improve
 	debugging messages.
 
-	* src/pcf/pcfdrivr.c (FT_COMPOMENT): Move up.
+	* src/pcf/pcfdrivr.c (FT_COMPONENT): Move up.
 	(PCF_Face_Init): Simplify code.
 
 	* src/bdf/bdfdrivr.h (BDF_FaceRec): New element `default_glyph'.
@@ -2116,7 +2116,7 @@
 	* include/freetype/cache/ftcmru.h (FTC_MruNode_CompareFunc): Change
 	return type to FT_Bool.
 
-	* src/cache/ftbasic.c (ftc_basic_family_compare): Change return
+	* src/cache/ftcbasic.c (ftc_basic_family_compare): Change return
 	type to FT_Bool.
 
 	* src/cache/ftccache.c (FTC_Cache_Init, ftc_cache_init): Make
@@ -2153,7 +2153,7 @@
 
 	* docs/CHANGES: Updated.
 
-2004-06-04  David Chester  <davidchester at gmx.net>
+2004-06-04  David Chester  <davidchester at qmx.net>
 
 	Improve inter-letter spacing for autohinted glyphs.
 
@@ -2289,7 +2289,7 @@
 
 	* src/cff/cffgload.h (CFF_Builder): Remove `error'.
 	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Replace
-	`Memory_Error' with `Fail' und update all users.
+	`Memory_Error' with `Fail' and update all users.
 
 2004-05-11  Werner Lemberg  <wl at gnu.org>
 
@@ -2899,7 +2899,7 @@
 	Improve MacOS fond support.  Provide a new API
 	`FT_New_Face_From_FSSpec' similar to `FT_New_Face'.
 
-	* src/base/ftmac.c [__MWERKS__]: Include FSp_fpopen.h.
+	* src/base/ftmac.c [__MWERKS__]: Include FSp_fopen.h.
 	STREAM_FILE [__MWERKS__]: New macro.
 	(ft_FSp_stream_close, ft_FSp_stream_io) [__MWERKS__]: New functions.
 	(file_spec_from_path) [__MWERKS__]: Updated #if statement.
@@ -3331,7 +3331,7 @@
 
 	* src/cff/cffdrivr.c (cff_get_cmap_info): Call sfnt module's TT CMap
 	Info service function if the cmap comes from sfnt.  Return 0 if the
-	cmap is sythesized in cff module.
+	cmap is synthesized in cff module.
 
 2004-01-20  David Turner  <david at freetype.org>
 
@@ -3460,7 +3460,7 @@
 
 2003-12-25  Werner Lemberg  <wl at gnu.org>
 
-	* src/base/fttrigon.c, src/base/ftgloadr.c: Inlude
+	* src/base/fttrigon.c, src/base/ftgloadr.c: Include
 	FT_INTERNAL_OBJECTS_H.
 
 	* src/base/ftstroke.c (FT_Outline_GetInsideBorder,
@@ -3539,7 +3539,7 @@
 	src/cache/ftcsbits.c,
 	src/cache/ftccmap.c,
 	src/cache/ftcbasic.c (added),
-	src/cache/ftclru.c (removed):
+	src/cache/ftlru.c (removed):
 
 	  *Complete* rewrite of the cache sub-system to `solve' the
 	  following points:
@@ -4010,7 +4010,7 @@
 	* src/cff/cffload.h, src/cff/cffobjs.h, src/cff/cffparse.h: Don't
 	include FT_INTERNAL_CFF_TYPES_H but cfftypes.h directly.
 
-	* src/cif/cidriver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
+	* src/cid/cidriver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
 	(cid_ps_get_font_info): New function.
 	(cid_service_ps_info): New service.
 	(cid_services): Updated.
@@ -4119,7 +4119,7 @@
 	(fnt_cmap_class_rec, fnt_cmap_class), src/bdf/bdflib.c (empty,
 	_num_bdf_properties), src/gzip/infutil.c (inflate_mask),
 	src/gzip/inffixed.h (fixed_bl, fixed_bd, fixed_tl, fixed_td),
-	src/gzip/inftrees.h (inflate_trees_fixed), srf/gzip/inftrees.c
+	src/gzip/inftrees.h (inflate_trees_fixed), src/gzip/inftrees.c
 	(inflate_trees_fixed): Decorate with more `const' to avoid
 	writable global variables which are disallowed on ARM.
 
@@ -4659,7 +4659,7 @@
 
 	* src/type42/t42drivr.c: Include FT_SERVICE_XFREE86_NAME_H,
 	FT_SERVICE_GLYPH_DICT_H, and FT_SERVICE_POSTSCRIPT_NAME_H.
-	(t42_service_glyph_dict, t42_service_ps_name): New strucures
+	(t42_service_glyph_dict, t42_service_ps_name): New structures
 	providing Type 42 services.
 	(t42_services): New services list.
 	(T42_Get_Interface): Use `ft_service_list_lookup'.
@@ -4683,7 +4683,7 @@
 	(gindex,gindex).
 
 	* src/base/ftpfr.c (ft_pfr_check): Fix serious typo.
-	* src/pfr/prfload.c: Remove dead code.
+	* src/pfr/pfrload.c: Remove dead code.
 	(pfr_get_gindex, pfr_compare_kern_pairs, pfr_sort_kerning_pairs):
 	New functions.
 	(pfr_phy_font_done): Free `kern_pairs'.
@@ -5116,7 +5116,7 @@
 	ft_glyph_bbox_subpixels, ft_glyph_bbox_gridfit,
 	ft_glyph_bbox_truncate, ft_glyph_bbox_pixels): Replaced with
 	FT_GLYPH_BBOX_UNSCALED, FT_GLYPH_BBOX_SUBPIXELS,
-	FT_GLYPH_BBIX_GRIDFIT, FT_GLYPH_BBOX_TRUNCATE, FT_GLYPH_BBOX_PIXELS.
+	FT_GLYPH_BBOX_GRIDFIT, FT_GLYPH_BBOX_TRUNCATE, FT_GLYPH_BBOX_PIXELS.
 	The lowercase variants are now (deprecated aliases) to the uppercase
 	versions.
 	Updated all other files.
@@ -5346,7 +5346,7 @@
 	* src/cff/cffload (cff_subfont_load): Fix default values of
 	expansion_factor and blue_scale.
 
-	* src/cif/cidtoken.h, src/type1/t1tokens.h: Use T1_FIELD_FIXED_1000
+	* src/cid/cidtoken.h, src/type1/t1tokens.h: Use T1_FIELD_FIXED_1000
 	for blue_scale.
 
 	* src/pshinter/pshglob.c (psh_globals_new): Fix default value of
@@ -5569,7 +5569,7 @@
 	* src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c
 	(PCF_Face_Init): Test for charset registry case-insensitively.
 
-	* src/gzip/ftgzip.c (ft_gzip_fil_io): Revert change from yesterday;
+	* src/gzip/ftgzip.c (ft_gzip_file_io): Revert change from yesterday;
 	it has already been fixed differently.
 
 	* src/truetype/ttinterp.c (DO_SFVTL): Add missing braces around
@@ -5706,7 +5706,7 @@
 	(ah_outline_compute_edges): Scale `edge_distance_threshold' down
 	after rounding instead of scaling comparison value in loop.
 
-	* src/autohint/ahhint.c (ah_hinter_align_stong_points): Provide
+	* src/autohint/ahhint.c (ah_hinter_align_strong_points): Provide
 	alternative code which runs faster.
 	Handle `before->scale == 0'.
 
@@ -5960,7 +5960,7 @@
 
 2003-03-27  David Turner  <david at freetype.org>
 
-	* README: Udpated.
+	* README: Updated.
 
 	* README.UNX: Removed (now replaced by docs/INSTALL.UNX).
 
@@ -6275,7 +6275,7 @@
 	(bdf_driver_class): Use `bdf_driver_requester'.
 
 	* src/pcf/pcfdrivr.c: Include FT_BDF_H.
-	(pcf_get_bdf_property, pdc_driver_requester): New functions
+	(pcf_get_bdf_property, pcf_driver_requester): New functions
 	(pcf_driver_class): Use `pcf_driver_requester'.
 
 	* src/pcf/pcfread.c: Include `pcfread.h'.
@@ -6547,7 +6547,7 @@
 
 2002-11-07  David Turner  <david at freetype.org>
 
-	* src/cache/ftcsbit.c (ftc_sbit_node_load): Fixed a small bug that
+	* src/cache/ftcsbits.c (ftc_sbit_node_load): Fixed a small bug that
 	caused problems with embedded bitmaps.
 
 	* src/otlayout/otlayout.h, src/otlyaout/otlconf.h,
@@ -6608,7 +6608,7 @@
 
 2002-11-01  David Turner  <david at freetype.org>
 
-	Added PFR-specific public API.  Fixed the kerning retrievel routine
+	Added PFR-specific public API.  Fixed the kerning retrieval routine
 	(it returned invalid values when the outline and metrics resolution
 	differ).
 
@@ -6695,7 +6695,7 @@
 	* src/pfr/pfrgload.c: Include `pfrsbit.h'.
 	* src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): Rewritten.
 	(pfr_phy_font_done, pfr_phy_font_load): Updated.
-	* src/pfr/pfrobks.c: Include `pfrsbit.h'.
+	* src/pfr/pfrobjs.c: Include `pfrsbit.h'.
 	(pfr_face_init): Handle kerning and embedded bitmaps.
 	(pfr_slot_load): Load embedded bitmaps.
 	(PFR_KERN_INDEX): Removed.
@@ -6973,7 +6973,7 @@
 
 	* src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points),
 	src/pshinter/pshalgo3.c (psh3_glyph_find_strong_points): Adding fix
-	to prevent seg fault when hints are provided in an empty glyph.
+	to prevent segfault when hints are provided in an empty glyph.
 
 	* src/cache/ftccache.i (GEN_CACHE_LOOKUP) [FT_DEBUG_LEVEL_ERROR]:
 	Removed conditional code.  This fixes a bug that prevented
@@ -7032,7 +7032,7 @@
 	(FTC_Image_Cache_Lookup): This function.
 	(ftc_image_family_init): Updated.
 
-	* src/cache/ftcsbit.c (FTC_SBitQueryRec, FTC_SBitFamilyRec):
+	* src/cache/ftcsbits.c (FTC_SBitQueryRec, FTC_SBitFamilyRec):
 	Updated.
 	(ftc_sbit_node_load): Updated.
 	Moved code to convert type flags to load flags to...
@@ -7155,7 +7155,7 @@
 	to ...
 	(FT_Glyph_{Init,Done,Transform,GetBBox,Copy,Prepare}Func): This.
 	(FTRenderer_{render,transform,getCBox,setMode}): Renamed to ...
-	(FT_Renderer_{RenderFunc,TransformFunc,GetCBoxFunc,SeteModeFunc}):
+	(FT_Renderer_{RenderFunc,TransformFunc,GetCBoxFunc,SetModeFunc}):
 	This.
 
 	Updated all affected code.
@@ -7556,7 +7556,7 @@
 	Get glyph offset.
 
 	* src/truetype/ttobjs.c (TT_Face_Init)
-	[FT_CONFIG_OPTION_INCOREMENTAL]: Added the incremental loading
+	[FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading
 	system for the TrueType driver.
 
 	* src/cid/cidgload.c (cid_load_glyph)
@@ -7897,7 +7897,7 @@
 
 2002-06-21  Sven Neumann  <sven at convergence.de>
 
-	* src/prf/pfrtypes.h (PFR_KernPair): New structure.
+	* src/pfr/pfrtypes.h (PFR_KernPair): New structure.
 	(PFR_PhyFont): Use it.
 	(PFR_KernFlags): New enumeration.
 	* src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): New
@@ -8245,7 +8245,7 @@
 	`fttype1.c' in src/base.
 
 	* src/pshinter/pshglob.c (psh_blues_scale_zones): Fixed a bug that
-	prevented family blue zones substitution from hapenning correctly.
+	prevented family blue zones substitution from happening correctly.
 
 	* include/freetype/ftbdf.h FT_Get_BDF_Charset_ID): Adding
 	documentation comment.
@@ -8622,7 +8622,7 @@
 
 2002-04-19  Werner Lemberg  <wl at gnu.org>
 
-	* src/pfr/pfrload.c (pfr_extra_items_farse): Fix debug message.
+	* src/pfr/pfrload.c (pfr_extra_items_parse): Fix debug message.
 	(pfr_phy_font_load): s/size/Size/ for local variable to avoid
 	compiler warning.
 	* src/pfr/pfrobjs.c (pfr_face_init): Fix debug message.
@@ -8676,7 +8676,7 @@
 
 2002-04-16  Francesco Zappa Nardelli  <Francesco.Zappa.Nardelli at ens.fr>
 
-	* src/pcf/pcfread (pcf_get_accell): Fix parsing of accelerator
+	* src/pcf/pcfread.c (pcf_get_accel): Fix parsing of accelerator
 	tables.
 
 2002-04-15  David Turner  <david at freetype.org>
@@ -8716,7 +8716,7 @@
 
 	src/cache/ftcimage.c, src/cache/ftcsbits.c,
 
-	src/cff/cffdriver.c, src/cff/cffload.c, src/cff/cffobjs.c,
+	src/cff/cffdrivr.c, src/cff/cffload.c, src/cff/cffobjs.c,
 
 	src/cid/cidload.c, src/cid/cidparse.c, src/cid/cidriver.c,
 
@@ -9068,7 +9068,7 @@
 
 	* include/freetype/internal/psaux.h, src/cid/cidload.c,
 	src/cidtoken.h, src/psaux/psobjs.c, src/psaux/psobjs.h,
-	src/psaux/t1decode.c, stc/type1/t1load.c, src/type1/t1tokens.h:
+	src/psaux/t1decode.c, src/type1/t1load.c, src/type1/t1tokens.h:
 	Updated common PostScript type definitions.
 	Renamed all enumeration values like to uppercase variants:
 
@@ -9076,7 +9076,7 @@
 	  t1_field_cid_info => T1_FIELD_LOCATION_CID_INFO
 	  etc.
 
-	* include/freetype/internal/psglobals.h: Removed.
+	* include/freetype/internal/psglobal.h: Removed.
 	* include/freetype/internal/pshints.h, src/pshinter/pshglob.h:
 	Updated.
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.22
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.22	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.22	2016-07-07 09:56:43 UTC (rev 41649)
@@ -260,7 +260,7 @@
 2006-04-26  Werner Lemberg  <wl at gnu.org>
 
 	* src/psaux/psobjs.c (shift_elements): Don't use FT_Long but
-	FT_PtrDiff for `delta'.  Reported by Céline PILLET
+	FT_PtrDist for `delta'.  Reported by Céline PILLET
 	<Celine.Pillet at Tagginfo.com>.
 
 2006-04-21  David Turner  <david at freetype.org>
@@ -352,7 +352,7 @@
 	* src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'"
 	also.
 
-2006-03-23  David Turner <david at freetype.org>
+2006-03-23  David Turner  <david at freetype.org>
 
 	Add FT_Get_SubGlyph_Info API to retrieve subglyph data.  Note that
 	we do not expose the FT_SubGlyphRec structure.
@@ -360,7 +360,7 @@
 	* include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved
 	to...
 	* include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here.
-	(FT_Get_SybGlyph_Info): New declaration.
+	(FT_Get_SubGlyph_Info): New declaration.
 
 	* src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function.
 
@@ -387,10 +387,10 @@
 	(FTC_INode_Weight): Commented out.
 	* src/cache/ftcimage.h: Updated.
 
-	* src/cache/ftmanag.c (FTC_Manager_Compress,
+	* src/cache/ftcmanag.c (FTC_Manager_Compress,
 	FTC_Manager_RegisterCache, FTC_Manager_FlushN):
 	s/FT_EXPORT/FT_LOCAL/.
-	* src/cache/ftmanag.h: Updated.
+	* src/cache/ftcmanag.h: Updated.
 
 	* src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New,
 	FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/.
@@ -934,7 +934,7 @@
 	* include/freetype/freetype.h (FT_GlyphSlotRec): Improve
 	documentation of `outline' field.
 
-	* src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
+	* src/sfnt/sfobjs.c: Include FT_INTERNAL_DEBUG_H.
 	* src/sfnt/sfdriver.c: Include ttmtx.h.
 
 	* src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
@@ -1630,8 +1630,8 @@
 
 	* include/freetype/internal/t1types.h (T1_FaceRec): Updated.
 
-	* src/psaux/t1cmap.h (T1_CmapStdRec): Updated.
-	(T1_CmapUnicode, T1_CmapUnicodeRec): Removed.
+	* src/psaux/t1cmap.h (T1_CMapStdRec): Updated.
+	(T1_CMapUnicode, T1_CMapUnicodeRec): Removed.
 
 	* src/psaux/t1cmap.c (t1_get_glyph_name): New callback function.
 	(t1_cmap_unicode_init, t1_cmap_unicode_done,
@@ -1781,7 +1781,7 @@
 	Note that this doesn't force auto-hinting for all fonts, however.
 
 	* src/autofit/afhints.c (af_glyph_hints_reload): Don't set
-	scaler_fiags here but...
+	scaler_flags here but...
 	(af_glyph_hints_rescale): Here.
 
 	* src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
@@ -1813,7 +1813,7 @@
 	[TT_CONFIG_OPTION_BDF]: New structure.
 	(TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'.
 
-	* include/freetype/ttags.h (TTAG_BDF): New macro.
+	* include/freetype/tttags.h (TTAG_BDF): New macro.
 
 	* src/sfnt/Jamfile (_sources): Add ttbdf.
 
@@ -1835,7 +1835,7 @@
 
 2005-12-07  Werner Lemberg  <wl at gnu.org>
 
-	* src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to...
+	* src/sfnt/sfobjs.c (sfnt_init_face): Move tag check to...
 	* src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.
 
 2005-12-06  Chia-I Wu  <b90201047 at ntu.edu.tw>
@@ -1962,7 +1962,7 @@
 
 	* docs/CHANGES: Mention scaling bug.
 
-2005-11-18  susuzki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
+2005-11-18  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
 
 	* include/freetype/ftgxval.h, src/base/ftgxval.c
 	(FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free
@@ -2311,7 +2311,7 @@
 	CJK font).  A SING Glyphlet Font is an OpenType font that contains
 	the outline(s), either in a `glyf' or `CFF' table, for a glyph;
 	`cmap', `BASE', and `GSUB' tables are present with the same format
-	and functionaliy as a regular OpenType font; there are no `name',
+	and functionality as a regular OpenType font; there are no `name',
 	`head', `OS/2', and `post' tables; there are two new tables, `SING'
 	which contains details about the glyphlet, and `META' which contains
 	metadata.
@@ -2320,7 +2320,7 @@
 
 	  http://www.adobe.com/products/indesign/sing_gaiji.html
 
-	* include/freetype/ttags.h (TTAG_SING, TTAG_META): New macros for
+	* include/freetype/tttags.h (TTAG_SING, TTAG_META): New macros for
 	the OpenType tables `SING' and `META'.  These two tables are used in
 	SING Glyphlet Format fonts.
 
@@ -2371,7 +2371,7 @@
 	(gxv_kern_subtable_fmt1_valueTable_load,
 	gxv_kern_subtable_fmt1_subtable_setup,
 	gxv_kern_subtable_fmt1_entry_validate): Fix C++ compiler errors.
-	(gxv_kern_coverage_validate): Use KERN_DIALECT_UNKWOWN.
+	(gxv_kern_coverage_validate): Use KERN_DIALECT_UNKNOWN.
 	Improve trace message.
 	(gxv_kern_validate_generic): Fix C++ compiler error.
 	Improve trace message.

Modified: trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.23
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.23	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.23	2016-07-07 09:56:43 UTC (rev 41649)
@@ -139,7 +139,7 @@
 	Fix compilation warning.
 
 	* src/base/ftbase.h: s/LOCAL_DEF/LOCAL/.
-	* src/base/ftobjc.s: Include ftbase.h conditionally.
+	* src/base/ftobjs.c: Include ftbase.h conditionally.
 
 2010-01-11  Kwang Yul Seo  <skyul at company100.net>
 
@@ -197,7 +197,7 @@
 	Fix Savannah bug #28395.
 
 	* src/truetype/ttdriver.c (Load_Glyph), src/type1/t1gload.c
-	(T1_Loada_Glyph): Don't check `num_glyphs' if incremental interface
+	(T1_Load_Glyph): Don't check `num_glyphs' if incremental interface
 	is used.
 
 2010-01-05  Ken Sharp  <ken.sharp at artifex.com>
@@ -655,7 +655,7 @@
 	[Win64] Improve the computation of random seed from stack address.
 
 	On LLP64 platform, the conversion from pointer to FT_Fixed need
-	to drop higher 32-bit.  Explict casts are required. Reported by
+	to drop higher 32-bit.  Explicit casts are required. Reported by
 	NightStrike from MinGW-w64 project.  See
 	http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
 
@@ -891,7 +891,7 @@
 	pcf: Fix a comparison between FT_Long and FT_ULong.
 
 	* src/pcf/pcfread.c (pcf_get_bitmaps): Return an error
-	if PCF_Face->nemetrics is negative.
+	if PCF_Face->nmetrics is negative.
 
 2009-07-31  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
 
@@ -1150,7 +1150,7 @@
 
 2009-07-31  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
 
-	cache: Insert explict casts for LP64 systems.
+	cache: Insert explicit casts for LP64 systems.
 
 	* src/cache/ftcbasic.c (FTC_ImageCache_Lookup,
 	FTC_SBitCache_Lookup): The type of FTC_ImageType->width
@@ -1409,7 +1409,7 @@
 
 	base: Prevent some overflows on LP64 systems.
 
-	* src/base/ftadvance.c (FT_Get_Advances): Cast the
+	* src/base/ftadvanc.c (FT_Get_Advances): Cast the
 	unsigned long constant FT_LOAD_ADVANCE_ONLY to FT_UInt32
 	for LP64 platforms.
 
@@ -1499,7 +1499,7 @@
 
 	bdf: Fix some data types mismatching with their sources.
 
-	* src/bdf/bdrdrivr.c (bdf_cmap_char_index): The type
+	* src/bdf/bdfdrivr.c (bdf_cmap_char_index): The type
 	of `code' is matched with BDF_encoding_el->enc.
 	(bdf_cmap_char_next): The type of `charcode' is
 	matched with BDF_encoding_el->enc.  When *acharcode
@@ -1545,7 +1545,7 @@
 	* src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Exclude
 	the legacy behaviour from 16-bit platform, because the
 	current hack cannot detect the caller uses this function
-	via legacy convension.
+	via legacy convention.
 	(FTC_SBitCache_Lookup): Ditto.
 
 2009-07-31  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
@@ -1585,7 +1585,7 @@
 
 2009-07-31  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
 
-	fttypes.h: Cast FT_MAKE_TAG output to FT_Tag exlicitly.
+	fttypes.h: Cast FT_MAKE_TAG output to FT_Tag explicitly.
 
 	* include/freetype/fttypes.h (FT_MAKE_TAG):
 	Cast the result to FT_Tag.
@@ -1687,7 +1687,7 @@
 	sfnt: Count the size of the memory object by ptrdiff_t.
 
 	* src/sfnt/ttbdf.c (tt_face_find_bdf_prop): The type of
-	`peroperty_len' is changed from FT_UInt to FT_Offset,
+	`property_len' is changed from FT_UInt to FT_Offset,
 	to match with size_t, which is appropriate type for the
 	object in the memory buffer.
 
@@ -2122,7 +2122,7 @@
 	Use 16.16 format everywhere (except for large integers followed by a
 	`div').
 	[CAN_HANDLE_NON_INTEGRAL_T1_OPERANDS]: Remove #ifdef and activate
-	code uncoditionally.
+	code unconditionally.
 	Add support for random numbers and update remaining code
 	accordingly; this should work now.
 	(t1_operator_seac): Updated.
@@ -2479,7 +2479,7 @@
 	af_latin_script_class struct will have function to init it instead of
 	being allocated in the global scope.
 	Change af_latin_blue_chars to be PIC-compatible by being a two
-	dimentional array rather than array of pointers.
+	dimensional array rather than array of pointers.
 
 
 	* src/autofit/aflatin2.h declare af_latin2_script_class
@@ -2489,11 +2489,11 @@
 	af_latin2_script_class struct will have function to init it instead of
 	being allocated in the global scope.
 	Change af_latin2_blue_chars to be PIC-compatible by being a two
-	dimentional array rather than array of pointers.
+	dimensional array rather than array of pointers.
 
 	* src/autofit/afglobal.c when FT_CONFIG_OPTION_PIC is defined
 	af_script_classes array initialization was moved to afpic.c and
-	is later refered using macros defeined in afpic.h.
+	is later referred using macros defined in afpic.h.
 
 	New Files:
 	* src/autofit/afpic.h declare struct to hold PIC globals for autofit
@@ -2573,7 +2573,7 @@
 	Macros will be used from rastpic.h in order to access
 	ft_standard_raster from the pic_container (allocated in ftraster.c).
 	In ft_raster1_render when PIC is enabled, the last letter of
-	module_name is used to verfy the renderer class rather than the
+	module_name is used to verify the renderer class rather than the
 	class pointer.
 
 	* src/raster/ftraster.c when FT_CONFIG_OPTION_PIC is defined
@@ -2755,7 +2755,7 @@
 	And macros will be used from ttpic.h in order to access them
 	from the pic_container.
 	* src/truetype/ttobjs.c change trick_names array to be
-	PIC-compatible by being a two dimentional array rather than array
+	PIC-compatible by being a two dimensional array rather than array
 	of pointers.
 
 	New Files:
@@ -2784,14 +2784,14 @@
 	Add macros to declare, allocate and initialize drivers
 	(FT_Driver_ClassRec).
 	* include/freetype/internal/ftpic.h new file to declare the
-	FT_PIC_Container struct and the functions to allocate and detroy it.
+	FT_PIC_Container struct and the functions to allocate and destroy it.
 	* include/freetype/internal/ftserv.h add macros to allocate and
-	destory arrays of FT_ServiceDescRec.
+	destroy arrays of FT_ServiceDescRec.
 	* include/freetype/internal/internal.h define macro to include
 	ftpic.h.
 
 	New Files:
-	* src/base/ftpic.c implement functions to allocate and destory the
+	* src/base/ftpic.c implement functions to allocate and destroy the
 	global pic_container.
 	* src/base/basepic.h declare struct to hold PIC globals for base and
 	macros to access them.
@@ -2814,8 +2814,8 @@
 	* src/base/ftglyph.c when FT_CONFIG_OPTION_PIC is defined
 	ft_bitmap_glyph_class and ft_outline_glyph_class will be allocated
 	in the pic_container instead of the global scope and use macros from
- 	basepic.h to access them.
-	* src/base/ftbbox.c allocate bbox_interface stract on the stack
+	basepic.h to access them.
+	* src/base/ftbbox.c allocate bbox_interface struct on the stack
 	instead of the global scope when FT_CONFIG_OPTION_PIC is defined.
 	* src/base/ftstroke.c access ft_outline_glyph_class allocated in
 	ftglyph.c via macros from basepic.h
@@ -3519,7 +3519,7 @@
 2008-12-21  Werner Lemberg  <wl at gnu.org>
 
 	* src/pfr/pfrdrivr.c, src/winfonts/winfnt.c, src/cache/ftcmanag.c,
-	src/smooth/ftgrays.c, src/base/ftobjc.s, src/sfobjs.c:
+	src/smooth/ftgrays.c, src/base/ftobjs.c, src/sfobjs.c:
 	s/_Err_Bad_Argument/_Err_Invalid_Argument/.  The former is for
 	errors in the bytecode interpreter only.
 
@@ -3576,7 +3576,7 @@
 
 	* docs/CHANGES: Updated.
 
-2008-12-18  Bevan, David  <dbevan at emtex.com>
+2008-12-18  David Bevan  <dbevan at emtex.com>
 
 	Provide API for accessing embedding and subsetting restriction
 	information.
@@ -3656,12 +3656,12 @@
 	* src/sfnt/sfobjs.c (sfnt_load_face): A font with neither outlines
 	nor bitmaps is scalable.
 
-2008-12-05  Werner Lemberg  <wl at nu.org>
+2008-12-05  Werner Lemberg  <wl at gnu.org>
 
 	* src/autofit/aflatin.c (af_latin_uniranges): Add more ranges.  This
 	fixes Savannah bug #21190 which also provides a basic patch.
 
-2008-12-05  Werner Lemberg  <wl at nu.org>
+2008-12-05  Werner Lemberg  <wl at gnu.org>
 
 	* include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): Use value
 	0x100 instead of 0x10000; the latter value is already occupied by
@@ -4098,7 +4098,7 @@
 2008-09-18  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
 
 	* src/cff/cffobjs.c (cff_face_init): Use TTAG_OTTO defined
-	in ttags.h instead of numerical value 0x4F54544FL.
+	in tttags.h instead of numerical value 0x4F54544FL.
 
 2008-09-16  Werner Lemberg  <wl at gnu.org>
 
@@ -4160,7 +4160,7 @@
 	used in building of FreeType2, it is written in `freetype2.pc' and
 	`freetype-config'.
 
-2008-09-01  david turner  <david at freetype.org>
+2008-09-01  David Turner  <david at freetype.org>
 
 	* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Accept a negative cmap
 	index to mean `use default cached FT_Face's charmap'.  This fixes
@@ -4248,7 +4248,7 @@
 2008-08-29  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
 
 	* src/sfnt/sfobjs.c (sfnt_open_font): Use TTAG_OTTO defined in
-	ttags.h instead of FT_MAKE_TAG( 'O', 'T', 'T', 'O' ).
+	tttags.h instead of FT_MAKE_TAG( 'O', 'T', 'T', 'O' ).
 
 2008-08-28  Werner Lemberg  <wl at gnu.org>
 
@@ -4258,7 +4258,7 @@
 
 2008-08-23  Werner Lemberg  <wl at gnu.org>
 
-	* src/type/t1afm.c (compare_kern_pairs), src/pxaux/afmparse.c
+	* src/type/t1afm.c (compare_kern_pairs), src/psaux/afmparse.c
 	(afm_compare_kern_pairs): Fix comparison.  This fixes Savannah bug
 	#24119.
 
@@ -4387,7 +4387,7 @@
 
 	* src/cff/cffload.c (cff_font_load): Pass `pure_cff'.
 	Invert sids table only if `pure_cff' is set.
-	* src/cff/cffload.h: Udpated.
+	* src/cff/cffload.h: Updated.
 
 	* src/cff/cffobjs.c (cff_face_init): Updated.
 	Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set.
@@ -4931,7 +4931,7 @@
 	tt_cmap14_find_variant): Return correct value.
 	(tt_cmap14_variant_chars): Fix check for `di'.
 
-2008-02-29  Wermer Lemberg  <wl at gnu.org>
+2008-02-29  Werner Lemberg  <wl at gnu.org>
 
 	* docs/CHANGES: Updated.
 
@@ -5329,7 +5329,7 @@
 
 2007-08-18  Werner Lemberg  <wl at gnu.org>
 
-	* src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs.  Found
+	* src/otvalid/otvcommn.c (otv_x_y_ux_sy): Skip context glyphs.  Found
 	by Imran Yousaf.  Fixes Savannah bug #20773.
 
 	(otv_Lookup_validate): Correct handling of LookupType.  Found by
@@ -5428,7 +5428,7 @@
 	* include/freetype/config/ftheader.h (FT_CID_H): New macro.
 	* include/freetype/ftcid.h: New file.
 
-	* include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro.
+	* include/freetype/internal/ftserv.h (FT_SERVICE_CID_H): New macro.
 	* include/freetype/internal/services/svcid.h: New file.
 
 	* src/base/ftcid.c: New file.
@@ -5938,7 +5938,7 @@
 
 	Savannah patch #5929.
 
-	* include/freetype/tttables.h, src/base/ftobjcs.c
+	* include/freetype/tttables.h, src/base/ftobjs.c
 	(FT_Get_CMap_Format): New function.
 
 	* include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
@@ -6005,7 +6005,7 @@
 
 2007-05-11  David Turner  <david at freetype.org>
 
-	* src/cache/ftbasic.c, include/freetype/ftcache.h
+	* src/cache/ftcbasic.c, include/freetype/ftcache.h
 	(FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
 	functions that allow us to look up glyphs using an FTC_Scaler object
 	to specify the size, making it possible to use fractional pixel
@@ -6097,8 +6097,8 @@
 
 2007-04-06  David Turner  <david at freetype.org>
 
-	* src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
-	(Savannah bug #19536).
+	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite
+	bug (Savannah bug #19536).
 
 2007-04-04  Werner Lemberg  <wl at gnu.org>
 
@@ -6201,7 +6201,7 @@
 	conftest.c, to avoid unexpected shell evaluation.  Possibly it is a
 	bug or undocumented behaviour of autoconf.
 
-2007-03-18  David Turner   <david at freetype.org>
+2007-03-18  David Turner  <david at freetype.org>
 
 	* src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
 	fix; testing still needed.
@@ -6208,7 +6208,7 @@
 
 	* src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
 
-2007-03-17  David Turner   <david at freetype.org>
+2007-03-17  David Turner  <david at freetype.org>
 
 	* src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
 	(undocumented) twilight zone special case.
@@ -6256,7 +6256,7 @@
 	case FT_Init_FreeType fails for some reason.  Problem reported by
 	Maximilian Schwerin <maximilian.schwerin at buelowssiege.de>.
 
-	* src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
+	* src/truetype/ttobjs.c (tt_size_init_bytecode): Clear the `x_ppem'
 	and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
 	`TT_Size.root.metrics'.  Problem reported by Daniel Glöckner
 	<daniel-gl at gmx.net>.
@@ -6335,7 +6335,7 @@
 	* src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
 	functions.
 
-	* src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
+	* src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Init),
 	src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
 	(pcf_get_properties, pcf_interpret_style, pcf_load_font),
 	src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
@@ -6546,7 +6546,7 @@
 2007-01-16  David Turner  <david at freetype.org>
 
 	* src/autofit/aflatin.c (af_latin_hints_compute_segments),
-	src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
+	src/cff/cffdrivr.c (cff_ps_get_font_info), src/truetype/ttobjs.c
 	(tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
 	warnings.
 
@@ -6592,7 +6592,7 @@
 	* src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
 	(cff_font_done): Free font->font_info if necessary.
 
-	* src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
+	* src/cff/cffdrivr.c (cff_ps_get_font_info): New function.
 	(cff_service_ps_info): Register cff_ps_get_font_info.
 
 2007-01-13  Werner Lemberg  <wl at gnu.org>
@@ -6734,7 +6734,7 @@
 	files are not used.
 
 	* include/freetype/internal/tttypes.h (TT_FaceRec): Add members
-	`horz_metrics_offset' and `vert_metrics_ofset'.
+	`horz_metrics_offset' and `vert_metrics_offset'.
 	* src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
 	Updated.
 
@@ -7517,7 +7517,7 @@
 2006-08-15  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
 
 	* modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
-	build ftvalid in ft2demos.  This has been inadvertedly changed
+	build ftvalid in ft2demos.  This has been inadvertently changed
 	2006-08-13.
 
 2006-08-15  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
@@ -7647,7 +7647,7 @@
 	`len_buildchar'.
 	Remove `keywords_flags'.
 
-	* src/type1/t1load.h (T1_LoaderRect): New field
+	* src/type1/t1load.h (T1_LoaderRec): New field
 	`keywords_encountered'.
 	(T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
 
@@ -7840,7 +7840,7 @@
 	* src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
 	`FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
 
-	* src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
+	* src/base/ftrfork.c (raccess_guess_linux_double_from_file_name):
 	Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
 
 2006-05-19  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
@@ -7902,7 +7902,7 @@
 	(FT_Stream_OpenGzip): Use it to handle small files directly in
 	memory.
 
-	* src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
+	* src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode):
 	Improve performance.
 
 	* src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and

Modified: trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.24
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.24	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.24	2016-07-07 09:56:43 UTC (rev 41649)
@@ -780,7 +780,7 @@
 
 	Move font tweaking tables to...
 
-	* src/truetype/ttsubpic.c: This file and decorate them with `static'
+	* src/truetype/ttsubpix.c: This file and decorate them with `static'
 	and `const' where appropriate.
 
 	(X_SCALING_Rules, X_SCALING_RULES_SIZE): Renamed to...
@@ -978,7 +978,7 @@
 
 	[base] Clean up trigonometric core.
 
-	* src/base/fttrrigon.c (ft_trig_pseudo_polarize): Align algorithm
+	* src/base/fttrigon.c (ft_trig_pseudo_polarize): Align algorithm
 	with `ft_trig_pseudo_rotate'.
 
 2012-12-18  Infinality  <infinality at infinality.net>
@@ -990,7 +990,7 @@
 
 2012-12-17  Infinality  <infinality at infinality.net>
 
-	[truetype] Remove unusued code and variables.
+	[truetype] Remove unused code and variables.
 
 	* src/truetype/ttinterp.c: Updated.
 	(Ins_FDEF): Remove opcode patterns that are not being used.
@@ -1012,7 +1012,7 @@
 
 2012-12-16  Infinality  <infinality at infinality.net>
 
-	[truetype] Remove unusued code and variables.  Add minor fixes.
+	[truetype] Remove unused code and variables.  Add minor fixes.
 
 	* src/truetype/ttsubpix.h: Updated.
 	(SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Trebuchet MS.
@@ -1037,7 +1037,7 @@
 	(Ins_FDEF): Rework code to fix bugs and add more detection.
 	(Ins_CALL): Remove unused code.
 	(Ins_LOOPCALL): Remove unused code.
-	(TT_RunIns): Remove unusued code.
+	(TT_RunIns): Remove unused code.
 	(Ins_SHPIX): Add logic to handle ttfautohinted fonts.
 	(Ins_MIRP): Don't round x in cut-in calculation.  Add logic to handle
 	ttfautohinted fonts.
@@ -1395,7 +1395,7 @@
 
 	[autofit] Minor optimization.
 
-	* src/autofit/afglobals.c (af_face_globals_compute_script_coverage):
+	* src/autofit/afglobal.c (af_face_globals_compute_script_coverage):
 	Add loop condition.
 
 2012-09-29  Werner Lemberg  <wl at gnu.org>
@@ -1859,7 +1859,7 @@
 
 	Fix `checking if gcc static flag -static works' test.
 
-	On my linux build tree, I receive yes answer in in every package I
+	On my linux build tree, I receive yes answer in every package I
 	build except freetype for this test checking if gcc static flag
 	`-static' works
 
@@ -2014,7 +2014,7 @@
 	(compute_glyph_metrics): Handle `compatible widths' option.
 	(tt_loader_init): Handle ClearType GETINFO information bits.
 
-	* src/truetype/rules.mk (TT_DRC_SRC): Updated.
+	* src/truetype/rules.mk (TT_DRV_SRC): Updated.
 
 	* src/truetype/ttinterp.c: Include `ttsubpix.h'.
 	[Where necessary, changes below are guarded by
@@ -2546,7 +2546,7 @@
 
 	* src/bdf/bdflib.c (_bdf_is_atom): Fix handling of property value.
 
-2012-02-24  Vinnie Falco  <vinnie.falco at gmail.com>
+2012-02-24  Vinnie Falco  <vinnie.falco at gmail.com>
 
 	Prepare source code for amalgamation (6/6).
 
@@ -2556,13 +2556,13 @@
 	s/t1_init_loader/cid_init_loader/.
 	s/t1_done_loader/cid_done_loader/.
 
-	* src/pxaux/t1cmap.c: s/t1_get_glyph_name/psaux_get_glyph_name/.
+	* src/psaux/t1cmap.c: s/t1_get_glyph_name/psaux_get_glyph_name/.
 
 	* src/truetype/ttdriver.c: s/Load_Glyph/tt_glyph_load/.
 
 	* src/type1/t1load.c: s/parse_font_matrix/t1_parse_font_matrix/.
 
-2012-02-24  Vinnie Falco  <vinnie.falco at gmail.com>
+2012-02-24  Vinnie Falco  <vinnie.falco at gmail.com>
 
 	Prepare source code for amalgamation (5/6).
 
@@ -2569,7 +2569,7 @@
 	* include/freetype/fterrors.h: Undefine FT_KEEP_ERR_PREFIX after
 	using it.
 
-2012-02-22  Vinnie Falco  <vinnie.falco at gmail.com>
+2012-02-22  Vinnie Falco  <vinnie.falco at gmail.com>
 
 	Prepare source code for amalgamation (4/6).
 
@@ -2581,7 +2581,7 @@
 	* src/raster/ftraster.c: s/TRaster/gray_TRaster/,
 	s/PRaster/gray_PRaster/.
 
-2012-02-20  Vinnie Falco  <vinnie.falco at gmail.com>
+2012-02-20  Vinnie Falco  <vinnie.falco at gmail.com>
 
 	Prepare source code for amalgamation (3/6).
 
@@ -2590,7 +2590,7 @@
 	* src/raster/ftraster.c: s/TWorker/gray_TWorker/,
 	s/PWorker/gray_PWorker/.
 
-2012-02-20  Vinnie Falco  <vinnie.falco at gmail.com>
+2012-02-20  Vinnie Falco  <vinnie.falco at gmail.com>
 
 	Prepare source code for amalgamation (2/6).
 
@@ -2597,7 +2597,7 @@
 	* src/smooth/ftgrays.c, src/raster/ftraster.c: Undefine FLOOR,
 	CEILING, TRUNC, and SCALED before defining it.
 
-2012-02-20  Vinnie Falco  <vinnie.falco at gmail.com>
+2012-02-20  Vinnie Falco  <vinnie.falco at gmail.com>
 
 	Prepare source code for amalgamation (1/6).
 
@@ -2796,9 +2796,9 @@
 	[base] Fix a dereference of uninitialized variable in PIC mode.
 
 	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): `glyph' must be
-	set before derefering to obtain `library'.  The initialization
+	set before dereferring to obtain `library'.  The initialization
 	of `clazz', `glyph', `library' and NULL pointer check are
-	reordered to minimize PIC conditonals.
+	reordered to minimize PIC conditionals.
 
 2012-01-14  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
 
@@ -3261,7 +3261,7 @@
 
 2011-09-17  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
-	[smooth] Slightly optimize conic and cubic flatterners.
+	[smooth] Slightly optimize conic and cubic flatteners.
 
 	* src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move
 	out some code from the main loop to speed it up.
@@ -3621,7 +3621,7 @@
 	* src/base/ftstroke.c: Revised.
 	* include/freetype/ftstroke.h: Updated.
 
-2011-06-30  İsmail Dönmez <ismail at namtrac.org>
+2011-06-30  İsmail Dönmez  <ismail at namtrac.org>
 
 	* builds/toplevel.mk: We use git, not CVS, thus skip `.gitignore'.
 
@@ -3680,7 +3680,7 @@
 
 	[autogen.sh] Reflect environment variable LIBTOOLIZE.
 
-2011-06-18  Werner Lemberg <wl at gnu.org>
+2011-06-18  Werner Lemberg  <wl at gnu.org>
 
 	Update license documentation.
 
@@ -4000,7 +4000,7 @@
 
 	[autofit] Add bluezones for CJK Ideographs.
 
-	To remove extremas of vertical strokes of CJK Ideographs at
+	To remove extrema of vertical strokes of CJK Ideographs at
 	low resolution and make the top and bottom horizontal stems
 	aligned, bluezones for CJK Ideographs are calculated from
 	sample glyphs.  At present, vertical bluezones (bluezones
@@ -4120,7 +4120,7 @@
 	[autofit] Add more Indic scripts with hanging baseline.
 
 	* src/autofit/afindic.c (af_indic_uniranges): Tibetan, Limbu,
-	Sundanese, Meetei Mayak, Syloti Nagri and Sharada scripts are
+	Sundanese, Meetei Mayek, Syloti Nagri and Sharada scripts are
 	added.
 
 2011-04-21  Behdad Esfahbod  <behdad at behdad.org>
@@ -4756,7 +4756,7 @@
 	* src/bzip2/*: New files.
 
 	* src/pcf/pcf.h: s/gzip_/comp_/.
-	* src/pcf/pcfdrvr.c: Include FT_BZIP2_H.
+	* src/pcf/pcfdrivr.c: Include FT_BZIP2_H.
 	s/gzip_/comp_/.
 	(PCF_Face_Init): Handle bzip2 compressed files.
 
@@ -4768,7 +4768,7 @@
 
 	If we encounter a space in a string then the sbit buffer is NULL,
 	height and width are 0s.  So the check in ftc_snode_compare will
-	always pass for spaces (comparision with 255).  Here the comments
+	always pass for spaces (comparison with 255).  Here the comments
 	above the condition are proper but the implementation is not.  When
 	we create an snode I think it is the proper way to initialize the
 	width to 255 and then put a check for being equal to 255 in snode
@@ -5420,7 +5420,7 @@
 	a Kaishu typeface paired with `HuaTianSongTi?' by Huatian
 	Information Industry.
 
-2010-08-17  Teijo Kinnunen <Teijo.Kinnunen at nuance.com>
+2010-08-17  Teijo Kinnunen  <Teijo.Kinnunen at nuance.com>
 
 	[cache] Fix Savannah bug #30788.
 
@@ -5548,7 +5548,7 @@
 	Add reference counters and to FT_Library and FT_Face objects.
 
 	* include/freetype/freetype.h (FT_Reference_Face): New function.
-	* include/freetype/ftmodapi.h (FT_Rererence_Library): New function.
+	* include/freetype/ftmodapi.h (FT_Reference_Library): New function.
 
 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec,
 	FT_LibraryRec): New field `refcount'.
@@ -6278,8 +6278,8 @@
 	Use real types instead of `void' for `pshinter' and `psnames' fields.
 
 	* src/cff/cffload.c: Don't include PS cmaps service.
-	(cff_index_get_pointers): Add `pool' parameter which allows to
-	insert an extra NUL character for each String INDEX entry.
+	(cff_index_get_pointers): Add `pool' parameter which allows inserting
+	an extra NUL character for each String INDEX entry.
 	(cff_index_get_name): Make it a local function.
 	(cff_index_get_string): New function.
 	(cff_subfont_load): Updated.

Modified: trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.25
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.25	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/ChangeLog.25	2016-07-07 09:56:43 UTC (rev 41649)
@@ -34,7 +34,7 @@
 
 	* builds/toplevel.mk (dist): Fix typos.
 
-2014-12-24  Alexei Podtelezhnikov <apodtele at gmail.com>
+2014-12-24  Alexei Podtelezhnikov  <apodtele at gmail.com>
 
 	[base] Formatting and nanooptimizations.
 
@@ -245,7 +245,7 @@
 	All public FreeType enumeration and flag values are uppercase...
 
 	* include/tttables.h (FT_Sfnt_Tag): Implement it.  For backwards
-	compatilibity, retain the old values as macros.
+	compatibility, retain the old values as macros.
 
 	* src/base/ftfstype.c (FT_Get_FSType_Flags), src/sfnt/sfdriver.c
 	(get_sfnt_table): Updated.
@@ -380,7 +380,7 @@
 	elements, use CSS descendants (of class `section') to format the
 	data.
 
-	Also remove reduntant <p> and <br> elements, replacing them with
+	Also remove redundant <p> and <br> elements, replacing them with
 	proper CSS.
 
 	Globally reduce page width to 75%.
@@ -549,7 +549,7 @@
 
 	* src/base/ftobjs.c (FT_Get_Glyph_Name): Fix compiler warning.
 
-	Introdruced in previous change.  Reported by Alexei.
+	Introduced in previous change.  Reported by Alexei.
 
 2014-11-26  Werner Lemberg  <wl at gnu.org>
 
@@ -579,7 +579,7 @@
 
 2014-11-26  suzuki toshiya  <mpsuzuki at hiroshima-u.ac.jp>
 
-	* src/base/ftobj.c (Mac_Read_POST_Resource): Additional
+	* src/base/ftobjs.c (Mac_Read_POST_Resource): Additional
 	overflow check in the summation of POST fragment lengths,
 	suggested by Mateusz Jurczyk <mjurczyk at google.com>.
 
@@ -945,7 +945,7 @@
 
 	The scaling between the hypotenuse and its CORDIC approximation is
 	based on regression analysis. The smaller padding for `theta' is
-	justifed by its maximum error of less than 6.
+	justified by its maximum error of less than 6.
 
 	* src/base/fttrigon.c (ft_trig_downscale): Borrow code from
 	./ftcalc.c (ft_multo64), change linear intercept.
@@ -1430,7 +1430,7 @@
 	[base] Avoid undefined FT_MSB in `BBox_Cubic_Check'.
 
 	* src/base/ftbbox.c (BBox_Cubic_Check): Update.
-	(update_cubic_max): Repalce with...
+	(update_cubic_max): Replace with...
 	(cubic_peak): ... this, which now handles upscaling.
 
 2014-08-11  Alexei Podtelezhnikov  <apodtele at gmail.com>
@@ -1780,7 +1780,7 @@
 	appearing in the GPOS table if we are processing the default
 	coverage.
 
-2014-04-13  David Weber <weber.aulendorf at googlemail.com>
+2014-04-13  David Weber  <weber.aulendorf at googlemail.com>
 
 	[smooth] Fix stand-alone compilation.
 
@@ -2444,7 +2444,7 @@
 	that the covered ranges are the same: Bengali, Devanagari, Gujarati,
 	Gurmukhi, Kannada, Limbu, Malayalam, Oriya, Sinhala, Sundanese,
 	Syloti Nagri, Tamil, Telugu, and Tibetan.  At the same time, remove
-	entries for Meetai Mayak and Sharada – the Unicode ranges were
+	entries for Meetei Mayek and Sharada – the Unicode ranges were
 	incorrect (and nobody has complained about that), fonts are scarce
 	for those scripts, and the Indic auto-hinter support is rudimentary
 	anyways.
@@ -2697,7 +2697,7 @@
 
 	[autofit] Introduce `coverages'.
 
-	Coverages are the interface to the HarfBuzz library to acces
+	Coverages are the interface to the HarfBuzz library to access
 	OpenType features for handling glyphs not addressable by the cmap.
 
 	Right now, compilation of HarfBuzz is only added to the development
@@ -2896,11 +2896,11 @@
 	* src/autofit/afdummy.c, src/autofit/afdummy.h: Updated.
 	* src/autofit/afindic.c, src/autofit/afindic.h: Updated.
 	* src/autofit/aflatin.c, src/autofit/aflatin.h: Updated.
-	* src/autofit/aflatn2.c, src/autofit/aflatn2.h: Updated.
+	* src/autofit/aflatin2.c, src/autofit/aflatin2.h: Updated.
 
 	* src/autofit/afpic.c: Updated.
 
-	* src/autofir/autofit.c: Include `afranges.c'.
+	* src/autofit/autofit.c: Include `afranges.c'.
 	* src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afranges.c'.
 
 2013-12-18  Werner Lemberg  <wl at gnu.org>
@@ -3240,7 +3240,7 @@
 
 	*/*: Essentially do `s@/freetype/@/@' where appropriate.
 
-	* CMakeList.txt: Simplify.
+	* CMakeLists.txt: Simplify.
 	* builds/unix/freetype-config.in, builds/unix/freetype2.in: For
 	`--cflags', return a single directory.
 	* builds/unix/install.mk (install): No longer try to remove `cache'
@@ -3418,7 +3418,7 @@
 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
 
 	* src/autofit/aflatin.c, src/autofit/aflatin.h,
-	src/autofit/atlatin2.c: Updated.
+	src/autofit/aflatin2.c: Updated.
 
 2013-10-19  Werner Lemberg  <wl at gnu.org>
 
@@ -3999,7 +3999,7 @@
 
 	* builds/vms/ftconfig.h: Ditto.
 	Make the differences to the master `ftconfig.h' file as small as
-	possible for easier maintainance.
+	possible for easier maintenance.
 
 2013-08-05  Werner Lemberg  <wl at gnu.org>
 
@@ -4319,7 +4319,7 @@
 
 	* include/freetype/internal/tttypes.h (TT_SBit_MetricsRec): Widen
 	fields to FT_Short and FT_UShort, respectively.
-	(TT_SBitTableType): New enumeration.
+	(TT_SbitTableType): New enumeration.
 	(TT_FaceRec): Add `sbit_table_type' field.
 
 	* include/freetype/tttags.h (TTAG_sbix): New macro.
@@ -4332,7 +4332,7 @@
 	* src/sfnt/ttsbit.c: Include `ttmtx.h'.
 	(tt_face_load_eblc): Renamed to...
 	(tt_face_load_sbit): This.
-	Handlic `sbix' bitmaps.
+	Handle `sbix' bitmaps.
 	(tt_face_free_eblc): Renamed to...
 	(tt_face_load_sbit): This.
 	Updated.
@@ -4615,7 +4615,7 @@
 	Fix Savannah bug #39269.
 
 	* src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Free memory in
-	case of reacollocation failures.
+	case of reallocation failures.
 
 2013-06-18  Andrew Church  <achurch+savannah at achurch.org>
 
@@ -5098,7 +5098,7 @@
 
 	[truetype] Add framework for TrueType properties.
 
-	* src/truetype/ttdrivr.c: Include FT_SERVICE_PROPERTIES_H.
+	* src/truetype/ttdriver.c: Include FT_SERVICE_PROPERTIES_H.
 	(tt_property_set, tt_property_get): New functions, still empty.
 	Define `tt_service_properties' service.
 	Update `tt_services'.

Modified: trunk/Build/source/libs/freetype2/freetype-src/Jamfile
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/Jamfile	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/Jamfile	2016-07-07 09:56:43 UTC (rev 41649)
@@ -197,7 +197,7 @@
 {
   python $(FT2_SRC)/tools/docmaker/docmaker.py
          --prefix=ft2
-         --title=FreeType-2.6.3
+         --title=FreeType-2.6.4
          --output=$(DOC_DIR)
          $(FT2_INCLUDE)/freetype/*.h
          $(FT2_INCLUDE)/freetype/config/*.h

Modified: trunk/Build/source/libs/freetype2/freetype-src/README
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/README	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/README	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,4 +1,4 @@
-  FreeType 2.6.3
+  FreeType 2.6.4
   ==============
 
   Homepage: http://www.freetype.org
@@ -24,9 +24,9 @@
 
   and download one of the following files.
 
-    freetype-doc-2.6.3.tar.bz2
-    freetype-doc-2.6.3.tar.gz
-    ftdoc263.zip
+    freetype-doc-2.6.4.tar.bz2
+    freetype-doc-2.6.4.tar.gz
+    ftdoc264.zip
 
   To view the documentation online, go to
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/cmake/iOS.cmake
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/cmake/iOS.cmake	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/cmake/iOS.cmake	2016-07-07 09:56:43 UTC (rev 41649)
@@ -85,11 +85,6 @@
     DARWIN_MAJOR_VERSION "${CMAKE_HOST_SYSTEM_VERSION}")
 endif (CMAKE_UNAME)
 
-# force the compilers to gcc for iOS
-include(CMakeForceCompiler)
-CMAKE_FORCE_C_COMPILER(gcc gcc)
-CMAKE_FORCE_CXX_COMPILER(g++ g++)
-
 # skip the platform compiler checks for cross compiling
 set(CMAKE_CXX_COMPILER_WORKS TRUE)
 set(CMAKE_C_COMPILER_WORKS TRUE)

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for FreeType 2.6.3.
+# Generated by GNU Autoconf 2.69 for FreeType 2.6.4.
 #
 # Report bugs to <freetype at nongnu.org>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='FreeType'
 PACKAGE_TARNAME='freetype'
-PACKAGE_VERSION='2.6.3'
-PACKAGE_STRING='FreeType 2.6.3'
+PACKAGE_VERSION='2.6.4'
+PACKAGE_STRING='FreeType 2.6.4'
 PACKAGE_BUGREPORT='freetype at nongnu.org'
 PACKAGE_URL=''
 
@@ -1328,7 +1328,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures FreeType 2.6.3 to adapt to many kinds of systems.
+\`configure' configures FreeType 2.6.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1393,7 +1393,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of FreeType 2.6.3:";;
+     short | recursive ) echo "Configuration of FreeType 2.6.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1539,7 +1539,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-FreeType configure 2.6.3
+FreeType configure 2.6.4
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2137,7 +2137,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by FreeType $as_me 2.6.3, which was
+It was created by FreeType $as_me 2.6.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2491,9 +2491,9 @@
 
 
 
-# Don't forget to update docs/VERSION.DLL!
+# Don't forget to update `docs/VERSIONS.TXT'!
 
-version_info='18:3:12'
+version_info='18:4:12'
 
 ft_version=`echo $version_info | tr : .`
 
@@ -12825,6 +12825,9 @@
   *-*-mingw*)
     XX_ANSIFLAGS="-pedantic"
     ;;
+  *-*-aix*)
+    XX_ANSIFLAGS="-pedantic"
+    ;;
   *)
     GCC_VERSION=`$CC -dumpversion`
     GCC_MAJOR=`echo "$GCC_VERSION" | sed 's/\([^.][^.]*\).*/\1/'`
@@ -14694,7 +14697,7 @@
 # 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.6.3, which was
+This file was extended by FreeType $as_me 2.6.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14760,7 +14763,7 @@
 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.6.3
+FreeType config.status 2.6.4
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure.ac
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure.ac	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure.ac	2016-07-07 09:56:43 UTC (rev 41649)
@@ -11,13 +11,13 @@
 # indicate that you have read the license and understand and accept it
 # fully.
 
-AC_INIT([FreeType], [2.6.3], [freetype at nongnu.org], [freetype])
+AC_INIT([FreeType], [2.6.4], [freetype at nongnu.org], [freetype])
 AC_CONFIG_SRCDIR([ftconfig.in])
 
 
-# Don't forget to update docs/VERSION.DLL!
+# Don't forget to update `docs/VERSIONS.TXT'!
 
-version_info='18:3:12'
+version_info='18:4:12'
 AC_SUBST([version_info])
 ft_version=`echo $version_info | tr : .`
 AC_SUBST([ft_version])
@@ -235,6 +235,9 @@
   *-*-mingw*)
     XX_ANSIFLAGS="-pedantic"
     ;;
+  *-*-aix*)
+    XX_ANSIFLAGS="-pedantic"
+    ;;
   *)
     GCC_VERSION=`$CC -dumpversion`
     GCC_MAJOR=`echo "$GCC_VERSION" | sed 's/\([[^.]][[^.]]*\).*/\1/'`

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure.raw
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure.raw	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/unix/configure.raw	2016-07-07 09:56:43 UTC (rev 41649)
@@ -15,9 +15,9 @@
 AC_CONFIG_SRCDIR([ftconfig.in])
 
 
-# Don't forget to update docs/VERSION.DLL!
+# Don't forget to update `docs/VERSIONS.TXT'!
 
-version_info='18:3:12'
+version_info='18:4:12'
 AC_SUBST([version_info])
 ft_version=`echo $version_info | tr : .`
 AC_SUBST([ft_version])
@@ -235,6 +235,9 @@
   *-*-mingw*)
     XX_ANSIFLAGS="-pedantic"
     ;;
+  *-*-aix*)
+    XX_ANSIFLAGS="-pedantic"
+    ;;
   *)
     GCC_VERSION=`$CC -dumpversion`
     GCC_MAJOR=`echo "$GCC_VERSION" | sed 's/\([[^.]][[^.]]*\).*/\1/'`

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/unix/unix-cc.in
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/unix/unix-cc.in	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/unix/unix-cc.in	2016-07-07 09:56:43 UTC (rev 41649)
@@ -109,6 +109,6 @@
 LINK_LIBRARY = $(LIBTOOL) --mode=link $(CCraw) -o $@ $(OBJECTS_LIST) \
                           -rpath $(libdir) -version-info $(version_info) \
                           $(LDFLAGS) -no-undefined \
-                          # -export-symbols $(EXPORTS_LIST)
+                          -export-symbols $(EXPORTS_LIST)
 
 # EOF

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/freetype.sln
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/freetype.sln	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/freetype.sln	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,4 +1,3 @@
-
 Microsoft Visual Studio Solution File, Format Version 9.00
 # Visual Studio 2005
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "freetype.vcproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}"

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/freetype.vcproj
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/freetype.vcproj	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/freetype.vcproj	2016-07-07 09:56:43 UTC (rev 41649)
@@ -21,7 +21,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -41,7 +41,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -61,7 +61,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -81,7 +81,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -101,7 +101,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -121,7 +121,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -141,7 +141,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263MT.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264MT.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -161,7 +161,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263MT.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264MT.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -181,7 +181,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263MT.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264MT.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -201,7 +201,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263MT.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264MT.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -221,7 +221,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263MT.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264MT.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -241,7 +241,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263MT.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264MT.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -261,7 +261,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263ST.lib" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264ST.lib" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -281,7 +281,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263ST.lib" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264ST.lib" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -301,7 +301,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263ST.lib" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264ST.lib" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -321,7 +321,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263ST.lib" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264ST.lib" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -341,7 +341,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263ST.lib" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264ST.lib" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -361,7 +361,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263ST.lib" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264ST.lib" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -381,7 +381,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -401,7 +401,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -421,7 +421,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -441,7 +441,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -461,7 +461,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -481,7 +481,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -501,7 +501,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263ST_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264ST_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -521,7 +521,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263ST_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264ST_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -541,7 +541,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263ST_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264ST_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -561,7 +561,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263ST_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264ST_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -581,7 +581,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263ST_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264ST_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -601,7 +601,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263ST_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264ST_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -621,7 +621,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263MT_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264MT_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -641,7 +641,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263MT_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264MT_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -661,7 +661,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263MT_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264MT_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -681,7 +681,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263MT_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264MT_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -701,7 +701,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263MT_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264MT_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -721,7 +721,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263MT_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264MT_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -741,7 +741,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263MT.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264MT.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -758,7 +758,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype263MT_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\wince\vc2005-ce\freetype264MT_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/index.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/index.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2005-ce/index.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -21,14 +21,14 @@
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 
-It compiles the following libraries from the FreeType 2.6.3 sources:</p>
+It compiles the following libraries from the FreeType 2.6.4 sources:</p>
 
 <ul>
   <pre>
-    freetype263.lib     - release build; single threaded
-    freetype263_D.lib   - debug build;   single threaded
-    freetype263MT.lib   - release build; multi-threaded
-    freetype263MT_D.lib - debug build;   multi-threaded</pre>
+    freetype264.lib     - release build; single threaded
+    freetype264_D.lib   - debug build;   single threaded
+    freetype264MT.lib   - release build; multi-threaded
+    freetype264MT_D.lib - debug build;   multi-threaded</pre>
 </ul>
 
 <p>Be sure to extract the files with the Windows (CR+LF) line endings.  ZIP

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/freetype.sln
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/freetype.sln	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/freetype.sln	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,4 +1,3 @@
-
 Microsoft Visual Studio Solution File, Format Version 10.00
 # Visual Studio 2008
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "freetype.vcproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}"

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/freetype.vcproj
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/freetype.vcproj	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/freetype.vcproj	2016-07-07 09:56:43 UTC (rev 41649)
@@ -88,7 +88,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -177,7 +177,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -266,7 +266,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -355,7 +355,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -444,7 +444,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -533,7 +533,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -621,7 +621,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263MT.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264MT.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -709,7 +709,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263MT.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264MT.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -797,7 +797,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263MT.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264MT.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -885,7 +885,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263MT.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264MT.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -973,7 +973,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263MT.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264MT.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -1061,7 +1061,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263MT.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264MT.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -1149,7 +1149,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263ST.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264ST.lib"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -1236,7 +1236,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263ST.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264ST.lib"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -1323,7 +1323,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263ST.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264ST.lib"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -1410,7 +1410,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263ST.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264ST.lib"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -1497,7 +1497,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263ST.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264ST.lib"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -1584,7 +1584,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263ST.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264ST.lib"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -1668,7 +1668,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -1753,7 +1753,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -1838,7 +1838,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -1923,7 +1923,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2008,7 +2008,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2093,7 +2093,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2178,7 +2178,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263ST_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264ST_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2263,7 +2263,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263ST_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264ST_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2348,7 +2348,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263ST_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264ST_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2433,7 +2433,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263ST_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264ST_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2518,7 +2518,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263ST_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264ST_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2603,7 +2603,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263ST_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264ST_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2689,7 +2689,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263MT_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264MT_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2775,7 +2775,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263MT_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264MT_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2861,7 +2861,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263MT_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264MT_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2947,7 +2947,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263MT_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264MT_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -3033,7 +3033,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263MT_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264MT_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -3119,7 +3119,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263MT_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264MT_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -3205,7 +3205,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263MT.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264MT.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -3279,7 +3279,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype263MT_D.lib"
+				OutputFile="..\..\..\objs\wince\vc2008-ce\freetype264MT_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/index.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/index.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/wince/vc2008-ce/index.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -21,14 +21,14 @@
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 
-It compiles the following libraries from the FreeType 2.6.3 sources:</p>
+It compiles the following libraries from the FreeType 2.6.4 sources:</p>
 
 <ul>
   <pre>
-    freetype263.lib     - release build; single threaded
-    freetype263_D.lib   - debug build;   single threaded
-    freetype263MT.lib   - release build; multi-threaded
-    freetype263MT_D.lib - debug build;   multi-threaded</pre>
+    freetype264.lib     - release build; single threaded
+    freetype264_D.lib   - debug build;   single threaded
+    freetype264MT.lib   - release build; multi-threaded
+    freetype264MT_D.lib - debug build;   multi-threaded</pre>
 </ul>
 
 <p>Be sure to extract the files with the Windows (CR+LF) line endings.  ZIP

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2005/freetype.vcproj
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2005/freetype.vcproj	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2005/freetype.vcproj	2016-07-07 09:56:43 UTC (rev 41649)
@@ -16,7 +16,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype263.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype264.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -33,7 +33,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype263MT.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype264MT.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -50,7 +50,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype263ST.lib" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype264ST.lib" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -67,7 +67,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype263_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype264_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -84,7 +84,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype263ST_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype264ST_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />
@@ -101,7 +101,7 @@
       <Tool Name="VCManagedResourceCompilerTool" />
       <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" />
       <Tool Name="VCPreLinkEventTool" />
-      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype263MT_D.lib" SuppressStartupBanner="true" />
+      <Tool Name="VCLibrarianTool" OutputFile="..\..\..\objs\win32\vc2005\freetype264MT_D.lib" SuppressStartupBanner="true" />
       <Tool Name="VCALinkTool" />
       <Tool Name="VCXDCMakeTool" />
       <Tool Name="VCBscMakeTool" />

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2005/index.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2005/index.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2005/index.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -11,14 +11,14 @@
 
 <p>This directory contains project files for Visual C++, named
 <tt>freetype.vcproj</tt>, and Visual Studio, called <tt>freetype.sln</tt>.  It
-compiles the following libraries from the FreeType 2.6.3 sources:</p>
+compiles the following libraries from the FreeType 2.6.4 sources:</p>
 
 <ul>
   <pre>
-    freetype263.lib     - release build; single threaded
-    freetype263_D.lib   - debug build;   single threaded
-    freetype263MT.lib   - release build; multi-threaded
-    freetype263MT_D.lib - debug build;   multi-threaded</pre>
+    freetype264.lib     - release build; single threaded
+    freetype264_D.lib   - debug build;   single threaded
+    freetype264MT.lib   - release build; multi-threaded
+    freetype264MT_D.lib - debug build;   multi-threaded</pre>
 </ul>
 
 <p>Be sure to extract the files with the Windows (CR+LF) line endings.  ZIP

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2008/freetype.vcproj
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2008/freetype.vcproj	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2008/freetype.vcproj	2016-07-07 09:56:43 UTC (rev 41649)
@@ -70,7 +70,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\win32\vc2008\freetype263.lib"
+				OutputFile="..\..\..\objs\win32\vc2008\freetype264.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -145,7 +145,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\win32\vc2008\freetype263MT.lib"
+				OutputFile="..\..\..\objs\win32\vc2008\freetype264MT.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -220,7 +220,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\win32\vc2008\freetype263ST.lib"
+				OutputFile="..\..\..\objs\win32\vc2008\freetype264ST.lib"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -292,7 +292,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\win32\vc2008\freetype263_D.lib"
+				OutputFile="..\..\..\objs\win32\vc2008\freetype264_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -365,7 +365,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\win32\vc2008\freetype263ST_D.lib"
+				OutputFile="..\..\..\objs\win32\vc2008\freetype264ST_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -439,7 +439,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\win32\vc2008\freetype263MT_D.lib"
+				OutputFile="..\..\..\objs\win32\vc2008\freetype264MT_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2008/index.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2008/index.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2008/index.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -11,14 +11,14 @@
 
 <p>This directory contains project files for Visual C++, named
 <tt>freetype.vcproj</tt>, and Visual Studio, called <tt>freetype.sln</tt>.  It
-compiles the following libraries from the FreeType 2.6.3 sources:</p>
+compiles the following libraries from the FreeType 2.6.4 sources:</p>
 
 <ul>
   <pre>
-    freetype263.lib     - release build; single threaded
-    freetype263_D.lib   - debug build;   single threaded
-    freetype263MT.lib   - release build; multi-threaded
-    freetype263MT_D.lib - debug build;   multi-threaded</pre>
+    freetype264.lib     - release build; single threaded
+    freetype264_D.lib   - debug build;   single threaded
+    freetype264MT.lib   - release build; multi-threaded
+    freetype264MT_D.lib - debug build;   multi-threaded</pre>
 </ul>
 
 <p>Be sure to extract the files with the Windows (CR+LF) line endings.  ZIP

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.sln
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.sln	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.sln	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,4 +1,3 @@
-
 Microsoft Visual Studio Solution File, Format Version 11.00
 # Visual Studio Express 2012 for Windows Desktop
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "freetype.vcxproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}"

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
@@ -191,18 +191,18 @@
     <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release Singlethreaded|x64'" />
     <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release Singlethreaded|Win32'" />
     <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release Singlethreaded|x64'" />
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">freetype263d</TargetName>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">freetype263d</TargetName>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">freetype263MTd</TargetName>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">freetype263MTd</TargetName>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug Singlethreaded|Win32'">freetype263STd</TargetName>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug Singlethreaded|x64'">freetype263STd</TargetName>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">freetype263</TargetName>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">freetype263</TargetName>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">freetype263MT</TargetName>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">freetype263MT</TargetName>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release Singlethreaded|Win32'">freetype263ST</TargetName>
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release Singlethreaded|x64'">freetype263ST</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">freetype264d</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">freetype264d</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">freetype264MTd</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">freetype264MTd</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug Singlethreaded|Win32'">freetype264STd</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug Singlethreaded|x64'">freetype264STd</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">freetype264</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">freetype264</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">freetype264MT</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">freetype264MT</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release Singlethreaded|Win32'">freetype264ST</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release Singlethreaded|x64'">freetype264ST</TargetName>
   </PropertyGroup>
   <Import Project="$(SolutionDir)\freetype.user.props" Condition="exists('$(SolutionDir)\freetype.user.props')" Label="UserProperties" />
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj.filters
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj.filters	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/freetype.vcxproj.filters	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
     <Filter Include="Source Files">

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/index.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/index.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/vc2010/index.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -12,16 +12,16 @@
 <p>This directory contains a project file for Visual C++ (VS.NET 2010
 or newer), named <tt>freetype.vcxproj</tt>, and Visual Studio, called
 <tt>freetype.sln</tt>.  It compiles the following libraries from the
-FreeType 2.6.3 sources:</p>
+FreeType 2.6.4 sources:</p>
 
 <ul>
   <pre>
-    freetype263.lib    - release build
-    freetype263d.lib   - debug build
-    freetype263ST.lib  - release build; single threaded
-    freetype263STd.lib - debug build;   single threaded
-    freetype263MT.lib  - release build; multi-threaded
-    freetype263MTd.lib - debug build;   multi-threaded</pre>
+    freetype264.lib    - release build
+    freetype264d.lib   - debug build
+    freetype264ST.lib  - release build; single threaded
+    freetype264STd.lib - debug build;   single threaded
+    freetype264MT.lib  - release build; multi-threaded
+    freetype264MTd.lib - debug build;   multi-threaded</pre>
 </ul>
 
 <p>Both Win32 and x64 builds are supported.</p>

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.dsp
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.dsp	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.dsp	2016-07-07 09:56:43 UTC (rev 41649)
@@ -54,7 +54,7 @@
 # ADD BSC32 /nologo
 LIB32=link.exe -lib
 # ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype263.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype264.lib"
 
 !ELSEIF  "$(CFG)" == "freetype - Win32 Debug"
 
@@ -78,7 +78,7 @@
 # ADD BSC32 /nologo
 LIB32=link.exe -lib
 # ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype263_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype264_D.lib"
 
 !ELSEIF  "$(CFG)" == "freetype - Win32 Debug Multithreaded"
 
@@ -102,8 +102,8 @@
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"lib\freetype263_D.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype263MT_D.lib"
+# ADD BASE LIB32 /nologo /out:"lib\freetype264_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype264MT_D.lib"
 
 !ELSEIF  "$(CFG)" == "freetype - Win32 Release Multithreaded"
 
@@ -126,8 +126,8 @@
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"lib\freetype263.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype263MT.lib"
+# ADD BASE LIB32 /nologo /out:"lib\freetype264.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype264MT.lib"
 
 !ELSEIF  "$(CFG)" == "freetype - Win32 Release Singlethreaded"
 
@@ -151,8 +151,8 @@
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype263.lib"
-# ADD LIB32 /out:"..\..\..\objs\freetype263ST.lib"
+# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype264.lib"
+# ADD LIB32 /out:"..\..\..\objs\freetype264ST.lib"
 # SUBTRACT LIB32 /nologo
 
 !ELSEIF  "$(CFG)" == "freetype - Win32 Debug Singlethreaded"
@@ -177,8 +177,8 @@
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype263_D.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype263ST_D.lib"
+# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype264_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype264ST_D.lib"
 
 !ENDIF
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.vcproj
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.vcproj	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/freetype.vcproj	2016-07-07 09:56:43 UTC (rev 41649)
@@ -69,7 +69,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263.lib"
+				OutputFile="..\..\..\objs\freetype264.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -144,7 +144,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263MT.lib"
+				OutputFile="..\..\..\objs\freetype264MT.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -219,7 +219,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263ST.lib"
+				OutputFile="..\..\..\objs\freetype264ST.lib"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -291,7 +291,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263_D.lib"
+				OutputFile="..\..\..\objs\freetype264_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -364,7 +364,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263ST_D.lib"
+				OutputFile="..\..\..\objs\freetype264ST_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -438,7 +438,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263MT_D.lib"
+				OutputFile="..\..\..\objs\freetype264MT_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/index.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/index.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualc/index.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -11,14 +11,14 @@
 
 <p>This directory contains project files for Visual C++, named
 <tt>freetype.dsp</tt>, and Visual Studio, called <tt>freetype.sln</tt>.  It
-compiles the following libraries from the FreeType 2.6.3 sources:</p>
+compiles the following libraries from the FreeType 2.6.4 sources:</p>
 
 <ul>
   <pre>
-    freetype263.lib     - release build; single threaded
-    freetype263_D.lib   - debug build;   single threaded
-    freetype263MT.lib   - release build; multi-threaded
-    freetype263MT_D.lib - debug build;   multi-threaded</pre>
+    freetype264.lib     - release build; single threaded
+    freetype264_D.lib   - debug build;   single threaded
+    freetype264MT.lib   - release build; multi-threaded
+    freetype264MT_D.lib - debug build;   multi-threaded</pre>
 </ul>
 
 <p>Be sure to extract the files with the Windows (CR+LF) line endings.  ZIP

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/freetype.dsp
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/freetype.dsp	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/freetype.dsp	2016-07-07 09:56:43 UTC (rev 41649)
@@ -54,7 +54,7 @@
 # ADD BSC32 /nologo
 LIB32=link.exe -lib
 # ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype263.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype264.lib"
 
 !ELSEIF  "$(CFG)" == "freetype - Win32 Debug"
 
@@ -78,7 +78,7 @@
 # ADD BSC32 /nologo
 LIB32=link.exe -lib
 # ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype263_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype264_D.lib"
 
 !ELSEIF  "$(CFG)" == "freetype - Win32 Debug Multithreaded"
 
@@ -102,8 +102,8 @@
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"lib\freetype263_D.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype263MT_D.lib"
+# ADD BASE LIB32 /nologo /out:"lib\freetype264_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype264MT_D.lib"
 
 !ELSEIF  "$(CFG)" == "freetype - Win32 Release Multithreaded"
 
@@ -126,8 +126,8 @@
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"lib\freetype263.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype263MT.lib"
+# ADD BASE LIB32 /nologo /out:"lib\freetype264.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype264MT.lib"
 
 !ELSEIF  "$(CFG)" == "freetype - Win32 Release Singlethreaded"
 
@@ -151,8 +151,8 @@
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype263.lib"
-# ADD LIB32 /out:"..\..\..\objs\freetype263ST.lib"
+# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype264.lib"
+# ADD LIB32 /out:"..\..\..\objs\freetype264ST.lib"
 # SUBTRACT LIB32 /nologo
 
 !ELSEIF  "$(CFG)" == "freetype - Win32 Debug Singlethreaded"
@@ -177,8 +177,8 @@
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype263_D.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype263ST_D.lib"
+# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype264_D.lib"
+# ADD LIB32 /nologo /out:"..\..\..\objs\freetype264ST_D.lib"
 
 !ENDIF
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/freetype.vcproj
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/freetype.vcproj	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/freetype.vcproj	2016-07-07 09:56:43 UTC (rev 41649)
@@ -87,7 +87,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263.lib"
+				OutputFile="..\..\..\objs\freetype264.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -162,7 +162,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263MT.lib"
+				OutputFile="..\..\..\objs\freetype264MT.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -237,7 +237,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263ST.lib"
+				OutputFile="..\..\..\objs\freetype264ST.lib"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -309,7 +309,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263_D.lib"
+				OutputFile="..\..\..\objs\freetype264_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -382,7 +382,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263ST_D.lib"
+				OutputFile="..\..\..\objs\freetype264ST_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -456,7 +456,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263MT_D.lib"
+				OutputFile="..\..\..\objs\freetype264MT_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -534,7 +534,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263.lib"
+				OutputFile="..\..\..\objs\freetype264.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -619,7 +619,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263MT.lib"
+				OutputFile="..\..\..\objs\freetype264MT.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -704,7 +704,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263ST.lib"
+				OutputFile="..\..\..\objs\freetype264ST.lib"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -785,7 +785,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263_D.lib"
+				OutputFile="..\..\..\objs\freetype264_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -867,7 +867,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263ST_D.lib"
+				OutputFile="..\..\..\objs\freetype264ST_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -950,7 +950,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263MT_D.lib"
+				OutputFile="..\..\..\objs\freetype264MT_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -1036,7 +1036,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263.lib"
+				OutputFile="..\..\..\objs\freetype264.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -1121,7 +1121,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263MT.lib"
+				OutputFile="..\..\..\objs\freetype264MT.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -1206,7 +1206,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263ST.lib"
+				OutputFile="..\..\..\objs\freetype264ST.lib"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -1287,7 +1287,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263_D.lib"
+				OutputFile="..\..\..\objs\freetype264_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -1369,7 +1369,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263ST_D.lib"
+				OutputFile="..\..\..\objs\freetype264ST_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -1452,7 +1452,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263MT_D.lib"
+				OutputFile="..\..\..\objs\freetype264MT_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -1538,7 +1538,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263.lib"
+				OutputFile="..\..\..\objs\freetype264.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -1623,7 +1623,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263MT.lib"
+				OutputFile="..\..\..\objs\freetype264MT.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -1708,7 +1708,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263ST.lib"
+				OutputFile="..\..\..\objs\freetype264ST.lib"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -1789,7 +1789,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263_D.lib"
+				OutputFile="..\..\..\objs\freetype264_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -1871,7 +1871,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263ST_D.lib"
+				OutputFile="..\..\..\objs\freetype264ST_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -1954,7 +1954,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263MT_D.lib"
+				OutputFile="..\..\..\objs\freetype264MT_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2040,7 +2040,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263.lib"
+				OutputFile="..\..\..\objs\freetype264.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2125,7 +2125,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263MT.lib"
+				OutputFile="..\..\..\objs\freetype264MT.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2210,7 +2210,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263ST.lib"
+				OutputFile="..\..\..\objs\freetype264ST.lib"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -2291,7 +2291,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263_D.lib"
+				OutputFile="..\..\..\objs\freetype264_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2373,7 +2373,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263ST_D.lib"
+				OutputFile="..\..\..\objs\freetype264ST_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2456,7 +2456,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263MT_D.lib"
+				OutputFile="..\..\..\objs\freetype264MT_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2542,7 +2542,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263.lib"
+				OutputFile="..\..\..\objs\freetype264.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2627,7 +2627,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263MT.lib"
+				OutputFile="..\..\..\objs\freetype264MT.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2712,7 +2712,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263ST.lib"
+				OutputFile="..\..\..\objs\freetype264ST.lib"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -2793,7 +2793,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263_D.lib"
+				OutputFile="..\..\..\objs\freetype264_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2875,7 +2875,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263ST_D.lib"
+				OutputFile="..\..\..\objs\freetype264ST_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -2958,7 +2958,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263MT_D.lib"
+				OutputFile="..\..\..\objs\freetype264MT_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -3044,7 +3044,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263.lib"
+				OutputFile="..\..\..\objs\freetype264.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -3129,7 +3129,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263MT.lib"
+				OutputFile="..\..\..\objs\freetype264MT.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -3214,7 +3214,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263ST.lib"
+				OutputFile="..\..\..\objs\freetype264ST.lib"
 			/>
 			<Tool
 				Name="VCALinkTool"
@@ -3295,7 +3295,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263_D.lib"
+				OutputFile="..\..\..\objs\freetype264_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -3377,7 +3377,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263ST_D.lib"
+				OutputFile="..\..\..\objs\freetype264ST_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool
@@ -3460,7 +3460,7 @@
 			/>
 			<Tool
 				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype263MT_D.lib"
+				OutputFile="..\..\..\objs\freetype264MT_D.lib"
 				SuppressStartupBanner="true"
 			/>
 			<Tool

Modified: trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/index.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/index.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/builds/windows/visualce/index.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -21,14 +21,14 @@
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 
-It compiles the following libraries from the FreeType 2.6.3 sources:</p>
+It compiles the following libraries from the FreeType 2.6.4 sources:</p>
 
 <ul>
   <pre>
-    freetype263.lib     - release build; single threaded
-    freetype263_D.lib   - debug build;   single threaded
-    freetype263MT.lib   - release build; multi-threaded
-    freetype263MT_D.lib - debug build;   multi-threaded</pre>
+    freetype264.lib     - release build; single threaded
+    freetype264_D.lib   - debug build;   single threaded
+    freetype264MT.lib   - release build; multi-threaded
+    freetype264MT_D.lib - debug build;   multi-threaded</pre>
 </ul>
 
 <p>Be sure to extract the files with the Windows (CR+LF) line endings.  ZIP

Modified: trunk/Build/source/libs/freetype2/freetype-src/devel/ftoption.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/devel/ftoption.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/devel/ftoption.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -586,23 +586,53 @@
   /*************************************************************************/
   /*                                                                       */
   /* Define TT_CONFIG_OPTION_SUBPIXEL_HINTING if you want to compile       */
-  /* EXPERIMENTAL subpixel hinting support into the TrueType driver.  This */
-  /* replaces the native TrueType hinting mechanism when anything but      */
-  /* FT_RENDER_MODE_MONO is requested.                                     */
+  /* subpixel hinting support into the TrueType driver.  This modifies the */
+  /* TrueType hinting mechanism when anything but FT_RENDER_MODE_MONO is   */
+  /* requested.                                                            */
   /*                                                                       */
-  /* Enabling this causes the TrueType driver to ignore instructions under */
-  /* certain conditions.  This is done in accordance with the guide here,  */
-  /* with some minor differences:                                          */
+  /* In particular, it modifies the bytecode interpreter to interpret (or  */
+  /* not) instructions in a certain way so that all TrueType fonts look    */
+  /* like they do in a Windows ClearType (DirectWrite) environment.  See   */
+  /* [1] for a technical overview on what this means.  See `ttinterp.h'    */
+  /* for more details on the LEAN option.                                  */
   /*                                                                       */
-  /*  http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx */
+  /* There are three options.                                              */
   /*                                                                       */
-  /* By undefining this, you only compile the code necessary to hint       */
-  /* TrueType glyphs with native TT hinting.                               */
+  /* 1. This option is associated with the `Infinality' moniker.           */
+  /*    Contributed by an individual nicknamed Infinality with the goal of */
+  /*    making TrueType fonts render better than on Windows.  A high       */
+  /*    amount of configurability and flexibility, down to rules for       */
+  /*    single glyphs in fonts, but also very slow.  Its experimental and  */
+  /*    slow nature and the original developer losing interest meant that  */
+  /*    this option was never enabled in default builds.                   */
   /*                                                                       */
-  /*   This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be    */
-  /*   defined.                                                            */
+  /* 2. The new default mode for the TrueType driver.  The Infinality code */
+  /*    base was stripped to the bare minimum and all configurability      */
+  /*    removed in the name of speed and simplicity.  The configurability  */
+  /*    was mainly aimed at legacy fonts like Arial, Times New Roman, or   */
+  /*    Courier.  Legacy fonts are fonts that modify vertical stems to     */
+  /*    achieve clean black-and-white bitmaps.  The new mode focuses on    */
+  /*    applying a minimal set of rules to all fonts indiscriminately so   */
+  /*    that modern and web fonts render well while legacy fonts render    */
+  /*    okay.                                                              */
   /*                                                                       */
-#define TT_CONFIG_OPTION_SUBPIXEL_HINTING
+  /* 3. Compile both.                                                      */
+  /*                                                                       */
+  /* By undefining these, you get rendering behavior like on Windows       */
+  /* without ClearType, i.e., Windows XP without ClearType enabled and     */
+  /* Win9x (interpreter version v35).  Or not, depending on how much       */
+  /* hinting blood and testing tears the font designer put into a given    */
+  /* font.  If you define one or both subpixel hinting options, you can    */
+  /* switch between between v35 and the ones you define.                   */
+  /*                                                                       */
+  /* This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be      */
+  /* defined.                                                              */
+  /*                                                                       */
+  /* [1] http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx */
+  /*                                                                       */
+/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING  1     */
+/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING  2     */
+#define TT_CONFIG_OPTION_SUBPIXEL_HINTING     ( 1 | 2 )
 
 
   /*************************************************************************/
@@ -811,9 +841,17 @@
    */
 #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
 #define  TT_USE_BYTECODE_INTERPRETER
+
+#if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 1
+#define  TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
 #endif
 
+#if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 2
+#define  TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+#endif
+#endif
 
+
   /*
    * Check CFF darkening parameters.  The checks are the same as in function
    * `cff_property_set' in file `cffdrivr.c'.

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/CHANGES
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/CHANGES	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/CHANGES	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,4 +1,70 @@
 
+CHANGES BETWEEN 2.6.3 and 2.6.4
+
+  I. IMPORTANT CHANGES
+
+    - A new  subpixel hinting  mode has  been contributed  by Nikolaus
+      Waxweiler, which is now the  default rendering mode for TrueType
+      fonts.  It implements  (almost everything of) version  40 of the
+      bytecode engine.
+
+      The existing code  base in FreeType (the  `Infinality code') was
+      stripped to the bare minimum  and all configurability removed in
+      the  name  of speed  and  simplicity.   The configurability  was
+      mainly aimed  at legacy  fonts like Arial,  Times New  Roman, or
+      Courier.  [Legacy fonts are fonts  that modify vertical stems to
+      achieve clean black-and-white bitmaps.]  The new mode focuses on
+      applying a minimal set of rules to all fonts indiscriminately so
+      that modern and web fonts  render well while legacy fonts render
+      okay.
+
+      Activation  of the  subpixel hinting  support can  be controlled
+      with   the   `TT_CONFIG_OPTION_SUBPIXEL_HINTING'   configuration
+      option  at compile  time: If  set to  value 1,  you get  the old
+      Infinality  mode  (which  was  never  the  default  due  to  its
+      slowness).  Value 2 activates the new subpixel hinting mode, and
+      value 3 activates both.  The default is value 2.
+
+      At run time,  you can select the subpixel hinting  mode with the
+      `interpreter-version'  property (provided  you have  compiled in
+      the corresponding hinting mode); see `ftttdrv.h' for more.
+
+    - Support  for  the  following  scripts  has  been  added  to  the
+      auto-hinter.
+
+        Armenian, Cherokee, Ethiopic, Georgian, Gujarati, Gurmukhi,
+        Malayalam, Sinhala, Tamil
+
+
+  II. MISCELLANEOUS
+
+    - Type 42 fonts as created by LilyPond are now supported.
+
+    - Minor rendering improvments in the auto-hinter.
+
+    - For experimental  reasons, the old  CFF engine now  supports all
+      CFF operators except `random', including the deprecated Multiple
+      Masters  instructions.  This  allows the  display of  fonts like
+      `ITCGaramondMM-It.otf' (without font variations, though).
+
+    - Another round of fixes to improve handling of invalid fonts.
+
+    - The `ftgrid' demo program now displays the rendered pixels also;
+      this can be switched off with the `b' key.  Selection of various
+      LCD filtering modes can be done with the `L' key.
+
+    - The demo programs  have been extended to allow  selection of all
+      available TrueType bytecode engines.
+
+    - A very early beta version of a new, Qt based demo program called
+      `ftinspect'  is  part  of  the   source  code  bundle;  it  will
+      eventually supersede  the other  demo programs.   Currently, you
+      have to compile  it manually with `qmake; make';  note that many
+      features are still missing.
+
+
+======================================================================
+
 CHANGES BETWEEN 2.6.2 and 2.6.3
 
   I. IMPORTANT CHANGES
@@ -42,8 +108,8 @@
     - The `ftgamma' demo  program has been modernized;  the gamma grid
       display has been moved from `ftview' to this program.
 
-    - It is now possible to  cycle through the available LCD fitlering
-      modes.
+    - In `ftview',  it is now possible to cycle through  the available
+      LCD filtering modes.
 
 
 ======================================================================
@@ -3754,7 +3820,7 @@
         automatically when needed.
 
   - Reformatted all  modules source  code in order  to get rid  of the
-    basic data types redifinitions (i.e. `TT_Int' instead of `FT_Int',
+    basic data types redefinitions (i.e. `TT_Int' instead of `FT_Int',
     `T1_Fixed'  instead  of  `FT_Fixed').  Hence  the  format-specific
     prefixes like  `TT_', `T1_',  `T2_' and `CID_'  are only  used for
     relevant structures.

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/FTL.TXT
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/FTL.TXT	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/FTL.TXT	2016-07-07 09:56:43 UTC (rev 41649)
@@ -48,7 +48,7 @@
   encourage you to use the following text:
 
    """
-    Portions of this software are copyright \xA9 <year> The FreeType
+    Portions of this software are copyright © <year> The FreeType
     Project (www.freetype.org).  All rights reserved.
    """
 

Deleted: trunk/Build/source/libs/freetype2/freetype-src/docs/VERSION.DLL
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/VERSION.DLL	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/VERSION.DLL	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,119 +0,0 @@
-Due  to our  use of  `libtool' to  generate and  install the  FreeType 2
-libraries on  Unix systems, as  well as  other historical events,  it is
-generally very  difficult to  know precisely which  release of  the font
-engine is installed on a given system.
-
-This file tries  to explain why and to document  ways to properly detect
-FreeType on Unix.
-
-
-1. Version and Release numbers
-------------------------------
-
-For each new  public release of FreeType 2, there  are generally *three*
-distinct `version' numbers to consider:
-
-  * The official FreeType 2 release number, like 2.3.1 or 2.4.10.
-
-  * The libtool (and  Unix) specific version number,  like 13.0.7.  This
-    is what `freetype-config --version' returns.
-
-  * The platform-specific  shared object  number, used for  example when
-    the library is installed as `/usr/lib/libfreetype.so.6.7.1'.
-
-The platform-specific  number is, unsurprisingly,  platform-specific and
-varies  with the  operating system  you are  using (several  variants of
-Linux, FreeBSD,  Solaris, etc.).  You  should thus _never_ use  it, even
-for simple tests.
-
-The libtool-specific  number does  not equal the  release number  but is
-tied to it.
-
-The release number is available  at *compile* time through the following
-macros defined in FT_FREETYPE_H:
-
-  - FREETYPE_MAJOR: major release number
-  - FREETYPE_MINOR: minor release number
-  - FREETYPE_PATCH: patch release number
-
-See below for a small autoconf fragment.
-
-The  release  number   is  also  available  at   *runtime*  through  the
-`FT_Library_Version' API.
-
-
-2. History
-----------
-
-The  following   table  gives,  for   all  releases  since   2.4.0,  the
-corresponding libtool number, as well  as the shared object number found
-on _most_ systems, but not all of them:
-
-
-    release     libtool     so
-  -------------------------------
-     2.6.3      18.3.12   6.12.3
-     2.6.2      18.2.12   6.12.2
-     2.6.1      18.1.12   6.12.1
-     2.6.0      18.0.12   6.12.0
-     2.5.5      17.4.11   6.11.4
-     2.5.4      17.3.11   6.11.3
-     2.5.3      17.2.11   6.11.2
-     2.5.2      17.1.11   6.11.1
-     2.5.1      17.0.11   6.11.0
-     2.5.0      16.2.10   6.10.2
-     2.4.12     16.1.10   6.10.1
-     2.4.11     16.0.10   6.10.0
-     2.4.10     15.0.9    6.9.0
-     2.4.9      14.1.8    6.8.1
-     2.4.8      14.0.8    6.8.0
-     2.4.7      13.2.7    6.7.2
-     2.4.6      13.1.7    6.7.1
-     2.4.5      13.0.7    6.7.0
-     2.4.4      12.2.6    6.6.2
-     2.4.3      12.1.6    6.6.1
-     2.4.2      12.0.6    6.6.0
-     2.4.1      11.1.5    6.5.1
-     2.4.0      11.0.5    6.5.0
-
-
-3. Autoconf Code Fragment
--------------------------
-
-Lars Clausen contributed the following autoconf fragment to detect which
-version of  FreeType is  installed on  a system.  This  one tests  for a
-version that  is at least 2.0.9;  you should change it  to check against
-other release numbers.
-
-
-  AC_MSG_CHECKING([whether FreeType version is 2.0.9 or higher])
-  old_CPPFLAGS="$CPPFLAGS"
-  CPPFLAGS=`freetype-config --cflags`
-  AC_TRY_CPP([
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009
-#error Freetype version too low.
-#endif
-  ],
-  [AC_MSG_RESULT(yes)
-   FREETYPE_LIBS=`freetype-config --libs`
-   AC_SUBST(FREETYPE_LIBS)
-   AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library])
-   CPPFLAGS="$old_CPPFLAGS"],
-  [AC_MSG_ERROR([Need FreeType library version 2.0.9 or higher])])
-
-------------------------------------------------------------------------
-
-Copyright 2002-2016 by
-David Turner, Robert Wilhelm, and Werner Lemberg.
-
-This  file is  part  of the  FreeType  project, and  may  only be  used,
-modified,  and  distributed under  the  terms  of  the FreeType  project
-license, LICENSE.TXT.  By continuing  to use, modify, or distribute this
-file  you indicate that  you have  read the  license and  understand and
-accept it fully.
-
-
---- end of VERSION.DLL ---

Added: trunk/Build/source/libs/freetype2/freetype-src/docs/VERSIONS.TXT
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/VERSIONS.TXT	                        (rev 0)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/VERSIONS.TXT	2016-07-07 09:56:43 UTC (rev 41649)
@@ -0,0 +1,120 @@
+Due  to our  use of  `libtool' to  generate and  install the  FreeType 2
+libraries on  Unix systems, as  well as  other historical events,  it is
+generally very  difficult to  know precisely which  release of  the font
+engine is installed on a given system.
+
+This file tries  to explain why and to document  ways to properly detect
+FreeType on Unix.
+
+
+1. Version and Release numbers
+------------------------------
+
+For each new  public release of FreeType 2, there  are generally *three*
+distinct `version' numbers to consider:
+
+  * The official FreeType 2 release number, like 2.3.1 or 2.4.10.
+
+  * The libtool (and  Unix) specific version number,  like 13.0.7.  This
+    is what `freetype-config --version' returns.
+
+  * The platform-specific  shared object  number, used for  example when
+    the library is installed as `/usr/lib/libfreetype.so.6.7.1'.
+
+The platform-specific  number is, unsurprisingly,  platform-specific and
+varies  with the  operating system  you are  using (several  variants of
+Linux, FreeBSD,  Solaris, etc.).  You  should thus _never_ use  it, even
+for simple tests.
+
+The libtool-specific  number does  not equal the  release number  but is
+tied to it.
+
+The release number is available  at *compile* time through the following
+macros defined in FT_FREETYPE_H:
+
+  - FREETYPE_MAJOR: major release number
+  - FREETYPE_MINOR: minor release number
+  - FREETYPE_PATCH: patch release number
+
+See below for a small autoconf fragment.
+
+The  release  number   is  also  available  at   *runtime*  through  the
+`FT_Library_Version' API.
+
+
+2. History
+----------
+
+The  following   table  gives,  for   all  releases  since   2.4.0,  the
+corresponding libtool number, as well  as the shared object number found
+on _most_ systems, but not all of them:
+
+
+    release     libtool     so
+  -------------------------------
+     2.6.4      18.4.12   6.12.4
+     2.6.3      18.3.12   6.12.3
+     2.6.2      18.2.12   6.12.2
+     2.6.1      18.1.12   6.12.1
+     2.6.0      18.0.12   6.12.0
+     2.5.5      17.4.11   6.11.4
+     2.5.4      17.3.11   6.11.3
+     2.5.3      17.2.11   6.11.2
+     2.5.2      17.1.11   6.11.1
+     2.5.1      17.0.11   6.11.0
+     2.5.0      16.2.10   6.10.2
+     2.4.12     16.1.10   6.10.1
+     2.4.11     16.0.10   6.10.0
+     2.4.10     15.0.9    6.9.0
+     2.4.9      14.1.8    6.8.1
+     2.4.8      14.0.8    6.8.0
+     2.4.7      13.2.7    6.7.2
+     2.4.6      13.1.7    6.7.1
+     2.4.5      13.0.7    6.7.0
+     2.4.4      12.2.6    6.6.2
+     2.4.3      12.1.6    6.6.1
+     2.4.2      12.0.6    6.6.0
+     2.4.1      11.1.5    6.5.1
+     2.4.0      11.0.5    6.5.0
+
+
+3. Autoconf Code Fragment
+-------------------------
+
+Lars Clausen contributed the following autoconf fragment to detect which
+version of  FreeType is  installed on  a system.  This  one tests  for a
+version that  is at least 2.0.9;  you should change it  to check against
+other release numbers.
+
+
+  AC_MSG_CHECKING([whether FreeType version is 2.0.9 or higher])
+  old_CPPFLAGS="$CPPFLAGS"
+  CPPFLAGS=`freetype-config --cflags`
+  AC_TRY_CPP([
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009
+#error Freetype version too low.
+#endif
+  ],
+  [AC_MSG_RESULT(yes)
+   FREETYPE_LIBS=`freetype-config --libs`
+   AC_SUBST(FREETYPE_LIBS)
+   AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library])
+   CPPFLAGS="$old_CPPFLAGS"],
+  [AC_MSG_ERROR([Need FreeType library version 2.0.9 or higher])])
+
+------------------------------------------------------------------------
+
+Copyright 2002-2016 by
+David Turner, Robert Wilhelm, and Werner Lemberg.
+
+This  file is  part  of the  FreeType  project, and  may  only be  used,
+modified,  and  distributed under  the  terms  of  the FreeType  project
+license, LICENSE.TXT.  By continuing  to use, modify, or distribute this
+file  you indicate that  you have  read the  license and  understand and
+accept it fully.
+
+
+--- end of VERSIONS.TXT ---


Property changes on: trunk/Build/source/libs/freetype2/freetype-src/docs/VERSIONS.TXT
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev URL
\ No newline at end of property
Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/freetype-config.1
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/freetype-config.1	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/freetype-config.1	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,4 +1,4 @@
-.TH FREETYPE-CONFIG 1 "February 2016" "FreeType 2.6.3"
+.TH FREETYPE-CONFIG 1 "July 2016" "FreeType 2.6.4"
 .
 .
 .SH NAME

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-auto_hinter.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-auto_hinter.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-auto_hinter.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="auto_hinter">The auto-hinter</h1>
 <h2>Synopsis</h2>
@@ -246,8 +246,8 @@
   U+0F00 - U+0FFF  // Tibetan
   U+1900 - U+194F  // Limbu
   U+1B80 - U+1BBF  // Sundanese
-  U+1C80 - U+1CDF  // Meetei Mayak
   U+A800 - U+A82F  // Syloti Nagri
+  U+ABC0 - U+ABFF  // Meetei Mayek
  U+11800 - U+118DF // Sharada
 </pre>
 <p>Note that currently Indic support is rudimentary only, missing blue zone support.</p>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-base_interface.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-base_interface.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-base_interface.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="base_interface">Base Interface</h1>
 <h2>Synopsis</h2>
@@ -326,10 +326,10 @@
 <p>This encoding uses character codes from the PUA (Private Unicode Area) in the range U+F020-U+F0FF.</p>
 </td></tr>
 <tr><td class="val" id="FT_ENCODING_SJIS">FT_ENCODING_SJIS</td><td class="desc">
-<p>Corresponds to Japanese SJIS encoding. More info at at ‘<a href="http://en.wikipedia.org/wiki/Shift_JIS">http://en.wikipedia.org/wiki/Shift_JIS</a>’. See note on multi-byte encodings below.</p>
+<p>Corresponds to Japanese SJIS encoding. More info at ‘<a href="http://en.wikipedia.org/wiki/Shift_JIS">http://en.wikipedia.org/wiki/Shift_JIS</a>’. See note on multi-byte encodings below.</p>
 </td></tr>
 <tr><td class="val" id="FT_ENCODING_GB2312">FT_ENCODING_GB2312</td><td class="desc">
-<p>Corresponds to an encoding system for Simplified Chinese as used used in mainland China.</p>
+<p>Corresponds to an encoding system for Simplified Chinese as used in mainland China.</p>
 </td></tr>
 <tr><td class="val" id="FT_ENCODING_BIG5">FT_ENCODING_BIG5</td><td class="desc">
 <p>Corresponds to an encoding system for Traditional Chinese as used in Taiwan and Hong Kong.</p>
@@ -406,7 +406,7 @@
 <h4>note</h4>
 <p>Since many 16-bit compilers don't like 32-bit enumerations, you should redefine this macro in case of problems to something like this:</p>
 <pre class="colored">
-  #define FT_ENC_TAG( value, a, b, c, d )  value                   
+  #define FT_ENC_TAG( value, a, b, c, d )  value
 </pre>
 <p>to get a simple enumeration without assigning special numbers.</p>
 
@@ -571,7 +571,7 @@
 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
 <pre>
 #define <b>FT_HAS_HORIZONTAL</b>( face ) \
-          ( face->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_HORIZONTAL">FT_FACE_FLAG_HORIZONTAL</a> )
+          ( (face)->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_HORIZONTAL">FT_FACE_FLAG_HORIZONTAL</a> )
 </pre>
 
 <p>A macro that returns true whenever a face object contains horizontal metrics (this is true for all font formats though).</p>
@@ -587,7 +587,7 @@
 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
 <pre>
 #define <b>FT_HAS_VERTICAL</b>( face ) \
-          ( face->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_VERTICAL">FT_FACE_FLAG_VERTICAL</a> )
+          ( (face)->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_VERTICAL">FT_FACE_FLAG_VERTICAL</a> )
 </pre>
 
 <p>A macro that returns true whenever a face object contains real vertical metrics (and not only synthesized ones).</p>
@@ -600,7 +600,7 @@
 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
 <pre>
 #define <b>FT_HAS_KERNING</b>( face ) \
-          ( face->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_KERNING">FT_FACE_FLAG_KERNING</a> )
+          ( (face)->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_KERNING">FT_FACE_FLAG_KERNING</a> )
 </pre>
 
 <p>A macro that returns true whenever a face object contains kerning data that can be accessed with <a href="ft2-base_interface.html#FT_Get_Kerning">FT_Get_Kerning</a>.</p>
@@ -613,7 +613,7 @@
 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
 <pre>
 #define <b>FT_HAS_FIXED_SIZES</b>( face ) \
-          ( face->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_FIXED_SIZES">FT_FACE_FLAG_FIXED_SIZES</a> )
+          ( (face)->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_FIXED_SIZES">FT_FACE_FLAG_FIXED_SIZES</a> )
 </pre>
 
 <p>A macro that returns true whenever a face object contains some embedded bitmaps. See the ‘available_sizes’ field of the <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> structure.</p>
@@ -626,7 +626,7 @@
 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
 <pre>
 #define <b>FT_HAS_GLYPH_NAMES</b>( face ) \
-          ( face->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_GLYPH_NAMES">FT_FACE_FLAG_GLYPH_NAMES</a> )
+          ( (face)->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_GLYPH_NAMES">FT_FACE_FLAG_GLYPH_NAMES</a> )
 </pre>
 
 <p>A macro that returns true whenever a face object contains some glyph names that can be accessed through <a href="ft2-base_interface.html#FT_Get_Glyph_Name">FT_Get_Glyph_Name</a>.</p>
@@ -639,7 +639,7 @@
 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
 <pre>
 #define <b>FT_HAS_MULTIPLE_MASTERS</b>( face ) \
-          ( face->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_MULTIPLE_MASTERS">FT_FACE_FLAG_MULTIPLE_MASTERS</a> )
+          ( (face)->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_MULTIPLE_MASTERS">FT_FACE_FLAG_MULTIPLE_MASTERS</a> )
 </pre>
 
 <p>A macro that returns true whenever a face object contains some multiple masters. The functions provided by <a href="ft2-header_file_macros.html#FT_MULTIPLE_MASTERS_H">FT_MULTIPLE_MASTERS_H</a> are then available to choose the exact design you want.</p>
@@ -652,7 +652,7 @@
 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
 <pre>
 #define <b>FT_HAS_COLOR</b>( face ) \
-          ( face->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_COLOR">FT_FACE_FLAG_COLOR</a> )
+          ( (face)->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_COLOR">FT_FACE_FLAG_COLOR</a> )
 </pre>
 
 <p>A macro that returns true whenever a face object contains tables for color glyphs.</p>
@@ -665,7 +665,7 @@
 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
 <pre>
 #define <b>FT_IS_SFNT</b>( face ) \
-          ( face->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_SFNT">FT_FACE_FLAG_SFNT</a> )
+          ( (face)->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_SFNT">FT_FACE_FLAG_SFNT</a> )
 </pre>
 
 <p>A macro that returns true whenever a face object contains a font whose format is based on the SFNT storage scheme. This usually means: TrueType fonts, OpenType fonts, as well as SFNT-based embedded bitmap fonts.</p>
@@ -679,7 +679,7 @@
 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
 <pre>
 #define <b>FT_IS_SCALABLE</b>( face ) \
-          ( face->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_SCALABLE">FT_FACE_FLAG_SCALABLE</a> )
+          ( (face)->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_SCALABLE">FT_FACE_FLAG_SCALABLE</a> )
 </pre>
 
 <p>A macro that returns true whenever a face object contains a scalable font face (true for TrueType, Type 1, Type 42, CID, OpenType/CFF, and PFR font formats.</p>
@@ -692,7 +692,7 @@
 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
 <pre>
 #define <b>FT_IS_FIXED_WIDTH</b>( face ) \
-          ( face->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_FIXED_WIDTH">FT_FACE_FLAG_FIXED_WIDTH</a> )
+          ( (face)->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_FIXED_WIDTH">FT_FACE_FLAG_FIXED_WIDTH</a> )
 </pre>
 
 <p>A macro that returns true whenever a face object contains a font face that contains fixed-width (or ‘monospace’, ‘fixed-pitch’, etc.) glyphs.</p>
@@ -705,7 +705,7 @@
 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
 <pre>
 #define <b>FT_IS_CID_KEYED</b>( face ) \
-          ( face->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_CID_KEYED">FT_FACE_FLAG_CID_KEYED</a> )
+          ( (face)->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_CID_KEYED">FT_FACE_FLAG_CID_KEYED</a> )
 </pre>
 
 <p>A macro that returns true whenever a face object contains a CID-keyed font. See the discussion of <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_CID_KEYED</a> for more details.</p>
@@ -719,7 +719,7 @@
 <p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
 <pre>
 #define <b>FT_IS_TRICKY</b>( face ) \
-          ( face->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_TRICKY">FT_FACE_FLAG_TRICKY</a> )
+          ( (face)->face_flags & <a href="ft2-base_interface.html#FT_FACE_FLAG_TRICKY">FT_FACE_FLAG_TRICKY</a> )
 </pre>
 
 <p>A macro that returns true whenever a face represents a ‘tricky’ font. See the discussion of <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_TRICKY</a> for more details.</p>
@@ -935,27 +935,27 @@
 <h4>note</h4>
 <p>Here is a small pseudo code fragment that shows how to use ‘lsb_delta’ and ‘rsb_delta’:</p>
 <pre class="colored">
-  FT_Pos  origin_x       = 0;                                      
-  FT_Pos  prev_rsb_delta = 0;                                      
-                                                                   
-                                                                   
-  for all glyphs do                                                
-    <compute kern between current and previous glyph and add it to 
-     `origin_x'>                                                   
-                                                                   
-    <load glyph with `FT_Load_Glyph'>                              
-                                                                   
-    if ( prev_rsb_delta - face->glyph->lsb_delta >= 32 )           
-      origin_x -= 64;                                              
-    else if ( prev_rsb_delta - face->glyph->lsb_delta < -32 )      
-      origin_x += 64;                                              
-                                                                   
-    prev_rsb_delta = face->glyph->rsb_delta;                       
-                                                                   
-    <save glyph image, or render glyph, or ...>                    
-                                                                   
-    origin_x += face->glyph->advance.x;                            
-  endfor                                                           
+  FT_Pos  origin_x       = 0;
+  FT_Pos  prev_rsb_delta = 0;
+
+
+  for all glyphs do
+    <compute kern between current and previous glyph and add it to
+     `origin_x'>
+
+    <load glyph with `FT_Load_Glyph'>
+
+    if ( prev_rsb_delta - face->glyph->lsb_delta >= 32 )
+      origin_x -= 64;
+    else if ( prev_rsb_delta - face->glyph->lsb_delta < -32 )
+      origin_x += 64;
+
+    prev_rsb_delta = face->glyph->rsb_delta;
+
+    <save glyph image, or render glyph, or ...>
+
+    origin_x += face->glyph->advance.x;
+  endfor
 </pre>
 
 <hr>
@@ -1328,62 +1328,62 @@
 <p>See the discussion of reference counters in the description of <a href="ft2-base_interface.html#FT_Reference_Face">FT_Reference_Face</a>.</p>
 <p>To loop over all faces, use code similar to the following snippet (omitting the error handling).</p>
 <pre class="colored">
-  ...                                                              
-  FT_Face  face;                                                   
-  FT_Long  i, num_faces;                                           
-                                                                   
-                                                                   
-  error = FT_Open_Face( library, args, -1, &face );                
-  if ( error ) { ... }                                             
-                                                                   
-  num_faces = face->num_faces;                                     
-  FT_Done_Face( face );                                            
-                                                                   
-  for ( i = 0; i < num_faces; i++ )                                
-  {                                                                
-    ...                                                            
-    error = FT_Open_Face( library, args, i, &face );               
-    ...                                                            
-    FT_Done_Face( face );                                          
-    ...                                                            
-  }                                                                
+  ...
+  FT_Face  face;
+  FT_Long  i, num_faces;
+
+
+  error = FT_Open_Face( library, args, -1, &face );
+  if ( error ) { ... }
+
+  num_faces = face->num_faces;
+  FT_Done_Face( face );
+
+  for ( i = 0; i < num_faces; i++ )
+  {
+    ...
+    error = FT_Open_Face( library, args, i, &face );
+    ...
+    FT_Done_Face( face );
+    ...
+  }
 </pre>
 <p>To loop over all valid values for ‘face_index’, use something similar to the following snippet, again without error handling. The code accesses all faces immediately (thus only a single call of ‘FT_Open_Face’ within the do-loop), with and without named instances.</p>
 <pre class="colored">
-  ...                                                              
-  FT_Face  face;                                                   
-                                                                   
-  FT_Long  num_faces     = 0;                                      
-  FT_Long  num_instances = 0;                                      
-                                                                   
-  FT_Long  face_idx     = 0;                                       
-  FT_Long  instance_idx = 0;                                       
-                                                                   
-                                                                   
-  do                                                               
-  {                                                                
-    FT_Long  id = ( instance_idx << 16 ) + face_idx;               
-                                                                   
-                                                                   
-    error = FT_Open_Face( library, args, id, &face );              
-    if ( error ) { ... }                                           
-                                                                   
-    num_faces     = face->num_faces;                               
-    num_instances = face->style_flags >> 16;                       
-                                                                   
-    ...                                                            
-                                                                   
-    FT_Done_Face( face );                                          
-                                                                   
-    if ( instance_idx < num_instances )                            
-      instance_idx++;                                              
-    else                                                           
-    {                                                              
-      face_idx++;                                                  
-      instance_idx = 0;                                            
-    }                                                              
-                                                                   
-  } while ( face_idx < num_faces )                                 
+  ...
+  FT_Face  face;
+
+  FT_Long  num_faces     = 0;
+  FT_Long  num_instances = 0;
+
+  FT_Long  face_idx     = 0;
+  FT_Long  instance_idx = 0;
+
+
+  do
+  {
+    FT_Long  id = ( instance_idx << 16 ) + face_idx;
+
+
+    error = FT_Open_Face( library, args, id, &face );
+    if ( error ) { ... }
+
+    num_faces     = face->num_faces;
+    num_instances = face->style_flags >> 16;
+
+    ...
+
+    FT_Done_Face( face );
+
+    if ( instance_idx < num_instances )
+      instance_idx++;
+    else
+    {
+      face_idx++;
+      instance_idx = 0;
+    }
+
+  } while ( face_idx < num_faces )
 </pre>
 
 <hr>
@@ -1439,7 +1439,7 @@
 
 <h4>note</h4>
 <p>The stream type is determined by the contents of ‘flags’ that are tested in the following order by <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a>:</p>
-<p>If the <a href="ft2-base_interface.html#FT_OPEN_XXX">FT_OPEN_MEMORY</a> bit is set, assume that this is a memory file of ‘memory_size’ bytes, located at ‘memory_address’. The data are are not copied, and the client is responsible for releasing and destroying them <i>after</i> the corresponding call to <a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a>.</p>
+<p>If the <a href="ft2-base_interface.html#FT_OPEN_XXX">FT_OPEN_MEMORY</a> bit is set, assume that this is a memory file of ‘memory_size’ bytes, located at ‘memory_address’. The data are not copied, and the client is responsible for releasing and destroying them <i>after</i> the corresponding call to <a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a>.</p>
 <p>Otherwise, if the <a href="ft2-base_interface.html#FT_OPEN_XXX">FT_OPEN_STREAM</a> bit is set, assume that a custom input stream ‘stream’ is used.</p>
 <p>Otherwise, if the <a href="ft2-base_interface.html#FT_OPEN_XXX">FT_OPEN_PATHNAME</a> bit is set, assume that this is a normal file and use ‘pathname’ to open it.</p>
 <p>If the <a href="ft2-base_interface.html#FT_OPEN_XXX">FT_OPEN_DRIVER</a> bit is set, <a href="ft2-base_interface.html#FT_Open_Face">FT_Open_Face</a> only tries to open the file with the driver whose handler is in ‘driver’.</p>
@@ -1725,7 +1725,7 @@
 <p>The nominal size. The ‘units_per_EM’ field of <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> is used to determine both scaling values.</p>
 </td></tr>
 <tr><td class="val" id="FT_SIZE_REQUEST_TYPE_REAL_DIM">FT_SIZE_REQUEST_TYPE_REAL_DIM</td><td class="desc">
-<p>The real dimension. The sum of the the ‘ascender’ and (minus of) the ‘descender’ fields of <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> are used to determine both scaling values.</p>
+<p>The real dimension. The sum of the ‘ascender’ and (minus of) the ‘descender’ fields of <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> are used to determine both scaling values.</p>
 </td></tr>
 <tr><td class="val" id="FT_SIZE_REQUEST_TYPE_BBOX">FT_SIZE_REQUEST_TYPE_BBOX</td><td class="desc">
 <p>The font bounding box. The width and height of the ‘bbox’ field of <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a> are used to determine the horizontal and vertical scaling value, respectively.</p>
@@ -1870,6 +1870,7 @@
 <h4>note</h4>
 <p>The loaded glyph may be transformed. See <a href="ft2-base_interface.html#FT_Set_Transform">FT_Set_Transform</a> for the details.</p>
 <p>For subsetted CID-keyed fonts, ‘FT_Err_Invalid_Argument’ is returned for invalid CID values (this is, for CID values that don't have a corresponding glyph in the font). See the discussion of the <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_CID_KEYED</a> flag for more details.</p>
+<p>If you receive ‘FT_Err_Glyph_Too_Big’, try getting the glyph outline at EM size, then scale it manually and fill it as a graphics operation.</p>
 
 <hr>
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
@@ -1935,17 +1936,17 @@
 <h4>note</h4>
 <p>You should use this function with <a href="ft2-base_interface.html#FT_Get_Next_Char">FT_Get_Next_Char</a> to be able to parse all character codes available in a given charmap. The code should look like this:</p>
 <pre class="colored">
-  FT_ULong  charcode;                                              
-  FT_UInt   gindex;                                                
-                                                                   
-                                                                   
-  charcode = FT_Get_First_Char( face, &gindex );                   
-  while ( gindex != 0 )                                            
-  {                                                                
-    ... do something with (charcode,gindex) pair ...               
-                                                                   
-    charcode = FT_Get_Next_Char( face, charcode, &gindex );        
-  }                                                                
+  FT_ULong  charcode;
+  FT_UInt   gindex;
+
+
+  charcode = FT_Get_First_Char( face, &gindex );
+  while ( gindex != 0 )
+  {
+    ... do something with (charcode,gindex) pair ...
+
+    charcode = FT_Get_Next_Char( face, charcode, &gindex );
+  }
 </pre>
 <p>Be aware that character codes can have values up to 0xFFFFFFFF; this might happen for non-Unicode or malformed cmaps. However, even with regular Unicode encoding, so-called ‘last resort fonts’ (using SFNT cmap format 13, see function <a href="ft2-truetype_tables.html#FT_Get_CMap_Format">FT_Get_CMap_Format</a>) normally have entries for all Unicode characters up to 0x1FFFFF, which can cause *a lot* of iterations.</p>
 <p>Note that ‘*agindex’ is set to 0 if the charmap is empty. The result itself can be 0 in two cases: if the charmap is empty or if the value 0 is the first valid character code.</p>
@@ -2104,7 +2105,7 @@
 <p>This is relevant because all our screens have a second problem: they are not linear. 1 + 1 is not 2. Twice the value does not result in twice the brightness. When a pixel is only 50% covered, the coverage map says 50% black, and this translates to a pixel value of 128 when you use 8 bits per channel (0-255). However, this does not translate to 50% brightness for that pixel on our sRGB and gamma 2.2 screens. Due to their non-linearity, they dwell longer in the darks and only a pixel value of about 186 results in 50% brightness – 128 ends up too dark on both bright and dark backgrounds. The net result is that dark text looks burnt-out, pixely and blotchy on bright background, bright text too frail on dark backgrounds, and colored text on colored background (for example, red on green) seems to have dark halos or ‘dirt’ around it. The situation is especially ugly for diagonal stems like in ‘w’ glyph shapes where the quality of FreeType's anti-aliasing depends on the correct display of grays. On high-DPI screens where smaller, fully black pixels reign supreme, this doesn't matter, but on our low-DPI screens with all the gray shades, it does. 0% and 100% brightness are the same things in linear and non-linear space, just all the shades in-between aren't.</p>
 <p>The blending function for placing text over a background is</p>
 <pre class="colored">
-  dst = alpha * src + (1 - alpha) * dst    ,                       
+  dst = alpha * src + (1 - alpha) * dst    ,
 </pre>
 <p>which is known as the OVER operator.</p>
 <p>To correctly composite an antialiased pixel of a glyph onto a surface,</p>
@@ -2341,7 +2342,7 @@
 <p>An error is returned if the face doesn't provide glyph names or if the glyph index is invalid. In all cases of failure, the first byte of ‘buffer’ is set to 0 to indicate an empty name.</p>
 <p>The glyph name is truncated to fit within the buffer if it is too long. The returned string is always zero-terminated.</p>
 <p>Be aware that FreeType reorders glyph indices internally so that glyph index 0 always corresponds to the ‘missing glyph’ (called ‘.notdef’).</p>
-<p>This function always returns an error if the config macro ‘FT_CONFIG_OPTION_NO_GLYPH_NAMES’ is not defined in ‘ftoptions.h’.</p>
+<p>This function always returns an error if the config macro ‘FT_CONFIG_OPTION_NO_GLYPH_NAMES’ is not defined in ‘ftoption.h’.</p>
 
 <hr>
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
@@ -2646,7 +2647,7 @@
 <h4>values</h4>
 <table class="fields">
 <tr><td class="val" id="FT_FACE_FLAG_SCALABLE">FT_FACE_FLAG_SCALABLE</td><td class="desc">
-<p>Indicates that the face contains outline glyphs. This doesn't prevent bitmap strikes, i.e., a face can have both this and and <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_FIXED_SIZES</a> set.</p>
+<p>Indicates that the face contains outline glyphs. This doesn't prevent bitmap strikes, i.e., a face can have both this and <a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_FIXED_SIZES</a> set.</p>
 </td></tr>
 <tr><td class="val" id="FT_FACE_FLAG_FIXED_SIZES">FT_FACE_FLAG_FIXED_SIZES</td><td class="desc">
 <p>Indicates that the face contains bitmap strikes. See also the ‘num_fixed_sizes’ and ‘available_sizes’ fields of <a href="ft2-base_interface.html#FT_FaceRec">FT_FaceRec</a>.</p>
@@ -2911,7 +2912,7 @@
 
 <h4>note</h4>
 <p>You should use only <i>one</i> of the FT_LOAD_TARGET_XXX values in your ‘load_flags’. They can't be ORed.</p>
-<p>If <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_RENDER</a> is also set, the glyph is rendered in the corresponding mode (i.e., the mode that matches the used algorithm best). An exeption is FT_LOAD_TARGET_MONO since it implies <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_MONOCHROME</a>.</p>
+<p>If <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_RENDER</a> is also set, the glyph is rendered in the corresponding mode (i.e., the mode that matches the used algorithm best). An exception is FT_LOAD_TARGET_MONO since it implies <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_MONOCHROME</a>.</p>
 <p>You can use a hinting algorithm that doesn't correspond to the same rendering mode. As an example, it is possible to use the ‘light’ hinting algorithm and have the results rendered in horizontal LCD pixel mode, with code like</p>
 <pre class="colored">
   FT_Load_Glyph( face, glyph_index,

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-basic_types.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-basic_types.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-basic_types.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="basic_types">Basic Data Types</h1>
 <h2>Synopsis</h2>
@@ -483,8 +483,8 @@
 
 <p>A simple structure used to store a 2x2 matrix. Coefficients are in 16.16 fixed-point format. The computation performed is:</p>
 <pre class="colored">
-   x' = x*xx + y*xy                                             
-   y' = x*yx + y*yy                                             
+   x' = x*xx + y*xy
+   y' = x*yx + y*yy
 </pre>
 
 <h4>fields</h4>
@@ -855,7 +855,7 @@
 <h4>note</h4>
 <p>Since many 16-bit compilers don't like 32-bit enumerations, you should redefine this macro in case of problems to something like this:</p>
 <pre class="colored">
-  #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 )  value         
+  #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 )  value
 </pre>
 <p>to get a simple enumeration without assigning special numbers.</p>
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bdf_fonts.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bdf_fonts.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bdf_fonts.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="bdf_fonts">BDF and PCF Files</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bitmap_handling.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bitmap_handling.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bitmap_handling.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="bitmap_handling">Bitmap Handling</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bzip2.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bzip2.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-bzip2.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="bzip2">BZIP2 Streams</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cache_subsystem.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cache_subsystem.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cache_subsystem.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="cache_subsystem">Cache Sub-System</h1>
 <h2>Synopsis</h2>
@@ -534,7 +534,7 @@
 <p>The corresponding <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a> object. 0 in case of failure.</p>
 </td></tr>
 <tr><td class="val" id="anode">anode</td><td class="desc">
-<p>Used to return the address of of the corresponding cache node after incrementing its reference count (see note below).</p>
+<p>Used to return the address of the corresponding cache node after incrementing its reference count (see note below).</p>
 </td></tr>
 </table>
 
@@ -637,7 +637,7 @@
 <p>A handle to a small bitmap descriptor.</p>
 </td></tr>
 <tr><td class="val" id="anode">anode</td><td class="desc">
-<p>Used to return the address of of the corresponding cache node after incrementing its reference count (see note below).</p>
+<p>Used to return the address of the corresponding cache node after incrementing its reference count (see note below).</p>
 </td></tr>
 </table>
 
@@ -876,7 +876,7 @@
 <p>The corresponding <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a> object. 0 in case of failure.</p>
 </td></tr>
 <tr><td class="val" id="anode">anode</td><td class="desc">
-<p>Used to return the address of of the corresponding cache node after incrementing its reference count (see note below).</p>
+<p>Used to return the address of the corresponding cache node after incrementing its reference count (see note below).</p>
 </td></tr>
 </table>
 
@@ -990,7 +990,7 @@
 <p>A handle to a small bitmap descriptor.</p>
 </td></tr>
 <tr><td class="val" id="anode">anode</td><td class="desc">
-<p>Used to return the address of of the corresponding cache node after incrementing its reference count (see note below).</p>
+<p>Used to return the address of the corresponding cache node after incrementing its reference count (see note below).</p>
 </td></tr>
 </table>
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cff_driver.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cff_driver.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cff_driver.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,12 +100,12 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="cff_driver">The CFF driver</h1>
 <h2>Synopsis</h2>
 <table class="synopsis">
-<tr><td><a href="#hinting-engine">hinting-engine</a></td><td> </td></tr>
+<tr><td><a href="#hinting-engine(cff)">hinting-engine</a></td><td> </td></tr>
 <tr><td><a href="#no-stem-darkening(cff)">no-stem-darkening</a></td><td><a href="#FT_CFF_HINTING_XXX">FT_CFF_HINTING_XXX</a></td></tr>
 <tr><td><a href="#darkening-parameters(cff)">darkening-parameters</a></td><td></td></tr>
 </table>
@@ -118,12 +118,12 @@
 <p>There are two principles behind this approach.</p>
 <p>1) No hinting in the horizontal direction: Unlike ‘superhinted’ TrueType, which changes glyph widths to accommodate regular inter-glyph spacing, Adobe's approach is ‘faithful to the design’ in representing both the glyph width and the inter-glyph spacing designed for the font. This makes the screen display as close as it can be to the result one would get with infinite resolution, while preserving what is considered the key characteristics of each glyph. Note that the distances between unhinted and grid-fitted positions at small sizes are comparable to kerning values and thus would be noticeable (and distracting) while reading if hinting were applied.</p>
 <p>One of the reasons to not hint horizontally is antialiasing for LCD screens: The pixel geometry of modern displays supplies three vertical sub-pixels as the eye moves horizontally across each visible pixel. On devices where we can be certain this characteristic is present a rasterizer can take advantage of the sub-pixels to add increments of weight. In Western writing systems this turns out to be the more critical direction anyway; the weights and spacing of vertical stems (see above) are central to Armenian, Cyrillic, Greek, and Latin type designs. Even when the rasterizer uses greyscale antialiasing instead of color (a necessary compromise when one doesn't know the screen characteristics), the unhinted vertical features preserve the design's weight and spacing much better than aliased type would.</p>
-<p>2) Aligment in the vertical direction: Weights and spacing along the y axis are less critical; what is much more important is the visual alignment of related features (like cap-height and x-height). The sense of alignment for these is enhanced by the sharpness of grid-fit edges, while the cruder vertical resolution (full pixels instead of 1/3 pixels) is less of a problem.</p>
+<p>2) Alignment in the vertical direction: Weights and spacing along the y axis are less critical; what is much more important is the visual alignment of related features (like cap-height and x-height). The sense of alignment for these is enhanced by the sharpness of grid-fit edges, while the cruder vertical resolution (full pixels instead of 1/3 pixels) is less of a problem.</p>
 <p>On the technical side, horizontal alignment zones for ascender, x-height, and other important height values (traditionally called ‘blue zones’) as defined in the font are positioned independently, each being rounded to the nearest pixel edge, taking care of overshoot suppression at small sizes, stem darkening, and scaling.</p>
 <p>Hstems (this is, hint values defined in the font to help align horizontal features) that fall within a blue zone are said to be ‘captured’ and are aligned to that zone. Uncaptured stems are moved in one of four ways, top edge up or down, bottom edge up or down. Unless there are conflicting hstems, the smallest movement is taken to minimize distortion.</p>
 
 <div class="section">
-<h3 id="hinting-engine">hinting-engine</h3>
+<h3 id="hinting-engine(cff)">hinting-engine</h3>
 
 <p>Thanks to Adobe, which contributed a new hinting (and parsing) engine, an application can select between ‘freetype’ and ‘adobe’ if compiled with CFF_CONFIG_OPTION_OLD_ENGINE. If this configuration macro isn't defined, ‘hinting-engine’ does nothing.</p>
 <p>The default engine is ‘freetype’ if CFF_CONFIG_OPTION_OLD_ENGINE is defined, and ‘adobe’ otherwise.</p>
@@ -207,7 +207,7 @@
 #define <a href="ft2-cff_driver.html#FT_CFF_HINTING_ADOBE">FT_CFF_HINTING_ADOBE</a>     1
 </pre>
 
-<p>A list of constants used for the <a href="ft2-cff_driver.html#hinting-engine">hinting-engine</a> property to select the hinting engine for CFF fonts.</p>
+<p>A list of constants used for the <a href="ft2-cff_driver.html#hinting-engine(cff)">hinting-engine</a> property to select the hinting engine for CFF fonts.</p>
 
 <h4>values</h4>
 <table class="fields">

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cid_fonts.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cid_fonts.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-cid_fonts.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="cid_fonts">CID Fonts</h1>
 <h2>Synopsis</h2>
@@ -167,7 +167,7 @@
                                       <a href="ft2-basic_types.html#FT_Bool">FT_Bool</a>  *is_cid );
 </pre>
 
-<p>Retrieve the type of the input face, CID keyed or not. In constrast to the <a href="ft2-base_interface.html#FT_IS_CID_KEYED">FT_IS_CID_KEYED</a> macro this function returns successfully also for CID-keyed fonts in an SNFT wrapper.</p>
+<p>Retrieve the type of the input face, CID keyed or not. In contrast to the <a href="ft2-base_interface.html#FT_IS_CID_KEYED">FT_IS_CID_KEYED</a> macro this function returns successfully also for CID-keyed fonts in an SFNT wrapper.</p>
 
 <h4>input</h4>
 <table class="fields">

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-computations.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-computations.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-computations.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="computations">Computations</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-error_code_values.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-error_code_values.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-error_code_values.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="error_code_values">Error Code Values</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-error_enumerations.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-error_enumerations.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-error_enumerations.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="error_enumerations">Error Enumerations</h1>
 
@@ -111,32 +111,32 @@
 <p>Error definitions are set up with special macros that allow client applications to build a table of error message strings. The strings are not included in a normal build of FreeType&nbsp;2 to save space (most client applications do not use them).</p>
 <p>To do so, you have to define the following macros before including this file.</p>
 <pre class="colored">
-  FT_ERROR_START_LIST                                               
+  FT_ERROR_START_LIST
 </pre>
 <p>This macro is called before anything else to define the start of the error list. It is followed by several FT_ERROR_DEF calls.</p>
 <pre class="colored">
-  FT_ERROR_DEF( e, v, s )                                           
+  FT_ERROR_DEF( e, v, s )
 </pre>
 <p>This macro is called to define one single error. ‘e’ is the error code identifier (e.g., ‘Invalid_Argument’), ‘v’ is the error's numerical value, and ‘s’ is the corresponding error string.</p>
 <pre class="colored">
-  FT_ERROR_END_LIST                                                 
+  FT_ERROR_END_LIST
 </pre>
 <p>This macro ends the list.</p>
 <p>Additionally, you have to undefine ‘FTERRORS_H_’ before #including this file.</p>
 <p>Here is a simple example.</p>
 <pre class="colored">
-  #undef FTERRORS_H_                                                
-  #define FT_ERRORDEF( e, v, s )  { e, s },                         
-  #define FT_ERROR_START_LIST     {                                 
-  #define FT_ERROR_END_LIST       { 0, NULL } };                    
-                                                                    
-  const struct                                                      
-  {                                                                 
-    int          err_code;                                          
-    const char*  err_msg;                                           
-  } ft_errors[] =                                                   
-                                                                    
-  #include FT_ERRORS_H                                              
+  #undef FTERRORS_H_
+  #define FT_ERRORDEF( e, v, s )  { e, s },
+  #define FT_ERROR_START_LIST     {
+  #define FT_ERROR_END_LIST       { 0, NULL } };
+
+  const struct
+  {
+    int          err_code;
+    const char*  err_msg;
+  } ft_errors[] =
+
+  #include FT_ERRORS_H
 </pre>
 <p>Note that ‘FT_Err_Ok’ is <i>not</i> defined with ‘FT_ERRORDEF’ but with ‘FT_NOERRORDEF’; it is always zero.</p>
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-font_formats.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-font_formats.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-font_formats.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="font_formats">Font Formats</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gasp_table.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gasp_table.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gasp_table.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="gasp_table">Gasp Table</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_management.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_management.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_management.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="glyph_management">Glyph Management</h1>
 <h2>Synopsis</h2>
@@ -444,15 +444,15 @@
 <p>If the font is tricky and the glyph has been loaded with <a href="ft2-base_interface.html#FT_LOAD_XXX">FT_LOAD_NO_SCALE</a>, the resulting CBox is meaningless. To get reasonable values for the CBox it is necessary to load the glyph at a large ppem value (so that the hinting instructions can properly shift and scale the subglyphs), then extracting the CBox, which can be eventually converted back to font units.</p>
 <p>Note that the maximum coordinates are exclusive, which means that one can compute the width and height of the glyph image (be it in integer or 26.6 pixels) as:</p>
 <pre class="colored">
-  width  = bbox.xMax - bbox.xMin;                                  
-  height = bbox.yMax - bbox.yMin;                                  
+  width  = bbox.xMax - bbox.xMin;
+  height = bbox.yMax - bbox.yMin;
 </pre>
 <p>Note also that for 26.6 coordinates, if ‘bbox_mode’ is set to <a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_GLYPH_BBOX_GRIDFIT</a>, the coordinates will also be grid-fitted, which corresponds to:</p>
 <pre class="colored">
-  bbox.xMin = FLOOR(bbox.xMin);                                    
-  bbox.yMin = FLOOR(bbox.yMin);                                    
-  bbox.xMax = CEILING(bbox.xMax);                                  
-  bbox.yMax = CEILING(bbox.yMax);                                  
+  bbox.xMin = FLOOR(bbox.xMin);
+  bbox.yMin = FLOOR(bbox.yMin);
+  bbox.xMax = CEILING(bbox.xMax);
+  bbox.yMax = CEILING(bbox.yMax);
 </pre>
 <p>To get the bbox in pixel coordinates, set ‘bbox_mode’ to <a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_GLYPH_BBOX_TRUNCATE</a>.</p>
 <p>To get the bbox in grid-fitted pixel coordinates, set ‘bbox_mode’ to <a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_GLYPH_BBOX_PIXELS</a>.</p>
@@ -502,69 +502,69 @@
 <p>The first parameter is a pointer to an <a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a> handle, that will be <i>replaced</i> by this function (with newly allocated data). Typically, you would use (omitting error handling):</p>
 <p></p>
 <pre class="colored">
-  FT_Glyph        glyph;                                         
-  FT_BitmapGlyph  glyph_bitmap;                                  
-                                                                 
-                                                                 
-  // load glyph                                                  
-  error = FT_Load_Char( face, glyph_index, FT_LOAD_DEFAUT );     
-                                                                 
-  // extract glyph image                                         
-  error = FT_Get_Glyph( face->glyph, &glyph );                   
-                                                                 
-  // convert to a bitmap (default render mode + destroying old)  
-  if ( glyph->format != FT_GLYPH_FORMAT_BITMAP )                 
-  {                                                              
-    error = FT_Glyph_To_Bitmap( &glyph, FT_RENDER_MODE_NORMAL,   
-                                0, 1 );                          
-    if ( error ) // `glyph' unchanged                            
-      ...                                                        
-  }                                                              
-                                                                 
-  // access bitmap content by typecasting                        
-  glyph_bitmap = (FT_BitmapGlyph)glyph;                          
-                                                                 
-  // do funny stuff with it, like blitting/drawing               
-  ...                                                            
-                                                                 
-  // discard glyph image (bitmap or not)                         
-  FT_Done_Glyph( glyph );                                        
+  FT_Glyph        glyph;
+  FT_BitmapGlyph  glyph_bitmap;
+
+
+  // load glyph
+  error = FT_Load_Char( face, glyph_index, FT_LOAD_DEFAUT );
+
+  // extract glyph image
+  error = FT_Get_Glyph( face->glyph, &glyph );
+
+  // convert to a bitmap (default render mode + destroying old)
+  if ( glyph->format != FT_GLYPH_FORMAT_BITMAP )
+  {
+    error = FT_Glyph_To_Bitmap( &glyph, FT_RENDER_MODE_NORMAL,
+                                0, 1 );
+    if ( error ) // `glyph' unchanged
+      ...
+  }
+
+  // access bitmap content by typecasting
+  glyph_bitmap = (FT_BitmapGlyph)glyph;
+
+  // do funny stuff with it, like blitting/drawing
+  ...
+
+  // discard glyph image (bitmap or not)
+  FT_Done_Glyph( glyph );
 </pre>
 <p></p>
 <p>Here another example, again without error handling:</p>
 <p></p>
 <pre class="colored">
-  FT_Glyph  glyphs[MAX_GLYPHS]                                   
-                                                                 
-                                                                 
-  ...                                                            
-                                                                 
-  for ( idx = 0; i < MAX_GLYPHS; i++ )                           
-    error = FT_Load_Glyph( face, idx, FT_LOAD_DEFAULT ) ||       
-            FT_Get_Glyph ( face->glyph, &glyph[idx] );           
-                                                                 
-  ...                                                            
-                                                                 
-  for ( idx = 0; i < MAX_GLYPHS; i++ )                           
-  {                                                              
-    FT_Glyph  bitmap = glyphs[idx];                              
-                                                                 
-                                                                 
-    ...                                                          
-                                                                 
-    // after this call, `bitmap' no longer points into           
-    // the `glyphs' array (and the old value isn't destroyed)    
-    FT_Glyph_To_Bitmap( &bitmap, FT_RENDER_MODE_MONO, 0, 0 );    
-                                                                 
-    ...                                                          
-                                                                 
-    FT_Done_Glyph( bitmap );                                     
-  }                                                              
-                                                                 
-  ...                                                            
-                                                                 
-  for ( idx = 0; i < MAX_GLYPHS; i++ )                           
-    FT_Done_Glyph( glyphs[idx] );                                
+  FT_Glyph  glyphs[MAX_GLYPHS]
+
+
+  ...
+
+  for ( idx = 0; i < MAX_GLYPHS; i++ )
+    error = FT_Load_Glyph( face, idx, FT_LOAD_DEFAULT ) ||
+            FT_Get_Glyph ( face->glyph, &glyph[idx] );
+
+  ...
+
+  for ( idx = 0; i < MAX_GLYPHS; i++ )
+  {
+    FT_Glyph  bitmap = glyphs[idx];
+
+
+    ...
+
+    // after this call, `bitmap' no longer points into
+    // the `glyphs' array (and the old value isn't destroyed)
+    FT_Glyph_To_Bitmap( &bitmap, FT_RENDER_MODE_MONO, 0, 0 );
+
+    ...
+
+    FT_Done_Glyph( bitmap );
+  }
+
+  ...
+
+  for ( idx = 0; i < MAX_GLYPHS; i++ )
+    FT_Done_Glyph( glyphs[idx] );
 </pre>
 
 <hr>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_stroker.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_stroker.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_stroker.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="glyph_stroker">Glyph Stroker</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_variants.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_variants.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-glyph_variants.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="glyph_variants">Glyph Variants</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gx_validation.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gx_validation.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gx_validation.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="gx_validation">TrueTypeGX/AAT Validation</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gzip.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gzip.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-gzip.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="gzip">GZIP Streams</h1>
 <h2>Synopsis</h2>
@@ -182,7 +182,7 @@
 <h4>inout</h4>
 <table class="fields">
 <tr><td class="val" id="output_len">output_len</td><td class="desc">
-<p>Before calling the function, this is the the total size of the output buffer, which must be large enough to hold the entire uncompressed data (so the size of the uncompressed data must be known in advance). After calling the function, ‘output_len’ is the size of the used data in ‘output’.</p>
+<p>Before calling the function, this is the total size of the output buffer, which must be large enough to hold the entire uncompressed data (so the size of the uncompressed data must be known in advance). After calling the function, ‘output_len’ is the size of the used data in ‘output’.</p>
 </td></tr>
 </table>
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-header_file_macros.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-header_file_macros.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-header_file_macros.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="header_file_macros">Header File Macros</h1>
 <h2>Synopsis</h2>
@@ -135,9 +135,9 @@
 
 <p>The following macros are defined to the name of specific FreeType 2 header files. They can be used directly in #include statements as in:</p>
 <pre class="colored">
-  #include FT_FREETYPE_H                                           
-  #include FT_MULTIPLE_MASTERS_H                                   
-  #include FT_GLYPH_H                                              
+  #include FT_FREETYPE_H
+  #include FT_MULTIPLE_MASTERS_H
+  #include FT_GLYPH_H
 </pre>
 <p>There are several reasons why we are now using macros to name public header files. The first one is that such macros are not limited to the infamous 8.3 naming rule required by DOS (and ‘FT_MULTIPLE_MASTERS_H’ is a lot more meaningful than ‘ftmm.h’).</p>
 <p>The second reason is that it allows for more flexibility in the way FreeType 2 is installed on a given system.</p>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-header_inclusion.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-header_inclusion.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-header_inclusion.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,16 +100,16 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="header_inclusion">FreeType's header inclusion scheme</h1>
 
 <p>To be as flexible as possible (and for historical reasons), FreeType uses a very special inclusion scheme to load header files, for example</p>
 <pre class="colored">
-  #include <ft2build.h>                                            
-                                                                   
-  #include FT_FREETYPE_H                                           
-  #include FT_OUTLINE_H                                            
+  #include <ft2build.h>
+
+  #include FT_FREETYPE_H
+  #include FT_OUTLINE_H
 </pre>
 <p>A compiler and its preprocessor only needs an include path to find the file ‘ft2build.h’; the exact locations and names of the other FreeType header files are hidden by preprocessor macro names, loaded by ‘ft2build.h’. The API documentation always gives the header macro name needed for a particular function.</p>
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-incremental.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-incremental.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-incremental.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="incremental">Incremental Loading</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-index.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-index.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-index.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <table class="index">
 <tr><td><a href="ft2-bdf_fonts.html#BDF_PropertyType">BDF_PROPERTY_TYPE_ATOM</a></td><td><a href="ft2-base_interface.html#FT_Library">FT_Library</a></td><td><a href="ft2-header_file_macros.html#FT_SYNTHESIS_H">FT_SYNTHESIS_H</a></td></tr>
@@ -216,7 +216,7 @@
 <tr><td><a href="ft2-basic_types.html#FT_F26Dot6">FT_F26Dot6</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Embolden">FT_Outline_Embolden</a></td><td><a href="ft2-cache_subsystem.html#FTC_ScalerRec">FTC_ScalerRec</a></td></tr>
 <tr><td><a href="ft2-basic_types.html#FT_F2Dot14">FT_F2Dot14</a></td><td><a href="ft2-outline_processing.html#FT_Outline_EmboldenXY">FT_Outline_EmboldenXY</a></td><td><a href="ft2-auto_hinter.html#fallback-script">fallback-script</a></td></tr>
 <tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_CID_KEYED</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Funcs">FT_Outline_Funcs</a></td><td><a href="ft2-auto_hinter.html#glyph-to-script-map">glyph-to-script-map</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_COLOR</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Get_BBox">FT_Outline_Get_BBox</a></td><td><a href="ft2-cff_driver.html#hinting-engine">hinting-engine</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_COLOR</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Get_BBox">FT_Outline_Get_BBox</a></td><td><a href="ft2-cff_driver.html#hinting-engine(cff)">hinting-engine (cff)</a></td></tr>
 <tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_EXTERNAL_STREAM</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Get_Bitmap">FT_Outline_Get_Bitmap</a></td><td><a href="ft2-auto_hinter.html#increase-x-height">increase-x-height</a></td></tr>
 <tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_FAST_GLYPHS</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Get_CBox">FT_Outline_Get_CBox</a></td><td><a href="ft2-tt_driver.html#interpreter-version">interpreter-version</a></td></tr>
 <tr><td><a href="ft2-base_interface.html#FT_FACE_FLAG_XXX">FT_FACE_FLAG_FIXED_SIZES</a></td><td><a href="ft2-outline_processing.html#FT_Outline_Get_Orientation">FT_Outline_Get_Orientation</a></td><td><a href="ft2-auto_hinter.html#no-stem-darkening(autofit)">no-stem-darkening (autofit)</a></td></tr>
@@ -311,73 +311,73 @@
 <tr><td><a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_GLYPH_BBOX_UNSCALED</a></td><td><a href="ft2-base_interface.html#FT_Size_Request_Type">FT_SIZE_REQUEST_TYPE_BBOX</a></td><td><a href="ft2-truetype_tables.html#TT_HoriHeader">TT_HoriHeader</a></td></tr>
 <tr><td><a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_BITMAP</a></td><td><a href="ft2-base_interface.html#FT_Size_Request_Type">FT_SIZE_REQUEST_TYPE_CELL</a></td><td><a href="ft2-tt_driver.html#TT_INTERPRETER_VERSION_XXX">TT_INTERPRETER_VERSION_35</a></td></tr>
 <tr><td><a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_COMPOSITE</a></td><td><a href="ft2-base_interface.html#FT_Size_Request_Type">FT_SIZE_REQUEST_TYPE_NOMINAL</a></td><td><a href="ft2-tt_driver.html#TT_INTERPRETER_VERSION_XXX">TT_INTERPRETER_VERSION_38</a></td></tr>
-<tr><td><a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_NONE</a></td><td><a href="ft2-base_interface.html#FT_Size_Request_Type">FT_SIZE_REQUEST_TYPE_REAL_DIM</a></td><td><a href="ft2-tt_driver.html#TT_INTERPRETER_VERSION_XXX">TT_INTERPRETER_VERSION_XXX</a></td></tr>
-<tr><td><a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_OUTLINE</a></td><td><a href="ft2-base_interface.html#FT_Size_Request_Type">FT_SIZE_REQUEST_TYPE_SCALES</a></td><td><a href="ft2-truetype_tables.html#TT_ISO_ID_XXX">TT_ISO_ID_10646</a></td></tr>
-<tr><td><a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_PLOTTER</a></td><td><a href="ft2-header_file_macros.html#FT_SIZES_H">FT_SIZES_H</a></td><td><a href="ft2-truetype_tables.html#TT_ISO_ID_XXX">TT_ISO_ID_7BIT_ASCII</a></td></tr>
-<tr><td><a href="ft2-header_file_macros.html#FT_GLYPH_H">FT_GLYPH_H</a></td><td><a href="ft2-computations.html#FT_Sin">FT_Sin</a></td><td><a href="ft2-truetype_tables.html#TT_ISO_ID_XXX">TT_ISO_ID_8859_1</a></td></tr>
-<tr><td><a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a></td><td><a href="ft2-base_interface.html#FT_Size">FT_Size</a></td><td><a href="ft2-truetype_tables.html#TT_ISO_ID_XXX">TT_ISO_ID_XXX</a></td></tr>
-<tr><td><a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_Glyph_BBox_Mode</a></td><td><a href="ft2-base_interface.html#FT_Size_Internal">FT_Size_Internal</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_ARABIC</a></td></tr>
-<tr><td><a href="ft2-glyph_management.html#FT_Glyph_Copy">FT_Glyph_Copy</a></td><td><a href="ft2-base_interface.html#FT_Size_Metrics">FT_Size_Metrics</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_ARMENIAN</a></td></tr>
-<tr><td><a href="ft2-basic_types.html#FT_Glyph_Format">FT_Glyph_Format</a></td><td><a href="ft2-base_interface.html#FT_Size_Request">FT_Size_Request</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_BENGALI</a></td></tr>
-<tr><td><a href="ft2-glyph_management.html#FT_Glyph_Get_CBox">FT_Glyph_Get_CBox</a></td><td><a href="ft2-base_interface.html#FT_Size_Request_Type">FT_Size_Request_Type</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_BURMESE</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_Glyph_Metrics">FT_Glyph_Metrics</a></td><td><a href="ft2-base_interface.html#FT_Size_RequestRec">FT_Size_RequestRec</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_DEVANAGARI</a></td></tr>
-<tr><td><a href="ft2-glyph_stroker.html#FT_Glyph_Stroke">FT_Glyph_Stroke</a></td><td><a href="ft2-base_interface.html#FT_SizeRec">FT_SizeRec</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_GEEZ</a></td></tr>
-<tr><td><a href="ft2-glyph_stroker.html#FT_Glyph_StrokeBorder">FT_Glyph_StrokeBorder</a></td><td><a href="ft2-base_interface.html#FT_Slot_Internal">FT_Slot_Internal</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_GEORGIAN</a></td></tr>
-<tr><td><a href="ft2-glyph_management.html#FT_Glyph_To_Bitmap">FT_Glyph_To_Bitmap</a></td><td><a href="ft2-raster.html#FT_Span">FT_Span</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_GREEK</a></td></tr>
-<tr><td><a href="ft2-glyph_management.html#FT_Glyph_Transform">FT_Glyph_Transform</a></td><td><a href="ft2-raster.html#FT_SpanFunc">FT_SpanFunc</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_GUJARATI</a></td></tr>
-<tr><td><a href="ft2-glyph_management.html#FT_GlyphRec">FT_GlyphRec</a></td><td><a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_STROKER_BORDER_LEFT</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_GURMUKHI</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_GlyphSlot">FT_GlyphSlot</a></td><td><a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_STROKER_BORDER_RIGHT</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_HEBREW</a></td></tr>
-<tr><td><a href="ft2-bitmap_handling.html#FT_GlyphSlot_Own_Bitmap">FT_GlyphSlot_Own_Bitmap</a></td><td><a href="ft2-header_file_macros.html#FT_STROKER_H">FT_STROKER_H</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_JAPANESE</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_GlyphSlotRec">FT_GlyphSlotRec</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineCap">FT_STROKER_LINECAP_BUTT</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_KANNADA</a></td></tr>
-<tr><td><a href="ft2-header_file_macros.html#FT_GX_VALIDATE_H">FT_GX_VALIDATE_H</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineCap">FT_STROKER_LINECAP_ROUND</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_KHMER</a></td></tr>
-<tr><td><a href="ft2-header_file_macros.html#FT_GZIP_H">FT_GZIP_H</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineCap">FT_STROKER_LINECAP_SQUARE</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_KOREAN</a></td></tr>
-<tr><td><a href="ft2-gzip.html#FT_Gzip_Uncompress">FT_Gzip_Uncompress</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_STROKER_LINEJOIN_BEVEL</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_LAOTIAN</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_HAS_COLOR">FT_HAS_COLOR</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_STROKER_LINEJOIN_MITER</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_MALAYALAM</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_HAS_FAST_GLYPHS">FT_HAS_FAST_GLYPHS</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_STROKER_LINEJOIN_MITER_FIXED</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_MALDIVIAN</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_HAS_FIXED_SIZES">FT_HAS_FIXED_SIZES</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_STROKER_LINEJOIN_MITER_VARIABLE</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_MONGOLIAN</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_HAS_GLYPH_NAMES">FT_HAS_GLYPH_NAMES</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_STROKER_LINEJOIN_ROUND</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_ORIYA</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_HAS_HORIZONTAL">FT_HAS_HORIZONTAL</a></td><td><a href="ft2-base_interface.html#FT_STYLE_FLAG_XXX">FT_STYLE_FLAG_BOLD</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_ROMAN</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_HAS_KERNING">FT_HAS_KERNING</a></td><td><a href="ft2-base_interface.html#FT_STYLE_FLAG_XXX">FT_STYLE_FLAG_ITALIC</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_RSYMBOL</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_HAS_MULTIPLE_MASTERS">FT_HAS_MULTIPLE_MASTERS</a></td><td><a href="ft2-base_interface.html#FT_STYLE_FLAG_XXX">FT_STYLE_FLAG_XXX</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_RUSSIAN</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_HAS_VERTICAL">FT_HAS_VERTICAL</a></td><td><a href="ft2-system_interface.html#FT_Stream">FT_Stream</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_SIMPLIFIED_CHINESE</a></td></tr>
-<tr><td><a href="ft2-type1_tables.html#FT_Has_PS_Glyph_Names">FT_Has_PS_Glyph_Names</a></td><td><a href="ft2-system_interface.html#FT_Stream_CloseFunc">FT_Stream_CloseFunc</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_SINDHI</a></td></tr>
-<tr><td><a href="ft2-header_file_macros.html#FT_IMAGE_H">FT_IMAGE_H</a></td><td><a href="ft2-system_interface.html#FT_Stream_IoFunc">FT_Stream_IoFunc</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_SINHALESE</a></td></tr>
-<tr><td><a href="ft2-basic_types.html#FT_IMAGE_TAG">FT_IMAGE_TAG</a></td><td><a href="ft2-bzip2.html#FT_Stream_OpenBzip2">FT_Stream_OpenBzip2</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_SLAVIC</a></td></tr>
-<tr><td><a href="ft2-header_file_macros.html#FT_INCREMENTAL_H">FT_INCREMENTAL_H</a></td><td><a href="ft2-gzip.html#FT_Stream_OpenGzip">FT_Stream_OpenGzip</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_TAMIL</a></td></tr>
-<tr><td><a href="ft2-incremental.html#FT_Incremental">FT_Incremental</a></td><td><a href="ft2-lzw.html#FT_Stream_OpenLZW">FT_Stream_OpenLZW</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_TELUGU</a></td></tr>
-<tr><td><a href="ft2-incremental.html#FT_Incremental_FreeGlyphDataFunc">FT_Incremental_FreeGlyphDataFunc</a></td><td><a href="ft2-system_interface.html#FT_StreamDesc">FT_StreamDesc</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_THAI</a></td></tr>
-<tr><td><a href="ft2-incremental.html#FT_Incremental_FuncsRec">FT_Incremental_FuncsRec</a></td><td><a href="ft2-system_interface.html#FT_StreamRec">FT_StreamRec</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_TIBETAN</a></td></tr>
-<tr><td><a href="ft2-incremental.html#FT_Incremental_GetGlyphDataFunc">FT_Incremental_GetGlyphDataFunc</a></td><td><a href="ft2-basic_types.html#FT_String">FT_String</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_TRADITIONAL_CHINESE</a></td></tr>
-<tr><td><a href="ft2-incremental.html#FT_Incremental_GetGlyphMetricsFunc">FT_Incremental_GetGlyphMetricsFunc</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_UNINTERP</a></td></tr>
-<tr><td><a href="ft2-incremental.html#FT_Incremental_Interface">FT_Incremental_Interface</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_BeginSubPath">FT_Stroker_BeginSubPath</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_VIETNAMESE</a></td></tr>
-<tr><td><a href="ft2-incremental.html#FT_Incremental_InterfaceRec">FT_Incremental_InterfaceRec</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_ConicTo">FT_Stroker_ConicTo</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_XXX</a></td></tr>
-<tr><td><a href="ft2-incremental.html#FT_Incremental_Metrics">FT_Incremental_Metrics</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_CubicTo">FT_Stroker_CubicTo</a></td><td><a href="ft2-truetype_tables.html#TT_MaxProfile">TT_MaxProfile</a></td></tr>
-<tr><td><a href="ft2-incremental.html#FT_Incremental_MetricsRec">FT_Incremental_MetricsRec</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_Done">FT_Stroker_Done</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_BIG_5</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_Init_FreeType">FT_Init_FreeType</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_EndSubPath">FT_Stroker_EndSubPath</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_GB2312</a></td></tr>
-<tr><td><a href="ft2-basic_types.html#FT_Int">FT_Int</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_Export">FT_Stroker_Export</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_JOHAB</a></td></tr>
-<tr><td><a href="ft2-basic_types.html#FT_Int16">FT_Int16</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_ExportBorder">FT_Stroker_ExportBorder</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_SJIS</a></td></tr>
-<tr><td><a href="ft2-basic_types.html#FT_Int32">FT_Int32</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_GetBorderCounts">FT_Stroker_GetBorderCounts</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_SYMBOL_CS</a></td></tr>
-<tr><td><a href="ft2-basic_types.html#FT_Int64">FT_Int64</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_GetCounts">FT_Stroker_GetCounts</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_UCS_4</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_IS_CID_KEYED">FT_IS_CID_KEYED</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineCap">FT_Stroker_LineCap</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_UNICODE_CS</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_IS_FIXED_WIDTH">FT_IS_FIXED_WIDTH</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_Stroker_LineJoin</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_WANSUNG</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_IS_SCALABLE">FT_IS_SCALABLE</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineTo">FT_Stroker_LineTo</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_XXX</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_IS_SFNT">FT_IS_SFNT</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_New">FT_Stroker_New</a></td><td><a href="ft2-truetype_tables.html#TT_OS2">TT_OS2</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_IS_TRICKY">FT_IS_TRICKY</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_ParseOutline">FT_Stroker_ParseOutline</a></td><td><a href="ft2-truetype_tables.html#TT_PCLT">TT_PCLT</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_Kerning_Mode">FT_KERNING_DEFAULT</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_Rewind">FT_Stroker_Rewind</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_ADOBE</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_Kerning_Mode">FT_KERNING_UNFITTED</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_Set">FT_Stroker_Set</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_APPLE_UNICODE</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_Kerning_Mode">FT_KERNING_UNSCALED</a></td><td><a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_StrokerBorder</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_CUSTOM</a></td></tr>
-<tr><td><a href="ft2-base_interface.html#FT_Kerning_Mode">FT_Kerning_Mode</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_2X2</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_ISO</a></td></tr>
-<tr><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_DEFAULT</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_MACINTOSH</a></td></tr>
-<tr><td><a href="ft2-header_file_macros.html#FT_LCD_FILTER_H">FT_LCD_FILTER_H</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_MICROSOFT</a></td></tr>
-<tr><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_LEGACY</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_XXX</a></td></tr>
-<tr><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_LEGACY1</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_SCALE</a></td><td><a href="ft2-truetype_tables.html#TT_Postscript">TT_Postscript</a></td></tr>
-<tr><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_LIGHT</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_USE_MY_METRICS</a></td><td><a href="ft2-truetype_tables.html#TT_VertHeader">TT_VertHeader</a></td></tr>
-<tr><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_NONE</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_XXX</a></td><td><a href="ft2-auto_hinter.html#warping">warping</a></td></tr>
-<tr><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LcdFilter</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_XY_SCALE</a></td><td></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_NONE</a></td><td><a href="ft2-base_interface.html#FT_Size_Request_Type">FT_SIZE_REQUEST_TYPE_REAL_DIM</a></td><td><a href="ft2-tt_driver.html#TT_INTERPRETER_VERSION_XXX">TT_INTERPRETER_VERSION_40</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_OUTLINE</a></td><td><a href="ft2-base_interface.html#FT_Size_Request_Type">FT_SIZE_REQUEST_TYPE_SCALES</a></td><td><a href="ft2-tt_driver.html#TT_INTERPRETER_VERSION_XXX">TT_INTERPRETER_VERSION_XXX</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Glyph_Format">FT_GLYPH_FORMAT_PLOTTER</a></td><td><a href="ft2-header_file_macros.html#FT_SIZES_H">FT_SIZES_H</a></td><td><a href="ft2-truetype_tables.html#TT_ISO_ID_XXX">TT_ISO_ID_10646</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_GLYPH_H">FT_GLYPH_H</a></td><td><a href="ft2-computations.html#FT_Sin">FT_Sin</a></td><td><a href="ft2-truetype_tables.html#TT_ISO_ID_XXX">TT_ISO_ID_7BIT_ASCII</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph">FT_Glyph</a></td><td><a href="ft2-base_interface.html#FT_Size">FT_Size</a></td><td><a href="ft2-truetype_tables.html#TT_ISO_ID_XXX">TT_ISO_ID_8859_1</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph_BBox_Mode">FT_Glyph_BBox_Mode</a></td><td><a href="ft2-base_interface.html#FT_Size_Internal">FT_Size_Internal</a></td><td><a href="ft2-truetype_tables.html#TT_ISO_ID_XXX">TT_ISO_ID_XXX</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph_Copy">FT_Glyph_Copy</a></td><td><a href="ft2-base_interface.html#FT_Size_Metrics">FT_Size_Metrics</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_ARABIC</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Glyph_Format">FT_Glyph_Format</a></td><td><a href="ft2-base_interface.html#FT_Size_Request">FT_Size_Request</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_ARMENIAN</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph_Get_CBox">FT_Glyph_Get_CBox</a></td><td><a href="ft2-base_interface.html#FT_Size_Request_Type">FT_Size_Request_Type</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_BENGALI</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Glyph_Metrics">FT_Glyph_Metrics</a></td><td><a href="ft2-base_interface.html#FT_Size_RequestRec">FT_Size_RequestRec</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_BURMESE</a></td></tr>
+<tr><td><a href="ft2-glyph_stroker.html#FT_Glyph_Stroke">FT_Glyph_Stroke</a></td><td><a href="ft2-base_interface.html#FT_SizeRec">FT_SizeRec</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_DEVANAGARI</a></td></tr>
+<tr><td><a href="ft2-glyph_stroker.html#FT_Glyph_StrokeBorder">FT_Glyph_StrokeBorder</a></td><td><a href="ft2-base_interface.html#FT_Slot_Internal">FT_Slot_Internal</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_GEEZ</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph_To_Bitmap">FT_Glyph_To_Bitmap</a></td><td><a href="ft2-raster.html#FT_Span">FT_Span</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_GEORGIAN</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_Glyph_Transform">FT_Glyph_Transform</a></td><td><a href="ft2-raster.html#FT_SpanFunc">FT_SpanFunc</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_GREEK</a></td></tr>
+<tr><td><a href="ft2-glyph_management.html#FT_GlyphRec">FT_GlyphRec</a></td><td><a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_STROKER_BORDER_LEFT</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_GUJARATI</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_GlyphSlot">FT_GlyphSlot</a></td><td><a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_STROKER_BORDER_RIGHT</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_GURMUKHI</a></td></tr>
+<tr><td><a href="ft2-bitmap_handling.html#FT_GlyphSlot_Own_Bitmap">FT_GlyphSlot_Own_Bitmap</a></td><td><a href="ft2-header_file_macros.html#FT_STROKER_H">FT_STROKER_H</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_HEBREW</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_GlyphSlotRec">FT_GlyphSlotRec</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineCap">FT_STROKER_LINECAP_BUTT</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_JAPANESE</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_GX_VALIDATE_H">FT_GX_VALIDATE_H</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineCap">FT_STROKER_LINECAP_ROUND</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_KANNADA</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_GZIP_H">FT_GZIP_H</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineCap">FT_STROKER_LINECAP_SQUARE</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_KHMER</a></td></tr>
+<tr><td><a href="ft2-gzip.html#FT_Gzip_Uncompress">FT_Gzip_Uncompress</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_STROKER_LINEJOIN_BEVEL</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_KOREAN</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_HAS_COLOR">FT_HAS_COLOR</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_STROKER_LINEJOIN_MITER</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_LAOTIAN</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_HAS_FAST_GLYPHS">FT_HAS_FAST_GLYPHS</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_STROKER_LINEJOIN_MITER_FIXED</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_MALAYALAM</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_HAS_FIXED_SIZES">FT_HAS_FIXED_SIZES</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_STROKER_LINEJOIN_MITER_VARIABLE</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_MALDIVIAN</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_HAS_GLYPH_NAMES">FT_HAS_GLYPH_NAMES</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_STROKER_LINEJOIN_ROUND</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_MONGOLIAN</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_HAS_HORIZONTAL">FT_HAS_HORIZONTAL</a></td><td><a href="ft2-base_interface.html#FT_STYLE_FLAG_XXX">FT_STYLE_FLAG_BOLD</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_ORIYA</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_HAS_KERNING">FT_HAS_KERNING</a></td><td><a href="ft2-base_interface.html#FT_STYLE_FLAG_XXX">FT_STYLE_FLAG_ITALIC</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_ROMAN</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_HAS_MULTIPLE_MASTERS">FT_HAS_MULTIPLE_MASTERS</a></td><td><a href="ft2-base_interface.html#FT_STYLE_FLAG_XXX">FT_STYLE_FLAG_XXX</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_RSYMBOL</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_HAS_VERTICAL">FT_HAS_VERTICAL</a></td><td><a href="ft2-system_interface.html#FT_Stream">FT_Stream</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_RUSSIAN</a></td></tr>
+<tr><td><a href="ft2-type1_tables.html#FT_Has_PS_Glyph_Names">FT_Has_PS_Glyph_Names</a></td><td><a href="ft2-system_interface.html#FT_Stream_CloseFunc">FT_Stream_CloseFunc</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_SIMPLIFIED_CHINESE</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_IMAGE_H">FT_IMAGE_H</a></td><td><a href="ft2-system_interface.html#FT_Stream_IoFunc">FT_Stream_IoFunc</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_SINDHI</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_IMAGE_TAG">FT_IMAGE_TAG</a></td><td><a href="ft2-bzip2.html#FT_Stream_OpenBzip2">FT_Stream_OpenBzip2</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_SINHALESE</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_INCREMENTAL_H">FT_INCREMENTAL_H</a></td><td><a href="ft2-gzip.html#FT_Stream_OpenGzip">FT_Stream_OpenGzip</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_SLAVIC</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental">FT_Incremental</a></td><td><a href="ft2-lzw.html#FT_Stream_OpenLZW">FT_Stream_OpenLZW</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_TAMIL</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental_FreeGlyphDataFunc">FT_Incremental_FreeGlyphDataFunc</a></td><td><a href="ft2-system_interface.html#FT_StreamDesc">FT_StreamDesc</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_TELUGU</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental_FuncsRec">FT_Incremental_FuncsRec</a></td><td><a href="ft2-system_interface.html#FT_StreamRec">FT_StreamRec</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_THAI</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental_GetGlyphDataFunc">FT_Incremental_GetGlyphDataFunc</a></td><td><a href="ft2-basic_types.html#FT_String">FT_String</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_TIBETAN</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental_GetGlyphMetricsFunc">FT_Incremental_GetGlyphMetricsFunc</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker">FT_Stroker</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_TRADITIONAL_CHINESE</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental_Interface">FT_Incremental_Interface</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_BeginSubPath">FT_Stroker_BeginSubPath</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_UNINTERP</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental_InterfaceRec">FT_Incremental_InterfaceRec</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_ConicTo">FT_Stroker_ConicTo</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_VIETNAMESE</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental_Metrics">FT_Incremental_Metrics</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_CubicTo">FT_Stroker_CubicTo</a></td><td><a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_XXX</a></td></tr>
+<tr><td><a href="ft2-incremental.html#FT_Incremental_MetricsRec">FT_Incremental_MetricsRec</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_Done">FT_Stroker_Done</a></td><td><a href="ft2-truetype_tables.html#TT_MaxProfile">TT_MaxProfile</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Init_FreeType">FT_Init_FreeType</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_EndSubPath">FT_Stroker_EndSubPath</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_BIG_5</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Int">FT_Int</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_Export">FT_Stroker_Export</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_GB2312</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Int16">FT_Int16</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_ExportBorder">FT_Stroker_ExportBorder</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_JOHAB</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Int32">FT_Int32</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_GetBorderCounts">FT_Stroker_GetBorderCounts</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_SJIS</a></td></tr>
+<tr><td><a href="ft2-basic_types.html#FT_Int64">FT_Int64</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_GetCounts">FT_Stroker_GetCounts</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_SYMBOL_CS</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_IS_CID_KEYED">FT_IS_CID_KEYED</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineCap">FT_Stroker_LineCap</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_UCS_4</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_IS_FIXED_WIDTH">FT_IS_FIXED_WIDTH</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineJoin">FT_Stroker_LineJoin</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_UNICODE_CS</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_IS_SCALABLE">FT_IS_SCALABLE</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_LineTo">FT_Stroker_LineTo</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_WANSUNG</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_IS_SFNT">FT_IS_SFNT</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_New">FT_Stroker_New</a></td><td><a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_XXX</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_IS_TRICKY">FT_IS_TRICKY</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_ParseOutline">FT_Stroker_ParseOutline</a></td><td><a href="ft2-truetype_tables.html#TT_OS2">TT_OS2</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Kerning_Mode">FT_KERNING_DEFAULT</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_Rewind">FT_Stroker_Rewind</a></td><td><a href="ft2-truetype_tables.html#TT_PCLT">TT_PCLT</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Kerning_Mode">FT_KERNING_UNFITTED</a></td><td><a href="ft2-glyph_stroker.html#FT_Stroker_Set">FT_Stroker_Set</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_ADOBE</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Kerning_Mode">FT_KERNING_UNSCALED</a></td><td><a href="ft2-glyph_stroker.html#FT_StrokerBorder">FT_StrokerBorder</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_APPLE_UNICODE</a></td></tr>
+<tr><td><a href="ft2-base_interface.html#FT_Kerning_Mode">FT_Kerning_Mode</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_2X2</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_CUSTOM</a></td></tr>
+<tr><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_DEFAULT</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_ISO</a></td></tr>
+<tr><td><a href="ft2-header_file_macros.html#FT_LCD_FILTER_H">FT_LCD_FILTER_H</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_MACINTOSH</a></td></tr>
+<tr><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_LEGACY</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_MICROSOFT</a></td></tr>
+<tr><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_LEGACY1</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_SCALE</a></td><td><a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_XXX</a></td></tr>
+<tr><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_LIGHT</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_USE_MY_METRICS</a></td><td><a href="ft2-truetype_tables.html#TT_Postscript">TT_Postscript</a></td></tr>
+<tr><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_NONE</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_XXX</a></td><td><a href="ft2-truetype_tables.html#TT_VertHeader">TT_VertHeader</a></td></tr>
+<tr><td><a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LcdFilter</a></td><td><a href="ft2-base_interface.html#FT_SUBGLYPH_FLAG_XXX">FT_SUBGLYPH_FLAG_XY_SCALE</a></td><td><a href="ft2-auto_hinter.html#warping">warping</a></td></tr>
 <tr><td><a href="ft2-header_file_macros.html#FT_LIST_H">FT_LIST_H</a></td><td><a href="ft2-base_interface.html#FT_SubGlyph">FT_SubGlyph</a></td><td></td></tr>
 </table>
 <hr>
 <table class="index-toc-link"><tr><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
 
-<div class="timestamp">generated on Mon Feb  8 23:35:23 2016</div></body>
+<div class="timestamp">generated on Tue Jul  5 17:05:26 2016</div></body>
 </html>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-lcd_filtering.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-lcd_filtering.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-lcd_filtering.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="lcd_filtering">LCD Filtering</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-list_processing.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-list_processing.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-list_processing.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="list_processing">List Processing</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-lzw.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-lzw.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-lzw.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="lzw">LZW Streams</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-mac_specific.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-mac_specific.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-mac_specific.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="mac_specific">Mac Specific Interface</h1>
 <h2>Synopsis</h2>
@@ -157,8 +157,8 @@
 <h4>notes</h4>
 <p>This function can be used to create <a href="ft2-base_interface.html#FT_Face">FT_Face</a> objects from fonts that are installed in the system as follows.</p>
 <pre class="colored">
-  fond = GetResource( 'FOND', fontName );                          
-  error = FT_New_Face_From_FOND( library, fond, 0, &face );        
+  fond = GetResource( 'FOND', fontName );
+  error = FT_New_Face_From_FOND( library, fond, 0, &face );
 </pre>
 
 <hr>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-module_management.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-module_management.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-module_management.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="module_management">Module Management</h1>
 <h2>Synopsis</h2>
@@ -120,24 +120,24 @@
 <p>The definitions below are used to manage modules within FreeType. Modules can be added, upgraded, and removed at runtime. Additionally, some module properties can be controlled also.</p>
 <p>Here is a list of possible values of the ‘module_name’ field in the <a href="ft2-module_management.html#FT_Module_Class">FT_Module_Class</a> structure.</p>
 <pre class="colored">
-  autofitter                                                       
-  bdf                                                              
-  cff                                                              
-  gxvalid                                                          
-  otvalid                                                          
-  pcf                                                              
-  pfr                                                              
-  psaux                                                            
-  pshinter                                                         
-  psnames                                                          
-  raster1                                                          
-  sfnt                                                             
-  smooth, smooth-lcd, smooth-lcdv                                  
-  truetype                                                         
-  type1                                                            
-  type42                                                           
-  t1cid                                                            
-  winfonts                                                         
+  autofitter
+  bdf
+  cff
+  gxvalid
+  otvalid
+  pcf
+  pfr
+  psaux
+  pshinter
+  psnames
+  raster1
+  sfnt
+  smooth, smooth-lcd, smooth-lcdv
+  truetype
+  type1
+  type42
+  t1cid
+  winfonts
 </pre>
 <p>Note that the FreeType Cache sub-system is not a FreeType module.</p>
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-multiple_masters.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-multiple_masters.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-multiple_masters.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="multiple_masters">Multiple Masters</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-ot_validation.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-ot_validation.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-ot_validation.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="ot_validation">OpenType Validation</h1>
 <h2>Synopsis</h2>
@@ -205,12 +205,12 @@
 #define <a href="ft2-ot_validation.html#FT_VALIDATE_JSTF">FT_VALIDATE_JSTF</a>  0x1000
 #define <a href="ft2-ot_validation.html#FT_VALIDATE_MATH">FT_VALIDATE_MATH</a>  0x2000
 
-#define <a href="ft2-ot_validation.html#FT_VALIDATE_OT">FT_VALIDATE_OT</a>  <a href="ft2-ot_validation.html#FT_VALIDATE_BASE">FT_VALIDATE_BASE</a> | \
-                        <a href="ft2-ot_validation.html#FT_VALIDATE_GDEF">FT_VALIDATE_GDEF</a> | \
-                        <a href="ft2-ot_validation.html#FT_VALIDATE_GPOS">FT_VALIDATE_GPOS</a> | \
-                        <a href="ft2-ot_validation.html#FT_VALIDATE_GSUB">FT_VALIDATE_GSUB</a> | \
-                        <a href="ft2-ot_validation.html#FT_VALIDATE_JSTF">FT_VALIDATE_JSTF</a> | \
-                        <a href="ft2-ot_validation.html#FT_VALIDATE_MATH">FT_VALIDATE_MATH</a>
+#define <a href="ft2-ot_validation.html#FT_VALIDATE_OT">FT_VALIDATE_OT</a>  ( <a href="ft2-ot_validation.html#FT_VALIDATE_BASE">FT_VALIDATE_BASE</a> | \
+                          <a href="ft2-ot_validation.html#FT_VALIDATE_GDEF">FT_VALIDATE_GDEF</a> | \
+                          <a href="ft2-ot_validation.html#FT_VALIDATE_GPOS">FT_VALIDATE_GPOS</a> | \
+                          <a href="ft2-ot_validation.html#FT_VALIDATE_GSUB">FT_VALIDATE_GSUB</a> | \
+                          <a href="ft2-ot_validation.html#FT_VALIDATE_JSTF">FT_VALIDATE_JSTF</a> | \
+                          <a href="ft2-ot_validation.html#FT_VALIDATE_MATH">FT_VALIDATE_MATH</a> )
 </pre>
 
 <p>A list of bit-field constants used with <a href="ft2-ot_validation.html#FT_OpenType_Validate">FT_OpenType_Validate</a> to indicate which OpenType tables should be validated.</p>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-outline_processing.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-outline_processing.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-outline_processing.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="outline_processing">Outline Processing</h1>
 <h2>Synopsis</h2>
@@ -389,9 +389,9 @@
 <p>If you need ‘better’ metrics values you should call <a href="ft2-outline_processing.html#FT_Outline_Get_CBox">FT_Outline_Get_CBox</a> or <a href="ft2-outline_processing.html#FT_Outline_Get_BBox">FT_Outline_Get_BBox</a>.</p>
 <p>Example call:</p>
 <pre class="colored">
-  FT_Load_Glyph( face, index, FT_LOAD_DEFAULT );                   
-  if ( face->glyph->format == FT_GLYPH_FORMAT_OUTLINE )            
-    FT_Outline_Embolden( &face->glyph->outline, strength );        
+  FT_Load_Glyph( face, index, FT_LOAD_DEFAULT );
+  if ( face->glyph->format == FT_GLYPH_FORMAT_OUTLINE )
+    FT_Outline_Embolden( &face->glyph->outline, strength );
 </pre>
 <p>To get meaningful results, font scaling values must be set with functions like <a href="ft2-base_interface.html#FT_Set_Char_Size">FT_Set_Char_Size</a> before calling FT_Render_Glyph.</p>
 
@@ -688,8 +688,8 @@
 <h4>note</h4>
 <p>The point coordinates sent to the emitters are the transformed version of the original coordinates (this is important for high accuracy during scan-conversion). The transformation is simple:</p>
 <pre class="colored">
-  x' = (x << shift) - delta                                        
-  y' = (x << shift) - delta                                        
+  x' = (x << shift) - delta
+  y' = (x << shift) - delta
 </pre>
 <p>Set the values of ‘shift’ and ‘delta’ to 0 to get the original point coordinates.</p>
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-pfr_fonts.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-pfr_fonts.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-pfr_fonts.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="pfr_fonts">PFR Fonts</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-quick_advance.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-quick_advance.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-quick_advance.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="quick_advance">Quick retrieval of advance values</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-raster.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-raster.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-raster.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="raster">Scanline Converter</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-sfnt_names.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-sfnt_names.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-sfnt_names.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="sfnt_names">SFNT Names</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-sizes_management.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-sizes_management.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-sizes_management.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="sizes_management">Size Management</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-system_interface.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-system_interface.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-system_interface.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="system_interface">System Interface</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-toc.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-toc.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-toc.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1>Table of Contents</h1>
 <div class="section">
@@ -277,5 +277,5 @@
 <hr>
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td></tr></table>
 
-<div class="timestamp">generated on Mon Feb  8 23:35:23 2016</div></body>
+<div class="timestamp">generated on Tue Jul  5 17:05:26 2016</div></body>
 </html>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-truetype_engine.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-truetype_engine.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-truetype_engine.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="truetype_engine">The TrueType Engine</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-truetype_tables.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-truetype_tables.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-truetype_tables.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="truetype_tables">TrueType Tables</h1>
 <h2>Synopsis</h2>
@@ -610,7 +610,7 @@
 <p>To access the font's <a href="ft2-truetype_tables.html#TT_HoriHeader">TT_HoriHeader</a> structure.</p>
 </td></tr>
 <tr><td class="val" id="FT_SFNT_VHEA">FT_SFNT_VHEA</td><td class="desc">
-<p>To access the font's <a href="ft2-truetype_tables.html#TT_VertHeader">TT_VertHeader</a> struture.</p>
+<p>To access the font's <a href="ft2-truetype_tables.html#TT_VertHeader">TT_VertHeader</a> structure.</p>
 </td></tr>
 <tr><td class="val" id="FT_SFNT_POST">FT_SFNT_POST</td><td class="desc">
 <p>To access the font's <a href="ft2-truetype_tables.html#TT_Postscript">TT_Postscript</a> structure.</p>
@@ -653,11 +653,11 @@
 <p>This function is only useful to access SFNT tables that are loaded by the sfnt, truetype, and opentype drivers. See <a href="ft2-truetype_tables.html#FT_Sfnt_Tag">FT_Sfnt_Tag</a> for a list.</p>
 <p>Here an example how to access the ‘vhea’ table:</p>
 <pre class="colored">
-  TT_VertHeader*  vert_header;                                     
-                                                                   
-                                                                   
-  vert_header =                                                    
-    (TT_VertHeader*)FT_Get_Sfnt_Table( face, FT_SFNT_VHEA );       
+  TT_VertHeader*  vert_header;
+
+
+  vert_header =
+    (TT_VertHeader*)FT_Get_Sfnt_Table( face, FT_SFNT_VHEA );
 </pre>
 
 <hr>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-tt_driver.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-tt_driver.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-tt_driver.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="tt_driver">The TrueType driver</h1>
 <h2>Synopsis</h2>
@@ -129,27 +129,52 @@
 
 <div class="section">
 <h3 id="interpreter-version">interpreter-version</h3>
-
-<p>Currently, two versions are available, representing the bytecode interpreter with and without subpixel hinting support, respectively. The default is subpixel support if TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined, and no subpixel support otherwise (since it isn't available then).</p>
-<p>If subpixel hinting is on, many TrueType bytecode instructions behave differently compared to B/W or grayscale rendering (except if ‘native ClearType’ is selected by the font). The main idea is to render at a much increased horizontal resolution, then sampling down the created output to subpixel precision. However, many older fonts are not suited to this and must be specially taken care of by applying (hardcoded) font-specific tweaks.</p>
-<p>Details on subpixel hinting and some of the necessary tweaks can be found in Greg Hitchcock's whitepaper at ‘<a href="http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx">http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx</a>’.</p>
-<p>The following example code demonstrates how to activate subpixel hinting (omitting the error handling).</p>
-<pre class="colored">
-  FT_Library  library;
-  FT_Face     face;
-  FT_UInt     interpreter_version = TT_INTERPRETER_VERSION_38;
-
-
-  FT_Init_FreeType( &library );
-
-  FT_Property_Set( library, "truetype",
-                            "interpreter-version",
-                            &interpreter_version );
+<p>Defined in FT_TRUETYPE_DRIVER_H (freetype/ftttdrv.h).</p>
+<pre>
+   *   Currently, three versions are available, two representing the
+   *   bytecode interpreter with subpixel hinting support (old `Infinality'
+   *   code and new stripped-down and higher performance `minimal' code) and
+   *   one without, respectively.  The default is subpixel support if
+   *   TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined, and no subpixel support
+   *   otherwise (since it isn't available then).
+   *
+   *   If subpixel hinting is on, many TrueType bytecode instructions behave
+   *   differently compared to B/W or grayscale rendering (except if `native
+   *   ClearType' is selected by the font).  Microsoft's main idea is to
+   *   render at a much increased horizontal resolution, then sampling down
+   *   the created output to subpixel precision.  However, many older fonts
+   *   are not suited to this and must be specially taken care of by
+   *   applying (hardcoded) tweaks in Microsoft's interpreter.
+   *
+   *   Details on subpixel hinting and some of the necessary tweaks can be
+   *   found in Greg Hitchcock's whitepaper at
+   *   `http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx'. 
+   *   Note that FreeType currently doesn't really `subpixel hint' (6x1, 6x2,
+   *   or 6x5 supersampling) like discussed in the paper.  Depending on the
+   *   chosen interpreter, it simply ignores instructions on vertical stems
+   *   to arrive at very similar results.
+   *
+   *   The following example code demonstrates how to deactivate subpixel
+   *   hinting (omitting the error handling).
+   *
+   *   {
+   *     <a href="ft2-base_interface.html#FT_Library">FT_Library</a>  library;
+   *     <a href="ft2-base_interface.html#FT_Face">FT_Face</a>     face;
+   *     <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a>     interpreter_version = <a href="ft2-tt_driver.html#TT_INTERPRETER_VERSION_35">TT_INTERPRETER_VERSION_35</a>;
+   *
+   *
+   *     <a href="ft2-base_interface.html#FT_Init_FreeType">FT_Init_FreeType</a>( &library );
+   *
+   *     <a href="ft2-module_management.html#FT_Property_Set">FT_Property_Set</a>( library, "truetype",
+   *                               "interpreter-version",
+   *                               &interpreter_version );
+   *   }
+   *
+   * @note:
+   *   This property can be used with @<a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a> also.
+   *
+   */
 </pre>
-
-<h4>note</h4>
-<p>This property can be used with <a href="ft2-module_management.html#FT_Property_Get">FT_Property_Get</a> also.</p>
-
 <hr>
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
 
@@ -159,6 +184,7 @@
 <pre>
 #define <a href="ft2-tt_driver.html#TT_INTERPRETER_VERSION_35">TT_INTERPRETER_VERSION_35</a>  35
 #define <a href="ft2-tt_driver.html#TT_INTERPRETER_VERSION_38">TT_INTERPRETER_VERSION_38</a>  38
+#define <a href="ft2-tt_driver.html#TT_INTERPRETER_VERSION_40">TT_INTERPRETER_VERSION_40</a>  40
 </pre>
 
 <p>A list of constants used for the <a href="ft2-tt_driver.html#interpreter-version">interpreter-version</a> property to select the hinting engine for Truetype fonts.</p>
@@ -170,13 +196,16 @@
 <p>Version 35 corresponds to MS rasterizer v.1.7 as used e.g. in Windows 98; only grayscale and B/W rasterizing is supported.</p>
 </td></tr>
 <tr><td class="val" id="TT_INTERPRETER_VERSION_38">TT_INTERPRETER_VERSION_38</td><td class="desc">
-<p>Version 38 corresponds to MS rasterizer v.1.9; it is roughly equivalent to the hinting provided by DirectWrite ClearType (as can be found, for example, in the Internet Explorer 9 running on Windows 7).</p>
+<p>Version 38 corresponds to MS rasterizer v.1.9; it is roughly equivalent to the hinting provided by DirectWrite ClearType (as can be found, for example, in the Internet Explorer 9 running on Windows 7). It is used in FreeType to select the ‘Infinality’ subpixel hinting code. The code may be removed in a future version.</p>
 </td></tr>
+<tr><td class="val" id="TT_INTERPRETER_VERSION_40">TT_INTERPRETER_VERSION_40</td><td class="desc">
+<p>Version 40 corresponds to MS rasterizer v.2.1; it is roughly equivalent to the hinting provided by DirectWrite ClearType (as can be found, for example, in Microsoft's Edge Browser on Windows 10). It is used in FreeType to select the ‘minimal’ subpixel hinting code, a stripped-down and higher performance version of the ‘Infinality’ code.</p>
+</td></tr>
 </table>
 
 <h4>note</h4>
 <p>This property controls the behaviour of the bytecode interpreter and thus how outlines get hinted. It does <b>not</b> control how glyph get rasterized! In particular, it does not control subpixel color filtering.</p>
-<p>If FreeType has not been compiled with configuration option FT_CONFIG_OPTION_SUBPIXEL_HINTING, selecting version 38 causes an ‘FT_Err_Unimplemented_Feature’ error.</p>
+<p>If FreeType has not been compiled with the configuration option FT_CONFIG_OPTION_SUBPIXEL_HINTING, selecting version 38 or 40 causes an ‘FT_Err_Unimplemented_Feature’ error.</p>
 <p>Depending on the graphics framework, Microsoft uses different bytecode and rendering engines. As a consequence, the version numbers returned by a call to the ‘GETINFO’ bytecode instruction are more convoluted than desired.</p>
 <p>Here are two tables that try to shed some light on the possible values for the MS rasterizer engine, together with the additional features introduced by it.</p>
 <pre class="colored">
@@ -218,7 +247,7 @@
 <p>Color and Gray ClearType are the two available variants of ‘Y-direction ClearType’, meaning grayscale rasterization along the Y-direction; the name used in the TrueType specification for this feature is ‘symmetric smoothing’. ‘Classic ClearType’ is the original algorithm used before introducing a modified version in Win XP. Another name for v1.6's grayscale rendering is ‘font smoothing’, and ‘Color ClearType’ is sometimes also called ‘DWrite ClearType’. To differentiate between today's Color ClearType and the earlier ClearType variant with B/W rendering along the vertical axis, the latter is sometimes called ‘GDI ClearType’.</p>
 <p>‘Normal’ and ‘high’ sampling describe the (virtual) resolution to access the rasterized outline after the hinting process. ‘Normal’ means 1 sample per grid line (i.e., B/W). In the current Microsoft implementation, ‘high’ means an extra virtual resolution of 16x16 (or 16x1) grid lines per pixel for bytecode instructions like ‘MIRP’. After hinting, these 16 grid lines are mapped to 6x5 (or 6x1) grid lines for color filtering if Color ClearType is activated.</p>
 <p>Note that ‘Gray ClearType’ is essentially the same as v1.6's grayscale rendering. However, the GETINFO instruction handles it differently: v1.6 returns bit 12 (hinting for grayscale), while v2.1 returns bits 13 (hinting for ClearType), 18 (symmetrical smoothing), and 19 (Gray ClearType). Also, this mode respects bits 2 and 3 for the version 1 gasp table exclusively (like Color ClearType), while v1.6 only respects the values of version 0 (bits 0 and 1).</p>
-<p>FreeType doesn't provide all capabilities of the most recent ClearType incarnation, thus we identify our subpixel support as version 38.</p>
+<p>Keep in mind that the features of the above interpreter versions might not map exactly to FreeType features or behavior because it is a fundamentally different library with different internals.</p>
 
 <hr>
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-type1_tables.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-type1_tables.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-type1_tables.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="type1_tables">Type 1 Tables</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-user_allocation.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-user_allocation.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-user_allocation.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="user_allocation">User allocation</h1>
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-version.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-version.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-version.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="version">FreeType Version</h1>
 <h2>Synopsis</h2>
@@ -223,7 +223,7 @@
 <pre>
 #define <a href="ft2-version.html#FREETYPE_MAJOR">FREETYPE_MAJOR</a>  2
 #define <a href="ft2-version.html#FREETYPE_MINOR">FREETYPE_MINOR</a>  6
-#define <a href="ft2-version.html#FREETYPE_PATCH">FREETYPE_PATCH</a>  3
+#define <a href="ft2-version.html#FREETYPE_PATCH">FREETYPE_PATCH</a>  4
 </pre>
 
 <p>These three macros identify the FreeType source code version. Use <a href="ft2-version.html#FT_Library_Version">FT_Library_Version</a> to access them at runtime.</p>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-winfnt_fonts.html
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-winfnt_fonts.html	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-winfnt_fonts.html	2016-07-07 09:56:43 UTC (rev 41649)
@@ -3,7 +3,7 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>FreeType-2.6.3 API Reference</title>
+<title>FreeType-2.6.4 API Reference</title>
 <style type="text/css">
   a:link { color: #0000EF; }
   a:visited { color: #51188E; }
@@ -100,7 +100,7 @@
 <body>
 
 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
-<h1>FreeType-2.6.3 API Reference</h1>
+<h1>FreeType-2.6.4 API Reference</h1>
 
 <h1 id="winfnt_fonts">Window FNT Files</h1>
 <h2>Synopsis</h2>

Modified: trunk/Build/source/libs/freetype2/freetype-src/docs/release
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/docs/release	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/docs/release	2016-07-07 09:56:43 UTC (rev 41649)
@@ -13,7 +13,7 @@
 
 . README: Update.
 
-. docs/VERSION.DLL: Document changed `version_info'.
+. docs/VERSIONS.TXT: Document changed `version_info'.
 
 . ChangeLog:   Announce  new  release   (both  in  the  freetype2  and
   freetype2-demos modules).

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftoption.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftoption.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftoption.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -586,23 +586,53 @@
   /*************************************************************************/
   /*                                                                       */
   /* Define TT_CONFIG_OPTION_SUBPIXEL_HINTING if you want to compile       */
-  /* EXPERIMENTAL subpixel hinting support into the TrueType driver.  This */
-  /* replaces the native TrueType hinting mechanism when anything but      */
-  /* FT_RENDER_MODE_MONO is requested.                                     */
+  /* subpixel hinting support into the TrueType driver.  This modifies the */
+  /* TrueType hinting mechanism when anything but FT_RENDER_MODE_MONO is   */
+  /* requested.                                                            */
   /*                                                                       */
-  /* Enabling this causes the TrueType driver to ignore instructions under */
-  /* certain conditions.  This is done in accordance with the guide here,  */
-  /* with some minor differences:                                          */
+  /* In particular, it modifies the bytecode interpreter to interpret (or  */
+  /* not) instructions in a certain way so that all TrueType fonts look    */
+  /* like they do in a Windows ClearType (DirectWrite) environment.  See   */
+  /* [1] for a technical overview on what this means.  See `ttinterp.h'    */
+  /* for more details on the LEAN option.                                  */
   /*                                                                       */
-  /*  http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx */
+  /* There are three options.                                              */
   /*                                                                       */
-  /* By undefining this, you only compile the code necessary to hint       */
-  /* TrueType glyphs with native TT hinting.                               */
+  /* 1. This option is associated with the `Infinality' moniker.           */
+  /*    Contributed by an individual nicknamed Infinality with the goal of */
+  /*    making TrueType fonts render better than on Windows.  A high       */
+  /*    amount of configurability and flexibility, down to rules for       */
+  /*    single glyphs in fonts, but also very slow.  Its experimental and  */
+  /*    slow nature and the original developer losing interest meant that  */
+  /*    this option was never enabled in default builds.                   */
   /*                                                                       */
-  /*   This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be    */
-  /*   defined.                                                            */
+  /* 2. The new default mode for the TrueType driver.  The Infinality code */
+  /*    base was stripped to the bare minimum and all configurability      */
+  /*    removed in the name of speed and simplicity.  The configurability  */
+  /*    was mainly aimed at legacy fonts like Arial, Times New Roman, or   */
+  /*    Courier.  Legacy fonts are fonts that modify vertical stems to     */
+  /*    achieve clean black-and-white bitmaps.  The new mode focuses on    */
+  /*    applying a minimal set of rules to all fonts indiscriminately so   */
+  /*    that modern and web fonts render well while legacy fonts render    */
+  /*    okay.                                                              */
   /*                                                                       */
-/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+  /* 3. Compile both.                                                      */
+  /*                                                                       */
+  /* By undefining these, you get rendering behavior like on Windows       */
+  /* without ClearType, i.e., Windows XP without ClearType enabled and     */
+  /* Win9x (interpreter version v35).  Or not, depending on how much       */
+  /* hinting blood and testing tears the font designer put into a given    */
+  /* font.  If you define one or both subpixel hinting options, you can    */
+  /* switch between between v35 and the ones you define.                   */
+  /*                                                                       */
+  /* This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be      */
+  /* defined.                                                              */
+  /*                                                                       */
+  /* [1] http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx */
+  /*                                                                       */
+/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING  1     */
+#define TT_CONFIG_OPTION_SUBPIXEL_HINTING     2
+/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING  ( 1 | 2 ) */
 
 
   /*************************************************************************/
@@ -811,9 +841,17 @@
    */
 #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
 #define  TT_USE_BYTECODE_INTERPRETER
+
+#if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 1
+#define  TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
 #endif
 
+#if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 2
+#define  TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+#endif
+#endif
 
+
   /*
    * Check CFF darkening parameters.  The checks are the same as in function
    * `cff_property_set' in file `cffdrivr.c'.

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftstdlib.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftstdlib.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/config/ftstdlib.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -63,6 +63,7 @@
 #define FT_INT_MAX     INT_MAX
 #define FT_INT_MIN     INT_MIN
 #define FT_UINT_MAX    UINT_MAX
+#define FT_LONG_MIN    LONG_MIN
 #define FT_LONG_MAX    LONG_MAX
 #define FT_ULONG_MAX   ULONG_MAX
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/freetype.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/freetype.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/freetype.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -651,11 +651,11 @@
   /*                                                                       */
   /*    FT_ENCODING_SJIS ::                                                */
   /*      Corresponds to Japanese SJIS encoding.  More info at             */
-  /*      at `http://en.wikipedia.org/wiki/Shift_JIS'.                     */
+  /*      `http://en.wikipedia.org/wiki/Shift_JIS'.                        */
   /*      See note on multi-byte encodings below.                          */
   /*                                                                       */
   /*    FT_ENCODING_GB2312 ::                                              */
-  /*      Corresponds to an encoding system for Simplified Chinese as used */
+  /*      Corresponds to an encoding system for Simplified Chinese as      */
   /*      used in mainland China.                                          */
   /*                                                                       */
   /*    FT_ENCODING_BIG5 ::                                                */
@@ -1103,7 +1103,7 @@
   /*    FT_FACE_FLAG_SCALABLE ::                                           */
   /*      Indicates that the face contains outline glyphs.  This doesn't   */
   /*      prevent bitmap strikes, i.e., a face can have both this and      */
-  /*      and @FT_FACE_FLAG_FIXED_SIZES set.                               */
+  /*      @FT_FACE_FLAG_FIXED_SIZES set.                                   */
   /*                                                                       */
   /*    FT_FACE_FLAG_FIXED_SIZES ::                                        */
   /*      Indicates that the face contains bitmap strikes.  See also the   */
@@ -1222,7 +1222,7 @@
    *
    */
 #define FT_HAS_HORIZONTAL( face ) \
-          ( face->face_flags & FT_FACE_FLAG_HORIZONTAL )
+          ( (face)->face_flags & FT_FACE_FLAG_HORIZONTAL )
 
 
   /*************************************************************************
@@ -1236,7 +1236,7 @@
    *
    */
 #define FT_HAS_VERTICAL( face ) \
-          ( face->face_flags & FT_FACE_FLAG_VERTICAL )
+          ( (face)->face_flags & FT_FACE_FLAG_VERTICAL )
 
 
   /*************************************************************************
@@ -1250,7 +1250,7 @@
    *
    */
 #define FT_HAS_KERNING( face ) \
-          ( face->face_flags & FT_FACE_FLAG_KERNING )
+          ( (face)->face_flags & FT_FACE_FLAG_KERNING )
 
 
   /*************************************************************************
@@ -1265,7 +1265,7 @@
    *
    */
 #define FT_IS_SCALABLE( face ) \
-          ( face->face_flags & FT_FACE_FLAG_SCALABLE )
+          ( (face)->face_flags & FT_FACE_FLAG_SCALABLE )
 
 
   /*************************************************************************
@@ -1284,7 +1284,7 @@
    *
    */
 #define FT_IS_SFNT( face ) \
-          ( face->face_flags & FT_FACE_FLAG_SFNT )
+          ( (face)->face_flags & FT_FACE_FLAG_SFNT )
 
 
   /*************************************************************************
@@ -1299,7 +1299,7 @@
    *
    */
 #define FT_IS_FIXED_WIDTH( face ) \
-          ( face->face_flags & FT_FACE_FLAG_FIXED_WIDTH )
+          ( (face)->face_flags & FT_FACE_FLAG_FIXED_WIDTH )
 
 
   /*************************************************************************
@@ -1314,7 +1314,7 @@
    *
    */
 #define FT_HAS_FIXED_SIZES( face ) \
-          ( face->face_flags & FT_FACE_FLAG_FIXED_SIZES )
+          ( (face)->face_flags & FT_FACE_FLAG_FIXED_SIZES )
 
 
   /*************************************************************************
@@ -1340,7 +1340,7 @@
    *
    */
 #define FT_HAS_GLYPH_NAMES( face ) \
-          ( face->face_flags & FT_FACE_FLAG_GLYPH_NAMES )
+          ( (face)->face_flags & FT_FACE_FLAG_GLYPH_NAMES )
 
 
   /*************************************************************************
@@ -1355,7 +1355,7 @@
    *
    */
 #define FT_HAS_MULTIPLE_MASTERS( face ) \
-          ( face->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS )
+          ( (face)->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS )
 
 
   /*************************************************************************
@@ -1373,7 +1373,7 @@
    *
    */
 #define FT_IS_CID_KEYED( face ) \
-          ( face->face_flags & FT_FACE_FLAG_CID_KEYED )
+          ( (face)->face_flags & FT_FACE_FLAG_CID_KEYED )
 
 
   /*************************************************************************
@@ -1387,7 +1387,7 @@
    *
    */
 #define FT_IS_TRICKY( face ) \
-          ( face->face_flags & FT_FACE_FLAG_TRICKY )
+          ( (face)->face_flags & FT_FACE_FLAG_TRICKY )
 
 
   /*************************************************************************
@@ -1401,7 +1401,7 @@
    *
    */
 #define FT_HAS_COLOR( face ) \
-          ( face->face_flags & FT_FACE_FLAG_COLOR )
+          ( (face)->face_flags & FT_FACE_FLAG_COLOR )
 
 
   /*************************************************************************/
@@ -1941,7 +1941,7 @@
   /*                                                                       */
   /*    If the @FT_OPEN_MEMORY bit is set, assume that this is a           */
   /*    memory file of `memory_size' bytes, located at `memory_address'.   */
-  /*    The data are are not copied, and the client is responsible for     */
+  /*    The data are not copied, and the client is responsible for         */
   /*    releasing and destroying them _after_ the corresponding call to    */
   /*    @FT_Done_Face.                                                     */
   /*                                                                       */
@@ -2339,9 +2339,9 @@
   /*      used to determine both scaling values.                           */
   /*                                                                       */
   /*    FT_SIZE_REQUEST_TYPE_REAL_DIM ::                                   */
-  /*      The real dimension.  The sum of the the `ascender' and (minus    */
-  /*      of) the `descender' fields of @FT_FaceRec are used to determine  */
-  /*      both scaling values.                                             */
+  /*      The real dimension.  The sum of the `ascender' and (minus of)    */
+  /*      the `descender' fields of @FT_FaceRec are used to determine both */
+  /*      scaling values.                                                  */
   /*                                                                       */
   /*    FT_SIZE_REQUEST_TYPE_BBOX ::                                       */
   /*      The font bounding box.  The width and height of the `bbox' field */
@@ -2578,6 +2578,10 @@
   /*    don't have a corresponding glyph in the font).  See the discussion */
   /*    of the @FT_FACE_FLAG_CID_KEYED flag for more details.              */
   /*                                                                       */
+  /*    If you receive `FT_Err_Glyph_Too_Big', try getting the glyph       */
+  /*    outline at EM size, then scale it manually and fill it as a        */
+  /*    graphics operation.                                                */
+  /*                                                                       */
   FT_EXPORT( FT_Error )
   FT_Load_Glyph( FT_Face   face,
                  FT_UInt   glyph_index,
@@ -2855,7 +2859,7 @@
    *
    *   If @FT_LOAD_RENDER is also set, the glyph is rendered in the
    *   corresponding mode (i.e., the mode that matches the used algorithm
-   *   best).  An exeption is FT_LOAD_TARGET_MONO since it implies
+   *   best).  An exception is FT_LOAD_TARGET_MONO since it implies
    *   @FT_LOAD_MONOCHROME.
    *
    *   You can use a hinting algorithm that doesn't correspond to the same
@@ -3273,7 +3277,7 @@
   /*    `.notdef').                                                        */
   /*                                                                       */
   /*    This function always returns an error if the config macro          */
-  /*    `FT_CONFIG_OPTION_NO_GLYPH_NAMES' is not defined in `ftoptions.h'. */
+  /*    `FT_CONFIG_OPTION_NO_GLYPH_NAMES' is not defined in `ftoption.h'.  */
   /*                                                                       */
   FT_EXPORT( FT_Error )
   FT_Get_Glyph_Name( FT_Face     face,
@@ -4172,7 +4176,7 @@
    */
 #define FREETYPE_MAJOR  2
 #define FREETYPE_MINOR  6
-#define FREETYPE_PATCH  3
+#define FREETYPE_PATCH  4
 
 
   /*************************************************************************/

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftautoh.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftautoh.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftautoh.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -219,8 +219,8 @@
    *       U+0F00 - U+0FFF  // Tibetan
    *       U+1900 - U+194F  // Limbu
    *       U+1B80 - U+1BBF  // Sundanese
-   *       U+1C80 - U+1CDF  // Meetei Mayak
    *       U+A800 - U+A82F  // Syloti Nagri
+   *       U+ABC0 - U+ABFF  // Meetei Mayek
    *      U+11800 - U+118DF // Sharada
    *     }
    *

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftcache.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftcache.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftcache.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -749,7 +749,7 @@
   /*    aglyph :: The corresponding @FT_Glyph object.  0~in case of        */
   /*              failure.                                                 */
   /*                                                                       */
-  /*    anode  :: Used to return the address of of the corresponding cache */
+  /*    anode  :: Used to return the address of the corresponding cache    */
   /*              node after incrementing its reference count (see note    */
   /*              below).                                                  */
   /*                                                                       */
@@ -802,7 +802,7 @@
   /*    aglyph     :: The corresponding @FT_Glyph object.  0~in case of    */
   /*                  failure.                                             */
   /*                                                                       */
-  /*    anode      :: Used to return the address of of the corresponding   */
+  /*    anode      :: Used to return the address of the corresponding      */
   /*                  cache node after incrementing its reference count    */
   /*                  (see note below).                                    */
   /*                                                                       */
@@ -957,7 +957,7 @@
   /* <Output>                                                              */
   /*    sbit   :: A handle to a small bitmap descriptor.                   */
   /*                                                                       */
-  /*    anode  :: Used to return the address of of the corresponding cache */
+  /*    anode  :: Used to return the address of the corresponding cache    */
   /*              node after incrementing its reference count (see note    */
   /*              below).                                                  */
   /*                                                                       */
@@ -1012,7 +1012,7 @@
   /* <Output>                                                              */
   /*    sbit       :: A handle to a small bitmap descriptor.               */
   /*                                                                       */
-  /*    anode      :: Used to return the address of of the corresponding   */
+  /*    anode      :: Used to return the address of the corresponding      */
   /*                  cache node after incrementing its reference count    */
   /*                  (see note below).                                    */
   /*                                                                       */

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftcffdrv.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftcffdrv.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftcffdrv.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -89,7 +89,7 @@
    *   features preserve the design's weight and spacing much better than
    *   aliased type would.
    *
-   *   2) Aligment in the vertical direction: Weights and spacing along the
+   *   2) Alignment in the vertical direction: Weights and spacing along the
    *   y~axis are less critical; what is much more important is the visual
    *   alignment of related features (like cap-height and x-height).  The
    *   sense of alignment for these is enhanced by the sharpness of grid-fit
@@ -110,7 +110,7 @@
    *   to minimize distortion.
    *
    * @order:
-   *   hinting-engine
+   *   hinting-engine[cff]
    *   no-stem-darkening[cff]
    *   darkening-parameters[cff]
    *
@@ -120,7 +120,7 @@
   /**************************************************************************
    *
    * @property:
-   *   hinting-engine
+   *   hinting-engine[cff]
    *
    * @description:
    *   Thanks to Adobe, which contributed a new hinting (and parsing)
@@ -157,8 +157,8 @@
    *   FT_CFF_HINTING_XXX
    *
    * @description:
-   *   A list of constants used for the @hinting-engine property to select
-   *   the hinting engine for CFF fonts.
+   *   A list of constants used for the @hinting-engine[cff] property to
+   *   select the hinting engine for CFF fonts.
    *
    * @values:
    *   FT_CFF_HINTING_FREETYPE ::

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftcid.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftcid.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftcid.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -97,8 +97,8 @@
    *
    * @description:
    *    Retrieve the type of the input face, CID keyed or not.  In
-   *    constrast to the @FT_IS_CID_KEYED macro this function returns
-   *    successfully also for CID-keyed fonts in an SNFT wrapper.
+   *    contrast to the @FT_IS_CID_KEYED macro this function returns
+   *    successfully also for CID-keyed fonts in an SFNT wrapper.
    *
    * @input:
    *    face ::

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftgzip.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftgzip.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftgzip.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -117,11 +117,11 @@
   *
   * @inout:
   *   output_len ::
-  *     Before calling the function, this is the the total size of the
-  *     output buffer, which must be large enough to hold the entire
-  *     uncompressed data (so the size of the uncompressed data must be
-  *     known in advance).  After calling the function, `output_len' is the
-  *     size of the used data in `output'.
+  *     Before calling the function, this is the total size of the output
+  *     buffer, which must be large enough to hold the entire uncompressed
+  *     data (so the size of the uncompressed data must be known in
+  *     advance).  After calling the function, `output_len' is the size of
+  *     the used data in `output'.
   *
   * @return:
   *   FreeType error code.  0~means success.

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftimage.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftimage.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftimage.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -747,7 +747,7 @@
   /*************************************************************************/
   /*                                                                       */
   /* A raster is a scan converter, in charge of rendering an outline into  */
-  /* a a bitmap.  This section contains the public API for rasters.        */
+  /* a bitmap.  This section contains the public API for rasters.          */
   /*                                                                       */
   /* Note that in FreeType 2, all rasters are now encapsulated within      */
   /* specific modules called `renderers'.  See `ftrender.h' for more       */

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftotval.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftotval.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftotval.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -106,12 +106,12 @@
 #define FT_VALIDATE_JSTF  0x1000
 #define FT_VALIDATE_MATH  0x2000
 
-#define FT_VALIDATE_OT  FT_VALIDATE_BASE | \
-                        FT_VALIDATE_GDEF | \
-                        FT_VALIDATE_GPOS | \
-                        FT_VALIDATE_GSUB | \
-                        FT_VALIDATE_JSTF | \
-                        FT_VALIDATE_MATH
+#define FT_VALIDATE_OT  ( FT_VALIDATE_BASE | \
+                          FT_VALIDATE_GDEF | \
+                          FT_VALIDATE_GPOS | \
+                          FT_VALIDATE_GSUB | \
+                          FT_VALIDATE_JSTF | \
+                          FT_VALIDATE_MATH )
 
  /**********************************************************************
   *

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftsystem.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftsystem.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftsystem.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -290,7 +290,7 @@
    *     The stream size in bytes.
    *
    *     In case of compressed streams where the size is unknown before
-   *     actually doing the decompression, the value is set to 0x7FFFFFFF. 
+   *     actually doing the decompression, the value is set to 0x7FFFFFFF.
    *     (Note that this size value can occur for normal streams also; it is
    *     thus just a hint.)
    *

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftttdrv.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftttdrv.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/ftttdrv.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -138,31 +138,37 @@
    *   interpreter-version
    *
    * @description:
-   *   Currently, two versions are available, representing the bytecode
-   *   interpreter with and without subpixel hinting support,
-   *   respectively.  The default is subpixel support if
-   *   TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined, and no subpixel
-   *   support otherwise (since it isn't available then).
+
+   *   Currently, three versions are available, two representing the
+   *   bytecode interpreter with subpixel hinting support (old `Infinality'
+   *   code and new stripped-down and higher performance `minimal' code) and
+   *   one without, respectively.  The default is subpixel support if
+   *   TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined, and no subpixel support
+   *   otherwise (since it isn't available then).
    *
    *   If subpixel hinting is on, many TrueType bytecode instructions behave
    *   differently compared to B/W or grayscale rendering (except if `native
-   *   ClearType' is selected by the font).  The main idea is to render at a
-   *   much increased horizontal resolution, then sampling down the created
-   *   output to subpixel precision.  However, many older fonts are not
-   *   suited to this and must be specially taken care of by applying
-   *   (hardcoded) font-specific tweaks.
+   *   ClearType' is selected by the font).  Microsoft's main idea is to
+   *   render at a much increased horizontal resolution, then sampling down
+   *   the created output to subpixel precision.  However, many older fonts
+   *   are not suited to this and must be specially taken care of by
+   *   applying (hardcoded) tweaks in Microsoft's interpreter.
    *
    *   Details on subpixel hinting and some of the necessary tweaks can be
    *   found in Greg Hitchcock's whitepaper at
-   *   `http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx'.
+   *   `http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx'. 
+   *   Note that FreeType currently doesn't really `subpixel hint' (6x1, 6x2,
+   *   or 6x5 supersampling) like discussed in the paper.  Depending on the
+   *   chosen interpreter, it simply ignores instructions on vertical stems
+   *   to arrive at very similar results.
    *
-   *   The following example code demonstrates how to activate subpixel
+   *   The following example code demonstrates how to deactivate subpixel
    *   hinting (omitting the error handling).
    *
    *   {
    *     FT_Library  library;
    *     FT_Face     face;
-   *     FT_UInt     interpreter_version = TT_INTERPRETER_VERSION_38;
+   *     FT_UInt     interpreter_version = TT_INTERPRETER_VERSION_35;
    *
    *
    *     FT_Init_FreeType( &library );
@@ -197,10 +203,20 @@
    *
    *   TT_INTERPRETER_VERSION_38 ::
    *     Version~38 corresponds to MS rasterizer v.1.9; it is roughly
-   *     equivalent to the hinting provided by DirectWrite ClearType (as
-   *     can be found, for example, in the Internet Explorer~9 running on
-   *     Windows~7).
+   *     equivalent to the hinting provided by DirectWrite ClearType (as can
+   *     be found, for example, in the Internet Explorer~9 running on
+   *     Windows~7).  It is used in FreeType to select the `Infinality'
+   *     subpixel hinting code.  The code may be removed in a future
+   *     version.
    *
+   *   TT_INTERPRETER_VERSION_40 ::
+   *     Version~40 corresponds to MS rasterizer v.2.1; it is roughly
+   *     equivalent to the hinting provided by DirectWrite ClearType (as can
+   *     be found, for example, in Microsoft's Edge Browser on Windows~10). 
+   *     It is used in FreeType to select the `minimal' subpixel hinting
+   *     code, a stripped-down and higher performance version of the
+   *     `Infinality' code.
+   *
    * @note:
    *   This property controls the behaviour of the bytecode interpreter
    *   and thus how outlines get hinted.  It does *not* control how glyph
@@ -207,9 +223,9 @@
    *   get rasterized!  In particular, it does not control subpixel color
    *   filtering.
    *
-   *   If FreeType has not been compiled with configuration option
-   *   FT_CONFIG_OPTION_SUBPIXEL_HINTING, selecting version~38 causes an
-   *   `FT_Err_Unimplemented_Feature' error.
+   *   If FreeType has not been compiled with the configuration option
+   *   FT_CONFIG_OPTION_SUBPIXEL_HINTING, selecting version~38 or~40 causes
+   *   an `FT_Err_Unimplemented_Feature' error.
    *
    *   Depending on the graphics framework, Microsoft uses different
    *   bytecode and rendering engines.  As a consequence, the version
@@ -290,13 +306,14 @@
    *   the version~1 gasp table exclusively (like Color ClearType), while
    *   v1.6 only respects the values of version~0 (bits 0 and~1).
    *
-   *   FreeType doesn't provide all capabilities of the most recent
-   *   ClearType incarnation, thus we identify our subpixel support as
-   *   version~38.
+   *   Keep in mind that the features of the above interpreter versions
+   *   might not map exactly to FreeType features or behavior because it is
+   *   a fundamentally different library with different internals.
    *
    */
 #define TT_INTERPRETER_VERSION_35  35
 #define TT_INTERPRETER_VERSION_38  38
+#define TT_INTERPRETER_VERSION_40  40
 
  /* */
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftdriver.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftdriver.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftdriver.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -213,7 +213,7 @@
   /*    And when it is no longer needed a `destroy' function needs to be   */
   /*    called to release that allocation.                                 */
   /*                                                                       */
-  /*    `fcinit.c' (ft_create_default_module_classes) already contains a   */
+  /*    `ftinit.c' (ft_create_default_module_classes) already contains a   */
   /*    mechanism to call these functions for the default modules          */
   /*    described in `ftmodule.h'.                                         */
   /*                                                                       */

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftmemory.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftmemory.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftmemory.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -65,7 +65,8 @@
 
 #ifdef __cplusplus
 
-  extern "C++"
+extern "C++"
+{
   template <typename T> inline T*
   cplusplus_typeof(        T*,
                     void  *v )
@@ -72,6 +73,7 @@
   {
     return static_cast <T*> ( v );
   }
+}
 
 #define FT_ASSIGNP( p, val )  (p) = cplusplus_typeof( (p), (val) )
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftobjs.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftobjs.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftobjs.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -833,7 +833,7 @@
   /*                        filtering callback function.                   */
   /*                                                                       */
   /*    pic_container    :: Contains global structs and tables, instead    */
-  /*                        of defining them globallly.                    */
+  /*                        of defining them globally.                     */
   /*                                                                       */
   /*    refcount         :: A counter initialized to~1 at the time an      */
   /*                        @FT_Library structure is created.              */
@@ -971,8 +971,8 @@
   /*                                                                       */
   /* <Description>                                                         */
   /*    Used to initialize an instance of FT_Outline_Funcs struct.         */
-  /*    When FT_CONFIG_OPTION_PIC is defined an init funtion will need to  */
-  /*    be called with a pre-allocated structure to be filled.             */
+  /*    When FT_CONFIG_OPTION_PIC is defined an init function will need    */
+  /*    to be called with a pre-allocated structure to be filled.          */
   /*    When FT_CONFIG_OPTION_PIC is not defined the struct will be        */
   /*    allocated in the global scope (or the scope where the macro        */
   /*    is used).                                                          */
@@ -1030,8 +1030,8 @@
   /*                                                                       */
   /* <Description>                                                         */
   /*    Used to initialize an instance of FT_Raster_Funcs struct.          */
-  /*    When FT_CONFIG_OPTION_PIC is defined an init funtion will need to  */
-  /*    be called with a pre-allocated structure to be filled.             */
+  /*    When FT_CONFIG_OPTION_PIC is defined an init function will need    */
+  /*    to be called with a pre-allocated structure to be filled.          */
   /*    When FT_CONFIG_OPTION_PIC is not defined the struct will be        */
   /*    allocated in the global scope (or the scope where the macro        */
   /*    is used).                                                          */
@@ -1090,8 +1090,8 @@
   /*                                                                       */
   /* <Description>                                                         */
   /*    Used to initialize an instance of FT_Glyph_Class struct.           */
-  /*    When FT_CONFIG_OPTION_PIC is defined an init funtion will need to  */
-  /*    be called with a pre-allocated stcture to be filled.               */
+  /*    When FT_CONFIG_OPTION_PIC is defined an init function will need    */
+  /*    to be called with a pre-allocated structure to be filled.          */
   /*    When FT_CONFIG_OPTION_PIC is not defined the struct will be        */
   /*    allocated in the global scope (or the scope where the macro        */
   /*    is used).                                                          */
@@ -1164,11 +1164,11 @@
   /* <Description>                                                         */
   /*    Used to initialize an instance of FT_Renderer_Class struct.        */
   /*                                                                       */
-  /*    When FT_CONFIG_OPTION_PIC is defined a `create' funtion will need  */
-  /*    to be called with a pointer where the allocated structure is       */
+  /*    When FT_CONFIG_OPTION_PIC is defined a `create' function will      */
+  /*    need to be called with a pointer where the allocated structure is  */
   /*    returned.  And when it is no longer needed a `destroy' function    */
   /*    needs to be called to release that allocation.                     */
-  /*    `fcinit.c' (ft_create_default_module_classes) already contains     */
+  /*    `ftinit.c' (ft_create_default_module_classes) already contains     */
   /*    a mechanism to call these functions for the default modules        */
   /*    described in `ftmodule.h'.                                         */
   /*                                                                       */
@@ -1368,11 +1368,11 @@
   /* <Description>                                                         */
   /*    Used to initialize an instance of an FT_Module_Class struct.       */
   /*                                                                       */
-  /*    When FT_CONFIG_OPTION_PIC is defined a `create' funtion needs to   */
-  /*    be called with a pointer where the allocated structure is          */
+  /*    When FT_CONFIG_OPTION_PIC is defined a `create' function needs     */
+  /*    to be called with a pointer where the allocated structure is       */
   /*    returned.  And when it is no longer needed a `destroy' function    */
   /*    needs to be called to release that allocation.                     */
-  /*    `fcinit.c' (ft_create_default_module_classes) already contains     */
+  /*    `ftinit.c' (ft_create_default_module_classes) already contains     */
   /*    a mechanism to call these functions for the default modules        */
   /*    described in `ftmodule.h'.                                         */
   /*                                                                       */

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftrfork.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftrfork.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/ftrfork.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -227,7 +227,7 @@
   /*    sort_by_res_id ::                                                  */
   /*      A Boolean to sort the fragmented resource by their ids.          */
   /*      The fragmented resources for `POST' resource should be sorted    */
-  /*      to restore Type1 font properly.  For `snft' resources, sorting   */
+  /*      to restore Type1 font properly.  For `sfnt' resources, sorting   */
   /*      may induce a different order of the faces in comparison to that  */
   /*      by QuickDraw API.                                                */
   /*                                                                       */

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/internal.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/internal.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/internal.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -44,7 +44,6 @@
 
 #define FT_INTERNAL_POSTSCRIPT_AUX_H      <freetype/internal/psaux.h>
 #define FT_INTERNAL_POSTSCRIPT_HINTS_H    <freetype/internal/pshints.h>
-#define FT_INTERNAL_POSTSCRIPT_GLOBALS_H  <freetype/internal/psglobal.h>
 
 #define FT_INTERNAL_AUTOHINT_H            <freetype/internal/autohint.h>
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/tttypes.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/tttypes.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/internal/tttypes.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -185,7 +185,7 @@
   /*                                                                       */
   /*    CompLength :: Compressed table length (in bytes).                  */
   /*                                                                       */
-  /*    OrigLength :: Unompressed table length (in bytes).                 */
+  /*    OrigLength :: Uncompressed table length (in bytes).                */
   /*                                                                       */
   /*    CheckSum   :: The table checksum.  This value can be ignored.      */
   /*                                                                       */
@@ -1386,12 +1386,12 @@
     FT_ULong              horz_metrics_offset;
     FT_ULong              vert_metrics_offset;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     /* since 2.4.12 */
     FT_ULong              sph_found_func_flags; /* special functions found */
                                                 /* for this face           */
     FT_Bool               sph_compatibility_mode;
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
   } TT_FaceRec;
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/include/freetype/tttables.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/include/freetype/tttables.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/include/freetype/tttables.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -587,7 +587,7 @@
   /*                                                                       */
   /*    FT_SFNT_HHEA :: To access the font's @TT_HoriHeader structure.     */
   /*                                                                       */
-  /*    FT_SFNT_VHEA :: To access the font's @TT_VertHeader struture.      */
+  /*    FT_SFNT_VHEA :: To access the font's @TT_VertHeader structure.     */
   /*                                                                       */
   /*    FT_SFNT_POST :: To access the font's @TT_Postscript structure.     */
   /*                                                                       */

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afblue.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afblue.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afblue.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -32,6 +32,18 @@
     '\0',
     '\xD9', '\x80',  /* ـ */
     '\0',
+    '\xD4', '\xB1', ' ', '\xD5', '\x84', ' ', '\xD5', '\x92', ' ', '\xD5', '\x93', ' ', '\xD4', '\xB2', ' ', '\xD4', '\xB3', ' ', '\xD4', '\xB4', ' ', '\xD5', '\x95',  /* Ա Մ Ւ Փ Բ Գ Դ Օ */
+    '\0',
+    '\xD5', '\x92', ' ', '\xD5', '\x88', ' ', '\xD5', '\x93', ' ', '\xD5', '\x83', ' ', '\xD5', '\x87', ' ', '\xD5', '\x8D', ' ', '\xD5', '\x8F', ' ', '\xD5', '\x95',  /* Ւ Ո Փ Ճ Շ Ս Տ Օ */
+    '\0',
+    '\xD5', '\xA5', ' ', '\xD5', '\xA7', ' ', '\xD5', '\xAB', ' ', '\xD5', '\xB4', ' ', '\xD5', '\xBE', ' ', '\xD6', '\x83', ' ', '\xD6', '\x86', ' ', '\xD6', '\x83',  /* ե է ի մ վ փ ֆ փ */
+    '\0',
+    '\xD5', '\xA1', ' ', '\xD5', '\xB5', ' ', '\xD6', '\x82', ' ', '\xD5', '\xBD', ' ', '\xD5', '\xA3', ' ', '\xD5', '\xBB', ' ', '\xD6', '\x80', ' ', '\xD6', '\x85',  /* ա յ ւ ս գ ջ ր օ */
+    '\0',
+    '\xD5', '\xB0', ' ', '\xD5', '\xB8', ' ', '\xD5', '\xB3', ' ', '\xD5', '\xA1', ' ', '\xD5', '\xA5', ' ', '\xD5', '\xAE', ' ', '\xD5', '\xBD', ' ', '\xD6', '\x85',  /* հ ո ճ ա ե ծ ս օ */
+    '\0',
+    '\xD5', '\xA2', ' ', '\xD5', '\xA8', ' ', '\xD5', '\xAB', ' ', '\xD5', '\xAC', ' ', '\xD5', '\xB2', ' ', '\xD5', '\xBA', ' ', '\xD6', '\x83', ' ', '\xD6', '\x81',  /* բ ը ի լ ղ պ փ ց */
+    '\0',
     '\xE0', '\xA6', '\x85', ' ', '\xE0', '\xA6', '\xA1', ' ', '\xE0', '\xA6', '\xA4', ' ', '\xE0', '\xA6', '\xA8', ' ', '\xE0', '\xA6', '\xAC', ' ', '\xE0', '\xA6', '\xAD', ' ', '\xE0', '\xA6', '\xB2', ' ', '\xE0', '\xA6', '\x95',  /* অ ড ত ন ব ভ ল ক */
     '\0',
     '\xE0', '\xA6', '\x87', ' ', '\xE0', '\xA6', '\x9F', ' ', '\xE0', '\xA6', '\xA0', ' ', '\xE0', '\xA6', '\xBF', ' ', '\xE0', '\xA7', '\x80', ' ', '\xE0', '\xA7', '\x88', ' ', '\xE0', '\xA7', '\x97',  /* ই ট ঠ ি ী ৈ ৗ */
@@ -38,6 +50,14 @@
     '\0',
     '\xE0', '\xA6', '\x93', ' ', '\xE0', '\xA6', '\x8F', ' ', '\xE0', '\xA6', '\xA1', ' ', '\xE0', '\xA6', '\xA4', ' ', '\xE0', '\xA6', '\xA8', ' ', '\xE0', '\xA6', '\xAC', ' ', '\xE0', '\xA6', '\xB2', ' ', '\xE0', '\xA6', '\x95',  /* ও এ ড ত ন ব ল ক */
     '\0',
+    '\xE1', '\x8F', '\x86', ' ', '\xE1', '\x8E', '\xBB', ' ', '\xE1', '\x8E', '\xAC', ' ', '\xE1', '\x8F', '\x83', ' ', '\xE1', '\x8E', '\xA4', ' ', '\xE1', '\x8F', '\xA3', ' ', '\xE1', '\x8E', '\xA6', ' ', '\xE1', '\x8F', '\x95',  /* Ꮖ Ꮋ Ꭼ Ꮓ Ꭴ Ꮳ Ꭶ Ꮥ */
+    '\0',
+    '\xEA', '\xAE', '\x92', ' ', '\xEA', '\xAE', '\xA4', ' ', '\xEA', '\xAE', '\xB6', ' ', '\xEA', '\xAD', '\xB4', ' ', '\xEA', '\xAD', '\xBE', ' ', '\xEA', '\xAE', '\x97', ' ', '\xEA', '\xAE', '\x9D', ' ', '\xEA', '\xAE', '\xBF',  /* ꮒ ꮤ ꮶ ꭴ ꭾ ꮗ ꮝ ꮿ */
+    '\0',
+    '\xEA', '\xAE', '\x96', ' ', '\xEA', '\xAD', '\xBC', ' ', '\xEA', '\xAE', '\x93', ' ', '\xEA', '\xAE', '\xA0', ' ', '\xEA', '\xAE', '\xB3', ' ', '\xEA', '\xAD', '\xB6', ' ', '\xEA', '\xAE', '\xA5', ' ', '\xEA', '\xAE', '\xBB',  /* ꮖ ꭼ ꮓ ꮠ ꮳ ꭶ ꮥ ꮻ */
+    '\0',
+    '\xE1', '\x8F', '\xB8', ' ', '\xEA', '\xAE', '\x90', ' ', '\xEA', '\xAD', '\xB9', ' ', '\xEA', '\xAD', '\xBB',  /* ᏸ ꮐ ꭹ ꭻ */
+    '\0',
     '\xD0', '\x91', ' ', '\xD0', '\x92', ' ', '\xD0', '\x95', ' ', '\xD0', '\x9F', ' ', '\xD0', '\x97', ' ', '\xD0', '\x9E', ' ', '\xD0', '\xA1', ' ', '\xD0', '\xAD',  /* Б В Е П З О С Э */
     '\0',
     '\xD0', '\x91', ' ', '\xD0', '\x92', ' ', '\xD0', '\x95', ' ', '\xD0', '\xA8', ' ', '\xD0', '\x97', ' ', '\xD0', '\x9E', ' ', '\xD0', '\xA1', ' ', '\xD0', '\xAD',  /* Б В Е Ш З О С Э */
@@ -54,6 +74,30 @@
     '\0',
     '\xE0', '\xA5', '\x81', ' ', '\xE0', '\xA5', '\x83',  /* ु ृ */
     '\0',
+    '\xE1', '\x88', '\x80', ' ', '\xE1', '\x88', '\x83', ' ', '\xE1', '\x8B', '\x98', ' ', '\xE1', '\x8D', '\x90', ' ', '\xE1', '\x88', '\x9B', ' ', '\xE1', '\x89', '\xA0', ' ', '\xE1', '\x8B', '\x8B', ' ', '\xE1', '\x8B', '\x90',  /* ሀ ሃ ዘ ፐ ማ በ ዋ ዐ */
+    '\0',
+    '\xE1', '\x88', '\x88', ' ', '\xE1', '\x88', '\x90', ' ', '\xE1', '\x89', '\xA0', ' ', '\xE1', '\x8B', '\x98', ' ', '\xE1', '\x88', '\x80', ' ', '\xE1', '\x88', '\xAA', ' ', '\xE1', '\x8B', '\x90', ' ', '\xE1', '\x8C', '\xA8',  /* ለ ሐ በ ዘ ሀ ሪ ዐ ጨ */
+    '\0',
+    '\xE1', '\x83', '\x92', ' ', '\xE1', '\x83', '\x93', ' ', '\xE1', '\x83', '\x94', ' ', '\xE1', '\x83', '\x95', ' ', '\xE1', '\x83', '\x97', ' ', '\xE1', '\x83', '\x98', ' ', '\xE1', '\x83', '\x9D', ' ', '\xE1', '\x83', '\xA6',  /* გ დ ე ვ თ ი ო ღ */
+    '\0',
+    '\xE1', '\x83', '\x90', ' ', '\xE1', '\x83', '\x96', ' ', '\xE1', '\x83', '\x9B', ' ', '\xE1', '\x83', '\xA1', ' ', '\xE1', '\x83', '\xA8', ' ', '\xE1', '\x83', '\xAB', ' ', '\xE1', '\x83', '\xAE', ' ', '\xE1', '\x83', '\x9E',  /* ა ზ მ ს შ ძ ხ პ */
+    '\0',
+    '\xE1', '\x83', '\xA1', ' ', '\xE1', '\x83', '\xAE', ' ', '\xE1', '\x83', '\xA5', ' ', '\xE1', '\x83', '\x96', ' ', '\xE1', '\x83', '\x9B', ' ', '\xE1', '\x83', '\xA8', ' ', '\xE1', '\x83', '\xA9', ' ', '\xE1', '\x83', '\xAC',  /* ს ხ ქ ზ მ შ ჩ წ */
+    '\0',
+    '\xE1', '\x83', '\x94', ' ', '\xE1', '\x83', '\x95', ' ', '\xE1', '\x83', '\x9F', ' ', '\xE1', '\x83', '\xA2', ' ', '\xE1', '\x83', '\xA3', ' ', '\xE1', '\x83', '\xA4', ' ', '\xE1', '\x83', '\xA5', ' ', '\xE1', '\x83', '\xA7',  /* ე ვ ჟ ტ უ ფ ქ ყ */
+    '\0',
+    '\xE1', '\x82', '\xB1', ' ', '\xE1', '\x82', '\xA7', ' ', '\xE1', '\x82', '\xB9', ' ', '\xE1', '\x82', '\xBC', ' ', '\xE1', '\x82', '\xA4', ' ', '\xE1', '\x82', '\xA5', ' ', '\xE1', '\x82', '\xB3', ' ', '\xE1', '\x82', '\xBA',  /* Ⴑ Ⴇ Ⴙ Ⴜ Ⴄ Ⴅ Ⴓ Ⴚ */
+    '\0',
+    '\xE1', '\x82', '\xA4', ' ', '\xE1', '\x82', '\xA5', ' ', '\xE1', '\x82', '\xA7', ' ', '\xE1', '\x82', '\xA8', ' ', '\xE1', '\x82', '\xA6', ' ', '\xE1', '\x82', '\xB1', ' ', '\xE1', '\x82', '\xAA', ' ', '\xE1', '\x82', '\xAB',  /* Ⴄ Ⴅ Ⴇ Ⴈ Ⴆ Ⴑ Ⴊ Ⴋ */
+    '\0',
+    '\xE2', '\xB4', '\x81', ' ', '\xE2', '\xB4', '\x97', ' ', '\xE2', '\xB4', '\x82', ' ', '\xE2', '\xB4', '\x84', ' ', '\xE2', '\xB4', '\x85', ' ', '\xE2', '\xB4', '\x87', ' ', '\xE2', '\xB4', '\x94', ' ', '\xE2', '\xB4', '\x96',  /* ⴁ ⴗ ⴂ ⴄ ⴅ ⴇ ⴔ ⴖ */
+    '\0',
+    '\xE2', '\xB4', '\x88', ' ', '\xE2', '\xB4', '\x8C', ' ', '\xE2', '\xB4', '\x96', ' ', '\xE2', '\xB4', '\x8E', ' ', '\xE2', '\xB4', '\x83', ' ', '\xE2', '\xB4', '\x86', ' ', '\xE2', '\xB4', '\x8B', ' ', '\xE2', '\xB4', '\xA2',  /* ⴈ ⴌ ⴖ ⴎ ⴃ ⴆ ⴋ ⴢ */
+    '\0',
+    '\xE2', '\xB4', '\x90', ' ', '\xE2', '\xB4', '\x91', ' ', '\xE2', '\xB4', '\x93', ' ', '\xE2', '\xB4', '\x95', ' ', '\xE2', '\xB4', '\x99', ' ', '\xE2', '\xB4', '\x9B', ' ', '\xE2', '\xB4', '\xA1', ' ', '\xE2', '\xB4', '\xA3',  /* ⴐ ⴑ ⴓ ⴕ ⴙ ⴛ ⴡ ⴣ */
+    '\0',
+    '\xE2', '\xB4', '\x84', ' ', '\xE2', '\xB4', '\x85', ' ', '\xE2', '\xB4', '\x94', ' ', '\xE2', '\xB4', '\x95', ' ', '\xE2', '\xB4', '\x81', ' ', '\xE2', '\xB4', '\x82', ' ', '\xE2', '\xB4', '\x98', ' ', '\xE2', '\xB4', '\x9D',  /* ⴄ ⴅ ⴔ ⴕ ⴁ ⴂ ⴘ ⴝ */
+    '\0',
     '\xCE', '\x93', ' ', '\xCE', '\x92', ' ', '\xCE', '\x95', ' ', '\xCE', '\x96', ' ', '\xCE', '\x98', ' ', '\xCE', '\x9F', ' ', '\xCE', '\xA9',  /* Γ Β Ε Ζ Θ Ο Ω */
     '\0',
     '\xCE', '\x92', ' ', '\xCE', '\x94', ' ', '\xCE', '\x96', ' ', '\xCE', '\x9E', ' ', '\xCE', '\x98', ' ', '\xCE', '\x9F',  /* Β Δ Ζ Ξ Θ Ο */
@@ -64,6 +108,26 @@
     '\0',
     '\xCE', '\xB2', ' ', '\xCE', '\xB3', ' ', '\xCE', '\xB7', ' ', '\xCE', '\xBC', ' ', '\xCF', '\x81', ' ', '\xCF', '\x86', ' ', '\xCF', '\x87', ' ', '\xCF', '\x88',  /* β γ η μ ρ φ χ ψ */
     '\0',
+    '\xE0', '\xAA', '\xA4', ' ', '\xE0', '\xAA', '\xA8', ' ', '\xE0', '\xAA', '\x8B', ' ', '\xE0', '\xAA', '\x8C', ' ', '\xE0', '\xAA', '\x9B', ' ', '\xE0', '\xAA', '\x9F', ' ', '\xE0', '\xAA', '\xB0', ' ', '\xE0', '\xAB', '\xA6',  /* ત ન ઋ ઌ છ ટ ર ૦ */
+    '\0',
+    '\xE0', '\xAA', '\x96', ' ', '\xE0', '\xAA', '\x97', ' ', '\xE0', '\xAA', '\x98', ' ', '\xE0', '\xAA', '\x9E', ' ', '\xE0', '\xAA', '\x87', ' ', '\xE0', '\xAA', '\x88', ' ', '\xE0', '\xAA', '\xA0', ' ', '\xE0', '\xAA', '\x9C',  /* ખ ગ ઘ ઞ ઇ ઈ ઠ જ */
+    '\0',
+    '\xE0', '\xAA', '\x88', ' ', '\xE0', '\xAA', '\x8A', ' ', '\xE0', '\xAA', '\xBF', ' ', '\xE0', '\xAB', '\x80', ' ', '\xE0', '\xAA', '\xB2', '\xE0', '\xAB', '\x80', ' ', '\xE0', '\xAA', '\xB6', '\xE0', '\xAB', '\x8D', '\xE0', '\xAA', '\x9A', '\xE0', '\xAA', '\xBF', ' ', '\xE0', '\xAA', '\x9C', '\xE0', '\xAA', '\xBF', ' ', '\xE0', '\xAA', '\xB8', '\xE0', '\xAB', '\x80',  /* ઈ ઊ િ ી લી શ્ચિ જિ સી */
+    '\0',
+    '\xE0', '\xAB', '\x81', ' ', '\xE0', '\xAB', '\x83', ' ', '\xE0', '\xAB', '\x84', ' ', '\xE0', '\xAA', '\x96', '\xE0', '\xAB', '\x81', ' ', '\xE0', '\xAA', '\x9B', '\xE0', '\xAB', '\x83', ' ', '\xE0', '\xAA', '\x9B', '\xE0', '\xAB', '\x84',  /* ુ ૃ ૄ ખુ છૃ છૄ */
+    '\0',
+    '\xE0', '\xAB', '\xA6', ' ', '\xE0', '\xAB', '\xA7', ' ', '\xE0', '\xAB', '\xA8', ' ', '\xE0', '\xAB', '\xA9', ' ', '\xE0', '\xAB', '\xAD',  /* ૦ ૧ ૨ ૩ ૭ */
+    '\0',
+    '\xE0', '\xA8', '\x95', ' ', '\xE0', '\xA8', '\x97', ' ', '\xE0', '\xA8', '\x99', ' ', '\xE0', '\xA8', '\x9A', ' ', '\xE0', '\xA8', '\x9C', ' ', '\xE0', '\xA8', '\xA4', ' ', '\xE0', '\xA8', '\xA7', ' ', '\xE0', '\xA8', '\xB8',  /* ਕ ਗ ਙ ਚ ਜ ਤ ਧ ਸ */
+    '\0',
+    '\xE0', '\xA8', '\x95', ' ', '\xE0', '\xA8', '\x97', ' ', '\xE0', '\xA8', '\x99', ' ', '\xE0', '\xA8', '\x9A', ' ', '\xE0', '\xA8', '\x9C', ' ', '\xE0', '\xA8', '\xA4', ' ', '\xE0', '\xA8', '\xA7', ' ', '\xE0', '\xA8', '\xB8',  /* ਕ ਗ ਙ ਚ ਜ ਤ ਧ ਸ */
+    '\0',
+    '\xE0', '\xA8', '\x87', ' ', '\xE0', '\xA8', '\x88', ' ', '\xE0', '\xA8', '\x89', ' ', '\xE0', '\xA8', '\x8F', ' ', '\xE0', '\xA8', '\x93', ' ', '\xE0', '\xA9', '\xB3', ' ', '\xE0', '\xA8', '\xBF', ' ', '\xE0', '\xA9', '\x80',  /* ਇ ਈ ਉ ਏ ਓ ੳ ਿ ੀ */
+    '\0',
+    '\xE0', '\xA8', '\x85', ' ', '\xE0', '\xA8', '\x8F', ' ', '\xE0', '\xA8', '\x93', ' ', '\xE0', '\xA8', '\x97', ' ', '\xE0', '\xA8', '\x9C', ' ', '\xE0', '\xA8', '\xA0', ' ', '\xE0', '\xA8', '\xB0', ' ', '\xE0', '\xA8', '\xB8',  /* ਅ ਏ ਓ ਗ ਜ ਠ ਰ ਸ */
+    '\0',
+    '\xE0', '\xA9', '\xA6', ' ', '\xE0', '\xA9', '\xA7', ' ', '\xE0', '\xA9', '\xA8', ' ', '\xE0', '\xA9', '\xA9', ' ', '\xE0', '\xA9', '\xAD',  /* ੦ ੧ ੨ ੩ ੭ */
+    '\0',
     '\xD7', '\x91', ' ', '\xD7', '\x93', ' ', '\xD7', '\x94', ' ', '\xD7', '\x97', ' ', '\xD7', '\x9A', ' ', '\xD7', '\x9B', ' ', '\xD7', '\x9D', ' ', '\xD7', '\xA1',  /* ב ד ה ח ך כ ם ס */
     '\0',
     '\xD7', '\x91', ' ', '\xD7', '\x98', ' ', '\xD7', '\x9B', ' ', '\xD7', '\x9D', ' ', '\xD7', '\xA1', ' ', '\xD7', '\xA6',  /* ב ט כ ם ס צ */
@@ -128,6 +192,10 @@
     '\0',
     '\xE1', '\xB5', '\x96', ' ', '\xCA', '\xB8', ' ', '\xE1', '\xB5', '\x8D',  /* ᵖ ʸ ᵍ */
     '\0',
+    '\xE0', '\xB4', '\x92', ' ', '\xE0', '\xB4', '\x9F', ' ', '\xE0', '\xB4', '\xA0', ' ', '\xE0', '\xB4', '\xB1', ' ', '\xE0', '\xB4', '\x9A', ' ', '\xE0', '\xB4', '\xAA', ' ', '\xE0', '\xB4', '\x9A', '\xE0', '\xB5', '\x8D', '\xE0', '\xB4', '\x9A', ' ', '\xE0', '\xB4', '\xAA', '\xE0', '\xB5', '\x8D', '\xE0', '\xB4', '\xAA',  /* ഒ ട ഠ റ ച പ ച്ച പ്പ */
+    '\0',
+    '\xE0', '\xB4', '\x9F', ' ', '\xE0', '\xB4', '\xA0', ' ', '\xE0', '\xB4', '\xA7', ' ', '\xE0', '\xB4', '\xB6', ' ', '\xE0', '\xB4', '\x98', ' ', '\xE0', '\xB4', '\x9A', ' ', '\xE0', '\xB4', '\xA5', ' ', '\xE0', '\xB4', '\xB2',  /* ട ഠ ധ ശ ഘ ച ഥ ല */
+    '\0',
     '\xE1', '\x80', '\x81', ' ', '\xE1', '\x80', '\x82', ' ', '\xE1', '\x80', '\x84', ' ', '\xE1', '\x80', '\x92', ' ', '\xE1', '\x80', '\x9D', ' ', '\xE1', '\x81', '\xA5', ' ', '\xE1', '\x81', '\x8A', ' ', '\xE1', '\x81', '\x8B',  /* ခ ဂ င ဒ ဝ ၥ ၊ ။ */
     '\0',
     '\xE1', '\x80', '\x84', ' ', '\xE1', '\x80', '\x8E', ' ', '\xE1', '\x80', '\x92', ' ', '\xE1', '\x80', '\x95', ' ', '\xE1', '\x80', '\x97', ' ', '\xE1', '\x80', '\x9D', ' ', '\xE1', '\x81', '\x8A', ' ', '\xE1', '\x81', '\x8B',  /* င ဎ ဒ ပ ဗ ဝ ၊ ။ */
@@ -136,6 +204,16 @@
     '\0',
     '\xE1', '\x80', '\x89', ' ', '\xE1', '\x80', '\x8A', ' ', '\xE1', '\x80', '\xA5', ' ', '\xE1', '\x80', '\xA9', ' ', '\xE1', '\x80', '\xA8', ' ', '\xE1', '\x81', '\x82', ' ', '\xE1', '\x81', '\x85', ' ', '\xE1', '\x81', '\x89',  /* ဉ ည ဥ ဩ ဨ ၂ ၅ ၉ */
     '\0',
+    '\xE0', '\xB6', '\x89', ' ', '\xE0', '\xB6', '\x9A', ' ', '\xE0', '\xB6', '\x9D', ' ', '\xE0', '\xB6', '\xB3', ' ', '\xE0', '\xB6', '\xB4', ' ', '\xE0', '\xB6', '\xBA', ' ', '\xE0', '\xB6', '\xBD', ' ', '\xE0', '\xB7', '\x86',  /* ඉ ක ඝ ඳ ප ය ල ෆ */
+    '\0',
+    '\xE0', '\xB6', '\x91', ' ', '\xE0', '\xB6', '\x94', ' ', '\xE0', '\xB6', '\x9D', ' ', '\xE0', '\xB6', '\xA2', ' ', '\xE0', '\xB6', '\xA7', ' ', '\xE0', '\xB6', '\xAE', ' ', '\xE0', '\xB6', '\xB0', ' ', '\xE0', '\xB6', '\xBB',  /* එ ඔ ඝ ජ ට ථ ධ ර */
+    '\0',
+    '\xE0', '\xB6', '\xAF', ' ', '\xE0', '\xB6', '\xB3', ' ', '\xE0', '\xB6', '\x8B', ' ', '\xE0', '\xB6', '\xBD', ' ', '\xE0', '\xB6', '\xAD', '\xE0', '\xB7', '\x96', ' ', '\xE0', '\xB6', '\xAD', '\xE0', '\xB7', '\x94', ' ', '\xE0', '\xB6', '\xB6', '\xE0', '\xB7', '\x94', ' ', '\xE0', '\xB6', '\xAF', '\xE0', '\xB7', '\x94',  /* ද ඳ උ ල තූ තු බු දු */
+    '\0',
+    '\xE0', '\xAE', '\x89', ' ', '\xE0', '\xAE', '\x92', ' ', '\xE0', '\xAE', '\x93', ' ', '\xE0', '\xAE', '\xB1', ' ', '\xE0', '\xAE', '\x88', ' ', '\xE0', '\xAE', '\x95', ' ', '\xE0', '\xAE', '\x99', ' ', '\xE0', '\xAE', '\x9A',  /* உ ஒ ஓ ற ஈ க ங ச */
+    '\0',
+    '\xE0', '\xAE', '\x95', ' ', '\xE0', '\xAE', '\x9A', ' ', '\xE0', '\xAE', '\xB2', ' ', '\xE0', '\xAE', '\xB6', ' ', '\xE0', '\xAE', '\x89', ' ', '\xE0', '\xAE', '\x99', ' ', '\xE0', '\xAE', '\x9F', ' ', '\xE0', '\xAE', '\xAA',  /* க ச ல ஶ உ ங ட ப */
+    '\0',
     '\xE0', '\xB0', '\x87', ' ', '\xE0', '\xB0', '\x8C', ' ', '\xE0', '\xB0', '\x99', ' ', '\xE0', '\xB0', '\x9E', ' ', '\xE0', '\xB0', '\xA3', ' ', '\xE0', '\xB0', '\xB1', ' ', '\xE0', '\xB1', '\xAF',  /* ఇ ఌ ఙ ఞ ణ ఱ ౯ */
     '\0',
     '\xE0', '\xB0', '\x85', ' ', '\xE0', '\xB0', '\x95', ' ', '\xE0', '\xB0', '\x9A', ' ', '\xE0', '\xB0', '\xB0', ' ', '\xE0', '\xB0', '\xBD', ' ', '\xE0', '\xB1', '\xA8', ' ', '\xE0', '\xB1', '\xAC',  /* అ క చ ర ఽ ౨ ౬ */
@@ -207,13 +285,29 @@
     { AF_BLUE_STRING_ARABIC_BOTTOM, 0                              },
     { AF_BLUE_STRING_ARABIC_JOIN,   AF_BLUE_PROPERTY_LATIN_NEUTRAL },
     { AF_BLUE_STRING_MAX,           0                              },
-    { AF_BLUE_STRING_BENGALI_TOP,    AF_BLUE_PROPERTY_LATIN_TOP        },
-    { AF_BLUE_STRING_BENGALI_HEAD,   AF_BLUE_PROPERTY_LATIN_TOP        },
-    { AF_BLUE_STRING_BENGALI_BASE,   AF_BLUE_PROPERTY_LATIN_TOP      |
-                                     AF_BLUE_PROPERTY_LATIN_NEUTRAL  |
-                                     AF_BLUE_PROPERTY_LATIN_X_HEIGHT   },
-    { AF_BLUE_STRING_BENGALI_BASE,   0                                 },
-    { AF_BLUE_STRING_MAX,            0                                 },
+    { AF_BLUE_STRING_ARMENIAN_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        },
+    { AF_BLUE_STRING_ARMENIAN_CAPITAL_BOTTOM,  0                                 },
+    { AF_BLUE_STRING_ARMENIAN_SMALL_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        },
+    { AF_BLUE_STRING_ARMENIAN_SMALL_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
+                                               AF_BLUE_PROPERTY_LATIN_X_HEIGHT   },
+    { AF_BLUE_STRING_ARMENIAN_SMALL_BOTTOM,    0                                 },
+    { AF_BLUE_STRING_ARMENIAN_SMALL_DESCENDER, 0                                 },
+    { AF_BLUE_STRING_MAX,                      0                                 },
+    { AF_BLUE_STRING_BENGALI_TOP,  AF_BLUE_PROPERTY_LATIN_TOP        },
+    { AF_BLUE_STRING_BENGALI_HEAD, AF_BLUE_PROPERTY_LATIN_TOP        },
+    { AF_BLUE_STRING_BENGALI_BASE, AF_BLUE_PROPERTY_LATIN_TOP      |
+                                   AF_BLUE_PROPERTY_LATIN_NEUTRAL  |
+                                   AF_BLUE_PROPERTY_LATIN_X_HEIGHT   },
+    { AF_BLUE_STRING_BENGALI_BASE, 0                                 },
+    { AF_BLUE_STRING_MAX,          0                                 },
+    { AF_BLUE_STRING_CHEROKEE_CAPITAL,         AF_BLUE_PROPERTY_LATIN_TOP        },
+    { AF_BLUE_STRING_CHEROKEE_CAPITAL,         0                                 },
+    { AF_BLUE_STRING_CHEROKEE_SMALL_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        },
+    { AF_BLUE_STRING_CHEROKEE_SMALL,           AF_BLUE_PROPERTY_LATIN_TOP      |
+                                               AF_BLUE_PROPERTY_LATIN_X_HEIGHT   },
+    { AF_BLUE_STRING_CHEROKEE_SMALL,           0                                 },
+    { AF_BLUE_STRING_CHEROKEE_SMALL_DESCENDER, 0                                 },
+    { AF_BLUE_STRING_MAX,                      0                                 },
     { AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        },
     { AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM,  0                                 },
     { AF_BLUE_STRING_CYRILLIC_SMALL,           AF_BLUE_PROPERTY_LATIN_TOP      |
@@ -229,6 +323,23 @@
     { AF_BLUE_STRING_DEVANAGARI_BASE,   0                                 },
     { AF_BLUE_STRING_DEVANAGARI_BOTTOM, 0                                 },
     { AF_BLUE_STRING_MAX,               0                                 },
+    { AF_BLUE_STRING_ETHIOPIC_TOP,    AF_BLUE_PROPERTY_LATIN_TOP },
+    { AF_BLUE_STRING_ETHIOPIC_BOTTOM, 0                          },
+    { AF_BLUE_STRING_MAX,             0                          },
+    { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
+                                                   AF_BLUE_PROPERTY_LATIN_X_HEIGHT   },
+    { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM,    0                                 },
+    { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        },
+    { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER, 0                                 },
+    { AF_BLUE_STRING_MAX,                          0                                 },
+    { AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP,    AF_BLUE_PROPERTY_LATIN_TOP        },
+    { AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM, 0                                 },
+    { AF_BLUE_STRING_GEORGIAN_NUSKHURI_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
+                                                  AF_BLUE_PROPERTY_LATIN_X_HEIGHT   },
+    { AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM,    0                                 },
+    { AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        },
+    { AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER, 0                                 },
+    { AF_BLUE_STRING_MAX,                         0                                 },
     { AF_BLUE_STRING_GREEK_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        },
     { AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM,  0                                 },
     { AF_BLUE_STRING_GREEK_SMALL_BETA_TOP,  AF_BLUE_PROPERTY_LATIN_TOP        },
@@ -237,6 +348,21 @@
     { AF_BLUE_STRING_GREEK_SMALL,           0                                 },
     { AF_BLUE_STRING_GREEK_SMALL_DESCENDER, 0                                 },
     { AF_BLUE_STRING_MAX,                   0                                 },
+    { AF_BLUE_STRING_GUJARATI_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
+                                         AF_BLUE_PROPERTY_LATIN_X_HEIGHT   },
+    { AF_BLUE_STRING_GUJARATI_BOTTOM,    0                                 },
+    { AF_BLUE_STRING_GUJARATI_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        },
+    { AF_BLUE_STRING_GUJARATI_DESCENDER, 0                                 },
+    { AF_BLUE_STRING_GUJARATI_DIGIT_TOP, AF_BLUE_PROPERTY_LATIN_TOP        },
+    { AF_BLUE_STRING_MAX,                0                                 },
+    { AF_BLUE_STRING_GURMUKHI_TOP,       AF_BLUE_PROPERTY_LATIN_TOP        },
+    { AF_BLUE_STRING_GURMUKHI_HEAD,      AF_BLUE_PROPERTY_LATIN_TOP        },
+    { AF_BLUE_STRING_GURMUKHI_BASE,      AF_BLUE_PROPERTY_LATIN_TOP      |
+                                         AF_BLUE_PROPERTY_LATIN_NEUTRAL  |
+                                         AF_BLUE_PROPERTY_LATIN_X_HEIGHT   },
+    { AF_BLUE_STRING_GURMUKHI_BOTTOM,    0                                 },
+    { AF_BLUE_STRING_GURMUKHI_DIGIT_TOP, AF_BLUE_PROPERTY_LATIN_TOP        },
+    { AF_BLUE_STRING_MAX,                0                                 },
     { AF_BLUE_STRING_HEBREW_TOP,       AF_BLUE_PROPERTY_LATIN_TOP  |
                                        AF_BLUE_PROPERTY_LATIN_LONG   },
     { AF_BLUE_STRING_HEBREW_BOTTOM,    0                             },
@@ -256,13 +382,13 @@
                                                   AF_BLUE_PROPERTY_LATIN_X_HEIGHT   },
     { AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM, 0                                 },
     { AF_BLUE_STRING_MAX,                         0                                 },
-    { AF_BLUE_STRING_LAO_TOP,             AF_BLUE_PROPERTY_LATIN_TOP      |
-                                          AF_BLUE_PROPERTY_LATIN_X_HEIGHT   },
-    { AF_BLUE_STRING_LAO_BOTTOM,          0                                 },
-    { AF_BLUE_STRING_LAO_ASCENDER,        AF_BLUE_PROPERTY_LATIN_TOP        },
-    { AF_BLUE_STRING_LAO_LARGE_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        },
-    { AF_BLUE_STRING_LAO_DESCENDER,       0                                 },
-    { AF_BLUE_STRING_MAX,                 0                                 },
+    { AF_BLUE_STRING_LAO_TOP,            AF_BLUE_PROPERTY_LATIN_TOP      |
+                                         AF_BLUE_PROPERTY_LATIN_X_HEIGHT   },
+    { AF_BLUE_STRING_LAO_BOTTOM,         0                                 },
+    { AF_BLUE_STRING_LAO_ASCENDER,       AF_BLUE_PROPERTY_LATIN_TOP        },
+    { AF_BLUE_STRING_LAO_LARGE_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP        },
+    { AF_BLUE_STRING_LAO_DESCENDER,      0                                 },
+    { AF_BLUE_STRING_MAX,                0                                 },
     { AF_BLUE_STRING_LATIN_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        },
     { AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM,  0                                 },
     { AF_BLUE_STRING_LATIN_SMALL_F_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        },
@@ -287,6 +413,9 @@
     { AF_BLUE_STRING_LATIN_SUPS_SMALL,           0                                 },
     { AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER, 0                                 },
     { AF_BLUE_STRING_MAX,                        0                                 },
+    { AF_BLUE_STRING_MALAYALAM_TOP,    AF_BLUE_PROPERTY_LATIN_TOP },
+    { AF_BLUE_STRING_MALAYALAM_BOTTOM, 0                          },
+    { AF_BLUE_STRING_MAX,              0                          },
     { AF_BLUE_STRING_MYANMAR_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
                                         AF_BLUE_PROPERTY_LATIN_X_HEIGHT   },
     { AF_BLUE_STRING_MYANMAR_BOTTOM,    0                                 },
@@ -293,6 +422,14 @@
     { AF_BLUE_STRING_MYANMAR_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        },
     { AF_BLUE_STRING_MYANMAR_DESCENDER, 0                                 },
     { AF_BLUE_STRING_MAX,               0                                 },
+    { AF_BLUE_STRING_MAX, 0 },
+    { AF_BLUE_STRING_SINHALA_TOP,       AF_BLUE_PROPERTY_LATIN_TOP },
+    { AF_BLUE_STRING_SINHALA_BOTTOM,    0                          },
+    { AF_BLUE_STRING_SINHALA_DESCENDER, 0                          },
+    { AF_BLUE_STRING_MAX,               0                          },
+    { AF_BLUE_STRING_TAMIL_TOP,    AF_BLUE_PROPERTY_LATIN_TOP },
+    { AF_BLUE_STRING_TAMIL_BOTTOM, 0                          },
+    { AF_BLUE_STRING_MAX,          0                          },
     { AF_BLUE_STRING_TELUGU_TOP,    AF_BLUE_PROPERTY_LATIN_TOP },
     { AF_BLUE_STRING_TELUGU_BOTTOM, 0                          },
     { AF_BLUE_STRING_MAX,           0                          },

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afblue.dat
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afblue.dat	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afblue.dat	2016-07-07 09:56:43 UTC (rev 41649)
@@ -65,8 +65,8 @@
 // values; this essentially means that the maximum values can easily be too
 // large.  Given that the purpose of those values is to create local
 // fixed-size arrays at compile time for further processing of the blue zone
-// data, this isn't a problem.  Note the the final zero byte of a string is
-// not counted.  Note also that the count holds the number of UTF-8 encoded
+// data, this isn't a problem.  Note the final zero byte of a string is not
+// counted.  Note also that the count holds the number of UTF-8 encoded
 // characters, not bytes.
 
 
@@ -86,6 +86,19 @@
   AF_BLUE_STRING_ARABIC_JOIN
     "ـ"
 
+  AF_BLUE_STRING_ARMENIAN_CAPITAL_TOP
+    "Ա Մ Ւ Փ Բ Գ Դ Օ"
+  AF_BLUE_STRING_ARMENIAN_CAPITAL_BOTTOM
+    "Ւ Ո Փ Ճ Շ Ս Տ Օ"
+  AF_BLUE_STRING_ARMENIAN_SMALL_ASCENDER
+    "ե է ի մ վ փ ֆ փ"
+  AF_BLUE_STRING_ARMENIAN_SMALL_TOP
+    "ա յ ւ ս գ ջ ր օ"
+  AF_BLUE_STRING_ARMENIAN_SMALL_BOTTOM
+    "հ ո ճ ա ե ծ ս օ"
+  AF_BLUE_STRING_ARMENIAN_SMALL_DESCENDER
+    "բ ը ի լ ղ պ փ ց"
+
   AF_BLUE_STRING_BENGALI_BASE
     "অ ড ত ন ব ভ ল ক"
   AF_BLUE_STRING_BENGALI_TOP
@@ -93,6 +106,15 @@
   AF_BLUE_STRING_BENGALI_HEAD
     "ও এ ড ত ন ব ল ক"
 
+  AF_BLUE_STRING_CHEROKEE_CAPITAL
+    "Ꮖ Ꮋ Ꭼ Ꮓ Ꭴ Ꮳ Ꭶ Ꮥ"
+  AF_BLUE_STRING_CHEROKEE_SMALL_ASCENDER
+    "ꮒ ꮤ ꮶ ꭴ ꭾ ꮗ ꮝ ꮿ"
+  AF_BLUE_STRING_CHEROKEE_SMALL
+    "ꮖ ꭼ ꮓ ꮠ ꮳ ꭶ ꮥ ꮻ"
+  AF_BLUE_STRING_CHEROKEE_SMALL_DESCENDER
+    "ᏸ ꮐ ꭹ ꭻ"
+
   AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP
     "Б В Е П З О С Э"
   AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM
@@ -114,6 +136,34 @@
   AF_BLUE_STRING_DEVANAGARI_BOTTOM
     "ु ृ"
 
+  AF_BLUE_STRING_ETHIOPIC_TOP
+    "ሀ ሃ ዘ ፐ ማ በ ዋ ዐ"
+  AF_BLUE_STRING_ETHIOPIC_BOTTOM
+    "ለ ሐ በ ዘ ሀ ሪ ዐ ጨ"
+
+  AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP
+    "გ დ ე ვ თ ი ო ღ"
+  AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM
+    "ა ზ მ ს შ ძ ხ პ"
+  AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER
+    "ს ხ ქ ზ მ შ ჩ წ"
+  AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER
+    "ე ვ ჟ ტ უ ფ ქ ყ"
+
+  AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP
+    "Ⴑ Ⴇ Ⴙ Ⴜ Ⴄ Ⴅ Ⴓ Ⴚ"
+  AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM
+    "Ⴄ Ⴅ Ⴇ Ⴈ Ⴆ Ⴑ Ⴊ Ⴋ"
+
+  AF_BLUE_STRING_GEORGIAN_NUSKHURI_TOP
+    "ⴁ ⴗ ⴂ ⴄ ⴅ ⴇ ⴔ ⴖ"
+  AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM
+    "ⴈ ⴌ ⴖ ⴎ ⴃ ⴆ ⴋ ⴢ"
+  AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER
+    "ⴐ ⴑ ⴓ ⴕ ⴙ ⴛ ⴡ ⴣ"
+  AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER
+    "ⴄ ⴅ ⴔ ⴕ ⴁ ⴂ ⴘ ⴝ"
+
   AF_BLUE_STRING_GREEK_CAPITAL_TOP
     "Γ Β Ε Ζ Θ Ο Ω"
   AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM
@@ -125,6 +175,28 @@
   AF_BLUE_STRING_GREEK_SMALL_DESCENDER
     "β γ η μ ρ φ χ ψ"
 
+  AF_BLUE_STRING_GUJARATI_TOP
+    "ત ન ઋ ઌ છ ટ ર ૦"
+  AF_BLUE_STRING_GUJARATI_BOTTOM
+    "ખ ગ ઘ ઞ ઇ ઈ ઠ જ"
+  AF_BLUE_STRING_GUJARATI_ASCENDER
+    "ઈ ઊ િ ી લી શ્ચિ જિ સી"
+  AF_BLUE_STRING_GUJARATI_DESCENDER
+    "ુ ૃ ૄ ખુ છૃ છૄ"
+  AF_BLUE_STRING_GUJARATI_DIGIT_TOP
+    "૦ ૧ ૨ ૩ ૭"
+
+  AF_BLUE_STRING_GURMUKHI_BASE
+    "ਕ ਗ ਙ ਚ ਜ ਤ ਧ ਸ"
+  AF_BLUE_STRING_GURMUKHI_HEAD
+    "ਕ ਗ ਙ ਚ ਜ ਤ ਧ ਸ"
+  AF_BLUE_STRING_GURMUKHI_TOP
+    "ਇ ਈ ਉ ਏ ਓ ੳ ਿ ੀ"
+  AF_BLUE_STRING_GURMUKHI_BOTTOM
+    "ਅ ਏ ਓ ਗ ਜ ਠ ਰ ਸ"
+  AF_BLUE_STRING_GURMUKHI_DIGIT_TOP
+    "੦ ੧ ੨ ੩ ੭"
+
   AF_BLUE_STRING_HEBREW_TOP
     "ב ד ה ח ך כ ם ס"
   AF_BLUE_STRING_HEBREW_BOTTOM
@@ -200,6 +272,11 @@
   AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER
     "ᵖ ʸ ᵍ"
 
+  AF_BLUE_STRING_MALAYALAM_TOP
+    "ഒ ട ഠ റ ച പ ച്ച പ്പ"
+  AF_BLUE_STRING_MALAYALAM_BOTTOM
+    "ട ഠ ധ ശ ഘ ച ഥ ല"
+
   AF_BLUE_STRING_MYANMAR_TOP
     "ခ ဂ င ဒ ဝ ၥ ၊ ။"
   AF_BLUE_STRING_MYANMAR_BOTTOM
@@ -209,6 +286,18 @@
   AF_BLUE_STRING_MYANMAR_DESCENDER
     "ဉ ည ဥ ဩ ဨ ၂ ၅ ၉"
 
+  AF_BLUE_STRING_SINHALA_TOP
+    "ඉ ක ඝ ඳ ප ය ල ෆ"
+  AF_BLUE_STRING_SINHALA_BOTTOM
+    "එ ඔ ඝ ජ ට ථ ධ ර"
+  AF_BLUE_STRING_SINHALA_DESCENDER
+    "ද ඳ උ ල තූ තු බු දු"
+
+  AF_BLUE_STRING_TAMIL_TOP
+    "உ ஒ ஓ ற ஈ க ங ச"
+  AF_BLUE_STRING_TAMIL_BOTTOM
+    "க ச ல ஶ உ ங ட ப"
+
   AF_BLUE_STRING_TELUGU_TOP
     "ఇ ఌ ఙ ఞ ణ ఱ ౯"
   AF_BLUE_STRING_TELUGU_BOTTOM
@@ -400,15 +489,35 @@
     { AF_BLUE_STRING_ARABIC_JOIN,   AF_BLUE_PROPERTY_LATIN_NEUTRAL }
     { AF_BLUE_STRING_MAX,           0                              }
 
+  AF_BLUE_STRINGSET_ARMN
+    { AF_BLUE_STRING_ARMENIAN_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
+    { AF_BLUE_STRING_ARMENIAN_CAPITAL_BOTTOM,  0                                 }
+    { AF_BLUE_STRING_ARMENIAN_SMALL_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        }
+    { AF_BLUE_STRING_ARMENIAN_SMALL_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
+                                               AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
+    { AF_BLUE_STRING_ARMENIAN_SMALL_BOTTOM,    0                                 }
+    { AF_BLUE_STRING_ARMENIAN_SMALL_DESCENDER, 0                                 }
+    { AF_BLUE_STRING_MAX,                      0                                 }
+
   AF_BLUE_STRINGSET_BENG
-    { AF_BLUE_STRING_BENGALI_TOP,    AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_BENGALI_HEAD,   AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_BENGALI_BASE,   AF_BLUE_PROPERTY_LATIN_TOP      |
-                                     AF_BLUE_PROPERTY_LATIN_NEUTRAL  |
-                                     AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_BENGALI_BASE,   0                                 }
-    { AF_BLUE_STRING_MAX,            0                                 }
+    { AF_BLUE_STRING_BENGALI_TOP,  AF_BLUE_PROPERTY_LATIN_TOP        }
+    { AF_BLUE_STRING_BENGALI_HEAD, AF_BLUE_PROPERTY_LATIN_TOP        }
+    { AF_BLUE_STRING_BENGALI_BASE, AF_BLUE_PROPERTY_LATIN_TOP      |
+                                   AF_BLUE_PROPERTY_LATIN_NEUTRAL  |
+                                   AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
+    { AF_BLUE_STRING_BENGALI_BASE, 0                                 }
+    { AF_BLUE_STRING_MAX,          0                                 }
 
+  AF_BLUE_STRINGSET_CHER
+    { AF_BLUE_STRING_CHEROKEE_CAPITAL,         AF_BLUE_PROPERTY_LATIN_TOP        }
+    { AF_BLUE_STRING_CHEROKEE_CAPITAL,         0                                 }
+    { AF_BLUE_STRING_CHEROKEE_SMALL_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        }
+    { AF_BLUE_STRING_CHEROKEE_SMALL,           AF_BLUE_PROPERTY_LATIN_TOP      |
+                                               AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
+    { AF_BLUE_STRING_CHEROKEE_SMALL,           0                                 }
+    { AF_BLUE_STRING_CHEROKEE_SMALL_DESCENDER, 0                                 }
+    { AF_BLUE_STRING_MAX,                      0                                 }
+
   AF_BLUE_STRINGSET_CYRL
     { AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
     { AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM,  0                                 }
@@ -428,6 +537,30 @@
     { AF_BLUE_STRING_DEVANAGARI_BOTTOM, 0                                 }
     { AF_BLUE_STRING_MAX,               0                                 }
 
+  AF_BLUE_STRINGSET_ETHI
+    { AF_BLUE_STRING_ETHIOPIC_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
+    { AF_BLUE_STRING_ETHIOPIC_BOTTOM, 0                          }
+    { AF_BLUE_STRING_MAX,             0                          }
+
+  // blue zones for Mtavruli are missing (not yet defined in Unicode)
+  AF_BLUE_STRINGSET_GEOR
+    { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
+                                                   AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
+    { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM,    0                                 }
+    { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        }
+    { AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER, 0                                 }
+    { AF_BLUE_STRING_MAX,                          0                                 }
+
+  AF_BLUE_STRINGSET_GEOK
+    { AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP,    AF_BLUE_PROPERTY_LATIN_TOP        }
+    { AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM, 0                                 }
+    { AF_BLUE_STRING_GEORGIAN_NUSKHURI_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
+                                                  AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
+    { AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM,    0                                 }
+    { AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        }
+    { AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER, 0                                 }
+    { AF_BLUE_STRING_MAX,                         0                                 }
+
   AF_BLUE_STRINGSET_GREK
     { AF_BLUE_STRING_GREEK_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
     { AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM,  0                                 }
@@ -438,6 +571,25 @@
     { AF_BLUE_STRING_GREEK_SMALL_DESCENDER, 0                                 }
     { AF_BLUE_STRING_MAX,                   0                                 }
 
+  AF_BLUE_STRINGSET_GUJR
+    { AF_BLUE_STRING_GUJARATI_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
+                                         AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
+    { AF_BLUE_STRING_GUJARATI_BOTTOM,    0                                 }
+    { AF_BLUE_STRING_GUJARATI_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        }
+    { AF_BLUE_STRING_GUJARATI_DESCENDER, 0                                 }
+    { AF_BLUE_STRING_GUJARATI_DIGIT_TOP, AF_BLUE_PROPERTY_LATIN_TOP        }
+    { AF_BLUE_STRING_MAX,                0                                 }
+
+  AF_BLUE_STRINGSET_GURU
+    { AF_BLUE_STRING_GURMUKHI_TOP,       AF_BLUE_PROPERTY_LATIN_TOP        }
+    { AF_BLUE_STRING_GURMUKHI_HEAD,      AF_BLUE_PROPERTY_LATIN_TOP        }
+    { AF_BLUE_STRING_GURMUKHI_BASE,      AF_BLUE_PROPERTY_LATIN_TOP      |
+                                         AF_BLUE_PROPERTY_LATIN_NEUTRAL  |
+                                         AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
+    { AF_BLUE_STRING_GURMUKHI_BOTTOM,    0                                 }
+    { AF_BLUE_STRING_GURMUKHI_DIGIT_TOP, AF_BLUE_PROPERTY_LATIN_TOP        }
+    { AF_BLUE_STRING_MAX,                0                                 }
+
   AF_BLUE_STRINGSET_HEBR
     { AF_BLUE_STRING_HEBREW_TOP,       AF_BLUE_PROPERTY_LATIN_TOP  |
                                        AF_BLUE_PROPERTY_LATIN_LONG   }
@@ -466,13 +618,13 @@
     { AF_BLUE_STRING_MAX,                         0                                 }
 
   AF_BLUE_STRINGSET_LAO
-    { AF_BLUE_STRING_LAO_TOP,             AF_BLUE_PROPERTY_LATIN_TOP      |
-                                          AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
-    { AF_BLUE_STRING_LAO_BOTTOM,          0                                 }
-    { AF_BLUE_STRING_LAO_ASCENDER,        AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_LAO_LARGE_ASCENDER,  AF_BLUE_PROPERTY_LATIN_TOP        }
-    { AF_BLUE_STRING_LAO_DESCENDER,       0                                 }
-    { AF_BLUE_STRING_MAX,                 0                                 }
+    { AF_BLUE_STRING_LAO_TOP,            AF_BLUE_PROPERTY_LATIN_TOP      |
+                                         AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
+    { AF_BLUE_STRING_LAO_BOTTOM,         0                                 }
+    { AF_BLUE_STRING_LAO_ASCENDER,       AF_BLUE_PROPERTY_LATIN_TOP        }
+    { AF_BLUE_STRING_LAO_LARGE_ASCENDER, AF_BLUE_PROPERTY_LATIN_TOP        }
+    { AF_BLUE_STRING_LAO_DESCENDER,      0                                 }
+    { AF_BLUE_STRING_MAX,                0                                 }
 
   AF_BLUE_STRINGSET_LATN
     { AF_BLUE_STRING_LATIN_CAPITAL_TOP,     AF_BLUE_PROPERTY_LATIN_TOP        }
@@ -504,6 +656,11 @@
     { AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER, 0                                 }
     { AF_BLUE_STRING_MAX,                        0                                 }
 
+  AF_BLUE_STRINGSET_MLYM
+    { AF_BLUE_STRING_MALAYALAM_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
+    { AF_BLUE_STRING_MALAYALAM_BOTTOM, 0                          }
+    { AF_BLUE_STRING_MAX,              0                          }
+
   AF_BLUE_STRINGSET_MYMR
     { AF_BLUE_STRING_MYANMAR_TOP,       AF_BLUE_PROPERTY_LATIN_TOP      |
                                         AF_BLUE_PROPERTY_LATIN_X_HEIGHT   }
@@ -512,6 +669,20 @@
     { AF_BLUE_STRING_MYANMAR_DESCENDER, 0                                 }
     { AF_BLUE_STRING_MAX,               0                                 }
 
+  AF_BLUE_STRINGSET_NONE
+    { AF_BLUE_STRING_MAX, 0 }
+
+  AF_BLUE_STRINGSET_SINH
+    { AF_BLUE_STRING_SINHALA_TOP,       AF_BLUE_PROPERTY_LATIN_TOP }
+    { AF_BLUE_STRING_SINHALA_BOTTOM,    0                          }
+    { AF_BLUE_STRING_SINHALA_DESCENDER, 0                          }
+    { AF_BLUE_STRING_MAX,               0                          }
+
+  AF_BLUE_STRINGSET_TAML
+    { AF_BLUE_STRING_TAMIL_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
+    { AF_BLUE_STRING_TAMIL_BOTTOM, 0                          }
+    { AF_BLUE_STRING_MAX,          0                          }
+
   AF_BLUE_STRINGSET_TELU
     { AF_BLUE_STRING_TELUGU_TOP,    AF_BLUE_PROPERTY_LATIN_TOP }
     { AF_BLUE_STRING_TELUGU_BOTTOM, 0                          }

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afblue.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afblue.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afblue.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -80,68 +80,107 @@
     AF_BLUE_STRING_ARABIC_TOP = 0,
     AF_BLUE_STRING_ARABIC_BOTTOM = 18,
     AF_BLUE_STRING_ARABIC_JOIN = 33,
-    AF_BLUE_STRING_BENGALI_BASE = 36,
-    AF_BLUE_STRING_BENGALI_TOP = 68,
-    AF_BLUE_STRING_BENGALI_HEAD = 96,
-    AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP = 128,
-    AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM = 152,
-    AF_BLUE_STRING_CYRILLIC_SMALL = 176,
-    AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER = 200,
-    AF_BLUE_STRING_DEVANAGARI_BASE = 209,
-    AF_BLUE_STRING_DEVANAGARI_TOP = 241,
-    AF_BLUE_STRING_DEVANAGARI_HEAD = 273,
-    AF_BLUE_STRING_DEVANAGARI_BOTTOM = 305,
-    AF_BLUE_STRING_GREEK_CAPITAL_TOP = 313,
-    AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM = 334,
-    AF_BLUE_STRING_GREEK_SMALL_BETA_TOP = 352,
-    AF_BLUE_STRING_GREEK_SMALL = 370,
-    AF_BLUE_STRING_GREEK_SMALL_DESCENDER = 394,
-    AF_BLUE_STRING_HEBREW_TOP = 418,
-    AF_BLUE_STRING_HEBREW_BOTTOM = 442,
-    AF_BLUE_STRING_HEBREW_DESCENDER = 460,
-    AF_BLUE_STRING_KANNADA_TOP = 475,
-    AF_BLUE_STRING_KANNADA_BOTTOM = 519,
-    AF_BLUE_STRING_KHMER_TOP = 551,
-    AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP = 575,
-    AF_BLUE_STRING_KHMER_BOTTOM = 615,
-    AF_BLUE_STRING_KHMER_DESCENDER = 647,
-    AF_BLUE_STRING_KHMER_LARGE_DESCENDER = 681,
-    AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP = 768,
-    AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM = 776,
-    AF_BLUE_STRING_LAO_TOP = 784,
-    AF_BLUE_STRING_LAO_BOTTOM = 816,
-    AF_BLUE_STRING_LAO_ASCENDER = 848,
-    AF_BLUE_STRING_LAO_LARGE_ASCENDER = 864,
-    AF_BLUE_STRING_LAO_DESCENDER = 876,
-    AF_BLUE_STRING_LATIN_CAPITAL_TOP = 900,
-    AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM = 916,
-    AF_BLUE_STRING_LATIN_SMALL_F_TOP = 932,
-    AF_BLUE_STRING_LATIN_SMALL = 946,
-    AF_BLUE_STRING_LATIN_SMALL_DESCENDER = 960,
-    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP = 970,
-    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM = 990,
-    AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP = 1010,
-    AF_BLUE_STRING_LATIN_SUBS_SMALL = 1030,
-    AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER = 1066,
-    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP = 1086,
-    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM = 1117,
-    AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP = 1146,
-    AF_BLUE_STRING_LATIN_SUPS_SMALL = 1172,
-    AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER = 1197,
-    AF_BLUE_STRING_MYANMAR_TOP = 1208,
-    AF_BLUE_STRING_MYANMAR_BOTTOM = 1240,
-    AF_BLUE_STRING_MYANMAR_ASCENDER = 1272,
-    AF_BLUE_STRING_MYANMAR_DESCENDER = 1300,
-    AF_BLUE_STRING_TELUGU_TOP = 1332,
-    AF_BLUE_STRING_TELUGU_BOTTOM = 1360,
-    AF_BLUE_STRING_THAI_TOP = 1388,
-    AF_BLUE_STRING_THAI_BOTTOM = 1412,
-    AF_BLUE_STRING_THAI_ASCENDER = 1440,
-    AF_BLUE_STRING_THAI_LARGE_ASCENDER = 1452,
-    AF_BLUE_STRING_THAI_DESCENDER = 1464,
-    AF_BLUE_STRING_THAI_LARGE_DESCENDER = 1480,
-    AF_BLUE_STRING_THAI_DIGIT_TOP = 1488,
-    af_blue_1_1 = 1499,
+    AF_BLUE_STRING_ARMENIAN_CAPITAL_TOP = 36,
+    AF_BLUE_STRING_ARMENIAN_CAPITAL_BOTTOM = 60,
+    AF_BLUE_STRING_ARMENIAN_SMALL_ASCENDER = 84,
+    AF_BLUE_STRING_ARMENIAN_SMALL_TOP = 108,
+    AF_BLUE_STRING_ARMENIAN_SMALL_BOTTOM = 132,
+    AF_BLUE_STRING_ARMENIAN_SMALL_DESCENDER = 156,
+    AF_BLUE_STRING_BENGALI_BASE = 180,
+    AF_BLUE_STRING_BENGALI_TOP = 212,
+    AF_BLUE_STRING_BENGALI_HEAD = 240,
+    AF_BLUE_STRING_CHEROKEE_CAPITAL = 272,
+    AF_BLUE_STRING_CHEROKEE_SMALL_ASCENDER = 304,
+    AF_BLUE_STRING_CHEROKEE_SMALL = 336,
+    AF_BLUE_STRING_CHEROKEE_SMALL_DESCENDER = 368,
+    AF_BLUE_STRING_CYRILLIC_CAPITAL_TOP = 384,
+    AF_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM = 408,
+    AF_BLUE_STRING_CYRILLIC_SMALL = 432,
+    AF_BLUE_STRING_CYRILLIC_SMALL_DESCENDER = 456,
+    AF_BLUE_STRING_DEVANAGARI_BASE = 465,
+    AF_BLUE_STRING_DEVANAGARI_TOP = 497,
+    AF_BLUE_STRING_DEVANAGARI_HEAD = 529,
+    AF_BLUE_STRING_DEVANAGARI_BOTTOM = 561,
+    AF_BLUE_STRING_ETHIOPIC_TOP = 569,
+    AF_BLUE_STRING_ETHIOPIC_BOTTOM = 601,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP = 633,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM = 665,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER = 697,
+    AF_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER = 729,
+    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP = 761,
+    AF_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM = 793,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_TOP = 825,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM = 857,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER = 889,
+    AF_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER = 921,
+    AF_BLUE_STRING_GREEK_CAPITAL_TOP = 953,
+    AF_BLUE_STRING_GREEK_CAPITAL_BOTTOM = 974,
+    AF_BLUE_STRING_GREEK_SMALL_BETA_TOP = 992,
+    AF_BLUE_STRING_GREEK_SMALL = 1010,
+    AF_BLUE_STRING_GREEK_SMALL_DESCENDER = 1034,
+    AF_BLUE_STRING_GUJARATI_TOP = 1058,
+    AF_BLUE_STRING_GUJARATI_BOTTOM = 1090,
+    AF_BLUE_STRING_GUJARATI_ASCENDER = 1122,
+    AF_BLUE_STRING_GUJARATI_DESCENDER = 1172,
+    AF_BLUE_STRING_GUJARATI_DIGIT_TOP = 1205,
+    AF_BLUE_STRING_GURMUKHI_BASE = 1225,
+    AF_BLUE_STRING_GURMUKHI_HEAD = 1257,
+    AF_BLUE_STRING_GURMUKHI_TOP = 1289,
+    AF_BLUE_STRING_GURMUKHI_BOTTOM = 1321,
+    AF_BLUE_STRING_GURMUKHI_DIGIT_TOP = 1353,
+    AF_BLUE_STRING_HEBREW_TOP = 1373,
+    AF_BLUE_STRING_HEBREW_BOTTOM = 1397,
+    AF_BLUE_STRING_HEBREW_DESCENDER = 1415,
+    AF_BLUE_STRING_KANNADA_TOP = 1430,
+    AF_BLUE_STRING_KANNADA_BOTTOM = 1474,
+    AF_BLUE_STRING_KHMER_TOP = 1506,
+    AF_BLUE_STRING_KHMER_SUBSCRIPT_TOP = 1530,
+    AF_BLUE_STRING_KHMER_BOTTOM = 1570,
+    AF_BLUE_STRING_KHMER_DESCENDER = 1602,
+    AF_BLUE_STRING_KHMER_LARGE_DESCENDER = 1636,
+    AF_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP = 1723,
+    AF_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM = 1731,
+    AF_BLUE_STRING_LAO_TOP = 1739,
+    AF_BLUE_STRING_LAO_BOTTOM = 1771,
+    AF_BLUE_STRING_LAO_ASCENDER = 1803,
+    AF_BLUE_STRING_LAO_LARGE_ASCENDER = 1819,
+    AF_BLUE_STRING_LAO_DESCENDER = 1831,
+    AF_BLUE_STRING_LATIN_CAPITAL_TOP = 1855,
+    AF_BLUE_STRING_LATIN_CAPITAL_BOTTOM = 1871,
+    AF_BLUE_STRING_LATIN_SMALL_F_TOP = 1887,
+    AF_BLUE_STRING_LATIN_SMALL = 1901,
+    AF_BLUE_STRING_LATIN_SMALL_DESCENDER = 1915,
+    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP = 1925,
+    AF_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM = 1945,
+    AF_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP = 1965,
+    AF_BLUE_STRING_LATIN_SUBS_SMALL = 1985,
+    AF_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER = 2021,
+    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP = 2041,
+    AF_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM = 2072,
+    AF_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP = 2101,
+    AF_BLUE_STRING_LATIN_SUPS_SMALL = 2127,
+    AF_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER = 2152,
+    AF_BLUE_STRING_MALAYALAM_TOP = 2163,
+    AF_BLUE_STRING_MALAYALAM_BOTTOM = 2207,
+    AF_BLUE_STRING_MYANMAR_TOP = 2239,
+    AF_BLUE_STRING_MYANMAR_BOTTOM = 2271,
+    AF_BLUE_STRING_MYANMAR_ASCENDER = 2303,
+    AF_BLUE_STRING_MYANMAR_DESCENDER = 2331,
+    AF_BLUE_STRING_SINHALA_TOP = 2363,
+    AF_BLUE_STRING_SINHALA_BOTTOM = 2395,
+    AF_BLUE_STRING_SINHALA_DESCENDER = 2427,
+    AF_BLUE_STRING_TAMIL_TOP = 2471,
+    AF_BLUE_STRING_TAMIL_BOTTOM = 2503,
+    AF_BLUE_STRING_TELUGU_TOP = 2535,
+    AF_BLUE_STRING_TELUGU_BOTTOM = 2563,
+    AF_BLUE_STRING_THAI_TOP = 2591,
+    AF_BLUE_STRING_THAI_BOTTOM = 2615,
+    AF_BLUE_STRING_THAI_ASCENDER = 2643,
+    AF_BLUE_STRING_THAI_LARGE_ASCENDER = 2655,
+    AF_BLUE_STRING_THAI_DESCENDER = 2667,
+    AF_BLUE_STRING_THAI_LARGE_DESCENDER = 2683,
+    AF_BLUE_STRING_THAI_DIGIT_TOP = 2691,
+    af_blue_1_1 = 2702,
 #ifdef AF_CONFIG_OPTION_CJK
     AF_BLUE_STRING_CJK_TOP = af_blue_1_1 + 1,
     AF_BLUE_STRING_CJK_BOTTOM = af_blue_1_1 + 203,
@@ -201,22 +240,33 @@
   typedef enum  AF_Blue_Stringset_
   {
     AF_BLUE_STRINGSET_ARAB = 0,
-    AF_BLUE_STRINGSET_BENG = 4,
-    AF_BLUE_STRINGSET_CYRL = 9,
-    AF_BLUE_STRINGSET_DEVA = 15,
-    AF_BLUE_STRINGSET_GREK = 21,
-    AF_BLUE_STRINGSET_HEBR = 28,
-    AF_BLUE_STRINGSET_KNDA = 32,
-    AF_BLUE_STRINGSET_KHMR = 35,
-    AF_BLUE_STRINGSET_KHMS = 41,
-    AF_BLUE_STRINGSET_LAO = 44,
-    AF_BLUE_STRINGSET_LATN = 50,
-    AF_BLUE_STRINGSET_LATB = 57,
-    AF_BLUE_STRINGSET_LATP = 64,
-    AF_BLUE_STRINGSET_MYMR = 71,
-    AF_BLUE_STRINGSET_TELU = 76,
-    AF_BLUE_STRINGSET_THAI = 79,
-    af_blue_2_1 = 87,
+    AF_BLUE_STRINGSET_ARMN = 4,
+    AF_BLUE_STRINGSET_BENG = 11,
+    AF_BLUE_STRINGSET_CHER = 16,
+    AF_BLUE_STRINGSET_CYRL = 23,
+    AF_BLUE_STRINGSET_DEVA = 29,
+    AF_BLUE_STRINGSET_ETHI = 35,
+    AF_BLUE_STRINGSET_GEOR = 38,
+    AF_BLUE_STRINGSET_GEOK = 43,
+    AF_BLUE_STRINGSET_GREK = 50,
+    AF_BLUE_STRINGSET_GUJR = 57,
+    AF_BLUE_STRINGSET_GURU = 63,
+    AF_BLUE_STRINGSET_HEBR = 69,
+    AF_BLUE_STRINGSET_KNDA = 73,
+    AF_BLUE_STRINGSET_KHMR = 76,
+    AF_BLUE_STRINGSET_KHMS = 82,
+    AF_BLUE_STRINGSET_LAO = 85,
+    AF_BLUE_STRINGSET_LATN = 91,
+    AF_BLUE_STRINGSET_LATB = 98,
+    AF_BLUE_STRINGSET_LATP = 105,
+    AF_BLUE_STRINGSET_MLYM = 112,
+    AF_BLUE_STRINGSET_MYMR = 115,
+    AF_BLUE_STRINGSET_NONE = 120,
+    AF_BLUE_STRINGSET_SINH = 121,
+    AF_BLUE_STRINGSET_TAML = 125,
+    AF_BLUE_STRINGSET_TELU = 128,
+    AF_BLUE_STRINGSET_THAI = 131,
+    af_blue_2_1 = 139,
 #ifdef AF_CONFIG_OPTION_CJK
     AF_BLUE_STRINGSET_HANI = af_blue_2_1 + 0,
     af_blue_2_1_1 = af_blue_2_1 + 2,

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afcjk.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afcjk.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afcjk.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -966,7 +966,6 @@
 
       if ( seg2 )
       {
-        seg2->num_linked++;
         if ( seg2->link != seg1 )
         {
           seg1->link = NULL;
@@ -973,8 +972,6 @@
 
           if ( seg2->score < dist_threshold || seg1->score < seg2->score * 4 )
             seg1->serif = seg2->link;
-          else
-            seg2->num_linked--;
         }
       }
     }
@@ -1528,7 +1525,7 @@
       }
 
       if ( dist < 54 )
-        dist += ( 54 - dist ) / 2 ;
+        dist += ( 54 - dist ) / 2;
       else if ( dist < 3 * 64 )
       {
         FT_Pos  delta;

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afhints.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afhints.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afhints.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -314,7 +314,7 @@
     AF_DUMP(( "Table of points:\n" ));
 
     if ( hints->num_points )
-      AF_DUMP(( "  index  hedge  hseg  vedge  vseg  flags"
+      AF_DUMP(( "  index  hedge  hseg  vedge  vseg  flags "
                 "  xorg  yorg  xscale  yscale   xfit    yfit" ));
     else
       AF_DUMP(( "  (none)\n" ));
@@ -335,7 +335,7 @@
         contour++;
       }
 
-      AF_DUMP(( "  %5d  %5s %5s  %5s %5s  %s "
+      AF_DUMP(( "  %5d  %5s %5s  %5s %5s  %s"
                 " %5d %5d %7.2f %7.2f %7.2f %7.2f\n",
                 point_idx,
                 af_print_idx( buf1,
@@ -344,8 +344,11 @@
                 af_print_idx( buf3,
                               af_get_edge_index( hints, segment_idx_0, 0 ) ),
                 af_print_idx( buf4, segment_idx_0 ),
-                ( point->flags & AF_FLAG_WEAK_INTERPOLATION ) ? "weak"
-                                                              : " -- ",
+                ( point->flags & AF_FLAG_NEAR )
+                  ? " near "
+                  : ( point->flags & AF_FLAG_WEAK_INTERPOLATION )
+                    ? " weak "
+                    : "strong",
 
                 point->fx,
                 point->fy,
@@ -813,12 +816,17 @@
       AF_Point  point;
       AF_Point  point_limit = points + hints->num_points;
 
+      /* value 20 in `near_limit' is heuristic */
+      FT_UInt  units_per_em = hints->metrics->scaler.face->units_per_EM;
+      FT_Int   near_limit   = 20 * units_per_em / 2048;
 
+
       /* compute coordinates & Bezier flags, next and prev */
       {
         FT_Vector*  vec           = outline->points;
         char*       tag           = outline->tags;
-        AF_Point    end           = points + outline->contours[0];
+        FT_Short    endpoint      = outline->contours[0];
+        AF_Point    end           = points + endpoint;
         AF_Point    prev          = end;
         FT_Int      contour_index = 0;
 
@@ -825,6 +833,9 @@
 
         for ( point = points; point < point_limit; point++, vec++, tag++ )
         {
+          FT_Pos  out_x, out_y;
+
+
           point->in_dir  = (FT_Char)AF_DIR_NONE;
           point->out_dir = (FT_Char)AF_DIR_NONE;
 
@@ -833,6 +844,9 @@
           point->ox = point->x = FT_MulFix( vec->x, x_scale ) + x_delta;
           point->oy = point->y = FT_MulFix( vec->y, y_scale ) + y_delta;
 
+          end->fx = (FT_Short)outline->points[endpoint].x;
+          end->fy = (FT_Short)outline->points[endpoint].y;
+
           switch ( FT_CURVE_TAG( *tag ) )
           {
           case FT_CURVE_TAG_CONIC:
@@ -845,6 +859,12 @@
             point->flags = AF_FLAG_NONE;
           }
 
+          out_x = point->fx - prev->fx;
+          out_y = point->fy - prev->fy;
+
+          if ( FT_ABS( out_x ) + FT_ABS( out_y ) < near_limit )
+            prev->flags |= AF_FLAG_NEAR;
+
           point->prev = prev;
           prev->next  = point;
           prev        = point;
@@ -853,8 +873,9 @@
           {
             if ( ++contour_index < outline->n_contours )
             {
-              end  = points + outline->contours[contour_index];
-              prev = end;
+              endpoint = outline->contours[contour_index];
+              end      = points + endpoint;
+              prev     = end;
             }
           }
         }
@@ -880,17 +901,15 @@
          *  Compute directions of `in' and `out' vectors.
          *
          *  Note that distances between points that are very near to each
-         *  other are accumulated.  In other words, the auto-hinter
+         *  other are accumulated.  In other words, the auto-hinter either
          *  prepends the small vectors between near points to the first
-         *  non-near vector.  All intermediate points are tagged as
-         *  weak; the directions are adjusted also to be equal to the
-         *  accumulated one.
+         *  non-near vector, or the sum of small vector lengths exceeds a
+         *  threshold, thus `grouping' the small vectors.  All intermediate
+         *  points are tagged as weak; the directions are adjusted also to
+         *  be equal to the accumulated one.
          */
 
-        /* value 20 in `near_limit' is heuristic */
-        FT_UInt  units_per_em = hints->metrics->scaler.face->units_per_EM;
-        FT_Int   near_limit   = 20 * units_per_em / 2048;
-        FT_Int   near_limit2  = 2 * near_limit - 1;
+        FT_Int  near_limit2 = 2 * near_limit - 1;
 
         AF_Point*  contour;
         AF_Point*  contour_limit = hints->contours + hints->num_contours;
@@ -937,7 +956,7 @@
           /* now loop over all points of the contour to get */
           /* `in' and `out' vector directions               */
 
-          curr  = first;
+          curr = first;
 
           /*
            *  We abuse the `u' and `v' fields to store index deltas to the
@@ -960,7 +979,7 @@
 
 
             point = next;
-            next = point->next;
+            next  = point->next;
 
             out_x += next->fx - point->fx;
             out_y += next->fy - point->fy;

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afhints.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afhints.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afhints.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -221,7 +221,10 @@
   /* candidates for weak interpolation have this flag set */
 #define AF_FLAG_WEAK_INTERPOLATION  ( 1U << 4 )
 
+  /* the distance to the next point is very small */
+#define AF_FLAG_NEAR  ( 1U << 5 )
 
+
   /* edge hint flags */
 #define AF_EDGE_NORMAL  0
 #define AF_EDGE_ROUND    ( 1U << 0 )
@@ -266,7 +269,6 @@
 
     AF_Segment  link;        /* (stem) link segment        */
     AF_Segment  serif;       /* primary segment for serifs */
-    FT_Pos      num_linked;  /* number of linked segments  */
     FT_Pos      score;       /* used during stem matching  */
     FT_Pos      len;         /* used during stem matching  */
 
@@ -289,7 +291,6 @@
     AF_Width    blue_edge;  /* non-NULL if this is a blue edge */
     AF_Edge     link;       /* link edge                       */
     AF_Edge     serif;      /* primary edge for serifs         */
-    FT_Short    num_linked; /* number of linked edges          */
     FT_Int      score;      /* used during stem matching       */
 
     AF_Segment  first;      /* first segment in edge */

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aflatin.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aflatin.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aflatin.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1436,19 +1436,36 @@
     /* do each contour separately */
     for ( ; contour < contour_limit; contour++ )
     {
-      AF_Point  point      =  contour[0];
-      AF_Point  last       =  point->prev;
-      int       on_edge    =  0;
-      FT_Pos    min_pos    =  32000;  /* minimum segment pos != min_coord */
-      FT_Pos    max_pos    = -32000;  /* maximum segment pos != max_coord */
-      FT_Pos    min_on_pos =  32000;
-      FT_Pos    max_on_pos = -32000;
-      FT_Bool   passed;
+      AF_Point  point   = contour[0];
+      AF_Point  last    = point->prev;
+      int       on_edge = 0;
 
+      /* we call values measured along a segment (point->v)    */
+      /* `coordinates', and values orthogonal to it (point->u) */
+      /* `positions'                                           */
+      FT_Pos     min_pos      =  32000;
+      FT_Pos     max_pos      = -32000;
+      FT_Pos     min_coord    =  32000;
+      FT_Pos     max_coord    = -32000;
+      FT_UShort  min_flags    =  AF_FLAG_NONE;
+      FT_UShort  max_flags    =  AF_FLAG_NONE;
+      FT_Pos     min_on_coord =  32000;
+      FT_Pos     max_on_coord = -32000;
 
-      if ( point == last )  /* skip singletons -- just in case */
-        continue;
+      FT_Bool  passed;
 
+      AF_Segment  prev_segment = NULL;
+
+      FT_Pos     prev_min_pos      = min_pos;
+      FT_Pos     prev_max_pos      = max_pos;
+      FT_Pos     prev_min_coord    = min_coord;
+      FT_Pos     prev_max_coord    = max_coord;
+      FT_UShort  prev_min_flags    = min_flags;
+      FT_UShort  prev_max_flags    = max_flags;
+      FT_Pos     prev_min_on_coord = min_on_coord;
+      FT_Pos     prev_max_on_coord = max_on_coord;
+
+
       if ( FT_ABS( last->out_dir )  == major_dir &&
            FT_ABS( point->out_dir ) == major_dir )
       {
@@ -1478,6 +1495,7 @@
 
         if ( on_edge )
         {
+          /* get minimum and maximum position */
           u = point->u;
           if ( u < min_pos )
             min_pos = u;
@@ -1484,45 +1502,174 @@
           if ( u > max_pos )
             max_pos = u;
 
-          /* get minimum and maximum coordinate of on points */
+          /* get minimum and maximum coordinate together with flags */
+          v = point->v;
+          if ( v < min_coord )
+          {
+            min_coord = v;
+            min_flags = point->flags;
+          }
+          if ( v > max_coord )
+          {
+            max_coord = v;
+            max_flags = point->flags;
+          }
+
+          /* get minimum and maximum coordinate of `on' points */
           if ( !( point->flags & AF_FLAG_CONTROL ) )
           {
             v = point->v;
-            if ( v < min_on_pos )
-              min_on_pos = v;
-            if ( v > max_on_pos )
-              max_on_pos = v;
+            if ( v < min_on_coord )
+              min_on_coord = v;
+            if ( v > max_on_coord )
+              max_on_coord = v;
           }
 
           if ( point->out_dir != segment_dir || point == last )
           {
-            /* we are just leaving an edge; record a new segment! */
-            segment->last = point;
-            segment->pos  = (FT_Short)( ( min_pos + max_pos ) >> 1 );
+            /* check whether the new segment's start point is identical to */
+            /* the previous segment's end point; for example, this might   */
+            /* happen for spikes                                           */
 
-            /* a segment is round if either its first or last point */
-            /* is a control point, and the length of the on points  */
-            /* inbetween doesn't exceed a heuristic limit           */
-            if ( ( segment->first->flags | point->flags ) & AF_FLAG_CONTROL &&
-                 ( max_on_pos - min_on_pos ) < flat_threshold               )
-              segment->flags |= AF_EDGE_ROUND;
+            if ( !prev_segment || segment->first != prev_segment->last )
+            {
+              /* points are different: we are just leaving an edge, thus */
+              /* record a new segment                                    */
 
-            /* compute segment size */
-            min_pos = max_pos = point->v;
+              segment->last = point;
+              segment->pos  = (FT_Short)( ( min_pos + max_pos ) >> 1 );
 
-            v = segment->first->v;
-            if ( v < min_pos )
-              min_pos = v;
-            if ( v > max_pos )
-              max_pos = v;
+              /* a segment is round if either its first or last point */
+              /* is a control point, and the length of the on points  */
+              /* inbetween doesn't exceed a heuristic limit           */
+              if ( ( min_flags | max_flags ) & AF_FLAG_CONTROL      &&
+                   ( max_on_coord - min_on_coord ) < flat_threshold )
+                segment->flags |= AF_EDGE_ROUND;
 
-            segment->min_coord = (FT_Short)min_pos;
-            segment->max_coord = (FT_Short)max_pos;
-            segment->height    = (FT_Short)( segment->max_coord -
-                                             segment->min_coord );
+              segment->min_coord = (FT_Short)min_coord;
+              segment->max_coord = (FT_Short)max_coord;
+              segment->height    = segment->max_coord - segment->min_coord;
 
+              prev_segment      = segment;
+              prev_min_pos      = min_pos;
+              prev_max_pos      = max_pos;
+              prev_min_coord    = min_coord;
+              prev_max_coord    = max_coord;
+              prev_min_flags    = min_flags;
+              prev_max_flags    = max_flags;
+              prev_min_on_coord = min_on_coord;
+              prev_max_on_coord = max_on_coord;
+            }
+            else
+            {
+              /* points are the same: we don't create a new segment but */
+              /* merge the current segment with the previous one        */
+
+              if ( prev_segment->last->in_dir == point->in_dir )
+              {
+                /* we have identical directions (this can happen for       */
+                /* degenerate outlines that move zig-zag along the main    */
+                /* axis without changing the coordinate value of the other */
+                /* axis, and where the segments have just been merged):    */
+                /* unify segments                                          */
+
+                /* update constraints */
+
+                if ( prev_min_pos < min_pos )
+                  min_pos = prev_min_pos;
+                if ( prev_max_pos > max_pos )
+                  max_pos = prev_max_pos;
+
+                if ( prev_min_coord < min_coord )
+                {
+                  min_coord = prev_min_coord;
+                  min_flags = prev_min_flags;
+                }
+                if ( prev_max_coord > max_coord )
+                {
+                  max_coord = prev_max_coord;
+                  max_flags = prev_max_flags;
+                }
+
+                if ( prev_min_on_coord < min_on_coord )
+                  min_on_coord = prev_min_on_coord;
+                if ( prev_max_on_coord > max_on_coord )
+                  max_on_coord = prev_max_on_coord;
+
+                prev_segment->last = point;
+                prev_segment->pos  = (FT_Short)( ( min_pos +
+                                                   max_pos ) >> 1 );
+
+                if ( ( min_flags | max_flags ) & AF_FLAG_CONTROL      &&
+                     ( max_on_coord - min_on_coord ) < flat_threshold )
+                  prev_segment->flags |= AF_EDGE_ROUND;
+                else
+                  prev_segment->flags &= ~AF_EDGE_ROUND;
+
+                prev_segment->min_coord = (FT_Short)min_coord;
+                prev_segment->max_coord = (FT_Short)max_coord;
+                prev_segment->height    = prev_segment->max_coord -
+                                          prev_segment->min_coord;
+              }
+              else
+              {
+                /* we have different directions; use the properties of the */
+                /* longer segment and discard the other one                */
+
+                if ( FT_ABS( prev_max_coord - prev_min_coord ) >
+                     FT_ABS( max_coord - min_coord ) )
+                {
+                  /* discard current segment */
+
+                  if ( min_pos < prev_min_pos )
+                    prev_min_pos = min_pos;
+                  if ( max_pos > prev_max_pos )
+                    prev_max_pos = max_pos;
+
+                  prev_segment->last = point;
+                  prev_segment->pos  = (FT_Short)( ( prev_min_pos +
+                                                     prev_max_pos ) >> 1 );
+                }
+                else
+                {
+                  /* discard previous segment */
+
+                  if ( prev_min_pos < min_pos )
+                    min_pos = prev_min_pos;
+                  if ( prev_max_pos > max_pos )
+                    max_pos = prev_max_pos;
+
+                  segment->last = point;
+                  segment->pos  = (FT_Short)( ( min_pos + max_pos ) >> 1 );
+
+                  if ( ( min_flags | max_flags ) & AF_FLAG_CONTROL      &&
+                       ( max_on_coord - min_on_coord ) < flat_threshold )
+                    segment->flags |= AF_EDGE_ROUND;
+
+                  segment->min_coord = (FT_Short)min_coord;
+                  segment->max_coord = (FT_Short)max_coord;
+                  segment->height    = segment->max_coord -
+                                       segment->min_coord;
+
+                  *prev_segment = *segment;
+
+                  prev_min_pos      = min_pos;
+                  prev_max_pos      = max_pos;
+                  prev_min_coord    = min_coord;
+                  prev_max_coord    = max_coord;
+                  prev_min_flags    = min_flags;
+                  prev_max_flags    = max_flags;
+                  prev_min_on_coord = min_on_coord;
+                  prev_max_on_coord = max_on_coord;
+                }
+              }
+
+              axis->num_segments--;
+            }
+
             on_edge = 0;
             segment = NULL;
+
             /* fall through */
           }
         }
@@ -1535,7 +1682,12 @@
           passed = 1;
         }
 
-        if ( !on_edge && FT_ABS( point->out_dir ) == major_dir )
+        /* if we are not on an edge, check whether the major direction */
+        /* coincides with the current point's `out' direction, or      */
+        /* whether we have a single-point contour                      */
+        if ( !on_edge                                  &&
+             ( FT_ABS( point->out_dir ) == major_dir ||
+               point == point->prev                  ) )
         {
           /* this is the start of a new segment! */
           segment_dir = (AF_Direction)point->out_dir;
@@ -1551,17 +1703,42 @@
           segment->first = point;
           segment->last  = point;
 
-          min_pos = max_pos = point->u;
+          /* `af_axis_hints_new_segment' reallocates memory,    */
+          /* thus we have to refresh the `prev_segment' pointer */
+          if ( prev_segment )
+            prev_segment = segment - 1;
 
+          min_pos   = max_pos   = point->u;
+          min_coord = max_coord = point->v;
+          min_flags = max_flags = point->flags;
+
           if ( point->flags & AF_FLAG_CONTROL )
           {
-            min_on_pos =  32000;
-            max_on_pos = -32000;
+            min_on_coord =  32000;
+            max_on_coord = -32000;
           }
           else
-            min_on_pos = max_on_pos = point->v;
+            min_on_coord = max_on_coord = point->v;
 
           on_edge = 1;
+
+          if ( point == point->prev )
+          {
+            /* we have a one-point segment: this is a one-point */
+            /* contour with `in' and `out' direction set to     */
+            /* AF_DIR_NONE                                      */
+            segment->pos = (FT_Short)min_pos;
+
+            if (point->flags & AF_FLAG_CONTROL)
+              segment->flags |= AF_EDGE_ROUND;
+
+            segment->min_coord = (FT_Short)point->v;
+            segment->max_coord = (FT_Short)point->v;
+            segment->height = 0;
+
+            on_edge = 0;
+            segment = NULL;
+          }
         }
 
         point = point->next;
@@ -1845,7 +2022,10 @@
       FT_Int   ee;
 
 
-      if ( seg->height < segment_length_threshold )
+      /* ignore too short segments and, in this loop, */
+      /* one-point segments without a direction       */
+      if ( seg->height < segment_length_threshold ||
+           seg->dir == AF_DIR_NONE                )
         continue;
 
       /* A special case for serif edges: If they are smaller than */
@@ -1907,7 +2087,45 @@
       }
     }
 
+    /* we loop again over all segments to catch one-point segments   */
+    /* without a direction: if possible, link them to existing edges */
+    for ( seg = segments; seg < segment_limit; seg++ )
+    {
+      AF_Edge  found = NULL;
+      FT_Int   ee;
 
+
+      if ( seg->dir != AF_DIR_NONE )
+        continue;
+
+      /* look for an edge corresponding to the segment */
+      for ( ee = 0; ee < axis->num_edges; ee++ )
+      {
+        AF_Edge  edge = axis->edges + ee;
+        FT_Pos   dist;
+
+
+        dist = seg->pos - edge->fpos;
+        if ( dist < 0 )
+          dist = -dist;
+
+        if ( dist < edge_distance_threshold )
+        {
+          found = edge;
+          break;
+        }
+      }
+
+      /* one-point segments without a match are ignored */
+      if ( found )
+      {
+        seg->edge_next         = found->first;
+        found->last->edge_next = seg;
+        found->last            = seg;
+      }
+    }
+
+
     /******************************************************************/
     /*                                                                */
     /* Good, we now compute each edge's properties according to the   */
@@ -2347,6 +2565,7 @@
   af_latin_compute_stem_width( AF_GlyphHints  hints,
                                AF_Dimension   dim,
                                FT_Pos         width,
+                               FT_Pos         base_delta,
                                FT_UInt        base_flags,
                                FT_UInt        stem_flags )
   {
@@ -2424,7 +2643,39 @@
             dist += delta;
         }
         else
-          dist = ( dist + 32 ) & ~63;
+        {
+          /* A stem's end position depends on two values: the start        */
+          /* position and the stem length.  The former gets usually        */
+          /* rounded to the grid, while the latter gets rounded also if it */
+          /* exceeds a certain length (see below in this function).  This  */
+          /* `double rounding' can lead to a great difference to the       */
+          /* original, unhinted position; this normally doesn't matter for */
+          /* large PPEM values, but for small sizes it can easily make     */
+          /* outlines collide.  For this reason, we adjust the stem length */
+          /* by a small amount depending on the PPEM value in case the     */
+          /* former and latter rounding both point into the same           */
+          /* direction.                                                    */
+
+          FT_Pos  bdelta = 0;
+
+
+          if ( ( ( width > 0 ) && ( base_delta > 0 ) ) ||
+               ( ( width < 0 ) && ( base_delta < 0 ) ) )
+          {
+            FT_UInt  ppem = metrics->root.scaler.face->size->metrics.x_ppem;
+
+
+            if ( ppem < 10 )
+              bdelta = base_delta;
+            else if ( ppem < 30 )
+              bdelta = ( base_delta * (FT_Pos)( 30 - ppem ) ) / 20;
+
+            if ( bdelta < 0 )
+              bdelta = -bdelta;
+          }
+
+          dist = ( dist - bdelta + 32 ) & ~63;
+        }
       }
     }
     else
@@ -2513,13 +2764,19 @@
                               AF_Edge        base_edge,
                               AF_Edge        stem_edge )
   {
-    FT_Pos  dist = stem_edge->opos - base_edge->opos;
+    FT_Pos  dist, base_delta;
+    FT_Pos  fitted_width;
 
-    FT_Pos  fitted_width = af_latin_compute_stem_width( hints, dim, dist,
-                                                        base_edge->flags,
-                                                        stem_edge->flags );
 
+    dist       = stem_edge->opos - base_edge->opos;
+    base_delta = base_edge->pos - base_edge->opos;
 
+    fitted_width = af_latin_compute_stem_width( hints, dim,
+                                                dist, base_delta,
+                                                base_edge->flags,
+                                                stem_edge->flags );
+
+
     stem_edge->pos = base_edge->pos + fitted_width;
 
     FT_TRACE5(( "  LINK: edge %d (opos=%.2f) linked to %.2f,"
@@ -2721,7 +2978,8 @@
 
 
         org_len = edge2->opos - edge->opos;
-        cur_len = af_latin_compute_stem_width( hints, dim, org_len,
+        cur_len = af_latin_compute_stem_width( hints, dim,
+                                               org_len, 0,
                                                edge->flags,
                                                edge2->flags );
 
@@ -2790,7 +3048,8 @@
         org_len    = edge2->opos - edge->opos;
         org_center = org_pos + ( org_len >> 1 );
 
-        cur_len = af_latin_compute_stem_width( hints, dim, org_len,
+        cur_len = af_latin_compute_stem_width( hints, dim,
+                                               org_len, 0,
                                                edge->flags,
                                                edge2->flags );
 
@@ -2850,7 +3109,8 @@
           org_len    = edge2->opos - edge->opos;
           org_center = org_pos + ( org_len >> 1 );
 
-          cur_len    = af_latin_compute_stem_width( hints, dim, org_len,
+          cur_len    = af_latin_compute_stem_width( hints, dim,
+                                                    org_len, 0,
                                                     edge->flags,
                                                     edge2->flags );
 
@@ -2885,14 +3145,21 @@
              ( top_to_bottom_hinting ? ( edge->pos > edge[-1].pos )
                                      : ( edge->pos < edge[-1].pos ) ) )
         {
+          /* don't move if stem would (almost) disappear otherwise; */
+          /* the ad-hoc value 16 corresponds to 1/4px               */
+          if ( edge->link && FT_ABS( edge->link->pos - edge[-1].pos ) > 16 )
+          {
 #ifdef FT_DEBUG_LEVEL_TRACE
-          FT_TRACE5(( "  BOUND: edge %d (pos=%.2f) moved to %.2f\n",
-                      edge - edges, edge->pos / 64.0, edge[-1].pos / 64.0 ));
+            FT_TRACE5(( "  BOUND: edge %d (pos=%.2f) moved to %.2f\n",
+                        edge - edges,
+                        edge->pos / 64.0,
+                        edge[-1].pos / 64.0 ));
 
-          num_actions++;
+            num_actions++;
 #endif
 
-          edge->pos = edge[-1].pos;
+            edge->pos = edge[-1].pos;
+          }
         }
       }
     }
@@ -3048,13 +3315,20 @@
              ( top_to_bottom_hinting ? ( edge->pos > edge[-1].pos )
                                      : ( edge->pos < edge[-1].pos ) ) )
         {
+          /* don't move if stem would (almost) disappear otherwise; */
+          /* the ad-hoc value 16 corresponds to 1/4px               */
+          if ( edge->link && FT_ABS( edge->link->pos - edge[-1].pos ) > 16 )
+          {
 #ifdef FT_DEBUG_LEVEL_TRACE
-          FT_TRACE5(( "  BOUND: edge %d (pos=%.2f) moved to %.2f\n",
-                      edge - edges, edge->pos / 64.0, edge[-1].pos / 64.0 ));
+            FT_TRACE5(( "  BOUND: edge %d (pos=%.2f) moved to %.2f\n",
+                        edge - edges,
+                        edge->pos / 64.0,
+                        edge[-1].pos / 64.0 ));
 
-          num_actions++;
+            num_actions++;
 #endif
-          edge->pos = edge[-1].pos;
+            edge->pos = edge[-1].pos;
+          }
         }
 
         if ( edge + 1 < edge_limit                                   &&
@@ -3062,14 +3336,21 @@
              ( top_to_bottom_hinting ? ( edge->pos < edge[1].pos )
                                      : ( edge->pos > edge[1].pos ) ) )
         {
+          /* don't move if stem would (almost) disappear otherwise; */
+          /* the ad-hoc value 16 corresponds to 1/4px               */
+          if ( edge->link && FT_ABS( edge->link->pos - edge[-1].pos ) > 16 )
+          {
 #ifdef FT_DEBUG_LEVEL_TRACE
-          FT_TRACE5(( "  BOUND: edge %d (pos=%.2f) moved to %.2f\n",
-                      edge - edges, edge->pos / 64.0, edge[1].pos / 64.0 ));
+            FT_TRACE5(( "  BOUND: edge %d (pos=%.2f) moved to %.2f\n",
+                        edge - edges,
+                        edge->pos / 64.0,
+                        edge[1].pos / 64.0 ));
 
-          num_actions++;
+            num_actions++;
 #endif
 
-          edge->pos = edge[1].pos;
+            edge->pos = edge[1].pos;
+          }
         }
       }
     }

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aflatin2.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aflatin2.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aflatin2.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,3 +1,8 @@
+/* ATTENTION: This file doesn't compile.  It is only here as a reference */
+/*            of an alternative latin hinting algorithm that was always  */
+/*            marked as experimental.                                    */
+
+
 /***************************************************************************/
 /*                                                                         */
 /*  aflatin2.c                                                             */

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aflatin2.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aflatin2.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aflatin2.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,3 +1,8 @@
+/* ATTENTION: This file doesn't compile.  It is only here as a reference */
+/*            of an alternative latin hinting algorithm that was always  */
+/*            marked as experimental.                                    */
+
+
 /***************************************************************************/
 /*                                                                         */
 /*  aflatin2.h                                                             */

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afranges.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afranges.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afranges.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -58,72 +58,101 @@
 
   const AF_Script_UniRangeRec  af_arab_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0600UL,  0x06FFUL ),  /* Arabic                                 */
-    AF_UNIRANGE_REC(  0x0750UL,  0x07FFUL ),  /* Arabic Supplement                      */
-    AF_UNIRANGE_REC(  0x08A0UL,  0x08FFUL ),  /* Arabic Extended-A                      */
-    AF_UNIRANGE_REC(  0xFB50UL,  0xFDFFUL ),  /* Arabic Presentation Forms-A            */
-    AF_UNIRANGE_REC(  0xFE70UL,  0xFEFFUL ),  /* Arabic Presentation Forms-B            */
-    AF_UNIRANGE_REC( 0x1EE00UL, 0x1EEFFUL ),  /* Arabic Mathematical Alphabetic Symbols */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0600,  0x06FF ),  /* Arabic                                 */
+    AF_UNIRANGE_REC(  0x0750,  0x07FF ),  /* Arabic Supplement                      */
+    AF_UNIRANGE_REC(  0x08A0,  0x08FF ),  /* Arabic Extended-A                      */
+    AF_UNIRANGE_REC(  0xFB50,  0xFDFF ),  /* Arabic Presentation Forms-A            */
+    AF_UNIRANGE_REC(  0xFE70,  0xFEFF ),  /* Arabic Presentation Forms-B            */
+    AF_UNIRANGE_REC( 0x1EE00, 0x1EEFF ),  /* Arabic Mathematical Alphabetic Symbols */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_arab_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0600UL,  0x0605UL ),
-    AF_UNIRANGE_REC(  0x0610UL,  0x061AUL ),
-    AF_UNIRANGE_REC(  0x064BUL,  0x065FUL ),
-    AF_UNIRANGE_REC(  0x0670UL,  0x0670UL ),
-    AF_UNIRANGE_REC(  0x06D6UL,  0x06DCUL ),
-    AF_UNIRANGE_REC(  0x06DFUL,  0x06E4UL ),
-    AF_UNIRANGE_REC(  0x06E7UL,  0x06E8UL ),
-    AF_UNIRANGE_REC(  0x06EAUL,  0x06EDUL ),
-    AF_UNIRANGE_REC(  0x08E3UL,  0x08FFUL ),
-    AF_UNIRANGE_REC(  0xFBB2UL,  0xFBC1UL ),
-    AF_UNIRANGE_REC(  0xFE70UL,  0xFE70UL ),
-    AF_UNIRANGE_REC(  0xFE72UL,  0xFE72UL ),
-    AF_UNIRANGE_REC(  0xFE74UL,  0xFE74UL ),
-    AF_UNIRANGE_REC(  0xFE76UL,  0xFE76UL ),
-    AF_UNIRANGE_REC(  0xFE78UL,  0xFE78UL ),
-    AF_UNIRANGE_REC(  0xFE7AUL,  0xFE7AUL ),
-    AF_UNIRANGE_REC(  0xFE7CUL,  0xFE7CUL ),
-    AF_UNIRANGE_REC(  0xFE7EUL,  0xFE7EUL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0600,  0x0605 ),
+    AF_UNIRANGE_REC(  0x0610,  0x061A ),
+    AF_UNIRANGE_REC(  0x064B,  0x065F ),
+    AF_UNIRANGE_REC(  0x0670,  0x0670 ),
+    AF_UNIRANGE_REC(  0x06D6,  0x06DC ),
+    AF_UNIRANGE_REC(  0x06DF,  0x06E4 ),
+    AF_UNIRANGE_REC(  0x06E7,  0x06E8 ),
+    AF_UNIRANGE_REC(  0x06EA,  0x06ED ),
+    AF_UNIRANGE_REC(  0x08D4,  0x08E1 ),
+    AF_UNIRANGE_REC(  0x08E3,  0x08FF ),
+    AF_UNIRANGE_REC(  0xFBB2,  0xFBC1 ),
+    AF_UNIRANGE_REC(  0xFE70,  0xFE70 ),
+    AF_UNIRANGE_REC(  0xFE72,  0xFE72 ),
+    AF_UNIRANGE_REC(  0xFE74,  0xFE74 ),
+    AF_UNIRANGE_REC(  0xFE76,  0xFE76 ),
+    AF_UNIRANGE_REC(  0xFE78,  0xFE78 ),
+    AF_UNIRANGE_REC(  0xFE7A,  0xFE7A ),
+    AF_UNIRANGE_REC(  0xFE7C,  0xFE7C ),
+    AF_UNIRANGE_REC(  0xFE7E,  0xFE7E ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
+  const AF_Script_UniRangeRec  af_armn_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x0530,  0x058F ),  /* Armenian                          */
+    AF_UNIRANGE_REC(  0xFB13,  0xFB17 ),  /* Alphab. Present. Forms (Armenian) */
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+  const AF_Script_UniRangeRec  af_armn_nonbase_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x0559,  0x055F ),
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+
   const AF_Script_UniRangeRec  af_beng_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0980UL,  0x09FFUL ),  /* Bengali */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0980,  0x09FF ),  /* Bengali */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_beng_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0981UL,  0x0981UL ),
-    AF_UNIRANGE_REC(  0x09BCUL,  0x09BCUL ),
-    AF_UNIRANGE_REC(  0x09C1UL,  0x09C4UL ),
-    AF_UNIRANGE_REC(  0x09CDUL,  0x09CDUL ),
-    AF_UNIRANGE_REC(  0x09E2UL,  0x09E3UL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0981,  0x0981 ),
+    AF_UNIRANGE_REC(  0x09BC,  0x09BC ),
+    AF_UNIRANGE_REC(  0x09C1,  0x09C4 ),
+    AF_UNIRANGE_REC(  0x09CD,  0x09CD ),
+    AF_UNIRANGE_REC(  0x09E2,  0x09E3 ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
+  const AF_Script_UniRangeRec  af_cher_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x13A0,  0x13FF ),  /* Cherokee            */
+    AF_UNIRANGE_REC(  0xAB70,  0xABBF ),  /* Cherokee Supplement */
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+  const AF_Script_UniRangeRec  af_cher_nonbase_uniranges[] =
+  {
+    AF_UNIRANGE_REC( 0, 0 )
+  };
+
+
   const AF_Script_UniRangeRec  af_cyrl_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0400UL,  0x04FFUL ),  /* Cyrillic            */
-    AF_UNIRANGE_REC(  0x0500UL,  0x052FUL ),  /* Cyrillic Supplement */
-    AF_UNIRANGE_REC(  0x2DE0UL,  0x2DFFUL ),  /* Cyrillic Extended-A */
-    AF_UNIRANGE_REC(  0xA640UL,  0xA69FUL ),  /* Cyrillic Extended-B */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0400,  0x04FF ),  /* Cyrillic            */
+    AF_UNIRANGE_REC(  0x0500,  0x052F ),  /* Cyrillic Supplement */
+    AF_UNIRANGE_REC(  0x2DE0,  0x2DFF ),  /* Cyrillic Extended-A */
+    AF_UNIRANGE_REC(  0xA640,  0xA69F ),  /* Cyrillic Extended-B */
+    AF_UNIRANGE_REC(  0x1C80,  0x1C8F ),  /* Cyrillic Extended-C */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_cyrl_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0483UL,  0x0489UL ),
-    AF_UNIRANGE_REC(  0x2DE0UL,  0x2DFFUL ),
-    AF_UNIRANGE_REC(  0xA66FUL,  0xA67FUL ),
-    AF_UNIRANGE_REC(  0xA69EUL,  0xA69FUL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0483,  0x0489 ),
+    AF_UNIRANGE_REC(  0x2DE0,  0x2DFF ),
+    AF_UNIRANGE_REC(  0xA66F,  0xA67F ),
+    AF_UNIRANGE_REC(  0xA69E,  0xA69F ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
@@ -133,457 +162,503 @@
 
   const AF_Script_UniRangeRec  af_deva_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0900UL,  0x093BUL ),  /* Devanagari          */
+    AF_UNIRANGE_REC(  0x0900,  0x093B ),  /* Devanagari          */
     /* omitting U+093C nukta */
-    AF_UNIRANGE_REC(  0x093DUL,  0x0950UL ),  /* ... continued       */
+    AF_UNIRANGE_REC(  0x093D,  0x0950 ),  /* ... continued       */
     /* omitting U+0951 udatta, U+0952 anudatta */
-    AF_UNIRANGE_REC(  0x0953UL,  0x0963UL ),  /* ... continued       */
+    AF_UNIRANGE_REC(  0x0953,  0x0963 ),  /* ... continued       */
     /* omitting U+0964 danda, U+0965 double danda */
-    AF_UNIRANGE_REC(  0x0966UL,  0x097FUL ),  /* ... continued       */
-    AF_UNIRANGE_REC(  0x20B9UL,  0x20B9UL ),  /* (new) Rupee sign    */
-    AF_UNIRANGE_REC(  0xA8E0UL,  0xA8FFUL ),  /* Devanagari Extended */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0966,  0x097F ),  /* ... continued       */
+    AF_UNIRANGE_REC(  0x20B9,  0x20B9 ),  /* (new) Rupee sign    */
+    AF_UNIRANGE_REC(  0xA8E0,  0xA8FF ),  /* Devanagari Extended */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_deva_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0900UL,  0x0902UL ),
-    AF_UNIRANGE_REC(  0x093AUL,  0x093AUL ),
-    AF_UNIRANGE_REC(  0x0941UL,  0x0948UL ),
-    AF_UNIRANGE_REC(  0x094DUL,  0x094DUL ),
-    AF_UNIRANGE_REC(  0x0953UL,  0x0957UL ),
-    AF_UNIRANGE_REC(  0x0962UL,  0x0963UL ),
-    AF_UNIRANGE_REC(  0xA8E0UL,  0xA8F1UL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0900,  0x0902 ),
+    AF_UNIRANGE_REC(  0x093A,  0x093A ),
+    AF_UNIRANGE_REC(  0x0941,  0x0948 ),
+    AF_UNIRANGE_REC(  0x094D,  0x094D ),
+    AF_UNIRANGE_REC(  0x0953,  0x0957 ),
+    AF_UNIRANGE_REC(  0x0962,  0x0963 ),
+    AF_UNIRANGE_REC(  0xA8E0,  0xA8F1 ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
+  const AF_Script_UniRangeRec  af_ethi_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x1200,  0x137F ),  /* Ethiopic            */
+    AF_UNIRANGE_REC(  0x1380,  0x139F ),  /* Ethiopic Supplement */
+    AF_UNIRANGE_REC(  0x2D80,  0x2DDF ),  /* Ethiopic Extended   */
+    AF_UNIRANGE_REC(  0xAB00,  0xAB2F ),  /* Ethiopic Extended-A */
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+  const AF_Script_UniRangeRec  af_ethi_nonbase_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x135D,  0x135F ),
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+
+  const AF_Script_UniRangeRec  af_geor_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x10D0,  0x10FF ),  /* Georgian (Mkhedruli) */
+#if 0
+    /* the following range is proposed for inclusion in Unicode */
+    AF_UNIRANGE_REC(  0x1C90,  0x1CBF ),  /* Georgian (Mtavruli)  */
+#endif
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+  const AF_Script_UniRangeRec  af_geor_nonbase_uniranges[] =
+  {
+    AF_UNIRANGE_REC( 0, 0 )
+  };
+
+
+  const AF_Script_UniRangeRec  af_geok_uniranges[] =
+  {
+    /* Khutsuri */
+    AF_UNIRANGE_REC(  0x10A0,  0x10CD ),  /* Georgian (Asomtavruli) */
+    AF_UNIRANGE_REC(  0x2D00,  0x2D2D ),  /* Georgian (Nuskhuri)    */
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+  const AF_Script_UniRangeRec  af_geok_nonbase_uniranges[] =
+  {
+    AF_UNIRANGE_REC( 0, 0 )
+  };
+
+
   const AF_Script_UniRangeRec  af_grek_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0370UL,  0x03FFUL ),  /* Greek and Coptic */
-    AF_UNIRANGE_REC(  0x1F00UL,  0x1FFFUL ),  /* Greek Extended   */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0370,  0x03FF ),  /* Greek and Coptic */
+    AF_UNIRANGE_REC(  0x1F00,  0x1FFF ),  /* Greek Extended   */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_grek_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x037AUL,  0x037AUL ),
-    AF_UNIRANGE_REC(  0x0384UL,  0x0385UL ),
-    AF_UNIRANGE_REC(  0x1FBDUL,  0x1FC1UL ),
-    AF_UNIRANGE_REC(  0x1FCDUL,  0x1FCFUL ),
-    AF_UNIRANGE_REC(  0x1FDDUL,  0x1FDFUL ),
-    AF_UNIRANGE_REC(  0x1FEDUL,  0x1FEFUL ),
-    AF_UNIRANGE_REC(  0x1FFDUL,  0x1FFEUL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x037A,  0x037A ),
+    AF_UNIRANGE_REC(  0x0384,  0x0385 ),
+    AF_UNIRANGE_REC(  0x1FBD,  0x1FC1 ),
+    AF_UNIRANGE_REC(  0x1FCD,  0x1FCF ),
+    AF_UNIRANGE_REC(  0x1FDD,  0x1FDF ),
+    AF_UNIRANGE_REC(  0x1FED,  0x1FEF ),
+    AF_UNIRANGE_REC(  0x1FFD,  0x1FFE ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
+  const AF_Script_UniRangeRec  af_gujr_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x0A80,  0x0AFF ),  /* Gujarati */
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+  const AF_Script_UniRangeRec  af_gujr_nonbase_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x0A81,  0x0A82 ),
+    AF_UNIRANGE_REC(  0x0ABC,  0x0ABC ),
+    AF_UNIRANGE_REC(  0x0AC1,  0x0AC8 ),
+    AF_UNIRANGE_REC(  0x0ACD,  0x0ACD ),
+    AF_UNIRANGE_REC(  0x0AE2,  0x0AE3 ),
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+
+  const AF_Script_UniRangeRec  af_guru_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x0A00,  0x0A7F ),  /* Gurmukhi */
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+  const AF_Script_UniRangeRec  af_guru_nonbase_uniranges[] =
+  {
+    AF_UNIRANGE_REC(  0x0A01,  0x0A02 ),
+    AF_UNIRANGE_REC(  0x0A3C,  0x0A3C ),
+    AF_UNIRANGE_REC(  0x0A41,  0x0A51 ),
+    AF_UNIRANGE_REC(  0x0A70,  0x0A71 ),
+    AF_UNIRANGE_REC(  0x0A75,  0x0A75 ),
+    AF_UNIRANGE_REC(       0,       0 )
+  };
+
+
   const AF_Script_UniRangeRec  af_hebr_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0590UL,  0x05FFUL ),  /* Hebrew                          */
-    AF_UNIRANGE_REC(  0xFB1DUL,  0xFB4FUL ),  /* Alphab. Present. Forms (Hebrew) */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0590,  0x05FF ),  /* Hebrew                          */
+    AF_UNIRANGE_REC(  0xFB1D,  0xFB4F ),  /* Alphab. Present. Forms (Hebrew) */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_hebr_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0591UL,  0x05BFUL ),
-    AF_UNIRANGE_REC(  0x05C1UL,  0x05C2UL ),
-    AF_UNIRANGE_REC(  0x05C4UL,  0x05C5UL ),
-    AF_UNIRANGE_REC(  0x05C7UL,  0x05C7UL ),
-    AF_UNIRANGE_REC(  0xFB1EUL,  0xFB1EUL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0591,  0x05BF ),
+    AF_UNIRANGE_REC(  0x05C1,  0x05C2 ),
+    AF_UNIRANGE_REC(  0x05C4,  0x05C5 ),
+    AF_UNIRANGE_REC(  0x05C7,  0x05C7 ),
+    AF_UNIRANGE_REC(  0xFB1E,  0xFB1E ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
   const AF_Script_UniRangeRec  af_knda_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0C80UL,  0x0CFFUL ),  /* Kannada */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0C80,  0x0CFF ),  /* Kannada */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_knda_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0C81UL,  0x0C81UL ),
-    AF_UNIRANGE_REC(  0x0CBCUL,  0x0CBCUL ),
-    AF_UNIRANGE_REC(  0x0CBFUL,  0x0CBFUL ),
-    AF_UNIRANGE_REC(  0x0CC6UL,  0x0CC6UL ),
-    AF_UNIRANGE_REC(  0x0CCCUL,  0x0CCDUL ),
-    AF_UNIRANGE_REC(  0x0CE2UL,  0x0CE3UL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0C81,  0x0C81 ),
+    AF_UNIRANGE_REC(  0x0CBC,  0x0CBC ),
+    AF_UNIRANGE_REC(  0x0CBF,  0x0CBF ),
+    AF_UNIRANGE_REC(  0x0CC6,  0x0CC6 ),
+    AF_UNIRANGE_REC(  0x0CCC,  0x0CCD ),
+    AF_UNIRANGE_REC(  0x0CE2,  0x0CE3 ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
   const AF_Script_UniRangeRec  af_khmr_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x1780UL,  0x17FFUL ),  /* Khmer */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x1780,  0x17FF ),  /* Khmer */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_khmr_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x17B7UL,  0x17BDUL ),
-    AF_UNIRANGE_REC(  0x17C6UL,  0x17C6UL ),
-    AF_UNIRANGE_REC(  0x17C9UL,  0x17D3UL ),
-    AF_UNIRANGE_REC(  0x17DDUL,  0x17DDUL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x17B7,  0x17BD ),
+    AF_UNIRANGE_REC(  0x17C6,  0x17C6 ),
+    AF_UNIRANGE_REC(  0x17C9,  0x17D3 ),
+    AF_UNIRANGE_REC(  0x17DD,  0x17DD ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
   const AF_Script_UniRangeRec  af_khms_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x19E0UL,  0x19FFUL ),  /* Khmer Symbols */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x19E0,  0x19FF ),  /* Khmer Symbols */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_khms_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC( 0UL, 0UL )
+    AF_UNIRANGE_REC( 0, 0 )
   };
 
 
   const AF_Script_UniRangeRec  af_lao_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0E80UL,  0x0EFFUL ),  /* Lao */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0E80,  0x0EFF ),  /* Lao */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_lao_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0EB1UL,  0x0EB1UL ),
-    AF_UNIRANGE_REC(  0x0EB4UL,  0x0EBCUL ),
-    AF_UNIRANGE_REC(  0x0EC8UL,  0x0ECDUL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0EB1,  0x0EB1 ),
+    AF_UNIRANGE_REC(  0x0EB4,  0x0EBC ),
+    AF_UNIRANGE_REC(  0x0EC8,  0x0ECD ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
   const AF_Script_UniRangeRec  af_latn_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0020UL,  0x007FUL ),  /* Basic Latin (no control chars)         */
-    AF_UNIRANGE_REC(  0x00A0UL,  0x00A9UL ),  /* Latin-1 Supplement (no control chars)  */
-    AF_UNIRANGE_REC(  0x00ABUL,  0x00B1UL ),  /* ... continued                          */
-    AF_UNIRANGE_REC(  0x00B4UL,  0x00B8UL ),  /* ... continued                          */
-    AF_UNIRANGE_REC(  0x00BBUL,  0x00FFUL ),  /* ... continued                          */
-    AF_UNIRANGE_REC(  0x0100UL,  0x017FUL ),  /* Latin Extended-A                       */
-    AF_UNIRANGE_REC(  0x0180UL,  0x024FUL ),  /* Latin Extended-B                       */
-    AF_UNIRANGE_REC(  0x0250UL,  0x02AFUL ),  /* IPA Extensions                         */
-    AF_UNIRANGE_REC(  0x02B9UL,  0x02DFUL ),  /* Spacing Modifier Letters               */
-    AF_UNIRANGE_REC(  0x02E5UL,  0x02FFUL ),  /* ... continued                          */
-    AF_UNIRANGE_REC(  0x0300UL,  0x036FUL ),  /* Combining Diacritical Marks            */
-    AF_UNIRANGE_REC(  0x1AB0UL,  0x1ABEUL ),  /* Combining Diacritical Marks Extended   */
-    AF_UNIRANGE_REC(  0x1D00UL,  0x1D2BUL ),  /* Phonetic Extensions                    */
-    AF_UNIRANGE_REC(  0x1D6BUL,  0x1D77UL ),  /* ... continued                          */
-    AF_UNIRANGE_REC(  0x1D79UL,  0x1D7FUL ),  /* ... continued                          */
-    AF_UNIRANGE_REC(  0x1D80UL,  0x1D9AUL ),  /* Phonetic Extensions Supplement         */
-    AF_UNIRANGE_REC(  0x1DC0UL,  0x1DFFUL ),  /* Combining Diacritical Marks Supplement */
-    AF_UNIRANGE_REC(  0x1E00UL,  0x1EFFUL ),  /* Latin Extended Additional              */
-    AF_UNIRANGE_REC(  0x2000UL,  0x206FUL ),  /* General Punctuation                    */
-    AF_UNIRANGE_REC(  0x20A0UL,  0x20B8UL ),  /* Currency Symbols ...                   */
-    AF_UNIRANGE_REC(  0x20BAUL,  0x20CFUL ),  /* ... except new Rupee sign              */
-    AF_UNIRANGE_REC(  0x2150UL,  0x218FUL ),  /* Number Forms                           */
-    AF_UNIRANGE_REC(  0x2C60UL,  0x2C7BUL ),  /* Latin Extended-C                       */
-    AF_UNIRANGE_REC(  0x2C7EUL,  0x2C7FUL ),  /* ... continued                          */
-    AF_UNIRANGE_REC(  0x2E00UL,  0x2E7FUL ),  /* Supplemental Punctuation               */
-    AF_UNIRANGE_REC(  0xA720UL,  0xA76FUL ),  /* Latin Extended-D                       */
-    AF_UNIRANGE_REC(  0xA771UL,  0xA7F7UL ),  /* ... continued                          */
-    AF_UNIRANGE_REC(  0xA7FAUL,  0xA7FFUL ),  /* ... continued                          */
-    AF_UNIRANGE_REC(  0xAB30UL,  0xAB5BUL ),  /* Latin Extended-E                       */
-    AF_UNIRANGE_REC(  0xAB60UL,  0xAB6FUL ),  /* ... continued                          */
-    AF_UNIRANGE_REC(  0xFB00UL,  0xFB06UL ),  /* Alphab. Present. Forms (Latin Ligs)    */
-    AF_UNIRANGE_REC( 0x1D400UL, 0x1D7FFUL ),  /* Mathematical Alphanumeric Symbols      */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0020,  0x007F ),  /* Basic Latin (no control chars)         */
+    AF_UNIRANGE_REC(  0x00A0,  0x00A9 ),  /* Latin-1 Supplement (no control chars)  */
+    AF_UNIRANGE_REC(  0x00AB,  0x00B1 ),  /* ... continued                          */
+    AF_UNIRANGE_REC(  0x00B4,  0x00B8 ),  /* ... continued                          */
+    AF_UNIRANGE_REC(  0x00BB,  0x00FF ),  /* ... continued                          */
+    AF_UNIRANGE_REC(  0x0100,  0x017F ),  /* Latin Extended-A                       */
+    AF_UNIRANGE_REC(  0x0180,  0x024F ),  /* Latin Extended-B                       */
+    AF_UNIRANGE_REC(  0x0250,  0x02AF ),  /* IPA Extensions                         */
+    AF_UNIRANGE_REC(  0x02B9,  0x02DF ),  /* Spacing Modifier Letters               */
+    AF_UNIRANGE_REC(  0x02E5,  0x02FF ),  /* ... continued                          */
+    AF_UNIRANGE_REC(  0x0300,  0x036F ),  /* Combining Diacritical Marks            */
+    AF_UNIRANGE_REC(  0x1AB0,  0x1ABE ),  /* Combining Diacritical Marks Extended   */
+    AF_UNIRANGE_REC(  0x1D00,  0x1D2B ),  /* Phonetic Extensions                    */
+    AF_UNIRANGE_REC(  0x1D6B,  0x1D77 ),  /* ... continued                          */
+    AF_UNIRANGE_REC(  0x1D79,  0x1D7F ),  /* ... continued                          */
+    AF_UNIRANGE_REC(  0x1D80,  0x1D9A ),  /* Phonetic Extensions Supplement         */
+    AF_UNIRANGE_REC(  0x1DC0,  0x1DFF ),  /* Combining Diacritical Marks Supplement */
+    AF_UNIRANGE_REC(  0x1E00,  0x1EFF ),  /* Latin Extended Additional              */
+    AF_UNIRANGE_REC(  0x2000,  0x206F ),  /* General Punctuation                    */
+    AF_UNIRANGE_REC(  0x20A0,  0x20B8 ),  /* Currency Symbols ...                   */
+    AF_UNIRANGE_REC(  0x20BA,  0x20CF ),  /* ... except new Rupee sign              */
+    AF_UNIRANGE_REC(  0x2150,  0x218F ),  /* Number Forms                           */
+    AF_UNIRANGE_REC(  0x2C60,  0x2C7B ),  /* Latin Extended-C                       */
+    AF_UNIRANGE_REC(  0x2C7E,  0x2C7F ),  /* ... continued                          */
+    AF_UNIRANGE_REC(  0x2E00,  0x2E7F ),  /* Supplemental Punctuation               */
+    AF_UNIRANGE_REC(  0xA720,  0xA76F ),  /* Latin Extended-D                       */
+    AF_UNIRANGE_REC(  0xA771,  0xA7F7 ),  /* ... continued                          */
+    AF_UNIRANGE_REC(  0xA7FA,  0xA7FF ),  /* ... continued                          */
+    AF_UNIRANGE_REC(  0xAB30,  0xAB5B ),  /* Latin Extended-E                       */
+    AF_UNIRANGE_REC(  0xAB60,  0xAB6F ),  /* ... continued                          */
+    AF_UNIRANGE_REC(  0xFB00,  0xFB06 ),  /* Alphab. Present. Forms (Latin Ligs)    */
+    AF_UNIRANGE_REC( 0x1D400, 0x1D7FF ),  /* Mathematical Alphanumeric Symbols      */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_latn_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x005EUL,  0x0060UL ),
-    AF_UNIRANGE_REC(  0x007EUL,  0x007EUL ),
-    AF_UNIRANGE_REC(  0x00A8UL,  0x00A9UL ),
-    AF_UNIRANGE_REC(  0x00AEUL,  0x00B0UL ),
-    AF_UNIRANGE_REC(  0x00B4UL,  0x00B4UL ),
-    AF_UNIRANGE_REC(  0x00B8UL,  0x00B8UL ),
-    AF_UNIRANGE_REC(  0x00BCUL,  0x00BEUL ),
-    AF_UNIRANGE_REC(  0x02B9UL,  0x02DFUL ),
-    AF_UNIRANGE_REC(  0x02E5UL,  0x02FFUL ),
-    AF_UNIRANGE_REC(  0x0300UL,  0x036FUL ),
-    AF_UNIRANGE_REC(  0x1AB0UL,  0x1ABEUL ),
-    AF_UNIRANGE_REC(  0x1DC0UL,  0x1DFFUL ),
-    AF_UNIRANGE_REC(  0x2017UL,  0x2017UL ),
-    AF_UNIRANGE_REC(  0x203EUL,  0x203EUL ),
-    AF_UNIRANGE_REC(  0xA788UL,  0xA788UL ),
-    AF_UNIRANGE_REC(  0xA7F8UL,  0xA7FAUL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x005E,  0x0060 ),
+    AF_UNIRANGE_REC(  0x007E,  0x007E ),
+    AF_UNIRANGE_REC(  0x00A8,  0x00A9 ),
+    AF_UNIRANGE_REC(  0x00AE,  0x00B0 ),
+    AF_UNIRANGE_REC(  0x00B4,  0x00B4 ),
+    AF_UNIRANGE_REC(  0x00B8,  0x00B8 ),
+    AF_UNIRANGE_REC(  0x00BC,  0x00BE ),
+    AF_UNIRANGE_REC(  0x02B9,  0x02DF ),
+    AF_UNIRANGE_REC(  0x02E5,  0x02FF ),
+    AF_UNIRANGE_REC(  0x0300,  0x036F ),
+    AF_UNIRANGE_REC(  0x1AB0,  0x1ABE ),
+    AF_UNIRANGE_REC(  0x1DC0,  0x1DFF ),
+    AF_UNIRANGE_REC(  0x2017,  0x2017 ),
+    AF_UNIRANGE_REC(  0x203E,  0x203E ),
+    AF_UNIRANGE_REC(  0xA788,  0xA788 ),
+    AF_UNIRANGE_REC(  0xA7F8,  0xA7FA ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
   const AF_Script_UniRangeRec  af_latb_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x1D62UL,  0x1D6AUL ),  /* some small subscript letters   */
-    AF_UNIRANGE_REC(  0x2080UL,  0x209CUL ),  /* subscript digits and letters   */
-    AF_UNIRANGE_REC(  0x2C7CUL,  0x2C7CUL ),  /* latin subscript small letter j */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x1D62,  0x1D6A ),  /* some small subscript letters   */
+    AF_UNIRANGE_REC(  0x2080,  0x209C ),  /* subscript digits and letters   */
+    AF_UNIRANGE_REC(  0x2C7C,  0x2C7C ),  /* latin subscript small letter j */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_latb_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC( 0UL, 0UL )
+    AF_UNIRANGE_REC( 0, 0 )
   };
 
 
   const AF_Script_UniRangeRec  af_latp_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x00AAUL,  0x00AAUL ),  /* feminine ordinal indicator          */
-    AF_UNIRANGE_REC(  0x00B2UL,  0x00B3UL ),  /* superscript two and three           */
-    AF_UNIRANGE_REC(  0x00B9UL,  0x00BAUL ),  /* superscript one, masc. ord. indic.  */
-    AF_UNIRANGE_REC(  0x02B0UL,  0x02B8UL ),  /* some latin superscript mod. letters */
-    AF_UNIRANGE_REC(  0x02E0UL,  0x02E4UL ),  /* some IPA modifier letters           */
-    AF_UNIRANGE_REC(  0x1D2CUL,  0x1D61UL ),  /* latin superscript modifier letters  */
-    AF_UNIRANGE_REC(  0x1D78UL,  0x1D78UL ),  /* modifier letter cyrillic en         */
-    AF_UNIRANGE_REC(  0x1D9BUL,  0x1DBFUL ),  /* more modifier letters               */
-    AF_UNIRANGE_REC(  0x2070UL,  0x207FUL ),  /* superscript digits and letters      */
-    AF_UNIRANGE_REC(  0x2C7DUL,  0x2C7DUL ),  /* modifier letter capital v           */
-    AF_UNIRANGE_REC(  0xA770UL,  0xA770UL ),  /* modifier letter us                  */
-    AF_UNIRANGE_REC(  0xA7F8UL,  0xA7F9UL ),  /* more modifier letters               */
-    AF_UNIRANGE_REC(  0xAB5CUL,  0xAB5FUL ),  /* more modifier letters               */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x00AA,  0x00AA ),  /* feminine ordinal indicator          */
+    AF_UNIRANGE_REC(  0x00B2,  0x00B3 ),  /* superscript two and three           */
+    AF_UNIRANGE_REC(  0x00B9,  0x00BA ),  /* superscript one, masc. ord. indic.  */
+    AF_UNIRANGE_REC(  0x02B0,  0x02B8 ),  /* some latin superscript mod. letters */
+    AF_UNIRANGE_REC(  0x02E0,  0x02E4 ),  /* some IPA modifier letters           */
+    AF_UNIRANGE_REC(  0x1D2C,  0x1D61 ),  /* latin superscript modifier letters  */
+    AF_UNIRANGE_REC(  0x1D78,  0x1D78 ),  /* modifier letter cyrillic en         */
+    AF_UNIRANGE_REC(  0x1D9B,  0x1DBF ),  /* more modifier letters               */
+    AF_UNIRANGE_REC(  0x2070,  0x207F ),  /* superscript digits and letters      */
+    AF_UNIRANGE_REC(  0x2C7D,  0x2C7D ),  /* modifier letter capital v           */
+    AF_UNIRANGE_REC(  0xA770,  0xA770 ),  /* modifier letter us                  */
+    AF_UNIRANGE_REC(  0xA7F8,  0xA7F9 ),  /* more modifier letters               */
+    AF_UNIRANGE_REC(  0xAB5C,  0xAB5F ),  /* more modifier letters               */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_latp_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC( 0UL, 0UL )
+    AF_UNIRANGE_REC( 0, 0 )
   };
 
 
-  const AF_Script_UniRangeRec  af_mymr_uniranges[] =
+  const AF_Script_UniRangeRec  af_mlym_uniranges[] =
   {
-    AF_UNIRANGE_REC( 0x1000UL, 0x109FUL ),    /* Myanmar            */
-    AF_UNIRANGE_REC( 0xA9E0UL, 0xA9FFUL ),    /* Myanmar Extended-B */
-    AF_UNIRANGE_REC( 0xAA60UL, 0xAA7FUL ),    /* Myanmar Extended-A */
-    AF_UNIRANGE_REC(      0UL,      0UL )
+    AF_UNIRANGE_REC(  0x0D00,  0x0D7F ),  /* Malayalam */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
-  const AF_Script_UniRangeRec  af_mymr_nonbase_uniranges[] =
+  const AF_Script_UniRangeRec  af_mlym_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC( 0x102DUL, 0x1030UL ),
-    AF_UNIRANGE_REC( 0x1032UL, 0x1037UL ),
-    AF_UNIRANGE_REC( 0x103AUL, 0x103AUL ),
-    AF_UNIRANGE_REC( 0x103DUL, 0x103EUL ),
-    AF_UNIRANGE_REC( 0x1058UL, 0x1059UL ),
-    AF_UNIRANGE_REC( 0x105EUL, 0x1060UL ),
-    AF_UNIRANGE_REC( 0x1071UL, 0x1074UL ),
-    AF_UNIRANGE_REC( 0x1082UL, 0x1082UL ),
-    AF_UNIRANGE_REC( 0x1085UL, 0x1086UL ),
-    AF_UNIRANGE_REC( 0x108DUL, 0x108DUL ),
-    AF_UNIRANGE_REC( 0xA9E5UL, 0xA9E5UL ),
-    AF_UNIRANGE_REC( 0xAA7CUL, 0xAA7CUL ),
-    AF_UNIRANGE_REC(      0UL,      0UL )
+    AF_UNIRANGE_REC(  0x0D01,  0x0D01 ),
+    AF_UNIRANGE_REC(  0x0D4D,  0x0D4E ),
+    AF_UNIRANGE_REC(  0x0D62,  0x0D63 ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
-  const AF_Script_UniRangeRec  af_none_uniranges[] =
+  const AF_Script_UniRangeRec  af_mymr_uniranges[] =
   {
-    AF_UNIRANGE_REC( 0UL, 0UL )
+    AF_UNIRANGE_REC( 0x1000, 0x109F ),    /* Myanmar            */
+    AF_UNIRANGE_REC( 0xA9E0, 0xA9FF ),    /* Myanmar Extended-B */
+    AF_UNIRANGE_REC( 0xAA60, 0xAA7F ),    /* Myanmar Extended-A */
+    AF_UNIRANGE_REC(      0,      0 )
   };
 
-  const AF_Script_UniRangeRec  af_none_nonbase_uniranges[] =
+  const AF_Script_UniRangeRec  af_mymr_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC( 0UL, 0UL )
+    AF_UNIRANGE_REC( 0x102D, 0x1030 ),
+    AF_UNIRANGE_REC( 0x1032, 0x1037 ),
+    AF_UNIRANGE_REC( 0x103A, 0x103A ),
+    AF_UNIRANGE_REC( 0x103D, 0x103E ),
+    AF_UNIRANGE_REC( 0x1058, 0x1059 ),
+    AF_UNIRANGE_REC( 0x105E, 0x1060 ),
+    AF_UNIRANGE_REC( 0x1071, 0x1074 ),
+    AF_UNIRANGE_REC( 0x1082, 0x1082 ),
+    AF_UNIRANGE_REC( 0x1085, 0x1086 ),
+    AF_UNIRANGE_REC( 0x108D, 0x108D ),
+    AF_UNIRANGE_REC( 0xA9E5, 0xA9E5 ),
+    AF_UNIRANGE_REC( 0xAA7C, 0xAA7C ),
+    AF_UNIRANGE_REC(      0,      0 )
   };
 
 
-  const AF_Script_UniRangeRec  af_telu_uniranges[] =
+  const AF_Script_UniRangeRec  af_none_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0C00UL,  0x0C7FUL ),  /* Telugu */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC( 0, 0 )
   };
 
-  const AF_Script_UniRangeRec  af_telu_nonbase_uniranges[] =
+  const AF_Script_UniRangeRec  af_none_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0C00UL,  0x0C00UL ),
-    AF_UNIRANGE_REC(  0x0C3EUL,  0x0C40UL ),
-    AF_UNIRANGE_REC(  0x0C46UL,  0x0C56UL ),
-    AF_UNIRANGE_REC(  0x0C62UL,  0x0C63UL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC( 0, 0 )
   };
 
 
-  const AF_Script_UniRangeRec  af_thai_uniranges[] =
+  const AF_Script_UniRangeRec  af_sinh_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0E00UL,  0x0E7FUL ),  /* Thai */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0D80,  0x0DFF ),  /* Sinhala */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
-  const AF_Script_UniRangeRec  af_thai_nonbase_uniranges[] =
+  const AF_Script_UniRangeRec  af_sinh_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0E31UL,  0x0E31UL ),
-    AF_UNIRANGE_REC(  0x0E34UL,  0x0E3AUL ),
-    AF_UNIRANGE_REC(  0x0E47UL,  0x0E4EUL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0DCA,  0x0DCA ),
+    AF_UNIRANGE_REC(  0x0DD2,  0x0DD6 ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
-#ifdef AF_CONFIG_OPTION_INDIC
-
-  const AF_Script_UniRangeRec  af_gujr_uniranges[] =
+  const AF_Script_UniRangeRec  af_taml_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0A80UL,  0x0AFFUL ),  /* Gujarati */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0B80,  0x0BFF ),  /* Tamil */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
-  const AF_Script_UniRangeRec  af_gujr_nonbase_uniranges[] =
+  const AF_Script_UniRangeRec  af_taml_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0A81UL,  0x0A82UL ),
-    AF_UNIRANGE_REC(  0x0ABCUL,  0x0ABCUL ),
-    AF_UNIRANGE_REC(  0x0AC1UL,  0x0AC8UL ),
-    AF_UNIRANGE_REC(  0x0ACDUL,  0x0ACDUL ),
-    AF_UNIRANGE_REC(  0x0AE2UL,  0x0AE3UL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0B82,  0x0B82 ),
+    AF_UNIRANGE_REC(  0x0BC0,  0x0BC2 ),
+    AF_UNIRANGE_REC(  0x0BCD,  0x0BCD ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
-  const AF_Script_UniRangeRec  af_guru_uniranges[] =
+  const AF_Script_UniRangeRec  af_telu_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0A00UL,  0x0A7FUL ),  /* Gurmukhi */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0C00,  0x0C7F ),  /* Telugu */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
-  const AF_Script_UniRangeRec  af_guru_nonbase_uniranges[] =
+  const AF_Script_UniRangeRec  af_telu_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0A01UL,  0x0A02UL ),
-    AF_UNIRANGE_REC(  0x0A3CUL,  0x0A3EUL ),
-    AF_UNIRANGE_REC(  0x0A41UL,  0x0A51UL ),
-    AF_UNIRANGE_REC(  0x0A70UL,  0x0A71UL ),
-    AF_UNIRANGE_REC(  0x0A75UL,  0x0A75UL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0C00,  0x0C00 ),
+    AF_UNIRANGE_REC(  0x0C3E,  0x0C40 ),
+    AF_UNIRANGE_REC(  0x0C46,  0x0C56 ),
+    AF_UNIRANGE_REC(  0x0C62,  0x0C63 ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
-  const AF_Script_UniRangeRec  af_limb_uniranges[] =
+  const AF_Script_UniRangeRec  af_thai_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x1900UL,  0x194FUL ),  /* Limbu */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0E00,  0x0E7F ),  /* Thai */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
-  const AF_Script_UniRangeRec  af_limb_nonbase_uniranges[] =
+  const AF_Script_UniRangeRec  af_thai_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x1920UL,  0x1922UL ),
-    AF_UNIRANGE_REC(  0x1927UL,  0x1934UL ),
-    AF_UNIRANGE_REC(  0x1937UL,  0x193BUL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0E31,  0x0E31 ),
+    AF_UNIRANGE_REC(  0x0E34,  0x0E3A ),
+    AF_UNIRANGE_REC(  0x0E47,  0x0E4E ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
-  const AF_Script_UniRangeRec  af_mlym_uniranges[] =
+#ifdef AF_CONFIG_OPTION_INDIC
+
+  const AF_Script_UniRangeRec  af_limb_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0D00UL,  0x0D7FUL ),  /* Malayalam */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x1900,  0x194F ),  /* Limbu */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
-  const AF_Script_UniRangeRec  af_mlym_nonbase_uniranges[] =
+  const AF_Script_UniRangeRec  af_limb_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0D01UL,  0x0D01UL ),
-    AF_UNIRANGE_REC(  0x0D4DUL,  0x0D4EUL ),
-    AF_UNIRANGE_REC(  0x0D62UL,  0x0D63UL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x1920,  0x1922 ),
+    AF_UNIRANGE_REC(  0x1927,  0x1934 ),
+    AF_UNIRANGE_REC(  0x1937,  0x193B ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
   const AF_Script_UniRangeRec  af_orya_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0B00UL,  0x0B7FUL ),  /* Oriya */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0B00,  0x0B7F ),  /* Oriya */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_orya_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0B01UL,  0x0B02UL ),
-    AF_UNIRANGE_REC(  0x0B3CUL,  0x0B3CUL ),
-    AF_UNIRANGE_REC(  0x0B3FUL,  0x0B3FUL ),
-    AF_UNIRANGE_REC(  0x0B41UL,  0x0B44UL ),
-    AF_UNIRANGE_REC(  0x0B4DUL,  0x0B56UL ),
-    AF_UNIRANGE_REC(  0x0B62UL,  0x0B63UL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0B01,  0x0B02 ),
+    AF_UNIRANGE_REC(  0x0B3C,  0x0B3C ),
+    AF_UNIRANGE_REC(  0x0B3F,  0x0B3F ),
+    AF_UNIRANGE_REC(  0x0B41,  0x0B44 ),
+    AF_UNIRANGE_REC(  0x0B4D,  0x0B56 ),
+    AF_UNIRANGE_REC(  0x0B62,  0x0B63 ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
-  const AF_Script_UniRangeRec  af_sinh_uniranges[] =
-  {
-    AF_UNIRANGE_REC(  0x0D80UL,  0x0DFFUL ),  /* Sinhala */
-    AF_UNIRANGE_REC(       0UL,       0UL )
-  };
-
-  const AF_Script_UniRangeRec  af_sinh_nonbase_uniranges[] =
-  {
-    AF_UNIRANGE_REC(  0x0DCAUL,  0x0DCAUL ),
-    AF_UNIRANGE_REC(  0x0DD2UL,  0x0DD6UL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
-  };
-
-
   const AF_Script_UniRangeRec  af_sund_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x1B80UL,  0x1BBFUL ),  /* Sundanese            */
-    AF_UNIRANGE_REC(  0x1CC0UL,  0x1CCFUL ),  /* Sundanese Supplement */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x1B80,  0x1BBF ),  /* Sundanese            */
+    AF_UNIRANGE_REC(  0x1CC0,  0x1CCF ),  /* Sundanese Supplement */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_sund_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x1B80UL,  0x1B82UL ),
-    AF_UNIRANGE_REC(  0x1BA1UL,  0x1BADUL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x1B80,  0x1B82 ),
+    AF_UNIRANGE_REC(  0x1BA1,  0x1BAD ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
   const AF_Script_UniRangeRec  af_sylo_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0xA800UL,  0xA82FUL ),  /* Syloti Nagri */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0xA800,  0xA82F ),  /* Syloti Nagri */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_sylo_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0xA802UL,  0xA802UL ),
-    AF_UNIRANGE_REC(  0xA806UL,  0xA806UL ),
-    AF_UNIRANGE_REC(  0xA80BUL,  0xA80BUL ),
-    AF_UNIRANGE_REC(  0xA825UL,  0xA826UL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0xA802,  0xA802 ),
+    AF_UNIRANGE_REC(  0xA806,  0xA806 ),
+    AF_UNIRANGE_REC(  0xA80B,  0xA80B ),
+    AF_UNIRANGE_REC(  0xA825,  0xA826 ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 
-  const AF_Script_UniRangeRec  af_taml_uniranges[] =
-  {
-    AF_UNIRANGE_REC(  0x0B80UL,  0x0BFFUL ),  /* Tamil */
-    AF_UNIRANGE_REC(       0UL,       0UL )
-  };
-
-  const AF_Script_UniRangeRec  af_taml_nonbase_uniranges[] =
-  {
-    AF_UNIRANGE_REC(  0x0B82UL,  0x0B82UL ),
-    AF_UNIRANGE_REC(  0x0BC0UL,  0x0BC2UL ),
-    AF_UNIRANGE_REC(  0x0BCDUL,  0x0BCDUL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
-  };
-
-
   const AF_Script_UniRangeRec  af_tibt_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0F00UL,  0x0FFFUL ),  /* Tibetan */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0F00,  0x0FFF ),  /* Tibetan */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_tibt_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x0F18UL,  0x0F19UL ),
-    AF_UNIRANGE_REC(  0x0F35UL,  0x0F35UL ),
-    AF_UNIRANGE_REC(  0x0F37UL,  0x0F37UL ),
-    AF_UNIRANGE_REC(  0x0F39UL,  0x0F39UL ),
-    AF_UNIRANGE_REC(  0x0F3EUL,  0x0F3FUL ),
-    AF_UNIRANGE_REC(  0x0F71UL,  0x0F7EUL ),
-    AF_UNIRANGE_REC(  0x0F80UL,  0x0F84UL ),
-    AF_UNIRANGE_REC(  0x0F86UL,  0x0F87UL ),
-    AF_UNIRANGE_REC(  0x0F8DUL,  0x0FBCUL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x0F18,  0x0F19 ),
+    AF_UNIRANGE_REC(  0x0F35,  0x0F35 ),
+    AF_UNIRANGE_REC(  0x0F37,  0x0F37 ),
+    AF_UNIRANGE_REC(  0x0F39,  0x0F39 ),
+    AF_UNIRANGE_REC(  0x0F3E,  0x0F3F ),
+    AF_UNIRANGE_REC(  0x0F71,  0x0F7E ),
+    AF_UNIRANGE_REC(  0x0F80,  0x0F84 ),
+    AF_UNIRANGE_REC(  0x0F86,  0x0F87 ),
+    AF_UNIRANGE_REC(  0x0F8D,  0x0FBC ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 #endif /* !AF_CONFIG_OPTION_INDIC */
@@ -594,44 +669,44 @@
 
   const AF_Script_UniRangeRec  af_hani_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x1100UL,  0x11FFUL ),  /* Hangul Jamo                             */
-    AF_UNIRANGE_REC(  0x2E80UL,  0x2EFFUL ),  /* CJK Radicals Supplement                 */
-    AF_UNIRANGE_REC(  0x2F00UL,  0x2FDFUL ),  /* Kangxi Radicals                         */
-    AF_UNIRANGE_REC(  0x2FF0UL,  0x2FFFUL ),  /* Ideographic Description Characters      */
-    AF_UNIRANGE_REC(  0x3000UL,  0x303FUL ),  /* CJK Symbols and Punctuation             */
-    AF_UNIRANGE_REC(  0x3040UL,  0x309FUL ),  /* Hiragana                                */
-    AF_UNIRANGE_REC(  0x30A0UL,  0x30FFUL ),  /* Katakana                                */
-    AF_UNIRANGE_REC(  0x3100UL,  0x312FUL ),  /* Bopomofo                                */
-    AF_UNIRANGE_REC(  0x3130UL,  0x318FUL ),  /* Hangul Compatibility Jamo               */
-    AF_UNIRANGE_REC(  0x3190UL,  0x319FUL ),  /* Kanbun                                  */
-    AF_UNIRANGE_REC(  0x31A0UL,  0x31BFUL ),  /* Bopomofo Extended                       */
-    AF_UNIRANGE_REC(  0x31C0UL,  0x31EFUL ),  /* CJK Strokes                             */
-    AF_UNIRANGE_REC(  0x31F0UL,  0x31FFUL ),  /* Katakana Phonetic Extensions            */
-    AF_UNIRANGE_REC(  0x3300UL,  0x33FFUL ),  /* CJK Compatibility                       */
-    AF_UNIRANGE_REC(  0x3400UL,  0x4DBFUL ),  /* CJK Unified Ideographs Extension A      */
-    AF_UNIRANGE_REC(  0x4DC0UL,  0x4DFFUL ),  /* Yijing Hexagram Symbols                 */
-    AF_UNIRANGE_REC(  0x4E00UL,  0x9FFFUL ),  /* CJK Unified Ideographs                  */
-    AF_UNIRANGE_REC(  0xA960UL,  0xA97FUL ),  /* Hangul Jamo Extended-A                  */
-    AF_UNIRANGE_REC(  0xAC00UL,  0xD7AFUL ),  /* Hangul Syllables                        */
-    AF_UNIRANGE_REC(  0xD7B0UL,  0xD7FFUL ),  /* Hangul Jamo Extended-B                  */
-    AF_UNIRANGE_REC(  0xF900UL,  0xFAFFUL ),  /* CJK Compatibility Ideographs            */
-    AF_UNIRANGE_REC(  0xFE10UL,  0xFE1FUL ),  /* Vertical forms                          */
-    AF_UNIRANGE_REC(  0xFE30UL,  0xFE4FUL ),  /* CJK Compatibility Forms                 */
-    AF_UNIRANGE_REC(  0xFF00UL,  0xFFEFUL ),  /* Halfwidth and Fullwidth Forms           */
-    AF_UNIRANGE_REC( 0x1B000UL, 0x1B0FFUL ),  /* Kana Supplement                         */
-    AF_UNIRANGE_REC( 0x1D300UL, 0x1D35FUL ),  /* Tai Xuan Hing Symbols                   */
-    AF_UNIRANGE_REC( 0x20000UL, 0x2A6DFUL ),  /* CJK Unified Ideographs Extension B      */
-    AF_UNIRANGE_REC( 0x2A700UL, 0x2B73FUL ),  /* CJK Unified Ideographs Extension C      */
-    AF_UNIRANGE_REC( 0x2B740UL, 0x2B81FUL ),  /* CJK Unified Ideographs Extension D      */
-    AF_UNIRANGE_REC( 0x2F800UL, 0x2FA1FUL ),  /* CJK Compatibility Ideographs Supplement */
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x1100,  0x11FF ),  /* Hangul Jamo                             */
+    AF_UNIRANGE_REC(  0x2E80,  0x2EFF ),  /* CJK Radicals Supplement                 */
+    AF_UNIRANGE_REC(  0x2F00,  0x2FDF ),  /* Kangxi Radicals                         */
+    AF_UNIRANGE_REC(  0x2FF0,  0x2FFF ),  /* Ideographic Description Characters      */
+    AF_UNIRANGE_REC(  0x3000,  0x303F ),  /* CJK Symbols and Punctuation             */
+    AF_UNIRANGE_REC(  0x3040,  0x309F ),  /* Hiragana                                */
+    AF_UNIRANGE_REC(  0x30A0,  0x30FF ),  /* Katakana                                */
+    AF_UNIRANGE_REC(  0x3100,  0x312F ),  /* Bopomofo                                */
+    AF_UNIRANGE_REC(  0x3130,  0x318F ),  /* Hangul Compatibility Jamo               */
+    AF_UNIRANGE_REC(  0x3190,  0x319F ),  /* Kanbun                                  */
+    AF_UNIRANGE_REC(  0x31A0,  0x31BF ),  /* Bopomofo Extended                       */
+    AF_UNIRANGE_REC(  0x31C0,  0x31EF ),  /* CJK Strokes                             */
+    AF_UNIRANGE_REC(  0x31F0,  0x31FF ),  /* Katakana Phonetic Extensions            */
+    AF_UNIRANGE_REC(  0x3300,  0x33FF ),  /* CJK Compatibility                       */
+    AF_UNIRANGE_REC(  0x3400,  0x4DBF ),  /* CJK Unified Ideographs Extension A      */
+    AF_UNIRANGE_REC(  0x4DC0,  0x4DFF ),  /* Yijing Hexagram Symbols                 */
+    AF_UNIRANGE_REC(  0x4E00,  0x9FFF ),  /* CJK Unified Ideographs                  */
+    AF_UNIRANGE_REC(  0xA960,  0xA97F ),  /* Hangul Jamo Extended-A                  */
+    AF_UNIRANGE_REC(  0xAC00,  0xD7AF ),  /* Hangul Syllables                        */
+    AF_UNIRANGE_REC(  0xD7B0,  0xD7FF ),  /* Hangul Jamo Extended-B                  */
+    AF_UNIRANGE_REC(  0xF900,  0xFAFF ),  /* CJK Compatibility Ideographs            */
+    AF_UNIRANGE_REC(  0xFE10,  0xFE1F ),  /* Vertical forms                          */
+    AF_UNIRANGE_REC(  0xFE30,  0xFE4F ),  /* CJK Compatibility Forms                 */
+    AF_UNIRANGE_REC(  0xFF00,  0xFFEF ),  /* Halfwidth and Fullwidth Forms           */
+    AF_UNIRANGE_REC( 0x1B000, 0x1B0FF ),  /* Kana Supplement                         */
+    AF_UNIRANGE_REC( 0x1D300, 0x1D35F ),  /* Tai Xuan Hing Symbols                   */
+    AF_UNIRANGE_REC( 0x20000, 0x2A6DF ),  /* CJK Unified Ideographs Extension B      */
+    AF_UNIRANGE_REC( 0x2A700, 0x2B73F ),  /* CJK Unified Ideographs Extension C      */
+    AF_UNIRANGE_REC( 0x2B740, 0x2B81F ),  /* CJK Unified Ideographs Extension D      */
+    AF_UNIRANGE_REC( 0x2F800, 0x2FA1F ),  /* CJK Compatibility Ideographs Supplement */
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
   const AF_Script_UniRangeRec  af_hani_nonbase_uniranges[] =
   {
-    AF_UNIRANGE_REC(  0x302AUL,  0x302FUL ),
-    AF_UNIRANGE_REC(  0x3190UL,  0x319FUL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
+    AF_UNIRANGE_REC(  0x302A,  0x302F ),
+    AF_UNIRANGE_REC(  0x3190,  0x319F ),
+    AF_UNIRANGE_REC(       0,       0 )
   };
 
 #endif /* !AF_CONFIG_OPTION_CJK */

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afscript.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afscript.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afscript.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -36,13 +36,25 @@
           HINTING_BOTTOM_TO_TOP,
           "\xD9\x84 \xD8\xAD \xD9\x80" ) /* ل ح ـ */
 
+  SCRIPT( armn, ARMN,
+          "Armenian",
+          HB_SCRIPT_ARMENIAN,
+          HINTING_BOTTOM_TO_TOP,
+          "\xD6\x85 \xD5\x95" ) /* օ Օ */
+
   /* there are no simple forms for letters; we thus use two digit shapes */
   SCRIPT( beng, BENG,
           "Bengali",
           HB_SCRIPT_BENGALI,
           HINTING_TOP_TO_BOTTOM,
-          "\xE0\xA7\xA6 \xE0\xA7\xAA" ) /* ০ ৪*/
+          "\xE0\xA7\xA6 \xE0\xA7\xAA" ) /* ০ ৪ */
 
+  SCRIPT( cher, CHER,
+          "Cherokee",
+          HB_SCRIPT_CHEROKEE,
+          HINTING_BOTTOM_TO_TOP,
+          "\xE1\x8E\xA4 \xE1\x8F\x85 \xEA\xAE\x95" ) /* Ꭴ Ꮕ ꮕ */
+
   SCRIPT( cyrl, CYRL,
           "Cyrillic",
           HB_SCRIPT_CYRILLIC,
@@ -55,6 +67,24 @@
           HINTING_TOP_TO_BOTTOM,
           "\xE0\xA4\xA0 \xE0\xA4\xB5 \xE0\xA4\x9F" ) /* ठ व ट */
 
+  SCRIPT( ethi, ETHI,
+          "Ethiopic",
+          HB_SCRIPT_ETHIOPIC,
+          HINTING_BOTTOM_TO_TOP,
+          "\xE1\x8B\x90" ) /* ዐ */
+
+  SCRIPT( geor, GEOR,
+          "Georgian (Mkhedruli)",
+          HB_SCRIPT_GEORGIAN,
+          HINTING_BOTTOM_TO_TOP,
+          "\xE1\x83\x98 \xE1\x83\x94 \xE1\x83\x90" ) /* ი ე ა */
+
+  SCRIPT( geok, GEOK,
+          "Georgian (Khutsuri)",
+          HB_SCRIPT_INVALID,
+          HINTING_BOTTOM_TO_TOP,
+          "\xE1\x82\xB6 \xE1\x82\xB1 \xE2\xB4\x99" ) /* Ⴖ Ⴑ ⴙ */
+
   SCRIPT( grek, GREK,
           "Greek",
           HB_SCRIPT_GREEK,
@@ -61,6 +91,18 @@
           HINTING_BOTTOM_TO_TOP,
           "\xCE\xBF \xCE\x9F" ) /* ο Ο */
 
+  SCRIPT( gujr, GUJR,
+          "Gujarati",
+          HB_SCRIPT_GUJARATI,
+          HINTING_BOTTOM_TO_TOP,
+          "\xE0\xAA\x9F \xE0\xAB\xA6" ) /* ટ ૦ */
+
+  SCRIPT( guru, GURU,
+          "Gurmukhi",
+          HB_SCRIPT_GURMUKHI,
+          HINTING_TOP_TO_BOTTOM,
+          "\xE0\xA8\xA0 \xE0\xA8\xB0 \xE0\xA9\xA6" ) /* ਠ ਰ ੦ */
+
   SCRIPT( hebr, HEBR,
           "Hebrew",
           HB_SCRIPT_HEBREW,
@@ -111,6 +153,12 @@
           HINTING_BOTTOM_TO_TOP,
           "\xE1\xB5\x92 \xE1\xB4\xBC \xE2\x81\xB0" ) /* ᵒ ᴼ ⁰ */
 
+  SCRIPT( mlym, MLYM,
+          "Malayalam",
+          HB_SCRIPT_MALAYALAM,
+          HINTING_BOTTOM_TO_TOP,
+          "\xE0\xB4\xA0 \xE0\xB4\xB1" ) /* ഠ റ */
+
   SCRIPT( mymr, MYMR,
           "Myanmar",
           HB_SCRIPT_MYANMAR,
@@ -123,6 +171,19 @@
           HINTING_BOTTOM_TO_TOP,
           "" )
 
+  SCRIPT( sinh, SINH,
+          "Sinhala",
+          HB_SCRIPT_SINHALA,
+          HINTING_BOTTOM_TO_TOP,
+          "\xE0\xB6\xA7" ) /* ට */
+
+  /* only digit zero has a simple (round) shape in the Tamil script */
+  SCRIPT( taml, TAML,
+          "Tamil",
+          HB_SCRIPT_TAMIL,
+          HINTING_BOTTOM_TO_TOP,
+          "\xE0\xAF\xA6" ) /* ௦ */
+
   /* there are no simple forms for letters; we thus use two digit shapes */
   SCRIPT( telu, TELU,
           "Telugu",
@@ -138,18 +199,6 @@
 
 #ifdef AF_CONFIG_OPTION_INDIC
 
-  SCRIPT( gujr, GUJR,
-          "Gujarati",
-          HB_SCRIPT_GUJARATI,
-          HINTING_BOTTOM_TO_TOP,
-          "o" ) /* XXX */
-
-  SCRIPT( guru, GURU,
-          "Gurmukhi",
-          HB_SCRIPT_GURMUKHI,
-          HINTING_BOTTOM_TO_TOP,
-          "o" ) /* XXX */
-
   SCRIPT( limb, LIMB,
           "Limbu",
           HB_SCRIPT_LIMBU,
@@ -156,12 +205,6 @@
           HINTING_BOTTOM_TO_TOP,
           "o" ) /* XXX */
 
-  SCRIPT( mlym, MLYM,
-          "Malayalam",
-          HB_SCRIPT_MALAYALAM,
-          HINTING_BOTTOM_TO_TOP,
-          "o" ) /* XXX */
-
   SCRIPT( orya, ORYA,
           "Oriya",
           HB_SCRIPT_ORIYA,
@@ -168,12 +211,6 @@
           HINTING_BOTTOM_TO_TOP,
           "o" ) /* XXX */
 
-  SCRIPT( sinh, SINH,
-          "Sinhala",
-          HB_SCRIPT_SINHALA,
-          HINTING_BOTTOM_TO_TOP,
-          "o" ) /* XXX */
-
   SCRIPT( sund, SUND,
           "Sundanese",
           HB_SCRIPT_SUNDANESE,
@@ -186,12 +223,6 @@
           HINTING_BOTTOM_TO_TOP,
           "o" ) /* XXX */
 
-  SCRIPT( taml, TAML,
-          "Tamil",
-          HB_SCRIPT_TAMIL,
-          HINTING_BOTTOM_TO_TOP,
-          "o" ) /* XXX */
-
   SCRIPT( tibt, TIBT,
           "Tibetan",
           HB_SCRIPT_TIBETAN,

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afstyles.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afstyles.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/autofit/afstyles.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -52,10 +52,10 @@
 #undef  META_STYLE_LATIN
 #define META_STYLE_LATIN( s, S, ds )                     \
           STYLE_LATIN( s, S, c2cp, C2CP, ds,             \
-                       "petite capticals from capitals", \
+                       "petite capitals from capitals", \
                        PETITE_CAPITALS_FROM_CAPITALS )   \
           STYLE_LATIN( s, S, c2sc, C2SC, ds,             \
-                       "small capticals from capitals",  \
+                       "small capitals from capitals",  \
                        SMALL_CAPITALS_FROM_CAPITALS )    \
           STYLE_LATIN( s, S, ordn, ORDN, ds,             \
                        "ordinals",                       \
@@ -90,6 +90,13 @@
          AF_BLUE_STRINGSET_ARAB,
          AF_COVERAGE_DEFAULT )
 
+  STYLE( armn_dflt, ARMN_DFLT,
+         "Armenian default style",
+         AF_WRITING_SYSTEM_LATIN,
+         AF_SCRIPT_ARMN,
+         AF_BLUE_STRINGSET_ARMN,
+         AF_COVERAGE_DEFAULT )
+
   STYLE( beng_dflt, BENG_DFLT,
          "Bengali default style",
          AF_WRITING_SYSTEM_LATIN,
@@ -97,6 +104,13 @@
          AF_BLUE_STRINGSET_BENG,
          AF_COVERAGE_DEFAULT )
 
+  STYLE( cher_dflt, CHER_DFLT,
+         "Cherokee default style",
+         AF_WRITING_SYSTEM_LATIN,
+         AF_SCRIPT_CHER,
+         AF_BLUE_STRINGSET_CHER,
+         AF_COVERAGE_DEFAULT )
+
   META_STYLE_LATIN( cyrl, CYRL, "Cyrillic" )
 
   STYLE( deva_dflt, DEVA_DFLT,
@@ -106,8 +120,43 @@
          AF_BLUE_STRINGSET_DEVA,
          AF_COVERAGE_DEFAULT )
 
+  STYLE( ethi_dflt, ETHI_DFLT,
+         "Ethiopic default style",
+         AF_WRITING_SYSTEM_LATIN,
+         AF_SCRIPT_ETHI,
+         AF_BLUE_STRINGSET_ETHI,
+         AF_COVERAGE_DEFAULT )
+
+  STYLE( geor_dflt, GEOR_DFLT,
+         "Georgian (Mkhedruli) default style",
+         AF_WRITING_SYSTEM_LATIN,
+         AF_SCRIPT_GEOR,
+         AF_BLUE_STRINGSET_GEOR,
+         AF_COVERAGE_DEFAULT )
+
+  STYLE( geok_dflt, GEOK_DFLT,
+         "Georgian (Khutsuri) default style",
+         AF_WRITING_SYSTEM_LATIN,
+         AF_SCRIPT_GEOK,
+         AF_BLUE_STRINGSET_GEOK,
+         AF_COVERAGE_DEFAULT )
+
   META_STYLE_LATIN( grek, GREK, "Greek" )
 
+  STYLE( gujr_dflt, GUJR_DFLT,
+         "Gujarati default style",
+         AF_WRITING_SYSTEM_LATIN,
+         AF_SCRIPT_GUJR,
+         AF_BLUE_STRINGSET_GUJR,
+         AF_COVERAGE_DEFAULT )
+
+  STYLE( guru_dflt, GURU_DFLT,
+         "Gurmukhi default style",
+         AF_WRITING_SYSTEM_LATIN,
+         AF_SCRIPT_GURU,
+         AF_BLUE_STRINGSET_GURU,
+         AF_COVERAGE_DEFAULT )
+
   STYLE( hebr_dflt, HEBR_DFLT,
          "Hebrew default style",
          AF_WRITING_SYSTEM_LATIN,
@@ -168,6 +217,13 @@
          AF_COVERAGE_DEFAULT )
 #endif
 
+  STYLE( mlym_dflt, MLYM_DFLT,
+         "Malayalam default style",
+         AF_WRITING_SYSTEM_LATIN,
+         AF_SCRIPT_MLYM,
+         AF_BLUE_STRINGSET_MLYM,
+         AF_COVERAGE_DEFAULT )
+
   STYLE( mymr_dflt, MYMR_DFLT,
          "Myanmar default style",
          AF_WRITING_SYSTEM_LATIN,
@@ -179,9 +235,23 @@
          "no style",
          AF_WRITING_SYSTEM_DUMMY,
          AF_SCRIPT_NONE,
-         (AF_Blue_Stringset)0,
+         AF_BLUE_STRINGSET_NONE,
          AF_COVERAGE_DEFAULT )
 
+  STYLE( sinh_dflt, SINH_DFLT,
+         "Sinhala default style",
+         AF_WRITING_SYSTEM_LATIN,
+         AF_SCRIPT_SINH,
+         AF_BLUE_STRINGSET_SINH,
+         AF_COVERAGE_DEFAULT )
+
+  STYLE( taml_dflt, TAML_DFLT,
+         "Tamil default style",
+         AF_WRITING_SYSTEM_LATIN,
+         AF_SCRIPT_TAML,
+         AF_BLUE_STRINGSET_TAML,
+         AF_COVERAGE_DEFAULT )
+
   STYLE( telu_dflt, TELU_DFLT,
          "Telugu default style",
          AF_WRITING_SYSTEM_LATIN,
@@ -208,15 +278,10 @@
                  (AF_Blue_Stringset)0,    \
                  AF_COVERAGE_DEFAULT )
 
-  STYLE_DEFAULT_INDIC( gujr, GUJR, "Gujarati" )
-  STYLE_DEFAULT_INDIC( guru, GURU, "Gurmukhi" )
   STYLE_DEFAULT_INDIC( limb, LIMB, "Limbu" )
-  STYLE_DEFAULT_INDIC( mlym, MLYM, "Malayalam" )
   STYLE_DEFAULT_INDIC( orya, ORYA, "Oriya" )
-  STYLE_DEFAULT_INDIC( sinh, SINH, "Sinhala" )
   STYLE_DEFAULT_INDIC( sund, SUND, "Sundanese" )
   STYLE_DEFAULT_INDIC( sylo, SYLO, "Syloti Nagri" )
-  STYLE_DEFAULT_INDIC( taml, TAML, "Tamil" )
   STYLE_DEFAULT_INDIC( tibt, TIBT, "Tibetan" )
 
 #endif /* AF_CONFIG_OPTION_INDIC */

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aftypes.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aftypes.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/autofit/aftypes.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -22,7 +22,7 @@
    *  Its main feature is the ability to differentiate between different
    *  writing systems and scripts in order to apply specific rules.
    *
-   *  The code has also been compartmentized into several entities that
+   *  The code has also been compartmentalized into several entities that
    *  should make algorithmic experimentation easier than with the old
    *  code.
    *

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/base/ftadvanc.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/base/ftadvanc.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/base/ftadvanc.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -159,8 +159,8 @@
 
       /* scale from 26.6 to 16.16 */
       padvances[nn] = ( flags & FT_LOAD_VERTICAL_LAYOUT )
-                      ? face->glyph->advance.y << 10
-                      : face->glyph->advance.x << 10;
+                      ? face->glyph->advance.y * 1024
+                      : face->glyph->advance.x * 1024;
     }
 
     return error;

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/base/ftbitmap.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/base/ftbitmap.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/base/ftbitmap.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -351,7 +351,7 @@
     }
 
     /* for each row */
-    for ( y = 0; y < bitmap->rows ; y++ )
+    for ( y = 0; y < bitmap->rows; y++ )
     {
       /*
        * Horizontally:

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/base/fthash.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/base/fthash.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/base/fthash.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -41,6 +41,7 @@
 
 #include <ft2build.h>
 #include FT_INTERNAL_HASH_H
+#include FT_INTERNAL_MEMORY_H
 
 
 #define INITIAL_HT_SIZE  241

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/base/ftmac.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/base/ftmac.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/base/ftmac.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -228,7 +228,7 @@
 
 
     if ( !fontName || !face_index )
-      return FT_THROW( Invalid_Argument) ;
+      return FT_THROW( Invalid_Argument);
 
     err = FT_GetFileRef_From_Mac_ATS_Name( fontName, &ref, face_index );
     if ( err )

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/base/ftobjs.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/base/ftobjs.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/base/ftobjs.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1418,7 +1418,7 @@
 
   /* Type 1 and CID-keyed font drivers should recognize sfnt-wrapped */
   /* format too.  Here, since we can't expect that the TrueType font */
-  /* driver is loaded unconditially, we must parse the font by       */
+  /* driver is loaded unconditionally, we must parse the font by     */
   /* ourselves.  We are only interested in the name of the table and */
   /* the offset.                                                     */
 
@@ -1483,6 +1483,7 @@
       if ( face_index >= 0 && pstable_index == face_index )
         return FT_Err_Ok;
     }
+
     return FT_THROW( Table_Missing );
   }
 
@@ -1520,6 +1521,19 @@
     if ( error )
       goto Exit;
 
+    if ( offset > stream->size )
+    {
+      FT_TRACE2(( "open_face_PS_from_sfnt_stream: invalid table offset\n" ));
+      error = FT_THROW( Invalid_Table );
+      goto Exit;
+    }
+    else if ( length > stream->size - offset )
+    {
+      FT_TRACE2(( "open_face_PS_from_sfnt_stream: invalid table length\n" ));
+      error = FT_THROW( Invalid_Table );
+      goto Exit;
+    }
+
     error = FT_Stream_Seek( stream, pos + offset );
     if ( error )
       goto Exit;
@@ -1528,7 +1542,8 @@
       goto Exit;
 
     error = FT_Stream_Read( stream, (FT_Byte *)sfnt_ps, length );
-    if ( error ) {
+    if ( error )
+    {
       FT_FREE( sfnt_ps );
       goto Exit;
     }
@@ -1776,8 +1791,8 @@
     FT_Long    face_index_in_resource = 0;
 
 
-    if ( face_index == -1 )
-      face_index = 0;
+    if ( face_index < 0 )
+      face_index = -face_index - 1;
     if ( face_index >= resource_cnt )
       return FT_THROW( Cannot_Open_Resource );
 
@@ -4308,7 +4323,7 @@
   {
     FT_Error   error;
     FT_Memory  memory;
-    FT_Module  module;
+    FT_Module  module = NULL;
     FT_UInt    nn;
 
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/base/ftoutln.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/base/ftoutln.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/base/ftoutln.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -42,7 +42,7 @@
 
 
   static
-  const FT_Outline  null_outline = { 0, 0, 0, 0, 0, 0 };
+  const FT_Outline  null_outline = { 0, 0, NULL, NULL, NULL, 0 };
 
 
   /* documentation is in ftoutln.h */

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/base/ftrfork.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/base/ftrfork.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/base/ftrfork.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -403,7 +403,7 @@
         errors[i] = FT_Err_Ok;
 
       if ( errors[i] )
-        continue ;
+        continue;
 
       errors[i] = (FT_RACCESS_GUESS_TABLE_GET[i].func)( library,
                                                  stream, base_name,

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/base/ftstream.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/base/ftstream.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/base/ftstream.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -778,7 +778,7 @@
 
       case ft_frame_short_be:
       case ft_frame_ushort_be:  /* read a 2-byte big-endian short */
-        value = FT_NEXT_USHORT( cursor) ;
+        value = FT_NEXT_USHORT( cursor );
         sign_shift = 16;
         break;
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/base/md5.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/base/md5.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/base/md5.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -63,12 +63,19 @@
 	(a) += (b);
 
 /*
- * SET reads 4 input bytes in little-endian byte order and stores them
- * in a properly aligned word in host byte order.
+ * SET reads 4 input bytes in little-endian byte order and stores them in a
+ * properly aligned word in host byte order.
  *
- * The check for little-endian architectures that tolerate unaligned
- * memory accesses is just an optimization.  Nothing will break if it
- * doesn't work.
+ * The check for little-endian architectures that tolerate unaligned memory
+ * accesses is just an optimization.  Nothing will break if it fails to detect
+ * a suitable architecture.
+ *
+ * Unfortunately, this optimization may be a C strict aliasing rules violation
+ * if the caller's data buffer has effective type that cannot be aliased by
+ * MD5_u32plus.  In practice, this problem may occur if these MD5 routines are
+ * inlined into a calling function, or with future and dangerously advanced
+ * link-time optimizations.  For the time being, keeping these MD5 routines in
+ * their own translation unit avoids the problem.
  */
 #if defined(__i386__) || defined(__x86_64__) || defined(__vax__)
 #define SET(n) \
@@ -87,8 +94,8 @@
 #endif
 
 /*
- * This processes one or more 64-byte data blocks, but does NOT update
- * the bit counters.  There are no alignment requirements.
+ * This processes one or more 64-byte data blocks, but does NOT update the bit
+ * counters.  There are no alignment requirements.
  */
 static const void *body(MD5_CTX *ctx, const void *data, unsigned long size)
 {
@@ -242,6 +249,12 @@
 	memcpy(ctx->buffer, data, size);
 }
 
+#define OUT(dst, src) \
+	(dst)[0] = (unsigned char)(src); \
+	(dst)[1] = (unsigned char)((src) >> 8); \
+	(dst)[2] = (unsigned char)((src) >> 16); \
+	(dst)[3] = (unsigned char)((src) >> 24);
+
 void MD5_Final(unsigned char *result, MD5_CTX *ctx)
 {
 	unsigned long used, available;
@@ -262,33 +275,15 @@
 	memset(&ctx->buffer[used], 0, available - 8);
 
 	ctx->lo <<= 3;
-	ctx->buffer[56] = ctx->lo;
-	ctx->buffer[57] = ctx->lo >> 8;
-	ctx->buffer[58] = ctx->lo >> 16;
-	ctx->buffer[59] = ctx->lo >> 24;
-	ctx->buffer[60] = ctx->hi;
-	ctx->buffer[61] = ctx->hi >> 8;
-	ctx->buffer[62] = ctx->hi >> 16;
-	ctx->buffer[63] = ctx->hi >> 24;
+	OUT(&ctx->buffer[56], ctx->lo)
+	OUT(&ctx->buffer[60], ctx->hi)
 
 	body(ctx, ctx->buffer, 64);
 
-	result[0] = ctx->a;
-	result[1] = ctx->a >> 8;
-	result[2] = ctx->a >> 16;
-	result[3] = ctx->a >> 24;
-	result[4] = ctx->b;
-	result[5] = ctx->b >> 8;
-	result[6] = ctx->b >> 16;
-	result[7] = ctx->b >> 24;
-	result[8] = ctx->c;
-	result[9] = ctx->c >> 8;
-	result[10] = ctx->c >> 16;
-	result[11] = ctx->c >> 24;
-	result[12] = ctx->d;
-	result[13] = ctx->d >> 8;
-	result[14] = ctx->d >> 16;
-	result[15] = ctx->d >> 24;
+	OUT(&result[0], ctx->a)
+	OUT(&result[4], ctx->b)
+	OUT(&result[8], ctx->c)
+	OUT(&result[12], ctx->d)
 
 	memset(ctx, 0, sizeof(*ctx));
 }

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/bdf/bdflib.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/bdf/bdflib.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/bdf/bdflib.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1127,7 +1127,7 @@
       propid = ft_hash_str_lookup( name, &(font->proptbl) );
     }
 
-    /* Allocate another property if this is overflow. */
+    /* Allocate another property if this is overflowing. */
     if ( font->props_used == font->props_size )
     {
       if ( font->props_size == 0 )
@@ -1976,9 +1976,19 @@
       error = _bdf_list_split( &p->list, (char *)" +", line, linelen );
       if ( error )
         goto Exit;
+
       /* at this point, `p->font' can't be NULL */
       p->cnt = p->font->props_size = _bdf_atoul( p->list.field[1] );
+      /* We need at least 4 bytes per property. */
+      if ( p->cnt > p->size / 4 )
+      {
+        p->font->props_size = 0;
 
+        FT_ERROR(( "_bdf_parse_glyphs: " ERRMSG5, lineno, "STARTPROPERTIES" ));
+        error = FT_THROW( Invalid_Argument );
+        goto Exit;
+      }
+
       if ( FT_NEW_ARRAY( p->font->props, p->cnt ) )
       {
         p->font->props_size = 0;

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftccache.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftccache.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftccache.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -325,7 +325,7 @@
         break;                                                    \
                                                                   \
       _try_done = FTC_Manager_FlushN( _try_manager, _try_count ); \
-      if ( _try_done > 0 && ( list_changed ) )                    \
+      if ( _try_done > 0 && ( list_changed != NULL ) )            \
         *(FT_Bool*)( list_changed ) = TRUE;                       \
                                                                   \
       if ( _try_done == 0 )                                       \

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftccmap.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftccmap.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftccmap.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -259,9 +259,6 @@
       return 0;
     }
 
-    if ( !face_id )
-      return 0;
-
     query.face_id    = face_id;
     query.cmap_index = (FT_UInt)cmap_index;
     query.char_code  = char_code;

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftcmanag.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftcmanag.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftcmanag.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -314,7 +314,7 @@
     FTC_MruNode  mrunode;
 
 
-    if ( !aface || !face_id )
+    if ( !aface )
       return FT_THROW( Invalid_Argument );
 
     *aface = NULL;
@@ -672,7 +672,7 @@
     FT_UInt  nn;
 
 
-    if ( !manager || !face_id )
+    if ( !manager )
       return;
 
     /* this will remove all FTC_SizeNode that correspond to

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftcmru.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftcmru.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/cache/ftcmru.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -185,7 +185,7 @@
         }                                                                   \
         _node = _node->next;                                                \
                                                                             \
-      } while ( _node != _first) ;                                          \
+      } while ( _node != _first);                                           \
     }                                                                       \
                                                                             \
     error = FTC_MruList_New( (list), (key), (FTC_MruNode*)(void*)&(node) ); \

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/cff/cf2error.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/cff/cf2error.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/cff/cf2error.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -70,7 +70,7 @@
    * Upon a function call if the error code is anything other than
    * `FT_Err_Ok', which is guaranteed to be zero, we
    * will return without altering that error.  This will allow the
-   * error to propogate and be handled at the appropriate location in
+   * error to propagate and be handled at the appropriate location in
    * the code.
    *
    * This allows a style of code where the error code is initialized

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/cff/cf2hints.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/cff/cf2hints.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/cff/cf2hints.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -220,7 +220,7 @@
 
     /* character space miter limit threshold */
     CF2_Fixed  miterLimit;
-    /* vertical/horzizontal snap distance in character space */
+    /* vertical/horizontal snap distance in character space */
     CF2_Fixed  snapThreshold;
 
     FT_Vector  offsetStart0;  /* first and second points of first */

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffdrivr.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffdrivr.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffdrivr.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -701,12 +701,14 @@
       FT_UInt*  hinting_engine = (FT_UInt*)value;
 
 
-#ifndef CFF_CONFIG_OPTION_OLD_ENGINE
-      if ( *hinting_engine != FT_CFF_HINTING_ADOBE )
-        error = FT_ERR( Unimplemented_Feature );
-      else
+      if ( *hinting_engine == FT_CFF_HINTING_ADOBE
+#ifdef CFF_CONFIG_OPTION_OLD_ENGINE
+           || *hinting_engine == FT_CFF_HINTING_FREETYPE
 #endif
+         )
         driver->hinting_engine = *hinting_engine;
+      else
+        error = FT_ERR( Unimplemented_Feature );
 
       return error;
     }

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffgload.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffgload.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffgload.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -680,7 +680,7 @@
 #endif /* FT_CONFIG_OPTION_INCREMENTAL */
 
     {
-      CFF_Font  cff  = (CFF_Font)(face->extra.data);
+      CFF_Font  cff = (CFF_Font)(face->extra.data);
 
 
       return cff_index_access_element( &cff->charstrings_index, glyph_index,
@@ -826,7 +826,7 @@
       /* the seac operator must not be nested */
       decoder->seac = TRUE;
       error = cff_decoder_parse_charstrings( decoder, charstring,
-                                             charstring_len );
+                                             charstring_len, 0 );
       decoder->seac = FALSE;
 
       cff_free_glyph_data( face, &charstring, charstring_len );
@@ -856,7 +856,7 @@
       /* the seac operator must not be nested */
       decoder->seac = TRUE;
       error = cff_decoder_parse_charstrings( decoder, charstring,
-                                             charstring_len );
+                                             charstring_len, 0 );
       decoder->seac = FALSE;
 
       cff_free_glyph_data( face, &charstring, charstring_len );
@@ -895,6 +895,9 @@
   /*                                                                       */
   /*    charstring_len  :: The length in bytes of the charstring stream.   */
   /*                                                                       */
+  /*    in_dict         :: Set to 1 if function is called from top or      */
+  /*                       private DICT (needed for Multiple Master CFFs). */
+  /*                                                                       */
   /* <Return>                                                              */
   /*    FreeType error code.  0 means success.                             */
   /*                                                                       */
@@ -901,7 +904,8 @@
   FT_LOCAL_DEF( FT_Error )
   cff_decoder_parse_charstrings( CFF_Decoder*  decoder,
                                  FT_Byte*      charstring_base,
-                                 FT_ULong      charstring_len )
+                                 FT_ULong      charstring_len,
+                                 FT_Bool       in_dict )
   {
     FT_Error           error;
     CFF_Decoder_Zone*  zone;
@@ -913,6 +917,10 @@
     FT_Fixed*          stack;
     FT_Int             charstring_type =
                          decoder->cff->top_font.font_dict.charstring_type;
+    FT_UShort          num_designs =
+                         decoder->cff->top_font.font_dict.num_designs;
+    FT_UShort          num_axes =
+                         decoder->cff->top_font.font_dict.num_axes;
 
     T2_Hints_Funcs     hinter;
 
@@ -1241,6 +1249,44 @@
         if ( op == cff_op_unknown )
           continue;
 
+        /* in Multiple Master CFFs, T2 charstrings can appear in */
+        /* dictionaries, but some operators are prohibited       */
+        if ( in_dict )
+        {
+          switch ( op )
+          {
+          case cff_op_hstem:
+          case cff_op_vstem:
+          case cff_op_vmoveto:
+          case cff_op_rlineto:
+          case cff_op_hlineto:
+          case cff_op_vlineto:
+          case cff_op_rrcurveto:
+          case cff_op_hstemhm:
+          case cff_op_hintmask:
+          case cff_op_cntrmask:
+          case cff_op_rmoveto:
+          case cff_op_hmoveto:
+          case cff_op_vstemhm:
+          case cff_op_rcurveline:
+          case cff_op_rlinecurve:
+          case cff_op_vvcurveto:
+          case cff_op_hhcurveto:
+          case cff_op_vhcurveto:
+          case cff_op_hvcurveto:
+          case cff_op_hflex:
+          case cff_op_flex:
+          case cff_op_hflex1:
+          case cff_op_flex1:
+          case cff_op_callsubr:
+          case cff_op_callgsubr:
+            goto MM_Error;
+
+          default:
+            break;
+          }
+        }
+
         /* check arguments */
         req_args = cff_argument_counts[op];
         if ( req_args & CFF_COUNT_CHECK_WIDTH )
@@ -1278,7 +1324,9 @@
             case cff_op_endchar:
               /* If there is a width specified for endchar, we either have */
               /* 1 argument or 5 arguments.  We like to argue.             */
-              set_width_ok = ( num_args == 5 ) || ( num_args == 1 );
+              set_width_ok = in_dict
+                               ? 0
+                               : ( ( num_args == 5 ) || ( num_args == 1 ) );
               break;
 
             default:
@@ -1971,6 +2019,10 @@
             return error;
 
         case cff_op_endchar:
+          /* in dictionaries, `endchar' simply indicates end of data */
+          if ( in_dict )
+            return error;
+
           FT_TRACE4(( " endchar\n" ));
 
           /* We are going to emulate the seac operator. */
@@ -2198,6 +2250,10 @@
 
             FT_TRACE4(( " put\n" ));
 
+            /* the Type2 specification before version 16-March-2000 */
+            /* didn't give a hard-coded size limit of the temporary */
+            /* storage array; instead, an argument of the           */
+            /* `MultipleMaster' operator set the size               */
             if ( idx >= 0 && idx < CFF_MAX_TRANS_ELEMENTS )
               decoder->buildchar[idx] = val;
           }
@@ -2222,24 +2278,67 @@
         case cff_op_store:
           /* this operator was removed from the Type2 specification */
           /* in version 16-March-2000                               */
+
+          /* since we currently don't handle interpolation of multiple */
+          /* master fonts, this is a no-op                             */
           FT_TRACE4(( " store\n"));
+          break;
 
-          goto Unimplemented;
-
         case cff_op_load:
           /* this operator was removed from the Type2 specification */
           /* in version 16-March-2000                               */
-          FT_TRACE4(( " load\n" ));
+          {
+            FT_Int  reg_idx = (FT_Int)args[0];
+            FT_Int  idx     = (FT_Int)args[1];
+            FT_Int  count   = (FT_Int)args[2];
 
-          goto Unimplemented;
 
+            FT_TRACE4(( " load\n" ));
+
+            /* since we currently don't handle interpolation of multiple */
+            /* master fonts, we store a vector [1 0 0 ...] in the        */
+            /* temporary storage array regardless of the Registry index  */
+            if ( reg_idx >= 0 && reg_idx <= 2             &&
+                 idx >= 0 && idx < CFF_MAX_TRANS_ELEMENTS &&
+                 count >= 0 && count <= num_axes          )
+            {
+              FT_Int  end, i;
+
+
+              end = FT_MIN( idx + count, CFF_MAX_TRANS_ELEMENTS );
+
+              if ( idx < end )
+                decoder->buildchar[idx] = 1 << 16;
+
+              for ( i = idx + 1; i < end; i++ )
+                decoder->buildchar[i] = 0;
+            }
+          }
+          break;
+
         case cff_op_blend:
           /* this operator was removed from the Type2 specification */
           /* in version 16-March-2000                               */
-          FT_TRACE4(( " blend\n" ));
+          {
+            FT_Int  num_results = (FT_Int)( args[0] >> 16 );
 
-          goto Unimplemented;
 
+            FT_TRACE4(( " blend\n" ));
+
+            if ( num_results < 0 )
+              goto Syntax_Error;
+
+            if ( num_results * (FT_Int)num_designs > num_args )
+              goto Stack_Underflow;
+
+            /* since we currently don't handle interpolation of multiple */
+            /* master fonts, return the `num_results' values of the      */
+            /* first master                                              */
+            args     -= num_results * ( num_designs - 1 );
+            num_args -= num_results * ( num_designs - 1 );
+          }
+          break;
+
         case cff_op_dotsection:
           /* this operator is deprecated and ignored by the parser */
           FT_TRACE4(( " dotsection\n" ));
@@ -2511,7 +2610,6 @@
           break;
 
         default:
-        Unimplemented:
           FT_ERROR(( "Unimplemented opcode: %d", ip[-1] ));
 
           if ( ip[-1] == 12 )
@@ -2535,6 +2633,11 @@
   Fail:
     return error;
 
+  MM_Error:
+    FT_TRACE4(( "cff_decoder_parse_charstrings:"
+                " invalid opcode found in top DICT charstring\n"));
+    return FT_THROW( Invalid_File_Format );
+
   Syntax_Error:
     FT_TRACE4(( "cff_decoder_parse_charstrings: syntax error\n" ));
     return FT_THROW( Invalid_File_Format );
@@ -2608,7 +2711,8 @@
         if ( !error )
           error = cff_decoder_parse_charstrings( &decoder,
                                                  charstring,
-                                                 charstring_len );
+                                                 charstring_len,
+                                                 0 );
 
         cff_free_glyph_data( face, &charstring, &charstring_len );
       }
@@ -2859,7 +2963,8 @@
       if ( driver->hinting_engine == FT_CFF_HINTING_FREETYPE )
         error = cff_decoder_parse_charstrings( &decoder,
                                                charstring,
-                                               charstring_len );
+                                               charstring_len,
+                                               0 );
       else
 #endif
       {

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffgload.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffgload.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffgload.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -227,7 +227,8 @@
   FT_LOCAL( FT_Error )
   cff_decoder_parse_charstrings( CFF_Decoder*  decoder,
                                  FT_Byte*      charstring_base,
-                                 FT_ULong      charstring_len );
+                                 FT_ULong      charstring_len,
+                                 FT_Bool       in_dict );
 #endif
 
   FT_LOCAL( FT_Error )

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffload.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffload.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffload.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -382,7 +382,8 @@
   static FT_Error
   cff_index_get_pointers( CFF_Index   idx,
                           FT_Byte***  table,
-                          FT_Byte**   pool )
+                          FT_Byte**   pool,
+                          FT_ULong*   pool_size )
   {
     FT_Error   error     = FT_Err_Ok;
     FT_Memory  memory    = idx->stream->memory;
@@ -389,6 +390,7 @@
 
     FT_Byte**  t         = NULL;
     FT_Byte*   new_bytes = NULL;
+    FT_ULong   new_size;
 
 
     *table = NULL;
@@ -400,10 +402,11 @@
         goto Exit;
     }
 
-    if ( idx->count > 0                                        &&
-         !FT_NEW_ARRAY( t, idx->count + 1 )                    &&
-         ( !pool || !FT_ALLOC( new_bytes,
-                               idx->data_size + idx->count ) ) )
+    new_size = idx->data_size + idx->count;
+
+    if ( idx->count > 0                                &&
+         !FT_NEW_ARRAY( t, idx->count + 1 )            &&
+         ( !pool || !FT_ALLOC( new_bytes, new_size ) ) )
     {
       FT_ULong  n, cur_offset;
       FT_ULong  extra = 0;
@@ -459,6 +462,8 @@
 
       if ( pool )
         *pool = new_bytes;
+      if ( pool_size )
+        *pool_size = new_size;
     }
 
   Exit:
@@ -809,7 +814,7 @@
     /* When multiple GIDs map to the same CID, we choose the lowest */
     /* GID.  This is not described in any spec, but it matches the  */
     /* behaviour of recent Acroread versions.                       */
-    for ( j = (FT_Long)num_glyphs - 1; j >= 0 ; j-- )
+    for ( j = (FT_Long)num_glyphs - 1; j >= 0; j-- )
       charset->cids[charset->sids[j]] = (FT_UShort)j;
 
     charset->max_cid    = max_cid;
@@ -871,8 +876,8 @@
     FT_UShort  glyph_sid;
 
 
-    /* If the the offset is greater than 2, we have to parse the */
-    /* charset table.                                            */
+    /* If the offset is greater than 2, we have to parse the charset */
+    /* table.                                                        */
     if ( offset > 2 )
     {
       FT_UInt  j;
@@ -1316,7 +1321,12 @@
     CFF_Private      priv = &font->private_dict;
 
 
-    cff_parser_init( &parser, CFF_CODE_TOPDICT, &font->font_dict, library );
+    cff_parser_init( &parser,
+                     CFF_CODE_TOPDICT,
+                     &font->font_dict,
+                     library,
+                     0,
+                     0 );
 
     /* set defaults */
     FT_MEM_ZERO( top, sizeof ( *top ) );
@@ -1370,7 +1380,12 @@
       priv->expansion_factor = (FT_Fixed)( 0.06 * 0x10000L );
       priv->blue_scale       = (FT_Fixed)( 0.039625 * 0x10000L * 1000 );
 
-      cff_parser_init( &parser, CFF_CODE_PRIVATE, priv, library );
+      cff_parser_init( &parser,
+                       CFF_CODE_PRIVATE,
+                       priv,
+                       library,
+                       top->num_designs,
+                       top->num_axes );
 
       if ( FT_STREAM_SEEK( base_offset + font->font_dict.private_offset ) ||
            FT_FRAME_ENTER( font->font_dict.private_size )                 )
@@ -1400,7 +1415,7 @@
         goto Exit;
 
       error = cff_index_get_pointers( &font->local_subrs_index,
-                                      &font->local_subrs, NULL );
+                                      &font->local_subrs, NULL, NULL );
       if ( error )
         goto Exit;
     }
@@ -1478,16 +1493,17 @@
 
     /* read the name, top dict, string and global subrs index */
     if ( FT_SET_ERROR( cff_index_init( &font->name_index,
-                                       stream, 0 ) )                  ||
+                                       stream, 0 ) )                       ||
          FT_SET_ERROR( cff_index_init( &font->font_dict_index,
-                                       stream, 0 ) )                  ||
+                                       stream, 0 ) )                       ||
          FT_SET_ERROR( cff_index_init( &string_index,
-                                       stream, 1 ) )                  ||
+                                       stream, 1 ) )                       ||
          FT_SET_ERROR( cff_index_init( &font->global_subrs_index,
-                                       stream, 1 ) )                  ||
+                                       stream, 1 ) )                       ||
          FT_SET_ERROR( cff_index_get_pointers( &string_index,
                                                &font->strings,
-                                               &font->string_pool ) ) )
+                                               &font->string_pool,
+                                               &font->string_pool_size ) ) )
       goto Exit;
 
     font->num_strings = string_index.count;
@@ -1614,7 +1630,7 @@
     font->num_glyphs = font->charstrings_index.count;
 
     error = cff_index_get_pointers( &font->global_subrs_index,
-                                    &font->global_subrs, NULL );
+                                    &font->global_subrs, NULL, NULL );
 
     if ( error )
       goto Exit;

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffobjs.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffobjs.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffobjs.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -625,12 +625,45 @@
         FT_TRACE4(( "SIDs\n" ));
 
         /* dump string index, including default strings for convenience */
-        for ( idx = 0; idx < cff->num_strings + 390; idx++ )
+        for ( idx = 0; idx <= 390; idx++ )
         {
           s = cff_index_get_sid_string( cff, idx );
           if ( s )
-            FT_TRACE4(("  %5d %s\n", idx, s ));
+            FT_TRACE4(( "  %5d %s\n", idx, s ));
         }
+
+        /* In Multiple Master CFFs, two SIDs hold the Normalize Design  */
+        /* Vector (NDV) and Convert Design Vector (CDV) charstrings,    */
+        /* which may contain NULL bytes in the middle of the data, too. */
+        /* We thus access `cff->strings' directly.                      */
+        for ( idx = 1; idx < cff->num_strings; idx++ )
+        {
+          FT_Byte*    s1    = cff->strings[idx - 1];
+          FT_Byte*    s2    = cff->strings[idx];
+          FT_PtrDist  s1len = s2 - s1 - 1; /* without the final NULL byte */
+          FT_PtrDist  l;
+
+
+          FT_TRACE4(( "  %5d ", idx + 390 ));
+          for ( l = 0; l < s1len; l++ )
+            FT_TRACE4(( "%c", s1[l] ));
+          FT_TRACE4(( "\n" ));
+        }
+
+        /* print last element */
+        if ( cff->num_strings )
+        {
+          FT_Byte*    s1    = cff->strings[cff->num_strings - 1];
+          FT_Byte*    s2    = cff->string_pool + cff->string_pool_size;
+          FT_PtrDist  s1len = s2 - s1 - 1;
+          FT_PtrDist  l;
+
+
+          FT_TRACE4(( "  %5d ", cff->num_strings + 390 ));
+          for ( l = 0; l < s1len; l++ )
+            FT_TRACE4(( "%c", s1[l] ));
+          FT_TRACE4(( "\n" ));
+        }
       }
 #endif /* FT_DEBUG_LEVEL_TRACE */
 
@@ -637,10 +670,11 @@
       if ( !dict->has_font_matrix )
         dict->units_per_em = pure_cff ? 1000 : face->root.units_per_EM;
 
-      /* Normalize the font matrix so that `matrix->yy' is 1; the */
-      /* scaling is done with `units_per_em' then (at this point, */
-      /* it already contains the scaling factor, but without      */
-      /* normalization of the matrix).                            */
+      /* Normalize the font matrix so that `matrix->yy' is 1; if  */
+      /* it is zero, we use `matrix->yx' instead.  The scaling is */
+      /* done with `units_per_em' then (at this point, it already */
+      /* contains the scaling factor, but without normalization   */
+      /* of the matrix).                                          */
       /*                                                          */
       /* Note that the offsets must be expressed in integer font  */
       /* units.                                                   */
@@ -649,9 +683,12 @@
         FT_Matrix*  matrix = &dict->font_matrix;
         FT_Vector*  offset = &dict->font_offset;
         FT_ULong*   upm    = &dict->units_per_em;
-        FT_Fixed    temp   = FT_ABS( matrix->yy );
+        FT_Fixed    temp;
 
 
+        temp = matrix->yy ? FT_ABS( matrix->yy )
+                          : FT_ABS( matrix->yx );
+
         if ( temp != 0x10000L )
         {
           *upm = (FT_ULong)FT_DivFix( (FT_Long)*upm, temp );
@@ -719,8 +756,11 @@
         matrix = &sub->font_matrix;
         offset = &sub->font_offset;
         upm    = &sub->units_per_em;
-        temp   = FT_ABS( matrix->yy );
 
+        temp = matrix->yy ? FT_ABS( matrix->yy )
+                          : FT_ABS( matrix->yx );
+
+
         if ( temp != 0x10000L )
         {
           *upm = (FT_ULong)FT_DivFix( (FT_Long)*upm, temp );

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffparse.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffparse.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffparse.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -23,6 +23,7 @@
 
 #include "cfferrs.h"
 #include "cffpic.h"
+#include "cffgload.h"
 
 
   /*************************************************************************/
@@ -39,7 +40,9 @@
   cff_parser_init( CFF_Parser  parser,
                    FT_UInt     code,
                    void*       object,
-                   FT_Library  library)
+                   FT_Library  library,
+                   FT_UShort   num_designs,
+                   FT_UShort   num_axes )
   {
     FT_MEM_ZERO( parser, sizeof ( *parser ) );
 
@@ -47,6 +50,8 @@
     parser->object_code = code;
     parser->object      = object;
     parser->library     = library;
+    parser->num_designs = num_designs;
+    parser->num_axes    = num_axes;
   }
 
 
@@ -516,9 +521,13 @@
 
     if ( parser->top >= parser->stack + 6 )
     {
-      FT_Long  scaling;
+      FT_Fixed  values[6];
+      FT_Long   scalings[6];
 
+      FT_Long  min_scaling, max_scaling;
+      int      i;
 
+
       error = FT_Err_Ok;
 
       dict->has_font_matrix = TRUE;
@@ -525,22 +534,36 @@
 
       /* We expect a well-formed font matrix, this is, the matrix elements */
       /* `xx' and `yy' are of approximately the same magnitude.  To avoid  */
-      /* loss of precision, we use the magnitude of element `xx' to scale  */
-      /* all other elements.  The scaling factor is then contained in the  */
-      /* `units_per_em' value.                                             */
+      /* loss of precision, we use the magnitude of the largest matrix     */
+      /* element to scale all other elements.  The scaling factor is then  */
+      /* contained in the `units_per_em' value.                            */
 
-      matrix->xx = cff_parse_fixed_dynamic( data++, &scaling );
+      max_scaling = FT_LONG_MIN;
+      min_scaling = FT_LONG_MAX;
 
-      scaling = -scaling;
+      for ( i = 0; i < 6; i++ )
+      {
+        values[i] = cff_parse_fixed_dynamic( data++, &scalings[i] );
+        if ( values[i] )
+        {
+          if ( scalings[i] > max_scaling )
+            max_scaling = scalings[i];
+          if ( scalings[i] < min_scaling )
+            min_scaling = scalings[i];
+        }
+      }
 
-      if ( scaling < 0 || scaling > 9 )
+      if ( max_scaling < -9                  ||
+           max_scaling > 0                   ||
+           ( max_scaling - min_scaling ) < 0 ||
+           ( max_scaling - min_scaling ) > 9 )
       {
         /* Return default matrix in case of unlikely values. */
 
         FT_TRACE1(( "cff_parse_font_matrix:"
-                    " strange scaling value for xx element (%d),\n"
+                    " strange scaling values (minimum %d, maximum %d),\n"
                     "                      "
-                    " using default matrix\n", scaling ));
+                    " using default matrix\n", min_scaling, max_scaling ));
 
         matrix->xx = 0x10000L;
         matrix->yx = 0;
@@ -553,14 +576,43 @@
         goto Exit;
       }
 
-      matrix->yx = cff_parse_fixed_scaled( data++, scaling );
-      matrix->xy = cff_parse_fixed_scaled( data++, scaling );
-      matrix->yy = cff_parse_fixed_scaled( data++, scaling );
-      offset->x  = cff_parse_fixed_scaled( data++, scaling );
-      offset->y  = cff_parse_fixed_scaled( data,   scaling );
+      for ( i = 0; i < 6; i++ )
+      {
+        FT_Fixed  value = values[i];
+        FT_Long   divisor, half_divisor;
 
-      *upm = (FT_ULong)power_tens[scaling];
 
+        if ( !value )
+          continue;
+
+        divisor      = power_tens[max_scaling - scalings[i]];
+        half_divisor = divisor >> 1;
+
+        if ( value < 0 )
+        {
+          if ( FT_LONG_MIN + half_divisor < value )
+            values[i] = ( value - half_divisor ) / divisor;
+          else
+            values[i] = FT_LONG_MIN / divisor;
+        }
+        else
+        {
+          if ( FT_LONG_MAX - half_divisor > value )
+            values[i] = ( value + half_divisor ) / divisor;
+          else
+            values[i] = FT_LONG_MAX / divisor;
+        }
+      }
+
+      matrix->xx = values[0];
+      matrix->yx = values[1];
+      matrix->xy = values[2];
+      matrix->yy = values[3];
+      offset->x  = values[4];
+      offset->y  = values[5];
+
+      *upm = (FT_ULong)power_tens[-max_scaling];
+
       FT_TRACE4(( " [%f %f %f %f %f %f]\n",
                   (double)matrix->xx / *upm / 65536,
                   (double)matrix->xy / *upm / 65536,
@@ -649,7 +701,57 @@
   }
 
 
+  /* The `MultipleMaster' operator comes before any  */
+  /* top DICT operators that contain T2 charstrings. */
+
   static FT_Error
+  cff_parse_multiple_master( CFF_Parser  parser )
+  {
+    CFF_FontRecDict  dict = (CFF_FontRecDict)parser->object;
+    FT_Error         error;
+
+
+#ifdef FT_DEBUG_LEVEL_TRACE
+    /* beautify tracing message */
+    if ( ft_trace_levels[FT_COMPONENT] < 4 )
+      FT_TRACE1(( "Multiple Master CFFs not supported yet,"
+                  " handling first master design only\n" ));
+    else
+      FT_TRACE1(( " (not supported yet,"
+                  " handling first master design only)\n" ));
+#endif
+
+    error = FT_ERR( Stack_Underflow );
+
+    /* currently, we handle only the first argument */
+    if ( parser->top >= parser->stack + 5 )
+    {
+      FT_Long  num_designs = cff_parse_num( parser->stack );
+
+
+      if ( num_designs > 16 || num_designs < 2 )
+      {
+        FT_ERROR(( "cff_parse_multiple_master:"
+                   " Invalid number of designs\n" ));
+        error = FT_THROW( Invalid_File_Format );
+      }
+      else
+      {
+        dict->num_designs   = (FT_UShort)num_designs;
+        dict->num_axes      = (FT_UShort)( parser->top - parser->stack - 4 );
+
+        parser->num_designs = dict->num_designs;
+        parser->num_axes    = dict->num_axes;
+
+        error = FT_Err_Ok;
+      }
+    }
+
+    return error;
+  }
+
+
+  static FT_Error
   cff_parse_cid_ros( CFF_Parser  parser )
   {
     CFF_FontRecDict  dict = (CFF_FontRecDict)parser->object;
@@ -972,7 +1074,7 @@
         if ( parser->top - parser->stack >= CFF_MAX_STACK_DEPTH )
           goto Stack_Overflow;
 
-        *parser->top ++ = p;
+        *parser->top++ = p;
 
         /* now, skip it */
         if ( v == 30 )
@@ -1001,6 +1103,136 @@
         else if ( v > 246 )
           p += 1;
       }
+#ifdef CFF_CONFIG_OPTION_OLD_ENGINE
+      else if ( v == 31 )
+      {
+        /* a Type 2 charstring */
+
+        CFF_Decoder  decoder;
+        CFF_FontRec  cff_rec;
+        FT_Byte*     charstring_base;
+        FT_ULong     charstring_len;
+
+        FT_Fixed*  stack;
+        FT_Byte*   q;
+
+
+        charstring_base = ++p;
+
+        /* search `endchar' operator */
+        for (;;)
+        {
+          if ( p >= limit )
+            goto Exit;
+          if ( *p == 14 )
+            break;
+          p++;
+        }
+
+        charstring_len = (FT_ULong)( p - charstring_base ) + 1;
+
+        /* construct CFF_Decoder object */
+        FT_MEM_ZERO( &decoder, sizeof ( decoder ) );
+        FT_MEM_ZERO( &cff_rec, sizeof ( cff_rec ) );
+
+        cff_rec.top_font.font_dict.num_designs = parser->num_designs;
+        cff_rec.top_font.font_dict.num_axes    = parser->num_axes;
+        decoder.cff                            = &cff_rec;
+
+        error = cff_decoder_parse_charstrings( &decoder,
+                                               charstring_base,
+                                               charstring_len,
+                                               1 );
+
+        /* Now copy the stack data in the temporary decoder object,    */
+        /* converting it back to charstring number representations     */
+        /* (this is ugly, I know).                                     */
+        /*                                                             */
+        /* We overwrite the original top DICT charstring under the     */
+        /* assumption that the charstring representation of the result */
+        /* of `cff_decoder_parse_charstrings' is shorter, which should */
+        /* be always true.                                             */
+
+        q     = charstring_base - 1;
+        stack = decoder.stack;
+
+        while ( stack < decoder.top )
+        {
+          FT_ULong  num;
+          FT_Bool   neg;
+
+
+          if ( parser->top - parser->stack >= CFF_MAX_STACK_DEPTH )
+            goto Stack_Overflow;
+
+          *parser->top++ = q;
+
+          if ( *stack < 0 )
+          {
+            num = (FT_ULong)-*stack;
+            neg = 1;
+          }
+          else
+          {
+            num = (FT_ULong)*stack;
+            neg = 0;
+          }
+
+          if ( num & 0xFFFFU )
+          {
+            if ( neg )
+              num = (FT_ULong)-num;
+
+            *q++ = 255;
+            *q++ = ( num & 0xFF000000U ) >> 24;
+            *q++ = ( num & 0x00FF0000U ) >> 16;
+            *q++ = ( num & 0x0000FF00U ) >>  8;
+            *q++ =   num & 0x000000FFU;
+          }
+          else
+          {
+            num >>= 16;
+
+            if ( neg )
+            {
+              if ( num <= 107 )
+                *q++ = (FT_Byte)( 139 - num );
+              else if ( num <= 1131 )
+              {
+                *q++ = (FT_Byte)( ( ( num - 108 ) >> 8 ) + 251 );
+                *q++ = (FT_Byte)( ( num - 108 ) & 0xFF );
+              }
+              else
+              {
+                num = (FT_ULong)-num;
+
+                *q++ = 28;
+                *q++ = (FT_Byte)( num >> 8 );
+                *q++ = (FT_Byte)( num & 0xFF );
+              }
+            }
+            else
+            {
+              if ( num <= 107 )
+                *q++ = (FT_Byte)( num + 139 );
+              else if ( num <= 1131 )
+              {
+                *q++ = (FT_Byte)( ( ( num - 108 ) >> 8 ) + 247 );
+                *q++ = (FT_Byte)( ( num - 108 ) & 0xFF );
+              }
+              else
+              {
+                *q++ = 28;
+                *q++ = (FT_Byte)( num >> 8 );
+                *q++ = (FT_Byte)( num & 0xFF );
+              }
+            }
+          }
+
+          stack++;
+        }
+      }
+#endif /* CFF_CONFIG_OPTION_OLD_ENGINE */
       else
       {
         /* This is not a number, hence it's an operator.  Compute its code */

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffparse.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffparse.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/cff/cffparse.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -36,17 +36,20 @@
 
   typedef struct  CFF_ParserRec_
   {
-    FT_Library library;
-    FT_Byte*   start;
-    FT_Byte*   limit;
-    FT_Byte*   cursor;
+    FT_Library  library;
+    FT_Byte*    start;
+    FT_Byte*    limit;
+    FT_Byte*    cursor;
 
-    FT_Byte*   stack[CFF_MAX_STACK_DEPTH + 1];
-    FT_Byte**  top;
+    FT_Byte*    stack[CFF_MAX_STACK_DEPTH + 1];
+    FT_Byte**   top;
 
-    FT_UInt    object_code;
-    void*      object;
+    FT_UInt     object_code;
+    void*       object;
 
+    FT_UShort   num_designs; /* a copy of `CFF_FontRecDict->num_designs' */
+    FT_UShort   num_axes;    /* a copy of `CFF_FontRecDict->num_axes'    */
+
   } CFF_ParserRec, *CFF_Parser;
 
 
@@ -54,7 +57,9 @@
   cff_parser_init( CFF_Parser  parser,
                    FT_UInt     code,
                    void*       object,
-                   FT_Library  library);
+                   FT_Library  library,
+                   FT_UShort   num_designs,
+                   FT_UShort   num_axes );
 
   FT_LOCAL( FT_Error )
   cff_parser_run( CFF_Parser  parser,

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/cff/cfftoken.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/cff/cfftoken.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/cff/cfftoken.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -38,6 +38,9 @@
   CFF_FIELD_NUM     ( 13,    unique_id,           "UniqueID" )
   CFF_FIELD_CALLBACK( 5,     font_bbox,           "FontBBox" )
   CFF_FIELD_NUM     ( 0x108, stroke_width,        "StrokeWidth" )
+#if 0
+  CFF_FIELD_DELTA   ( 14,    xuid, 16,            "XUID" )
+#endif
   CFF_FIELD_NUM     ( 15,    charset_offset,      "charset" )
   CFF_FIELD_NUM     ( 16,    encoding_offset,     "Encoding" )
   CFF_FIELD_NUM     ( 17,    charstrings_offset,  "CharStrings" )
@@ -48,8 +51,13 @@
 #if 0
   CFF_FIELD_STRING  ( 0x116, base_font_name,      "BaseFontName" )
   CFF_FIELD_DELTA   ( 0x117, base_font_blend, 16, "BaseFontBlend" )
+#endif
+
+  /* the next two operators were removed from the Type2 specification */
+  /* in version 16-March-2000                                         */
   CFF_FIELD_CALLBACK( 0x118, multiple_master,     "MultipleMaster" )
-  CFF_FIELD_CALLBACK( 0x119, blend_axis_types,    "BlendAxisTypes" )
+#if 0
+  CFF_FIELD_CALLBACK( 0x11A, blend_axis_types,    "BlendAxisTypes" )
 #endif
 
   CFF_FIELD_CALLBACK( 0x11E, cid_ros,              "ROS" )

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/cff/cfftypes.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/cff/cfftypes.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/cff/cfftypes.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -145,6 +145,12 @@
     FT_ULong   cid_fd_select_offset;
     FT_UInt    cid_font_name;
 
+    /* the next fields come from the data of the deprecated          */
+    /* `MultipleMaster' operator; they are needed to parse the (also */
+    /* deprecated) `blend' operator in Type 2 charstrings            */
+    FT_UShort  num_designs;
+    FT_UShort  num_axes;
+
   } CFF_FontRecDictRec, *CFF_FontRecDict;
 
 
@@ -250,6 +256,7 @@
     FT_UInt          num_strings;
     FT_Byte**        strings;
     FT_Byte*         string_pool;
+    FT_ULong         string_pool_size;
 
     CFF_SubFontRec   top_font;
     FT_UInt          num_subfonts;

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/cid/cidparse.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/cid/cidparse.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/cid/cidparse.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -47,6 +47,12 @@
   /*************************************************************************/
 
 
+#define STARTDATA      "StartData"
+#define STARTDATA_LEN  ( sizeof ( STARTDATA ) - 1 )
+#define SFNTS          "/sfnts"
+#define SFNTS_LEN      ( sizeof ( SFNTS ) - 1 )
+
+
   FT_LOCAL_DEF( FT_Error )
   cid_parser_new( CID_Parser*    parser,
                   FT_Stream      stream,
@@ -85,11 +91,31 @@
     /* now, read the rest of the file until we find */
     /* `StartData' or `/sfnts'                      */
     {
-      FT_Byte   buffer[256 + 10];
-      FT_ULong  read_len = 256 + 10;
-      FT_Byte*  p        = buffer;
+      /*
+       * The algorithm is as follows (omitting the case with less than 256
+       * bytes to fill for simplicity).
+       *
+       * 1. Fill the buffer with 256 + STARTDATA_LEN bytes.
+       *
+       * 2. Search for the STARTDATA and SFNTS strings at positions
+       *    buffer[0], buffer[1], ...,
+       *    buffer[255 + STARTDATA_LEN - SFNTS_LEN].
+       *
+       * 3. Move the last STARTDATA_LEN bytes to buffer[0].
+       *
+       * 4. Fill the buffer with 256 bytes, starting at STARTDATA_LEN.
+       *
+       * 5. Repeat with step 2.
+       *
+       */
+      FT_Byte  buffer[256 + STARTDATA_LEN + 1];
 
+      /* values for the first loop */
+      FT_ULong  read_len    = 256 + STARTDATA_LEN;
+      FT_ULong  read_offset = 0;
+      FT_Byte*  p           = buffer;
 
+
       for ( offset = FT_STREAM_POS(); ; offset += 256 )
       {
         FT_ULong  stream_len;
@@ -96,40 +122,48 @@
 
 
         stream_len = stream->size - FT_STREAM_POS();
-        if ( stream_len == 0 )
-        {
-          FT_TRACE2(( "cid_parser_new: no `StartData' keyword found\n" ));
-          error = FT_THROW( Invalid_File_Format );
-          goto Exit;
-        }
 
         read_len = FT_MIN( read_len, stream_len );
         if ( FT_STREAM_READ( p, read_len ) )
           goto Exit;
 
-        if ( read_len < 256 )
-          p[read_len]  = '\0';
+        /* ensure that we do not compare with data beyond the buffer */
+        p[read_len] = '\0';
 
-        limit = p + read_len - 10;
+        limit = p + read_len - SFNTS_LEN;
 
         for ( p = buffer; p < limit; p++ )
         {
-          if ( p[0] == 'S' && ft_strncmp( (char*)p, "StartData", 9 ) == 0 )
+          if ( p[0] == 'S'                                           &&
+               ft_strncmp( (char*)p, STARTDATA, STARTDATA_LEN ) == 0 )
           {
             /* save offset of binary data after `StartData' */
-            offset += (FT_ULong)( p - buffer + 10 );
+            offset += (FT_ULong)( p - buffer ) + STARTDATA_LEN;
             goto Found;
           }
-          else if ( p[1] == 's' && ft_strncmp( (char*)p, "/sfnts", 6 ) == 0 )
+          else if ( p[1] == 's'                                   &&
+                    ft_strncmp( (char*)p, SFNTS, SFNTS_LEN ) == 0 )
           {
-            offset += (FT_ULong)( p - buffer + 7 );
+            offset += (FT_ULong)( p - buffer ) + SFNTS_LEN;
             goto Found;
           }
         }
 
-        FT_MEM_MOVE( buffer, p, 10 );
-        read_len = 256;
-        p = buffer + 10;
+        if ( read_offset + read_len < STARTDATA_LEN )
+        {
+          FT_TRACE2(( "cid_parser_new: no `StartData' keyword found\n" ));
+          error = FT_THROW( Invalid_File_Format );
+          goto Exit;
+        }
+
+        FT_MEM_MOVE( buffer,
+                     buffer + read_offset + read_len - STARTDATA_LEN,
+                     STARTDATA_LEN );
+
+        /* values for the next loop */
+        read_len    = 256;
+        read_offset = STARTDATA_LEN;
+        p           = buffer + read_offset;
       }
     }
 
@@ -165,7 +199,7 @@
     limit = parser->root.limit;
     cur   = parser->root.cursor;
 
-    while ( cur < limit )
+    while ( cur < limit - SFNTS_LEN )
     {
       if ( parser->root.error )
       {
@@ -173,7 +207,9 @@
         goto Exit;
       }
 
-      if ( cur[0] == 'S' && ft_strncmp( (char*)cur, "StartData", 9 ) == 0 )
+      if ( cur[0] == 'S'                                           &&
+           cur < limit - STARTDATA_LEN                             &&
+           ft_strncmp( (char*)cur, STARTDATA, STARTDATA_LEN ) == 0 )
       {
         if ( ft_strncmp( (char*)arg1, "(Hex)", 5 ) == 0 )
         {
@@ -191,7 +227,8 @@
 
         goto Exit;
       }
-      else if ( cur[1] == 's' && ft_strncmp( (char*)cur, "/sfnts", 6 ) == 0 )
+      else if ( cur[1] == 's'                                   &&
+                ft_strncmp( (char*)cur, SFNTS, SFNTS_LEN ) == 0 )
       {
         FT_TRACE2(( "cid_parser_new: cannot handle Type 11 fonts\n" ));
         error = FT_THROW( Unknown_File_Format );
@@ -216,6 +253,12 @@
   }
 
 
+#undef STARTDATA
+#undef STARTDATA_LEN
+#undef SFNTS
+#undef SFNTS_LEN
+
+
   FT_LOCAL_DEF( void )
   cid_parser_done( CID_Parser*  parser )
   {

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvcommn.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvcommn.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvcommn.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -900,7 +900,7 @@
     for ( i = 0; i < nnames; i++ )
     {
       if ( FT_Get_Sfnt_Name( gxvalid->face, i, &name ) != FT_Err_Ok )
-        continue ;
+        continue;
 
       if ( name.name_id == name_index )
         goto Out;
@@ -1472,7 +1472,7 @@
     if ( ( p + ( maxEntry + 1 ) * entrySize ) > limit )
       FT_INVALID_TOO_SHORT;
 
-    for (entry = 0; entry <= maxEntry ; entry++ )
+    for (entry = 0; entry <= maxEntry; entry++ )
     {
       FT_UShort                        newState_idx;
       FT_UShort                        flags;

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvcommn.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvcommn.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvcommn.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -338,7 +338,7 @@
                                                         \
                                                         \
               for ( b = p; b < (FT_Bytes)p + len; b++ ) \
-                FT_TRACE1(("\\x%02x", *b)) ;            \
+                FT_TRACE1(("\\x%02x", *b));             \
             }                                           \
           FT_END_STMNT
 
@@ -350,9 +350,9 @@
                                                         \
               for ( b = p; b < (FT_Bytes)p + len; b++ ) \
                 if ( 0x40 < *b && *b < 0x7E )           \
-                  FT_TRACE1(("%c", *b)) ;               \
+                  FT_TRACE1(("%c", *b));                \
                 else                                    \
-                  FT_TRACE1(("\\x%02x", *b)) ;          \
+                  FT_TRACE1(("\\x%02x", *b));           \
             }                                           \
           FT_END_STMNT
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvjust.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvjust.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvjust.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -152,7 +152,7 @@
                                         FT_Bytes       limit,
                                         GXV_Validator  gxvalid )
   {
-    FT_Bytes  p         = table ;
+    FT_Bytes  p         = table;
     FT_Bytes  wdc_end   = table + GXV_JUST_DATA( wdc_offset_max );
     FT_UInt   i;
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvkern.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvkern.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvkern.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -693,7 +693,7 @@
 
     GXV_NAME_ENTER( "validating coverage" );
 
-    GXV_TRACE(( "interprete coverage 0x%04x by Apple style\n", coverage ));
+    GXV_TRACE(( "interpret coverage 0x%04x by Apple style\n", coverage ));
 
     if ( KERN_IS_NEW( gxvalid ) )
     {
@@ -728,7 +728,7 @@
       }
     }
 
-    GXV_TRACE(( "cannot interprete coverage, broken kern subtable\n" ));
+    GXV_TRACE(( "cannot interpret coverage, broken kern subtable\n" ));
 
   Exit:
     GXV_EXIT;

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvlcar.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvlcar.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvlcar.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -114,7 +114,7 @@
     +------ lcar --------------------+
     |                                |
     |      +===============+         |
-    |      | looup header  |         |
+    |      | lookup header |         |
     |      +===============+         |
     |      | BinSrchHeader |         |
     |      +===============+         |

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvmort1.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvmort1.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvmort1.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -192,7 +192,7 @@
 
 
     GXV_NAME_ENTER( "validating contents of substitutionTable" );
-    for ( i = 0; i < num_gids ; i ++ )
+    for ( i = 0; i < num_gids; i++ )
     {
       FT_UShort  dst_gid;
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvtrak.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvtrak.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/gxvalid/gxvtrak.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -111,7 +111,7 @@
 
     GXV_LIMIT_CHECK( nTracks * ( 4 + 2 + 2 ) );
 
-    for ( i = 0; i < nTracks; i ++ )
+    for ( i = 0; i < nTracks; i++ )
     {
       p = table + i * ( 4 + 2 + 2 );
       track     = FT_NEXT_LONG( p );
@@ -125,7 +125,7 @@
 
       gxv_sfntName_validate( nameIndex, 256, 32767, gxvalid );
 
-      for ( j = i; j < nTracks; j ++ )
+      for ( j = i; j < nTracks; j++ )
       {
          p = table + j * ( 4 + 2 + 2 );
          t = FT_NEXT_LONG( p );

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/gzip/ftgzip.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/gzip/ftgzip.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/gzip/ftgzip.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -59,7 +59,7 @@
  /* original ZLib.                                                   */
 
 #ifndef USE_ZLIB_ZCALLOC
-#define MY_ZCALLOC /* prevent all zcalloc() & zfree() in zutils.c */
+#define MY_ZCALLOC /* prevent all zcalloc() & zfree() in zutil.c */
 #endif
 
 #include "zlib.h"

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/gzip/zlib.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/gzip/zlib.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/gzip/zlib.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -560,7 +560,7 @@
     inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR
   if no more input was provided, Z_DATA_ERROR if no flush point has been found,
   or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
-  case, the application may save the current current value of total_in which
+  case, the application may save the current value of total_in which
   indicates where valid compressed data was found. In the error case, the
   application may repeatedly call inflateSync, providing more input each time,
   until success or end of the input data.

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/otvalid/otvmath.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/otvalid/otvmath.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/otvalid/otvmath.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -88,7 +88,7 @@
                                           FT_Int         isItalic )
   {
     FT_Bytes  p = table;
-    FT_UInt   i, cnt, table_size ;
+    FT_UInt   i, cnt, table_size;
 
     OTV_OPTIONAL_TABLE( Coverage );
     OTV_OPTIONAL_TABLE( DeviceTableOffset );

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/pcf/pcfread.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/pcf/pcfread.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/pcf/pcfread.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -442,7 +442,7 @@
     int           i;
 
 
-    for ( i = 0 ; i < face->nprops && !found; i++ )
+    for ( i = 0; i < face->nprops && !found; i++ )
     {
       if ( !ft_strcmp( properties[i].name, prop ) )
         found = 1;
@@ -849,7 +849,7 @@
     int           firstCol, lastCol;
     int           firstRow, lastRow;
     FT_ULong      nencoding;
-    int           encodingOffset;
+    FT_UShort     encodingOffset;
     int           i, j;
     FT_ULong      k;
     PCF_Encoding  encoding = NULL;
@@ -921,15 +921,19 @@
     {
       for ( j = firstCol; j <= lastCol; j++ )
       {
+        /* X11's reference implementation uses the equivalent to  */
+        /* `FT_GET_SHORT', however PCF fonts with more than 32768 */
+        /* characters (e.g. `unifont.pcf') clearly show that an   */
+        /* unsigned value is needed.                              */
         if ( PCF_BYTE_ORDER( format ) == MSBFirst )
-          encodingOffset = FT_GET_SHORT();
+          encodingOffset = FT_GET_USHORT();
         else
-          encodingOffset = FT_GET_SHORT_LE();
+          encodingOffset = FT_GET_USHORT_LE();
 
-        if ( encodingOffset > -1 )
+        if ( encodingOffset != 0xFFFFU )
         {
           encoding[k].enc   = i * 256 + j;
-          encoding[k].glyph = (FT_UShort)encodingOffset;
+          encoding[k].glyph = encodingOffset;
 
           FT_TRACE5(( "  code %d (0x%04X): idx %d\n",
                       encoding[k].enc, encoding[k].enc, encoding[k].glyph ));

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrgload.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrgload.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrgload.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -336,7 +336,7 @@
     /* XXX: we ignore the secondary stroke and edge definitions */
     /*      since we don't support native PFR hinting           */
     /*                                                          */
-    if ( flags & PFR_GLYPH_EXTRA_ITEMS )
+    if ( flags & PFR_GLYPH_SINGLE_EXTRA_ITEMS )
     {
       error = pfr_extra_items_skip( &p, limit );
       if ( error )
@@ -579,7 +579,7 @@
 
     /* ignore extra items when present */
     /*                                 */
-    if ( flags & PFR_GLYPH_EXTRA_ITEMS )
+    if ( flags & PFR_GLYPH_COMPOUND_EXTRA_ITEMS )
     {
       error = pfr_extra_items_skip( &p, limit );
       if ( error )

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrload.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrload.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrload.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -299,9 +299,15 @@
          FT_READ_USHORT( count )          )
       goto Exit;
 
-    /* check maximum value and a rough minimum size */
+    /* check maximum value and a rough minimum size:     */
+    /* - no more than 13106 log fonts                    */
+    /* - we need 5 bytes for a log header record         */
+    /* - we need at least 18 bytes for a log font record */
+    /* - the overall size is at least 95 bytes plus the  */
+    /*   log header and log font records                 */
     if ( count > ( ( 1 << 16 ) - 2 ) / 5                ||
-         2 + count * 5 >= stream->size - section_offset )
+         2 + count * 5 >= stream->size - section_offset ||
+         95 + count * ( 5 + 18 ) >= stream->size        )
     {
       FT_ERROR(( "pfr_log_font_count:"
                  " invalid number of logical fonts\n" ));
@@ -377,7 +383,7 @@
         if ( flags & PFR_LOG_2BYTE_STROKE )
           local++;
 
-        if ( (flags & PFR_LINE_JOIN_MASK) == PFR_LINE_JOIN_MITER )
+        if ( ( flags & PFR_LINE_JOIN_MASK ) == PFR_LINE_JOIN_MITER )
           local += 3;
       }
       if ( flags & PFR_LOG_BOLD )
@@ -609,7 +615,7 @@
 
   Too_Short:
     error = FT_THROW( Invalid_Table );
-    FT_ERROR(( "pfr_exta_item_load_stem_snaps:"
+    FT_ERROR(( "pfr_extra_item_load_stem_snaps:"
                " invalid stem snaps table\n" ));
     goto Exit;
   }
@@ -737,12 +743,14 @@
     FT_UInt     n, ok;
 
 
+    if ( *astring )
+      FT_FREE( *astring );
+
     if ( len > 0 && p[len - 1] == 0 )
       len--;
 
-    /* check that each character is ASCII for making sure not to
-       load garbage
-     */
+    /* check that each character is ASCII  */
+    /* for making sure not to load garbage */
     ok = ( len > 0 );
     for ( n = 0; n < len; n++ )
       if ( p[n] < 32 || p[n] > 127 )
@@ -759,6 +767,7 @@
       FT_MEM_COPY( result, p, len );
       result[len] = 0;
     }
+
   Exit:
     *astring = result;
     return error;

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrobjs.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrobjs.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrobjs.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -524,8 +524,8 @@
         FT_UInt    probe       = power * size;
         FT_UInt    extra       = count - power;
         FT_Byte*   base        = stream->cursor;
-        FT_Bool    twobytes    = FT_BOOL( item->flags & 1 );
-        FT_Bool    twobyte_adj = FT_BOOL( item->flags & 2 );
+        FT_Bool    twobytes    = FT_BOOL( item->flags & PFR_KERN_2BYTE_CHAR );
+        FT_Bool    twobyte_adj = FT_BOOL( item->flags & PFR_KERN_2BYTE_ADJ  );
         FT_Byte*   p;
         FT_UInt32  cpair;
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrsbit.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrsbit.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrsbit.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -277,49 +277,99 @@
   pfr_lookup_bitmap_data( FT_Byte*   base,
                           FT_Byte*   limit,
                           FT_UInt    count,
-                          FT_UInt    flags,
+                          FT_UInt*   flags,
                           FT_UInt    char_code,
                           FT_ULong*  found_offset,
                           FT_ULong*  found_size )
   {
-    FT_UInt   left, right, char_len;
-    FT_Bool   two = FT_BOOL( flags & 1 );
+    FT_UInt   min, max, char_len;
+    FT_Bool   two = FT_BOOL( *flags & PFR_BITMAP_2BYTE_CHARCODE );
     FT_Byte*  buff;
 
 
     char_len = 4;
-    if ( two )       char_len += 1;
-    if ( flags & 2 ) char_len += 1;
-    if ( flags & 4 ) char_len += 1;
+    if ( two )
+      char_len += 1;
+    if ( *flags & PFR_BITMAP_2BYTE_SIZE )
+      char_len += 1;
+    if ( *flags & PFR_BITMAP_3BYTE_OFFSET )
+      char_len += 1;
 
-    left  = 0;
-    right = count;
+    if ( !( *flags & PFR_BITMAP_CHARCODES_VALIDATED ) )
+    {
+      FT_Byte*  p;
+      FT_Byte*  lim;
+      FT_UInt   code;
+      FT_Long   prev_code;
 
-    while ( left < right )
+
+      *flags    |= PFR_BITMAP_VALID_CHARCODES;
+      prev_code  = -1;
+      lim        = base + count * char_len;
+
+      if ( lim > limit )
+      {
+        FT_TRACE0(( "pfr_lookup_bitmap_data:"
+                    " number of bitmap records too large,\n"
+                    "                       "
+                    " thus ignoring all bitmaps in this strike\n" ));
+        *flags &= ~PFR_BITMAP_VALID_CHARCODES;
+      }
+      else
+      {
+        /* check whether records are sorted by code */
+        for ( p = base; p < lim; p += char_len )
+        {
+          if ( two )
+            code = FT_PEEK_USHORT( p );
+          else
+            code = *p;
+
+          if ( (FT_Long)code <= prev_code )
+          {
+            FT_TRACE0(( "pfr_lookup_bitmap_data:"
+                        " bitmap records are not sorted,\n"
+                        "                       "
+                        " thus ignoring all bitmaps in this strike\n" ));
+            *flags &= ~PFR_BITMAP_VALID_CHARCODES;
+            break;
+          }
+
+          prev_code = code;
+        }
+      }
+
+      *flags |= PFR_BITMAP_CHARCODES_VALIDATED;
+    }
+
+    /* ignore bitmaps in case table is not valid     */
+    /* (this might be sanitized, but PFR is dead...) */
+    if ( !( *flags & PFR_BITMAP_VALID_CHARCODES ) )
+      goto Fail;
+
+    min = 0;
+    max = count;
+
+    /* binary search */
+    while ( min < max )
     {
-      FT_UInt  middle, code;
+      FT_UInt  mid, code;
 
 
-      middle = ( left + right ) >> 1;
-      buff   = base + middle * char_len;
+      mid  = ( min + max ) >> 1;
+      buff = base + mid * char_len;
 
-      /* check that we are not outside of the table -- */
-      /* this is possible with broken fonts...         */
-      if ( buff + char_len > limit )
-        goto Fail;
-
       if ( two )
         code = PFR_NEXT_USHORT( buff );
       else
         code = PFR_NEXT_BYTE( buff );
 
-      if ( code == char_code )
+      if ( char_code < code )
+        max = mid;
+      else if ( char_code > code )
+        min = mid + 1;
+      else
         goto Found_It;
-
-      if ( code < char_code )
-        left = middle;
-      else
-        right = middle;
     }
 
   Fail:
@@ -329,12 +379,12 @@
     return;
 
   Found_It:
-    if ( flags & 2 )
+    if ( *flags & PFR_BITMAP_2BYTE_SIZE )
       *found_size = PFR_NEXT_USHORT( buff );
     else
       *found_size = PFR_NEXT_BYTE( buff );
 
-    if ( flags & 4 )
+    if ( *flags & PFR_BITMAP_3BYTE_OFFSET )
       *found_offset = PFR_NEXT_ULONG( buff );
     else
       *found_offset = PFR_NEXT_USHORT( buff );
@@ -357,7 +407,6 @@
   {
     FT_Error  error = FT_Err_Ok;
     FT_Byte   flags;
-    FT_Char   c;
     FT_Byte   b;
     FT_Byte*  p = *pdata;
     FT_Long   xpos, ypos, advance;
@@ -377,9 +426,9 @@
     {
     case 0:
       PFR_CHECK( 1 );
-      c    = PFR_NEXT_INT8( p );
-      xpos = c >> 4;
-      ypos = ( (FT_Char)( c << 4 ) ) >> 4;
+      b    = PFR_NEXT_BYTE( p );
+      xpos = (FT_Char)b >> 4;
+      ypos = ( (FT_Char)( b << 4 ) ) >> 4;
       break;
 
     case 1:
@@ -445,7 +494,7 @@
 
     case 1:
       PFR_CHECK( 1 );
-      advance = PFR_NEXT_INT8( p ) << 8;
+      advance = PFR_NEXT_INT8( p ) * 256;
       break;
 
     case 2:
@@ -571,9 +620,12 @@
 
 
       char_len = 4;
-      if ( strike->flags & 1 ) char_len += 1;
-      if ( strike->flags & 2 ) char_len += 1;
-      if ( strike->flags & 4 ) char_len += 1;
+      if ( strike->flags & PFR_BITMAP_2BYTE_CHARCODE )
+        char_len += 1;
+      if ( strike->flags & PFR_BITMAP_2BYTE_SIZE )
+        char_len += 1;
+      if ( strike->flags & PFR_BITMAP_3BYTE_OFFSET )
+        char_len += 1;
 
       /* access data directly in the frame to speed lookups */
       if ( FT_STREAM_SEEK( phys->bct_offset + strike->bct_offset ) ||
@@ -583,7 +635,7 @@
       pfr_lookup_bitmap_data( stream->cursor,
                               stream->limit,
                               strike->num_bitmaps,
-                              strike->flags,
+                              &strike->flags,
                               character->char_code,
                               &gps_offset,
                               &gps_size );
@@ -630,6 +682,8 @@
                                        &xpos, &ypos,
                                        &xsize, &ysize,
                                        &advance, &format );
+      if ( error )
+        goto Exit1;
 
       /*
        * Before allocating the target bitmap, we check whether the given
@@ -675,7 +729,7 @@
       {
         if ( FT_ERR_EQ( error, Invalid_Table ) )
           FT_ERROR(( "pfr_slot_load_bitmap: invalid bitmap dimensions\n" ));
-        goto Exit;
+        goto Exit1;
       }
 
       /*
@@ -710,8 +764,8 @@
         /* XXX: needs casts to fit FT_Glyph_Metrics.{width|height} */
         glyph->root.metrics.width        = (FT_Pos)xsize << 6;
         glyph->root.metrics.height       = (FT_Pos)ysize << 6;
-        glyph->root.metrics.horiBearingX = xpos << 6;
-        glyph->root.metrics.horiBearingY = ypos << 6;
+        glyph->root.metrics.horiBearingX = xpos * 64;
+        glyph->root.metrics.horiBearingY = ypos * 64;
         glyph->root.metrics.horiAdvance  = FT_PIX_ROUND( ( advance >> 2 ) );
         glyph->root.metrics.vertBearingX = - glyph->root.metrics.width >> 1;
         glyph->root.metrics.vertBearingY = 0;
@@ -732,11 +786,13 @@
                       p,
                       stream->limit,
                       format,
-                      FT_BOOL(face->header.color_flags & 2),
+                      FT_BOOL( face->header.color_flags &
+                               PFR_FLAG_INVERT_BITMAP   ),
                       &glyph->root.bitmap );
         }
       }
 
+    Exit1:
       FT_FRAME_EXIT();
     }
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrtypes.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrtypes.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/pfr/pfrtypes.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -69,14 +69,10 @@
 
 
   /* used in `color_flags' field of the PFR_Header */
-  typedef enum  PFR_HeaderFlags_
-  {
-    PFR_FLAG_BLACK_PIXEL   = 1,
-    PFR_FLAG_INVERT_BITMAP = 2
+#define PFR_FLAG_BLACK_PIXEL    0x01U
+#define PFR_FLAG_INVERT_BITMAP  0x02U
 
-  } PFR_HeaderFlags;
 
-
   /************************************************************************/
 
   typedef struct  PFR_LogFontRec_
@@ -96,36 +92,27 @@
   } PFR_LogFontRec, *PFR_LogFont;
 
 
-  typedef enum  PFR_LogFlags_
-  {
-    PFR_LOG_EXTRA_ITEMS  = 0x40,
-    PFR_LOG_2BYTE_BOLD   = 0x20,
-    PFR_LOG_BOLD         = 0x10,
-    PFR_LOG_2BYTE_STROKE = 8,
-    PFR_LOG_STROKE       = 4,
-    PFR_LINE_JOIN_MASK   = 3
+#define PFR_LINE_JOIN_MITER   0x00U
+#define PFR_LINE_JOIN_ROUND   0x01U
+#define PFR_LINE_JOIN_BEVEL   0x02U
+#define PFR_LINE_JOIN_MASK    ( PFR_LINE_JOIN_ROUND | PFR_LINE_JOIN_BEVEL )
 
-  } PFR_LogFlags;
+#define PFR_LOG_STROKE        0x04U
+#define PFR_LOG_2BYTE_STROKE  0x08U
+#define PFR_LOG_BOLD          0x10U
+#define PFR_LOG_2BYTE_BOLD    0x20U
+#define PFR_LOG_EXTRA_ITEMS   0x40U
 
 
-  typedef enum  PFR_LineJoinFlags_
-  {
-    PFR_LINE_JOIN_MITER = 0,
-    PFR_LINE_JOIN_ROUND = 1,
-    PFR_LINE_JOIN_BEVEL = 2
-
-  } PFR_LineJoinFlags;
-
-
   /************************************************************************/
 
-  typedef enum  PFR_BitmapFlags_
-  {
-    PFR_BITMAP_3BYTE_OFFSET   = 4,
-    PFR_BITMAP_2BYTE_SIZE     = 2,
-    PFR_BITMAP_2BYTE_CHARCODE = 1
+#define PFR_BITMAP_2BYTE_CHARCODE  0x01U
+#define PFR_BITMAP_2BYTE_SIZE      0x02U
+#define PFR_BITMAP_3BYTE_OFFSET    0x04U
 
-  } PFR_BitmapFlags;
+  /*not part of the specification but used for implementation */
+#define PFR_BITMAP_CHARCODES_VALIDATED  0x40U
+#define PFR_BITMAP_VALID_CHARCODES      0x80U
 
 
   typedef struct  PFR_BitmapCharRec_
@@ -137,17 +124,13 @@
   } PFR_BitmapCharRec, *PFR_BitmapChar;
 
 
-  typedef enum  PFR_StrikeFlags_
-  {
-    PFR_STRIKE_2BYTE_COUNT  = 0x10,
-    PFR_STRIKE_3BYTE_OFFSET = 0x08,
-    PFR_STRIKE_3BYTE_SIZE   = 0x04,
-    PFR_STRIKE_2BYTE_YPPM   = 0x02,
-    PFR_STRIKE_2BYTE_XPPM   = 0x01
+#define PFR_STRIKE_2BYTE_XPPM    0x01U
+#define PFR_STRIKE_2BYTE_YPPM    0x02U
+#define PFR_STRIKE_3BYTE_SIZE    0x04U
+#define PFR_STRIKE_3BYTE_OFFSET  0x08U
+#define PFR_STRIKE_2BYTE_COUNT   0x10U
 
-  } PFR_StrikeFlags;
 
-
   typedef struct  PFR_StrikeRec_
   {
     FT_UInt         x_ppm;
@@ -266,40 +249,31 @@
   } PFR_PhyFontRec, *PFR_PhyFont;
 
 
-  typedef enum  PFR_PhyFlags_
-  {
-    PFR_PHY_EXTRA_ITEMS      = 0x80,
-    PFR_PHY_3BYTE_GPS_OFFSET = 0x20,
-    PFR_PHY_2BYTE_GPS_SIZE   = 0x10,
-    PFR_PHY_ASCII_CODE       = 0x08,
-    PFR_PHY_PROPORTIONAL     = 0x04,
-    PFR_PHY_2BYTE_CHARCODE   = 0x02,
-    PFR_PHY_VERTICAL         = 0x01
+#define PFR_PHY_VERTICAL          0x01U
+#define PFR_PHY_2BYTE_CHARCODE    0x02U
+#define PFR_PHY_PROPORTIONAL      0x04U
+#define PFR_PHY_ASCII_CODE        0x08U
+#define PFR_PHY_2BYTE_GPS_SIZE    0x10U
+#define PFR_PHY_3BYTE_GPS_OFFSET  0x20U
+#define PFR_PHY_EXTRA_ITEMS       0x80U
 
-  } PFR_PhyFlags;
 
+#define PFR_KERN_2BYTE_CHAR  0x01U
+#define PFR_KERN_2BYTE_ADJ   0x02U
 
-  typedef enum PFR_KernFlags_
-  {
-    PFR_KERN_2BYTE_CHAR  = 0x01,
-    PFR_KERN_2BYTE_ADJ   = 0x02
 
-  } PFR_KernFlags;
+  /************************************************************************/
 
+#define PFR_GLYPH_YCOUNT         0x01U
+#define PFR_GLYPH_XCOUNT         0x02U
+#define PFR_GLYPH_1BYTE_XYCOUNT  0x04U
 
-  /************************************************************************/
+#define PFR_GLYPH_SINGLE_EXTRA_ITEMS    0x08U
+#define PFR_GLYPH_COMPOUND_EXTRA_ITEMS  0x40U
 
-  typedef enum  PFR_GlyphFlags_
-  {
-    PFR_GLYPH_IS_COMPOUND   = 0x80,
-    PFR_GLYPH_EXTRA_ITEMS   = 0x08,
-    PFR_GLYPH_1BYTE_XYCOUNT = 0x04,
-    PFR_GLYPH_XCOUNT        = 0x02,
-    PFR_GLYPH_YCOUNT        = 0x01
+#define PFR_GLYPH_IS_COMPOUND  0x80U
 
-  } PFR_GlyphFlags;
 
-
   /* controlled coordinate */
   typedef struct  PFR_CoordRec_
   {
@@ -321,16 +295,12 @@
   } PFR_SubGlyphRec, *PFR_SubGlyph;
 
 
-  typedef enum  PFR_SubgGlyphFlags_
-  {
-    PFR_SUBGLYPH_3BYTE_OFFSET = 0x80,
-    PFR_SUBGLYPH_2BYTE_SIZE   = 0x40,
-    PFR_SUBGLYPH_YSCALE       = 0x20,
-    PFR_SUBGLYPH_XSCALE       = 0x10
+#define PFR_SUBGLYPH_XSCALE        0x10U
+#define PFR_SUBGLYPH_YSCALE        0x20U
+#define PFR_SUBGLYPH_2BYTE_SIZE    0x40U
+#define PFR_SUBGLYPH_3BYTE_OFFSET  0x80U
 
-  } PFR_SubGlyphFlags;
 
-
   typedef struct  PFR_GlyphRec_
   {
     FT_Byte           format;

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/psaux/psobjs.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/psaux/psobjs.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/psaux/psobjs.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1087,9 +1087,9 @@
 
     for ( ; count > 0; count--, idx++ )
     {
-      FT_Byte*    q = (FT_Byte*)objects[idx] + field->offset;
+      FT_Byte*    q      = (FT_Byte*)objects[idx] + field->offset;
       FT_Long     val;
-      FT_String*  string;
+      FT_String*  string = NULL;
 
 
       skip_spaces( &cur, limit );
@@ -1217,7 +1217,7 @@
       case T1_FIELD_TYPE_MM_BBOX:
         {
           FT_Memory  memory = parser->memory;
-          FT_Fixed*  temp;
+          FT_Fixed*  temp   = NULL;
           FT_Int     result;
           FT_UInt    i;
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/pshinter/pshalgo.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/pshinter/pshalgo.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/pshinter/pshalgo.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -779,7 +779,7 @@
            * It turns out though that minimizing the total number of lit
            * pixels is also important, so position C), with one edge
            * aligned with a pixel boundary is actually preferable
-           * to A).  There are also more possibile positions for C) than
+           * to A).  There are also more possible positions for C) than
            * for A) or B), so it involves less distortion of the overall
            * character shape.
            */
@@ -802,7 +802,7 @@
             }
 
             /* We choose between B) and C) above based on the amount
-             * of fractinal stem width; for small amounts, choose
+             * of fractional stem width; for small amounts, choose
              * C) always, for large amounts, B) always, and inbetween,
              * pick whichever one involves less stem movement.
              */

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/pshinter/pshglob.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/pshinter/pshglob.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/pshinter/pshglob.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -80,7 +80,7 @@
 
 #if 0
 
-  /* org_width is is font units, result in device pixels, 26.6 format */
+  /* org_width is in font units, result in device pixels, 26.6 format */
   FT_LOCAL_DEF( FT_Pos )
   psh_dimension_snap_width( PSH_Dimension  dimension,
                             FT_Int         org_width )

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/raster/ftraster.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/raster/ftraster.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/raster/ftraster.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -179,8 +179,6 @@
 #define FT_ERR_XCAT( x, y )  x ## y
 #define FT_ERR_CAT( x, y )   FT_ERR_XCAT( x, y )
 
-#define FT_MAX( a, b )  ( (a) > (b) ? (a) : (b) )
-
   /* This macro is used to indicate that a function parameter is unused. */
   /* Its purpose is simply to reduce compiler warnings.  Note also that  */
   /* simply defining it as `(void)x' doesn't avoid warnings with certain */
@@ -459,6 +457,12 @@
 #define IS_TOP_OVERSHOOT( x )    \
           (Bool)( x - FLOOR( x ) >= ras.precision_half )
 
+#if FT_RENDER_POOL_SIZE > 2048
+#define FT_MAX_BLACK_POOL  ( FT_RENDER_POOL_SIZE / sizeof ( Long ) )
+#else
+#define FT_MAX_BLACK_POOL  ( 2048 / sizeof ( Long ) )
+#endif
+
   /* The most used variables are positioned at the top of the structure. */
   /* Thus, their offset can be coded with less opcodes, resulting in a   */
   /* smaller executable.                                                 */
@@ -3106,9 +3110,9 @@
 
 
   static void
-  ft_black_reset( black_PRaster  raster,
-                  char*          pool_base,
-                  Long           pool_size )
+  ft_black_reset( FT_Raster  raster,
+                  PByte      pool_base,
+                  ULong      pool_size )
   {
     FT_UNUSED( raster );
     FT_UNUSED( pool_base );
@@ -3117,13 +3121,13 @@
 
 
   static int
-  ft_black_set_mode( black_PRaster  raster,
-                     ULong          mode,
-                     const char*    palette )
+  ft_black_set_mode( FT_Raster  raster,
+                     ULong      mode,
+                     void*      args )
   {
     FT_UNUSED( raster );
     FT_UNUSED( mode );
-    FT_UNUSED( palette );
+    FT_UNUSED( args );
 
     return 0;
   }
@@ -3130,7 +3134,7 @@
 
 
   static int
-  ft_black_render( black_PRaster            raster,
+  ft_black_render( FT_Raster                raster,
                    const FT_Raster_Params*  params )
   {
     const FT_Outline*  outline    = (const FT_Outline*)params->source;
@@ -3138,7 +3142,7 @@
 
     black_TWorker  worker[1];
 
-    Long  buffer[FT_MAX( FT_RENDER_POOL_SIZE, 2048 ) / sizeof ( Long )];
+    Long  buffer[FT_MAX_BLACK_POOL];
 
 
     if ( !raster )
@@ -3175,6 +3179,20 @@
     if ( !target_map->buffer )
       return FT_THROW( Invalid );
 
+    /* reject too large outline coordinates */
+    {
+      FT_Vector*  vec   = outline->points;
+      FT_Vector*  limit = vec + outline->n_points;
+
+
+      for ( ; vec < limit; vec++ )
+      {
+        if ( vec->x < -0x1000000L || vec->x > 0x1000000L ||
+             vec->y < -0x1000000L || vec->y > 0x1000000L )
+         return FT_THROW( Invalid );
+      }
+    }
+
     ras.outline = *outline;
     ras.target  = *target_map;
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/sfobjs.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/sfobjs.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/sfobjs.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -949,6 +949,10 @@
              instance_size * num_instances > fvar_len )
         num_instances = 0;
 
+      /* we don't support Multiple Master CFFs yet */
+      if ( !face->goto_table( face, TTAG_CFF, stream, 0 ) )
+        num_instances = 0;
+
       /* we support at most 2^15 - 1 instances */
       if ( num_instances >= ( 1U << 15 ) - 1 )
       {

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/ttcmap.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/ttcmap.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/ttcmap.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1245,7 +1245,7 @@
             mid = max + 1;
 
           /* search in segments before the current segment */
-          for ( i = max ; i > 0; i-- )
+          for ( i = max; i > 0; i-- )
           {
             FT_UInt   prev_end;
             FT_Byte*  old_p;
@@ -3104,7 +3104,7 @@
 
       if ( char_code < start )
         max = mid;
-      else if ( char_code > start+cnt )
+      else if ( char_code > start + cnt )
         min = mid + 1;
       else
         return TRUE;

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/ttpost.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/ttpost.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/ttpost.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -2,7 +2,7 @@
 /*                                                                         */
 /*  ttpost.c                                                               */
 /*                                                                         */
-/*    Postcript name table processing for TrueType and OpenType fonts      */
+/*    PostScript name table processing for TrueType and OpenType fonts     */
 /*    (body).                                                              */
 /*                                                                         */
 /*  Copyright 1996-2016 by                                                 */

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/ttpost.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/ttpost.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/sfnt/ttpost.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -2,7 +2,7 @@
 /*                                                                         */
 /*  ttpost.h                                                               */
 /*                                                                         */
-/*    Postcript name table processing for TrueType and OpenType fonts      */
+/*    PostScript name table processing for TrueType and OpenType fonts     */
 /*    (specification).                                                     */
 /*                                                                         */
 /*  Copyright 1996-2016 by                                                 */

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/smooth/ftgrays.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/smooth/ftgrays.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/smooth/ftgrays.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -106,6 +106,7 @@
 #define FT_BEGIN_STMNT  do {
 #define FT_END_STMNT    } while ( 0 )
 
+#define FT_MIN( a, b )  ( (a) < (b) ? (a) : (b) )
 #define FT_MAX( a, b )  ( (a) > (b) ? (a) : (b) )
 #define FT_ABS( a )     ( (a) < 0 ? -(a) : (a) )
 
@@ -302,7 +303,7 @@
 
 #else /* FT_STATIC_RASTER */
 
-#define RAS_ARG   /* empty */
+#define RAS_ARG   void
 #define RAS_ARG_  /* empty */
 #define RAS_VAR   /* empty */
 #define RAS_VAR_  /* empty */
@@ -318,19 +319,19 @@
 #undef TRUNC
 #undef SCALED
 
-#define ONE_PIXEL       ( 1L << PIXEL_BITS )
+#define ONE_PIXEL       ( 1 << PIXEL_BITS )
 #define TRUNC( x )      ( (TCoord)( (x) >> PIXEL_BITS ) )
-#define SUBPIXELS( x )  ( (TPos)(x) << PIXEL_BITS )
+#define SUBPIXELS( x )  ( (TPos)(x) * ONE_PIXEL )
 #define FLOOR( x )      ( (x) & -ONE_PIXEL )
 #define CEILING( x )    ( ( (x) + ONE_PIXEL - 1 ) & -ONE_PIXEL )
 #define ROUND( x )      ( ( (x) + ONE_PIXEL / 2 ) & -ONE_PIXEL )
 
 #if PIXEL_BITS >= 6
-#define UPSCALE( x )    ( (x) << ( PIXEL_BITS - 6 ) )
+#define UPSCALE( x )    ( (x) * ( ONE_PIXEL >> 6 ) )
 #define DOWNSCALE( x )  ( (x) >> ( PIXEL_BITS - 6 ) )
 #else
 #define UPSCALE( x )    ( (x) >> ( 6 - PIXEL_BITS ) )
-#define DOWNSCALE( x )  ( (x) << ( 6 - PIXEL_BITS ) )
+#define DOWNSCALE( x )  ( (x) * ( 64 >> PIXEL_BITS ) )
 #endif
 
 
@@ -369,7 +370,7 @@
 
 
   /* These macros speed up repetitive divisions by replacing them */
-  /* with multiplications and right shifts.                       */ 
+  /* with multiplications and right shifts.                       */
 #define FT_UDIVPREP( b )                                       \
   long  b ## _r = (long)( FT_ULONG_MAX >> PIXEL_BITS ) / ( b )
 #define FT_UDIV( a, b )                                        \
@@ -386,38 +387,16 @@
   /* need to define them to "float" or "double" when experimenting with   */
   /* new algorithms                                                       */
 
-  typedef long  TCoord;   /* integer scanline/pixel coordinate */
   typedef long  TPos;     /* sub-pixel coordinate              */
+  typedef int   TCoord;   /* integer scanline/pixel coordinate */
+  typedef int   TArea;    /* cell areas, coordinate products   */
 
-  /* determine the type used to store cell areas.  This normally takes at */
-  /* least PIXEL_BITS*2 + 1 bits.  On 16-bit systems, we need to use      */
-  /* `long' instead of `int', otherwise bad things happen                 */
 
-#if PIXEL_BITS <= 7
-
-  typedef int  TArea;
-
-#else /* PIXEL_BITS >= 8 */
-
-  /* approximately determine the size of integers using an ANSI-C header */
-#if FT_UINT_MAX == 0xFFFFU
-  typedef long  TArea;
-#else
-  typedef int   TArea;
-#endif
-
-#endif /* PIXEL_BITS >= 8 */
-
-
-  /* maximum number of gray spans in a call to the span callback */
-#define FT_MAX_GRAY_SPANS  32
-
-
   typedef struct TCell_*  PCell;
 
   typedef struct  TCell_
   {
-    TPos    x;     /* same with gray_TWorker.ex    */
+    TCoord  x;     /* same with gray_TWorker.ex    */
     TCoord  cover; /* same with gray_TWorker.cover */
     TArea   area;
     PCell   next;
@@ -425,6 +404,17 @@
   } TCell;
 
 
+  /* maximum number of gray spans in a call to the span callback */
+#define FT_MAX_GRAY_SPANS  32
+
+  /* maximum number of gray cells in the buffer */
+#if FT_RENDER_POOL_SIZE > 2048
+#define FT_MAX_GRAY_POOL  ( FT_RENDER_POOL_SIZE / sizeof ( TCell ) )
+#else
+#define FT_MAX_GRAY_POOL  ( 2048 / sizeof ( TCell ) )
+#endif
+
+
 #if defined( _MSC_VER )      /* Visual C++ (and Intel C++) */
   /* We disable the warning `structure was padded due to   */
   /* __declspec(align())' in order to compile cleanly with */
@@ -438,9 +428,9 @@
     ft_jmp_buf  jump_buffer;
 
     TCoord  ex, ey;
-    TPos    min_ex, max_ex;
-    TPos    min_ey, max_ey;
-    TPos    count_ex, count_ey;
+    TCoord  min_ex, max_ex;
+    TCoord  min_ey, max_ey;
+    TCoord  count_ex, count_ey;
 
     TArea   area;
     TCoord  cover;
@@ -452,12 +442,8 @@
 
     TPos    x,  y;
 
-    FT_Vector   bez_stack[32 * 3 + 1];
-    int         lev_stack[32];
-
     FT_Outline  outline;
     FT_Bitmap   target;
-    FT_BBox     clip_box;
 
     FT_Span     gray_spans[FT_MAX_GRAY_SPANS];
     int         num_gray_spans;
@@ -466,14 +452,7 @@
     void*                render_span_data;
     int                  span_y;
 
-    int  band_size;
-    int  band_shoot;
-
-    void*       buffer;
-    long        buffer_size;
-
     PCell*     ycells;
-    TPos       ycount;
 
   } gray_TWorker, *gray_PWorker;
 
@@ -496,72 +475,33 @@
   } gray_TRaster, *gray_PRaster;
 
 
+#ifdef FT_DEBUG_LEVEL_TRACE
 
-  /*************************************************************************/
-  /*                                                                       */
-  /* Initialize the cells table.                                           */
-  /*                                                                       */
+  /* to be called while in the debugger --                                */
+  /* this function causes a compiler warning since it is unused otherwise */
   static void
-  gray_init_cells( RAS_ARG_ void*  buffer,
-                            long   byte_size )
+  gray_dump_cells( RAS_ARG )
   {
-    ras.buffer      = buffer;
-    ras.buffer_size = byte_size;
+    int  yindex;
 
-    ras.ycells      = (PCell*) buffer;
-    ras.cells       = NULL;
-    ras.max_cells   = 0;
-    ras.num_cells   = 0;
-    ras.area        = 0;
-    ras.cover       = 0;
-    ras.invalid     = 1;
-  }
 
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Compute the outline bounding box.                                     */
-  /*                                                                       */
-  static void
-  gray_compute_cbox( RAS_ARG )
-  {
-    FT_Outline*  outline = &ras.outline;
-    FT_Vector*   vec     = outline->points;
-    FT_Vector*   limit   = vec + outline->n_points;
-
-
-    if ( outline->n_points <= 0 )
+    for ( yindex = 0; yindex < ras.count_ey; yindex++ )
     {
-      ras.min_ex = ras.max_ex = 0;
-      ras.min_ey = ras.max_ey = 0;
-      return;
-    }
+      PCell  cell;
 
-    ras.min_ex = ras.max_ex = vec->x;
-    ras.min_ey = ras.max_ey = vec->y;
 
-    vec++;
+      printf( "%3d:", yindex );
 
-    for ( ; vec < limit; vec++ )
-    {
-      TPos  x = vec->x;
-      TPos  y = vec->y;
-
-
-      if ( x < ras.min_ex ) ras.min_ex = x;
-      if ( x > ras.max_ex ) ras.max_ex = x;
-      if ( y < ras.min_ey ) ras.min_ey = y;
-      if ( y > ras.max_ey ) ras.max_ey = y;
+      for ( cell = ras.ycells[yindex]; cell != NULL; cell = cell->next )
+        printf( " (%3d, c:%4d, a:%6d)",
+                cell->x, cell->cover, cell->area );
+      printf( "\n" );
     }
-
-    /* truncate the bounding box to integer pixels */
-    ras.min_ex = ras.min_ex >> 6;
-    ras.min_ey = ras.min_ey >> 6;
-    ras.max_ex = ( ras.max_ex + 63 ) >> 6;
-    ras.max_ey = ( ras.max_ey + 63 ) >> 6;
   }
 
+#endif /* FT_DEBUG_LEVEL_TRACE */
 
+
   /*************************************************************************/
   /*                                                                       */
   /* Record the current cell in the table.                                 */
@@ -570,7 +510,7 @@
   gray_find_cell( RAS_ARG )
   {
     PCell  *pcell, cell;
-    TPos    x = ras.ex;
+    TCoord  x = ras.ex;
 
 
     if ( x > ras.count_ex )
@@ -675,10 +615,10 @@
                             TCoord  ey )
   {
     if ( ex > ras.max_ex )
-      ex = (TCoord)( ras.max_ex );
+      ex = ras.max_ex;
 
     if ( ex < ras.min_ex )
-      ex = (TCoord)( ras.min_ex - 1 );
+      ex = ras.min_ex - 1;
 
     ras.area    = 0;
     ras.cover   = 0;
@@ -689,7 +629,7 @@
     gray_set_cell( RAS_VAR_ ex, ey );
   }
 
-#if 0
+#ifndef FT_LONG64
 
   /*************************************************************************/
   /*                                                                       */
@@ -702,17 +642,13 @@
                                  TPos    x2,
                                  TCoord  y2 )
   {
-    TCoord  ex1, ex2, fx1, fx2, delta, mod;
-    long    p, first, dx;
+    TCoord  ex1, ex2, fx1, fx2, first, delta, mod;
+    TPos    p, dx;
     int     incr;
 
 
-    dx = x2 - x1;
-
     ex1 = TRUNC( x1 );
     ex2 = TRUNC( x2 );
-    fx1 = (TCoord)( x1 - SUBPIXELS( ex1 ) );
-    fx2 = (TCoord)( x2 - SUBPIXELS( ex2 ) );
 
     /* trivial case.  Happens often */
     if ( y1 == y2 )
@@ -721,6 +657,9 @@
       return;
     }
 
+    fx1 = (TCoord)( x1 - SUBPIXELS( ex1 ) );
+    fx2 = (TCoord)( x2 - SUBPIXELS( ex2 ) );
+
     /* everything is located in a single cell.  That is easy! */
     /*                                                        */
     if ( ex1 == ex2 )
@@ -737,6 +676,7 @@
     p     = ( ONE_PIXEL - fx1 ) * ( y2 - y1 );
     first = ONE_PIXEL;
     incr  = 1;
+    dx    = x2 - x1;
 
     if ( dx < 0 )
     {
@@ -797,25 +737,22 @@
   gray_render_line( RAS_ARG_ TPos  to_x,
                              TPos  to_y )
   {
-    TCoord  ey1, ey2, fy1, fy2, mod;
-    TPos    dx, dy, x, x2;
-    long    p, first;
-    int     delta, rem, lift, incr;
+    TCoord  ey1, ey2, fy1, fy2, first, delta, mod;
+    TPos    p, dx, dy, x, x2;
+    int     incr;
 
 
     ey1 = TRUNC( ras.y );
     ey2 = TRUNC( to_y );     /* if (ey2 >= ras.max_ey) ey2 = ras.max_ey-1; */
-    fy1 = (TCoord)( ras.y - SUBPIXELS( ey1 ) );
-    fy2 = (TCoord)( to_y - SUBPIXELS( ey2 ) );
 
-    dx = to_x - ras.x;
-    dy = to_y - ras.y;
-
     /* perform vertical clipping */
     if ( ( ey1 >= ras.max_ey && ey2 >= ras.max_ey ) ||
          ( ey1 <  ras.min_ey && ey2 <  ras.min_ey ) )
       goto End;
 
+    fy1 = (TCoord)( ras.y - SUBPIXELS( ey1 ) );
+    fy2 = (TCoord)( to_y - SUBPIXELS( ey2 ) );
+
     /* everything is on a single scanline */
     if ( ey1 == ey2 )
     {
@@ -823,6 +760,9 @@
       goto End;
     }
 
+    dx = to_x - ras.x;
+    dy = to_y - ras.y;
+
     /* vertical line - avoid calling gray_render_scanline */
     incr = 1;
 
@@ -840,7 +780,7 @@
         incr  = -1;
       }
 
-      delta      = (int)( first - fy1 );
+      delta      = first - fy1;
       ras.area  += (TArea)two_fx * delta;
       ras.cover += delta;
       ey1       += incr;
@@ -847,7 +787,7 @@
 
       gray_set_cell( RAS_VAR_ ex, ey1 );
 
-      delta = (int)( first + first - ONE_PIXEL );
+      delta = first + first - ONE_PIXEL;
       area  = (TArea)two_fx * delta;
       while ( ey1 != ey2 )
       {
@@ -858,7 +798,7 @@
         gray_set_cell( RAS_VAR_ ex, ey1 );
       }
 
-      delta      = (int)( fy2 - ONE_PIXEL + first );
+      delta      = fy2 - ONE_PIXEL + first;
       ras.area  += (TArea)two_fx * delta;
       ras.cover += delta;
 
@@ -878,10 +818,10 @@
       dy    = -dy;
     }
 
-    FT_DIV_MOD( int, p, dy, delta, mod );
+    FT_DIV_MOD( TCoord, p, dy, delta, mod );
 
     x = ras.x + delta;
-    gray_render_scanline( RAS_VAR_ ey1, ras.x, fy1, x, (TCoord)first );
+    gray_render_scanline( RAS_VAR_ ey1, ras.x, fy1, x, first );
 
     ey1 += incr;
     gray_set_cell( RAS_VAR_ TRUNC( x ), ey1 );
@@ -888,10 +828,13 @@
 
     if ( ey1 != ey2 )
     {
-      p     = ONE_PIXEL * dx;
-      FT_DIV_MOD( int, p, dy, lift, rem );
-      mod -= (int)dy;
+      TCoord  lift, rem;
 
+
+      p    = ONE_PIXEL * dx;
+      FT_DIV_MOD( TCoord, p, dy, lift, rem );
+      mod -= (TCoord)dy;
+
       do
       {
         delta = lift;
@@ -898,14 +841,14 @@
         mod  += rem;
         if ( mod >= 0 )
         {
-          mod -= (int)dy;
+          mod -= (TCoord)dy;
           delta++;
         }
 
         x2 = x + delta;
-        gray_render_scanline( RAS_VAR_ ey1, x,
-                                       (TCoord)( ONE_PIXEL - first ), x2,
-                                       (TCoord)first );
+        gray_render_scanline( RAS_VAR_ ey1,
+                                       x, ONE_PIXEL - first,
+                                       x2, first );
         x = x2;
 
         ey1 += incr;
@@ -913,9 +856,9 @@
       } while ( ey1 != ey2 );
     }
 
-    gray_render_scanline( RAS_VAR_ ey1, x,
-                                   (TCoord)( ONE_PIXEL - first ), to_x,
-                                   fy2 );
+    gray_render_scanline( RAS_VAR_ ey1,
+                                   x, ONE_PIXEL - first,
+                                   to_x, fy2 );
 
   End:
     ras.x       = to_x;
@@ -936,8 +879,6 @@
     TCoord  ex1, ex2, ey1, ey2;
 
 
-    ex1 = TRUNC( ras.x );
-    ex2 = TRUNC( to_x );
     ey1 = TRUNC( ras.y );
     ey2 = TRUNC( to_y );
 
@@ -946,12 +887,15 @@
          ( ey1 <  ras.min_ey && ey2 <  ras.min_ey ) )
       goto End;
 
-    dx = to_x - ras.x;
-    dy = to_y - ras.y;
+    ex1 = TRUNC( ras.x );
+    ex2 = TRUNC( to_x );
 
     fx1 = ras.x - SUBPIXELS( ex1 );
     fy1 = ras.y - SUBPIXELS( ey1 );
 
+    dx = to_x - ras.x;
+    dy = to_y - ras.y;
+
     if ( ex1 == ex2 && ey1 == ey2 )       /* inside one cell */
       ;
     else if ( dy == 0 ) /* ex1 != ex2 */  /* any horizontal line */
@@ -984,7 +928,7 @@
     }
     else                                  /* any other line */
     {
-      TArea  prod = dx * fy1 - dy * fx1;
+      TPos  prod = dx * fy1 - dy * fx1;
       FT_UDIVPREP( dx );
       FT_UDIVPREP( dy );
 
@@ -1084,16 +1028,12 @@
   gray_render_conic( RAS_ARG_ const FT_Vector*  control,
                               const FT_Vector*  to )
   {
+    FT_Vector   bez_stack[16 * 2 + 1];  /* enough to accommodate bisections */
+    FT_Vector*  arc = bez_stack;
     TPos        dx, dy;
-    TPos        min, max, y;
-    int         top, level;
-    int*        levels;
-    FT_Vector*  arc;
+    int         draw, split;
 
 
-    levels = ras.lev_stack;
-
-    arc      = ras.bez_stack;
     arc[0].x = UPSCALE( to->x );
     arc[0].y = UPSCALE( to->y );
     arc[1].x = UPSCALE( control->x );
@@ -1100,57 +1040,52 @@
     arc[1].y = UPSCALE( control->y );
     arc[2].x = ras.x;
     arc[2].y = ras.y;
-    top      = 0;
 
+    /* short-cut the arc that crosses the current band */
+    if ( ( TRUNC( arc[0].y ) >= ras.max_ey &&
+           TRUNC( arc[1].y ) >= ras.max_ey &&
+           TRUNC( arc[2].y ) >= ras.max_ey ) ||
+         ( TRUNC( arc[0].y ) <  ras.min_ey &&
+           TRUNC( arc[1].y ) <  ras.min_ey &&
+           TRUNC( arc[2].y ) <  ras.min_ey ) )
+    {
+      ras.x = arc[0].x;
+      ras.y = arc[0].y;
+      return;
+    }
+
     dx = FT_ABS( arc[2].x + arc[0].x - 2 * arc[1].x );
     dy = FT_ABS( arc[2].y + arc[0].y - 2 * arc[1].y );
     if ( dx < dy )
       dx = dy;
 
-    if ( dx < ONE_PIXEL / 4 )
-      goto Draw;
-
-    /* short-cut the arc that crosses the current band */
-    min = max = arc[0].y;
-
-    y = arc[1].y;
-    if ( y < min ) min = y;
-    if ( y > max ) max = y;
-
-    y = arc[2].y;
-    if ( y < min ) min = y;
-    if ( y > max ) max = y;
-
-    if ( TRUNC( min ) >= ras.max_ey || TRUNC( max ) < ras.min_ey )
-      goto Draw;
-
-    level = 0;
-    do
+    /* We can calculate the number of necessary bisections because  */
+    /* each bisection predictably reduces deviation exactly 4-fold. */
+    /* Even 32-bit deviation would vanish after 16 bisections.      */
+    draw = 1;
+    while ( dx > ONE_PIXEL / 4 )
     {
-      dx >>= 2;
-      level++;
-    } while ( dx > ONE_PIXEL / 4 );
+      dx   >>= 2;
+      draw <<= 1;
+    }
 
-    levels[0] = level;
-
+    /* We use decrement counter to count the total number of segments */
+    /* to draw starting from 2^level. Before each draw we split as    */
+    /* many times as there are trailing zeros in the counter.         */
     do
     {
-      level = levels[top];
-      if ( level > 0 )
+      split = 1;
+      while ( ( draw & split ) == 0 )
       {
         gray_split_conic( arc );
         arc += 2;
-        top++;
-        levels[top] = levels[top - 1] = level - 1;
-        continue;
+        split <<= 1;
       }
 
-    Draw:
       gray_render_line( RAS_VAR_ arc[0].x, arc[0].y );
-      top--;
       arc -= 2;
 
-    } while ( top >= 0 );
+    } while ( --draw );
   }
 
 
@@ -1187,11 +1122,13 @@
                               const FT_Vector*  control2,
                               const FT_Vector*  to )
   {
-    FT_Vector*  arc;
-    TPos        min, max, y;
+    FT_Vector   bez_stack[16 * 3 + 1];  /* enough to accommodate bisections */
+    FT_Vector*  arc = bez_stack;
+    TPos        dx, dy, dx_, dy_;
+    TPos        dx1, dy1, dx2, dy2;
+    TPos        L, s, s_limit;
 
 
-    arc      = ras.bez_stack;
     arc[0].x = UPSCALE( to->x );
     arc[0].y = UPSCALE( to->y );
     arc[1].x = UPSCALE( control2->x );
@@ -1201,30 +1138,21 @@
     arc[3].x = ras.x;
     arc[3].y = ras.y;
 
-    /* Short-cut the arc that crosses the current band. */
-    min = max = arc[0].y;
+    /* short-cut the arc that crosses the current band */
+    if ( ( TRUNC( arc[0].y ) >= ras.max_ey &&
+           TRUNC( arc[1].y ) >= ras.max_ey &&
+           TRUNC( arc[2].y ) >= ras.max_ey &&
+           TRUNC( arc[3].y ) >= ras.max_ey ) ||
+         ( TRUNC( arc[0].y ) <  ras.min_ey &&
+           TRUNC( arc[1].y ) <  ras.min_ey &&
+           TRUNC( arc[2].y ) <  ras.min_ey &&
+           TRUNC( arc[3].y ) <  ras.min_ey ) )
+    {
+      ras.x = arc[0].x;
+      ras.y = arc[0].y;
+      return;
+    }
 
-    y = arc[1].y;
-    if ( y < min )
-      min = y;
-    if ( y > max )
-      max = y;
-
-    y = arc[2].y;
-    if ( y < min )
-      min = y;
-    if ( y > max )
-      max = y;
-
-    y = arc[3].y;
-    if ( y < min )
-      min = y;
-    if ( y > max )
-      max = y;
-
-    if ( TRUNC( min ) >= ras.max_ey || TRUNC( max ) < ras.min_ey )
-      goto Draw;
-
     for (;;)
     {
       /* Decide whether to split or draw. See `Rapid Termination          */
@@ -1232,64 +1160,53 @@
       /* F. Hain, at                                                      */
       /* http://www.cis.southalabama.edu/~hain/general/Publications/Bezier/Camera-ready%20CISST02%202.pdf */
 
-      {
-        TPos  dx, dy, dx_, dy_;
-        TPos  dx1, dy1, dx2, dy2;
-        TPos  L, s, s_limit;
+      /* dx and dy are x and y components of the P0-P3 chord vector. */
+      dx = dx_ = arc[3].x - arc[0].x;
+      dy = dy_ = arc[3].y - arc[0].y;
 
+      L = FT_HYPOT( dx_, dy_ );
 
-        /* dx and dy are x and y components of the P0-P3 chord vector. */
-        dx = dx_ = arc[3].x - arc[0].x;
-        dy = dy_ = arc[3].y - arc[0].y;
+      /* Avoid possible arithmetic overflow below by splitting. */
+      if ( L > 32767 )
+        goto Split;
 
-        L = FT_HYPOT( dx_, dy_ );
+      /* Max deviation may be as much as (s/L) * 3/4 (if Hain's v = 1). */
+      s_limit = L * (TPos)( ONE_PIXEL / 6 );
 
-        /* Avoid possible arithmetic overflow below by splitting. */
-        if ( L > 32767 )
-          goto Split;
+      /* s is L * the perpendicular distance from P1 to the line P0-P3. */
+      dx1 = arc[1].x - arc[0].x;
+      dy1 = arc[1].y - arc[0].y;
+      s = FT_ABS( dy * dx1 - dx * dy1 );
 
-        /* Max deviation may be as much as (s/L) * 3/4 (if Hain's v = 1). */
-        s_limit = L * (TPos)( ONE_PIXEL / 6 );
+      if ( s > s_limit )
+        goto Split;
 
-        /* s is L * the perpendicular distance from P1 to the line P0-P3. */
-        dx1 = arc[1].x - arc[0].x;
-        dy1 = arc[1].y - arc[0].y;
-        s = FT_ABS( dy * dx1 - dx * dy1 );
+      /* s is L * the perpendicular distance from P2 to the line P0-P3. */
+      dx2 = arc[2].x - arc[0].x;
+      dy2 = arc[2].y - arc[0].y;
+      s = FT_ABS( dy * dx2 - dx * dy2 );
 
-        if ( s > s_limit )
-          goto Split;
+      if ( s > s_limit )
+        goto Split;
 
-        /* s is L * the perpendicular distance from P2 to the line P0-P3. */
-        dx2 = arc[2].x - arc[0].x;
-        dy2 = arc[2].y - arc[0].y;
-        s = FT_ABS( dy * dx2 - dx * dy2 );
+      /* Split super curvy segments where the off points are so far
+         from the chord that the angles P0-P1-P3 or P0-P2-P3 become
+         acute as detected by appropriate dot products. */
+      if ( dx1 * ( dx1 - dx ) + dy1 * ( dy1 - dy ) > 0 ||
+           dx2 * ( dx2 - dx ) + dy2 * ( dy2 - dy ) > 0 )
+        goto Split;
 
-        if ( s > s_limit )
-          goto Split;
+      gray_render_line( RAS_VAR_ arc[0].x, arc[0].y );
 
-        /* Split super curvy segments where the off points are so far
-           from the chord that the angles P0-P1-P3 or P0-P2-P3 become
-           acute as detected by appropriate dot products. */
-        if ( dx1 * ( dx1 - dx ) + dy1 * ( dy1 - dy ) > 0 ||
-             dx2 * ( dx2 - dx ) + dy2 * ( dy2 - dy ) > 0 )
-          goto Split;
+      if ( arc == bez_stack )
+        return;
 
-        /* No reason to split. */
-        goto Draw;
-      }
+      arc -= 3;
+      continue;
 
     Split:
       gray_split_cubic( arc );
       arc += 3;
-      continue;
-
-    Draw:
-      gray_render_line( RAS_VAR_ arc[0].x, arc[0].y );
-
-      if ( arc == ras.bez_stack )
-        return;
-
-      arc -= 3;
     }
   }
 
@@ -1311,8 +1228,8 @@
 
     gray_start_cell( RAS_VAR_ TRUNC( x ), TRUNC( y ) );
 
-    worker->x = x;
-    worker->y = y;
+    ras.x = x;
+    ras.y = y;
     return 0;
   }
 
@@ -1369,29 +1286,25 @@
 
       if ( coverage )
       {
+        unsigned char*  q = p + spans->x;
+
+
         /* For small-spans it is faster to do it by ourselves than
          * calling `memset'.  This is mainly due to the cost of the
          * function call.
          */
-        if ( spans->len >= 8 )
-          FT_MEM_SET( p + spans->x, (unsigned char)coverage, spans->len );
-        else
+        switch ( spans->len )
         {
-          unsigned char*  q = p + spans->x;
-
-
-          switch ( spans->len )
-          {
-          case 7: *q++ = (unsigned char)coverage;
-          case 6: *q++ = (unsigned char)coverage;
-          case 5: *q++ = (unsigned char)coverage;
-          case 4: *q++ = (unsigned char)coverage;
-          case 3: *q++ = (unsigned char)coverage;
-          case 2: *q++ = (unsigned char)coverage;
-          case 1: *q   = (unsigned char)coverage;
-          default:
-            ;
-          }
+        case 7: *q++ = coverage;
+        case 6: *q++ = coverage;
+        case 5: *q++ = coverage;
+        case 4: *q++ = coverage;
+        case 3: *q++ = coverage;
+        case 2: *q++ = coverage;
+        case 1: *q   = coverage;
+        case 0: break;
+        default:
+          FT_MEM_SET( q, coverage, spans->len );
         }
       }
     }
@@ -1401,7 +1314,7 @@
   static void
   gray_hline( RAS_ARG_ TCoord  x,
                        TCoord  y,
-                       TPos    area,
+                       TArea   area,
                        TCoord  acount )
   {
     int  coverage;
@@ -1433,17 +1346,9 @@
         coverage = 255;
     }
 
-    y += (TCoord)ras.min_ey;
-    x += (TCoord)ras.min_ex;
+    y += ras.min_ey;
+    x += ras.min_ex;
 
-    /* FT_Span.x is a 16-bit short, so limit our coordinates appropriately */
-    if ( x >= 32767 )
-      x = 32767;
-
-    /* FT_Span.y is an integer, so limit our coordinates appropriately */
-    if ( y >= FT_INT_MAX )
-      y = FT_INT_MAX;
-
     if ( coverage )
     {
       FT_Span*  span;
@@ -1453,10 +1358,10 @@
       /* see whether we can add this span to the current list */
       count = ras.num_gray_spans;
       span  = ras.gray_spans + count - 1;
-      if ( count > 0                          &&
-           ras.span_y == y                    &&
-           (int)span->x + span->len == (int)x &&
-           span->coverage == coverage         )
+      if ( span->coverage == coverage &&
+           span->x + span->len == x   &&
+           ras.span_y == y            &&
+           count > 0                  )
       {
         span->len = (unsigned short)( span->len + acount );
         return;
@@ -1503,48 +1408,21 @@
   }
 
 
-#ifdef FT_DEBUG_LEVEL_TRACE
-
-  /* to be called while in the debugger --                                */
-  /* this function causes a compiler warning since it is unused otherwise */
   static void
-  gray_dump_cells( RAS_ARG )
+  gray_sweep( RAS_ARG )
   {
     int  yindex;
 
 
-    for ( yindex = 0; yindex < ras.ycount; yindex++ )
-    {
-      PCell  cell;
-
-
-      printf( "%3d:", yindex );
-
-      for ( cell = ras.ycells[yindex]; cell != NULL; cell = cell->next )
-        printf( " (%3ld, c:%4ld, a:%6d)", cell->x, cell->cover, cell->area );
-      printf( "\n" );
-    }
-  }
-
-#endif /* FT_DEBUG_LEVEL_TRACE */
-
-
-  static void
-  gray_sweep( RAS_ARG_ const FT_Bitmap*  target )
-  {
-    int  yindex;
-
-    FT_UNUSED( target );
-
-
     if ( ras.num_cells == 0 )
       return;
 
     ras.num_gray_spans = 0;
+    ras.span_y         = 0;
 
     FT_TRACE7(( "gray_sweep: start\n" ));
 
-    for ( yindex = 0; yindex < ras.ycount; yindex++ )
+    for ( yindex = 0; yindex < ras.count_ey; yindex++ )
     {
       PCell   cell  = ras.ycells[yindex];
       TCoord  cover = 0;
@@ -1553,15 +1431,15 @@
 
       for ( ; cell != NULL; cell = cell->next )
       {
-        TPos  area;
+        TArea  area;
 
 
         if ( cell->x > x && cover != 0 )
-          gray_hline( RAS_VAR_ x, yindex, cover * ( ONE_PIXEL * 2 ),
+          gray_hline( RAS_VAR_ x, yindex, (TArea)cover * ( ONE_PIXEL * 2 ),
                       cell->x - x );
 
         cover += cell->cover;
-        area   = cover * ( ONE_PIXEL * 2 ) - cell->area;
+        area   = (TArea)cover * ( ONE_PIXEL * 2 ) - cell->area;
 
         if ( area != 0 && cell->x >= 0 )
           gray_hline( RAS_VAR_ cell->x, yindex, area, 1 );
@@ -1570,7 +1448,7 @@
       }
 
       if ( cover != 0 )
-        gray_hline( RAS_VAR_ x, yindex, cover * ( ONE_PIXEL * 2 ),
+        gray_hline( RAS_VAR_ x, yindex, (TArea)cover * ( ONE_PIXEL * 2 ),
                     ras.count_ex - x );
     }
 
@@ -1605,7 +1483,7 @@
 
   /*************************************************************************/
   /*                                                                       */
-  /*  The following function should only compile in stand-alone mode,      */
+  /*  The following functions should only compile in stand-alone mode,     */
   /*  i.e., when building this component without the rest of FreeType.     */
   /*                                                                       */
   /*************************************************************************/
@@ -1883,12 +1761,87 @@
     return FT_THROW( Invalid_Outline );
   }
 
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    FT_Outline_Get_CBox                                                */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Return an outline's `control box'.  The control box encloses all   */
+  /*    the outline's points, including Bézier control points.  Though it  */
+  /*    coincides with the exact bounding box for most glyphs, it can be   */
+  /*    slightly larger in some situations (like when rotating an outline  */
+  /*    that contains Bézier outside arcs).                                */
+  /*                                                                       */
+  /*    Computing the control box is very fast, while getting the bounding */
+  /*    box can take much more time as it needs to walk over all segments  */
+  /*    and arcs in the outline.  To get the latter, you can use the       */
+  /*    `ftbbox' component, which is dedicated to this single task.        */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    outline :: A pointer to the source outline descriptor.             */
+  /*                                                                       */
+  /* <Output>                                                              */
+  /*    acbox   :: The outline's control box.                              */
+  /*                                                                       */
+  /* <Note>                                                                */
+  /*    See @FT_Glyph_Get_CBox for a discussion of tricky fonts.           */
+  /*                                                                       */
+
+  static void
+  FT_Outline_Get_CBox( const FT_Outline*  outline,
+                       FT_BBox           *acbox )
+  {
+    TPos  xMin, yMin, xMax, yMax;
+
+
+    if ( outline && acbox )
+    {
+      if ( outline->n_points == 0 )
+      {
+        xMin = 0;
+        yMin = 0;
+        xMax = 0;
+        yMax = 0;
+      }
+      else
+      {
+        FT_Vector*  vec   = outline->points;
+        FT_Vector*  limit = vec + outline->n_points;
+
+
+        xMin = xMax = vec->x;
+        yMin = yMax = vec->y;
+        vec++;
+
+        for ( ; vec < limit; vec++ )
+        {
+          TPos  x, y;
+
+
+          x = vec->x;
+          if ( x < xMin ) xMin = x;
+          if ( x > xMax ) xMax = x;
+
+          y = vec->y;
+          if ( y < yMin ) yMin = y;
+          if ( y > yMax ) yMax = y;
+        }
+      }
+      acbox->xMin = xMin;
+      acbox->xMax = xMax;
+      acbox->yMin = yMin;
+      acbox->yMax = yMax;
+    }
+  }
+
 #endif /* STANDALONE_ */
 
 
   typedef struct  gray_TBand_
   {
-    TPos  min, max;
+    TCoord  min, max;
 
   } gray_TBand;
 
@@ -1920,10 +1873,18 @@
       error = FT_Outline_Decompose( &ras.outline, &func_interface, &ras );
       if ( !ras.invalid )
         gray_record_cell( RAS_VAR );
+
+      FT_TRACE7(( "band [%d..%d]: %d cells\n",
+                  ras.min_ey, ras.max_ey, ras.num_cells ));
     }
     else
+    {
       error = FT_THROW( Memory_Overflow );
 
+      FT_TRACE7(( "band [%d..%d]: to be bisected\n",
+                  ras.min_ey, ras.max_ey ));
+    }
+
     return error;
   }
 
@@ -1931,47 +1892,27 @@
   static int
   gray_convert_glyph( RAS_ARG )
   {
-    gray_TBand            bands[40];
-    gray_TBand* volatile  band;
-    int volatile          n, num_bands;
-    TPos volatile         min, max, max_y;
-    FT_BBox*              clip;
+    TCell        buffer[FT_MAX_GRAY_POOL];
+    const int    band_size = FT_MAX_GRAY_POOL / 8;
+    gray_TBand   bands[32];
+    gray_TBand*  band;
+    int          n, num_bands;
+    TCoord       min, max, max_y;
 
 
-    /* Set up state in the raster object */
-    gray_compute_cbox( RAS_VAR );
-
-    /* clip to target bitmap, exit if nothing to do */
-    clip = &ras.clip_box;
-
-    if ( ras.max_ex <= clip->xMin || ras.min_ex >= clip->xMax ||
-         ras.max_ey <= clip->yMin || ras.min_ey >= clip->yMax )
-      return 0;
-
-    if ( ras.min_ex < clip->xMin ) ras.min_ex = clip->xMin;
-    if ( ras.min_ey < clip->yMin ) ras.min_ey = clip->yMin;
-
-    if ( ras.max_ex > clip->xMax ) ras.max_ex = clip->xMax;
-    if ( ras.max_ey > clip->yMax ) ras.max_ey = clip->yMax;
-
-    ras.count_ex = ras.max_ex - ras.min_ex;
-    ras.count_ey = ras.max_ey - ras.min_ey;
-
     /* set up vertical bands */
-    num_bands = (int)( ( ras.max_ey - ras.min_ey ) / ras.band_size );
+    num_bands = (int)( ( ras.max_ey - ras.min_ey ) / band_size );
     if ( num_bands == 0 )
       num_bands = 1;
     if ( num_bands >= 39 )
       num_bands = 39;
 
-    ras.band_shoot = 0;
-
     min   = ras.min_ey;
     max_y = ras.max_ey;
 
     for ( n = 0; n < num_bands; n++, min = max )
     {
-      max = min + ras.band_size;
+      max = min + band_size;
       if ( n == num_bands - 1 || max > max_y )
         max = max_y;
 
@@ -1981,37 +1922,28 @@
 
       do
       {
-        TPos  bottom, top, middle;
-        int   error;
+        TCoord  bottom, top, middle;
+        int     error;
 
+
+        /* memory management */
         {
-          PCell  cells_max;
-          int    yindex;
-          long   cell_start, cell_end, cell_mod;
+          size_t  ycount = (size_t)( band->max - band->min );
+          size_t  cell_start;
 
 
-          ras.ycells = (PCell*)ras.buffer;
-          ras.ycount = band->max - band->min;
+          cell_start = ( ycount * sizeof ( PCell ) + sizeof ( TCell ) - 1 ) /
+                       sizeof ( TCell );
 
-          cell_start = (long)sizeof ( PCell ) * ras.ycount;
-          cell_mod   = cell_start % (long)sizeof ( TCell );
-          if ( cell_mod > 0 )
-            cell_start += (long)sizeof ( TCell ) - cell_mod;
-
-          cell_end  = ras.buffer_size;
-          cell_end -= cell_end % (long)sizeof ( TCell );
-
-          cells_max = (PCell)( (char*)ras.buffer + cell_end );
-          ras.cells = (PCell)( (char*)ras.buffer + cell_start );
-          if ( ras.cells >= cells_max )
+          if ( FT_MAX_GRAY_POOL - cell_start < 2 )
             goto ReduceBands;
 
-          ras.max_cells = cells_max - ras.cells;
-          if ( ras.max_cells < 2 )
-            goto ReduceBands;
+          ras.cells     = buffer + cell_start;
+          ras.max_cells = (FT_PtrDist)( FT_MAX_GRAY_POOL - cell_start );
 
-          for ( yindex = 0; yindex < ras.ycount; yindex++ )
-            ras.ycells[yindex] = NULL;
+          ras.ycells = (PCell*)buffer;
+          while ( ycount )
+            ras.ycells[--ycount] = NULL;
         }
 
         ras.num_cells = 0;
@@ -2024,7 +1956,7 @@
 
         if ( !error )
         {
-          gray_sweep( RAS_VAR_ &ras.target );
+          gray_sweep( RAS_VAR );
           band--;
           continue;
         }
@@ -2041,15 +1973,10 @@
         /* be some problems.                                     */
         if ( middle == bottom )
         {
-#ifdef FT_DEBUG_LEVEL_TRACE
           FT_TRACE7(( "gray_convert_glyph: rotten glyph\n" ));
-#endif
           return 1;
         }
 
-        if ( bottom-top >= ras.band_size )
-          ras.band_shoot++;
-
         band[1].min = bottom;
         band[1].max = middle;
         band[0].min = middle;
@@ -2058,28 +1985,21 @@
       } while ( band >= bands );
     }
 
-    if ( ras.band_shoot > 8 && ras.band_size > 16 )
-      ras.band_size = ras.band_size / 2;
-
     return 0;
   }
 
 
   static int
-  gray_raster_render( gray_PRaster             raster,
+  gray_raster_render( FT_Raster                raster,
                       const FT_Raster_Params*  params )
   {
     const FT_Outline*  outline     = (const FT_Outline*)params->source;
     const FT_Bitmap*   target_map  = params->target;
+    FT_BBox            cbox, clip;
 
     gray_TWorker  worker[1];
 
-    TCell  buffer[FT_MAX( FT_RENDER_POOL_SIZE, 2048 ) / sizeof ( TCell )];
-    long   buffer_size = sizeof ( buffer );
-    int    band_size   = (int)( buffer_size /
-                                (long)( sizeof ( TCell ) * 8 ) );
 
-
     if ( !raster )
       return FT_THROW( Invalid_Argument );
 
@@ -2115,33 +2035,51 @@
     if ( !( params->flags & FT_RASTER_FLAG_AA ) )
       return FT_THROW( Invalid_Mode );
 
+    FT_Outline_Get_CBox( outline, &cbox );
+
+    /* reject too large outline coordinates */
+    if ( cbox.xMin < -0x1000000L || cbox.xMax > 0x1000000L ||
+         cbox.yMin < -0x1000000L || cbox.yMax > 0x1000000L )
+      return FT_THROW( Invalid_Outline );
+
+    /* truncate the bounding box to integer pixels */
+    cbox.xMin = cbox.xMin >> 6;
+    cbox.yMin = cbox.yMin >> 6;
+    cbox.xMax = ( cbox.xMax + 63 ) >> 6;
+    cbox.yMax = ( cbox.yMax + 63 ) >> 6;
+
     /* compute clipping box */
     if ( !( params->flags & FT_RASTER_FLAG_DIRECT ) )
     {
       /* compute clip box from target pixmap */
-      ras.clip_box.xMin = 0;
-      ras.clip_box.yMin = 0;
-      ras.clip_box.xMax = (FT_Pos)target_map->width;
-      ras.clip_box.yMax = (FT_Pos)target_map->rows;
+      clip.xMin = 0;
+      clip.yMin = 0;
+      clip.xMax = (FT_Pos)target_map->width;
+      clip.yMax = (FT_Pos)target_map->rows;
     }
     else if ( params->flags & FT_RASTER_FLAG_CLIP )
-      ras.clip_box = params->clip_box;
+      clip = params->clip_box;
     else
     {
-      ras.clip_box.xMin = -32768L;
-      ras.clip_box.yMin = -32768L;
-      ras.clip_box.xMax =  32767L;
-      ras.clip_box.yMax =  32767L;
+      clip.xMin = -32768L;
+      clip.yMin = -32768L;
+      clip.xMax =  32767L;
+      clip.yMax =  32767L;
     }
 
-    gray_init_cells( RAS_VAR_ buffer, buffer_size );
+    /* clip to target bitmap, exit if nothing to do */
+    ras.min_ex = FT_MAX( cbox.xMin, clip.xMin );
+    ras.min_ey = FT_MAX( cbox.yMin, clip.yMin );
+    ras.max_ex = FT_MIN( cbox.xMax, clip.xMax );
+    ras.max_ey = FT_MIN( cbox.yMax, clip.yMax );
 
+    if ( ras.max_ex <= ras.min_ex || ras.max_ey <= ras.min_ey )
+      return 0;
+
+    ras.count_ex = ras.max_ex - ras.min_ex;
+    ras.count_ey = ras.max_ey - ras.min_ey;
+
     ras.outline        = *outline;
-    ras.num_cells      = 0;
-    ras.invalid        = 1;
-    ras.band_size      = band_size;
-    ras.num_gray_spans = 0;
-    ras.span_y         = 0;
 
     if ( params->flags & FT_RASTER_FLAG_DIRECT )
     {
@@ -2221,9 +2159,9 @@
 
 
   static void
-  gray_raster_reset( FT_Raster  raster,
-                     char*      pool_base,
-                     long       pool_size )
+  gray_raster_reset( FT_Raster       raster,
+                     unsigned char*  pool_base,
+                     unsigned long   pool_size )
   {
     FT_UNUSED( raster );
     FT_UNUSED( pool_base );

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/tools/docmaker/tohtml.py
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/tools/docmaker/tohtml.py	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/tools/docmaker/tohtml.py	2016-07-07 09:56:43 UTC (rev 41649)
@@ -390,7 +390,7 @@
         """Convert a code sequence to HTML."""
         line = code_header + '\n'
         for l in lines:
-            line = line + html_quote( l ) + '\n'
+            line = line + html_quote( l ).rstrip() + '\n'
 
         return line + code_footer
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/ftfuzzer.cc
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/ftfuzzer.cc	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/ftfuzzer.cc	2016-07-07 09:56:43 UTC (rev 41649)
@@ -161,7 +161,7 @@
                     variations->axis[i].def     ) / 2;
 
     if ( FT_Set_Var_Design_Coordinates( face,
-                                        coords.size(),
+                                        FT_UInt( coords.size() ),
                                         coords.data() ) )
       return;
   }
@@ -248,7 +248,7 @@
 
         // loop over all bitmap stroke sizes
         // and an arbitrary size for outlines
-        for ( long  fixed_sizes_index = 0;
+        for ( int  fixed_sizes_index = 0;
               fixed_sizes_index < face->num_fixed_sizes + 1;
               fixed_sizes_index++ )
         {

Added: trunk/Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/rasterfuzzer.cc
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/rasterfuzzer.cc	                        (rev 0)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/rasterfuzzer.cc	2016-07-07 09:56:43 UTC (rev 41649)
@@ -0,0 +1,129 @@
+// rasterfuzzer.cc
+//
+//   A fuzzing function to test FreeType's rasterizers with libFuzzer.
+//
+// Copyright 2016 by
+// David Turner, Robert Wilhelm, and Werner Lemberg.
+//
+// This file is part of the FreeType project, and may only be used,
+// modified, and distributed under the terms of the FreeType project
+// license, LICENSE.TXT.  By continuing to use, modify, or distribute
+// this file you indicate that you have read the license and
+// understand and accept it fully.
+
+
+#include <stdint.h>
+
+#include <vector>
+
+
+  using namespace std;
+
+
+#include <ft2build.h>
+
+#include FT_FREETYPE_H
+#include FT_IMAGE_H
+#include FT_OUTLINE_H
+
+
+  static FT_Library  library;
+  static int         InitResult;
+
+
+  struct FT_Global {
+    FT_Global() {
+      InitResult = FT_Init_FreeType( &library );
+    }
+    ~FT_Global() {
+      FT_Done_FreeType( library );
+    }
+  };
+
+  FT_Global  global_ft;
+
+
+  extern "C" int
+  LLVMFuzzerTestOneInput( const uint8_t*  data,
+                          size_t          size_ )
+  {
+    unsigned char  pixels[4];
+
+    FT_Bitmap  bitmap_mono = {
+      1,                  // rows
+      1,                  // width
+      4,                  // pitch
+      pixels,             // buffer
+      2,                  // num_grays
+      FT_PIXEL_MODE_MONO, // pixel_mode
+      0,                  // palette_mode
+      NULL                // palette
+    };
+
+    FT_Bitmap  bitmap_gray = {
+      1,                  // rows
+      1,                  // width
+      4,                  // pitch
+      pixels,             // buffer
+      256,                // num_grays
+      FT_PIXEL_MODE_GRAY, // pixel_mode
+      0,                  // palette_mode
+      NULL                // palette
+    };
+
+    const size_t vsize = sizeof ( FT_Vector );
+    const size_t tsize = sizeof ( char );
+
+    // we use the input data for both points and tags
+    short  n_points = short( size_ / ( vsize + tsize ) );
+    if ( n_points <= 2 )
+      return 0;
+
+    FT_Vector*  points = reinterpret_cast<FT_Vector*>(
+                           const_cast<uint8_t*>(
+                             data ) );
+    char*       tags   = reinterpret_cast<char*>(
+                           const_cast<uint8_t*>(
+                             data + size_t( n_points ) * vsize ) );
+
+    // to reduce the number of invalid outlines that are immediately
+    // rejected in `FT_Outline_Render', limit values to 2^18 pixels
+    // (i.e., 2^24 bits)
+    for ( short  i = 0; i < n_points; i++ )
+    {
+      if ( points[i].x == LONG_MIN )
+        points[i].x = 0;
+      else if ( points[i].x < 0 )
+        points[i].x = -( -points[i].x & 0xFFFFFF ) - 1;
+      else
+        points[i].x = ( points[i].x & 0xFFFFFF ) + 1;
+
+      if ( points[i].y == LONG_MIN )
+        points[i].y = 0;
+      else if ( points[i].y < 0 )
+        points[i].y = -( -points[i].y & 0xFFFFFF ) - 1;
+      else
+        points[i].y = ( points[i].y & 0xFFFFFF ) + 1;
+    }
+
+    short  contours[1];
+    contours[0] = n_points - 1;
+
+    FT_Outline  outline =
+    {
+      1,               // n_contours
+      n_points,        // n_points
+      points,          // points
+      tags,            // tags
+      contours,        // contours
+      FT_OUTLINE_NONE  // flags
+    };
+
+    FT_Outline_Get_Bitmap( library, &outline, &bitmap_mono );
+    FT_Outline_Get_Bitmap( library, &outline, &bitmap_gray );
+
+    return 0;
+  }
+
+
+// END

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/runinput.cc
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/runinput.cc	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/tools/ftfuzzer/runinput.cc	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1,6 +1,6 @@
 // runinput.cc
 //
-//   A `main' function for `ftfuzzer.cc'.
+//   A `main' function for fuzzers like `ftfuzzer.cc'.
 //
 // Copyright 2015-2016 by
 // David Turner, Robert Wilhelm, and Werner Lemberg.

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttdriver.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttdriver.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttdriver.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -72,12 +72,17 @@
       FT_UInt*  interpreter_version = (FT_UInt*)value;
 
 
-#ifndef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-      if ( *interpreter_version != TT_INTERPRETER_VERSION_35 )
-        error = FT_ERR( Unimplemented_Feature );
-      else
+      if ( *interpreter_version == TT_INTERPRETER_VERSION_35
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+           || *interpreter_version == TT_INTERPRETER_VERSION_38
 #endif
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+           || *interpreter_version == TT_INTERPRETER_VERSION_40
+#endif
+         )
         driver->interpreter_version = *interpreter_version;
+      else
+        error = FT_ERR( Unimplemented_Feature );
 
       return error;
     }

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttgload.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttgload.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttgload.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -122,7 +122,7 @@
                   FT_UInt    glyph_index )
   {
     TT_Face    face   = loader->face;
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     TT_Driver  driver = (TT_Driver)FT_FACE_DRIVER( face );
 #endif
 
@@ -153,7 +153,7 @@
     loader->top_bearing  = top_bearing;
     loader->vadvance     = advance_height;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     if ( driver->interpreter_version == TT_INTERPRETER_VERSION_38 &&
          loader->exec                                             )
     {
@@ -165,7 +165,7 @@
       /* backwards compatibility mode on and off.                   */
       sph_set_tweaks( loader, glyph_index );
     }
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     if ( !loader->linear_def )
     {
@@ -427,7 +427,8 @@
       load->glyph->control_len  = n_ins;
       load->glyph->control_data = load->exec->glyphIns;
 
-      FT_MEM_COPY( load->exec->glyphIns, p, (FT_Long)n_ins );
+      if ( n_ins )
+        FT_MEM_COPY( load->exec->glyphIns, p, (FT_Long)n_ins );
     }
 
 #endif /* TT_USE_BYTECODE_INTERPRETER */
@@ -732,7 +733,8 @@
   TT_Hint_Glyph( TT_Loader  loader,
                  FT_Bool    is_composite )
   {
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#if defined TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY || \
+    defined TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
     TT_Face    face   = loader->face;
     TT_Driver  driver = (TT_Driver)FT_FACE_DRIVER( face );
 #endif
@@ -815,13 +817,23 @@
 
 #endif
 
-    /* save glyph phantom points */
-    loader->pp1 = zone->cur[zone->n_points - 4];
-    loader->pp2 = zone->cur[zone->n_points - 3];
-    loader->pp3 = zone->cur[zone->n_points - 2];
-    loader->pp4 = zone->cur[zone->n_points - 1];
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+    /* Save possibly modified glyph phantom points unless in v40 backwards */
+    /* compatibility mode, where no movement on the x axis means no reason */
+    /* to change bearings or advance widths.                               */
+    if ( !( driver->interpreter_version == TT_INTERPRETER_VERSION_40 &&
+            !loader->exec->backwards_compatibility ) )
+    {
+#endif
+      loader->pp1 = zone->cur[zone->n_points - 4];
+      loader->pp2 = zone->cur[zone->n_points - 3];
+      loader->pp3 = zone->cur[zone->n_points - 2];
+      loader->pp4 = zone->cur[zone->n_points - 1];
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+    }
+#endif
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     if ( driver->interpreter_version == TT_INTERPRETER_VERSION_38 )
     {
       if ( loader->exec->sph_tweak_flags & SPH_TWEAK_DEEMBOLDEN )
@@ -830,7 +842,7 @@
       else if ( loader->exec->sph_tweak_flags & SPH_TWEAK_EMBOLDEN )
         FT_Outline_EmboldenXY( &loader->gloader->current.outline, 24, 0 );
     }
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     return FT_Err_Ok;
   }
@@ -896,7 +908,7 @@
     }
 
     {
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
       TT_Face    face   = loader->face;
       TT_Driver  driver = (TT_Driver)FT_FACE_DRIVER( face );
 
@@ -915,7 +927,7 @@
       FT_Bool  do_scale = FALSE;
 
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
 
       if ( driver->interpreter_version == TT_INTERPRETER_VERSION_38 )
       {
@@ -946,7 +958,7 @@
       }
       else
 
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
       {
         /* scale the glyph */
@@ -1077,7 +1089,7 @@
                                             : -subglyph->transform.yx;
         int  c = subglyph->transform.xy > 0 ?  subglyph->transform.xy
                                             : -subglyph->transform.xy;
-        int  d = subglyph->transform.yy > 0 ? subglyph->transform.yy
+        int  d = subglyph->transform.yy > 0 ?  subglyph->transform.yy
                                             : -subglyph->transform.yy;
         int  m = a > b ? a : b;
         int  n = c > d ? c : d;
@@ -1323,51 +1335,73 @@
    * (3) for everything else.
    *
    */
+  static void
+  tt_loader_set_pp( TT_Loader  loader )
+  {
+    FT_Bool  subpixel_hinting = 0;
+    FT_Bool  grayscale        = 0;
+    FT_Bool  use_aw_2         = 0;
+
 #ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+    TT_Driver driver = (TT_Driver)FT_FACE_DRIVER( loader->face );
+#endif
 
-#define TT_LOADER_SET_PP( loader )                                          \
-          do                                                                \
-          {                                                                 \
-            FT_Bool  subpixel_hinting_ = loader->exec                       \
-                                           ? loader->exec->subpixel_hinting \
-                                           : 0;                             \
-            FT_Bool  grayscale_        = loader->exec                       \
-                                           ? loader->exec->grayscale        \
-                                           : 0;                             \
-            FT_Bool  use_aw_2_         = (FT_Bool)( subpixel_hinting_ &&    \
-                                                    grayscale_        );    \
-                                                                            \
-                                                                            \
-            (loader)->pp1.x = (loader)->bbox.xMin - (loader)->left_bearing; \
-            (loader)->pp1.y = 0;                                            \
-            (loader)->pp2.x = (loader)->pp1.x + (loader)->advance;          \
-            (loader)->pp2.y = 0;                                            \
-                                                                            \
-            (loader)->pp3.x = use_aw_2_ ? (loader)->advance / 2 : 0;        \
-            (loader)->pp3.y = (loader)->bbox.yMax + (loader)->top_bearing;  \
-            (loader)->pp4.x = use_aw_2_ ? (loader)->advance / 2 : 0;        \
-            (loader)->pp4.y = (loader)->pp3.y - (loader)->vadvance;         \
-          } while ( 0 )
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+    if ( driver->interpreter_version == TT_INTERPRETER_VERSION_38 )
+    {
+      subpixel_hinting = loader->exec ? loader->exec->subpixel_hinting
+                                      : 0;
+      grayscale        = loader->exec ? loader->exec->grayscale
+                                      : 0;
+    }
+#endif
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+    if ( driver->interpreter_version == TT_INTERPRETER_VERSION_40 )
+    {
+      subpixel_hinting = loader->exec ? loader->exec->subpixel_hinting_lean
+                                      : 0;
+      grayscale        = loader->exec ? loader->exec->grayscale_cleartype
+                                      : 0;
+    }
+#endif
 
-#else /* !TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+    use_aw_2 = (FT_Bool)( subpixel_hinting && grayscale );
 
-#define TT_LOADER_SET_PP( loader )                                          \
-          do                                                                \
-          {                                                                 \
-            (loader)->pp1.x = (loader)->bbox.xMin - (loader)->left_bearing; \
-            (loader)->pp1.y = 0;                                            \
-            (loader)->pp2.x = (loader)->pp1.x + (loader)->advance;          \
-            (loader)->pp2.y = 0;                                            \
-                                                                            \
-            (loader)->pp3.x = 0;                                            \
-            (loader)->pp3.y = (loader)->bbox.yMax + (loader)->top_bearing;  \
-            (loader)->pp4.x = 0;                                            \
-            (loader)->pp4.y = (loader)->pp3.y - (loader)->vadvance;         \
-          } while ( 0 )
+    loader->pp1.x = loader->bbox.xMin - loader->left_bearing;
+    loader->pp1.y = 0;
+    loader->pp2.x = loader->pp1.x + loader->advance;
+    loader->pp2.y = 0;
 
-#endif /* !TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+    loader->pp3.x = use_aw_2 ? loader->advance / 2 : 0;
+    loader->pp3.y = loader->bbox.yMax + loader->top_bearing;
+    loader->pp4.x = use_aw_2 ? loader->advance / 2 : 0;
+    loader->pp4.y = loader->pp3.y - loader->vadvance;
+  }
 
 
+  /* a utility function to retrieve i-th node from given FT_List */
+  static FT_ListNode
+  ft_list_get_node_at( FT_List  list,
+                       FT_UInt  index )
+  {
+    FT_ListNode  cur;
+
+
+    if ( !list )
+      return NULL;
+
+    for ( cur = list->head; cur; cur = cur->next )
+    {
+      if ( !index )
+        return cur;
+
+      index--;
+    }
+
+    return NULL;
+  }
+
+
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -1523,7 +1557,7 @@
 
       /* must initialize points before (possibly) overriding */
       /* glyph metrics from the incremental interface        */
-      TT_LOADER_SET_PP( loader );
+      tt_loader_set_pp( loader );
 
 #ifdef FT_CONFIG_OPTION_INCREMENTAL
       tt_get_metrics_incr_overrides( loader, glyph_index );
@@ -1598,7 +1632,7 @@
 
     /* must initialize phantom points before (possibly) overriding */
     /* glyph metrics from the incremental interface                */
-    TT_LOADER_SET_PP( loader );
+    tt_loader_set_pp( loader );
 
 #ifdef FT_CONFIG_OPTION_INCREMENTAL
     tt_get_metrics_incr_overrides( loader, glyph_index );
@@ -1640,7 +1674,9 @@
       FT_UInt   start_contour;
       FT_ULong  ins_pos;  /* position of composite instructions, if any */
 
+      FT_ListNode  node, node2;
 
+
       /*
        * We store the glyph index directly in the `node->data' pointer,
        * following the glib solution (cf. macro `GUINT_TO_POINTER') with a
@@ -1648,6 +1684,12 @@
        * pointers with a width of at least 32 bits.
        */
 
+
+      /* clear the nodes filled by sibling chains */
+      node = ft_list_get_node_at( &loader->composites, recurse_count );
+      for ( node2 = node; node2; node2 = node2->next )
+        node2->data = (void*)ULONG_MAX;
+
       /* check whether we already have a composite glyph with this index */
       if ( FT_List_Find( &loader->composites,
                          (void*)(unsigned long)glyph_index ) )
@@ -1657,11 +1699,12 @@
         error = FT_THROW( Invalid_Composite );
         goto Exit;
       }
+
+      else if ( node )
+        node->data = (void*)(unsigned long)glyph_index;
+
       else
       {
-        FT_ListNode  node = NULL;
-
-
         if ( FT_NEW( node ) )
           goto Exit;
         node->data = (void*)(unsigned long)glyph_index;
@@ -1703,6 +1746,10 @@
         outline.n_points   = (short)( gloader->current.num_subglyphs + 4 );
         outline.n_contours = outline.n_points;
 
+        outline.points   = NULL;
+        outline.tags     = NULL;
+        outline.contours = NULL;
+
         if ( FT_NEW_ARRAY( points, outline.n_points )   ||
              FT_NEW_ARRAY( tags, outline.n_points )     ||
              FT_NEW_ARRAY( contours, outline.n_points ) )
@@ -1942,7 +1989,8 @@
                          FT_UInt    glyph_index )
   {
     TT_Face    face   = loader->face;
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#if defined TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY || \
+    defined TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
     TT_Driver  driver = (TT_Driver)FT_FACE_DRIVER( face );
 #endif
 
@@ -1969,11 +2017,18 @@
     glyph->metrics.horiBearingY = bbox.yMax;
     glyph->metrics.horiAdvance  = loader->pp2.x - loader->pp1.x;
 
-    /* adjust advance width to the value contained in the hdmx table */
-    /* unless FT_LOAD_COMPUTE_METRICS is set                         */
-    if ( !face->postscript.isFixedPitch                    &&
-         IS_HINTED( loader->load_flags )                   &&
-         !( loader->load_flags & FT_LOAD_COMPUTE_METRICS ) )
+    /* Adjust advance width to the value contained in the hdmx table    */
+    /* unless FT_LOAD_COMPUTE_METRICS is set or backwards compatibility */
+    /* mode of the v40 interpreter is active.  See `ttinterp.h' for     */
+    /* details on backwards compatibility mode.                         */
+    if (
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+         !( driver->interpreter_version == TT_INTERPRETER_VERSION_40 &&
+            ( loader->exec && loader->exec->backwards_compatibility  ) ) &&
+#endif
+         !face->postscript.isFixedPitch                                  &&
+         IS_HINTED( loader->load_flags )                                 &&
+         !( loader->load_flags & FT_LOAD_COMPUTE_METRICS )               )
     {
       FT_Byte*  widthp;
 
@@ -1982,7 +2037,7 @@
                                            size->root.metrics.x_ppem,
                                            glyph_index );
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
 
       if ( driver->interpreter_version == TT_INTERPRETER_VERSION_38 )
       {
@@ -2000,7 +2055,7 @@
       }
       else
 
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
       {
         if ( widthp )
@@ -2189,6 +2244,10 @@
 #ifdef TT_USE_BYTECODE_INTERPRETER
     FT_Bool    pedantic = FT_BOOL( load_flags & FT_LOAD_PEDANTIC );
 #endif
+#if defined TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY || \
+    defined TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+    TT_Driver  driver = (TT_Driver)FT_FACE_DRIVER( (TT_Face)glyph->face );
+#endif
 
 
     face   = (TT_Face)glyph->face;
@@ -2202,11 +2261,13 @@
     if ( IS_HINTED( load_flags ) && !glyf_table_only )
     {
       TT_ExecContext  exec;
-      FT_Bool         grayscale;
+      FT_Bool         grayscale = TRUE;
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+      FT_Bool         subpixel_hinting_lean;
+      FT_Bool         grayscale_cleartype;
+#endif
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-      TT_Driver  driver = (TT_Driver)FT_FACE_DRIVER( face );
-
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
       FT_Bool  subpixel_hinting = FALSE;
 
 #if 0
@@ -2218,7 +2279,7 @@
       FT_Bool  subpixel_positioned;
       FT_Bool  gray_cleartype;
 #endif
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
       FT_Bool  reexecute = FALSE;
 
@@ -2239,8 +2300,27 @@
       if ( !exec )
         return FT_THROW( Could_Not_Find_Context );
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+      if ( driver->interpreter_version == TT_INTERPRETER_VERSION_40 )
+      {
+        subpixel_hinting_lean   = TRUE;
+        grayscale_cleartype     = !FT_BOOL( load_flags         &
+                                            FT_LOAD_TARGET_LCD     ||
+                                            load_flags           &
+                                            FT_LOAD_TARGET_LCD_V   );
+        exec->vertical_lcd_lean = FT_BOOL( load_flags           &
+                                           FT_LOAD_TARGET_LCD_V );
+      }
+      else
+      {
+        subpixel_hinting_lean   = FALSE;
+        grayscale_cleartype     = FALSE;
+        exec->vertical_lcd_lean = FALSE;
+      }
+#endif
 
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+
       if ( driver->interpreter_version == TT_INTERPRETER_VERSION_38 )
       {
         subpixel_hinting = FT_BOOL( ( FT_LOAD_TARGET_MODE( load_flags ) !=
@@ -2296,18 +2376,23 @@
       }
       else
 
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
-      {
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+      if ( driver->interpreter_version == TT_INTERPRETER_VERSION_40 )
+        grayscale = FT_BOOL( !subpixel_hinting_lean               &&
+                             FT_LOAD_TARGET_MODE( load_flags ) !=
+                               FT_RENDER_MODE_MONO                );
+      else
+#endif
         grayscale = FT_BOOL( FT_LOAD_TARGET_MODE( load_flags ) !=
-                             FT_RENDER_MODE_MONO );
-      }
+                               FT_RENDER_MODE_MONO             );
 
       error = TT_Load_Context( exec, face, size );
       if ( error )
         return error;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
 
       if ( driver->interpreter_version == TT_INTERPRETER_VERSION_38 )
       {
@@ -2335,9 +2420,37 @@
       }
       else
 
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
       {
+
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+        if ( driver->interpreter_version == TT_INTERPRETER_VERSION_40 )
+        {
+          /* a change from mono to subpixel rendering (and vice versa) */
+          /* requires a re-execution of the CVT program                */
+          if ( subpixel_hinting_lean != exec->subpixel_hinting_lean )
+          {
+            FT_TRACE4(( "tt_loader_init: subpixel hinting change,"
+                        " re-executing `prep' table\n" ));
+
+            exec->subpixel_hinting_lean = subpixel_hinting_lean;
+            reexecute                   = TRUE;
+          }
+
+          /* a change from colored to grayscale subpixel rendering (and */
+          /* vice versa) requires a re-execution of the CVT program     */
+          if ( grayscale_cleartype != exec->grayscale_cleartype )
+          {
+            FT_TRACE4(( "tt_loader_init: grayscale subpixel hinting change,"
+                        " re-executing `prep' table\n" ));
+
+            exec->grayscale_cleartype = grayscale_cleartype;
+            reexecute                 = TRUE;
+          }
+        }
+#endif
+
         /* a change from mono to grayscale rendering (and vice versa) */
         /* requires a re-execution of the CVT program                 */
         if ( grayscale != exec->grayscale )
@@ -2370,10 +2483,11 @@
       if ( exec->GS.instruct_control & 2 )
         exec->GS = tt_default_graphics_state;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
       /* check whether we have a font hinted for ClearType --           */
       /* note that this flag can also be modified in a glyph's bytecode */
-      if ( exec->GS.instruct_control & 4 )
+      if ( driver->interpreter_version == TT_INTERPRETER_VERSION_38 &&
+           exec->GS.instruct_control & 4                            )
         exec->ignore_x_mode = 0;
 #endif
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttgxvar.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttgxvar.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttgxvar.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -551,7 +551,7 @@
       for ( i = 0; i < blend->tuplecount; i++ )
       {
         FT_TRACE5(( "  [ " ));
-        for ( j = 0 ; j < (FT_UInt)gvar_head.axisCount; j++ )
+        for ( j = 0; j < (FT_UInt)gvar_head.axisCount; j++ )
         {
           blend->tuplecoords[i * gvar_head.axisCount + j] =
             FT_GET_SHORT() * 4;                 /* convert to FT_Fixed */
@@ -613,6 +613,11 @@
     {
       FT_TRACE6(( "    axis coordinate %d (%.4f):\n",
                   i, blend->normalizedcoords[i] / 65536.0 ));
+      if ( !( tupleIndex & GX_TI_INTERMEDIATE_TUPLE ) )
+        FT_TRACE6(( "      intermediate coordinates %d (%.4f, %.4f):\n",
+                    i,
+                    im_start_coords[i] / 65536.0,
+                    im_end_coords[i] / 65536.0 ));
 
       /* It's not clear why (for intermediate tuples) we don't need     */
       /* to check against start/end -- the documentation says we don't. */
@@ -625,7 +630,7 @@
         continue;
       }
 
-      else if ( blend->normalizedcoords[i] == 0 )
+      if ( blend->normalizedcoords[i] == 0 )
       {
         FT_TRACE6(( "      axis coordinate is zero, stop\n" ));
         apply = 0;
@@ -632,55 +637,67 @@
         break;
       }
 
-      else if ( ( blend->normalizedcoords[i] < 0 && tuple_coords[i] > 0 ) ||
-                ( blend->normalizedcoords[i] > 0 && tuple_coords[i] < 0 ) )
+      if ( blend->normalizedcoords[i] == tuple_coords[i] )
       {
-        FT_TRACE6(( "      tuple coordinate value %.4f is exceeded, stop\n",
+        FT_TRACE6(( "      tuple coordinate value %.4f fits perfectly\n",
                     tuple_coords[i] / 65536.0 ));
-        apply = 0;
-        break;
+        /* `apply' does not change */
+        continue;
       }
 
-      else if ( !( tupleIndex & GX_TI_INTERMEDIATE_TUPLE ) )
+      if ( !( tupleIndex & GX_TI_INTERMEDIATE_TUPLE ) )
       {
-        FT_TRACE6(( "      tuple coordinate value %.4f fits\n",
-                    tuple_coords[i] / 65536.0 ));
         /* not an intermediate tuple */
-        apply = FT_MulFix( apply,
-                           blend->normalizedcoords[i] > 0
-                             ? blend->normalizedcoords[i]
-                             : -blend->normalizedcoords[i] );
-      }
 
-      else if ( blend->normalizedcoords[i] < im_start_coords[i] ||
-                blend->normalizedcoords[i] > im_end_coords[i]   )
-      {
-        FT_TRACE6(( "      intermediate tuple range [%.4f;%.4f] is exceeded,"
-                    " stop\n",
-                    im_start_coords[i] / 65536.0,
-                    im_end_coords[i] / 65536.0 ));
-        apply = 0;
-        break;
-      }
+        if ( blend->normalizedcoords[i] < FT_MIN( 0, tuple_coords[i] ) ||
+             blend->normalizedcoords[i] > FT_MAX( 0, tuple_coords[i] ) )
+        {
+          FT_TRACE6(( "      tuple coordinate value %.4f is exceeded, stop\n",
+                      tuple_coords[i] / 65536.0 ));
+          apply = 0;
+          break;
+        }
 
-      else if ( blend->normalizedcoords[i] < tuple_coords[i] )
-      {
-        FT_TRACE6(( "      intermediate tuple range [%.4f;%.4f] fits\n",
-                    im_start_coords[i] / 65536.0,
-                    im_end_coords[i] / 65536.0 ));
+        FT_TRACE6(( "      tuple coordinate value %.4f fits\n",
+                    tuple_coords[i] / 65536.0 ));
         apply = FT_MulDiv( apply,
-                           blend->normalizedcoords[i] - im_start_coords[i],
-                           tuple_coords[i] - im_start_coords[i] );
+                           blend->normalizedcoords[i],
+                           tuple_coords[i] );
       }
-
       else
       {
-        FT_TRACE6(( "      intermediate tuple range [%.4f;%.4f] fits\n",
-                    im_start_coords[i] / 65536.0,
-                    im_end_coords[i] / 65536.0 ));
-        apply = FT_MulDiv( apply,
-                           im_end_coords[i] - blend->normalizedcoords[i],
-                           im_end_coords[i] - tuple_coords[i] );
+        /* intermediate tuple */
+
+        if ( blend->normalizedcoords[i] < im_start_coords[i] ||
+             blend->normalizedcoords[i] > im_end_coords[i]   )
+        {
+          FT_TRACE6(( "      intermediate tuple range [%.4f;%.4f] is exceeded,"
+                      " stop\n",
+                      im_start_coords[i] / 65536.0,
+                      im_end_coords[i] / 65536.0 ));
+          apply = 0;
+          break;
+        }
+
+        else if ( blend->normalizedcoords[i] < tuple_coords[i] )
+        {
+          FT_TRACE6(( "      intermediate tuple range [%.4f;%.4f] fits\n",
+                      im_start_coords[i] / 65536.0,
+                      im_end_coords[i] / 65536.0 ));
+          apply = FT_MulDiv( apply,
+                             blend->normalizedcoords[i] - im_start_coords[i],
+                             tuple_coords[i] - im_start_coords[i] );
+        }
+
+        else
+        {
+          FT_TRACE6(( "      intermediate tuple range [%.4f;%.4f] fits\n",
+                      im_start_coords[i] / 65536.0,
+                      im_end_coords[i] / 65536.0 ));
+          apply = FT_MulDiv( apply,
+                             im_end_coords[i] - blend->normalizedcoords[i],
+                             im_end_coords[i] - tuple_coords[i] );
+        }
       }
     }
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttinterp.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttinterp.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttinterp.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -45,10 +45,21 @@
 #define FT_COMPONENT  trace_ttinterp
 
 
-#define SUBPIXEL_HINTING                                                     \
+#define NO_SUBPIXEL_HINTING                                                  \
           ( ((TT_Driver)FT_FACE_DRIVER( exc->face ))->interpreter_version == \
+            TT_INTERPRETER_VERSION_35 )
+
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+#define SUBPIXEL_HINTING_INFINALITY                                          \
+          ( ((TT_Driver)FT_FACE_DRIVER( exc->face ))->interpreter_version == \
             TT_INTERPRETER_VERSION_38 )
+#endif
 
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+#define SUBPIXEL_HINTING_MINIMAL                                             \
+          ( ((TT_Driver)FT_FACE_DRIVER( exc->face ))->interpreter_version == \
+            TT_INTERPRETER_VERSION_40 )
+#endif
 
 #define PROJECT( v1, v2 )                                                \
           exc->func_project( exc, (v1)->x - (v2)->x, (v1)->y - (v2)->y )
@@ -286,8 +297,8 @@
     exec->stackSize = 0;
     exec->glyphSize = 0;
 
-    exec->stack     = NULL;
-    exec->glyphIns  = NULL;
+    exec->stack    = NULL;
+    exec->glyphIns = NULL;
 
     exec->face = NULL;
     exec->size = NULL;
@@ -1561,7 +1572,7 @@
   static FT_Short
   GetShortIns( TT_ExecContext  exc )
   {
-    /* Reading a byte stream so there is no endianess (DaveP) */
+    /* Reading a byte stream so there is no endianness (DaveP) */
     exc->IP += 2;
     return (FT_Short)( ( exc->code[exc->IP - 2] << 8 ) +
                          exc->code[exc->IP - 1]      );
@@ -1642,6 +1653,10 @@
   /* <InOut>                                                               */
   /*    zone     :: The affected glyph zone.                               */
   /*                                                                       */
+  /* <Note>                                                                */
+  /*    See `ttinterp.h' for details on backwards compatibility mode.      */
+  /*    `Touches' the point.                                               */
+  /*                                                                       */
   static void
   Direct_Move( TT_ExecContext  exc,
                TT_GlyphZone    zone,
@@ -1655,13 +1670,26 @@
 
     if ( v != 0 )
     {
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-      if ( !SUBPIXEL_HINTING                                      ||
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+      if ( SUBPIXEL_HINTING_INFINALITY                            &&
            ( !exc->ignore_x_mode                                ||
              ( exc->sph_tweak_flags & SPH_TWEAK_ALLOW_X_DMOVE ) ) )
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
         zone->cur[point].x += FT_MulDiv( distance, v, exc->F_dot_P );
+      else
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+      /* Exception to the post-IUP curfew: Allow the x component of */
+      /* diagonal moves, but only post-IUP.  DejaVu tries to adjust */
+      /* diagonal stems like on `Z' and `z' post-IUP.               */
+      if ( SUBPIXEL_HINTING_MINIMAL && !exc->backwards_compatibility )
+        zone->cur[point].x += FT_MulDiv( distance, v, exc->F_dot_P );
+      else
+#endif
+
+      if ( NO_SUBPIXEL_HINTING )
+        zone->cur[point].x += FT_MulDiv( distance, v, exc->F_dot_P );
+
       zone->tags[point] |= FT_CURVE_TAG_TOUCH_X;
     }
 
@@ -1669,7 +1697,13 @@
 
     if ( v != 0 )
     {
-      zone->cur[point].y += FT_MulDiv( distance, v, exc->F_dot_P );
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+      if ( !( SUBPIXEL_HINTING_MINIMAL     &&
+              exc->backwards_compatibility &&
+              exc->iupx_called             &&
+              exc->iupy_called             ) )
+#endif
+        zone->cur[point].y += FT_MulDiv( distance, v, exc->F_dot_P );
 
       zone->tags[point] |= FT_CURVE_TAG_TOUCH_Y;
     }
@@ -1720,6 +1754,7 @@
   /*                                                                       */
   /*   The following versions are used whenever both vectors are both      */
   /*   along one of the coordinate unit vectors, i.e. in 90% of the cases. */
+  /*   See `ttinterp.h' for details on backwards compatibility mode.       */
   /*                                                                       */
   /*************************************************************************/
 
@@ -1730,14 +1765,21 @@
                  FT_UShort       point,
                  FT_F26Dot6      distance )
   {
-    FT_UNUSED( exc );
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+    if ( SUBPIXEL_HINTING_INFINALITY && !exc->ignore_x_mode )
+      zone->cur[point].x += distance;
+    else
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-    if ( !SUBPIXEL_HINTING   ||
-         !exc->ignore_x_mode )
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+    if ( SUBPIXEL_HINTING_MINIMAL && !exc->backwards_compatibility )
       zone->cur[point].x += distance;
+    else
+#endif
 
+    if ( NO_SUBPIXEL_HINTING )
+      zone->cur[point].x += distance;
+
     zone->tags[point]  |= FT_CURVE_TAG_TOUCH_X;
   }
 
@@ -1750,8 +1792,14 @@
   {
     FT_UNUSED( exc );
 
-    zone->cur[point].y += distance;
-    zone->tags[point]  |= FT_CURVE_TAG_TOUCH_Y;
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+    if ( !( SUBPIXEL_HINTING_MINIMAL             &&
+            exc->backwards_compatibility         &&
+            exc->iupx_called && exc->iupy_called ) )
+#endif
+      zone->cur[point].y += distance;
+
+    zone->tags[point] |= FT_CURVE_TAG_TOUCH_Y;
   }
 
 
@@ -2030,7 +2078,7 @@
                         FT_F26Dot6      distance,
                         FT_F26Dot6      compensation )
   {
-    FT_F26Dot6 val;
+    FT_F26Dot6  val;
 
     FT_UNUSED( exc );
 
@@ -2069,7 +2117,7 @@
   /*    Rounded distance.                                                  */
   /*                                                                       */
   /* <Note>                                                                */
-  /*    The TrueType specification says very few about the relationship    */
+  /*    The TrueType specification says very little about the relationship */
   /*    between rounding and engine compensation.  However, it seems from  */
   /*    the description of super round that we should add the compensation */
   /*    before rounding.                                                   */
@@ -2878,8 +2926,6 @@
   Ins_RS( TT_ExecContext  exc,
           FT_Long*        args )
   {
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-
     FT_ULong  I = (FT_ULong)args[0];
 
 
@@ -2892,9 +2938,10 @@
     }
     else
     {
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
       /* subpixel hinting - avoid Typeman Dstroke and */
       /* IStroke and Vacuform rounds                  */
-      if ( SUBPIXEL_HINTING                            &&
+      if ( SUBPIXEL_HINTING_INFINALITY                 &&
            exc->ignore_x_mode                          &&
            ( ( I == 24                             &&
                ( exc->face->sph_found_func_flags &
@@ -2909,25 +2956,9 @@
                exc->iup_called                     ) ) )
         args[0] = 0;
       else
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
         args[0] = exc->storage[I];
     }
-
-#else /* !TT_CONFIG_OPTION_SUBPIXEL_HINTING */
-
-    FT_ULong  I = (FT_ULong)args[0];
-
-
-    if ( BOUNDSL( I, exc->storeSize ) )
-    {
-      if ( exc->pedantic_hinting )
-        ARRAY_BOUND_ERROR;
-      else
-        args[0] = 0;
-    }
-    else
-      args[0] = exc->storage[I];
-
-#endif /* !TT_CONFIG_OPTION_SUBPIXEL_HINTING */
   }
 
 
@@ -3409,7 +3440,7 @@
     TT_DefRecord*  rec;
     TT_DefRecord*  limit;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     /* arguments to opcodes are skipped by `SKIP_Code' */
     FT_Byte    opcode_pattern[9][12] = {
                  /* #0 inline delta function 1 */
@@ -3507,7 +3538,7 @@
     FT_UShort  opcode_pointer[9] = {  0, 0, 0, 0, 0, 0, 0, 0, 0 };
     FT_UShort  opcode_size[9]    = { 12, 8, 8, 6, 7, 4, 5, 4, 2 };
     FT_UShort  i;
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
 
     /* some font programs are broken enough to redefine functions! */
@@ -3552,7 +3583,7 @@
     if ( n > exc->maxFunc )
       exc->maxFunc = (FT_UInt16)n;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     /* We don't know for sure these are typeman functions, */
     /* however they are only active when RS 22 is called   */
     if ( n >= 64 && n <= 66 )
@@ -3565,9 +3596,9 @@
     while ( SkipCode( exc ) == SUCCESS )
     {
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
 
-      if ( SUBPIXEL_HINTING )
+      if ( SUBPIXEL_HINTING_INFINALITY )
       {
         for ( i = 0; i < opcode_patterns; i++ )
         {
@@ -3674,7 +3705,7 @@
             ( exc->face->sph_found_func_flags & SPH_FDEF_INLINE_DELTA_2 ) );
       }
 
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
       switch ( exc->opcode )
       {
@@ -3703,9 +3734,9 @@
     TT_CallRec*  pRec;
 
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     exc->sph_in_func_flags = 0x0000;
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     if ( exc->callTop <= 0 )     /* We encountered an ENDF without a call */
     {
@@ -3791,8 +3822,8 @@
     if ( !def->active )
       goto Fail;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-    if ( SUBPIXEL_HINTING                                               &&
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+    if ( SUBPIXEL_HINTING_INFINALITY                                    &&
          exc->ignore_x_mode                                             &&
          ( ( exc->iup_called                                        &&
              ( exc->sph_tweak_flags & SPH_TWEAK_NO_CALL_AFTER_IUP ) ) ||
@@ -3800,7 +3831,7 @@
       goto Fail;
     else
       exc->sph_in_func_flags = def->sph_fdef_flags;
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     /* check the call stack */
     if ( exc->callTop >= exc->callSize )
@@ -3879,14 +3910,14 @@
     if ( !def->active )
       goto Fail;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-    if ( SUBPIXEL_HINTING                                    &&
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+    if ( SUBPIXEL_HINTING_INFINALITY                         &&
          exc->ignore_x_mode                                  &&
          ( def->sph_fdef_flags & SPH_FDEF_VACUFORM_ROUND_1 ) )
       goto Fail;
     else
       exc->sph_in_func_flags = def->sph_fdef_flags;
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     /* check stack */
     if ( exc->callTop >= exc->callSize )
@@ -4781,13 +4812,13 @@
       }
     }
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     /* Disable Type 2 Vacuform Rounds - e.g. Arial Narrow */
-    if ( SUBPIXEL_HINTING   &&
-         exc->ignore_x_mode &&
-         FT_ABS( D ) == 64  )
+    if ( SUBPIXEL_HINTING_INFINALITY &&
+         exc->ignore_x_mode          &&
+         FT_ABS( D ) == 64           )
       D += 1;
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     args[0] = D;
   }
@@ -5043,12 +5074,23 @@
     exc->GS.instruct_control &= ~(FT_Byte)Kf;
     exc->GS.instruct_control |= (FT_Byte)L;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-    /* INSTCTRL modifying flag 3 also has an effect */
-    /* outside of the CVT program                   */
     if ( K == 3 )
-      exc->ignore_x_mode = FT_BOOL( L == 4 );
+    {
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+      /* INSTCTRL modifying flag 3 also has an effect */
+      /* outside of the CVT program                   */
+      if ( SUBPIXEL_HINTING_INFINALITY )
+        exc->ignore_x_mode = FT_BOOL( L == 4 );
 #endif
+
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+      /* Native ClearType fonts sign a waiver that turns off all backwards */
+      /* compatibility hacks and lets them program points to the grid like */
+      /* it's 1996.  They might sign a waiver for just one glyph, though.  */
+      if ( SUBPIXEL_HINTING_MINIMAL )
+        exc->backwards_compatibility = !FT_BOOL( L == 4 );
+#endif
+    }
   }
 
 
@@ -5133,6 +5175,15 @@
     FT_UShort  point;
 
 
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+    /* See `ttinterp.h' for details on backwards compatibility mode. */
+    if ( SUBPIXEL_HINTING_MINIMAL     &&
+         exc->backwards_compatibility &&
+         exc->iupx_called             &&
+         exc->iupy_called             )
+      goto Fail;
+#endif
+
     if ( exc->top < exc->GS.loop )
     {
       if ( exc->pedantic_hinting )
@@ -5179,6 +5230,15 @@
     FT_UShort  I, K, L;
 
 
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+    /* See `ttinterp.h' for details on backwards compatibility mode. */
+    if ( SUBPIXEL_HINTING_MINIMAL     &&
+         exc->backwards_compatibility &&
+         exc->iupx_called             &&
+         exc->iupy_called             )
+      return;
+#endif
+
     K = (FT_UShort)args[1];
     L = (FT_UShort)args[0];
 
@@ -5208,6 +5268,15 @@
     FT_UShort  I, K, L;
 
 
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+    /* See `ttinterp.h' for details on backwards compatibility mode. */
+    if ( SUBPIXEL_HINTING_MINIMAL     &&
+         exc->backwards_compatibility &&
+         exc->iupx_called             &&
+         exc->iupy_called             )
+      return;
+#endif
+
     K = (FT_UShort)args[1];
     L = (FT_UShort)args[0];
 
@@ -5267,6 +5336,7 @@
   }
 
 
+  /* See `ttinterp.h' for details on backwards compatibility mode. */
   static void
   Move_Zp2_Point( TT_ExecContext  exc,
                   FT_UShort       point,
@@ -5276,7 +5346,12 @@
   {
     if ( exc->GS.freeVector.x != 0 )
     {
-      exc->zp2.cur[point].x += dx;
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+      if ( !( SUBPIXEL_HINTING_MINIMAL     &&
+              exc->backwards_compatibility ) )
+#endif
+        exc->zp2.cur[point].x += dx;
+
       if ( touch )
         exc->zp2.tags[point] |= FT_CURVE_TAG_TOUCH_X;
     }
@@ -5283,7 +5358,14 @@
 
     if ( exc->GS.freeVector.y != 0 )
     {
-      exc->zp2.cur[point].y += dy;
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+      if ( !( SUBPIXEL_HINTING_MINIMAL     &&
+              exc->backwards_compatibility &&
+              exc->iupx_called             &&
+              exc->iupy_called             ) )
+#endif
+        exc->zp2.cur[point].y += dy;
+
       if ( touch )
         exc->zp2.tags[point] |= FT_CURVE_TAG_TOUCH_Y;
     }
@@ -5330,13 +5412,12 @@
         }
       }
       else
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
       /* doesn't follow Cleartype spec but produces better result */
-      if ( SUBPIXEL_HINTING   &&
-           exc->ignore_x_mode )
+      if ( SUBPIXEL_HINTING_INFINALITY && exc->ignore_x_mode )
         Move_Zp2_Point( exc, point, 0, dy, TRUE );
       else
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
         Move_Zp2_Point( exc, point, dx, dy, TRUE );
 
       exc->GS.loop--;
@@ -5464,11 +5545,17 @@
   {
     FT_F26Dot6  dx, dy;
     FT_UShort   point;
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     FT_Int      B1, B2;
 #endif
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+    FT_Bool     in_twilight = exc->GS.gep0 == 0 || \
+                              exc->GS.gep1 == 0 || \
+                              exc->GS.gep2 == 0;
+#endif
 
 
+
     if ( exc->top < exc->GS.loop + 1 )
     {
       if ( exc->pedantic_hinting )
@@ -5494,7 +5581,8 @@
         }
       }
       else
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+      if ( SUBPIXEL_HINTING_INFINALITY )
       {
         /*  If not using ignore_x_mode rendering, allow ZP2 move.        */
         /*  If inline deltas aren't allowed, skip ZP2 move.              */
@@ -5504,8 +5592,7 @@
         /*   - the glyph is specifically set to allow SHPIX moves        */
         /*   - the move is on a previously Y-touched point               */
 
-        if ( SUBPIXEL_HINTING   &&
-             exc->ignore_x_mode )
+        if ( exc->ignore_x_mode )
         {
           /* save point for later comparison */
           if ( exc->GS.freeVector.y != 0 )
@@ -5569,15 +5656,30 @@
         else
           Move_Zp2_Point( exc, point, dx, dy, TRUE );
       }
+      else
+#endif
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+      if ( SUBPIXEL_HINTING_MINIMAL     &&
+           exc->backwards_compatibility )
+      {
+        /* Special case: allow SHPIX to move points in the twilight zone.  */
+        /* Otherwise, treat SHPIX the same as DELTAP.  Unbreaks various    */
+        /* fonts such as older versions of Rokkitt and DTL Argo T Light    */
+        /* that would glitch severly after calling ALIGNRP after a blocked */
+        /* SHPIX.                                                          */
+        if ( in_twilight                                                ||
+             ( !( exc->iupx_called && exc->iupy_called )              &&
+               ( ( exc->is_composite && exc->GS.freeVector.y != 0 ) ||
+                 ( exc->zp2.tags[point] & FT_CURVE_TAG_TOUCH_Y )    ) ) )
+          Move_Zp2_Point( exc, point, 0, dy, TRUE );
+      }
+      else
+#endif
+        Move_Zp2_Point( exc, point, dx, dy, TRUE );
 
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     Skip:
-
-#else /* !TT_CONFIG_OPTION_SUBPIXEL_HINTING */
-
-      Move_Zp2_Point( exc, point, dx, dy, TRUE );
-
-#endif /* !TT_CONFIG_OPTION_SUBPIXEL_HINTING */
-
+#endif
       exc->GS.loop--;
     }
 
@@ -5597,14 +5699,13 @@
   Ins_MSIRP( TT_ExecContext  exc,
              FT_Long*        args )
   {
-    FT_UShort   point;
+    FT_UShort   point = 0;
     FT_F26Dot6  distance;
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+    FT_F26Dot6  control_value_cutin = 0;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-    FT_F26Dot6  control_value_cutin = 0; /* pacify compiler */
 
-
-    if ( SUBPIXEL_HINTING )
+    if ( SUBPIXEL_HINTING_INFINALITY )
     {
       control_value_cutin = exc->GS.control_value_cutin;
 
@@ -5613,9 +5714,8 @@
            !( exc->sph_tweak_flags & SPH_TWEAK_NORMAL_ROUND ) )
         control_value_cutin = 0;
     }
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
-
     point = (FT_UShort)args[0];
 
     if ( BOUNDS( point,       exc->zp1.n_points ) ||
@@ -5637,14 +5737,14 @@
 
     distance = PROJECT( exc->zp1.cur + point, exc->zp0.cur + exc->GS.rp0 );
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     /* subpixel hinting - make MSIRP respect CVT cut-in; */
-    if ( SUBPIXEL_HINTING                                    &&
+    if ( SUBPIXEL_HINTING_INFINALITY                         &&
          exc->ignore_x_mode                                  &&
          exc->GS.freeVector.x != 0                           &&
          FT_ABS( distance - args[1] ) >= control_value_cutin )
       distance = args[1];
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     exc->func_move( exc, &exc->zp1, point, args[1] - distance );
 
@@ -5683,10 +5783,10 @@
     if ( ( exc->opcode & 1 ) != 0 )
     {
       cur_dist = FAST_PROJECT( &exc->zp0.cur[point] );
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-      if ( SUBPIXEL_HINTING          &&
-           exc->ignore_x_mode        &&
-           exc->GS.freeVector.x != 0 )
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+      if ( SUBPIXEL_HINTING_INFINALITY &&
+           exc->ignore_x_mode          &&
+           exc->GS.freeVector.x != 0   )
         distance = Round_None(
                      exc,
                      cur_dist,
@@ -5729,14 +5829,14 @@
     cvtEntry            = (FT_ULong)args[1];
     point               = (FT_UShort)args[0];
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-    if ( SUBPIXEL_HINTING                                   &&
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+    if ( SUBPIXEL_HINTING_INFINALITY                        &&
          exc->ignore_x_mode                                 &&
          exc->GS.freeVector.x != 0                          &&
          exc->GS.freeVector.y == 0                          &&
          !( exc->sph_tweak_flags & SPH_TWEAK_NORMAL_ROUND ) )
       control_value_cutin = 0;
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     if ( BOUNDS( point,     exc->zp0.n_points ) ||
          BOUNDSL( cvtEntry, exc->cvtSize )      )
@@ -5770,13 +5870,13 @@
 
     if ( exc->GS.gep0 == 0 )   /* If in twilight zone */
     {
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
       /* Only adjust if not in sph_compatibility_mode or ignore_x_mode. */
       /* Determined via experimentation and may be incorrect...         */
-      if ( !SUBPIXEL_HINTING                      ||
-           ( !exc->ignore_x_mode                ||
-             !exc->face->sph_compatibility_mode ) )
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+      if ( !( SUBPIXEL_HINTING_INFINALITY           &&
+              ( exc->ignore_x_mode                &&
+                exc->face->sph_compatibility_mode ) ) )
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
         exc->zp0.org[point].x = TT_MulFix14( distance,
                                              exc->GS.freeVector.x );
       exc->zp0.org[point].y = TT_MulFix14( distance,
@@ -5783,14 +5883,14 @@
                                            exc->GS.freeVector.y ),
       exc->zp0.cur[point]   = exc->zp0.org[point];
     }
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-    if ( SUBPIXEL_HINTING                               &&
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+    if ( SUBPIXEL_HINTING_INFINALITY                    &&
          exc->ignore_x_mode                             &&
          ( exc->sph_tweak_flags & SPH_TWEAK_MIAP_HACK ) &&
          distance > 0                                   &&
          exc->GS.freeVector.y != 0                      )
       distance = 0;
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     org_dist = FAST_PROJECT( &exc->zp0.cur[point] );
 
@@ -5799,10 +5899,10 @@
       if ( FT_ABS( distance - org_dist ) > control_value_cutin )
         distance = org_dist;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-      if ( SUBPIXEL_HINTING          &&
-           exc->ignore_x_mode        &&
-           exc->GS.freeVector.x != 0 )
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+      if ( SUBPIXEL_HINTING_INFINALITY &&
+           exc->ignore_x_mode          &&
+           exc->GS.freeVector.x != 0   )
         distance = Round_None( exc,
                                distance,
                                exc->tt_metrics.compensations[0] );
@@ -5831,19 +5931,19 @@
   Ins_MDRP( TT_ExecContext  exc,
             FT_Long*        args )
   {
-    FT_UShort   point;
+    FT_UShort   point = 0;
     FT_F26Dot6  org_dist, distance, minimum_distance;
 
 
     minimum_distance = exc->GS.minimum_distance;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-    if ( SUBPIXEL_HINTING                                   &&
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+    if ( SUBPIXEL_HINTING_INFINALITY                        &&
          exc->ignore_x_mode                                 &&
          exc->GS.freeVector.x != 0                          &&
          !( exc->sph_tweak_flags & SPH_TWEAK_NORMAL_ROUND ) )
       minimum_distance = 0;
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     point = (FT_UShort)args[0];
 
@@ -5907,10 +6007,10 @@
 
     if ( ( exc->opcode & 4 ) != 0 )
     {
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-      if ( SUBPIXEL_HINTING          &&
-           exc->ignore_x_mode        &&
-           exc->GS.freeVector.x != 0 )
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+      if ( SUBPIXEL_HINTING_INFINALITY &&
+           exc->ignore_x_mode          &&
+           exc->GS.freeVector.x != 0   )
         distance = Round_None(
                      exc,
                      org_dist,
@@ -5978,11 +6078,11 @@
                 org_dist,
                 control_value_cutin,
                 minimum_distance;
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     FT_Int      B1           = 0; /* pacify compiler */
     FT_Int      B2           = 0;
     FT_Bool     reverse_move = FALSE;
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
 
     minimum_distance    = exc->GS.minimum_distance;
@@ -5990,13 +6090,14 @@
     point               = (FT_UShort)args[0];
     cvtEntry            = (FT_ULong)( args[1] + 1 );
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-    if ( SUBPIXEL_HINTING                                   &&
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+    if ( SUBPIXEL_HINTING_INFINALITY                        &&
          exc->ignore_x_mode                                 &&
          exc->GS.freeVector.x != 0                          &&
          !( exc->sph_tweak_flags & SPH_TWEAK_NORMAL_ROUND ) )
       control_value_cutin = minimum_distance = 0;
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+    else
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     /* XXX: UNDOCUMENTED! cvt[-1] = 0 always */
 
@@ -6049,8 +6150,8 @@
         cvt_dist = -cvt_dist;
     }
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-    if ( SUBPIXEL_HINTING                                          &&
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+    if ( SUBPIXEL_HINTING_INFINALITY                               &&
          exc->ignore_x_mode                                        &&
          exc->GS.freeVector.y != 0                                 &&
          ( exc->sph_tweak_flags & SPH_TWEAK_TIMES_NEW_ROMAN_HACK ) )
@@ -6060,7 +6161,7 @@
       else if ( cur_dist > 64 && cur_dist < 84 )
         cvt_dist += 32;
     }
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     /* control value cut-in and round */
 
@@ -6095,9 +6196,9 @@
     else
     {
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
       /* do cvt cut-in always in MIRP for sph */
-      if ( SUBPIXEL_HINTING             &&
+      if ( SUBPIXEL_HINTING_INFINALITY  &&
            exc->ignore_x_mode           &&
            exc->GS.gep0 == exc->GS.gep1 )
       {
@@ -6104,7 +6205,7 @@
         if ( FT_ABS( cvt_dist - org_dist ) > control_value_cutin )
           cvt_dist = org_dist;
       }
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
       distance = Round_None(
                    exc,
@@ -6128,8 +6229,8 @@
       }
     }
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-    if ( SUBPIXEL_HINTING )
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+    if ( SUBPIXEL_HINTING_INFINALITY )
     {
       B1 = exc->zp1.cur[point].y;
 
@@ -6146,12 +6247,12 @@
            ( exc->sph_tweak_flags & SPH_TWEAK_COURIER_NEW_2_HACK ) )
         distance += 64;
     }
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     exc->func_move( exc, &exc->zp1, point, distance - cur_dist );
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-    if ( SUBPIXEL_HINTING )
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+    if ( SUBPIXEL_HINTING_INFINALITY )
     {
       B2 = exc->zp1.cur[point].y;
 
@@ -6175,7 +6276,7 @@
         exc->func_move( exc, &exc->zp1, point, -( distance - cur_dist ) );
     }
 
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
   Fail:
     exc->GS.rp1 = exc->GS.rp0;
@@ -6200,8 +6301,8 @@
     FT_F26Dot6  distance;
 
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-    if ( SUBPIXEL_HINTING                                          &&
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+    if ( SUBPIXEL_HINTING_INFINALITY                               &&
          exc->ignore_x_mode                                        &&
          exc->iup_called                                           &&
          ( exc->sph_tweak_flags & SPH_TWEAK_NO_ALIGNRP_AFTER_IUP ) )
@@ -6209,7 +6310,7 @@
       exc->error = FT_THROW( Invalid_Reference );
       goto Fail;
     }
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     if ( exc->top < exc->GS.loop                  ||
          BOUNDS( exc->GS.rp0, exc->zp0.n_points ) )
@@ -6324,6 +6425,7 @@
       R.x = FT_MulDiv( val, dax, discriminant );
       R.y = FT_MulDiv( val, day, discriminant );
 
+      /* XXX: Block in backwards_compatibility and/or post-IUP? */
       exc->zp2.cur[point].x = exc->zp1.cur[a0].x + R.x;
       exc->zp2.cur[point].y = exc->zp1.cur[a0].y + R.y;
     }
@@ -6331,6 +6433,7 @@
     {
       /* else, take the middle of the middles of A and B */
 
+      /* XXX: Block in backwards_compatibility and/or post-IUP? */
       exc->zp2.cur[point].x = ( exc->zp1.cur[a0].x +
                                 exc->zp1.cur[a1].x +
                                 exc->zp0.cur[b0].x +
@@ -6719,6 +6822,23 @@
     FT_Short  contour;       /* current contour */
 
 
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+    /* See `ttinterp.h' for details on backwards compatibility mode. */
+    /* Allow IUP until it has been called on both axes.  Immediately */
+    /* return on subsequent ones.                                    */
+    if ( SUBPIXEL_HINTING_MINIMAL     &&
+         exc->backwards_compatibility )
+    {
+      if ( exc->iupx_called && exc->iupy_called )
+        return;
+
+      if ( exc->opcode & 1 )
+        exc->iupx_called = TRUE;
+      else
+        exc->iupy_called = TRUE;
+    }
+#endif
+
     /* ignore empty outlines */
     if ( exc->pts.n_contours == 0 )
       return;
@@ -6742,15 +6862,15 @@
     contour = 0;
     point   = 0;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
-    if ( SUBPIXEL_HINTING   &&
-         exc->ignore_x_mode )
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+    if ( SUBPIXEL_HINTING_INFINALITY &&
+         exc->ignore_x_mode          )
     {
       exc->iup_called = TRUE;
       if ( exc->sph_tweak_flags & SPH_TWEAK_SKIP_IUP )
         return;
     }
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     do
     {
@@ -6822,16 +6942,16 @@
     FT_UShort  A;
     FT_ULong   C, P;
     FT_Long    B;
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     FT_UShort  B1, B2;
 
 
-    if ( SUBPIXEL_HINTING                                         &&
+    if ( SUBPIXEL_HINTING_INFINALITY                              &&
          exc->ignore_x_mode                                       &&
          exc->iup_called                                          &&
          ( exc->sph_tweak_flags & SPH_TWEAK_NO_DELTAP_AFTER_IUP ) )
       goto Fail;
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     P    = (FT_ULong)exc->func_cur_ppem( exc );
     nump = (FT_ULong)args[0];   /* some points theoretically may occur more
@@ -6885,9 +7005,9 @@
             B++;
           B *= 1L << ( 6 - exc->GS.delta_shift );
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
 
-          if ( SUBPIXEL_HINTING )
+          if ( SUBPIXEL_HINTING_INFINALITY )
           {
             /*
              *  Allow delta move if
@@ -6944,9 +7064,25 @@
             }
           }
           else
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
-            exc->func_move( exc, &exc->zp0, A, B );
+          {
+
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+            /* See `ttinterp.h' for details on backwards compatibility */
+            /* mode.                                                   */
+            if ( SUBPIXEL_HINTING_MINIMAL     &&
+                 exc->backwards_compatibility )
+            {
+              if ( !( exc->iupx_called && exc->iupy_called )              &&
+                   ( ( exc->is_composite && exc->GS.freeVector.y != 0 ) ||
+                     ( exc->zp0.tags[A] & FT_CURVE_TAG_TOUCH_Y )        ) )
+                exc->func_move( exc, &exc->zp0, A, B );
+            }
+            else
+#endif
+              exc->func_move( exc, &exc->zp0, A, B );
+          }
         }
       }
       else
@@ -7062,20 +7198,21 @@
   Ins_GETINFO( TT_ExecContext  exc,
                FT_Long*        args )
   {
-    FT_Long  K;
+    FT_Long    K;
+    TT_Driver  driver = (TT_Driver)FT_FACE_DRIVER( exc->face );
 
 
     K = 0;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     /********************************/
     /* RASTERIZER VERSION           */
     /* Selector Bit:  0             */
     /* Return Bit(s): 0-7           */
     /*                              */
-    if ( SUBPIXEL_HINTING      &&
-         ( args[0] & 1 ) != 0  &&
-         exc->subpixel_hinting )
+    if ( SUBPIXEL_HINTING_INFINALITY &&
+         ( args[0] & 1 ) != 0        &&
+         exc->subpixel_hinting       )
     {
       if ( exc->ignore_x_mode )
       {
@@ -7089,9 +7226,9 @@
         K = TT_INTERPRETER_VERSION_38;
     }
     else
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
       if ( ( args[0] & 1 ) != 0 )
-        K = TT_INTERPRETER_VERSION_35;
+        K = driver->interpreter_version;
 
     /********************************/
     /* GLYPH ROTATED                */
@@ -7110,7 +7247,8 @@
       K |= 1 << 8;
 
     /********************************/
-    /* HINTING FOR GRAYSCALE        */
+    /* BI-LEVEL HINTING AND         */
+    /* GRAYSCALE RENDERING          */
     /* Selector Bit:  5             */
     /* Return Bit(s): 12            */
     /*                              */
@@ -7117,9 +7255,61 @@
     if ( ( args[0] & 32 ) != 0 && exc->grayscale )
       K |= 1 << 12;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+    if ( SUBPIXEL_HINTING_MINIMAL )
+    {
+      /********************************/
+      /* HINTING FOR SUBPIXEL         */
+      /* Selector Bit:  6             */
+      /* Return Bit(s): 13            */
+      /*                              */
+      /* v40 does subpixel hinting by default. */
+      if ( ( args[0] & 64 ) != 0 )
+        K |= 1 << 13;
 
-    if ( SUBPIXEL_HINTING                                     &&
+      /********************************/
+      /* VERTICAL LCD SUBPIXELS?      */
+      /* Selector Bit:  8             */
+      /* Return Bit(s): 15            */
+      /*                              */
+      if ( ( args[0] & 256 ) != 0 && exc->vertical_lcd_lean )
+        K |= 1 << 15;
+
+      /********************************/
+      /* SUBPIXEL POSITIONED?         */
+      /* Selector Bit:  10            */
+      /* Return Bit(s): 17            */
+      /*                              */
+      /* XXX: FreeType supports it, dependent on what client does? */
+      if ( ( args[0] & 1024 ) != 0 )
+        K |= 1 << 17;
+
+      /********************************/
+      /* SYMMETRICAL SMOOTHING        */
+      /* Selector Bit:  11            */
+      /* Return Bit(s): 18            */
+      /*                              */
+      /* The only smoothing method FreeType supports unless someone sets */
+      /* FT_LOAD_TARGET_MONO.                                            */
+      if ( ( args[0] & 2048 ) != 0 )
+        K |= 1 << 18;
+
+      /********************************/
+      /* CLEARTYPE HINTING AND        */
+      /* GRAYSCALE RENDERING          */
+      /* Selector Bit:  12            */
+      /* Return Bit(s): 19            */
+      /*                              */
+      /* Grayscale rendering is what FreeType does anyway unless someone */
+      /* sets FT_LOAD_TARGET_MONO or FT_LOAD_TARGET_LCD(_V)              */
+      if ( ( args[0] & 4096 ) != 0 && exc->grayscale_cleartype )
+        K |= 1 << 19;
+    }
+#endif
+
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+
+    if ( SUBPIXEL_HINTING_INFINALITY                          &&
          exc->rasterizer_version >= TT_INTERPRETER_VERSION_35 )
     {
 
@@ -7192,7 +7382,7 @@
       }
     }
 
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
     args[0] = K;
   }
@@ -7274,7 +7464,7 @@
     FT_Long    ins_counter = 0;  /* executed instructions counter */
     FT_UShort  i;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     FT_Byte    opcode_pattern[1][2] = {
                   /* #8 TypeMan Talk Align */
                   {
@@ -7285,13 +7475,28 @@
     FT_UShort  opcode_patterns   = 1;
     FT_UShort  opcode_pointer[1] = { 0 };
     FT_UShort  opcode_size[1]    = { 1 };
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     exc->iup_called = FALSE;
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+    /* Toggle backwards compatibility according to what font says, except  */
+    /* when it's a `tricky' font that heavily relies on the interpreter to */
+    /* render glyphs correctly, e.g. DFKai-SB.  Backwards compatibility    */
+    /* hacks may break it.                                                 */
+    if ( SUBPIXEL_HINTING_MINIMAL          &&
+         !FT_IS_TRICKY( &exc->face->root ) )
+      exc->backwards_compatibility = !( exc->GS.instruct_control & 4 );
+    else
+      exc->backwards_compatibility = FALSE;
+
+    exc->iupx_called = FALSE;
+    exc->iupy_called = FALSE;
+#endif
+
     /* set PPEM and CVT functions */
     exc->tt_metrics.ratio = 0;
     if ( exc->metrics.x_ppem != exc->metrics.y_ppem )
@@ -7383,9 +7588,9 @@
       exc->step_ins = TRUE;
       exc->error    = FT_Err_Ok;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
 
-      if ( SUBPIXEL_HINTING )
+      if ( SUBPIXEL_HINTING_INFINALITY )
       {
         for ( i = 0; i < opcode_patterns; i++ )
         {
@@ -7414,7 +7619,7 @@
         }
       }
 
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
       {
         FT_Long*  args   = exc->stack + exc->args;

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttinterp.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttinterp.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttinterp.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -99,7 +99,7 @@
   } TT_CallRec, *TT_CallStack;
 
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
 
   /*************************************************************************/
   /*                                                                       */
@@ -138,7 +138,7 @@
 
   } SPH_Font_Class;
 
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
 
   /*************************************************************************/
@@ -247,9 +247,135 @@
     TT_Set_CVT_Func    func_write_cvt; /* write a cvt entry (in pixels) */
     TT_Set_CVT_Func    func_move_cvt;  /* incr a cvt entry (in pixels)  */
 
-    FT_Bool            grayscale;      /* are we hinting for grayscale? */
+    FT_Bool            grayscale;      /* bi-level hinting and */
+                                       /* grayscale rendering  */
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+    /*
+     * Modern TrueType fonts are usually rendered through Microsoft's
+     * collection of rendering techniques called ClearType (e.g., subpixel
+     * rendering and subpixel hinting).  When ClearType was introduced, most
+     * fonts were not ready.  Microsoft decided to implement a backwards
+     * compatibility mode that employed several simple to complicated
+     * assumptions and tricks that modified the interpretation of the
+     * bytecode contained in these fonts to make them look ClearType-y
+     * somehow.  Most (web)fonts that were released since then have come to
+     * rely on these hacks to render correctly, even some of Microsoft's
+     * flagship ClearType fonts (Calibri, Cambria, Segoe UI).
+     *
+     * The minimal subpixel hinting code (interpreter version 40) employs a
+     * small list of font-agnostic hacks to bludgeon non-native-ClearType
+     * fonts (except tricky ones[1]) into submission.  It will not try to
+     * toggle hacks for specific fonts for performance and complexity
+     * reasons.  The focus is on modern (web)fonts rather than legacy fonts
+     * that were made for black-and-white rendering.
+     *
+     * Major hacks
+     *
+     * - Any point movement on the x axis is ignored (cf. `Direct_Move' and
+     *   `Direct_Move_X').  This has the smallest code footprint and single
+     *   biggest effect.  The ClearType way to increase resolution is
+     *   supersampling the x axis, the FreeType way is ignoring instructions
+     *   on the x axis, which gives the same result in the majority of
+     *   cases.
+     *
+     * - Points are not moved post-IUP (neither on the x nor on the y axis),
+     *   except the x component of diagonal moves post-IUP (cf.
+     *   `Direct_Move', `Direct_Move_Y', `Move_Zp2_Point').  Post-IUP
+     *   changes are commonly used to `fix' pixel patterns which has little
+     *   use outside monochrome rendering.
+     *
+     * - SHPIX and DELTAP don't execute unless moving a composite on the
+     *   y axis or moving a previously y touched point.  SHPIX additionally
+     *   denies movement on the x axis (cf. `Ins_SHPIX' and `Ins_DELTAP').
+     *   Both instructions are commonly used to `fix' pixel patterns for
+     *   monochrome or Windows's GDI rendering but make little sense for
+     *   FreeType rendering.  Both can distort the outline.  See [2] for
+     *   details.
+     *
+     * - The hdmx table and modifications to phantom points are ignored.
+     *   Bearings and advance widths remain unchanged (except rounding them
+     *   outside the interpreter!), cf. `compute_glyph_metrics' and
+     *   `TT_Hint_Glyph'.  Letting non-native-ClearType fonts modify spacing
+     *   might mess up spacing.
+     *
+     * Minor hacks
+     *
+     * - FLIPRGON, FLIPRGOFF, and FLIPPT don't execute post-IUP.  This
+     *   prevents dents in e.g. Arial-Regular's `D' and `G' glyphs at
+     *   various sizes.
+     *
+     * (Post-IUP is the state after both IUP[x] and IUP[y] have been
+     * executed.)
+     *
+     * The best results are achieved for fonts that were from the outset
+     * designed with ClearType in mind, meaning they leave the x axis mostly
+     * alone and don't mess with the `final' outline to produce more
+     * pleasing pixel patterns.  The harder the designer tried to produce
+     * very specific patterns (`superhinting') for pre-ClearType-displays,
+     * the worse the results.
+     *
+     * Microsoft defines a way to turn off backwards compatibility and
+     * interpret instructions as before (called `native ClearType')[2][3].
+     * The font designer then regains full control and is responsible for
+     * making the font work correctly with ClearType without any
+     * hand-holding by the interpreter or rasterizer[4].  The v40
+     * interpreter assumes backwards compatibility by default, which can be
+     * turned off the same way by executing the following in the control
+     * program (cf. `Ins_INSTCTRL').
+     *
+     *   #PUSH 4,3
+     *   INSTCTRL[]
+     *
+     * [1] Tricky fonts as FreeType defines them rely on the bytecode
+     *     interpreter to display correctly.  Hacks can interfere with them,
+     *     so they get treated like native ClearType fonts (v40 with
+     *     backwards compatibility turned off).  Cf. `TT_RunIns'.
+     *
+     * [2] Proposed by Microsoft's Greg Hitchcock in
+     *     https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
+     *
+     * [3] Beat Stamm describes it in more detail:
+     *     http://www.beatstamm.com/typography/RTRCh4.htm#Sec12
+     *
+     * [4] The list of `native ClearType' fonts is small at the time of this
+     *     writing; I found the following on a Windows 10 Update 1511
+     *     installation: Constantia, Corbel, Sitka, Malgun Gothic, Microsoft
+     *     JhengHei (Bold and UI Bold), Microsoft YaHei (Bold and UI Bold),
+     *     SimSun, NSimSun, and Yu Gothic.
+     *
+     */
+
+    /* Using v40 implies subpixel hinting.  Used to detect interpreter */
+    /* version switches.  `_lean' to differentiate from the Infinality */
+    /* `subpixel_hinting', which is managed differently.               */
+    FT_Bool            subpixel_hinting_lean;
+
+    /* Long side of a LCD subpixel is vertical (e.g., screen is rotated). */
+    /* `_lean' to differentiate from the Infinality `vertical_lcd', which */
+    /* is managed differently.                                            */
+    FT_Bool            vertical_lcd_lean;
+
+    /* Default to backwards compatibility mode in v40 interpreter.  If  */
+    /* this is false, it implies the interpreter is in v35 or in native */
+    /* ClearType mode.                                                  */
+    FT_Bool            backwards_compatibility;
+
+    /* Useful for detecting and denying post-IUP trickery that is usually */
+    /* used to fix pixel patterns (`superhinting').                       */
+    FT_Bool            iupx_called;
+    FT_Bool            iupy_called;
+
+    /* ClearType hinting and grayscale rendering, as used by Universal */
+    /* Windows Platform apps (Windows 8 and above).  Like the standard */
+    /* colorful ClearType mode, it utilizes a vastly increased virtual */
+    /* resolution on the x axis.  Different from bi-level hinting and  */
+    /* grayscale rendering, the old mode from Win9x days that roughly  */
+    /* adheres to the physical pixel grid on both axes.                */
+    FT_Bool            grayscale_cleartype;
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL */
+
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     TT_Round_Func      func_round_sphn;   /* subpixel rounding function */
 
     FT_Bool            subpixel_hinting;  /* Using subpixel hinting?       */
@@ -279,7 +405,7 @@
     FT_ULong           sph_in_func_flags;     /* flags to indicate if in   */
                                               /* special functions         */
 
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
   } TT_ExecContextRec;
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttobjs.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttobjs.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttobjs.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -398,11 +398,11 @@
     for ( j = 0; j < TRICK_SFNT_IDS_NUM_FACES; j++ )
     {
       if ( !has_cvt  && !sfnt_id[j][TRICK_SFNT_ID_cvt].Length )
-        num_matched_ids[j] ++;
+        num_matched_ids[j]++;
       if ( !has_fpgm && !sfnt_id[j][TRICK_SFNT_ID_fpgm].Length )
-        num_matched_ids[j] ++;
+        num_matched_ids[j]++;
       if ( !has_prep && !sfnt_id[j][TRICK_SFNT_ID_prep].Length )
-        num_matched_ids[j] ++;
+        num_matched_ids[j]++;
       if ( num_matched_ids[j] == TRICK_SFNT_IDS_PER_FACE )
         return TRUE;
     }
@@ -1287,11 +1287,13 @@
 
     TT_Driver  driver = (TT_Driver)ttdriver;
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+    driver->interpreter_version = TT_INTERPRETER_VERSION_35;
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
     driver->interpreter_version = TT_INTERPRETER_VERSION_38;
-#else
-    driver->interpreter_version = TT_INTERPRETER_VERSION_35;
 #endif
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+    driver->interpreter_version = TT_INTERPRETER_VERSION_40;
+#endif
 
 #else /* !TT_USE_BYTECODE_INTERPRETER */
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttsubpix.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttsubpix.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttsubpix.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -27,7 +27,7 @@
 #include "ttsubpix.h"
 
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
 
   /*************************************************************************/
   /*                                                                       */
@@ -1000,12 +1000,12 @@
     }
   }
 
-#else /* !TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#else /* !TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
   /* ANSI C doesn't like empty source files */
   typedef int  _tt_subpix_dummy;
 
-#endif /* !TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* !TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
 
 /* END */

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttsubpix.h
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttsubpix.h	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/truetype/ttsubpix.h	2016-07-07 09:56:43 UTC (rev 41649)
@@ -27,7 +27,7 @@
 FT_BEGIN_HEADER
 
 
-#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
 
   /*************************************************************************/
   /*                                                                       */
@@ -100,7 +100,7 @@
 #define SPH_OPTION_SET_COMPATIBLE_WIDTHS   FALSE
 #define SPH_OPTION_SET_RASTERIZER_VERSION  38
 
-#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */
+#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
 
 
 FT_END_HEADER

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/type1/t1afm.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/type1/t1afm.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/type1/t1afm.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -197,7 +197,7 @@
     /*   encoding of first glyph (1 byte)     */
     /*   encoding of second glyph (1 byte)    */
     /*   offset (little-endian short)         */
-    for ( ; p < limit ; p += 4 )
+    for ( ; p < limit; p += 4 )
     {
       kp->index1 = FT_Get_Char_Index( t1_face, p[0] );
       kp->index2 = FT_Get_Char_Index( t1_face, p[1] );

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/type1/t1load.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/type1/t1load.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/type1/t1load.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -326,7 +326,7 @@
                                       /* Point to axes after MM_Var struct */
     mmvar->namedstyle      = NULL;
 
-    for ( i = 0 ; i < mmaster.num_axis; ++i )
+    for ( i = 0; i < mmaster.num_axis; ++i )
     {
       mmvar->axis[i].name    = mmaster.axis[i].name;
       mmvar->axis[i].minimum = INT_TO_FIXED( mmaster.axis[i].minimum);
@@ -1544,7 +1544,7 @@
       /*                                                         */
       if ( face->type1.private_dict.lenIV >= 0 )
       {
-        FT_Byte*  temp;
+        FT_Byte*  temp = NULL;
 
 
         /* some fonts define empty subr records -- this is not totally */
@@ -1748,7 +1748,7 @@
         if ( face->type1.private_dict.lenIV >= 0 &&
              n < num_glyphs + TABLE_EXTEND       )
         {
-          FT_Byte*  temp;
+          FT_Byte*  temp = NULL;
 
 
           if ( size <= (FT_ULong)face->type1.private_dict.lenIV )

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/type1/t1objs.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/type1/t1objs.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/type1/t1objs.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -67,7 +67,7 @@
                             "pshinter" );
     return ( module && pshinter && pshinter->get_globals_funcs )
            ? pshinter->get_globals_funcs( module )
-           : 0 ;
+           : 0;
   }
 
 

Modified: trunk/Build/source/libs/freetype2/freetype-src/src/type42/t42parse.c
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/src/type42/t42parse.c	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/src/type42/t42parse.c	2016-07-07 09:56:43 UTC (rev 41649)
@@ -899,8 +899,13 @@
 
     for (;;)
     {
-      /* The format is simple:                   */
-      /*   `/glyphname' + index [+ def]          */
+      /* We support two formats.                     */
+      /*                                             */
+      /*   `/glyphname' + index [+ `def']            */
+      /*   `(glyphname)' [+ `cvn'] + index [+ `def'] */
+      /*                                             */
+      /* The latter format gets created by the       */
+      /* LilyPond typesetting program.               */
 
       T1_Skip_Spaces( parser );
 
@@ -928,12 +933,13 @@
       if ( parser->root.error )
         return;
 
-      if ( *cur == '/' )
+      if ( *cur == '/' || *cur == '(' )
       {
         FT_UInt  len;
+        FT_Bool  have_literal = ( *cur == '(' );
 
 
-        if ( cur + 2 >= limit )
+        if ( cur + ( have_literal ? 3 : 2 ) >= limit )
         {
           FT_ERROR(( "t42_parse_charstrings: out of bounds\n" ));
           error = FT_THROW( Invalid_File_Format );
@@ -942,6 +948,8 @@
 
         cur++;                              /* skip `/' */
         len = (FT_UInt)( parser->root.cursor - cur );
+        if ( have_literal )
+          len--;
 
         error = T1_Add_Table( name_table, n, cur, len + 1 );
         if ( error )
@@ -961,6 +969,9 @@
 
         T1_Skip_Spaces( parser );
 
+        if ( have_literal )
+          T1_Skip_PS_Token( parser );
+
         cur = parser->root.cursor;
 
         (void)T1_ToInt( parser );

Modified: trunk/Build/source/libs/freetype2/freetype-src/vms_make.com
===================================================================
--- trunk/Build/source/libs/freetype2/freetype-src/vms_make.com	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/freetype-src/vms_make.com	2016-07-07 09:56:43 UTC (rev 41649)
@@ -1090,13 +1090,13 @@
 !          might look like. They are site specific and the locations of the
 !          library and include files need almost certainly to be changed.
 !
-! Location: All of the libaries can be found at the following addresses
+! Location: All of the libraries can be found at the following addresses
 !
 !   ZLIB:     http://zinser.no-ip.info/vms/sw/zlib.htmlx
 !
 ZLIB # sys$library:libz.olb # sys$library: # zlib.h # FT_CONFIG_OPTION_SYSTEM_ZLIB
 $   write sys$output "New driver file vmslib.dat created."
-$   write sys$output "Please customize libary locations for your site"
+$   write sys$output "Please customize library locations for your site"
 $   write sys$output "and afterwards re-execute ''myproc'"
 $   goto err_exit
 $ endif

Modified: trunk/Build/source/libs/freetype2/version.ac
===================================================================
--- trunk/Build/source/libs/freetype2/version.ac	2016-07-07 01:15:45 UTC (rev 41648)
+++ trunk/Build/source/libs/freetype2/version.ac	2016-07-07 09:56:43 UTC (rev 41649)
@@ -8,4 +8,4 @@
 dnl --------------------------------------------------------
 dnl
 dnl  m4-include this file to define the current freetype version
-m4_define([freetype_version], [2.6.3])
+m4_define([freetype_version], [2.6.4])



More information about the tex-live-commits mailing list