[FREETYPE]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Mon, 2 May 2011 09:43:01 +0000 (09:43 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Mon, 2 May 2011 09:43:01 +0000 (09:43 +0000)
Sync to version 2.4.4

svn path=/trunk/; revision=51542

119 files changed:
reactos/lib/3rdparty/freetype/ChangeLog
reactos/lib/3rdparty/freetype/ChangeLog.23 [new file with mode: 0644]
reactos/lib/3rdparty/freetype/Jamfile
reactos/lib/3rdparty/freetype/README
reactos/lib/3rdparty/freetype/README.git
reactos/lib/3rdparty/freetype/configure
reactos/lib/3rdparty/freetype/devel/ftoption.h
reactos/lib/3rdparty/freetype/freetype.rbuild
reactos/lib/3rdparty/freetype/include/freetype/config/ftconfig.h
reactos/lib/3rdparty/freetype/include/freetype/config/ftoption.h
reactos/lib/3rdparty/freetype/include/freetype/freetype.h
reactos/lib/3rdparty/freetype/include/freetype/ftcache.h
reactos/lib/3rdparty/freetype/include/freetype/fterrdef.h
reactos/lib/3rdparty/freetype/include/freetype/ftimage.h
reactos/lib/3rdparty/freetype/include/freetype/ftlcdfil.h
reactos/lib/3rdparty/freetype/include/freetype/ftlist.h
reactos/lib/3rdparty/freetype/include/freetype/ftmodapi.h
reactos/lib/3rdparty/freetype/include/freetype/ftrender.h
reactos/lib/3rdparty/freetype/include/freetype/ftsystem.h
reactos/lib/3rdparty/freetype/include/freetype/internal/ftmemory.h
reactos/lib/3rdparty/freetype/include/freetype/internal/ftobjs.h
reactos/lib/3rdparty/freetype/include/freetype/ttnameid.h
reactos/lib/3rdparty/freetype/include/freetype/tttables.h
reactos/lib/3rdparty/freetype/src/autofit/afcjk.c
reactos/lib/3rdparty/freetype/src/autofit/afglobal.c
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/aflatin2.c
reactos/lib/3rdparty/freetype/src/autofit/afpic.c
reactos/lib/3rdparty/freetype/src/base/ftbase.h
reactos/lib/3rdparty/freetype/src/base/ftdbgmem.c
reactos/lib/3rdparty/freetype/src/base/ftgloadr.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/ftobjs.c
reactos/lib/3rdparty/freetype/src/base/ftotval.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/ftsynth.c
reactos/lib/3rdparty/freetype/src/base/ftsystem.c
reactos/lib/3rdparty/freetype/src/bdf/bdfdrivr.c
reactos/lib/3rdparty/freetype/src/bdf/bdflib.c
reactos/lib/3rdparty/freetype/src/cache/ftcbasic.c
reactos/lib/3rdparty/freetype/src/cache/ftccache.c
reactos/lib/3rdparty/freetype/src/cache/ftccache.h
reactos/lib/3rdparty/freetype/src/cache/ftccmap.c
reactos/lib/3rdparty/freetype/src/cache/ftcglyph.c
reactos/lib/3rdparty/freetype/src/cache/ftcglyph.h
reactos/lib/3rdparty/freetype/src/cache/ftcimage.c
reactos/lib/3rdparty/freetype/src/cache/ftcmanag.c
reactos/lib/3rdparty/freetype/src/cache/ftcmanag.h
reactos/lib/3rdparty/freetype/src/cache/ftcmru.h
reactos/lib/3rdparty/freetype/src/cache/ftcsbits.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/cffload.c
reactos/lib/3rdparty/freetype/src/cff/cffload.h
reactos/lib/3rdparty/freetype/src/cff/cffobjs.c
reactos/lib/3rdparty/freetype/src/cff/cffparse.c
reactos/lib/3rdparty/freetype/src/cff/cffpic.c
reactos/lib/3rdparty/freetype/src/cff/cfftypes.h
reactos/lib/3rdparty/freetype/src/cid/cidgload.c
reactos/lib/3rdparty/freetype/src/cid/cidobjs.c
reactos/lib/3rdparty/freetype/src/gxvalid/gxvcommn.c
reactos/lib/3rdparty/freetype/src/gzip/ftgzip.c
reactos/lib/3rdparty/freetype/src/lzw/ftlzw.c
reactos/lib/3rdparty/freetype/src/otvalid/otvmath.c
reactos/lib/3rdparty/freetype/src/otvalid/otvmod.c
reactos/lib/3rdparty/freetype/src/pcf/pcfdrivr.c
reactos/lib/3rdparty/freetype/src/pcf/pcfread.c
reactos/lib/3rdparty/freetype/src/pfr/pfrdrivr.c
reactos/lib/3rdparty/freetype/src/pfr/pfrgload.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/afmparse.c
reactos/lib/3rdparty/freetype/src/psaux/afmparse.h
reactos/lib/3rdparty/freetype/src/psaux/psobjs.c
reactos/lib/3rdparty/freetype/src/psaux/t1decode.c
reactos/lib/3rdparty/freetype/src/pshinter/pshalgo.c
reactos/lib/3rdparty/freetype/src/pshinter/pshglob.c
reactos/lib/3rdparty/freetype/src/pshinter/pshpic.c
reactos/lib/3rdparty/freetype/src/psnames/psmodule.c
reactos/lib/3rdparty/freetype/src/psnames/pspic.c
reactos/lib/3rdparty/freetype/src/raster/ftmisc.h
reactos/lib/3rdparty/freetype/src/raster/ftraster.c
reactos/lib/3rdparty/freetype/src/raster/rastpic.c
reactos/lib/3rdparty/freetype/src/sfnt/sfdriver.c
reactos/lib/3rdparty/freetype/src/sfnt/sfntpic.c
reactos/lib/3rdparty/freetype/src/sfnt/sfobjs.c
reactos/lib/3rdparty/freetype/src/sfnt/ttbdf.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/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/smooth/ftspic.c
reactos/lib/3rdparty/freetype/src/tools/apinames.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/ttpic.c
reactos/lib/3rdparty/freetype/src/truetype/ttpload.c
reactos/lib/3rdparty/freetype/src/type1/t1afm.c
reactos/lib/3rdparty/freetype/src/type1/t1load.c
reactos/lib/3rdparty/freetype/src/type1/t1objs.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

index 83a7d53..b7aea52 100644 (file)
@@ -1,15 +1,15 @@
-2010-02-13  Werner Lemberg  <wl@gnu.org>
+2010-11-28  Werner Lemberg  <wl@gnu.org>
 
-       * Version 2.3.12 released.
-       ==========================
+       * Version 2.4.4 released.
+       =========================
 
 
-       Tag sources with `VER-2-3-12'.
+       Tag sources with `VER-2-4-4'.
 
        * docs/CHANGES: Updated.
 
        * docs/VERSION.DLL: Update documentation and bump version number to
-       2.3.12.
+       2.4.4
 
        * README, Jamfile (RefDoc),
        builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/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.3.11/2.3.12/, s/2311/2312/.
-
-       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 12.
-
-       * builds/unix/configure.raw (version_info): Set to 10:0:4.
-
-2010-02-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Improve autotool version checking to work with beta releases.
-
-       * autogen.sh (check_tool_version): Improve the extraction of version
-       number from "tool --version" output.  Some beta releases of
-       autotools have extra strings before version number.
-
-2010-02-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Fix overallocating bug in FT_Outline_New_Internal().
-
-       * src/base/ftoutln.c (FT_Outline_New_Internal): The length of
-       FT_Outline->points[] should be numPoints, not 2 * numPoints.
-       Found by Paul Messmer, see
-       http://lists.gnu.org/archive/html/freetype-devel/2010-02/msg00003.html
-
-2010-02-10  Ken Sharp  <ken.sharp@artifex.com>
-
-       Really fix Savannah bug #28678 (part 2).
-
-       Since we consider `sbw' for the horizontal direction only, we still have
-       to synthesize vertical metrics if the user wants to use the vertical
-       writing direction.
-
-       * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
-       (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph):
-       Synthesize vertical metrics (only) if FT_LOAD_VERTICAL_LAYOUT is
-       set.
-
-2010-02-10  Ken Sharp  <ken.sharp@artifex.com>
-
-       Really fix Savannah bug #28678 (part 1).
-
-       After long discussion, we now consider the character width vector
-       (wx,wy) returned by the `sbw' Type 1 operator as being part of *one*
-       direction only.  For example, if you are using the horizontal
-       writing direction, you get the horizontal and vertical components of
-       the advance width for this direction.  Note that OpenType and CFF fonts
-       don't have such a vertical component; instead, the GPOS table can be
-       used to generate two-dimensional advance widths (but this isn't
-       handled by FreeType).
-
-       * include/freetype/ftincrem.h (FT_Incremental_MetricsRec): Add
-       `advance_v' field to hold the vertical component of the advance
-       value.
-
-       * src/truetype/ttgload.c (tt_get_metrics), src/cff/cffgload.c
-       (cff_slot_load), src/type1/t1gload.c
-       (T1_Parse_Glyph_And_Get_Char_String), src/cid/cidgload.c
-       (cid_load_glyph): Use it.
-
-2010-02-08  Werner Lemberg  <wl@gnu.org>
-
-       * devel/ftoption.h [FT_CONFIG_OPTION_PIC]: Define.
-
-2010-02-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Prevent NULL pointer dereference passed to FT_Module_Requester.
-
-       * src/sfnt/sfdriver.c (sfnt_get_interface): Don't use `module'.
-       * src/psnames/psmodule.c (psnames_get_interface): Ditto.
-
-       * src/cff/cffdrivr.c (cff_get_interface): Check NULL `driver'.
-       * src/truetype/ttdriver.c (tt_get_interface): Ditto.
-
-2010-01-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Fix memory leaks in previous patch.
-
-       * src/sfnt/sfobjs.c (sfnt_load_face): Don't overwrite the strings
-       allocated for face->root.family_name and style_name.
-
-2010-01-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       New parameters for FT_Open_Face() to ignore preferred family names.
-
-       Preferred family names should be used for legacy systems that
-       can hold only a few faces (<= 4) for a family name. Suggested by
-       Andreas Heinrich.
-       http://lists.gnu.org/archive/html/freetype/2010-01/msg00001.html
-
-       * include/freetype/ftsnames.h (FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY,
-       FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Define.
-
-       * src/sfnt/sfobjs.h (sfnt_load_face): Check the arguments and
-       ignore preferred family and subfamily names if requested.
+       builds/wince/vc2008-ce/index.html: s/2.4.3/2.4.4/, s/243/244/.
 
-2010-01-27  Ken Sharp  <ken.sharp@artifex.com>
-
-       Fix Savannah bug #28678.
-
-       * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
-       (cid_load_glyph): Handle vertical metrics correctly.
-
-       * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Handle
-       vertical metrics correctly.
-       (T1_Load_Glyph): Don't synthesize vertical metrics.
-
-2010-01-14  Werner Lemberg  <wl@gnu.org>
-
-       Make FT_Set_Transform work if no renderer is available.
-
-       * src/base/ftobjs.c (FT_Load_Glyph): Apply `standard' transformation
-       if no renderer is compiled into the library.
-
-2010-01-14  Werner Lemberg  <wl@gnu.org>
-
-       Fix compilation warning.
-
-       * src/base/ftbase.h: s/LOCAL_DEF/LOCAL/.
-       * src/base/ftobjc.s: Include ftbase.h conditionally.
-
-2010-01-11  Kwang Yul Seo  <skyul@company100.net>
-
-       Provide inline assembly code for RVCT compiler.
-       This is Savannah patch #7059.
-
-       * include/freetype/config/ftconfig.h (FT_MULFIX_ASSEMBLER,
-       FT_MulFix_arm) [__CC_ARM || __ARM_CC]: Define.
-
-2010-01-08  Ken Sharp  <ken.sharp@artifex.com>
-
-       Fix Savannah bug #28521.
-
-       Issue #28226 involved a work-around for a font which used the
-       `setcurrentpoint' operator in an invalid way; this operator is only
-       supposed to be used with the result of OtherSubrs, and the font used
-       it directly.  The supplied patch removed the block of code which
-       checked this usage entirely.
-
-       This turns out to be a Bad Thing.  If `setcurrentpoint' is being
-       used correctly it should reset the flex flag in the decoder.  If we
-       don't do this then the flag never gets reset and we omit any further
-       contours from the glyph (at least until we close the path or
-       similar).
-
-       * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
-       <op_setcurrentpoint>: Handle `flex_state' correctly.
-
-2010-01-05  Werner Lemberg  <wl@gnu.org>
-
-       Apply reports from clang static analyzer.
-
-       * src/lzw/ftlzw.c (ft_lzw_file_init), src/base/ftstroke.c
-       (FT_Stroker_ParseOutline), src/base/ftsynth.c
-       (FT_GlyphSlot_Embolden): Remove dead code.
-
-       * src/base/ftpatent.c (_tt_check_patents_in_table): Initialize
-       `offset_i' and `length_i'.
-
-2010-01-05  Ralph Giles  <giles@ghostscript.com>
-
-       Enable the incremental font interface by default.
+       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
 
-       Ghostscript requires the incremental font interface for handling
-       some Postscript documents.  It is moving to using FreeType as its
-       primary renderer; supporting this in the default build makes it
-       Ghostscript to be linked against the system FreeType when one is
-       available.
+       * builds/unix/configure.raw (version_info): Set to 12:2:6.
 
-       * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL):
-       Uncomment.
+2010-11-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
 
-2010-01-05  Werner Lemberg  <wl@gnu.org>
+       [ftsmooth]: Minor code simplification.
 
-       Fix Savannah bug #28395.
+       * src/smooth/ftgrays (gray_render_cubic): Do only one comparison
+       instead of two.
 
-       * src/truetype/ttdriver.c (Load_Glyph), src/type1/t1gload.c
-       (T1_Loada_Glyph): Don't check `num_glyphs' if incremental interface
-       is used.
+2010-11-26  Johnson Y. Yan  <yinsen_yan@foxitsoftware.com>
 
-2010-01-05  Ken Sharp  <ken.sharp@artifex.com>
+       [truetype] Better multi-threading support.
 
-       Make Type 1 `seac' operator work with incremental interface.
-       This fixes Savannah bug #28480.
+       * src/truetype/ttinterp.c (TT_Load_Context): Reset glyph zone
+       references.
 
-       * src/psaux/t1decode.c (t1operator_seac): Don't check `glyph_names'
-       if incremental interface is used.
+2010-11-23  John Tytgat  <John.Tytgat@esko.com>
 
-2010-01-04  Ken Sharp  <ken.sharp@artifex.com>
+       * src/psaux/t1decode.c (t1_decoder_parse_charstring): Expand
+       start_point, check_points, add_point, add_point1, close_contour
+       macros.
+       Remove add_contour macro.
+       Return error code from t1_builder_start_point and
+       t1_builder_check_points when there was one (instead of returning 0).
 
-       Make incremental interface work with TrueType fonts.
-       This fixes Savannah bug #28478.
+2010-11-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/truetype/ttgload.c (load_truetype_glyph): Don't check
-       `glyf_offset' if incremental interface is used.
+       [truetype] Identify the tricky fonts by cvt/fpgm/prep checksums.
+       Some Latin TrueType fonts are still expected to be unhinted.
+       Fix Savannah bug #31645.
 
-2009-12-31  Lars Abrahamsson  <wonko@opera.com>
+       * src/truetype/ttobjs.c (tt_check_trickyness): Divided to...
+       (tt_check_trickyness_family): this checking family name, and
+       (tt_check_trickyness_sfnt_ids): this checking cvt/fpgm/prep.
+       (tt_get_sfnt_checksum): Function to retrieve the sfnt checksum
+       for specified subtable even if cleared by lazy PDF generators.
+       (tt_synth_sfnt_checksum): Function to calculate the checksum.
 
-       Make compilation with FT_CONFIG_OPTION_PIC work again.
+2010-11-18  Werner Lemberg  <wl@gnu.org>
 
-       * src/base/ftglyph.c (FT_Glyph_To_Bitmap) [FT_CONFIG_OPTION_PIC]:
-       Declare `library' for FT_BITMAP_GLYPH_CLASS_GET.
+       [truetype] Fix `loca' handling for inconsistent number of glyphs.
+       Reported by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>.
 
-       * src/base/ftinit.c (ft_destroy_default_module_classes,
-       ft_create_default_module_classes): Use proper casts (needed for C++
-       compilation).
+       * src/truetype/ttpload.c (tt_face_load_loca): While sanitizing,
+       handle case where `loca' is the last table in the font.
 
-       * src/sfnt/ttcmap.c (tt_cmap13_class_rec): Use FT_DEFINE_TT_CMAP.
+2010-11-18  Werner Lemberg  <wl@gnu.org>
 
-2009-12-22  Marc Kleine-Budde  <mkl@pengutronix.de>
+       [sfnt] Ignore all errors while loading `OS/2' table.
+       Suggested by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>.
 
-       Make freetype-config aware of $SYSROOT.
-       This is Savannah patch #7040.
+       * src/sfnt/sfobjs.c (sfnt_load_face): Do it.
 
-       * builds/unix/freetype-config.in: Decorate with ${SYSROOT} where
-       appropriate.
+2010-11-18  Johnson Y. Yan  <yinsen_yan@foxitsoftware.com>
 
-2009-12-20  Werner Lemberg  <wl@gnu.org>
+       [type1] Fix matrix normalization.
 
-       Fix compiler warning.
-       Reported by Sean.
+       * src/type1/t1load.c (parse_font_matrix): Handle sign of scaling
+       factor.
 
-       * src/base/ftdbgmem.c [!FT_DEBUG_MEMORY]: ANSI C doesn't like empty
-       source files; however, some compilers warn about an unused variable
-       declaration.  This is now replaced with a typedef.
+2010-11-18  Werner Lemberg  <wl@gnu.org>
 
-2009-12-18  Werner Lemberg  <wl@gnu.org>
+       [type1] Improve guard against malformed data.
+       Based on a patch submitted by Johnson Y. Yan
+       <yinsen_yan@foxitsoftware.com>
 
-       Fix Savannah bug #28320.
+       * src/type1/t1load.c (read_binary_data): Check `size'.
 
-       There exist corrupt, subsetted fonts (embedded in PDF files) which
-       contain a private dict that ends with an unterminated floating point
-       number (no operator following).  We now ignore this error (as
-       acrobat does).
+2010-11-17  Werner Lemberg  <wl@gnu.org>
 
-       * src/cff/cffparse.c (cff_parser_run): Don't emit a syntax error for
-       unterminated floating point numbers.
+       [sfnt] While tracing, output table checksums also.
 
-2009-12-16  Werner Lemberg  <wl@gnu.org>
+       * src/sfnt/ttload.c (tt_face_load_font_dir): Do it.
 
-       Really fix compiler warnings.
-       Reported by Sean.
+2010-11-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/truetype/ttgxvar.c (GX_PT_POINTS_ARE_WORDS,
-       GX_PT_POINT_RUN_COUNT_MASK): Convert enum values to macros.
+       [UVS] Fix find_variant_selector_charmap(), Savannah bug #31545.
 
-2009-12-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       Since 2010-07-04, find_variant_selector_charmap() returns
+       the first cmap subtable always under rogue-compatible
+       configuration, it causes NULL pointer dereference and
+       make UVS-related functions crashed.
 
-       Improve configure.raw to copy some options from CFLAGS to LDFLAGS.
-       The linker of Mac OS X 10.6 is sensitive to the architecture.  If
-       the architectures are specified explicitly for the C compiler, the
-       linker requires the architecture specifications too.
+       * src/base/ftobjs.c (Fix find_variant_selector_charmap):
+       Returns UVS cmap correctly.
 
-       * builds/unix/configure.raw: Replace `-isysroot' option parser by
-       more generic argument parser.
+2010-11-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
 
-2009-12-15  Werner Lemberg  <wl@gnu.org>
+       [ftsmooth] Improve rendering.
 
-       Fix compiler warnings.
-       Reported by Sean.
+       * src/smooth/ftsmooth.c (gray_render_conic): Since version 2.4.3,
+       cubic deviations have been estimated _after_ UPSCALE, whereas
+       conic ones have been evaluated _before_ UPSCALE, which produces
+       inferior rendering results.  Fix this.
+       Partially undo change from 2010-10-15 by using ONE_PIXEL/4; this has
+       been tested with demo images sent to the mailing list.  See
 
-       * src/truetype/ttgxvar.c (ft_var_readpackeddeltas): Fix counter data
-       type.
+         http://lists.gnu.org/archive/html/freetype-devel/2010-10/msg00055.html
 
-2009-12-14  Ken Sharp  <ken.sharp@artifex.com>
+       and later mails in this thread.
 
-       Ignore invalid `setcurrentpoint' operations in Type 1 fonts.
-       This fixes Savannah bug #28226.
+2010-10-28  Werner Lemberg  <wl@gnu.org>
 
-       At least two wild PostScript files of unknown provenance contain
-       Type 1 fonts, apparently converted from TrueType fonts in earlier
-       PDF versions of the files, which use the `setcurrentpoint' operator
-       inappropriately.
+       [ftraster] Minor fixes.
 
-       FreeType currently throws an error in this case, but Ghostscript and
-       Adobe Distiller both accept the fonts and ignore the problem.  This
-       commit #ifdefs out the check so PostScript interpreters using
-       FreeType can render these files.
+       Reported by Tom Bishop <wenlin@wenlin.com>.
 
-       The specification says `setcurrentpoint' should only be used to set
-       the point after a `Subr' call, but these fonts use it to set the
-       initial point to (0,0).  Unnecessarily so, as they correctly use an
-       `hsbw' operation which implicitly sets the initial point.
+       * src/raster/ftraster.c (ULong): Remove unused typedef.
+       (TWorker): Remove unused variable `precision_mask'.
 
-       * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
-       <op_setcurrentpoint>: Comment out code.
+2010-10-28  Werner Lemberg  <wl@gnu.org>
 
-2009-12-14  Bram Tassyns  <bramt@enfocus.be>
+       [ftraster] Fix rendering.
 
-       Fix parsing of /CIDFontVersion.
-       This fixes Savannah bug #28287.
+       Problem reported by Tom Bishop <wenlin@wenlin.com>; see
+       thread starting with
 
-       * src/cid/cidtoken.h: `cid_version' in CID_FaceInfoRec (in
-       t1tables.h) is of type FT_Fixed.
+         http://lists.gnu.org/archive/html/freetype/2010-10/msg00049.html
 
-2009-12-14  Werner Lemberg  <wl@gnu.org>
+       * src/raster/ftraster.c (Line_Up): Replace FMulDiv with SMulDiv
+       since the involved multiplication exceeds 32 bits.
 
-       Trace glyph index in CID module.
-       Suggested in Savannah patch #7023.
+2010-10-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/cid/cidgload.c (cid_load_glyph): Add tracing message.
+       Revert a change of `_idx' type in FTC_CACHE_LOOKUP_CMP().
 
-2009-12-03  Werner Lemberg  <wl@gnu.org>
+       * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Revert
+       the type of `_idx' from FT_PtrDist (by previous change)
+       to original FT_UFast, to match with FT_CacheRec.
 
-       Fix compiler warnings.
+2010-10-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/truetype/ttgload.c (tt_get_metrics): Put `Exit' label into the
-       proper preprocessor conditional.
-       * src/pfr/pfrobjs.c (pfr_slot_load): Pacify gcc.
+       [cache] Change the hash types to FT_PtrDist.
 
-2009-11-25  John Tytgat  <John.Tytgat@esko.com>
+       On LLP64 platforms (e.g. Win64), FT_ULong (32-bit)
+       variables are inappropriate to calculate hash values
+       from the memory address (64-bit).  The hash variables  
+       are extended from FT_ULong to FT_PtrDist and new
+       hashing macro functions are introduced.  The hash
+       values on 16-bit memory platforms are changed, but
+       ILP32 and LP64 are not changed.  The hash value in
+       the cache subsystem is not reverted to the memory
+       address, so using signed type FT_PtrDist is safe.
 
-       Better handling of start of `eexec' section.
-       This fixes Savannah bug #28090.
+       * src/cache/ftccache.h (_FTC_FACE_ID_HASH): New hash
+       function to replace FTC_FACE_ID_HASH() for portability.
+       * src/cache/ftcmanag.h (FTC_SCALER_HASH): Replace 
+       FTC_FACE_ID_HASH() by _FTC_FACE_ID_HASH().
+       * src/cache/ftccmap.c (FTC_CMAP_HASH): Ditto.
 
-       * src/type1/t1parse.c (T1_Get_Private_Dict): Skip all whitespace
-       characters before start of `eexec' section.
+       * src/cache/ftccache.h (FTC_NodeRec): The type of the
+       member `hash' is changed from FT_UInt32 to FT_PtrDist.
 
-2009-11-20  Werner Lemberg  <wl@gnu.org>
+       * src/cache/ftccache.h (FTC_Cache_Lookup): The type of the
+       argument `hash' is changed from FT_UInt32 to FT_PtrDist.
+       (FTC_Cache_NewNode): Ditto.
+       * src/cache/ftccache.c (ftc_cache_add): Ditto.
+       (FTC_Cache_Lookup): Ditto.  (FTC_Cache_NewNode): Ditto.
+       * src/cache/ftcglyph.h (FTC_GCache_Lookup): Ditto.
+       * src/cache/ftcglyph.c (FTC_GCache_Lookup): Ditto.
 
-       Fix Savannah bug #27742.
+       * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): The type
+       of the internal variable `hash' is changed to FT_PtrDist
+       from FT_UInt32.  (FTC_ImageCache_LookupScaler): Ditto.
+       (FTC_SBitCache_Lookup): Ditto.
+       (FTC_SBitCache_LookupScaler): Ditto.
+       * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Ditto.
+       * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Ditto.
+       Also the type of the internal variable `_idx' is changed to
+       FT_PtrDist from FT_UFast for better pointer calculation.
+       
+2010-10-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/base/ftstroke.c (ft_stroker_outside): Avoid silent division by
-       zero, using a threshold for `theta'.
+       [cache] Hide internal macros incompatible with LLP64.
 
-2009-11-20  Werner Lemberg  <wl@gnu.org>
+       FT_POINTER_TO_ULONG(), FTC_FACE_ID_HASH() and
+       FTC_IMAGE_TYPE_HASH() are enclosed by
+       FT_CONFIG_OPTION_OLD_INTERNALS and hidden from
+       normal clients.
 
-       Fix Savannah bug #28036.
+       For the history of these macros, see the investigation:
+       http://lists.gnu.org/archive/html/freetype/2010-10/msg00022.html
 
-       * src/type1/t1afm.c (t1_get_index): Fix comparison.
+2010-10-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-2009-11-16  Werner Lemberg  <wl@gnu.org>
+       Change the type of FT_MEM_VAL() from FT_ULong to FT_PtrDist.
 
-       Fix compiler warnings.
-       Reported by Kevin Blenkinsopp <arqon@promode.org>.
+       On LLP64 platforms (e.g. Win64), unsigned long (32-bit)
+       cannot cover the memory address (64-bit).  FT_MEM_VAL() is
+       used for hashing only and not dereferred, so using signed
+       type FT_PtrDist is safe.
 
-       * src/sfnt/ttload.c (check_table_dir): Use proper data type.
+       * src/base/ftdbgmem.c (FT_MEM_VAL): Change the type of the
+       return value from FT_ULong to FT_PtrDist.
+       (ft_mem_table_resize): The type of hash is changed to
+       FT_PtrDist.  (ft_mem_table_get_nodep): Ditto.
 
-2009-11-15  Werner Lemberg  <wl@gnu.org>
+2010-10-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       Really fix FreeDesktop bug #21197.
-       This also fixes Savannah bug #28021.
+       Replace "%lx" for memory address by "%p", LLP64 platforms.
 
-       * src/autofit/aflatin.c (af_latin_metrics_check_digits),
-       src/autofit/aflatin2.c (af_latin2_metrics_check_digits): Fix loop.
+       On LLP64 platforms (e.g. Win64), long (32-bit) cannot cover
+       the memory address (64-bit).  Also the casts from the pointer
+       type to long int should be removed to preserve the address
+       correctly.
 
-2009-11-15  Werner Lemberg  <wl@gnu.org>
+       * src/raster/ftraster.c (New_Profile): Replace "%lx" by "%p".
+       (End_Profile) Ditto.
+       * src/truetype/ttinterp.c (Init_Context): Ditto.
 
-       Add tracing messages for advance values.
+2010-10-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
 
-       * src/base/ftobjs.c (FT_Load_Glyph), src/truetype/ttgload.c
-       (TT_Get_HMetrics, TT_Get_VMetrics): Do it.
+       Fix thinko in spline flattening.
 
-2009-11-08  Werner Lemberg  <wl@gnu.org>
+       FT_MAX_CURVE_DEVIATION is dependent on the value of ONE_PIXEL.
 
-       Fix compiler warning.
-       Reported by Jeremy Manson <jeremy.manson@gmail.com>.
+       * src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): Remove it and
+       replace it everywhere with ONE_PIXEL/8.
 
-       * src/truetype/ttgload.c (load_truetype_glyph): Initialize `error'.
+2010-10-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-2009-11-04  Werner Lemberg  <wl@gnu.org>
+       [raccess] Skip unrequired resource access rules by Darwin VFS.
 
-       Remove compiler warning.
-       Reported by Sean McBride <sean@rogue-research.com>.
+       When a resource fork access rule by Darwin VFS could open the
+       resource fork but no font is found in it, the rest of rules
+       by Darwin VFS are skipped.  It reduces the warnings of the
+       deprecated resource fork access method by recent Darwin kernel.
+       Fix MacPorts ticket #18859:
+               http://trac.macports.org/ticket/18859
 
-       * src/tools/apinames.c (read_header_file)<STATE_TYPE>: Use a cast to
-       `int', as specified in the printf(3) man page.
+       * src/base/ftobjs.c (load_face_in_embedded_rfork):
+       When FT_Stream_New() returns FT_Err_Cannot_Open_Stream, it
+       means that the file is possible to be fopen()-ed but zero-sized.
+       Also there is a case that the resource fork is not zero-sized, 
+       but no supported font exists in it.  If a rule by Darwin VFS
+       falls into such cases, there is no need to try other Darwin VFS
+       rules anymore.  Such cases are marked by vfs_rfork_has_no_font.
+       If it is TRUE, the Darwin VFS rules are skipped.
 
-2009-11-04  Werner Lemberg  <wl@gnu.org>
+2010-10-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       Fix Savannah bug #27921.
+       [raccess] Grouping resource access rules based on Darwin VFS.
 
-       * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
-       (cid_face_init), src/type1/t1afm.c (T1_Read_Metrics),
-       src/type1/t1objs.c (T1_Face_Init): Don't use unsigned constant
-       values for rounding if the argument can be negative.
+       MacOS X/Darwin kernel supports a few tricky methods to access
+       a resource fork via ANSI C or POSIX interface.  Current resource
+       fork accessor tries all possible methods to support all kernels.
+       But if a method could open a resource fork but no font is found,
+       there is no need to try other methods older than tested method. 
+       To determine whether the rule index is for Darwin VFS, a local
+       function ftrfork.c::raccess_rule_by_darwin_vfs() is introduced.
+       To use this function in ftobjs.c etc but it should be inlined,
+       it is exposed by ftbase.h.
 
-2009-11-03  Bram Tassyns  <bramt@enfocus.be>
+       * src/base/ftrfork.c (FT_RFork_Rule): New enum type to identify
+       the rules to access the resource fork.
+       (raccess_guess_rec): New structure to bind the rule function and
+       rule enum type.
+       (FT_Raccess_Guess): The list of the rule functions is replaced by
+       (raccess_guess_table): This.  This is exposed to be used by other
+       intra module functions.
+       (raccess_rule_by_darwin_vfs): A function to return a boolean
+       if the rule specified by the rule index is based on Darwin VFS.
 
-       Add basic support for Type1 charstrings in CFF.
-       This fixes Savannah bug #27922.
+2010-10-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/cff/cffgload.c (CFF_Operator, cff_argument_counts): Handle
-       `seac', `sbw', and `setcurrentpoint' opcodes.
-       (cff_compute_bias): Add parameter to indicate the charstring type.
-       Update all callers.
-       (cff_operator_seac): Add parameter for side bearing.
-       (cff_decoder_parse_charstrings): Updated for more Type1 support.
+       Prevent to open a FT_Stream for zero-sized file on non-Unix.
 
-2009-11-03  Werner Lemberg  <wl@gnu.org>
+       builds/unix/ftsystem.c prevents to open an useless stream from
+       zero-sized file and returns FT_Err_Cannot_Open_Stream, but the
+       stream drivers for ANSI C, Amiga and VMS return useless streams.
+       For cross-platform consistency, all stream drivers should act
+       same.
 
-       Return correct `linearHoriAdvance' value for embedded TT bitmaps too.
-       Reported by Jeremy Manson <jeremy.manson@gmail.com>.
+       * src/base/ftsystem.c (FT_Stream_Open): If the size of the opened
+       file is zero, FT_Err_Cannot_Open_Stream is returned.
+       * builds/amiga/src/base/ftsystem.c (FT_Stream_Open): Ditto.
+       * src/vms/ftsystem.c (FT_Stream_Open): Ditto.
 
-       src/truetype/ttgload.c (load_truetype_glyph): Add parameter to
-       quickly load the glyph header only.
-       Update all callers.
-       (tt_loader_init): Add parameter to quickly load the `glyf' table
-       only.
-       Update all callers.
-       (TT_Load_Glyph): Compute linear advance values for embedded bitmap
-       glyphs too.
+2010-10-12  Werner Lemberg  <wl@gnu.org>
 
-2009-11-03  Werner Lemberg  <wl@gnu.org>
+       Fix Savannah bug #31310.
 
-       Improve code readability.
+       * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against
+       invalid `runcnt' values.
 
-       * src/ttgload.c (load_truetype_glyph): Move metrics calculation
-       to...
-       (tt_get_metrics): This new function.
+2010-10-08  Chris Liddell  <chris.liddell@artifex.com>
 
-2009-10-26  Bram Tassyns  <bramt@enfocus.be>
+       Fix Savannah bug #31275.
 
-       Fix Savannah bug #27811.
+       * src/sfnt/ttpost.c: Include FT_INTERNAL_DEBUG_H.
 
-       * src/truetype/ttxgvar.c (ft_var_readpackeddeltas): Fix
-       signed/unsigned mismatch.
+2010-10-06  Werner Lemberg  <wl@gnu.org>
 
-2009-10-19  Ning Dong  <flintning@163.com>
+       [truetype] Improve error handling of `SHZ' bytecode instruction.
+       Problem reported by Chris Evans <scarybeasts@gmail.com>.
 
-       Fix handling of `get' and `put' CFF instructions.
+       * src/truetype/ttinterp.c (Ins_SHZ): Check `last_point'.
 
-       * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_get,
-       cff_op_put>: Appendix B of Adobe Technote #5177 limits the number of
-       elements for the `get' and `put' operators to 32.
-       * src/cff/cffgload.h (CFF_MAX_TRANS_ELEMENTS): Define.
-       (CFF_Decoder): Use it for `buildchar' and remove `len_buildchar'.
+2010-10-05  Werner Lemberg  <wl@gnu.org>
 
-2009-10-18  Werner Lemberg  <wl@gnu.org>
+       Fix Savannah bug #31253.
+       Patch submitted by an anonymous reporter.
 
-       Fix handling of `dup' CFF instruction.
-       Problem and solution reported by Ning Dong <flintning@163.com>.
+       * configure: Use `awk' instead of `sed' to manipulate output of `ls
+       -id'.
 
-       * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_dup>:
-       Increase `args' by 2, not 1.
+2010-10-03  Werner Lemberg  <wl@gnu.org>
 
-2009-10-10  Werner Lemberg  <wl@gnu.org>
+       * Version 2.4.3 released.
+       =========================
 
-       * Version 2.3.11 released.
-       ==========================
 
+       Tag sources with `VER-2-4-3'.
 
-       Tag sources with `VER-2-3-11'.
+       * docs/CHANGES: Updated.
 
        * docs/VERSION.DLL: Update documentation and bump version number to
-       2.3.11.
+       2.4.3
 
-       * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
+       * README, Jamfile (RefDoc),
+       builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
+       builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
        builds/win32/visualc/freetype.dsp,
        builds/win32/visualc/freetype.vcproj,
+       builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
+       builds/win32/visualce/freetype.vcproj,
        builds/win32/visualce/index.html,
-       builds/win32/visualce/freetype.dsp,
-       builds/win32/visualce/freetype.vcproj: s/2.3.10/2.3.11/, s/2310/2311/.
-
-       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 11.
+       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.4.2/2.4.3/, s/242/243/.
 
-       * builds/unix/configure.raw (version_info): Set to 9:22:3.
+       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
 
-2009-10-10  Werner Lemberg  <wl@gnu.org>
+       * builds/unix/configure.raw (version_info): Set to 12:1:6.
 
-       * docs/CHANGES, docs/release: Updated.
+2010-10-03  Werner Lemberg  <wl@gnu.org>
 
-2009-10-10  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       Avoid `configure' issues with symbolic links.
+       Based on a patch from Alexander Stohr <Alexander.Stohr@gmx.de>.
 
-       * src/pcf/pcfread.c (pcf_get_properties): Fix a bug in the nprops
-       truncation.  Reported by Martin von Gagern and Peter Volkov.
-       https://bugs.gentoo.org/288357 and https://bugs.gentoo.org/288256
+       * configure: Compare directories using `ls -id'.
+       Check existence of `reference' subdirectory before creating it.
 
-2009-10-06  Werner Lemberg  <wl@gnu.org>
+2010-10-02  Werner Lemberg  <wl@gnu.org>
 
-       * Version 2.3.10 released.
-       ==========================
+       Fix Savannah bug #31088 (sort of).
 
+       * src/sfnt/ttload.c (tt_face_load_maxp): Always allocate at least 64
+       function entries.
 
-       Tag sources with `VER-2-3-10'.
+2010-10-02  Werner Lemberg  <wl@gnu.org>
 
-       * builds/toplevel.mk (major, minor, patch): Fix regexp to allow more
-       than a single digit.
-       (dist): We now use git.
+       [smooth] Fix splitting of cubics for negative values.
 
-       * docs/VERSION.DLL: Update documentation and bump version number to
-       2.3.10.
+       Reported by Róbert Márki <gsmiko@gmail.com>; see
+       http://lists.gnu.org/archive/html/freetype/2010-09/msg00019.html.
 
-       * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
-       builds/win32/visualc/freetype.dsp,
-       builds/win32/visualc/freetype.vcproj,
-       builds/win32/visualce/index.html,
-       builds/win32/visualce/freetype.dsp,
-       builds/win32/visualce/freetype.vcproj: s/2.3.9/2.3.10/, s/239/2310/.
+       * src/smooth/ftgrays.c (gray_render_cubic): Fix thinko.
 
-       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
+2010-10-01  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * builds/unix/configure.raw (version_info): Set to 9:21:3.
+       Fix Savannah bug #31040.
 
-2009-10-06  Werner Lemberg  <wl@gnu.org>
+       * src/truetype/ttinterp.c (free_buffer_in_size): Remove.
+       (TT_RunIns): Updated.
 
-       Fix `make multi'.
+2010-09-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/cache/ftccache.c, src/cache/ftcsbits.c (FT_COMPONENT): Define.
+       [sfnt] Make error message filling NULL names less verbose.
 
-       * src/sfnt/sfdriver.c: Include FT_INTERNAL_DEBUG_H.
+       * src/sfnt/ttpost.c (load_format_20): Showing 1 summary message
+       when we fill `post' names by NULL, instead of per-entry message.
 
-2009-09-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-09-20  Graham Asher  <graham.asher@btinternet.com>
+           David Bevan  <david.bevan@pb.com>
 
-       [cache] Fix Savannah bug #27441, clean up Redhat bugzilla #513582.
-       Tricky casts in FTC_{CACHE,GCACHE,MRULIST}_LOOKUP_CMP() are removed.
-       Now these functions should be called with FTC_Node or FTC_MruNode
-       variable, and the caller should cast them to appropriate pointers to
-       concrete data.  These tricky casts can GCC-4.4 optimizer (-O2)
-       confused and the crashing binaries are generated.
+       [smooth] Fix and improve spline flattening.
 
-       * src/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Drop tricky cast.
-       Now the 4th argument `node' of this function should be typed as
-       FTC_MruNode.
+       This fixes the flattening of cubic, S-shaped curves and speeds up
+       the handling of both the conic and cubic arcs.
 
-       * src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): For inline
-       implementation, new temporal variable FTC_MruNode `_mrunode' to take
-       the pointer from FTC_MRULIST_LOOKUP_CMP().  For non-inline
-       implementation, tricky cast is dropped.
+       See the discussions on the freetype-devel mailing list in late
+       August and September 2010 for details.
 
-       * src/cache/ftcmanag.c (FTC_SIZE_NODE): New macro casting
-       to FTC_SizeNode.
-       (FTC_Manager_LookupSize): Replace FTC_SizeNode `node' by FTC_MruNode
-       `mrunode', and FTC_SIZE_NODE() is inserted.
-       (FTC_FACE_NODE): New macro casting to FTC_FaceNode.
-       (FTC_Manager_LookupFace) Replace FTC_FaceNode `node' by FTC_MruNode
-       `mrunode', and FTC_FACE_NODE() is inserted.
+       * src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): New macro.
+       (TWorker): Remove `conic_level' and `cubic_level' elements.
+       (gray_render_conic): Simplify algorithm.
+       (gray_render_cubic): New algorithm; details are given in the code
+       comments.
+       (gray_convert_glyph): Remove heuristics.
 
-       * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Change the type of
-       `node' from FTC_INode to FTC_Node.  Extra casting macro FTC_NODE()
-       is dropped.
-       (FTC_ImageCache_LookupScaler): Ditto.
-       (FTC_SBitCache_Lookup): Change the type of `node' from FTC_SNode to
-       FTC_Node.  Extra casting macro FTC_NODE() is dropped.  FTC_SNODE()
-       is inserted.
-       (FTC_SBitCache_LookupScaler): Ditto.
+2010-09-19  Werner Lemberg  <wl@gnu.org>
 
-       * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the type of
-       `node' from FTC_CMapNode to FTC_Node.  Extra casting macro
-       FTC_NODE() is dropped, FTC_CMAP_NODE() is inserted.
+       Minor fixes.
 
-2009-09-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/cff/cffload.c (cff_charset_compute_cids): `charset->sids[i]'
+       is `FT_UShort'.
+       (cff_index_access_element): Don't use additions in comparison.
+       * src/sfnt/ttpost.c (load_format_20): Make `post_limit' of type
+       `FT_Long'.
+       Don't use additions in comparison.
+       Improve tracing messages.
+       (load_format_25, load_post_names): Make `post_limit' of type
+       `FT_Long'.
 
-       [cache, psaux, type1] Fix for multi build.
-       In multi build, some cpp functions are left as unresolved symbols.
+2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/cache/ftcbasic.c: Include FT_INTERNAL_DEBUG_H for FT_TRACE1().
+       [cff] Truncate the element length at the end of the stream.
+       See Savannah bug #30975.
 
-       * src/psaux/t1decode.c: Include FT_INTERNAL_CALC_H for
-       FIXED_TO_INT().
-       * src/type1/t1gload.c: Ditto.
-       * src/type1/t1objs.c: Ditto.
+       * src/cff/cffload.c (cff_index_access_element): `off2', the offset
+       to the next element is truncated at the end of the stream to prevent
+       invalid I/O.  As `off1', the offset to the requested element has
+       been checked by FT_STREAM_SEEK(), `off2' should be checked
+       similarly.
 
-2009-09-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       [autofit] Fix for multi build.
+       [cff] Ignore CID > 0xFFFFU.
+       See Savannah bug #30975.
 
-       * src/autofit/afmodule.h: Include FT_INTERNAL_OBJECTS_H to use
-       FT_DECLARE_MODULE() macro in multi build.
+       * src/cff/cffload.c (cff_charset_compute_cids): Ignore CID if
+       greater than 0xFFFFU.  CFF font spec does not mention maximum CID in
+       the font, but PostScript and PDF spec define that maximum CID is
+       0xFFFFU.
 
-       * src/autofit/aflatin.c: Include <ft2build.h> to handle
-       FT_ADVANCES_H correctly in multi build.
+2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-2009-09-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       [cff] Make trace message in cff_charset_load() verbose.
+       See Savannah bug #30975.
 
-       [cache] Check the face filled by FTC_Manager_LookupFace().
+       * src/cff/cffload.c (cff_charset_load): Report the original `nleft'
+       and truncated `nleft'.
 
-       * src/cache/ftcbasic.c (ftc_basic_family_get_count): Return
-       immediately if FTC_Manager_LookupFace() fills face by NULL.  Such
-       case can occur when the code is optimized by GCC-4.2.x.
+2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-2009-09-23  Werner Lemberg  <wl@gnu.org>
+       [cff] Correct `max_cid' from CID array length to max CID.
+       See Savannah bug #30975.
 
-       * docs/CHANGES: Updated.
+       * src/cff/cffload.c (cff_charset_compute_cids): Don't increment
+       max_cid after detecting max CID.  The array CFF_Charset->cids is
+       allocated by max_cid + 1.
+       (cff_charset_cid_to_gindex): Permit CID is less than or equal to
+       CFF_Charset->max_cid.
+       * src/cff/cffobjs.c (cff_face_init): FT_Face->num_glyphs is
+       calculated as CFF_Charset->max_cid + 1.
 
-2009-09-12  Werner Lemberg  <wl@gnu.org>
+2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       [raster] Fix 5-levels grayscale output.
-       This was broken since version 2.3.0.
+       [truetype] Sanitize the broken offsets in `loca'.
+       See Savannah bug #31040.
 
-       * src/raster/ftraster.c (count_table): Use pre-2.3.0 values (which
-       were then computed dynamically).
-       (Vertical_Gray_Sweep_Step): Updated.
+       * src/truetype/ttpload.c (tt_face_get_location): If `pos1', the
+       offset to the requested entry in `glyf' exceeds the end of the
+       table, return offset=0, length=0.  If `pos2', the offset to the next
+       entry in `glyf' exceeds the end of the table, truncate the entry
+       length at the end of `glyf' table.
 
-       (ft_black_render): Initialize `worker->gray_lines' (problem found by
-       valgrind).
+2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       (FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Dont' #undef, just
-       comment out.
+       [sfnt] Prevent overrunning in `post' table parser.
+       See Savannah bug #31040.
 
-2009-09-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/sfnt/ttpost.c (load_post_names): Get the length of `post'
+       table and pass the limit of `post' table to load_format_20() and
+       load_format_25().
+       (load_format_20): Stop the parsing when we reached at the limit of
+       `post' table.  If more glyph names are required, they are filled by
+       NULL names.
 
-       Improve configure.raw for cross build.
+2010-09-17  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * builds/unix/configure.raw: Remove temporal files created by the
-       suffix checking for CC_BUILD.  Set XX_ANSIFLAGS and XX_CFLAGS when
-       cross compiler is GCC.  AC_PROG_CC checks whether the cross compiler
-       is GCC, its result is stored in GCC.
+       [truetype] Don't duplicate size->twilight structure to be freed.
+       See Savannah bug #31040 for detail.
 
-2009-09-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/truetype/ttinterp.c (free_buffer_in_size): Don't duplicate
+       FT_GlyphZoneRec size->twilight to be freed.  If duplicated,
+       FT_FREE() erases the duplicated pointers only and leave original
+       pointers.  They can cause the double-free crash when the burst
+       errors occur in TrueType interpreter and free_buffer_in_size() is
+       invoked repeatedly.
 
-       [BDF] Modify hash API to take size_t value instead of void *.
+2010-09-15  Werner Lemberg  <wl@gnu.org>
 
-       The hash API in BDF driver is designed to be generic, it takes
-       void * typed data.  But BDF driver always gives an unsigned long
-       integer (the index to a property).  To reduce non-essential
-       casts from unsigned long to void* and from void* to unsigned
-       long, the hash API is changed to take size_t integer.
-       The issue of incompatible cast between unsigned long and void*
-       on LLP64 platform is reported by NightStrike from MinGW-Win64
-       project.  See
-       http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
+       Make bytecode debugging with FontForge work again.
 
-       * src/bdf/bdf.h: The type of hashnode->data is changed from
-       void* to size_t.
+       * src/truetype/ttinterp.c (TT_RunIns): Don't call
+       `free_buffer_in_size' in case of error if a debugger is active.
 
-       * src/bdf/bdflib.c (hash_insert): Get size_t data, instead of
-       void* data.
-       (bdf_create_property): Get the name length of new property by
-       size_t variable, with a cut-off at FT_ULONG_MAX.
-       (_bdf_set_default_spacing): Get the name length of the face by
-       size_t variable, with a cut-off at 256.
-       (bdf_get_property): Get the property id by size_t variable to
-       reduce the casts between 32-bit prop ID & hashnode->data during
-       simple copying.
-       (_bdf_add_property): Ditto.
-       (_bdf_parse_start): Calculate the index to the property array
-       by size_t variable.
-       (bdf_get_font_property): Drop a cast to unsigned long.
+2010-09-14  Werner Lemberg  <wl@gnu.org>
 
-2009-09-10  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       Improve tracing messages.
 
-       [Win64] Improve the computation of random seed from stack address.
+       * src/truetype/ttinterp.c (TT_RunIns): Improve wording of tracing
+       message.
+       * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Add
+       tracing message.
+       * src/truetype/ttgload.c (tt_loader_init): Add tracing message.
+       * src/cache/ftcsbits.c (ftc_snode_load): Emit tracing message if
+       glyph doesn't fit into a small bitmap container.
+
+2010-09-13  Werner Lemberg  <wl@gnu.org>
+
+       Fix minor issues reported by <muktha.narayan@wipro.com>.
+
+       * src/autofit/aflatin.c (af_latin_compute_stem_width): Remove
+       redundant conditional check.
+       * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Ditto.
+       * src/cff/cffload.c (cff_encoding_load): Remove conditional check
+       which always evaluates to `true'.
+       * src/pshinter/pshalgo.c (ps_glyph_interpolate_strong_points):
+       Ditto.
+       * src/truetype/ttinterp.c (Ins_IUP): Ditto.
+       * src/cid/cidgload.c (cid_slot_load_glyph): Don't check for NULL if
+       value is already dereferenced.
+       * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix check of `face'.
 
-       On LLP64 platform, the conversion from pointer to FT_Fixed need
-       to drop higher 32-bit.  Explict casts are required. Reported by
-       NightStrike from MinGW-w64 project.  See
-       http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
+2010-08-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/cff/cffgload.c: Convert the pointers to FT_Fixed explicitly.
+       Ignore the environmental setting of LIBTOOL.
+       Patch is suggested by Adrian Bunk, to prevent unexpected
+       reflection of environmental LIBTOOL.  See:
+       http://savannah.nongnu.org/patch/?7290
 
-       * src/psaux/t1decode.c: Ditto.
+       * builds/unix/unix-cc.in: LIBTOOL is unconditionally set to
+       $(FT_LIBTOOL_DIR)/libtool.  FT_LIBTOOL_DIR is set to $(BUILD_DIR)
+       by default.
+       * configure: When configured for the building out of source tee,
+       FT_LIBTOOL_DIR is set to $(OBJ_DIR).
 
+2010-08-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-2009-09-03  Werner Lemberg  <wl@gnu.org>
+       [truetype] Decrease the trace level catching the interpreter error.
 
-       [raster] Improvements for stand-alone mode.
+       * src/truetype/ttinterp.c (TT_RunIns): Decrease the trace level
+       showing the error when the interpreter returns with an error,
+       from FT_TRACE7() to FT_TRACE1().
 
-       * src/raster/rules.mk: Don't handle ftmisc.h.  It is needed for
-       stand-alone mode only.
+2010-08-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/raster/ftmisc.h (FT_MemoryRec , FT_Alloc_Func, FT_Free_Func,
-       FT_Realloc_Func): Copy declarations from ftsystem.h.
+       [truetype] Prevent bytecode reuse after the interpretation error.
 
-2009-09-02  Bram Tassyns  <bramt@enfocus.be>
+       * src/truetype/ttinterp.c (free_buffer_in_size): New function to
+       free the buffer allocated during the interpretation of this glyph.
+       (TT_RunIns): Unset FT_Face->size->{cvt_ready,bytecode_ready} if
+       an error occurs in the bytecode interpretation.  The interpretation
+       of invalid bytecode may break the function definitions and referring
+       them in later interpretation is danger.  By unsetting these flags,
+       `fpgm' and `prep' tables are executed again in next interpretation.
 
-       Improve vertical metrics calculation (Savannah bug #27364).
+       This fixes Savannah bug #30798, reported by Robert Święcki.
 
-       The calculation of `vertBearingX' is not defined in the OTF font
-       spec so FreeType does a `best effort' attempt.  However, this value
-       is defined in the PDF and PostScript specs, and that algorithm is
-       better than the one FreeType currently uses:
+2010-08-29  Werner Lemberg  <wl@gnu.org>
 
-         FreeType: Use the middle of the bounding box as the X coordinate
-                   of the vertical origin.
+       [ftraster] Pacify compiler.
 
-         Adobe PDF spec: Use the middle of the horizontal advance vector as
-                         the X coordinate of the vertical origin.
+       * src/raster/ftraster.c (ft_black_new) [_STANDALONE_]: `memory' is
+       not used.
 
-       FreeType's algorithm goes wrong if you have a really small glyph
-       (like the full-width, circle-like dot at the end of the sentence, as
-       used in CJK scripts) with large bearings.  With the FreeType
-       algorithm this dot gets centered on the baseline; with the PDF
-       algorithm it gets the correct location (in the top right).  Note
-       that this is a serious issue, it's like printing the dot at the end
-       of a Roman sentence at the center of the textline instead of on the
-       baseline like it should. So i believe the PDF spec's algorithm
-       should be used in FreeType as well.
+2010-08-29  Werner Lemberg  <wl@gnu.org>
 
-       The `vertBearingY' value for such small glyphs is also very strange
-       if no `vmtx' information is present, since the height of the bbox is
-       not representable for the height of the glyph visually (the
-       whitespace up to the baseline is part of the glyph).  The fix also
-       includes some code for a better estimate of `vertBearingY'.
+       [cff] Allow SIDs >= 65000.
 
-       * src/base/ftobjs.c (ft_synthesize_vertical_metrics): `vertBearingX'
-       is now calculated as described by the Adobe PDF Spec.  Estimate for
-       `vertBearingY' now works better for small glyphs completely above or
-       below the baseline into account.
+       * src/cff/cffload.c (cff_charset_load): Fix change from 2009-03-20:
+       The threshold for SIDs is not applicable here.  I misinterpreted the
+       `SID values 65000 and above are available for implementation use'
+       sentence in the CFF specification.
 
-       * src/cff/cffgload.c (cff_slot_load): `vertBearingX' is now
-       calculated as described by the Adobe PDF Spec.  Vertical metrics
-       information was always ignored when FT_CONFIG_OPTION_OLD_INTERNALS
-       was not defined.
+       Problem reported by Ivan Ninčić <inincic@pdftron.com>.
 
-       * src/truetype/ttgload.c (compute_glyph_metrics): `vertBearingX' is
-       now calculated as described by the Adobe PDF Spec.
+2010-08-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-2009-09-01  John Tytgat  <John.Tytgat@esko.com>
+       Force hinting when the font lacks its familyname.
 
-       Fix custom cmap for empty Type 1 font (Savannah bug #27294).
+       In Type42 or Type11 font embedded in PostScript & PDF, TrueType sfnt
+       stream may lack `name' table because they are not required.  Hinting
+       for nameless fonts is safer for PDFs including embedded Chinese
+       fonts.  Written by David Bevan, see:
 
-       * include/freetype/internal/t1types.h (T1_EncodingRecRec_): Update
-       comment to reflect revised code_last meaning.
-       * src/type1/t1load.c (T1_Open_Face), src/type42/t42objs.c
-       (T42_Open_Face): Assign max_char as highest character code + 1 and
-       use this for T1_EncodingRecRec_::code_last.
-       * src/psaux/t1cmap.c (t1_cmap_custom_init): Follow revised
-       T1_EncodingRecRec_::code_last meaning.
+       http://lists.gnu.org/archive/html/freetype-devel/2010-08/msg00021.html
+       http://lists.freedesktop.org/archives/poppler/2010-August/006310.html
 
-2009-08-25  Werner Lemberg  <wl@gnu.org>
+       * src/truetype/ttobjs.c (tt_check_trickyness): If a NULL pointer by
+       nameless font is given, TRUE is returned to enable hinting.
 
-       Fix rendering of horizontally compressed CFFs.
-       Bug reported by Ivan Nincic <inincic@pdftron.com>.
+2010-08-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/cff/cffgload.c (cff_slot_load): Thinko: Check `xx' element of
-       `font_matrix' also.
+       Register yet another tricky TrueType font.
 
-       * docs/CHANGES: Updated.
+       * src/truetype/ttobjs.c (tt_check_trickyness): Add `HuaTianKaiTi?',
+       a Kaishu typeface paired with `HuaTianSongTi?' by Huatian
+       Information Industry.
 
-2009-08-03  suyu0925@gmail.com
+2010-08-17  Teijo Kinnunen <Teijo.Kinnunen@nuance.com>
 
-       Don't call `ft_fseek' every time when executing `ft_fread'.
+       Fix Savannah bug #30788.
 
-       * src/base/ftstream.c (FT_Stream_Seek), src/base/ftsystem.c
-       (ft_ansi_stream_io): Implement it.
+       * src/cache/ftccache.c (FTC_Cache_Clear): Check `cache->buckets' for
+       NULL too.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-08-10  Werner Lemberg  <wl@gnu.org>
 
-       sfnt: Cast a charcode to 32-bit in cmap format 14 parser.
-       
-       * src/sfnt/ttcmap.c (tt_cmap14_char_var_index,
-       tt_cmap14_char_var_isdefault, tt_cmap14_char_variants,
-       tt_cmap14_variant_chars): Correct mismatches from
-       FT_CMap_CharVarIndexFunc prototype, FT_ULong arguments
-       are replaced by FT_UInt32 arguments.
+       Try to fix Savannah bug #30717 (and probably #30719 too).
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/smooth/ftsmooth.c (ft_smooth_render_generic): Add another
+       overflow test for `width' and `height'.
 
-       sfnt: Cast a charcode to 32-bit in cmap format 12 parser.
+2010-08-06  Werner Lemberg  <wl@gnu.org>
 
-       * src/sfnt/ttcmap.c (tt_cmap12_char_next):
-       Insert explicit cast from FT_UFast to FT_UInt32
-       for return value.
+       * Version 2.4.2 released.
+       =========================
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       psaux: Fix a few casts to FT_Int32 value.
+       Tag sources with `VER-2-4-2'.
 
-       * src/psaux/t1decode.c (t1_decoder_parse_charstrings):
-       Fix a few casts setting `value' from FT_Long to FT_Int32,
-       because `value' is typed as FT_Int32 since 2009-06-22.
+       * docs/CHANGES: Updated.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * docs/VERSION.DLL: Update documentation and bump version number to
+       2.4.2
 
-       sfnt: Fix a data type mismatching with its source.
+       * README, Jamfile (RefDoc),
+       builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
+       builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
+       builds/win32/visualc/freetype.dsp,
+       builds/win32/visualc/freetype.vcproj,
+       builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
+       builds/win32/visualce/freetype.vcproj,
+       builds/win32/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.4.1/2.4.2/, s/241/242/.
 
-       * src/sfnt/ttcmap.c (tt_cmap13_char_next): Fix the
-       type of `gindex' from FT_ULong to FT_UInt because
-       it is set by FT_UInt tt_cmap13_char_map_binary() or
-       TT_CMap13->cur_gindex.
+       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * builds/unix/configure.raw (version_info): Set to 12:0:6.
 
-       sfnt: Extend a few local variables to load 32-bit values.
+2010-08-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/sfnt/ttkern.c (tt_face_load_kern): Extend `count'
-       and `kern' to load 32-bit values.
+       Fix Savannah bug #30648.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/base/ftobjs.c (FT_Done_Library): Specify the order of font
+       drivers during the face closing process.  Type42 faces should be
+       closed before TrueType faces, because a Type42 face refers to
+       another internal TrueType face which is created from sfnt[] array on
+       the memory.
 
-       pfr: Extend `num_aux' to take 32-bit value.
+2010-08-06  Yuriy Kaminskiy  <yumkam@mail.ru>
 
-       * src/pfr/pfrload.c (pfr_phy_font_load): Extend
-       `num_aux' to load 32-bit value.
+       [raster] Fix valgrind warning.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/raster/ftraster.c (Decompose_Curve) <default>: Access point[0]
+       only if we don't hit `limit'.
 
-       pcf: Truncate FT_ULong `nprops' to fit to int PCF_Face->nprops.
+2010-08-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/pcf/pcfread.c (pcf_get_properties): Load `nprops'
-       as FT_ULong value from PCF file, but truncate it as
-       int to fit PCF_Face->nprops.  The number of truncated
-       properties is shown in the trace message.
+       Fix Savannah bug #30658.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/base/ftobjs.c (Mac_Read_POST_Resource): Check that the total
+       length of collected POST segments does not overrun the allocated
+       buffer.
 
-       gxvalid: Extend a few local variables to reduce the casts.
+2010-08-06  Yuriy Kaminskiy  <yumkam@mail.ru>
 
-       * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate):
-       Extend `type' and `rest' to take FT_ULong values.
+       Fix conditional usage of FT_MulFix_i386.
+       With -ansi flag, gcc does not define `i386', only `__i386__'.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in:
+       s/i386/__i386__/.
 
-       gxvalid: Extend `settingTable' to take 32-bit offset.
+2010-08-05  Werner Lemberg  <wl@gnu.org>
 
-       * src/gxvalid/gxvfeat.c (gxv_feat_name_validate):
-       Extend `settingTable' to take 32-bit offset.
+       Fix Savannah bug #30657.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/truetype/ttinterp.c (BOUNDSL): New macro.
+       Change `BOUNDS' to `BOUNDSL' where appropriate.
 
-       autofit: Cast FT_Long glyph_count to compare with FT_UInt GID.
+       * src/truetype/ttinterp.h (TT_ExecContextRec): Fix type of
+       `cvtSize'.
 
-       * src/autofit/afglobal.c (af_face_globals_is_digit,
-       af_face_globals_compute_script_coverage): Cast FT_Long
-       globals->glyph_count to FT_ULong, to compare with FT_UInt
-       gindex.
+2010-08-05  Werner Lemberg  <wl@gnu.org>
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       Fix Savannah bug #30656.
 
-       smooth: Exclude 16-bit system in invalid pitch/height check.
+       * src/type42/t42parse.c (t42_parse_sfnts): Protect against negative
+       string_size.
+       Fix comparison.
 
-       * src/smooth/ftsmooth.c (ft_smooth_render_generic):
-       pitch and height are typed as FT_UInt but checked to fit
-       16-bit range, to avoid the overflows.  On 16-bit system,
-       this checking inserts a conditional that never occurs.
+2010-08-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-2009-07-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       [cff] Don't use any values in decoder after parsing error.
 
-       cff: Type large constants > 0x7FFF as long for 16-bit systems.
+       * src/cff/cffgload.c (cff_slot_load): Skip the evaluations
+       of the values in decoder, if cff_decoder_parse_charstrings()
+       returns any error.
 
-       * src/cff/cffload.c (cff_charset_load): Type large
-       constants > 0x7FFF as long, because normal constants
-       are typed signed integer that is less than 0x8000 on
-       16-bit systems.
+2010-08-04  Werner Lemberg  <wl@gnu.org>
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       Fix Savannah bug #30644.
 
-       base: Remove an unused variable.
+       * src/base/ftstream.c (FT_Stream_EnterFrame): Fix comparison.
 
-       * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove an
-       unused variable `library'.  glyph->library is used.
+2010-08-04  Werner Lemberg  <wl@gnu.org>
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       `make devel' fails if FT_CONFIG_OPTION_OLD_INTERNALS is set.
 
-       cache: Check higher bits in flags for non ILP32 systems.
+       * devel/ftoption.h: Synchronize with
+       include/freetype/config/ftoption.h.
 
-       4 public functions ought to take FT_ULong flags, but take
-       FT_UInt flags. To keep binary compatibility, we drop higher
-       bits on non ILP32 platforms,
-               ILP64 systems: No drop occurs.
-               LP64 systems: Higher bits are not used.
-               16-bit systems: Drop can occur.
-       See
-       http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00065.html
-       These functions will be refined to take FT_ULong flags in
-       next bump with incompatible API change.
+2010-08-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/cache/ftcbasic.c (FTC_ImageCache_Lookup):
-       Check `flags' in `type', the 2nd argument.
-       (FTC_SBitCache_Lookup): Ditto.
-       (FTC_ImageCache_LookupScaler): Check `load_flags',
-       the 3rd argument.
-       (FTC_SBitCache_LookupScaler): Ditto.
+       [cff] Improve stack overflow test.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/cff/cffgload.c (cff_decoder_parse_charstrings): Check stack
+       after execution of operations too.
 
-       sfnt: Ignore invalid GIDs in glyph name lookup.
+2010-07-18  Werner Lemberg  <wl@gnu.org>
 
-       * include/freetype/internal/fttrace.h:
-       New trace module for sfdriver.c is added.
+       Add reference counters and to FT_Library and FT_Face objects.
 
-       * src/sfnt/sfdriver.c (sfnt_get_name_index):
-       Restrict glyph name lookup to FT_UInt GID.
-       Genuine TrueType can hold 16-bit glyphs.
+       * include/freetype/freetype.h (FT_Reference_Face): New function.
+       * include/freetype/ftmodapi.h (FT_Rererence_Library): New function.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * include/freetype/internal/ftobjs.h (FT_Face_InternalRec,
+       FT_LibraryRec): New field `refcount'.
 
-       pcf: Fix a comparison between FT_Long and FT_ULong.
+       * src/base/ftobjs.c (FT_Open_Face, FT_New_Library): Handle
+       `refcount'.
+       (FT_Reference_Face, FT_Reference_Library): Implement new functions.
+       (FT_Done_Face, FT_Done_Library): Handle `refcount'.
 
-       * src/pcf/pcfread.c (pcf_get_bitmaps): Return an error
-       if PCF_Face->nemetrics is negative.
+       * docs/CHANGES: Updated.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-07-18  Werner Lemberg  <wl@gnu.org>
 
-       gxvalid: Guarantee `nFeatureFlags' size up to 32-bit.
+       * Version 2.4.1 released.
+       =========================
 
-       * src/gxvalid/gxvmort.c (gxv_mort_featurearray_validate):
-       Extend the 3rd argument `nFeatureFlags' to FT_ULong.
-       * src/gxvalid/gxvmort.h: Ditto.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       Tag sources with `VER-2-4-1'.
 
-       sfnt: Insert explicit cast for LP64 system.
+       * docs/CHANGES: Updated.
 
-       * src/sfnt/ttkern.c (tt_face_load_kern): Insert
-       cast from unsigned long to FT_UInt32.
+       * docs/VERSION.DLL: Update documentation and bump version number to
+       2.4.1.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * README, Jamfile (RefDoc),
+       builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
+       builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
+       builds/win32/visualc/freetype.dsp,
+       builds/win32/visualc/freetype.vcproj,
+       builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
+       builds/win32/visualce/freetype.vcproj,
+       builds/win32/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.4.0/2.4.1/, s/240/241/.
 
-       gxvalid: Guarantee `just' table size upto 32-bit.
+       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
 
-       * src/gxvalid/gxvjust.c (gxv_just_validate):
-       The type of `offset' is changed from FT_UInt to
-       FT_Offset, for 16-bit platforms.
+       * builds/unix/configure.raw (version_info): Set to 11:1:5.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-07-17  Werner Lemberg  <wl@gnu.org>
 
-       gxvalid: Guarantee `trak' table size upto 32-bit.
+       [cff] Final try to fix `hintmask' and `cntrmask' limit check.
 
-       * src/gxvalid/gxvtrak.c (gxv_trak_validate):
-       The type of `offset' is changed from FT_UInt to
-       FT_Offset, for 16-bit platforms.
+       Problem reported by Tobias Wolf <towolf@gmail.com>.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/cff/cffgload.c (cff_decoder_parse_charstrings)
+       <cff_op_hintmask>: Sigh.  I'm apparently too silly to fix this
+       correctly in less than three tries.
 
-       type1: Fix a data type mismatching with its source.
+2010-07-12  Werner Lemberg  <wl@gnu.org>
 
-       * include/freetype/internal/t1types.h: The type of
-       T1_Face->buildchar is matched with T1_Decorder->top.
+       * Version 2.4.0 released.
+       =========================
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       pfr: Fix a data type mismatching with its source.
+       Tag sources with `VER-2-4-0'.
 
-       * src/pfr/pfrtypes.h: The type of PFR_KernItem->offset
-       is extended from FT_UInt32 to FT_Offset, because it is
-       calculated with the pointer difference, in
-       pfr_extra_item_load_kerning_pairs().
+       * docs/CHANGES: Updated.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * docs/VERSION.DLL: Update documentation and bump version number to
+       2.4.0.
 
-       pfr: Fix a data type mismatching with its source.
+       * README, Jamfile (RefDoc),
+       builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
+       builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
+       builds/win32/visualc/freetype.dsp,
+       builds/win32/visualc/freetype.vcproj,
+       builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
+       builds/win32/visualce/freetype.vcproj,
+       builds/win32/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.3.12/2.4.0/, s/2312/240/.
 
-       * src/pfr/pfrtypes.h: The type of PFR_PhysFont->chars_offset
-       is extended from FT_UInt32 to FT_Offset, because it is
-       calculated with the pointer difference in pfr_phy_font_load().
+       * include/freetype/freetype.h (FREETYPE_MINOR): Set to 4.
+       (FREETYPE_PATCH): Set to 0.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * builds/unix/configure.raw (version_info): Set to 11:0:5.
 
-       pfr: Fix a data type mismatching with its source.
+2010-07-12  Werner Lemberg  <wl@gnu.org>
 
-       * src/pfr/pfrtypes.h: The type of PFR_PhyFont->bct_offset
-       is extended from FT_UInt32 to FT_Long, because it is
-       loaded by FT_STREAM_POS() in pfr_phy_font_load().
+       Remove C++ warnings.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       */*: Initialize pointers where necessary to make g++ happy.
 
-       smooth: Improve the format in debug message.
+2010-07-12  malc  <av1474@comtv.ru>
+           Richard Henderson  <rth@redhat.com>
 
-       * src/smooth/ftgrays.c (gray_dump_cells): Improve the
-       format specifications to dump variables.
+       Fix type-punning issues with C++.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * include/freetype/internal/ftmemory.h (FT_ASSIGNP) [__cplusplus]:
+       Emulate a `typeof' operator with an inline template which uses
+       `static_cast'.
 
-       sfnt: Fix a data type mismatching with its source.
+2010-07-11  Werner Lemberg  <wl@gnu.org>
 
-       * src/sfnt/sfobjs.c (sfnt_load_face): The type of
-       local `flags' is matched with FT_Face->face_flags.
+       Fix C++ compilation issue.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/tools/apinames.c (names_dump) <OUTPUT_WATCOM_LBC>: Fix
+       type of `dot' variable.
 
-       psaux: Fix a data type mismatching with its source.
+2010-07-10  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * include/freetype/internal/psaux.h: The type of
-       T1_DecorderRec.buildchar is matched with
-       T1_DecorderRec.top.
+       Fix another case reported in Savannah bug #30373.
+       Permit a face for Type1, Type42 and CFF without charmap,
+       patch by Tor Andersson.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/type1/t1objs.c (T1_Face_Init): Reset the error if it
+       is FT_Err_No_Unicode_Glyph_Name.
+       * src/type42/t42objs.c (T42_Face_Init): Ditto.
+       * src/cff/cffobjs.c (cff_face_init): Ditto.
 
-       truetype: Extend TrueType GX packed deltas to FT_Offset.
+2010-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/truetype/ttgxvar.c (ft_var_readpackeddeltas):
-       The type of 2nd argument `delta_cnt' is changed from
-       FT_Int to FT_Offset, because its source can be cvt
-       table size calculated from stream position.
+       Use defined macros to set {platform,encoding}_id.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/bdf/bdfdrivr.c: Include ttnameid.h and use macros to
+       set charmap.{platfom,encoding}_id.
+       * src/pcf/pcfdrivr.c: Ditto.
+       * src/winfonts/winfnt.c: Ditto.
+       * src/type1/t1objs.c: Ditto.
+       * src/type42/t42objs.c: Ditto.
+       * src/cff/cffobjs.c: Ditto.
+       * src/pfr/pfrobjs.c: Ditto.
+
+2010-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       Fix Savannah bug #30373.
+       Too serious check of errors by `FT_CMap_New' since 2010-07-04
+       is fixed. Reported by Tor Andersson.
+
+       * include/freetype/fterrdef.h
+       (PSnames_Err_No_Unicode_Glyph_Name): New error code to
+       indicate the Unicode charmap synthesis failed because
+       no Unicode glyph name is found.
+
+       * src/psnames/psmodule.c (ps_unicodes_init): Return
+       PSnames_Err_No_Unicode_Glyph_Name when no Unicode glyph name
+       is found in the font.
+       * src/cff/cffcmap.c (cff_cmap_unicode_init): Return
+       CFF_Err_No_Unicode_Glyph_Name when no SID is available.
+
+       * src/type1/t1objs.c (T1_Face_Init): Proceed if `FT_CMap_New'
+       is failed by the lack of Unicode glyph name.
+       * src/type42/t42objs.c (T42_Face_Init): Ditto.
+       * src/cff/cffobjs.c (cff_face_init): Ditto.
 
-       truetype: Extend mmvar_len to hold size_t values.
+2010-07-09  Ken Sharp  <ken.sharp@artifex.com>
 
-       * src/truetype/ttgxvar.h: The type of
-       GX_BlendRec.mmvar_len is changed from FT_Int to
-       FT_Offset, because TT_Get_MM_Var() calculates it
-       by sizeof() results.
+       Make ftraster.c compile in stand-alone mode with MSVC compiler.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/raster/ftmisc.h (FT_Int64) [_WIN32, _WIN64]: Fix typedef
+       since there is no `inttypes.h' for MSVC.
 
-       truetype: Check invalid function number in IDEF instruction.
+2010-07-08  Werner Lemberg  <wl@gnu.org>
 
-       * src/truetype/ttinterp.c (Ins_IDEF): Check
-       if the operand fits to 8-bit opcode limitation.
+       Fix Savannah bug #30361.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/truetype/ttinterp.c (Ins_IUP): Fix bounds check.
 
-       truetype: Check invalid function number in FDEF instruction.
+2010-07-06  Werner Lemberg  <wl@gnu.org>
 
-       * src/truetype/ttinterp.c (Ins_FDEF): Check
-       if the operand fits 16-bit function number.
+       Pacify compiler.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/cff/cffload.c (cff_index_get_pointers): Initialize
+       `new_bytes'.
 
-       truetype: Truncate the deltas of composite glyph at 16-bit values.
+2010-07-05  Eugene A. Shatokhin  <spectre@ispras.ru>
 
-       * src/truetype/ttgload.c (load_truetype_glyph):
-       Insert cast from FT_Long (deltas[i].{x,y}) to
-       FT_Int16 in the summation of deltas[] for composite
-       glyphs.  Because deltas[i] is typed as FT_Pos,
-       its component x, y are typed as FT_Long, but
-       their sources are always FT_Int16 when they are
-       loaded by ft_var_readpackeddeltas().  However,
-       the limitation about the summed deltas is unclear.
+       Fix Savannah bug #27648.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/base/ftobjs.c (ft_remove_renderer, FT_Add_Module): Call
+       `raster_done' only if we have an outline glyph format.
 
-       truetype: Truncate the instructions upto 16-bit per a glyph.
+2010-07-05  Werner Lemberg  <wl@gnu.org>
 
-       * src/truetype/ttgload.c (TT_Hint_Glyph): Truncate
-       the instructions upto 16-bit length per a glyph.
+       Fix Savannah bug #30030.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * builds/win32/*/freetype.vcproj: Add ftxf86.c.
 
-       truetype: Cast the numerical operands to 32-bit for LP64 systems.
+2010-07-05  Werner Lemberg  <wl@gnu.org>
 
-       * src/truetype/ttinterp.c (Ins_SPHIX, INS_MIAP,
-       Ins_MIRP): Insert cast from long (args[], the
-       operands passed to TrueType operator) to FT_Int32
-       (the argument of TT_MulFix14()).
+       [cff] Next try to fix `hintmask' and `cntrmask' limit check.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       Problem reported by malc <av1474@comtv.ru>.
 
-       truetype: Cast the project vector to 32-bit for LP64 system.
+       * src/cff/cffgload.c (cff_decoder_parse_charstrings)
+       <cff_op_hintmask>: It is possible that there is just a single byte
+       after the `hintmask' or `cntrmask', e.g., a `return' instruction.
+
+2010-07-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+
+       Restrict the number of the charmaps in a rogue-compatible mode.
+       Fix for Savannah bug #30059.
+
+       * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Replace `16' the
+       minimum character code passed by a legacy rogue client by...
+       * include/freetype/config/ftoption.h (FT_MAX_CHARMAP_CACHEABLE):
+       This.  It is undefined when FT_CONFIG_OPTION_OLD_INTERNALS is
+       undefined (thus the rogue client compatibility is not required).
+
+       * src/cff/cffobjs.c (cff_face_init): Abort the automatic
+       selection or synthesis of Unicode cmap subtable when the charmap
+       index exceeds FT_MAX_CHARMAP_CACHEABLE.
+       * src/sfnt/ttcmap.c (tt_face_build_cmaps): Issue error message
+       when the charmap index exceeds FT_MAX_CHARMAP_CACHEABLE.
+
+       * src/base/ftobjs.c (find_unicode_charmap): When Unicode charmap
+       is found after FT_MAX_CHARMAP_CACHEABLE, ignore it and search
+       earlier one.
+       (find_variant_selector_charmap): When UVS charmap is found after
+       FT_MAX_CHARMAP_CACHEABLE, ignore it and search earlier one.
+       (FT_Select_Charmap): When a charmap matching with requested
+       encoding but after FT_MAX_CHARMAP_CACHEABLE, ignore and search
+       earlier one.
+       (FT_Set_Charmap): When a charmap matching with requested
+       charmap but after FT_MAX_CHARMAP_CACHEABLE, ignore and search
+       earlier one.
+       (FT_Get_Charmap_Index): When a requested charmap is found
+       after FT_MAX_CHARMAP_CACHEABLE, return the inverted charmap
+       index.
+
+2010-07-04  Werner Lemberg  <wl@gnu.org>
+
+       TrueType hinting is no longer patented.
 
-       * src/truetype/ttinterp.c (Project, DualProject):
-       Insert casts from FT_Pos (the arguments `dx', `dy')
-       to FT_UInt32 (the argument to TT_DotFix14()).
+       * include/freetype/config/ftoption.h, devel/ftoption.h
+       (TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Define.
+       (TT_CONFIG_OPTION_UNPATENTED_HINTING): Undefine.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * docs/CHANGES, docs/INSTALL, include/freetype/freetype.h: Updated.
+       * docs/TRUETYPE, docs/PATENTS: Removed.
 
-       truetype: Cast the scaling params to 32-bit for LP64 system.
+2010-07-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/truetype/ttgload.c (TT_Process_Composite_Component):
-       Insert casts from long (return value of FT_MulFix()) to
-       FT_Int32 (the argument to FT_SqrtFixed()).
+       Check error value by `FT_CMap_New'.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/cff/cffobjs.c (cff_face_init): Check error value by
+       `FT_CMap_New'.
+       * src/pfr/pfrobjs.c (pfr_face_init): Ditto.
+       * src/type1/t1jobjs.c (T1_Face_Init): Ditto.
+       * src/type42/t42jobjs.c (T42_Face_Init): Ditto.
 
-       sfnt: Cast a character code to FT_UInt32 for LP64 system.
+2010-07-03  Werner Lemberg  <wl@gnu.org>
 
-       * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
-       tt_cmap14_variants, tt_cmap14_char_variants,
-       tt_cmap14_def_char_count, tt_cmap14_get_def_chars,
-       tt_cmap14_get_nondef_chars, tt_cmap14_variant_chars)
-       Insert casts when FT_UInt32 variable is loaded by
-       TT_NEXT_{UINT24|ULONG}.  Because most of them are
-       compared with FT_UInt32 values in public API, replacing
-       FT_UFast is not recommended.
+       Make ftgrays.c compile stand-alone again.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/smooth/ftgrays.c [_STANDALONE_]: Include `stddef.h'.
+       (FT_INT_MAX, FT_PtrDist)[_STANDALONE_]: Define.
 
-       sfnt: Cast a character code to FT_UInt32 for LP64 system.
+2010-07-02  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/sfnt/ttcmap.c (tt_cmap4_init, tt_cmap4_next):
-       Insert the casts from unsigned long constant to
-       FT_UInt32.
+       Additional fix for Savannah bug #30306.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/base/ftobjs.c (Mac_Read_POST_Resource): If the type of the
+       POST fragment is 0, the segment is completely ignored.  The declared
+       length of the segment is not cared at all.  According to Adobe
+       Technical Note 5040, type 0 segment is a comment only and should not
+       be loaded for the interpreter.  Reported by Robert Święcki.
 
-       sfnt: Extend TT_BDF->strings_size to FT_ULong for huge BDF.
+2010-07-01  Werner Lemberg  <wl@gnu.org>
 
-       * include/freetype/internal/tttypes.h: The type
-       of TT_BDF->string_size is extended from FT_UInt32
-       to FT_ULong, because BDF specification does not
-       restrict the length of string.
-       * src/sfnt/ttbdf.c: The scratch variable `strings'
-       to load TT_BDF->string_size is matched with
-       TT_BDF->string_size.
+       [truetype] Protect against code range underflow.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Don't allow
+       negative IP values.
 
-       psaux: Handle the string length by FT_Offset variables.
+2010-07-01  Werner Lemberg  <wl@gnu.org>
 
-       * src/psaux/afmparse.c (afm_parser_next_key,
-       afm_tokenize, afm_parse_track_kern,
-       afm_parse_kern_pairs, afm_parse_kern_data,
-       afm_parser_skip_section, afm_parser_parse):
-       The length of key is handled by FT_Offset,
-       instead of FT_UInt.  Although the length of
-       PostScript strings or name object is 16-bit,
-       AFM_STREAM_KEY_LEN() calculates the length
-       from the pointer difference.
+       [truetype] Add rudimentary tracing for bytecode instructions.
 
-       * src/psaux/afmparse.h (afm_parser_next_key):
-       Ditto.
+       * src/truetype/ttinterp.c (opcode_name) [FT_DEBUG_LEVEL_TRACE]: New
+       array.
+       (TT_RunIns): Trace opcodes.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-06-30  Werner Lemberg  <wl@gnu.org>
 
-       pcf: Fix some data types mismatching with their sources.
+       Fix Savannah bug #30263.
 
-       * src/pcf/pcfread.c (pcf_get_bitmaps): The types
-       of `nbitmaps', `i', `sizebitmaps' are matched with
-       the type of area FT_Bitmap.pitch * FT_Bitmap.rows.
+       * src/smooth/ftgrays.c (gray_render_span): Use cast to `unsigned
+       int' to avoid integer overflow.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/smooth/ftsmooth.c (ft_smooth_render_generic): Use smaller
+       threshold values for `width' and `height'.  This is not directly
+       related to the bug fix but makes sense anyway.
 
-       pcf: Handle the string length by size_t variables.
+2010-07-01  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/pcf/pcfread.c (pcf_interpret_style): The types
-       of nn, len, lengths[4] are changed to size_t, because
-       they are loaded by (or compared with) ft_strlen().
+       Initial fix for Savannah bug #30306.
 
-       * src/pcf/pcfutil.c (BitOrderInvert, TwoByteSwap,
-       FourByteSwap): The type of the 2nd argument `nbytes'
-       is changed to size_t, for similarity with ANSI C
-       string functions.
+       * src/base/ftobjs.c (Mac_Read_POST_Resource): Check `rlen', the
+       length of fragment declared in the POST fragment header, and prevent
+       an underflow in length calculation.  Some fonts set the length to
+       zero in spite of the existence of a following 16bit `type'.
+       Reported by Robert Święcki.
 
-       * src/pcf/pcfdrivr.c (PCF_Glyph_Load): The type of
-       `bytes' is changed to FT_Offset, because it is passed
-       to FT_ALLOC(), via ft_glyphslot_alloc_bitmap().  At
-       least, using unsigned type is better.
+2010-07-01  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       Additional fix for Savannah bug #30248 and #30249.
 
-       pcf: Fix some data types mismatching with their sources.
+       * src/base/ftobjs.c (Mac_Read_POST_Resource): Check the buffer size
+       during gathering PFB fragments embedded in LaserWriter PS font for
+       Macintosh.  Reported by Robert Święcki.
 
-       * src/pcf/pcfread.c (pcf_seek_to_table_type,
-       pcf_has_table_type): The type of 3rd argument
-       `ntables' is matched with PCF_Toc->count.
+2010-06-30  Alexei Podtelezhnikov  <apodtele@gmail.com>
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       Minor optimizations by avoiding divisions.
 
-       otvalid: Truncate the glyph index to 16-bit.
+       * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning):
+       Replace divisions with multiplication in comparisons.
 
-       * src/otvalid/otvalid.c (otv_validate): Checks
-       face->num_glyphs does not exceed 16-bit limit,
-       pass FT_UInt num_glyphs to backend functions
-       otv_{GPOS|GSUB|GDEF|JSTF|MATH}_validate().
+2010-06-29  Werner Lemberg  <wl@gnu.org>
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       Fix minor tracing issues.
 
-       cache: Insert explict casts for LP64 systems.
+       * src/cff/cffgload.c, src/truetype/ttgload.c: Adjust tracing levels.
 
-       * src/cache/ftcbasic.c (FTC_ImageCache_Lookup,
-       FTC_SBitCache_Lookup): The type of FTC_ImageType->width
-       is FT_Int, so the cast to unsigned larger type FT_ULong
-       is introduced for the comparisons with 0x10000L for
-       LP64 platform.
+2010-06-27  Werner Lemberg  <wl@gnu.org>
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       [cff] Really fix `hintmask' and `cntrmask' limit check.
 
-       cache: Fix some data types mismatching with their sources.
+       * src/cff/cffgload.c (cff_decoder_parse_charstrings)
+       <cff_op_hintmask>: Fix thinko and handle tracing also.
 
-       * src/cache/ftccache.h: The type of return value
-       by FTC_Node_WeightFunc function is changed to
-       FT_Offset.  The type of FTC_CacheClass->cache_size
-       is changed to FT_Offset, too.
+2010-06-27  Werner Lemberg  <wl@gnu.org>
 
-       * src/cache/ftccback.h (ft_inode_weight,
-       ftc_snode_weight): Ditto.
+       Fix valgrind warning.
 
-       * src/cache/ftccmap.c (ftc_cmap_node_weight): Ditto.
+       * src/base/ftoutln.c (FT_Outline_Get_Orientation): Initialize
+       `result' array.
 
-       * src/cache/ftcimage.c (ftc_inode_weight,
-       FTC_INode_Weight): Ditto.
+2010-06-27  Werner Lemberg  <wl@gnu.org>
 
-       * src/cache/ftcsbits.c (ftc_snode_weight,
-       FTC_SNode_Weight): Ditto.
+       [cff] Fix memory leak.
 
-       * src/cache/ftcmru.h: The type of
-       FTC_MruListClass->node_size is changed to FT_Offset,
-       because it is passed to FT_ALLOC() to specify the
-       size of buffer.
+       * src/cff/cffgload.c (cff_operator_seac): Free charstrings even in
+       case of errors.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-06-27  Werner Lemberg  <wl@gnu.org>
 
-       XXX_cmap_encoding_char_next() return FT_UInt32 values.
+       [cff] Protect against invalid `hintmask' and `cntrmask' operators.
 
-       * include/freetype/internal/services/svpscmap.h:
-       The size of the charcode value returned by
-       the function typed PS_Unicodes_CharNextFunc is
-       matched with its input charcode value.
+       * src/cff/cffgload.c (cff_decoder_parse_charstrings)
+       <cff_op_hintmask>: Ensure that we don't exceed `limit' while parsing
+       the bit masks of the `hintmask' and `cntrmask' operators.
 
-       * src/cff/cffmap.c (cff_cmap_encoding_char_next,
-       cff_cmap_unicode_char_next): Ditto.
+2010-06-26  Werner Lemberg  <wl@gnu.org>
 
-       * src/pfr/pfrmap.c (pfr_cmap_encoding_char_next):
-       Ditto.
+       Fix PFR change 2010-06-24.
 
-       * src/psaux/t1cmap.c (t1_cmap_std_char_next,
-       t1_cmap_custom_char_next, t1_cmap_unicode_char_next):
-       Ditto.
+       * src/pfr/pfrgload.c (pfr_glyph_load_simple): Really protect against
+       invalid indices.
 
-       * src/psnames/psmodule.c (ps_unicodes_char_next):
-       Ditto.
+2010-06-26  Werner Lemberg  <wl@gnu.org>
 
-       * src/winfonts/winfnt.c (fnt_cmap_char_next):
-       Ditto.
+       Improve PFR tracing messages.
 
-       * src/sfnt/ttcmap.c (tt_cmap0_char_next,
-       tt_cmap2_char_next, tt_cmap4_char_next,
-       tt_cmap6_char_next, tt_cmap10_char_next,
-       tt_cmap12_char_next, tt_cmap13_char_next): Ditto.
-       (tt_cmap14_char_variants): Handle base unicode
-       codepoint by FT_UInt32 variable to avoid overflow
-       on 16-bit platforms.
-       (tt_cmap14_ensure): The type of `num_results' is
-       extend to FT_UInt32, to cover unsigned 32-bit
-       `numVarSelectorRecords' in cmap14 table header.
-
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       truetype: Extend TT_Face->num_locations for broken TTFs.
-
-       * include/freetype/internal/tttypes.h:
-       TT_Face->num_locations are extended from FT_UInt
-       to FT_ULong, to stand with broken huge loca table.
-       Some people insists there are broken TTF including
-       the glyphs over 16-bit limitation, in PRC market.
-       * src/truetype/ttpload.c (tt_face_load_loca):
-       Remove unrequired 16-bit truncation for FT_UInt
-       TT_Face->num_locations.
-
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       smooth: Fix some data types mismatching with their sources.
-
-       * src/smooth/ftgrays.c: The type of `TCoord' is
-       matched to `TPos', because they are mixed in
-       gray_set_cell().  The type of TCell->x is extended
-       to `TPos', because gray_find_cell() sets it by
-       TWorker.ex.  The type of TCell->cover is extended
-       to `TCoord', because gray_render_scanline() adds
-       TCoord value to it.  The type of TWork.cover is matched
-       with TCell->cover.  The types of
-       TWork.{max_cells,num_cells} are changed to FT_PtrDist,
-       because they are calculated from the memory addresses.
-       The type of TWork.ycount is changed to TPos, because
-       it is calculated from TPos variables.
-       (gray_find_cell): The type of `x' is matched with
-       its initial value ras.ex.
-       (gray_render_scanline): The types of `mod', `lift'
-       and `rem' are changed to TCoord, because their values
-       are set with explicit casts to TCoord.  When ras.area
-       is updated by the differential values including
-       `delta', they are explicitly cast to TArea, because
-       the type of `delta' is not TArea but TCoord.
-       (gray_render_line): The type of `mod' is extended
-       from int to TCoord, because (TCoord)dy is added to mod.
-       (gray_hline): The argument `acount' is extended to
-       TCoord, to match with the parameters in the callers.
-
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       cff: Fix some data types mismatching with their sources.
-
-       * src/cff/cffobjs.c (cff_face_init): The type of
-       `scaling' is matched with the scaling parameter
-       in FT_Matrix_Multiply_Scaled() and
-       FT_Vector_Transform_Scaled().
-
-       * src/cff/cffparse.c (cff_parse_real): The type of
-       `power_ten', `scaling', `exponent_add',
-       `integer_length', `fraction_length',
-       `new_fraction_length' and `shift' are matched with
-       the type of `exponent' to avoid unexpected truncation.
-       (cff_parse_fixed_scaled): The type of `scaling' is
-       matched with the `scaling' argument to
-       cff_parse_real().
-       (cff_parse_fixed_dynamic): Ditto.
-       (cff_parse_font_matrix): The type of `scaling' is
-       matched with the `scaling' argument to
-       cff_parse_dynamic().
-
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       autofit: Fix some data types mismatching with their sources.
-
-       * src/autofit/afglobal.c: Correct the type of
-       AF_FaceGlobalsRec.glyph_count to match with
-       FT_Face->num_glyphs.
-       (af_face_globals_compute_script_coverage):
-       Insert explicit cast to compare
-       FT_Long AF_FaceGlobalsRec.glyph_count versus
-       FT_UInt gindex.  The type of `nn' is changed
-       to scan glyph index upto AF_FaceGlobalsRec.glyph_count.
-       (af_face_globals_get_metrics): The type of `script_max'
-       is changed to cover size_t value.  Insert explicit cast
-       to compare FT_Long AF_FaceGlobalsRec.glyph_count versus
-       FT_UInt gindex.
-
-       * src/autofit/afhints.c (af_axis_hints_new_segment):
-       Insert explicit cast to calculate `big_max' from
-       integer and size_t values.
-       (af_axis_hints_new_edge): Ditto.
-
-       * src/autofit/aflatin.c (af_latin_metrics_init_blues):
-       The type of `best_y' is matched to FT_Vector.y.
-       (af_latin_compute_stem_width): The type of `delta' is
-       matched to `dist' and `org_dist'.
-
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       autofit: Count the size of the memory object by ptrdiff_t.
-
-       * src/autofit/afcjk.c (af_cjk_hint_edges): The
-       number of edges `n_edges' should be counted by
-       FT_PtrDist variable instead of FT_Int.
-
-       * src/autofit/aflatin.c (af_latin_hint_edges):
-       Ditto.
+       * src/pfr/pfrgload.c (pfr_glyph_load_rec): Emit tracing messages for
+       simple and compound glyph offsets.
 
-       * src/autofit/aftypes.h: In AF_ScriptClassRec,
-       the size of metric `script_metrics_size' should
-       be counted by FT_Offset variable instead of FT_UInt.
+2010-06-26  Werner Lemberg  <wl@gnu.org>
 
-       * src/autofit/afhints.c
-       (af_glyph_hints_align_strong_points): The cursors
-       for the edges `min', `max', `mid' in the memory
-       buffer should be typed FT_PtrDist.
+       Fix last PFR change.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/pfr/pfrobjs.c (pfr_face_init): Fix rejection logic.
 
-       autofit: Fix for unused variable `first'.
+2010-06-26  Werner Lemberg  <wl@gnu.org>
 
-       * src/autofit/afhints.c (af_glyph_hints_reload): Insert
-       FT_UNUSED() to hide the unused variable warning.
+       Fix Savannah bug #30262.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/sfnt/ttload.c (tt_face_load_maxp): Limit `maxComponentDepth'
+       arbitrarily to 100 to avoid stack exhaustion.
 
-       Improve bitmap size or pixel variables for 16-bit systems.
+2010-06-26  Werner Lemberg  <wl@gnu.org>
 
-       * include/freetype/config/ftstdlib.h: Introduce
-       FT_INT_MIN, to use in signed integer overflow in
-       16-bit and 64-bit platforms.
-       
-       * include/freetype/internal/fttrace.h: Add a tracer
-       to ftsynth.c.
-       
-       * src/base/ftbitmap.c (FT_Bitmap_Embolden): Check
-       invalid strength causing integer overflow on 16-bit
-       platform.
-       
-       * src/base/ftcalc.c (ft_corner_orientation): Change
-       the internal calculation from FT_Int to FT_Long, to
-       avoid an overflow on 16-bit platforms.  The caller of
-       this function should use only the sign of result,
-       so the cast to FT_Int is acceptable.
-       
-       * src/base/ftsynth.c: Introduce a tracer for synth module.
-       (FT_GlyphSlot_Embolden): Check invalid strength causing
-       integer overflow on 16-bit platform.
-       
-       * src/bdf/bdfdrivr.c (BDF_Face_Init): The glyph index
-       in FT2 API is typed as FT_UInt, although BDF driver
-       can handle unsigned long glyph index internally.  To
-       avoid integer overflow on 16-bit platform, too large
-       glyph index should be excluded.
-       (BDF_Glyph_Load): The glyph pitch in FT2 is typed as
-       FT_UInt, although BDF driver can handle unsigned long
-       glyph pitch internally.  To avoid integer overflow on
-       16-bit platform, too large glyph pitch should not be
-       returned.
-       
-       * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): The glyph
-       pitch in FT2 is typed as FT_UInt, although PFR font
-       format can include huge bitmap glyph with 24-bit pitch
-       (however, a glyph spends 16.7 pixel, it's not realistic).
-       To avoid integer overflow on 16-bit platform, huge
-       bitmap glyph should be excluded.
-       
-       * src/smooth/ftgrays.c (gray_hline): As FT_Span.x is
-       truncated to fit its type (16-bit short), FT_Span.y
-       should be truncated to fit its type (FT_Int).
-       
-       * src/cff/cffdrivr.c (cff_get_ros): CFF specification
-       defines the supplement in ROS as a real number.
-       Truncate it to fit public FT2 API.
-       
-       * src/cff/cffparse.c (cff_parse_cid_ros): Warn the
-       supplement if it is truncated or rounded in cff_get_ros().
-       
-       * src/cff/cfftypes.h: Change the type of internal variable
-       `supplement' from FT_Long to FT_ULong to fit the signedness
-       to the type in public API.
+       Add some memory checks (mainly for debugging).
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/base/ftstream.c (FT_Stream_EnterFrame): Exit with error
+       if the frame size is larger than the stream size.
 
-       psaux: Prevent invalid arguments to afm_parser_read_vals().
+       * src/base/ftsystem.c (ft_ansi_stream_io): Exit with error if
+       seeking a position larger than the stream size.
 
-       * src/psaux/afmparse.c (afm_parser_read_vals): Change
-       the type of `n' to prevent negative number how many
-       arguments should be parsed.
+2010-06-25  Werner Lemberg  <wl@gnu.org>
 
-       * src/psaux/afmparse.h (afm_parser_read_vals): Ditto.
+       Fix Savannah bug #30261.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/pfr/pfrobjs.c (pfr_face_init): Reject fonts which contain
+       neither outline nor bitmap glyphs.
 
-       base: Prevent some overflows on LP64 systems.
+2010-06-25  Werner Lemberg  <wl@gnu.org>
 
-       * src/base/ftadvance.c (FT_Get_Advances): Cast the
-       unsigned long constant FT_LOAD_ADVANCE_ONLY to FT_UInt32
-       for LP64 platforms.
+       Fix Savannah bug #30254.
 
-       * src/base/ftcalc.c (FT_Sqrt32): All internal variables
-       are changed to FT_UInt32 from FT_ULong.
-       (FT_MulDiv): Insert casts to FT_Int32 for LP64 platforms.
-       This function is designed for 32-bit integer, although
-       their arguments and return value are FT_Long.
+       * src/cff/cffload.c (cff_index_get_pointers): Do sanity check for
+       first offset also.
 
-       * src/base/ftobjs.c (FT_Get_Char_Index): Check `charcode'
-       is within unsigned 32-bit integer for LP64 platforms.
-       (FT_Face_GetCharVariantIndex): Check `charcode' and
-       `variantSelector' are within 32-bit integer for LP64
-       platforms.
-       (FT_Face_GetCharsOfVariant): Check `variantSelector' is
-       within unsigned 32-bit integer for LP64 platforms.
+2010-06-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       * src/base/fttrigon.c (ft_trig_downscale): The FT_Fixed
-       variable `val' and unsigned long constant FT_TRIG_SCALE
-       are cast to FT_UInt32, when calculates FT_UInt32.
-       (FT_Vector_Rotate): The long constant 1L is cast to
-       FT_Int32 to calculate FT_Int32 `half'.
+       Initial fix for Savannah bug #30248 and #30249.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/base/ftobjs.c (Mac_Read_POST_Resource): Check the error during
+       reading a PFB fragment embedded in LaserWriter PS font for Macintosh.
+       Reported by Robert Święcki.
 
-       cff: Cast the long variables to 32-bit for LP64 systems.
+2010-06-24  Werner Lemberg  <wl@gnu.org>
 
-       * src/cff/cffdrivr.c (cff_get_advances): Insert
-       explicit cast to modify a 32-bit flag by unsigned
-       long constant.
+       Fix Savannah bug #30247.
 
-       * src/cff/cffobjs.c (cff_face_init): Ditto.
+       * src/pcf/pcfread.c (pcf_get_metrics): Disallow (invalid) fonts with
+       zero metrics.
 
-       * src/cff/cffgload.c (cff_decoder_parse_charstrings):
-       Replace the casts to FT_Long by the casts to FT_Int32
-       for LP64 platforms.
+2010-06-24  Graham Asher  <graham.asher@btinternet.com>
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/smooth/ftgrays.c (gray_render_cubic): Fix algorithm.
+       The previous version was too aggressive, as demonstrated in
+       http://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00020.html.
 
-       pcf: Improve PCF_PropertyRec.value names on LP64 platforms.
+2010-06-24  Werner Lemberg  <wl@gnu.org>
 
-       * src/pcf/pcf.h: In PCF_PropertyRec.value, the member
-       `integer' is replaced by `l', `cardinal' is replaced
-       by `ul', to fix the difference between the name and
-       the types on LP64 platforms.
+       */*: Use module specific error names where appropriate.
 
-       * src/pcf/pcfdrivr.c (pcf_get_bdf_property): Reflect
-       PCF_PropertyRec.value change, with appropriate casts
-       to FT_Int32/FT_UInt32.  Their destinations
-       BDF_PropertyRec.{integer|cardinal} are public and
-       explicitly defined as FT_Int32/FT_UInt32.
+2010-06-24  Werner Lemberg  <wl@gnu.org>
 
-       * src/pcf/pcfread.c (pcf_get_properties, pcf_load_font):
-       Reflect PCF_PropertyRec.value change.
+       Fix Savannah bug #30236.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/sfnt/ttcmap.c (tt_face_build_cmaps): Improve check for pointer
+       to `cmap_table'.
 
-       pcf: Fix some data types mismatching with their sources.
+2010-06-24  Werner Lemberg  <wl@gnu.org>
 
-       * src/pcf/pcfdrivr.c (pcf_cmap_char_index): The type of
-       `code' is matched to PCF_Encoding->enc.
-       (pcf_cmap_char_next): The type of `charcode' is matched
-       to PCF_Encoding->enc.  When *acharcode is set by charcode,
-       an overflow is checked and cast to unsigned 32-bit
-       integer.
+       Fix Savannah bug #30235.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/pfr/pfrgload.c (pfr_glyph_load_simple): Protect against
+       invalid indices if there aren't any coordinates for indexing.
 
-       bdf: Improve bdf_property_t.value names for LP64 platforms.
+2010-06-24  Werner Lemberg  <wl@gnu.org>
 
-       * src/bdf/bdf.h: In bdf_property_t.value, the member
-       `int32' is replaced by `l', `card32' is replaced by
-       `ul', to fix the difference between the name and the
-       types on LP64 platforms.
+       [bdf]: Font properties are optional.
 
-       * src/bdf/bdfdrivr.c (BDF_Face_Init): Reflect
-       bdf_property_t.value change.
-       (bdf_get_bdf_property): Reflect bdf_property_t.value
-       change, with appropriate casts to FT_Int32/FT_UInt32.
-       Their destinations BDF_PropertyRec.{integer|cardinal}
-       are public and explicitly defined as FT_Int32/FT_UInt32.
+       * src/bdf/bdflib.c (_bdf_readstream): Use special error code to
+       indicate a redo operation.
+       (_bdf_parse_start): Handle `CHARS' keyword here too and pass current
+       input line to `_bdf_parse_glyph'.
 
-       * src/bdf/bdflib.c (_bdf_add_property): Reflect
-       bdf_property_t.value change.
+2010-06-23  Werner Lemberg  <wl@gnu.org>
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       Fix Savannah bug #30220.
 
-       bdf: Fix some data types mismatching with their sources.
+       * include/freetype/fterrdef.h
+       (BDF_Err_Missing_Fontboundingbox_Field): New error code.
 
-       * src/bdf/bdrdrivr.c (bdf_cmap_char_index): The type
-       of `code' is matched with BDF_encoding_el->enc.
-       (bdf_cmap_char_next): The type of `charcode' is
-       matched with BDF_encoding_el->enc.  When *acharcode
-       is set by charcode, an overflow is checked and
-       cast to unsigned 32-bit integer.
+       * src/bdf/bdflib.c (_bdf_parse_start): Check for missing
+       `FONTBOUNDINGBOX' field.
+       Avoid memory leak if there are multiple `FONT' lines (which is
+       invalid but doesn't hurt).
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-06-21  Werner Lemberg  <wl@gnu.org>
 
-       autofit: Improve Unicode range definitions.
+       Fix Savannah bug #30168.
 
-       * src/autofit/aftypes.h (AF_UNIRANGE_REC): New macro
-       to declare a range by two unsigned 32-bit integer,
-       to avoid 64-bit range definition on LP64 platforms.
+       * src/pfr/pfrgload.c (pfr_glyph_load_compound): Limit the number of
+       subglyphs to avoid endless recursion.
 
-       * src/autofit/aflatin.c (af_latin_uniranges): Ditto.
+2010-06-20  Werner Lemberg  <wl@gnu.org>
 
-       * src/autofit/aflatin2.c (af_latin2_uniranges): Ditto.
+       Fix Savannah bug #30145.
 
-       * src/autofit/afindic.c (af_indic_uniranges): Ditto.
+       * src/psaux/psobjs.c (t1_builder_add_contour): Protect against
+       `outline == NULL' which might happen in invalid fonts.
 
-       * src/autofit/afcjk.c (af_cjk_uniranges): Declare
-       the ranges by AF_UNIRANGE_REC.
+2010-06-19  Werner Lemberg  <wl@gnu.org>
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       Fix Savannah bug #30135.
 
-       smooth: Fix a data type mismatching with its source.
+       * src/bdf/bdflib.c (_bdf_list_join): Don't modify value in static
+       string `empty'.
+       (_bdf_parse_glyph): Avoid memory leak in case of error.
 
-       * src/smooth/ftgrays.c (gray_sweep): The type of
-       `area' is matched with the 3rd argument `area'
-       of gray_hline().
+2010-06-15  Werner Lemberg  <wl@gnu.org>
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       Fix Savannah bug #30108.
 
-       smooth: Fix a data type mismatching with its source.
+       * src/autofit/afglobal.c (af_face_globals_compute_script_coverage):
+       Properly mask AF_DIGIT bit in comparison.
 
-       * src/smooth/ftgrays.c (gray_render_line): The type
-       of `area' is matched with TWorker.area.
+2010-06-11  Werner Lemberg  <wl@gnu.org>
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       Fix Savannah bug #30106.
 
-       cache: Disable the legacy compatibility if 16-bit system.
+       Point numbers for FreeType's implementation of hinting masks are
+       collected before the final number of points of a glyph has been
+       determined; in particular, the code for handling the `endchar'
+       opcode can reduce the number of points.
 
-       * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Exclude
-       the legacy behaviour from 16-bit platform, because the
-       current hack cannot detect the caller uses this function
-       via legacy convension.
-       (FTC_SBitCache_Lookup): Ditto.
+       * src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Assure that
+       `end_point' is not larger than `glyph->num_points'.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-06-11  Werner Lemberg  <wl@gnu.org>
 
-       cache: Check 32-bit glyph index on 16-bit systems.
+       [cff]: Improve debugging output.
 
-       * src/cache/ftcbasic.c (ftc_basic_family_get_count):
-       Check overflow caused by the face including large
-       number of glyphs > 64k.
+       * src/cff/cffgload.c (cff_decoder_parse_charstrings)
+       <cff_op_hintmask>: Implement it.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-06-10  Graham Asher  <graham.asher@btinternet.com>
 
-       cache: Fix some data types mismatching with their sources.
+       ftgrays: Speed up rendering of small cubic splines.
 
-       * src/cache/ftccache.c (ftc_cache_resize): The types of
-       `p', `mask', `count' are matched with FTC_Cache->{p,mask}.
-       (FTC_Cache_Clear): The type of `old_index' is matched to
-       FTC_Cache->{p,mask}.
+       * src/smooth/ftgrays.c (gray_render_cubic): Implement new,
+       simplified algorithm to find out whether the spline can be replaced
+       with two straight lines.  See this thread for more:
 
-       * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): The type
-       of `_idx' is matched with FTC_Cache->{p,mask}.
+         http://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00000.html
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-06-09  Werner Lemberg  <wl@gnu.org>
 
-       cache: Fix some data types mismatching with their sources.
+       Fix Savannah bug #30082.
 
-       * src/cache/ftcsbits.c (ftc_snode_load): The types
-       of `xadvance' and `yadvance' are matched with
-       FT_GlyphSlot->advance.{x|y}.
+       * src/cff/cffgload.c (cff_decoder_parse_charstrings)
+       <cff_op_callothersubr>: Protect against stack underflow.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-06-08  Werner Lemberg  <wl@gnu.org>
 
-       cache: Cast NULL to a required function type explicitly.
+       Fix Savannah bug #30053.
 
-       * src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID):
-       Insert explicit cast from NULL to function type.
+       * src/cff/cffparse.c (cff_parse_real): Handle border case where
+       `fraction_length' has value 10.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-06-07  Werner Lemberg  <wl@gnu.org>
 
-       fttypes.h: Cast FT_MAKE_TAG output to FT_Tag exlicitly.
+       Fix Savannah bug #30052.
+       This bug has been introduced with commit 2415cbf3.
 
-       * include/freetype/fttypes.h (FT_MAKE_TAG):
-       Cast the result to FT_Tag.
+       * src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Protect
+       against endless loop in case of corrupted font header data.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-05-26  Werner Lemberg  <wl@gnu.org>
 
-       psnames: Handle Unicode codepoints by FT_UInt32 variables.
+       Remove unused variable.
+       Found by Graham.
 
-       * src/psnames/psmodule.c (BASE_GLYPH): Cast the result
-       to unsigned 32-bit integer for LP64 platform.
-       (ps_unicode_value): Return the value by unsigned 32-bit
-       integer instead of unsigned long.
+       * src/autofit/afhints.c (af_glyph_hints_reload): Remove unused
+       variable `first' in first block.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-05-22  Werner Lemberg  <wl@gnu.org>
 
-       psaux: Use size_t variable to pass the buffer size.
+       Fix various memory problems found by linuxtesting.org.
 
-       * src/psaux/psaux.h (to_bytes): The type of `max_bytes'
-       (the argument to pass the buffer size) is changed to
-       size_t, to match with ANSI C string functions.
+       * src/base/ftgxval.c (FT_TrueTypeGX_Free, FT_ClassicKern_Free),
+       src/base/ftotval.c (FT_OpenType_Free), src/base/ftpfr.c
+       (ft_pfr_check): Check `face'.
 
-       * src/psaux/psconv.h (PS_Conv_StringDecode,
-       PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto.
+       * src/base/ftobjs.c (FT_Get_Charmap_Index): Check `charmap' and
+       `charmap->face'.
+       (FT_Render_Glyph): Check `slot->face'.
+       (FT_Get_SubGlyph_Info): Check `glyph->subglyphs'.
 
-       * src/psaux/psconv.c (PS_Conv_StringDecode,
-       PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto.
+2010-05-22  Werner Lemberg  <wl@gnu.org>
 
-       * src/psaux/psobjs.h (ps_parser_to_bytes): Ditto.
+       autofit: Remove dead code.
+       Suggested by Graham.
 
-       * src/psaux/psobjs.c (ps_parser_to_bytes): Ditto.
+       * src/autofit/afhints.c (af_glyph_hints_compute_inflections):
+       Removed.
+       (af_glyph_hints_reload): Remove third argument.
+       Update all callers.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-05-21  Bram Tassyns  <bramt@enfocus.be>
 
-       type1: Use size_t variable to pass the string length.
+       Fix Savannah bug #27987.
 
-       * psaux.h: The type of `len' (the argument to pass
-       the buffer size to the function in AFM_ParserRec)
-       is changed to size_t, to match with ANSI C string
-       functions.
+       * src/cff/cffobjs.c (remove_subset_prefix): New function.
+       (cff_face_init): Use it to adjust `cffface->family_name'.
 
-       * t1afm.c (t1_get_index): Ditto.
+2010-05-20  Werner Lemberg  <wl@gnu.org>
 
-       * test_afm.c (dummy_get_index): Ditto.
+       TrueType: Make FreeType ignore maxSizeOfInstructions in `maxp'.
 
-       * afmparse.c (afm_parser_read_vals): To call
-       AFM_ParserRec.get_index, the length of token
-       `len' is cast to size_t.
+       Acroread does the same.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Call
+       `Update_Max' to adjust size of instructions array if necessary and
+       add a rough safety check.
 
-       cid: Fix some data types mismatching with their sources.
+       (load_truetype_glyph): Save `loader->byte_len' before recursive
+       call.
 
-       * src/cid/cidparse.c (cid_parser_new): The types of
-       `read_len' and `stream_len' are matched to
-       FT_Stream->size.  Unrequired cast is removed.
+       * src/truetype/ttinterp.h, src/truetype/ttinterp.c (Update_Max):
+       Declare it as FT_LOCAL.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-05-18  Hongbo Ni  <hongbo@njstar.com>
 
-       cff: Fix for unused variable `rest'.
+       Apply Savannah patch #7196.
 
-       * src/cff/cffparse.c (cff_parse_real): Insert
-       FT_UNUSED() to hide the unused variable warning.
+       * src/cff/cffgload.c (cff_slot_load): Prevent crash if CFF subfont
+       index is out of range.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-05-11  Werner Lemberg  <wl@gnu.org>
 
-       cff: Fix some data types mismatching with their sources.
+       * docs/formats.txt: Give pointer to PCF documentation.
+       Information provided by Alan Coopersmith
+       <alan.coopersmith@oracle.com>.
 
-       * src/cff/cffgload.c (cff_slot_load): The types of      
-       `top_upm' and `sub_upm' are matched with
-       CFF_FontRecDict->units_per_em.
+2010-05-10  Ken Sharp  <ken.sharp@artifex.com>
 
-       * src/cff/cffobjs.c (cff_size_select): Ditto.
-       (cff_size_request): Ditto.
+       Fix Savannah bug #29846.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       Previously we discovered fonts which used `setcurrentpoint' to set
+       the initial point of a contour to 0,0.  This caused FreeType to
+       raise an error, because the `setcurrentpoint' operator is only
+       supposed to be used with the results from an OtherSubr subroutine.
 
-       bdf: Fix some data types mismatching with their sources.
+       This was fixed by simply ignoring the error and carrying on.
 
-       * bdflib.c (_bdf_list_ensure): The type of `num_items'
-       is matched with _bdf_list_t.used.  Also the types of
-       `oldsize', `newsize', `bigsize' are matched too.
-       (_bdf_readstream): `cursor' is used as an offset to
-       the pointer, it should be typed as FT_Offset.  Also
-       the types of `bytes', `start', `end', `avail' are matched.
+       Now we have found a font which uses setcurrentpoint to actually
+       establish a non-zero point for a contour during the course of a
+       glyph program.  FWIW, these files may be produced by an application
+       called `Intaglio' on the Mac, when converting TrueType fonts to
+       Type 1.
 
-       * bdfdrivr.c: The type of BDF_CMap->num_encodings is
-       matched with FT_CMap->clazz->size.
-       (bdf_cmap_char_index): The types of `min', `max', `mid'
-       are matched with BDF_CMap->num_encodings.  The type of
-       `result' is matched with encoding->glyph.
-       (bdf_cmap_char_next): Ditto, the type of `code' is
-       matched with BDF_encoding_el.enc.
-       (bdf_interpret_style): The type of `lengths' is changed
-       to size_t, to take the value by ft_strlen().  Also the
-       types of `len', `nn', `mm' are matched.
+       The fix allows the new invalid behaviour, the old invalid behaviour
+       and real proper usage of the operator to work the same way as Adobe
+       interpreters apparently do.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       (t1_decoder_parse_charstrings): Make `setcurrentpoint' use the top
+       two elements of the stack to establish unconditionally the current x
+       and y coordinates.
 
-       sfnt: Count the size of the memory object by ptrdiff_t.
+       Make the `flex' subroutine handling (OtherSubr 0) put the current
+       x,y coordinates onto the stack, instead of two dummy uninitialised
+       values.
 
-       * src/sfnt/ttbdf.c (tt_face_find_bdf_prop): The type of
-       `peroperty_len' is changed from FT_UInt to FT_Offset,
-       to match with size_t, which is appropriate type for the
-       object in the memory buffer.
+2010-04-14  Ken Sharp  <ken.sharp@artifex.com>
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       Fix Savannah bug #29444.
 
-       lzw: Count the size of the memory object by ptrdiff_t.
+       * src/psaux/psobjs.c (t1_builder_start_point): Accept (invalid)
+       `lineto' immediately after `hsbw', in accordance with Acrobat, GS,
+       and others.
 
-       * src/lzw/ftzopen.h: The types of FT_LzwState->{buf_total,
-       stack_size} are changed from FT_UInt to FT_Offset, to match
-       with size_t, which is appropriate type for the object in
-       the memory buffer.
+2010-04-14  Michał Cichoń  <thedmd@artifexmundi.com>
 
-       * src/lzw/ftzopen.c (ft_lzwstate_stack_grow): The types of
-       `old_size' and `new_size' are changed from FT_UInt to
-       FT_Offset, to match with size_t, which is appropriate type
-       for the object in the memory buffer.
+       Fix Savannah bug #27999.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID): Only remove
+       selected entry, not all.
 
-       otvalid: Count the table size on memory by ptrdiff_t.
+2010-04-06  Jonathan Kew  <jfkthame@gmail.com>
 
-       * src/otvalid/otvgpos.c (otv_ValueRecord_validate):
-       Change the type of table size from FT_UInt to
-       FT_PtrDist because it is calculated by the memory
-       addresses.
+       Add overflow check to `fvar' table.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/truetype/ttgxvar.c (TT_Get_MM_Var): Check axis and instance
+       count.
 
-       otvalid: Prevent an overflow by GPOS/GSUB 32b-bit offset.
+2010-04-05  Ken Sharp  <ken.sharp@artifex.com>
 
-       * src/otvalid/otvgpos.c (otv_ExtensionPos_validate):
-       Extend ExtensionOffset from FT_UInt to FT_ULong, to
-       cover 32-bit offset on 16-bit platform.
+       Fix Savannah bug #29335.
 
-       * src/otvalid/otvgsub.c (otv_ExtensionSubst_validate):
-       Ditto.
+       * src/raster/ftraster.c (Line_Up): Use slow multiplication to
+       prevent overflow.  This shouldn't have any serious impact on speed,
+       however.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-04-05  Werner Lemberg  <wl@gnu.org>
 
-       ftobjs.c: Prevent an overflow in glyph index handling.
+       Add new function `FT_Library_SetLcdFilterWeights'.
 
-       * src/base/ftobjs.c (FT_Face_GetCharsOfVariant):
-       Improve the cast in comparison to avoid the truncation.
+       This is based on code written by Lifter
+       <http://unixforum.org/index.php?showuser=11691>.  It fixes
+       FreeDesktop bug #27386.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+       * src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights): New
+       function.
 
-       Improve the variable types in raccess_make_file_name().
+       * include/freetype/ftlcdfil.h: Updated.
 
-       * src/base/ftrfork.c (raccess_make_file_name):
-       Change the type of cursor variable `tmp' to const char*,
-       to prevent the unexpected modification of original pathname.
-       (raccess_make_file_name): Change the type of new_length
-       to size_t.
+       * docs/CHANGES: Updated.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-04-01  John Tytgat  <John.Tytgat@esko.com>
 
-       ftpatent.c: Fix for unused variable `error'.
+       Fix Savannah bug #29404.
 
-       * src/base/ftpatent.c (_tt_check_patents_in_range):
-       Fix warning for unused variable `error'.
+       * src/truetype/ttgload.c: Revert change 2752bd1a (check on bit 1
+       of `head' table of TrueType fonts).
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-03-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       type1: Check invalid string longer than PostScript limit.
+       Fix `multi build' for Tytgat's CFF driver improvement.
 
-       * src/type1/t1afm.c (t1_get_index): Check invalid string
-       which exceeds the limit of PostScript string/name objects.
+       * src/base/cffload.h (cff_index_get_name): Added.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-03-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
-       gzip: Use FT2 zcalloc() & zfree() in ftgzip.c by default.
+       Remove duplicated inclusion of `FT_OUTLINE_H' in ftobjs.c.
 
-       * src/gzip/ftgzip.c (zcalloc, zcfree): Disable all
-       zcalloc() & zfree() by zlib in zutil.c, those in
-       ftgzip.c by FT2 are enabled by default.  To use
-       zlib zcalloc() & zfree(), define USE_ZLIB_ZCALLOC.
-       See discussion:
-       http://lists.gnu.org/archive/html/freetype-devel/2009-02/msg00000.html
+       * src/base/ftobjs.c: Remove 2nd inclusion of `FT_OUTLINE_H'.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-03-11  Chris Liddell  <chris.liddell@artifex.com>
 
-       gzip: Distinguish PureC from TurboC on MSDOS.
+       Fix Savannah bug #27442.
 
-       * src/gzip/zutil.c (zcalloc, zcfree): Enable only for
-       MSDOS platform.
+       * src/raster/ftraster.c (ft_black_reset): Fix `buffer_size'.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-03-09  Werner Lemberg  <wl@gnu.org>
 
-       gxvalid: Insert PureC pragma to allow unevaluated variables.
+       Remove unused variable.
+       Reported by Graham.
 
-       * builds/atari/ATARI.H: Insert PureC pragma not to
-       warn against set-but-unevaluated variable in gxvalid
-       module.
+       * src/cff/cffparse.c (cff_parse_real): Remove `rest'.
 
-2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
+2010-03-02  John Tytgat  <John.Tytgat@esko.com>
 
-       gxvalid: Pass the union by the pointer instead of the value.
+       Improve CFF string (especially glyphname) lookup performance.
 
-       * src/gxvalid/gxvcommn.h:
-         - Declare new type `GXV_LookupValueCPtr'.
-         - Update the type of the 2nd argument to pass GXV_LookupValueDesc
-           data to the function prototyped as GXV_Lookup_Value_Validate_Func,
-           from GXV_LookupValueDesc to GXV_LookupValueCPtr.
-         - Likewise for the function prototyped as
-           GXV_Lookup_Fmt4_Transit_Func.
+       We do this by avoiding memory allocation and file I/O.  This is
+       Savannah patch #7104.
 
-         - Declare new type `GXV_StateTable_GlyphOffsetCPtr'.
-         - Update the type of the 3rd argument to pass
-           GXV_StateTable_GlyphOffsetDesc data to the function prototyped
-           as GXV_StateTable_Entry_Validate_Func, from
-           GXV_StateTable_GlyphOffsetDesc to GXV_StateTable_GlyphOffsetCPtr.
+       * src/cff/cfftypes.h: Include PS cmaps service and
+       FT_INTERNAL_POSTSCRIPT_HINTS_H.
+       (CFF_SubFontRec): Remove `num_local_subrs'.
+       (CFF_FontRec): Add `num_strings', `strings', and `string_pool'
+       fields.
+       Remove `string_index' and `num_global_subrs' fields.
+       Use real types instead of `void' for `pshinter' and `psnames' fields.
 
-         - Declare new type `GXV_XStateTable_GlyphOffsetCPtr'.
-         - Update the type of the 3rd argument to pass
-           GXV_XStateTable_GlyphOffsetDesc data to the function prototyped
-           as GXV_XStateTable_Entry_Validate_Func,
-           from GXV_XStateTable_GlyphOffsetDesc
-           to GXV_XStateTable_GlyphOffsetCPtr.
+       * src/cff/cffload.c: Don't include PS cmaps service.
+       (cff_index_get_pointers): Add `pool' parameter which allows to
+       insert an extra NUL character for each String INDEX entry.
+       (cff_index_get_name): Make it a local function.
+       (cff_index_get_string): New function.
+       (cff_subfont_load): Updated.
+       (cff_font_load): Initialize `num_strings', `strings', and
+       `string_pool' fields in the `CFF_FontRec' structure.
+       (cff_index_get_sid_string): Use `cff_index_get_string' instead of
+       `cff_index_get_name'.
+       (cff_font_done): Updated.
 
-       * src/gxvalid/gxvcommn.c (gxv_LookupTable_fmt0_validate,
-       gxv_XClassTable_lookupval_validate,
-       gxv_XClassTable_lookupfmt4_transit):
-       Update from GXV_LookupValueDesc to GXV_LookupValueCPtr.
-       
-       * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
-       gxv_bsln_LookupFmt4_transit): Ditto.
-       
-       * src/gxvalid/gxvjust.c
-       (gxv_just_pcTable_LookupValue_entry_validate,
-       gxv_just_classTable_entry_validate,
-       gxv_just_wdcTable_LookupValue_validate): Ditto.
-       
-       * src/gxvalid/gxvkern.c
-       (gxv_kern_subtable_fmt1_entry_validate): Ditto.
-       
-       * src/gxvalid/gxvlcar.c (gxv_lcar_LookupValue_validate,
-       gxv_lcar_LookupFmt4_transit): Ditto.
-       
-       * src/gxvalid/gxvopbd.c (gxv_opbd_LookupValue_validate,
-       gxv_opbd_LookupFmt4_transit): Ditto.
-       
-       * src/gxvalid/gxvprop.c (gxv_prop_LookupValue_validate,
-       gxv_prop_LookupFmt4_transit): Ditto.
-       
-       * src/gxvalid/gxvmort4.c
-       (gxv_mort_subtable_type4_lookupval_validate): Ditto.
-       
-       * src/gxvalid/gxvmort0.c
-       (gxv_mort_subtable_type0_entry_validate): Update
-       from GXV_StateTable_GlyphOffsetDesc
-       to GXV_StateTable_GlyphOffsetCPtr.
-       
-       * src/gxvalid/gxvmort1.c
-       (gxv_mort_subtable_type1_entry_validate): Ditto.
-       
-       * src/gxvalid/gxvmort2.c
-       (gxv_mort_subtable_type2_entry_validate): Ditto.
-       
-       * src/gxvalid/gxvmort5.c
-       (gxv_mort_subtable_type5_entry_validate): Ditto.
-       
-       * src/gxvalid/gxvmorx2.c
-       (gxv_morx_subtable_type2_entry_validate): Ditto.
-       
-       * src/gxvalid/gxvmorx5.c
-       (gxv_morx_subtable_type5_entry_validate): Ditto.
-       
-       * src/gxvalid/gxvmorx1.c
-       (gxv_morx_subtable_type1_entry_validate): Ditto.
-       (gxv_morx_subtable_type1_LookupValue_validate,
-       gxv_morx_subtable_type1_LookupFmt4_transit):
-       Update from GXV_LookupValueDesc to GXV_LookupValueCPtr.
-       
-       * src/gxvalid/gxvmorx0.c
-       (gxv_morx_subtable_type0_entry_validate): Update
-       from GXV_XStateTable_GlyphOffsetDesc
-       to GXV_XStateTable_GlyphOffsetCPtr.
+       * src/cff/cffload.h: Don't include PS cmaps service.
+       (cff_index_get_string): Added.
+       (cff_index_get_sid_string): Updated.
 
-2009-07-29  Fabrice Bellet  <fabrice@bellet.info>
+       * src/cff/cffobjs.c: Don't include PS cmaps service and
+       FT_INTERNAL_POSTSCRIPT_HINTS_H.
+       (cff_size_get_globals_funcs, cff_slot_init): Updated.
+       (cff_face_init): Follow `cff_index_get_name',
+       `cff_index_get_string', and `cff_index_get_sid_string' changes.
 
-       Fix Redhat bugzilla #513582 and Savannah bug #26849.
+       * src/cff/cffcmap.c (cff_sid_free_glyph_name): Removed.
+       (cff_sid_to_glyph_name): Use `cff_index_get_cid_string'.
+       (cff_cmap_unicode_init): Updated.
 
-       * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) <FTC_INLINE>: Fix
-       aliasing bug.
+       * src/cff/cffdrivr.c: Don't include PS cmap service.
+       (cff_get_glyph_name): Avoid unnecessary lookup for POSTSCRIPT_CMAPS
+       service.
+       (cff_get_glyph_name, cff_ps_get_font_info, cff_get_ros): Follow API
+       `cff_index_get_sid_string' change.
+       (cff_get_name_index): Use `cff_index_get_string' instead of
+       `cff_index_get_name'.
 
-2009-07-19  Werner Lemberg  <wl@gnu.org>
+       * src/cff/cffgload.c: Don't include FT_INTERNAL_POSTSCRIPT_HINTS_H.
+       (cff_decoder_init, cff_decoder_prepare): Updated.
 
-       Document recent library changes.
+2010-02-27  Werner Lemberg  <wl@gnu.org>
 
-       * docs/CHANGES: Do it.
+       Simplify code.
+       Suggested by Behdad.
 
-2009-07-17  Werner Lemberg  <wl@gnu.org>
+       * src/base/ftobjs.c (FT_Get_First_Char): Don't use a loop since we
+       call FT_Get_Next_Char anyway if necessary.
 
-       Fix Savannah bug #23786.
+2010-02-26  Behdad Esfahbod  <behdad@behdad.org>
 
-       * src/truetype/ttobjs.c (tt_size_init_bytecode): Don't reset x_ppem
-       and y_ppem.  Otherwise the `*_CVT_Stretched' functions in ttinterp.c
-       get never called.
-       An anonymous guy suggested this change on Savannah, and it seems to
-       be the right solution.
+       Improve handling of invalid glyph indices in char->index functions.
 
-2009-07-15  Werner Lemberg  <wl@gnu.org>
+       * src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Use a
+       loop.
 
-       * docs/release: Updated.
+2010-02-18  Chris Liddell  <chris.liddell@artifex.com>
 
-2009-07-15  Werner Lemberg  <wl@gnu.org>
+       Fix Savannah bug #28905.
 
-       README.CVS -> README.git
+       Initialize phantom points before calling the incremental interface
+       to update glyph metrics.
 
-       * README.CVS: Renamed to...
-       * README.git: This.
+       * src/truetype/ttgload.c (tt_get_metrics_incr_overrides)
+       [FT_CONFIG_OPTION_INCREMENTAL]: New function, split off from...
+       (tt_get_metrics): This.
        Updated.
-
-2009-07-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Borland C++ compiler patch proposed by Mirco Babin.
-       http://lists.gnu.org/archive/html/freetype/2009-07/msg00016.html.
-
-       * builds/exports.mk: Delete unused flags, CCexe_{CFLAGS,LDFLAGS}.
-       Fix APINAMES_C and APINAMES_EXE pathnames to reflect the platform
-       specific pathname syntax.
-       * builds/compiler/bcc.mk: Remove unused flag, CCexe_LDFLAGS.
-       Define TE = `-e' separately (bcc32 cannot specify the pathname of
-       binary executable by T = `-o').
-       Extend the large page size in linking freetype.lib.
-       Add extra CLEAN target to delete bcc specific temporary files.
-       * builds/compiler/bcc-dev.mk: Ditto.
-
-2009-07-14  Werner Lemberg  <wl@gnu.org>
-
-       Fix Savannah bug #27026.
-
-       * builds/win32/vc2005/freetype.sln: Use correct version number.
-
-2009-07-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Add a script to check the undefined and unused trace macros.
-
-       * src/tools/chktrcmp.py: A script to check trace_XXXX macros
-       that are used in C source but undefined in fttrace.h, or
-       defined in fttrace.h but unused in C sources.  See
-       http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html.
-       * docs/DEBUG: Mention on chktrcmp.py.
-       * docs/release: Ditto.
-
-2009-07-09  Werner Lemberg  <wl@gnu.org>
-
-       [ftraster] Make it compile again with -D_STANDALONE_.
-
-       * src/raster/ftraster.c [_STANDALONE_]: Define
-       FT_CONFIG_STANDARD_LIBRARY_H.
-       Include `string.h'.
-       Don't include `rastpic.h'.
-       Define FT_DEFINE_RASTER_FUNCS.
-
-2009-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       smooth: Check glyph size by width/height, instead of pitch/height.
-       Suggested by der Mouse <mouse@Rodents-Montreal.ORG>.
-
-       * src/smooth/ftsmooth.c (ft_smooth_render_generic): Improve
-       the check for too large glyph.  Replace the pair of `pitch' and
-       `height' by the pair of `width' and `height'.  `pitch' cannot
-       be greater than `height'.  The required is checking the product
-       `pitch' * `height' <= FT_ULONG_MAX, but we use cheap checks for
-       the realistic case only.
-
-2009-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Register 2 missing trace components, t1afm and ttbdf.
-
-       * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( t1afm )
-       and FT_TRACE_DEF( ttbdf ).  See
-       http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html
-
-2009-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Register a trace component for ftgloadr.c.
-
-       * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( gloader ).
-       The macro `trace_gloader' was already used in the initial version
-       on 2002-02-24.
-
-2009-07-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Prevent the overflows by a glyph with too many points or contours.
-       The bug is reported by Boris Letocha <b.letocha@gmc.net>.  See
-       http://lists.gnu.org/archive/html/freetype-devel/2009-06/msg00031.html
-       http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00002.html  
-
-       * include/freetype/ftimage.h (FT_OUTLINE_CONTOURS_MAX,
-       FT_OUTLINE_POINTS_MAX): New macros to declare the maximum
-       values of FT_Outline.{n_contours,n_points}.
-       * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Check the
-       total numbers of points and contours cause no overflows in
-       FT_Outline.{n_contours,n_points}.
-
-       * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
-       FT_GLYPHLOADER_CHECK_C): Compare the numbers of points and
-       contours as unsigned long number, instead of signed int, to
-       prevent the overflows on 16-bit systems.
-
-2009-07-05  Bram Tassyns  <bramt@enfocus.be>
-
-       Improve compatibility to Acroread.
-       This fixes Savannah bug #26944.
-
-       * src/cff/cffload.c (cff_charset_compute_cids): For multiple GID to
-       single CID mappings, make the lowest value win.
-
-2009-06-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       ftpatent: Fix a bug by wrong usage of service->table_info().
-       http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00039.html
-
-       * include/freetype/internal/services/svsfnt.h: Extend
-       FT_SFNT_TableInfoFunc() to take new argument to obtain the offset
-       to the specified table.
-       * src/sfnt/sfdriver.c (sfnt_table_info): Extend to return the
-       table-offset to the caller function.
-       * src/base/ftpatent.c (_tt_check_patents_in_table): Use new
-       service->table_info().
-       * src/base/ftobjs.c (FT_Sfnt_Table_Info): Synchronize to new
-       service->table_info().
-
-2009-06-28  Werner Lemberg  <wl@gnu.org>
-
-       [psaux, cff] Protect against nested `seac' calls.
-
-       * include/freetype/internal/psaux.h (T1_Decoder), src/cff/cffgload.h
-       (CFF_Decoder): Add `seac' boolean variable.
-
-       * src/cff/cffgload.c (cff_operator_seac), src/psaux/t1decode.c
-       (t1operator_seac): Use it.
-
-2009-06-28  Werner Lemberg  <wl@gnu.org>
-
-       Thinko.
-
-       * src/psaux/t1decode.c (t1operator_seac)
-       [FT_CONFIG_OPTION_INCREMENTAL]: Test for existence of incremental
-       interface.
-
-2009-06-28  Werner Lemberg  <wl@gnu.org>
-
-       * devel/ftoption.h [FT_CONFIG_OPTION_INCREMENTAL]: Define.
-
-2009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Add tools to preprocess the source files for AtariST PureC.
-
-       * builds/atari/deflinejoiner.awk: New file to filter C source files
-       for broken C preprocessor of PureC compiler.
-
-       * builds/atari/gen-purec-patch.sh: New file to generate a patch set
-       for PureC, by using deflinejoiner.awk.
-
-2009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Keep existing modules.cfg in the building tree.
-
-       * configure: If `configure' is executed outside of the source tree,
-       an existing `modules.cfg' file in the build directory should be
-       kept, not overwritten by the version in the source tree.
-
-2009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Filter --srcdir= option before invoking builds/unix/configure.
-
-       * configure: If builds/unix/configure is invoked with --srcdir
-       option, the option should take `builds/unix' directory instead of
-       the top source directory.  Thus the configure script in the top
-       directory should modify the --srcdir= option if
-       `builds/unix/configure' is invoked.
-
-2009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Improve configure.raw for cross-building on exe-suffixed systems.
-
-       * builds/unix/configure.raw: Fix a bug in sed script to extract
-       native suffix for binary executables, patch by Peter Breitenlohner.
-       http://lists.gnu.org/archive/html/freetype-devel/2009-04/msg00036.html
-
-2009-06-26  Werner Lemberg  <wl@gnu.org>
-
-       [truetype] Remove TT_SubGlyphRec.
-
-       * src/truetype/ttobjs.h (TT_SubGlyphRec): Removed, unused.
-
-2009-06-26  Werner Lemberg  <wl@gnu.org>
-
-       * */*: For warning messages, replace FT_ERROR with FT_TRACE0.
-
-       FT_ERROR is now used only if a function produces a non-zero `error'
-       value.
-
-       Formatting, improving and harmonizing debug strings.
-
-2009-06-25  Werner Lemberg  <wl@gnu.org>
-
-       Provide version information better.
-
-       * src/base/ftinit.c (FT_Init_FreeType): Don't set version here
-       but...
-       * src/base/ftobjs.c (FT_New_Library): Here.
-
-2009-06-22  Werner Lemberg  <wl@gnu.org>
-
-       Use 16.16 format while parsing Type 1 charstrings.
-       This fixes Savannah bug #26867.
-
-       Previously, only integers have been used which can lead to serious
-       rounding errors.
-
-       However, fractional values are only used internally; after the
-       charstrings (of either Type 1 or 2) have been processed, the
-       resulting coordinates get rounded to integers currently -- before
-       applying scaling.  This should be fixed; at the same time a new load
-       flag should be introduced, to be used in combination with
-       FT_LOAD_NO_SCALE, which indicates that font units are returned in
-       16.16 format.  Similarly, the incremental interface should be
-       extended to allow fractional values for metrics.
-
-       * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `shift'
-       field.
-       * include/freetype/internal/pshints.h (T1_Hints_SetStemFunc,
-       T1_Hints_SetStem3Func): Use FT_Fixed for coordinates.
-
-       * src/psaux/psobjs.c: Include FT_INTERNAL_CALC_H.
-       (t1_build_add_point): Always convert fixed to integer.
-       * src/psaux/t1decode.c (t1_decoder_parse_charstrings):
-       Use 16.16 format everywhere (except for large integers followed by a
-       `div').
-       [CAN_HANDLE_NON_INTEGRAL_T1_OPERANDS]: Remove #ifdef and activate
-       code uncoditionally.
-       Add support for random numbers and update remaining code
-       accordingly; this should work now.
-       (t1_operator_seac): Updated.
-       * src/psaux/pshrec.c: Include FT_INTERNAL_CALC_H.
-       (ps_hints_t1stem3, t1_hints_stem): Updated.
-
-       * src/cid/cidgload.c: Include FT_INTERNAL_CALC_H.
-       (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL],
-       (cid_face_compute_max_advance, cid_slot_load_glyph): Updated.
-
-       * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
-       [FT_CONFIG_OPTION_INCREMENTAL], (T1_Get_Advances, T1_Load_Glyph):
-       Updated.
-       * src/type1/t1load.c: Include FT_INTERNAL_CALC_H.
-       * src/type1/t1objs.c (T1_Face_Init): Updated.
-
-2009-06-21  Werner Lemberg  <wl@gnu.org>
-
-       * src/pshinter/pshrec.c: Use PSH_Err_Ok.
-
-2009-06-21  Werner Lemberg  <wl@gnu.org>
-
-       Code beautification.
-
-       * src/type1/t1load.c (FT_INT_TO_FIXED): Removed.
-       Replace everywhere with INT_TO_FIXED.
-       (FT_FIXED_TO_INT): Move to ...
-       * include/freetype/internal/ftcalc.h (FIXED_TO_INT): Here.
-       Update all users.
-
-2009-06-20  Werner Lemberg  <wl@gnu.org>
-
-       Remove unused variables.
-
-       * include/freetype/internal/psaux.h (T1_BuilderRec),
-       src/cff/cffgload.h (CFF_Builder): Remove `last'.
-       Update all users.
-
-2009-06-20  Werner Lemberg  <wl@gnu.org>
-
-       [psaux] Check large integers while parsing charstrings.
-
-       * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Large
-       integers must be followed by a `div' operator.
-
-2009-06-20  Werner Lemberg  <wl@gnu.org>
-
-       [cff] Revert last change.
-
-       * src/cff/cffgload.c (cff_decoder_parse_charstrings): Do it.
-       Next time, don't confuse Type 2 charstring opcodes with TOP DICT
-       values...
-
-2009-06-20  Werner Lemberg  <wl@gnu.org>
-
-       * src/autofit/aflatin.c (af_latin_metrics_check_digits): Fix
-       compiler warning.
-
-2009-06-20  Werner Lemberg  <wl@gnu.org>
-
-       * builds/compiler/gcc.mk (CFLAGS): Use -O3, not -O6.
-
-2009-06-19  Werner Lemberg  <wl@gnu.org>
-
-       [cff] Fix handling of reserved byte 0xFF.
-
-       * src/cff/cffgload.c (cff_decoder_parse_charstrings): Abort if byte
-       0xFF is encountered.
-
-2009-06-19  Werner Lemberg  <wl@gnu.org>
-
-       Improve debug messages for Type1 charstrings.
-
-       * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Emit newlines
-       after instructions.
-       Prettify output.
-
-2009-06-19  Werner Lemberg  <wl@gnu.org>
-
-       More ftgray fixes for FT_STATIC_RASTER.
-       Problems reported by suyu@cooee.cn.
-
-       * src/smooth/ftgrays.c (gray_move_to, gray_raster_render): Use
-       RAS_VAR.
-
-2009-06-18  Werner Lemberg  <wl@gnu.org>
-
-       * docs/CHANGES: Updated.
-
-2009-06-18  Werner Lemberg  <wl@gnu.org>
-
-       Fix B/W rasterization of subglyphs with different drop-out modes.
-
-       Normally, the SCANMODE instruction (if present) to set the drop-out
-       mode in a TrueType font is located in the `prep' table only and thus
-       valid for all glyphs.  However, there are fonts like `pala.ttf'
-       which additionally contain this instruction in the hinting code of
-       some glyphs (but not all).  As a result it can happen that a
-       composite glyph needs multiple drop-out modes for its subglyphs
-       since the rendering state gets reset for each subglyph.
-
-       FreeType collects the hinted outlines from all subglyphs, then it
-       sends the data to the rasterizer.  It also sends the drop-out mode
-       -- after hinting has been applied -- and here is the error: It sends
-       the drop-out mode of the last subglyph only; drop-out modes of all
-       other subglyphs are lost.
-
-       This patch fixes the problem; it adds a second, alternative
-       mechanism to pass the drop-out mode: For each contour, the
-       rasterizer now checks the first `tags' array element.  If bit 2 is
-       set, bits 5-7 contain the contour's drop-out mode, overriding the
-       global drop-out mode.
-
-       * include/freetype/ftimage.h (FT_CURVE_TAG_HAS_SCANMODE): New macro.
-
-       * src/truetype/ttgload.c (TT_Hint_Glyph): Store drop-out mode in
-       `tags[0]'.
-
-       * src/raster/ftraster.c (Flow_Up, Overshoot_Top, Overshoot_Bottom):
-       Use bits 3-5 instead of 0-2.
-       (New_Profile): Set the drop-out mode in the profile's `flags' field.
-       (Decompose_Curve): Check `tags[0]' and set `dropOutControl' if
-       necessary.
-       (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
-       Horizontal_Gray_Sweep_Drop, Draw_Sweep): Use the profile's drop-out
-       mode.
-
-2009-06-16  Werner Lemberg  <wl@gnu.org>
-
-       Improve scan conversion rules 4 and 6.
-
-       Two new constraints are introduced to better identify a `stub' -- a
-       concept which is only vaguely described in the OpenType
-       specification.  The old code was too rigorous and suppressed more
-       pixel than it should.
-
-         . The intersection of the two profiles with the scanline is less
-           than a half pixel.  Code related to this was already present in
-           the sources but has been commented out.
-
-         . The endpoint of the original contour forming a profile has a
-           distance (`overshoot') less than half a pixel to the scanline.
-
-       Note that the two additional conditions fix almost all differences
-       to the Windows rasterizer, but some problematic cases remain.
-
-       * src/raster/ftraster.c (Overshoot_Top, Overshoot_Bottom): New
-       macros for the `flags' field in the `TProfile' structure.
-       (IS_BOTTOM_OVERSHOOT, IS_TOP_OVERSHOOT): New macros.
-       (New_Profile, End_Profile): Pass overshoot flag as an argument and
-       set it accordingly.
-       Update callers.
-       (Vertical_Sweep_Drop, Horizontal_Sweep_Drop): Implement the two new
-       constraints.
-
-2009-06-11  Werner Lemberg  <wl@gnu.org>
-
-       Increase precision for B/W rasterizer.
-
-       * src/raster/ftraster.c (Set_High_Precision): Add two more bits to
-       the precision.  This corrects rendering of some small glyphs, for
-       example, glyph `xi' in verdana.ttf at 13 ppem.  Testing with ftbench
-       on my GNU/Linux box I don't see a performance degradation.
-
-2009-06-08  Michael Zucchi  <notzed@gmail.com>
-
-       Handle FT_STROKER_LINECAP_BUTT.
-       This fixes Savannah bug #26757.
-
-       * src/base/ftstroke.c (ft_stroker_cap): Implement it.
-
-2009-06-07  Harald Fernengel  <harry@kdevelop.org>
-
-       Fix some potential out-of-memory crashes.
-
-       * src/base/ftobjs.c (ft_glyphslot_done): Check `slot->internal'.
-       * src/base/ftstream.c (FT_Stream_ReleaseFrame): Check `stream'.
-       * src/truetype/ttinterp.c (TT_New_Context): Avoid double-free of
-       `exec' in case of failure.
-
-2009-06-07  Werner Lemberg  <wl@gnu.org>
-
-       Simplify math.
-       Suggested by Alexei Podtelezhnikov <apodtele@gmail.com>.
-
-       * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
-       Horizontal_Gray_Sweep_Drop): Do it.
-
-2009-06-04  Werner Lemberg  <wl@gnu.org>
-
-       Preparation for fixing scan conversion rules 4 and 6.
-
-       * src/raster/ftraster.c (TFlow): Replace enumeration with...
-       (Flow_Up): This macro.
-       (TProfile): Replace `flow' member with `flags' bit field.
-       Update all affected code.
-
-2009-05-29  James Cloos  <cloos@jhcloos.com>
-
-       Enable autohinting for glyphs rotated by multiples of 90°.
-
-       * src/base/ftobjs.c (FT_Load_Glyph): Alter check for permitted
-       matrices to allow rotations by multiples of 90°, not only unrotated,
-       possibly slanted matrices.
-
-2009-05-28  Werner Lemberg  <wl@gnu.org>
-
-       Remove compiler warning.
-       Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>.
-
-       * src/autofit/aflatin2.c (af_latin2_hint_edges): Move declaration of
-       `n_edges' into `#if' block.
-
-2009-05-28  Werner Lemberg  <wl@gnu.org>
-
-       Make compilation work with FT_CONFIG_OPTION_USE_ZLIB not defined.
-       Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>.
-
-       * src/pcf/pcfdrivr.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_ZLIB]:
-       Make it work.
-       Simplify #ifdef logic.
-
-2009-05-22  Werner Lemberg  <wl@gnu.org>
-
-       Improve b/w rasterizer.
-       Problem reported by Krzysztof Kotlenga <pocek@users.sf.net>.
-
-       * src/raster/raster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
-       Horizontal_Gray_Sweep_Drop): For smart drop-out mode, if
-       intersections are equally distant relative to next pixel center,
-       select the left pixel, not the right one.
-
-2009-05-19  Werner Lemberg  <wl@gnu.org>
-
-       Fix Savannah bug #26600.
-
-       * src/type42/t42parse.c (t42_load_keyword): Handle
-       T1_FIELD_LOCATION_FONT_EXTRA.
-
-2009-04-30  Werner Lemberg  <wl@gnu.org>
-
-       Document recent changes to ftview.
-
-       * docs/CHANGES: Do it.
-
-2009-04-27  Werner Lemberg  <wl@gnu.org>
-
-       autohinter: Don't change digit widths if all widths are the same.
-       This fixes FreeDesktop bug #21197.
-
-       * src/autofit/afglobal.c (AF_DIGIT): New macro.
-       (af_face_globals_compute_script_coverage): Mark ASCII digits in
-       `glyph_scripts' array.
-       (af_face_globals_get_metrics): Updated.
-       (af_face_globals_is_digit): New function.
-       * src/autofit/afglobal.h: Updated.
-       (AF_ScriptMetricsRec): Add `digits_have_same_width' flag.
-
-       * src/autofit/aflatin.c: Include FT_ADVANCES_H.
-       (af_latin_metrics_check_digits): New function.
-       (af_latin_metrics_init): Use it.
-       * src/autofit/aflatin.h: Updated.
-       * src/autofit/afcjk.c (af_cjk_metrics_init): Updated.
-
-       * src/autofit/aflatin2.c: Similar changes as with aflatin.c.
-
-       * src/autofit/afloader.c (af_loader_load_g): Test digit width.
-
-       * docs/CHANGES: Document it.
-
-2009-04-26  Werner Lemberg  <wl@gnu.org>
-
-       Make ftgrays compile with _STANDALONE_ and FT_STATIC_RASTER again.
-       Problems reported by suyu@cooee.cn.
-
-       * src/smooth/ftgrays.c (FT_DEFINE_OUTLINE_FUNCS,
-       FT_DEFINE_RASTER_FUNCS) [_STANDALONE_]: Define.
-       [!_STANDALONE_]: Include ftspic.h only here.
-       (ras): Define/declare after definition of `TWorker'.
-       Use `RAS_VAR_' where necessary.
-
-2009-04-21  Karl Berry  <karl@gnu.org>
-
-       Fix AC_CHECK_FT2.
-
-       * builds/unix/freetype2.m4: Only check PATH for freetype-config if
-       we did not already find it from a prefix option.
-
-2009-04-05  Oran Agra  <oran@monfort.co.il>
-
-       Add #error to modules and files that do not support PIC yet.
-
-       When FT_CONFIG_OPTION_PIC is defined the following files will
-       create #error:
-       * src/bdf/bdfdrivr.h
-       * src/cache/ftcmanag.c
-       * src/cid/cidriver.h
-       * src/gxvalid/gxvmod.h
-       * src/gzip/ftgzip.c
-       * src/lzw/ftlzw.c
-       * src/otvalid/otvmod.h
-       * src/pcf/pcfdrivr.h
-       * src/pfr/pfrdrivr.h
-       * src/psaux/psauxmod.h
-       * src/type1/t1driver.h
-       * src/type42/t42drivr.h
-       * src/winfonts/winfnt.h
-
-2009-04-05  Oran Agra  <oran@monfort.co.il>
-
-       Position Independent Code (PIC) support in autofit module.
-
-       * include/freetype/internal/autohint.h add macros to init
-       instances of FT_AutoHinter_ServiceRec.
-
-       * src/autofit/afmodule.h declare autofit_module_class
-       using macros from ftmodapi.h,
-       when FT_CONFIG_OPTION_PIC is defined create and destroy
-       functions will be declared.
-       * src/autofit/afmodule.c when FT_CONFIG_OPTION_PIC is defined
-       af_autofitter_service and autofit_module_class structs
-       will have functions to init or create and destroy them
-       instead of being allocated in the global scope.
-       And macros will be used from afpic.h in order to access them.
-
-       * src/autofit/aftypes.h add macros to init and declare
-       instances of AF_ScriptClassRec.
-
-       * src/autofit/afcjk.h declare af_cjk_script_class
-       using macros from aftypes.h,
-       when FT_CONFIG_OPTION_PIC is defined init function will be declared.
-       * src/autofit/afcjk.c when FT_CONFIG_OPTION_PIC is defined
-       af_cjk_script_class struct will have function to init it instead of
-       being allocated in the global scope.
-
-       * src/autofit/afdummy.h declare af_dummy_script_class
-       using macros from aftypes.h,
-       when FT_CONFIG_OPTION_PIC is defined init function will be declared.
-       * src/autofit/afdummy.c when FT_CONFIG_OPTION_PIC is defined
-       af_dummy_script_class struct will have function to init it instead of
-       being allocated in the global scope.
-
-       * src/autofit/afindic.h declare af_indic_script_class
-       using macros from aftypes.h,
-       when FT_CONFIG_OPTION_PIC is defined init function will be declared.
-       * src/autofit/afindic.c when FT_CONFIG_OPTION_PIC is defined
-       af_indic_script_class struct will have function to init it instead of
-       being allocated in the global scope.
-
-       * src/autofit/aflatin.h declare af_latin_script_class
-       using macros from aftypes.h,
-       when FT_CONFIG_OPTION_PIC is defined init function will be declared.
-       * src/autofit/aflatin.c when FT_CONFIG_OPTION_PIC is defined
-       af_latin_script_class struct will have function to init it instead of
-       being allocated in the global scope.
-       Change af_latin_blue_chars to be PIC-compatible by being a two
-       dimentional array rather than array of pointers.
-
-
-       * src/autofit/aflatin2.h declare af_latin2_script_class
-       using macros from aftypes.h,
-       when FT_CONFIG_OPTION_PIC is defined init function will be declared.
-       * src/autofit/aflatin2.c when FT_CONFIG_OPTION_PIC is defined
-       af_latin2_script_class struct will have function to init it instead of
-       being allocated in the global scope.
-       Change af_latin2_blue_chars to be PIC-compatible by being a two
-       dimentional array rather than array of pointers.
-
-       * src/autofit/afglobal.c when FT_CONFIG_OPTION_PIC is defined
-       af_script_classes array initialization was moved to afpic.c and
-       is later refered using macros defeined in afpic.h.
-
-       New Files:
-       * src/autofit/afpic.h declare struct to hold PIC globals for autofit
-       module and macros to access them.
-       * src/autofit/afpic.c implement functions to allocate, destroy and
-       initialize PIC globals for autofit module.
-
-       * src/autofit/autofit.c add new file to build: afpic.c.
-       * src/autofit/jamfile add new files to FT2_MULTI build: afpic.c.
-
-2009-04-05  Oran Agra  <oran@monfort.co.il>
-
-       Position Independent Code (PIC) support in pshinter module.
-
-       * include/freetype/internal/pshints.h add macros to init
-       instances of PSHinter_Interface.
-
-       * src/pshinter/pshmod.h declare pshinter_module_class
-       using macros from ftmodapi.h,
-       when FT_CONFIG_OPTION_PIC is defined create and destroy
-       functions will be declared.
-       * src/pshinter/pshmod.c when FT_CONFIG_OPTION_PIC is defined
-       pshinter_interface and pshinter_module_class structs
-       will have functions to init or create and destroy them
-       instead of being allocated in the global scope.
-       And macros will be used from pshpic.h in order to access them.
-
-       New Files:
-       * src/pshinter/pshpic.h declare struct to hold PIC globals for pshinter
-       module and macros to access them.
-       * src/pshinter/pshpic.c implement functions to allocate, destroy and
-       initialize PIC globals for pshinter module.
-
-       * src/pshinter/pshinter.c add new file to build: pshpic.c.
-       * src/pshinter/jamfile add new files to FT2_MULTI build: pshpic.c.
-
-2009-04-05  Oran Agra  <oran@monfort.co.il>
-
-       Position Independent Code (PIC) support in psnames module.
-
-       * include/freetype/internal/services/svpscmap.h add macros to init
-       instances of FT_Service_PsCMapsRec.
-
-       * src/psnames/psmodule.h declare psnames_module_class
-       using macros from ftmodapi.h,
-       when FT_CONFIG_OPTION_PIC is defined create and destroy
-       functions will be declared.
-       * src/psnames/psmodule.c when FT_CONFIG_OPTION_PIC is defined
-       pscmaps_interface and pscmaps_services structs
-       and psnames_module_class array
-       will have functions to init or create and destroy them
-       instead of being allocated in the global scope.
-       And macros will be used from pspic.h in order to access them.
-
-       New Files:
-       * src/psnames/pspic.h declare struct to hold PIC globals for psnames
-       module and macros to access them.
-       * src/psnames/pspic.c implement functions to allocate, destroy and
-       initialize PIC globals for psnames module.
-
-       * src/psnames/psnames.c add new file to build: pspic.c.
-       * src/psnames/jamfile add new files to FT2_MULTI build: pspic.c.
-
-2009-04-05  Oran Agra  <oran@monfort.co.il>
-
-       Position Independent Code (PIC) support in raster renderer.
-
-       * src/raster/ftrend1.h declare ft_raster1_renderer_class
-       and ft_raster5_renderer_class
-       using macros from ftrender.h,
-       when FT_CONFIG_OPTION_PIC is defined create and destroy
-       functions will be declared.
-       * src/smooth/ftrend1.c when FT_CONFIG_OPTION_PIC is defined
-       ft_raster1_renderer_class and ft_raster5_renderer_class structs
-       will have functions to init or create and destroy them
-       instead of being allocated in the global scope.
-       Macros will be used from rastpic.h in order to access
-       ft_standard_raster from the pic_container (allocated in ftraster.c).
-       In ft_raster1_render when PIC is enabled, the last letter of
-       module_name is used to verfy the renderer class rather than the
-       class pointer.
-
-       * src/raster/ftraster.c when FT_CONFIG_OPTION_PIC is defined
-       ft_standard_raster struct will have function to init it
-       instead of being allocated in the global scope.
-
-       New Files:
-       * src/raster/rastpic.h declare struct to hold PIC globals for raster
-       renderer and macros to access them.
-       * src/raster/rastpic.c implement functions to allocate, destroy and
-       initialize PIC globals for raster renderer.
-
-       * src/raster/raster.c add new file to build: rastpic.c.
-       * src/raster/jamfile add new files to FT2_MULTI build: rastpic.c.
-
-2009-04-05  Oran Agra  <oran@monfort.co.il>
-
-       Position Independent Code (PIC) support in smooth renderer.
-
-       * src/smooth/ftsmooth.h declare ft_smooth_renderer_class,
-       ft_smooth_lcd_renderer_class and ft_smooth_lcd_v_renderer_class
-       using macros from ftrender.h,
-       when FT_CONFIG_OPTION_PIC is defined create and destroy
-       functions will be declared.
-       * src/smooth/ftsmooth.c when FT_CONFIG_OPTION_PIC is defined
-       the following structs:
-       ft_smooth_renderer_class, ft_smooth_lcd_renderer_class
-       and ft_smooth_lcd_v_renderer_class
-       will have functions to init or create and destroy them
-       instead of being allocated in the global scope.
-       And macros will be used from ftspic.h in order to access
-       ft_grays_raster from the pic_container (allocated in ftgrays.c).
-
-       * src/smooth/ftgrays.h include FT_CONFIG_CONFIG_H
-       * src/smooth/ftgrays.c when FT_CONFIG_OPTION_PIC is NOT defined
-       func_interface was moved from gray_convert_glyph_inner function
-       to the global scope.
-       When FT_CONFIG_OPTION_PIC is defined
-       func_interface and ft_grays_raster structs
-       will have functions to init them
-       instead of being allocated in the global scope.
-       And func_interface will be allocated on the stack of
-       gray_convert_glyph_inner.
-
-       New Files:
-       * src/smooth/ftspic.h declare struct to hold PIC globals for smooth
-       renderer and macros to access them.
-       * src/smooth/ftspic.c implement functions to allocate, destroy and
-       initialize PIC globals for smooth renderer.
-
-       * src/smooth/smooth.c add new file to build: ftspic.c.
-       * src/smooth/jamfile add new files to FT2_MULTI build: ftspic.c.
-
-2009-04-05  Oran Agra  <oran@monfort.co.il>
-
-       Position Independent Code (PIC) support in cff driver.
-
-       * include/freetype/internal/services/svcid.h add macros to init
-       instances of FT_Service_CIDRec.
-       * include/freetype/internal/services/svpsinfo.h add macros to init
-       instances of FT_Service_PsInfoRec.
-
-       * src/cff/cffcmap.h declare cff_cmap_encoding_class_rec
-       and cff_cmap_unicode_class_rec using macros from
-       ftobjs.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
-       functions will be declared.
-       * src/cff/cffcmap.c when FT_CONFIG_OPTION_PIC is defined
-       the following structs:
-       cff_cmap_encoding_class_rec and cff_cmap_unicode_class_rec
-       will have functions to init or create and destroy them
-       instead of being allocated in the global scope.
-
-       * src/cff/cffdrivr.h declare cff_driver_class using macros from
-       ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
-       functions will be declared.
-       * src/cff/cffdrivr.c when FT_CONFIG_OPTION_PIC is defined
-       the following structs:
-       cff_service_glyph_dict, cff_service_ps_info, cff_service_ps_name
-       cff_service_get_cmap_info, cff_service_cid_info, cff_driver_class,
-       and cff_services array
-       will have functions to init or create and destroy them
-       instead of being allocated in the global scope.
-       And macros will be used from cffpic.h in order to access them
-       from the pic_container.
-       Use macros from cffpic.h in order to access the
-       structs allocated in cffcmap.c
-
-       * src/cff/cffobjs.c Use macros from cffpic.h in order to access the
-       structs allocated in cffcmap.c
-
-       * src/cff/parser.c when FT_CONFIG_OPTION_PIC is defined
-       implement functions to create and destroy cff_field_handlers array
-       instead of being allocated in the global scope.
-       And macros will be used from cffpic.h in order to access it
-       from the pic_container.
-
-       New Files:
-       * src/cff/cffpic.h declare struct to hold PIC globals for cff
-       driver and macros to access them.
-       * src/cff/cffpic.c implement functions to allocate, destroy and
-       initialize PIC globals for cff driver.
-
-       * src/cff/cff.c add new file to build: cffpic.c.
-       * src/cff/jamfile add new files to FT2_MULTI build: cffpic.c.
-
-2009-04-05  Oran Agra  <oran@monfort.co.il>
-
-       Position Independent Code (PIC) support in sfnt driver.
-
-       * include/freetype/internal/services/svbdf.h add macros to init
-       instances of FT_Service_BDFRec.
-       * include/freetype/internal/services/svgldict.h add macros to init
-       instances of FT_Service_GlyphDictRec.
-       * include/freetype/internal/services/svpostnm.h add macros to init
-       instances of FT_Service_PsFontNameRec.
-       * include/freetype/internal/services/svsfnt.h add macros to init
-       instances of FT_Service_SFNT_TableRec.
-       * include/freetype/internal/services/svttcmap.h add macros to init
-       instances of FT_Service_TTCMapsRec.
-       * include/freetype/internal/sfnt.h add macros to init
-       instances of SFNT_Interface.
-
-       * src/sfnt/sfdriver.h declare sfnt_module_class using macros from
-       ftmodapi.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
-       functions will be declared.
-       * src/sfnt/sfdriver.c when FT_CONFIG_OPTION_PIC is defined
-       the following structs:
-       sfnt_service_sfnt_table, sfnt_service_glyph_dict, sfnt_service_ps_name
-       tt_service_get_cmap_info, sfnt_service_bdf, sfnt_interface,
-       sfnt_module_class, and sfnt_services array
-       will have functions to init or create and destroy them
-       instead of being allocated in the global scope.
-       And macros will be used from sfntpic.h in order to access them
-       from the pic_container.
-
-       * src/sfnt/ttcmap.h add macros to init
-       instances of TT_CMap_ClassRec.
-       * src/sfnt/ttcmap.c when FT_CONFIG_OPTION_PIC is defined
-       the following structs:
-       tt_cmap0_class_rec, tt_cmap2_class_rec, tt_cmap4_class_rec
-       tt_cmap6_class_rec, tt_cmap8_class_rec, tt_cmap10_class_rec,
-       tt_cmap12_class_rec, tt_cmap14_class_rec and tt_cmap_classes array
-       will have functions to init or create and destroy them
-       instead of being allocated in the global scope.
-       And macros will be used from sfntpic.h in order to access them
-       from the pic_container.
-       The content of tt_cmap_classes is now described in the
-       new file 'ttcmapc.h'.
-
-       New Files:
-       * src/sfnt/sfntpic.h declare struct to hold PIC globals for sfnt
-       driver and macros to access them.
-       * src/sfnt/sfntpic.c implement functions to allocate, destroy and
-       initialize PIC globals for sfnt driver.
-       * src/sfnt/ttcmapc.h describing the content of
-       tt_cmap_classes allocated in ttcmap.c
-
-       * src/sfnt/sfnt.c add new file to build: sfntpic.c.
-       * src/sfnt/jamfile add new files to FT2_MULTI build: sfntpic.c.
-
-2009-04-05  Oran Agra  <oran@monfort.co.il>
-
-       Position Independent Code (PIC) support in truetype driver.
-
-       * include/freetype/internal/services/svmm.h add macros to init
-       instances of FT_Service_MultiMastersRec.
-       * include/freetype/internal/services/svttglyf.h add macros to init
-       instances of FT_Service_TTGlyfRec.
-
-       * src/truetype/ttdriver.h declare tt_driver_class using macros from
-       ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
-       functions will be declared.
-       * src/truetype/ttdriver.c when FT_CONFIG_OPTION_PIC is defined
-       the following structs:
-       tt_service_gx_multi_masters, tt_service_truetype_glyf, tt_driver_class
-       and tt_services array,
-       will have functions to init or create and destroy them
-       instead of being allocated in the global scope.
-       And macros will be used from ttpic.h in order to access them
-       from the pic_container.
-       * src/truetype/ttobjs.c change trick_names array to be
-       PIC-compatible by being a two dimentional array rather than array
-       of pointers.
-
-       New Files:
-       * src/truetype/ttpic.h declare struct to hold PIC globals for truetype
-       driver and macros to access them.
-       * src/truetype/ttpic.c implement functions to allocate, destroy and
-       initialize PIC globals for truetype driver.
-
-       * src/truetype/truetype.c add new file to build: ttpic.c.
-       * src/truetype/jamfile add new files to FT2_MULTI build: ttpic.c.
-
-2009-04-05  Oran Agra  <oran@monfort.co.il>
-
-       Position Independent Code (PIC) support and infrastructure in base.
-
-       * include/freetype/config/ftoption.h add FT_CONFIG_OPTION_PIC
-       * include/freetype/internal/ftobjs.h Add pic_container member to
-       FT_LibraryRec.
-       Add macros to declare and init instances of FT_CMap_ClassRec.
-       Add macros to init instances of FT_Outline_Funcs and FT_Raster_Funcs.
-       Add macros to declare, allocate and initialize modules
-       (FT_Module_Class).
-       Add macros to declare, allocate and initialize renderers
-       (FT_Renderer_Class).
-       Add macro to init instances of FT_Glyph_Class.
-       Add macros to declare, allocate and initialize drivers
-       (FT_Driver_ClassRec).
-       * include/freetype/internal/ftpic.h new file to declare the
-       FT_PIC_Container struct and the functions to allocate and detroy it.
-       * include/freetype/internal/ftserv.h add macros to allocate and
-       destory arrays of FT_ServiceDescRec.
-       * include/freetype/internal/internal.h define macro to include
-       ftpic.h.
-
-       New Files:
-       * src/base/ftpic.c implement functions to allocate and destory the
-       global pic_container.
-       * src/base/basepic.h declare struct to hold PIC globals for base and
-       macros to access them.
-       * src/base/basepic.c implement functions to allocate, destroy and
-       initialize PIC globals for base.
-
-       * src/base/ftinit.c when FT_CONFIG_OPTION_PIC is defined implement
-       functions that allocate and destroy ft_default_modules according to
-       FT_CONFIG_MODULES_H in the pic_container instead of the global scope
-       and use macro from basepic.h to access it.
-       * src/base/ftobjs.c add calls to the functions that allocate and
-       destroy the global pic_container when the library is created and
-       destroyed.
-
-       * src/base/jamfile add new files to FT2_MULTI build:
-       ftpic.c and basepic.c.
-       * src/base/ftbase.c add new files to build:
-       ftpic.c and basepic.c.
-
-       * src/base/ftglyph.c when FT_CONFIG_OPTION_PIC is defined
-       ft_bitmap_glyph_class and ft_outline_glyph_class will be allocated
-       in the pic_container instead of the global scope and use macros from
-       basepic.h to access them.
-       * src/base/ftbbox.c allocate bbox_interface stract on the stack
-       instead of the global scope when FT_CONFIG_OPTION_PIC is defined.
-       * src/base/ftstroke.c access ft_outline_glyph_class allocated in
-       ftglyph.c via macros from basepic.h
-
-2009-04-05  Oran Agra  <oran@monfort.co.il>
-
-       Preparing changes in cff parser later needed for PIC version.
-
-       * src/cff/cffload.c, src/cff/cffload.h, src/cff/cffobjs.c,
-       src/cff/cffparse.c, src/cff/cffparse.h: Add library pointer to
-       'CFF_ParserRec' set by `cff_parser_init'.
-       Route library pointer from 'cff_face_init' to 'cff_subfont_load'
-       for `cff_parser_init'.
-
-       * src/cff/cffparse.c (CFF_Field_Handler): Move it to...
-       * src/cff/cffparse.h: This file, to be used by other C files.
-
-2009-04-05  Oran Agra  <oran@monfort.co.il>
-
-       Minor change in ftstroke.c.
-
-       * src/base/ftstroke.c (FT_StrokerRec): Replace `memory' member with
-       `library' needed for PIC version.
-       Update all callers.
-
-2009-04-04  Werner Lemberg  <wl@gnu.org>
-
-       ftnames.c -> ftsnames.c
-
-       * src/base/ftnames.c: Rename to...
-       * src/base/ftsnames.c: This.
-       * src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
-
-2009-04-04  Werner Lemberg  <wl@gnu.org>
-
-       Add support for cmap type 13.
-
-       * devel/ftoption.h, include/freetype/config/ftoption.h
-       (TT_CONFIG_CMAP_FORMAT_13): New macro.
-
-       * src/sfnt/ttcmap.c (TT_CMap13Rec, tt_cmap13_init,
-       tt_cmap13_validate, tt_cmap13_char_index, tt_cmap13_char_next,
-       tt_cmap13_get_info, tt_cmap13_char_map_def_binary,
-       tt_cmap14_class_rec): New functions and structures for cmap 13
-       support.
-       (tt_cmap_classes): Register tt_cmap13_class_rec.
-
-       * docs/CHANGES: Mention cmap 13 support.
-
-2009-04-01  Werner Lemberg  <wl@gnu.org>
-
-       Ignore empty contours in CFF glyphs.
-
-       Problem reported by Albert Astals Cid <aacid@kde.org>.
-
-       * src/cff/cffgload.c (cff_builder_close_contour): Synchronize with
-       t1_builder_close_contour.
-
-2009-03-21  Werner Lemberg  <wl@gnu.org>
-
-       Another redundant header inclusion.
-
-       * src/truetype/ttgxvar.c: Fix Ghostscript Coverity issue #4041.
-
-2009-03-21  Werner Lemberg  <wl@gnu.org>
-
-       Remove redundant header inclusions.
-
-       This covers many Ghostscript Coverity issues.
-
-       * src/*: Do it.
-
-2009-03-21  Werner Lemberg  <wl@gnu.org>
-
-       Fix Ghostscript Coverity issue #3904.
-
-       * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against
-       invalid values of `runcnt'.
-
-2009-03-20  Werner Lemberg  <wl@gnu.org>
-
-       Fix `make multi' run.
-
-       * src/smooth/ftsmooth.h: Include FT_INTERNAL_DEBUG_H.
-
-2009-03-20  Werner Lemberg  <wl@gnu.org>
-
-       Fix Savannah bug #25923.
-
-       * src/cache/ftccmap.c (FTC_CMAP_HASH): Fix typo.
-
-2009-03-20  Werner Lemberg  <wl@gnu.org>
-
-       Protect against too large glyphs.
-
-       Problem reported by Tavis Ormandy <taviso@google.com>.
-
-       * src/smooth/ftsmooth.c (ft_smooth_render_generic): Don't allow
-       `pitch' or `height' to be larger than 0xFFFF.
-
-2009-03-20  Werner Lemberg  <wl@gnu.org>
-           Tavis Ormandy  <taviso@google.com>
-
-       Fix validation for various cmap table formats.
-
-       * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate,
-       tt_cmap12_validate): Check `length' correctly.
-       (tt_cmap_14_validate): Check `length' and `numMappings' correctly.
-
-2009-03-20  Werner Lemberg  <wl@gnu.org>
-
-       Protect against malformed compressed data.
-
-       * src/lzw/ftzopen.c (ft_lzwstate_io): Test whether `state->prefix' is
-       zero.
-
-2009-03-20  Werner Lemberg  <wl@gnu.org>
-
-       Protect against invalid SID values in CFFs.
-
-       Problem reported by Tavis Ormandy <taviso@google.com>.
-
-       * src/cff/cffload.c (cff_charset_load): Reject SID values larger
-       than 64999.
-
-2009-03-19  Vincent Richomme  <richom.v@free.fr>
-
-       Update WinCE Visual C project files.
-
-       * builds/wince/vc2005-ce/freetype.vcproj,
-       builds/wince/vc2008-ce/freetype.vcproj: Add missing base extension
-       files.
-
-2009-03-19  Werner Lemberg  <wl@gnu.org>
-
-       Remove unused Win32 code.
-
-       * builds/wince/ftdebug.c: Remove code guarded with `!_WIN32_WCE'.
-       Since Win32 is handled separately this is no longer needed.
-
-2009-03-19  Vincent Richomme  <richom.v@free.fr>
-
-       Make `gzip' module compile on WinCE.
-
-       * src/gzip/zconf.h [_WIN32_WCE]: Define NO_ERRNO_H.
-
-2009-03-19  Werner Lemberg  <wl@gnu.org>
-
-       Remove unused WinCE code.
-
-       * builds/win32/ftdebug.c: Remove code guarded with `_WIN32_WCE'.
-       Since WinCE is handled separately this is no longer needed.
-
-2009-03-16  Werner Lemberg  <wl@gnu.org>
-
-       docmaker: Don't ignore single-line code blocks.
-
-       * src/tools/docmaker/content.py (DocBlock::_init__): Fix change from
-       2009-01-31.
-
-2009-03-15  Steve Langasek  <steve.langasek@canonical.com>
-
-       Use __asm__ for declaring assembly instead of asm.
-
-       * builds/unix/ftconfig.in (FT_MulFix_arm): Use __asm__ instead of
-       asm on arm, fixing a build failure on armel with -pedantic.
-
-2009-03-14  Werner Lemberg  <wl@gnu.org>
-
-       Fix valgrind warning.
-
-       * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned): Don't read
-       past the end of the frame.
-
-2009-03-12  Werner Lemberg  <wl@gnu.org>
-
-       * Version 2.3.9 released.
-       =========================
-
-
-       Tag sources with `VER-2-3-9'.
-
-2009-03-12  Werner Lemberg  <wl@gnu.org>
-
-       * builds/unix/freetype2.in: Move @FT2_EXTRA_LIBS@ to `Libs.private'.
-
-2009-03-12  Werner Lemberg  <wl@gnu.org>
-
-       Fix some FreeType Coverity issues as reported for Ghostscript.
-
-       * src/base/ftobjs.c (FT_New_Face, FT_New_Memory_Face): Initialize
-       `args.stream' (#3874, #3875).
-       (open_face_PS_from_sfnt_stream): Improve error management (#3786).
-       * src/base/ftmm.c (ft_face_get_mm_service): Fix check of `aservice'
-       (#3870).
-       * src/base/ftstroke.c (ft_stroke_border_get_counts): Remove dead
-       code (#3790).
-       * src/base/ftrfork.c (raccess_guess_apple_generic): Check error
-       value of `FT_Stream_Skip' (#3784).
-
-       * src/type1/t1gload.c (T1_Load_Glyph): Check `size' before accessing
-       it (#3872)
-
-       * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Check `face' before accessing
-       it (#3871).
-       * src/pcf/pcfread.c (pcf_get_metrics): Handle return value of
-       `pcf_get_metric' (#3789, #3782).
-       (pcf_get_properties): Use FT_STREAM_SKIP (#3783).
-
-       * src/cache/ftcmanag.c (FTC_Manager_RegisterCache): Fix check of
-       `acache' (#3797)
-
-       * src/cff/cffdrivr.c (cff_ps_get_font_info): Fix check of `cff'
-       (#3796).
-       * src/cff/cffgload.c (cff_decoder_prepare): Check `size' (#3795).
-       * src/cff/cffload.c (cff_index_get_pointers): Add comment (#3794).
-
-       * src/bdf/bdflib.c (_bdf_add_property): Check `fp->value.atom'
-       (#3793).
-       (_bdf_parse_start): Add comment (#3792).
-
-       * src/raster/ftraster.c (Finalize_Profile_Table): Check
-       `ras.fProfile' (#3791).
-
-       * src/sfnt/ttsbit.c (Load_SBit_Image): Use FT_STREAM_SKIP (#3785).
-
-       * src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Properly ignore
-       seek error (#3781).
-
-2009-03-11  Michael Toftdal  <toftdal@gmail.com>
-
-       Extend CID service functions to handle CID-keyed CFFs as CID fonts.
-
-       * include/freetype/ftcid.h (FT_Get_CID_Is_Internally_CID_keyed,
-       FT_Get_CID_From_Glyph_Index): New functions.
-
-       * include/freetype/internal/services/svcid.h
-       (FT_CID_GetIsInternallyCIDKeyedFunc,
-       FT_CID_GetCIDFromGlyphIndexFunc): New function typedefs.
-       (CID Service): Use them.
-
-       * src/base/ftcid.c: Include FT_CID_H.
-       (FT_Get_CID_Is_Internally_CID_keyed, FT_Get_CID_From_Glyph_Index):
-       New functions.
-
-       * src/cff/cffdrivr.c (cff_get_is_cid, cff_get_cid_from_glyph_index):
-       New functions.
-       (cff_service_cid_info): Add them.
-       * src/cff/cffload.c (cff_font_load): Don't free `font->charset.sids'
-       -- it is needed for access as a CID-keyed font.  It gets deleted
-       later on.
-
-       * src/cid/cidriver.c (cid_get_is_cid, cid_get_cid_from_glyph_index):
-       New functions.
-       (cid_service_cid_info): Add them.
-
-       * docs/CHANGES: Updated.
-
-2009-03-11  Bram Tassyns  <bramt@enfocus.be>
-
-       Fix Savannah bug #25597.
-
-       * src/cff/cffparse.c (cff_parse_real): Don't allow fraction_length
-       to become larger than 9.
-
-2009-03-11  Werner Lemberg  <wl@gnu.org>
-
-       Fix Savannah bug #25814.
-
-       * builds/unix/freetype2.in: As suggested in the bug report, move
-       @LIBZ@ to `Libs.private'.
-
-2009-03-11  Werner Lemberg  <wl@gnu.org>
-
-       Fix Savannah bug #25781.
-       We now simply check for a valid `offset', no longer handling `delta
-       = 1' specially.
-
-       * src/sfnt/ttcmap.c (tt_cmap4_validate): Don't check `delta' for
-       last segment.
-       (tt_cmap4_set_range, tt_cmap4_char_map_linear,
-       tt_cmap4_char_map_binary): Check offset.
-
-2009-03-11  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/Jamfile: Fix handling of ftadvanc.c.
-       Reported by Oran Agra <oran@monfort.co.il>.
-
-2009-03-10  Vincent Richomme  <richom.v@free.fr>
-
-       Restructure Win32 and Wince compiler support.
-
-       * src/builds/win32: Remove files for WinCE.
-       Move VC 2005 support to a separate directory.
-       Add directory for VC 2008 support.
-
-       * src/builds/wince: New directory hierarchy for WinCE compilers
-       (VC 2005 and VC 2008).
-
-2009-03-09  Werner Lemberg  <wl@gnu.org>
-
-       More preparations for 2.3.9 release.
-
-       * docs/CHANGES: Updated.
-
-       * Jamfile, README: s/2.3.8/2.3.9/, s/238/239/.
-
-2009-03-09  Werner Lemberg  <wl@gnu.org>
-
-       * src/sfnt/rules.mk (SFNT_DRV_H): Add ttsbit0.c.
-
-2009-03-09  Alexey Kryukov  <anagnost@yandex.ru>
-
-       Fix handling of EBDT formats 8 and 9 (part 2).
-
-       This patch fixes the following problems in ttsbit0.c:
-
-       . Bitmaps for compound glyphs were never allocated.
-
-       . `SBitDecoder' refused to load metrics if some other metrics have
-         already been loaded.  This condition certainly makes no sense for
-         recursive calls, so I've just disabled it.  Another possibility
-         would be resetting `decoder->metrics_loaded' to false before
-         loading each composite component.  However, we must restore the
-         original metrics after finishing the recursion; otherwise we can
-         get a misaligned glyph.
-
-       . `tt_sbit_decoder_load_bit_aligned' incorrectly handled `x_pos',
-         causing some glyph components to be shifted too far to the right
-         (especially noticeable for small sizes).
-
-       Note that support for grayscale bitmaps (not necessarily compound) is
-       completely broken in ttsbit0.c.
-
-       * src/sfnt/tt_sbit_decoder_load_metrics: Always load metrics.
-       (tt_sbit_decoder_load_bit_aligned): Handle `x_pos' correctly in case
-       of `h == height'.
-       (tt_sbit_decoder_load_compound): Reset metrics after loading
-       components.
-       Allocate bitmap.
-
-2009-03-09  Werner Lemberg  <wl@gnu.org>
-
-       * builds/unix/configure.raw (version_info): Set to 9:20:3.
-
-2009-03-03  David Turner  <david@freetype.org>
-
-       Protect SFNT kerning table parser against malformed tables.
-
-       This closes Savannah BUG #25750.
-
-       * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning): Fix a
-       bug where a malformed table would be successfully loaded but later
-       crash the engine during parsing.
-
-2009-03-03  David Turner  <david@freetype.org>
-
-       Update documentation and bump version number to 2.3.9.
-
-       * include/freetype/freetype.h: Bump patch version to 9.
-       * docs/CHANGES: Document the ABI break in 2.3.8.
-       * docs/VERSION.DLL: Update version numbers table for 2.3.9.
-
-2009-03-03  David Turner  <david@freetype.org>
-
-       Remove ABI-breaking field in public PS_InfoFontRec definition.
-
-       Instead, we define a new internal PS_FontExtraRec structure to
-       hold the additional field, then place it in various internal
-       positions of the corresponding FT_Face derived objects.
-
-       * include/freetype/t1tables.h (PS_FontInfoRec): Remove the
-       `fs_type' field from the public structure.
-       * include/freetype/internal/psaux.h (T1_FieldLocation): New
-       enumeration `T1_FIELD_LOCATION_FONT_EXTRA'.
-       * include/freetype/internal/t1types.h (PS_FontExtraRec): New
-       structure.
-       (T1_FontRec, CID_FaceRec): Add it.
-
-       * src/cid/cidload.c (cid_load_keyword): Handle
-       T1_FIELD_LOCATION_FONT_EXTRA.
-       * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c:
-       Adjust FT_STRUCTURE and T1CODE properly to handle `FSType'.
-       * src/type1/t1load.c (t1_load_keyword): Handle
-       T1_FIELD_LOCATION_FONT_EXTRA.
-
-       * include/freetype/internal/services/svpsinfo.h (PsInfo service):
-       Add `PS_GetFontExtraFunc' function typedef.
-
-       * src/base/ftfstype.c: Include FT_INTERNAL_SERVICE_H and
-       FT_SERVICE_POSTSCRIPT_INFO_H.
-       (FT_Get_FSType_Flags): Use POSTSCRIPT_INFO service.
-
-       * src/cff/cffdrivr.c (cff_service_ps_info): Updated.
-       * src/cid/cidriver.c (cid_ps_get_font_extra): New function.
-       (cid_service_ps_info): Updated.
-       * src/type1/t1driver.c (t1_ps_get_font_extra): New function.
-       (t1_service_ps_info): Updated.
-       * src/type42/t42drivr.c (t42_ps_get_font_extra): New function.
-       (t42_service_ps_info): Updated.
-
-2009-03-02  Alexey Kryukov  <anagnost@yandex.ru>
-
-       Fix handling of EBDT formats 8 and 9.
-
-       The main cycle in `blit_sbit' makes too many iterations: it actually
-       needs the count of lines in the source bitmap rather than in the
-       target image.
-
-       * src/sfnt/ttsbit.c (blit_sbit) [FT_CONFIG_OPTION_OLD_INTERNALS]:
-       Add parameter `source_height' and use it for main loop.
-       (Load_SBit_Single) [FT_CONFIG_OPTION_OLD_INTERNALS]: Updated.
-
-2009-02-23  Werner Lemberg  <wl@gnu.org>
-
-       Fix Savannah bug #25669.
-
-       * src/base/ftadvanc.h (FT_Get_Advances): Fix serious typo.
-
-       * src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics): Fix
-       scaling factor for non-scalable fonts.
-
-       * src/cff/cffdrivr.c (cff_get_advances): Use correct advance width
-       value to prevent incorrect scaling.
-
-       * docs/CHANGES: Document it.
-
-2009-02-15  Matt Godbolt  <matt@godbolt.org>
-
-       Fix Savannah bug #25588.
-
-       * builds/unix/ftconfig.in (FT_MulFix_arm): Use correct syntax for
-       `orr' instruction.
-
-2009-02-11  Werner Lemberg  <wl@gnu.org>
-
-       * src/truetype/ttobjs.c (tt_check_trickyness): Add `DFKaiShu'.
-       Reported by David Bevan <dbevan@emtex.com>.
-
-2009-02-09  Werner Lemberg  <wl@gnu.org>
-
-       Fix Savannah bug #25495.
-
-       * src/sfnt/sfobjs.c (sfnt_load_face): Test for bitmap strikes before
-       setting metrics and bbox values.  This ensures that the check for a
-       font with neither a `glyf' table nor bitmap strikes can be performed
-       early enough to set metrics and bbox values too.
-
-2009-02-04  Werner Lemberg  <wl@gnu.org>
-
-       Fix Savannah bug #25480.
-
-       * builds/unix/freetype-config.in: For --ftversion, don't use $prefix
-       but $includedir.
-
-2009-01-31  Werner Lemberg  <wl@gnu.org>
-
-       Minor docmaker improvements.
-
-       * src/tools/docmaker/content.py (DocBlock::__init__): Ignore empty
-       code blocks.
-
-2009-01-25  Werner Lemberg  <wl@gnu.org>
-
-       Fix SCANCTRL handling in TTFs.
-       Problem reported by Alexey Kryukov <anagnost@yandex.ru>.
-
-       * src/truetype/ttinterp.c (Ins_SCANCTRL): Fix threshold handling.
-
-2009-01-23  Werner Lemberg  <wl@gnu.org>
-
-       Move FT_Get_FSType_Flags to a separate file.
-       Problem reported by Mickey Gabel <mickey@monfort.co.il>.
-
-       * src/base/ftobjs.c (FT_Get_FSType_Flags): Move to...
-       * src/base/ftfstype.c: This new file.
-
-       * modules.cfg (BASE_EXTENSION): Add ftfstype.c.
-
-       * docs/INSTALL.ANY: Updated.
-
-       * builds/mac/*.txt, builds/amiga/*makefile*,
-       builds/win32/{visualc,visualce}/freetype.*, builds/symbian/*:
-       Updated.
-
-2009-01-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * builds/unix/ftsystem.c (FT_Stream_Open): Fix 2 error
-       messages ending without "\n".
-
-2009-01-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Fix Savannah bug #25347.
-
-       * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Rewind
-       the stream to the original position passed to this function,
-       when ft_lookup_PS_in_sfnt_stream() failed.
-       (Mac_Read_sfnt_Resource): Rewind the stream to the head of
-       sfnt resource body, when open_face_PS_from_sfnt_stream()
-       failed.
-
-2009-01-19  Michael Lotz  <mmlr@mlotz.ch>
-
-       Fix Savannah bug #25355.
-
-       * include/freetype/config/ftconfig.h (FT_MulFix_i386): Make
-       assembler code work with gcc 2.95.3 (as used by the Haiku project).
-       Add `cc' register to the clobber list.
-
-2009-01-18  Werner Lemberg  <wl@gnu.org>
-
-       Protect FT_Get_Next_Char.
-
-       * src/sfnt/ttcmap.c (tt_cmap4_set_range): Apply fix similar to
-       change from 2008-07-22.
-
-       Patch from Ronen Ghoshal <rghoshal@emtex.com>.
-
-2009-01-18  Werner Lemberg  <wl@gnu.org>
-
-       Implement FT_Get_Name_Index for SFNT driver.
-
-       * src/sfnt/sfdriver.c (sfnt_get_name_index): New function.
-       (sfnt_service_glyph_dict): Use it.
-
-       Problem reported by Truc Truong <tructv@necsv.com>.
-
-2009-01-18  Werner Lemberg  <wl@gnu.org>
-
-       * include/freetype/ftstroke.h (FT_Outline_GetInsideBorder): Fix
-       documentation.  Problem reported by Truc Truong <tructv@necsv.com>.
-
-       * docs/CHANGES: Updated.
-
-2009-01-14  Werner Lemberg  <wl@gnu.org>
-
-       * Version 2.3.8 released.
-       =========================
-
-
-       Tag sources with `VER-2-3-8'.
-
-       * docs/VERSION.DLL: Update documentation and bump version number to
-       2.3.8.
-
-       * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
-       builds/win32/visualc/freetype.dsp,
-       builds/win32/visualc/freetype.vcproj,
-       builds/win32/visualce/index.html,
-       builds/win32/visualce/freetype.dsp,
-       builds/win32/visualce/freetype.vcproj: s/2.3.7/2.3.8/, s/237/238/.
-
-       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
-
-       * builds/unix/configure.raw (version_info): Set to 9:19:3.
-
-       * docs/release: Updated.
-
-2009-01-14  Werner Lemberg  <wl@gnu.org>
-
-       * builds/toplevel.mk (dist): Compress better.
-
-2009-01-13  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftobjs.c (FT_Get_FSType_Flags): Cast for compilation
-       with C++.
-
-2009-01-13  Werner Lemberg  <wl@gnu.org>
-
-       Don't use stdlib.h and friends directly.
-       Reported by Mickey Gabel <mickey@monfort.co.il>.
-
-       * src/base/ftdbgmem.c: s/<stdlib.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
-
-       * src/gzip/ftgzip.c, src/lzw/ftlzw.c, src/raster/ftmisc.h:
-       s/<string.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
-
-       * src/autofit/aftypes.h, src/autofit/afhints.c,
-       src/pshinter/pshalgo.c: s/<stdio.h>/FT_CONFIG_STANDARD_LIBRARY_H/
-
-       * src/lzw/ftlzw.c, src/base/ftdbgmem.c: Don't include stdio.h.
-
-2009-01-12  Werner Lemberg  <wl@gnu.org>
-
-       Avoid compiler warnings.
-
-       * */*: s/do ; while ( 0 )/do { } while ( 0 )/.
-       Reported by Sean McBride <sean@rogue-research.com>.
-
-2009-01-12  Werner Lemberg  <wl@gnu.org>
-
-       Fix stdlib dependencies.
-
-       Problem reported by Mickey Gabel <mickey@monfort.co.il>.
-
-       * include/freetype/config/ftstdlib.h (ft_exit): Removed.  Unused.
-
-       * src/autofit/afhints.c, src/base/ftlcdfil.c, src/smooth/ftsmooth.c:
-       s/memcpy/ft_memcpy/.
-       * src/psaux/t1decode.c: s/memset/ft_memset/, s/memcpy/ft_memcpy/.
-
-2009-01-11  Werner Lemberg  <wl@gnu.org>
-
-       * docs/formats.txt: Add link to PCF specification.
-
-       * include/freetype/ftbdf.h (FT_Get_BDF_Property): Improve
-       documentation.
-
-2009-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
-       FT_Get_Advances): Change the type of load_flags from FT_UInt32 to
-       FT_Int32, to match with the flags for FT_Load_Glyph().
-       * src/cff/cffdrivr.c (cff_get_advances): Ditto.
-       * src/truetype/ttdriver.c (tt_get_advances): Ditto.
-       * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
-       Ditto.
-       * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
-       Ditto.
-
-2009-01-09  Daniel Zimmermann  <netzimme@aol.com>
-
-       * src/gxvalid/gxvmort.c (gxv_mort_feature_validate): Fix wrong
-       length check.  From Savannah patch #6682.
-
-2009-01-09  Werner Lemberg  <wl@gnu.org>
-
-       Fix problem with T1_FIELD_{NUM,FIXED}_TABLE2.
-
-       * src/psaux/psobjs.c (ps_parser_load_field_table): Don't handle
-       `count_offset' if it is zero (i.e., unused).  Otherwise, the first
-       element of the structure which holds the data is erroneously
-       modified.  Problem reported by Chi Nguyen <chint@necsv.com>.
-
-2009-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
-       FT_Get_Advances): Extend the type of load_flags from FT_UInt to
-       FT_UInt32, to pass 32-bit flags on 16bit platforms.
-       * src/cff/cffdrivr.c (cff_get_advances): Ditto.
-       * src/truetype/ttdriver.c (tt_get_advances): Ditto.
-       * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
-       Ditto.
-       * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
-       Ditto.
-
-2009-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftobjs.c (FT_Done_Library): Issue an error message when
-       FT_Done_Face() cannot free all faces. If the list of the opened
-       faces includes broken face which FT_Done_Face() cannot free,
-       FT_Done_Library() retries FT_Done_Face() and it can fall into
-       an endless loop. See the discussion:
-       http://lists.gnu.org/archive/html/freetype-devel/2008-09/msg00047.html
-       http://lists.gnu.org/archive/html/freetype-devel/2008-10/msg00000.html
-
-2009-01-07  Werner Lemberg  <wl@gnu.org>
-
-       * docs/CHANGES: Document new key `a' in ftdiff.
-
-2009-01-06  Werner Lemberg  <wl@gnu.org>
-
-       * autogen.sh: Don't use GNUisms while calling sed.  Problem reported
-       by Sean McBride.
-
-2009-01-06  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftbitmap.c (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_LCD
-       and FT_PIXEL_MODE_LCD_V.  Problem reported by Chi Nguyen
-       <chint@necsv.com>.
-
-2009-01-06  Diego Pettenò  <flameeyes@gmail.com>
-
-       * builds/unix/configure.raw: Don't call AC_CANONICAL_BUILD and
-       AC_CANONICAL_TARGET and use $host_os only.  A nice explanation for
-       this change can be found at
-       http://blog.flameeyes.eu/s/canonical-target.
-
-       From Savannah patch #6712.
-
-2009-01-06  Sean McBride  <sean@rogue-research.com>
-
-       * src/base/ftdbgmem.c (_debug_mem_dummy): Make it static.
-
-       * src/base/ftmac.c: Remove some #undefs.
-
-2008-12-26  Werner Lemberg  <wl@gnu.org>
-
-       Set `face_index' field in FT_Face for all font formats.
-
-       * cff/cffobjs.c (cff_face_init), winfonts/winfnt.c (FNT_Face_Init),
-       sfnt/sfobjs.c (sfnt_init_face): Do it.
-
-       * docs/CHANGES: Document it.
-
-2008-12-22  Steve Grubb
-
-       * builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files.
-       Patch from Savannah bug #25151.
-
-2008-12-21  Werner Lemberg  <wl@gnu.org>
-
-       * src/pfr/pfrdrivr.c, src/winfonts/winfnt.c, src/cache/ftcmanag.c,
-       src/smooth/ftgrays.c, src/base/ftobjc.s, src/sfobjs.c:
-       s/_Err_Bad_Argument/_Err_Invalid_Argument/.  The former is for
-       errors in the bytecode interpreter only.
-
-2008-12-21  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftpfr.c (FT_Get_PFR_Metrics): Protect against NULL
-       arguments.
-       Fix return value for non-PFR fonts.  Both problems reported by Chi
-       Nguyen <chint@necsv.com>.
-
-2008-12-21  anonymous
-
-       FT_USE_MODULE declares things as:
-
-         extern const FT_Module_Class
-
-       (or similar for C++).  However, the actual types of the variables
-       being declared are often different, e.g., FT_Driver_ClassRec or
-       FT_Renderer_Class.  (Some are, indeed, FT_Module_Class.)
-
-       This works with most C compilers (since those structs begin with an
-       FT_Module_Class struct), but technically it's undefined behavior.
-
-       To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7
-       paragraph 2:
-
-         All declarations that refer to the same object or function shall
-         have compatible type; otherwise, the behavior is undefined.
-
-       (And they are not compatible types.)
-
-       Most C compilers don't reject (or even detect!) code which has this
-       issue, but the GCC LTO development branch compiler does.  (It
-       outputs the types of the objects while generating .o files, along
-       with a bunch of other information, then compares them when doing the
-       final link-time code generation pass.)
-
-       Patch from Savannah bug #25133.
-
-       * src/base/ftinit.c (FT_USE_MODULE): Include variable type.
-
-       * builds/amiga/include/freetype/config/ftmodule.h,
-       include/freetype/config/ftmodule.h, */module.mk: Updated to declare
-       pass correct types to FT_USE_MODULE.
-
-2008-12-21  Hongbo Ni  <hongbo@njstar.com>
-
-       * src/autofit/aflatin.c (af_latin_hint_edges),
-       src/autofit/aflatin2.c (af_latin2_hint_edges), src/autofit/afcjk.c
-       (af_cjk_hint_edges): Protect against division by zero.  This fixes
-       Savannah bug #25124.
-
-2008-12-18  Werner Lemberg  <wl@gnu.org>
-
-       * docs/CHANGES: Updated.
-
-2008-12-18  Bevan, David  <dbevan@emtex.com>
-
-       Provide API for accessing embedding and subsetting restriction
-       information.
-
-       * include/freetype.h (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): New
-       macros.
-       (FT_Get_FSType_Flags): New function declaration.
-
-       * src/base/ftobjs.c (FT_Get_FSType_Flags): New function.
-
-       * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c
-       (t42_keywords): Handle `FSType'.
-
-       * include/freetype/t1tables.h (PS_FontInfoRec): Add `fs_type' field.
-
-2008-12-17  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Don't use internal
-       macros so that copying the source code into an application works
-       out of the box.
-
-2008-12-17  Werner Lemberg  <wl@gnu.org>
-
-       * include/freetype/ftsynth.h, src/base/ftsynth.c: Move
-       FT_GlyphSlot_Own_Bitmap to...
-       * include/freetype/ftbitmap.h, src/base/ftbitmap.c: These files.
-
-       * docs/CHANGES: Document it.
-
-2008-12-10  Werner Lemberg  <wl@gnu.org>
-
-       Generalize the concept of `tricky' fonts by introducing
-       FT_FACE_FLAG_TRICKY to indicate that the font format's hinting
-       engine is necessary for correct rendering.
-
-       At the same time, slightly modify the behaviour of tricky fonts:
-       FT_LOAD_NO_HINTING is now ignored.  To really force raw loading
-       of tricky fonts (without hinting), both FT_LOAD_NO_HINTING and
-       FT_LOAD_NO_AUTOHINT must be used.
-
-       Finally, tricky TrueType fonts always use the bytecode interpreter
-       even if the patented code is used.
-
-       * include/freetype/freetype.h (FT_FACE_FLAG_TRICKY, FT_IS_TRICKY):
-       New macros.
-
-       * src/truetype/ttdriver.c (Load_Glyph): Handle new load flags
-       semantics as described above.
-
-       * src/truetype/ttobjs.c (tt_check_trickyness): New function, using
-       code of ...
-       (tt_face_init): This function, now simplified and updated to new
-       semantics.
-
-       * src/base/ftobjs.c (FT_Load_Glyph): Don't use autohinter for tricky
-       fonts.
-
-       * docs/CHANGES: Document it.
-
-2008-12-09  Werner Lemberg  <wl@gnu.org>
-
-       Really fix Savannah bug #25010: An SFNT font with neither outlines
-       nor bitmaps can be considered as containing space `glyphs' only.
-
-       * src/truetype/ttpload.c (tt_face_load_loca): Handle the case where
-       a `glyf' table is missing.
-
-       * src/truetype/ttgload.c (load_truetype_glyph): Abort if we have no
-       `glyf' table but a non-zero `loca' entry.
-       (tt_loader_init): Handle missing `glyf' table.
-
-       * src/base/ftobjs.c (FT_Load_Glyph): Undo change 2008-12-05.
-
-       * src/sfnt/sfobjs.c (sfnt_load_face): A font with neither outlines
-       nor bitmaps is scalable.
-
-2008-12-05  Werner Lemberg  <wl@nu.org>
-
-       * src/autofit/aflatin.c (af_latin_uniranges): Add more ranges.  This
-       fixes Savannah bug #21190 which also provides a basic patch.
-
-2008-12-05  Werner Lemberg  <wl@nu.org>
-
-       * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): Use value
-       0x100 instead of 0x10000; the latter value is already occupied by
-       FT_LOAD_TARGET_LIGHT.  Bug reported by James Cloos.
-
-
-       Handle SFNT with neither outlines nor bitmaps.  This fixes Savannah
-       bug #25010.
-
-       * src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither
-       outlines nor bitmaps.
-
-       * src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there
-       is no table with glyphs.
-
-
-       * src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging
-       message.
-
-2008-12-01  Werner Lemberg  <wl@gnu.org>
-
-       GDEF tables need `glyph_count' too for validation.  Problem reported
-       by Chi Nguyen <chint@necsv.com>.
-
-       * src/otvalid/otvgdef.c (otv_GDEF_validate), src/otvalid/otvalid.h
-       (otv_GDEF_validate), src/otvalid/otvmod.c (otv_validate): Pass
-       `glyph_count'.
-
-2008-11-29  Werner Lemberg  <wl@gnu.org>
-
-       * src/autofit/afcjk.c, src/base/ftoutln.c, src/base/ftrfork.c,
-       src/bdf/bdfdrivr.c, src/gxvalid/gxvmorx.c, src/otvalid/otvmath.c,
-       src/pcf/pcfdrivr.c, src/psnames/pstables.h, src/smooth/ftgrays.c,
-       src/tools/glnames.py, src/truetype/ttinterp.c, src/type1/t1load.c,
-       src/type42/t42objs.c, src/winfonts/winfnt.c: Fix compiler warnings
-       (Atari PureC).
-
-2008-11-29  James Cloos  <cloos@jhcloos.com>
-
-       * src/type/t1load.c (mm_axis_unmap): Revert previous patch and fix
-       it correctly by using FT_INT_TO_FIXED (FreeType expects 16.16 values
-       in the /BlendDesignMap space).
-
-2008-11-29  James Cloos  <cloos@jhcloos.com>
-
-       * src/type1/t1load.c (mm_axis_unmap): `blend_points' is FT_Fixed*,
-       whereas `design_points' is FT_Long*.  Therefore, return blend rather
-       than design points.
-
-2008-11-27  Werner Lemberg  <wl@gnu.org>
-
-       * src/cff/cffparse.c (cff_parse_real): Handle more than nine
-       significant digits correctly.  This fixes Savannah bug #24953.
-
-2008-11-25  Daniel Zimmermann  <netzimme@aol.com>
-
-       * src/base/ftstream.c (FT_Stream_ReadFields): Don't access stream
-       before the NULL check.  From Savannah patch #6681.
-
-2008-11-24  Werner Lemberg  <wl@gnu.org>
-
-       Fixes from the gnuwin32 port.
-
-       * src/base/ftlcdfil.c: s/EXPORT/EXPORT_DEF/.
-
-       * src/base/ftotval.c: Include FT_OPENTYPE_VALIDATE_H.
-
-       * src/psaux/psobjs.c (ps_table_add): Check `length'.
-
-2008-11-15  Werner Lemberg  <wl@gnu.org>
-
-       * src/truetype/ttinterp.c (tt_default_graphics_state): The default
-       value for `scan_type' is zero, as confirmed by Greg Hitchcock from
-       Microsoft.  Problem reported by Michal Nowakowski
-       <miszka@limes.com.pl>.
-
-2008-11-12  Tor Andersson  <tor.andersson@gmail.com>
-
-       * src/cff/cffdrivr.c (cff_get_cmap_info): Initialize `format' field.
-       This fixes Savannah bug #24819.
-
-2008-11-08  Werner Lemberg  <wl@gnu.org>
-
-       * src/sfnt/sfobjs.c (sfnt_load_face): Remove #if 0/#endif guards
-       since OpenType version 1.5 has been released.
-
-       * include/ttnameid.h (TT_NAME_ID_WWS_FAMILY,
-       TT_NAME_ID_WWS_SUBFAMILY): New macros for OpenType 1.5.
-       (TT_URC_COPTIC, TT_URC_VAI, TT_URC_NKO, TT_URC_BALINESE,
-       TT_URC_PHAGSPA, TT_URC_NON_PLANE_0, TT_URC_PHOENICIAN,
-       TT_URC_TAI_LE, TT_URC_NEW_TAI_LUE, TT_URC_BUGINESE,
-       TT_URC_GLAGOLITIC, TT_URC_YIJING, TT_URC_SYLOTI_NAGRI,
-       TT_URC_LINEAR_B, TT_URC_ANCIENT_GREEK_NUMBERS, TT_URC_UGARITIC,
-       TT_URC_OLD_PERSIAN, TT_URC_SHAVIAN, TT_URC_OSMANYA,
-       TT_URC_CYPRIOT_SYLLABARY, TT_URC_KHAROSHTHI, TT_URC_TAI_XUAN_JING,
-       TT_URC_CUNEIFORM, TT_URC_COUNTING_ROD_NUMERALS, TT_URC_SUNDANESE,
-       TT_URC_LEPCHA, TT_URC_OL_CHIKI, TT_URC_SAURASHTRA, TT_URC_KAYAH_LI,
-       TT_URC_REJANG, TT_URC_CHAM, TT_URC_ANCIENT_SYMBOLS,
-       TT_URC_PHAISTOS_DISC, TT_URC_OLD_ANATOLIAN, TT_URC_GAME_TILES): New
-       macros for OpenType 1.5.
-
-2008-11-08  Wenlin Institute  <wenlin@wenlin.com>
-
-       * src/base/ftobjs.c (ft_glyphslot_free_bitmap): Protect against
-       slot->internal == NULL.  Reported by Graham Asher.
-
-2008-11-08  Werner Lemberg  <wl@gnu.org>
-
-       * src/sfnt/sfobjs.c (tt_face_get_name): Modified to return an error
-       code so that memory allocation problems can be distinguished from
-       missing table entries.  Reported by Graham Asher.
-       (GET_NAME): New macro.
-       (sfnt_load_face): Use it.
-
-2008-11-05  Werner Lemberg  <wl@gnu.org>
-
-       * devel/ftoption.h, include/freetype/config/ftoption.h
-       [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Undefine
-       TT_CONFIG_OPTION_UNPATENTED_HINTING.  This fixes the return value of
-       `FT_Get_TrueType_Engine_Type' (and makes it work as documented).
-       Reported in bug #441638 of bugzilla.novell.com.
-
-       * docs/CHANGES: Document it.
-
-2008-11-03  Werner Lemberg  <wl@gnu.org>
-
-       * src/type1/t1load.c (parse_subrs): Use an endless loop.  There are
-       fonts (like HELVI.PFB version 003.001, used on OS/2) which define
-       some `subrs' elements more than once.  Problem reported by Peter
-       Weilbacher <mozilla@weilbacher.org>.
-
-2008-10-15  Graham Asher  <graham.asher@btinternet.com>
-
-       * src/sfnt/ttpost.c (tt_post_default_names): Add `const'.
-
-2008-10-15  David Turner  <david@freetype.org>
-
-       * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Disambiguate for
-       meddlesome compilers' warning against `for ( ...; ...; ...) ;'.
-
-2008-10-14  Werner Lemberg  <wl@gnu.org>
-
-       * src/cff/cffobjs.c (cff_face_init): Remove compiler warning.
-       Suggested by Bram Tassyns in Savannah patch #6651.
-
-2008-10-12  Graham Asher  <graham.asher@btinternet.com>
-
-       * src/sfnt/sfobjs.c (sfnt_load_face): Fix computation of
-       `underline_position'.
-
-2008-10-12  Werner Lemberg  <wl@gnu.org>
-
-       * docs/CHANGES: Updated.
-
-2008-10-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Fix Savannah bug #24468.
-
-       According to include/freetype/internal/ftobjs.h, the appropriate
-       type to interchange single character codepoint is FT_UInt32. It
-       should be distinguished from FT_UInt which can be 16bit integer.
-
-       * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Change the type
-       of the second argument `pcharcode' from FT_UInt* to FT_UInt32*.
-       (tt_cmap4_char_map_binary): Ditto.
-       (tt_cmap14_get_nondef_chars): Change the type of return value
-       from FT_UInt* to FT_UInt32*.
-
-2008-10-08  John Tytgat  <John.Tytgat@esko.com>
-
-       Fix Savannah bug #24485.
-
-       * src/type1/t1load.c (parse_charstrings): Assure that we always have
-       a .notdef glyph.
-
-2008-10-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftmac.c: Include FT_TRUETYPE_TAGS_H for multi build.
-       * builds/mac/ftmac.c: Ditto.
-
-2008-10-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * include/freetype/tttags.h (TTAG_TYP1, TTAG_typ1): Fix definitions.
-       * src/base/ftobjs.c: Include FT_TRUETYPE_TAGS_H.
-
-2008-10-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/sfnt/sfobjs.c (sfnt_open_font): Allow `typ1' version tag in
-       the beginning of sfnt container.
-       * src/sfnt/ttload.c (check_table_dir): Return
-       `SFNT_Err_Table_Missing' when sfnt table directory structure is
-       correct but essential tables for TrueType fonts (`head', `bhed' or
-       `SING') are missing.  Other errors are returned by
-       SFNT_Err_Unknown_File_Format.
-
-       * src/base/ftobjs.c (FT_Open_Face): When TrueType driver returns
-       `FT_Err_Table_Missing', try `open_face_PS_from_sfnt_stream'.  It is
-       enabled only when old mac font support is configured.
-
-2008-10-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * include/freetype/tttags.h (TTAG_CID, TTAG_FOND, TTAG_LWFN,
-       TTAG_POST, TTAG_sfnt, TTAG_TYP1, TTAG_typ1): New tags to simplify
-       the repeated calculations of these values in ftobjs.c and ftmac.c.
-       * src/base/ftobjs.c: Replace all FT_MAKE_TAG by new tags.
-       * src/base/ftmac.c: Ditto.
-       * builds/mac/ftmac.c: Ditto.
-
-2008-10-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftobjs.c (ft_lookup_PS_in_sfnt_stream): Remove wrong
-       initialization of *is_sfnt_cid.
-
-2008-10-04  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Remove compiler
-       warnings.
-
-2008-10-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Replaced by...
-       (ft_lookup_PS_in_sfnt_stream): This.
-       (open_face_PS_from_sfnt_stream): New function.  It checks whether
-       the stream is sfnt-wrapped Type1 PS font or sfnt-wrapped CID-keyed
-       font, then try to open a face for given face_index.
-       (Mac_Read_sfnt_Resource): Replace the combination of
-       `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' by
-       `open_face_PS_from_sfnt_stream'.
-       * src/base/ftmac.c (FT_New_Face_From_SFNT): Ditto.
-       * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
-       * src/base/ftbase.h: Remove `ft_lookup_PS_in_sfnt' and add
-       `open_face_PS_from_sfnt_stream'.
-
-2008-10-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Set *is_sfnt_cid to
-       FALSE if neither `CID ' nor `TYP1' is found in the sfnt container.
-
-2008-10-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * include/freetype/config/ftconfig.h: Define FT_MACINTOSH when SC or
-       MrC compiler of MPW is used.  These compilers do not define the
-       macro __APPLE__ by themselves.
-       * builds/unix/ftconfig.in: Ditto.
-       * builds/vms/ftconfig.h: Ditto.
-       * src/base/ftbase.c: Use FT_MACINTOSH instead of __APPLE__, to
-       include ftmac.c if FreeType 2 is built by MPW.
-       * src/base/ftobjs.c: Use FT_MACINTOSH instead of __APPLE__, to
-       enable shared functions for ftmac.c if FreeType 2 is built by MPW.
-
-       * builds/mac/ftmac.c: Include ftbase.h.
-       (memory_stream_close): Removed.
-       (new_memory_stream): Ditto.
-       (open_face_from_buffer): Removed.  Use the implementation in
-       ftobjs.c.
-       (ft_lookup_PS_in_sfnt): Ditto.
-
-       * builds/mac/FreeType.m68k_far.make.txt: Build ftmac.c as an
-       included part of ftbase.c, to share the functions in ftobjs.c.  The
-       rule compiling ftmac.c separately is removed and the rule copying
-       ftbase.c from src/base/ftbase.c to builds/mac/ftbase.c is added.
-       * builds/mac/FreeType.m68k_cfm.make.txt: Ditto.
-       * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
-       * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
-
-2008-10-02  Bram Tassyns  <bramt@enfocus.be>
-
-       * src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0.  This
-       fixes Savannah bug #24430.
-
-2008-10-02  Werner Lemberg  <wl@gnu.org>
-
-       * builds/freetype.mk (BASE_H): Rename to...
-       (INTERNAL_H): This.
-       (FREETYPE_H): Updated.
-       * src/base/rules.mk: (BASE_OBJ_S, OBJ_DIR/%.$O): Add BASE_H.
-       * src/bdf/rules.mk (BDF_DRV_H): Add bdferror.h.
-       * src/cache/rules.mk (CACHE_DRV_H): Add ftccache.h and ftcsbits.h.
-       * src/pcf/rules.mk (PCF_DRV_H): Add pcfread.h.
-       * src/raster/rules.mk (RASTER_DRV_H): Add ftmisc.h.
-       * src/type42/rules.mk (T42_DRV_H): Add t42types.h.
-
-2008-10-02  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftbase.h: New file to declare the private utility
-       functions shared by the sources of base modules.  Currently,
-       `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' are declared to
-       share between ftobjs.c and ftmac.c.
-
-       * src/base/rule.mk: Add ftbase.h.
-
-       * src/base/ftobjs.c: Include ftbase.h.
-       (memory_stream_close): Build on any platform when old MacOS font
-       support is enabled.
-       (new_memory_stream): Ditto.
-       (open_face_from_buffer): Build on any platform when old MacOS font
-       support is enabled.  The counting of the face in a font file is
-       slightly different between Carbon-dependent parser and Carbon-free
-       parser.  They are merged with the platform-specific conditional.
-       (ft_lookup_PS_in_sfnt): Ditto.
-
-       * src/base/ftmac.c: Include ftbase.h.
-       (memory_stream_close): Removed.
-       (new_memory_stream): Ditto.
-       (open_face_from_buffer): Removed.  Use the implementation in
-       ftobjs.c.
-       (ft_lookup_PS_in_sfnt): Ditto.
-
-2008-10-02  Werner Lemberg  <wl@gnu.org>
-
-       * src/sfnt/sfobjs.c (sfnt_load_face): `psnames_error' is only needed
-       if TT_CONFIG_OPTION_POSTSCRIPT_NAMES is defined.
-
-2008-10-01  Werner Lemberg  <wl@gnu.org>
-
-       * src/truetype/ttobjs.c (tt_face_done), src/cff/cffobjs.c
-       (cff_face_done), src/pfr/pfrobjs.c (pfr_face_done),
-       src/pcf/pcfdrivr.c (PCF_Face_Done), src/cid/cidobjs.c
-       (cid_face_done), src/bdf/bdfdrivr. (BDF_Face_Done),
-       src/sfnt/sfobjs.c (sfnt_face_done): Protect against face == 0.
-       Reported by Graham Asher.
-
-2008-09-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/rules.mk: Add conditional source to BASE_SRC, for `make
-       multi' on Mac OS X.  If the macro $(ftmac_c) is defined,
-       $(BASE_DIR)/$(ftmac_c) is added to BASE_SRC.  In a normal build, the
-       lack of ftmac.c in BASE_SRC is not serious because ftbase.c includes
-       ftmac.c.
-       * builds/unix/unix-def.in: Add a macro definition of $(ftmac_c).
-       * builds/unix/configure.raw: Add procedure to set up appropriate
-       value of $(ftmac_c) with the consideration of the availability of
-       Carbon framework.
-
-2008-09-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/Jamfile: Add target for multi build by jam on Mac OS X.
-       * src/base/ftobjs.c (FT_New_Face): Fix the condition to include this
-       function for MPW building.  It is synchronized the condition to
-       include ftmac.c source into ftbase.c.
-
-2008-09-22  Werner Lemberg  <wl@gnu.org>
-
-       * src/cff/cffgload.c (CFF_Operator, cff_argument_counts,
-       cff_decoder_parse_charstrings): Handle (invalid)
-       `callothersubr' and `pop' instructions.
-
-2008-09-22  John Tytgat  <John.Tytgat@esko.com>
-
-       Fix Savannah bug #24307.
-
-       * include/freetype/internal/t1types.h (CID_FaceRec),
-       src/type42/t42types.h (T42_FaceRec): Comment out `afm_data'.
-
-2008-09-21  Werner Lemberg  <wl@gnu.org>
-
-       * src/smooth/ftgrays.c (gray_raster_render): Don't dereference
-       `target_map' if FT_RASTER_FLAG_DIRECT is set.  Problem reported by
-       Stephan T. Lavavej <stl@nuwen.net>.
-
-2008-09-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/otvalid/Jamfile: Add missing target `otvmath' for multi build
-       by jam.
-       * src/sfnt/Jamfile: Add missing target `ttmtx' for multi build by
-       jam.
-
-2008-09-20  Werner Lemberg  <wl@gnu.org>
-
-       * src/smooth/ftgrays.c (gray_find_cell): Fix threshold.  The values
-       passed to this function are already `normalized'.  Problem reported
-       by Stephan T. Lavavej <stl@nuwen.net>.
-
-       * docs/CHANGES: Document it.
-
-2008-09-20  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftoutln.c: Include FT_INTERNAL_DEBUG_H.
-       (FT_Outline_Decompose): Decorate with tracing messages.
-
-       * src/smooth/ftgrays.c [DEBUG_GRAYS]: Replace with
-       FT_DEBUG_LEVEL_TRACE.
-       [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: Include stdio.h and
-       stdarg.h.
-
-       (FT_TRACE) [_STANDALONE_]: Remove.
-       (FT_Message) [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: New function.
-       (FT_TRACE5, FT_TRACE7) [_STANDALONE_]: New macros.
-       (FT_ERROR) [_STANDALONE_]: Updated.
-
-       (gray_hline) [FT_DEBUG_LEVEL_TRACE]: Fix condition.
-       Use FT_TRACE7.
-       (gray_dump_cells): Make it `static void'.
-       (gray_convert_glyph): Use FT_TRACE7.
-
-       (FT_Outline_Decompose) [_STANDALONE_]: Synchronize with version in
-       ftoutln.c.
-
-       * src/base/ftadvanc.c (FT_Get_Advance, FT_Get_Advances): Use
-       FT_ERROR_BASE.
-
-       * docs/formats.txt: Updated.
-
-2008-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftmac.c: Import sfnt-wrapped Type1 and sfnt-wrapped
-       CID-keyed font support.
-       * builds/mac/ftmac.c: Ditto.
-
-2008-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Fix double free bug in
-       sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font support code.
-       `open_face_from_buffer' frees the passed buffer if it cannot open a
-       face from the buffer, so the caller must not free it.
-
-2008-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add initial support
-       for sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font.
-       (ft_lookup_PS_in_sfnt): New function to look up `TYP1' or `CID '
-       table in sfnt table directory.  It is used before loading TrueType
-       font driver.
-
-       * docs/CHANGES: Add note about the current status of sfnt-wrapped
-       Type1 and sfnt-wrapped CID-keyed font support.
-
-2008-09-18  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftsystem.c (FT_Done_Memory): Use ft_sfree directly for
-       orthogonality (ft_free and ft_sfree could belong to different memory
-       pools).  This fixes Savannah bug #24297.
-
-2008-09-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/cff/cffobjs.c (cff_face_init): Use TTAG_OTTO defined
-       in ttags.h instead of numerical value 0x4F54544FL.
-
-2008-09-16  Werner Lemberg  <wl@gnu.org>
-
-       * src/cff/cffgload.h, src/cff/cffgload.c
-       (cff_decoder_set_width_only): Eliminate function call.
-
-2008-09-15  George Williams  <gww@silcom.com>
-
-       Fix Savannah bug #24179, reported by Bram Tassyns.
-
-       * src/type1/t1load.c (mm_axis_unmap, T1_Get_MM_Var): Fix computation
-       of default values.
-
-2008-09-15  Werner Lemberg  <wl@gnu.org>
-
-       * src/tools/glnames.py (main): Surround `ft_get_adobe_glyph_index'
-       and `ft_adobe_glyph_list' with FT_CONFIG_OPTION_ADOBE_GLYPH_LIST to
-       prevent unconditional definition.  This fixes Savannah bug #24241.
-
-       * src/psnames/pstables.h: Regenerated.
-
-2008-09-13  Werner Lemberg  <wl@gnu.org>
-
-       * autogen.sh, builds/unix/configure.raw,
-       include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: Minor
-       beautifying.
-
-       * include/freetype/ftadvanc.h, include/freetype/ftgasp.h,
-       include/freetype/ftlcdfil.h: Protect against FreeType 1.
-       Some other minor fixes.
-
-       * devel/ftoption.h: Synchronize with
-       include/freetype/config/ftoption.h.
-
-2008-09-11  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftbase.c: Include ftadvanc.c.
-
-2008-09-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * builds/unix/ftconfig.in: Duplicate the cpp computation of
-       FT_SIZEOF_{INT|LONG} from include/freetype/config/ftconfig.h.
-       (FT_USE_AUTOCONF_SIZEOF_TYPES): New macro.  If defined, the cpp
-       computation is disabled and the statically configured sizes are
-       used.  This fixes Savannah bug #21250.
-
-       * builds/unix/configure.raw: Add the checks to compare the cpp
-       computation results of the bit length of int and long versus the
-       sizes detected by running `configure'.  If the results are
-       different, FT_USE_AUTOCONF_SIZEOF_TYPES is defined to prioritize the
-       results.
-       New option --{enable|disable}-biarch-config is added to define or
-       undefine FT_USE_AUTOCONF_SIZEOF_TYPES manually.
-
-2008-09-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * builds/unix/configure.raw: Clear FT2_EXTRA_LIBS when Carbon or
-       ApplicationService framework is missing.  Although this value is not
-       used in building of FreeType2, it is written in `freetype2.pc' and
-       `freetype-config'.
-
-2008-09-01  david turner  <david@freetype.org>
-
-       * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Accept a negative cmap
-       index to mean `use default cached FT_Face's charmap'.  This fixes
-       Savannah bug #22625.
-       * include/freetype/ftcache.h: Document it.
-
-
-       Make FT_MulFix an inlined function.  This is done to speed up
-       FreeType a little (on x86 3% when loading+hinting, 10% when
-       rendering, ARM savings are more important though).  Disable this by
-       undefining FT_CONFIG_OPTION_INLINE_MULFIX.
-
-       Use of assembler code can now be controlled with
-       FT_CONFIG_OPTION_NO_ASSEMBLER.
-
-       * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in
-       [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_arm): New assembler
-       implementation.
-       [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_i386): Assembler
-       implementation taken from `ftcalc.c'.
-       [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MULFIX_ASSEMBLER): New macro
-       which is defined to the platform-specific assembler implementation
-       of FT_MulFix.
-       [FT_CONFIG_OPTION_INLINE_MULFIX && FT_MULFIX_ASSEMBLER]
-       (FT_MULFIX_INLINED): New macro.
-
-       * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_NO_ASSEMBLER,
-       FT_CONFIG_OPTION_INLINE_MULFIX): New macros.
-
-       * include/freetype/freetype.h: Updated to handle FT_MULFIX_INLINED.
-
-       * src/base/ftcalc.c: Updated to use FT_MULFIX_ASSEMBLER and
-       FT_MULFIX_INLINED.
-
-
-       Add a new header named FT_ADVANCES_H declaring some new APIs to
-       extract the advances of one or more glyphs without necessarily
-       loading their outlines.  Also provide `fast loaders' for the
-       TrueType, Type1, and CFF font drivers (more to come later).
-
-       * src/base/ftadvanc.c, include/freetype/ftadvanc.h: New files.
-
-       * include/freetype/config/ftheader.h (FT_ADVANCES_H): New macro.
-       * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): New macro.
-
-       * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
-       `flags' and `advances' are now of type `FT_UInt' and `FT_Fixed',
-       respectively.
-
-       * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC): Add
-       ftadvanc.c.
-
-       * src/cff/cffdrivr.c (cff_get_advances): New function.
-       (cff_driver_class): Register it.
-
-       * src/cff/cffgload.c (cff_decoder_set_width_only): New function.
-       (cff_decoder_parse_charstrings): Handle `width_only'.
-       (cff_slot_load): Handle FT_LOAD_ADVANCE_ONLY.
-
-       * src/cff/cffgload.h (cff_decoder): New element `width_only'.
-       (cff_decoder_set_width_only): New declaration.
-
-       * src/truetype/ttdriver.c (tt_get_advances): New function.
-       (tt_driver_class): Register it.
-
-       * src/truetype/ttgload.c (Get_HMetrics, Get_VMetrics): Renamed to...
-       (TT_Get_HMetrics, TT_Get_VMetrics): This.
-       Update callers.
-       * src/truetype/ttgload.h: Declare them.
-
-       * src/type1/t1gload.h, src/type1/t1gload.c (T1_Get_Advances): New
-       function.
-       * src/type1/t1driver.c (t1_driver_class): Register T1_Get_Advances.
-
-
-       Add checks for minimum version of the `autotools' stuff.
-
-       * autogen.sh: Implement it.
-       (get_major_version, get_minor_version, get_patch_version,
-       compare_to_minimum_version, check_tool_version): New auxiliary
-       functions.
-
-       * README.CVS: Document it.
-
-2008-08-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/sfnt/sfobjs.c (sfnt_open_font): Use TTAG_OTTO defined in
-       ttags.h instead of FT_MAKE_TAG( 'O', 'T', 'T', 'O' ).
-
-2008-08-28  Werner Lemberg  <wl@gnu.org>
-
-       * src/type1/t1load.c (parse_encoding): Protect against infinite
-       loop.  This fixes Savannah bug #24150 (where a patch has been posted
-       too).
-
-2008-08-23  Werner Lemberg  <wl@gnu.org>
-
-       * src/type/t1afm.c (compare_kern_pairs), src/pxaux/afmparse.c
-       (afm_compare_kern_pairs): Fix comparison.  This fixes Savannah bug
-       #24119.
-
-2008-08-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftobjs.c (FT_Stream_New): Initialize *astream always,
-       even if passed library or arguments are invalid.  This fixes a bug
-       that an uninitialized stream is freed when an invalid library handle
-       is passed.  Originally proposed by Mike Fabian, 2008/08/18 on
-       freetype-devel.
-       (FT_Open_Face): Ditto (stream).
-       (load_face_in_embedded_rfork): Ditto (stream2).
-
-2008-08-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftmac.c: Add a fallback to guess the availability of the
-       `ResourceIndex' type.  It is used when built without configure
-       (e.g., a build with Jam).
-       * builds/mac/ftmac.c: Ditto.
-       * builds/unix/configure.raw: Set HAVE_TYPE_RESOURCE_INDEX to 1 or 0
-       explicitly, even if `ResourceIndex' is unavailable.
-
-2008-08-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * builds/unix/configure.raw: In checking of Mac OS X features,
-       all-in-one header file `Carbon.h' is replaced by the minimum
-       header file `CoreServices.h', similar to current src/base/ftmac.c.
-
-2008-08-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/sfnt/ttcmap.c (tt_cmap2_validate): Skip the validation of
-       sub-header when its code_count is 0.  Many Japanese Dynalab fonts
-       include such an empty sub-header (code_count == 0, first_code == 0
-       delta == 0, but offset != 0) as the second sub-header in SJIS cmap.
-
-2008-08-04  Werner Lemberg  <wl@gnu.org>
-
-       * src/type1/t1tokens.h: Handle `ForceBold' keyword.  This fixes
-       Savannah bug #23995.
-
-       * src/cid/cidload.c (parse_expansion_factor): New callback function.
-       (cid_field_records): Use it for `ExpansionFactor'.
-       * src/cod/cidtoken.h: Handle `ForceBold' keyword.
-       Don't handle `ExpansionFactor'.
-
-2008-08-04  Bram Tassyns  <bramt@enfocus.be>
-
-       * src/cff/cffparse.c (cff_parse_fixed_scaled): Fix thinko which
-       resulted in incorrect scaling.  This fixes Savannah bug #23973.
-
-2008-08-04  Werner Lemberg  <wl@gnu.org>
-
-       Be more tolerant w.r.t. invalid entries in SFNT table directory.
-
-       * src/sfnt/ttload.c (check_table_dir): Ignore invalid entries and
-       adjust table count.
-       Add more trace messages.
-       (tt_face_load_font_dir): Updated.
-
-2008-07-30  Werner Lemberg  <wl@gnu.org>
-
-       * src/cff/cffgload.c (cff_decoder_parse_charstrings): No longer
-       assume that the first argument on the stack is the bottom-most
-       element.  Two reasons:
-
-         o According to people from Adobe it is missing in the Type 2
-           specification that pushing of additional, superfluous arguments
-           on the stack is prohibited.
-
-         o Acroread in general handles fonts differently, namely by popping
-           the number of arguments needed for a particular operand (as a PS
-           interpreter would do).  In case of buggy fonts this causes a
-           different interpretation which of the elements on the stack are
-           superfluous and which not.
-
-       Since there are CFF subfonts (embedded in PDFs) which rely on
-       Acroread's behaviour, FreeType now does the same.
-
-2008-07-27  Werner Lemberg  <wl@gnu.org>
-
-       Add extra mappings for `Tcommaaccent' and `tcommaaccent'.  This
-       fixes Savannah bug #23940.
-
-       * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): Rename to...
-       (EXTRA_GLYPH_LIST_SIZE): This.
-       Increase by 2.
-       (ft_wgl_extra_unicodes): Rename to...
-       (ft_extra_glyph_unicodes): This.
-       Add two code values.
-       (ft_wgl_extra_glyph_names): Rename to...
-       (ft_extra_glyph_names): This.
-       Add two glyphs.
-       (ft_wgl_extra_glyph_name_offsets): Rename to...
-       (ft_extra_glyph_name_offsets): This.
-       Add two offsets.
-
-       (ps_check_wgl_name, ps_check_wgl_unicode): Rename to...
-       (ps_check_extra_glyph_name, ps_check_extra_glyph_unicode): This.
-       Updated.
-       (ps_unicodes_init): Updated.
-
-2008-07-26  Werner Lemberg  <wl@gnu.org>
-
-       * src/cff/cffgload.c (cff_decoder_prepare,
-       cff_decoder_parse_charstrings): Improve debug output.
-
-2008-07-22  Martin McBride  <mmcbride@emtex.com>
-
-       * src/sfnt/ttcmap.c (tt_cmap4_validate, tt_cmap4_char_map_linear,
-       tt_cmap4_char_map_binary): Handle fonts which treat the last segment
-       specially.  According to the specification, such fonts would be
-       invalid but acroread accepts them.
-
-2008-07-16  Jon Foster  <Jon.Foster@cabot.co.uk>
-
-       * src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error.
-
-       * src/base/ftcalc.c (FT_MulFix): Fix portability issue.
-
-       * src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]:
-       Fix compiler warning.
-
-2008-07-16  Werner Lemberg  <wl@gnu.org>
-
-       Handle CID-keyed fonts wrapped in an SFNT (with cmaps) correctly.
-
-       * src/cff/cffload.c (cff_font_load): Pass `pure_cff'.
-       Invert sids table only if `pure_cff' is set.
-       * src/cff/cffload.h: Udpated.
-
-       * src/cff/cffobjs.c (cff_face_init): Updated.
-       Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set.
-
-       * docs/CHANGES: Updated.
-
-2008-07-09  Werner Lemberg  <wl@gnu.org>
-
-       * src/truetype/ttpload.c (tt_face_load_loca): Handle buggy fonts
-       where num_locations < num_glyphs.  Problem reported by Ding Li.
-
-2008-07-05  Werner Lemberg  <wl@gnu.org>
-
-       Since FreeType uses `$(value ...)', we now need GNU make 3.80 or
-       newer.  This fixes Savannah bug #23648.
-
-       * configure: zsh doesn't like ${1+"$@"}.
-       Update needed GNU make version.
-       * builds/toplevel.mk: Check for `$(eval ...)'.
-       * docs/INSTALL.GNU, docs/INSTALL.CROSS, docs/INSTALL.UNIX: Document
-       it.
-
-2008-07-04  Werner Lemberg  <wl@gnu.org>
-
-       * src/raster/ftraster.c (Draw_Sweep): If span is smaller than one
-       pixel, only check for dropouts if neither start nor end point lies
-       on a pixel center.  This fixes Savannah bug #23762.
-
-2008-06-29  Werner Lemberg  <wl@gnu.org>
-
-       * Version 2.3.7 released.
-       =========================
-
-
-       Tag sources with `VER-2-3-7'.
-
-       * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
-       version number to 2.3.7.
-
-       * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
-       builds/win32/visualc/freetype.dsp,
-       builds/win32/visualc/freetype.vcproj,
-       builds/win32/visualce/index.html,
-       builds/win32/visualce/freetype.dsp,
-       builds/win32/visualce/freetype.vcproj: s/2.3.6/2.3.7/, s/236/237/.
-
-       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
-
-       * builds/unix/configure.raw (version_info): Set to 9:18:3.
-
-       * docs/release: Updated.
-
-2008-06-28  Werner Lemberg  <wl@gnu.org>
-
-       * src/ftglyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to...
-       * src/ftcalc.c: Here.  This fixes Savannah bug #23729.
-
-2008-06-27  Werner Lemberg  <wl@gnu.org>
-
-       * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
-       Horizontal_Gray_Sweep_Drop): Test for intersections which
-       degenerate to a single point can be ignored; this has been confirmed
-       by Greg Hitchcock from Microsoft.  (This was commented out code.)
-
-2008-06-26  Werner Lemberg  <wl@gnu.org>
-
-       Improve navigation in API reference.
-
-       * src/tools/docmaker/tohtml.py (html_header_3): Renamed to...
-       (html_header_6): This.
-       (html_header_3, html_header_3i, html_header_4, html_header_5,
-       html_header_5t): New strings.
-       (toc_footer_start, toc_footer_end): New strings.
-       (HtmlFormatter::html_header): Updated.
-       (HtmlFormatter::html_index_header, HtmlFormatter::html_toc_header):
-       New strings.
-       (HtmlFormatter::index_enter): Use `html_index_header'.
-       (HtmlFormatter::index_exit): Print `html_footer'.
-       (HtmlFormatter::toc_enter): Use `html_toc_header'.
-       (HtmlFormatter::toc_exit): Print proper footer.
-
-       Convert ~ to non-breakable space.
-
-       * src/tools/docmaker/tohtml.py (make_html_para): Implement it.
-       Update header files accordingly.
-
-2008-06-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * builds/unix/configure.raw: Check type `ResourceIndex' explicitly
-       and define HAVE_TYPE_RESOURCE_INDEX if it is defined.  Mac OS X 10.5
-       bundles 10.4u SDK with MAC_OS_X_VERSION_10_5 macro but without
-       ResourceIndex type definition.  The macro does not inform the type
-       availability.
-       * src/base/ftmac.c: More parentheses are inserted to clarify the
-       conditionals to disable legacy APIs in `10.5 and later' cases.  If
-       HAVE_TYPE_RESOURCE_INDEX is not defined, ResourceIndex is defined.
-
-2008-06-24  Werner Lemberg  <wl@gnu.org>
-
-       * src/truetype/ttinterp.c (Ins_SCANTYPE): Don't check rendering
-       mode.
-
-       * src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph,
-       Draw_Sweep): No-dropout mode is value 2, not value 0.
-       (Draw_Sweep): Really skip dropout handling for no-dropout mode.
-
-2008-06-24  Werner Lemberg  <wl@gnu.org>
-
-       * src/psaux/psobjs.c (t1_builder_close_contour): Don't add contour
-       if it consists of one point only.  Based on a patch from Savannah
-       bug #23683 (from John Tytgat).
-
-2008-06-22  Werner Lemberg  <wl@gnu.org>
-
-       * src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff
-       with IS_HINTED.
-
-       * docs/CHANGES: Updated.
-
-2008-06-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option
-       but LDFLAGS does not, import it to LDFLAGS.  The option is used to
-       specify non-default SDK on Mac OS X (e.g., universal binary SDK for
-       Mac OS X 10.4 on PowerPC platform).  Although Apple TechNote 2137
-       recommends to add the option only to CFLAGS, LDFLAGS should include
-       it because libfreetype.la is built with -no-undefined.  This fixes a
-       bug reported by Ryan Schmidt in MacPorts,
-       http://trac.macports.org/ticket/15331.
-
-2008-06-21  Werner Lemberg  <wl@gnu.org>
-
-       Enable access to the various dropout rules of the B&W rasterizer.
-       Pass dropout rules from the TT bytecode interpreter to the
-       rasterizer.
-
-       * include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS,
-       FT_OUTLINE_EXCLUDE_STUBS): New flags for for FT_Outline.
-
-       * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
-       Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the
-       OpenType specification.
-       Fix mode 4 computation.
-       (Render_Glyph, Render_Gray_Glyph): Handle new outline flags.
-
-       * src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion
-       mode to FT_OUTLINE_XXX flags.
-
-       * src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check.
-
-2008-06-19  Werner Lemberg  <wl@gnu.org>
-
-       * src/cff/cffobjs.c (cff_face_init): Compute final
-       `dict->units_per_em' value before assigning it to
-       `cffface->units_per_EM'.  Otherwise, CFFs without subfonts are
-       scaled incorrectly if the font matrix is non-standard.  This fixes
-       Savannah bug #23630.
-
-       * docs/CHANGES: Updated.
-
-2008-06-19  Werner Lemberg  <wl@gnu.org>
-
-       * src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm fix
-       from 2008-06-19.
-
-2008-06-18  Werner Lemberg  <wl@gnu.org>
-
-       * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21.
-       Reported by Peter Weilbacher <mozilla@weilbacher.org>.
-
-       * docs/CHANGES: Updated.
-
-2008-06-15  George Williams  <gww@silcom.com>
-
-       * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
-       `valid->extra2' to 1.  This is undocumented in the OpenType 1.5
-       specification.
-
-2008-06-15  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly
-       from clobbering.  Patch from Savannah bug report #23556.
-
-       * docs/CHANGES: Document it.
-
-2008-06-10  Werner Lemberg  <wl@gnu.org>
-
-       * autogen.sh: Add option `--install' to libtoolize.
-
-2008-06-10  Werner Lemberg  <wl@gnu.org>
-
-       * Version 2.3.6 released.
-       =========================
-
-
-       Tag sources with `VER-2-3-6'.
-
-       * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
-       version number to 2.3.6.
-
-       * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
-       builds/win32/visualc/freetype.dsp,
-       builds/win32/visualc/freetype.vcproj,
-       builds/win32/visualce/index.html,
-       builds/win32/visualce/freetype.dsp,
-       builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/.
-
-       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
-
-       * builds/unix/configure.raw (version_info): Set to 9:17:3.
-
-
-       * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x'
-       and `scale_y'.
-       * src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'.
-
-
-       * src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H.
-       * src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
-
-2008-06-10  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftobjs.c (open_face): Check `clazz->init_face' and
-       `clazz->done_face'.
-
-2008-06-09  VaDiM  <s_sliva@rambler.ru>
-
-       Support debugging on WinCE.  From Savannah patch #6536; this fixes
-       bug #23497.
-
-       * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro
-       as a replacement for OutputDebugStringA (which WinCE doesn't have).
-       Update all callers.
-       (ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have
-       environment variables.
-
-2008-06-09  Werner Lemberg  <wl@gnu.org>
-
-       * README.CVS: Updated.
-
-       * builds/unix/configure.raw, builds/unix/freetype-config.in: Updated
-       for newer versions of autoconf and friends.
-
-2008-06-08  Werner Lemberg  <wl@gnu.org>
-
-       * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and
-       `private_len' unsigned.
-
-       * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read
-       it as such.
-       (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned.
-
-
-       * src/base/ftstream.c (FT_Stream_Skip): Reject negative values.
-
-
-       * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis'
-       for sane value.
-       Fix typo.
-
-
-       * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.
-
-
-       * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
-       `last_point'.
-
-
-       * src/sfnt/ttload.c (tt_face_load_max_profile): Limit
-       `maxTwilightPoints'.
-
-2008-06-06  Werner Lemberg  <wl@gnu.org>
-
-       * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0'
-       correctly.  This fixes glyphs `t' and `h' of Arial Narrow at 12ppem.
-
-2008-06-03  Werner Lemberg  <wl@gnu.org>
-
-       * include/freetype/ftcache.h (FTC_FaceID): Change type back to
-       FT_Pointer.  Reported by Ian Britten <britten@caris.com>.
-
-2008-06-02  Werner Lemberg  <wl@gnu.org>
-
-       Emit header info for defined FreeType objects in reference.
-
-       * src/tools/docmaker/content.py (re_header_macro): New regexp.
-       (ContentProcessor::__init__): Initialize new dictionary `headers'.
-       (DocBlock::__init__): Collect macro header definitions.
-
-       * src/tools/docmaker/tohtml.py (header_location_header,
-       header_location_footer): New strings.
-       (HtmlFormatter::__init__): Pass `headers' dictionary.
-       (HtmlFormatter::print_html_field): Don't emit paragraph tags.
-       (HtmlFormatter::print_html_field_list): Emit empty paragraph.
-       (HtmlFormatter::block_enter): Emit header info.
-
-2008-06-01  Werner Lemberg  <wl@gnu.org>
-
-       * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H,
-       FT_INCREMENTAL_H): Added.
-
-2008-05-28  Werner Lemberg  <wl@gnu.org>
-
-       * src/tools/docmaker/sources.py (SourceBlock::__init__): While
-       looking for markup tags, return immediately as soon a single one is
-       found.
-
-2008-05-28  Werner Lemberg  <wl@gnu.org>
-
-       * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
-       original, unscaled input values.  Confirmed by Greg Hitchcock from
-       Microsoft.
-
-2008-05-27  Werner Lemberg  <wl@gnu.org>
-
-       * src/tools/docmaker/tohtml.py (block_footer_start,
-       block_footer_middle): Beautify output.
-
-2008-05-25  Werner Lemberg  <wl@gnu.org>
-
-       * src/raster/ftraster.c (fc_black_render): Return 0 when we are
-       trying to render into a zero-width/height bitmap, not an error code.
-
-       * src/truetype/ttgload.c (load_truetype_glyph): Move initialization
-       of the graphics state for subglyphs to...
-       (TT_Hint_Glyph): This function.
-       Hinting instructions for a composite glyph apparently refer to the
-       just hinted subglyphs, not the unhinted, unscaled outline.  This
-       seems to fix Savannah bugs #20973 and (at least partially) #23310.
-
-2008-05-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid
-       `aface' is returned by FT_New_Face_From_FOND().  The patch was
-       proposed by an anonymous reporter of Savannah bug #23204.
-
-2008-05-18  Werner Lemberg  <wl@gnu.org>
-
-       * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after
-       correction for pixel boundary.  Without this patch, the effect can
-       be cumulative under certain circumstances, making glyphs taller and
-       taller after each call.  This fixes Savannah bug #19976.
-
-2008-05-18  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr.
-       This fixes Savannah bug #23280.
-
-       * docs/CHANGES: Updated.
-
-2008-05-18  David Turner  <david@freetype.org>
-
-       * src/psnames/psmodule.c (ft_wgl_extra_unicodes,
-       ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets,
-       ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make
-       declarations non-global.
-
-       * src/type1/t1load.c: Add missing comment.
-
-2008-05-17  Sam Hocevar  <samh>
-
-       * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour
-       glyphs correctly.  Patch from Savannah bug #23277.
-
-2008-05-16  Werner Lemberg  <wl@gnu.org>
-
-       * docs/CHANGES: Updated.
-
-2008-05-16  Sergey Tolstov  <stolstov@esri.com>
-
-       Improve support for WGL4 encoded fonts.
-
-       * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro.
-       (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names,
-       ft_wgl_extra_glyph_name_offsets): New arrays.
-       (ps_check_wgl_name, ps_check_wgl_unicode): New functions.
-       (ps_unicodes_init): Use them to add additional Unicode mappings.
-
-2008-05-15  Werner Lemberg  <wl@gnu.org>
-
-       * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
-       <op_closepath>: `closepath' without a path is a no-op, not an error
-       (cf. the PS reference manual).
-
-       Reported by Martin McBride.
-
-2008-05-15  Werner Lemberg  <wl@gnu.org>
-
-       * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated.
-
-2008-05-15  Werner Lemberg  <wl@gnu.org>
-
-       * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array
-       which contains a single but empty entry.  This is technically
-       invalid (since it must end with `return'), but...
-
-       Reported by Martin McBride.
-
-2008-05-14  Werner Lemberg  <wl@gnu.org>
-
-       Finish fix of scaling bug of CID-keyed CFF subfonts.
-
-       * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
-       (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New
-       functions.
-
-       * src/cff/cffobjs.h (CFF_Internal): New struct.  It is used to
-       provide global hinting data for both the top-font and all subfonts
-       (with proper scaling).
-
-       * src/cff/cffobjs.c (cff_make_private_dict): New function, using
-       code from `cff_size_init'.
-       (cff_size_init, cff_size_done, cff_size_select, cff_size_request):
-       Use CFF_Internal and handle subfonts.
-       (cff_face_init): Handle top-dict and subfont matrices correctly;
-       apply some heuristic in case of unlikely matrix concatenation
-       results.  This has been discussed with people from Adobe (thanks
-       goes mainly to David Lemon) who confirm that the CFF specs are fuzzy
-       and not correct.
-
-       * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument.
-
-       * src/cff/cffgload.c (cff_builder_init): Updated.
-       (cff_decoder_prepare): Handle hints globals for subfonts.
-       Update all callers.
-       (cff_slot_load): Handling scaling of subfonts properly.
-
-       * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function.
-       (cff_parse_font_matrix): Use it.
-
-       * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em'
-       FT_ULong.
-
-       * docs/CHANGES: Document it.
-
-2008-05-13  Werner Lemberg  <wl@gnu.org>
-
-       * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
-       Handle case `face_index < 0'.
-       * docs/CHANGES: Document it.
-
-2008-05-04  Werner Lemberg  <wl@gnu.org>
-
-       First steps to fix the scaling bug of CID-keyed CFF subfonts,
-       reported by Ding Li on 2008/03/28 on freetype-devel.
-
-       * src/base/cff/cffparse.c (power_tens): New array.
-       (cff_parse_real): Rewritten to introduce a fourth parameter which
-       returns the `scaling' of the real number so that we have no
-       precision loss.  This is not used yet.
-       Update all callers.
-       (cff_parse_fixed_thousand): Replace with...
-       (cff_parse_fixed_scaled): This function.  Update all callers.
-
-2008-05-03  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without
-       transformation since it recursively calls FT_Load_Glyph.  This fixes
-       Savannah bug #23143.
-
-2008-04-26  Werner Lemberg  <wl@gnu.org>
-
-       * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x'
-       and `scale_y' as obsolete since they aren't used.
-       * src/psaux/psobjs.c (t1_builder_init): Updated.
-
-       * src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as
-       obsolete since they aren't used.
-       * src/cff/cffgload.c (cff_builder_init): Updated.
-
-2008-04-14  Werner Lemberg  <wl@gnu.org>
-
-       * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to
-       `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'.  From Savannah
-       bug #22909.
-
-2008-04-13  Werner Lemberg  <wl@gnu.org>
-
-       * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if
-       integer part is zero.
-
-2008-04-01  Werner Lemberg  <wl@gnu.org>
-
-       Fix compilation with g++ 4.1 (with both `single' and `multi'
-       targets).
-
-       * src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block
-       which is crossed by a `goto'.
-
-       * src/otvalid/otvalid.h (otv_MATH_validate): Add prototype.
-
-2008-03-31  Werner Lemberg  <wl@gnu.org>
-
-       Fix support for subsetted CID-keyed CFFs.
-
-       * include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED,
-       FT_IS_CID_KEYED): New macros.
-
-       * src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the
-       maximum CID value in CID-keyed CFFs.
-       Handle FT_FACE_FLAG_CID_KEYED flag.
-
-       * docs/CHANGES: Document it.
-
-
-       Fix CFF font matrix calculation and improve precision.
-
-       * src/cff/cffparse.c (cff_parse_real): Increase precision if integer
-       part is zero.
-       (cff_parse_font_matrix): Simplify computation of `units_per_em';
-       this prevents overflow also.
-
-
-       Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts.
-
-       * src/cid/cidriver.c: Include FT_SERVICE_CID_H.
-       (cid_get_ros): New function.
-       (cid_service_cid_info): New service structure.
-       (cid_services): Register it.
-
-2008-03-23  Werner Lemberg  <wl@gnu.org>
-
-       Adjustments for Visual C++ 8.0, as reported by Rainer Deyke.
-
-       * builds/compiler/visualc.mk (CFLAGS): Remove /W5.
-       (ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE.
-
-2008-03-21  Laurence Darby  <ldarby>
-
-       * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'.  Patch from
-       Savannah bug #22675.
-
-2008-03-13  Derek Clegg  <dclegg@apple.com>
-
-       * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
-       Patch from Savannah bug #22541.
-
-2008-03-03  Masatoshi Kimura  <VYV03354@nifty.ne.jp>
-
-       * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
-       tt_cmap14_find_variant): Return correct value.
-       (tt_cmap14_variant_chars): Fix check for `di'.
-
-2008-02-29  Wermer Lemberg  <wl@gnu.org>
-
-       * docs/CHANGES: Updated.
-
-2008-02-29  Wolf
-
-       Add build support for symbian platform.  From Savannah bug #22440.
-
-       * builds/symbian/*: New files.
-
-2008-02-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name
-       synthesis.  For any face of a specified FOND, always the name for
-       the first face was used.  Except of a FOND that refers multiple
-       Type1 font files, wrong synthesized font names are not used at all,
-       so this is an invisible bug.  A few limit checks are added too.
-
-       * builds/mac/ftmac.c: Ditto.
-
-2008-02-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * builds/unix/configure.raw: Split compiler option to link Carbon
-       frameworks to one option for CoreServices framework and another
-       option for ApplicationServices framework.  The split options can be
-       managed by GNU libtool to avoid unrequired duplication when FreeType
-       is linked with other applications.  Suggested by Daniel Macks,
-       Savannah bug #22366.
-
-2008-02-18  Victor Stinner  <victor.stinner@haypocalc.com>
-
-       * src/truetype/ttinterp.c (Ins_IUP): Check number of points.  Fix
-       from Savannah bug #22356.
-
-2008-02-17  Jonathan Blow  <jon@number-none.com>
-
-       * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
-       Check for valid callback pointers.
-
-2008-02-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource
-       handle by its value instead of ResError(), fix provided by Deron
-       Kazmaier.  According to the Resource Manager Reference,
-       GetResource(), Get1Resource(), GetNamedResource(),
-       Get1NamedResource() and RGetResource() set noErr but return NULL
-       handle when they can not find the requested resource.  These
-       functions never return undefined values, so it is sufficient to
-       check if the handle is not NULL.
-
-       * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
-
-2008-02-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other
-       inclusion styles.  Now it always includes src/base/ftmac.c;
-       builds/mac/ftmac.c is never included in any configuration.
-
-       * builds/unix/configure.raw: Print warning if configure is executed
-       with options to specify Carbon functionalities explicitly.
-
-       * docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not
-       included automatically and manual replacement is required.
-
-2008-02-11  Werner Lemberg  <wl@gnu.org>
-
-       * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk
-       (dos_setup), builds/freetype.mk (clean_project_dos,
-       distclean_project_dos): Don't use \ but $(SEP).  Reported by Duncan
-       Murdoch.
-
-2008-01-18  Sylvain Pasche  <sylvain.pasche@gmail.com>
-
-       * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to
-       mention intra-pixel algorithm.
-
-       * include/freetype/freetype.h (FT_Render_Mode): Mention that
-       FT_Library_SetLcdFilter can be used to reduce fringes.
-
-2008-01-16  Werner Lemberg  <wl@gnu.org>
-
-       * src/raster/ftraster.c (ft_black_render): Check `outline' before
-       using it.  Reported by Allan Yang.
-
-2008-01-12  Werner Lemberg  <wl@gnu.org>
-
-       * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove.
-
-2008-01-12  Allan Yang, Jian Hua - SH  <Allan.Yang@fmc.fujitsu.com>
-
-       * src/raster/ftraster.c (ft_black_init)
-       [FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation.
-
-2008-01-10  Werner Lemberg  <wl@gnu.org>
-
-       * src/truetype/ttgload.c (load_truetype_glyph): Handle the case
-       where the number of contours in a simple glyph is zero (and which
-       does contain an entry in the `glyf' table).  This fixes Savannah bug
-       #21990.
-
-2008-01-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Formatting suggested by Sean McBride.
-
-       * builds/mac/ftmac.c: Formatting (tab expanded).
-       * src/autofit/afindic.c: Ditto.
-       * src/base/ftcid.c: Ditto.
-       * src/base/ftmac.c: Ditto.
-
-2007-12-30  Werner Lemberg  <wl@gnu.org>
-
-       * src/smooth/ftgrays.c (gray_raster_render): Check `outline'
-       correctly.
-
-2007-12-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Improvement of POSIX resource-fork accessor to load unsorted
-       references in a resource.  In HelveLTMM (resource-fork PostScript
-       Type1 font bundled with Mac OS X since 10.3.x), the appearance order
-       of PFB chunks is not sorted; sorting the chunks by reference IDs is
-       required.
-
-       * include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure
-       type to store a pair of reference ID and offset to the chunk.
-
-       * src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to
-       sort FT_RFork_Ref by their reference IDs.
-
-       (FT_Raccess_Get_DataOffsets): Returns an array of offsets that is
-       sorted by reference ID.
-
-2007-12-14  Werner Lemberg  <wl@gnu.org>
-
-       * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten'
-       division too early; otherwise the most significant digit(s) of the
-       final result are lost as the value is truncated to an integer.  This
-       fixes Savannah bug #21794 (where the patch has been posted too).
-
-2007-12-06  Fix  <4d876b82@gmail.com>
-
-       Pass options from one configure script to another as-is (not
-       expanded).  This is needed for options like
-       --includedir='${prefix}/include'.
-
-       * builds/unix/detect.mk, configure: Prevent argument expansion in
-       call to the (real) `configure' script.
-
-2007-12-06  Werner Lemberg  <wl@gnu.org>
-
-       * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
-       TT_USE_BYTECODE_INTERPRETER isn't defined.
-
-2007-12-06  Werner Lemberg  <wl@gnu.org>
-
-       There exist CFFs which contain opcodes for the Type 1 operators
-       `hsbw' and `closepath' which are both invalid in Type 2 charstrings.
-       However, it doesn't harm to support them.
-
-       * src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
-       `cff_op_closepath.'
-       (cff_argument_counts): Ditto.
-
-       (cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
-       and 13 (hsbw) which are invalid in Type 2 charstrings.
-
-2007-12-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to
-       support new pathname syntax `..namedfork/rsrc' to access a resource
-       fork on Mac OS X.  The legacy syntax `/rsrc' does not work on
-       case-sensitive HFS+.
-       (raccess_guess_darwin_hfsplus): Fix a bug in the calculation of
-       buffer size to store a pathname.
-       * include/freetype/internal/ftrfork.h: Increment the number of
-       resource fork guessing rule.
-
-2007-12-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * builds/unix/configure.raw: Improve the compile tests to search
-       Carbon functions.
-       * builds/mac/ftmac.c: Import fixes for Carbon incompatibilities
-       proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16).
-
-2007-12-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       The documents and comments for Mac OS X are improved by Sean
-       McBride.
-
-       * src/base/ftmac.c: Fix a comment.
-       * include/freetype/ftmac.h: Ditto.
-       * docs/INSTALL.MAC: Improve English and add comment on lowest
-       system version specified by MACOSX_DEPLOYMENT_TARGET.
-
-2007-12-04  Werner Lemberg  <wl@gnu.org>
-
-       * src/cff/cffload.c (cff_subfont_load): Don't use logical OR to
-       concatenate error codes.
-       * src/sfnt/ttsbit.c (Load_SBit_Range): Ditto.
-
-2007-12-04  Graham Asher  <graham.asher@btinternet.com>
-
-       * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to
-       concatenate error codes.
-
-2007-12-04  Sean McBride  <sean@rogue-research.com>
-
-       * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler
-       warning.
-
-2007-11-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Fix MacOS legacy font support by Masatake Yamato on Mac OS X.  It is
-       not working since 2.3.5.  In FT_Open_New(), if FT_New_Stream()
-       cannot mmap() the specified file and cannot seek to head of the
-       specified file, it returns NULL stream and FT_Open_New() returns the
-       error immediately.  On MacOS, most legacy MacOS fonts fall into such
-       a scenario because their data forks are zero-sized and cannot be
-       sought.  To proceed to guessing of resource fork fonts, the
-       functions for legacy MacOS font must properly handle the NULL stream
-       returned by FT_New_Stream().
-
-       * src/base/ftobjs.c (IsMacBinary): Return error
-       FT_Err_Invalid_Stream_Operation immediately when NULL stream is
-       passed.
-       (FT_Open_Face): Even when FT_New_Stream() returns an error, proceed
-       to fallback.  Originally, legacy MacOS font is tested in the cases
-       of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty)
-       or FT_Err_Unknown_File_Format (occurs when AppleSingle header or
-       .dfont header is combined).  Now the case of
-       FT_Err_Cannot_Open_Stream is included.
-
-       * src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL,
-       skip FT_Stream_Seek(), which seeks to the head of stream, and
-       proceed to unit testing of raccess_guess_XXX().  FT_Stream_Seek()
-       for a NULL stream causes a Bus error on Mac OS X.
-       (raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream
-       immediately if passed stream is NULL.
-       (raccess_guess_apple_single): Ditto.
-
-2007-11-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       Fix for Carbon incompatibilities since Mac OS X 10.5,
-       proposed by Sean McBride.
-
-       * doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET.
-
-       * include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and
-       FT_GetFilePath_From_Mac_ATS_Name.  Since Mac OS X 10.5, calling
-       Carbon functions from a forked process is classified as unsafe
-       by Apple.  All Carbon-dependent functions should be deprecated.
-
-       * src/base/ftmac.c: Use essential header files
-       <CoreServices/CoreServices.h> and
-       <ApplicationServices/ApplicationServices.h> instead of
-       all-in-one header file <Carbon/Carbon.h>.
-
-       Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple
-       genuine macro PATH_MAX.
-
-       Add fallback macro for kATSOptionFlagsUnRestrictedScope which
-       is not found in Mac OS X 10.0.
-
-       Multi-character constants ('POST', 'sfnt' etc) are replaced by
-       64bit constants calculated by FT_MAKE_TAG() macro.
-
-       For the index in the segment of resource fork, new portable
-       type ResourceIndex is introduced for better compatibility.
-       This type is since Mac OS X 10.5, so it is defined as short
-       when built on older platforms.
-
-       (FT_ATSFontGetFileReference): If build target is only the systems
-       10.5 and newer, it calls Apple genuine ATSFontGetFileReference().
-
-       (FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5
-       and newer or 64bit platform, because legacy type FSSpec type is
-       removed completely.
-
-       (FT_New_Face_From_FSSpec): Ditto.
-
-2007-11-01  Werner Lemberg  <wl@gnu.org>
-
-       * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere.  This
-       fixes Savannah bug #21485.
-
-2007-10-29  Daniel Svoboda  <dasvo@planeta@cz>
-
-       * src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver
-       can handle the font at all, then check `face_index'.  Otherwise, the
-       driver might return the wrong error code.  This fixes Savannah bug
-       #21468.
-
-2007-10-21  Werner Lemberg  <wl@gnu.org>
-
-       * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare
-       support for bit 8 of the `fsSelection' field in the `OS/2' table.
-       MS is already using this; hopefully, this becomes part of OpenType
-       1.5.
-       Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22
-       (WWS_SUBFAMILY).
-
-2007-10-20  Werner Lemberg  <wl@gnu.org>
-
-       * src/tools/docmaker/tohtml.py (html_header_2): Fix typo.
-       Add `td.left' element to CSS.
-       (toc_section_enter): Use it.
-
-2007-10-18  David Turner  <david@freetype.org>
-
-       * include/freetype/freetype.h, src/base/ftobjs.c: Rename API
-       functions related to cmap type 14 support to the
-       `FT_Object_ActionName' scheme:
-
-         FT_Get_Char_Variant_index     -> FT_Face_GetCharVariantIndex
-         FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault
-         FT_Get_Variant_Selectors      -> FT_Face_GetVariantSelectors
-         FT_Get_Variants_Of_Char       -> FT_Face_GetVariantsOfChar
-         FT_Get_Chars_Of_Variant       -> FT_Face_GetCharsOfVariant
-
-       Update documentation accordingly.
-
-       * src/sfnt/ttcmap.c: Stronger cmap 14 validation.
-       Make the code a little more consistent with FreeType coding
-       conventions and modify the cmap14 functions that returned a newly
-       allocated array to use a persistent vector from the TT_CMap14 object
-       instead.
-
-       (TT_CMap14Rec): Provide array and auxiliary data for result.
-       (tt_cmap14_done, tt_cmap14_ensure): New functions.
-
-       (tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary,
-       tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant,
-       tt_cmap14_char_var_index, tt_cmap14_variants,
-       tt_cmap14_char_variants, tt_cmap14_def_char_count,
-       tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
-       tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved.
-
-2007-10-15  George Williams  <gww@silcom.com>
-
-       Add support for cmap type 14.
-
-       * devel/ftoption.h, include/freetype/config/ftoption.h
-       (TT_CONFIG_CMAP_FORMAT_14): New macro.
-
-       * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc,
-       FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc,
-       FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New
-       support function prototypes.
-       (FT_CMap_ClassRec): Add them.
-       Update all users.
-
-       * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New
-       macro.
-
-       * include/freetype/freetype.h (FT_Get_Char_Variant_Index,
-       FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors,
-       FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API
-       functions.
-
-       * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary
-       function.
-       (FT_Set_Charmap): Disallow cmaps of type 14.
-       (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault,
-       FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char,
-       FT_Get_Chars_Of_Variant): New API functions.
-
-       * src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros.
-
-       (TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate,
-       tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info,
-       tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary,
-       tt_cmap14_find_variant, tt_cmap14_char_var_index,
-       tt_cmap14_char_var_isdefault, tt_cmap14_variants,
-       tt_cmap14_char_variants, tt_cmap14_def_char_count,
-       tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
-       tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and
-       structures for cmap 14 support.
-       (tt_cmap_classes): Register tt_cmap14_class_rec.
-       (tt_face_build_cmaps): One more error message.
-
-       * docs/CHANGES: Mention cmap 14 support.
-
-2007-10-01  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4
-       charmap fails, do the loop again while searching a UCS-2 charmap.
-       This favours MS charmaps over Apple ones.
-
-2007-08-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftmac.c: Introduction of abstract `short' data types,
-       ResFileRefNum and ResID.  These types were introduced for Copland,
-       then backported to MPW.  The variables exchanged with FileManager
-       QuickDraw frameworks are redefined by these data types.  Patch was
-       proposed by Sean McBride.
-       * builds/mac/ftmac.c: Ditto.
-
-2007-08-18  Werner Lemberg  <wl@gnu.org>
-
-       * src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs.  Found
-       by Imran Yousaf.  Fixes Savannah bug #20773.
-
-       (otv_Lookup_validate): Correct handling of LookupType.  Found by
-       Imran Yousaf.  Fixes Savannah bug #20782.
-
-2007-08-17  George Williams  <gww@silcom.com>
-
-       * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of
-       SingleSubstFormat1.
-
-2007-08-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * builds/unix/configure.raw: Fix a bug which sets CC_BUILD by
-       ${build-gcc} (unchecked) instead of by ${build}-gcc (checked).
-       Found by Ryan Hill.
-
-2007-08-11  George Williams  <gww@silcom.com>
-
-       * src/otvalid/otvcommn.c, src/otvalid/otvcommn.h
-       (otv_Coverage_validate): Add fourth argument to pass an expected
-       count value.  Update all users.
-       Check glyph IDs.
-       (otv_ClassDef_validate): Check `StartGlyph'.
-
-       * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID
-       checks.
-
-       * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only
-       56 constants.
-       (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate):
-       Check glyph IDs.
-
-2007-08-08  Werner Lemberg  <wl@gnu.org>
-
-       * src/otvalid/otvbase.c, src/otvalid/otvcommn.c,
-       src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c,
-       src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where
-       appropriate.  Reported by George.
-
-       * include/freetype/internal/fttrace.h: Define `trace_otvmath'.
-
-       * src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c.
-
-       * docs/CHANGES: Updated.
-
-2007-08-08  George Williams  <gww@silcom.com>
-
-       Add `MATH' validating support to otvalid module.
-
-       * include/freetype/tttags.h (TTAG_MATH): New macro.
-       * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro.
-       (FT_VALIDATE_OT): Updated.
-
-       * src/otvalid/otmath.c: New file.
-
-       * src/otvalid/otvalid.c: Include otvmath.c.
-       * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table.
-
-2007-08-04  Werner Lemberg  <wl@gnu.org>
-
-       * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL.
-       Fixes Savannah bug #20686.
-
-2007-08-03  Werner Lemberg  <wl@gnu.org>
-
-       * src/psnames/psmodule.c: Fix usage of
-       FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro.  Reported by Graham Asher.
-
-2007-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftmac.c (open_face_from_buffer): The argument
-       `driver_name' is typed as `const char*' to match with the
-       callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT.
-       This is same with open_face_from_buffer in src/base/ftobjs.c.
-       Found and fixed by Sean McBride.
-
-2007-07-28  Werner Lemberg  <wl@gnu.org>
-
-       * src/raster/ftraster.c (count_table): Make it conditional.
-       * src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with
-       a preprocessor statement.
-
-2007-07-27  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before
-       first usage.  From Savannah patch #6115.
-
-2007-07-16  Werner Lemberg  <wl@gnu.org>
-
-       * docs/CHANGES: Updated.
-
-2007-07-16  Derek Clegg  <dclegg@apple.com>
-
-       Add new service for getting the ROS from a CID font.
-
-       * include/freetype/config/ftheader.h (FT_CID_H): New macro.
-       * include/freetype/ftcid.h: New file.
-
-       * include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro.
-       * include/freetype/internal/services/svcid.h: New file.
-
-       * src/base/ftcid.c: New file.
-
-       * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H.
-       (cff_get_ros): New function.
-       (cff_service_cid_info): New service structure.
-       (cff_services): Register it.
-
-       * src/cff/cffload.c (cff_font_done): Free registry and ordering.
-
-       * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'.
-
-       * modules.cfg (BASE_EXTENSIONS): Add ftcid.c.
-
-2007-07-11  Derek Clegg  <dclegg@apple.com>
-
-       Add support for postscript name service to CFF driver.
-
-       * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H.
-       (cff_get_ps_name): New function.
-       (cff_service_ps_name): New service structure.
-       (cff_services): Register it.
-
-2007-07-07  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
-       `target'.  Reported by Sean McBride.
-
-2007-07-06  Werner Lemberg  <wl@gnu.org>
-
-       * src/pfr/pfrcmap.c: Include pfrerror.h.
-
-       * src/autofit/afindic.c: Add some external declarations to pacify
-       `make multi' compilation.
-
-       * src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
-
-       * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c
-       (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP),
-       src/autofit/aflatin.c (af_latin_hints_compute_edges),
-       src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c
-       (tt_face_get_metrics), src/base/ftobjs.c (open_face)
-       [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler.
-
-       * docs/release: Mention test compilation targets.
-
-2007-07-04  Werner Lemberg  <wl@gnu.org>
-
-       * docs/PROBLEMS: Mention that some PS based fonts can't be
-       handled correctly by FreeType.
-
-       * src/truetype/ttgload.c (load_truetype_glyph): Always allow a
-       recursion depth of 1.  This was the maximum value in TrueType 1.0,
-       and some older fonts don't set this field correctly.
-
-       * src/gxvalid/gxvmort1.c
-       (gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
-
-2007-07-03  Werner Lemberg  <wl@gnu.org>
-
-       * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
-       `round' to pacify compiler.
-
-2007-07-02  Werner Lemberg  <wl@gnu.org>
-
-
-       * Version 2.3.5 released.
-       =========================
-
-
-       Tag sources with `VER-2-3-5'.
-
-       * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
-       version number to 2.3.5.
-
-       * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
-       builds/win32/visualc/freetype.dsp,
-       builds/win32/visualc/freetype.vcproj,
-       builds/win32/visualce/index.html,
-       builds/win32/visualce/freetype.dsp,
-       builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
-
-       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
-
-       * builds/unix/configure.raw (version_info): Set to 9:16:3.
-
-2007-07-01  David Turner  <david@freetype.org>
-
-       * include/freetype/freetype.h, src/base/ftpatent.c
-       (FT_Face_SetUnpatentedHinting): New function to dynamically change
-       the setting after a face is created.
-
-       * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
-       that created distortions in the bytecode interpreter results.
-
-2007-06-30  David Turner  <david@freetype.org>
-
-       * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
-       initialization.
-
-       * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
-       infinite loop in the case of degenerate fonts.
-
-2007-06-26  Rahul Bhalerao  <b.rahul.pm@gmail.com>
-
-       Add autofit module for Indic scripts.  This currently just reuses
-       the CJK-specific functions.
-
-       * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
-       macro.
-       * devel/ftoption.h: Synchronize with
-       include/freetype/config/ftoption.h.
-
-       * src/autofit/afindic.c, src/autofit/afindic.h: New files.
-
-       * src/autofit/afglobal.c, src/autofit/aftypes.h,
-       src/autofit/autofit.c: Updated.
-
-       * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
-       (AUTOF_DRV_SRC): Updated.
-
-2007-06-23  David Turner  <david@freetype.org>
-
-       * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
-       2007-06-16 that prevented the TrueType module from loading most
-       glyphs.
-
-2007-06-20  Werner Lemberg  <wl@gnu.org>
-
-       * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
-       change.
-
-2007-06-19  Werner Lemberg  <wl@gnu.org>
-
-       * src/type1/t1load.c (parse_encoding): Handle one more error.
-
-2007-06-19  Dmitry Timoshkov  <dmitry@codeweavers.com>
-
-       * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
-       FNT_Err_Invalid_File_Format if file format was recognized but
-       the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
-       Add verbose debug logs to make it easier to debug failing load
-       attempts.
-       (FNT_Face_Init): A single FNT font can't contain more than 1 face,
-       so return an error if requested face index is > 0.
-       Do not do further attempt to load fonts if a previous attempt has
-       failed but returned error FNT_Err_Invalid_File_Format, i.e., the
-       file format has been recognized but no fonts found in the file.
-
-2007-07-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftmac.c: Apply patches proposed by Sean McBride.
-       (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
-       the compiler warnings against unused arguments.
-       (FT_ATSFontGetFileReference): Ditto.
-       (FT_GetFile_From_Mac_ATS_Name): Ditto.
-       (FT_New_Face_From_FSSpec): Ditto.
-       (lookup_lwfn_by_fond): Fix wrong comment.
-       Replace `const StringPtr' by more appropriate type
-       `ConstStr255Param'.
-       FSRefMakePathPath always returns UTF8 POSIX pathname in
-       Mach-O, thus HFS pathname support is dropped.
-       (count_faces): Remove HLock and HUnlock which is not
-       required on Mac OS X anymore.
-       (FT_New_Face_From_SFNT): Ditto.
-       (FT_New_Face_From_FOND): Ditto.
-       * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
-       except of HFS pathname support and HLock/HUnlock.
-       They are required on classic CFM environment.
-
-2007-06-18  Werner Lemberg  <wl@gnu.org>
-
-       * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
-       assertion.
-       (ps_parser_to_bytes): Fix error message.
-
-       * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
-       * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
-       Don't allow mixed binary and hex strings.
-       Handle string_size == 0 and string_buf == 0.
-       (t42_parse_encoding): Handle one more error.
-
-2007-06-18  Werner Lemberg  <wl@gnu.org>
-
-       * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
-       logic.
-       (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
-       correctly.
-       (ps_parser_load_field_table): Use `fields->array_max' instead of
-       T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
-
-       * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
-       2007-06-06.
-
-2007-06-17  Werner Lemberg  <wl@gnu.org>
-
-       * src/tools/ftrandom.c (font_size): New global variable.
-       (TestFace): Use it.
-       (main): Handle new option `--size' to set `font_size'.
-       (Usage): Updated.
-
-       * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
-       invalid font.
-       (FNT_Load_Glyph): Protect against invalid bitmap width.
-
-2007-06-16  David Turner  <david@freetype.org>
-
-       * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
-       Prevent integer overflows when rendering very large outlines.
-
-       * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
-       well-formedness of the contours array when loading a glyph.
-
-       * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
-       and `zp2'.
-       (Ins_IP): Check argument ranges to reject bogus operations properly.
-       (IUP_WorkerRec): Add `max_points' member.
-       (_iup_worker_interpolate): Check argument ranges.
-       (Ins_IUP): Ignore empty outlines.
-
-2007-06-16  Dmitry Timoshkov  <dmitry@codeweavers.com>
-
-       * src/winfonts/winfnt.h: Add necessary structures for PE resource
-       parsing.
-       (WinPE32_HeaderRec): New structure.
-       (WinPE32_SectionRec): New structure.
-       (WinPE_RsrcDirRec): New structure.
-       (WinPE_RsrcDirEntryRec): New structure.
-       (WinPE_RsrcDataEntryRec): New structure.
-       (FNT_FontRec): Remove unused `size_shift' field.
-
-       * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
-       loading bitmap .fon files in PE format.
-
-2007-06-15  Dmitry Timoshkov  <dmitry@codeweavers.com>
-
-       * builds/win32/ftdebug.c: Unify debug level handling with other
-       platforms.
-
-2007-06-14  Dmitry Timoshkov  <dmitry@codeweavers.com>
-
-       * builds/win32/ftdebug.c (FT_Message): Send debug output to the
-       console as well as to the debugger.
-
-2007-06-14  Werner Lemberg  <wl@gnu.org>
-
-       * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
-       cover all ranges which could possibly be handled by the aflatin
-       module (since the default fallback for unknown ranges is now the
-       afcjk module).  It might be necessary to fine-tune this further by
-       splitting off modules for Greek, Cyrillic, or other blocks.
-
-2007-06-11  David Turner  <david@freetype.org>
-
-       * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
-       incorrect segment linking computation.  This was the root cause of
-       Savannah bug #19565.
-
-
-       * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
-       to improve the Latin auto-hinter.  Note that the new code is
-       disabled by default since it is not stabilized yet.
-
-       * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
-       (disabled currently).
-
-       * src/autofit/afhints.c: Remove dead code.
-       (af_axis_hints_new_edge): Add argument to handle segment directions.
-       (af_edge_flags_to_string): New function.
-       (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
-       option flags.
-       (af_glyph_hints_reload): Add argument to handle inflections.
-       Simplify.
-       (af_direction_compute): Fine tuning.
-       (af_glyph_hints_align_edge_points): Fix logic.
-       (af_glyph_hints_align_strong_points): Do linear search for small
-       edge counts.
-       (af_glyph_hints_align_weak_points): Skip any touched neighbors.
-       (af_iup_shift): Handle zero `delta'.
-
-       * src/autofit/afhints.h: Updated.
-       (AF_SORT_SEGMENTS): New macro (disabled).
-       (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
-
-       * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
-       argument to pass option flags for handling scripts.
-       * src/autofit/afglobal.h: Updated.
-
-       * src/autofit/afcjk.c: Updated.
-       * src/autofit/aflatin.c: Updated.
-       (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
-
-       (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
-       (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
-       Don't set `edge->dir'
-       (af_latin_hint_edges): Add more logging.
-
-       * src/autofit/afloader.c: Updated.
-
-2007-06-11  Werner Lemberg  <wl@gnu.org>
-
-       * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
-
-2007-06-10  David Turner  <david@freetype.org>
-
-       * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
-       the TrueType glyph loader.
-
-       * include/freetype/config/ftoption.h: Clarify documentation
-       regarding unpatented hinting.
-
-
-       Add new `FT_Face_CheckTrueTypePatents' API.
-
-       * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
-       declaration.
-
-       * include/freetype/internal/services/svttglyf.h,
-       src/base/ftpatent.c: New files.
-
-       * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
-       New macro.
-
-       * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
-       `ttpload.h'.
-       (tt_service_truetype_glyf): New service structure.
-       (tt_services): Register it.
-
-       * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
-       `ftpatent.c'.
-
-2007-06-08  Werner Lemberg  <wl@gnu.org>
-
-       * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
-       Fonts without a cmap must be handled correctly by FreeType (anything
-       else would be a bug).
-
-
-       * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
-       [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
-
-2007-06-07  Werner Lemberg  <wl@gnu.org>
-
-       * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
-       tt_sbit_decoder_load_image): Protect against integer overflows.
-
-
-       * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
-       for `x_control' and `y_control'.
-
-2007-06-06  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
-
-
-       * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
-       FreeType error.
-
-
-       * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
-       `font_count'.
-
-
-       * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
-
-
-       * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
-       `FT_Error'.
-       Check `fd_index'.
-       (cff_slot_load): Updated.
-       * src/cff/cffgload.h: Updated.
-
-2007-06-05  Werner Lemberg  <wl@gnu.org>
-
-       * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
-       (pfr_glyph_load_simple): Convert assertion into normal FreeType
-       error.
-       Check `idx'.
-       (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
-       Convert assertion into normal FreeType error.
-
-       * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
-
-
-       * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
-
-
-       * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
-       in case of parsing error.
-       (ps_parser_load_field): Updated.
-
-       * src/type1/t1load.c (parse_font_matrix): Updated.
-
-2007-06-04  Werner Lemberg  <wl@gnu.org>
-
-       * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
-
-       * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
-
-2007-06-03  Werner Lemberg  <wl@gnu.org>
-
-       * src/tools/ftrandom/*: Add the `ftrandom' test program written by
-       George Williams (with some modifications).
-
-2007-06-03  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
-       (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
-       face == NULL.  Suggested by Graham Asher.
-
-2007-06-03  Ismail Dönmez  <ismail@pardus.org.tr>
-
-       * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
-
-2007-06-02  Werner Lemberg  <wl@gnu.org>
-
-       * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
-       FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
-
-       * src/bdf/bdflib.c (bdf_load_font): Use them.
-
-       * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
-
-2007-06-01  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
-       (FTC_CMapCache_Lookup): Remove unused code.
-
-2007-06-01  Sean McBride  <sean@rogue-research.com>
-
-       * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
-       unused.
-
-2007-06-01  Werner Lemberg  <wl@gnu.org>
-
-       * src/cid/cidparse.c (cid_parser_new): Don't continue second search
-       pass for `StartData' if an error has occurred.
-       Exit properly if no `StartData' has been seen at all.
-
-       * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
-       LONG_MAX to avoid compiler warning.  Suggested by Sean McBride.
-
-2007-05-30  Werner Lemberg  <wl@gnu.org>
-
-       * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
-       against too small binary data strings.
-
-       * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
-
-2007-05-28  David Turner  <david@freetype.org>
-
-       * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
-       transformation.  This significantly reduces the loading time of CFF
-       glyphs.
-
-       * docs/CHANGES: Updated.
-
-       * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
-       hinting script to CJK, since it works well with more scripts than
-       latin.  Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
-       this out!
-
-2007-05-25  Werner Lemberg  <wl@gnu.org>
-
-       * docs/CHANGES: Updated.
-
-2007-05-24  Werner Lemberg  <wl@gnu.org>
-
-       * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
-       into TT_USE_BYTECODE_INTERPRETER preprocessor block.
-
-2007-05-24  Graham Asher  <graham.asher@btinternet.com>
-
-       * src/truetype/ttobjs.c (tt_size_ready_bytecode)
-       [!TT_USE_BYTECODE_INTERPRETER]: Removed.  Unused.
-
-2007-05-22  David Turner  <david@freetype.org>
-
-       * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
-       avoid crashes in case the bytecode interpreter is not used.
-
-
-       Avoid heap blowup with very large .Z font files.  This fixes
-       Savannah bug #19910.
-
-       * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
-       `in_limit', `pad', `pad_bits', and `in_buff' members.
-       Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
-       `buf_total' members.
-
-       * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten.  It now takes
-       only one argument.
-       (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
-
-2007-05-20  Ismail Dönmez  <ismail@pardus.org.tr>
-
-       * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
-       (ps_dimension_set_mask_bits): Remove `const'.
-
-2007-05-19  Werner Lemberg  <wl@gnu.org>
-
-       * src/sfnt/ttmtx.c (tt_face_get_metrics)
-       [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
-
-2007-05-19  Derek Clegg  <dclegg@apple.com>
-
-       Savannah patch #5929.
-
-       * include/freetype/tttables.h, src/base/ftobjcs.c
-       (FT_Get_CMap_Format): New function.
-
-       * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
-       `format' member.
-       * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
-       cmap_info->format.
-
-2007-05-19  Werner Lemberg  <wl@gnu.org>
-
-       * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
-       before handling subglyphs so that it can be reinitialized each time.
-       This fixes Savannah bug #19859.
-
-2007-05-16  Werner Lemberg  <wl@gnu.org>
-
-       * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
-       src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
-       (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
-       src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
-       tt_face_get_metrics): Fix type-punning issues.
-
-2007-05-15  David Turner  <david@freetype.org>
-
-       * include/freetype/config/ftstdlib.h,
-       include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
-       ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
-       instead on relying on the locale-dependent functions provided by
-       <ctypes.h>.
-
-2007-05-15  Graham Asher  <graham.asher@btinternet.com>
-
-       * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
-       variable.
-       * src/autofit/afloader.c (af_loader_load_g): Ditto.
-
-       * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
-       (open_face_from_buffer): Initialize `stream'.
-       (FT_Request_Metrics): Remove unused variable.
-       Remove redundant `break' statements.
-       (FT_Get_Track_Kerning): Remove unused variable.
-
-       * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
-       afm_parse_kern_data): Remove redundant
-       `break' statements.
-       (afm_parser_parse): Ditto.
-       Don't use uninitialized variables.
-
-       * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
-       Use `|' operator instead of `^' to set it.
-       Update all users.
-
-       * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
-       * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
-
-       * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
-       comparison.
-       (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
-       (TT_Load_Glyph): Remove unused variable.
-
-2007-05-13  Derek Clegg  <dclegg@apple.com>
-
-       * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
-       if FT_RENDER_POOL_SIZE is > 0.  From Savannah patch #5928.
-
-2007-05-11  David Turner  <david@freetype.org>
-
-       * src/cache/ftbasic.c, include/freetype/ftcache.h
-       (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
-       functions that allow us to look up glyphs using an FTC_Scaler object
-       to specify the size, making it possible to use fractional pixel
-       sizes.
-
-       * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
-       `size->cvt_ready'.  Reported by Boris Letocha.
-
-2007-05-09  Graham Asher  <graham.asher@btinternet.com>
-
-       * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
-       (af_latin_metrics_scale_dim): Fix compiler warnings.
-
-2007-05-06  Werner Lemberg  <wl@gnu.org>
-
-       * builds/win32/visualce/freetype.sln: Removed, as requested by
-       Vincent.
-
-2007-05-04  Vincent RICHOMME  <richom.v@free.fr>
-
-       * builds/win32/visualce/*: Add Visual C++ project files for Pocket
-       PC targets.
-
-       * docs/CHANGES: Document them.
-
-2007-05-04  <harry@kdevelop.org>
-
-       * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
-       mmap (which might happen on some RTOS).  From Savannah patch #5909.
-
-2007-05-03  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
-       * include/freetype/freetype.h (FT_Set_Char_Size): Update
-       documentation.
-
-2007-04-28  Victor Stinner  <victor.stinner@inl.fr>
-
-       * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
-       `cmap'.
-
-2007-04-27  Werner Lemberg  <wl@gnu.org>
-
-       * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
-       number of points in contours.  Problem reported by Victor Stinner
-       <victor.stinner@haypocalc.com>.
-       (TT_Process_Simple_Glyph): Synchronize variable types.
-
-2007-04-26  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
-       zero in case of error.  This fixes Savannah bug #19689.
-
-2007-04-25  Boris Letocha  <b.letocha@cz.gmc.net>
-
-       * src/truetype/ttobjs.c: Fix a typo that created a speed regression
-       in the TrueType bytecode loader.
-
-2007-04-10  Martin Horak  <horakm@centrum.cz>
-
-       * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
-       Ignore `hhea' table.  This fixes Savannah bug #19261.
-
-2007-04-09  Werner Lemberg  <wl@gnu.org>
-
-
-       * Version 2.3.4 released.
-       =========================
-
-
-       Tag sources with `VER-2-3-4'.
-
-       * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
-       version number to 2.3.4.
-
-       * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
-       builds/win32/visualc/freetype.dsp,
-       builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
-
-       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
-
-       * builds/unix/configure.raw (version_info): Set to 9:15:3.
-
-2007-04-09  Martin Horak  <horakm@centrum.cz>
-
-       * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
-       memory stream to avoid a crash with the incremental memory
-       interface (Savannah bug #19260).
-
-2007-04-06  David Turner  <david@freetype.org>
-
-       * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
-       (Savannah bug #19536).
-
-2007-04-04  Werner Lemberg  <wl@gnu.org>
-
-
-       * Version 2.3.3 released.
-       =========================
-
-
-       Tag sources with `VER-2-3-3'.
-
-       * docs/CHANGES: Mention CVE-2007-1351.
-
-2007-04-03  David Turner  <david@freetype.org>
-
-       * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
-       if one of the resolution values is 0, treat it as if it were the
-       same as the other value.
-
-2007-04-02  David Turner  <david@freetype.org>
-
-       Add special code to detect `extra-light' fonts and do not snap their
-       stem widths too much to avoid bizarre hinting effects.
-
-       * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
-       `extra_light' members.
-
-       * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
-       them.
-       (af_latin_metrics_scale_dim): Set `extra_light'.
-       (af_latin_compute_stem_width): Use `extra_light'.
-
-2007-03-28  David Turner  <david@freetype.org>
-
-       * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
-       padding.
-
-2007-03-28  Werner Lemberg  <wl@gnu.org>
-
-       * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
-       gracefully.
-       (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
-       issue an error for longer names.  This fixes CVE-2007-1351.
-       (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
-       number of code points in Unicode.
-
-       * builds/win32/visualc/index.html,
-       builds/win32/visualc/freetype.dsp,
-       builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
-       s/232/233/.
-
-       * docs/CHANGES: Mention ftdiff.
-
-2007-03-26  David Turner  <david@freetype.org>
-
-       * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
-       corresponding code.
-       (Ins_MD): Last regression fix.
-
-       * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
-       computations in order to ignore single-point contours.  These are
-       never rasterized and correspond in certain fonts to mark-attach
-       points that are very far from the glyph's real outline, ruining the
-       computation.
-
-       * src/autofit/afloader.c (af_loader_load_g): In the case of
-       monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
-       Otherwise code that uses them will most certainly ruin the fixed
-       advance property.
-
-       * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
-       documentation and bump version number to 2.3.3.
-
-       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
-
-       * builds/unix/configure.raw (version_info): Set to 9:14:3.
-
-2007-03-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * builds/unix/ftconfig.in: Disable Carbon framework dependency on
-       64bit ABI on Mac OS X 10.4.x (ppc & i386).  Found by Sean McBride.
-       * builds/vms/ftconfig.h: Ditto.
-       * include/freetype/config/ftconfig.h: Ditto.
-
-2007-03-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
-       32bit unsigned long overflow by 64bit filesize on LP64 platform, as
-       proposed by Sean McBride:
-       http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
-
-2007-03-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
-       setjmp, proposed by Sean McBride:
-       http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
-
-2007-03-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
-       conftest.c, to avoid unexpected shell evaluation.  Possibly it is a
-       bug or undocumented behaviour of autoconf.
-
-2007-03-18  David Turner   <david@freetype.org>
-
-       * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
-       fix; testing still needed.
-
-       * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
-
-2007-03-17  David Turner   <david@freetype.org>
-
-       * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
-       (undocumented) twilight zone special case.
-
-2007-03-09  Werner Lemberg  <wl@gnu.org>
-
-
-       * Version 2.3.2 released.
-       =========================
-
-
-       Tag sources with `VER-2-3-2'.
-
-       * builds/win32/visualc/index.html,
-       builds/win32/visualc/freetype.dsp,
-       builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
-       s/231/232/.
-
-2007-03-08  David Turner  <david@freetype.org>
-
-       * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
-
-       * builds/unix/configure.raw (version_info): Set to 9:13:3.
-
-       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
-
-       * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
-
-       * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
-       function to work properly, over-writing user-provided buffers in
-       some cases.  Reported by James Cloos <cloos@jhcloos.com>.
-
-
-2007-03-05  Werner Lemberg  <wl@gnu.org>
-
-       * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
-       macro for `strstr'.
-
-       * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
-       `trick_names', as suggested by Ivan Nincic.
-
-2007-03-05  David Turner  <david@freetype.org>
-
-       * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
-       case FT_Init_FreeType fails for some reason.  Problem reported by
-       Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
-
-       * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
-       and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
-       `TT_Size.root.metrics'.  Problem reported by Daniel Glöckner
-       <daniel-gl@gmx.net>.
-
-       * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
-       signed values, not unsigned ones.  Problem reported by Johannes
-       Walther <joh_walt@yahoo.de>.
-
-2007-02-21  David Turner  <david@freetype.org>
-
-       * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
-       of small and ghost stems in the Postscript interpreter.
-
-2007-02-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
-       leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
-       * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
-
-2007-02-16  Werner Lemberg  <wl@gnu.org>
-
-       * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
-       * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
-
-2007-02-14  David Turner  <david@freetype.org>
-
-       It seems that the following changes fix most of the known
-       interpreter problems with my fonts, but more testing is needed,
-       though.
-
-       * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
-       (TT_MulFix14): Rewrite.
-       (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
-       (Ins_MIRP): Ditto.
-
-2007-02-12  Werner Lemberg  <wl@gnu.org>
-
-       * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
-       warnings.
-
-       * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
-       (bdf_interpret_style): Ditto.
-
-2007-02-12  David Turner  <david@freetype.org>
-
-       Simplify projection and dual-projection code interface.
-
-       * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
-       FT_Vector' as argument type.
-       * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
-       Updated.
-       (CUR_fast_project, CUR_fast_dualproj): New macros.
-       (Project, Dual_Project, Project_x, Project_y): Updated.
-       (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
-       macros.
-
-
-       * src/autofit/afloader.c (af_loader_load_g): Improve spacing
-       adjustments for the non-light auto-hinted modes.  Gets rid of
-       `inter-letter spacing is too wide' problems.
-
-       * src/autofit/aflatin.c (af_latin_hints_link_segments,
-       af_latin_hints_compute_edges): Slight optimization of the segment
-       linker and better handling of serif segments to get rid of broken
-       `9' in Arial at 9pt (96dpi).
-
-
-       Introduce new string functions and the corresponding macros to get
-       rid of various uses of strcpy and other `evil' functions, as well as
-       to simplify a few things.
-
-       * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
-       ft_mem_strcpyn): New declarations.
-       (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
-       macros.
-       * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
-       functions.
-
-       * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
-       src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
-       (pcf_get_properties, pcf_interpret_style, pcf_load_font),
-       src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
-       (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
-       src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
-       (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
-       t42_get_name_index): Use new functions and simplify code.
-
-       * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
-
-2007-02-11  Werner Lemberg  <wl@gnu.org>
-
-       * src/autofit/afloader.c (af_loader_load_g): Don't change width for
-       non-spacing glyphs.
-
-2007-02-07  Tom Parker  <palfrey@tevp.net>
-
-       * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
-       pointer.
-
-2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
-       Introduce __attribute((deprecated))__ to warn functions
-       which use non-ANSI data types in its interfaces.
-       (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
-       (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
-       (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
-       (FT_New_Face_From_FSRef): Deprecated, using FSRef.
-
-       * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
-       to avoid warning in building FreeType.
-       * builds/mac/ftmac.c: Ditto.
-
-2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
-       `--with-fsspec' etc.  Replace #include "ftmac.c" with
-       #include <ftmac.c>.
-
-2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
-       Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
-       * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
-       (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
-       FT_GetFilePath_From_Mac_ATS_Name.
-       * builds/mac/ftmac.c: Ditto.
-
-2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
-       FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
-       for passing to FT_New_Face_From_FSSpec.
-
-2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * builds/unix/configure.raw: Check whether Mac OS X system headers
-       can be built under ANSI C mode.
-
-       * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
-       compatible to ANSI C in case system headers are ANSI C incompatible.
-       * builds/mac/ftmac.c (OS_INLINE): Ditto.
-
-2007-02-01  Werner Lemberg  <wl@gnu.org>
-
-       * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
-       Explain why applications shouldn't use it.  Found by Alexei.
-
-2007-02-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
-
-       * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
-       message.
-
-       * src/gxvalid/gxvmort1.c
-       (gxv_mort_subtable_type1_substTable_validate): Fix debugging
-       message.
-
-2007-01-31  Werner Lemberg  <wl@gnu.org>
-
-
-       * Version 2.3.1 released.
-       =========================
-
-
-       Tag sources with `VER-2-3-1-FINAL'.
-
-       * builds/win32/visualc/freetype.dsp,
-       builds/win32/visualc/freetype.vcproj: s/230/231/.
-       * builds/win32/visualc/index.html: s/221/231/.
-
-       * vms_make.com: Add `ftgasp'.
-
-2007-01-30  David Turner  <david@freetype.org>
-
-       Tag sources with VER-2-3-1 to prepare release.
-
-       * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
-
-       * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
-       s/2.3.0/2.3.1/.
-
-       * builds/unix/configure.raw (version_info): Set to 9:12:3.
-
-
-       * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
-       (af_loader_load_g): Disable the warper (i.e., the light hinting
-       improvements) to make a 2.3.1 bugfix release before introducing a
-       new feature.  This should give us more time to tune and improve the
-       warper for the next release.
-
-       * docs/CHANGES: Update accordingly.
-
-2007-01-25  David Turner  <david@freetype.org>
-
-       For light auto-hinting, improve glyph advance widths and resurrect
-       normal/full hinting to its normal quality.
-
-       * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
-       and `xmax_delta'.
-       * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
-       and `xmax_delta'.
-
-       * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
-       preprocessor conditional with if-clause, handling both light and
-       normal mode.
-
-       * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
-       (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
-
-2007-01-25  Werner Lemberg  <wl@gnu.org>
-
-       * docs/release: Updated -- Savannah uses a new uploading scheme.
-
-2007-01-25  David Turner  <david@freetype.org>
-
-       * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
-
-       * src/cff/cffgload.c (cff_decoder_parse_charstrings)
-       <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
-       functions.
-
-       * docs/CHANGES: Document light auto-hinting improvement.
-
-2007-01-25  Werner Lemberg  <wl@gnu.org>
-
-       * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
-       correctly in a sanity check.  Since this function is only used to
-       load local and global functions, any charstring that called the last
-       local/global function would fail otherwise.  This fixes Savannah bug
-       #18867.
-
-       * docs/CHANGES: Document it.
-
-2007-01-23  David Turner  <david@freetype.org>
-
-       * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
-       prevented compilation when disabling both the unpatented and the
-       bytecode interpreter in the TrueType font driver.
-
-
-       Fix and enable the warper to improve `light' hinting mode.  This is
-       not necessarily a final version, but it seems to work well.
-
-       * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
-       Disable code.
-       (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
-       * src/autofit/aftypes.h: Activate AF_USE_WARPER.
-
-       * src/autofit/afwarp.c (AF_WarpScore): Tune table.
-       (af_warper_compute_line_best): Fix array size of `scores'.
-       (af_warper_compute): Better handling of border cases.
-       * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
-       and `X2'.
-
-2007-01-21  Werner Lemberg  <wl@gnu.org>
-
-       * ChangeLog: Split off older entries into...
-       * ChangeLog.22: This new file.
-
-2007-01-21  Werner Lemberg  <wl@gnu.org>
-
-       * docs/CHANGES: Document SHZ fix.
-
-2007-01-21  George Williams  <gww@silcom.com>
-
-       * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
-       points.
-
-2007-01-21  Werner Lemberg  <wl@gnu.org>
-
-       * src/sfnt/ttmtx.c (tt_face_get_metrics)
-       [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
-
-2007-01-17  Werner Lemberg  <wl@gnu.org>
-
-
-       * Version 2.3.0 released.
-       =========================
-
-
-       Tag sources with `VER-2-3-0-FINAL'.
-
-2007-01-17  Werner Lemberg  <wl@gnu.org>
-
-       * docs/release: Updated.
-
-2007-01-16  David Turner  <david@freetype.org>
-
-       * src/autofit/aflatin.c (af_latin_hints_compute_segments),
-       src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
-       (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
-       warnings.
-
-2007-01-15  Detlef Würkner  <TetiSoft@apg.lahn.de>
-
-       * builds/amiga/makefile, builds/amiga/makefile.os4,
-       builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
-
-       * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
-
-2007-01-14  Detlef Würkner  <TetiSoft@apg.lahn.de>
-
-       Fix various compiler warnings.
-
-       * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
-       src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
-       s/index/strike_index/.
-       * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
-
-       * src/gxvalid/gxvmorx5.c
-       (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
-
-       * src/truetype/ttinterp.c (Compute_Point_Displacement),
-       src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
-       uninitialized variables.
-
-2007-01-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * docs/CHANGES, docs/INSTALL.MAC: Improvements.
-
-2007-01-13  Werner Lemberg  <wl@gnu.org>
-
-       * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
-       versions up to 0x3FF without complaining.
-
-2007-01-13  Derek Clegg  <dclegg@apple.com>
-
-       Add FT_Get_PS_Font_Info interface to CFF driver.
-
-       * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
-       (CFF_FontRec): Add `font_info' field.
-
-       * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
-       (cff_font_done): Free font->font_info if necessary.
-
-       * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
-       (cff_service_ps_info): Register cff_ps_get_font_info.
-
-2007-01-13  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
-       with C++ compiler.
-
-       * src/autofit/afhints.c (af_glyph_hints_dump_segments,
-       af_glyph_hints_dump_edges): Ditto.
-
-       * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
-       `modules.cfg').
-
-       * src/sfnt/ttsbit0.h: Remove.
-
-       * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
-
-2007-01-12  David Turner  <david@freetype.org>
-
-       * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
-       bug in the bitmap emboldener if the pitch of the source bitmap is
-       much larger than its width.
-
-       * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
-       compilation warning.
-
-2007-01-12  Werner Lemberg  <wl@gnu.org>
-
-       * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
-       `automake' CVS module from sources.redhat.com.
-
-2007-01-11  Werner Lemberg  <wl@gnu.org>
-
-       * src/type1/t1load.c (is_space): Removed.
-       (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
-       (parse_charstrings): Use IS_PS_TOKEN.
-
-
-       * autogen.sh: Avoid bash specific syntax.
-
-2007-01-11  David Turner  <david@freetype.org>
-
-       * docs/CHANGES: Small update.
-
-       * builds/unix/configure.raw (version_info): Set to 9:11:3.
-
-       * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
-       crash with some Mac OS X .dfont files.  Submitted by Masatake
-       Yamato.
-
-       * autogen.sh: Small fix to get it working on Mac OS X properly:
-       The issue is that GNU libtool is called `glibtool' on this platform,
-       and we must call `glibtoolize', since `libtoolize' doesn't exist.
-
-2007-01-10  David Turner  <david@freetype.org>
-
-       * all-sources: Tag all sources with VER-2-3-0-RC1 and
-       VER-2-3-0.
-
-       * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
-       builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
-       version number to 2.3.0.
-
-       * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
-       (FREETYPE_PATCH): Set to 0.
-
-       * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
-       include/freetype/ftlcdfil.h: Update reference documentation with
-       GASP support and LCD filtering sections.
-
-       * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
-       which created an endless loop with some malformed font files.
-
-2007-01-10  Derek Clegg  <dclegg@apple.com>
-
-       * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
-       values.
-
-2007-01-08  David Turner  <david@freetype.org>
-
-       * docs/CHANGES: Updated.
-
-       * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
-       a new API `FT_Get_Gasp' to return entries of the `gasp' table
-       corresponding to a given character pixel size.
-
-       * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
-       `gasp' table, in order to avoid potential problems with later
-       versions.
-
-       * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
-       <freetype/ftgasp.h>.
-
-       * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
-       modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
-       builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
-       default build.
-
-2007-01-07  Werner Lemberg  <wl@gnu.org>
-
-       * src/cid/cidparse.c (cid_parser_new): Improve error message for
-       Type 11 fonts.
-       Scan for `/sfnts' token.
-
-2007-01-07  Werner Lemberg  <wl@gnu.org>
-
-       * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
-
-2007-01-06  Werner Lemberg  <wl@gnu.org>
-
-       * src/cff/cffload.c (cff_index_init): Remove unused variable.
-       (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
-
-2007-01-04  David Turner  <david@freetype.org>
-
-       * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
-       correctly.  This fixes Savannah bug #17876.
-
-
-       Do not allocate interpreter-specific tables in memory if we are not
-       going to load glyphs with the bytecode interpreter anyway.
-
-       * src/truetype/ttgload.c (tt_loader_init): Load execution context
-       only if glyph is hinted.
-       Updated.
-       * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
-       and `cvs_ready'.
-       Add `tt_size_ready_bytecode' declaration.
-       * src/truetype/ttobjs.c (tt_size_done_bytecode,
-       tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
-       (tt_size_init): Move most code into `tt_size_init_bytecode'.
-       (tt_size_done): Move most code into `tt_size_done_bytecode'.
-       (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
-
-
-       Don't extract the metrics table from the SFNT font file.  Instead,
-       reparse it on each glyph load.  The runtime difference is not
-       noticeable, and it can save a lot of heap memory when memory-mapped
-       files are not used.
-
-       * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
-       `horz_metrics_offset' and `vert_metrics_ofset'.
-       * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
-       Updated.
-
-
-       * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
-
-
-       Do not load the CFF index offsets into memory, since this wastes a
-       *lot* of heap memory with large Asian CFF fonts.  There is no
-       significant performance loss.
-
-       * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
-       * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
-       `data_size'.
-       (CFF_CharsetRec): Add field `num_glyphs'.
-
-       * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
-       cff_charset_cid_to_gindex): New functions.
-       (cff_new_index): Renamed to...
-       (cff_index_init): This.  Update all callers.
-       Updated -- some code has been moved to `cff_index_load_offsets'.
-       (cff_done_index): Renamed to...
-       (cff_index_done): This.  Update all callers.
-       (cff_index_get_pointers, cff_index_access_element): Updated to use
-       stream offsets.
-       (cff_charset_compute_cids): Set `num_glyphs' field.
-       (cff_encoding_load): Updated.
-
-       * src/cff/cffgload.c (cff_slot_load): Updated.
-
-2007-01-04  David Turner  <david@freetype.org>
-
-       * docs/INSTALL.UNIX: Simplify some parts, add reference to
-       autogen.sh and pointer to README.CVS.
-
-       * README.CVS: Add common problem description and solution
-       when running autogen.sh.
-
-       * docs/INSTALL: Add reference to MacOS X.
-
-       * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
-
-       * docs/TODO: Remove obsolete items.
-
-       * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
-       (TWorker): This.
-       Remove `count_table' and `memory'.
-       Make `grays' a pointer.
-       (TRaster): New structure.
-       (count_table): New static array.
-       (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
-       Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
-       ft_black_set_mode, ft_black_render): Updated.
-       (ft_black_init): Don't initialize `count_table'.
-       (ft_black_reset): Use the render pool.  This saves about 6KB of
-       heap space for each FT_Library instance.
-
-       * src/smooth/ftgrays.c (TRaster): Replaced with...
-       (TWorker): This.
-       Remove `memory'.
-       (TRaster): New structure.
-
-       (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
-       gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
-       gray_render_span, gray_raster_render): Updated.
-       (gray_raster_reset): Use the render pool.  This saves about 6KB of
-       heap space for each FT_Library instance.
-
-       * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
-       src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
-       src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
-       FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
-       the optimization is no longer experimental.
-
-       * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
-       Remove a typo that results in no hinting and a memory leak with some
-       large Asian CFF fonts.
-
-       * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
-       which happens when FT_Done_Library is called with still opened
-       CFF_Faces in it.  We need to close all faces before destroying the
-       modules, or else some bad things (memory leaks) may happen.
-
-2007-01-02  Werner Lemberg  <wl@gnu.org>
-
-       * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
-       Remove compiler warning.
-
-2007-01-02  David Turner  <david@freetype.org>
-
-       * src/sfnt/sfobjs.c: Add documentation comment.
-
-2006-12-31  Masatake YAMATO  <jet@gyve.org>
-
-       * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
-       function.
-       Check uniqueness of the gid pairs.
-       (gxv_kern_subtable_fmt0_validate): Move some code to
-       `gxv_kern_subtable_fmt0_pairs_validate'.
-
-2006-12-22  David Turner  <david@freetype.org>
-
-       * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
-       warnings.
-
-       * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
-       to avoid deprecation warnings with Visual C++ 8.
-
-2006-12-16  Anders Kaseorg  <anders@kaseorg.com>
-
-       * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
-       [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
-
-2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * include/freetype/internal/services/svotval.h: Add `volatile' to
-       sync with the modification by Jens Claudius on 2006-08-22; cf.
-         http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5
-
-2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftmac.c: Specialized for Mac OS X only.
-       * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
-       * builds/unix/configure.raw: Ditto.  When explicit switches for
-       FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
-       builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
-
-2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
-       * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
-       instead of src/base/ftmac.c
-       * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
-       * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
-       * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
-       that cannot be built at present.
-
-2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftobjs.c: Improvement of resource fork handler for
-       POSIX, cf.
-         http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
-       (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
-       format or .dfont, to simulate the face index number counted by ftmac.c.
-       (IsMacResource): Return the number of scalable faces correctly.
-
-2006-12-10  Werner Lemberg  <wl@gnu.org>
-
-       * builds/toplevel.mk (version): Protect against `distclean' target.
-
-2006-12-09  Werner Lemberg  <wl@gnu.org>
-
-       * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
-       or `type'.
-
-       * builds/freetype.mk (version): Extracted from freetype.h, using
-       GNU make's built-in string functions.
-       (refdoc): Use $(version) instead of static version number.
-
-2006-12-08  Werner Lemberg  <wl@gnu.org>
-
-       * builds/toplevel.mk (dist): Extract version number from freetype.h.
-
-2006-12-08  Vladimir Volovich  <vvv@vsu.ru>
-
-       * src/tools/apinames.c (State): Remove final comma in structure --
-       xlc v5 under AIX 4.3 doesn't like this.
-
-2006-12-07  David Turner  <david@freetype.org>
-
-       * src/autofit/afloader.c (af_loader_load_g): Small adjustment
-       to the spacing of auto-fitted glyphs.  This only impacts rare
-       cases (e.g., Arial Bold at rather small character sizes).
-
-2006-12-03  Werner Lemberg  <wl@gnu.org>
-
-       * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
-
-2006-12-01  Werner Lemberg  <wl@gnu.org>
-
-       * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
-       encoded in UTF-16BE.  Patch from Rajeev Pahuja <rpahuja@esri.com>.
-       (tt_name_entry_ascii_from_ucs4): Removed.
-
-
-       * include/freetype/ftxf86.h: Fix and extend comment so that it
-       appears in the documentation.
-
-       * include/freetype/ftchapters.h: Add `font_format' section.
-
-
-       * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
-       to TOC in index page.
-
-2006-11-28  David Turner  <david@freetype.org>
-
-       * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
-       trying to render into a zero-width/height bitmap, not an error code.
-
-       * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
-
-       * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
-       ones instead.
-
-       * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
-       variable.
-
-2006-11-26  Pierre Hanser  <hanser@club-internet.fr>
-
-       * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
-
-2006-11-25  David Turner  <david@freetype.org>
-
-       * src/autofit/afhints.c (af_glyph_hints_dump_points,
-       af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
-       Add stubs to link the `ftgrid' test program when debugging is
-       disabled in the auto-hinter.
-
-2006-11-23  David Turner  <david@freetype.org>
-
-       * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
-       src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
-
-       * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
-       Emit more sensible information.
-
-       * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
-
-       * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
-       rounding of blue values.
-       (af_latin_hints_compute_segments): Hint segment heights.
-       (af_latin_hints_link_segments): Reduce `len_score' value.
-       (af_latin_hints_compute_edges): Increase `segment_length_threshold'
-       value and use `height' member for comparisons.
-       (af_latin_hint_edges): Extend logging message.
-       Improve handling of remaining edges.
-
-2006-11-22  Werner Lemberg  <wl@gnu.org>
-
-       Fix Savannah bug #15553.
-
-       * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
-       program after a change from mono to grayscaling (and vice versa).
-       Use correct constant for comparison to get `exec->grayscale'.
-
-2006-11-18  Werner Lemberg  <wl@gnu.org>
-
-       Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
-       test for a valid glyph index must be deferred to the font drivers.
-       This patch fixes Savannah bug #18301.
-
-       * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
-       * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
-       (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
-       src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
-       (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
-       src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
-       (FNT_Load_Glyph): Check validity of `glyph_index'.
-
-2006-11-13  David Turner  <david@freetype.org>
-
-       * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine.  The interpreter
-       `enhancements' are still too buggy for general use.
-
-       * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
-       FT_FORCE_LEGACY_LCD_FILTER at compile time.  Define these macros
-       when building the library to change the default LCD filter to be
-       used.  This is only useful for experimentation.
-
-       * include/freetype/ftlcdfil.h: Update documentation.
-
-2006-11-10  David Turner  <david@freetype.org>
-
-       * src/smooth/ftsmooth.c: API change for the LCD
-       filter.  The FT_LcdFilter value is an enumeration describing which
-       filter to apply, with new values FT_LCD_FILTER_LIGHT and
-       FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
-       algorithm which produces strong color fringes for everything
-       except very-well hinted text).
-
-       * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
-       second parameter to an enum type.
-
-       * src/base/ftlcdfil.c (USE_LEGACY): Define.
-       (_ft_lcd_filter): Rename to...
-       (_ft_lcd_filter_fir): This.
-       Update parameters.
-       (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
-       (FT_Library_Set_LcdFilter): Update parameters.
-       Handle new filter modes.
-
-       * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
-       (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
-       (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
-       callback and update other fields.
-
-       * src/smooth/ftsmooth.c (ft_smooth_render_generic)
-       [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
-       Other minor improvements.
-
-       * src/autofit/aflatin.c: Various tiny improvements that drastically
-       improve the handling of serif fonts and of LCD/LCD_V hinting modes.
-       (af_latin_hints_compute_edges): Fix typo.
-       (af_latin_compute_stem_width): Take better care of diagonal stems.
-
-2006-11-09  David Turner  <david@freetype.org>
-
-       * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
-       typo which created a variable-used-before-initialized bug.
-
-2006-11-07  Zhe Su  <james.su@gmail.com>
-
-       * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
-       also.
-
-2006-11-03  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
-
-2006-11-02  David Turner  <david@freetype.org>
-
-       Add a few tweaks to better handle serif fonts.
-       Add more debugging messages.
-
-       * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
-       segments that are less than 1.5 pixels high.  This gets rid of
-       *many* corner cases with serifs.
-       (af_latin_align_linked_edge): Add logging message.
-       (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
-       Add logging messages.
-       Handle AF_EDGE_FLAG flag specially.
-
-       * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
-       _af_debug_disable_blue_hints, and _af_debug_hints variables.
-
-       * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
-       Update external declarations.
-       (af_corner_orientation, af_corner_is_flat): Replaced by...
-
-       * include/freetype/internal/ftcalc.h (ft_corner_orientation,
-       ft_corner_is_flat): These declarations.
-
-       * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
-       Comment out.  Replaced by...
-
-       * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
-       These functions.  Update all callers.
-       (FT_Add64) [!FT_LONG64]: Simplify.
-
-       * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
-       (af_direction_compute): Add a missing FT_ABS call.  This bug caused
-       production of garbage by missing lots of segments.
-
-       * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
-
-       * src/autofit/afloader.c (af_loader_init, af_loader_done)
-       [AF_DEBUG]: Set _af_debug_hints.
-
-
-       * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
-       (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
-       and ft_corner_orientation.
-
-
-       * src/gzip/inftrees.c (huft_build): Remove compiler warning.
-
-2006-10-24  Werner Lemberg  <wl@gnu.org>
-
-       * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
-
-       * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
-       as argument.
-
-2006-10-23  Zhe Su  <zsu@novell.com>
-
-       * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
-       better deal with broken Asian fonts with strange glyphs, having
-       self-intersections and other peculiarities.  The used algorithm is
-       based on the nonzero winding rule.
-
-2006-10-23  David Turner  <david@freetype.org>
-
-       Speed up the CFF font loader.  With some large CFF fonts,
-       FT_Open_Face is now more than three times faster.
-
-       * src/cff/cffload.c (cff_get_offset): Removed.
-       (cff_new_index): Inline functionality of `cff_get_offset'.
-       (cff_charset_compute_cids, cff_charset_free_cids): New functions.
-       (cff_charset_done): Call `cff_charset_free_cids'.
-       (cff_charset_load): Call `cff_charset_compute_cids'.
-       (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
-
-       * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
-       with FT_NEXT_XXX.
-
-
-       Speed up the Postscript hinter, with more than 100% speed increase
-       on my machine.
-
-       * src/pshinter/pshalgo.c (psh_corner_is_flat,
-       psh_corner_orientation): New functions.
-       (psh_glyph_compute_inflections): Merge loops for efficiency.
-       Use `psh_corner_orientation'.
-       (psh_glyph_init): Use `psh_corner_is_flat'.
-       (psh_hint_table_find_strong_point): Renamed to...
-       (psh_hint_table_find_strong_points): This.
-       Rewrite, adding argument to handle all points at once.
-       Update all callers.
-       (PSH_MAX_STRONG_INTERNAL): New macro.
-       (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
-
-2006-10-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
-       `error' with FT_Err_Ok.
-
-2006-10-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * docs/INSTALL.CROSS: New document file for cross-building.
-
-       * builds/unix/configure.raw: Preliminary cross-building support.
-       Find native C compiler and pass it by CC_BUILD, and
-       find suffix for native executable and pass it by EXEEXT_BUILD.
-       Also suffix for target executable is passed by EXEEXT.
-
-       * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
-       build `apinames' which runs on building system.  They are set by
-       CC_BUILD and EXEEXT_BUILD.
-
-       * builds/exports.mk (APINAMES_EXE): Change the extension for
-       apinames from the suffix for target (E) to that for building host
-       (E_BUILD).
-
-2006-10-12  Werner Lemberg  <wl@gnu.org>
-
-       * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
-       * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This.  Update all documents
-       which reference those files.
-
-2006-10-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable.  It is
-       embedded in freetype2.pc and freetype-config.  Use it to record
-       Carbon dependency of MacOSX.
-
-       * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
-
-       * builds/unix/freetype-config.in: Ditto.
-
-2006-10-11  Werner Lemberg  <wl@gnu.org>
-
-       * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
-       development.
-
-2006-10-03  Jens Claudius  <jens.claudius@yahoo.com>
-
-       * include/freetype/config/ftstdlib.h: Cast away volatileness from
-       argument to ft_setjmp.
-
-       * include/freetype/internal/ftvalid.h: Add comment that
-       ft_validator_run must not be used.
-
-2006-10-01  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/ftbase.c: Undo change from 2006-09-30.
-
-       * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
-
-2006-09-30  David Turner  <david@freetype.org>
-
-       * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
-       s/unpatented_hinting/ignore_unpatented_hinter/.
-       Update all callers.
-
-       * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
-       auto-hinting shall be used or not.
-
-       * src/truetype/ttobjs.c (tt_face_init): Ditto.
-
-2006-09-30  Werner Lemberg  <wl@gnu.org>
-
-       * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
-       in use).
-
-       * src/base/ftbase.c: Include `ftlcdfil.c'.
-
-2006-09-29  Werner Lemberg  <wl@gnu.org>
-
-       * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
-       overlapping segments.  Bug reported by Stefan Koch.
-
-2006-09-28  David Turner  <david@freetype.org>
-
-       Fix a bug in the automatic unpatented hinting support which prevents
-       normal bytecode hinting to work properly.
-
-       * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
-       s/force_autohint/unpatented_hinting/.  Update all callers.
-
-       * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
-
-       * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
-
-2006-09-27  David Turner  <david@freetype.org>
-
-       * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
-
-
-       Add a new API to support color filtering of subpixel glyph bitmaps.
-       In a default build, the function `FT_Library_SetLcdFilter' returns
-       `FT_Err_Unimplemented_Feature'; you need to #define
-       FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
-       real implementation.
-
-       * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
-
-       * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
-       typedef.
-       (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
-       `lcd_filter_weights' and `lcd_filter'.
-
-       * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
-       `hmul' and `vmul'.
-
-       Handle subpixel rendering.
-       Simplify function.
-       (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
-       (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
-
-       * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
-       pointing to <freetype/ftlcdfil.h>.
-
-       * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
-       vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
-
-       * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
-
-2006-09-26  David Bustin
-
-       * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
-       correctly.  Reported as Savannah bug #17843.
-
-2006-09-26  David Turner  <david@freetype.org>
-
-       * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
-       AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
-       horizontal and vertical hinting for the purpose of debugging the
-       auto-fitter.
-
-       * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
-       _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
-
-       * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
-
-       * include/freetype/config/ftoption.h, devel/ftoption.h
-       (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
-       we want to compile LCD-optimized rendering code (à la ClearType) or
-       not.  The macro *must* be disabled in default builds of the library
-       for patent reasons.
-
-       * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
-       LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
-       isn't defined at compile time.  This only changes the content of the
-       rendered glyph to match the one of normal gray-level rendering,
-       hence clients should not need to be modified.
-
-       * docs/CHANGES: Updated.
-
-2006-09-18  Garrick Meeker  <garrick@digitalanarchy.com>
-
-       * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
-       LWFN fails and both are available.
-
-2006-09-11  David Turner  <david@freetype.org>
-
-       * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
-       report their English names through an Apple Roman
-       (platform,encoding) pair, with language_id != English.
-
-       If the font uses another name entry with language_id == English, it
-       will be selected correctly, though.
-
-       * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
-       selection for `mingli.ttf'.
-
-2006-09-05  Werner Lemberg  <wl@gnu.org>
-
-       * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
-       values which have the upper two bytes set to 0xFF instead of 0x00
-       (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
-       `HAN NOM B.ttf').
-
-       * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
-
-2006-09-05  David Turner  <david@freetype.org>
-
-       Minor source cleanups and optimizations.
-
-       * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
-       (TRaster): Remove `count_ex' and `count_ey'.
-       (gray_find_cell): Remove 2nd and 3rd argument.
-       (gray_alloc_cell): Merged with `gray_find_cell'.
-       (gray_record_cell): Simplify.
-       (gray_set_cell): Rewrite.
-       (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
-       (gray_render_span): Don't use FT_MEM_SET for small values.
-       (gray_dump_cells) [DEBUG_GRAYS]: New function.
-       (gray_sweep): Avoid buffer overwrites when to drawing the end of a
-       bitmap scanline.
-       (gray_convert_glyph): Fix speed-up.
-
-2006-09-04  David Turner  <david@freetype.org>
-
-       * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
-       64bit processors.
-
-2006-09-03  Werner Lemberg  <wl@gnu.org>
-
-       * devel/ftoption.h: Synchronize with
-       include/freetype/config/ftoption.h.
-
-       * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
-       variable declaration.
-       (gray_convert_glyph): Fix compiler warnings.
-
-2006-09-01  David Turner  <david@freetype.org>
-
-       * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
-       to recognize a few fonts that require the automatic unpatented
-       loader.
-
-       * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
-       rasterizer.  The speed improvement is between 15% and 25%, depending
-       on the font data.
-
-       (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
-       (TCell): Redefine.
-       (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
-       (gray_init_cells): Updated.
-       (gray_find_cell, gray_alloc_cell): New functions.
-       (gray_record_cell): Rewritten to use `gray_find_cell' and
-       `gray_alloc_cell'.
-       (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
-       QSORT_THRESHOLD):
-       Removed.
-       (gray_shell_sort, gray_quick_sort, gray_check_sort,
-       gray_dump_cells): Removed.
-       (gray_sweep): Rewritten.
-       (gray_convert_glyph): Rewrite code which used one of the sorting
-       functions.
-       (gray_raster_render): Updated.
-
-2006-08-29  Dr. Werner Fink  <werner@suse.de>
-
-       * configure: Make it possible to handle configure options which
-       have strings containing spaces.
-
-2006-08-27  David Turner  <david@freetype.org>
-
-       * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
-       New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-       or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
-
-       * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
-       src/truetype/truetype.c, src/truetype/ttdriver.c,
-       src/truetype/ttgload.c, src/truetype/ttgload.h,
-       src/truetype/ttinterp.c, src/truetype/ttobjs.c,
-       src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
-       s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
-
-       * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
-       member `force_autohint'.
-
-       * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
-
-       * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
-       against a list of font names which need the bytecode interpreter.
-
-2006-08-27  Jens Claudius  <jens.claudius@yahoo.com>
-
-       Fix miscellaneous compiler warnings.
-
-       * include/freetype/internal/ftobjs.h: Close comment with `*/' to
-       avoid `/* in comment' compiler warning.
-
-       * src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
-       `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
-       64-bit platforms void* is larger than FT_UInt32.
-
-       * src/base/ftobjs.c (t_validator_error): Cast away
-       volatileness of argument to ft_longjmp.  Spotted by Werner
-       `Putzfrau' Lemberg.
-
-       * src/bdf/bdflib.c (bdf_load_font): Initialize local
-       variable `lineno'.
-
-       * src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable
-       `error' as volatile.
-
-2006-08-27  Werner Lemberg  <wl@gnu.org>
-
-       * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
-       Reported by Jens.
-
-2006-08-22  Jens Claudius  <jens.claudius@yahoo.com>
-
-       Fix for previous commit, which caused many compiler warnings/errors
-       about addresses of volatile objects passed as function arguments as
-       non-volatile pointers.
-
-       * include/freetype/internal/ftvalid.h: Make FT_Validator typedef a
-       pointer to a volatile object.
-
-       * src/gxvalid/gxvmod.c (gxv_load_table): Make function argument
-       `table' a pointer to a volatile object.
-
-       * src/otvalid/otvmod.c (otv_load_table): Make function argument
-       `table' a pointer to a volatile object.
-
-2006-08-18  Jens Claudius  <jens.claudius@yahoo.com>
-
-       * src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local variable `_sfnt'
-       as volatile since it must keep its value across a call to ft_setjmp.
-       (gxv_validate): Same for local variables `memory' and `valid'.
-       (classic_kern_validate): Same for local variables `memory',
-       `ckern', and `valid'.
-
-       * src/otvalid/otvmod.c (otv_validate): Same for function parameter
-       `face' and local variables `base', `gdef', `gpos', `gsub', `jstf',
-       and 'valid'.
-
-       * src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable
-       `cmap'.
-
-2006-08-16  David Turner  <david@freetype.org>
-
-       * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
-       warnings.
-
-       * src/base/ftobjs.c (ft_validator_run): Disable function; it is
-       buggy by design.  Always return -1.
-
-
-       Improvements to native TrueType hinting.  This is a first try,
-       controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
-
-       * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
-       `extra_points2'.
-
-       * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
-       `orus'.
-
-       * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
-       FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
-       FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
-       handle `extra_points2'.
-
-       * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
-       Remove compiler warning.
-       (cur_to_arg): Remove macro.
-       (TT_Hint_Glyph): Updated.
-       (TT_Process_Simple_Glyph): Handle `orus'.
-
-       * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
-       (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
-       (LOC_Ins_IUP): Renamed to...
-       (IUP_WorkerRec): This.
-       Add `orus' member.
-       (Shift): Renamed to...
-       (_iup_worker_shift): This.
-       Updated.
-       (Interp): Renamed to...
-       (_iup_worker_interpolate): This.
-       Updated to handle `orus'.
-       (Ins_IUP): Updated.
-
-       * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
-       Handle `orus'.
-
-2006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
-       build ftvalid in ft2demos.  This has been inadvertedly changed
-       2006-08-13.
-
-2006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
-
-       `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
-       Jens:
-       http://lists.gnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
-
-       * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'.
-       It reverts the change introduced on 2005-08-20.
-
-       * src/gxvalid/gxvmod.c: Ditto.
-
-2006-08-13  Jens Claudius  <jens.claudius@yahoo.com>
-
-       * finclude/freetype/internal/psaux.h: (T1_TokenType): Add
-       T1_TOKEN_TYPE_KEY.
-       (T1_FieldRec): Add `dict'.
-       (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
-       (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
-       keyword is expected as an additional argument.
-
-       * src/cid/cidload.c: (cid_field_records): Adjust invocations of
-       T1_FIELD_XXX.
-
-       * src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
-
-       * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
-       (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
-       not T1_TOKEN_TYPE_ANY.
-       (ps_parser_load_field): Make sure a token that should be a string or
-       name is really a string or name.
-       Avoid memory leak if a keyword has been already encountered and its
-       value is overwritten.
-       * src/type1/t1load.c: (t1_keywords): Adjust invocations of
-       T1_FIELD_XXX.
-       (parse_dict): Ignore keywords that occur in the wrong dictionary
-       (e.g., in `Private' instead of `FontDict').
-
-       * src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX.
-
-       * src/type42/t42parse.c: (t42_keywords): Adjust invocations of
-       T1_FIELD_XXX.
-
-2006-07-18  Jens Claudius  <jens.claudius@yahoo.com>
-
-       Move creation of field `buildchar' of T1_DecoderRec out of
-       `t1_decoder_init' and let the caller of `t1_decoder_init' take care
-       of it.
-
-       Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
-       and `T1_Compute_Max_Advance'.
-
-       * include/freetype/internal/psaux.h (T1_DecoderRec): Remove field
-       `face', add `len_buildchar'.
-
-       * include/freetype/internal/t1types.h (T1_FaceRec): Add field
-       `buildchar'.
-
-       * src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher
-       for T1_Decoder.
-       (cid_slot_load_glyph): Do not ignore failure when initializing the
-       T1_Decoder.
-
-       * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated.
-       (t1_decoder_init): Remove initialization of fields `buildchar' and
-       `len_buildchar'.
-       (t1_decoder_done): Remove deallocation of field `buildchar'.
-
-       * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
-       T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
-       T1_Decoder.
-       (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
-       `len_buildchar'; make sure to call finisher for T1_Decoder even in
-       case of error.
-
-       * src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar'
-       of T1_FaceRec.
-
-       * src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of
-       T1_FaceRec.
-
-2006-07-14  Jens Claudius  <jens.claudius@yahoo.com>
-
-       * include/freetype/internal/psaux.h: New macros IS_PS_NEWLINE,
-       IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
-       and IS_PS_BASE85 (from src/psaux/psconv.h).
-       (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
-       T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
-       (T1_DecoderRec): New fields `buildchar' and `face'.
-       (IS_PS_TOKEN): New macro.
-
-       * include/freetype/internal/t1types.h (T1_FaceRec): New fields
-       `ndv_idx', `cdv_idx', and `len_buildchar'.
-
-       * include/freetype/t1tables.h (PS_BlendRec): New fields
-       `default_design_vector' and `num_default_design_vector'.
-
-       * src/psaux/psconv.h: Move macros IS_PS_NEWLINE, IS_PS_SPACE,
-       IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, and
-       IS_PS_BASE85 to include/freetype/internal/psaux.h.
-
-       * src/psaux/psobjs.c (ps_parser_to_token_array): Allow `token'
-       argument to be NULL if we want only to count the number of tokens.
-       (ps_tocoordarray): Allow `coords' argument to be NULL if we just
-       want to skip the array.
-       (ps_tofixedarray): Allow `values' argument to be NULL if we just
-       want to skip the array.
-
-       * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support
-       for (partially commented out) othersubrs 19-25, 27, and 28.
-       (t1_decoder_init): Initialize new fields `face' and `buildchar'.
-       (t1_decoder_done): Release new field `buildchar'.
-
-       * src/type1/t1load.c (parse_buildchar, parse_private): New
-       functions.
-       (t1_keywords): Register them.
-       (t1_allocate_blend): Updated.
-       (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
-       T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
-       (parse_dict): Remove `keyword_flags' argument.
-       Use new macro IS_PS_TOKEN.
-       Changed function so that later PostScript definitions override
-       earlier ones.
-       (t1_init_loader): Initialize new field `keywords_encountered'.
-       (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
-       `len_buildchar'.
-       Remove `keywords_flags'.
-
-       * src/type1/t1load.h (T1_LoaderRect): New field
-       `keywords_encountered'.
-       (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
-
-       * src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New
-       entries for parsing /NDV, /CDV, and /DesignVector.
-
-2006-07-07  Werner Lemberg  <wl@gnu.org>
-
-       Add many checks to protect against malformed PCF files.
-
-       * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
-       (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
-
-       * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
-       data and check that tables don't overlap (using a simple
-       bubblesort).
-       (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
-       New macros which give the size of data structures in the data
-       stream.
-       (pcf_get_properties): Use rough estimates to get array size limits.
-       Assign `face->nprops' and `face->properties' earlier so that a call
-       to PCF_Face_Done can do the clean-up in case of error.
-       Protect against invalid string offsets.
-       (pcf_get_metrics): Clean up code.
-       Adjust tracing message levels.
-       Use rough estimate to get array size limit.
-       (pcf_get_bitmaps): Clean up code.
-       Adjust tracing message levels.
-