[FREETYPE] Update to v2.5.5. CORE-8888
authorAmine Khaldi <amine.khaldi@reactos.org>
Tue, 26 May 2015 12:02:58 +0000 (12:02 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Tue, 26 May 2015 12:02:58 +0000 (12:02 +0000)
svn path=/trunk/; revision=67920

197 files changed:
reactos/lib/3rdparty/freetype/ChangeLog
reactos/lib/3rdparty/freetype/README
reactos/lib/3rdparty/freetype/devel/ftoption.h
reactos/lib/3rdparty/freetype/include/config/ftconfig.h
reactos/lib/3rdparty/freetype/include/config/ftoption.h
reactos/lib/3rdparty/freetype/include/freetype.h
reactos/lib/3rdparty/freetype/include/ftadvanc.h
reactos/lib/3rdparty/freetype/include/ftautoh.h
reactos/lib/3rdparty/freetype/include/ftbbox.h
reactos/lib/3rdparty/freetype/include/ftbdf.h
reactos/lib/3rdparty/freetype/include/ftbitmap.h
reactos/lib/3rdparty/freetype/include/ftbzip2.h
reactos/lib/3rdparty/freetype/include/ftcache.h
reactos/lib/3rdparty/freetype/include/ftcffdrv.h
reactos/lib/3rdparty/freetype/include/ftcid.h
reactos/lib/3rdparty/freetype/include/fterrdef.h
reactos/lib/3rdparty/freetype/include/ftgasp.h
reactos/lib/3rdparty/freetype/include/ftglyph.h
reactos/lib/3rdparty/freetype/include/ftgxval.h
reactos/lib/3rdparty/freetype/include/ftgzip.h
reactos/lib/3rdparty/freetype/include/ftimage.h
reactos/lib/3rdparty/freetype/include/ftincrem.h
reactos/lib/3rdparty/freetype/include/ftlcdfil.h
reactos/lib/3rdparty/freetype/include/ftlist.h
reactos/lib/3rdparty/freetype/include/ftlzw.h
reactos/lib/3rdparty/freetype/include/ftmm.h
reactos/lib/3rdparty/freetype/include/ftmodapi.h
reactos/lib/3rdparty/freetype/include/ftotval.h
reactos/lib/3rdparty/freetype/include/ftoutln.h
reactos/lib/3rdparty/freetype/include/ftpfr.h
reactos/lib/3rdparty/freetype/include/ftrender.h
reactos/lib/3rdparty/freetype/include/ftstroke.h
reactos/lib/3rdparty/freetype/include/ftsynth.h
reactos/lib/3rdparty/freetype/include/ftsystem.h
reactos/lib/3rdparty/freetype/include/fttrigon.h
reactos/lib/3rdparty/freetype/include/ftttdrv.h
reactos/lib/3rdparty/freetype/include/fttypes.h
reactos/lib/3rdparty/freetype/include/ftwinfnt.h
reactos/lib/3rdparty/freetype/include/ftxf86.h
reactos/lib/3rdparty/freetype/include/internal/ftcalc.h
reactos/lib/3rdparty/freetype/include/internal/ftgloadr.h
reactos/lib/3rdparty/freetype/include/internal/ftobjs.h
reactos/lib/3rdparty/freetype/include/internal/ftvalid.h
reactos/lib/3rdparty/freetype/include/internal/pshints.h
reactos/lib/3rdparty/freetype/include/internal/sfnt.h
reactos/lib/3rdparty/freetype/include/t1tables.h
reactos/lib/3rdparty/freetype/include/ttnameid.h
reactos/lib/3rdparty/freetype/include/tttables.h
reactos/lib/3rdparty/freetype/include/ttunpat.h
reactos/lib/3rdparty/freetype/src/autofit/afangles.c
reactos/lib/3rdparty/freetype/src/autofit/afblue.c
reactos/lib/3rdparty/freetype/src/autofit/afblue.dat
reactos/lib/3rdparty/freetype/src/autofit/afblue.h
reactos/lib/3rdparty/freetype/src/autofit/afblue.hin
reactos/lib/3rdparty/freetype/src/autofit/afcjk.c
reactos/lib/3rdparty/freetype/src/autofit/afcjk.h
reactos/lib/3rdparty/freetype/src/autofit/afglobal.c
reactos/lib/3rdparty/freetype/src/autofit/afglobal.h
reactos/lib/3rdparty/freetype/src/autofit/afhints.c
reactos/lib/3rdparty/freetype/src/autofit/afhints.h
reactos/lib/3rdparty/freetype/src/autofit/aflatin.c
reactos/lib/3rdparty/freetype/src/autofit/aflatin.h
reactos/lib/3rdparty/freetype/src/autofit/aflatin2.c
reactos/lib/3rdparty/freetype/src/autofit/afloader.c
reactos/lib/3rdparty/freetype/src/autofit/afmodule.c
reactos/lib/3rdparty/freetype/src/autofit/afranges.c
reactos/lib/3rdparty/freetype/src/autofit/afscript.h
reactos/lib/3rdparty/freetype/src/autofit/afstyles.h
reactos/lib/3rdparty/freetype/src/autofit/hbshim.c
reactos/lib/3rdparty/freetype/src/base/ftadvanc.c
reactos/lib/3rdparty/freetype/src/base/ftbbox.c
reactos/lib/3rdparty/freetype/src/base/ftbdf.c
reactos/lib/3rdparty/freetype/src/base/ftbitmap.c
reactos/lib/3rdparty/freetype/src/base/ftcalc.c
reactos/lib/3rdparty/freetype/src/base/ftfstype.c
reactos/lib/3rdparty/freetype/src/base/ftglyph.c
reactos/lib/3rdparty/freetype/src/base/ftgxval.c
reactos/lib/3rdparty/freetype/src/base/ftinit.c
reactos/lib/3rdparty/freetype/src/base/ftlcdfil.c
reactos/lib/3rdparty/freetype/src/base/ftmac.c
reactos/lib/3rdparty/freetype/src/base/ftmm.c
reactos/lib/3rdparty/freetype/src/base/ftobjs.c
reactos/lib/3rdparty/freetype/src/base/ftoutln.c
reactos/lib/3rdparty/freetype/src/base/ftpfr.c
reactos/lib/3rdparty/freetype/src/base/ftrfork.c
reactos/lib/3rdparty/freetype/src/base/ftstream.c
reactos/lib/3rdparty/freetype/src/base/ftstroke.c
reactos/lib/3rdparty/freetype/src/base/ftsynth.c
reactos/lib/3rdparty/freetype/src/base/fttrigon.c
reactos/lib/3rdparty/freetype/src/base/fttype1.c
reactos/lib/3rdparty/freetype/src/base/ftutil.c
reactos/lib/3rdparty/freetype/src/base/ftwinfnt.c
reactos/lib/3rdparty/freetype/src/bdf/bdfdrivr.c
reactos/lib/3rdparty/freetype/src/bdf/bdflib.c
reactos/lib/3rdparty/freetype/src/bzip2/ftbzip2.c
reactos/lib/3rdparty/freetype/src/cache/ftcbasic.c
reactos/lib/3rdparty/freetype/src/cache/ftccmap.c
reactos/lib/3rdparty/freetype/src/cache/ftcmanag.c
reactos/lib/3rdparty/freetype/src/cache/ftcsbits.c
reactos/lib/3rdparty/freetype/src/cff/cf2font.c
reactos/lib/3rdparty/freetype/src/cff/cf2ft.c
reactos/lib/3rdparty/freetype/src/cff/cf2hints.c
reactos/lib/3rdparty/freetype/src/cff/cf2intrp.c
reactos/lib/3rdparty/freetype/src/cff/cffcmap.c
reactos/lib/3rdparty/freetype/src/cff/cffdrivr.c
reactos/lib/3rdparty/freetype/src/cff/cffgload.c
reactos/lib/3rdparty/freetype/src/cff/cffobjs.c
reactos/lib/3rdparty/freetype/src/cff/cffparse.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvbsln.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvcommn.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvcommn.h
reactos/lib/3rdparty/freetype/src/gxvalid/gxvfeat.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvjust.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvkern.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvlcar.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort.h
reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort0.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort1.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort2.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort4.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvmort5.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx.h
reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx0.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx1.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx2.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx4.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvmorx5.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvopbd.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvprop.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvtrak.c
reactos/lib/3rdparty/freetype/src/gzip/ftgzip.c
reactos/lib/3rdparty/freetype/src/gzip/inftrees.c
reactos/lib/3rdparty/freetype/src/lzw/ftlzw.c
reactos/lib/3rdparty/freetype/src/lzw/ftzopen.h
reactos/lib/3rdparty/freetype/src/otvalid/otvbase.c
reactos/lib/3rdparty/freetype/src/otvalid/otvcommn.c
reactos/lib/3rdparty/freetype/src/otvalid/otvcommn.h
reactos/lib/3rdparty/freetype/src/otvalid/otvgdef.c
reactos/lib/3rdparty/freetype/src/otvalid/otvgpos.c
reactos/lib/3rdparty/freetype/src/otvalid/otvgsub.c
reactos/lib/3rdparty/freetype/src/otvalid/otvjstf.c
reactos/lib/3rdparty/freetype/src/otvalid/otvmath.c
reactos/lib/3rdparty/freetype/src/pcf/pcfdrivr.c
reactos/lib/3rdparty/freetype/src/pcf/pcfread.c
reactos/lib/3rdparty/freetype/src/pfr/pfrcmap.c
reactos/lib/3rdparty/freetype/src/pfr/pfrdrivr.c
reactos/lib/3rdparty/freetype/src/pfr/pfrload.c
reactos/lib/3rdparty/freetype/src/pfr/pfrobjs.c
reactos/lib/3rdparty/freetype/src/pfr/pfrsbit.c
reactos/lib/3rdparty/freetype/src/psaux/psconv.c
reactos/lib/3rdparty/freetype/src/psaux/psobjs.c
reactos/lib/3rdparty/freetype/src/psaux/t1cmap.c
reactos/lib/3rdparty/freetype/src/psaux/t1decode.c
reactos/lib/3rdparty/freetype/src/pshinter/pshglob.c
reactos/lib/3rdparty/freetype/src/pshinter/pshglob.h
reactos/lib/3rdparty/freetype/src/pshinter/pshrec.c
reactos/lib/3rdparty/freetype/src/pshinter/pshrec.h
reactos/lib/3rdparty/freetype/src/psnames/psmodule.c
reactos/lib/3rdparty/freetype/src/raster/ftraster.c
reactos/lib/3rdparty/freetype/src/sfnt/pngshim.c
reactos/lib/3rdparty/freetype/src/sfnt/sfdriver.c
reactos/lib/3rdparty/freetype/src/sfnt/sfobjs.c
reactos/lib/3rdparty/freetype/src/sfnt/ttcmap.c
reactos/lib/3rdparty/freetype/src/sfnt/ttkern.c
reactos/lib/3rdparty/freetype/src/sfnt/ttload.c
reactos/lib/3rdparty/freetype/src/sfnt/ttmtx.c
reactos/lib/3rdparty/freetype/src/sfnt/ttmtx.h
reactos/lib/3rdparty/freetype/src/sfnt/ttpost.c
reactos/lib/3rdparty/freetype/src/sfnt/ttsbit.c
reactos/lib/3rdparty/freetype/src/smooth/ftgrays.c
reactos/lib/3rdparty/freetype/src/smooth/ftsmooth.c
reactos/lib/3rdparty/freetype/src/tools/afblue.pl
reactos/lib/3rdparty/freetype/src/tools/docmaker/content.py
reactos/lib/3rdparty/freetype/src/tools/docmaker/docmaker.py
reactos/lib/3rdparty/freetype/src/tools/docmaker/formatter.py
reactos/lib/3rdparty/freetype/src/tools/docmaker/sources.py
reactos/lib/3rdparty/freetype/src/tools/docmaker/tohtml.py
reactos/lib/3rdparty/freetype/src/tools/docmaker/utils.py
reactos/lib/3rdparty/freetype/src/tools/ftrandom/ftrandom.c
reactos/lib/3rdparty/freetype/src/tools/test_trig.c
reactos/lib/3rdparty/freetype/src/truetype/ttdriver.c
reactos/lib/3rdparty/freetype/src/truetype/ttgload.c
reactos/lib/3rdparty/freetype/src/truetype/ttgxvar.c
reactos/lib/3rdparty/freetype/src/truetype/ttinterp.c
reactos/lib/3rdparty/freetype/src/truetype/ttinterp.h
reactos/lib/3rdparty/freetype/src/truetype/ttobjs.c
reactos/lib/3rdparty/freetype/src/truetype/ttobjs.h
reactos/lib/3rdparty/freetype/src/truetype/ttpload.c
reactos/lib/3rdparty/freetype/src/truetype/ttsubpix.c
reactos/lib/3rdparty/freetype/src/type1/t1driver.c
reactos/lib/3rdparty/freetype/src/type1/t1load.c
reactos/lib/3rdparty/freetype/src/type42/t42objs.c
reactos/lib/3rdparty/freetype/src/type42/t42parse.c
reactos/lib/3rdparty/freetype/src/winfonts/winfnt.c
reactos/media/doc/3rd Party Files.txt

index ea1eb4a..809b475 100644 (file)
+2014-12-30  Werner Lemberg  <wl@gnu.org>
+
+       * Version 2.5.5 released.
+       =========================
+
+
+       Tag sources with `VER-2-5-5'.
+
+       * docs/VERSION.DLL: Update documentation and bump version number to
+       2.5.5.
+
+       * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
+       builds/windows/vc2005/index.html,
+       builds/windows/vc2008/freetype.vcproj,
+       builds/windows/vc2008/index.html,
+       builds/windows/vc2010/freetype.vcxproj,
+       builds/windows/vc2010/index.html,
+       builds/windows/visualc/freetype.dsp,
+       builds/windows/visualc/freetype.vcproj,
+       builds/windows/visualc/index.html,
+       builds/windows/visualce/freetype.dsp,
+       builds/windows/visualce/freetype.vcproj,
+       builds/windows/visualce/index.html,
+       builds/wince/vc2005-ce/freetype.vcproj,
+       builds/wince/vc2005-ce/index.html,
+       builds/wince/vc2008-ce/freetype.vcproj,
+       builds/wince/vc2008-ce/index.html: s/2.5.4/2.5.5/, s/254/255/.
+
+       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
+
+       * builds/unix/configure.raw (version_info): Set to 17:4:11.
+       * CMakeLists.txt (VERSION_PATCH): Set to 5.
+       * docs/CHANGES: Updated.
+
+2014-12-24  Alexei Podtelezhnikov <apodtele@gmail.com>
+
+       [base] Formatting and nanooptimizations.
+
+       * src/base/ftcalc.c,
+       * src/base/fttrigon.c: Revise sign restoration.
+
+2014-12-13  Werner Lemberg  <wl@gnu.org>
+
+       * src/pcf/pcfread.c (pcf_read_TOC): Improve fix from 2014-12-08.
+
+2014-12-11  Werner Lemberg  <wl@gnu.org>
+
+       * builds/toplevel.mk (dist): Use older POSIX standard for `tar'.
+
+       Apparently, BSD tar isn't capable yet of handling POSIX-1.2001
+       (contrary to GNU tar), so force the POSIX-1.1988 format.
+
+       Problem reported by Stephen Fisher <sfisher@SDF.ORG>.
+
+2014-12-11  Werner Lemberg  <wl@gnu.org>
+
+       * src/type42/t42parse.c (t42_parse_sfnts): Reject invalid TTF size.
+
+2014-12-11  Werner Lemberg  <wl@gnu.org>
+
+       * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix off-by-one check.
+
+       Problem reported by Dennis Felsing <dennis@felsin9.de>.
+
+2014-12-11  Werner Lemberg  <wl@gnu.org>
+
+       * src/type42/t42parse.c (t42_parse_sfnts): Check `string_size'.
+
+       Problem reported by Dennis Felsing <dennis@felsin9.de>.
+
+2014-12-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       [gxvalid] Fix a naming convention conflicting with ftvalid.
+
+       See previous changeset for otvalid.
+
+       * src/gxvalid/{gxvcommn.h, gxvmort.h, gxvmorx.h}: Replace
+       `valid' by `gxvalid'.
+       * src/gxvalid/{gxvbsln.c, gxvcommn.c, gxvfeat.c, gxvjust.c,
+       gxvkern.c, gxvlcar.c, gxvmort.c, gxvmort0.c, gxvmort1.c,
+       gxvmort2.c, gxvmort4.c, gxvmort5.c, gxvmorx.c, gxvmorx0.c,
+       gxvmorx1.c, gxvmorx2.c, gxvmorx4.c, gxvmorx5.c, gxvopbd.c,
+       gxvprop.c, gxvtrak.c}: Replace `valid' by `gxvalid' if
+       it is typed as GXV_Validator.
+
+2014-12-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       [otvalid] Fix a naming convention conflicting with ftvalid.
+
+       Some prototypes in ftvalid.h use `valid' for the variables
+       typed as FT_Validator.  Their implementations in src/base/
+       ftobjs.c and utilizations in src/sfnt/ttcmap.c do similar.
+
+       Some macros in otvcommn.h assume the exist of the variable
+       `valid' typed as OTV_Validator in the caller.
+
+       Mixing these two conventions cause invalid pointer conversion
+       and unexpected SEGV in longjmp.  To prevent it, all variables
+       typed as OTV_Validator are renamed to `otvalid'.
+
+       * src/otvalid/otvcommn.h: Replace `valid' by `otvalid'.
+       * src/otvalid/{otvcommn.c, otvbase.c, otvgdef.c, otvgpos.c,
+       otvgsub.c, otvjstf.c, otvmath.c}: Replace `valid' by `otvalid'
+       if it is typed as OTV_Validator.
+
+2014-12-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       [ftvalid] Introduce FT_THROW() in FT_INVALID_XXX macros.
+
+       Original patch is designed by Werner Lemberg.  Extra part
+       for otvalid and gxvalid are added by suzuki toshiya, see
+       discussion:
+       http://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00002.html
+       http://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00007.html
+
+       * include/internal/ftvalid.h: Introduce FT_THROW() in FT_INVALID_().
+       * src/gxvalid/gxvcommn.h: Ditto.
+       * src/otvalid/otvcommn.h: Ditto.
+
+2014-12-08  Werner Lemberg  <wl@gnu.org>
+
+       [pcf] Fix Savannah bug #43774.
+
+       Work around `features' of X11's `pcfWriteFont' and `pcfReadFont'
+       functions.  Since the PCF format doesn't have an official
+       specification, we have to exactly follow these functions' behaviour.
+
+       The problem was unveiled with a patch from 2014-11-06, fixing issue
+       #43547.
+
+       * src/pcf/pcfread.c (pcf_read_TOC): Don't check table size for last
+       element.  Instead, assign real size.
+
+2014-12-07  Werner Lemberg  <wl@gnu.org>
+
+       Work around a bug in Borland's C++ compiler.
+
+       See
+
+         http://qc.embarcadero.com/wc/qcmain.aspx?d=118998
+
+       for Borland's bug tracker entry.
+
+       Reported by Yuliana Zigangirova <zigangirova@inbox.ru>,
+       http://lists.gnu.org/archive/html/freetype-devel/2014-04/msg00001.html.
+
+       * include/internal/ftvalid.h (FT_ValidatorRec), src/smooth/ftgrays.c
+       (gray_TWorker_): Move `ft_jmp_buf' field to be the first element.
+
+2014-12-07  Werner Lemberg  <wl@gnu.org>
+
+       */*: Decorate hex constants with `U' and `L' where appropriate.
+
+2014-12-07  Werner Lemberg  <wl@gnu.org>
+
+       [truetype] Prevent memory leak for buggy fonts.
+
+       * src/truetype/ttobjs.c (tt_size_done): Unconditionally call
+       `tt_size_done_bytecode'.
+
+2014-12-06  Werner Lemberg  <wl@gnu.org>
+
+       * Version 2.5.4 released.
+       =========================
+
+
+       Tag sources with `VER-2-5-4'.
+
+       * docs/VERSION.DLL: Update documentation and bump version number to
+       2.5.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.5.3/2.5.4/, s/253/254/.
+
+       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
+
+       * builds/unix/configure.raw (version_info): Set to 17:3:11.
+       * CMakeLists.txt (VERSION_PATCH): Set to 4.
+       * docs/CHANGES: Updated.
+
+2014-12-04  Werner Lemberg  <wl@gnu.org>
+
+       docs/CHANGES: Updated, formatted.
+
+2014-12-04  Dave Arnold  <darnold@adobe.com>
+
+       [cff] Modify an FT_ASSERT.
+
+       * src/cff/cf2hints.c (cf2_hintmap_map): After the fix for Savannah
+       bug #43661, the test font `...aspartam.otf' still triggers an
+       FT_ASSERT.  Since hintmap still works with count==0, ...
+       (cf2_glyphpath_lineTo, cf2_glyphpath_curveTo): ... add that term to
+       suppress the assert.
+
+2014-12-04  Dave Arnold  <darnold@adobe.com>
+
+       [cff] Fix Savannah bug #43661.
+
+       * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
+       cf2_cmdVSTEM, cf2_cmdHINTMASK>: Don't append to stem arrays after
+       hintmask is constructed.
+
+       * src/cff/cf2hints.c (cf2_hintmap_build): Add defensive code to
+       avoid reading past end of hintmask.
+
+2014-12-03  Werner Lemberg  <wl@gnu.org>
+
+       docs/CHANGES: Updated.
+
+2014-12-03  Werner Lemberg  <wl@gnu.org>
+
+       [autofit] Better fix for conversion specifiers in debug messages.
+
+       Using `%ld' for pointer differences causes warnings on 32bit
+       platforms.  The correct type would be (the relatively new) `%td',
+       however, this is missing on some important platforms.
+
+       This patch improves the change from 2014-11-28.
+
+       * src/autofit/afhints.c (AF_INDEX_NUM): Use `int' typecast.  Our
+       pointer differences are always sufficiently small.
+       (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
+       af_glyph_hints_dump_edge): Revert to `%d' and use `AF_INDEX_NUM'.
+
+2014-12-03  Werner Lemberg  <wl@gnu.org>
+
+       FT_Sfnt_Tag: s/ft_sfnt_xxx/FT_SFNT_XXX/ for orthogonality.
+
+       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.
+
+       * src/base/ftfstype.c (FT_Get_FSType_Flags), src/sfnt/sfdriver.c
+       (get_sfnt_table): Updated.
+
+2014-12-02  Werner Lemberg  <wl@gnu.org>
+
+       * include/*: Improve structure of documentation.
+
+       . Add and update many `<Order>' tags.
+       . Apply various documentation fixes.
+       . Remove details to deprecated (or never implemented) data.
+
+2014-12-02  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Always handle `<Order>' section elements.
+
+       Previously, those elements were handled only for sections present in
+       a `<Sections>' chapter element.
+
+       * src/tools/docmaker/content.py (ContentProcessor::finish):
+       Implement it.
+
+2014-12-02  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Properly handle empty rows in Synopsis.
+
+       * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit
+       `&nbsp;' for empty fields.
+
+2014-12-02  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Thinko.
+
+       * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
+       Emit `/empty/' string for first element also.
+
+2014-12-02  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Honour empty lines in `<Order>' section element.
+
+       This greatly improves the readability of the `Synopsis' links.
+
+       * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
+       Insert string `/empty/' between items.
+
+       * src/tools/docmaker/formatter.py (Formatter::section_dump): Make it
+       robust against nonexistent keys.
+
+       * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit
+       empty <td> elements for `/empty/'.
+
+2014-12-02  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Ensure Python 3 compatibility.
+
+       * src/tools/docmaker/content.py (ContentProcessor::set_section,
+       ContentProcessor::finish): Replace `has_key' function with `in'
+       keyword.
+
+       * src/tools/docmaker/formatter.py (Formatter::__init__): Replace
+       sorting function with a key generator.
+       (Formatter::add_identifier): Replace `has_key' function with `in'
+       keyword.
+
+       * src/tools/docmaker/tohtml.py (HtmlFormatter::html_source_quote):
+       Replace `has_key' function with `in' keyword.
+       (HtmlFormatter::index_exit, HtmlFormatter::section_enter): Use
+       integer division.
+       s/<>/>/.
+
+       * src/tools/docmaker/utils.py: Import `itertools'.
+       (index_sort): Replaced by...
+       (index_key): ... this new key generator (doing exactly the same).
+
+2014-11-29  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Don't output a block multiple times.
+
+       This bug was hidden by not processing all lines of `<Order>' blocks.
+
+       * src/tools/docmaker/formatter.py (Formatter::section_dump): Filter
+       out field names.
+
+2014-11-29  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Use field values as HTML link targets where possible.
+
+       * src/tools/docmaker/tohtml.py (HtmlFormatter::make_block_url):
+       Accept second, optional argument to specify a name.
+       (HtmlFormatter::html_source_quote): Link to field ID if possible.
+       (HtmlFormatter::print_html_field_list): Emit `id' attribute.
+
+2014-11-29  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Allow empty lines in `<Order>' blocks.
+
+       Before this patch, the suggested order of entries stopped at the
+       first empty line.
+
+       Obviously, nobody noticed that this problem caused a much reduced
+       set of links in the `Synopsis' sections; in particular, the
+       `<Order>' blocks contain a lot of entries that wouldn't be listed
+       otherwise...
+
+       * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
+       New function to iterate over all items.
+       (DocSection::process): Use it.
+
+2014-11-29  Werner Lemberg  <wl@gnu.org>
+
+       * src/tools/docmaker/sources.py (column) [Format 2]: Fix regexp.
+
+       After the single asterisk there must be no other immediately following
+       asterisk.
+
+2014-11-29  Werner Lemberg  <wl@gnu.org>
+
+       * src/tools/docmaker/tohtml.py: Improve CSS for vertical spacing.
+
+2014-11-29  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Improve HTML code for table of contents.
+
+       * src/tools/docmaker/tohtml.py: Introduce a new table class `toc',
+       together with proper CSS.
+
+2014-11-29  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Provide higher-level markup and simplify HTML.
+
+       * src/tools/docmaker/tohtml.py: Instead of using extraneous `<div>'
+       elements, use CSS descendants (of class `section') to format the
+       data.
+
+       Also remove reduntant <p> and <br> elements, replacing them with
+       proper CSS.
+
+       Globally reduce page width to 75%.
+
+       (block_header): Rename <div> class to `section'.
+
+2014-11-29  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Add `top' links after blocks.
+
+       * src/tools/docmaker/tohtml.py (block_footer_middle): Implement it.
+
+2014-11-29  Werner Lemberg  <wl@gnu.org>
+
+       * src/tools/docmaker/tohtml.py: Improve CSS for fields.
+
+       Make fields align horizontally relative to full line width.
+
+2014-11-29  Werner Lemberg  <wl@gnu.org>
+
+       * src/tools/docmaker/tohtml.py: Fix index and TOC templates.
+
+       This thinko was introduced 2014-11-27.
+
+2014-11-28  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Format field lists with CSS.
+
+       This also simplifies the inserted HTML code.
+
+       * src/tools/docmaker/tohtml.py
+       (HtmlFormatter::print_html_field_list): Do it.
+
+2014-11-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       Fix compiler warning to the comparison between signed and
+       unsigned variable.
+
+       * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix the comparison
+       between `ypos + ysize' and FT_INT_{MAX,MIN}.
+
+2014-11-28  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Replace empty `<td>' with CSS.
+
+       * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Do
+       it.
+
+2014-11-28  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Replace some `<table>' tags with `<h4>' and `<div>'.
+
+       * src/tools/docmaker/tohtml.py (marker_*): Use `<h4>'.
+       (source_*): Use `<div>'.
+       (HtmlFormatter::block_enter): s/<h4>/<h3>/.
+
+2014-11-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       Fix compiler warning to conversion specifiers in debug messages.
+
+       * src/autofit/afhints.c (af_glyph_hints_dump_points): Add length
+       modifier to dump long integers.
+       (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Ditto.
+
+2014-11-27  Werner Lemberg  <wl@gnu.org>
+
+       * src/tools/docmaker/tohtml.py: Use more CSS for index.
+
+2014-11-27  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Replace `name' attribute of `<a>' with `id'.
+
+       * src/tools/docmaker/tohtml.py (HtmlFormatter::block_enter): Do it.
+
+2014-11-27  Werner Lemberg  <wl@gnu.org>
+
+       * src/tools/docmaker/tohtml.py: Remove remaining `width' attributes.
+
+       For `Index' and `TOC' links, we now simply use the `text-align' CSS
+       property of `<td>' to enforce flush-left and flush-right,
+       eliminating the hack with an empty, full-width `<td>' element
+       inbetween.
+
+       The change also enforces the same (smaller) size for all index and
+       TOC links.
+
+2014-11-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       * src/cff/cf2font.c: Include `ftcalc.h' to use FT_MSB(),
+       cf2font.c could not find it under `make multi' build.
+
+2014-11-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove
+       unrequired negative value check for `width' and `height'.
+
+2014-11-27  Werner Lemberg  <wl@gnu.org>
+
+       * src/tools/docmaker/tohtml.py: More HTML table refactoring.
+
+       Replace some `<table>' tags with `<div>' to simplify structure.
+
+       Move `bgcolor' attribute to CSS.
+
+       Replace most `width' attributes with CSS.  The remaining instances
+       (providing a similar effect as LaTeX's `\hfill' command) are removed
+       in a later patch.
+
+2014-11-27  Werner Lemberg  <wl@gnu.org>
+
+       * src/tools/docmaker/tohtml.py: Replace <font> with CSS.
+
+2014-11-27  Werner Lemberg  <wl@gnu.org>
+
+       * src/tools/docmaker/tohtml.py: Center <table> with CSS.
+
+2014-11-27  Werner Lemberg  <wl@gnu.org>
+
+       * src/tools/docmaker/tohtml.py: Replace `<center>' with `<div>'.
+
+2014-11-27  Werner Lemberg  <wl@gnu.org>
+
+       * src/tools/docmaker/tohtml.py: Remove redundant `<center>' tags.
+
+       This starts a series of commits into the direction of generating
+       valid HTML 5 code, especially using much more CSS.
+
+2014-11-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       Prevent too negative values (< FT_INT_MIN) in bitmap metrics,
+       suggested by Alexei.
+
+       * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Prevent too
+       negative values in `xpos' and `ypos + ysize'.
+       * src/smooth/ftsmooth.c (ft_smooth_render_generic): Prevent
+       too negative values in `x_left' and `y_top'.  Either negative
+       values in `width' and `height' are checked.
+
+2014-11-27  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Produce better HTML code.
+
+       * src/tools/docmaker/tohtml.py: Always use double quotes for
+       attribute values.
+       (source_footer): Close `td' and `tr' groups.
+
+2014-11-27  Werner Lemberg  <wl@gnu.org>
+
+       Use better way to disable creation of .pyc files for `make refdoc'.
+
+       Python 2.6 was released in 2008...
+
+       * builds/freetype.mk (refdoc): Use python's `-B' option.
+
+       * builds/detect.mk (std_setup, dos_setup): Mention required python
+       version for `refdoc' target.
+
+2014-11-27  Werner Lemberg  <wl@gnu.org>
+
+       * src/tools/docmaker/sources.py (re_bold, re_italic): Use
+       non-grouping parentheses.
+       * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word):
+       Updated.
+
+2014-11-27  Werner Lemberg  <wl@gnu.org>
+
+       * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix compiler warning.
+
+       Introdruced in previous change.  Reported by Alexei.
+
+2014-11-26  Werner Lemberg  <wl@gnu.org>
+
+       * src/*: Add checks for parameters of API functions where missing.
+
+       `API functions' are functions tagged with `FT_EXPORT_DEF'.
+
+       Besides trivial fixes, the following changes are included, too.
+
+       * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Set
+       error code if no service is available.
+
+       * src/base/ftinit.c (FT_Done_FreeType): Change return value for
+       invalid `library' parameter to `Invalid_Library_Handle'.
+
+       * src/base/ftobjs.c (FT_New_Size): Change return value for invalid
+       `asize' parameter to `Invalid_Argument'.
+
+       * src/base/ftoutln.c (FT_Outline_Copy): Change return value for
+       invalid `source' and `target' parameters to `Invalid_Outline'.
+       (FT_Outline_Done_Internal): Change return value for invalid
+       `outline' parameter to `Invalid_Outline'.
+
+2014-11-26  Werner Lemberg  <wl@gnu.org>
+
+       * src/cache/ftcbasic.c: Use single calls to `FT_TRACE'.
+
+2014-11-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       * src/base/ftobj.c (Mac_Read_POST_Resource): Additional
+       overflow check in the summation of POST fragment lengths,
+       suggested by Mateusz Jurczyk <mjurczyk@google.com>.
+
+2014-11-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       * src/base/ftobjs.c (Mac_Read_POST_Resource): Insert comments
+       and fold too long tracing messages.
+
+2014-11-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       Fix Savannah bug #43540.
+
+       * src/base/ftmac.c (parse_fond): Prevent a buffer overrun
+       caused by a font including too many (> 63) strings to store
+       names[] table.
+
+2014-11-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       * src/base/ftobjs.c (Mac_Read_POST_Resource): Use unsigned long
+       variables to read the lengths in POST fragments.  Suggested by
+       Mateusz Jurczyk <mjurczyk@google.com>.
+
+2014-11-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       Fix Savannah bug #43539.
+
+       * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
+       by a broken POST table in resource-fork.
+
+2014-11-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       Fix Savannah bug #43538.
+
+       * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
+       by a broken POST table in resource-fork.
+
+2014-11-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       * src/base/ftobjs.c (Mac_Read_POST_Resource): Avoid memory leak
+       by a broken POST table in resource-fork.  Return after freeing
+       the buffered POST table when it is found to be broken.
+
+2014-11-25  Werner Lemberg  <wl@gnu.org>
+
+       */*: s/Invalid_Argument/Invalid_Size_Handle/ where appropriate.
+
+2014-11-25  Werner Lemberg  <wl@gnu.org>
+
+       */*: s/Invalid_Argument/Invalid_Stream_Handle/ where appropriate.
+
+2014-11-25  Werner Lemberg  <wl@gnu.org>
+
+       */*: s/Invalid_Argument/Invalid_Library_Handle/ where appropriate.
+
+2014-11-25  Werner Lemberg  <wl@gnu.org>
+
+       */*: s/Invalid_Argument/Invalid_Outline/ where appropriate.
+
+2014-11-25  Werner Lemberg  <wl@gnu.org>
+
+       */*: s/Invalid_Argument/Invalid_Face_Handle/ where appropriate.
+
+2014-11-24  Werner Lemberg  <wl@gnu.org>
+
+       [Savannah bug #43682] Adjust some renderer callbacks.
+
+       * src/raster/ftraster.c (ft_black_set_mode): Change return type to
+       `int' to stay in sync with `FT_Renderer_SetModeFunc' prototype.
+
+       * src/smooth/ftgrays.c (gray_raster_set_mode): New dummy function
+       for orthogonality.
+       (ft_grays_raster): Use it.
+
+2014-11-25  Werner Lemberg  <wl@gnu.org>
+
+       [Savannah bug #43682] Properly handle missing return errors.
+
+       The functions in this patch *do* return non-trivial errors that must
+       be taken care of.
+
+       * src/autofit/afloader.c (af_loader_load_g), src/base/ftobjs.c
+       (FT_Render_Glyph_Internal), src/base/ftoutln.c (FT_Outline_Render),
+       src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_endchar>,
+       src/psaux/psobjs.c (ps_parser_load_field_table), src/psaux/t1decode
+       (t1_decoder_parse_charstrings) <op_endchar>, src/truetype/ttgload.c
+       (load_truetype_glyph <subglyph loop>, tt_loader_init,
+       TT_Load_Glyph), src/truetype/ttgxvar.c (TT_Set_MM_Blend),
+       src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Do it.
+
+2014-11-25  Werner Lemberg  <wl@gnu.org>
+
+       [Savannah bug #43682] Add/remove `void' casts to some functions.
+
+       We use a cast to indicate that we intentionally ignore a function's
+       return value.  However, this doesn't apply to API functions where
+       errors can only happen for trivially invalid input.
+
+       * src/base/ftstroke.c (FT_Glyph_Stroke, FT_Glyph_StrokeBorder),
+       src/base/ftsynth.c (FT_GlyphSlot_Embolden), src/cff/cffgload.c
+       (cff_slot_load), src/pfr/pfrdrivr.c (pfr_get_kerning),
+       src/type1/t1load.c (parse_encoding), src/type42/t42parse.c
+       (t42_parse_encoding): Do it.
+
+2014-11-25  Werner Lemberg  <wl@gnu.org>
+
+       [Savannah bug #43682] Change some signatures to `void' return type.
+
+       * include/internal/pshints.h (PSH_Globals_SetScaleFunc),
+       include/internal/sfnt.h (TT_Get_Metrics_Func),
+       src/pshinter/pshglob.c (psh_globals_set_scale),
+       src/pshinter/pshrec.c (ps_hints_init), src/sfnt/ttmtx.c
+       (tt_face_get_metrics), src/truetype/ttinterp.c (TT_Goto_CodeRange,
+       TT_Set_CodeRange, TT_Clear_CodeRange, TT_Done_Context,
+       TT_Save_Context): Do it.
+
+       * src/pshinter/pshglob.h, src/pshinter/pshrec.h, src/sfnt/ttmtx.h,
+       src/truetype/ttgload.c (TT_Hint_Glyph), src/truetype/ttinterp.c
+       (TT_Run_Context), src/truetype/ttinterp.h, src/truetype/ttobjs.c
+       (tt_size_run_fpgm, tt_size_run_prep): Updated.
+
+2014-11-24  Werner Lemberg  <wl@gnu.org>
+
+       Remove all code related to FT_MAX_CHARMAP_CACHEABLE.
+
+       This is no longer used.
+
+       * src/base/ftobjs.c, src/cache/ftccmap.c, src/cff/cffobjs.c,
+       src/sfnt/ttcmap.c: Do it.
+
+2014-11-24  Werner Lemberg  <wl@gnu.org>
+
+       [sfnt] Fix Savannah bug #43680.
+
+       This adds an additional constraint to make the fix from 2013-01-25
+       really work.
+
+       * src/sfnt/ttsbit.c (tt_sbit_decoder_load_image) <index_format==4>:
+       Check `p' before `num_glyphs'.
+
+2014-11-24  Werner Lemberg  <wl@gnu.org>
+
+       [truetype] Fix Savannah bug #43679.
+
+       * src/truetype/ttpload.c (tt_face_load_hdmx): Check minimum size of
+       `record_size'.
+
+2014-11-24  Jarkko Pöyry  <jarkko.poyry@gmail.com>
+
+       [cff, pfr, psaux, winfonts] Fix Savannah bug #43676.
+
+       Don't cast cmap init function pointers to an incompatible type.
+
+       Without this patch, the number of parameters between declaration and
+       the real signature differs.  Calling such a function results in
+       undefined behavior.
+
+         ISO/IEC 9899:TC3 (Committee Draft September 7, 2007)
+           6.5.2.2 Function calls
+             9 If the function is defined with a type that is not
+               compatible with the type (of the expression) pointed to by
+               the expression that denotes the called function, the
+               behavior is undefined.
+
+       On certain platforms (c -> js with emscripten) this causes
+       termination of execution or invalid calls because in the emscripten
+       implementation, function pointers of different types are stored in
+       different pointer arrays.  Incorrect pointer type here results in
+       indexing of an incorrect array.
+
+       * src/cff/cffcmap.c (cff_cmap_encoding_init, cff_cmap_unicode_init),
+       src/pfr/pfrcmap.c (pfr_cmap_init), src/psaux/t1cmap.c
+       t1_cmap_standard_init, t1_cmap_expert_init, t1_cmap_custom_init,
+       t1_cmap_unicode_init), src/winfonts/winfnt.c (fnt_cmap_init): Fix
+       signature.
+
+2014-11-24  Werner Lemberg  <wl@gnu.org>
+
+       [sfnt] Fix Savannah bug #43672.
+
+       * src/sfnt/ttkern.c (tt_face_load_kern): Use correct value for
+       minimum table length test.
+
+2014-11-24  Werner Lemberg  <wl@gnu.org>
+
+       [type1, type42] Another fix for Savannah bug #43655.
+
+       * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
+       (t42_parse_charstrings): Add another boundary testing.
+
+2014-11-24  Werner Lemberg  <wl@gnu.org>
+
+       [docmaker] Formatting, copyright, improved documentation.
+
+       * src/tools/docmaker/*: No code changes besides trivial
+       modifications.
+
+2014-11-22  Werner Lemberg  <wl@gnu.org>
+
+       [bdf] Fix Savannah bug #43660.
+
+       * src/bdf/bdflib.c (_bdf_parse_glyphs) <"ENDFONT">: Check
+       `_BDF_GLYPH_BITS'.
+
+2014-11-22  Werner Lemberg  <wl@gnu.org>
+
+       [type42] Allow only embedded TrueType fonts.
+
+       This is a follow-up to Savannah bug #43659.
+
+       * src/type42/t42objs.c (T42_Face_Init): Exclusively use the
+       `truetype' font driver for loading the font contained in the `sfnts'
+       array.
+
+2014-11-22  Werner Lemberg  <wl@gnu.org>
+
+       [type42] Fix Savannah bug #43659.
+
+       * src/type42/t42objs.c (T42_Open_Face): Initialize `face->ttf_size'.
+
+       * src/type42/t42parse.c (t42_parse_sfnts): Always set
+       `face->ttf_size' directly.  This ensures a correct stream size in
+       the call to `FT_Open_Face', which follows after parsing, even for
+       buggy input data.
+       Fix error messages.
+
+2014-11-22  Werner Lemberg  <wl@gnu.org>
+
+       [cff] Fix Savannah bug #43658.
+
+       * src/cff/cf2ft.c (cf2_builder_lineTo, cf2_builder_cubeTo): Handle
+       return values of point allocation routines.
+
+2014-11-22  Werner Lemberg  <wl@gnu.org>
+
+       [sfnt] Fix Savannah bug #43656.
+
+       * src/sfnt/ttcmap.c (tt_cmap4_validate): Fix order of validity
+       tests.
+
+2014-11-21  Werner Lemberg  <wl@gnu.org>
+
+       [type1, type42] Fix Savannah bug #43655.
+
+       * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
+       (t42_parse_charstrings): Fix boundary testing.
+
+2014-11-21  Werner Lemberg  <wl@gnu.org>
+
+       * src/pcf/pcfread.c (pcf_get_metrics): Sanitize invalid metrics.
+
+2014-11-21  Werner Lemberg  <wl@gnu.org>
+
+       [ftlcdfil] Obey flow direction.
+
+       * src/base/ftlcdfil.c (_ft_lcd_filter_fir, _ft_lcd_filter_legacy):
+       Handle `up' flow.
+
+2014-11-21  Werner Lemberg  <wl@gnu.org>
+
+       * src/base/ftbitmap.c (FT_Bitmap_Convert): Improve.
+
+       This commit completes argument checks and adds support for different
+       flow directions.
+
+2014-11-21  Werner Lemberg  <wl@gnu.org>
+
+       * src/base/ftbitmap.c (FT_Bitmap_Copy): Improve.
+
+       This commit adds argument checks and support for different flow
+       directions.
+
+2014-11-20  Werner Lemberg  <wl@gnu.org>
+
+       * src/base/ftbitmap.c (FT_Bitmap_New): Check argument.
+
+2014-11-19  Werner Lemberg  <wl@gnu.org>
+
+       Change some fields in `FT_Bitmap' to unsigned type.
+
+       This doesn't break ABI.
+
+       * include/ftimage.h (FT_Bitmap): Make `rows', `width', `num_grays',
+       `pixel_mode', and `palette_mode' unsigned types.
+
+       * src/base/ftbitmap.c: Updated.
+       (FT_Bitmap_Copy): Fix casts.
+
+       * src/cache/ftcsbits.c, src/raster/ftraster.c, src/sfnt/pngshim.c:
+       Updated.
+
+2014-11-19  Werner Lemberg  <wl@gnu.org>
+
+       Make `FT_Bitmap_Convert' correctly handle negative `pitch' values.
+
+       * src/base/ftbitmap.c (FT_Bitmap_Convert): Always use positive value
+       for the pitch while copying data.
+       Correctly set pitch sign in target bitmap.
+
+2014-11-19  Werner Lemberg  <wl@gnu.org>
+
+       Minor code improvement in `FT_Bitmap_Embolden'.
+
+       * src/base/ftbitmap.c (FT_Bitmap_Embolden) <FT_PIXEL_MODE_GRAY[24]>:
+       Fix thinko.
+
+2014-11-19  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       * src/base/fttrigon.c: Use dedicated `FT_Angle' for arctan table.
+
+2014-11-19  Behdad Esfahbod  <behdad@behdad.org>
+
+       Avoid compiler warnings on x86-64 for `FT_MulFix'.
+
+       `FT_MulFix' takes `FT_Long' parameters as defined in `freetype.h',
+       but several inline implementations of it in `ftcalc.h' take
+       `FT_Int32' arguments.  This is causing compiler warnings on x86-64:
+       If parameters of type `FT_Fixed' (= `FT_Long') are passed to the
+       inline implementation of this function, integer values are truncated
+       from 64bit to 32bit.
+
+       * include/internal/ftcalc.h (FT_MulFix) [FT_MULFIX_ASSEMBLER]: Add
+       casts.
+
+2014-11-15  Werner Lemberg  <wl@gnu.org>
+
+       [sfnt] Fix Savannah bug #43597.
+
+       * src/sfnt/pngshim.c (Load_SBit_Png): Protect against too large
+       bitmaps.
+
+2014-11-12  Werner Lemberg  <wl@gnu.org>
+
+       [sfnt] Fix Savannah bug #43591.
+
+       * src/sfnt/ttsbit.c (tt_sbit_decoder_init): Protect against addition
+       and multiplication overflow.
+
+2014-11-12  Werner Lemberg  <wl@gnu.org>
+
+       [sfnt] Fix Savannah bug #43590.
+
+       * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir):
+       Protect against addition overflow.
+
+2014-11-12  Werner Lemberg  <wl@gnu.org>
+
+       [sfnt] Fix Savannah bug #43589.
+
+       * src/sfnt/sfobjs.c (woff_open_font): Protect against addition
+       overflow.
+
+2014-11-12  Werner Lemberg  <wl@gnu.org>
+
+       [sfnt] Fix Savannah bug #43588.
+
+       * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate,
+       tt_cmap12_validate, tt_cmap13_validate, tt_cmap14_validate): Protect
+       against overflow in additions and multiplications.
+
+2014-11-10  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] CORDIC improvements.
+
+       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.
+
+       * src/base/fttrigon.c (ft_trig_downscale): Borrow code from
+       ./ftcalc.c (ft_multo64), change linear intercept.
+       (ft_trig_pseudo_polarize): Decrease `theta' padding.
+
+2014-11-09  Werner Lemberg  <wl@gnu.org>
+
+       * src/base/ftstroke.c (ft_stroker_inside): Fix border intersections.
+
+       One more place to check whether `radius' is zero.
+
+       Problem reported by Marco Wertz <marco.wertz@gmx.de>.
+
+2014-11-07  Werner Lemberg  <wl@gnu.org>
+
+       [bdf] Fix Savannah bug #43535.
+
+       * src/bdf/bdflib.c (_bdf_strncmp): New macro that checks one
+       character more than `strncmp'.
+       s/ft_strncmp/_bdf_strncmp/ everywhere.
+
+2014-11-06  Werner Lemberg  <wl@gnu.org>
+
+       [pcf] Fix Savannah bug #43548.
+
+       * src/pcf/pcfread.c (pcf_get_encodings): Add sanity checks for row
+       and column values.
+
+2014-11-06  Werner Lemberg  <wl@gnu.org>
+
+       [pcf] Fix Savannah bug #43547.
+
+       * src/pcf/pcfread.c (pcf_read_TOC): Check `size' and `offset'
+       values.
+
+2014-11-06  Werner Lemberg  <wl@gnu.org>
+
+       * src/pcf/pcfread.c (pcf_read_TOC): Avoid memory leak.
+
+2014-11-03  Infinality  <infinality@infinality.net>
+
+       * src/truetype/ttsubpix.c (COMPATIBILITY_MODE_Rules): Updated.
+
+       The previous commit deteriorates rendering of DejaVu and similar
+       fonts; this gets compensated with this rule.
+
+2014-11-03  Werner Lemberg  <wl@gnu.org>
+
+       * src/truetype/ttinterp.c (Ins_DELTAP): Fix subpixel hinting.
+
+       Before this patch, it was impossible to ever call DELTAP[123] in
+       subpixel hinting mode as described in the ClearType whitepaper; it
+       only worked if in `compatibility mode'.  However, compatibility mode
+       essentially disables SHPIX, completely ruining hinting of
+       ttfautohint output, for example.
+
+       We now follow the whitepaper more closely so that DELTAP[123]
+       instructions for touched points in the non-subpixel direction are
+       executed.
+
+2014-10-31  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [smooth] Improve code readability.
+
+       * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
+
+2014-10-31  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [smooth] Reduce outline translations during rendering.
+
+       * src/smooth/ftsmooth.c (ft_smooth_render_generic): Translate origin
+       virtually by modifying cbox, actually translate outline if cumulative
+       shift is not zero.
+
+2014-10-30  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [smooth] Fix Savannah bug #35604 (cont'd).
+
+       * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove checks and
+       casts that became unnecessary after the variable type upgrades.
+
+2014-10-29  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [smooth] Improve code readability.
+
+       * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
+
+2014-10-29  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       Unify hypotenuse approximations.
+
+       * include/internal/ftcalc.h (FT_HYPOT): Move macro from here...
+       * include/internal/ftobjs.h: ... to here, next to required `FT_ABS'.
+       * src/smooth/ftgrays.c (gray_render_cubic): Use it here.
+
+2014-10-25  Werner Lemberg  <wl@gnu.org>
+
+       [cff] Test valid darkening parameter macros in `ftoption.h'.
+
+       We no longer need an otherwise unused typedef that can cause a gcc
+       warning.
+       Problem reported by Alexei.
+
+       * src/cff/cffobjs.c (cff_driver_init): Use
+       `CFF_CONFIG_OPTION_DARKENING_PARAMETER_XXX' macros directly.
+       (SET_DARKENING_PARAMETERS): Removed.
+       Compile time tests are now ...
+
+       * devel/ftoption.h, include/config/ftoption.h: ... here.
+
+2014-10-25  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       Improve flat corner definition.
+
+       * include/internal/ftcalc.h (FT_HYPOT): Macro to approximate Euclidean
+       distance with the alpha max plus beta min algorithm.
+       * src/base/ftcalc.c (ft_corner_is_flat): Use it instead of Taxicab
+       metric.
+
+2014-10-23  David Weiß  <David.Weiss@ptvgroup.com>
+
+       [build] Improve property file for vc2010.
+
+       User-defined properties should be empty by default to prevent linker
+       failures.
+
+       * builds/windows/vc2010/freetype.user.props,
+       builds/windows/vc2010/freetype.vcxproj:
+       s/OptionsDirectory/UserOptionDirectory/.
+       Comment out all user options.
+
+2014-10-23  Werner Lemberg  <wl@gnu.org>
+
+       [cff] Work around bug in preprocessor of MSVC 2010.
+
+       We have been hit by
+
+         https://connect.microsoft.com/VisualStudio/feedback/details/718976/msvc-pr
+
+       * devel/ftoption.h, include/config/ftoption.h: Replace
+       `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' with eight macros
+       `CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}'.
+
+       * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS): Removed.  We no
+       longer need double expansion.
+       (SET_DARKENING_PARAMETERS_0): Renamed to ...
+       (SET_DARKENING_PARAMETERS): ... this.
+       Update call.
+
+2014-10-20  Werner Lemberg  <wl@gnu.org>
+
+       [sbit] Minor fixes.
+
+       * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
+       Accept overlay format also, but emit warning message in that case.
+       (tt_sbit_decoder_load_metrics): Add missing newline to error
+       message.
+       (tt_sbit_load_sbix_image): Add `rgbl' graphic type (as used on iOS
+       7.1) to the list of unsupported formats.
+
+2014-10-19  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [truetype] Clean up bytecode rounding.
+
+       Zero distance does not have to be treated specially if you follow
+       specifications and check the sign as the very last step of rounding.
+
+       * src/truetype/ttinterp.c (Round_None, Round_To_Grid,
+       Round_Down_To_Grid, Round_Up_To_Grid, Round_To_Double_Grid): Use
+       macros when available, do not check for non-zero distance.
+       (Round_To_Half_Grid, Round_Super, Round_Super_45): Ditto, return phase
+       if sign changed.
+
+2014-10-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [truetype] Unwrap engine compensation settings.
+
+       * src/truetype/ttobjs.c (tt_size_init_bytecode): Updated.
+
+2014-10-18  David Weiß  <David.Weiss@ptvgroup.com>
+
+       [build] Add property file to vc2010 project.
+
+       This simplifies custom build configurations, especially for
+       automated build environments.
+
+       * builds/windows/vc2010/freetype.user.props: New configuration file.
+
+       * builds/windows/vc2010/freetype.vcxproj: Include
+       `freetype.user.props' and use its data fields.
+
+       * builds/windows/vc2010/index.html: Updated.
+
+2014-10-18  Werner Lemberg  <wl@gnu.org>
+
+       [autofit] Add blue-zone support for Telugu.
+
+       This essentially moves the Telugu script from the `Indic' hinter to
+       the `Latin' hinter.
+
+       Note that this is a first shot and quite certainly needs
+       refinements.
+
+       * src/autofit/afblue.dat: Add blue zone data for Telugu.
+
+       * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+       * src/autofit/afscript.h: Add Telugu standard characters and move
+       data out of AF_CONFIG_OPTION_INDIC block.
+
+       * src/autofit/afranges.c: Move Telugu data out of
+       AF_CONFIG_OPTION_INDIC block.
+
+       * src/autofit/afstyles.h: Update Telugu data; in particular, use
+       AF_WRITING_SYSTEM_LATIN.
+
+2014-10-18  David Wimsey  <david@wimsey.us>
+
+       [cmake] Add iOS build support.
+       From Savannah patch #8497.
+
+       * builds/cmake/iOS.cmake: New file.  Universal binaries are built
+       with both 32 and 64 bit arm architectures.
+
+       * CMakeLists.txt (IOS_PLATFORM): New variable for running the iOS
+       toolchain.  Possible values are `OS' to build on iOS, or
+       `SIMULATOR' to build on APPLE.
+
+2014-10-16  Behdad Esfahbod  <behdad@behdad.org>
+           Werner Lemberg  <wl@gnu.org>
+
+       [cff] Add `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' config macro.
+
+       * devel/ftoption.h, include/config/ftoption.h
+       (CFF_CONFIG_OPTION_DARKENING_PARAMETERS): New macro.
+
+       * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS,
+       SET_DARKENING_PARAMETERS_0): New macros.
+       (cff_driver_init): Use new macros.
+
+2014-10-14  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [truetype] Limit delta shift range.
+
+       The valid range for delta shift is zero through six.  Negative values
+       are invalid according to
+
+         https://developer.apple.com/fonts/TrueType-Reference-Manual/RM04/Chap4.html#delta%20shift
+
+       * src/truetype/ttobjs.h (delta_shift, delta_base): Make unsigned.
+       * src/truetype/ttinterp.h (DO_SDS): Throw an error if `delta_shift'
+       is out of range.
+       (Ins_DELTAP, Ins_DELTAC): Optimize for valid `delta_shift'.
+
+2014-10-16  Werner Lemberg  <wl@gnu.org>
+
+       A better fix for Savannah bug #43392.
+       Suggested by Doug Felt <dougfelt@gmail.com>.
+
+       * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Set
+       `vertAdvance' to zero...
+
+       * src/truetype/ttgload.c (TT_Load_Glyph): ... and set here a default
+       value for `vertAdvance' based on `linearVertAdvance' in case
+       `vertAdvance' is zero.  Note that the previous computed ad-hoc value
+       for `linearVertAdvance' was apparently not tested in a real-life
+       situation.
+
+2014-10-14  David Weiß  <David.Weiss@ptvgroup.com>
+
+       [build] Better optimization settings for vc2010 solution file.
+
+       * builds/windows/vc2010/freetype.sln,
+       builds/windows/vc2010/freetype.vcxproj: Updated.
+
+2014-10-14  Werner Lemberg  <wl@gnu.org>
+
+       [autofit] Adjust Devenagari character range.
+
+       * src/autofit/afranges.c (af_deva_uniranges): Omit characters that
+       are common to all other Indic scripts.
+
+2014-10-12  Werner Lemberg  <wl@gnu.org>
+
+       [sfnt] Fix Savannah bug #43392.
+
+       * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Don't let
+       vertical metrics uninitialized.
+
+2014-10-11  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Small bbox correction.
+
+       * src/base/ftbbox.c (FT_Outline_Get_BBox): Start from nonsense bbox
+       instead of initial point that could be `off' in conic outlines.
+
+2014-10-08  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Fix Savannah bug #43356.
+
+       * src/base/ftbbox.c (BBox_Move_To, BBox_Conic_To): Update bbox in case
+       of implicit `to'.
+       (BBox_Line_To): New emitter that does not update bbox.
+
+2014-10-08  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Introduce and use new macro `FT_UPDATE_BBOX'
+
+       * src/base/ftbbox.c (FT_UPDATE_BBOX): New macro.
+       (FT_Outline_Get_BBox): Use it here.
+
+2014-10-02  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Significant optimization of `ft_div64by32'
+
+       We shift as many bits as we can into the high register, perform
+       32-bit division with modulo there, then work through the remaining
+       bits with long division. This optimization is especially noticeable
+       for smaller dividends that barely use the high register.
+
+       * src/base/ftcalc.c (ft_div64by32): Updated.
+
+2014-10-02  Dave Arnold  <darnold@adobe.com>
+
+       [cff] Fix Savannah bug #43271.
+
+       * src/cff/cf2font.c (cf2_computeDarkening): Change overflow
+       detection to use logarithms and clamp `scaledStem'.
+
+2014-10-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       * src/base/ftcalc.c: Remove miscellaneous type casts.
+
+2014-10-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Use more common `FT_MSB' implementation with masks.
+
+       * src/base/ftcalc.c (FT_MSB): Updated.
+
+2014-09-30  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Clean up.
+
+       * src/base/ftcalc.c (FT_MOVE_SIGN): New macro for frequently used
+       code.
+
+2014-09-25  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Avoid unnecessary long division.
+
+       This applies to `FT_MulDiv' but not to `FT_DivFix', where overflows or
+       lack thereof are predicted accurately.
+
+       * src/base/ftcalc.c (ft_div64by32): Improve readability.
+       (FT_MulDiv, FT_MulDiv_No_Round) [!FT_LONG64]: Use straight division
+       when multiplication stayed within 32 bits.
+
+2014-09-24  Werner Lemberg  <wl@gnu.org>
+
+       [autofit] Minor clean-ups.
+
+       * src/autofit/afhints.c (AF_FLAGS): Remove obsolete values.
+
+       * src/autofit/afhints.c (af_glyph_hints_dump_points,
+       af_glyph_hints_align_strong_points): Updated.
+
+       * src/autofit/aflatin.c (af_latin_hints_link_segments,
+       af_latin_hints_compute_segments), src/autofit/afcjk.c
+       (af_cjk_hints_link_segments), src/autofit/aflatin2.c
+       (af_latin2_hints_link_segments, af_latin2_hints_compute_segments):
+       There are no longer fake segments since more than 10 years...
+
+2014-09-22  Werner Lemberg  <wl@gnu.org>
+
+       [autofit] Minor code streamlining.
+
+       * src/autofit/afhints.c (af_axis_hints_new_edge): Remove redundant
+       initialization.
+
+2014-09-19  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       * src/base/ftcalc.c: Harmonize code.
+
+2014-09-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Tighten the overflow check in `FT_MulDiv'.
+
+       * src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated.
+
+2014-09-08  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       Fix Savannah bug #43153.
+
+       * src/psaux/psconv.c (PS_Conv_ToFixed): Add protection against
+       overflow in `divider'.
+
+2014-09-03  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Tighten the overflow check in `FT_DivFix'.
+
+       This fixes a 13-year old bug. The original overflow check should have
+       been updated when rounding was introduced into this function
+       (c2cd00443b).
+
+       * src/base/ftcalc.c (FT_DivFix) [!FT_LONG64]: Updated.
+       * include/freetype.h (FT_DivFix): Updated documentation.
+
+2014-09-03  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Tighten the overflow check in `FT_MulFix'.
+
+       * src/base/ftcalc.c (FT_MulFix) [!FT_LONG64]: Updated.
+
+2014-09-02  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [truetype] Shortcut ppem calculations for square pixels.
+
+       * src/truetype/ttinterp.h (TT_ExecContextRec): New field
+       `cur_ppem_func' with a function pointer.
+       * src/truetype/ttinterp.c (TT_RunIns): Initialize `cur_ppem_func'
+       depending on the pixel geometry to either...
+       (Current_Ppem_Stretched): ... this for stretched pixels.
+       (Current_Ppem): ... or this for square pixels.
+       (DO_MPPEM, DO_MPS, Ins_DELTAP, Ins_DELTAC): Use `cur_ppem_func'.
+
+2014-08-31  Behdad Esfahbod  <behdad@behdad.org>
+
+       Don't use `register' keyword.  Fixes compiler warnings.
+
+       * src/base/ftcalc.c (FT_Add64) [!FT_LONG64]: Do it.
+       * src/gzip/inftrees.c (huft_build): Ditto.
+       * src/truetype/ttinterp.c (TT_MulFix14_arm): Ditto.
+
+2014-08-24  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [truetype] Optimize DELTAP and DELTAC.
+
+       * src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem
+       calculations outside of the loop.
+
+2014-08-21  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       Fix Savannah bug #43033.
+
+       * include/config/ftconfig.h, builds/unix/ftconfig.in,
+       builds/vms/ftconfig.h [FT_LONG64]: Do not disable the macro when
+       64-bit type is `long'.
+
+2014-08-20  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Small optimization of `FT_MulFix'.
+
+       * src/base/ftcalc.c (FT_MulFix): Loosen up the condition for direct
+       32-bit calculations.
+
+2014-08-19  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Use unsigned calculation in `FT_MulDiv'.
+
+       * src/base/ftcalc.c (FT_MulDiv): Updated to expand 32-bit range.
+
+2014-08-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Remove truncation in `FT_DivFix'.
+
+       * src/base/ftcalc.c (FT_DivFix): Updated.
+
+2014-08-14  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       Minor refactoring.
+
+       * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Updated.
+
+2014-08-14  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       Turn FT_MSB into a macro when using gcc builtins.
+
+       * src/base/ftcalc.c, include/internal/ftcalc.h: Updated.
+
+2014-08-12  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Avoid undefined FT_MSB in `BBox_Cubic_Check'.
+
+       * src/base/ftbbox.c (BBox_Cubic_Check): Update.
+       (update_cubic_max): Repalce with...
+       (cubic_peak): ... this, which now handles upscaling.
+
+2014-08-11  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Handle collapsed outlines to avoid undefined FT_MSB.
+
+       * src/base/ftoutln.c (FT_Outline_Get_Orientation): Update.
+
+2014-08-11  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Restore FT_MulFix inlining.
+
+       * include/freetype.h (FT_MulFix): Unconditionally defined.
+
+       * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: Move code from here...
+
+       * include/internal/ftcalc.h [FT_MULFIX_ASSEMBLER]: ... to here,
+       which conditionally replaces the function with an inline version
+       through the macro.
+
+2014-08-08  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Refactor.
+
+2014-07-26  Werner Lemberg  <wl@gnu.org>
+
+       [cff] Fix typo.
+
+       * src/cff/cf2hints.c (cf2_glyphpath_computeOffset): Use correct
+       offsets in third quadrant.
+
+       Reported by maks <maksqwe1@ukr.net>.
+
+2014-07-17  Werner Lemberg  <wl@gnu.org>
+
+       Fix Savannah bug #42788.
+
+       * src/pfr/pfrobjs.c: Include `ftcalc.h'.
+
+2014-07-16  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       Replace `ft_highpow2' function.
+
+       * src/pfr/pfrobjs.c (pfr_face_get_kerning): Use `FT_MSB' instead of
+       `ft_highpow2'.
+
+       * src/base/ftutil.c, include/internal/ftobjs.h (ft_highpow2): Remove
+       it.
+
+2014-07-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       * src/base/ftcalc.c (FT_MSB): Utilize gcc builtins.
+
+2014-07-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Move assembler code back in the source file.
+
+       FT_MulFix assembler used to reside in ftcalc.c before f47d263f1b.
+
+       * include/config/ftconfig.h, builds/unix/ftconfig.in,
+       builds/vms/ftconfig.h [FT_MULFIX_ASSEMBLER]: Move code from here...
+
+       * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: ... to here.
+
+2014-07-14  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Further clean up color bitmap conversion.
+
+       * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Stop
+       using FT_MulFix and FT_DivFix since all calculations fit into 32 bits.
+
+2014-07-13  Werner Lemberg  <wl@gnu.org>
+
+       [truetype] Improve handling of buggy `prep' tables.
+
+       In case of an error in the `prep' table, no longer try to execute it
+       again and again.  This makes FreeType handle endless loops in buggy
+       fonts much faster.
+
+       * src/truetype/ttobjs.h (TT_SizeRec): The fields `bytecode_ready'
+       and `cvt_ready' are now negative if not initialized yet, otherwise
+       they indicate the error code of the last run.
+
+       * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep,
+       tt_size_done_bytecode, tt_size_init_bytecode,
+       tt_size_ready_bytecode, tt_size_init, tt_size_done, tt_size_reset):
+       Updated.
+
+       * src/truetype/ttgload.c (tt_loader_init): Updated.
+       * src/truetype/ttinterp.c (TT_RunIns): Force reexecution of `fpgm'
+       and `prep' only if we are in the `glyf' table.
+
+2014-07-12  Werner Lemberg  <wl@gnu.org>
+
+       * builds/vms/ftconfig.h: Synchronize.
+       Problem reported by Alexei.
+
+2014-07-11  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Clean up bitmap conversion.
+
+       * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
+       appropriate FT_DivFix and remove superfluous upscaling.
+
+2014-07-04  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       [base] Small optimization of the ancient code.
+
+       * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Loosen up the
+       condition for direct 32-bit calculations.
+
+2014-06-27  Werner Lemberg  <wl@gnu.org>
+
+       Fix Apple standard glyph names.
+
+       * src/sfnt/ttpost.c (tt_post_default_names): Synchronize with
+       `tools/glnames.py'
+
+       Problem reported by Adam Twardoch <adam@fontlab.com>.
+
+2014-06-17  Werner Lemberg  <wl@gnu.org>
+
+       Partially revert commit from 2014-06-13.
+
+       * src/autofit/aflatin.c (af_latin_metrics_init_blues): Move
+       declaration of `p_first' and `p_last' out of the loop.
+
+2014-06-17  Werner Lemberg  <wl@gnu.org>
+
+       * builds/unix/freetype2.m4: s/AC_PATH_PROG/AC_PATH_TOOL/.
+
+       This simplifies cross-compiling.
+
+2014-06-13  Werner Lemberg  <wl@gnu.org>
+
+       Fix more compiler warnings.
+       Reported by Wojciech Mamrak <wmamrak@gmail.com>.
+
+       * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
+       Make integer constant unsigned.
+
+       * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
+       <TT_SBIT_TABLE_TYPE_SBIX>: Fix types.
+       (tt_sbit_decoder_load_compound, tt_face_load_sbix_image): Add proper
+       casts.
+
+2014-06-13  Werner Lemberg  <wl@gnu.org>
+
+       Fix compiler warnings.
+       Reported by Wojciech Mamrak <wmamrak@gmail.com>.
+
+       * src/autofit/afglobal.c (af_face_globals_compute_style_coverage),
+       src/autofit/afmodule.c (af_property_set): Fix `signed' vs.
+       `unsigned' issues.
+
+       * src/autofit/aflatin.c (af_latin_metrics_init_blues): Make compiler
+       happy.
+
+       * src/base/ftlcdfil.c (_ft_lcd_filter_fir): Use only four elements
+       for `fir'.
+       Fix `signed' vs. `unsigned' issues.
+
+       * src/sfnt/sfobjs.c (WRITE_BYTE): Removed, unused.
+       (WRITE_USHORT, WRITE_ULONG): Add proper casts.
+
+       * src/truetype/ttgload.c (TT_Get_VMetrics): Add proper casts.
+
+       * src/truetype/ttinterp.c (Ins_DELTAP): Add proper casts for `B1'
+       and `B2'.
+
+2014-05-16  Alexey Petruchik  <alexey.petruchik@gmail.com>
+
+       [cmake] Add option to build OS X framework.
+
+       * CMakeLists.txt: Update accordingly.
+
+       * builds/mac/freetype-Info.plist: New file.
+
+2014-05-13  Pavel Koshevoy  <pkoshevoy@gmail.com>
+
+       * CMakeLists.txt (BASE_SRCS): Add missing `ftbdf.c'.
+
+2014-05-11  Werner Lemberg  <wl@gnu.org>
+
+       [autofit] Fix variable initializations.
+
+       * src/autofit/afhints.c (af_glyph_hints_reload): Assign default
+       values to `in_dir' and `out_dir' for all points.
+
+2014-05-11  Werner Lemberg  <wl@gnu.org>
+
+       [autofit] Fix crash with font `CabinSketch-Bold.ttf'.
+
+       Problem reported by Ralf S. Engelschall <rse@engelschall.com>.
+
+       * src/autofit/afhints.c (af_glyph_hints_reload): Fix threshold for
+       finding first non-near point.
+       Properly initialize non-near point deltas.
+
+2014-05-01  Werner Lemberg  <wl@gnu.org>
+
+       [autofit] Add blue-zone support for Devanagari.
+
+       This essentially moves the Devanagari script from the `Indic' hinter
+       to the `Latin' hinter.  Thanks to Girish Dalvi
+       <girish.dalvi@gmail.com> for guidance with blue zone characters!
+
+       * src/autofit/afblue.dat: Add blue zone data for Devanagari.
+
+       * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+       * src/autofit/afscript.h: Add Devanagari standard characters and
+       move data out of AF_CONFIG_OPTION_INDIC block.
+
+       * src/autofit/afranges.c: Move Devanagari data out of
+       AF_CONFIG_OPTION_INDIC block.
+       Move U+20B9, (new) Rupee sign, from Latin to Devanagari.
+
+       * src/autofit/afstyles.h: Update Devanagari data; in particular, use
+       AF_WRITING_SYSTEM_LATIN.
+
+2014-05-01  Werner Lemberg  <wl@gnu.org>
+
+       [autofit] Fix handling of neutral blue zones in stems.
+
+       * src/autofit/afhints.h (AF_Edge_Flags): New value
+       `AF_EDGE_NEUTRAL'.
+
+       * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Trace
+       neutral blue zones with AF_EDGE_NEUTRAL.
+       (af_latin_hint_edges): Skip neutral blue zones if necessary.
+
+2014-04-28  Werner Lemberg  <wl@gnu.org>
+
+       [autofit] Introduce neutral blue zones to the latin module.
+
+       Such blue zones match either the top or the bottom of a contour.  We
+       need them for scripts where accent-like elements directly touch the
+       base character (for example, some vowel signs in Devanagari, cf.
+       U+0913 or U+0914).
+
+       * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_NEUTRAL): New
+       property.
+
+       * src/autofit/afblue.h: Regenerated.
+
+       * src/autofit/aflatin.h (AF_LATIN_IS_NEUTRAL_BLUE): New macro.
+       (AF_LATIN_BLUE_NEUTRAL): New enumeration value.
+
+       * src/autofit/aflatin.c (af_latin_metrics_init_blues,
+       af_latin_hints_compute_blue_edges): Handle neutral blue zones.
+
+2014-04-25  Werner Lemberg  <wl@gnu.org>
+
+       * src/autofit/hbshim.c: Partially revert commit from 2014-04-17.
+
+       Using input glyph coverage data is simply wrong.
+
+       Problem reported by Nikolaus Waxweiler <madigens@gmail.com> and
+       Mantas MikulÄ—nas <grawity@gmail.com>.
+
+2014-04-23  Werner Lemberg  <wl@gnu.org>
+
+       * src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode.
+
+       This spot has been missed while introducing support for various
+       drop-out modes years ago (including no drop-out mode, which this
+       commit fixes).
+
+       Problem reported by Patrick Thomas <pthomas505@gmail.com>.
+
+2014-04-22  Werner Lemberg  <wl@gnu.org>
+
+       * src/sfnt/pngshim.c (error_callback): s/longjmp/ft_longjmp/.
+
+2014-04-20  Werner Lemberg  <wl@gnu.org>
+
+       [autofit] Fix Savannah bug #42148.
+
+       The adaptation of the cjk auto-hinter module to blue stringsets in
+       2013-08-25 had three severe bugs.  Mea culpa.
+
+       1. Contrary to the latin auto-hinter, characters for reference and
+          overshoot values of a blue zone are specified separately.  Due to
+          the screwed-up change it didn't work at all.
+
+       2. A boolean comparison was erroneously replaced with a cast,
+          causing invalid results with the `^' operator later on.  The
+          visual artifact caused by this problem is the topic of the bug
+          report.
+
+       3. Two flag values were inverted, causing incorrect assignment of
+          reference and overshoot values.
+
+       * src/autofit/afblue.dat: Fix CJK bluestrings, introducing a new
+       syntax to have both reference and overshoot characters in a single
+       string.  This is error #1.
+       Add extensive comments.
+
+       * src/autofit/afblue.hin (AF_BLUE_PROPERTY_CJK_FILL): Removed, no
+       longer used.
+       (AF_BLUE_PROPERTY_CJK_TOP, AF_BLUE_PROPERTY_CJK_HORIZ): Fix values.
+       This is error #3.
+
+       * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+       * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Correct error #1.
+       Use character `|' to separate characters for reference and overshoot
+       values.
+       Improve tracing messages, synchronizing them with the latin
+       auto-hinter.
+       (af_cjk_hints_compute_blue_edges): Fix value of `is_top_right_blue'.
+       This is error #2.
+       (af_cjk_align_linked_edge): Add tracing message.
+
+       * src/autofit/afcjk.h (AF_CJK_IS_FILLED_BLUE): Removed, no longer
+       used.
+
+2014-04-17  Werner Lemberg  <wl@gnu.org>
+
+       [autofit] More coverage fixes for complex scripts.
+
+       * src/autofit/hbshim.c (af_get_coverage): Merge input glyph coverage
+       of GSUB lookups into output coverage.  Otherwise, ligatures are not
+       handled properly.
+       Don't check blue zone characters for default coverage.
+
+2014-04-17  Werner Lemberg  <wl@gnu.org>
+
+       Make `FT_Get_SubGlyph_Info' actually work.
+
+       * src/base/ftobjs.c (FT_Get_SubGlyph_Info): Return FT_Err_Ok
+       if there is no error.
+
+2014-04-15  Werner Lemberg  <wl@gnu.org>
+
+       [afblue.pl]: Minor improvements.
+
+       * src/tools/afblue.pl: Allow whitespace before comments.
+       Ignore whitespace in strings.
+
+2014-04-14  Werner Lemberg  <wl@gnu.org>
+
+       [autofit] Improve coverage handling.
+
+       * src/autofit/hbshim.c (af_get_coverage): Don't exclude glyphs
+       appearing in the GPOS table if we are processing the default
+       coverage.
+
+2014-04-13  David Weber <weber.aulendorf@googlemail.com>
+
+       [smooth] Fix stand-alone compilation.
+
+       * src/smooth/ftgrays.c (FT_BEGIN_STMNT, FT_END_STMNT): Define.
+
+2014-04-12  Werner Lemberg  <wl@gnu.org>
+
+       [autofit] Redesign the recognition algorithm of strong points.
+
+       In particular, local extrema without horizontal or vertical segments
+       are better recognized:
+
+         + A                + D
+          \                /
+           \              /
+            \            /
+             \          /
+              \        + C
+               \    /
+              B +/
+
+       If the distances AB and CD are large, point B wasn't previously
+       detected as an extremum since the `ft_corner_is_flat' function
+       `swallowed' BC regardless of its direction, tagging point B as weak.
+       The next iteration started at B and made `ft_corner_is_flat' swallow
+       point C, tagging it as weak also, et voilà.
+
+       To improve that, another pass gets now performed before calling
+       `ft_corner_is_flat' to improve the `topology' of an outline: A
+       sequence of non-horizontal or non-vertical vectors that point into
+       the same quadrant are handled as a single, large vector.
+
+       Additionally, distances of near points are now accumulated, which
+       makes the auto-hinter handle them as if they were prepended to the
+       next non-near vector.
+
+       This generally improves the auto-hinter's rendering results.
+
+       * src/autofit/afhints.c (af_glyph_hints_reload): Implement it.
+
+       * src/autofit/afhints.h (AF_FLAGS): Remove no longer used flag
+       `AF_FLAG_NEAR'.
+
+2014-04-05  Werner Lemberg  <wl@gnu.org>
+
+       [autofit] Improve scoring algorithm for identifying stems.
+
+       Problem reported by Karsten Lücke <karsten.luecke@kltf.de>.
+
+       The new algorithm takes care of the width of stems: If the distance
+       between two segments is larger than the largest stem width, the
+       demerits quickly increase for larger distances.  This improves
+       hinting of slanted fonts (especially if the inner parts of serifs
+       have non-horizontal `shoulders'), avoiding false stem links.
+
+       * src/autofit/aflatin.c (af_latin_hints_link_segments): Use largest
+       stem width (if available) to compute better demerits for distances
+       between stems.
+       (af_latin_hints_detect_features): Pass stem width array and array
+       size.
+       (af_latin_metrics_init_widths): Updated to use original algorithm.
+       (af_latin_hints_apply): Updated to use new algorithm.
+
+       * src/autofit/aflatin.h: Updated.
+       * src/autofit/afcjk.c: Updated.
+
+2014-04-03  Werner Lemberg  <wl@gnu.org>
+
+       Don't require `gzip' module for `sfnt'.
+
+       Reported by Preet <prismatic.project@gmail.com>.
+
+       * src/sfnt/sfobjs.c (woff_open_font): Guard use of
+       FT_Gzip_Uncompress with FT_CONFIG_OPTION_USE_ZLIB.
+
+2014-03-27  Werner Lemberg  <wl@gnu.org>
+
+       Fix Savannah bug #38235.
+
+       Work around a bug in pkg-config version 0.28 and earlier: If a
+       variable value gets surrounded by doublequotes (in particular values
+       for the `prefix' variable), the prefix override mechanism fails.
+
+       * builds/unix/freetype2.in: Don't use doublequotes.
+       * builds/unix/unix-def.in (freetype.pc): Escape spaces in directory
+       names with backslashes.
+
+2014-03-24  Werner Lemberg  <wl@gnu.org>
+
+       Fix Savannah bug #41946.
+
+       Based on a patch from Marek Kašík <mkasik@redhat.com>.
+
+       * builds/unix/configure.raw (LIBS_CONFIG): Remove.
+       * builds/unix/freetype-config.in (libs): Hard-code value.
+       * builds/unix/unix-def.in: Updated.
+
+2014-03-22  Werner Lemberg  <wl@gnu.org>
+
+       Another revert for the change from 2014-03-18.
+
+       Problem reported by Nikolaus Waxweiler <madigens@gmail.com>.
+
+       * src/base/ftcalc.c (FT_MulFix): Ensure that an `FT_MulFix' symbol
+       gets always exported.
+
+2014-03-20  Werner Lemberg  <wl@gnu.org>
+
+       CMakeLists.txt: Another fix for include directories.
+
+       Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
+
+2014-03-19  Werner Lemberg  <wl@gnu.org>
+
+       CMakeLists.txt: Fix include directories.
+
+       Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
+
+2014-03-19  Werner Lemberg  <wl@gnu.org>
+
+       Partially revert last commit.
+
+       Found by Alexei.
+
+       * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initializing
+       those variables is plain wrong, since we are in a loop.
+
+2014-03-18  Sean McBride  <sean@rogue-research.com>
+           Werner Lemberg  <wl@gnu.org>
+
+       Fix clang warnings.
+
+       * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
+       some variables.
+
+       * src/base/ftcalc.c (FT_MulFix): Only use code if
+       `FT_MULFIX_INLINED' is not defined.
+
+       * src/bdf/bdfdrivr.c (bdf_cmap_class), src/cache/ftcbasic.c
+       (ftc_basic_image_family_class, ftc_basic_image_cache_class,
+       ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class),
+       src/cache/ftccmap.c (ftc_cmap_cache_class), src/cache/ftcmanag.c
+       (ftc_size_list_class, ftc_face_list_class), src/pcf/pcfdrivr.c
+       (pcf_cmap_class), src/pfr/pfrdrivr.c (pfr_metrics_service_rec): Make
+       function static.
+
+       * src/type1/t1driver.c (t1_ps_get_font_value): Remove redundant
+       code.
+
+2014-03-17  Werner Lemberg  <wl@gnu.org>
+
+       Fix Savannah bug #41869.
+
+       This works around a problem with HarfBuzz (<= 0.9.26), which doesn't
+       validate glyph indices returned by
+       `hb_ot_layout_lookup_collect_glyphs'.
+
+       * src/autofit/hbshim.c (af_get_coverage): Guard `idx'.
+
+       * docs/CHANGES: Updated.
+
+2014-03-14  Werner Lemberg  <wl@gnu.org>
+
+       * builds/unix/configure.raw: Don't show error messages of `which'.
+
+2014-03-09  Alan Coopersmith  <alan.coopersmith@oracle.com>
+
+       Fix cppcheck 1.64 warning.
+
+       * src/autofit/afglobal.c (af_face_globals_new): Catch NULL pointer
+       dereference in case of error.
+
+2014-03-09  Sean McBride  <sean@rogue-research.com>
+
+       * src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove clang warning.
+
 2014-03-06  Werner Lemberg  <wl@gnu.org>
 
        * Version 2.5.3 released.
        option.
        (libs): Updated.
        (staticlibs): New variable, to be used if `--static' is given.
-       * builds/doc/freetype-config.1: Document `--static'.
+       * docs/freetype-config.1: Document `--static'.
 
        * builds/unix/freetype2.in, builds/unix/unix-def.in: Updated.
 
index 9a793cd..f00a1ab 100644 (file)
@@ -1,4 +1,4 @@
-  FreeType 2.5.3
+  FreeType 2.5.5
   ==============
 
   Homepage: http://www.freetype.org
@@ -24,9 +24,9 @@
 
   and download one of the following files.
 
-    freetype-doc-2.5.3.tar.bz2
-    freetype-doc-2.5.3.tar.gz
-    ftdoc253.zip
+    freetype-doc-2.5.5.tar.bz2
+    freetype-doc-2.5.5.tar.gz
+    ftdoc255.zip
 
   To view the documentation online, go to
 
   Bugs
   ====
 
-  Please report bugs  by e-mail to `freetype-devel@nongnu.org'.  Don't
-  forget to  send a  detailed explanation of  the problem --  there is
-  nothing  worse than  receiving a  terse message  that only  says `it
-  doesn't work'.
-
-  Alternatively, you may submit a bug report at
+  Please submit bug reports at
 
     https://savannah.nongnu.org/bugs/?group=freetype
 
+  Alternatively,    you   might    report    bugs    by   e-mail    to
+  `freetype-devel@nongnu.org'.   Don't  forget   to  send  a  detailed
+  explanation of the problem --  there is nothing worse than receiving
+  a terse message that only says `it doesn't work'.
+
 
   Enjoy!
 
index d7b6a63..10027bb 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    User-selectable configuration macros (specification only).           */
 /*                                                                         */
-/*  Copyright 1996-2013 by                                                 */
+/*  Copyright 1996-2014 by                                                 */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -61,7 +61,7 @@ FT_BEGIN_HEADER
   /*    that are statically linked to the library at compile time.  By     */
   /*    default, this file is <config/ftmodule.h>.                         */
   /*                                                                       */
-  /*  We highly recommend using the third method whenever possible.        */
+  /* We highly recommend using the third method whenever possible.         */
   /*                                                                       */
   /*************************************************************************/
 
@@ -205,7 +205,7 @@ FT_BEGIN_HEADER
 
   /*************************************************************************/
   /*                                                                       */
-  /*  PNG bitmap support.                                                  */
+  /* PNG bitmap support.                                                   */
   /*                                                                       */
   /*   FreeType now handles loading color bitmap glyphs in the PNG format. */
   /*   This requires help from the external libpng library.  Uncompressed  */
@@ -219,7 +219,7 @@ FT_BEGIN_HEADER
 
   /*************************************************************************/
   /*                                                                       */
-  /*  HarfBuzz support.                                                    */
+  /* HarfBuzz support.                                                     */
   /*                                                                       */
   /*   FreeType uses the HarfBuzz library to improve auto-hinting of       */
   /*   OpenType fonts.  If available, many glyphs not directly addressable */
@@ -771,6 +771,30 @@ FT_BEGIN_HEADER
   /*************************************************************************/
 
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* Using CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4} it is      */
+  /* possible to set up the default values of the four control points that */
+  /* define the stem darkening behaviour of the (new) CFF engine.  For     */
+  /* more details please read the documentation of the                     */
+  /* `darkening-parameters' property of the cff driver module (file        */
+  /* `ftcffdrv.h'), which allows the control at run-time.                  */
+  /*                                                                       */
+  /* Do *not* undefine these macros!                                       */
+  /*                                                                       */
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1   500
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1   400
+
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2  1000
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2   275
+
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3  1667
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3   275
+
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4  2333
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4     0
+
+
   /*************************************************************************/
   /*                                                                       */
   /* CFF_CONFIG_OPTION_OLD_ENGINE controls whether the pre-Adobe CFF       */
@@ -820,8 +844,8 @@ FT_BEGIN_HEADER
 
 
   /*
-   *  This macro is obsolete.  Support has been removed in FreeType
-   *  version 2.5.
+   * This macro is obsolete.  Support has been removed in FreeType
+   * version 2.5.
    */
 /* #define FT_CONFIG_OPTION_OLD_INTERNALS */
 
@@ -837,6 +861,35 @@ FT_BEGIN_HEADER
 #define  TT_USE_BYTECODE_INTERPRETER
 #endif
 
+
+  /*
+   * Check CFF darkening parameters.  The checks are the same as in function
+   * `cff_property_set' in file `cffdrivr.c'.
+   */
+#if CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 < 0   || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 < 0   || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 < 0   || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 < 0   || \
+                                                      \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 < 0   || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 < 0   || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 < 0   || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 < 0   || \
+                                                      \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 >        \
+      CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2     || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 >        \
+      CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3     || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 >        \
+      CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4     || \
+                                                      \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 > 500 || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 > 500 || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 > 500 || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 > 500
+#error "Invalid CFF darkening parameters!"
+#endif
+
 FT_END_HEADER
 
 
index d98a311..22d70fd 100644 (file)
@@ -266,7 +266,16 @@ FT_BEGIN_HEADER
 #define FT_INT64   long
 #define FT_UINT64  unsigned long
 
-#elif defined( _MSC_VER ) && _MSC_VER >= 900  /* Visual C++ (and Intel C++) */
+  /*************************************************************************/
+  /*                                                                       */
+  /* A 64-bit data type may create compilation problems if you compile     */
+  /* in strict ANSI mode.  To avoid them, we disable other 64-bit data     */
+  /* types if __STDC__ is defined.  You can however ignore this rule       */
+  /* by defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro.     */
+  /*                                                                       */
+#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
+
+#if defined( _MSC_VER ) && _MSC_VER >= 900  /* Visual C++ (and Intel C++) */
 
   /* this compiler provides the __int64 type */
 #define FT_LONG64
@@ -300,27 +309,9 @@ FT_BEGIN_HEADER
 #define FT_INT64   long long int
 #define FT_UINT64  unsigned long long int
 
-#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* A 64-bit data type will create compilation problems if you compile    */
-  /* in strict ANSI mode.  To avoid them, we disable its use if __STDC__   */
-  /* is defined.  You can however ignore this rule by defining the         */
-  /* FT_CONFIG_OPTION_FORCE_INT64 configuration macro.                     */
-  /*                                                                       */
-#if defined( FT_LONG64 ) && !defined( FT_CONFIG_OPTION_FORCE_INT64 )
-
-#ifdef __STDC__
-
-  /* undefine the 64-bit macros in strict ANSI compilation mode */
-#undef FT_LONG64
-#undef FT_INT64
-
-#endif /* __STDC__ */
+#endif /* _MSC_VER */
 
-#endif /* FT_LONG64 && !FT_CONFIG_OPTION_FORCE_INT64 */
+#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
 
 #ifdef FT_LONG64
   typedef FT_INT64   FT_Int64;
@@ -333,219 +324,6 @@ FT_BEGIN_HEADER
 #define FT_DUMMY_STMNT  FT_BEGIN_STMNT FT_END_STMNT
 
 
-#ifndef  FT_CONFIG_OPTION_NO_ASSEMBLER
-  /* Provide assembler fragments for performance-critical functions. */
-  /* These must be defined `static __inline__' with GCC.             */
-
-#if defined( __CC_ARM ) || defined( __ARMCC__ )  /* RVCT */
-
-#define FT_MULFIX_ASSEMBLER  FT_MulFix_arm
-
-  /* documentation is in freetype.h */
-
-  static __inline FT_Int32
-  FT_MulFix_arm( FT_Int32  a,
-                 FT_Int32  b )
-  {
-    register FT_Int32  t, t2;
-
-
-    __asm
-    {
-      smull t2, t,  b,  a           /* (lo=t2,hi=t) = a*b */
-      mov   a,  t,  asr #31         /* a   = (hi >> 31) */
-      add   a,  a,  #0x8000         /* a  += 0x8000 */
-      adds  t2, t2, a               /* t2 += a */
-      adc   t,  t,  #0              /* t  += carry */
-      mov   a,  t2, lsr #16         /* a   = t2 >> 16 */
-      orr   a,  a,  t,  lsl #16     /* a  |= t << 16 */
-    }
-    return a;
-  }
-
-#endif /* __CC_ARM || __ARMCC__ */
-
-
-#ifdef __GNUC__
-
-#if defined( __arm__ )                                 && \
-    ( !defined( __thumb__ ) || defined( __thumb2__ ) ) && \
-    !( defined( __CC_ARM ) || defined( __ARMCC__ ) )
-
-#define FT_MULFIX_ASSEMBLER  FT_MulFix_arm
-
-  /* documentation is in freetype.h */
-
-  static __inline__ FT_Int32
-  FT_MulFix_arm( FT_Int32  a,
-                 FT_Int32  b )
-  {
-    register FT_Int32  t, t2;
-
-
-    __asm__ __volatile__ (
-      "smull  %1, %2, %4, %3\n\t"       /* (lo=%1,hi=%2) = a*b */
-      "mov    %0, %2, asr #31\n\t"      /* %0  = (hi >> 31) */
-#if defined( __clang__ ) && defined( __thumb2__ )
-      "add.w  %0, %0, #0x8000\n\t"      /* %0 += 0x8000 */
-#else
-      "add    %0, %0, #0x8000\n\t"      /* %0 += 0x8000 */
-#endif
-      "adds   %1, %1, %0\n\t"           /* %1 += %0 */
-      "adc    %2, %2, #0\n\t"           /* %2 += carry */
-      "mov    %0, %1, lsr #16\n\t"      /* %0  = %1 >> 16 */
-      "orr    %0, %0, %2, lsl #16\n\t"  /* %0 |= %2 << 16 */
-      : "=r"(a), "=&r"(t2), "=&r"(t)
-      : "r"(a), "r"(b)
-      : "cc" );
-    return a;
-  }
-
-#endif /* __arm__                      && */
-       /* ( __thumb2__ || !__thumb__ ) && */
-       /* !( __CC_ARM || __ARMCC__ )      */
-
-
-#if defined( __i386__ )
-
-#define FT_MULFIX_ASSEMBLER  FT_MulFix_i386
-
-  /* documentation is in freetype.h */
-
-  static __inline__ FT_Int32
-  FT_MulFix_i386( FT_Int32  a,
-                  FT_Int32  b )
-  {
-    register FT_Int32  result;
-
-
-    __asm__ __volatile__ (
-      "imul  %%edx\n"
-      "movl  %%edx, %%ecx\n"
-      "sarl  $31, %%ecx\n"
-      "addl  $0x8000, %%ecx\n"
-      "addl  %%ecx, %%eax\n"
-      "adcl  $0, %%edx\n"
-      "shrl  $16, %%eax\n"
-      "shll  $16, %%edx\n"
-      "addl  %%edx, %%eax\n"
-      : "=a"(result), "=d"(b)
-      : "a"(a), "d"(b)
-      : "%ecx", "cc" );
-    return result;
-  }
-
-#endif /* i386 */
-
-#endif /* __GNUC__ */
-
-
-#ifdef _MSC_VER /* Visual C++ */
-
-#ifdef _M_IX86
-
-#define FT_MULFIX_ASSEMBLER  FT_MulFix_i386
-
-  /* documentation is in freetype.h */
-
-  static __inline FT_Int32
-  FT_MulFix_i386( FT_Int32  a,
-                  FT_Int32  b )
-  {
-    register FT_Int32  result;
-
-    __asm
-    {
-      mov eax, a
-      mov edx, b
-      imul edx
-      mov ecx, edx
-      sar ecx, 31
-      add ecx, 8000h
-      add eax, ecx
-      adc edx, 0
-      shr eax, 16
-      shl edx, 16
-      add eax, edx
-      mov result, eax
-    }
-    return result;
-  }
-
-#endif /* _M_IX86 */
-
-#endif /* _MSC_VER */
-
-
-#if defined( __GNUC__ ) && defined( __x86_64__ )
-
-#define FT_MULFIX_ASSEMBLER  FT_MulFix_x86_64
-
-  static __inline__ FT_Int32
-  FT_MulFix_x86_64( FT_Int32  a,
-                    FT_Int32  b )
-  {
-    /* Temporarily disable the warning that C90 doesn't support */
-    /* `long long'.                                             */
-#if ( __GNUC__ > 4 ) || ( ( __GNUC__ == 4 ) && ( __GNUC_MINOR__ >= 6 ) )
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wlong-long"
-#endif
-
-#if 1
-    /* Technically not an assembly fragment, but GCC does a really good */
-    /* job at inlining it and generating good machine code for it.      */
-    long long  ret, tmp;
-
-
-    ret  = (long long)a * b;
-    tmp  = ret >> 63;
-    ret += 0x8000 + tmp;
-
-    return (FT_Int32)( ret >> 16 );
-#else
-
-    /* For some reason, GCC 4.6 on Ubuntu 12.04 generates invalid machine  */
-    /* code from the lines below.  The main issue is that `wide_a' is not  */
-    /* properly initialized by sign-extending `a'.  Instead, the generated */
-    /* machine code assumes that the register that contains `a' on input   */
-    /* can be used directly as a 64-bit value, which is wrong most of the  */
-    /* time.                                                               */
-    long long  wide_a = (long long)a;
-    long long  wide_b = (long long)b;
-    long long  result;
-
-
-    __asm__ __volatile__ (
-      "imul %2, %1\n"
-      "mov %1, %0\n"
-      "sar $63, %0\n"
-      "lea 0x8000(%1, %0), %0\n"
-      "sar $16, %0\n"
-      : "=&r"(result), "=&r"(wide_a)
-      : "r"(wide_b)
-      : "cc" );
-
-    return (FT_Int32)result;
-#endif
-
-#if ( __GNUC__ > 4 ) || ( ( __GNUC__ == 4 ) && ( __GNUC_MINOR__ >= 6 ) )
-#pragma GCC diagnostic pop
-#endif
-  }
-
-#endif /* __GNUC__ && __x86_64__ */
-
-#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */
-
-
-#ifdef FT_CONFIG_OPTION_INLINE_MULFIX
-#ifdef FT_MULFIX_ASSEMBLER
-#define FT_MULFIX_INLINED  FT_MULFIX_ASSEMBLER
-#endif
-#endif
-
-
 #ifdef FT_MAKE_OPTION_SINGLE_OBJECT
 
 #define FT_LOCAL( x )      static  x
index 5b11f0e..2b0b67e 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    User-selectable configuration macros (specification only).           */
 /*                                                                         */
-/*  Copyright 1996-2013 by                                                 */
+/*  Copyright 1996-2014 by                                                 */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -61,7 +61,7 @@ FT_BEGIN_HEADER
   /*    that are statically linked to the library at compile time.  By     */
   /*    default, this file is <config/ftmodule.h>.                         */
   /*                                                                       */
-  /*  We highly recommend using the third method whenever possible.        */
+  /* We highly recommend using the third method whenever possible.         */
   /*                                                                       */
   /*************************************************************************/
 
@@ -216,7 +216,7 @@ FT_BEGIN_HEADER
 
   /*************************************************************************/
   /*                                                                       */
-  /*  PNG bitmap support.                                                  */
+  /* PNG bitmap support.                                                   */
   /*                                                                       */
   /*   FreeType now handles loading color bitmap glyphs in the PNG format. */
   /*   This requires help from the external libpng library.  Uncompressed  */
@@ -230,7 +230,7 @@ FT_BEGIN_HEADER
 
   /*************************************************************************/
   /*                                                                       */
-  /*  HarfBuzz support.                                                    */
+  /* HarfBuzz support.                                                     */
   /*                                                                       */
   /*   FreeType uses the HarfBuzz library to improve auto-hinting of       */
   /*   OpenType fonts.  If available, many glyphs not directly addressable */
@@ -771,6 +771,30 @@ FT_BEGIN_HEADER
   /*************************************************************************/
 
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* Using CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4} it is      */
+  /* possible to set up the default values of the four control points that */
+  /* define the stem darkening behaviour of the (new) CFF engine.  For     */
+  /* more details please read the documentation of the                     */
+  /* `darkening-parameters' property of the cff driver module (file        */
+  /* `ftcffdrv.h'), which allows the control at run-time.                  */
+  /*                                                                       */
+  /* Do *not* undefine these macros!                                       */
+  /*                                                                       */
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1   500
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1   400
+
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2  1000
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2   275
+
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3  1667
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3   275
+
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4  2333
+#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4     0
+
+
   /*************************************************************************/
   /*                                                                       */
   /* CFF_CONFIG_OPTION_OLD_ENGINE controls whether the pre-Adobe CFF       */
@@ -820,8 +844,8 @@ FT_BEGIN_HEADER
 
 
   /*
-   *  This macro is obsolete.  Support has been removed in FreeType
-   *  version 2.5.
+   * This macro is obsolete.  Support has been removed in FreeType
+   * version 2.5.
    */
 /* #define FT_CONFIG_OPTION_OLD_INTERNALS */
 
@@ -837,6 +861,35 @@ FT_BEGIN_HEADER
 #define  TT_USE_BYTECODE_INTERPRETER
 #endif
 
+
+  /*
+   * Check CFF darkening parameters.  The checks are the same as in function
+   * `cff_property_set' in file `cffdrivr.c'.
+   */
+#if CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 < 0   || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 < 0   || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 < 0   || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 < 0   || \
+                                                      \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 < 0   || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 < 0   || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 < 0   || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 < 0   || \
+                                                      \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 >        \
+      CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2     || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 >        \
+      CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3     || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 >        \
+      CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4     || \
+                                                      \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 > 500 || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 > 500 || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 > 500 || \
+    CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 > 500
+#error "Invalid CFF darkening parameters!"
+#endif
+
 FT_END_HEADER
 
 
index fb62b62..27fd44b 100644 (file)
@@ -113,7 +113,8 @@ FT_BEGIN_HEADER
   /*    The FreeType~2 base font interface.                                */
   /*                                                                       */
   /* <Description>                                                         */
-  /*    This section describes the public high-level API of FreeType~2.    */
+  /*    This section describes the most important public high-level API    */
+  /*    functions of FreeType~2.                                           */
   /*                                                                       */
   /* <Order>                                                               */
   /*    FT_Library                                                         */
@@ -122,6 +123,7 @@ FT_BEGIN_HEADER
   /*    FT_GlyphSlot                                                       */
   /*    FT_CharMap                                                         */
   /*    FT_Encoding                                                        */
+  /*    FT_ENC_TAG                                                         */
   /*                                                                       */
   /*    FT_FaceRec                                                         */
   /*                                                                       */
@@ -138,8 +140,22 @@ FT_BEGIN_HEADER
   /*    FT_FACE_FLAG_MULTIPLE_MASTERS                                      */
   /*    FT_FACE_FLAG_GLYPH_NAMES                                           */
   /*    FT_FACE_FLAG_EXTERNAL_STREAM                                       */
-  /*    FT_FACE_FLAG_FAST_GLYPHS                                           */
   /*    FT_FACE_FLAG_HINTER                                                */
+  /*    FT_FACE_FLAG_TRICKY                                                */
+  /*                                                                       */
+  /*    FT_HAS_HORIZONTAL                                                  */
+  /*    FT_HAS_VERTICAL                                                    */
+  /*    FT_HAS_KERNING                                                     */
+  /*    FT_HAS_FIXED_SIZES                                                 */
+  /*    FT_HAS_GLYPH_NAMES                                                 */
+  /*    FT_HAS_MULTIPLE_MASTERS                                            */
+  /*    FT_HAS_COLOR                                                       */
+  /*                                                                       */
+  /*    FT_IS_SFNT                                                         */
+  /*    FT_IS_SCALABLE                                                     */
+  /*    FT_IS_FIXED_WIDTH                                                  */
+  /*    FT_IS_CID_KEYED                                                    */
+  /*    FT_IS_TRICKY                                                       */
   /*                                                                       */
   /*    FT_STYLE_FLAG_BOLD                                                 */
   /*    FT_STYLE_FLAG_ITALIC                                               */
@@ -158,6 +174,7 @@ FT_BEGIN_HEADER
   /*                                                                       */
   /*    FT_New_Face                                                        */
   /*    FT_Done_Face                                                       */
+  /*    FT_Reference_Face                                                  */
   /*    FT_New_Memory_Face                                                 */
   /*    FT_Open_Face                                                       */
   /*    FT_Open_Args                                                       */
@@ -170,10 +187,13 @@ FT_BEGIN_HEADER
   /*    FT_Request_Size                                                    */
   /*    FT_Select_Size                                                     */
   /*    FT_Size_Request_Type                                               */
+  /*    FT_Size_RequestRec                                                 */
   /*    FT_Size_Request                                                    */
   /*    FT_Set_Transform                                                   */
   /*    FT_Load_Glyph                                                      */
   /*    FT_Get_Char_Index                                                  */
+  /*    FT_Get_First_Char                                                  */
+  /*    FT_Get_Next_Char                                                   */
   /*    FT_Get_Name_Index                                                  */
   /*    FT_Load_Char                                                       */
   /*                                                                       */
@@ -190,11 +210,11 @@ FT_BEGIN_HEADER
   /*    FT_LOAD_NO_SCALE                                                   */
   /*    FT_LOAD_NO_HINTING                                                 */
   /*    FT_LOAD_NO_BITMAP                                                  */
-  /*    FT_LOAD_CROP_BITMAP                                                */
+  /*    FT_LOAD_NO_AUTOHINT                                                */
+  /*    FT_LOAD_COLOR                                                      */
   /*                                                                       */
   /*    FT_LOAD_VERTICAL_LAYOUT                                            */
   /*    FT_LOAD_IGNORE_TRANSFORM                                           */
-  /*    FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH                                */
   /*    FT_LOAD_FORCE_AUTOHINT                                             */
   /*    FT_LOAD_NO_RECURSE                                                 */
   /*    FT_LOAD_PEDANTIC                                                   */
@@ -205,6 +225,8 @@ FT_BEGIN_HEADER
   /*    FT_LOAD_TARGET_LCD                                                 */
   /*    FT_LOAD_TARGET_LCD_V                                               */
   /*                                                                       */
+  /*    FT_LOAD_TARGET_MODE                                                */
+  /*                                                                       */
   /*    FT_Render_Glyph                                                    */
   /*    FT_Render_Mode                                                     */
   /*    FT_Get_Kerning                                                     */
@@ -218,14 +240,22 @@ FT_BEGIN_HEADER
   /*    FT_Set_Charmap                                                     */
   /*    FT_Get_Charmap_Index                                               */
   /*                                                                       */
-  /*    FT_FSTYPE_INSTALLABLE_EMBEDDING                                    */
-  /*    FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING                             */
-  /*    FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING                              */
-  /*    FT_FSTYPE_EDITABLE_EMBEDDING                                       */
-  /*    FT_FSTYPE_NO_SUBSETTING                                            */
-  /*    FT_FSTYPE_BITMAP_EMBEDDING_ONLY                                    */
-  /*                                                                       */
   /*    FT_Get_FSType_Flags                                                */
+  /*    FT_Get_SubGlyph_Info                                               */
+  /*                                                                       */
+  /*    FT_Face_Internal                                                   */
+  /*    FT_Size_Internal                                                   */
+  /*    FT_Slot_Internal                                                   */
+  /*                                                                       */
+  /*    FT_FACE_FLAG_XXX                                                   */
+  /*    FT_STYLE_FLAG_XXX                                                  */
+  /*    FT_OPEN_XXX                                                        */
+  /*    FT_LOAD_XXX                                                        */
+  /*    FT_LOAD_TARGET_XXX                                                 */
+  /*    FT_SUBGLYPH_FLAG_XXX                                               */
+  /*    FT_FSTYPE_XXX                                                      */
+  /*                                                                       */
+  /*    FT_HAS_FAST_GLYPHS                                                 */
   /*                                                                       */
   /*************************************************************************/
 
@@ -376,6 +406,13 @@ FT_BEGIN_HEADER
   typedef struct FT_LibraryRec_  *FT_Library;
 
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Section>                                                             */
+  /*    module_management                                                  */
+  /*                                                                       */
+  /*************************************************************************/
+
   /*************************************************************************/
   /*                                                                       */
   /* <Type>                                                                */
@@ -415,6 +452,13 @@ FT_BEGIN_HEADER
   typedef struct FT_RendererRec_*  FT_Renderer;
 
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Section>                                                             */
+  /*    base_interface                                                     */
+  /*                                                                       */
+  /*************************************************************************/
+
   /*************************************************************************/
   /*                                                                       */
   /* <Type>                                                                */
@@ -727,15 +771,8 @@ FT_BEGIN_HEADER
   } FT_Encoding;
 
 
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    ft_encoding_xxx                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    These constants are deprecated; use the corresponding @FT_Encoding */
-  /*    values instead.                                                    */
-  /*                                                                       */
+  /* these constants are deprecated; use the corresponding `FT_Encoding' */
+  /* values instead                                                      */
 #define ft_encoding_none            FT_ENCODING_NONE
 #define ft_encoding_unicode         FT_ENCODING_UNICODE
 #define ft_encoding_symbol          FT_ENCODING_MS_SYMBOL
@@ -1570,15 +1607,15 @@ FT_BEGIN_HEADER
   /*                         change between calls of @FT_Load_Glyph and a  */
   /*                         few other functions.                          */
   /*                                                                       */
-  /*    bitmap_left       :: This is the bitmap's left bearing expressed   */
-  /*                         in integer pixels.  Of course, this is only   */
-  /*                         valid if the format is                        */
-  /*                         @FT_GLYPH_FORMAT_BITMAP.                      */
+  /*    bitmap_left       :: The bitmap's left bearing expressed in        */
+  /*                         integer pixels.  Only valid if the format is  */
+  /*                         @FT_GLYPH_FORMAT_BITMAP, this is, if the      */
+  /*                         glyph slot contains a bitmap.                 */
   /*                                                                       */
-  /*    bitmap_top        :: This is the bitmap's top bearing expressed in */
-  /*                         integer pixels.  Remember that this is the    */
-  /*                         distance from the baseline to the top-most    */
-  /*                         glyph scanline, upwards y~coordinates being   */
+  /*    bitmap_top        :: The bitmap's top bearing expressed in integer */
+  /*                         pixels.  Remember that this is the distance   */
+  /*                         from the baseline to the top-most glyph       */
+  /*                         scanline, upwards y~coordinates being         */
   /*                         *positive*.                                   */
   /*                                                                       */
   /*    outline           :: The outline descriptor for the current glyph  */
@@ -1592,7 +1629,6 @@ FT_BEGIN_HEADER
   /*                         This field is only valid for the composite    */
   /*                         glyph format that should normally only be     */
   /*                         loaded with the @FT_LOAD_NO_RECURSE flag.     */
-  /*                         For now this is internal to FreeType.         */
   /*                                                                       */
   /*    subglyphs         :: An array of subglyph descriptors for          */
   /*                         composite glyphs.  There are `num_subglyphs'  */
@@ -1783,16 +1819,6 @@ FT_BEGIN_HEADER
   /*                                                                       */
   /*    FT_OPEN_PARAMS   :: Use the `num_params' and `params' fields.      */
   /*                                                                       */
-  /*    ft_open_memory   :: Deprecated; use @FT_OPEN_MEMORY instead.       */
-  /*                                                                       */
-  /*    ft_open_stream   :: Deprecated; use @FT_OPEN_STREAM instead.       */
-  /*                                                                       */
-  /*    ft_open_pathname :: Deprecated; use @FT_OPEN_PATHNAME instead.     */
-  /*                                                                       */
-  /*    ft_open_driver   :: Deprecated; use @FT_OPEN_DRIVER instead.       */
-  /*                                                                       */
-  /*    ft_open_params   :: Deprecated; use @FT_OPEN_PARAMS instead.       */
-  /*                                                                       */
   /* <Note>                                                                */
   /*    The `FT_OPEN_MEMORY', `FT_OPEN_STREAM', and `FT_OPEN_PATHNAME'     */
   /*    flags are mutually exclusive.                                      */
@@ -1803,11 +1829,14 @@ FT_BEGIN_HEADER
 #define FT_OPEN_DRIVER    0x8
 #define FT_OPEN_PARAMS    0x10
 
-#define ft_open_memory    FT_OPEN_MEMORY     /* deprecated */
-#define ft_open_stream    FT_OPEN_STREAM     /* deprecated */
-#define ft_open_pathname  FT_OPEN_PATHNAME   /* deprecated */
-#define ft_open_driver    FT_OPEN_DRIVER     /* deprecated */
-#define ft_open_params    FT_OPEN_PARAMS     /* deprecated */
+
+  /* these constants are deprecated; use the corresponding `FT_OPEN_XXX' */
+  /* values instead                                                      */
+#define ft_open_memory    FT_OPEN_MEMORY
+#define ft_open_stream    FT_OPEN_STREAM
+#define ft_open_pathname  FT_OPEN_PATHNAME
+#define ft_open_driver    FT_OPEN_DRIVER
+#define ft_open_params    FT_OPEN_PARAMS
 
 
   /*************************************************************************/
@@ -1872,22 +1901,22 @@ FT_BEGIN_HEADER
   /*    The stream type is determined by the contents of `flags' that      */
   /*    are tested in the following order by @FT_Open_Face:                */
   /*                                                                       */
-  /*    If the `FT_OPEN_MEMORY' bit is set, assume that this is a          */
+  /*    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     */
   /*    releasing and destroying them _after_ the corresponding call to    */
   /*    @FT_Done_Face.                                                     */
   /*                                                                       */
-  /*    Otherwise, if the `FT_OPEN_STREAM' bit is set, assume that a       */
+  /*    Otherwise, if the @FT_OPEN_STREAM bit is set, assume that a        */
   /*    custom input stream `stream' is used.                              */
   /*                                                                       */
-  /*    Otherwise, if the `FT_OPEN_PATHNAME' bit is set, assume that this  */
+  /*    Otherwise, if the @FT_OPEN_PATHNAME bit is set, assume that this   */
   /*    is a normal file and use `pathname' to open it.                    */
   /*                                                                       */
-  /*    If the `FT_OPEN_DRIVER' bit is set, @FT_Open_Face only tries to    */
+  /*    If the @FT_OPEN_DRIVER bit is set, @FT_Open_Face only tries to     */
   /*    open the file with the driver whose handler is in `driver'.        */
   /*                                                                       */
-  /*    If the `FT_OPEN_PARAMS' bit is set, the parameters given by        */
+  /*    If the @FT_OPEN_PARAMS bit is set, the parameters given by         */
   /*    `num_params' and `params' is used.  They are ignored otherwise.    */
   /*                                                                       */
   /*    Ideally, both the `pathname' and `params' fields should be tagged  */
@@ -2541,11 +2570,6 @@ FT_BEGIN_HEADER
    *     Indicates that the auto-hinter is preferred over the font's native
    *     hinter.  See also the note below.
    *
-   *   FT_LOAD_CROP_BITMAP ::
-   *     Indicates that the font driver should crop the loaded bitmap glyph
-   *     (i.e., remove all space around its black bits).  Not all drivers
-   *     implement this.
-   *
    *   FT_LOAD_PEDANTIC ::
    *     Indicates that the font driver should perform pedantic verifications
    *     during glyph loading.  This is mostly used to detect broken glyphs
@@ -2556,18 +2580,12 @@ FT_BEGIN_HEADER
    *     result in partially hinted or distorted glyphs in case a glyph's
    *     bytecode is buggy.
    *
-   *   FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH ::
-   *     Ignored.  Deprecated.
-   *
    *   FT_LOAD_NO_RECURSE ::
-   *     This flag is only used internally.  It merely indicates that the
-   *     font driver should not load composite glyphs recursively.  Instead,
-   *     it should set the `num_subglyph' and `subglyphs' values of the
-   *     glyph slot accordingly, and set `glyph->format' to
-   *     @FT_GLYPH_FORMAT_COMPOSITE.
-   *
-   *     The description of sub-glyphs is not available to client
-   *     applications for now.
+   *     Indicate that the font driver should not load composite glyphs
+   *     recursively.  Instead, it should set the `num_subglyph' and
+   *     `subglyphs' values of the glyph slot accordingly, and set
+   *     `glyph->format' to @FT_GLYPH_FORMAT_COMPOSITE.  The description of
+   *     subglyphs can then be accessed with @FT_Get_SubGlyph_Info.
    *
    *     This flag implies @FT_LOAD_NO_SCALE and @FT_LOAD_IGNORE_TRANSFORM.
    *
@@ -2600,6 +2618,12 @@ FT_BEGIN_HEADER
    *     bitmaps transparently.  Those bitmaps will be in the
    *     @FT_PIXEL_MODE_GRAY format.
    *
+   *   FT_LOAD_CROP_BITMAP ::
+   *     Ignored.  Deprecated.
+   *
+   *   FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH ::
+   *     Ignored.  Deprecated.
+   *
    * @note:
    *   By default, hinting is enabled and the font's native hinter (see
    *   @FT_FACE_FLAG_HINTER) is preferred over the auto-hinter.  You can
@@ -2836,19 +2860,8 @@ FT_BEGIN_HEADER
   } FT_Render_Mode;
 
 
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    ft_render_mode_xxx                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    These constants are deprecated.  Use the corresponding             */
-  /*    @FT_Render_Mode values instead.                                    */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*    ft_render_mode_normal :: see @FT_RENDER_MODE_NORMAL                */
-  /*    ft_render_mode_mono   :: see @FT_RENDER_MODE_MONO                  */
-  /*                                                                       */
+  /* these constants are deprecated; use the corresponding */
+  /* `FT_Render_Mode' values instead                       */
 #define ft_render_mode_normal  FT_RENDER_MODE_NORMAL
 #define ft_render_mode_mono    FT_RENDER_MODE_MONO
 
@@ -2912,39 +2925,10 @@ FT_BEGIN_HEADER
   } FT_Kerning_Mode;
 
 
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Const>                                                               */
-  /*    ft_kerning_default                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This constant is deprecated.  Please use @FT_KERNING_DEFAULT       */
-  /*    instead.                                                           */
-  /*                                                                       */
+  /* these constants are deprecated; use the corresponding */
+  /* `FT_Kerning_Mode' values instead                      */
 #define ft_kerning_default   FT_KERNING_DEFAULT
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Const>                                                               */
-  /*    ft_kerning_unfitted                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This constant is deprecated.  Please use @FT_KERNING_UNFITTED      */
-  /*    instead.                                                           */
-  /*                                                                       */
 #define ft_kerning_unfitted  FT_KERNING_UNFITTED
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Const>                                                               */
-  /*    ft_kerning_unscaled                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This constant is deprecated.  Please use @FT_KERNING_UNSCALED      */
-  /*    instead.                                                           */
-  /*                                                                       */
 #define ft_kerning_unscaled  FT_KERNING_UNSCALED
 
 
@@ -3065,9 +3049,8 @@ FT_BEGIN_HEADER
   /*    glyph index~0 always corresponds to the `missing glyph' (called    */
   /*    `.notdef').                                                        */
   /*                                                                       */
-  /*    This function is not compiled within the library if the config     */
-  /*    macro `FT_CONFIG_OPTION_NO_GLYPH_NAMES' is defined in              */
-  /*    `ftoptions.h'.                                                     */
+  /*    This function always returns an error if the config macro          */
+  /*    `FT_CONFIG_OPTION_NO_GLYPH_NAMES' is not defined in `ftoptions.h'. */
   /*                                                                       */
   FT_EXPORT( FT_Error )
   FT_Get_Glyph_Name( FT_Face     face,
@@ -3515,8 +3498,8 @@ FT_BEGIN_HEADER
   /*                                                                       */
   /*      http://www.unicode.org/reports/tr37/                             */
   /*                                                                       */
-  /*    To date (November 2012), the character with the most variants is   */
-  /*    U+9089, having 31 such IVS.                                        */
+  /*    To date (November 2014), the character with the most variants is   */
+  /*    U+9089, having 32 such IVS.                                        */
   /*                                                                       */
   /*    Adobe and MS decided to support IVS with a new cmap subtable       */
   /*    (format~14).  It is an odd subtable because it is not a mapping of */
@@ -3767,12 +3750,6 @@ FT_BEGIN_HEADER
              FT_Long  c );
 
 
-  /* */
-
-  /* The following #if 0 ... #endif is for the documentation formatter, */
-  /* hiding the internal `FT_MULFIX_INLINED' macro.                     */
-
-#if 0
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -3806,17 +3783,6 @@ FT_BEGIN_HEADER
   FT_MulFix( FT_Long  a,
              FT_Long  b );
 
-  /* */
-#endif
-
-#ifdef FT_MULFIX_INLINED
-#define FT_MulFix( a, b )  FT_MULFIX_INLINED( a, b )
-#else
-  FT_EXPORT( FT_Long )
-  FT_MulFix( FT_Long  a,
-             FT_Long  b );
-#endif
-
 
   /*************************************************************************/
   /*                                                                       */
@@ -3829,18 +3795,12 @@ FT_BEGIN_HEADER
   /*    used to divide a given value by a 16.16 fixed-point factor.        */
   /*                                                                       */
   /* <Input>                                                               */
-  /*    a :: The first multiplier.                                         */
-  /*    b :: The second multiplier.  Use a 16.16 factor here whenever      */
-  /*         possible (see note below).                                    */
+  /*    a :: The numerator.                                                */
+  /*    b :: The denominator.  Use a 16.16 factor here.                    */
   /*                                                                       */
   /* <Return>                                                              */
   /*    The result of `(a*0x10000)/b'.                                     */
   /*                                                                       */
-  /* <Note>                                                                */
-  /*    The optimization for FT_DivFix() is simple: If (a~<<~16) fits in   */
-  /*    32~bits, then the division is computed directly.  Otherwise, we    */
-  /*    use a specialized version of @FT_MulDiv.                           */
-  /*                                                                       */
   FT_EXPORT( FT_Long )
   FT_DivFix( FT_Long  a,
              FT_Long  b );
@@ -3940,6 +3900,18 @@ FT_BEGIN_HEADER
   /*    even a new release of FreeType with only documentation changes     */
   /*    increases the version number.                                      */
   /*                                                                       */
+  /* <Order>                                                               */
+  /*    FT_Library_Version                                                 */
+  /*                                                                       */
+  /*    FREETYPE_MAJOR                                                     */
+  /*    FREETYPE_MINOR                                                     */
+  /*    FREETYPE_PATCH                                                     */
+  /*                                                                       */
+  /*    FT_Face_CheckTrueTypePatents                                       */
+  /*    FT_Face_SetUnpatentedHinting                                       */
+  /*                                                                       */
+  /*    FREETYPE_XXX                                                       */
+  /*                                                                       */
   /*************************************************************************/
 
 
@@ -3965,7 +3937,7 @@ FT_BEGIN_HEADER
    */
 #define FREETYPE_MAJOR  2
 #define FREETYPE_MINOR  5
-#define FREETYPE_PATCH  3
+#define FREETYPE_PATCH  5
 
 
   /*************************************************************************/
index 8f7e2fc..955f93f 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    Quick computation of advance widths (specification only).            */
 /*                                                                         */
-/*  Copyright 2008, 2013 by                                                */
+/*  Copyright 2008, 2013, 2014 by                                          */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -48,6 +48,11 @@ FT_BEGIN_HEADER
    * @description:
    *   This section contains functions to quickly extract advance values
    *   without handling glyph outlines, if possible.
+   *
+   * @order:
+   *   FT_Get_Advance
+   *   FT_Get_Advances
+   *
    */
 
 
@@ -171,7 +176,7 @@ FT_BEGIN_HEADER
                    FT_Int32   load_flags,
                    FT_Fixed  *padvances );
 
-/* */
+  /* */
 
 
 FT_END_HEADER
index 936791e..59191ab 100644 (file)
@@ -245,12 +245,12 @@ FT_BEGIN_HEADER
    *   The data exchange structure for the @glyph-to-script-map property.
    *
    */
-   typedef struct  FT_Prop_GlyphToScriptMap_
-   {
-     FT_Face   face;
-     FT_Byte*  map;
+  typedef struct  FT_Prop_GlyphToScriptMap_
+  {
+    FT_Face   face;
+    FT_Byte*  map;
 
-   } FT_Prop_GlyphToScriptMap;
+  } FT_Prop_GlyphToScriptMap;
 
 
   /**************************************************************************
@@ -384,15 +384,15 @@ FT_BEGIN_HEADER
    *   The data exchange structure for the @increase-x-height property.
    *
    */
-   typedef struct  FT_Prop_IncreaseXHeight_
-   {
-     FT_Face  face;
-     FT_UInt  limit;
+  typedef struct  FT_Prop_IncreaseXHeight_
+  {
+    FT_Face  face;
+    FT_UInt  limit;
 
-   } FT_Prop_IncreaseXHeight;
+  } FT_Prop_IncreaseXHeight;
 
+  /* */
 
- /* */
 
 FT_END_HEADER
 
index 8938841..d6800e2 100644 (file)
@@ -85,7 +85,6 @@ FT_BEGIN_HEADER
   FT_Outline_Get_BBox( FT_Outline*  outline,
                        FT_BBox     *abbox );
 
-
   /* */
 
 
index 8b3c411..6d262e4 100644 (file)
@@ -53,7 +53,7 @@ FT_BEGIN_HEADER
   /**********************************************************************
    *
    * @enum:
-   *    FT_PropertyType
+   *    BDF_PropertyType
    *
    * @description:
    *    A list of BDF property types.
@@ -200,7 +200,7 @@ FT_BEGIN_HEADER
                        const char*       prop_name,
                        BDF_PropertyRec  *aproperty );
 
- /* */
 /* */
 
 FT_END_HEADER
 
index 7dbf5ba..eae7169 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    FreeType utility functions for bitmaps (specification).              */
 /*                                                                         */
-/*  Copyright 2004-2006, 2008, 2013 by                                     */
+/*  Copyright 2004-2006, 2008, 2013, 2014 by                               */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -45,7 +45,9 @@ FT_BEGIN_HEADER
   /*    Handling FT_Bitmap objects.                                        */
   /*                                                                       */
   /* <Description>                                                         */
-  /*    This section contains functions for converting FT_Bitmap objects.  */
+  /*    This section contains functions for handling @FT_Bitmap objects.   */
+  /*    Note that none of the functions changes the bitmap's `flow' (as    */
+  /*    indicated by the sign of the `pitch' field in `FT_Bitmap').        */
   /*                                                                       */
   /*************************************************************************/
 
@@ -122,6 +124,9 @@ FT_BEGIN_HEADER
   /*    If you want to embolden the bitmap owned by a @FT_GlyphSlotRec,    */
   /*    you should call @FT_GlyphSlot_Own_Bitmap on the slot first.        */
   /*                                                                       */
+  /*    Bitmaps in @FT_PIXEL_MODE_GRAY2 and @FT_PIXEL_MODE_GRAY@ format    */
+  /*    are converted to @FT_PIXEL_MODE_GRAY format (i.e., 8bpp).          */
+  /*                                                                       */
   FT_EXPORT( FT_Error )
   FT_Bitmap_Embolden( FT_Library  library,
                       FT_Bitmap*  bitmap,
index 1bf81b1..4dce161 100644 (file)
@@ -91,7 +91,7 @@ FT_BEGIN_HEADER
   FT_Stream_OpenBzip2( FT_Stream  stream,
                        FT_Stream  source );
 
- /* */
 /* */
 
 
 FT_END_HEADER
index a5d7100..a30e925 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    FreeType Cache subsystem (specification).                            */
 /*                                                                         */
-/*  Copyright 1996-2008, 2010, 2013 by                                     */
+/*  Copyright 1996-2008, 2010, 2013, 2014 by                               */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -209,10 +209,10 @@ FT_BEGIN_HEADER
   typedef FT_Error
   (*FTC_Face_Requester)( FTC_FaceID  face_id,
                          FT_Library  library,
-                         FT_Pointer  request_data,
+                         FT_Pointer  req_data,
                          FT_Face*    aface );
 
- /* */
 /* */
 
 
   /*************************************************************************/
@@ -1046,8 +1046,8 @@ FT_BEGIN_HEADER
                               FTC_SBit      *sbit,
                               FTC_Node      *anode );
 
+  /* */
 
- /* */
 
 FT_END_HEADER
 
index e4d039d..f7031bc 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    FreeType API for controlling the CFF driver (specification only).    */
 /*                                                                         */
-/*  Copyright 2013 by                                                      */
+/*  Copyright 2013, 2014 by                                                */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -108,6 +108,12 @@ FT_BEGIN_HEADER
    *   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.
+   *
+   * @order:
+   *   hinting-engine
+   *   no-stem-darkening
+   *   darkening-parameters
+   *
    */
 
 
@@ -212,9 +218,11 @@ FT_BEGIN_HEADER
    *     stem width >= 2.333px: darkening amount = 0px
    *   }
    *
-   *   and piecewise linear in-between.  Using the `darkening-parameters'
-   *   property, these four control points can be changed, as the following
-   *   example demonstrates.
+   *   and piecewise linear in-between.  At configuration time, these four
+   *   control points can be set with the macro
+   *   `CFF_CONFIG_OPTION_DARKENING_PARAMETERS'.  At runtime, the control
+   *   points can be changed using the `darkening-parameters' property, as
+   *   the following example demonstrates.
    *
    *   {
    *     FT_Library  library;
@@ -242,8 +250,8 @@ FT_BEGIN_HEADER
    *
    */
 
+  /* */
 
- /* */
 
 FT_END_HEADER
 
index 203a30c..17550d8 100644 (file)
@@ -156,7 +156,8 @@ FT_BEGIN_HEADER
                                FT_UInt   glyph_index,
                                FT_UInt  *cid );
 
- /* */
+  /* */
+
 
 FT_END_HEADER
 
index 76c7b9e..99b2fad 100644 (file)
 
   /* generic errors */
 
-  FT_NOERRORDEF_( Ok,                                        0x00, \
+  FT_NOERRORDEF_( Ok,                                        0x00,
                   "no error" )
 
-  FT_ERRORDEF_( Cannot_Open_Resource,                        0x01, \
+  FT_ERRORDEF_( Cannot_Open_Resource,                        0x01,
                 "cannot open resource" )
-  FT_ERRORDEF_( Unknown_File_Format,                         0x02, \
+  FT_ERRORDEF_( Unknown_File_Format,                         0x02,
                 "unknown file format" )
-  FT_ERRORDEF_( Invalid_File_Format,                         0x03, \
+  FT_ERRORDEF_( Invalid_File_Format,                         0x03,
                 "broken file" )
-  FT_ERRORDEF_( Invalid_Version,                             0x04, \
+  FT_ERRORDEF_( Invalid_Version,                             0x04,
                 "invalid FreeType version" )
-  FT_ERRORDEF_( Lower_Module_Version,                        0x05, \
+  FT_ERRORDEF_( Lower_Module_Version,                        0x05,
                 "module version is too low" )
-  FT_ERRORDEF_( Invalid_Argument,                            0x06, \
+  FT_ERRORDEF_( Invalid_Argument,                            0x06,
                 "invalid argument" )
-  FT_ERRORDEF_( Unimplemented_Feature,                       0x07, \
+  FT_ERRORDEF_( Unimplemented_Feature,                       0x07,
                 "unimplemented feature" )
-  FT_ERRORDEF_( Invalid_Table,                               0x08, \
+  FT_ERRORDEF_( Invalid_Table,                               0x08,
                 "broken table" )
-  FT_ERRORDEF_( Invalid_Offset,                              0x09, \
+  FT_ERRORDEF_( Invalid_Offset,                              0x09,
                 "broken offset within table" )
-  FT_ERRORDEF_( Array_Too_Large,                             0x0A, \
+  FT_ERRORDEF_( Array_Too_Large,                             0x0A,
                 "array allocation size too large" )
-  FT_ERRORDEF_( Missing_Module,                              0x0B, \
+  FT_ERRORDEF_( Missing_Module,                              0x0B,
                 "missing module" )
-  FT_ERRORDEF_( Missing_Property,                            0x0C, \
+  FT_ERRORDEF_( Missing_Property,                            0x0C,
                 "missing property" )
 
   /* glyph/character errors */
 
-  FT_ERRORDEF_( Invalid_Glyph_Index,                         0x10, \
+  FT_ERRORDEF_( Invalid_Glyph_Index,                         0x10,
                 "invalid glyph index" )
-  FT_ERRORDEF_( Invalid_Character_Code,                      0x11, \
+  FT_ERRORDEF_( Invalid_Character_Code,                      0x11,
                 "invalid character code" )
-  FT_ERRORDEF_( Invalid_Glyph_Format,                        0x12, \
+  FT_ERRORDEF_( Invalid_Glyph_Format,                        0x12,
                 "unsupported glyph image format" )
-  FT_ERRORDEF_( Cannot_Render_Glyph,                         0x13, \
+  FT_ERRORDEF_( Cannot_Render_Glyph,                         0x13,
                 "cannot render this glyph format" )
-  FT_ERRORDEF_( Invalid_Outline,                             0x14, \
+  FT_ERRORDEF_( Invalid_Outline,                             0x14,
                 "invalid outline" )
-  FT_ERRORDEF_( Invalid_Composite,                           0x15, \
+  FT_ERRORDEF_( Invalid_Composite,                           0x15,
                 "invalid composite glyph" )
-  FT_ERRORDEF_( Too_Many_Hints,                              0x16, \
+  FT_ERRORDEF_( Too_Many_Hints,                              0x16,
                 "too many hints" )
-  FT_ERRORDEF_( Invalid_Pixel_Size,                          0x17, \
+  FT_ERRORDEF_( Invalid_Pixel_Size,                          0x17,
                 "invalid pixel size" )
 
   /* handle errors */
 
-  FT_ERRORDEF_( Invalid_Handle,                              0x20, \
+  FT_ERRORDEF_( Invalid_Handle,                              0x20,
                 "invalid object handle" )
-  FT_ERRORDEF_( Invalid_Library_Handle,                      0x21, \
+  FT_ERRORDEF_( Invalid_Library_Handle,                      0x21,
                 "invalid library handle" )
-  FT_ERRORDEF_( Invalid_Driver_Handle,                       0x22, \
+  FT_ERRORDEF_( Invalid_Driver_Handle,                       0x22,
                 "invalid module handle" )
-  FT_ERRORDEF_( Invalid_Face_Handle,                         0x23, \
+  FT_ERRORDEF_( Invalid_Face_Handle,                         0x23,
                 "invalid face handle" )
-  FT_ERRORDEF_( Invalid_Size_Handle,                         0x24, \
+  FT_ERRORDEF_( Invalid_Size_Handle,                         0x24,
                 "invalid size handle" )
-  FT_ERRORDEF_( Invalid_Slot_Handle,                         0x25, \
+  FT_ERRORDEF_( Invalid_Slot_Handle,                         0x25,
                 "invalid glyph slot handle" )
-  FT_ERRORDEF_( Invalid_CharMap_Handle,                      0x26, \
+  FT_ERRORDEF_( Invalid_CharMap_Handle,                      0x26,
                 "invalid charmap handle" )
-  FT_ERRORDEF_( Invalid_Cache_Handle,                        0x27, \
+  FT_ERRORDEF_( Invalid_Cache_Handle,                        0x27,
                 "invalid cache manager handle" )
-  FT_ERRORDEF_( Invalid_Stream_Handle,                       0x28, \
+  FT_ERRORDEF_( Invalid_Stream_Handle,                       0x28,
                 "invalid stream handle" )
 
   /* driver errors */
 
-  FT_ERRORDEF_( Too_Many_Drivers,                            0x30, \
+  FT_ERRORDEF_( Too_Many_Drivers,                            0x30,
                 "too many modules" )
-  FT_ERRORDEF_( Too_Many_Extensions,                         0x31, \
+  FT_ERRORDEF_( Too_Many_Extensions,                         0x31,
                 "too many extensions" )
 
   /* memory errors */
 
-  FT_ERRORDEF_( Out_Of_Memory,                               0x40, \
+  FT_ERRORDEF_( Out_Of_Memory,                               0x40,
                 "out of memory" )
-  FT_ERRORDEF_( Unlisted_Object,                             0x41, \
+  FT_ERRORDEF_( Unlisted_Object,                             0x41,
                 "unlisted object" )
 
   /* stream errors */
 
-  FT_ERRORDEF_( Cannot_Open_Stream,                          0x51, \
+  FT_ERRORDEF_( Cannot_Open_Stream,                          0x51,
                 "cannot open stream" )
-  FT_ERRORDEF_( Invalid_Stream_Seek,                         0x52, \
+  FT_ERRORDEF_( Invalid_Stream_Seek,                         0x52,
                 "invalid stream seek" )
-  FT_ERRORDEF_( Invalid_Stream_Skip,                         0x53, \
+  FT_ERRORDEF_( Invalid_Stream_Skip,                         0x53,
                 "invalid stream skip" )
-  FT_ERRORDEF_( Invalid_Stream_Read,                         0x54, \
+  FT_ERRORDEF_( Invalid_Stream_Read,                         0x54,
                 "invalid stream read" )
-  FT_ERRORDEF_( Invalid_Stream_Operation,                    0x55, \
+  FT_ERRORDEF_( Invalid_Stream_Operation,                    0x55,
                 "invalid stream operation" )
-  FT_ERRORDEF_( Invalid_Frame_Operation,                     0x56, \
+  FT_ERRORDEF_( Invalid_Frame_Operation,                     0x56,
                 "invalid frame operation" )
-  FT_ERRORDEF_( Nested_Frame_Access,                         0x57, \
+  FT_ERRORDEF_( Nested_Frame_Access,                         0x57,
                 "nested frame access" )
-  FT_ERRORDEF_( Invalid_Frame_Read,                          0x58, \
+  FT_ERRORDEF_( Invalid_Frame_Read,                          0x58,
                 "invalid frame read" )
 
   /* raster errors */
 
-  FT_ERRORDEF_( Raster_Uninitialized,                        0x60, \
+  FT_ERRORDEF_( Raster_Uninitialized,                        0x60,
                 "raster uninitialized" )
-  FT_ERRORDEF_( Raster_Corrupted,                            0x61, \
+  FT_ERRORDEF_( Raster_Corrupted,                            0x61,
                 "raster corrupted" )
-  FT_ERRORDEF_( Raster_Overflow,                             0x62, \
+  FT_ERRORDEF_( Raster_Overflow,                             0x62,
                 "raster overflow" )
-  FT_ERRORDEF_( Raster_Negative_Height,                      0x63, \
+  FT_ERRORDEF_( Raster_Negative_Height,                      0x63,
                 "negative height while rastering" )
 
   /* cache errors */
 
-  FT_ERRORDEF_( Too_Many_Caches,                             0x70, \
+  FT_ERRORDEF_( Too_Many_Caches,                             0x70,
                 "too many registered caches" )
 
   /* TrueType and SFNT errors */
 
-  FT_ERRORDEF_( Invalid_Opcode,                              0x80, \
+  FT_ERRORDEF_( Invalid_Opcode,                              0x80,
                 "invalid opcode" )
-  FT_ERRORDEF_( Too_Few_Arguments,                           0x81, \
+  FT_ERRORDEF_( Too_Few_Arguments,                           0x81,
                 "too few arguments" )
-  FT_ERRORDEF_( Stack_Overflow,                              0x82, \
+  FT_ERRORDEF_( Stack_Overflow,                              0x82,
                 "stack overflow" )
-  FT_ERRORDEF_( Code_Overflow,                               0x83, \
+  FT_ERRORDEF_( Code_Overflow,                               0x83,
                 "code overflow" )
-  FT_ERRORDEF_( Bad_Argument,                                0x84, \
+  FT_ERRORDEF_( Bad_Argument,                                0x84,
                 "bad argument" )
-  FT_ERRORDEF_( Divide_By_Zero,                              0x85, \
+  FT_ERRORDEF_( Divide_By_Zero,                              0x85,
                 "division by zero" )
-  FT_ERRORDEF_( Invalid_Reference,                           0x86, \
+  FT_ERRORDEF_( Invalid_Reference,                           0x86,
                 "invalid reference" )
-  FT_ERRORDEF_( Debug_OpCode,                                0x87, \
+  FT_ERRORDEF_( Debug_OpCode,                                0x87,
                 "found debug opcode" )
-  FT_ERRORDEF_( ENDF_In_Exec_Stream,                         0x88, \
+  FT_ERRORDEF_( ENDF_In_Exec_Stream,                         0x88,
                 "found ENDF opcode in execution stream" )
-  FT_ERRORDEF_( Nested_DEFS,                                 0x89, \
+  FT_ERRORDEF_( Nested_DEFS,                                 0x89,
                 "nested DEFS" )
-  FT_ERRORDEF_( Invalid_CodeRange,                           0x8A, \
+  FT_ERRORDEF_( Invalid_CodeRange,                           0x8A,
                 "invalid code range" )
-  FT_ERRORDEF_( Execution_Too_Long,                          0x8B, \
+  FT_ERRORDEF_( Execution_Too_Long,                          0x8B,
                 "execution context too long" )
-  FT_ERRORDEF_( Too_Many_Function_Defs,                      0x8C, \
+  FT_ERRORDEF_( Too_Many_Function_Defs,                      0x8C,
                 "too many function definitions" )
-  FT_ERRORDEF_( Too_Many_Instruction_Defs,                   0x8D, \
+  FT_ERRORDEF_( Too_Many_Instruction_Defs,                   0x8D,
                 "too many instruction definitions" )
-  FT_ERRORDEF_( Table_Missing,                               0x8E, \
+  FT_ERRORDEF_( Table_Missing,                               0x8E,
                 "SFNT font table missing" )
-  FT_ERRORDEF_( Horiz_Header_Missing,                        0x8F, \
+  FT_ERRORDEF_( Horiz_Header_Missing,                        0x8F,
                 "horizontal header (hhea) table missing" )
-  FT_ERRORDEF_( Locations_Missing,                           0x90, \
+  FT_ERRORDEF_( Locations_Missing,                           0x90,
                 "locations (loca) table missing" )
-  FT_ERRORDEF_( Name_Table_Missing,                          0x91, \
+  FT_ERRORDEF_( Name_Table_Missing,                          0x91,
                 "name table missing" )
-  FT_ERRORDEF_( CMap_Table_Missing,                          0x92, \
+  FT_ERRORDEF_( CMap_Table_Missing,                          0x92,
                 "character map (cmap) table missing" )
-  FT_ERRORDEF_( Hmtx_Table_Missing,                          0x93, \
+  FT_ERRORDEF_( Hmtx_Table_Missing,                          0x93,
                 "horizontal metrics (hmtx) table missing" )
-  FT_ERRORDEF_( Post_Table_Missing,                          0x94, \
+  FT_ERRORDEF_( Post_Table_Missing,                          0x94,
                 "PostScript (post) table missing" )
-  FT_ERRORDEF_( Invalid_Horiz_Metrics,                       0x95, \
+  FT_ERRORDEF_( Invalid_Horiz_Metrics,                       0x95,
                 "invalid horizontal metrics" )
-  FT_ERRORDEF_( Invalid_CharMap_Format,                      0x96, \
+  FT_ERRORDEF_( Invalid_CharMap_Format,                      0x96,
                 "invalid character map (cmap) format" )
-  FT_ERRORDEF_( Invalid_PPem,                                0x97, \
+  FT_ERRORDEF_( Invalid_PPem,                                0x97,
                 "invalid ppem value" )
-  FT_ERRORDEF_( Invalid_Vert_Metrics,                        0x98, \
+  FT_ERRORDEF_( Invalid_Vert_Metrics,                        0x98,
                 "invalid vertical metrics" )
-  FT_ERRORDEF_( Could_Not_Find_Context,                      0x99, \
+  FT_ERRORDEF_( Could_Not_Find_Context,                      0x99,
                 "could not find context" )
-  FT_ERRORDEF_( Invalid_Post_Table_Format,                   0x9A, \
+  FT_ERRORDEF_( Invalid_Post_Table_Format,                   0x9A,
                 "invalid PostScript (post) table format" )
-  FT_ERRORDEF_( Invalid_Post_Table,                          0x9B, \
+  FT_ERRORDEF_( Invalid_Post_Table,                          0x9B,
                 "invalid PostScript (post) table" )
 
   /* CFF, CID, and Type 1 errors */
 
-  FT_ERRORDEF_( Syntax_Error,                                0xA0, \
+  FT_ERRORDEF_( Syntax_Error,                                0xA0,
                 "opcode syntax error" )
-  FT_ERRORDEF_( Stack_Underflow,                             0xA1, \
+  FT_ERRORDEF_( Stack_Underflow,                             0xA1,
                 "argument stack underflow" )
-  FT_ERRORDEF_( Ignore,                                      0xA2, \
+  FT_ERRORDEF_( Ignore,                                      0xA2,
                 "ignore" )
-  FT_ERRORDEF_( No_Unicode_Glyph_Name,                       0xA3, \
+  FT_ERRORDEF_( No_Unicode_Glyph_Name,                       0xA3,
                 "no Unicode glyph name found" )
-  FT_ERRORDEF_( Glyph_Too_Big,                               0xA4, \
+  FT_ERRORDEF_( Glyph_Too_Big,                               0xA4,
                 "glyph to big for hinting" )
 
   /* BDF errors */
 
-  FT_ERRORDEF_( Missing_Startfont_Field,                     0xB0, \
+  FT_ERRORDEF_( Missing_Startfont_Field,                     0xB0,
                 "`STARTFONT' field missing" )
-  FT_ERRORDEF_( Missing_Font_Field,                          0xB1, \
+  FT_ERRORDEF_( Missing_Font_Field,                          0xB1,
                 "`FONT' field missing" )
-  FT_ERRORDEF_( Missing_Size_Field,                          0xB2, \
+  FT_ERRORDEF_( Missing_Size_Field,                          0xB2,
                 "`SIZE' field missing" )
-  FT_ERRORDEF_( Missing_Fontboundingbox_Field,               0xB3, \
+  FT_ERRORDEF_( Missing_Fontboundingbox_Field,               0xB3,
                 "`FONTBOUNDINGBOX' field missing" )
-  FT_ERRORDEF_( Missing_Chars_Field,                         0xB4, \
+  FT_ERRORDEF_( Missing_Chars_Field,                         0xB4,
                 "`CHARS' field missing" )
-  FT_ERRORDEF_( Missing_Startchar_Field,                     0xB5, \
+  FT_ERRORDEF_( Missing_Startchar_Field,                     0xB5,
                 "`STARTCHAR' field missing" )
-  FT_ERRORDEF_( Missing_Encoding_Field,                      0xB6, \
+  FT_ERRORDEF_( Missing_Encoding_Field,                      0xB6,
                 "`ENCODING' field missing" )
-  FT_ERRORDEF_( Missing_Bbx_Field,                           0xB7, \
+  FT_ERRORDEF_( Missing_Bbx_Field,                           0xB7,
                 "`BBX' field missing" )
-  FT_ERRORDEF_( Bbx_Too_Big,                                 0xB8, \
+  FT_ERRORDEF_( Bbx_Too_Big,                                 0xB8,
                 "`BBX' too big" )
-  FT_ERRORDEF_( Corrupted_Font_Header,                       0xB9, \
+  FT_ERRORDEF_( Corrupted_Font_Header,                       0xB9,
                 "Font header corrupted or missing fields" )
-  FT_ERRORDEF_( Corrupted_Font_Glyphs,                       0xBA, \
+  FT_ERRORDEF_( Corrupted_Font_Glyphs,                       0xBA,
                 "Font glyphs corrupted or missing fields" )
 
 
index 453d4fa..3f3d765 100644 (file)
   FT_Get_Gasp( FT_Face  face,
                FT_UInt  ppem );
 
-/* */
+  /* */
+
 
 #endif /* _FT_GASP_H_ */
 
index 2d30ed9..15fa6a9 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    FreeType convenience functions to handle glyphs (specification).     */
 /*                                                                         */
-/*  Copyright 1996-2003, 2006, 2008, 2009, 2011, 2013 by                   */
+/*  Copyright 1996-2003, 2006, 2008, 2009, 2011, 2013, 2014 by             */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -325,22 +325,8 @@ FT_BEGIN_HEADER
   } FT_Glyph_BBox_Mode;
 
 
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    ft_glyph_bbox_xxx                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    These constants are deprecated.  Use the corresponding             */
-  /*    @FT_Glyph_BBox_Mode values instead.                                */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*   ft_glyph_bbox_unscaled  :: See @FT_GLYPH_BBOX_UNSCALED.             */
-  /*   ft_glyph_bbox_subpixels :: See @FT_GLYPH_BBOX_SUBPIXELS.            */
-  /*   ft_glyph_bbox_gridfit   :: See @FT_GLYPH_BBOX_GRIDFIT.              */
-  /*   ft_glyph_bbox_truncate  :: See @FT_GLYPH_BBOX_TRUNCATE.             */
-  /*   ft_glyph_bbox_pixels    :: See @FT_GLYPH_BBOX_PIXELS.               */
-  /*                                                                       */
+  /* these constants are deprecated; use the corresponding */
+  /* `FT_Glyph_BBox_Mode' values instead                   */
 #define ft_glyph_bbox_unscaled   FT_GLYPH_BBOX_UNSCALED
 #define ft_glyph_bbox_subpixels  FT_GLYPH_BBOX_SUBPIXELS
 #define ft_glyph_bbox_gridfit    FT_GLYPH_BBOX_GRIDFIT
@@ -603,7 +589,6 @@ FT_BEGIN_HEADER
   FT_EXPORT( FT_Error )
   FT_Matrix_Invert( FT_Matrix*  matrix );
 
-
   /* */
 
 
index 6d38e32..88c3d93 100644 (file)
@@ -57,9 +57,19 @@ FT_BEGIN_HEADER
   /*    some TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd,  */
   /*    trak, prop, lcar).                                                 */
   /*                                                                       */
+  /* <Order>                                                               */
+  /*    FT_TrueTypeGX_Validate                                             */
+  /*    FT_TrueTypeGX_Free                                                 */
+  /*                                                                       */
+  /*    FT_ClassicKern_Validate                                            */
+  /*    FT_ClassicKern_Free                                                */
+  /*                                                                       */
+  /*    FT_VALIDATE_GX_LENGTH                                              */
+  /*    FT_VALIDATE_GXXXX                                                  */
+  /*    FT_VALIDATE_CKERNXXX                                               */
+  /*                                                                       */
   /*************************************************************************/
 
-
   /*************************************************************************/
   /*                                                                       */
   /*                                                                       */
@@ -171,8 +181,6 @@ FT_BEGIN_HEADER
                           FT_VALIDATE_lcar )
 
 
-  /* */
-
  /**********************************************************************
   *
   * @function:
@@ -221,8 +229,6 @@ FT_BEGIN_HEADER
                           FT_UInt   table_length );
 
 
-  /* */
-
  /**********************************************************************
   *
   * @function:
@@ -248,8 +254,6 @@ FT_BEGIN_HEADER
                       FT_Bytes  table );
 
 
-  /* */
-
  /**********************************************************************
   *
   * @enum:
@@ -277,8 +281,6 @@ FT_BEGIN_HEADER
 #define FT_VALIDATE_CKERN  ( FT_VALIDATE_MS | FT_VALIDATE_APPLE )
 
 
-  /* */
-
  /**********************************************************************
   *
   * @function:
@@ -320,8 +322,6 @@ FT_BEGIN_HEADER
                            FT_Bytes  *ckern_table );
 
 
-  /* */
-
  /**********************************************************************
   *
   * @function:
@@ -346,8 +346,7 @@ FT_BEGIN_HEADER
   FT_ClassicKern_Free( FT_Face   face,
                        FT_Bytes  table );
 
-
- /* */
+  /* */
 
 
 FT_END_HEADER
index 78e7269..eb346c6 100644 (file)
@@ -137,8 +137,7 @@ FT_BEGIN_HEADER
                       const FT_Byte*  input,
                       FT_ULong        input_len );
 
-
- /* */
+  /* */
 
 
 FT_END_HEADER
index ea71a78..2f7ca2a 100644 (file)
@@ -5,7 +5,7 @@
 /*    FreeType glyph image formats and default raster interface            */
 /*    (specification).                                                     */
 /*                                                                         */
-/*  Copyright 1996-2010, 2013 by                                           */
+/*  Copyright 1996-2010, 2013, 2014 by                                     */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -193,67 +193,14 @@ FT_BEGIN_HEADER
   } FT_Pixel_Mode;
 
 
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    ft_pixel_mode_xxx                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A list of deprecated constants.  Use the corresponding             */
-  /*    @FT_Pixel_Mode values instead.                                     */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*    ft_pixel_mode_none  :: See @FT_PIXEL_MODE_NONE.                    */
-  /*    ft_pixel_mode_mono  :: See @FT_PIXEL_MODE_MONO.                    */
-  /*    ft_pixel_mode_grays :: See @FT_PIXEL_MODE_GRAY.                    */
-  /*    ft_pixel_mode_pal2  :: See @FT_PIXEL_MODE_GRAY2.                   */
-  /*    ft_pixel_mode_pal4  :: See @FT_PIXEL_MODE_GRAY4.                   */
-  /*                                                                       */
+  /* these constants are deprecated; use the corresponding `FT_Pixel_Mode' */
+  /* values instead.                                                       */
 #define ft_pixel_mode_none   FT_PIXEL_MODE_NONE
 #define ft_pixel_mode_mono   FT_PIXEL_MODE_MONO
 #define ft_pixel_mode_grays  FT_PIXEL_MODE_GRAY
 #define ft_pixel_mode_pal2   FT_PIXEL_MODE_GRAY2
 #define ft_pixel_mode_pal4   FT_PIXEL_MODE_GRAY4
 
- /* */
-
-#if 0
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    FT_Palette_Mode                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    THIS TYPE IS DEPRECATED.  DO NOT USE IT!                           */
-  /*                                                                       */
-  /*    An enumeration type to describe the format of a bitmap palette,    */
-  /*    used with ft_pixel_mode_pal4 and ft_pixel_mode_pal8.               */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*    ft_palette_mode_rgb  :: The palette is an array of 3-byte RGB      */
-  /*                            records.                                   */
-  /*                                                                       */
-  /*    ft_palette_mode_rgba :: The palette is an array of 4-byte RGBA     */
-  /*                            records.                                   */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    As ft_pixel_mode_pal2, pal4 and pal8 are currently unused by       */
-  /*    FreeType, these types are not handled by the library itself.       */
-  /*                                                                       */
-  typedef enum  FT_Palette_Mode_
-  {
-    ft_palette_mode_rgb = 0,
-    ft_palette_mode_rgba,
-
-    ft_palette_mode_max   /* do not remove */
-
-  } FT_Palette_Mode;
-
-  /* */
-
-#endif
-
 
   /*************************************************************************/
   /*                                                                       */
@@ -318,13 +265,13 @@ FT_BEGIN_HEADER
   /*                                                                       */
   typedef struct  FT_Bitmap_
   {
-    int             rows;
-    int             width;
+    unsigned int    rows;
+    unsigned int    width;
     int             pitch;
     unsigned char*  buffer;
-    short           num_grays;
-    char            pixel_mode;
-    char            palette_mode;
+    unsigned short  num_grays;
+    unsigned char   pixel_mode;
+    unsigned char   palette_mode;
     void*           palette;
 
   } FT_Bitmap;
@@ -381,7 +328,7 @@ FT_BEGIN_HEADER
   /*                                                                       */
   /*    flags      :: A set of bit flags used to characterize the outline  */
   /*                  and give hints to the scan-converter and hinter on   */
-  /*                  how to convert/grid-fit it.  See @FT_OUTLINE_FLAGS.  */
+  /*                  how to convert/grid-fit it.  See @FT_OUTLINE_XXX.    */
   /*                                                                       */
   /* <Note>                                                                */
   /*    The B/W rasterizer only checks bit~2 in the `tags' array for the   */
@@ -402,6 +349,8 @@ FT_BEGIN_HEADER
 
   } FT_Outline;
 
+  /* */
+
   /* Following limits must be consistent with */
   /* FT_Outline.{n_contours,n_points}         */
 #define FT_OUTLINE_CONTOURS_MAX  SHRT_MAX
@@ -411,7 +360,7 @@ FT_BEGIN_HEADER
   /*************************************************************************/
   /*                                                                       */
   /* <Enum>                                                                */
-  /*    FT_OUTLINE_FLAGS                                                   */
+  /*    FT_OUTLINE_XXX                                                     */
   /*                                                                       */
   /* <Description>                                                         */
   /*    A list of bit-field constants use for the flags in an outline's    */
@@ -492,24 +441,8 @@ FT_BEGIN_HEADER
 #define FT_OUTLINE_SINGLE_PASS      0x200
 
 
- /*************************************************************************
-  *
-  * @enum:
-  *   ft_outline_flags
-  *
-  * @description:
-  *   These constants are deprecated.  Please use the corresponding
-  *   @FT_OUTLINE_FLAGS values.
-  *
-  * @values:
-  *   ft_outline_none            :: See @FT_OUTLINE_NONE.
-  *   ft_outline_owner           :: See @FT_OUTLINE_OWNER.
-  *   ft_outline_even_odd_fill   :: See @FT_OUTLINE_EVEN_ODD_FILL.
-  *   ft_outline_reverse_fill    :: See @FT_OUTLINE_REVERSE_FILL.
-  *   ft_outline_ignore_dropouts :: See @FT_OUTLINE_IGNORE_DROPOUTS.
-  *   ft_outline_high_precision  :: See @FT_OUTLINE_HIGH_PRECISION.
-  *   ft_outline_single_pass     :: See @FT_OUTLINE_SINGLE_PASS.
-  */
+  /* these constants are deprecated; use the corresponding */
+  /* `FT_OUTLINE_XXX' values instead                       */
 #define ft_outline_none             FT_OUTLINE_NONE
 #define ft_outline_owner            FT_OUTLINE_OWNER
 #define ft_outline_even_odd_fill    FT_OUTLINE_EVEN_ODD_FILL
@@ -796,22 +729,8 @@ FT_BEGIN_HEADER
   } FT_Glyph_Format;
 
 
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    ft_glyph_format_xxx                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A list of deprecated constants.  Use the corresponding             */
-  /*    @FT_Glyph_Format values instead.                                   */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*    ft_glyph_format_none      :: See @FT_GLYPH_FORMAT_NONE.            */
-  /*    ft_glyph_format_composite :: See @FT_GLYPH_FORMAT_COMPOSITE.       */
-  /*    ft_glyph_format_bitmap    :: See @FT_GLYPH_FORMAT_BITMAP.          */
-  /*    ft_glyph_format_outline   :: See @FT_GLYPH_FORMAT_OUTLINE.         */
-  /*    ft_glyph_format_plotter   :: See @FT_GLYPH_FORMAT_PLOTTER.         */
-  /*                                                                       */
+  /* these constants are deprecated; use the corresponding */
+  /* `FT_Glyph_Format' values instead.                     */
 #define ft_glyph_format_none       FT_GLYPH_FORMAT_NONE
 #define ft_glyph_format_composite  FT_GLYPH_FORMAT_COMPOSITE
 #define ft_glyph_format_bitmap     FT_GLYPH_FORMAT_BITMAP
@@ -856,6 +775,21 @@ FT_BEGIN_HEADER
   /* <Description>                                                         */
   /*    This section contains technical definitions.                       */
   /*                                                                       */
+  /* <Order>                                                               */
+  /*    FT_Raster                                                          */
+  /*    FT_Span                                                            */
+  /*    FT_SpanFunc                                                        */
+  /*                                                                       */
+  /*    FT_Raster_Params                                                   */
+  /*    FT_RASTER_FLAG_XXX                                                 */
+  /*                                                                       */
+  /*    FT_Raster_NewFunc                                                  */
+  /*    FT_Raster_DoneFunc                                                 */
+  /*    FT_Raster_ResetFunc                                                */
+  /*    FT_Raster_SetModeFunc                                              */
+  /*    FT_Raster_RenderFunc                                               */
+  /*    FT_Raster_Funcs                                                    */
+  /*                                                                       */
   /*************************************************************************/
 
 
@@ -865,8 +799,8 @@ FT_BEGIN_HEADER
   /*    FT_Raster                                                          */
   /*                                                                       */
   /* <Description>                                                         */
-  /*    A handle (pointer) to a raster object.  Each object can be used    */
-  /*    independently to convert an outline into a bitmap or pixmap.       */
+  /*    An opaque handle (pointer) to a raster object.  Each object can be */
+  /*    used independently to convert an outline into a bitmap or pixmap.  */
   /*                                                                       */
   typedef struct FT_RasterRec_*  FT_Raster;
 
@@ -877,8 +811,8 @@ FT_BEGIN_HEADER
   /*    FT_Span                                                            */
   /*                                                                       */
   /* <Description>                                                         */
-  /*    A structure used to model a single span of gray (or black) pixels  */
-  /*    when rendering a monochrome or anti-aliased bitmap.                */
+  /*    A structure used to model a single span of gray pixels when        */
+  /*    rendering an anti-aliased bitmap.                                  */
   /*                                                                       */
   /* <Fields>                                                              */
   /*    x        :: The span's horizontal start position.                  */
@@ -886,8 +820,7 @@ FT_BEGIN_HEADER
   /*    len      :: The span's length in pixels.                           */
   /*                                                                       */
   /*    coverage :: The span color/coverage, ranging from 0 (background)   */
-  /*                to 255 (foreground).  Only used for anti-aliased       */
-  /*                rendering.                                             */
+  /*                to 255 (foreground).                                   */
   /*                                                                       */
   /* <Note>                                                                */
   /*    This structure is used by the span drawing callback type named     */
@@ -957,22 +890,7 @@ FT_BEGIN_HEADER
   /*    FT_Raster_BitTest_Func                                             */
   /*                                                                       */
   /* <Description>                                                         */
-  /*    THIS TYPE IS DEPRECATED.  DO NOT USE IT.                           */
-  /*                                                                       */
-  /*    A function used as a call-back by the monochrome scan-converter    */
-  /*    to test whether a given target pixel is already set to the drawing */
-  /*    `color'.  These tests are crucial to implement drop-out control    */
-  /*    per-se the TrueType spec.                                          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    y     :: The pixel's y~coordinate.                                 */
-  /*                                                                       */
-  /*    x     :: The pixel's x~coordinate.                                 */
-  /*                                                                       */
-  /*    user  :: User-supplied data that is passed to the callback.        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*   1~if the pixel is `set', 0~otherwise.                               */
+  /*    Deprecated, unimplemented.                                         */
   /*                                                                       */
   typedef int
   (*FT_Raster_BitTest_Func)( int    y,
@@ -986,21 +904,7 @@ FT_BEGIN_HEADER
   /*    FT_Raster_BitSet_Func                                              */
   /*                                                                       */
   /* <Description>                                                         */
-  /*    THIS TYPE IS DEPRECATED.  DO NOT USE IT.                           */
-  /*                                                                       */
-  /*    A function used as a call-back by the monochrome scan-converter    */
-  /*    to set an individual target pixel.  This is crucial to implement   */
-  /*    drop-out control according to the TrueType specification.          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    y     :: The pixel's y~coordinate.                                 */
-  /*                                                                       */
-  /*    x     :: The pixel's x~coordinate.                                 */
-  /*                                                                       */
-  /*    user  :: User-supplied data that is passed to the callback.        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    1~if the pixel is `set', 0~otherwise.                              */
+  /*    Deprecated, unimplemented.                                         */
   /*                                                                       */
   typedef void
   (*FT_Raster_BitSet_Func)( int    y,
@@ -1034,8 +938,8 @@ FT_BEGIN_HEADER
   /*                              pixmap's buffer _must_ be zeroed before  */
   /*                              rendering.                               */
   /*                                                                       */
-  /*                              Note that for now, direct rendering is   */
-  /*                              only possible with anti-aliased glyphs.  */
+  /*                              Direct rendering is only possible with   */
+  /*                              anti-aliased glyphs.                     */
   /*                                                                       */
   /*    FT_RASTER_FLAG_CLIP    :: This flag is only used in direct         */
   /*                              rendering mode.  If set, the output will */
@@ -1053,7 +957,8 @@ FT_BEGIN_HEADER
 #define FT_RASTER_FLAG_DIRECT   0x2
 #define FT_RASTER_FLAG_CLIP     0x4
 
-  /* deprecated */
+  /* these constants are deprecated; use the corresponding */
+  /* `FT_RASTER_FLAG_XXX' values instead                   */
 #define ft_raster_flag_default  FT_RASTER_FLAG_DEFAULT
 #define ft_raster_flag_aa       FT_RASTER_FLAG_AA
 #define ft_raster_flag_direct   FT_RASTER_FLAG_DIRECT
@@ -1079,11 +984,11 @@ FT_BEGIN_HEADER
   /*                                                                       */
   /*    gray_spans  :: The gray span drawing callback.                     */
   /*                                                                       */
-  /*    black_spans :: The black span drawing callback.  UNIMPLEMENTED!    */
+  /*    black_spans :: Unused.                                             */
   /*                                                                       */
-  /*    bit_test    :: The bit test callback.  UNIMPLEMENTED!              */
+  /*    bit_test    :: Unused.                                             */
   /*                                                                       */
-  /*    bit_set     :: The bit set callback.  UNIMPLEMENTED!               */
+  /*    bit_set     :: Unused.                                             */
   /*                                                                       */
   /*    user        :: User-supplied data that is passed to each drawing   */
   /*                   callback.                                           */
@@ -1100,15 +1005,9 @@ FT_BEGIN_HEADER
   /*                                                                       */
   /*    If the @FT_RASTER_FLAG_DIRECT bit flag is set in `flags', the      */
   /*    raster will call the `gray_spans' callback to draw gray pixel      */
-  /*    spans, in the case of an aa glyph bitmap, it will call             */
-  /*    `black_spans', and `bit_test' and `bit_set' in the case of a       */
-  /*    monochrome bitmap.  This allows direct composition over a          */
-  /*    pre-existing bitmap through user-provided callbacks to perform the */
-  /*    span drawing/composition.                                          */
-  /*                                                                       */
-  /*    Note that the `bit_test' and `bit_set' callbacks are required when */
-  /*    rendering a monochrome bitmap, as they are crucial to implement    */
-  /*    correct drop-out control as defined in the TrueType specification. */
+  /*    spans.  This allows direct composition over a pre-existing bitmap  */
+  /*    through user-provided callbacks to perform the span drawing and    */
+  /*    composition.    Not supported by the monochrome rasterizer.        */
   /*                                                                       */
   typedef struct  FT_Raster_Params_
   {
@@ -1116,9 +1015,9 @@ FT_BEGIN_HEADER
     const void*             source;
     int                     flags;
     FT_SpanFunc             gray_spans;
-    FT_SpanFunc             black_spans;  /* doesn't work! */
-    FT_Raster_BitTest_Func  bit_test;     /* doesn't work! */
-    FT_Raster_BitSet_Func   bit_set;      /* doesn't work! */
+    FT_SpanFunc             black_spans;  /* unused */
+    FT_Raster_BitTest_Func  bit_test;     /* unused */
+    FT_Raster_BitSet_Func   bit_set;      /* unused */
     void*                   user;
     FT_BBox                 clip_box;
 
@@ -1305,7 +1204,6 @@ FT_BEGIN_HEADER
 
   } FT_Raster_Funcs;
 
-
   /* */
 
 
index aaf689f..4c0246c 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    FreeType incremental loading (specification).                        */
 /*                                                                         */
-/*  Copyright 2002, 2003, 2006, 2007, 2008, 2010 by                        */
+/*  Copyright 2002, 2003, 2006-2008, 2010, 2014 by                         */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -45,7 +45,7 @@ FT_BEGIN_HEADER
    * @description:
    *   This section contains various functions used to perform so-called
    *   `incremental' glyph loading.  This is a mode where all glyphs loaded
-   *   from a given @FT_Face are provided by the client application,
+   *   from a given @FT_Face are provided by the client application.
    *
    *   Apart from that, all other tables are loaded normally from the font
    *   file.  This mode is useful when FreeType is used within another
@@ -345,6 +345,7 @@ FT_BEGIN_HEADER
 
   /* */
 
+
 FT_END_HEADER
 
 #endif /* __FTINCREM_H__ */
index 39206f0..e8679c1 100644 (file)
@@ -5,7 +5,7 @@
 /*    FreeType API for color filtering of subpixel bitmap glyphs           */
 /*    (specification).                                                     */
 /*                                                                         */
-/*  Copyright 2006-2008, 2010, 2013 by                                     */
+/*  Copyright 2006-2008, 2010, 2013, 2014 by                               */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -56,7 +56,7 @@ FT_BEGIN_HEADER
    *
    *   FreeType generates alpha coverage maps, which are linear by nature.
    *   For instance, the value 0x80 in bitmap representation means that
-   *   (within numerical precision) 0x80/0xff fraction of that pixel is
+   *   (within numerical precision) 0x80/0xFF fraction of that pixel is
    *   covered by the glyph's outline.  The blending function for placing
    *   text over a background is
    *
index 241e21e..9950a27 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    Generic list support for FreeType (specification).                   */
 /*                                                                         */
-/*  Copyright 1996-2001, 2003, 2007, 2010, 2013 by                         */
+/*  Copyright 1996-2001, 2003, 2007, 2010, 2013, 2014 by                   */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -248,7 +248,7 @@ FT_BEGIN_HEADER
   /*    list    :: A handle to the list.                                   */
   /*                                                                       */
   /*    destroy :: A list destructor that will be applied to each element  */
-  /*               of the list.                                            */
+  /*               of the list.  Set this to NULL if not needed.           */
   /*                                                                       */
   /*    memory  :: The current memory object that handles deallocation.    */
   /*                                                                       */
@@ -265,7 +265,6 @@ FT_BEGIN_HEADER
                     FT_Memory           memory,
                     void*               user );
 
-
   /* */
 
 
index 00d4016..857c0c5 100644 (file)
@@ -88,7 +88,7 @@ FT_BEGIN_HEADER
   FT_Stream_OpenLZW( FT_Stream  stream,
                      FT_Stream  source );
 
- /* */
 /* */
 
 
 FT_END_HEADER
index 837975a..2dcfd67 100644 (file)
@@ -218,9 +218,6 @@ FT_BEGIN_HEADER
   } FT_MM_Var;
 
 
-  /* */
-
-
   /*************************************************************************/
   /*                                                                       */
   /* <Function>                                                            */
@@ -365,7 +362,6 @@ FT_BEGIN_HEADER
                                 FT_UInt    num_coords,
                                 FT_Fixed*  coords );
 
-
   /* */
 
 
index 22878f8..980f15d 100644 (file)
@@ -75,6 +75,33 @@ FT_BEGIN_HEADER
   /*                                                                       */
   /*    Note that the FreeType Cache sub-system is not a FreeType module.  */
   /*                                                                       */
+  /* <Order>                                                               */
+  /*    FT_Module                                                          */
+  /*    FT_Module_Constructor                                              */
+  /*    FT_Module_Destructor                                               */
+  /*    FT_Module_Requester                                                */
+  /*    FT_Module_Class                                                    */
+  /*                                                                       */
+  /*    FT_Add_Module                                                      */
+  /*    FT_Get_Module                                                      */
+  /*    FT_Remove_Module                                                   */
+  /*    FT_Add_Default_Modules                                             */
+  /*                                                                       */
+  /*    FT_Property_Set                                                    */
+  /*    FT_Property_Get                                                    */
+  /*                                                                       */
+  /*    FT_New_Library                                                     */
+  /*    FT_Done_Library                                                    */
+  /*    FT_Reference_Library                                               */
+  /*                                                                       */
+  /*    FT_Renderer                                                        */
+  /*    FT_Renderer_Class                                                  */
+  /*                                                                       */
+  /*    FT_Get_Renderer                                                    */
+  /*    FT_Set_Renderer                                                    */
+  /*                                                                       */
+  /*    FT_Set_Debug_Hook                                                  */
+  /*                                                                       */
   /*************************************************************************/
 
 
@@ -491,7 +518,7 @@ FT_BEGIN_HEADER
   FT_EXPORT( FT_Error )
   FT_Done_Library( FT_Library  library );
 
-/* */
+  /* */
 
   typedef void
   (*FT_DebugHook_Func)( void*  arg );
@@ -629,7 +656,6 @@ FT_BEGIN_HEADER
   FT_EXPORT( FT_TrueTypeEngineType )
   FT_Get_TrueType_Engine_Type( FT_Library  library );
 
-
   /* */
 
 
index bb52dc4..75ba03e 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    FreeType API for validating OpenType tables (specification).         */
 /*                                                                         */
-/*  Copyright 2004-2007, 2013 by                                           */
+/*  Copyright 2004-2007, 2013, 2014 by                                     */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -58,6 +58,12 @@ FT_BEGIN_HEADER
   /*    This section contains the declaration of functions to validate     */
   /*    some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH).         */
   /*                                                                       */
+  /* <Order>                                                               */
+  /*    FT_OpenType_Validate                                               */
+  /*    FT_OpenType_Free                                                   */
+  /*                                                                       */
+  /*    FT_VALIDATE_OTXXX                                                  */
+  /*                                                                       */
   /*************************************************************************/
 
 
@@ -107,8 +113,6 @@ FT_BEGIN_HEADER
                         FT_VALIDATE_JSTF | \
                         FT_VALIDATE_MATH
 
-  /* */
-
  /**********************************************************************
   *
   * @function:
@@ -165,8 +169,6 @@ FT_BEGIN_HEADER
                         FT_Bytes  *GSUB_table,
                         FT_Bytes  *JSTF_table );
 
-  /* */
-
  /**********************************************************************
   *
   * @function:
@@ -191,8 +193,7 @@ FT_BEGIN_HEADER
   FT_OpenType_Free( FT_Face   face,
                     FT_Bytes  table );
 
-
- /* */
+  /* */
 
 
 FT_END_HEADER
index 6c6d3f9..d3b8fbd 100644 (file)
@@ -52,7 +52,6 @@ FT_BEGIN_HEADER
   /*                                                                       */
   /* <Order>                                                               */
   /*    FT_Outline                                                         */
-  /*    FT_OUTLINE_FLAGS                                                   */
   /*    FT_Outline_New                                                     */
   /*    FT_Outline_Done                                                    */
   /*    FT_Outline_Copy                                                    */
@@ -68,13 +67,17 @@ FT_BEGIN_HEADER
   /*                                                                       */
   /*    FT_Outline_Get_Bitmap                                              */
   /*    FT_Outline_Render                                                  */
-  /*                                                                       */
   /*    FT_Outline_Decompose                                               */
   /*    FT_Outline_Funcs                                                   */
-  /*    FT_Outline_MoveTo_Func                                             */
-  /*    FT_Outline_LineTo_Func                                             */
-  /*    FT_Outline_ConicTo_Func                                            */
-  /*    FT_Outline_CubicTo_Func                                            */
+  /*    FT_Outline_MoveToFunc                                              */
+  /*    FT_Outline_LineToFunc                                              */
+  /*    FT_Outline_ConicToFunc                                             */
+  /*    FT_Outline_CubicToFunc                                             */
+  /*                                                                       */
+  /*    FT_Orientation                                                     */
+  /*    FT_Outline_Get_Orientation                                         */
+  /*                                                                       */
+  /*    FT_OUTLINE_XXX                                                     */
   /*                                                                       */
   /*************************************************************************/
 
@@ -535,7 +538,7 @@ FT_BEGIN_HEADER
   *
   * @description:
   *   This function analyzes a glyph outline and tries to compute its
-  *   fill orientation (see @FT_Orientation).  This is done by integrating 
+  *   fill orientation (see @FT_Orientation).  This is done by integrating
   *   the total area covered by the outline. The positive integral
   *   corresponds to the clockwise orientation and @FT_ORIENTATION_POSTSCRIPT
   *   is returned. The negative integral corresponds to the counter-clockwise
@@ -555,7 +558,6 @@ FT_BEGIN_HEADER
   FT_EXPORT( FT_Orientation )
   FT_Outline_Get_Orientation( FT_Outline*  outline );
 
-
   /* */
 
 
index 0b7b7d4..7d50353 100644 (file)
@@ -161,7 +161,7 @@ FT_BEGIN_HEADER
                       FT_UInt   gindex,
                       FT_Pos   *aadvance );
 
- /* */
 /* */
 
 
 FT_END_HEADER
index dd0229b..e8d3636 100644 (file)
@@ -226,7 +226,6 @@ FT_BEGIN_HEADER
                    FT_UInt        num_params,
                    FT_Parameter*  parameters );
 
-
   /* */
 
 
index a498e4a..bd31170 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    FreeType path stroker (specification).                               */
 /*                                                                         */
-/*  Copyright 2002-2006, 2008, 2009, 2011-2012 by                          */
+/*  Copyright 2002-2006, 2008, 2009, 2011-2012, 2014 by                    */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -46,6 +46,38 @@ FT_BEGIN_HEADER
   *    This can be useful to generate `bordered' glyph, i.e., glyphs
   *    displayed with a coloured (and anti-aliased) border around their
   *    shape.
+  *
+  * @order:
+  *    FT_Stroker
+  *
+  *    FT_Stroker_LineJoin
+  *    FT_Stroker_LineCap
+  *    FT_StrokerBorder
+  *
+  *    FT_Outline_GetInsideBorder
+  *    FT_Outline_GetOutsideBorder
+  *
+  *    FT_Glyph_Stroke
+  *    FT_Glyph_StrokeBorder
+  *
+  *    FT_Stroker_New
+  *    FT_Stroker_Set
+  *    FT_Stroker_Rewind
+  *    FT_Stroker_ParseOutline
+  *    FT_Stroker_Done
+  *
+  *    FT_Stroker_BeginSubPath
+  *    FT_Stroker_EndSubPath
+  *
+  *    FT_Stroker_LineTo
+  *    FT_Stroker_ConicTo
+  *    FT_Stroker_CubicTo
+  *
+  *    FT_Stroker_GetBorderCounts
+  *    FT_Stroker_ExportBorder
+  *    FT_Stroker_GetCounts
+  *    FT_Stroker_Export
+  *
   */
 
 
@@ -55,7 +87,7 @@ FT_BEGIN_HEADER
   *   FT_Stroker
   *
   * @description:
-  *   Opaque handler to a path stroker object.
+  *   Opaque handle to a path stroker object.
   */
   typedef struct FT_StrokerRec_*  FT_Stroker;
 
@@ -276,6 +308,8 @@ FT_BEGIN_HEADER
    * @note:
    *   The radius is expressed in the same units as the outline
    *   coordinates.
+   *
+   *   This function calls @FT_Stroker_Rewind automatically.
    */
   FT_EXPORT( void )
   FT_Stroker_Set( FT_Stroker           stroker,
@@ -570,10 +604,10 @@ FT_BEGIN_HEADER
    *   receive all new data.
    *
    *   When an outline, or a sub-path, is `closed', the stroker generates
-   *   two independent `border' outlines, named `left' and `right'
+   *   two independent `border' outlines, named `left' and `right'.
    *
    *   When the outline, or a sub-path, is `opened', the stroker merges
-   *   the `border' outlines with caps. The `left' border receives all
+   *   the `border' outlines with caps.  The `left' border receives all
    *   points, while the `right' border becomes empty.
    *
    *   Use the function @FT_Stroker_Export instead if you want to
@@ -736,7 +770,7 @@ FT_BEGIN_HEADER
                          FT_Bool      inside,
                          FT_Bool      destroy );
 
- /* */
 /* */
 
 FT_END_HEADER
 
index 839ab5e..d0ea730 100644 (file)
@@ -73,6 +73,7 @@ FT_BEGIN_HEADER
 
   /* */
 
+
 FT_END_HEADER
 
 #endif /* __FTSYNTH_H__ */
index e07460c..7436ed2 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    FreeType low-level system interface definition (specification).      */
 /*                                                                         */
-/*  Copyright 1996-2001, 2002, 2005, 2010 by                               */
+/*  Copyright 1996-2001, 2002, 2005, 2010, 2014 by                         */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -192,6 +192,10 @@ FT_BEGIN_HEADER
    * @description:
    *   A handle to an input stream.
    *
+   * @also:
+   *   See @FT_StreamRec for the publicly accessible fields of a given
+   *   stream object.
+   *
    */
   typedef struct FT_StreamRec_*  FT_Stream;
 
@@ -285,6 +289,11 @@ FT_BEGIN_HEADER
    *   size ::
    *     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. 
+   *     (Note that this size value can occur for normal streams also; it is
+   *     thus just a hint.)
+   *
    *   pos ::
    *     The current position within the stream.
    *
@@ -335,7 +344,6 @@ FT_BEGIN_HEADER
 
   } FT_StreamRec;
 
-
   /* */
 
 
index 65143cb..9c7b543 100644 (file)
@@ -237,7 +237,7 @@ FT_BEGIN_HEADER
    *
    * @input:
    *   angle ::
-   *     The address of angle.
+   *     The input angle.
    *
    */
   FT_EXPORT( void )
@@ -259,7 +259,7 @@ FT_BEGIN_HEADER
    *
    * @input:
    *   angle ::
-   *     The address of angle.
+   *     The input angle.
    *
    */
   FT_EXPORT( void )
index 70ad3d5..3588413 100644 (file)
@@ -158,9 +158,9 @@ FT_BEGIN_HEADER
 #define TT_INTERPRETER_VERSION_35  35
 #define TT_INTERPRETER_VERSION_38  38
 
-
  /* */
 
+
 FT_END_HEADER
 
 
index bd944a4..2c01e87 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    FreeType simple types definitions (specification only).              */
 /*                                                                         */
-/*  Copyright 1996-2002, 2004, 2006-2009, 2012, 2013 by                    */
+/*  Copyright 1996-2002, 2004, 2006-2009, 2012-2014 by                     */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -57,6 +57,8 @@ FT_BEGIN_HEADER
   /*    FT_UInt16                                                          */
   /*    FT_Int32                                                           */
   /*    FT_UInt32                                                          */
+  /*    FT_Int64                                                           */
+  /*    FT_UInt64                                                          */
   /*    FT_Short                                                           */
   /*    FT_UShort                                                          */
   /*    FT_Long                                                            */
@@ -78,7 +80,9 @@ FT_BEGIN_HEADER
   /*    FT_F2Dot14                                                         */
   /*    FT_UnitVector                                                      */
   /*    FT_F26Dot6                                                         */
+  /*    FT_Data                                                            */
   /*                                                                       */
+  /*    FT_MAKE_TAG                                                        */
   /*                                                                       */
   /*    FT_Generic                                                         */
   /*    FT_Generic_Finalizer                                               */
@@ -567,9 +571,9 @@ FT_BEGIN_HEADER
 
   } FT_ListRec;
 
-
   /* */
 
+
 #define FT_IS_EMPTY( list )  ( (list).head == 0 )
 #define FT_BOOL( x )  ( (FT_Bool)( x ) )
 
index 0b67351..5026158 100644 (file)
@@ -259,9 +259,9 @@ FT_BEGIN_HEADER
   FT_Get_WinFNT_Header( FT_Face               face,
                         FT_WinFNT_HeaderRec  *aheader );
 
-
   /* */
 
+
 FT_END_HEADER
 
 #endif /* __FTWINFNT_H__ */
index 493cccd..89d1993 100644 (file)
@@ -76,7 +76,8 @@ FT_BEGIN_HEADER
   FT_EXPORT( const char* )
   FT_Get_X11_Font_Format( FT_Face  face );
 
- /* */
+  /* */
+
 
 FT_END_HEADER
 
index 03bd68e..14ec37b 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    Arithmetic computations (specification).                             */
 /*                                                                         */
-/*  Copyright 1996-2006, 2008, 2009, 2012-2013 by                          */
+/*  Copyright 1996-2006, 2008, 2009, 2012-2014 by                          */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
 FT_BEGIN_HEADER
 
 
-#if 0
-
   /*************************************************************************/
   /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_SqrtFixed                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Computes the square root of a 16.16 fixed-point value.             */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    x :: The value to compute the root for.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The result of `sqrt(x)'.                                           */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This function is not very fast.                                    */
+  /* FT_MulDiv() and FT_MulFix() are declared in freetype.h.               */
   /*                                                                       */
-  FT_BASE( FT_Int32 )
-  FT_SqrtFixed( FT_Int32  x );
+  /*************************************************************************/
 
-#endif /* 0 */
+#ifndef  FT_CONFIG_OPTION_NO_ASSEMBLER
+  /* Provide assembler fragments for performance-critical functions. */
+  /* These must be defined `static __inline__' with GCC.             */
 
+#if defined( __CC_ARM ) || defined( __ARMCC__ )  /* RVCT */
 
-  /*************************************************************************/
-  /*                                                                       */
-  /* FT_MulDiv() and FT_MulFix() are declared in freetype.h.               */
-  /*                                                                       */
-  /*************************************************************************/
+#define FT_MULFIX_ASSEMBLER  FT_MulFix_arm
+
+  /* documentation is in freetype.h */
+
+  static __inline FT_Int32
+  FT_MulFix_arm( FT_Int32  a,
+                 FT_Int32  b )
+  {
+    register FT_Int32  t, t2;
+
+
+    __asm
+    {
+      smull t2, t,  b,  a           /* (lo=t2,hi=t) = a*b */
+      mov   a,  t,  asr #31         /* a   = (hi >> 31) */
+      add   a,  a,  #0x8000         /* a  += 0x8000 */
+      adds  t2, t2, a               /* t2 += a */
+      adc   t,  t,  #0              /* t  += carry */
+      mov   a,  t2, lsr #16         /* a   = t2 >> 16 */
+      orr   a,  a,  t,  lsl #16     /* a  |= t << 16 */
+    }
+    return a;
+  }
+
+#endif /* __CC_ARM || __ARMCC__ */
+
+
+#ifdef __GNUC__
+
+#if defined( __arm__ )                                 && \
+    ( !defined( __thumb__ ) || defined( __thumb2__ ) ) && \
+    !( defined( __CC_ARM ) || defined( __ARMCC__ ) )
+
+#define FT_MULFIX_ASSEMBLER  FT_MulFix_arm
+
+  /* documentation is in freetype.h */
+
+  static __inline__ FT_Int32
+  FT_MulFix_arm( FT_Int32  a,
+                 FT_Int32  b )
+  {
+    register FT_Int32  t, t2;
+
+
+    __asm__ __volatile__ (
+      "smull  %1, %2, %4, %3\n\t"       /* (lo=%1,hi=%2) = a*b */
+      "mov    %0, %2, asr #31\n\t"      /* %0  = (hi >> 31) */
+#if defined( __clang__ ) && defined( __thumb2__ )
+      "add.w  %0, %0, #0x8000\n\t"      /* %0 += 0x8000 */
+#else
+      "add    %0, %0, #0x8000\n\t"      /* %0 += 0x8000 */
+#endif
+      "adds   %1, %1, %0\n\t"           /* %1 += %0 */
+      "adc    %2, %2, #0\n\t"           /* %2 += carry */
+      "mov    %0, %1, lsr #16\n\t"      /* %0  = %1 >> 16 */
+      "orr    %0, %0, %2, lsl #16\n\t"  /* %0 |= %2 << 16 */
+      : "=r"(a), "=&r"(t2), "=&r"(t)
+      : "r"(a), "r"(b)
+      : "cc" );
+    return a;
+  }
+
+#endif /* __arm__                      && */
+       /* ( __thumb2__ || !__thumb__ ) && */
+       /* !( __CC_ARM || __ARMCC__ )      */
+
+
+#if defined( __i386__ )
+
+#define FT_MULFIX_ASSEMBLER  FT_MulFix_i386
+
+  /* documentation is in freetype.h */
+
+  static __inline__ FT_Int32
+  FT_MulFix_i386( FT_Int32  a,
+                  FT_Int32  b )
+  {
+    register FT_Int32  result;
+
+
+    __asm__ __volatile__ (
+      "imul  %%edx\n"
+      "movl  %%edx, %%ecx\n"
+      "sarl  $31, %%ecx\n"
+      "addl  $0x8000, %%ecx\n"
+      "addl  %%ecx, %%eax\n"
+      "adcl  $0, %%edx\n"
+      "shrl  $16, %%eax\n"
+      "shll  $16, %%edx\n"
+      "addl  %%edx, %%eax\n"
+      : "=a"(result), "=d"(b)
+      : "a"(a), "d"(b)
+      : "%ecx", "cc" );
+    return result;
+  }
+
+#endif /* i386 */
+
+#endif /* __GNUC__ */
+
+
+#ifdef _MSC_VER /* Visual C++ */
+
+#ifdef _M_IX86
+
+#define FT_MULFIX_ASSEMBLER  FT_MulFix_i386
+
+  /* documentation is in freetype.h */
+
+  static __inline FT_Int32
+  FT_MulFix_i386( FT_Int32  a,
+                  FT_Int32  b )
+  {
+    register FT_Int32  result;
+
+    __asm
+    {
+      mov eax, a
+      mov edx, b
+      imul edx
+      mov ecx, edx
+      sar ecx, 31
+      add ecx, 8000h
+      add eax, ecx
+      adc edx, 0
+      shr eax, 16
+      shl edx, 16
+      add eax, edx
+      mov result, eax
+    }
+    return result;
+  }
+
+#endif /* _M_IX86 */
+
+#endif /* _MSC_VER */
+
+
+#if defined( __GNUC__ ) && defined( __x86_64__ )
+
+#define FT_MULFIX_ASSEMBLER  FT_MulFix_x86_64
+
+  static __inline__ FT_Int32
+  FT_MulFix_x86_64( FT_Int32  a,
+                    FT_Int32  b )
+  {
+    /* Temporarily disable the warning that C90 doesn't support */
+    /* `long long'.                                             */
+#if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 6 )
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
+#endif
+
+#if 1
+    /* Technically not an assembly fragment, but GCC does a really good */
+    /* job at inlining it and generating good machine code for it.      */
+    long long  ret, tmp;
+
+
+    ret  = (long long)a * b;
+    tmp  = ret >> 63;
+    ret += 0x8000 + tmp;
+
+    return (FT_Int32)( ret >> 16 );
+#else
+
+    /* For some reason, GCC 4.6 on Ubuntu 12.04 generates invalid machine  */
+    /* code from the lines below.  The main issue is that `wide_a' is not  */
+    /* properly initialized by sign-extending `a'.  Instead, the generated */
+    /* machine code assumes that the register that contains `a' on input   */
+    /* can be used directly as a 64-bit value, which is wrong most of the  */
+    /* time.                                                               */
+    long long  wide_a = (long long)a;
+    long long  wide_b = (long long)b;
+    long long  result;
+
+
+    __asm__ __volatile__ (
+      "imul %2, %1\n"
+      "mov %1, %0\n"
+      "sar $63, %0\n"
+      "lea 0x8000(%1, %0), %0\n"
+      "sar $16, %0\n"
+      : "=&r"(result), "=&r"(wide_a)
+      : "r"(wide_b)
+      : "cc" );
+
+    return (FT_Int32)result;
+#endif
+
+#if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 6 )
+#pragma GCC diagnostic pop
+#endif
+  }
+
+#endif /* __GNUC__ && __x86_64__ */
+
+#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */
+
+
+#ifdef FT_CONFIG_OPTION_INLINE_MULFIX
+#ifdef FT_MULFIX_ASSEMBLER
+#define FT_MulFix( a, b )  FT_MULFIX_ASSEMBLER( (FT_Int32)(a), (FT_Int32)(b) )
+#endif
+#endif
 
 
   /*************************************************************************/
@@ -124,10 +311,11 @@ FT_BEGIN_HEADER
                          FT_Pos  out_x,
                          FT_Pos  out_y );
 
+
   /*
    *  Return TRUE if a corner is flat or nearly flat.  This is equivalent to
-   *  saying that the angle difference between the `in' and `out' vectors is
-   *  very small.
+   *  saying that the corner point is close to its neighbors, or inside an
+   *  ellipse defined by the neighbor focal points to be more precise.
    */
   FT_BASE( FT_Int )
   ft_corner_is_flat( FT_Pos  in_x,
@@ -139,9 +327,31 @@ FT_BEGIN_HEADER
   /*
    *  Return the most significant bit index.
    */
+
+#ifndef  FT_CONFIG_OPTION_NO_ASSEMBLER
+#if defined( __GNUC__ )                                          && \
+    ( __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 4 ) )
+
+#if FT_SIZEOF_INT == 4
+
+#define FT_MSB( x )  ( 31 - __builtin_clz( x ) )
+
+#elif FT_SIZEOF_LONG == 4
+
+#define FT_MSB( x )  ( 31 - __builtin_clzl( x ) )
+
+#endif
+
+#endif /* __GNUC__ */
+#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */
+
+#ifndef FT_MSB
+
   FT_BASE( FT_Int )
   FT_MSB( FT_UInt32  z );
 
+#endif
+
 
   /*
    *  Return sqrt(x*x+y*y), which is the same as `FT_Vector_Length' but uses
@@ -152,6 +362,31 @@ FT_BEGIN_HEADER
             FT_Fixed  y );
 
 
+#if 0
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    FT_SqrtFixed                                                       */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Computes the square root of a 16.16 fixed-point value.             */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    x :: The value to compute the root for.                            */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    The result of `sqrt(x)'.                                           */
+  /*                                                                       */
+  /* <Note>                                                                */
+  /*    This function is not very fast.                                    */
+  /*                                                                       */
+  FT_BASE( FT_Int32 )
+  FT_SqrtFixed( FT_Int32  x );
+
+#endif /* 0 */
+
+
 #define INT_TO_F26DOT6( x )    ( (FT_Long)(x) << 6  )
 #define INT_TO_F2DOT14( x )    ( (FT_Long)(x) << 14 )
 #define INT_TO_FIXED( x )      ( (FT_Long)(x) << 16 )
index ce4dc6c..f70774f 100644 (file)
@@ -121,20 +121,22 @@ FT_BEGIN_HEADER
                               FT_UInt         n_contours );
 
 
-#define FT_GLYPHLOADER_CHECK_P( _loader, _count )                         \
-   ( (_count) == 0 || ((_loader)->base.outline.n_points    +              \
-                       (_loader)->current.outline.n_points +              \
-                       (unsigned long)(_count)) <= (_loader)->max_points )
-
-#define FT_GLYPHLOADER_CHECK_C( _loader, _count )                          \
-  ( (_count) == 0 || ((_loader)->base.outline.n_contours    +              \
-                      (_loader)->current.outline.n_contours +              \
-                      (unsigned long)(_count)) <= (_loader)->max_contours )
-
-#define FT_GLYPHLOADER_CHECK_POINTS( _loader, _points,_contours )      \
-  ( ( FT_GLYPHLOADER_CHECK_P( _loader, _points )   &&                  \
-      FT_GLYPHLOADER_CHECK_C( _loader, _contours ) )                   \
-    ? 0                                                                \
+#define FT_GLYPHLOADER_CHECK_P( _loader, _count )           \
+  ( (_count) == 0                                        || \
+    ( (_loader)->base.outline.n_points    +                 \
+      (_loader)->current.outline.n_points +                 \
+      (unsigned long)(_count) ) <= (_loader)->max_points )
+
+#define FT_GLYPHLOADER_CHECK_C( _loader, _count )            \
+  ( (_count) == 0                                         || \
+    ( (_loader)->base.outline.n_contours    +                \
+      (_loader)->current.outline.n_contours +                \
+      (unsigned long)(_count)) <= (_loader)->max_contours )
+
+#define FT_GLYPHLOADER_CHECK_POINTS( _loader, _points, _contours )      \
+  ( ( FT_GLYPHLOADER_CHECK_P( _loader, _points )   &&                   \
+      FT_GLYPHLOADER_CHECK_C( _loader, _contours ) )                    \
+    ? 0                                                                 \
     : FT_GlyphLoader_CheckPoints( (_loader), (_points), (_contours) ) )
 
 
index 701c850..b45a5ed 100644 (file)
@@ -72,6 +72,16 @@ FT_BEGIN_HEADER
 
 #define FT_ABS( a )     ( (a) < 0 ? -(a) : (a) )
 
+  /*
+   *  Approximate sqrt(x*x+y*y) using the `alpha max plus beta min'
+   *  algorithm.  We use alpha = 1, beta = 3/8, giving us results with a
+   *  largest error less than 7% compared to the exact value.
+   */
+#define FT_HYPOT( x, y )                 \
+          ( x = FT_ABS( x ),             \
+            y = FT_ABS( y ),             \
+            x > y ? x + ( 3 * y >> 3 )   \
+                  : y + ( 3 * x >> 3 ) )
 
 #define FT_PAD_FLOOR( x, n )  ( (x) & ~((n)-1) )
 #define FT_PAD_ROUND( x, n )  FT_PAD_FLOOR( (x) + ((n)/2), n )
@@ -82,14 +92,6 @@ FT_BEGIN_HEADER
 #define FT_PIX_CEIL( x )      FT_PIX_FLOOR( (x) + 63 )
 
 
-  /*
-   *  Return the highest power of 2 that is <= value; this correspond to
-   *  the highest bit in a given 32-bit value.
-   */
-  FT_BASE( FT_UInt32 )
-  ft_highpow2( FT_UInt32  value );
-
-
   /*
    *  character classification functions -- since these are used to parse
    *  font files, we must not use those in <ctypes.h> which are
index 12ad036..c281b14 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    FreeType validation support (specification).                         */
 /*                                                                         */
-/*  Copyright 2004, 2013 by                                                */
+/*  Copyright 2004, 2013, 2014 by                                          */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -87,13 +87,13 @@ FT_BEGIN_HEADER
   /* validator structure */
   typedef struct  FT_ValidatorRec_
   {
+    ft_jmp_buf          jump_buffer; /* used for exception handling      */
+
     const FT_Byte*      base;        /* address of table in memory       */
     const FT_Byte*      limit;       /* `base' + sizeof(table) in memory */
     FT_ValidationLevel  level;       /* validation level                 */
     FT_Error            error;       /* error returned. 0 means success  */
 
-    ft_jmp_buf          jump_buffer; /* used for exception handling      */
-
   } FT_ValidatorRec;
 
 #if defined( _MSC_VER )
@@ -126,31 +126,29 @@ FT_BEGIN_HEADER
   /* Calls ft_validate_error.  Assumes that the `valid' local variable */
   /* holds a pointer to the current validator object.                  */
   /*                                                                   */
-  /* Use preprocessor prescan to pass FT_ERR_PREFIX.                   */
-  /*                                                                   */
-#define FT_INVALID( _prefix, _error )  FT_INVALID_( _prefix, _error )
-#define FT_INVALID_( _prefix, _error ) \
-          ft_validator_error( valid, _prefix ## _error )
+#define FT_INVALID( _error )  FT_INVALID_( _error )
+#define FT_INVALID_( _error ) \
+          ft_validator_error( valid, FT_THROW( _error ) )
 
   /* called when a broken table is detected */
 #define FT_INVALID_TOO_SHORT \
-          FT_INVALID( FT_ERR_PREFIX, Invalid_Table )
+          FT_INVALID( Invalid_Table )
 
   /* called when an invalid offset is detected */
 #define FT_INVALID_OFFSET \
-          FT_INVALID( FT_ERR_PREFIX, Invalid_Offset )
+          FT_INVALID( Invalid_Offset )
 
   /* called when an invalid format/value is detected */
 #define FT_INVALID_FORMAT \
-          FT_INVALID( FT_ERR_PREFIX, Invalid_Table )
+          FT_INVALID( Invalid_Table )
 
   /* called when an invalid glyph index is detected */
 #define FT_INVALID_GLYPH_ID \
-          FT_INVALID( FT_ERR_PREFIX, Invalid_Glyph_Index )
+          FT_INVALID( Invalid_Glyph_Index )
 
   /* called when an invalid field value is detected */
 #define FT_INVALID_DATA \
-          FT_INVALID( FT_ERR_PREFIX, Invalid_Table )
+          FT_INVALID( Invalid_Table )
 
 
 FT_END_HEADER
index 3fb18dc..f05ea68 100644 (file)
@@ -6,7 +6,7 @@
 /*    recorders (specification only).  These are used to support native    */
 /*    T1/T2 hints in the `type1', `cid', and `cff' font drivers.           */
 /*                                                                         */
-/*  Copyright 2001-2003, 2005-2007, 2009, 2012 by                          */
+/*  Copyright 2001-2003, 2005-2007, 2009, 2012, 2014 by                    */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -45,7 +45,7 @@ FT_BEGIN_HEADER
                           T1_Private*   private_dict,
                           PSH_Globals*  aglobals );
 
-  typedef FT_Error
+  typedef void
   (*PSH_Globals_SetScaleFunc)( PSH_Globals  globals,
                                FT_Fixed     x_scale,
                                FT_Fixed     y_scale,
index 6b5e41f..d558e86 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    High-level `sfnt' driver interface (specification).                  */
 /*                                                                         */
-/*  Copyright 1996-2006, 2009, 2012-2013 by                                */
+/*  Copyright 1996-2006, 2009, 2012-2014 by                                */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -405,14 +405,18 @@ FT_BEGIN_HEADER
   /* <Input>                                                               */
   /*    face     :: A handle to the target face object.                    */
   /*                                                                       */
-  /*    stream   :: The input stream.                                      */
-  /*                                                                       */
   /*    vertical :: A boolean flag.  If set, load vertical metrics.        */
   /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
+  /*    gindex   :: The glyph index.                                       */
   /*                                                                       */
-  typedef FT_Error
+  /* <Output>                                                              */
+  /*    abearing :: The horizontal (or vertical) bearing.  Set to zero in  */
+  /*                case of error.                                         */
+  /*                                                                       */
+  /*    aadvance :: The horizontal (or vertical) advance.  Set to zero in  */
+  /*                case of error.                                         */
+  /*                                                                       */
+  typedef void
   (*TT_Get_Metrics_Func)( TT_Face     face,
                           FT_Bool     vertical,
                           FT_UInt     gindex,
index a14255e..61aefdd 100644 (file)
@@ -5,7 +5,7 @@
 /*    Basic Type 1/Type 2 tables definitions and interface (specification  */
 /*    only).                                                               */
 /*                                                                         */
-/*  Copyright 1996-2004, 2006, 2008, 2009, 2011 by                         */
+/*  Copyright 1996-2004, 2006, 2008, 2009, 2011, 2014 by                   */
 /*  Da