Project import
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..908adf7
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,130 @@
+#
+# Copyright (c) 2010-2012 Nest Labs, Inc.
+# All rights reserved.
+#
+# This document is the property of Nest. It is considered
+# confidential and proprietary information.
+#
+# This document may not be reproduced or transmitted in any form,
+# in whole or in part, without the express written permission of
+# Nest.
+#
+# Description:
+# This file is the makefile for freetype, a free, high-quality,
+# and portable font engine.
+#
+
+BuildConfigSpecialized := No
+BuildProductSpecialized := Yes
+
+include pre.mak
+
+PackageName := freetype
+
+PackageExtension := tar.bz2
+PackageSeparator := -
+
+PackagePatchArgs := -p1
+
+PackageArchive := $(PackageName).$(PackageExtension)
+PackageSourceDir := $(PackageName)$(PackageSeparator)$(PackageVersion)
+
+PackageBuildMakefile = $(call GenerateBuildPaths,Makefile)
+
+CleanPaths += $(PackageLicenseFile)
+
+all: $(PackageDefaultGoal)
+
+# Generate the package license contents.
+
+$(PackageSourceDir)/docs/LICENSE.TXT: source
+
+$(PackageLicenseFile): $(PackageSourceDir)/docs/LICENSE.TXT
+ $(copy-result)
+
+# Extract the source from the archive and apply patches, if any.
+
+$(PackageSourceDir): $(PackageArchive) $(PackagePatchPaths)
+ $(expand-and-patch-package)
+
+# Prepare the sources.
+
+.PHONY: source
+source: | $(PackageSourceDir)
+
+# Patch the sources, if necessary.
+
+.PHONY: patch
+patch: source
+
+# Generate the package build makefile.
+#
+# Freetype is NOT a good non-colocated source and build directory
+# citizen. If you do not specify --srcdir, freetype will smash this
+# make file and litter this directory with a number of build objects
+# we do not want there.
+
+$(PackageBuildMakefile): | $(PackageSourceDir) $(BuildDirectory)
+ $(Verbose)cd $(BuildDirectory) && \
+ $(CURDIR)/$(PackageSourceDir)/configure \
+ CC="$(CC)" CXX="$(CXX)" AR=$(AR) RANLIB=$(RANLIB) STRIP=$(STRIP) \
+ INSTALL="$(INSTALL) $(INSTALLFLAGS)" \
+ CPPFLAGS="$(CPPOPTFLAGS)" \
+ --srcdir=$(CURDIR)/$(PackageSourceDir) \
+ --build=$(HostTuple) \
+ --host=$(TargetTuple) \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --without-harfbuzz \
+ --without-png \
+ --without-zlib \
+ --without-bzip2 \
+ --disable-static
+
+# Configure the source for building.
+
+.PHONY: configure
+configure: source $(PackageBuildMakefile)
+
+# Build the source.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+
+.PHONY: build
+build: configure
+ $(Verbose)unset MAKEFLAGS && \
+ $(MAKE) $(JOBSFLAG) -C $(BuildDirectory) all
+
+# Stage the build to a temporary installation area.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+#
+# We explictly remove 'libfreetype.la' because some packages that depend
+# on libfreetype use libtool. If libtool finds a '*.la' file for a
+# library, it uses the value of 'libdir=<dir>' it finds. In our case,
+# since '--prefix=/usr' this value is '/usr/lib'. It then resolves
+# '-lfreetype' to '/usr/lib/libfreetype.so'. In a cross-compilation
+# environment, this is likely to be neither the right architecture nor
+# the right version to link against. In short, we lose.
+#
+# We could also handle this by removing DESTDIR and setting the prefix
+# to $(ResultDirectory); however, that results in libtool hard-coding
+# $(ResultDirectory) as the RPATH in the linked executables which is
+# NOT what we want either. We lose again.
+#
+# By removing the '*.la' file, we win by ensuring neither a misdirected
+# link nor an RPATH.
+
+.PHONY: stage
+stage: build | $(ResultDirectory)
+ $(Verbose)unset MAKEFLAGS && \
+ $(MAKE) $(JOBSFLAG) -C $(BuildDirectory) DESTDIR=$(ResultDirectory) install
+ $(Verbose)$(RM) $(RMFLAGS) $(call GenerateResultPaths,,usr/lib/libfreetype.la)
+
+clean:
+ $(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir)
+ $(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory)
+ $(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory)
+
+include post.mak
diff --git a/freetype-2.6/CMakeLists.txt b/freetype-2.6/CMakeLists.txt
new file mode 100644
index 0000000..6631fde
--- /dev/null
+++ b/freetype-2.6/CMakeLists.txt
@@ -0,0 +1,253 @@
+# CMakeLists.txt
+#
+# Copyright 2013-2015 by
+# David Turner, Robert Wilhelm, and Werner Lemberg.
+#
+# Written by John Cary <cary@txcorp.com>
+#
+# This file is part of the FreeType project, and may only be used, modified,
+# and distributed under the terms of the FreeType project license,
+# LICENSE.TXT. By continuing to use, modify, or distribute this file you
+# indicate that you have read the license and understand and accept it
+# fully.
+#
+#
+# Say
+#
+# cmake CMakeLists.txt
+#
+# to create a Makefile that builds a static version of the library.
+#
+# For a dynamic library, use
+#
+# cmake CMakeLists.txt -DBUILD_SHARED_LIBS:BOOL=true
+#
+# For a framework on OS X, use
+#
+# cmake CMakeLists.txt -DBUILD_FRAMEWORK:BOOL=true -G Xcode
+#
+# instead.
+#
+# For an iOS static library, use
+#
+# cmake CMakeLists.txt -DIOS_PLATFORM=OS -G Xcode
+#
+# or
+#
+# cmake CMakeLists.txt -DIOS_PLATFORM=SIMULATOR -G Xcode
+#
+# Please refer to the cmake manual for further options, in particular, how
+# to modify compilation and linking parameters.
+#
+# Some notes.
+#
+# . `cmake' will overwrite FreeType's original (top-level) `Makefile' file.
+#
+# . You can use `cmake' directly on a freshly cloned FreeType git
+# repository.
+#
+# . `CMakeLists.txt' is provided as-is since it is not used by the
+# developer team.
+
+
+cmake_minimum_required(VERSION 2.6)
+
+# CMAKE_TOOLCHAIN_FILE must be set before `project' is called, which
+# configures the base build environment and references the toolchain file
+if (APPLE)
+ if (DEFINED IOS_PLATFORM)
+ if (NOT "${IOS_PLATFORM}" STREQUAL "OS"
+ AND NOT "${IOS_PLATFORM}" STREQUAL "SIMULATOR")
+ message(FATAL_ERROR
+ "IOS_PLATFORM must be set to either OS or SIMULATOR")
+ endif ()
+ if (NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode")
+ message(AUTHOR_WARNING
+ "You should use Xcode generator with IOS_PLATFORM enabled to get Universal builds.")
+ endif ()
+ if (BUILD_SHARED_LIBS)
+ message(FATAL_ERROR
+ "BUILD_SHARED_LIBS can not be on with IOS_PLATFORM enabled")
+ endif ()
+ if (BUILD_FRAMEWORK)
+ message(FATAL_ERROR
+ "BUILD_FRAMEWORK can not be on with IOS_PLATFORM enabled")
+ endif ()
+
+ # iOS only uses static libraries
+ set(BUILD_SHARED_LIBS OFF)
+
+ set(CMAKE_TOOLCHAIN_FILE
+ ${PROJECT_SOURCE_DIR}/builds/cmake/iOS.cmake)
+ endif ()
+else ()
+ if (DEFINED IOS_PLATFORM)
+ message(FATAL_ERROR "IOS_PLATFORM is not supported on this platform")
+ endif ()
+endif ()
+
+project(freetype)
+
+if (BUILD_FRAMEWORK)
+ if (NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode")
+ message(FATAL_ERROR
+ "You should use Xcode generator with BUILD_FRAMEWORK enabled")
+ endif ()
+ set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_64_BIT)")
+ set(BUILD_SHARED_LIBS ON)
+endif ()
+
+set(VERSION_MAJOR "2")
+set(VERSION_MINOR "6")
+set(VERSION_PATCH "0")
+set(PROJECT_VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH})
+
+# Compiler definitions for building the library
+add_definitions(-DFT2_BUILD_LIBRARY)
+
+# Specify library include directories
+include_directories("${PROJECT_SOURCE_DIR}/include")
+
+# Create the configuration file
+message(STATUS "Creating directory, ${PROJECT_BINARY_DIR}/include/freetype2.")
+file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/include/freetype2)
+
+# For the auto-generated ftconfig.h file
+include_directories(BEFORE "${PROJECT_BINARY_DIR}/include/freetype2")
+message(STATUS "Creating ${PROJECT_BINARY_DIR}/include/freetype2/ftconfig.h.")
+execute_process(
+ COMMAND sed -e "s/FT_CONFIG_OPTIONS_H/<ftoption.h>/" -e "s/FT_CONFIG_STANDARD_LIBRARY_H/<ftstdlib.h>/" -e "s?/undef ?#undef ?"
+ INPUT_FILE ${PROJECT_SOURCE_DIR}/builds/unix/ftconfig.in
+ OUTPUT_FILE ${PROJECT_BINARY_DIR}/include/freetype2/ftconfig.h
+)
+
+file(GLOB PUBLIC_HEADERS "include/*.h")
+file(GLOB PUBLIC_CONFIG_HEADERS "include/config/*.h")
+file(GLOB PRIVATE_HEADERS "include/internal/*.h")
+
+set(BASE_SRCS
+ src/autofit/autofit.c
+ src/base/ftadvanc.c
+ src/base/ftbbox.c
+ src/base/ftbdf.c
+ src/base/ftbitmap.c
+ src/base/ftcalc.c
+ src/base/ftcid.c
+ src/base/ftdbgmem.c
+ src/base/ftdebug.c
+ src/base/ftfntfmt.c
+ src/base/ftfstype.c
+ src/base/ftgasp.c
+ src/base/ftgloadr.c
+ src/base/ftglyph.c
+ src/base/ftgxval.c
+ src/base/ftinit.c
+ src/base/ftlcdfil.c
+ src/base/ftmm.c
+ src/base/ftobjs.c
+ src/base/ftotval.c
+ src/base/ftoutln.c
+ src/base/ftpatent.c
+ src/base/ftpfr.c
+ src/base/ftrfork.c
+ src/base/ftsnames.c
+ src/base/ftstream.c
+ src/base/ftstroke.c
+ src/base/ftsynth.c
+ src/base/ftsystem.c
+ src/base/fttrigon.c
+ src/base/fttype1.c
+ src/base/ftutil.c
+ src/base/ftwinfnt.c
+ src/bdf/bdf.c
+ src/bzip2/ftbzip2.c
+ src/cache/ftcache.c
+ src/cff/cff.c
+ src/cid/type1cid.c
+ src/gzip/ftgzip.c
+ src/lzw/ftlzw.c
+ src/pcf/pcf.c
+ src/pfr/pfr.c
+ src/psaux/psaux.c
+ src/pshinter/pshinter.c
+ src/psnames/psmodule.c
+ src/raster/raster.c
+ src/sfnt/sfnt.c
+ src/smooth/smooth.c
+ src/truetype/truetype.c
+ src/type1/type1.c
+ src/type42/type42.c
+ src/winfonts/winfnt.c
+)
+
+include_directories("src/truetype")
+include_directories("src/sfnt")
+include_directories("src/autofit")
+include_directories("src/smooth")
+include_directories("src/raster")
+include_directories("src/psaux")
+include_directories("src/psnames")
+
+if (BUILD_FRAMEWORK)
+ set(BASE_SRCS
+ ${BASE_SRCS}
+ builds/mac/freetype-Info.plist
+ )
+endif ()
+
+add_library(freetype
+ ${PUBLIC_HEADERS}
+ ${PUBLIC_CONFIG_HEADERS}
+ ${PRIVATE_HEADERS}
+ ${BASE_SRCS}
+)
+
+if (BUILD_FRAMEWORK)
+ set_property(SOURCE ${PUBLIC_CONFIG_HEADERS}
+ PROPERTY MACOSX_PACKAGE_LOCATION Headers/config
+ )
+ set_target_properties(freetype PROPERTIES
+ FRAMEWORK TRUE
+ MACOSX_FRAMEWORK_INFO_PLIST builds/mac/freetype-Info.plist
+ PUBLIC_HEADER "${PUBLIC_HEADERS}"
+ XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
+ )
+endif ()
+
+# Installations
+# Note the trailing slash in the argument to the `DIRECTORY' directive
+install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/
+ DESTINATION include/freetype2
+ PATTERN "internal" EXCLUDE
+)
+install(TARGETS freetype
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ FRAMEWORK DESTINATION Library/Frameworks
+)
+
+# Packaging
+# CPack version numbers for release tarball name.
+set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
+set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
+set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH}})
+if (NOT DEFINED CPACK_PACKAGE_DESCRIPTION_SUMMARY)
+ set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${CMAKE_PROJECT_NAME}")
+endif ()
+if (NOT DEFINED CPACK_SOURCE_PACKAGE_FILE_NAME)
+ set(CPACK_SOURCE_PACKAGE_FILE_NAME
+ "${CMAKE_PROJECT_NAME}-${PROJECT_VERSION}-r${PROJECT_REV}"
+ CACHE INTERNAL "tarball basename"
+ )
+endif ()
+set(CPACK_SOURCE_GENERATOR TGZ)
+set(CPACK_SOURCE_IGNORE_FILES
+ "/CVS/;/.svn/;.swp$;.#;/#;/build/;/serial/;/ser/;/parallel/;/par/;~;/preconfig.out;/autom4te.cache/;/.config")
+set(CPACK_GENERATOR TGZ)
+include(CPack)
+
+# add make dist target
+add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
+
+# eof
diff --git a/freetype-2.6/ChangeLog b/freetype-2.6/ChangeLog
new file mode 100644
index 0000000..fea19b9
--- /dev/null
+++ b/freetype-2.6/ChangeLog
@@ -0,0 +1,6796 @@
+2015-06-07 Werner Lemberg <wl@gnu.org>
+
+ * Version 2.6 released.
+ =======================
+
+
+ Tag sources with `VER-2-6'.
+
+ * docs/VERSION.DLL: Update documentation and bump version number to
+ 2.6.
+
+ * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
+ builds/windows/vc2005/index.html,
+ builds/windows/vc2008/freetype.vcproj,
+ builds/windows/vc2008/index.html,
+ builds/windows/vc2010/freetype.vcxproj,
+ builds/windows/vc2010/index.html,
+ builds/windows/visualc/freetype.dsp,
+ builds/windows/visualc/freetype.vcproj,
+ builds/windows/visualc/index.html,
+ builds/windows/visualce/freetype.dsp,
+ builds/windows/visualce/freetype.vcproj,
+ builds/windows/visualce/index.html,
+ builds/wince/vc2005-ce/freetype.vcproj,
+ builds/wince/vc2005-ce/index.html,
+ builds/wince/vc2008-ce/freetype.vcproj,
+ builds/wince/vc2008-ce/index.html: s/2.5.5/2.6/, s/255/26/.
+
+ * include/freetype/freetype.h (FREETYPE_MINOR): Set to 6.
+ (FREETYPE_PATCH): Set to 0.
+
+ * builds/unix/configure.raw (version_info): Set to 18:0:12.
+ * CMakeLists.txt (VERSION_MINOR): Set to 0.
+ (VERSION_PATCH): Set to 6.
+
+ * src/autofit/afmodule.c [!FT_MAKE_OPTION_SINGLE_OBJECT]: Add
+ declarations for dumping functions.
+
+ * src/truetype/ttinterp.c (TT_New_Context): Pacify compiler.
+
+ * builds/toplevel.mk: Use `freetype.mk's code to compute the version
+ string.
+ Don't include a zero patch level in version string.
+ * builds/freetype.mk: Remove code for computing the version string.
+
+2015-06-06 Ashish Azad <ashish.azad@samsung.com>
+
+ Fix Savannah bug #45260.
+
+ * src/pfr/pfrdrivr.c (pfr_get_kerning): Fix typo.
+
+2015-06-03 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Fix memory leak.
+
+ Problem reported by Grissiom <chaos.proton@gmail.com>; in
+
+ http://lists.nongnu.org/archive/html/freetype/2015-05/msg00013.html
+
+ there is an example code to trigger the bug.
+
+ * src/truetype/ttobjs.c (tt_size_init_bytecode): Free old `size'
+ data before allocating again. Bug most probably introduced four
+ years ago in version 2.4.3.
+
+2015-06-02 Werner Lemberg <wl@gnu.org>
+
+ [raster] Add more tracing.
+
+ * src/raster/ftraster.c (FT_TRACE7) [_STANDALONE_]: Define.
+ (Vertical_Sweep_Span, Vertical_Sweep_Drop, Horizontal_Sweep_Span,
+ Horizontal_Sweep_Drop, Render_Glyph): Add tracing calls.
+
+2015-06-01 Werner Lemberg <wl@gnu.org>
+
+ [truetype] While tracing opcodes, show code position and stack.
+
+ * src/truetype/ttinterp.c: Change all existing TRACE7 calls to
+ TRACE6.
+ (opcode_name): Add string lengths.
+ (TT_RunIns): Implement display of code position and stack.
+
+2015-05-31 Werner Lemberg <wl@gnu.org>
+
+ [truetype] In GX, make private point numbers work correctly.
+
+ This is completely missing in Apple's documentation: If a `gvar'
+ tuple uses private point numbers (this is, deltas are specified for
+ some points only), the uncovered points must be interpolated for
+ this tuple similar to the IUP bytecode instruction. Examples that
+ need this functionality are glyphs `Oslash' and `Q' in Skia.ttf.
+
+ * src/truetype/ttgxvar.c (tt_delta_shift, tt_delta_interpolate,
+ tt_handle_deltas): New functions.
+ (TT_Vary_Get_Glyph_Deltas): Renamed to...
+ (TT_Vary_Apply_Glyph_Deltas): ... this; it directly processes the
+ points and does no longer return an array of deltas.
+ Add tracing information.
+ Call `tt_handle_deltas' to interpolate missing deltas.
+ Also fix a minor memory leak in case of error.
+
+ * src/truetype/ttgxvar.h: Updated.
+
+ * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
+ load_truetype_glyph): Updated.
+
+2015-05-31 Werner Lemberg <wl@gnu.org>
+
+ [truetype] In GX, make intermediate tuplets work at extrema.
+
+ * src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix range condition.
+
+2015-05-31 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Add tracing information to GX code.
+
+ * src/truetype/ttgxvar.c (ft_var_load_avar, ft_var_load_gvar,
+ ft_var_apply_tuple, TT_Get_MM_Var, TT_Set_MM_Blend,
+ TT_Set_Var_Design, tt_face_vary_cvt): Do it.
+
+2015-05-28 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/apinames.c (names_dump): Fix invalid reference.
+
+ Problem reported by Guzman Mosqueda, Jose R
+ <jose.r.guzman.mosqueda@intel.com>.
+
+2015-05-24 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Fix commit from 2015-05-22.
+
+ * src/truetype/ttgload.c, src/truetype/ttinterp.c: Guard new code
+ with `TT_CONFIG_OPTION_SUBPIXEL_HINTING'.
+
+ Problem reported by Nikolaus Waxweiler <madigens@gmail.com>.
+
+2015-05-23 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Fix return values of GETINFO bytecode instruction.
+
+ * src/truetype/ttinterp.h (TT_ExecContextRec): New fields
+ `vertical_lcd' and `gray_cleartype'.
+
+ * src/truetype/ttgload.c (tt_loader_init): Initialize new fields.
+ Change `symmetrical smoothing' to TRUE, since FreeType produces
+ exactly this.
+
+ * src/truetype/ttinterp.c (Ins_GETINFO): Fix selector/return bit
+ values for symmetrical smoothing, namely 11/18.
+ Handle bits for vertical LCD subpixels (8/15) and Gray ClearType
+ (12/19).
+
+2015-05-23 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Minor.
+
+ * src/truetype/ttinterp.h (TT_ExecContext):
+ s/subpixel/subpixel_hinting.
+
+ * src/truetype/ttgload.c, src/truetype/ttgload.h: Updated.
+
+2015-05-22 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Support selector index 3 of the INSTCTRL instruction.
+
+ This flag activates `native ClearType hinting', disabling backwards
+ compatibility mode as described in Greg Hitchcocks whitepaper. In
+ other words, it enables unrestricted functionality of all TrueType
+ instructions in ClearType.
+
+ * src/truetype/ttgload.c (tt_get_metrics): Call `sph_set_tweaks'
+ unconditionally.
+ (tt_loader_init): Unset `ignore_x_mode' flag if bit 2 of
+ `GS.instruct_control' is active.
+
+ * src/truetype/ttinterp.c (Ins_INSTCTRL): Handle selector index 3.
+ (Ins_GETINFO): Updated.
+
+ * docs/CHANGES: Document it.
+
+2015-05-20 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Minor.
+
+ * src/truetype/ttinterp.h (SetSuperRound): Fix type of `GridPeriod'
+ argument.
+
+2015-05-17 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Fix loading of composite glyphs.
+
+ * src/truetype/ttgload.c (TT_Load_Composite_Glyph): If the
+ ARGS_ARE_XY_VALUES flag is not set, handle argument values as
+ unsigned. I trust `ttx' (which has exactly such code) that it does
+ the right thing here...
+
+ The reason that noone has ever noticed this bug is probably the fact
+ that point-aligned subglyphs are rare, as are subglyphs with a
+ number of points in the range [128;255], which is quite large (or
+ even in the range [32768;65535], which is extremely unlikely).
+
+2015-05-12 Chris Liddell <chris.liddell@artifex.com>
+
+ [cff] Make the `*curveto' operators more tolerant.
+
+ * src/cff/cf2intrp.c (cf2_interpT2CharString): The opcodes
+ `vvcurveto', `hhcurveto', `vhcurveto', and `hvcurveto' all iterate,
+ pulling values off the stack until the stack is exhausted.
+ Implicitly the stack must be a multiple (or for subtly different
+ behaviour) a multiple plus a specific number of extra values deep.
+ If that's not the case, enforce it (as the old code did).
+
+2015-05-12 Chris Liddell <chris.liddell@artifex.com>
+
+ [cff] fix incremental interface with new cff code.
+
+ * src/cff/cf2ft.c (cf2_getSeacComponent): When using the incremental
+ interface to retrieve glyph data for a SEAC, it be left to the
+ incremental interface callback to apply the encoding to raw
+ character index (as it was in the previous code).
+
+2015-04-29 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [autofit] Speed up IUP.
+
+ * src/autofit/afhints.c (af_iup_interp): Separate trivial snapping to
+ the same position from true interpolation, use `scale' to reduce
+ divisions.
+
+2015-04-28 Werner Lemberg <wl@gnu.org>
+
+ [cff] Use `name' table for PS name if we have a SFNT-CFF.
+
+ This follows the OpenType 1.7 specification. See
+
+ http://tug.org/pipermail/tex-live/2015-April/036634.html
+
+ for a discussion.
+
+ * src/cff/cffdrivr.c (cff_get_ps_name): Use the `sfnt' service if we
+ have an SFNT.
+
+2015-04-27 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [truetype] Speed up IUP.
+
+ * src/truetype/ttinterp.c (_iup_worker_interpolate): Separate trivial
+ snapping to the same position from true interpolation.
+
+2015-04-21 Werner Lemberg <wl@gnu.org>
+
+ [autofit] By default, enable warping code but switch off warping.
+
+ Suggested by Behdad.
+
+ * include/config/ftoption.h: Define AF_CONFIG_OPTION_USE_WARPER.
+
+ * src/autofit/afmodule.c (af_autofitter_init): Initialize `warping'
+ with `false'.
+
+2015-04-21 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2015-04-21 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Introduce `warping' property.
+
+ This code replaces the debugging hook from the previous commit with
+ a better, more generic solution.
+
+ * include/ftautoh.h: Document it.
+
+ * src/autofit/afmodule.h (AF_ModuleRec)
+ [AF_CONFIG_OPTION_USE_WARPER]: Add `warping' field.
+
+ * src/autofit/afmodule.c (_af_debug_disable_warper): Remove.
+ (af_property_set, af_property_get, af_autofitter_init)
+ [AF_CONFIG_OPTION_USE_WARPER]: Handle `warping' option.
+
+ * src/autofit/afhints.h (AF_HINTS_DO_WARP): Remove use of the no
+ longer existing `_af_debug_disable_warper'.
+
+ * src/autofit/afcjk.c (af_cjk_hints_init), src/autofit/aflatin.c
+ (af_latin_hints_init), src/autofit/aflatin2.c (af_latin2_hints_init)
+ [AF_CONFIG_OPTION_USE_WARPER]: Add `AF_SCALER_FLAG_NO_WARPER' to the
+ scaler flags if warping is off.
+
+ * src/autofit/aftypes.h: Updated.
+
+2015-04-16 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Add debugging hook to disable warper.
+
+ * src/autofit/afmodule.c (_af_debug_disable_warper)
+ [FT_DEBUG_AUTOFIT]: New global variable.
+
+ * src/autofit/aftypes.h: Updated.
+ (AF_SCALER_FLAG_NO_WARPER): New macro (not actively used yet).
+
+ * src/autofit/afhints.h (AF_HINTS_DO_WARP): New macro.
+
+ * src/autofi/aflatin.c (af_latin_hints_apply)
+ [AF_CONFIG_OPTION_USE_WARPER]: Use `AF_HINTS_DO_WARP' to control use
+ of warper.
+
+ * src/autofit/afcjk.c (af_cjk_hints_init, af_cjk_hints_apply)
+ [AF_CONFIG_OPTION_USE_WARPER]: Synchronize with `aflatin.c'.
+
+ * src/autofit/aflatin2.c (af_latin2_hints_apply)
+ [AF_CONFIG_OPTION_USE_WARPER]: Synchronize with `aflatin.c'.
+
+2015-04-10 Werner Lemberg <wl@gnu.org>
+
+ [cff] Update advance width handling to OpenType 1.7.
+
+ Problem reported by Behdad.
+
+ * src/cff/cffdrivr.c (cff_get_advances): Handle SFNT case
+ separately.
+
+ * src/cff/cffgload.c (cff_slot_load): Use advance width and side
+ bearing values from `hmtx' table if present.
+
+2015-04-03 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/autofit/afhints.c (af_glyph_hints_reload): Use do-while loop.
+
+2015-04-02 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/autofit/aflatin.c (af_latin_hint_edges): Reduce logic.
+
+2015-04-01 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [autofit] Finish the thought.
+
+ * src/autofit/afhints.c (af_direction_compute): make sure the long arm
+ is never negative so that its `FT_ABS' is not necessary.
+
+2015-04-01 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Call dumper functions for tracing.
+
+ * src/autofit/afcjk.c (af_cjk_hints_apply): Remove dead code.
+ * src/autofit/afhints.c (af_glyph_hints_dump_points): Minor
+ improvement.
+ * src/autofit/afmodule.c (af_autofitter_load_glyph): Implement it.
+
+2015-04-01 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Make debugging stuff work again.
+
+ The interface to ftgrid was broken in the series of commits starting
+ with
+
+ [autofit] Allocate AF_Loader on the stack instead of AF_Module.
+
+ from 2015-01-14.
+
+ * src/autofit/afmodule.c (_af_debug_hints_rec) [FT_DEBUG_AUTOFIT]:
+ Use a global AF_GlyphHintsRec object for debugging.
+ (af_autofitter_done, af_autofitter_load_glyph): Updated.
+
+ * src/autofit/afloader.c (af_loader_init, af_loader_done): Updated.
+
+2015-04-01 Werner Lemberg <wl@gnu.org>
+
+ * src/autofit/afhints.c (af_glyph_hints_done): Fix minor thinko.
+
+2015-03-29 Werner Lemberg <wl@gnu.org>
+
+ [cff] Fix Savannah bug #44629.
+
+ * src/cff/cf2font.h (CF2_MAX_SUBR), src/cff/cffgload.h
+ (CFF_MAX_SUBRS_CALLS): Set to 16.
+
+2015-03-29 Werner Lemberg <wl@gnu.org>
+
+ [type1, truetype] Make the MM API more flexible w.r.t. `num_coords'.
+
+ This commit allows `num_coords' to be larger or smaller than the
+ number of available axes while selecting a design instance, either
+ ignoring excess data or using defaults if data is missing.
+
+ * src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design):
+ Implement it.
+
+ * src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design,
+ T1_Set_Var_Design): Ditto.
+
+2015-03-29 Werner Lemberg <wl@gnu.org>
+
+ [type1] Minor.
+
+ * src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design): Use
+ FT_THROW.
+ (T1_Set_Var_Design): Use T1_MAX_MM_AXIS and FT_THROW.
+
+2015-03-27 Werner Lemberg <wl@gnu.org>
+
+ [cff] Trace charstring nesting levels.
+
+ * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdCALLGSUBR,
+ cf2_cmdCALLSUBR, cf2_cmdRETURN>: Implement it.
+
+ * src/cff/cffgload.c (cff_decoder_parse_charstrings)
+ <cff_op_callsubr, cff_op_callgsubr, cff_op_return>: Ditto.
+
+2015-03-21 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Optimize `FT_Angle_Diff'.
+
+ Under normal circumstances we are usually close to the desired range
+ of angle values, so that the remainder is not really necessary.
+
+ * src/base/fttrigon.c (FT_Angle_Diff): Use loops instead of remainder.
+
+ * src/autofit/aftypes.h (AF_ANGLE_DIFF): Ditto in the unused macro.
+
+2015-03-21 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Improve `gvar' handling.
+
+ * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Correctly handle
+ single-element runs. Cf. glyph `Q' in Skia.ttf with weights larger
+ than the default.
+
+2015-03-20 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/fttrigon.c (FT_Vector_Rotate): Minor refactoring.
+
+2015-03-17 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ Fix Savannah bug #44412 (part 2).
+
+ * src/base/fttrigon.c (FT_Sin, FT_Cos, FT_Tan): Call `FT_Vector_Unit'.
+
+2015-03-11 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Add support for Arabic script.
+
+ Thanks to Titus Nemeth <tn@tntypography.eu> for guidance!
+
+ * src/autofit/afblue.dat: Add blue zone data for Arabic.
+
+ * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+ * src/autofit/afscript.h: Add Arabic standard characters.
+
+ * src/autofit/afranges.c: Add Arabic data.
+
+ * src/autofit/afstyles.h: Add Arabic data.
+
+ * docs/CHANGES: Document it.
+
+2015-03-11 Werner Lemberg <wl@gnu.org>
+
+ Rename `svxf86nm.h' to `svfntfmt.h'; update related symbols.
+
+ * include/internal/ftserv.h (FT_SERVICE_XFREE86_NAME_H): Renamed
+ to...
+ (FT_SERVICE_FONT_FORMAT_H): This.
+
+ * include/internal/services/svfntfmt.h (FT_XF86_FORMAT_*): Renamed
+ to ...
+ (FT_FONT_FORMAT_*): This.
+
+ src/base/ftfntfmt.c, src/bdf/bdfdrivr.c, src/cff/cffdrivr.c,
+ src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c,
+ src/truetype/ttdriver.c, src/type1/t1driver.c,
+ src/type42/t42drivr.c, src/winfonts/winfnt.c: Updated.
+
+2015-03-11 Werner Lemberg <wl@gnu.org>
+
+ [base] Rename `FT_XFREE86_H' to `FT_FONT_FORMATS_H'.
+
+ * include/config/ftheader.h: Implement it.
+ * src/base/ftfntfmt.c, docs/CHANGES: Updated.
+
+2015-03-11 Werner Lemberg <wl@gnu.org>
+
+ [base] Rename `FT_Get_X11_Font_Format' to `FT_Get_Font_Format'.
+
+ * include/ftfntfmt.h, src/base/ftfntfmt.c: Implement it.
+
+ * docs/CHANGES: Updated.
+
+2015-03-11 Werner Lemberg <wl@gnu.org>
+
+ Fix automatic copyright updating.
+
+ * src/tools/update-copyright: Make scanning of `no-copyright'
+ actually work.
+
+ * src/tools/no-copyright: Don't include README in general.
+
+2015-03-11 Werner Lemberg <wl@gnu.org>
+
+ Rename `ftxf86.[ch]' to `ftfntfmt.[ch]'.
+
+ CMakeLists.txt, builds/amiga/makefile, builds/amiga/makefile.os4,
+ builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt,
+ builds/mac/FreeType.m68k_far.make.txt,
+ builds/mac/FreeType.ppc_carbon.make.txt,
+ builds/mac/FreeType.ppc_classic.make.txt, builds/symbian/bld.inf,
+ builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj,
+ builds/wince/vc2008-ce/freetype.vcproj,
+ builds/windows/vc2005/freetype.vcproj,
+ builds/windows/vc2008/freetype.vcproj,
+ builds/windows/vc2010/freetype.vcxproj,
+ builds/windows/vc2010/freetype.vcxproj.filters,
+ builds/windows/visualc/freetype.dsp,
+ builds/windows/visualc/freetype.vcproj,
+ builds/windows/visualce/freetype.dsp,
+ builds/windows/visualce/freetype.vcproj, docs/INSTALL.ANY,
+ include/config/ftheader.h, include/ftfntfmt.h, modules.cfg,
+ src/base/ftfntfmt.c, vms_make.com: Updated.
+
+2015-03-10 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ Fix Savannah bug #44412 (part 1).
+
+ * src/base/ftstroke.c (ft_stroker_inside): Handle near U-turns.
+
+2015-03-10 Werner Lemberg <wl@gnu.org>
+
+ [base] Rename `FT_Bitmap_New' to `FT_Bitmap_Init'.
+
+ * include/ftbitmap.h, src/base/ftbitmap.c: Implement it.
+ Update all callers.
+
+ * docs/CHANGES: Updated.
+
+2015-03-06 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning.
+
+ Found by Alexei.
+
+2015-03-05 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftstroke.c: Simplify.
+
+2015-03-04 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Some fixes and code refactoring in `ttgxvar.c'.
+
+ * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Fix return value
+ of `point_cnt' if two bytes are read.
+ Use a more vertical coding style.
+ (ft_var_readpackeddeltas): Use FT_UInt for `delta_cnt' parameter.
+ Use a more vertical coding style.
+
+2015-03-03 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix Savannah bug #44241.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_blues): Reject glyphs
+ with less than 3 points.
+
+2015-03-02 Werner Lemberg <wl@gnu.org>
+
+ Simplify `TYPEOF' macro.
+
+ No need for two arguments.
+
+ * include/config/ftconfig.h, builds/unix/ftconfig.in,
+ builds/vms/ftconfig.h (TYPEOF): Updated.
+
+ * include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
+ src/autofit/afwarp.h (AF_WARPER_FLOOR): Updated.
+
+2015-03-01 Werner Lemberg <wl@gnu.org>
+
+ Various compiler warning fixes for `make multi'.
+
+ * src/autofit/afcjk.c (af_cjk_hints_compute_blue_edges),
+ src/autofit/aflatin.c (af_latin_hint_compute_blue_edges,
+ af_latin_hint_edges), src/autofit/aflatin2.c
+ (af_latin2_hints_compute_blue_edges, af_latin2_hint_edges): Declare
+ as `static'.
+
+ * src/cache/ftccmap.c (FTC_CMAP_QUERY_HASH, FTC_CMAP_NODE_HASH):
+ Removed. Unused.
+ * src/cache/ftcimage.c: Include FT_INTERNAL_OBJECTS_H.
+ * src/cache/ftcmanag.c (FTC_LRU_GET_MANAGER): Removed. Unused.
+
+ * src/cff/cf2intrp.c: Include `cf2intrp.h'.
+ * src/cff/cffdrivr.c (PAIR_TAG): Removed. Unused.
+
+ * src/gzip/ftgzip.c (NO_DUMMY_DECL): Removed. Unused.
+
+ * src/psaux/afmparse.c (afm_parser_read_int): Declare as `static'.
+
+ * src/pshinter/pshalgo.c (STRONGER, PSH_ZONE_MIN, PSH_ZONE_MAX):
+ Removed. Unused.
+
+ * src/raster/ftraster.c (Render_Glyph): Declare as `static'.
+
+ * src/sfnt/ttpost.c (load_format_20): Fix signedness warning.
+
+ * src/truetype/ttdriver.c (PAIR_TAG): Removed. Unused.
+ * src/truetype/ttsubpix.c (is_member_of_family_class,
+ is_member_of_style_class): Declare as `static'.
+
+ * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Declare
+ as `static'.
+ * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): Declare as
+ `static'.
+ (T1_FIELD_COUNT): Removed. Unused.
+ * src/type1/t1parse.h (T1_Done_Table): Removed. Unused.
+
+ * src/type42/t42parse.c (T1_Done_Table): Removed. Unused.
+
+2015-02-25 Werner Lemberg <wl@gnu.org>
+
+ [psaux] Signedness fixes.
+
+ * include/internal/psaux.h, src/psaux/afmparse.c,
+ src/psaux/afmparse.h, src/psaux/psconv.c, src/psaux/psobjs.c,
+ src/psaux/t1cmap.c, src/psaux/t1decode.c: Apply.
+
+2015-02-25 Werner Lemberg <wl@gnu.org>
+
+ [otvalid] Signedness fixes.
+
+ * src/otvalid/otvcommn.c, src/otvalid/otvgdef.c,
+ src/otvalid/otvgpos.c, src/otvalid/otvgsub.c, src/otvalid/otvmath.c:
+ Apply.
+
+2015-02-25 Werner Lemberg <wl@gnu.org>
+
+ * src/bzip2/ftbzip2.c (ft_bzip2_alloc): Signedness fix.
+
+2015-02-25 Werner Lemberg <wl@gnu.org>
+
+ [lzw] Signedness fixes.
+
+ * src/lzw/ftzopen.c, src/lzw/ftzopen.h: Apply.
+
+2015-02-25 Werner Lemberg <wl@gnu.org>
+
+ [gxvalid] Signedness fixes.
+
+ * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
+ src/gxvalid/gxvcommn.h, src/gxvalid/gxvjust.c,
+ src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
+ src/gxvalid/gxvmort1.c, src/gxvalid/gxvmort2.c,
+ src/gxvalid/gxvmorx.c, src/gxvalid/gxvmorx1.c,
+ src/gxvalid/gxvmorx2.c, src/gxvalid/gxvopbd.c,
+ src/gxvalid/gxvprop.c, src/gxvalid/gxvtrak.c: Apply.
+
+2015-02-25 Werner Lemberg <wl@gnu.org>
+
+ [cache] Signedness fixes.
+
+ * src/cache/ftcbasic.c, src/cache/ftccmap.c, src/cache/ftcimage.c,
+ src/cache/ftcmanag.c, src/cache/ftcsbits.c: Apply.
+
+2015-02-25 Werner Lemberg <wl@gnu.org>
+
+ Change dimension fields in `FTC_ImageTypeRec' to unsigned type.
+
+ This doesn't break ABI.
+
+ * include/ftcache.h (FTC_ImageTypeRec): Use unsigned types for
+ `width' and `height'.
+
+ * docs/CHANGES: Document it.
+
+2015-02-25 Werner Lemberg <wl@gnu.org>
+
+ [cache] Don't use `labs'.
+
+ This is the only place in FreeType where this function was used.
+
+ * include/config/ftstdlib.h (ft_labs): Remove.
+
+ * src/cache/ftcimage.c (ftc_inode_weight): Replace `ft_labs' with
+ `FT_ABS'.
+
+2015-02-23 Werner Lemberg <wl@gnu.org>
+
+ [cache] Replace `FT_PtrDist' with `FT_Offset'.
+
+ * src/cache/ftccache.h (FTC_NodeRec): `FT_Offset' (a.k.a. `size_t')
+ is a better choice for `hash' to hold a pointer than `FT_PtrDist'
+ (a.k.a. `ptrdiff_t'), especially since the latter is signed,
+ causing zillions of signedness warnings. [Note that `hash' was of
+ type `FT_UInt32' before the change to `FT_PtrDist'.]
+ Update all users.
+
+ * src/cache/ftcbasic.c, src/cache/ftccache.c, src/cache/ftccmap.c,
+ src/cache/ftcglyph.c, src/cache/ftcglyph.h: Updated.
+
+2015-02-23 Werner Lemberg <wl@gnu.org>
+
+ [smooth, raster] Re-enable standalone compilation.
+
+ * src/raster/ftraster.c (FT_RENDER_POOL_SIZE, FT_MAX)
+ [_STANDALONE_]: Define macros.
+
+ * src/smooth/ftgrays.c (FT_RENDER_POOL_SIZE, FT_MAX, FT_ABS,
+ FT_HYPOT) [_STANDALONE_]: Define macros.
+
+2015-02-22 Werner Lemberg <wl@gnu.org>
+
+ [smooth] Signedness fixes.
+
+ * src/smooth/ftgrays.c, src/smooth/ftsmooth.c: Apply.
+
+2015-02-22 Werner Lemberg <wl@gnu.org>
+
+ * src/raster/ftraster.c: Use the file's typedefs everywhere.
+
+2015-02-22 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/ttpost.c (load_format_20): Fix error tracing message.
+
+ Bug introduced 6 commits earlier.
+
+2015-02-22 Werner Lemberg <wl@gnu.org>
+
+ [pshinter] Fix thinko.
+
+ * src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Correctly
+ check `count'.
+ Bug introduced two commits earlier.
+
+2015-02-22 Werner Lemberg <wl@gnu.org>
+
+ [raster] Signedness fixes.
+
+ * src/raster/ftraster.c, src/raster/ftrend1.c: Apply.
+
+2015-02-22 Werner Lemberg <wl@gnu.org>
+
+ [pshinter] Signedness fixes.
+
+ * src/pshinter/pshalgo.c, src/pshinter/pshglob.c,
+ src/pshinter/pshrec.c: Apply.
+
+2015-02-22 Werner Lemberg <wl@gnu.org>
+
+ [pshinter] Use macros for (unsigned) flags, not enumerations.
+
+ * src/pshinter/pshalgo.h (PSH_Hint_Flags): Replace with macros.
+ Updated.
+ * src/pshinter/pshrec.h (PS_Hint_Flags): Replace with macros.
+
+2015-02-22 Werner Lemberg <wl@gnu.org>
+
+ * src/pshinter/pshrec.c: Simplify.
+ (ps_hints_open, ps_hints_stem): Remove switch statement.
+
+2015-02-22 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Signedness fixes.
+
+ * src/sfnt/pngshim.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap.c,
+ src/sfnt/ttkern.c, src/sfnt/ttload.c, src/sfnt/ttpost.c,
+ src/sfnt/ttsbit.c: Apply.
+ * src/sfnt/sfdriver.c: Apply.
+ (sfnt_get_ps_name): Simplify.
+
+2015-02-22 Werner Lemberg <wl@gnu.org>
+
+ [bdf] Signedness fixes.
+
+ * src/bdf/bdf.h, src/bdf/bdfdrivr.c, src/bdf/bdfdrivr.h,
+ src/bdf/bdflib.c: Apply.
+
+2015-02-22 Werner Lemberg <wl@gnu.org>
+
+ * src/bdf/bdflib.c (_bdf_atous): New function.
+ (_bdf_parse_glyphs, _bdf_parse_start): Use it.
+
+2015-02-22 Werner Lemberg <wl@gnu.org>
+
+ [pcf] Signedness fixes.
+
+ * src/pcf/pcf.h, src/pcf/pcfdrivr.c: Apply.
+ * src/pcf/pcfread.c: Apply.
+ (pcf_get_encodings): Ignore invalid negative encoding offsets.
+
+2015-02-21 Werner Lemberg <wl@gnu.org>
+
+ * src/winfonts/winfnt.c: Signedness fixes.
+
+2015-02-21 Werner Lemberg <wl@gnu.org>
+
+ [type42] Signedness fixes.
+
+ * src/type42/t42parse.c, src/type42/t42parse.h,
+ src/type42/t42types.h: Apply.
+
+2015-02-21 Werner Lemberg <wl@gnu.org>
+
+ [pfr] Signedness fixes.
+
+ * src/pfr/pfrdrivr.c, src/pfr/pfrgload.c, src/pfr/pfrload.c,
+ src/pfr/pfrload.h, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c,
+ src/pfr/pfrtypes.h: Apply.
+
+2015-02-21 Werner Lemberg <wl@gnu.org>
+
+ [cff] Minor signedness fixes related to last commit.
+
+ * src/cff/cf2ft.c, src/cff/cf2intrp.c, src/cff/cffgload.c: Apply.
+
+2015-02-20 Werner Lemberg <wl@gnu.org>
+
+ [cff] Thinkos in bias handling.
+
+ Only the final result is always positive.
+
+ Bug introduced three commits earlier.
+
+ * src/cff/cffgload.c, src/cff/cffgload.h: Apply.
+
+2015-02-20 Werner Lemberg <wl@gnu.org>
+
+ [cid] Fix signedness issues and emit some better error codes.
+
+ * src/cid/cidgload.c, src/cid/cidload.h, src/cid/cidobjs.c,
+ src/cid/cidparse.h: Apply.
+ * src/cid/cidload.c: Apply.
+ (parse_fd_array): Reject negative values for number of dictionaries.
+ * src/cid/cidparse.c: Apply.
+ (cid_parser_new): Reject negative values for hex data length.
+
+2015-02-20 Werner Lemberg <wl@gnu.org>
+
+ [cff] Signedness fixes for new engine.
+
+ * src/cff/cf2arrst.c, src/cff/cf2fixed.h, src/cff/cf2ft.c,
+ src/cff/cf2ft.h, src/cff/cf2hints.c, src/cff/cf2intrp.c: Apply.
+
+2015-02-20 Werner Lemberg <wl@gnu.org>
+
+ [cff] Signedness fixes for basic infrastructure and old engine.
+
+ * include/internal/pshints.h, src/cff/cffdrivr.c,
+ src/cff/cffgload.c, src/cff/cffgload.h, src/cff/cffload.c,
+ src/cff/cffobjs.c, src/cff/cffparse.c, src/pshinter/pshrec.c: Apply.
+
+2015-02-19 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttgxvar.c (TT_Get_MM_Var): Ignore `countSizePairs'.
+
+ This is hard-coded to value 2 in `fvar' version 1.0 (and no newer
+ version exists), but some fonts set it incorrectly.
+
+ Problem reported by Adam Twardoch <adam@fontlab.com>.
+
+2015-02-19 Werner Lemberg <wl@gnu.org>
+
+ [cff] Emit better error code for invalid private dict size.
+
+ * src/cff/cffparse.c (cff_parse_private_dict): Reject negative
+ values for size and offset.
+
+2015-02-19 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix signedness issues.
+
+ * src/autofit/afangles.c, src/autofit/afcjk.c,
+ src/autofit/afglobal.c, src/autofit/afhints.c,
+ src/autofit/aflatin.c, src/autofit/aflatin2.c, src/autofit/afwarp.c,
+ src/autofit/hbshim.c: Apply.
+
+2015-02-19 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Use macros for (unsigned) flags, not enumerations.
+
+ This harmonizes with other code in FreeType (and reduces the number
+ of necessary casts to avoid compiler warnings).
+
+ * src/autofit/afblue.hin: Make flag macros unsigned.
+ * src/autofit/afblue.h: Regenerated.
+
+ * src/autofit/afcjk.h: Replace flag enumeration with macros.
+ * src/autofit/afcjk.c: Updated.
+
+ * src/autofit/afhints.h (AF_Flags, AF_Edge_Flags): Replace with
+ macros.
+ * src/autofit/afhints.c: Updated.
+
+ * src/autofit/aflatin.h: Replace flag enumerations with macros.
+ * src/autofit/aflatin.c, src/autofit/aflatin2.c: Updated.
+
+ * src/autofit/aftypes.h (AF_ScalerFlags): Replace with macros.
+
+2015-02-18 Werner Lemberg <wl@gnu.org>
+
+ [type1] Fix signedness issues.
+
+ * include/internal/psaux.h, include/internal/t1types.h,
+ src/psaux/psobjs.c, src/psaux/psobjs.h, src/psaux/t1decode.c,
+ src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1parse.c: Apply.
+
+2015-02-18 Werner Lemberg <wl@gnu.org>
+
+ [psaux, type1] Fix minor AFM issues.
+
+ * include/internal/t1types.h (AFM_KernPairRec): Make indices
+ unsigned.
+ Update users.
+ (AFM_FontInfoRec): Make element counters unsigned.
+ Update users.
+ * src/psaux/afmparse.h (AFM_ValueRec): Add union member for unsigned
+ int.
+
+ * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs):
+ Reject negative values for number of kerning elements.
+
+ * src/type1/t1afm.c, src/tools/test_afm.c: Updated.
+
+2015-02-18 Werner Lemberg <wl@gnu.org>
+
+ Don't use `FT_PtrDist' for lengths.
+
+ Use FT_UInt instead.
+
+ * include/internal/psaux.h (PS_Table_FuncsRec, PS_TableRec,
+ T1_DecoderRec): Do it.
+
+ * include/internal/t1types.h (T1_FontRec): Ditto.
+
+ * src/cid/cidload.c (cid_parse_dict): Updated.
+ * src/pfr/pfrload.c (pfr_extra_item_load_font_id): Ditto.
+ * src/psaux/psobjs.c (ps_table_add), src/psaux/psobjs.h: Ditto.
+ * src/type1/t1load.c (parse_blend_axis_types, parse_encoding,
+ parse_chharstrings, parse_dict): Ditto.
+ * src/type42/t42parse.c (t42_parse_encoding, t42_parse_charstrings,
+ t42_parse_dict): Ditto.
+
+2015-02-18 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1driver.c (t1_ps_get_font_value): Clean up.
+ This handles negative values better, avoiding many casts.
+
+2015-02-17 Werner Lemberg <wl@gnu.org>
+
+ [base] Fix Savannah bug #44284.
+
+ * src/base/ftcalc.c (FT_MulFix): Typos.
+
+2015-02-17 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Finish compiler warning fixes for signedness issues.
+
+ * src/truetype/ttgxvar.c, src/truetype/ttsubpix.c,
+ src/truetype/ttsubpix.h: Apply.
+
+2015-02-17 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttsubpix.c: Adding missing `static' keywords.
+
+2015-02-17 Werner Lemberg <wl@gnu.org>
+
+ [truetype] More signedness fixes.
+
+ * include/internal/tttypes.h, src/truetype/ttinterp.h,
+ src/truetype/ttobjs.h, src/truetype/ttinterp.c,
+ src/truetype/ttobjs.c: Apply.
+
+2015-02-17 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Various signedness fixes.
+
+ * include/internal/ftgloadr.h, src/truetype/ttpload.c: Apply.
+
+ * src/truetype/ttgload.c: Apply.
+ (TT_Get_VMetrics): Protect against invalid ascenders and descenders
+ while constructing advance height.
+
+2015-02-16 Werner Lemberg <wl@gnu.org>
+
+ [base] Finish compiler warning fixes for signedness issues.
+
+ * src/base/ftglyph.c, src/base/ftlcdfil.c, src/base/ftstroke.c:
+ Apply.
+
+2015-02-16 Werner Lemberg <wl@gnu.org>
+
+ * include/tttables.h (TT_OS2): `fsType' must be FT_UShort.
+
+2015-02-16 Werner Lemberg <wl@gnu.org>
+
+ More minor signedness warning fixes.
+
+ * src/base/ftbbox.c, src/base/ftbitmap.c, src/base/fttrigon.c,
+ src/base/ftutil.c: Apply.
+
+2015-02-16 Werner Lemberg <wl@gnu.org>
+
+ Next round of minor compiler warning fixes.
+
+ * include/internal/ftrfork.h (FT_RFork_Ref): Change `offset' member
+ type to `FT_Long'.
+ (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Add `static' keyword.
+
+ * include/internal/ftstream.h (FT_Stream_Pos): Return `FT_ULong'.
+
+ * src/base/ftoutln.c, src/base/ftrfork.c, src/base/ftstream.c:
+ Signedess fixes.
+
+2015-02-16 Werner Lemberg <wl@gnu.org>
+
+ Various minor signedness fixes.
+
+ * include/ftadvanc.h, include/internal/ftobjs.h,
+ src/base/ftgloadr.c, src/base/ftobjs.c: Apply.
+
+2015-02-16 Werner Lemberg <wl@gnu.org>
+
+ New `TYPEOF' macro.
+
+ This helps suppress signedness warnings, avoiding issues with
+ implicit conversion changes.
+
+ * include/config/ftconfig.h, builds/unix/ftconfig.in,
+ builds/vms/ftconfig.h (TYPEOF): Define.
+
+ * include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
+ src/autofit/afwarp.h (AF_WARPER_FLOOR): Use it.
+
+2015-02-16 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftsystem.c: Use casts in standard C function wrappers.
+ (ft_alloc, ft_realloc, ft_ansi_stream_io, FT_Stream_Open): Do it.
+
+2015-02-16 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #44261.
+
+ * builds/unix/detect.mk (setup) [unix]: Set `CONFIG_SHELL' in the
+ environment also while calling the configure script.
+
+2015-02-16 Werner Lemberg <wl@gnu.org>
+
+ * include/internal/ftmemory.h: Add some `FT_Offset' casts.
+ (FT_MEM_SET, FT_MEM_COPY, FT_MEM_MOVE, FT_ARRAY_ZERO, FT_ARRAY_COPY,
+ FT_MEM_MOVE): Do it.
+
+2015-02-15 Werner Lemberg <wl@gnu.org>
+
+ [base] Clean up signedness issues in `ftdbgmem.c'.
+
+ Also fix other minor issues.
+
+ * src/base/ftdbgmem.c (FT_MemTableRec): Replace all FT_ULong types
+ with FT_Long for consistency.
+ (ft_mem_primes): Change type to `FT_Int'.
+ (ft_mem_closest_prime, ft_mem_table_set): Updated.
+
+ (ft_mem_debug_panic, ft_mem_debug_alloc, ft_mem_debug_free,
+ ft_mem_debug_realloc): Use `static' keyword and fix signedness
+ warnings where necessary.
+
+ (ft_mem_table_resize, ft_mem_table_new, ft_mem_table_destroy,
+ ft_mem_table_get_nodep, ft_mem_debug_init, FT_DumpMemory): Fix types
+ and add or remove casts to avoid signedness warnings.
+
+2015-02-15 Werner Lemberg <wl@gnu.org>
+
+ [base] Clean up signedness in arithmetic functions.
+
+ This makes the code more readable and reduces compiler warnings.
+
+ * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round, FT_MulFix,
+ FT_DivFix): Convert input parameters to unsigned, do the
+ computation, then convert the result back to signed.
+ (ft_corner_orientation): Fix casts.
+
+2015-02-07 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix Savannah bug #44184.
+
+ * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir): No
+ longer reject `htmx' and `vmtx' tables with invalid length but
+ sanitize them.
+
+2015-02-06 Jon Anderson <jon@websupergoo.com>
+
+ [truetype] Fix regression in the incremental glyph loader.
+
+ * src/truetype/ttgload.c (load_truetype_glyph): For incremental
+ fonts, the glyph index may be greater than the number of glyphs
+ indicated, so guard the check with a preprocessor conditional.
+
+2015-02-06 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix potential memory leak.
+
+ While this doesn't show up with FreeType, exactly the same code
+ leaks with ttfautohint's modified auto-hinter code (which gets used
+ in a slightly different way).
+
+ It certainly doesn't harm since it is similar to already existing
+ checks in the code for embedded arrays.
+
+ * src/autofit/afhints.c (af_glyph_hints_reload): Set `max_contours'
+ and `max_points' for all cases.
+
+2015-01-31 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Add support for Thai script.
+
+ Thanks to Ben Mitchell <ben@rosettatype.com> for guidance with blue
+ zone characters!
+
+ * src/autofit/afblue.dat: Add blue zone data for Thai.
+
+ * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+ * src/autofit/afscript.h: Add Thai standard characters.
+
+ * src/autofit/afranges.c: Add Thai data.
+
+ * src/autofit/afstyles.h: Add Thai data.
+
+2015-01-23 Behdad Esfahbod <behdad@behdad.org>
+
+ [raster] Handle `FT_RASTER_FLAG_AA' correctly.
+
+ This fixes a breakage caused by the commit `[raster] Remove
+ 5-level gray AA mode from monochrome rasterizer.'.
+
+ Problem reported by Markus Trippelsdorf <markus@trippelsdorf.de>.
+
+ * src/raster/ftraster.c (ft_black_render): Handle
+ `FT_RASTER_FLAG_AA'.
+
+ * src/raster/ftrend1.c (ft_raster1_render): Remove gray AA mode
+ remnants.
+
+2015-01-18 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftobjs.c (FT_New_Library): Fix compiler warning.
+
+2015-01-18 Chris Liddell <chris.liddell@artifex.com>
+
+ [raster] Fix Savannah bug #44022.
+
+ Add fallback for glyphs with degenerate bounding boxes.
+
+ If a glyph has only one very narrow feature, the bbox can end up
+ with either the width or height of the bbox being 0, in which case
+ no raster memory is allocated and no attempt is made to render the
+ glyph. This is less than ideal when the drop-out compensation in
+ the rendering code would actually result in the glyph being
+ rendered.
+
+ This problem can be observed with the `I' glyph (gid 47) in the
+ Autodesk RomanS TrueType font.
+
+ * src/raster/ftrend1.c (ft_raster1_render): Add a fallback if either
+ dimension is zero to explicitly round up/down (instead of simply
+ round).
+
+2015-01-17 Werner Lemberg <wl@gnu.org>
+
+ Add some tools to handle yearly copyright notice updates.
+
+ We are now following the GNU guidelines: A new release automatically
+ means that the copyright year of all affected files gets updated; it
+ is no longer used to track years of modification changes.
+
+ * src/tools/update-copyright-year: New Perl script.
+ * src/tools/update-copyright: New shell script that calls
+ `update-copyright-year' on all files.
+ * src/tools/no-copyright: Exceptions that should not be handled by
+ `update-copyright'
+
+2015-01-14 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated, using a description from Behdad.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ * src/autofit/afmodule.c (af_autofitter_done): Fix compiler warning.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ [autofit] Add embedded array of segments and edges.
+
+ Avoids multiple mallocs per typical glyphs.
+
+ With this and recent changes to avoid mallocs, the thread-safe
+ stack-based loader is now as fast as the previous model that had one
+ cached singleton.
+
+ * src/autofit/afhints.h (AF_SEGMENTS_EMBEDDED, AF_EDGES_EMBEDDED):
+ New macros.
+ (AF_AxisHintsRec): Add two arrays for segments and edges.
+
+ * src/autofit/afhints.c (af_axis_hints_new_segment): Only allocate
+ data if number of segments exceeds given threshold value.
+ (af_axis_hints_new_edge): Only allocate data if number of edges
+ exceeds given threshold value.
+ (af_glyph_hints_done): Updated.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ [autofit] Add embedded arrays for points and contours.
+
+ This avoids at least two malloc calls for typical glyphs.
+
+ * src/autofit/afhints.h (AF_POINTS_EMBEDDED, AF_CONTOURS_EMBEDDED):
+ New macros.
+ (AF_GlyphHintsRec): Add two arrays for contours and points.
+
+ * src/autofit/afhints.c (af_glyph_hints_init, af_glyph_hints_done):
+ Updated.
+ (af_glyph_hints_reload): Only allocate data if number of contours or
+ points exceeds given threshold values.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ [autofit] Allocate hints object on the stack.
+
+ This avoids one malloc per load.
+
+ * src/autofit/afloader.h (AF_LoaderRec): Change type of `hints' to
+ `AF_GlyphHints'.
+ Update prototype.
+
+ * src/autofit/afloader.c (af_loader_init): Use `AF_GlyphHints'
+ parameter instead of `FT_Memory'.
+ (af_loader_done): Directly reset `load_hints'.
+ (af_loader_load_g): Updated.
+
+ * src/autofit/afmodule.c (af_autofitter_load_glyph): Use local
+ `hints' object.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ [autofit] Reuse slot glyph loader.
+
+ No need to create a new glyph loader; we can reuse the one from
+ `slot->internal->loader'. It's hard to tell why it was written that
+ way originally, but new code looks sound and correct to me, and
+ avoids lots of allocations.
+
+ * src/autofit/afloader.c (af_loader_init): Change return type to
+ `void'.
+ Don't call `FT_GlyphLoader_New'.
+ (af_loader_reset): Don't call `FT_GlyphLoader_Rewind'.
+ (af_loader_load_g): Update code to use `internal->loader', which
+ doesn't need copying of data.
+
+ * src/autofit/afloader.h (AF_LoaderRec): Remove `gloader' member.
+ Update prototype.
+
+ * src/autofit/afmodule.c (af_autofitter_load_glyph): Updated.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ [autofit] Remove (unused) support for composite glyphs.
+
+ We never have to deal with composite glyphs in the autohinter, as
+ those will be loaded into FORMAT_OUTLINE by the recursed
+ `FT_Load_Glyph' function.
+
+ In the rare cases that FT_LOAD_NO_RECURSE is set, it will imply
+ FT_LOAD_NO_SCALE as per `FT_Load_Glyph', which then implies
+ FT_LOAD_NO_HINTING:
+
+ /* resolve load flags dependencies */
+
+ if ( load_flags & FT_LOAD_NO_RECURSE )
+ load_flags |= FT_LOAD_NO_SCALE |
+ FT_LOAD_IGNORE_TRANSFORM;
+
+ if ( load_flags & FT_LOAD_NO_SCALE )
+ {
+ load_flags |= FT_LOAD_NO_HINTING |
+ FT_LOAD_NO_BITMAP;
+
+ load_flags &= ~FT_LOAD_RENDER;
+ }
+
+ and as such the auto-hinter is never called. Thus, the recursion in
+ `af_loader_load_g' never actually happens. So remove the depth
+ counter as well.
+
+ * src/autofit/afloader.c (af_loader_load_g): Remove `depth'
+ parameter.
+ <FT_GLYPH_FORMAT_COMPOSITE>: Remove associated code.
+ (af_loader_load_glyph): Updated.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ [raster] Fix uninitialized memory access.
+
+ Apparently `ras.cProfile' might be uninitialized. This will be the
+ case if `ras.top == ras.cProfile->offset', as can be seen in
+ `End_Profile'. The overshoot code introduced in a change `Fix B/W
+ rasterization of subglyphs with different drop-out modes.' (from
+ 2009-06-18) violated this, accessing `ras.cProfile->flags'
+ unconditionally just before calling `End_Profile' (which then
+ detected that `cProfile' is uninitialized and didn't touch it).
+
+ This was harmless, and was not detected by valgrind before because
+ the objects were allocated on the `raster_pool', which was always
+ initialized. With recent change to allocate raster buffers on the
+ stack, valgrind now reported this invalid access.
+
+ * src/raster/ftraster.c (Convert_Glyph): Don't access an
+ uninitialized `cProfile'.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ [smooth] Fix uninitialized memory access.
+
+ Looks like `ras.span_y' could always be used without initialization.
+ This was never detected by valgrind before because the library-wide
+ `raster_pool' was used for the worker object and `raster_pool' was
+ originally zero'ed. But subsequent reuses of it were using `span_y'
+ uninitialized. With the recent change to not use `render_pool' and
+ allocate worker and buffer on the stack, valgrind now detects this
+ uninitialized access.
+
+ * src/smooth/ftgrays.c (gray_raster_render): Initialize
+ `ras.span_y'.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ [base] Don't initialize unused `driver->glyph_loader'.
+
+ * src/base/ftobjs.c (Destroy_Driver): Don't call
+ `FT_GlyphLoader_Done'.
+ (FT_Add_Module): Don't call `FT_GlyphLoader_New'.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ [base] Don't allocate `library->raster_pool' anymore.
+
+ It's unused after the following commits:
+
+ [raster] Allocate render pool for mono rasterizer on the stack.
+ [raster] Remove 5-level gray AA mode from monochrome rasterizer.
+
+ The value of FT_RENDER_POOL_SIZE still serves the purpose it used to
+ serve, which is, to adjust the pool size. But the pool is now
+ allocated on the stack on demand.
+
+ * src/base/ftobjs.c (FT_New_Library, FT_Done_Library): Implement.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ [base] Do not reorder library->renderers upon use.
+
+ Instead of keeping `library->renderers' in a MRU order, just leave
+ it as-is. The MRU machinery wasn't thread-safe.
+
+ With this patch, rasterizing glyphs from different faces from
+ different threads doesn't fail choosing rasterizer
+ (FT_Err_Cannot_Render_Glyph).
+
+ Easiest to see that crash was to add a `printf' (or otherwise let
+ thread yield in FT_Throw with debugging enabled).
+
+ * src/base/ftobjs.c (FT_Render_Glyph_Internal), src/base/ftoutln.c
+ (FT_Outline_Render): Don't call `FT_Set_Renderer'.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ [raster] Allocate render pool for mono rasterizer on the stack.
+
+ Instead of using the `render_pool' member of `FT_Library' that is
+ provided down to the rasterizer, completely ignore that and allocate
+ needed objects on the stack instead.
+
+ With this patch, rasterizing glyphs from different faces from
+ different threads doesn't crash in the monochrome rasterizer.
+
+ * src/raster/ftraster.c (black_TRaster): Remove `buffer',
+ `buffer_size', and `worker' members.
+
+ (ft_black_render): Create `buffer' locally.
+ (ft_black_reset): Updated.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ [raster] Remove 5-level gray AA mode from monochrome rasterizer.
+
+ It was off by default and couldn't be turned on at runtime. And the
+ smooth rasterizer superceded it over ten years ago. No point in
+ keeping. Comments suggested that it was there for compatibility
+ with FreeType 1.
+
+ 550 lines down.
+
+ * src/raster/ftraster.c (FT_RASTER_OPTION_ANTI_ALIASING,
+ RASTER_GRAY_LINES): Remove macros and all associated code.
+
+ (black_TWorker): Remove `gray_min_x' and `gray_max_x'.
+ (black_TRaster): Remove `grays' and `gray_width'.
+
+ (Vertical_Sweep_Init, Vertical_Sweep_Span, Vertical_Sweep_Drop,
+ ft_black_render): Updated.
+
+ * src/raster/ftrend1.c (ft_raster1_render): Simplify code.
+ (ft_raster5_renderer_class): Removed.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ [smooth] Allocate render pool for smooth rasterizer on the stack.
+
+ Instead of using the `render_pool' member of `FT_Library' that is
+ provided down to the rasterizer, completely ignore that and allocate
+ needed objects on the stack instead.
+
+ With this patch, rasterizing glyphs from different faces from
+ different threads doesn't crash in the smooth rasterizer.
+
+ Bugs:
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=678397
+ https://bugzilla.redhat.com/show_bug.cgi?id=1004315
+ https://bugzilla.redhat.com/show_bug.cgi?id=1165471
+ https://bugs.freedesktop.org/show_bug.cgi?id=69034
+
+ * src/smooth/ftgrays.c (gray_TRaster): Remove `buffer',
+ `buffer_size', `band_size', and `worker' members.
+
+ (gray_raster_render): Create `buffer', `buffer_size', and
+ `band_size' locally.
+ (gray_raster_reset): Updated.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ [truetype] Allocate TT_ExecContext in TT_Size instead of TT_Driver.
+
+ Previously the code had stipulation for using a per-TT_Size exec
+ context if `size->debug' was true. But there was no way that
+ `size->debug' could *ever* be true. As such, the code was always
+ using the singleton `TT_ExecContext' that was stored in `TT_Driver'.
+ This was, clearly, not threadsafe.
+
+ With this patch, loading glyphs from different faces from different
+ threads doesn't crash in the bytecode loader code.
+
+ * src/truetype/ttobjs.h (TT_SizeRec): Remove `debug' member.
+ (TT_DriverRec): Remove `context' member.
+
+ * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Remove
+ `TT_ExecContext' code related to a global `TT_Driver' object.
+
+ (tt_driver_done): Don't remove `TT_ExecContext' object here but ...
+ (tt_size_done_bytecode): ... here.
+
+ (tt_driver_init): Don't create `TT_ExecContext' object here but ...
+ (tt_size_init_bytecode): ... here, only on demand.
+
+ * src/truetype/ttinterp.c (TT_Run_Context): Remove defunct debug
+ code.
+ (TT_New_Context): Remove `TT_ExecContext' code related to a global
+ `TT_Driver' object.
+
+ * src/truetype/ttinterp.h: Updated.
+
+ * src/truetype/ttgload.c (TT_Hint_Glyph, tt_loader_init): Updated.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ [autofit] Allocate AF_Loader on the stack instead of AF_Module.
+
+ Stop sharing a global `AF_Loader'. Allocate one on the stack during
+ glyph load.
+
+ Right now this results in about 25% slowdown, to be fixed in a
+ following commit.
+
+ With this patch loading glyphs from different faces from different
+ threads doesn't immediately crash in the autohinting loader code.
+
+ Bugs:
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=1164941
+
+ * src/autofit/afloader.c (af_loader_init): Pass
+ `AF_Loader' and `FT_Memory' instead of `AF_Module' as arguments.
+ (af_loader_reset, af_loader_load_glyph): Also pass `loader' as
+ argument.
+ (af_loader_done): Use `AF_Loader' instead of `AF_Module' as
+ argument.
+
+ * src/autofit/afmodule.c (af_autofitter_init): Don't call
+ `af_loader_init'.
+ (af_autofitter_done): Don't call `af_loader_done'.
+ (af_autofitter_load_glyph): Use a local `AF_Loader' object.
+
+ * src/autofit/afloader.h: Include `afmodule.h'.
+ Update prototypes.
+ Move typedef for `AF_Module' to...
+
+ * src/autofit/afmodule.h: ... this place.
+ No longer include `afloader.h'.
+
+2015-01-14 Behdad Esfahbod <behdad@behdad.org>
+
+ * src/type42/t42objs.h (T42_DriverRec): Remove unused member.
+
+2015-01-12 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #43976.
+
+ Assure that FreeType's internal include directories are found before
+ `CPPFLAGS' (which might be set by the user in the environment), and
+ `CPPFLAGS' before `CFLAGS'.
+
+ * builds/freetype.mk (FT_CFLAGS): Don't add `INCLUDE_FLAGS'.
+ (FT_COMPILE): Make this a special variable for compiling only the
+ files handled in `freetype.mk'.
+ (.c.$O): Removed, unused.
+
+ * src/*/rules.mk (*_COMPILE): Fix order of include directories.
+
+2015-01-11 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Prettyfing.
+
+ * src/truetype/ttinterp.c (project, dualproj, fast_project,
+ fast_dualproj): Rename to...
+ (PROJECT, DUALPROJ, FAST_PROJECT, FAST_DUALPROJ): ... this.
+
+2015-01-11 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttinterp.c (Ins_JROT, Ins_JROF): Simplify.
+
+ Based on a patch from Behdad.
+
+2015-01-11 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttinterp.c (Ins_SxVTL): Simplify function call.
+
+2015-01-11 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttinterp.c (Normalize): Remove unused argument.
+
+2015-01-11 Werner Lemberg <wl@gnu.org>
+
+ [truetype] More macro expansions.
+
+ * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Remove macro by
+ expansion.
+
+2015-01-11 Werner Lemberg <wl@gnu.org>
+
+ [truetype] More macro expansions.
+
+ * src/truetype/ttinterp.c (INS_ARG): Remove macro by expansion,
+ adjusting funtion calls where necessary.
+ (FT_UNUSED_ARG): Removed, no longer needed.
+
+2015-01-10 Werner Lemberg <wl@gnu.org>
+
+ [truetype] More macro expansions.
+
+ Based on a patch from Behdad.
+
+ * src/truetype/ttinterp.c (DO_*): Expand macros into corresponding
+ `Ins_*' functions.
+ (TT_RunIns): Replace `DO_*' macros with `Ins_*' function calls.
+ (ARRAY_BOUND_ERROR): Remove second definition, which is no longer
+ needed.
+ (Ins_SVTCA, Ins_SPVTCA, Ins_SFVTCA): Replaced with...
+ (Ins_SxyTCA): New function.
+
+2015-01-10 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Remove TT_CONFIG_OPTION_INTERPRETER_SWITCH.
+
+ Behdad suggested this code simplification, and nobody objected...
+
+ * include/config/ftoption.h, devel/ftoption.h
+ (TT_CONFIG_OPTION_INTERPRETER_SWITCH): Remove.
+
+ * src/truetype/ttinterp.c [TT_CONFIG_OPTION_INTERPRETER_SWITCH]:
+ Remove related code.
+ (ARRAY_BOUND_ERROR): Use do-while loop.
+
+2015-01-10 Werner Lemberg <wl@gnu.org>
+
+ [truetype] More macro expansions.
+
+ * src/truetype/ttinterp.c, src/truetype/ttinterp.h (EXEC_ARG_,
+ EXEC_ARG): Remove by replacing with expansion.
+
+2015-01-10 Werner Lemberg <wl@gnu.org>
+
+ [truetype] More macro expansions.
+
+ Based on a patch from Behdad.
+
+ * src/truetype/ttinterp.c (SKIP_Code, GET_ShortIns, NORMalize,
+ SET_SuperRound, ROUND_None, INS_Goto_CodeRange, CUR_Func_move,
+ CUR_Func_move_orig, CUR_Func_round, CUR_Func_cur_ppem,
+ CUR_Func_read_cvt, CUR_Func_write_cvt, CUR_Func_move_cvt,
+ CURRENT_Ratio, INS_SxVTL, COMPUTE_Funcs, COMPUTE_Round,
+ COMPUTE_Point_Displacement, MOVE_Zp2_Point): Remove by replacing
+ with expansion.
+
+ (Cur_Func_project, CUR_Func_dualproj, CUR_fast_project,
+ CUR_fast_dualproj): Replace with macros `project', `dualproj',
+ `fast_project', `fast_dualproj'.
+
+2015-01-10 Werner Lemberg <wl@gnu.org>
+
+ [truetype] More macro expansions.
+
+ * src/truetype/ttinterp.c (EXEC_OP_, EXEC_OP): Remove by replacing
+ with expansion.
+
+2015-01-10 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Remove code for static TrueType interpreter.
+
+ This is a follow-up patch.
+
+ * src/truetype/ttinterp.c, src/truetype/ttinterp.h
+ [TT_CONFIG_OPTION_STATIC_INTERPRETER,
+ TT_CONFIG_OPTION_STATIC_RASTER]: Remove macros and related code.
+
+2015-01-10 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttinterp.c (CUR): Remove by replacing with expansion.
+
+ This starts a series of patches that simplifies the code of the
+ bytecode interpreter.
+
+2014-12-30 Werner Lemberg <wl@gnu.org>
+
+ * Version 2.5.5 released.
+ =========================
+
+
+ Tag sources with `VER-2-5-5'.
+
+ * docs/VERSION.DLL: Update documentation and bump version number to
+ 2.5.5.
+
+ * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
+ builds/windows/vc2005/index.html,
+ builds/windows/vc2008/freetype.vcproj,
+ builds/windows/vc2008/index.html,
+ builds/windows/vc2010/freetype.vcxproj,
+ builds/windows/vc2010/index.html,
+ builds/windows/visualc/freetype.dsp,
+ builds/windows/visualc/freetype.vcproj,
+ builds/windows/visualc/index.html,
+ builds/windows/visualce/freetype.dsp,
+ builds/windows/visualce/freetype.vcproj,
+ builds/windows/visualce/index.html,
+ builds/wince/vc2005-ce/freetype.vcproj,
+ builds/wince/vc2005-ce/index.html,
+ builds/wince/vc2008-ce/freetype.vcproj,
+ builds/wince/vc2008-ce/index.html: s/2.5.4/2.5.5/, s/254/255/.
+
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
+
+ * builds/unix/configure.raw (version_info): Set to 17:4:11.
+ * CMakeLists.txt (VERSION_PATCH): Set to 5.
+ * docs/CHANGES: Updated.
+
+ * builds/toplevel.mk (dist): Fix typos.
+
+2014-12-24 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Formatting and nanooptimizations.
+
+ * src/base/ftcalc.c,
+ * src/base/fttrigon.c: Revise sign restoration.
+
+2014-12-13 Werner Lemberg <wl@gnu.org>
+
+ * src/pcf/pcfread.c (pcf_read_TOC): Improve fix from 2014-12-08.
+
+2014-12-11 Werner Lemberg <wl@gnu.org>
+
+ * builds/toplevel.mk (dist): Use older POSIX standard for `tar'.
+
+ Apparently, BSD tar isn't capable yet of handling POSIX-1.2001
+ (contrary to GNU tar), so force the POSIX-1.1988 format.
+
+ Problem reported by Stephen Fisher <sfisher@SDF.ORG>.
+
+2014-12-11 Werner Lemberg <wl@gnu.org>
+
+ * src/type42/t42parse.c (t42_parse_sfnts): Reject invalid TTF size.
+
+2014-12-11 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix off-by-one check.
+
+ Problem reported by Dennis Felsing <dennis@felsin9.de>.
+
+2014-12-11 Werner Lemberg <wl@gnu.org>
+
+ * src/type42/t42parse.c (t42_parse_sfnts): Check `string_size'.
+
+ Problem reported by Dennis Felsing <dennis@felsin9.de>.
+
+2014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ [gxvalid] Fix a naming convention conflicting with ftvalid.
+
+ See previous changeset for otvalid.
+
+ * src/gxvalid/{gxvcommn.h, gxvmort.h, gxvmorx.h}: Replace
+ `valid' by `gxvalid'.
+ * src/gxvalid/{gxvbsln.c, gxvcommn.c, gxvfeat.c, gxvjust.c,
+ gxvkern.c, gxvlcar.c, gxvmort.c, gxvmort0.c, gxvmort1.c,
+ gxvmort2.c, gxvmort4.c, gxvmort5.c, gxvmorx.c, gxvmorx0.c,
+ gxvmorx1.c, gxvmorx2.c, gxvmorx4.c, gxvmorx5.c, gxvopbd.c,
+ gxvprop.c, gxvtrak.c}: Replace `valid' by `gxvalid' if
+ it is typed as GXV_Validator.
+
+2014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ [otvalid] Fix a naming convention conflicting with ftvalid.
+
+ Some prototypes in ftvalid.h use `valid' for the variables
+ typed as FT_Validator. Their implementations in src/base/
+ ftobjs.c and utilizations in src/sfnt/ttcmap.c do similar.
+
+ Some macros in otvcommn.h assume the exist of the variable
+ `valid' typed as OTV_Validator in the caller.
+
+ Mixing these two conventions cause invalid pointer conversion
+ and unexpected SEGV in longjmp. To prevent it, all variables
+ typed as OTV_Validator are renamed to `otvalid'.
+
+ * src/otvalid/otvcommn.h: Replace `valid' by `otvalid'.
+ * src/otvalid/{otvcommn.c, otvbase.c, otvgdef.c, otvgpos.c,
+ otvgsub.c, otvjstf.c, otvmath.c}: Replace `valid' by `otvalid'
+ if it is typed as OTV_Validator.
+
+2014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ [ftvalid] Introduce FT_THROW() in FT_INVALID_XXX macros.
+
+ Original patch is designed by Werner Lemberg. Extra part
+ for otvalid and gxvalid are added by suzuki toshiya, see
+ discussion:
+ http://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00002.html
+ http://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00007.html
+
+ * include/internal/ftvalid.h: Introduce FT_THROW() in FT_INVALID_().
+ * src/gxvalid/gxvcommn.h: Ditto.
+ * src/otvalid/otvcommn.h: Ditto.
+
+2014-12-08 Werner Lemberg <wl@gnu.org>
+
+ [pcf] Fix Savannah bug #43774.
+
+ Work around `features' of X11's `pcfWriteFont' and `pcfReadFont'
+ functions. Since the PCF format doesn't have an official
+ specification, we have to exactly follow these functions' behaviour.
+
+ The problem was unveiled with a patch from 2014-11-06, fixing issue
+ #43547.
+
+ * src/pcf/pcfread.c (pcf_read_TOC): Don't check table size for last
+ element. Instead, assign real size.
+
+2014-12-07 Werner Lemberg <wl@gnu.org>
+
+ Work around a bug in Borland's C++ compiler.
+
+ See
+
+ http://qc.embarcadero.com/wc/qcmain.aspx?d=118998
+
+ for Borland's bug tracker entry.
+
+ Reported by Yuliana Zigangirova <zigangirova@inbox.ru>,
+ http://lists.gnu.org/archive/html/freetype-devel/2014-04/msg00001.html.
+
+ * include/internal/ftvalid.h (FT_ValidatorRec), src/smooth/ftgrays.c
+ (gray_TWorker_): Move `ft_jmp_buf' field to be the first element.
+
+2014-12-07 Werner Lemberg <wl@gnu.org>
+
+ */*: Decorate hex constants with `U' and `L' where appropriate.
+
+2014-12-07 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Prevent memory leak for buggy fonts.
+
+ * src/truetype/ttobjs.c (tt_size_done): Unconditionally call
+ `tt_size_done_bytecode'.
+
+2014-12-06 Werner Lemberg <wl@gnu.org>
+
+ * Version 2.5.4 released.
+ =========================
+
+
+ Tag sources with `VER-2-5-4'.
+
+ * docs/VERSION.DLL: Update documentation and bump version number to
+ 2.5.4.
+
+ * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
+ builds/windows/vc2005/index.html,
+ builds/windows/vc2008/freetype.vcproj,
+ builds/windows/vc2008/index.html,
+ builds/windows/vc2010/freetype.vcxproj,
+ builds/windows/vc2010/index.html,
+ builds/windows/visualc/freetype.dsp,
+ builds/windows/visualc/freetype.vcproj,
+ builds/windows/visualc/index.html,
+ builds/windows/visualce/freetype.dsp,
+ builds/windows/visualce/freetype.vcproj,
+ builds/windows/visualce/index.html,
+ builds/wince/vc2005-ce/freetype.vcproj,
+ builds/wince/vc2005-ce/index.html,
+ builds/wince/vc2008-ce/freetype.vcproj,
+ builds/wince/vc2008-ce/index.html: s/2.5.3/2.5.4/, s/253/254/.
+
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
+
+ * builds/unix/configure.raw (version_info): Set to 17:3:11.
+ * CMakeLists.txt (VERSION_PATCH): Set to 4.
+ * docs/CHANGES: Updated.
+
+2014-12-04 Werner Lemberg <wl@gnu.org>
+
+ docs/CHANGES: Updated, formatted.
+
+2014-12-04 Dave Arnold <darnold@adobe.com>
+
+ [cff] Modify an FT_ASSERT.
+
+ * src/cff/cf2hints.c (cf2_hintmap_map): After the fix for Savannah
+ bug #43661, the test font `...aspartam.otf' still triggers an
+ FT_ASSERT. Since hintmap still works with count==0, ...
+ (cf2_glyphpath_lineTo, cf2_glyphpath_curveTo): ... add that term to
+ suppress the assert.
+
+2014-12-04 Dave Arnold <darnold@adobe.com>
+
+ [cff] Fix Savannah bug #43661.
+
+ * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
+ cf2_cmdVSTEM, cf2_cmdHINTMASK>: Don't append to stem arrays after
+ hintmask is constructed.
+
+ * src/cff/cf2hints.c (cf2_hintmap_build): Add defensive code to
+ avoid reading past end of hintmask.
+
+2014-12-03 Werner Lemberg <wl@gnu.org>
+
+ docs/CHANGES: Updated.
+
+2014-12-03 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Better fix for conversion specifiers in debug messages.
+
+ Using `%ld' for pointer differences causes warnings on 32bit
+ platforms. The correct type would be (the relatively new) `%td',
+ however, this is missing on some important platforms.
+
+ This patch improves the change from 2014-11-28.
+
+ * src/autofit/afhints.c (AF_INDEX_NUM): Use `int' typecast. Our
+ pointer differences are always sufficiently small.
+ (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
+ af_glyph_hints_dump_edge): Revert to `%d' and use `AF_INDEX_NUM'.
+
+2014-12-03 Werner Lemberg <wl@gnu.org>
+
+ FT_Sfnt_Tag: s/ft_sfnt_xxx/FT_SFNT_XXX/ for orthogonality.
+
+ All public FreeType enumeration and flag values are uppercase...
+
+ * include/tttables.h (FT_Sfnt_Tag): Implement it. For backwards
+ compatilibity, retain the old values as macros.
+
+ * src/base/ftfstype.c (FT_Get_FSType_Flags), src/sfnt/sfdriver.c
+ (get_sfnt_table): Updated.
+
+2014-12-02 Werner Lemberg <wl@gnu.org>
+
+ * include/*: Improve structure of documentation.
+
+ . Add and update many `<Order>' tags.
+ . Apply various documentation fixes.
+ . Remove details to deprecated (or never implemented) data.
+
+2014-12-02 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Always handle `<Order>' section elements.
+
+ Previously, those elements were handled only for sections present in
+ a `<Sections>' chapter element.
+
+ * src/tools/docmaker/content.py (ContentProcessor::finish):
+ Implement it.
+
+2014-12-02 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Properly handle empty rows in Synopsis.
+
+ * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit
+ ` ' for empty fields.
+
+2014-12-02 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Thinko.
+
+ * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
+ Emit `/empty/' string for first element also.
+
+2014-12-02 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Honour empty lines in `<Order>' section element.
+
+ This greatly improves the readability of the `Synopsis' links.
+
+ * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
+ Insert string `/empty/' between items.
+
+ * src/tools/docmaker/formatter.py (Formatter::section_dump): Make it
+ robust against nonexistent keys.
+
+ * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit
+ empty <td> elements for `/empty/'.
+
+2014-12-02 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Ensure Python 3 compatibility.
+
+ * src/tools/docmaker/content.py (ContentProcessor::set_section,
+ ContentProcessor::finish): Replace `has_key' function with `in'
+ keyword.
+
+ * src/tools/docmaker/formatter.py (Formatter::__init__): Replace
+ sorting function with a key generator.
+ (Formatter::add_identifier): Replace `has_key' function with `in'
+ keyword.
+
+ * src/tools/docmaker/tohtml.py (HtmlFormatter::html_source_quote):
+ Replace `has_key' function with `in' keyword.
+ (HtmlFormatter::index_exit, HtmlFormatter::section_enter): Use
+ integer division.
+ s/<>/>/.
+
+ * src/tools/docmaker/utils.py: Import `itertools'.
+ (index_sort): Replaced by...
+ (index_key): ... this new key generator (doing exactly the same).
+
+2014-11-29 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Don't output a block multiple times.
+
+ This bug was hidden by not processing all lines of `<Order>' blocks.
+
+ * src/tools/docmaker/formatter.py (Formatter::section_dump): Filter
+ out field names.
+
+2014-11-29 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Use field values as HTML link targets where possible.
+
+ * src/tools/docmaker/tohtml.py (HtmlFormatter::make_block_url):
+ Accept second, optional argument to specify a name.
+ (HtmlFormatter::html_source_quote): Link to field ID if possible.
+ (HtmlFormatter::print_html_field_list): Emit `id' attribute.
+
+2014-11-29 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Allow empty lines in `<Order>' blocks.
+
+ Before this patch, the suggested order of entries stopped at the
+ first empty line.
+
+ Obviously, nobody noticed that this problem caused a much reduced
+ set of links in the `Synopsis' sections; in particular, the
+ `<Order>' blocks contain a lot of entries that wouldn't be listed
+ otherwise...
+
+ * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
+ New function to iterate over all items.
+ (DocSection::process): Use it.
+
+2014-11-29 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/docmaker/sources.py (column) [Format 2]: Fix regexp.
+
+ After the single asterisk there must be no other immediately following
+ asterisk.
+
+2014-11-29 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/docmaker/tohtml.py: Improve CSS for vertical spacing.
+
+2014-11-29 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Improve HTML code for table of contents.
+
+ * src/tools/docmaker/tohtml.py: Introduce a new table class `toc',
+ together with proper CSS.
+
+2014-11-29 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Provide higher-level markup and simplify HTML.
+
+ * src/tools/docmaker/tohtml.py: Instead of using extraneous `<div>'
+ elements, use CSS descendants (of class `section') to format the
+ data.
+
+ Also remove reduntant <p> and <br> elements, replacing them with
+ proper CSS.
+
+ Globally reduce page width to 75%.
+
+ (block_header): Rename <div> class to `section'.
+
+2014-11-29 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Add `top' links after blocks.
+
+ * src/tools/docmaker/tohtml.py (block_footer_middle): Implement it.
+
+2014-11-29 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/docmaker/tohtml.py: Improve CSS for fields.
+
+ Make fields align horizontally relative to full line width.
+
+2014-11-29 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/docmaker/tohtml.py: Fix index and TOC templates.
+
+ This thinko was introduced 2014-11-27.
+
+2014-11-28 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Format field lists with CSS.
+
+ This also simplifies the inserted HTML code.
+
+ * src/tools/docmaker/tohtml.py
+ (HtmlFormatter::print_html_field_list): Do it.
+
+2014-11-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ Fix compiler warning to the comparison between signed and
+ unsigned variable.
+
+ * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix the comparison
+ between `ypos + ysize' and FT_INT_{MAX,MIN}.
+
+2014-11-28 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Replace empty `<td>' with CSS.
+
+ * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Do
+ it.
+
+2014-11-28 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Replace some `<table>' tags with `<h4>' and `<div>'.
+
+ * src/tools/docmaker/tohtml.py (marker_*): Use `<h4>'.
+ (source_*): Use `<div>'.
+ (HtmlFormatter::block_enter): s/<h4>/<h3>/.
+
+2014-11-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ Fix compiler warning to conversion specifiers in debug messages.
+
+ * src/autofit/afhints.c (af_glyph_hints_dump_points): Add length
+ modifier to dump long integers.
+ (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Ditto.
+
+2014-11-27 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/docmaker/tohtml.py: Use more CSS for index.
+
+2014-11-27 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Replace `name' attribute of `<a>' with `id'.
+
+ * src/tools/docmaker/tohtml.py (HtmlFormatter::block_enter): Do it.
+
+2014-11-27 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/docmaker/tohtml.py: Remove remaining `width' attributes.
+
+ For `Index' and `TOC' links, we now simply use the `text-align' CSS
+ property of `<td>' to enforce flush-left and flush-right,
+ eliminating the hack with an empty, full-width `<td>' element
+ inbetween.
+
+ The change also enforces the same (smaller) size for all index and
+ TOC links.
+
+2014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ * src/cff/cf2font.c: Include `ftcalc.h' to use FT_MSB(),
+ cf2font.c could not find it under `make multi' build.
+
+2014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove
+ unrequired negative value check for `width' and `height'.
+
+2014-11-27 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/docmaker/tohtml.py: More HTML table refactoring.
+
+ Replace some `<table>' tags with `<div>' to simplify structure.
+
+ Move `bgcolor' attribute to CSS.
+
+ Replace most `width' attributes with CSS. The remaining instances
+ (providing a similar effect as LaTeX's `\hfill' command) are removed
+ in a later patch.
+
+2014-11-27 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/docmaker/tohtml.py: Replace <font> with CSS.
+
+2014-11-27 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/docmaker/tohtml.py: Center <table> with CSS.
+
+2014-11-27 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/docmaker/tohtml.py: Replace `<center>' with `<div>'.
+
+2014-11-27 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/docmaker/tohtml.py: Remove redundant `<center>' tags.
+
+ This starts a series of commits into the direction of generating
+ valid HTML 5 code, especially using much more CSS.
+
+2014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ Prevent too negative values (< FT_INT_MIN) in bitmap metrics,
+ suggested by Alexei.
+
+ * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Prevent too
+ negative values in `xpos' and `ypos + ysize'.
+ * src/smooth/ftsmooth.c (ft_smooth_render_generic): Prevent
+ too negative values in `x_left' and `y_top'. Either negative
+ values in `width' and `height' are checked.
+
+2014-11-27 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Produce better HTML code.
+
+ * src/tools/docmaker/tohtml.py: Always use double quotes for
+ attribute values.
+ (source_footer): Close `td' and `tr' groups.
+
+2014-11-27 Werner Lemberg <wl@gnu.org>
+
+ Use better way to disable creation of .pyc files for `make refdoc'.
+
+ Python 2.6 was released in 2008...
+
+ * builds/freetype.mk (refdoc): Use python's `-B' option.
+
+ * builds/detect.mk (std_setup, dos_setup): Mention required python
+ version for `refdoc' target.
+
+2014-11-27 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/docmaker/sources.py (re_bold, re_italic): Use
+ non-grouping parentheses.
+ * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word):
+ Updated.
+
+2014-11-27 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix compiler warning.
+
+ Introdruced in previous change. Reported by Alexei.
+
+2014-11-26 Werner Lemberg <wl@gnu.org>
+
+ * src/*: Add checks for parameters of API functions where missing.
+
+ `API functions' are functions tagged with `FT_EXPORT_DEF'.
+
+ Besides trivial fixes, the following changes are included, too.
+
+ * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Set
+ error code if no service is available.
+
+ * src/base/ftinit.c (FT_Done_FreeType): Change return value for
+ invalid `library' parameter to `Invalid_Library_Handle'.
+
+ * src/base/ftobjs.c (FT_New_Size): Change return value for invalid
+ `asize' parameter to `Invalid_Argument'.
+
+ * src/base/ftoutln.c (FT_Outline_Copy): Change return value for
+ invalid `source' and `target' parameters to `Invalid_Outline'.
+ (FT_Outline_Done_Internal): Change return value for invalid
+ `outline' parameter to `Invalid_Outline'.
+
+2014-11-26 Werner Lemberg <wl@gnu.org>
+
+ * src/cache/ftcbasic.c: Use single calls to `FT_TRACE'.
+
+2014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ * src/base/ftobj.c (Mac_Read_POST_Resource): Additional
+ overflow check in the summation of POST fragment lengths,
+ suggested by Mateusz Jurczyk <mjurczyk@google.com>.
+
+2014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ * src/base/ftobjs.c (Mac_Read_POST_Resource): Insert comments
+ and fold too long tracing messages.
+
+2014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ Fix Savannah bug #43540.
+
+ * src/base/ftmac.c (parse_fond): Prevent a buffer overrun
+ caused by a font including too many (> 63) strings to store
+ names[] table.
+
+2014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ * src/base/ftobjs.c (Mac_Read_POST_Resource): Use unsigned long
+ variables to read the lengths in POST fragments. Suggested by
+ Mateusz Jurczyk <mjurczyk@google.com>.
+
+2014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ Fix Savannah bug #43539.
+
+ * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
+ by a broken POST table in resource-fork.
+
+2014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ Fix Savannah bug #43538.
+
+ * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
+ by a broken POST table in resource-fork.
+
+2014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ * src/base/ftobjs.c (Mac_Read_POST_Resource): Avoid memory leak
+ by a broken POST table in resource-fork. Return after freeing
+ the buffered POST table when it is found to be broken.
+
+2014-11-25 Werner Lemberg <wl@gnu.org>
+
+ */*: s/Invalid_Argument/Invalid_Size_Handle/ where appropriate.
+
+2014-11-25 Werner Lemberg <wl@gnu.org>
+
+ */*: s/Invalid_Argument/Invalid_Stream_Handle/ where appropriate.
+
+2014-11-25 Werner Lemberg <wl@gnu.org>
+
+ */*: s/Invalid_Argument/Invalid_Library_Handle/ where appropriate.
+
+2014-11-25 Werner Lemberg <wl@gnu.org>
+
+ */*: s/Invalid_Argument/Invalid_Outline/ where appropriate.
+
+2014-11-25 Werner Lemberg <wl@gnu.org>
+
+ */*: s/Invalid_Argument/Invalid_Face_Handle/ where appropriate.
+
+2014-11-24 Werner Lemberg <wl@gnu.org>
+
+ [Savannah bug #43682] Adjust some renderer callbacks.
+
+ * src/raster/ftraster.c (ft_black_set_mode): Change return type to
+ `int' to stay in sync with `FT_Renderer_SetModeFunc' prototype.
+
+ * src/smooth/ftgrays.c (gray_raster_set_mode): New dummy function
+ for orthogonality.
+ (ft_grays_raster): Use it.
+
+2014-11-25 Werner Lemberg <wl@gnu.org>
+
+ [Savannah bug #43682] Properly handle missing return errors.
+
+ The functions in this patch *do* return non-trivial errors that must
+ be taken care of.
+
+ * src/autofit/afloader.c (af_loader_load_g), src/base/ftobjs.c
+ (FT_Render_Glyph_Internal), src/base/ftoutln.c (FT_Outline_Render),
+ src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_endchar>,
+ src/psaux/psobjs.c (ps_parser_load_field_table), src/psaux/t1decode
+ (t1_decoder_parse_charstrings) <op_endchar>, src/truetype/ttgload.c
+ (load_truetype_glyph <subglyph loop>, tt_loader_init,
+ TT_Load_Glyph), src/truetype/ttgxvar.c (TT_Set_MM_Blend),
+ src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Do it.
+
+2014-11-25 Werner Lemberg <wl@gnu.org>
+
+ [Savannah bug #43682] Add/remove `void' casts to some functions.
+
+ We use a cast to indicate that we intentionally ignore a function's
+ return value. However, this doesn't apply to API functions where
+ errors can only happen for trivially invalid input.
+
+ * src/base/ftstroke.c (FT_Glyph_Stroke, FT_Glyph_StrokeBorder),
+ src/base/ftsynth.c (FT_GlyphSlot_Embolden), src/cff/cffgload.c
+ (cff_slot_load), src/pfr/pfrdrivr.c (pfr_get_kerning),
+ src/type1/t1load.c (parse_encoding), src/type42/t42parse.c
+ (t42_parse_encoding): Do it.
+
+2014-11-25 Werner Lemberg <wl@gnu.org>
+
+ [Savannah bug #43682] Change some signatures to `void' return type.
+
+ * include/internal/pshints.h (PSH_Globals_SetScaleFunc),
+ include/internal/sfnt.h (TT_Get_Metrics_Func),
+ src/pshinter/pshglob.c (psh_globals_set_scale),
+ src/pshinter/pshrec.c (ps_hints_init), src/sfnt/ttmtx.c
+ (tt_face_get_metrics), src/truetype/ttinterp.c (TT_Goto_CodeRange,
+ TT_Set_CodeRange, TT_Clear_CodeRange, TT_Done_Context,
+ TT_Save_Context): Do it.
+
+ * src/pshinter/pshglob.h, src/pshinter/pshrec.h, src/sfnt/ttmtx.h,
+ src/truetype/ttgload.c (TT_Hint_Glyph), src/truetype/ttinterp.c
+ (TT_Run_Context), src/truetype/ttinterp.h, src/truetype/ttobjs.c
+ (tt_size_run_fpgm, tt_size_run_prep): Updated.
+
+2014-11-24 Werner Lemberg <wl@gnu.org>
+
+ Remove all code related to FT_MAX_CHARMAP_CACHEABLE.
+
+ This is no longer used.
+
+ * src/base/ftobjs.c, src/cache/ftccmap.c, src/cff/cffobjs.c,
+ src/sfnt/ttcmap.c: Do it.
+
+2014-11-24 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix Savannah bug #43680.
+
+ This adds an additional constraint to make the fix from 2013-01-25
+ really work.
+
+ * src/sfnt/ttsbit.c (tt_sbit_decoder_load_image) <index_format==4>:
+ Check `p' before `num_glyphs'.
+
+2014-11-24 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Fix Savannah bug #43679.
+
+ * src/truetype/ttpload.c (tt_face_load_hdmx): Check minimum size of
+ `record_size'.
+
+2014-11-24 Jarkko Pöyry <jarkko.poyry@gmail.com>
+
+ [cff, pfr, psaux, winfonts] Fix Savannah bug #43676.
+
+ Don't cast cmap init function pointers to an incompatible type.
+
+ Without this patch, the number of parameters between declaration and
+ the real signature differs. Calling such a function results in
+ undefined behavior.
+
+ ISO/IEC 9899:TC3 (Committee Draft September 7, 2007)
+ 6.5.2.2 Function calls
+ 9 If the function is defined with a type that is not
+ compatible with the type (of the expression) pointed to by
+ the expression that denotes the called function, the
+ behavior is undefined.
+
+ On certain platforms (c -> js with emscripten) this causes
+ termination of execution or invalid calls because in the emscripten
+ implementation, function pointers of different types are stored in
+ different pointer arrays. Incorrect pointer type here results in
+ indexing of an incorrect array.
+
+ * src/cff/cffcmap.c (cff_cmap_encoding_init, cff_cmap_unicode_init),
+ src/pfr/pfrcmap.c (pfr_cmap_init), src/psaux/t1cmap.c
+ t1_cmap_standard_init, t1_cmap_expert_init, t1_cmap_custom_init,
+ t1_cmap_unicode_init), src/winfonts/winfnt.c (fnt_cmap_init): Fix
+ signature.
+
+2014-11-24 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix Savannah bug #43672.
+
+ * src/sfnt/ttkern.c (tt_face_load_kern): Use correct value for
+ minimum table length test.
+
+2014-11-24 Werner Lemberg <wl@gnu.org>
+
+ [type1, type42] Another fix for Savannah bug #43655.
+
+ * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
+ (t42_parse_charstrings): Add another boundary testing.
+
+2014-11-24 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Formatting, copyright, improved documentation.
+
+ * src/tools/docmaker/*: No code changes besides trivial
+ modifications.
+
+2014-11-22 Werner Lemberg <wl@gnu.org>
+
+ [bdf] Fix Savannah bug #43660.
+
+ * src/bdf/bdflib.c (_bdf_parse_glyphs) <"ENDFONT">: Check
+ `_BDF_GLYPH_BITS'.
+
+2014-11-22 Werner Lemberg <wl@gnu.org>
+
+ [type42] Allow only embedded TrueType fonts.
+
+ This is a follow-up to Savannah bug #43659.
+
+ * src/type42/t42objs.c (T42_Face_Init): Exclusively use the
+ `truetype' font driver for loading the font contained in the `sfnts'
+ array.
+
+2014-11-22 Werner Lemberg <wl@gnu.org>
+
+ [type42] Fix Savannah bug #43659.
+
+ * src/type42/t42objs.c (T42_Open_Face): Initialize `face->ttf_size'.
+
+ * src/type42/t42parse.c (t42_parse_sfnts): Always set
+ `face->ttf_size' directly. This ensures a correct stream size in
+ the call to `FT_Open_Face', which follows after parsing, even for
+ buggy input data.
+ Fix error messages.
+
+2014-11-22 Werner Lemberg <wl@gnu.org>
+
+ [cff] Fix Savannah bug #43658.
+
+ * src/cff/cf2ft.c (cf2_builder_lineTo, cf2_builder_cubeTo): Handle
+ return values of point allocation routines.
+
+2014-11-22 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix Savannah bug #43656.
+
+ * src/sfnt/ttcmap.c (tt_cmap4_validate): Fix order of validity
+ tests.
+
+2014-11-21 Werner Lemberg <wl@gnu.org>
+
+ [type1, type42] Fix Savannah bug #43655.
+
+ * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
+ (t42_parse_charstrings): Fix boundary testing.
+
+2014-11-21 Werner Lemberg <wl@gnu.org>
+
+ * src/pcf/pcfread.c (pcf_get_metrics): Sanitize invalid metrics.
+
+2014-11-21 Werner Lemberg <wl@gnu.org>
+
+ [ftlcdfil] Obey flow direction.
+
+ * src/base/ftlcdfil.c (_ft_lcd_filter_fir, _ft_lcd_filter_legacy):
+ Handle `up' flow.
+
+2014-11-21 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftbitmap.c (FT_Bitmap_Convert): Improve.
+
+ This commit completes argument checks and adds support for different
+ flow directions.
+
+2014-11-21 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftbitmap.c (FT_Bitmap_Copy): Improve.
+
+ This commit adds argument checks and support for different flow
+ directions.
+
+2014-11-20 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftbitmap.c (FT_Bitmap_New): Check argument.
+
+2014-11-19 Werner Lemberg <wl@gnu.org>
+
+ Change some fields in `FT_Bitmap' to unsigned type.
+
+ This doesn't break ABI.
+
+ * include/ftimage.h (FT_Bitmap): Make `rows', `width', `num_grays',
+ `pixel_mode', and `palette_mode' unsigned types.
+
+ * src/base/ftbitmap.c: Updated.
+ (FT_Bitmap_Copy): Fix casts.
+
+ * src/cache/ftcsbits.c, src/raster/ftraster.c, src/sfnt/pngshim.c:
+ Updated.
+
+2014-11-19 Werner Lemberg <wl@gnu.org>
+
+ Make `FT_Bitmap_Convert' correctly handle negative `pitch' values.
+
+ * src/base/ftbitmap.c (FT_Bitmap_Convert): Always use positive value
+ for the pitch while copying data.
+ Correctly set pitch sign in target bitmap.
+
+2014-11-19 Werner Lemberg <wl@gnu.org>
+
+ Minor code improvement in `FT_Bitmap_Embolden'.
+
+ * src/base/ftbitmap.c (FT_Bitmap_Embolden) <FT_PIXEL_MODE_GRAY[24]>:
+ Fix thinko.
+
+2014-11-19 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/fttrigon.c: Use dedicated `FT_Angle' for arctan table.
+
+2014-11-19 Behdad Esfahbod <behdad@behdad.org>
+
+ Avoid compiler warnings on x86-64 for `FT_MulFix'.
+
+ `FT_MulFix' takes `FT_Long' parameters as defined in `freetype.h',
+ but several inline implementations of it in `ftcalc.h' take
+ `FT_Int32' arguments. This is causing compiler warnings on x86-64:
+ If parameters of type `FT_Fixed' (= `FT_Long') are passed to the
+ inline implementation of this function, integer values are truncated
+ from 64bit to 32bit.
+
+ * include/internal/ftcalc.h (FT_MulFix) [FT_MULFIX_ASSEMBLER]: Add
+ casts.
+
+2014-11-15 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix Savannah bug #43597.
+
+ * src/sfnt/pngshim.c (Load_SBit_Png): Protect against too large
+ bitmaps.
+
+2014-11-12 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix Savannah bug #43591.
+
+ * src/sfnt/ttsbit.c (tt_sbit_decoder_init): Protect against addition
+ and multiplication overflow.
+
+2014-11-12 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix Savannah bug #43590.
+
+ * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir):
+ Protect against addition overflow.
+
+2014-11-12 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix Savannah bug #43589.
+
+ * src/sfnt/sfobjs.c (woff_open_font): Protect against addition
+ overflow.
+
+2014-11-12 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix Savannah bug #43588.
+
+ * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate,
+ tt_cmap12_validate, tt_cmap13_validate, tt_cmap14_validate): Protect
+ against overflow in additions and multiplications.
+
+2014-11-10 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] CORDIC improvements.
+
+ The scaling between the hypotenuse and its CORDIC approximation is
+ based on regression analysis. The smaller padding for `theta' is
+ justifed by its maximum error of less than 6.
+
+ * src/base/fttrigon.c (ft_trig_downscale): Borrow code from
+ ./ftcalc.c (ft_multo64), change linear intercept.
+ (ft_trig_pseudo_polarize): Decrease `theta' padding.
+
+2014-11-09 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftstroke.c (ft_stroker_inside): Fix border intersections.
+
+ One more place to check whether `radius' is zero.
+
+ Problem reported by Marco Wertz <marco.wertz@gmx.de>.
+
+2014-11-07 Werner Lemberg <wl@gnu.org>
+
+ [bdf] Fix Savannah bug #43535.
+
+ * src/bdf/bdflib.c (_bdf_strncmp): New macro that checks one
+ character more than `strncmp'.
+ s/ft_strncmp/_bdf_strncmp/ everywhere.
+
+2014-11-06 Werner Lemberg <wl@gnu.org>
+
+ [pcf] Fix Savannah bug #43548.
+
+ * src/pcf/pcfread.c (pcf_get_encodings): Add sanity checks for row
+ and column values.
+
+2014-11-06 Werner Lemberg <wl@gnu.org>
+
+ [pcf] Fix Savannah bug #43547.
+
+ * src/pcf/pcfread.c (pcf_read_TOC): Check `size' and `offset'
+ values.
+
+2014-11-06 Werner Lemberg <wl@gnu.org>
+
+ * src/pcf/pcfread.c (pcf_read_TOC): Avoid memory leak.
+
+2014-11-03 Infinality <infinality@infinality.net>
+
+ * src/truetype/ttsubpix.c (COMPATIBILITY_MODE_Rules): Updated.
+
+ The previous commit deteriorates rendering of DejaVu and similar
+ fonts; this gets compensated with this rule.
+
+2014-11-03 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttinterp.c (Ins_DELTAP): Fix subpixel hinting.
+
+ Before this patch, it was impossible to ever call DELTAP[123] in
+ subpixel hinting mode as described in the ClearType whitepaper; it
+ only worked if in `compatibility mode'. However, compatibility mode
+ essentially disables SHPIX, completely ruining hinting of
+ ttfautohint output, for example.
+
+ We now follow the whitepaper more closely so that DELTAP[123]
+ instructions for touched points in the non-subpixel direction are
+ executed.
+
+2014-10-31 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [smooth] Improve code readability.
+
+ * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
+
+2014-10-31 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [smooth] Reduce outline translations during rendering.
+
+ * src/smooth/ftsmooth.c (ft_smooth_render_generic): Translate origin
+ virtually by modifying cbox, actually translate outline if cumulative
+ shift is not zero.
+
+2014-10-30 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [smooth] Fix Savannah bug #35604 (cont'd).
+
+ * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove checks and
+ casts that became unnecessary after the variable type upgrades.
+
+2014-10-29 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [smooth] Improve code readability.
+
+ * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
+
+2014-10-29 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ Unify hypotenuse approximations.
+
+ * include/internal/ftcalc.h (FT_HYPOT): Move macro from here...
+ * include/internal/ftobjs.h: ... to here, next to required `FT_ABS'.
+ * src/smooth/ftgrays.c (gray_render_cubic): Use it here.
+
+2014-10-25 Werner Lemberg <wl@gnu.org>
+
+ [cff] Test valid darkening parameter macros in `ftoption.h'.
+
+ We no longer need an otherwise unused typedef that can cause a gcc
+ warning.
+ Problem reported by Alexei.
+
+ * src/cff/cffobjs.c (cff_driver_init): Use
+ `CFF_CONFIG_OPTION_DARKENING_PARAMETER_XXX' macros directly.
+ (SET_DARKENING_PARAMETERS): Removed.
+ Compile time tests are now ...
+
+ * devel/ftoption.h, include/config/ftoption.h: ... here.
+
+2014-10-25 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ Improve flat corner definition.
+
+ * include/internal/ftcalc.h (FT_HYPOT): Macro to approximate Euclidean
+ distance with the alpha max plus beta min algorithm.
+ * src/base/ftcalc.c (ft_corner_is_flat): Use it instead of Taxicab
+ metric.
+
+2014-10-23 David Weiß <David.Weiss@ptvgroup.com>
+
+ [build] Improve property file for vc2010.
+
+ User-defined properties should be empty by default to prevent linker
+ failures.
+
+ * builds/windows/vc2010/freetype.user.props,
+ builds/windows/vc2010/freetype.vcxproj:
+ s/OptionsDirectory/UserOptionDirectory/.
+ Comment out all user options.
+
+2014-10-23 Werner Lemberg <wl@gnu.org>
+
+ [cff] Work around bug in preprocessor of MSVC 2010.
+
+ We have been hit by
+
+ https://connect.microsoft.com/VisualStudio/feedback/details/718976/msvc-pr
+
+ * devel/ftoption.h, include/config/ftoption.h: Replace
+ `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' with eight macros
+ `CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}'.
+
+ * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS): Removed. We no
+ longer need double expansion.
+ (SET_DARKENING_PARAMETERS_0): Renamed to ...
+ (SET_DARKENING_PARAMETERS): ... this.
+ Update call.
+
+2014-10-20 Werner Lemberg <wl@gnu.org>
+
+ [sbit] Minor fixes.
+
+ * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
+ Accept overlay format also, but emit warning message in that case.
+ (tt_sbit_decoder_load_metrics): Add missing newline to error
+ message.
+ (tt_sbit_load_sbix_image): Add `rgbl' graphic type (as used on iOS
+ 7.1) to the list of unsupported formats.
+
+2014-10-19 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [truetype] Clean up bytecode rounding.
+
+ Zero distance does not have to be treated specially if you follow
+ specifications and check the sign as the very last step of rounding.
+
+ * src/truetype/ttinterp.c (Round_None, Round_To_Grid,
+ Round_Down_To_Grid, Round_Up_To_Grid, Round_To_Double_Grid): Use
+ macros when available, do not check for non-zero distance.
+ (Round_To_Half_Grid, Round_Super, Round_Super_45): Ditto, return phase
+ if sign changed.
+
+2014-10-18 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [truetype] Unwrap engine compensation settings.
+
+ * src/truetype/ttobjs.c (tt_size_init_bytecode): Updated.
+
+2014-10-18 David Weiß <David.Weiss@ptvgroup.com>
+
+ [build] Add property file to vc2010 project.
+
+ This simplifies custom build configurations, especially for
+ automated build environments.
+
+ * builds/windows/vc2010/freetype.user.props: New configuration file.
+
+ * builds/windows/vc2010/freetype.vcxproj: Include
+ `freetype.user.props' and use its data fields.
+
+ * builds/windows/vc2010/index.html: Updated.
+
+2014-10-18 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Add blue-zone support for Telugu.
+
+ This essentially moves the Telugu script from the `Indic' hinter to
+ the `Latin' hinter.
+
+ Note that this is a first shot and quite certainly needs
+ refinements.
+
+ * src/autofit/afblue.dat: Add blue zone data for Telugu.
+
+ * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+ * src/autofit/afscript.h: Add Telugu standard characters and move
+ data out of AF_CONFIG_OPTION_INDIC block.
+
+ * src/autofit/afranges.c: Move Telugu data out of
+ AF_CONFIG_OPTION_INDIC block.
+
+ * src/autofit/afstyles.h: Update Telugu data; in particular, use
+ AF_WRITING_SYSTEM_LATIN.
+
+2014-10-18 David Wimsey <david@wimsey.us>
+
+ [cmake] Add iOS build support.
+ From Savannah patch #8497.
+
+ * builds/cmake/iOS.cmake: New file. Universal binaries are built
+ with both 32 and 64 bit arm architectures.
+
+ * CMakeLists.txt (IOS_PLATFORM): New variable for running the iOS
+ toolchain. Possible values are `OS' to build on iOS, or
+ `SIMULATOR' to build on APPLE.
+
+2014-10-16 Behdad Esfahbod <behdad@behdad.org>
+ Werner Lemberg <wl@gnu.org>
+
+ [cff] Add `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' config macro.
+
+ * devel/ftoption.h, include/config/ftoption.h
+ (CFF_CONFIG_OPTION_DARKENING_PARAMETERS): New macro.
+
+ * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS,
+ SET_DARKENING_PARAMETERS_0): New macros.
+ (cff_driver_init): Use new macros.
+
+2014-10-14 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [truetype] Limit delta shift range.
+
+ The valid range for delta shift is zero through six. Negative values
+ are invalid according to
+
+ https://developer.apple.com/fonts/TrueType-Reference-Manual/RM04/Chap4.html#delta%20shift
+
+ * src/truetype/ttobjs.h (delta_shift, delta_base): Make unsigned.
+ * src/truetype/ttinterp.h (DO_SDS): Throw an error if `delta_shift'
+ is out of range.
+ (Ins_DELTAP, Ins_DELTAC): Optimize for valid `delta_shift'.
+
+2014-10-16 Werner Lemberg <wl@gnu.org>
+
+ A better fix for Savannah bug #43392.
+ Suggested by Doug Felt <dougfelt@gmail.com>.
+
+ * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Set
+ `vertAdvance' to zero...
+
+ * src/truetype/ttgload.c (TT_Load_Glyph): ... and set here a default
+ value for `vertAdvance' based on `linearVertAdvance' in case
+ `vertAdvance' is zero. Note that the previous computed ad-hoc value
+ for `linearVertAdvance' was apparently not tested in a real-life
+ situation.
+
+2014-10-14 David Weiß <David.Weiss@ptvgroup.com>
+
+ [build] Better optimization settings for vc2010 solution file.
+
+ * builds/windows/vc2010/freetype.sln,
+ builds/windows/vc2010/freetype.vcxproj: Updated.
+
+2014-10-14 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Adjust Devenagari character range.
+
+ * src/autofit/afranges.c (af_deva_uniranges): Omit characters that
+ are common to all other Indic scripts.
+
+2014-10-12 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix Savannah bug #43392.
+
+ * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Don't let
+ vertical metrics uninitialized.
+
+2014-10-11 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Small bbox correction.
+
+ * src/base/ftbbox.c (FT_Outline_Get_BBox): Start from nonsense bbox
+ instead of initial point that could be `off' in conic outlines.
+
+2014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Fix Savannah bug #43356.
+
+ * src/base/ftbbox.c (BBox_Move_To, BBox_Conic_To): Update bbox in case
+ of implicit `to'.
+ (BBox_Line_To): New emitter that does not update bbox.
+
+2014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Introduce and use new macro `FT_UPDATE_BBOX'
+
+ * src/base/ftbbox.c (FT_UPDATE_BBOX): New macro.
+ (FT_Outline_Get_BBox): Use it here.
+
+2014-10-02 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Significant optimization of `ft_div64by32'
+
+ We shift as many bits as we can into the high register, perform
+ 32-bit division with modulo there, then work through the remaining
+ bits with long division. This optimization is especially noticeable
+ for smaller dividends that barely use the high register.
+
+ * src/base/ftcalc.c (ft_div64by32): Updated.
+
+2014-10-02 Dave Arnold <darnold@adobe.com>
+
+ [cff] Fix Savannah bug #43271.
+
+ * src/cff/cf2font.c (cf2_computeDarkening): Change overflow
+ detection to use logarithms and clamp `scaledStem'.
+
+2014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftcalc.c: Remove miscellaneous type casts.
+
+2014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Use more common `FT_MSB' implementation with masks.
+
+ * src/base/ftcalc.c (FT_MSB): Updated.
+
+2014-09-30 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Clean up.
+
+ * src/base/ftcalc.c (FT_MOVE_SIGN): New macro for frequently used
+ code.
+
+2014-09-25 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Avoid unnecessary long division.
+
+ This applies to `FT_MulDiv' but not to `FT_DivFix', where overflows or
+ lack thereof are predicted accurately.
+
+ * src/base/ftcalc.c (ft_div64by32): Improve readability.
+ (FT_MulDiv, FT_MulDiv_No_Round) [!FT_LONG64]: Use straight division
+ when multiplication stayed within 32 bits.
+
+2014-09-24 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Minor clean-ups.
+
+ * src/autofit/afhints.c (AF_FLAGS): Remove obsolete values.
+
+ * src/autofit/afhints.c (af_glyph_hints_dump_points,
+ af_glyph_hints_align_strong_points): Updated.
+
+ * src/autofit/aflatin.c (af_latin_hints_link_segments,
+ af_latin_hints_compute_segments), src/autofit/afcjk.c
+ (af_cjk_hints_link_segments), src/autofit/aflatin2.c
+ (af_latin2_hints_link_segments, af_latin2_hints_compute_segments):
+ There are no longer fake segments since more than 10 years...
+
+2014-09-22 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Minor code streamlining.
+
+ * src/autofit/afhints.c (af_axis_hints_new_edge): Remove redundant
+ initialization.
+
+2014-09-19 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftcalc.c: Harmonize code.
+
+2014-09-15 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Tighten the overflow check in `FT_MulDiv'.
+
+ * src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated.
+
+2014-09-08 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ Fix Savannah bug #43153.
+
+ * src/psaux/psconv.c (PS_Conv_ToFixed): Add protection against
+ overflow in `divider'.
+
+2014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Tighten the overflow check in `FT_DivFix'.
+
+ This fixes a 13-year old bug. The original overflow check should have
+ been updated when rounding was introduced into this function
+ (c2cd00443b).
+
+ * src/base/ftcalc.c (FT_DivFix) [!FT_LONG64]: Updated.
+ * include/freetype.h (FT_DivFix): Updated documentation.
+
+2014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Tighten the overflow check in `FT_MulFix'.
+
+ * src/base/ftcalc.c (FT_MulFix) [!FT_LONG64]: Updated.
+
+2014-09-02 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [truetype] Shortcut ppem calculations for square pixels.
+
+ * src/truetype/ttinterp.h (TT_ExecContextRec): New field
+ `cur_ppem_func' with a function pointer.
+ * src/truetype/ttinterp.c (TT_RunIns): Initialize `cur_ppem_func'
+ depending on the pixel geometry to either...
+ (Current_Ppem_Stretched): ... this for stretched pixels.
+ (Current_Ppem): ... or this for square pixels.
+ (DO_MPPEM, DO_MPS, Ins_DELTAP, Ins_DELTAC): Use `cur_ppem_func'.
+
+2014-08-31 Behdad Esfahbod <behdad@behdad.org>
+
+ Don't use `register' keyword. Fixes compiler warnings.
+
+ * src/base/ftcalc.c (FT_Add64) [!FT_LONG64]: Do it.
+ * src/gzip/inftrees.c (huft_build): Ditto.
+ * src/truetype/ttinterp.c (TT_MulFix14_arm): Ditto.
+
+2014-08-24 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [truetype] Optimize DELTAP and DELTAC.
+
+ * src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem
+ calculations outside of the loop.
+
+2014-08-21 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ Fix Savannah bug #43033.
+
+ * include/config/ftconfig.h, builds/unix/ftconfig.in,
+ builds/vms/ftconfig.h [FT_LONG64]: Do not disable the macro when
+ 64-bit type is `long'.
+
+2014-08-20 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Small optimization of `FT_MulFix'.
+
+ * src/base/ftcalc.c (FT_MulFix): Loosen up the condition for direct
+ 32-bit calculations.
+
+2014-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Use unsigned calculation in `FT_MulDiv'.
+
+ * src/base/ftcalc.c (FT_MulDiv): Updated to expand 32-bit range.
+
+2014-08-18 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Remove truncation in `FT_DivFix'.
+
+ * src/base/ftcalc.c (FT_DivFix): Updated.
+
+2014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ Minor refactoring.
+
+ * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Updated.
+
+2014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ Turn FT_MSB into a macro when using gcc builtins.
+
+ * src/base/ftcalc.c, include/internal/ftcalc.h: Updated.
+
+2014-08-12 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Avoid undefined FT_MSB in `BBox_Cubic_Check'.
+
+ * src/base/ftbbox.c (BBox_Cubic_Check): Update.
+ (update_cubic_max): Repalce with...
+ (cubic_peak): ... this, which now handles upscaling.
+
+2014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Handle collapsed outlines to avoid undefined FT_MSB.
+
+ * src/base/ftoutln.c (FT_Outline_Get_Orientation): Update.
+
+2014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Restore FT_MulFix inlining.
+
+ * include/freetype.h (FT_MulFix): Unconditionally defined.
+
+ * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: Move code from here...
+
+ * include/internal/ftcalc.h [FT_MULFIX_ASSEMBLER]: ... to here,
+ which conditionally replaces the function with an inline version
+ through the macro.
+
+2014-08-08 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Refactor.
+
+2014-07-26 Werner Lemberg <wl@gnu.org>
+
+ [cff] Fix typo.
+
+ * src/cff/cf2hints.c (cf2_glyphpath_computeOffset): Use correct
+ offsets in third quadrant.
+
+ Reported by maks <maksqwe1@ukr.net>.
+
+2014-07-17 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #42788.
+
+ * src/pfr/pfrobjs.c: Include `ftcalc.h'.
+
+2014-07-16 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ Replace `ft_highpow2' function.
+
+ * src/pfr/pfrobjs.c (pfr_face_get_kerning): Use `FT_MSB' instead of
+ `ft_highpow2'.
+
+ * src/base/ftutil.c, include/internal/ftobjs.h (ft_highpow2): Remove
+ it.
+
+2014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftcalc.c (FT_MSB): Utilize gcc builtins.
+
+2014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Move assembler code back in the source file.
+
+ FT_MulFix assembler used to reside in ftcalc.c before f47d263f1b.
+
+ * include/config/ftconfig.h, builds/unix/ftconfig.in,
+ builds/vms/ftconfig.h [FT_MULFIX_ASSEMBLER]: Move code from here...
+
+ * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: ... to here.
+
+2014-07-14 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Further clean up color bitmap conversion.
+
+ * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Stop
+ using FT_MulFix and FT_DivFix since all calculations fit into 32 bits.
+
+2014-07-13 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Improve handling of buggy `prep' tables.
+
+ In case of an error in the `prep' table, no longer try to execute it
+ again and again. This makes FreeType handle endless loops in buggy
+ fonts much faster.
+
+ * src/truetype/ttobjs.h (TT_SizeRec): The fields `bytecode_ready'
+ and `cvt_ready' are now negative if not initialized yet, otherwise
+ they indicate the error code of the last run.
+
+ * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep,
+ tt_size_done_bytecode, tt_size_init_bytecode,
+ tt_size_ready_bytecode, tt_size_init, tt_size_done, tt_size_reset):
+ Updated.
+
+ * src/truetype/ttgload.c (tt_loader_init): Updated.
+ * src/truetype/ttinterp.c (TT_RunIns): Force reexecution of `fpgm'
+ and `prep' only if we are in the `glyf' table.
+
+2014-07-12 Werner Lemberg <wl@gnu.org>
+
+ * builds/vms/ftconfig.h: Synchronize.
+ Problem reported by Alexei.
+
+2014-07-11 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Clean up bitmap conversion.
+
+ * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
+ appropriate FT_DivFix and remove superfluous upscaling.
+
+2014-07-04 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Small optimization of the ancient code.
+
+ * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Loosen up the
+ condition for direct 32-bit calculations.
+
+2014-06-27 Werner Lemberg <wl@gnu.org>
+
+ Fix Apple standard glyph names.
+
+ * src/sfnt/ttpost.c (tt_post_default_names): Synchronize with
+ `tools/glnames.py'
+
+ Problem reported by Adam Twardoch <adam@fontlab.com>.
+
+2014-06-17 Werner Lemberg <wl@gnu.org>
+
+ Partially revert commit from 2014-06-13.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_blues): Move
+ declaration of `p_first' and `p_last' out of the loop.
+
+2014-06-17 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/freetype2.m4: s/AC_PATH_PROG/AC_PATH_TOOL/.
+
+ This simplifies cross-compiling.
+
+2014-06-13 Werner Lemberg <wl@gnu.org>
+
+ Fix more compiler warnings.
+ Reported by Wojciech Mamrak <wmamrak@gmail.com>.
+
+ * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
+ Make integer constant unsigned.
+
+ * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
+ <TT_SBIT_TABLE_TYPE_SBIX>: Fix types.
+ (tt_sbit_decoder_load_compound, tt_face_load_sbix_image): Add proper
+ casts.
+
+2014-06-13 Werner Lemberg <wl@gnu.org>
+
+ Fix compiler warnings.
+ Reported by Wojciech Mamrak <wmamrak@gmail.com>.
+
+ * src/autofit/afglobal.c (af_face_globals_compute_style_coverage),
+ src/autofit/afmodule.c (af_property_set): Fix `signed' vs.
+ `unsigned' issues.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_blues): Make compiler
+ happy.
+
+ * src/base/ftlcdfil.c (_ft_lcd_filter_fir): Use only four elements
+ for `fir'.
+ Fix `signed' vs. `unsigned' issues.
+
+ * src/sfnt/sfobjs.c (WRITE_BYTE): Removed, unused.
+ (WRITE_USHORT, WRITE_ULONG): Add proper casts.
+
+ * src/truetype/ttgload.c (TT_Get_VMetrics): Add proper casts.
+
+ * src/truetype/ttinterp.c (Ins_DELTAP): Add proper casts for `B1'
+ and `B2'.
+
+2014-05-16 Alexey Petruchik <alexey.petruchik@gmail.com>
+
+ [cmake] Add option to build OS X framework.
+
+ * CMakeLists.txt: Update accordingly.
+
+ * builds/mac/freetype-Info.plist: New file.
+
+2014-05-13 Pavel Koshevoy <pkoshevoy@gmail.com>
+
+ * CMakeLists.txt (BASE_SRCS): Add missing `ftbdf.c'.
+
+2014-05-11 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix variable initializations.
+
+ * src/autofit/afhints.c (af_glyph_hints_reload): Assign default
+ values to `in_dir' and `out_dir' for all points.
+
+2014-05-11 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix crash with font `CabinSketch-Bold.ttf'.
+
+ Problem reported by Ralf S. Engelschall <rse@engelschall.com>.
+
+ * src/autofit/afhints.c (af_glyph_hints_reload): Fix threshold for
+ finding first non-near point.
+ Properly initialize non-near point deltas.
+
+2014-05-01 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Add blue-zone support for Devanagari.
+
+ This essentially moves the Devanagari script from the `Indic' hinter
+ to the `Latin' hinter. Thanks to Girish Dalvi
+ <girish.dalvi@gmail.com> for guidance with blue zone characters!
+
+ * src/autofit/afblue.dat: Add blue zone data for Devanagari.
+
+ * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+ * src/autofit/afscript.h: Add Devanagari standard characters and
+ move data out of AF_CONFIG_OPTION_INDIC block.
+
+ * src/autofit/afranges.c: Move Devanagari data out of
+ AF_CONFIG_OPTION_INDIC block.
+ Move U+20B9, (new) Rupee sign, from Latin to Devanagari.
+
+ * src/autofit/afstyles.h: Update Devanagari data; in particular, use
+ AF_WRITING_SYSTEM_LATIN.
+
+2014-05-01 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix handling of neutral blue zones in stems.
+
+ * src/autofit/afhints.h (AF_Edge_Flags): New value
+ `AF_EDGE_NEUTRAL'.
+
+ * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Trace
+ neutral blue zones with AF_EDGE_NEUTRAL.
+ (af_latin_hint_edges): Skip neutral blue zones if necessary.
+
+2014-04-28 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Introduce neutral blue zones to the latin module.
+
+ Such blue zones match either the top or the bottom of a contour. We
+ need them for scripts where accent-like elements directly touch the
+ base character (for example, some vowel signs in Devanagari, cf.
+ U+0913 or U+0914).
+
+ * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_NEUTRAL): New
+ property.
+
+ * src/autofit/afblue.h: Regenerated.
+
+ * src/autofit/aflatin.h (AF_LATIN_IS_NEUTRAL_BLUE): New macro.
+ (AF_LATIN_BLUE_NEUTRAL): New enumeration value.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_blues,
+ af_latin_hints_compute_blue_edges): Handle neutral blue zones.
+
+2014-04-25 Werner Lemberg <wl@gnu.org>
+
+ * src/autofit/hbshim.c: Partially revert commit from 2014-04-17.
+
+ Using input glyph coverage data is simply wrong.
+
+ Problem reported by Nikolaus Waxweiler <madigens@gmail.com> and
+ Mantas MikulÄ—nas <grawity@gmail.com>.
+
+2014-04-23 Werner Lemberg <wl@gnu.org>
+
+ * src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode.
+
+ This spot has been missed while introducing support for various
+ drop-out modes years ago (including no drop-out mode, which this
+ commit fixes).
+
+ Problem reported by Patrick Thomas <pthomas505@gmail.com>.
+
+2014-04-22 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/pngshim.c (error_callback): s/longjmp/ft_longjmp/.
+
+2014-04-20 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix Savannah bug #42148.
+
+ The adaptation of the cjk auto-hinter module to blue stringsets in
+ 2013-08-25 had three severe bugs. Mea culpa.
+
+ 1. Contrary to the latin auto-hinter, characters for reference and
+ overshoot values of a blue zone are specified separately. Due to
+ the screwed-up change it didn't work at all.
+
+ 2. A boolean comparison was erroneously replaced with a cast,
+ causing invalid results with the `^' operator later on. The
+ visual artifact caused by this problem is the topic of the bug
+ report.
+
+ 3. Two flag values were inverted, causing incorrect assignment of
+ reference and overshoot values.
+
+ * src/autofit/afblue.dat: Fix CJK bluestrings, introducing a new
+ syntax to have both reference and overshoot characters in a single
+ string. This is error #1.
+ Add extensive comments.
+
+ * src/autofit/afblue.hin (AF_BLUE_PROPERTY_CJK_FILL): Removed, no
+ longer used.
+ (AF_BLUE_PROPERTY_CJK_TOP, AF_BLUE_PROPERTY_CJK_HORIZ): Fix values.
+ This is error #3.
+
+ * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+ * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Correct error #1.
+ Use character `|' to separate characters for reference and overshoot
+ values.
+ Improve tracing messages, synchronizing them with the latin
+ auto-hinter.
+ (af_cjk_hints_compute_blue_edges): Fix value of `is_top_right_blue'.
+ This is error #2.
+ (af_cjk_align_linked_edge): Add tracing message.
+
+ * src/autofit/afcjk.h (AF_CJK_IS_FILLED_BLUE): Removed, no longer
+ used.
+
+2014-04-17 Werner Lemberg <wl@gnu.org>
+
+ [autofit] More coverage fixes for complex scripts.
+
+ * src/autofit/hbshim.c (af_get_coverage): Merge input glyph coverage
+ of GSUB lookups into output coverage. Otherwise, ligatures are not
+ handled properly.
+ Don't check blue zone characters for default coverage.
+
+2014-04-17 Werner Lemberg <wl@gnu.org>
+
+ Make `FT_Get_SubGlyph_Info' actually work.
+
+ * src/base/ftobjs.c (FT_Get_SubGlyph_Info): Return FT_Err_Ok
+ if there is no error.
+
+2014-04-15 Werner Lemberg <wl@gnu.org>
+
+ [afblue.pl]: Minor improvements.
+
+ * src/tools/afblue.pl: Allow whitespace before comments.
+ Ignore whitespace in strings.
+
+2014-04-14 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Improve coverage handling.
+
+ * src/autofit/hbshim.c (af_get_coverage): Don't exclude glyphs
+ appearing in the GPOS table if we are processing the default
+ coverage.
+
+2014-04-13 David Weber <weber.aulendorf@googlemail.com>
+
+ [smooth] Fix stand-alone compilation.
+
+ * src/smooth/ftgrays.c (FT_BEGIN_STMNT, FT_END_STMNT): Define.
+
+2014-04-12 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Redesign the recognition algorithm of strong points.
+
+ In particular, local extrema without horizontal or vertical segments
+ are better recognized:
+
+ + A + D
+ \ /
+ \ /
+ \ /
+ \ /
+ \ + C
+ \ /
+ B +/
+
+ If the distances AB and CD are large, point B wasn't previously
+ detected as an extremum since the `ft_corner_is_flat' function
+ `swallowed' BC regardless of its direction, tagging point B as weak.
+ The next iteration started at B and made `ft_corner_is_flat' swallow
+ point C, tagging it as weak also, et voilà.
+
+ To improve that, another pass gets now performed before calling
+ `ft_corner_is_flat' to improve the `topology' of an outline: A
+ sequence of non-horizontal or non-vertical vectors that point into
+ the same quadrant are handled as a single, large vector.
+
+ Additionally, distances of near points are now accumulated, which
+ makes the auto-hinter handle them as if they were prepended to the
+ next non-near vector.
+
+ This generally improves the auto-hinter's rendering results.
+
+ * src/autofit/afhints.c (af_glyph_hints_reload): Implement it.
+
+ * src/autofit/afhints.h (AF_FLAGS): Remove no longer used flag
+ `AF_FLAG_NEAR'.
+
+2014-04-05 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Improve scoring algorithm for identifying stems.
+
+ Problem reported by Karsten Lücke <karsten.luecke@kltf.de>.
+
+ The new algorithm takes care of the width of stems: If the distance
+ between two segments is larger than the largest stem width, the
+ demerits quickly increase for larger distances. This improves
+ hinting of slanted fonts (especially if the inner parts of serifs
+ have non-horizontal `shoulders'), avoiding false stem links.
+
+ * src/autofit/aflatin.c (af_latin_hints_link_segments): Use largest
+ stem width (if available) to compute better demerits for distances
+ between stems.
+ (af_latin_hints_detect_features): Pass stem width array and array
+ size.
+ (af_latin_metrics_init_widths): Updated to use original algorithm.
+ (af_latin_hints_apply): Updated to use new algorithm.
+
+ * src/autofit/aflatin.h: Updated.
+ * src/autofit/afcjk.c: Updated.
+
+2014-04-03 Werner Lemberg <wl@gnu.org>
+
+ Don't require `gzip' module for `sfnt'.
+
+ Reported by Preet <prismatic.project@gmail.com>.
+
+ * src/sfnt/sfobjs.c (woff_open_font): Guard use of
+ FT_Gzip_Uncompress with FT_CONFIG_OPTION_USE_ZLIB.
+
+2014-03-27 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #38235.
+
+ Work around a bug in pkg-config version 0.28 and earlier: If a
+ variable value gets surrounded by doublequotes (in particular values
+ for the `prefix' variable), the prefix override mechanism fails.
+
+ * builds/unix/freetype2.in: Don't use doublequotes.
+ * builds/unix/unix-def.in (freetype.pc): Escape spaces in directory
+ names with backslashes.
+
+2014-03-24 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #41946.
+
+ Based on a patch from Marek Kašík <mkasik@redhat.com>.
+
+ * builds/unix/configure.raw (LIBS_CONFIG): Remove.
+ * builds/unix/freetype-config.in (libs): Hard-code value.
+ * builds/unix/unix-def.in: Updated.
+
+2014-03-22 Werner Lemberg <wl@gnu.org>
+
+ Another revert for the change from 2014-03-18.
+
+ Problem reported by Nikolaus Waxweiler <madigens@gmail.com>.
+
+ * src/base/ftcalc.c (FT_MulFix): Ensure that an `FT_MulFix' symbol
+ gets always exported.
+
+2014-03-20 Werner Lemberg <wl@gnu.org>
+
+ CMakeLists.txt: Another fix for include directories.
+
+ Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
+
+2014-03-19 Werner Lemberg <wl@gnu.org>
+
+ CMakeLists.txt: Fix include directories.
+
+ Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
+
+2014-03-19 Werner Lemberg <wl@gnu.org>
+
+ Partially revert last commit.
+
+ Found by Alexei.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initializing
+ those variables is plain wrong, since we are in a loop.
+
+2014-03-18 Sean McBride <sean@rogue-research.com>
+ Werner Lemberg <wl@gnu.org>
+
+ Fix clang warnings.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
+ some variables.
+
+ * src/base/ftcalc.c (FT_MulFix): Only use code if
+ `FT_MULFIX_INLINED' is not defined.
+
+ * src/bdf/bdfdrivr.c (bdf_cmap_class), src/cache/ftcbasic.c
+ (ftc_basic_image_family_class, ftc_basic_image_cache_class,
+ ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class),
+ src/cache/ftccmap.c (ftc_cmap_cache_class), src/cache/ftcmanag.c
+ (ftc_size_list_class, ftc_face_list_class), src/pcf/pcfdrivr.c
+ (pcf_cmap_class), src/pfr/pfrdrivr.c (pfr_metrics_service_rec): Make
+ function static.
+
+ * src/type1/t1driver.c (t1_ps_get_font_value): Remove redundant
+ code.
+
+2014-03-17 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #41869.
+
+ This works around a problem with HarfBuzz (<= 0.9.26), which doesn't
+ validate glyph indices returned by
+ `hb_ot_layout_lookup_collect_glyphs'.
+
+ * src/autofit/hbshim.c (af_get_coverage): Guard `idx'.
+
+ * docs/CHANGES: Updated.
+
+2014-03-14 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/configure.raw: Don't show error messages of `which'.
+
+2014-03-09 Alan Coopersmith <alan.coopersmith@oracle.com>
+
+ Fix cppcheck 1.64 warning.
+
+ * src/autofit/afglobal.c (af_face_globals_new): Catch NULL pointer
+ dereference in case of error.
+
+2014-03-09 Sean McBride <sean@rogue-research.com>
+
+ * src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove clang warning.
+
+2014-03-06 Werner Lemberg <wl@gnu.org>
+
+ * Version 2.5.3 released.
+ =========================
+
+
+ Tag sources with `VER-2-5-3'.
+
+ * docs/VERSION.DLL: Update documentation and bump version number to
+ 2.5.3.
+
+ * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
+ builds/windows/vc2005/index.html,
+ builds/windows/vc2008/freetype.vcproj,
+ builds/windows/vc2008/index.html,
+ builds/windows/vc2010/freetype.vcxproj,
+ builds/windows/vc2010/index.html,
+ builds/windows/visualc/freetype.dsp,
+ builds/windows/visualc/freetype.vcproj,
+ builds/windows/visualc/index.html,
+ builds/windows/visualce/freetype.dsp,
+ builds/windows/visualce/freetype.vcproj,
+ builds/windows/visualce/index.html,
+ builds/wince/vc2005-ce/freetype.vcproj,
+ builds/wince/vc2005-ce/index.html,
+ builds/wince/vc2008-ce/freetype.vcproj,
+ builds/wince/vc2008-ce/index.html: s/2.5.2/2.5.3/, s/252/253/.
+
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
+
+ * builds/unix/configure.raw (version_info): Set to 17:2:11.
+ * CMakeLists.txt (VERSION_PATCH): Set to 3.
+ * docs/CHANGES: Updated.
+
+2014-03-06 Werner Lemberg <wl@gnu.org>
+
+ Fixes for compilation with C++.
+
+ * src/autofit/hbshim.c (scripts): Change type to `hb_script_t'.
+ (af_get_coverage): Updated.
+ (COVERAGE): Add cast.
+
+2014-03-06 Sean McBride <sean@rogue-research.com>
+
+ Remove more clang analyzer warnings.
+
+ * src/bdf/bdflib.c (_bdf_readstream), src/truetype/ttgload.c
+ (TT_Load_Glyph): Remove dead stores.
+
+2014-03-05 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/configure.raw: Simplify.
+
+2014-03-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ Fix a bug in configure in library dependency setting
+ Reported in https://bugs.freedesktop.org/show_bug.cgi?id=75652.
+
+ * builds/unix/configure.raw: Use `x"${xxx}" != xno' style.
+
+2014-03-04 Werner Lemberg <wl@gnu.org>
+
+ Minor fix for `make devel'.
+
+ * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Don't use
+ pkg-config for bzip2 since not all GNU/Linux distributions have
+ `bzip2.pc' (and the header file `bzlib.h' is located in /usr/include
+ normally).
+
+2014-03-04 Sean McBride <sean@rogue-research.com>
+
+ Fix several clang static analyzer dead store warnings.
+
+ * src/autofit/afhints.c (af_glyph_hints_reload,
+ af_glyph_hints_align_weak_points): Remove unnecessary assignments.
+
+ * src/bdf/bdflib.c (bdf_font_load): Ditto.
+
+ * src/pshinter/pshalgo.c (psh_glyph_compute_extrema,
+ psh_glyph_interpolate_other_points): Ditto.
+
+ * src/type1/t1load.c (T1_Set_MM_Blend): Ditto.
+
+2014-03-03 Werner Lemberg <wl@gnu.org>
+
+ Rewrite library option handling in `configure'.
+
+ o Introduce `auto' value for `--with-XXX' library options; this is
+ now the default.
+
+ o First use `pkg-config' for library detection, then fall back to
+ other tests.
+
+ * builds/unix/configure.raw (--with-zlib, --with-bzip2, --with-png,
+ --with-harfbuzz): Rewrite.
+ Use new `xxx_reqpriv', `xxx_libpriv', and `xxx_libstaticconf'
+ variables to collect data for `freetype2.pc' and `freetype-config'.
+ (FT2_EXTRA_LIBS): Renamed to ...
+ (ft2_extra_libs): This since it gets no longer substituted.
+ (REQUIRES_PRIVATE, LIBS_PRIVATE, LIBS_CONFIG, LIBSSTATIC_CONFIG):
+ New output variables, replacing `XXX_PKG' and `LIBXXX'.
+ Add notice at the end of `configure' showing the library
+ configuration.
+
+ * builds/unix/freetype-config.in (--static): New command line
+ option.
+ (libs): Updated.
+ (staticlibs): New variable, to be used if `--static' is given.
+ * docs/freetype-config.1: Document `--static'.
+
+ * builds/unix/freetype2.in, builds/unix/unix-def.in: Updated.
+
+2014-03-01 Werner Lemberg <wl@gnu.org>
+
+ Avoid `long long' warnings with older gcc compilers.
+ Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
+
+ * builds/unix/configure.raw: Don't use gcc's `-pedantic' flag for
+ versions < 4.6. This is especially needed for Max OS X since this
+ OS runs a gcc variant (or emulation) based on version 4.2.1.
+
+2014-03-01 Werner Lemberg <wl@gnu.org>
+
+ * docs/INSTALL.CROSS: Revised and updated.
+
+2014-03-01 Werner Lemberg <wl@gnu.org>
+
+ Make `make clean' remove `freetype2.pc'.
+
+ This is a generated file at build time, not configure time.
+
+ * builds/unix/unix-def.in (DISTCLEAN): Move `freetype2.pc' to ...
+ (CLEAN): This variable.
+
+2014-03-01 Werner Lemberg <wl@gnu.org>
+
+ Use pkg-config for detecting libpng and libbz2 also.
+
+ * builds/unix/configure.raw (HAVE_PKG): New variable.
+ Search for libbz2 using `pkg-config'; s/BZ2/BZIP2/.
+ Search for libpng using `pkg-config'.
+ Fix definition of `LIBHARFBUZZ' variable.
+ * builds/unix/freetype-config.in ($libs): Updated.
+ * builds/unix/freetype2.in: Add `URL' field.
+ Update `Requires.private' and `Libs.private'.
+ * builds/unix/unix-def.in: Updated.
+
+2014-03-01 Werner Lemberg <wl@gnu.org>
+
+ Add configure support for HarfBuzz.
+
+ * builds/unix/pkg.m4: New file.
+ * builds/unix/configure.raw: Search for libharfbuzz using
+ `pkg-config'.
+ Add `--without-harfbuzz' option.
+ * builds/unix/freetype-config.in, builds/unix/freetype2.in,
+ builds/unix/unix-def.in (freetype-config, freetype2.pc): Handle
+ HarfBuzz.
+
+ * docs/INSTALL.UNIX: Document interdependency of Freetype with
+ HarfBuzz.
+
+2014-02-28 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [cff] Math simplifications.
+
+ * src/cf2blues.c (cf2_blues_init): Use `FT_MulDiv'.
+ * src/cf2ft.c (cf2_getScaleAndHintFlag): Use simple division.
+
+2014-02-28 Dave Arnold <darnold@adobe.com>
+
+ [cff] Fix Savannah bug #41697, part 2.
+
+ * src/cff/cf2ft.c (cf2_initLocalRegionBuffer,
+ cf2_initGlobalRegionBuffer): It is possible for a charstring to call
+ a subroutine if no subroutines exist. This is an error but should
+ not trigger an assert. Split the assert to account for this.
+
+2014-02-28 Dave Arnold <darnold@adobe.com>
+
+ [cff] Fix Savannah bug #41697, part 1.
+
+ * src/cff/cf2hints.c (cf2_hintmap_build): Return when `hintMask' is
+ invalid. In this case, it is not safe to use the length of
+ `hStemHintArray'; the exception has already been recorded in
+ `hintMask'.
+
+2014-02-26 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix Savannah bug #41696.
+
+ * src/sfnt/ttcmap.c (tt_cmap0_validate, tt_cmap2_validate,
+ tt_cmap4_validate, tt_cmap14_validate): Fix limit tests.
+
+2014-02-26 Werner Lemberg <wl@gnu.org>
+
+ [winfnt] Fix Savannah bug #41694.
+
+ * src/winfonts/winfnt.c (FNT_Load_Glyph): Check glyph offset.
+
+2014-02-26 Werner Lemberg <wl@gnu.org>
+
+ [cff] Fix Savannah bug #41693.
+
+ * src/cff/cffload.c (CFF_Load_FD_Select): Reject empty array.
+
+2014-02-26 Werner Lemberg <wl@gnu.org>
+
+ [bdf] Fix Savannah bug #41692.
+
+ bdflib puts data from the input stream into a buffer in chunks of
+ 1024 bytes. The data itself gets then parsed line by line, simply
+ increasing the current pointer into the buffer; if the search for
+ the final newline character exceeds the buffer size, more data gets
+ read.
+
+ However, in case the current line's end is very near to the buffer
+ end, and the keyword to compare with is longer than the current
+ line's length, an out-of-bounds read might happen since `memcmp'
+ doesn't stop properly at the string end.
+
+ * src/bdf/bdflib.c: s/ft_memcmp/ft_strncmp/ to make comparisons
+ stop at string ends.
+
+2014-02-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ [autofit] Fix `make multi' compilation.
+
+ * src/autofit/hbshim.c: Include `afglobal.h' and `aftypes.h'.
+
+2014-02-19 Werner Lemberg <wl@gnu.org>
+ Simon Bünzli <zeniko@gmail.com>
+
+ Fix Savannah bug #32902.
+
+ Patch taken from
+
+ https://code.google.com/p/sumatrapdf/source/browse/trunk/ext/_patches/freetype2.patch?spec=svn8620&r=8620#87
+
+ with slight modifications.
+
+ * src/type1/t1parse.c (T1_Get_Private_Dict): Add heuristic test to
+ handle fonts that incorrectly use \r at the beginning of an eexec
+ block.
+
+2014-02-19 Simon Bünzli <zeniko@gmail.com>
+
+ Fix Savannah bug #41590.
+
+ * src/type1/t1load.c (parse_encoding): Protect against invalid
+ number.
+
+2014-02-12 Dave Arnold <darnold@adobe.com>
+
+ [cff] Optimize by using `FT_MulDiv'.
+ Suggested by Alexei.
+
+ * src/cff/cf2font.c (cf2_computeDarkening): Do it.
+
+2014-02-12 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #41465.
+
+ * builds/unix/unix-def.in (CLEAN): Add `freetype-config'.
+ (DISTCLEAN): Remove `freetype-config'.
+
+2014-02-08 Sean McBride <sean@rogue-research.com>
+
+ Fix clang static analyzer and compiler warnings.
+
+ * src/autofit/afhints.c (af_glyph_hints_align_weak_points),
+ src/autofit/afloader (af_loader_load_g) <FT_GLYPH_FORMAT_COMPOSITE>,
+ src/base/ftcalc.c (FT_MSB), src/base/ftoutln.c
+ (FT_Outline_Decompose), src/bdf/bdfdrivr.c (bdf_interpret_style),
+ src/cff/cffparse.c (cff_parse_integer), src/cid/cidparse.c
+ (cid_parser_new), src/pfr/pfrload.c (pfr_phy_font_load),
+ src/raster/ftraster.c (Decompose_Curve), src/sfnt/sfdriver.c
+ (sfnt_get_ps_name), src/sfnt/ttcmap.c (tt_cmap12_next,
+ tt_cmap13_next), src/smooth/ftgrays.c (gray_hline): Remove dead
+ code.
+
+ * src/autofit/afmodule.c (af_property_get_face_globals,
+ af_property_set, af_property_get), src/base/ftbitmap.c
+ (ft_gray_for_premultiplied_srgb_bgra): Make functions static.
+
+ * src/base/ftobjs.c (ft_remove_renderer): Protect against
+ library == NULL.
+ (ft_property_do): Make function static.
+
+ * src/base/ftrfork.c: Include `ftbase.h'.
+
+ * src/sfnt/ttsbit.c (tt_face_load_sbix_image)
+ [!FT_CONFIG_OPTION_USE_PNG], src/type1/t1gload.c
+ (T1_Compute_Max_Advance): Avoid compiler warning.
+
+ * src/truetype/ttinterp.c (TT_New_Context): Reduce scope of
+ variable.
+
+2014-02-08 Werner Lemberg <wl@gnu.org>
+
+ Fix Windows build directories.
+
+ The build target is now `windows' instead of `win32'.
+
+ Problem reported by Nickolas George <darknova.clan@gmail.com>.
+
+ * builds/modules.mk: Don't use `win32' and `win16' (!) but
+ `windows'.
+
+ * builds/windows/detect.mk, builds/windows/win32-def.mk:
+ s/win32/windows/.
+
+2014-02-08 Eugen Sawin <esawin@mozilla.com>
+
+ Fix Savannah bug #41507.
+
+ * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap)
+ [!FT_CONFIG_OPTION_USE_PNG] <17, 17, 19>: Fix error handling.
+
+2014-02-08 Dave Arnold <darnold@adobe.com>
+
+ [cff] Fix minor performance bug.
+
+ * src/cff/cf2font.c (cf2_font_setup): Darkening amount and blue zone
+ calculations are now cached and not recomputed on each glyph.
+
+2014-02-05 Werner Lemberg <wl@gnu.org>
+
+ Fix problems with perl 5.8.8 as distributed with current MinGW.
+
+ * src/tools/afblue.pl: Work-around for Perl bug #63402.
+ (string_re): Avoid `possessive quantifiers', which have been
+ introduced in Perl version 5.10.
+
+2014-02-04 Werner Lemberg <wl@gnu.org>
+
+ Fix compilation with MinGW.
+
+ Right now, compilation out of the box with latest MinGW is broken
+ due to bugs in header files of mingwrt 4.0.3 in strict ANSI mode,
+ cf.
+
+ https://sourceforge.net/p/mingw/bugs/2024/
+ https://sourceforge.net/p/mingw/bugs/2046/
+
+ * builds/unix/configure.raw: Don't set `-ansi' flag for MinGW.
+
+2014-02-04 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Minor fix.
+
+ * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
+ src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling
+ of alternative standard characters.
+ This also fixes a compilation warning in non-debug mode.
+
+2014-02-03 Werner Lemberg <wl@gnu.org>
+
+ [cff] Fix Savannah bug #41363.
+
+ * src/cff/cf2ft.c (cf2_checkTransform): Convert assertion into
+ parameter check.
+ (cf2_decoder_parse_charstrings): Call `cf2_checkTransform' only if
+ we are scaling the outline.
+ (cf2_getPpemY): Remove problematic assertion.
+
+2014-01-26 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Introduce two more slots for standard characters.
+
+ This is useful for OpenType features like `c2sc' (caps to small
+ caps) that don't have lowercase letters by definition, or other
+ features that mainly operate on numerals.
+
+ * src/autofit/afscript.h: Add more standard characters.
+
+ * src/autofit/aftypes.h: Update use of `SCRIPT' macro.
+ (AF_ScriptClassRec): Add members to hold two more standard
+ characters.
+ (AF_DEFINE_SCRIPT_CLASS): Updated.
+
+ * src/autofit/afglobal.c, src/autofit/afglobal.h,
+ * src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/hbshim.c:
+ Update use of `SCRIPT' macro.
+
+ * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
+ src/autofit/aflatin.c (af_latin_metrics_init_widths): Scan two more
+ standard characters.
+
+2014-01-24 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #41320.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_blues)
+ <AF_LATIN_IS_LONG_BLUE>: Avoid negative index of `last'.
+
+2014-01-23 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #41310.
+
+ * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap) <glyph_format==5>:
+ Don't check metrics, which this format doesn't have.
+ This is another correction to the commit from 2013-11-21.
+
+2014-01-23 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #41309.
+
+ * src/type1/t1load.c (t1_parse_font_matrix): Properly handle result
+ of `T1_ToFixedArray'.
+
+ * src/cid/cidload.c (cid_parse_font_matrix): Synchronize with
+ `t1_parse_font_matrix'.
+
+ * src/type42/t42parse.c (t42_parse_font_matrix): Synchronize with
+ `t1_parse_font_matrix'.
+ (t42_parse_encoding): Synchronize with `t1_parse_encoding'.
+
+ * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>,
+ <T1_FIELD_TYPE_MMOX>: Properly handle result of `ps_tofixedarray'.
+
+2014-01-22 Werner Lemberg <wl@gnu.org>
+
+ * src/autofit/hbshim.c (af_get_coverage): Fix memory leaks.
+
+2014-01-16 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Improve tracing of style coverages.
+
+ * include/internal/fttrace.h: Add `afglobal' for tracing style
+ coverages.
+
+ * src/autofit/afglobal.c: Include FT_INTERNAL_DEBUG_H.
+ (FT_COMPONENT): Define.
+ (af_face_globals_compute_style_coverage): Trace `gstyles' array
+ data.
+
+2014-01-09 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #41158.
+
+ * builds/unix/install.mk (install): Create man page directory.
+
+2014-01-08 Chongyu Zhu <lembacon@gmail.com>
+
+ [arm] Fix Savannah bug #41138, part 2.
+
+ * builds/unix/ftconfig.in (FT_MulFix_arm), include/config/ftconfig.h
+ (FT_MulFix_arm), src/truetype/ttinterp.c (TT_MulFix14_arm): Fix
+ preprocessor conditionals for `add.w'.
+
+2014-01-08 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix Savannah bug #41138, part 1.
+
+ * src/tools/afblue.pl <Handling #endif>: Produce correct auxiliary
+ enumeration names for generated `#else'.
+
+ * src/autofit/afblue.h: Regenerated.
+
+2014-01-06 Werner Lemberg <wl@gnu.org>
+
+ Add manual page for `freetype-config'.
+ Contributed by Nis Martensen <nis.martensen@web.de>.
+
+ * docs/freetype-config.1: New file.
+
+ * builds/unix/unix-def.in (mandir): Define.
+ * builds/unix/install.mk (install, uninstall): Handle manpage.
+
+2014-01-05 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Minor fixes for `afblue.pl'.
+
+ * src/tools/afblue.pl (aux_name): Don't use `reverse'.
+ <Handling #endif>: Use proper indentation for generated `#else'.
+
+ * src/autofit/afblue.h: Regenerated.
+
+2014-01-04 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix Indic scripts.
+
+ Split the single, incorrect Indic entry into separate scripts so
+ that the covered ranges are the same: Bengali, Devanagari, Gujarati,
+ Gurmukhi, Kannada, Limbu, Malayalam, Oriya, Sinhala, Sundanese,
+ Syloti Nagri, Tamil, Telugu, and Tibetan. At the same time, remove
+ entries for Meetai Mayak and Sharada – the Unicode ranges were
+ incorrect (and nobody has complained about that), fonts are scarce
+ for those scripts, and the Indic auto-hinter support is rudimentary
+ anyways.
+
+ * src/autofit/afscript.h: Updated, using AF_CONFIG_OPTION_INDIC and
+ AF_CONFIG_OPTION_CJK.
+
+ * src/autofit/afstyles.h (STYLE_DEFAULT_INDIC): New auxiliary macro.
+ Use it, together with AF_CONFIG_OPTION_INDIC and
+ AF_CONFIG_OPTION_CJK, to update.
+
+ * src/autofit/afranges.c [AF_CONFIG_OPTION_INDIC]: Updated.
+ [!AF_CONFIG_OPTION_INDIC, !AF_CONFIG_OPTION_CJK]: Removed.
+ Sort entries by tags.
+
+2014-01-03 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Thinko.
+
+ * src/autofit/hbshim.c (af_get_char_index): Similar to
+ `af_get_coverage', reject glyphs which are not substituted.
+
+2014-01-03 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix handling of default coverages.
+
+ With this commit, the implementation of coverage handling is
+ completed.
+
+ * src/autofit/hbshim.c (af_get_coverage): Exit early if nothing to
+ do.
+ Reject coverages which don't contain appropriate glyphs for blue
+ zones.
+
+2014-01-03 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix handling of default coverages.
+
+ * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
+ First handle non-default coverages, then the default coverage of the
+ default script, and finally the other default coverages.
+
+2014-01-03 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix scaling of HarfBuzz shaping.
+
+ * src/autofit/hbshim.c (af_get_char_index): Scale to units per EM.
+
+2014-01-03 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Better ftgrid support.
+
+ * src/autofit/afhints.c (af_glyph_hints_get_segment_offset): Add
+ parameters `is_blue' and `blue_offset'.
+
+2014-01-01 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Remove some styles.
+
+ * src/autofit/afcover.h: Remove coverages for alternative fractions,
+ denominators, numerators, and fractions.
+
+ * src/autofit/afstyles.h (META_STYLE_LATIN): Updated.
+
+2014-01-01 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Add more styles.
+
+ * src/autofit/afstyles.h (STYLE_LATIN, META_STYLE_LATIN): New
+ auxiliary macros; use them to define styles for Cyrillic, Greek, and
+ Latin.
+
+ * src/autofit/afcover.h: Remove coverage for oldstyle figures.
+ Since those digits are used in combination with ordinary letters, it
+ makes no sense to handle them separately.
+
+ * src/autofit/afglobal.c (af_face_globals_get_metrics): Don't limit
+ `options' parameter to 4 bits.
+
+2014-01-01 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix style assignments to glyphs.
+
+ * src/autofit/hbshim.c (af_get_coverage)
+ [FT_CONFIG_OPTION_USE_HARFBUZZ]: Scan GPOS coverage of features also
+ so that we can skip glyphs that have both GSUB and GPOS data.
+
+2014-01-01 Werner Lemberg <wl@gnu.org>
+
+ * src/autofit/hbshim.c: s/{lookups,glyphs}/gsub_{lookups,glyphs}/.
+
+2014-01-01 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Implement and use `af_get_char_index' with HarfBuzz.
+
+ * src/autofit/hbshim.c (COVERAGE) [FT_CONFIG_OPTION_USE_HARFBUZZ]:
+ Redefine to construct HarfBuzz features.
+ (af_get_char_index) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Rewritten.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_blues): Use
+ `y_offset' to adjust `best_y'.
+
+2013-12-31 Werner Lemberg <wl@gnu.org>
+
+ [autofit] s/AF_STYLE_...._DEFAULT/AF_STYLE_...._DFLT/i.
+
+2013-12-31 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix interface of `af_get_char_index'.
+
+ * src/autofit/hbshim.c (af_get_char_index): Return error value.
+ Add argument for y offset (to be used in a yet-to-come patch).
+
+ * src/autofit/hbshim.h, src/autofit/afcjk.c,
+ src/autofit/aflatin.c: Updated.
+
+2013-12-30 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Don't combine multiple features into one set.
+
+ Combining them, as originally envisioned, would lead to much more
+ complicated code, as investigations have shown meanwhile. The major
+ drawback is that we run out of available style slots much earlier.
+ However, this is only a theoretical issue since we don't support a
+ large number of scripts currently.
+
+ * src/autofit/afcover.h: Replace `COVERAGE_{1,2,3}' macros with
+ a single-element `COVERAGE' macro, sort the elements by the feature
+ tags, and add entry for `ruby'.
+
+ * src/autofit/aftypes.h: Updated.
+ * src/autofit/hbshim.c: Updated.
+
+2013-12-28 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Code shuffling to reduce use of cpp macros.
+
+ * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
+ Call `af_get_coverage' unconditionally.
+
+ * src/autofit/autofit.c: Include `hbshim.c' unconditionally.
+
+ * src/autofit/hbshim.c (af_get_coverage)
+ [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Provide dummy function.
+
+ * src/autofit/hbshim.h: Provide function declarations
+ unconditionally.
+
+2013-12-28 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Add wrapper function for `FT_Get_Char_Index'.
+
+ Yet-to-come changes will provide HarfBuzz functionality for the new
+ function.
+
+ * src/autofit/hbshim.c (af_get_char_index): New function.
+ * src/autofit/hbshim.h: Updated.
+
+ * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
+ af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_widths,
+ af_latin_metrics_init_blues, af_latin_metrics_check_digits):
+ Updated.
+
+2013-12-28 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Use `global' HarfBuzz font object.
+
+ We now use `hb_font' instead of `hb_face' since yet-to-come changes
+ need this.
+
+ * src/autofit/afglobal.h: Include `hbshim.h'.
+ (AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member
+ `hb_font'.
+
+ * src/autofit/afglobal.c (af_face_globals_new)
+ [FT_CONFIG_OPTION_USE_HARFBUZZ]: Create `hb_font'.
+ (af_face_globals_free) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Destroy
+ `hb_font'.
+
+ * src/autofit/hbshim.h: Include HarfBuzz headers.
+
+ * src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz
+ headers.
+ (af_get_coverage): Updated.
+
+2013-12-27 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Handle `DFLT' OpenType script for coverages.
+
+ * include/ftautoh.h: Document new `default-script' property.
+
+ * src/autofit/hbshim.c (af_get_coverage): Use `AF_FaceGlobals' for
+ type of first parameter.
+ (script_tags): Add one more element.
+ (af_get_coverage): Adjust `script_tags' to handle `DFLT' script tag.
+
+ * src/autofit/hbshim.h: Updated.
+
+ * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
+ Updated.
+
+ * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT): New macro.
+
+ * src/autofit/afmodule.h (AF_ModuleRec): New `default_script'
+ member.
+
+ * src/autofit/afmodule.c (af_property_set, af_property_get): Handle
+ `default-script' property.
+ (af_autofitter_init): Updated.
+
+2013-12-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ [ftrfork] Fix the face order difference between POSIX and Carbon.
+
+ The fragmented resources in Suitcase and .dfont should be reordered
+ when `POST' resource for Type1 is being restored, but reordering of
+ sfnt resources induces the different face order. Now the ordering
+ is restricted to `POST' resource only, to prevent the different
+ order issue (e.g. the face index in the fontconfig cache generated
+ with Carbon framework is incompatible with that by FreeType 2
+ without Carbon framework.) Found by Khaled Hosny and Hin-Tak Leung.
+
+ http://lists.gnu.org/archive/html/freetype-devel/2013-02/msg00035.html
+ http://lists.gnu.org/archive/html/freetype-devel/2013-12/msg00027.html
+
+ * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Add a switch
+ `sort_by_res_id' to control the fragmented resource ordering.
+ * include/internal/ftrfork.h: Declare new switch.
+ * src/base/ftobjs.c (IsMacResource): Enable the sorting for `POST'
+ resource, and disable the sorting for `sfnt' resource.
+
+2013-12-25 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #40997.
+
+ * src/bdf/bdfdrivr.c (BDF_Face_Init): Only use OR operator to
+ adjust face flags since FT_FACE_FLAG_EXTERNAL_STREAM might already
+ be set.
+ * src/cff/cffobjs.c (cff_face_init): Ditto.
+ * src/cid/cidobjs.c (cid_face_init): Ditto.
+ * src/pcf/pcfread.c (pcf_load_font): Ditto.
+ * src/pfr/pfrobjs.c (pfr_face_init): Ditto.
+ * src/type1/t1objs.c (T1_Face_Init): Ditto.
+ * src/type42/t42objs.c (T42_Face_Init): Ditto.
+ * src/winfonts/winfnt.c (FNT_Face_Init): Ditto.
+
+2013-12-21 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Introduce `coverages'.
+
+ Coverages are the interface to the HarfBuzz library to acces
+ OpenType features for handling glyphs not addressable by the cmap.
+
+ Right now, compilation of HarfBuzz is only added to the development
+ build. A solution for standard build mode will be delayed until
+ HarfBuzz gets split into two libraries to avoid mutual dependencies
+ between FreeType and HarfBuzz.
+
+ Note that this is only a first step in handling coverages, basically
+ providing the framework only. Code for handling selected OpenType
+ features (this is, actually using the data in `afcover.h') will
+ follow.
+
+ * devel/ftoption.h, include/config/ftoption.h
+ (FT_CONFIG_OPTION_USE_HARFBUZZ): New macro.
+
+ * src/autofit/hbshim.c, src/autofit/hbshim.h, src/autofit/afcover.h:
+ New files.
+
+ * src/autofit/afscript.h: Add HarfBuzz script name tags.
+
+ * src/autofit/afstyles.h: Add default coverage enumeration values.
+
+ * src/autofit/aftypes.h: Update use of `SCRIPT' and `STYLE' macros.
+ (AF_Coverage): New enumeration (generated by `afcover.h').
+ (AF_StyleClassRec): New member `coverage'.
+ (AF_DEFINE_STYLE_CLASS): Updated.
+
+ * include/internal/fttrace.h: Add `afharfbuzz' for tracing coverage
+ data.
+
+ * src/autofit/afglobal.h: Update use of `SCRIPT' and `STYLE' macros.
+ (AF_SCRIPT_FALLBACK): Renamed to ...
+ (AF_STYLE_FALLBACK): ... this.
+
+ * src/autofit/afglobal.c: Include `hbshim.c'.
+ Update use of `SCRIPT' and `STYLE' macros.
+ (af_face_globals_compute_style_coverage)
+ [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call `af_get_coverage'.
+ Update.
+
+ * src/autofit/afmodule.h (AF_ModuleRec):
+ s/fallback_script/fallback_style/.
+
+ * src/autofit/afmodule.c (af_property_set): Adapt handling of
+ `fallback-script' property to set a fallback style.
+ (af_property_get, af_autofitter_init): Updated.
+
+ * src/autofit/afpic.c: Update use of `SCRIPT' and `STYLE' macros.
+
+ * src/autofit/afranges.h: Update use of `SCRIPT' macro.
+
+ * src/autofit/autofit.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include
+ `hbshim.c'.
+
+ * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `hbshim.c'.
+ (AUTOF_DRV_H): Add `afcover.h'.
+
+ * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Use pkg-config for
+ all libraries needed by FreeType.
+
+2013-12-21 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #40975 (sort of).
+
+ * src/truetype/ttinterp.c (Ins_IP): Fix sign typo to make FreeType
+ behave the same as the Windows TrueType engine for the invalid case.
+
+2013-12-21 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Make PIC mode work actually.
+
+ * src/autofit/afpic.h (AFModulePIC): Fix array sizes to fit the
+ enumeration values automatically generated by including `afscript.h'
+ and friends.
+
+ * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
+
+2013-12-21 Werner Lemberg <wl@gnu.org>
+
+ Fix PIC linking.
+
+ * include/internal/ftrfork.h (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Fix
+ generated function name.
+
+ * src/base/basepic.c (FT_Init_Table_raccess_guess_table): Rename
+ to ...
+ (FT_Init_Table_ft_raccess_guess_table): ... this so that the
+ function name correctly corresponds to what the macro framework
+ expects.
+
+ * src/psnames/rules.mk (PSNAMES_DRV_SRC_S): Use correct file name so
+ that PIC functions are compiled also.
+
+2013-12-21 Werner Lemberg <wl@gnu.org>
+
+ [base] Add missing dependencies to Makefile.
+
+ * src/base/rules.mk (BASE_SRC): Add `basepic.c' and `ftpic.c'.
+ (BASE_H): Add `basepic.h'.
+
+2013-12-20 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix PIC compilation.
+
+ * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
+ src/autofit/aflatin.c (af_latin_metrics_init_widths)
+ [FT_CONFIG_OPTION_PIC]: Declare `globals'.
+
+ * src/autofit/afglobal.c: Always call AF_DEFINE_SCRIPT_CLASS, and
+ AF_DEFINE_STYLE_CLASS.
+
+ * src/autofit/afpic.c: Include `afglobal.h'.
+ (autofit_module_class_pic_init): Typo.
+
+ * src/autofit/aftypes.h (AF_DEFINE_SCRIPT_CLASS,
+ AF_DEFINE_STYLE_CLASS): Don't use the same identifier for macro
+ parameter and structure member.
+
+2013-12-20 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Introduce `styles'.
+
+ This is the new top-level structure for handling glyph input data;
+ scripts are now defined separately.
+
+ * src/autofit/aftypes.h (SCRIPT): Updated.
+ (AF_ScriptClassRec): Move `blue_stringset' and `writing_system'
+ members to ...
+ (AF_Style_ClassRec): ... this new structure.
+ (AF_Style): New enumeration.
+ (AF_StyleMetricsRec): Replace `script' enumeration with
+ `style_class' pointer.
+ (AF_DEFINE_SCRIPT_CLASS, AF_DECLARE_SCRIPT_CLASS): Updated.
+ (AF_DEFINE_STYLE_CLASS, AF_DECLARE_STYLE_CLASS): New macros.
+
+ * src/autofit/afstyles.h: New file, using data from `afscript.h'.
+ * src/autofit/afscript.h: Updated.
+
+ * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
+ af_cjk_metrics_init_blues, af_cjk_hint_edges): Updated.
+
+ * src/autofit/afglobal.c (SCRIPT): Updated.
+ (STYLE): Redefine macro to load `afstyles.h'.
+ (af_script_names) [FT_DEBUG_LEVEL_TRACE]: Replace with...
+ (af_style_names): ... this array.
+ (af_face_globals_compute_script_coverage): Renamed to...
+ (af_face_globals_compute_style_coverage): ... this.
+ Updated.
+ (af_face_globals_new, af_face_globals_free,
+ af_face_globals_get_metrics): Updated.
+
+ * src/autofit/afglobal.h (SCRIPT): Updated.
+ (STYLE): Redefine macro to load `afstyles.h'.
+ (AF_SCRIPT_FALLBACK): Update definition. This will get more
+ refinements with later on.
+ (AF_SCRIPT_UNASSIGNED): Replace with...
+ (AF_STYLE_UNASSIGNED): ... this macro.
+ (AF_FaceGlobalsRec): Updated.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_widths,
+ af_latin_metrics_init_blues, af_latin_metrics_scale_dim,
+ af_latin_hint_edges): Updated.
+
+ * src/autofit/aflatin2.c (af_latin2_metrics_init_widths): Updated.
+ (af_ltn2_uniranges): Removed.
+
+ * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
+ Updated.
+
+ * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
+ * src/autofit/afpic.h (AF_STYLE_CLASSES_GET): New macro.
+ (AFModulePIC): Add `af_style_classes' and `af_style_classes_rec'
+ members.
+
+ * src/autofit/afranges.h: Updated.
+
+ * src/autofit/rules.mk (AUTOF_DRV_H): Add `afstyles.h'.
+
+2013-12-19 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Factor scripts and uniranges out of writing system files.
+
+ * src/autofit/afranges.c, src/autofit/afranges.h: New files.
+
+ * src/autofit/afscript.h: Extend `SCRIPT' macro with more
+ parameters, taking data from the writing system files.
+
+ * src/autofit/aftypes.h: Updated.
+
+ * src/autofit/afglobal.c: Include `afranges.h'.
+ Load `afscript.h' to call AF_DEFINE_SCRIPT_CLASS.
+ * src/autofit/afglobal.c: Include `afranges.h'.
+ Load `afscript.h' to call AF_DECLARE_SCRIPT_CLASS.
+
+ * src/autofit/afcjk.c, src/autofit/afcjk.h: Updated.
+ * src/autofit/afdummy.c, src/autofit/afdummy.h: Updated.
+ * src/autofit/afindic.c, src/autofit/afindic.h: Updated.
+ * src/autofit/aflatin.c, src/autofit/aflatin.h: Updated.
+ * src/autofit/aflatn2.c, src/autofit/aflatn2.h: Updated.
+
+ * src/autofit/afpic.c: Updated.
+
+ * src/autofir/autofit.c: Include `afranges.c'.
+ * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afranges.c'.
+
+2013-12-18 Werner Lemberg <wl@gnu.org>
+
+ [autofit] More code orthogonality.
+
+ * src/autofit/aftypes.h (AF_StyleMetrics): Replace `script_class'
+ pointer to an `AF_ScriptClass' structure with `script' index of type
+ `AF_Script'.
+ Move some code around.
+
+ * src/autofit/afcjk.c: Include `afpic.h'.
+ (af_cjk_metrics_init_widths, af_cjk_metrics_init_blues,
+ af_cjk_hint_edges): Updated.
+
+ * src/autofit/aflatin.c: Include `afpic.h'.
+ (af_latin_metrics_init_widths, af_latin_metrics_init_blues,
+ af_latin_metrics_scale_dim, af_latin_hint_edges): Updated.
+
+ * src/autofit/afglobal.c (af_face_globals_get_metrics): Updated.
+
+ * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
+ Updated.
+
+2013-12-18 Werner Lemberg <wl@gnu.org>
+
+ [autofit] s/ScriptMetrics/StyleMetrics/.
+
+2013-12-18 Werner Lemberg <wl@gnu.org>
+
+ [autofit] s/script_{metrics,hints}/style_{metrics,hints}/
+
+2013-12-18 Werner Lemberg <wl@gnu.org>
+
+ [autofit] s/gscripts/gstyles/.
+
+2013-12-18 Werner Lemberg <wl@gnu.org>
+
+ [autofit] s/glyph_scripts/glyph_styles/.
+
+ This is the first commit of a series to create a new top-level
+ structure (a `style') for handling scripts, writing_systems, and
+ soon-to-be-added coverages.
+
+2013-12-17 Werner Lemberg <wl@gnu.org>
+
+ [autofit] s/AF_Script_/AF_WritingSystem_/ where appropriate.
+
+2013-12-11 Infinality <infinality@infinality.net>
+
+ [truetype] Simplify logic of rendering modes.
+
+ This patch unifies the subpixel and non-subpixel cases.
+
+ * src/truetype/ttinterp.h (TT_ExecContextRec): Remove
+ `grayscale_hinting'; all code should refer to `grayscale' instead.
+ Remove unused `native_hinting' member.
+ Rename `subpixel_hinting' member to `subpixel.
+
+ * src/truetype/ttgload.c (TT_LOADER_SET_PP): Updated.
+ (tt_loader_init): Updated.
+
+ * src/truetype/ttinterp.c (Ins_GETINFO): Simplify.
+ Updated.
+
+2013-12-11 Werner Lemberg <wl@gnu.org>
+
+ [documentation] Add section how to include FreeType header files.
+ Problem reported by David Kastrup <dak@gnu.org>.
+
+ Surprisingly, a description how to do that was completely missing in
+ the API reference.
+
+ * include/freetype.h, include/ftchapters.h: New documentation
+ section `header_inclusion'.
+
+2013-12-10 Werner Lemberg <wl@gnu.org>
+
+ [autofit] s/DFLT/NONE/, s/dflt/none/.
+
+2013-12-10 Werner Lemberg <wl@gnu.org>
+
+ [autofit] s/AF_SCRIPT_NONE/AF_SCRIPT_UNASSIGNED/.
+
+2013-12-10 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Fix scaling of vertical phantom points.
+
+ * src/truetype/ttgload.c (load_truetype_glyph): Scale pp3.x and
+ pp4.x also.
+
+2013-12-10 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Fix positioning of composite glyphs.
+ Problem reported by Nigel Tao <nigeltao@golang.org>.
+
+ * src/truetype/ttgload.c (TT_Hint_Glyph): Remove code that shifts
+ the glyph (component) by a fractional value computed from the LSB
+ phantom point. This is wrong, since the horizontal phantom points
+ get rounded horizontally later on.
+
+2013-12-08 Werner Lemberg <wl@gnu.org>
+
+ * Version 2.5.2 released.
+ =========================
+
+
+ Tag sources with `VER-2-5-2'.
+
+ * docs/VERSION.DLL: Update documentation and bump version number to
+ 2.5.2.
+
+ * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
+ builds/windows/vc2005/index.html,
+ builds/windows/vc2008/freetype.vcproj,
+ builds/windows/vc2008/index.html,
+ builds/windows/vc2010/freetype.vcxproj,
+ builds/windows/vc2010/index.html,
+ builds/windows/visualc/freetype.dsp,
+ builds/windows/visualc/freetype.vcproj,
+ builds/windows/visualc/index.html,
+ builds/windows/visualce/freetype.dsp,
+ builds/windows/visualce/freetype.vcproj,
+ builds/windows/visualce/index.html,
+ builds/wince/vc2005-ce/freetype.vcproj,
+ builds/wince/vc2005-ce/index.html,
+ builds/wince/vc2008-ce/freetype.vcproj,
+ builds/wince/vc2008-ce/index.html: s/2.5.1/2.5.2/, s/251/252/.
+
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
+
+ * builds/unix/configure.raw (version_info): Set to 17:1:11.
+ * CMakeLists.txt (VERSION_PATCH): Set to 2.
+ * docs/CHANGES: Updated.
+
+2013-12-07 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Next round in phantom point handling.
+
+ Greg Hitchcock provided very interesting insights into the
+ complicated history of the horizontal positions of the TSB and BSB
+ phantom points.
+
+ * src/truetype/ttgload.c (TT_LOADER_SET_PP)
+ [TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Use `subpixel_hinting' and
+ `grayscale_hinting' flags as conditionals for the x position of TSB
+ and BSB.
+
+2013-12-05 Werner Lemberg <wl@gnu.org>
+
+ * builds/freetype.mk (FT_CC): Removed. Unused.
+
+2013-12-04 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix handling of embedded bitmap strikes.
+
+ This corrects the commit from 2013-11-21. Problem reported by
+ Andrey Panov <panov@canopus.iacp.dvo.ru>.
+
+ * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Fix logic to
+ detect excessive bytes for bit-aligned bitmaps.
+
+2013-12-03 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Remove dead code.
+
+ Reported by Nigel Tao <nigeltao@golang.org>.
+
+ * include/internal/tttypes.h (TT_LoaderRec): Remove unused
+ `preserve_pps' field.
+ * src/truetype/ttgload.c (TT_Hint_Glyph): Updated.
+
+2013-12-03 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Fix phantom point handling.
+
+ This is a further improvement to the changes from 2013-11-06.
+
+ * src/truetype/ttgload.c (TT_Hint_Glyph): Horizontal phantom points
+ are rounded horizontally, vertical ones are rounded vertically.
+ (TT_LOADER_SET_PP): The horizontal position of vertical phantom
+ points in pre-ClearType mode is zero, as shown in the OpenType
+ specification.
+
+2013-12-02 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Fix change from 2013-11-20.
+
+ Problem reported by Akira Kakuto <kakuto@fuk.kindai.ac.jp>.
+
+ * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Protect call to
+ `Update_Max' with both a TT_USE_BYTECODE_INTERPRETER guard and a
+ `IS_HINTED' clause.
+ Also remove redundant check using `maxSizeOfInstructions' – in
+ simple glyphs, the bytecode data comes before the outline data, and
+ a validity test for this is already present.
+
+2013-11-27 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix use of dumping functions in `ftgrid' demo program.
+
+ * src/autofit/afhints.c (AF_DUMP) [FT_DEBUG_AUTOFIT]: New macro.
+ (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
+ af_glyph_hints_dump_edges) [FT_DEBUG_AUTOFIT]: Add parameter to
+ handle output to stdout.
+ Use AF_DUMP.
+ (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
+ af_glyph_hints_dump_edges) [!FT_DEBUG_AUTOFIT]: Removed.
+
+2013-11-25 Werner Lemberg <wl@gnu.org>
+
+ * Version 2.5.1 released.
+ =========================
+
+
+ Tag sources with `VER-2-5-1'.
+
+ * docs/VERSION.DLL: Update documentation and bump version number to
+ 2.5.1.
+
+ * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
+ builds/windows/vc2005/index.html,
+ builds/windows/vc2008/freetype.vcproj,
+ builds/windows/vc2008/index.html,
+ builds/windows/vc2010/freetype.vcxproj,
+ builds/windows/vc2010/index.html,
+ builds/windows/visualc/freetype.dsp,
+ builds/windows/visualc/freetype.vcproj,
+ builds/windows/visualc/index.html,
+ builds/windows/visualce/freetype.dsp,
+ builds/windows/visualce/freetype.vcproj,
+ builds/windows/visualce/index.html,
+ builds/wince/vc2005-ce/freetype.vcproj,
+ builds/wince/vc2005-ce/index.html,
+ builds/wince/vc2008-ce/freetype.vcproj,
+ builds/wince/vc2008-ce/index.html: s/2.5.0/2.5.1/, s/250/251/.
+
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
+
+ * builds/unix/configure.raw (version_info): Set to 17:0:11.
+ * CMakeLists.txt (VERSION_PATCH): Set to 1.
+ * docs/CHANGES, docs/release: Updated.
+
+2013-11-23 Werner Lemberg <wl@gnu.org>
+
+ [truetype]: Add tricky font names `hkscsiic.ttf' and `iicore.ttf'.
+
+ * src/truetype/ttobjs.c (TRICK_NAMES_MAX_CHARACTERS,
+ TRICK_NAMES_COUNT): Updated.
+ (trick_names): Add family name for the two fonts.
+
+2013-11-23 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Typo.
+
+2013-11-21 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Typo.
+
+ Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
+
+ * src/sfnt/sfobjs.c (sfnt_load_face): Return correct `bsize->width'
+ value if the font lacks an `OS/2' table.
+
+2013-11-21 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Improve handling of buggy embedded bitmap strikes.
+
+ We are now able to successfully load `AppleMyoungJo.ttf'.
+ Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
+
+ * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Don't trust glyph
+ format.
+
+2013-11-20 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Don't trust `maxp's `maxSizeOfInstructions'.
+
+ Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>; see
+
+ http://lists.nongnu.org/archive/html/freetype-devel/2013-08/msg00005.html
+
+ for details.
+
+ * src/base/ftobjs.c (FT_Load_Glyph): Check size of `fpgm' and `prep'
+ tables also for setting `autohint'.
+
+ * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use code from
+ `TT_Process_Composite_Glyph' for handling unreliable values of
+ `maxSizeOfInstructions'.
+
+2013-11-16 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix `OS/2' table version 5 support.
+
+ We now follow the `official' announcement from Microsoft (on the
+ OpenType mailing list, which unfortunately hasn't a public archive).
+
+ * include/freetype/tttables.h (TT_OS2):
+ s/usLowerPointSize/usLowerOpticalPointSize/,
+ s/usUpperPointSize/usUpperOpticalPointSize/.
+
+ * src/sfnt/ttload.c (tt_face_load_os2): Update, and set correct
+ default values.
+
+2013-11-13 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/ft2unix.h: Remove. No longer necessary.
+
+ * builds/unix/install.mk (install): Updated.
+
+2013-11-13 Werner Lemberg <wl@gnu.org>
+
+ Simplify header file hierarchy.
+
+ This large patch changes the header file directory layout from
+ `include/freetype/...' to `include/...', effectively removing one
+ level. Since the file `ft2build.h' is also located in `include'
+ (and it stays there even after installation), all FreeType header
+ files are now in a single directory.
+
+ Applications that use (a) `freetype-config' or FreeType's
+ `pkg-config' file to get the include directory for the compiler, and
+ (b) the documented way for header inclusion like
+
+ #include <ft2build.h>
+ #include FT_FREETYPE_H
+ ...
+
+ don't need any change to the source code.
+
+ * include/freetype/*: Move up to...
+ * include/*: ... this directory.
+
+ * builds/amiga/include/freetype/*: Move up to...
+ * builds/amiga/include/*: ... this directory.
+
+ */*: Essentially do `s@/freetype/@/@' where appropriate.
+
+ * CMakeList.txt: Simplify.
+ * builds/unix/freetype-config.in, builds/unix/freetype2.in: For
+ `--cflags', return a single directory.
+ * builds/unix/install.mk (install): No longer try to remove `cache'
+ and `internal' subdirectories; instead, remove the `freetype'
+ subdirectory.
+
+2013-11-12 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Fix last `truetype' commit.
+
+ * src/truetype/ttgload.c (tt_get_metrics): Preserve stream position.
+ Return error value.
+ (load_truetype_glyph): Updated.
+
+2013-11-10 Werner Lemberg <wl@gnu.org>
+
+ * docs/CMAKE: New dummy file.
+
+2013-11-08 Dave Arnold <darnold@adobe.com>
+
+ [cff] Fix for hints that touch.
+
+ * src/cff/cf2hints.c (cf2_hintmap_insertHint): Fix condition for
+ finding index value of insertion point.
+
+2013-11-06 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Fix handling of phantom points in composite glyphs.
+ Problem reported by Nigel Tao <nigeltao@golang.org>.
+
+ This is a follow-up commit to the previous one.
+
+ * src/truetype/ttgload.c (load_truetype_glyph): Call
+ `tt_get_metrics' after loading the glyph header.
+
+2013-11-06 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Improve emulation of vertical metrics.
+
+ This commit also improves the start values of vertical phantom
+ points. Kudos to Greg Hitchcock for help.
+
+ * src/truetype/ttgload.c (TT_Get_VMetrics): Add parameter to pass
+ `yMax' value. Replace code with fixed Microsoft definition.
+ (tt_get_metrics): Updated.
+ (TT_LOADER_SET_PP): Add explanation how to initialize phantom
+ points, taken from both the OpenType specification and private
+ communication with Greg (which will eventually be added to the
+ standard).
+ Fix horizontal position of `pp3' and `pp4'.
+
+ * src/truetype/ttgload.h: Updated.
+
+ * src/truetype/ttdriver.c (tt_get_advances): Updated.
+
+ * docs/CHANGES: Updated.
+
+2013-11-05 Werner Lemberg <wl@gnu.org>
+
+ * builds/windows/vc2010/freetype.vcxproj: s/v110/v100/.
+ PlatformToolSet version 110 is for VC2012.
+
+ Problem reported (with solution) by Dave Arnold <darnold@adobe.com>.
+
+2013-11-05 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Correctly reset point tags for glyph components.
+ Problem reported by Nigel Tao <nigeltao@golang.org>.
+
+ * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix loop.
+
+2013-11-02 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Fix GETINFO opcode handling of subpixel hinting bits.
+
+ * src/truetype/ttinterp.c (Ins_GETINFO): Don't request bit 6 set to
+ get info on subpixel hinting.
+
+ * docs/CHANGES: Updated.
+
+2013-11-02 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #40451.
+
+ Simply apply the patch from the bug report.
+
+ * builds/unix/ftconfig.in, builds/vms/ftconfig.h,
+ include/freetype/config/ftconfig.h: The used #pragma directives only
+ work with gcc versions 4.6 and higher.
+
+2013-11-01 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2013-11-01 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Minor code refactoring.
+
+ Two benefits: The allocated FDEF (and IDEF) array gets slightly
+ smaller, and the `ttdebug' demo program has access to function
+ numbers without additional costs.
+
+ Fortunately, no changes to FontForge are necessary – this is the
+ only external TrueType debugger I know of, but others may exist and
+ should check the code accordingly.
+
+ * src/truetype/ttinterp.h (TT_CallRec): Replace `Cur_Restart' and
+ `Cur_End' with a pointer to the corresponding `TT_DefRecord'
+ structure.
+
+ * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF, Ins_ENDF,
+ Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns <Invalid_Opcode>):
+ Updated.
+
+2013-10-27 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Implement support for `OS/2' table version 5.
+
+ See
+
+ http://typedrawers.com/discussion/470/new-microsoft-size-specific-design-selection-mechanism
+
+ for the announcement.
+
+ * include/freetype/tttables.h (TT_OS2): Add fields
+ `usLowerPointSize' and `usUpperPointSize'. Since FreeType returns
+ this structure only as a pointer through `FT_Get_Sfnt_Table', there
+ shouldn't be any ABI problems.
+
+ * src/sfnt/ttload.c (tt_face_load_os2): Implement it.
+
+ * docs/CHANGES: Updated.
+
+2013-10-24 Werner Lemberg <wl@gnu.org>
+
+ * README.git, docs/CHANGES, docs/INSTALL: Updated.
+
+2013-10-24 John Cary <cary@txcorp.com>
+
+ Provide cmake support.
+
+ * CMakeLists.txt: New file.
+
+2013-10-23 Kenneth Miller <kennethadammiller@yahoo.com>
+ Werner Lemberg <wl@gnu.org>
+
+ Provide support for x64 builds in Visual C++ project files.
+
+ * src/builds/win32: Renamed to...
+ * src/builds/windows: This.
+
+ * src/builds/windows/vc2010/*: Updated to handle x64 target.
+
+ * src/builds/windows/*.mk, docs/INSTALL.GNU: s/win32/windows/ where
+ appropriate.
+
+2013-10-22 Werner Lemberg <wl@gnu.org>
+
+ * src/base/md5.c, src/base/md5.h: Updated to recent version.
+
+ * src/base/ftobjs.c: Updated; `md5.c' no longer uses `free'.
+
+ The canonical URL to get updates for this file is
+
+ http://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/popa3d/popa3d/md5/
+
+ as the author told me in private communication.
+
+2013-10-19 Werner Lemberg <wl@gnu.org>
+
+ [autofit] s/SMALL_TOP/X_HEIGHT/.
+
+ * src/autofit/afblue.dat: Updated.
+
+ * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+ * src/autofit/aflatin.c, src/autofit/aflatin.h,
+ src/autofit/atlatin2.c: Updated.
+
+2013-10-19 Werner Lemberg <wl@gnu.org>
+
+ * src/autofit/afblue.dat: s/MINOR/DESCENDER/.
+
+ * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+2013-10-16 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Add description strings to script entries.
+
+ Currently, this is unused.
+
+ * src/autofit/afscript.h: Do it.
+ * src/autofit/afglobal.c, src/autofit/afpic.c,
+ src/autofit/aftypes.h: Updated.
+
+2013-10-16 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Improve tracing message for extra light flag.
+
+ * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Do it.
+
+2013-10-15 Chongyu Zhu <lembacon@gmail.com>
+
+ [arm] Fix thumb2 inline assembly under LLVM.
+
+ When using `ADD' with an immediate operand, the instruction is
+ actually `ADD Rd, Rn, #<imm12>', that is, the maximum of the
+ immediate operand cannot exceed 4095. It will fail to compile with
+ LLVM.
+
+ However, in GCC, due to some legacy compatibility considerations,
+ `ADD.W' will be automatically emitted when the immediate operand is
+ larger than 4095.
+
+ * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
+ (FT_MulFix_arm) [__GNUC__]: Support clang compiler.
+
+ * src/truetype/ttinterp.c (TT_MulFix14_arm) [__GNUC__]: Ditto.
+
+2013-10-12 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Improve tracing of `latin' hinter.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_blues): Report blue
+ zone types.
+ (af_latin_metrics_scale_dim): Report scaling changes due to x height
+ alignment.
+ Report scaled stroke width and blue zone values.
+
+2013-10-03 Dave Arnold <darnold@adobe.com>
+
+ * src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero.
+
+ Note that the old code avoided using a region of the piecewise
+ linear function where the slope was zero. The recovery was to use a
+ different section of the function, which produced a different,
+ incorrect amount of darkening.
+
+2013-10-02 Darrell Bellert <darrell.bellert@hl.konicaminolta.us>
+
+ * src/sfnt/ttload.c (tt_face_load_pclt): Fix `pclt_fields'.
+
+2013-10-02 Dave Arnold <darnold@adobe.com>
+
+ * src/cff/cf2font.c (cf2_computeDarkening): Initialize darkenAmount.
+
+ This line was lost in commit 89ca1fd6 (from 2013-06-25). The effect
+ is to use a previous darkening amount when producing an unhinted,
+ unscaled outline. This can cause autohint samples in ftgrid and
+ ftview to be based on darkened CFF outlines instead of unhinted,
+ undarkened ones.
+
+2013-09-29 Dave Arnold <darnold@adobe.com>
+
+ Fix Savannah bug #39295.
+
+ The bug was caused by switching to the initial hintmap (the one in
+ effect when `moveto' executes) just before drawing the final element
+ in the charstring. This ensured that the path was closed (in both
+ Character Space and Device Space). But if the final element was a
+ curve and if the final hintmap was different enough from the initial
+ one, then the curve was visibly distorted.
+
+ The first part of the fix is to draw the final curve using the final
+ hintmap as specified by the charstring. This corrects the
+ distortion but does not ensure closing in Device Space. It may
+ require the rasterizer to automatically generate an extra closing
+ line. Depending on the hintmap differences, this line could be from
+ zero to a couple pixels in length.
+
+ The second part of the fix covers the case where the charstring
+ subpath is closed with an explicit line. We now modify that line's
+ end point to avoid the distortion.
+
+ Some glyphs in the bug report font (TexGyreHeros-Regular) that show
+ the change are:
+
+ 25ppem S (98)
+ 24ppem eight (52)
+ 25.5ppem p (85)
+
+ Curves at the *end* of a subpath are no longer distorted. However,
+ some of these glyphs have bad hint substitutions in the middle of a
+ subpath, and these are not affected.
+
+ The patch has been tested with a set of 106 fonts that shipped with
+ Adobe Creative Suite 4, together with 756 Open Source CFF fonts from
+ Google Fonts. There are 1.5 million glyphs, of which some 20k are
+ changed with the fix. A sampling of a few hundred of these changes
+ have been examined more closely, and the changes look good (or at
+ least acceptable).
+
+ * src/cff/cf2hints.h (CF2_GlyphPathRec): New element `pathIsClosing'
+ to indicate that we synthesize a closepath line.
+
+ * src/cff/cf2hints.c (cf2_glyphpath_init): Updated.
+ (cf2_glyphpath_pushPrevElem): If closing, use first hint map (for
+ `lineto' operator) and adjust hint zone.
+ For synthesized closing lines, use end point in first hint zone.
+ (cf2_glyphpath_lineTo): Take care of synthesized closing lines. In
+ particular, shift the detection of zero-length lines from character
+ space to device space.
+ (cf2_glyphpath_closeOpenPath): Remove assertion.
+ Updated.
+
+2013-09-25 Werner Lemberg <wl@gnu.org>
+
+ * src/autofit/aflatin.c (af_{grek,cyrl}_uniranges): Fix arrays.
+
+2013-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ [bdf, pcf] Refuse non-zero face_index.
+
+ Suggested by Akira Tagoh, see
+
+ http://lists.gnu.org/archive/html/freetype/2013-09/msg00030.html
+
+ * src/bdf/bdfdrivr.c (BDF_Face_Init): Return `Invalid_Argument'
+ error if the font could be opened but non-zero `face_index' is
+ given.
+ * src/pcf/pcfdrivr.c (PCF_Face_Init): Ditto.
+
+ * src/type42/t42objs.c (T42_Face_Init): Remove unrequired FT_UNUSED
+ macro for `face_index' because it is validated later.
+
+2013-09-23 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #40090.
+
+ * src/autofit/afcjk.c (af_cjk_metrics_scale): Revert commit
+ 306f8c5d (from 2013-08-25) affecting this function.
+
+2013-09-22 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Disunify Cyrillic and Greek handling from Latin.
+
+ * src/autofit/afscript.h: Add Cyrillic and Greek.
+
+ * src/autofit/afblue.dat (AF_BLUE_STRINGSET_GREK,
+ AF_BLUE_STRINGSET_CYRL): Add blue zones for Greek and Cyrillic.
+ (AF_BLUE_STRINGSET_LATN): Fix typo.
+ * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+ * src/autofit/aflatin.c (af_grek_uniranges, af_cyrl_uniranges): New
+ arrays.
+ (af_grek_script_class, af_cyrl_script_class): New scripts.
+ * src/autofit/aflatin.h: Updated.
+
+2013-09-20 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2013-09-20 Behdad Esfahbod <behdad@behdad.org>
+
+ Fix vertical size of emboldened glyphs.
+
+ Cf. https://bugzilla.gnome.org/show_bug.cgi?id=686709
+
+ * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Adjust `horiBearingY'
+ also.
+
+2013-09-11 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * include/freetype/ftoutln.h: Correct FT_Outline_Get_Orientation
+ algorithm description.
+
+2013-09-11 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Improve Hebrew rendering.
+
+ This change introduces a new blue zone property
+ `AF_BLUE_PROPERTY_LATIN_LONG' to make the auto-hinter ignore short
+ top segments.
+
+ * src/autofit/afblue.dat: Fix Hebrew blue strings.
+ Use AF_BLUE_PROPERTY_LATIN_LONG for AF_BLUE_STRING_HEBREW_TOP.
+
+ * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_LONG): New macro.
+
+ * src/autofit/afblue.c, src/autofit/afblue.h: Updated.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle
+ `AF_LATIN_IS_LONG_BLUE'.
+
+ * src/autofit/aflatin.h (AF_LATIN_IS_LONG_BLUE): New macro.
+
+2013-08-28 Behdad Esfahbod <behdad@google.com>
+
+ [sfnt] Fix frame access while reading WOFF table directory.
+
+ * src/sfnt/sfobjs.c (woff_open_font): Using single memory frame
+ while reading the directory entries for the whole loop.
+
+2013-08-29 Werner Lemberg <wl@gnu.org>
+ Behdad Esfahbod <behdad@google.com>
+
+ Implement support for WOFF containers.
+
+ We simply synthesize a SFNT from the WOFF, create a memory stream
+ for the new data, and load the SFNT as usual.
+
+ Does NOT add any API to access WOFF metadata or private blocks.
+
+ * include/freetype/internal/tttypes.h (WOFF_HeaderRec,
+ WOFF_TableRec): New structures.
+
+ * include/freetype/tttags.h (TTAG_wOFF): New macro.
+
+ * src/base/ftobjs.c (FT_Open_Face): Set `stream' after calling
+ `open_face'.
+
+ * src/sfnt/sfobjs.c [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Include
+ `FT_GZIP_H'.
+ (WRITE_BYTE, WRITE_USHORT, WRITE_ULONG): New temporary macros for
+ writing to a stream.
+ (sfnt_stream_close, compare_offsets, woff_open_font): New functions.
+ (sfnt_open_font): Handle `TTAG_wOFF'.
+ (sfnt_init_face): Set `stream' after calling `sfnt_open_font'.
+
+ * src/truetype/ttobjs.c (tt_face_init): Set `stream' after calling
+ `sfnt->init_face'.
+
+ * src/base/ftobjs.c (open_face): Use a pointer to FT_Stream as an
+ argument so that a changed stream survives.
+ Update callers.
+
+2013-08-28 Werner Lemberg <wl@gnu.org>
+
+ [gzip] New function `FT_Gzip_Uncompress'.
+
+ This is modeled after zlib's `uncompress' function. We need this
+ for WOFF support.
+
+ * include/freetype/ftgzip.h, src/gzip/ftgzip.c (FT_Gzip_Uncompress):
+ New function.
+
+ * src/gzip/rules.mk: Rewrite to better reflect dependencies.
+
+2013-08-28 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix `make multi' compilation.
+
+ * src/autofit/afblue.cin, src/autofit/afblue.c: Don't include
+ `afblue.h' but `aftypes.h'.
+ * src/autofit/afcjk.c: Don't include `aftypes.h' but `afglobal.h'.
+
+2013-08-28 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix C++ compilation.
+
+ * src/autofit/afglobal.c (af_face_globals_get_metrics),
+ src/autofit/afdummy.c (af_dflt_script_class), src/autofit/afindic.c
+ (af_deva_script_class): Use proper casts.
+
+2013-08-27 Behdad Esfahbod <behdad@google.com>
+
+ * src/sfnt/ttload.c (tt_face_load_font_dir): Fix sign typos.
+
+2013-08-27 Behdad Esfahbod <behdad@google.com>
+
+ FT_Open_Face: Improve external stream handling.
+
+ If the font's `clazz->init_face' function wants to swap to new
+ stream, handling of whether original stream was external could
+ result to either memory leak or double free. Mark externality into
+ face flags before calling `init_face' such that the clazz can handle
+ external streams properly.
+
+ * src/base/ftobjs.c (FT_Open_Face): Move code to set
+ FT_FACE_FLAG_EXTERNAL_STREAM to...
+ (open_face): This function.
+
+2013-08-27 Werner Lemberg <wl@gnu.org>
+
+ Remove `FT_SqrtFixed' function.
+
+ It's no longer used.
+
+ * include/freetype/internal/ftcalc.h, src/base/ftcalc.c: Do it.
+
+2013-08-27 Werner Lemberg <wl@gnu.org>
+
+ [autofit] While tracing, report script names instead of ID values.
+
+ * src/autofit/afglobal.c (af_script_names) [FT_DEBUG_LEVEL_TRACE]:
+ New array.
+ * src/autofit/afglobal.h: Updated.
+
+ * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
+ af_cjk_hint_edges): Use `af_script_names'.
+ * src/autofit/aflatin.c (af_latin_metrics_init_widths,
+ af_latin_hint_edges): Ditto.
+
+2013-08-26 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Report used script while hinting a glyph.
+
+ * src/autofit/afcjk.c (af_cjk_hint_edges), src/autofit/aflatin.c
+ (af_latin_hint_edges): Implement it.
+
+2013-08-26 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Add support for Hebrew script.
+
+ * src/autofit/afblue.dat: Add blue strings for Hebrew.
+ * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
+
+ * src/autofit/aflatin.c (af_hebr_uniranges): New array.
+ (af_hebr_script_class): New script.
+ * src/autofit/aflatin.h, src/autofit/afscript.h: Updated.
+
+2013-08-26 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Improve tracing messages.
+
+ * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Mention script
+ ID in tracing message.
+ (af_cjk_metrics_init_blues): Initialize `axis' outside of the inner
+ loop.
+ Improve tracing messages.
+ (af_cjk_hint_edges) [FT_DEBUG_LEVEL_TRACE]: New variable
+ `num_actions' to count hinting actions.
+ Improve tracing messages.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_widths): Mention
+ script ID in tracing message.
+ (af_latin_metrics_init_blues, af_latin_hint_edges): Improve tracing
+ messages.
+
+2013-08-26 Werner Lemberg <wl@gnu.org>
+
+ Better tracing of loaded glyphs.
+
+ Previously, the loading of a glyph was traced at level 4, if at all.
+ With this change, all font loading routines emit a tracing message
+ at level 1, making it easier to select tracing output (for example
+ using F2_DEBUG="any:1 afhints:7 aflatin:7").
+
+ * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Add tracing message.
+ * src/cff/cffdrivr.c (cff_glyph_load): Ditto.
+ * src/cff/cffgload.c (cff_decoder_prepare): Improve tracing
+ messages.
+ * src/cid/cidgload.c (cid_load_glyph): Use level 1 for tracing
+ message.
+ * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Ditto.
+ * src/pfr/pfrobjs.c (pfr_slot_load): Add tracing message.
+ * src/truetype/ttgload.c (TT_Load_Glyph): Ditto.
+ * src/type1/t1gload.c (T1_Load_Glyph): Ditto.
+ * src/type42/t42objs.c (T42_GlyphSlot_Load): Ditto.
+ * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto.
+
+2013-08-26 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix script selection.
+
+ * src/autofit/afglobal.c (af_face_globals_get_metrics): Use
+ `AF_SCRIPT_DFLT', not value 0.
+ Simplify code.
+
+ * src/autofit/afscript.h: Sort by script name.
+
+2013-08-26 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Make `dummy' hinter work as expected.
+
+ * src/autofit/afdummy.c (af_dummy_hints_init): Properly set scaling
+ information.
+ (af_dummy_hints_apply): Scale the glyphs.
+
+2013-08-25 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Make `cjk' module use blue stringsets.
+
+ * src/autofit/afcjk.c (AF_CJK_MAX_TEST_CHARACTERS): Removed.
+ (af_cjk_hani_blue_chars): Removed.
+ (AF_CJK_BLUE_TYPE_*): Removed.
+ (af_cjk_metrics_init_blues): Replace AF_CJK_MAX_TEST_CHARACTERS with
+ AF_BLUE_STRING_MAX_LEN.
+ Change loops to use offsets (in file `afblue.h') into the new arrays
+ `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
+ Instead of three dimensions (as used in the old blue string array)
+ we now use properties to do the same, saving one loop nesting level.
+
+ * src/autofit/afcjk.h: Remove old enumeration values superseded by
+ the new data in `afblue.h'.
+ (AF_CJK_IS_TOP_BLUE, AF_CJK_IS_HORIZ_BLUE, AF_CJK_IS_FILLED_BLUE,
+ AF_CJK_IS_RIGHT_BLUE): New macros, to be used in
+ `af_cjk_metrics_init_blues'.
+ (AF_CJK_BLUE_IS_RIGHT): Remove this now redundant enum value.
+ (AF_CJK_BLUE_IS_TOP): Renamed to...
+ (AF_CJK_BLUE_TOP): This.
+ (AF_CJK_MAX_BLUES): Remove.
+ (AF_CJKAxisRec): Updated.
+
+2013-08-25 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Typo.
+
+ * src/autofit/afblue.hin, src/autofit/afblue.c (GET_UTF8_CHAR): Use
+ cast.
+
+2013-08-25 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Synchronize `cjk' with `latin' module (and vice versa).
+
+ * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Add tracing
+ messages.
+ (af_cjk_metrics_init_blues): Don't pass blue string array as
+ argument but use the global array directly.
+ Use `outline' directly.
+ Update and add tracing messages.
+ (af_cjk_metrics_init): Simplify code.
+ (af_cjk_metrics_scale_dim): Improve tracing message.
+ (af_cjk_metrics_scale): Synchronize.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_widths,
+ af_latin_metrics_init_blues): Improve and add tracing messages.
+
+2013-08-25 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Make `latin' module use blue stringsets.
+
+ * src/autofit/aflatin.c (AF_LATIN_MAX_TEST_CHARACTERS): Removed.
+ (af_latin_blue_chars): Removed.
+ (af_latin_metrics_init_blues): Replace AF_LATIN_MAX_TEST_CHARACTERS
+ with AF_BLUE_STRING_MAX_LEN.
+ Change loops to use offsets (in file `afblue.h') into the new arrays
+ `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
+ Use `AF_LATIN_IS_SMALL_TOP_BLUE' macro.
+
+ * src/autofit/aflatin.h: Remove old enumeration values superseded by
+ the new data in `afblue.h'.
+ (AF_LATIN_IS_TOP_BLUE): Updated definition.
+ (AF_LATIN_IS_SMALL_TOP_BLUE): New macro.
+ (AF_LATIN_MAX_BLUES): Remove.
+ (AF_LatinAxisRec): Updated.
+
+2013-08-25 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Add blue stringsets.
+
+ * src/autofit/aftypes.h: Include `afblue.h'.
+ (AF_ScriptClassRec): Add `blue_stringset' field.
+ (AF_DEFINE_SCRIPT_CLASS): Updated.
+
+ * src/autofit/autofit.c: Include `afblue.c'.
+
+ * src/autofit/afcjk.c (af_hani_script_class), src/autofit/afdummy.c
+ (af_dflt_script_class), src/autofit/afindic.c
+ (af_deva_script_class), src/autofit/aflatin.c
+ (af_latn_script_class), src/autofit/aflatin2.c
+ (af_ltn2_script_class): Updated.
+
+ * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afblue.c'.
+
+2013-08-25 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Introduce data file for blue strings.
+
+ The idea is to have a central file which gets processed by a Perl
+ script to create proper `.c' and `.h' files using templates. There
+ are two other reasons to do that:
+
+ . The data file should be easily readable. We use UTF-8 encoding
+ which then gets converted to single bytes.
+
+ . Since the number of supported scripts will increase soon, the
+ current usage of blue string arrays is a waste of space. Using
+ the Perl script it is possible to imitate jagged arrays,
+ defining enumeration constants as offsets into the arrays.
+
+ This commit only adds files without changing any functionality.
+
+ * src/autofit/afblue.dat: New data file.
+ * src/tools/afblue.pl: New Perl script for processing `afblue.dat'.
+
+ * src/autofit/afblue.cin, src/autofit/afblue.hin: New template files
+ for...
+ * src/autofit/afblue.c, src/autofit/afblue.c: New source files.
+ To avoid a dependency on Perl, we add them too.
+
+2013-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Enable new algorithm for `BBox_Cubic_Check'.
+
+ * src/base/ftbbox.c: Enable new BBox_Cubic_Check algorithm, remove
+ the old one.
+ Improve comments.
+
+2013-08-18 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/unix-def.in (freetype2.pc): Don't set executable bit.
+
+2013-08-18 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #39804.
+
+ * builds/unix/configure.raw (LIBPNG): Define and export.
+ * builds/unix/freetype-config.in, builds/unix/freetype2.in: Handle
+ libpng.
+
+2013-08-17 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Clean up BBox_Conic_Check.
+
+ * src/base/ftbbox.c (BBox_Conic_Check): Remove redundant checks for
+ extremum at the segment ends, which are already within the bbox.
+ Slightly modify calculations.
+
+2013-08-15 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Finish experimental (disabled) BBox_Cubic_Check implementation.
+
+ * src/base/ftbbox.c (BBox_Cubic_Check): Scale arguments to improve
+ accuracy and avoid overflows.
+
+2013-08-13 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Refactor experimental (disabled) BBox_Cubic_Check.
+
+ * src/base/ftbbox.c (BBox_Cubic_Check): Implement the minimum search
+ as the mirror image of the maximum search implemented here...
+ (update_max): New function.
+
+2013-08-06 John Tytgat <John.Tytgat@esko.com>
+
+ Fix Savannah bug #39702.
+
+ * src/cff/cffload.c (cff_index_get_pointers): Check for `cur_offset
+ != 0'; this stronger test is mandated by the CFF specification.
+ Fix test for INDEX structures which have one or more empty entries
+ at the end.
+
+2013-08-05 Werner Lemberg <wl@gnu.org>
+
+ Fix gcc pragmas, part 2.
+
+ * src/truetype/ttinterp.c (TT_MulFix14_long_long,
+ TT_DotFix14_long_long): `#pragma gcc diagnostic {push,pop}' has been
+ introduced with gcc version 4.6.
+
+2013-08-05 Werner Lemberg <wl@gnu.org>
+
+ Fix gcc pragmas.
+
+ * src/truetype/ttinterp.c (TT_MulFix14_long_long,
+ TT_DotFix14_long_long): Older gcc versions don't accept diagnostic
+ pragmas within a function body.
+
+2013-08-05 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #39700.
+
+ * builds/unix/ftconfig.h: Synchronize with
+ `include/freetype/config/ftconfig.h'.
+
+ * builds/vms/ftconfig.h: Ditto.
+ Make the differences to the master `ftconfig.h' file as small as
+ possible for easier maintainance.
+
+2013-08-05 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Improve handling of `near' points.
+
+ Points which are very near to each other are now marked as such.
+ The `weak' flag is then computed by using the `in' vector of the
+ first and the `out' vector of the last point of a group of near
+ points.
+
+ For example, this fixes the rendering of glyph `Oslash' in
+ `Roboto-Thin.ttf'.
+
+ * src/autofit/afhints.h (AF_Flags): New value `AF_FLAGS_NEAR'.
+
+ * src/autofit/afhints.c (af_glyph_hints_reload): Introduce
+ the heuristic value `near_limit' to decide whether the current point
+ is near to the previous one, then set `AF_FLAG_NEAR' accordingly.
+ Store good `in' vector (of last non-near point) in
+ `last_good_in_{x,y}' and use it as an argument to
+ `ft_corner_is_flat' if necessary.
+
+2013-08-02 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/ftcffdrv.h: Improve documentation.
+ This is based on blog entries from David Lemon and Dave Arnold (both
+ from Adobe) with kind permission. Dave also helped in
+ proof-reading.
+
+2013-08-02 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Move declaration of scripts into separate file.
+
+ This has the benefit that we don't need to duplicate the data at
+ different places.
+
+ * src/autofit/afscript.h: New file.
+
+ * src/autofit/aftypes.h (AF_Script): Include `afscript.h' to define
+ the enumeration values.
+
+ * src/autofit/afglobal.c: Include `afscript.h' to get the script
+ specific header files.
+ (af_script_classes): Include `afscript.h' to fill this array.
+
+ * src/autofit/afpic.c: Include `afscript.h' to get the script
+ specific header files.
+ (autofit_module_class_pic_init): Include `afscript.h' for
+ initialization.
+ * src/autofit/afpic.h (AF_SCRIPT_CLASSES_COUNT,
+ AF_SCRIPT_CLASSES_REC_COUNT): Removed. Use `AF_SCRIPT_MAX' instead.
+
+ * src/autofit/rules.mk (AUTOF_DRV_H): Updated.
+
+2013-08-02 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Move declaration of writing systems into separate file.
+
+ This has the benefit that we don't need to duplicate the data at
+ different places.
+
+ * src/autofit/afwrtsys.h: New file.
+
+ * src/autofit/aftypes.h (AF_WritingSystem): Include `afwrtsys.h' to
+ define the enumeration values.
+
+ * src/autofit/afglobal.c: Include `afwrtsys.h' to get the writing
+ system specific header files.
+ Include `afpic.h'.
+ (af_writing_system_classes): Include `afwrtsys.h' to fill this
+ array.
+
+ * src/autofit/afpic.c: Include `afwrtsys.h' to get the writing
+ system specific header files.
+ (autofit_module_class_pic_init): Include `afwrtsys.h' for
+ initialization.
+ * src/autofit/afpic.h (AF_WRITING_SYSTEM_CLASSES_COUNT,
+ AF_WRITING_SYSTEM_CLASSES_REC_COUNT): Removed. Use
+ `AF_WRITING_SYSTEM_MAX' instead.
+
+2013-08-02 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix compilation with g++.
+
+ * src/sfnt/pngshim.c (error_callback, read_data_from_FT_stream): Use
+ cast.
+ (Load_SBit_Png): Pacify compiler.
+
+2013-08-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+ Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix `make multi'.
+
+ * include/freetype/config/ftconfig.h (FT_LOCAL_ARRAY,
+ FT_LOCAL_ARRAY_DEF): New macros.
+
+ * src/autofit/afglobal.c (af_writing_system_classes,
+ af_script_classes): Use FT_LOCAL_ARRAY_DEF.
+ * src/autofit/afglobal.h: Declare `af_writing_system_classes' and
+ `af_script_classes'.
+ * src/autofit/afloader.c: Include `afpic.h'.
+
+2013-08-01 Werner Lemberg <wl@gnu.org>
+
+ Another round of cppcheck nitpicks.
+
+ The call was (from the top-level of the FreeType tree):
+
+ cppcheck --force \
+ --enable=all \
+ -I /usr/include \
+ -I /usr/local/include \
+ -I /usr/lib/gcc/i586-suse-linux/4.7/include \
+ -I include \
+ -I include/freetype \
+ -I include/freetype/config \
+ -I include/freetype/internal \
+ -DFT2_BUILD_LIBRARY \
+ . &> cppcheck.log
+
+ using cppcheck git commit f7e93f99.
+
+ Note that cppcheck still can't handle `#include FOO' (with `FOO' a
+ macro).
+
+ */* Improve variable scopes.
+ */* Remove redundant initializations which get overwritten.
+
+ * src/gxvalid/*: Comment out redundant code or guard it with
+ FT_DEBUG_LEVEL_TRACE.
+
+2013-07-30 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Introduce `writing systems'.
+
+ This patch adds a new top level to the auto-hinter's script class
+ hierarchy. It defines `writing systems' which can contain multiple
+ scripts.
+
+ For example, the `latin' writing system (in file `aflatin.c') is
+ able to support scripts like Latin, Cyrillic, Armenian, etc., which
+ can be handled similarly.
+
+ Scripts are now named using four-letter OpenType tags.
+
+ * src/autofit/aftypes.h (AF_ScriptClassRec): Move relevant members
+ to...
+ (AF_WritingSystemClassRec): This new structure. It holds pointers
+ to functions which can be shared among related scripts.
+ (AF_WritingSystem): New enumeration.
+ (AF_Script): Revised values using four-letter tags.
+ (AF_DEFINE_WRITING_SYSTEM_CLASS): New macro.
+ (AF_DEFINE_SCRIPT_CLASS): Updated.
+
+ * src/autofit/afglobal.c (af_writing_system_classes): New global,
+ constant array.
+ (af_script_classes): Updated.
+ (af_face_globals_free): Updated.
+ Remove assertion.
+ (af_face_globals_get_metrics): Updated.
+
+ * src/autofit/afglobal.h (AF_SCRIPT_FALLBACK)
+ [!AF_CONFIG_OPTION_CJK]: Handle this case.
+
+ * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
+ Updated.
+
+ * src/autofit/afpic.c (autofit_module_class_pic_init): Updated;
+ initialize structures for both writing systems and scripts.
+ * src/autofit/afpic.h: Updated.
+ (AF_WRITING_SYSTEM_CLASSES_GET): New macro.
+
+ * src/autofit/afcjk.c (af_cjk_writing_system_class): New writing
+ system.
+ (af_cjk_uniranges): Renamed to...
+ (af_hani_uniranges): This.
+ (af_cjk_script_class): Reduced and renamed to...
+ (af_hani_script_class): This.
+ * src/autofit/afcjk.h: Updated.
+
+ * src/autofit/afdummy.c (af_dummy_writing_system_class): New writing
+ system.
+ (af_dummy_script_class): Reduced and renamed to...
+ (af_dflt_script_class): This.
+ * src/autofit/afdummy.h: Updated.
+
+ * src/autofit/afindic.c (af_indic_writing_system_class): New writing
+ system.
+ (af_indic_uniranges): Renamed to...
+ (af_deva_uniranges): This.
+ (af_indic_script_class): Reduced and renamed to...
+ (af_deva_script_class): This.
+ * src/autofit/afcjk.h: Updated.
+
+ * src/autofit/aflatin.c (af_latin_writing_system_class): New writing
+ system.
+ (af_latin_uniranges): Renamed to...
+ (af_latn_uniranges): This.
+ (af_latin_script_class): Reduced and renamed to...
+ (af_latn_script_class): This.
+ * src/autofit/aflatin.h: Updated.
+
+ * src/autofit/aflatin2.c (af_latin2_writing_system_class): New
+ writing system.
+ (af_latin2_uniranges): Renamed to...
+ (af_ltn2_uniranges): This.
+ Synchronize ranges with `latin'.
+ (af_latin2_script_class): Reduced and renamed to...
+ (af_ltn2_script_class): This.
+ * src/autofit/aflatin2.h: Updated.
+
+2013-07-30 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Variable renaming.
+
+ * src/autofit/aftypes.h (AF_ScriptMetricsRec):
+ s/clazz/script_class/.
+ Update all users.
+
+2013-07-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ Ignore libpng-config under cross-building configuration,
+ because it will return the flags for the hosting environment.
+
+ * builds/unix/configure.raw: Ignore libpng-config when
+ `cross_compiling' == yes.
+
+2013-07-30 Behdad Esfahbod <behdad@google.com>
+
+ Prevent division by zero by a transparent color.
+
+ * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra):
+ Return 0 immediately, when alpha channel is zero.
+
+2013-07-25 Behdad Esfahbod <behdad@google.com>
+
+ Add FT_FACE_FLAG_COLOR and FT_HAS_COLOR.
+
+ Also disambiguate Google's color bitmap tables.
+
+ * include/freetype/freetype.h (FT_FACE_FLAG_COLOR, FT_HAS_COLOR):
+ New macros.
+
+ * include/freetype/internal/tttypes.h (TT_SbitTableType): Add
+ TT_SBIT_TABLE_TYPE_CBLC.
+
+ * src/sfnt/sfobjs.c (sfnt_load_face): Handle FT_FACE_FLAG_COLOR.
+
+ * src/sfnt/ttsbit.c (tt_face_load_sbit,
+ tt_face_load_strike_metrics, tt_face_load_sbit_image): Handle
+ TT_SBIT_TABLE_TYPE_CBLC.
+
+2013-07-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ [sfnt] Fix for `make multi' target.
+
+ * src/sfnt/pngshim.c (Load_SBit_Png): Use FT_LOCAL_DEF().
+
+2013-07-20 Werner Lemberg <wl@gnu.org>
+
+ * docs/INSTALL.GNU: Updated.
+
+2013-07-20 Behdad Esfahbod <behdad@google.com>
+
+ [sfnt] Fix `sbix' table version handling.
+
+ * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
+ USHORT version numbers are to be considered as `minor'.
+
+2013-07-19 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Fix segment classification for blue zones.
+
+ The old code (essentially unchanged since the very beginning)
+ incorrectly handled this configuration
+
+ x -o- x
+ / \
+ / \
+ / \
+ o o
+
+ as flat and this
+
+ o o
+ / /
+ x| x|
+ | |
+ o---------------o
+
+ as round. (`o' and `x' are on and off points, respectively).
+
+ This is a major change which should improve the rendering results
+ enormously for many TrueType fonts, especially in the range approx.
+ 20-40ppem, fixing the appearance of many overshoots.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_blues): Look at the
+ first and last points of the segment, not the points right before
+ and after.
+
+2013-07-19 Behdad Esfahbod <behdad@google.com>
+
+ [sfnt] `sbix' fix-ups.
+
+ * src/sfnt/sfobjs.c (sfnt_load_face): Apple's `sbix' color bitmaps
+ are rendered scaled and then the `glyf' outline rendered on top. We
+ don't support that yet, so just ignore the `glyf' outline and
+ advertise it as a bitmap-only font.
+
+ * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
+ [TT_SBIT_TABLE_TYPE_SBIX]: Return metrics in 26.6 units.
+ (tt_face_load_sbix_image): Typo.
+
+2013-07-18 Behdad Esfahbod <behdad@google.com>
+
+ [sfnt] Add support for Apple's `sbix' color bitmap table.
+
+ * include/freetype/internal/tttypes.h (TT_SBit_MetricsRec): Widen
+ fields to FT_Short and FT_UShort, respectively.
+ (TT_SBitTableType): New enumeration.
+ (TT_FaceRec): Add `sbit_table_type' field.
+
+ * include/freetype/tttags.h (TTAG_sbix): New macro.
+
+ * src/sfnt/pngshim.c (Load_SBit_Png): Pass a more generic
+ FT_GlyphSlot argument instead FT_Bitmap.
+ Add flag to control map and metrics handling.
+ Update all users.
+
+ * src/sfnt/ttsbit.c: Include `ttmtx.h'.
+ (tt_face_load_eblc): Renamed to...
+ (tt_face_load_sbit): This.
+ Handlic `sbix' bitmaps.
+ (tt_face_free_eblc): Renamed to...
+ (tt_face_load_sbit): This.
+ Updated.
+ (tt_face_load_strike_metrics): Handle `sbix' bitmaps.
+ (tt_face_load_sbix_image): New function.
+ (tt_sbit_decoder_alloc_bitmap, tt_sbit_decoder_load_image,
+ tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
+ tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
+ tt_sbit_decoder_load_image, tt_sbit_decoder_load_bitmap): Don't pass
+ and handle load flags.
+ (tt_sbit_decoder_load_bitmap) [!FT_CONFIG_OPTION_USE_PNG]: Better
+ handle formats 17-19.
+ Move color to grayscale conversion to...
+ (tt_face_load_sbit_image): Here.
+ Handle `sbix' bitmaps.
+
+ * src/sfnt/pngshim.h: Updated.
+ * src/sfnt/ttsbit.h: Updated.
+ * src/sfnt/sfdriver.c: Updated.
+
+2013-07-18 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Ignore invalid magic number in `head' or `bhed'.
+
+ Other font engines seem to ignore it also. Problem reported by
+ Hin-Tak Leung <htl10@users.sourceforge.net>.
+
+ * src/sfnt/ttload.c (check_table_dir): Don't abort but warn only if
+ we have an invalid magic number.
+
+2013-07-16 Werner Lemberg <wl@gnu.org>
+
+ [smooth] Fix segfault caused by previous commit.
+
+ * src/smooth/ftgrays.c (gray_set_cell): Always compute
+ `ras.invalid'.
+
+2013-07-16 David Turner <digit@google.com>
+
+ [smooth] Improve performance.
+
+ Provide a work-around for an ARM-specific performance bug in GCC.
+ This speeds up the rasterizer by more than 5%.
+
+ Also slightly optimize `set_gray_cell' and `gray_record_cell' (which
+ also improves performance on other platforms by a tiny bit (<1%).
+
+ * src/smooth/ftgrays.c (FT_DIV_MOD): New macro.
+ Use it where appropriate.
+
+ (gray_record_cell, gray_set_cell, gray_move_to,
+ gray_convert_glyph_inner): Streamline condition handling.
+
+2013-07-16 David Turner <digit@google.com>
+
+ [truetype] Add assembler code for TT_MulFix14 and TT_DotFix14.
+
+ This patch provides slightly optimized versions for ARM, x86, and
+ x86_64 CPUs if built with GCC.
+
+ Also remove some dead code.
+
+ * src/truetype/ttinterp.c (TT_MulFix14_arm, TT_MulFix14_long_long,
+ TT_DotFix14_long_long): New functions.
+
+2013-07-16 David Turner <digit@google.com>
+
+ Optimize FT_MulFix for x86_64 GCC builds.
+
+ This patch provides an optimized `FT_MulFix' implementation for
+ x86_64 machines when FreeType is built with GCC, or compatible
+ compilers like Clang.
+
+ Example:
+ bin/ftbench -p -t 5 -s 14 -f 0008 Arial.ttf
+
+ Before:
+
+ Load 4.863 us/op
+ Load_Advances (Normal) 4.816 us/op
+ Load_Advances (Fast) 0.028 us/op
+ Render 2.753 us/op
+ Get_Glyph 0.463 us/op
+ Get_CBox 0.077 us/op
+ Get_Char_Index 0.023 us/op
+ Iterate CMap 13.898 us/op
+ New_Face 12.368 us/op
+ Embolden 0.028 us/op
+ Get_BBox 0.302 us/op
+
+ After:
+
+ Load 4.617 us/op
+ Load_Advances (Normal) 4.645 us/op
+ Load_Advances (Fast) 0.027 us/op
+ Render 2.789 us/op
+ Get_Glyph 0.460 us/op
+ Get_CBox 0.077 us/op
+ Get_Char_Index 0.024 us/op
+ Iterate CMap 13.403 us/op
+ New_Face 12.278 us/op
+ Embolden 0.028 us/op
+ Get_BBox 0.301 us/op
+
+ * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
+ (FT_MulFix_x86_64): New function.
+
+2013-07-16 David Turner <digit@google.com>
+
+ Speed up ARMv7 support.
+
+ When building for ARMv7 with thumb2 instructions, the optimized
+ `FT_MulFix_arm' assembly routine was not being used.
+
+ The reason for this is in the `ftconfig.h' header, namely:
+
+ - The assembly routine uses the `smull' instruction which is not
+ available when generating Thumb-1 machine code. It is available
+ in Thumb-2 mode, though.
+
+ - The header was written a long time ago before Thumb-2 became
+ widely popular (e.g. with Android). So it simply doesn't use the
+ assembly routine if the `__thumb__' built-in macro is defined.
+
+ - When compiling in Thumb-2 mode, the compiler will define both
+ `__thumb__' and `__thumb2__'.
+
+ By checking for `(__thumb2__ || !__thumb__)', we ensure that the
+ assembly routine is only avoided when generating Thumb-1 code.
+
+ Given that this is performance-sensitive function, this improves
+ `ftbench' as follows on a Galaxy Nexus:
+
+ Before (us/op) After (us/op)
+
+ - loading Arial.ttf glyphs at 14 ppem [1]
+
+ Load 34.285 33.098
+
+ - same operation with the light auto-hinter [2]
+
+ Load 31.317 29.590
+
+ - same operation without hinting [3]
+
+ Load 6.143 5.376
+
+ - loading Arial.ttf advances at 14 ppem [4]
+
+ Load_Advances (normal) 34.216 33.016
+ Load_Advances (fast) 0.176 0.176
+
+ [1] ftbench -t 5 -p -s 14 -b a -f 0008 Arial.ttf
+ [2] ftbench -t 5 -p -s 14 -b a -r 1 -f 0028 Arial.ttf
+ [3] ftbench -t 5 -p -s 14 -b a -f 000a Arial.ttf
+ [4] ftbench -t 5 -p -s 14 -b b -f 0008 Arial.ttf
+
+ * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
+ (FT_MULFIX_ASSEMBLER): Fix handling for ARMv7.
+
+2013-06-28 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2013-06-27 Werner Lemberg <wl@gnu.org>
+
+ * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix bitmap width guard.
+
+2013-06-25 Werner Lemberg <wl@gnu.org>
+
+ [cff] Add darkening limit to `darkening-parameters'.
+
+ * src/cff/cffdrivr.c (cff_property_set): Add check.
+
+2013-06-25 Werner Lemberg <wl@gnu.org>
+
+ [cff] Add `darkening-parameters' property.
+
+ * include/freetype/ftcffdrv.h: Document it.
+
+ * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle
+ `darkening-parameters' property.
+
+ * src/cff/cf2font.h (CF2_FontRec): Add `darkenParams' array.
+
+ * src/cff/cf2font.c (cf2_computeDarkening): Add `darkenParams'
+ argument and use it.
+ Update all callers.
+
+ * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Copy
+ `darken_params' values.
+
+ * src/cff/cffobjs.h (CFF_DriverRec): Add `darken_params' array.
+
+ * src/cff/cffobjs.c (cff_driver_init): Set default values for
+ `darken_params'.
+
+2013-06-25 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Code shuffling.
+
+ * src/tools/docmaker/tohtml.py (re_url): Move regexp...
+ * src/tools/docmaker/sources.py: ... to this file.
+
+2013-06-25 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Remove unused functions.
+
+ * src/tools/docmaker/content.py (DocMarkup.get_start,
+ DocBlock.get_markup_name): Removed.
+ * src/tools/docmaker/tohtml.py (html_quote0, dump_html_code,
+ HtmlFormatter.make_html_words): Removed.
+
+2013-06-25 Werner Lemberg <wl@gnu.org>
+
+ * builds/freetype.mk (dll): Remove target.
+
+ Problem reported by Jörg Günnewig <joerg.guennewig@googlemail.com>.
+
+2013-06-25 Werner Lemberg <wl@gnu.org>
+
+ [docmaker] Recognise URLs.
+
+ * src/tools/docmaker/tohtml.py (re_url): New regular expression.
+ (make_html_para): Use it.
+
+2013-06-19 Werner Lemberg <wl@gnu.org>
+
+ * Version 2.5.0.1 released.
+ ===========================
+
+
+ Tag sources with `VER-2-5-0-1'.
+
+ * include/freetype/config/ftoption.h: Undefine
+ CFF_CONFIG_OPTION_OLD_ENGINE.
+ * devel/ftoption.h: Define CFF_CONFIG_OPTION_OLD_ENGINE.
+
+2013-06-19 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/install.mk (install): Don't create `cache' directory.
+
+ Found by Peter Breitenlohner <peb@mppmu.mpg.de>.
+
+2013-06-19 Werner Lemberg <wl@gnu.org>
+
+ * Version 2.5.0 released.
+ =========================
+
+
+ Tag sources with `VER-2-5-0'.
+
+ * docs/VERSION.DLL: Update documentation and bump version number to
+ 2.5.0.
+
+ * 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/vc2010/freetype.vcxproj, builds/win32/vc2010/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.12/2.5.0/, s/2412/250/.
+
+ * include/freetype/freetype.h (FREETYPE_MINOR): Set to 5.
+ (FREETYPE_PATCH): Set to 0.
+
+ * builds/unix/configure.raw (version_info): Set to 16:2:10.
+
+ * src/base/ftobjs.c (FT_Open_Face): Pacify compiler.
+ * src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIRP): Ditto.
+
+2013-06-18 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #39269.
+
+ * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Free memory in
+ case of reacollocation failures.
+
+2013-06-18 Andrew Church <achurch+savannah@achurch.org>
+
+ Fix Savannah bug #39266.
+
+ If memory allocations fail at certain points while opening a font,
+ FreeType can either crash due to a NULL dereference or leak memory.
+
+ * include/freetype/internal/ftobjs.c (FT_Face_InternalRec,
+ FT_LibraryRec): Make `refcount' a signed integer. If, for example,
+ FT_Open_Face() fails in a memory allocation before the face's
+ reference count is set to 1, a subsequent `FT_Done_Library' call
+ would otherwise loop over `FT_Done_Face' 2^32 times before freeing
+ the face.
+
+ * src/base/ftobjs.c (open_face): Initialize `stream' and friends
+ earlier.
+ (FT_Open_Face) <Fail>: Behave correctly if `node' is NULL.
+ (FT_Destroy_Module) <Fail>: Check that `renderer_clazz' is valid.
+
+2013-06-14 Werner Lemberg <wl@gnu.org>
+
+ * src/smooth/ftgrays.c One final pragma to silence 64-bit MSVC.
+
+2013-06-06 Dave Arnold <darnold@adobe.com>
+ Werner Lemberg <wl@gnu.org>
+
+ [cff] Add code to Adobe's engine to handle ppem > 2000.
+
+ * src/cff/cffgload.c (cff_slot_load): If we get
+ FT_Err_Glyph_Too_Big, retry unhinted and scale up later on.
+
+2013-06-12 Werner Lemberg <wl@gnu.org>
+
+ Another try on pragmas.
+
+ * include/freetype/internal/ftdebug.h: Move pragmas to...
+ * include/freetype/internal/internal.h: ... this file since it gets
+ included by all source files.
+ * include/freetype/internal/ftserv.h: Remove pragma which has no
+ effect.
+
+2013-06-12 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/ftdebug.h: Disable MSVC warning C4127.
+
+ This partially undoes commit 3f6e0e0c.
+
+2013-06-12 Werner Lemberg <wl@gnu.org>
+
+ More compiler warning fixes.
+
+ */*: Use cast to `FT_Bool' (or `Bool') where appropriate.
+
+2013-06-10 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Improve handling of broken sbit advance widths.
+
+ * src/truetype/ttgload.c (TT_Load_Glyph): Use the glyph's (scaled)
+ `linearHoriAdvance' if the sbit's `horiAdvance' value is zero.
+
+ Cf. font `Fixedsys Excelsior' v3.01 (FSEX300.ttf), glyph A, 16ppem.
+
+2013-06-10 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Improve embedded bitmap tracing.
+
+ * src/base/ftobjs.c (FT_Request_Size): Move trace message regarding
+ bitmap strike match to...
+ (FT_Match_Size): This function.
+
+ * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics,
+ tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
+ tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
+ tt_sbit_decoder_load_image): Decorate with tracing messages.
+
+2013-06-10 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #39160.
+
+ * src/truetype/ttinterp.c (Ins_SDPVTL): Set projection vector too
+ for the degenerate case.
+
+2013-06-09 David Turner <digit@google.com>
+
+ * src/cache/ftcmanag.c (FTC_Manager_Reset): Add missing cache flush.
+
+ This code, present since eight(!) years in the unused `CACHE'
+ branch, has been forgotten to apply to the master branch. It's
+ really amazing that noone has ever complained since
+ `FTC_Manager_Reset' is pretty useless without flushing the cache.
+
+2013-06-07 Werner Lemberg <wl@gnu.org>
+
+ Add and improve pragmas for MSVC compiler.
+
+ * include/freetype/internal/ftdebug.h: Remove pragmas.
+ * include/freetype/internal/ftserv.h: Use push and pop for pragmas.
+ * include/freetype/internal/ftvalid.h: Handle warning C4324.
+ * src/base/ftobjs.c: Use push and pop for pragmas.
+ * src/gzip/ftgzip.c: Handle warning C4244.
+
+2013-06-07 Werner Lemberg <wl@gnu.org>
+
+ [cff] s/cf2_getGlyphWidth/cf2_getGlyphOutline/.
+
+ * src/cff/cf2font.c, src/cff/cf2font.h, src/cff/cf2ft.c: Do it.
+
+2013-06-06 Dave Arnold <darnold@adobe.com>
+
+ [cff] Add early exit feature for width-only calls.
+
+ This is for `FT_Get_Advance'.
+
+ There are 7 places where the spec says the width can be defined:
+
+ hstem/hstemhm
+ vstem/vstemhm
+ cntrmask/hintmask
+ hmoveto
+ vmoveto
+ rmoveto
+ endchar
+
+ * src/cff/cf2intrp.c (cf2_doStems): Exit early for width-only calls,
+ if possible.
+
+ (cf2_interpT2CharString) <cf2_cmdHSTEM>, <cf2_cmdVSTEM>,
+ <cf2_cmdVMOVETO>, <cf2_cmdENDCHAR>, <cf2_cmdHINTMASK>,
+ <cf2_cmdRMOVETO>, <cf2_cmdHMOVETO>: Exit early for width-only calls.
+
+2013-06-06 Werner Lemberg <wl@gnu.org>
+
+ Next round of compiler fixes.
+
+ * builds/win32/ftdebug.c, builds/wince/ftdebug.c (ft_debug_init):
+ Add proper cast.
+
+ * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Fix
+ cast.
+ * include/freetype/internal/ftstream.h: Decorate stream and frame
+ macros with `FT_Long' and `FT_ULong' as appropriate.
+
+ * src/base/ftrfork.c (raccess_guess_darwin_hfsplus,
+ raccess_guess_darwin_newvfs): Use cast.
+
+ * src/bdf/bdflib.c (_bdf_set_default_spacing): Use cast.
+
+ * src/cache/ftcmanag.c (FTC_Manager_Check): Fix cast.
+ * src/cache/ftcmanag.h (FTC_ManagerRec): Ditto.
+
+ * src/cff/cf2arrst.c (cf2_arrstack_setNum_Elements): Use cast.
+ * src/cff/cf2ft.c (cf2_freeSeacComponent): Ditto.
+ * src/cff/cffobjs.c (remove_subset_prefix, remove_style): Ditto.
+
+ * src/cid/cidparse.c (cid_parser_new): Use cast.
+
+ * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Use cast.
+
+ * src/psaux/psobjs.c (reallocate_t1_table): Fix argument type.
+
+ * src/raster/ftraster.c (ft_black_reset): Use cast.
+
+ * src/truetype/ttgxvar.c (FT_Stream_FTell): Use cast.
+ (ALL_POINTS): Fix cast.
+
+ * src/type1/t1driver.c (t1_ps_get_font_value): Add casts.
+ * src/type1/t1parse.c (T1_Get_Private_Dict): Add cast.
+
+2013-06-05 Dave Arnold <darnold@adobe.com>
+
+ Fix more MSVC Win32 compiler warnings.
+
+ * src/base/ftobjs.c: Fix typo in MS pragma.
+
+ * src/base/bdflib.c (_bdf_set_default_spacing, _bdf_add_property):
+ `lineno' is only used in debug mode.
+
+ * src/cff/cf2ft.c (cf2_builder_moveTo): `params' is only used in
+ debug mode.
+
+2013-06-05 Werner Lemberg <wl@gnu.org>
+
+ Fix compiler warnings.
+
+ * include/freetype/internal/ftmemory.h: Decorate memory allocation
+ macros with `FT_Long' where appropriate.
+ Remove duplicate of FT_MEM_QRENEW_ARRAY definition.
+
+ * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
+ cast.
+
+ * src/base/ftobjs.c: Add warning disabling pragma for MSVC while
+ including `md5.c'.
+
+ * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdESC>: Add
+ cast.
+
+ * src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Fix casts.
+ (tt_sbit_decoder_load_bitmap): Beautification.
+
+ * src/smooth/ftsmooth.c (ft_smooth_render_generic): Initialize
+ variables (earlier).
+
+ * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Pacify compiler.
+
+ * src/truetype/ttgxvar.c (TT_Get_MM_Var): Use unsigned constants
+ where appropriate.
+
+ * src/type1/t1load.c (T1_Get_MM_Var): Ditto.
+
+2013-06-04 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cf2font.c (cf2_getGlyphWidth): Initialize `advWidth'.
+
+ Problem reported by Ingmar Sittl <ingmar.sittl@elektrobit.com>.
+
+2013-06-04 Werner Lemberg <wl@gnu.org>
+
+ Apply fixes for cppcheck nitpicks.
+
+ http://cppcheck.sourceforge.net/
+
+ The call was (from the top-level of the FreeType tree):
+
+ cppcheck --force \
+ --enable=all \
+ -I include \
+ -I include/freetype/ \
+ -I include/freetype/config/ \
+ -I include/freetype/internal/ \
+ . &> cppcheck.log
+
+ Note that the current version heavily chokes on FreeType, delivering
+ many wrong results. I will report those issues to the cppcheck team
+ so that a newer version gives improved results hopefully.
+
+ */* Improve variable scopes.
+ */* Remove redundant initializations which get overwritten.
+
+ * src/base/ftmac.c, builds/mac/ftmac.c (count_faces_scalable):
+ Remove unused variable.
+
+ * src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero.
+
+ * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate):
+ Remove functionless code.
+
+ * src/tools/ftrandom.c (main): Fix memory leak.
+
+2013-06-03 Werner Lemberg <wl@gnu.org>
+
+ Add CFF_CONFIG_OPTION_OLD_ENGINE configuration option.
+
+ This controls whether the old FreeType CFF engine gets compiled into
+ FreeType. It is now disabled by default.
+
+ * devel/ftoption.h, include/freetype/config/ftoption.h
+ (CFF_CONFIG_OPTION_OLD_ENGINE): New macro.
+
+ * src/cff/cffdrivr.c (cff_property_set), src/cff/cffgload.c
+ (CFF_Operator, cff_argument_counts, cff_builder_add_point,
+ cff_operator_seac, cff_decoder_parse_charstrings, cff_slot_load),
+ src/cff/cffgload.h, src/cff/cffobjs.c (cff_driver_init): Use
+ CFF_CONFIG_OPTION_OLD_ENGINE to guard the affected code.
+
+ * docs/CHANGES: Updated.
+
+2013-06-02 Werner Lemberg <wl@gnu.org>
+
+ Fix PNG library handling.
+
+ * builds/unix/configure.raw: Don't use LIBPNG_LIBS but
+ LIBPNG_LDFLAGS.
+
+2013-05-23 Behdad Esfahbod <behdad@google.com>
+
+ Add support for color embedded bitmaps (eg. color emoji).
+
+ A new load flag, FT_LOAD_COLOR, makes FreeType load color
+ embedded-bitmaps, following this draft specification
+
+ https://color-emoji.googlecode.com/git/specification/v1.html
+
+ which defines two new SFNT tables, `CBDT' and `CBLC' (named and
+ modeled after `EBDT' and `EBLC', respectively). The color bitmaps
+ are stored in the new FT_PIXEL_MODE_BGRA format to represent BGRA
+ pre-multiplied sRGB images. If PNG support is available, PNG color
+ images as defined in the same proposed specification are supported
+ also.
+
+ Note that color bitmaps are converted to grayscale if client didn't
+ ask for color.
+
+ * builds/unix/configure.raw: Search for libpng.
+ Add `--without-png' option.
+
+ * devel/ftoption.h, include/freetype/config/ftoption.h
+ (FT_CONFIG_OPTION_USE_PNG): New macro.
+
+ * include/freetype/freetype.h (FT_LOAD_COLOR): New load flag.
+
+ * include/freetype/ftimage.h (FT_Pixel_Mode): Add
+ `FT_PIXEL_MODE_BGRA'.
+
+ * include/freetype/tttags.h (TTAG_CBDT, TTAG_CBLC): New tags.
+
+ * src/base/ftbitmap.c (FT_Bitmap_Embolden): Updated.
+ (ft_gray_for_premultiplied_srgb_bgra): New function.
+ (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_BGRA.
+
+ * src/sfnt/pngshim.c, src/sfnt/pngshim.h: New files.
+
+ * src/sfnt/sfnt.c: Include `pngshim.c'.
+
+ * src/sfnt/ttsbit.c: Include FT_BITMAP_H and `pngshim.h'
+ (tt_face_load_eblc): Load `CBLC'.
+ (tt_sbit_decoder_init): Load `CBDT'.
+ (tt_sbit_decoder_alloc_bitmap): Pass load flags to select between
+ color and grayscale bitmaps.
+ Set `num_grays'. This is used by `ftview' to choose the blending
+ algorithm.
+ (tt_sbit_decoder_load_byte_aligned,
+ tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_compound,
+ tt_sbit_decoder_load_image): Pass load flag.
+ s/write/pwrite/.
+ Don't call `tt_sbit_decoder_alloc_bitmap'.
+ Updated.
+ (tt_sbit_decoder_load_png) [FT_CONFIG_OPTION_USE_PNG]: New function.
+ (tt_sbit_decoder_load_bitmap): Pass load flag.
+ Handle new glyph formats 17, 18, and 19.
+ Call `tt_sbit_decoder_alloc_bitmap'.
+ Flatten color bitmaps if necessary.
+ (tt_face_load_sbit_image): Updated.
+
+ * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `pngshim.c'.
+
+ * docs/CHANGES: Updated.
+
+2013-05-24 Guenter <info@gknw.net>
+
+ Apply Savannah patch #8055.
+
+ Make `apinames' create an import file for NetWare.
+
+ * src/tools/apinames.c (PROGRAM_VERSION): Set to 0.2.
+ (OutputFormat): Add `OUTPUT_NETWARE_IMP'.
+ (names_dump): Handle it.
+ (usage): Updated.
+ (main): Handle new command line flag `-wN'.
+
+2013-05-23 Behdad Esfahbod <behdad@behdad.org>
+
+ Compilation fix.
+
+ * src/truetype/ttinterp.c (TT_RunIns)
+ [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Make it work.
+
+2013-05-22 Infinality <infinality@infinality.net>
+
+ [truetype] Formatting and an additional subpixel tweak.
+
+ * src/truetype/ttinterp.c (Ins_SHPIX): Formatting fix.
+ * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules):
+ Revert previous modification for Verdana clones.
+
+2013-05-22 Infinality <infinality@infinality.net>
+
+ [truetype] Adjust subpixel zp2 moves and tweak rules.
+
+ These modifications fix thin diagonal stems in some legacy fonts.
+
+ * src/truetype/ttinterp.c (Direct_Move_X): Remove unused macro.
+ (Move_Zp2_Point): Don't always disable x moves for subpixel rendering.
+ (Ins_SHP): Disable x moves here for subpixel rendering.
+ (Ins_SHPIX): Only disable x moves in compatibility mode.
+ Split out zp2 move reversals and reorder conditional respectively.
+
+ * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): Fix oversight.
+ Only adjust Verdana clones for 17 ppem.
+ (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Courier New.
+ (ALWAYS_SKIP_DELTAP_Rules): Found additional cases for Arial `s'.
+
+2013-05-20 Infinality <infinality@infinality.net>
+
+ [truetype] Simplify and improve subpixel function detection.
+
+ Some small enhancements have allowed the removal of many macros and
+ the simplification of existing rules in `ttsubpix.c'.
+
+ * src/truetype/ttsubpix.h (SPH_TWEAK_ALLOW_X_DMOVEX,
+ SPH_TWEAK_ALLOW_X_MOVE_ZP2,
+ SPH_TWEAK_DELTAP_SKIP_EXAGGERATED_VALUES,
+ SPH_TWEAK_SKIP_INLINE_DELTAS, SPH_TWEAK_MIRP_CVT_ZERO): Removed.
+ (SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP): New rule macro.
+
+ * src/truetype/ttsubpix.c: Updated affected rules.
+
+ * src/truetype/ttinterp.c (Direct_Move_X): Updated.
+ (INS_FDEF): Add additional function detection.
+ (INS_ENDF): Set runtime flag.
+ (Ins_CALL): Skip the call under certain conditions.
+ Remove bad code.
+ (Ins_LOOPCALL): Skip the call under certain conditions.
+ Remove bad code.
+ (Move_Zp2_Point): Updated.
+ (Ins_SHPIX): Updated.
+ Skip the move under some situations.
+ (Ins_MIAP): Improve conditions.
+ (Ins_MIRP): Updated.
+ (Ins_DELTAP): Skip move under certain conditions.
+ Simplify conditions.
+ (TT_RunIns): Updated.
+ Add code to handle new function detection.
+ Trace messages.
+
+2013-05-17 Werner Lemberg <wl@gnu.org>
+
+ Update more FT_Err_XXX macros using FT_ERR and FT_THROW;
+
+ * builds/amiga/src/base/ftsystem.c, builds/mac/ftmac.c,
+ builds/unix/ftsystem.c, builds/vms/ftsystem.c: Do it.
+
+2013-05-15 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Add `interpreter-version' property.
+
+ This makes the option TT_CONFIG_OPTION_SUBPIXEL_HINTING controllable
+ at runtime.
+
+ * include/freetype/ftttdrv.h: New file.
+
+ * include/freetype/config/ftheader.h (FT_TRUETYPE_DRIVER_H): New
+ macro.
+
+ * src/truetype/ttdriver.c: Include FT_TRUETYPE_DRIVER_H.
+ (tt_property_set, tt_property_get): Fill templates.
+
+ * src/truetype/ttobjs.h (TT_DriverRec): Add `interpreter_version'
+ member.
+ Remove unused `extension_component' member.
+
+ * src/truetype/ttgload.c: Include FT_TRUETYPE_DRIVER_H.
+ (tt_get_metrics, TT_Hint_Glyph, TT_Process_Simple_Glyph,
+ compute_glyph_metrics, tt_loader_init): Use `interpreter_version'.
+
+ * src/truetype/ttinterp.c: Include FT_TRUETYPE_DRIVER_H.
+ (SUBPIXEL_HINTING): New macro to check `interpreter_version' flag.
+ Update all affected functions to use it.
+ Use TT_INTERPRETER_VERSION_XXX where appropriate.
+
+ * src/truetype/ttobjs.c: Include FT_TRUETYPE_DRIVER_H.
+ (tt_driver_init): Initialize `interpreter_version'.
+
+ * src/truetype/ttsubpix.c: Include FT_TRUETYPE_DRIVER_H.
+ Use TT_INTERPRETER_VERSION_XXX where appropriate.
+
+2013-05-13 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Avoid empty source file.
+
+ * src/truetype/ttsubpix.c [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]:
+ Provide dummy typedef.
+
+2013-05-13 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cf2font.c (cf2_getGlyphWidth): Fix uninitialized variable.
+
+ Fix suggested by Vaibhav Nagarnaik <vnagarnaik@gmail.com>.
+
+2013-05-13 Brian Nixon <bnixon@yahoo.com>
+
+ Fix Savannah bug #38970.
+
+ * src/base/ftdebug.c, builds/win32/ftdebug.c,
+ builds/wince/ftdebug.c, builds/amiga/src/base/ftdebug.c
+ (ft_debug_init): Don't read past the environment variable FT2_DEBUG.
+
+2013-05-12 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Add framework for TrueType properties.
+
+ * src/truetype/ttdrivr.c: Include FT_SERVICE_PROPERTIES_H.
+ (tt_property_set, tt_property_get): New functions, still empty.
+ Define `tt_service_properties' service.
+ Update `tt_services'.
+
+ * src/truetype/ttpic.h: Include FT_SERVICE_PROPERTIES_H.
+ (TT_SERVICE_PROPERTIES_GET): New macro.
+ (TTModulePIC): Add `tt_service_properties'.
+
+2013-05-12 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #38967.
+
+ * src/base/ftcalc.c (FT_DivFix) [FT_LONG64]: Fix cast.
+
+2013-05-12 Werner Lemberg <wl@gnu.org>
+
+ Introduce unsigned 64bit type (if available).
+
+ * include/freetype/config/ftconfig.h: Define FT_UINT64 if available.
+ [FT_LONG64]: Provide FT_UInt64.
+
+ * builds/unix/ftconfig.in: Synchronized.
+
+2013-05-12 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #38968.
+
+ * include/freetype/ftmodapi.h: Add `FT_EXPORT' to
+ FT_Property_{Set,Get}.
+ * src/base/ftobjs.c: Add `FT_EXPORT_DEF' to
+ FT_Property_{Set,Get}.
+
+2013-05-10 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Clean up bitmap code.
+
+ * src/sfnt/ttsbit.c: Deleted.
+ * src/sfnt/ttsbit0.c: Renamed to `ttsbit.c'.
+ * rules.mk (SFNT_DRV_H): Updated.
+
+2013-05-10 Werner Lemberg <wl@gnu.org>
+
+ */* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code.
+
+----------------------------------------------------------------------------
+
+Copyright 2013-2015 by
+David Turner, Robert Wilhelm, and Werner Lemberg.
+
+This file is part of the FreeType project, and may only be used, modified,
+and distributed under the terms of the FreeType project license,
+LICENSE.TXT. By continuing to use, modify, or distribute this file you
+indicate that you have read the license and understand and accept it
+fully.
+
+
+Local Variables:
+version-control: never
+coding: utf-8
+End:
diff --git a/freetype-2.6/ChangeLog.20 b/freetype-2.6/ChangeLog.20
new file mode 100644
index 0000000..6dae58e
--- /dev/null
+++ b/freetype-2.6/ChangeLog.20
@@ -0,0 +1,2613 @@
+2002-02-09 Werner Lemberg <wl@gnu.org>
+
+ * README: Fix typo.
+ * docs/CHANGES: Minor fixes.
+
+
+ * Version 2.0.8 released.
+ =========================
+
+
+2002-02-08 David Turner <david@freetype.org>
+
+ * docs/CHANGES: Updating for 2.0.8.
+
+ * include/freetype/freetype.h: Setting `PATCH_LEVEL' to 8 and
+ removing `FT_Get_Next_Char' from the API (temporarily).
+
+ * include/freetype/freetype.h: Adding comments to FT_Get_Next_Char;
+ note that this function might temporarily be removed for the 2.0.8
+ release.
+
+2002-02-07 David Turner <david@freetype.org>
+
+ * src/pcf/pcfread.c (pcf_load_font): Removed immature support of
+ the AVERAGE_WIDTH property.
+
+2002-02-06 David Turner <david@freetype.org>
+
+ * src/sfnt/sfobjs.c (SFNT_Load_Face): Since many fonts embedded in
+ PDF documents do not include 'cmap', 'post' and 'name' tables, the
+ SFNT face loader has been changed to not immediately report an
+ error if these are not present.
+
+ Note that the specification _requires_ these tables, but Adobe
+ seems to ignore it completely.
+
+ * src/sfnt/ttcmap.c: Removing compiler warnings.
+
+ * src/pcf/pcfread.c (pcf_read_TOC): Use FT_UInt.
+ (pcf_parse_metric, pcf_parse_compressed_metric): Removed. Code
+ is now in ...
+ (pcf_get_metric): Here.
+ (pcfSeekToType): Renamed to ...
+ (pcf_seek_to_table_type): This.
+ Use FT_Int.
+ (pcfHasType): Renamed to ...
+ (pcf_has_table_type): This.
+ Use FT_Int.
+ (find_property): Renamed to ...
+ (pcf_find_property): This.
+ Use FT_Int.
+ (pcf_get_bitmaps, pcf_get_encodings): Handle invalid PCF fonts
+ better (delaying format checks out of FT_Access_Frame ..
+ FT_Forget_Frame blocks to avoid leaving the stream in an incorrect
+ state when encountering an invalid PCF font).
+
+ * src/pcf/pcfdriver.c (PCF_Done_Face): Renamed to ...
+ (PCF_Face_Done): This.
+ (PCF_Init_Face): Renamed to ...
+ (PCF_Face_Init): This.
+ (PCF_Get_Char_Index): Renamed to ...
+ (PCF_Char_Get_Index): This.
+ (PCF_Get_Next_Char): Renamed to ...
+ (PCF_Char_Get_Next): This.
+ (pcf_driver_class): Updated.
+
+ * src/pcf/pcf.h (PCF_Done_Face): Removed.
+
+2002-02-06 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ * src/pcf/pcfdriver.c (FT_Done_Face): Fixed small memory leak.
+
+ * src/pcf/pcfread.c (pcf_load_font): Now handles the `AVERAGE_WIDTH'
+ property to return correct character pixel (width/height) pairs for
+ embedded bitmaps.
+
+2002-02-04 Keith Packard <keithp@keithp.com>
+
+ Adding the function `FT_Get_Next_Char', doing the obvious thing
+ w.r.t. the selected charmap.
+
+ * include/freetype/freetype.h: Add prototype.
+ * include/freetype/internal/ftdriver.h: Add `FTDriver_getNextChar'
+ typedef.
+ (FT_Driver_Class): Use it.
+ * include/freetype/internal/psnames.h: Add `PS_Next_Unicode_Func'
+ typedef.
+ (PSNames_Interface): Use it.
+ * include/freetype/internal/tttypes.h: Add `TT_CharNext_Func'
+ typedef.
+ (TT_CMapTable): Use it.
+
+ * src/base/ftobjs.c (FT_Get_Next_Char): New function, implementing
+ high-level API.
+ * src/cff/cffdrivr.c (cff_get_next_char): New function.
+ (cff_driver_class): Add it.
+ * src/cid/cidriver.c (Cid_Get_Next_Char): New function.
+ (t1cid_driver_class): Add it.
+ * src/pcf/pcfdriver.c (PCF_Get_Next_Char): New function.
+ (pcf_driver_class): Add it.
+ * src/psnames/psmodule.c (PS_Next_Unicode): New function.
+ (psnames_interface): Add it.
+ * src/sfnt/ttcmap.c (code_to_next0, code_to_next2, code_to_next4,
+ code_to_next6, code_to_next_8_12, code_to_next_10): New auxiliary
+ functions.
+ (TT_CharMap_Load): Use them.
+ * src/truetype/ttdriver.c (Get_Next_Char): New function.
+ (tt_driver_class): Add it.
+ * src/type1/t1driver.c (Get_Next_Char): New function.
+ (t1_driver_class): Add it.
+ * src/winfonts/winfnt.c (FNT_Get_Next_Char): New function.
+ (winfnt_driver_class): Add it.
+
+ * src/pcf/pcfread.c (pcf_load_font): For now, report Unicode for
+ Unicode and Latin 1 encodings.
+
+2002-02-02 Keith Packard <keithp@keithp.com>
+
+ * builds/unix/freetype-config.in: Add missing `fi'.
+
+
+ * Version 2.0.7 released.
+ =========================
+
+
+2002-02-01 David Turner <david@freetype.org>
+
+ * include/freetype/freetype.h: Increasing FREETYPE_PATCH to 7
+ for the new release.
+
+2002-01-31 David Turner <david@freetype.org>
+
+ * README, README.UNX, docs/CHANGES: Updating documentation for the
+ 2.0.7 release.
+
+2002-01-30 David Turner <david@freetype.org>
+
+ * INSTALL: Moved to ...
+ * docs/INSTALL: Here to avoid conflicts with the `install' script on
+ Windows, where the filesystem doesn't preserve case.
+
+2002-01-29 David Turner <david@freetype.org>
+
+ * configure: Fixed the script. It previously didn't accept more
+ than one argument correctly. For example, when typing:
+
+ ./configure --disable-shared --disable-nls
+
+ the `--disable-nls' was incorrectly sent to the `make' program.
+
+2002-01-29 Werner Lemberg <wl@gnu.org>
+
+ * README.UNX: Fix typo.
+ * builds/unix/install.mk (uninstall): Fix library name for libtool.
+
+2002-01-28 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
+
+ * src/pcf/pcfdriver.c (PCF_Done_Face): Fix incorrect destruction of
+ the face object (face->toc.tables, face->root.family_name,
+ face->root.available_size, face->charset_encoding,
+ face->charset_registry are now freed). Thanks to Niels Moseley.
+
+2002-01-28 Roberto Alameda <ojancano@geekmail.de>
+
+ * src/type1/t1load.c (parse_encoding): Set `loader->num_chars'.
+
+2002-01-28 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1load.c (parse_subrs, parse_charstrings): Use copy
+ of `base' string for decrypting to not modify the original data.
+ Based on a patch by Jakub Bogusz <qboosh@pld.org.pl>.
+
+2002-01-27 Giuliano Pochini <pochini@shiny.it>
+
+ * src/smooth/ftgrays.c (gray_render_scanline): Fix bug which caused
+ bad rendering of thin lines (less than one pixel thick).
+
+2002-01-25 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffdrivr.c (cff_get_name_index): Make last patch work
+ actually.
+
+2002-01-25 Martin Zinser <zinser@decus.de>
+
+ * src/cache/ftccache.c (ftc_node_done, ftc_node_destroy): Fix
+ compilation warnings.
+ * src/base/descrip.mms (OBJS): Add `ftmm.obj'.
+ * src/cache/descrip.mms (ftcache.obj): Dependencies added.
+
+2002-01-25 WANG Yi <wangyi@founder.com.cn>
+
+ * src/cff/cffdrivr.c (cff_get_name_index): Fix deallocation bug.
+
+2002-01-21 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
+
+ * docs/PATENTS: Typo fixed (thanks to Detlef `Hawkeye' Würkner) in
+ the URL for the online resource.
+
+2002-01-18 Ian Brown <ian.brown@printsoft.de>
+
+ * builds/win32/ftdebug.c: New file.
+ * builds/win32/visualc/freetype.dsp: Updated.
+
+2002-01-18 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ * builds/amiga/src/base/ftsystem.c: Updated for AmigaOS 3.9.
+ * builds/amiga/README: Updated.
+
+2002-01-18 Ian Brown <ian.brown@printsoft.de>
+
+ * builds/win32/visualc/freetype.dsp: Updated.
+
+2002-01-13 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/freetype2.a4: The script was still buggy.
+ * builds/unix/freetype-config.in: Make it really work for any install
+ prefix.
+
+2002-01-10 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/freetype2.a4: Fix some serious bugs.
+
+2002-01-09 David Turner <david@freetype.org>
+
+ * builds/unix/configure.ac: Build top-level Jamfile.
+
+2002-01-09 Maxim Shemanarev <mcseemagg@yahoo.com>
+
+ * src/smooth/ftgrays.c (gray_render_line): Small optimization to
+ the smooth anti-aliased renderer that deals with vertical segments.
+ This results in a 5-7% speedup in rendering speed.
+
+2002-01-08 David Turner <david@freetype.org>
+
+ Added some wrapper scripts to make the installation more
+ Unix-friendly.
+
+ * configure, install: New files.
+
+ * INSTALL, README.UNX: Updated installation documentation to use the
+ new 'configure' and 'install' scripts.
+
+2002-01-07 David Turner <david@freetype.org>
+
+
+ * Version 2.0.6 released.
+ =========================
+
+
+ * docs/BUGS, docs/CHANGES: Updating documentation for 2.0.6 release.
+
+ * src/tools/docmaker.py: Fixed HTML quoting in sources.
+ (html_format): Replaced with ...
+ (html_quote): New function.
+ (html_quote0): New function.
+ (DocCode::dump_html): Small improvement.
+ (DocParagraph::dump, DocBlock::html): Use html_quote0 and html_quote.
+
+ * include/freetype/config/ftoption.h: Setting default options for
+ a release build (debugging off, bytecode interpreter off).
+
+ * src/base/ftobjs.c, src/base/ftoutln.c, src/cache/ftccmap.c,
+ src/cff/cffload.c, src/cff/cffobjs.c, src/pshinter/pshalgo2.c,
+ src/sfnt/ttload.c, src/sfnt/ttsbit.c: Removing small compiler
+ warnings (in pedantic compilation modes).
+
+2002-01-05 David Turner <david@freetype.org>
+
+ * src/autohint/ahhint.c (ah_align_linked_edge): Modified computation
+ of auto-hinted stem widths; this avoids color fringes in
+ `ClearType-like' rendering.
+
+ * src/truetype/ttgload.c (TT_Load_Glyph_Header,
+ TT_Load_Simple_Glyph, TT_Load_Composite_Glyph, load_truetype_glyph):
+ Modified the TrueType loader to make it more paranoid; this avoids
+ nasty buffer overflows in the case of invalid glyph data (as
+ encountered in the output of some buggy font converters).
+
+2002-01-04 David Turner <david@freetype.org>
+
+ * README.UNX: Added special README file for Unix users.
+
+ * builds/unix/ftsystem.c (FT_New_Stream): Fixed typo.
+
+ * src/base/ftobjs.c: Added #include FT_OUTLINE_H to get rid
+ of compiler warnings.
+
+ * src/base/ftoutln.c (FT_Outline_Check): Remove compiler warning.
+
+2002-01-03 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1objs.c (T1_Face_Init): Add cast to avoid compiler
+ warning.
+
+2002-01-03 Keith Packard <keithp@keithp.com>
+
+ * builds/unix/ftsystem.c (FT_New_Stream): Added a fix to ensure that
+ all FreeType input streams are closed in child processes of a `fork'
+ on Unix systems. This is important to avoid (potential) access
+ control issues.
+
+2002-01-03 David Turner <david@freetype.org>
+
+ * src/type1/t1objs.c (T1_Face_Init): Fixed a bug that crashed the
+ library when dealing with certain weird fonts like `Stalingrad', in
+ `sadn.pfb' (this font has no full font name entry).
+
+ * src/base/ftoutln.c, include/freetype/ftoutln.h (FT_Outline_Check):
+ New function to check the consistency of outline data.
+
+ * src/base/ftobjs.c (FT_Load_Glyph): Use `FT_Outline_Check' to
+ ensure that loaded glyphs are valid. This allows certain fonts like
+ `tt1095m_.ttf' to be loaded even though it appears they contain
+ really funky glyphs.
+
+ There still is a bug there, though.
+
+ * src/truetype/ttgload.c (load_truetype_glyph): Fix error condition.
+
+2001-12-30 David Turner <david@freetype.org>
+
+ * src/autohint/ahhint.c (ah_hinter_load): Fix advance width
+ computation of auto-hinted glyphs. This noticeably improves the
+ spacing of letters in KDE and Gnome.
+
+2001-12-25 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
+
+ * builds/dos/detect.mk: Correcting the order for Borland compilers:
+ 16-bit bcc was never selected, always overridden by 32-bit bcc32.
+
+2001-12-22 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
+
+ * src/pfc/pcfread.c (pcf_load_font): Handle property `POINT_SIZE'
+ and fix incorrect computation of `available_sizes'.
+
+2001-12-22 David Turner <david@freetype.org>
+
+ * src/autohint/ahhint.c (ah_hinter_load): Auto-hinted glyphs had an
+ incorrect glyph advance in the case of mono-width fonts (like
+ Courier, Andale Mono, and others).
+
+2001-12-22 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ * builds/amiga/*: Adaptations to latest changes.
+ Support added for MorphOS.
+
+2001-12-22 Werner Lemberg <wl@gnu.org>
+
+ * src/pshinter/pshrec.c (FT_COMPONENT): Redefine to `trace_pshrec'.
+ (ps_mask_table_merge, ps_hints_open, ps_hints_stem,
+ ps_hints_t1stem3, ps_hints_t2mask, ps_hints_t2counter): Fix
+ FT_ERROR messages.
+ * src/pshinter/pshalgo1.c (FT_COMPONENT): Define as
+ `trace_pshalgo1'.
+ * src/pshinter/pshalgo2.c (FT_COMPONENT): Define as
+ `trace_pshalgo2'.
+ * include/freetype/internal/ftdebug.h (FT_Trace): Updated.
+
+ * docs/modules.txt: New file.
+
+2001-12-21 David Turner <david@freetype.org>
+
+ * src/pshinter/pshrec.c (ps_hints_t2mask, ps_hints_t2counter):
+ Ignore invalid `hintmask' and `cntrmask' operators (instead of
+ returning an error). Glyph 2028 of the CFF font `MSung-Light-Acro'
+ couldn't be rendered otherwise (it seems its charstring is buggy,
+ though this requires more analysis).
+ (FT_COMPONENT): Define.
+
+ * src/cff/cffgload.c (CFF_Parse_CharStrings), src/psaux/t1decode.c
+ (T1_Decoder_Parse_Charstrings), src/pshinter/pshalgo2.c (*), Fixed a
+ bug where the X and Y axis where inverted in the postscript hinter.
+ This caused problem when displaying on non-square surfaces.
+
+ * src/pshinter/pshalgo2.c: s/vertical/dimension/.
+
+ * src/pshinter/pshglob.c (psh_globals_new): Replaced a floating
+ point constant with a fixed-float equivalent. For some reasons not
+ all compilers are capable of directly computing a floating pointer
+ constant casted to FT_Fixed, and will link a math library instead.
+
+2001-12-20 Werner Lemberg <wl@gnu.org>
+
+ * src/cache/ftccache.c (ftc_node_destroy, ftc_cache_lookup): Fix
+ tracing strings.
+ * src/cache/ftccmap.c (ftc_cmap_family_init): Ditto.
+ * src/cache/ftcmanag.c (ftc_family_table_alloc,
+ ftc_family_table_free, FTC_Manager_Check): Ditto.
+ * src/cache/ftcsbits.c (ftc_sbit_node_load): Ditto.
+
+ * src/base/ftobjs.c (FT_Done_Library): Remove compiler warning.
+
+2001-12-20 David Turner <david@freetype.org>
+
+ Added PostScript hinter support to the CFF and CID drivers.
+
+ * include/freetype/internal/cfftypes.h (CFF_Font): New member
+ `pshinter'.
+ * src/cff/cffload.c (CFF_Get_Standard_Encoding): New function.
+ * src/cff/cffload.h: Updated.
+ * src/cff/cffgload.c (CFF_Init_Builder): Renamed to ...
+ (CFF_Builder_Init): This.
+ Added new argument `hinting'.
+ (CFF_Done_Builder): Renamed to ...
+ (CFF_Builder_Done): This.
+ (CFF_Init_Decoder): Added new argument `hinting'.
+ (CFF_Parse_CharStrings): Implement vstem support.
+ (CFF_Load_Glyph): Updated.
+ Add hinting support.
+ (cff_lookup_glyph_by_stdcharcode): Use CFF_Get_Standard_Encoding().
+ (cff_argument_counts): Updated.
+ * src/cff/cffgload.h: Updated.
+ * src/cff/cffobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
+ (CFF_Size_Get_Globals_Funcs, CFF_Size_Done, CFF_Size_Init,
+ CFF_Size_Reset, CFF_GlyphSlot_Done, CFF_GLyphSlot_Init): New
+ functions.
+ (CFF_Init_Face): Renamed to ...
+ (CFF_Face_Init): This.
+ Add hinter support.
+ (CFF_Done_Face): Renamed to ...
+ (CFF_Face_Done): This.
+ (CFF_Init_Driver): Renamed to ...
+ (CFF_Driver_Init): This.
+ (CFF_Done_Driver): Renamed to ...
+ (CFF_Driver_Done): This.
+ * src/cff/cffobjs.h: Updated.
+ * src/cff/cffdrivr.c (cff_driver_class): Updated.
+
+ * include/freetype/internal/t1types.h (CID_FaceRec): New member
+ `pshinter'.
+ * src/cid/cidgload.c (CID_Load_Glyph): Add hinter support.
+ * src/cid/cidobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
+ (CID_GlyphSlot_Done, CID_GlyphSlot_Init, CID_Size_Get_Globals_Funcs,
+ CID_Size_Done, CID_Size_Init, CID_Size_Reset): New functions.
+ (CID_Done_Face): Renamed to ...
+ (CID_Face_Done): This.
+ (CID_Init_Face): Renamed to ...
+ (CID_Face_Init): This.
+ Add hinting support.
+ (CID_Init_Driver): Renamed to ...
+ (CID_Driver_Init): This.
+ (CID_Done_Driver): Renamed to ...
+ (CID_Driver_Done): This.
+ * src/cid/cidobjs.h: Updated.
+ * src/cidriver.c: Updated.
+
+ * src/pshinter/pshrec.c (t2_hint_stems): Fixed.
+
+ * src/base/ftobjs.c (FT_Done_Library): Fixed a stupid bug that
+ crashed the library on exit.
+
+ * src/type1/t1gload.c (T1_Load_Glyph): Enable font matrix
+ transformation of hinted glyphs.
+
+ * src/cid/cidload.c (cid_read_subrs): Fix error condition.
+
+ * src/cid/cidobjs.c (CID_Face_Done): Fixed a memory leak; the subrs
+ routines were never released when CID faces were destroyed.
+
+ * src/cff/cffload.h, src/cff/cffload.c, src/cff/cffgload.c: Updated
+ to move the definition of encoding tables back within `cffload.c'
+ instead of making them part of a shared header (causing problems in
+ `multi' builds). This reverts change 2001-08-08.
+
+ * docs/CHANGES: Updated for 2.0.6 release.
+ * docs/TODO: Added `stem3 and counter hints support' to the TODO
+ list for the Postscript hinter.
+ * docs/BUGS: Closed the AUTOHINT-NO-SBITS bug.
+
+2001-12-19 David Turner <david@freetype.org>
+
+ * include/freetype/cache/ftcache.h: Added comments to indicate that
+ some of the exported functions should only be used by applications
+ that need to implement custom cache types.
+
+ * src/truetype/ttgload.c (cur_to_org, org_to_cur): Fixed a nasty bug
+ that prevented composites from loading correctly, due to missing
+ parentheses around macro parameters.
+
+ * src/sfnt/sfobjs.c (SFNT_Load_Face): Make the `post' and `name'
+ tables optional to load PCL fonts properly.
+
+ * src/truetype/ttgload.c (TT_Load_Glyph), src/base/ftobjs.c
+ (FT_Load_Glyph), include/freetype/freetype.h (FT_LOAD_SBITS_ONLY):
+ `Fixed' the bug that prevented embedded bitmaps to be loaded when
+ the auto-hinter is used. This actually is a hack but will be enough
+ until the internal re-design scheduled for FreeType 2.1.
+
+ * src/raster/ftrend1.c (ft_raster1_render): Fixed a nasty outline
+ shifting bug in the monochrome renderer.
+
+ * README: Updated version numbers to 2.0.6.
+
+2001-12-17 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttgload.c (load_truetype_glyph): Fix test for invalid
+ glyph header.
+
+2001-12-15 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove compiler warning.
+ * include/freetype/ftcache.h (FTC_Node_Unref): Removed. It is
+ already in ftcmanag.h.
+ * src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused variable
+ `gfam'.
+ * src/cache/ftcmanag.c (ftc_family_table_alloc,
+ * ftc_family_table_free): Use FT_EXPORT_DEF.
+ * include/freetype/cache/ftcmanag.h: Updated.
+ * src/cache/ftccache.c (ftc_node_destroy): Use FT_EXPORT_DEF.
+ * src/cache/ftccmap.c (ftc_cmap_node_init): Remove unused variable
+ `cfam'.
+ Remove compiler warning.
+ (FTC_CMapCache_Lookup): Remove compiler warnings.
+ (ftc_cmap_family_init): Ditto.
+ (FTC_CMapCache_Lookup): Ditto.
+
+ * builds/unix/configure.ac: Increase `version_info' to 8:0:2.
+ * builds/unix/configure: Regenerated.
+
+2001-12-14 Werner Lemberg <wl@gnu.org>
+
+ * builds/mac/README: Updated.
+
+2001-12-14 Scott Long <scott@swiftview.com>
+
+ * src/truetype/ttgload.c (load_truetype_glyph): Fixing crash when
+ dealing with invalid fonts (i.e. glyph size < 10 bytes).
+
+2001-12-14 Sam Latinga <slouken@devolution.com>
+
+ * builds/mac/freetype.make: A new Makefile to build with MPW on
+ MacOS classic.
+
+2001-12-14 David Turner <david@freetype.org>
+
+ * src/truetype/ttgload.c (TT_Load_Glyph), src/type1/t1gload.c
+ (T1_Load_Glyph), src/cid/cidgload.c (CID_Load_Glyph),
+ src/cff/cffgload.c (CFF_Load_Glyph): Fixed a serious bug common to
+ all font drivers (the advance width was never hinted when it
+ should).
+
+ * include/freetype/freetype.h (FREETYPE_PATCH): New macro.
+ * src/base/ftdbgmem.c (debug_mem_dummy) [!FT_DEBUG_MEMORY]: Don't
+ use `extern' keyword.
+
+2001-12-12 David Turner <david@freetype.org>
+
+ * src/pshinter/pshglob.c (psh_blues_scale_zones, psh_blues_snap_stem
+ psh_globals_new): Adding correct BlueScale/BlueShift support, plus
+ family blues processing.
+ * src/pshinter/pshglob.h (PSH_BluesRec): Updated.
+
+ Started adding support for the Postscript hinter in the CFF module.
+
+ * src/cff/cffgload.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
+ (CFF_Parse_CharStrings): Implement it.
+ * src/cff/cffgload.h: Updated.
+
+2001-12-12 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/freetype2.m4: Some portability fixes.
+
+2001-12-11 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
+
+ * src/base/descrip.mms (OBJS): Add ftdebug.obj.
+
+2001-12-11 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/ttload.c (TT_Load_Generic_Header): Typos.
+
+2001-12-11 David Turner <david@freetype.org>
+
+ * builds/unix/freetype-config.in: Modified the script to prevent
+ passing `-L/usr/lib' to gcc.
+
+ * docs/FTL.TXT: Simple fix (change `LICENSE.TXT' to `FTL.TXT').
+
+ * builds/unix/freetype2.m4: New file for checking configure paths.
+ We need to install it in $(prefix)/share/aclocal/freetype2.m4 but I
+ didn't modify builds/unix/install.mk yet.
+
+ * INSTALL: Updated the instructions to build shared libraries with
+ Jam. They were simply wrong.
+
+ * src/base/fttrigon.c (FT_Cos): Fixed a small bug that caused
+ slightly improper results for `FT_Cos' and `FT_Sin' (example:
+ FT_Sin(0) == -1!).
+
+2001-12-11 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ * include/freetype/internal/ftstream.h (GET_LongLE, GET_ULongLE):
+ Fixed incorrect argument types.
+
+2001-12-10 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
+
+ * src/pcf/pcfdriver.c (PCF_Init_Face): Allow Xft to use PCF fonts
+ by setting the `face->metrics.max_advance' correctly.
+
+2001-12-07 David Turner <david@freetype.org>
+
+ * include/freetype/cache/ftccmap.h, src/cache/ftccmap.c: Added new
+ charmap cache.
+ * src/cache/ftcache.c: Updated.
+
+ * src/autohint/ahhint.c (ah_hinter_hint_edges): s/UNUSED/FT_UNUSED/.
+
+2001-12-06 Leonard Rosenthol <leonardr@lazerware.com>
+
+ Added support for reading .dfont files on Mac OS X. Also added a
+ new routine which looks up a given font by name in the Mac OS and
+ returns the disk file where it resides.
+
+ * src/base/ftmac.c: Include <Files.h> and <TextUtils.h>.
+ (is_dfont): New auxiliary function.
+ (FT_New_Face_From_dfont): New function.
+ (FT_GetFile_From_Mac_Name): New exported function.
+ (FT_New_Face): Updated.
+ * include/freetype/ftmac.h: Updated.
+
+2001-12-06 David Turner <david@freetype.org>
+
+ * src/cache/Jamfile, src/cache/rules.mk: Updated.
+
+2001-12-06 Werner Lemberg <wl@gnu.org>
+
+ * INSTALL: Small update.
+
+2001-12-05 David Turner <david@freetype.org>
+
+ * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Re-ordered code for
+ debugging purposes.
+ Comment out use of `origin'.
+
+ * src/smooth/ftsmooth.c (ft_smooth_render): Fixed a nasty hidden bug
+ where outline shifting wasn't correctly undone after bitmap
+ rasterization. This created problems with certain glyphs (like '"'
+ of certain fonts) and the cache system.
+
+ * src/pshinter/pshalgo1.c (psh1_hint_table_init): Fix typo.
+ * src/pshinter/pshalgo2.c (psh2_hint_table_init): Fix typo.
+ (ps2_hints_apply): Small fix.
+
+2001-12-05 David Turner <david@freetype.org>
+
+ * src/pshinter/pshalgo2.c (psh2_hint_table_init),
+ src/pshinter/pshalgo1.c (psh1_hint_table_init): Removed compiler
+ warnings.
+
+ * include/freetype/ftcache.h, include/freetype/cache/*, src/cache/*:
+ Yet another massive rewrite of the caching sub-system in order to
+ both increase performance and allow simpler cache sub-classing. As
+ an example, the code for the image and sbit caches is now much
+ simpler.
+
+ I still need to update the documentation in
+ www/freetype2/docs/cache.html to reflect the new design though.
+
+ * include/freetype/config/ftheader.h (FT_CACHE_CHARMAP_H): New
+ macro.
+ (FT_CACHE_INTERNAL_CACHE_H): Updated.
+
+2001-12-05 David Krause <freetype@davidkrause.com>
+
+ * docs/license.txt: s/X Windows/X Window System/.
+
+2001-12-04 Werner Lemberg <wl@gnu.org>
+
+ * src/raster/ftraster.c: Fix definition condition of MEM_Set().
+ * src/smooth/ftgrays.c (M_Y): Change value to 192.
+ * src/base/ftdbgmem.c (ft_mem_table_destroy): Fix printf() parameter.
+ Remove unused variable.
+ * src/cache/ftcimage.c (ftc_image_node_init,
+ ftc_image_node_compare): Remove unused variables.
+ * src/cache/ftcsbits.c (ftc_sbit_node_weight): Remove unused
+ variable.
+ * src/raster/ftraster.c (MEM_Set): Move definition down to avoid
+ compiler warning.
+ * src/autohint/ahhint.c (ah_hinter_hint_edges): Use UNUSED() to
+ avoid compiler warnings.
+ * src/pcf/pcfread.c (tableNames): Use `const'.
+ (pcf_read_TOC): Change counter name to avoid compiler warning.
+ Use `const'.
+ * src/pshinter/pshrec.c (ps_hints_close): Remove redundant
+ declaration.
+ * src/pshinter/pshalgo1.c (psh1_hint_table_init): Rename variables
+ to avoid shadowing.
+ * src/pshinter/pshalgo2.c (psh2_hint_table_activate_mask): Ditto.
+ * src/type1/t1objs.h: Remove double declarations of `T1_Size_Init()'
+ and `T1_Size_Done()'.
+
+2001-11-20 Antoine Leca <antoineleca@multimania.com>
+
+ * include/freetype/ttnameid.h: Added some new Microsoft language
+ codes and LCIDs as found in MSDN (Passport SDK). Also added
+ comments about the meaning of bit 57 of the `OS/2' table
+ (TT_UCR_SURROGATES) which (with OpenType v.1.3) now means `there is
+ a character beyond 0xFFFF in this font'. Thanks to Detlef Würkner
+ <TetiSoft@apg.lahn.de> for noticing this.
+
+2001-11-20 David Turner <david@freetype.org>
+
+ * src/pshinter/{pshalgo2.c, pshalgo1.c}: Fixed stupid bug in sorting
+ routine that created nasty alignment artefacts.
+
+ * src/pshinter/pshrec.c, tests/gview.c: Debugging updates.
+
+ * src/smooth/ftgrays.c: De-activated experimental gamma support.
+ Apparently, `optimal' gamma tables depend on the monitor type,
+ resolution and general karma, so it's better to compute them outside
+ of the rasterizer itself.
+ (gray_convert_glyph): Use `volatile' keyword.
+
+2001-10-29 David Turner <david@freetype.org>
+
+ Adding experimental `gamma' support. This produces smoother glyphs
+ at small sizes for very little cost.
+
+ * src/smooth/ftgrays.c (grays_init_gamma): New function.
+ (gray_raster_new): Use it.
+
+ Various fixes to the auto-hinter. They merely improve the output of
+ sans-serif fonts. Note that there are still problems with serifed
+ fonts and composites (accented characters).
+
+ * src/autohint/ahglyph.c (ah_outline_load,
+ ah_outline_link_segments): Implement it.
+ Fix typos.
+ (ah_outline_save, ah_outline_compute_segments): Fix typos.
+ * src/autohint/ahhint.c (ah_align_serif_edge): New argument
+ `vertical'. Implement improvement.
+ (ah_hint_edges_3, ah_hinter_hint_edges): Implement it.
+ Fix typos.
+ (ah_hinter_align_strong_points, ah_hinter_align_weak_points): Fix
+ typos.
+ (ah_hinter_load): Set `ah_debug_hinter' if DEBUG_HINTER is defined.
+ * src/autohint/ahmodule.c: Implement support for DEBUG_HINTER macro.
+ * src/autohint/ahtypes.h: Ditto.
+ (AH_Hinter): Remove `disable_horz_edges' and `disable_vert_edges'
+ (making them global as `ah_debug_disable_horz' and
+ `ah_debug_disable_vert').
+ Fix typos.
+
+ * tests/gview.c: Updated the debugging glyph viewer to show the
+ hints generated by the `autohint' module.
+
+2001-10-27 David Turner <david@freetype.org>
+
+ * src/cache/ftcchunk.c (ftc_chunk_cache_lookup): Fixed a bug that
+ considerably lowered the performance of the abstract chunk cache.
+
+2001-10-26 David Turner <david@freetype.org>
+
+ * include/freetype/ftcache.h, include/freetype/cache/*.h,
+ src/cache/*.c: Major re-design of the cache sub-system to provide
+ better performance as well as an `Acquire'/`Release' API. Seems to
+ work well here, but probably needs a bit more testing.
+
+2001-10-26 Leonard Rosenthol <leonardr@lazerware.com>
+
+ * builds/mac/README: Updated to reflect my taking over the project
+ and that is now being actively maintained.
+
+ * src/base/ftmac.c (parse_fond): Applied patches from Paul Miller
+ <paulm@profoundeffects.com> to support loading a face other than the
+ first from a FOND resource.
+ (FT_New_Face_From_FOND): Updated.
+
+2001-10-25 Leonard Rosenthol <leonardr@lazerware.com>
+
+ * builds/mac/ftlib.prj: Update of CodeWarrior project file for Mac
+ OS for latest version (7) of CWPro and for recent changes to the FT
+ source tree.
+
+2001-10-25 David Turner <david@freetype.org>
+
+ * include/freetype/config/ftoption.h: Updated comments to explain
+ precisely how to use project-specific macro definitions without
+ modifying this file manually.
+
+ (FT_CONFIG_FORCE_INT64): Define.
+
+ (FT_DEBUG_MEMORY): New macro.
+
+2001-10-24 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * builds/unix/ftsystem.c (FT_New_Memory): Added a missing `{'.
+
+2001-10-23 David Turner <david@freetype.org>
+
+ * include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c:
+ Improvements to the memory debugger to report more information in
+ case of errors. Also, some allocations that occurred through REALLOC
+ couldn't be previously caught correctly.
+
+ * src/autohint/ahglyph.c (ah_outline_compute_segments,
+ ah_outline_compute_edges), src/raster/ftraster.c (ft_black_new),
+ src/smooth/ftgrays.c (gray_render_span, gray_raster_new): Replaced
+ liberal uses of memset() by the MEM_Set() macro.
+
+2001-10-23 David Turner <david@freetype.org>
+
+ * src/raster/ftraster.c (Update): Removed to be inlined in ...
+ (Sort): Updated.
+
+2001-10-22 David Turner <david@freetype.org>
+
+ * builds/unix/ftsystem.c (FT_New_Memory, FT_Done_Memory),
+ builds/vms/ftsystem.c (FT_New_Memory, FT_Done_Memory),
+ builds/amiga/ftsystem.c (FT_New_Memory, FT_Done_Memory),
+ src/base/ftdbgmem.c: Updated the memory debugger and
+ platform-specific implementations of `ftsystem' in order to be able
+ to debug memory allocations on Unix, VMS and Amiga too!
+
+ * src/pshinter/pshalgo2.c (psh2_hint_table_record_mask): Removed
+ some bogus warnings.
+
+ * include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c:
+ Modified the debugging memory manager to report the location (source
+ file name + line number) where leaked memory blocks are allocated in
+ the source file.
+
+ * src/base/ftdbgmem.c: New debugging memory manager. You must
+ define the FT_DEBUG_MEMORY macro in `ftoption.h' to enable it. It
+ will record every memory block allocated and report simple errors
+ like memory leaks and double deletes.
+
+ * src/base/Jamfile: Include ftdbgmem.
+ * src/base/rules.mk: Ditto.
+ * src/base/ftbase.c: Include ftdbgmem.c.
+
+ * include/freetype/config/ftoption.h: Added the FT_DEBUG_MEMORY
+ macro definition.
+
+ * src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory): Modified the
+ base component to use the debugging memory manager when the macro
+ FT_DEBUG_MEMORY is defined.
+
+2001-10-21 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/cff/cffload.c (CFF_Done_Font): Free subfonts array only if
+ we are working with a CID keyed CFF font. Otherwise, a variable
+ that was never allocated memory might freed. This is a correction
+ to the previous patch for freeing subfonts.
+
+2001-10-21 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/cff/cffload.c (CFF_Done_Font): Free the subfonts array to
+ avoid a memory leak.
+
+2001-10-21 David Turner <david@freetype.org>
+
+ * src/pshinter/pshalgo2.c, src/pshinter/pshalgo1.c,
+ src/pshinter/pshglob.c: Removing compiler warnings in pedantic modes
+ (in multi-object compilation mode, mainly).
+
+2001-10-20 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/type1/t1load.c (parse_encoding): Add a test to make sure
+ that custom encodings (i.e., neither StandardEncoding nor
+ ExpertEncoding) are not loaded twice when the Type 1 font is
+ synthetic.
+
+ * src/type1/t1load.c (parse_font_name, parse_subrs): Added a test
+ for when loading synthetic fonts to make sure that the font name
+ and subroutines are not loaded twice. This is to remove a memory
+ leak that occurred because the original memory blocks for these
+ objects were not deallocated when the objects were parsed the
+ second time.
+
+2001-10-19 David Turner <david@freetype.org>
+
+ * src/smooth/ftgrays.c, src/pshinter/pshglob.h,
+ src/pshinter/pshrec.c, src/pshinter/pshalgo2.c: Getting rid of
+ compiler warnings.
+
+ * src/pshinter/module.mk, src/pshinter/rules.mk: Adding control
+ files to build the PostScript hinter with the `old' build system.
+
+2001-10-19 Jacob Jansen <joukj@hrem.stm.tudelft.nl>
+
+ * descrip.mms, src/pshinter/descrip.mms: Updates to the VMS build
+ files.
+
+2001-10-18 David Turner <david@freetype.org>
+
+ * src/psnames/pstables.h, src/tools/glnames.py: Rewrote the
+ `glnames.py' script used to generate the `pstables.h' header file.
+ The old one contained a serious bug that made FreeType return
+ incorrect glyph names for certain glyphs.
+
+ * src/truetype/ttdriver.c (Set_Char_Sizes): Changing computation of
+ pixel size from character size to use rounding. This is an
+ experiment to see whether this gives values similar to Windows for
+ scaled ascent/descent/etc.
+
+ * src/base/ftcalc.c (FT_Div64by32): Changed the implementation
+ slightly since the original code was mis-compiled on Mac machines
+ using the MPW C compiler.
+
+ * src/base/ftobjs.c (FT_Realloc): When a memory block was grown
+ through FT_Realloc(), the new bytes were not set to 0, which created
+ some strange bugs in the PostScript hinter.
+ (destroy_face): Don't deallocate unconditionally.
+
+ * src/cid/cidgload.c (CID_Compute_Max_Advance, CID_Load_Glyph):
+ Adding support to new PostScript hinter.
+
+ * include/freetype/internal/psglobal.h,
+ include/freetype/internal/pshints.h,
+ include/freetype/config/ftmodule.h, src/pshinter/Jamfile,
+ src/pshinter/pshalgo.h, src/pshinter/pshalgo1.h,
+ src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.h,
+ src/pshinter/pshalgo2.c, src/pshinter/pshglob.h,
+ src/pshinter/pshglob.c, src/pshinter/pshinter.c,
+ src/pshinter/pshmod.c, src/pshinter/pshmod.h, src/pshinter/pshrec.c,
+ src/pshinter/pshrec.h: Adding new PostScript hinter module.
+
+ * include/freetype/internal/ftobjs.h,
+ include/freetype/internal/internal.h,
+ include/freetype/internal/psaux.h,
+ include/freetype/internal/t1types.h, src/psaux/psobjs.c,
+ src/psaux/psobjs.h, src/psaux/t1decode.h, src/psaux/t1decode.c,
+ src/type1/t1driver.c, src/type1/t1gload.c, src/type1/t1objs.c,
+ src/type1/t1objs.h: Updates to use the new PostScript hinter.
+
+ * tests/Jamfile, tests/gview.c: Adding a new glyph hinting
+ viewer/debugger to the source tree. Note that you will _not_ be
+ able to compile it since it depends on an unavailable graphics
+ library named `Nirvana' to render vector images.
+
+2001-10-17 David Turner <david@freetype.org>
+
+
+ * Version 2.0.5 released.
+ =========================
+
+
+ * include/freetype/freetype.h, include/internal/ftobjs.h,
+ src/base/ftobjs.c, src/type1/t1driver.c: Adding a new function named
+ 'FT_Get_Postscript_Name' to retrieve the PostScript name of a given
+ font. Should work with all formats except pure CFF/CEF fonts (this
+ will be added soon).
+
+ * src/cid/cidriver (cid_get_postscript_name): New function.
+ (CID_Get_Interface): Handle `postscript_name' interface.
+
+ * src/sfnt/sfdriver.c (get_sfnt_postscript_name): New function.
+ (SFNT_Get_Interface): Handle `postscript_name' interface.
+
+ * src/type1/t1driver.c (t1_get_ps_name): New function.
+ (Get_Interface): Handle `postscript_name' interface.
+
+ * README, docs/CHANGES: Updated for 2.0.5 release.
+
+2001-10-08 David Turner <david@freetype.org>
+
+ Fixed a bug in `glnames.py' that prevented it from generating
+ correct glyph names tables. This resulted in the unavailability of
+ certain glyphs like `Cacute', `cacute' and `lslash' in Unicode
+ charmaps, even if these were present in the font (causing problems
+ for Polish users).
+
+ * src/tools/glnames.py (mac_standard_names): Fixed.
+ (t1_standard_strings): Some fixes and renamed to ...
+ (sid_standard_names): This.
+ (t1_expert_encoding): Fixed.
+ (the_adobe_glyph_list): Renamed to ...
+ (adobe_glyph_names): This.
+ (the_adobe_glyphs): Renamed to ...
+ (adobe_glyph_values): This.
+ (dump_mac_indices, dump_glyph_list, dump_unicode_values, main):
+ Updated.
+ * src/psnames/pstables.h: Regenerated.
+ * src/psnames/psmodule.c (PS_Unicode_Value): Fix offset.
+ Fix return value.
+ Use `sid_standard_table' and `ps_names_to_unicode' instead of
+ `t1_standard_glyphs' and `names_to_unicode'.
+ (PS_Macintosh_Name): Use `ps_glyph_names' instead of
+ `standard_glyph_names'.
+ (PS_Standard_Strings): Use `sid_standard_names' instead of
+ `t1_standard_glyphs'.
+
+ * doc/BUGS, doc/TODO: New documents.
+
+2001-10-07 Richard Barber <rich@solutionuk.com>
+
+ * src/cache/ftlru.c (FT_Lru_Lookup_Node): Fixed a bug that prevented
+ correct LRU behaviour.
+
+2001-10-07 David Turner <david@freetype.org>
+
+ setjmp() and longjmp() are now used for rollback (i.e. when memory
+ pool overflow occurs).
+
+ Function names are now all uniformly prefixed with `gray_'.
+
+ * src/smooth/ftgrays.c: Include <setjmp.h>.
+ (ErrRaster_MemoryOverflow): New macro.
+ (TArea): New type to store area values in each cell (using `int' was
+ too small on 16-bit systems). <limits.h> is included to properly
+ get the needed data type.
+ (TCell, TRaster): Use it.
+ (TRaster): New element `jump_buffer'.
+ (gray_compute_cbox): Use `RAS_ARG' as the only parameter and get
+ `outline' from it.
+ (gray_record_cell): Use longjmp().
+ (gray_set_cell): Use gray_record_cell() for error handling.
+ (gray_render_line, gray_render_conic, gray_render_cubic): Simplify.
+ (gray_convert_glyph_inner): New function, using setjmp().
+ (gray_convert_glyph): Use it.
+
+2001-10-07 David Turner <david@freetype.org>
+
+ Provide a public API to manage multiple size objects for a given
+ FT_Face in the new header file `ftsizes.h'.
+
+ * include/freetype/ftsizes.h: New header file,
+ * include/freetype/internal/ftobjs.h: Use it.
+ Remove declarations of FT_New_Size and FT_Done_Size (moved to
+ ftsizes.h).
+ * include/freetype/config/ftheader.h (FT_SIZES_H): New macro.
+ * src/base/ftobjs.c (FT_Activate_Size): New function.
+ * src/cache/ftcmanag.c: Include ftsizes.h.
+ (ftc_manager_init_size, ftc_manager_flush_size): Use
+ FT_Activate_Size.
+
+2001-09-20 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ * builds/amiga/*: Added port to Amiga with the SAS/C compiler.
+
+2001-09-15 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ * src/type1/t1afm.c (T1_Done_AFM): Free `afm'.
+
+2001-09-10 Yao Zhang <yzhang@sharemedia.com>
+
+ * src/sfnt/ttcmap.c (code_to_index2): Handle code values with
+ hi-byte == 0 correctly.
+
+2001-09-10 Werner Lemberg <wl@gnu.org>
+
+ * builds/link-std.mk ($(PROJECT_LIBRARY)): Fix typo.
+
+2001-08-30 Martin Muskens <mmuskens@aurelon.com>
+
+ * src/type1/t1load.c (parse_font_matrix): A new way to compute the
+ units per EM with greater accuracy (important for embedded T1 fonts
+ in PDF documents that were automatically generated from TrueType
+ ones).
+
+ * src/type1/t1load.c (is_alpha): Now supports `+' in font names;
+ this is used in embedded fonts.
+
+ * src/psaux/psobjs.c (PS_Table_Add): Fixed a reallocation bug that
+ generated a dangling pointer reference.
+
+2001-08-30 Anthony Feik <afeick@hotmail.com>
+
+ * src/type1/t1afm.c (T1_Read_Afm): Now correctly sets the flag
+ FT_FACE_FLAG_KERNING when appropriate for Type1 + AFM files.
+
+2001-08-25 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/ttload.c (TT_Load_CMap): Fix frame length of
+ `cmap_rec_fields'.
+
+ * include/freetype/fterrors.h [!FT_CONFIG_OPTION_USE_MODULE_ERRORS]:
+ Undefine FT_ERR_BASE before defining again.
+
+2001-08-22 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttinterp.h: Fix prototype of TT_Move_Func.
+
+2001-08-21 Werner Lemberg <wl@gnu.org>
+
+ * builds/dos/dos-def.mk (NO_OUTPUT): Don't use `&>' but `>'.
+
+2001-08-21 David Turner <david@freetype.org>
+
+ * include/freetype/config/ftoption.h: Changed the default setting
+ for FT_CONFIG_OPTION_USE_MODULE_ERRORS to undefined, since it breaks
+ source compatibility in a few cases. Updated the comment to explain
+ that too.
+
+2001-08-17 Martin Muskens <mmuskens@aurelon.com>
+
+ * src/base/ftcalc.c (FT_MulDiv): Fixed serious typo.
+
+2001-08-12 Werner Lemberg <wl@gnu.org>
+
+ Updating to OpenType 1.3.
+
+ * include/freetype/internal/tttypes.h (TT_CMap0, TT_CMap2, TT_CMap4,
+ TT_CMap6): Adding field `language'.
+ (TT_CMapTable): Removing field `language'.
+ Type of `length' field changed to FT_ULong.
+ Adding fields for cmaps format 8, 10, and 12.
+ (TT_CMapGroup): New auxiliary structure.
+ (TT_CMap8_12, TT_CMap10): New structures.
+ * include/freetype/tttables.h (TT_HoriHeader, TT_VertHeader):
+ Removed last element of `Reserved' array.
+ * include/freetype/ttnameid.h (TT_PLATFORM_CUSTOM, TT_MS_ID_UCS_4,
+ TT_NAME_ID_CID_FINDFONT_NAME): New macros.
+
+ * src/sfnt/ttcmap.c (TT_CharMap_Load): Updated loading of `language'
+ field to the new structures.
+ Fixed freeing of arrays in case of unsuccessful loads.
+ Added support for loading format 8, 10, and 12 cmaps.
+ (TT_CharMap_Free): Added support for freeing format 8, 10, and 12
+ cmaps.
+ (code_to_index4): Small improvement.
+ (code_to_index6): Ditto.
+ (code_to_index8_12, code_to_index10): New functions.
+ * src/sfnt/ttload.c (TT_Load_Metrics_Header): Updated to new
+ structure.
+ (TT_Load_CMap): Ditto.
+
+ * src/sfnt/sfobjs.c (tt_encodings): Add MS UCS4 table (before MS
+ Unicode).
+
+2001-08-11 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1driver.c (t1_get_name_index): Fix compiler warning.
+
+2001-08-09 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/cff/cffdrivr.c (get_cff_glyph_name): Renamed to
+ cff_get_glyph_name for consistency.
+
+ (cff_get_glyph_index): Minor documentation change.
+
+ * src/type1/t1driver.c (t1_get_name_index): New function used in
+ Get_Interface as the function returned when the `name_index'
+ function is requested.
+
+ (get_t1_glyph_name): Renamed to t1_get_glyph_name for consistency.
+
+2001-08-08 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/cff/cffload.c: Removed definitions of cff_isoadobe_charset,
+ cff_expert_charset, cff_expertsubset_charset, cff_standard_encoding,
+ and cff_expert_encoding arrays to cffload.h.
+
+ * src/cff/cffload.h: Added definitions of cff_isoadobe_charset,
+ cff_expert_charset, cff_expertsubset_charset, cff_standard_encoding,
+ and cff_expert_encoding arrays.
+
+ * src/cff/cffdrivr.c (cff_get_name_index): New function, returned
+ when `cff_get_interface' is called with a request for the
+ `name_index' function.
+
+ (cff_get_interface): Modified so that it returns the function
+ `cff_get_name_index' when the `name_index' function is requested.
+
+ * src/base/ftobjs.c (FT_Get_Name_Index): New function, used to
+ return a glyph index for a given glyph name only if the driver
+ supports glyph names.
+
+ * include/freetype/internal/ftobjs.h (FT_Name_Index_Requester):
+ New function pointer type definition used in the function
+ FT_Get_Name_Index.
+
+ * include/freetype/freetype.h (FT_Get_Name_Index): Added
+ documentation and prototype.
+
+2001-07-26 Werner Lemberg <wl@gnu.org>
+
+ * builds/cygwin/*: Removed. Use the unix stuff instead.
+
+2001-07-26 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
+
+ * builds/vms/ftconfig.h (FT_CALLBACK_DEF): Updated to change dated
+ 2001-06-27.
+
+2001-07-17 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/psaux.h (PS_Table): Use FT_Offset for
+ `cursor' and `capacity'.
+ * src/psaux/psobjc.c (reallocate_t1_table): Use FT_Long for second
+ parameter.
+ (PS_Table_Add): Use FT_Offset for `new_size'.
+
+ Add support for version 0.5 maxp tables.
+
+ * src/sfnt/ttload.c (TT_Load_MaxProfile): Implement it.
+ (TT_Load_OS2): Initialize some values.
+
+2001-07-13 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftsynth.c: Include ftcalc.h unconditionally.
+
+2001-07-07 David Turner <david@freetype.org>
+
+ * src/truetype/ttgload.c, src/truetype/ttinterp.c, src/pcf/pcfread:
+ Removed pedantic compiler warnings when the bytecode interpreter is
+ compiled in.
+
+2001-07-03 Werner Lemberg <wl@gnu.org>
+
+ * src/autohint/ahhint.c (ah_hinter_align_weak_points): Remove
+ unused variable `edges'.
+ (ah_hinter_load): Remove unused variables `old_width' and
+ `new_width'.
+ * src/cid/cidload.c (cid_decrypt): Use `U' for constant (again).
+ * src/psaux/psobjs.c (T1_Decrypt): Ditto.
+ * src/type1/t1parse.c (T1_Get_Private_Dict): Ditto.
+
+2001-06-28 David Turner <david@freetype.org>
+
+ * include/internal/ftstream.h: Modified the definitions
+ of the FT_GET_XXXX and NEXT_XXXX macros for 16-bit correctness.
+
+2001-06-26 Werner Lemberg <wl@gnu.org>
+
+ * src/cid/cidload.c, src/cid/cidload.h (cid_decrypt): Use FT_Offset
+ instead of FT_Int as type for `length' parameter.
+ * include/freetype/internal/psaux.h (PSAux_Interface): Updated.
+
+2001-06-27 Wolfgang Domröse <porthos.domroese@harz.de>
+
+ * src/psaux/psobjs.c, src/psaux/psobjs.h (T1_Decrypt): Use FT_Offset
+ instead of FT_Int as type for `length' parameter.
+
+
+ * Version 2.0.4 released.
+ =========================
+
+
+2001-06-27 David Turner <david@freetype.org>
+
+ * builds/unix/ftconfig.in: Changed the definition of the
+ FT_CALLBACK_DEF macro.
+
+ * include/freetype/ftconfig.h, src/*/*.c: Changed the definition and
+ use of the FT_CALLBACK_DEF macro in order to support 16-bit
+ compilers.
+
+ * builds/unix/ftconfig.in: Changed the definition of the
+ FT_CALLBACK_DEF macro.
+
+ * src/sfnt/ttload.c (TT_Load_Kern): The kern table loader now ensures
+ that the kerning table is correctly sorted (some problem fonts don't
+ have a correct kern table).
+
+2001-06-26 Wolfgang Domröse <porthos.domroese@harz.de>
+
+ * include/freetype/internal/ftstream.h (FT_GET_OFF3_LE): Fix typo.
+
+2001-06-24 David Turner <david@freetype.org>
+
+ * src/base/ftcalc.c (ft_div64by32): Fixed the source to work
+ correctly on 16-bit systems.
+
+2001-06-23 Anthony Fok <fok@debian.org>
+
+ * debian/*: Added Debian package build directory for 2.0.4.
+
+2001-06-22 David Turner <david@freetype.org>
+
+ * docs/PATENTS: Added patents disclaimer. This one was missing!
+
+ * docs/CHANGES, docs/todo: Updated for the upcoming 2.0.4 release.
+
+2001-06-20 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/config/ftconfig.h: Add two more `L's to
+ constants.
+ Add missing semicolons.
+
+ * builds/toplevel.mk: Do similar change as for
+ builds/unix/detect.mk.
+
+ * include/freetype/freetype.h (FT_ENC_TAG): New version to make it
+ easier to redefine.
+ * include/freetype/ftimage.h (FT_IMAGE_TAG): Ditto.
+
+ * src/pcf/pcfread.c (pcf_get_encodings): Add cast.
+
+2001-06-19 David Turner <david@freetype.org>
+
+ * builds/win32/visualc/freetype.dsp, builds/win32/visualc/index.html:
+ Updated the Visual C++ project (for the 2.0.4 release).
+
+ * builds/unix/detect.mk: Added rule for AIX detection (which uses
+ /usr/sbin/init instead of /sbin/init).
+
+ * include/freetype/fterrors.h, src/*/*err*.h: Updated some of the
+ error macros to simplify handling of new error scheme.
+
+2001-06-19 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/fttypes.h (FT_ERROR_MODULE): New macro.
+
+2001-06-19 David Turner <david@freetype.org>
+
+ Removing _lots_ of compiler warnings when the most pedantic warning
+ levels of Visual C++ and Borland C++ are used. Too many files to be
+ listed here, but FT2 now compiles without warnings with VC++ and the
+ `/W4' warning level (lint-style).
+
+ * include/freetype/freetype.h (FT_New_Memory_Face): Updated
+ documentation.
+ * include/freetype/fttypes.h (FT_BOOL): New macro.
+ * include/freetype/internal/ftdebug.h: Add #pragma for Visual C++
+ to suppress warning.
+ * include/freetype/internal/ftstream.h (FT_GET_SHORT_{BE,LE},
+ FT_GET_OFF3_{BE,LE}, FT_GET_LONG_{BE,LE}): New macros.
+ (NEXT_*): Use them.
+ * src/autohint/ahglobal.c: Include FT_INTERNAL_DEBUG_H.
+ (FT_New_Memory_Face): Add `const' to function declaration.
+
+2001-06-18 Werner Lemberg <wl@gnu.org>
+
+ Minor cleanups to remove compiler warnings.
+
+ * include/freetype/cache/ftcmanag.h (FTC_MAX_BYTES_DEFAULT): Use
+ `L' for constant.
+ * include/freetype/config/ftoption.h (FT_RENDER_POOL_SIZE): Ditto.
+ * src/base/ftcalc.c (FT_MulDiv): Use `L' for constant.
+ * src/base/ftglyph.c (FT_Glyph_Get_CBox): Remove `error' variable.
+ * src/base/fttrigon.c (ft_trig_arctan_table): Use `L' for constants.
+ * src/base/ftobjs.c (FT_Done_Size): Fix return value.
+ (FT_Set_Char_Size, FT_Set_Pixel_Sizes, FT_Get_Kerning): Remove
+ unused `memory' variable.
+ * src/autohint/ahglyph.c (ah_get_orientation): Use `L' for constant.
+ * src/autohint/ahhint.c (ah_hint_edges_3,
+ ah_hinter_align_edge_points): Remove unused `before' and `after'
+ variables.
+ (ah_hinter_align_weak_points): Remove unused `edge_limit' variable.
+ (ah_hinter_load): Remove unused `new_advance', `start_contour',
+ and `metrics' variables.
+ * src/cff/cffload.c (CFF_Load_Encoding): Remove dead code to avoid
+ compiler warning.
+ * src/cff/cffobjs.c (CFF_Init_Face): Remove unused `base_offset'
+ variable.
+ * src/cff/cffgload.c (CFF_Parse_CharStrings): Remove unused
+ `outline' variable.
+ (cff_compute_bias): Use `U' for constant.
+ * src/cid/cidload.c (cid_decrypt): Ditto.
+ * src/psaux/psobjs.c (T1_Decrypt): Ditto.
+ * src/psaux/t1decode.c (T1_Decoder_Parse_CharStrings): Ditto.
+ * src/sfnt/ttload.c (TT_Load_Kern): Remove unused `version'
+ variable.
+ * src/sfnt/ttsbit.c (TT_Load_SBit_Image): Remove unused `top'
+ variable.
+ * src/truetype/ttgload.c (load_truetype_glyph): Remove unused
+ `num_contours' and `ins_offset' variables.
+ (compute_glyph_metrics): Remove unused `Top' and `x_scale'
+ variables.
+ (TT_Load_Glyph): Remove unused `memory' variable.
+ * src/smooth/ftgrays.c (grays_raster_render): Use `L' for constants.
+
+2001-06-18 Werner Lemberg <wl@gnu.org>
+
+ Make the new error scheme source compatible with older FT versions
+ by introducing another layer.
+
+ * include/freetype/fterrors.h (FT_ERRORDEF_, FT_NOERRORDEF_): New
+ macros.
+ (FT_NOERRORDEF): Removed.
+ * include/*/*err*.h: Use FT_ERRORDEF_ and FT_NOERRORDEF_.
+
+2001-06-16 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/freetype.h (FT_ENC_TAG): New macro.
+ (FT_Encoding_): Use it.
+ * include/freetype/ftimage.h (FT_IMAGE_TAG): Define it
+ conditionally.
+
+2001-06-14 David Turner <david@freetype.org>
+
+ Modified the TrueType interpreter to let it use the new
+ trigonometric functions provided in `fttrigon.h'. This gets rid of
+ some old 64-bit computation routines, as well as many warnings when
+ compiling the library with the `long long' 64-bit integer type.
+
+ * include/freetype/config/ftoption.h: Undefine
+ FT_CONFIG_OPTION_OLD_CALCS.
+ * include/freetype/internal/ftcalc.h: Rearrange use of
+ FT_CONFIG_OPTION_OLD_CALCS.
+ * src/base/ftcalc.c: Add declaration of FT_Int64 if
+ FT_CONFIG_OPTION_OLD_CALCS isn't defined.
+ * src/truetype/ttinterp.c: Use FT_TRIGONOMETRY_H.
+ (Norm): Add a special version if FT_CONFIG_OPTION_OLD_CALCS isn't
+ defined.
+ (Current_Ratio, Normalize): Simplify code.
+
+2001-06-11 Mike Owens <MOwens@amtdatasouth.com>
+
+ * src/base/ftcalc.c (FT_MulDiv, FT_DivFix, FT_Sqrt64): Remove
+ compiler warnings.
+
+2001-06-08 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/configure.in: Renamed to ...
+ * builds/unix/configure.ac: This to make sure that autoconf 2.50 is
+ needed.
+ Run `autoupdate' on it.
+ Increase `version_info' to 7:0:1.
+ * builds/unix/configure: Regenerated.
+
+2001-06-08 David Turner <david@freetype.org>
+
+ * src/autohint/ahhint.c (ah_hinter_load_glyph): Fixed a bug that
+ corrupted transformed glyphs that were auto-hinted (the transform
+ was applied twice).
+
+ Fixed a bug that returned an invalid linear width for composite
+ TrueType glyphs.
+
+ * include/internal/tttypes.h (TT_Loader_): Two new elements `linear'
+ and `linear_def'.
+ * src/truetype/ttgload.c (load_truetype_glyph,
+ compute_glyph_metrics): Use it.
+
+ * include/fttypes.h (FT_ERROR_BASE): New macro.
+ * src/base/ftobjs.c (FT_Open_Face, FT_Render_Glyph_Internal): Use it
+ to make source code work with the new error scheme implemented by
+ Werner.
+ * src/base/ftoutln.c (FT_Outline_Render): Ditto.
+
+2001-06-07 Werner Lemberg <wl@gnu.org>
+
+ Updating to libtool 1.4.0 and autoconf 2.50.
+
+ * builds/unix/ltconfig: Removed.
+ * builds/unix/ltmain.sh, builds/unix/configure.in,
+ builds/unix/aclocal.m4: Updated.
+ * builds/unix/configure: Regenerated.
+
+2001-06-06 Werner Lemberg <wl@gnu.org>
+
+ Complete redesign of error codes. Please check ftmoderr.h for more
+ details.
+
+ * include/freetype/internal/cfferrs.h,
+ include/freetype/internal/tterrors.h,
+ include/freetype/internal/t1errors.h: Removed. Replaced with files
+ local to the module. All extra error codes have been moved to
+ `fterrors.h'.
+
+ * src/sfnt/ttpost.h: Move error codes to `fterrors.h'.
+
+ * src/autohint/aherrors.h, src/cache/ftcerror.h, src/cff/cfferrs.h,
+ src/cid/ciderrs.h, src/pcf/pcferror.h, src/psaux/psauxerr.h,
+ src/psnames/psnamerr.h, src/raster/rasterrs.h, src/sfnt/sferrors.h,
+ src/smooth/ftsmerrs.h, src/truetype/tterrors.h,
+ src/type1/t1errors.h, src/winfonts/fnterrs.h: New files defining the
+ error names for the module it belongs to.
+
+ * include/freetype/ftmoderr.h: New file, defining the module error
+ offsets. Its structure is similar to `fterrors.h'.
+
+ * include/freetype/fterrors.h (FT_NOERRORDEF): New macro.
+ (FT_ERRORDEF): Redefined to use module error offsets.
+ All internal error codes are now public; unused error codes have
+ been removed, some are new.
+
+ * include/freetype/config/ftheader.h (FT_MODULE_ERRORS_H): New
+ macro.
+ * include/freetype/config/ftoption.h
+ (FT_CONFIG_OPTION_USE_MODULE_ERRORS): New macro.
+
+ All other source files have been updated to use the new error codes;
+ some already existing (internal) error codes local to a module have
+ been renamed to give them the same name as in the base module.
+
+ All make files have been updated to include the local error files.
+
+2001-06-06 Werner Lemberg <wl@gnu.org>
+
+ * src/cid/cidtokens.h: Replaced with...
+ * src/cid/cidtoken.h: This file for 8+3 consistency.
+
+ * src/raster/ftraster.c: Use macros for header file names.
+
+ * src/include/freetype/tttables.h (TT_HoriHeader_, TT_VertHeader_):
+ Fix length of `Reserved' array. Note that this isn't the real fix
+ since recent OpenType specs have introduced a `CaretOffset' field
+ instead of the first reserved byte.
+
+2001-05-29 Werner Lemberg <wl@gnu.org>
+
+ * INSTALL: Minor fixes.
+
+
+ * Version 2.0.3 released.
+ =========================
+
+
+2001-05-29 David Turner <david@freetype.org>
+
+ * INSTALL, docs/CHANGES: Updated.
+
+2001-05-25 David Turner <david@freetype.org>
+
+ Moved several documents from the top-level to the `docs' directory.
+
+ * src/base/ftcalc.c (FT_DivFix): Small fix to return value.
+
+2001-05-16 David Turner <david@freetype.org>
+
+ * src/truetype/ttgload.c (load_truetype_glyph): Fixed a bug in the
+ composite loader. Spotted by Keith Packard.
+ * src/base/ftobjs.c (FT_GlyphLoader_Check_Points,
+ FT_GlyphLoader_Check_Subglyphs): Ditto.
+
+2001-05-14 David Turner <david@freetype.org>
+
+ Fixed the incorrect blue zone computations, and improved the
+ composite support. Note that these changes result in improved
+ rendering, while sometimes introducing their own artefacts. This is
+ probably the last big change to the autohinter before the
+ introduction of a complete replacement.
+
+ * src/autohint/ahglobal.c (sort_values): Fix loop.
+ * src/autohint/ahglyph.c: Removed some obsolete code.
+ (ah_outline_compute_edges): Modify code to set the ah_edge_round
+ flag.
+ (ah_outline_compute_blue_edges): Add code to compute active blue
+ zones.
+ * src/autohint/ahhint.c (ah_hinter_glyph_load): Change load_flags
+ value.
+
+ * src/base/ftcalc.c (FT_DivFix): Fixed a bug in the 64-bit code that
+ created incorrect scale factors!
+ (FT_Round_Fix, FT_CeilFix, FT_FloorFix): Minor improvements.
+
+2001-05-12 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/ftbbox.h: FTBBOX_H -> __FTBBOX_H__.
+ * include/freetype/fttrigon.h: __FT_TRIGONOMETRY_H__ ->
+ __FTTRIGON_H__.
+ Include FT_FREETYPE_H.
+ Beautified; added copyright.
+ * src/base/fttrigon.c: Beautified; added copyright.
+
+2001-05-11 David Turner <david@freetype.org>
+
+ * src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c
+ (parse_font_matrix), src/type1/t1load.c (parse_font_matrix): Fixed
+ the incorrect EM size computation.
+
+ * include/freetype/fttrigon.h, src/base/fttrigon.c: New files,
+ adding trigonometric functions to the core API (using Cordic
+ algorithms).
+ * src/base/ftbase.c, src/base/Jamfile, src/base/rules.mk: Use them.
+
+ * builds/newline: New file.
+ * builds/top_level.mk, builds/detect.mk: Use it. This fixes
+ problems with Make on Windows 2000, as well as problems when `make
+ distclean' is invoked on a non-Unix platform when there is no
+ `config.mk' in the current directory.
+
+ * builds/freetype.mk: Fixed a problem with object deletions under
+ Dos/Windows/OS/2 systems.
+
+ Added new directory to hold tools and test programs.
+
+ * docs/docmaker.py, docs/glnames.py: Moved to...
+ * src/tools/docmaker.py, src/tools/glnames.py: This place.
+ * src/tools/cordic.py: New file used to compute arctangent table
+ needed by fttrigon.c.
+ * src/tools/test_bbox.c, src/tools/test_trig.c: New test files.
+
+ * src/tools/docmaker.py: Improved the script to add the current date
+ at the footer of each web page (useful to distinguish between
+ versions).
+
+ * Jamfile: Fixed incorrect HDRMACRO argument.
+
+ * TODO: Removed the cubic arc bbox computation note, since it has been
+ fixed recently.
+ * src/base/ftbbox.c (test_cubic_zero): Renamed to...
+ (test_cubic_extrema): This function. Use `UL' for unsigned long
+ constants.
+
+ * include/freetype/t1tables.h, include/freetype/config/ftoption.h:
+ Formatting.
+
+2001-05-10 David Turner <david@freetype.org>
+
+ * src/base/ftobjs.c (FT_Open_Face): Fixed a small memory leak
+ which happened when trying to open 0-size font files!
+
+2001-05-09 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/ftcalc.h: Move declaration of
+ FT_SqrtFixed() out of `#ifdef FT_LONG64'.
+
+2001-05-08 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
+
+ * src/pcfdriver.c (PCF_Load_Glyph): Fixed incorrect bitmap width
+ computation.
+
+2001-05-08 David Turner <david@freetype.org>
+
+ * docs/docmaker.py: Updated the DocMaker script in order to add
+ command line options (--output,--prefix,--title), fix the erroneous
+ line numbers reported during errors and warnings, and other
+ formatting issues.
+
+ * src/base/ftcalc.c (FT_MulDiv, FT_MulFix, FT_DivFix): Various tiny
+ fixes related to rounding in 64-bits routines and
+ pseudo-`optimizations'.
+
+2001-04-27 David Turner <david@freetype.org>
+
+ * src/base/ftbbox.c (BBox_Cubic_Check): Fixed the coefficient
+ normalization algorithm (invalid final bit position, and invalid
+ shift computation).
+
+2001-04-26 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/config.guess, builds/unix/config.sub: Updated to
+ latest versions from gnu.org.
+
+ * builds/compiler/gcc-dev.mk: Add `-Wno-long-long' flag.
+
+ * include/freetype/internal/ftcalc.h: Define FT_SqrtFixed()
+ unconditionally.
+ * src/base/ftbbox.c: Include FT_INTERNAL_CALC_H.
+ Fix compiler warnings.
+ * src/base/ftcalc.c: Fix (potential) compiler warnings.
+
+2001-04-26 David Turner <david@freetype.org>
+
+ * src/base/ftcalc.c (FT_SqrtFixed): Corrected/optimized the 32-bit
+ fixed-point square root computation. It is now used even with
+ 64-bits integers, as it is _much_ faster than calling FT_Sqrt64 :-)
+
+ * src/base/ftbbox.c: Removed invalid `#include FT_BEZIER_H' line.
+
+2001-04-25 David Turner <david@freetype.org>
+
+ * src/base/ftbbox.c (BBox_Cubic_Check): Rewrote function to use
+ direct computations with 16.16 values instead of sub-divisions. It
+ is now slower, but proves a point :-)
+
+ * src/raster/ftraster.c, src/smooth/ftgrays.c, src/base/ftbbox.c:
+ Fixed the Bézier stack depths.
+
+ * src/base/ftcalc.c (FT_MulFix): Minor rounding fix.
+
+ * builds/beos: Added BeOS-specific files to the old build system
+ (no changes were necessary to support BeOS in the Jamfile though).
+
+2001-04-20 David Turner <david@freetype.org>
+
+ * ftconfig.h, ftoption.h: Updated `ftconfig.h' to detect 64-bit int
+ types on platforms where Autoconf is not available). Also removed
+ FTCALC_USE_LONG_LONG and replaced it with
+ FT_CONFIG_OPTION_FORCE_INT64.
+
+ * builds/win32/freetype.dsp: Updated the Visual C++ project file.
+ Doesn't create a DLL yet.
+
+ * cffgload.c: Removed a compilation warning.
+
+2001-04-10 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * t1load.c (parse_charstrings): Changed code for placing .notdef
+ glyph into slot 0 so that we no longer have a memory access
+ violation.
+
+ * t1load.h: In structure T1_Loader, added swap_table (of type
+ PS_Table) to facilitate placing the .notdef glyph into slot 0.
+
+2001-04-10 Francesco Zappa Nardelli <francesco.zappa.nardelli@ens.fr>
+
+ * src/pcf/pcfdriver.c (PCF_Get_Char_Index): Fix return value.
+
+2001-04-09 Laurence Withers <lwithers@lwithers.demon.co.uk>
+
+ * builds/dos/detect.mk: Add support for bash.
+
+2001-04-05 Werner Lemberg <wl@gnu.org>
+
+ * builds/os2/*.mk: These files have been forgotten to update to
+ the structure of similar makefiles.
+ * builds/dos/*.mk: Ditto.
+ * builds/ansi/*.mk: Ditto.
+
+ * builds/win32/win32-def.mk (BUILD): Fix typo.
+
+ * builds/compiler/*.mk (CLEAN_LIBRARY): Don't use NO_OUTPUT.
+ This is already used in the link_*.mk files.
+
+2001-04-03 Werner Lemberg <wl@gnu.org>
+
+ * src/*/Jamfile: Slight changes to make files more cryptic.
+
+2001-04-03 Werner Lemberg <wl@gnu.org>
+
+ * Jamfile, src/Jamfile, src/*/Jamfile: Formatted. Slight changes
+ to give files identical structure.
+
+2001-04-02 Werner Lemberg <wl@gnu.org>
+
+ * CHANGES: Reformatted, minor fixes.
+ * TODO: Updated.
+ * README: Formatting.
+ * include/freetype/freetype.h: Formatting.
+
+ * Jamfile: Fix typo.
+
+ * src/cff/cffparse.c: Move error code #defines to...
+ * include/freetype/internal/cfferrs.h: This file.
+ * src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffload.c: Replaced
+ `FT_Err_*' with `CFF_Err_*'.
+ * src/cid/cidparse.c: Replaced `FT_Err_*' with `T1_Err_*'.
+ * src/psaux/psobjs.c, src/psaux/t1decode.c: Ditto.
+ * src/sfnt/sfobcs.c, src/sfnt/ttload.c: Replaced `FT_Err_*' with
+ `TT_Err_*'.
+ * src/truetype/ttgload.c, src/truetype/ttobjs.c: Ditto.
+ * src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1objs.c,
+ src/type1/t1parse.c: Replaced `FT_Err_*' with `T1_Err_*'.
+
+ * include/freetype/internal/cfferrs.h: Add
+ `CFF_Err_Unknown_File_Format'.
+ * include/freetype/internal/t1errors.h: Add
+ `T1_Err_Unknown_File_Format'.
+ * include/freetype/internal/tterrors.h: Add
+ `TT_Err_Unknown_File_Format'.
+
+ * src/cff/cffload.h: Add `cff_*_encoding' and `cff_*_charset'
+ references.
+ * src/psaux/psobjs.c: Include `FT_INTERNAL_TYPE1_ERRORS_H'.
+
+ * src/cff/cffobjs.c (CFF_Init_Face, CFF_Done_Face): Use
+ FT_LOCAL_DEF.
+ * src/cid/cidobjs.c (CID_Done_Driver): Ditto.
+ * src/trutype/ttobjs.c (TT_Init_Face, TT_Done_Face, TT_Init_Size):
+ Ditto.
+ * src/type1/t1objs.c (T1_Done_Driver): Ditto.
+ * src/pcf/pcfdriver.c (PCF_Done_Face): Ditto.
+ * src/pcf/pcf.h: Use FT_LOCAL for `PCF_Done_Face'.
+
+2001-04-02 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/sfnt/ttload.c (TT_Load_Metrics): Fix an improper pointer
+ dereference. Submitted by Herbert Duerr <duerr@sun.com>.
+
+2001-03-26 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * include/freetype/config/ftconfig.h: Changed hexadecimal
+ constants to use suffix U to avoid problems with HP-UX's c89
+ compiler. Submitted by G.W. Lucas <glucas@sonalysts.com>.
+
+2001-03-24 David Turner <david.turner@freetype.org>
+
+ * Jamrules, Jamfile, src/Jamfile, src/*/Jamfile: Adding jamfiles to
+ the source tree. See www.freetype.org/jam/index.html for details.
+
+
+ * Version 2.0.2 released.
+ =========================
+
+
+2001-03-20 Werner Lemberg <wl@gnu.org>
+
+ * builds/win32/detekt.mk: Fix .PHONY target for Intel compiler.
+
+2001-03-20 David Turner <david.turner@freetype.org>
+
+ * include/freetype/config/ftheader.h, include/freetype/ftsnames.h:
+ Renamed `ftnames.h' to `ftsnames.h', and FT_NAMES_H to
+ FT_SFNT_NAMES_H.
+
+ * docs/docmaker.py: Added generation of INDEX link in table of
+ contents.
+
+ * INSTALL, docs/BUILD: Updated documentation to indicate that the
+ compilation process has changed slightly (no more `src' required in
+ the include path).
+
+ * builds/*/*-def.mk: Changed the objects directory from `obj' to
+ `objs'.
+
+ * include/freetype/config/ftheader.h: Removed obsolete macros like
+ FT_SOURCE_FILE, etc. and added cache-specific macro definitions that
+ were previously defined in <freetype/ftcache.h>. Added comments to
+ be included in a new API Reference section.
+
+ * src/*/*: Removed the use of FT_SOURCE_FILE, etc. Now, each
+ component needs to add its own directory to the include path at
+ compile time. Modified all `rules.mk' and `descrip.mms'
+ accordingly.
+
+2001-03-20 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/configure.in: Add $ft_version.
+ * builds/unix/freetype-config.in: Use it.
+ * builds/unix/configure: Updated.
+
+2001-03-19 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/type1/t1load.c (parse_font_matrix): Assign the units per em
+ value an unsigned short value, first by shifting right 16 bits,
+ then by casting the results to FT_UShort.
+
+ * src/cff/cffparse.c (cff_parse_font_bbox): Assign the units per em
+ value an unsigned short value, first by shifting right 16 bits,
+ then by casting the results to FT_UShort.
+
+2001-03-17 David Turner <david.turner@freetype.org>
+
+ * src/cid/cidobjs.c, src/cid/cidload.c, src/pcf/pcfread.c,
+ src/type1/t1load.c, src/type1/t1objs.c: Added a few casts to remove
+ compiler warnings in pedantic modes.
+
+ * include/config/ft2build.h, include/config/ftheader.h: The file
+ `ft2build.h' was renamed to `ftheader.h' to avoid conflicts with the
+ top-level <ft2build.h>.
+
+ * include/config/ftheader.h: Added new section describing the #include
+ macros.
+
+2001-03-17 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/cff/cffparse.c (cff_parse_font_bbox): Obtain rounded FT_Fixed
+ values for the bounding box numbers.
+
+ * src/cff/cffobjs.c (CFF_Init_Face): When processing a CFF/CEF font,
+ set `root->ascender' (`root->descender') to the integer part of
+ `root->bbox.yMax' (`root->bbox.yMin', respectively).
+
+2001-03-16 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/cff/cffdrivr.c (get_cff_glyph_name): New function. Used in
+ cff_get_interface to facilitate getting a glyph name for glyph index
+ via FT_Get_Glyph_Name().
+
+ (cff_get_interface): Added support for getting a glyph name via the
+ `glyph_name' module interface. Uses the new function
+ get_cff_glyph_name().
+ Submitted by Sander van der Wal <svdwal@xs4all.nl>.
+
+ * src/cff/cffobjs.c (CFF_Init_Face): Logical or the face flags with
+ FT_FACE_FLAG_GLYPH_NAMES only if FT_CONFIG_OPTION_NO_GLYPH_NAMES is
+ not defined. This is to add support for getting a glyph name from a
+ glyph index via FT_Get_Glyph_Name().
+ Submitted by Sander van der Wal <svdwal@xs4all.nl>.
+
+ * src/cff/cffgload.c (CFF_Parse_CharStrings): Added support for
+ deprecated operator `dotsection'.
+ Submitted by Sander van der Wal <svdwal@xs4all.nl>.
+
+2001-03-12 Werner Lemberg <wl@gnu.org>
+
+ * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix error
+ messages.
+
+ * INSTALL, docs/BUILD: We need GNU make 3.78.1 or newer.
+
+2001-03-12 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * include/freetype/internal/psaux.h: Changed the lenIV member of
+ the T1_Decoder_ struct to be an FT_Int instead of an FT_UInt.
+
+ * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Adjust
+ for lenIV seed bytes at the start of a decrypted subroutine.
+
+ * src/cid/cidload.c (cid_read_subrs): Decrypt subroutines only
+ if lenIV >= 0.
+
+ * src/cid/cidgload.c (cid_load_glyph): Decrypt charstrings only
+ if lenIV >= 0.
+
+2001-03-11 Werner Lemberg <wl@gnu.org>
+
+ * TODO: Updated.
+
+ * src/pcf/pcfread.c: Put READ_Fields() always in a conditional to
+ avoid compiler warnings.
+
+2001-03-10 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * TODO: New file.
+
+ * include/freetype/freetype.h: Added prototypes and notes for
+ three new functions: FT_RoundFix, FT_CeilFix, and FT_FloorFix.
+ * src/base/ftcalc.c (FT_RoundFix, FT_CeilFix, FT_FloorFix): Added
+ implementation code.
+
+ * src/cid/cidobjs.c (CID_Init_Face): Use calculated units_per_EM,
+ and if that is not available, default to 1000 units per EM. Changed
+ assignment code for ascender and descender values.
+ * src/cid/cidload.c (parse_font_matrix): Added units_per_EM
+ processing.
+ (parse_font_bbox): Changed to use FT_Fixed number handling.
+
+ * src/type1/t1objs.c (T1_Init_Face): Changed the assignment code
+ for ascender, descender, and max_advance_width.
+ * src/type1/t1load.c (parse_font_bbox): Changed to use FT_Fixed
+ number handling.
+
+2001-03-10 Henrik Grubbström <grubba@roxen.com>
+
+ * src/*/*.c: Added many casts to make code more 64bit-safe.
+
+2001-03-07 Werner Lemberg <wl@gnu.org>
+
+ * INSTALL, docs/BUILD: We need GNU make 3.78 or newer.
+
+2001-03-07 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/type1/t1objs.c (T1_Init_Face): Minor correction: We must wait
+ until parse_font_bbox is changed before we use logical shift rights
+ in the assignments of `root->ascender', `root->descender', and
+ `root->max_advance_width'.
+
+ (T1_Done_Face): Free `char_name' table to avoid a memory leak.
+ Submitted by Sander van der Wal <svdwal@xs4all.nl>.
+
+2001-03-05 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/cff/cffgload.c (CFF_Load_Glyph): Set glyph control data to the
+ the Type 2 glyph charstring (used by conversion programs).
+ Submitted by Ha Shao <hashao@chinese.com>.
+
+2001-03-04 Antoine Leca <Antoine.Leca@renault.fr>
+
+ * include/freetype/ttnameid.h: Correct a stupid typo which prevented
+ correct compilation (TT_MS_LANGID_TIGRIGNA_ETHIOPIA appeared twice).
+
+2001-03-04 Werner Lemberg <wl@gnu.org>
+
+ * src/autohint/ahtypes.h (AH_Hinter): Add elements
+ `disable_horz_edges', `disable_vert_edges'.
+ * src/autohint/ahhint.c (ah_hint_edges_3, ah_hinter_hint_edges): Use
+ them (and remove static variables with the same names).
+ * src/pcf/pcfutil.c (BitOrderInvert): Add `const'.
+ * docs/glnames.py: Updated to latest pstables.h changes.
+
+ * builds/unix/detect.mk: Add test for Hurd.
+ * builds/hurd/detect.mk: Removed.
+
+2001-03-04 Sander van der Wal <svdwal@xs4all.nl>
+
+ * src/psnames/pstables.h: Add more `const'.
+ * src/pcf/pcfutil.c: Ditto.
+
+2001-03-04 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixing typo
+ (FT_Glyph_Done -> FT_Done_Glyph).
+
+2001-03-01 Antoine Leca <Antoine.Leca@renault.fr>
+
+ * include/freetype/ttnameid.h: Added some new Microsoft language
+ codes and LCIDs as found in Office Xp.
+
+2001-02-28 David Turner <david.turner@freetype.org>
+
+ * builds/hurd/detect.mk: New file. Added support to detect the GNU
+ Hurd operating system as Unix-like. Fix submitted by Anthony Fok
+ <foka@debian.org>.
+
+ * src/type1/t1gload.c (T1_Load_Glyph): Set glyph control data to the
+ the Type 1 glyph charstring (used by conversion programs).
+ Submitted by Ha Shao <hashao@chinese.com>.
+
+2001-02-22 David Turner <david.turner@freetype.org>
+
+ * src/base/ftgrays.c (grays_sweep): The function didn't exit
+ immediately if `num_cells' was 0 as it should. Thanks to Boris for
+ finding this out.
+
+ * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixed memory leak when
+ bitmap rendering fails (thanks to Graham Asher).
+
+2001-02-13 Werner Lemberg <wl@gnu.org>
+
+ * docs/docmaker.py (DocSection::add_element): Use
+ `self.print_error()'.
+
+ * builds/unix/config.{guess,sub}: Updated (from ftp.gnu.org).
+
+2001-02-13 David Turner <david.turner@freetype.org>
+
+ * docs/docmaker.py, include/freetype/*.h: Updated the DocMaker
+ script to support chapters and section block ordering. Updated the
+ public header files accordingly.
+
+ * src/base/ftglyph.c (FT_Glyph_Copy): Advance width and glyph format
+ were not correctly copied.
+
+2001-02-08 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/cff/cffparse.c (cff_parse_font_matrix): Removed an
+ unnecessary fprintf( stderr, ... ).
+
+2001-02-07 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/type1/t1objs.c (T1_Init_Face): Added code to get the
+ units_per_EM from the value assigned in parse_font_matrix, if
+ available. Default to 1000 if not available.
+
+ * src/cff/cffparse.c (cff_parse_font_matrix): Added logic to get
+ the units_per_EM from the FontMatrix.
+
+ (cff_parse_fixed_thousand): New function. Gets a real number from
+ the CFF font, but multiplies by 1000 (this is to avoid rounding
+ errors when placing this real number into a 16.16 fixed number).
+
+ (cff_parse_real): Added code so that the integer part is moved
+ into the high sixteen bits of the 16.16 fixed number.
+
+ * src/cff/cffobjs.c (CFF_Init_Face): Added logic to get the units
+ per EM from the CFF dictionary, if available.
+
+ * include/freetype/internal/cfftypes.h: In struct CFF_Font_Dict_,
+ added a units_per_em member to facilitate passing of units_per_em
+ from function cff_parse_font_matrix.
+
+ * src/type1/t1load.c (is_alpha): Make `-' a legal alphanumeric
+ character. This is so that font names with `-' are fully parsed,
+ etc...
+
+2001-02-02 Werner Lemberg <wl@gnu.org>
+
+ * src/psaux/psobjs.c (shift_elements): Remove if clause (which is
+ obsolete now).
+
+ (reallocate_t1_table, PS_Table_Done): Replace REALLOC() with ALLOC()
+ + MEM_Copy() to avoid a memory bug.
+
+2001-02-01 David Turner <david.turner@freetype.org>
+
+ * docs/docmaker.py: Improved the index sorting routine to place
+ capital letters before small ones. Added the `<order>' marker to
+ section blocks in order to give the order of blocks.
+
+2001-01-30 Antoine Leca <Antoine.Leca@renault.fr>
+
+ * include/freetype/ttnameid.h: Latest updates to Microsoft language
+ ID codes.
+
+2001-01-24 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/cff/t1load.c (parse_font_matrix): Added heuristic to get
+ units_per_EM from the font matrix.
+
+ (parse_dict): Deleted test to see whether the FontInfo keyword has
+ been seen. Deletion of this test allows fonts without FontInfo
+ dictionaries to be parsed by the Type 1 driver.
+
+ (T1_Open_Face): Deleted empty subroutines array test to make sure
+ fonts with no subroutines still are parsed.
+
+2001-01-17 Francesco Zappa Nardelli <francesco.zappa.nardelli@ens.fr>
+
+ * src/pcfread.c (pcf_get_properties, pcf_get_metrics,
+ pcf_get_bitmaps): Fix compiler errors.
+
+2001-01-11 David Turner <david.turner@freetype.org>
+
+ * src/pcf/pcfread.c: Removed some compilation warnings related
+ to comparison of signed vs. unsigned integers.
+
+ * include/freetype/internal/ftdebug.h: Changed the debug trace
+ constants from trace_t2xxxx to trace_cffxxxx to be able to compile
+ the CFF driver in debug mode.
+
+2001-01-11 Matthew Crosby <mcrosby@marthon.org>
+
+ * builds/unix/freetype-config.in: Fix problems with separate
+ --prefix and --exec-prefix.
+
+2001-01-11 David Turner <david.turner@freetype.org>
+
+ * docs/docmaker.py: Added cross-references generation as well as
+ more robust handling of pathname wildcard matching.
+
+2001-01-10 Werner Lemberg <wl@gnu.org>
+
+ * docs/docmaker.py: Minor improvements to reduce unwanted spaces
+ and empty lines in output.
+
+2001-01-09 David Turner <david.turner@freetype.org>
+
+ * docs/docmaker.py: Improved script to generate table of contents
+ and index pages. It also supports wildcards on non Unix systems.
+
+ * include/freetype/*.h, include/freetype/cache/*.h: Updated comments
+ to include section definitions/delimitations for the API Reference
+ generator.
+
+ * include/freetype/freetype.h: Moved declaration of
+ `FT_Generic_Finalizer' and the `FT_Generic' structure to...
+ * include/freetype/fttypes.h: here.
+
+2001-01-04 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/ttnameid.h: Updated Unicode code range comments.
+
+2001-01-03 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/cff/rules.mk: Use cffgload.{c,h} instead of t2gload.{c,h}.
+
+ * include/freetype/internal/internal.h: Changed to use cfftypes.h
+ (cfferrs.h) instead of t2types.h (t2errors.h, respectively).
+
+ * include/freetype/internal/cfftypes.h: Merged in changes from
+ t2types.h and made this the canonical `types' header for the CFF
+ driver.
+
+ * include/freetype/internal/t2types.h: This file was merged with
+ cfftypes.h and is no longer necessary.
+
+ * include/freetype/internal/t2errors.h: Renamed to cfferrs.h.
+
+ * src/cff/cffobjs.c, src/cff/cffobjs.h, src/cff/cffparse.c,
+ src/cff/cffdrivr.c, src/cff/cff.c, src/cff/cffload.c,
+ src/cff/cffgload.c, src/cff/cffgload.h: Changed to use
+ cffgload.{c,h} instead of t2gload.{c,h}. All occurrences of t2_
+ (T2_) were replaced with cff_ (CFF_, respectively).
+
+ * src/cff/t2gload.h: Renamed cffgload.h.
+
+ * src/cff/t2gload.c: Renamed cffgload.c
+
+2000-01-02 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
+
+ * builds/vms: Support files for VMS architecture added.
+ * descrip.mms, src/*/descrip.mms: VMS makefiles added.
+ * README.VMS: New file.
+
+2000-01-01 Werner Lemberg <wl@gnu.org>
+
+ * LICENSE.TXT: Added info about PCF driver license.
+
+2001-01-01 Francesco Zappa Nardelli <francesco.zappa.nardelli@ens.fr>
+
+ * src/pcf/*: New driver module for PCF font format (used in
+ X Window System).
+ * include/freetype/internal/ftdebug.h (FT_Trace): Added values for
+ PCF driver.
+ * include/freetype/internal/pcftypes.h: New file.
+ * include/freetype/config/ftmodule.h: Added PCF driver module.
+
+2001-01-01 Werner Lemberg <wl@gnu.org>
+
+ * src/winfonts/winfnt.c (FNT_Get_Char_Index): Fix parameter type.
+
+2000-12-31 Werner Lemberg <wl@gnu.org>
+
+ * builds/modules.mk (clean_module_list): Fixed deletion of module
+ file in case `make make_module_list' is called before `make setup'.
+
+2000-12-30 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffload.c (CFF_Load_Charset): Improved error messages.
+ (CFF_Load_Charset, CFF_Load_Encoding): Remove unnecessary variable
+ definition.
+
+2000-12-30 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * include/freetype/internal/t2types.h,
+ include/freetype/internal/cfftypes.h: Changed the structures for
+ CFF_Encoding and CFF_Encoding for the new implementations of the
+ charset and encoding parsers in the CFF driver.
+
+ * src/cff/t2gload.c (t2_lookup_glyph_by_stdcharcode,
+ t2_operator_seac): Added these functions for use in implementing the
+ seac emulation provided by the Type 2 endchar operator.
+ (T2_Parse_CharStrings): Added seac emulation for the endchar
+ operator.
+
+ * src/cff/cffload.c (CFF_Load_Encoding, CFF_Load_Charset,
+ CFF_Done_Encoding, CFF_Done_Charset): Extended to load and parse the
+ charset/encoding tables, and free the memory used by them when the
+ CFF driver is finished with them. Added tables
+
+ cff_isoadobe_charset
+ cff_expert_charset
+ cff_expertsubset_charset
+ cff_standard_encoding
+ cff_expert_encoding
+
+ so that the encoding/charset parser can handle predefined encodings and
+ charsets.
+
+2000-12-24 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/cff/t2gload.c (T2_Load_Glyph): Added code so that the font
+ transform is applied.
+
+ * src/cff/cffparse.c (cff_parse_font_matrix): Added code so that
+ the font matrix numbers are scaled by 1/(matrix->yy). Also, the
+ offset vector now contains integer values instead of 16.16 fixed
+ numbers.
+
+2000-12-22 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/autohint/ahhint.c (ah_hinter_load_glyph):
+ Removed unnecessary comments and commented-out code.
+
+2000-12-21 David Turner <david.turner@freetype.org>
+
+ * src/cid/cidafm.c, src/cid/cidafm.h: removed un-needed files,
+ we'll work on supporting CID AFM files later I guess :-)
+
+2000-12-21 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph):
+ Changed so that fonts with a non-standard FontMatrix render
+ correctly. Previously, the first glyph rendered from such a
+ font did not have the transformation matrix applied.
+
+2000-12-17 Werner Lemberg <wl@gnu.org>
+
+ * *.mk: Added lots of `.PHONY' targets.
+
+2000-12-17 Karsten Fleischer <kfleisc1@ford.com>
+
+ * *.mk: Implemented `platform' target to disable auto-detection.
+
+2000-12-14 Werner Lemberg <wl@gnu.org>
+
+ * docs/design/modules.html: Removed. Covered by design-*.html.
+
+ * INSTALL: Added info about makepp.
+
+2000-12-14 David Turner <david.turner@freetype.org>
+
+ Added support for clipped direct rendering in the smooth renderer.
+ This should not break binary compatibility of existing applications.
+
+ * include/freetype/fttypes.h, include/freetype/ftimage.h: Move
+ definition of the FT_BBox structure from the former to the latter.
+ * include/freetype/ftimage.h: Add `ft_raster_flag_clip' value to
+ FT_Raster_Flag enumeration.
+ Add `clip_box' element to FT_Raster_Params structure.
+ * src/smooth/ftgrays.c (grays_convert_glyph): Implement it.
+
+ * INSTALL: Updated installation instructions on Win32, listing the
+ new `make setup list' target used to list supported
+ compilers/targets.
+
+ * src/raster/ftraster.c (ft_black_render): Test for unsupported
+ direct rendering before testing arguments.
+
+2000-12-13 David Turner <david.turner@freetype.org>
+
+ * include/freetype/config/ft2build.h,
+ include/freetype/internal/internal.h: Fixed header inclusion macros
+ to use direct definitions. This is the only way to do these things
+ in a portable way :-( The rest of the code should follow shortly
+ though everything compiles now.
+
+ * builds/compiler/intelc.mk, builds/compiler/watcom.mk: New files.
+
+ * builds/win32/detect.mk: Added support for the Intel C/C++
+ compiler, as well as _preliminary_ (read: doesn't work!) support for
+ Watcom. Also added a new setup target. Type `make setup list' for
+ a list of supported command-line compilers on Win32.
+
+ * src/base/ftdebug.c: Added dummy symbol to avoid empty file if
+ conditionals are off.
+
+2000-12-13 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/ftsystem.c: Fixed typos. Fixed inclusion of wrong
+ ftconfig.h file.
+
+2000-12-12 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/config/ft2build.h (FT2_ROOT, FT2_CONFIG_ROOT):
+ Removed. ANSI C doesn't (explicitly) allow macro expansion in
+ arguments using `##'.
+ (FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE): Use directory
+ names directly. Make them configurable. Use `##' to strip leading
+ and trailing spaces from arguments.
+
+ * builds/unix/ft2unix.h: Adapted.
+
+ * src/base/ftsystem.c (ft_alloc, ft_realloc, ft_free, ft_io_stream,
+ ft_close_stream): Use FT_CALLBACK_DEF.
+
+ * builds/unix/ftsystem.c: Use new header scheme.
+ (FT_Done_Memory): Use free() from FT_Memory structure.
+
+ * src/base/ftinit.c, src/base/ftmac.c: Header scheme fixes.
+
+2000-12-11 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/config/ft2build.h (FT2_CONFIG_ROOT,
+ FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE,
+ FT_SOURCE_FILE): Use `##' operator to be really ANSI C compliant.
+
+2000-12-09 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/detect.mk: Remove unused USE_CFLAGS variable.
+
+2000-12-08 Werner Lemberg <wl@gnu.org>
+
+ * */*.h: Changed body inclusion macro names to start and end with
+ `__' (those which haven't converted yet). Fixed minor conversion
+ issues.
+
+ * src/winfonts/winfnt.c: Updated to new header inclusion scheme.
+
+ * src/truetype/ttinterp.c: Remove unused CALC_Length() macro.
+
+2000-12-07 David Turner <david.turner@freetype.org>
+
+ * */*.[ch]: Changed source files to adhere to the new
+ header inclusion scheme. Not completely tested but works for now
+ here.
+
+ * src/cff/t2driver.c: Renamed and updated to...
+ * src/cff/cffdrivr.c: New file.
+ * src/cff/t2driver.h: Renamed and updated to...
+ * src/cff/cffdrivr.h: New file.
+ * src/cff/t2load.c: Renamed and updated to...
+ * src/cff/cffload.c: New file.
+ * src/cff/t2load.h: Renamed and updated to...
+ * src/cff/cffload.h: New file.
+ * src/cff/t2objs.c: Renamed and updated to...
+ * src/cff/cffobjs.c: New file.
+ * src/cff/t2objs.h: Renamed and updated to...
+ * src/cff/cffobjs.h: New file.
+ * src/cff/t2parse.c: Renamed and updated to...
+ * src/cff/cffparse.c: New file.
+ * src/cff/t2parse.h: Renamed and updated to...
+ * src/cff/cffparse.h: New file.
+ * src/cff/t2tokens.h: Renamed and updated to...
+ * src/cff/cfftoken.h: New file.
+
+ * src/cff/cff.c, src/cff/rules.mk: Updated.
+
+2000-12-06 David Turner <david.turner@freetype.org>
+
+ * src/cache/ftlru.c (FT_Lru_Done): Fixed memory leak.
+
+2000-12-06 Werner Lemberg <wl@gnu.org>
+
+ * builds/module.mk: Replaced `xxx #' with `xxx$(space).
+ * builds/os2/detekt.mk, builds/win32/detekt.mk: Moved comment to
+ avoid trailing spaces in variable.
+ * builds/freetype.mk: Use $(D) instead of $D to make statement more
+ readable.
+
+ * docs/docmaker.py: Formatting.
+
+2000-12-05 David Turner <david.turner@freetype.org>
+
+ * src/psaux/psauxmod.c: Fixed a broken inclusion of component
+ header files (an FT_FLAT_COMPILE test was missing).
+
+ * src/cache/ftcmanag.c (FTC_Manager_Done): Fixed a bug that caused
+ an occasional crash when the function was called (due to a dangling
+ pointer).
+
+ * src/base/ftsystem.c (FT_Done_Memory): Fixed an obvious bug:
+ The ANSI `free()' function was called instead of `memory->free()'.
+
+ * docs/docmaker.py: Added section filtering, multi-page generation
+ (index page generation is still missing though).
+
+2000-12-04 David Turner <david.turner@freetype.org>
+
+ * builds/unix/install.mk, builds/unix/ft2unix.h: The file `ft2unix.h'
+ is now installed as <ft2build.h> for Unix systems. Note that we
+ still use the `freetype2/freetype' installation path for now.
+
+ * */*.[ch]: Now using <ft2build.h> as the default build and setup
+ configuration file in all public headers. Internal source files
+ still need some changes though.
+
+ * builds/devel/ft2build.h, builds/devel/ftoption.h: Created a new
+ directory to hold all development options for both the Unix and
+ Win32 developer builds.
+
+ * builds/win32/detect.mk, builds/win32/w32-bccd.mk,
+ builds/win32/w32-dev.mk: Changed the developer build targets to
+ `devel-gcc' and `devel-bcc' in order to be able to develop with the
+ Borland C++ compiler.
+
+2000-12-01 David Turner <david.turner@freetype.org>
+
+
+ * Version 2.0.1 released.
+ =========================
+
+
+ * builds/unix/configure.in, builds/unix/configure,
+ builds/cygwin/configure.in, builds/cygwin/configure: Setting
+ `version_info' to 6:1:0 for the 2.0.1 release.
+
+ * CHANGES: Added a summary of changes between 2.0.1 and 2.0.
+
+ * builds/unix/ftconfig.in, builds/cygwin/ftconfig.in: Changes
+ to allow compilation under Unix with the Unix-specific config
+ files.
+
+2000-12-01 Werner Lemberg <wl@gnu.org>
+
+ * INSTALL: Revised.
+ * builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk,
+ builds/compiler/bcc.mk, builds/win32/w32-bcc.mk,
+ builds/win32/w32-bccd.mk: Revised.
+ * include/freetype/config/ftbuild.h,
+ include/freetype/internal/internal.h: Revised.
+ * include/freetype/ftimage.h: Updated to new header inclusion scheme.
+
+2000-11-30 Werner Lemberg <wl@gnu.org>
+
+ * builds/toplevel.mk (.PHONY): Adding `distclean'.
+ * builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
+ `setup'.
+
+2000-11-30 David Turner <david.turner@freetype.ogr>
+
+ * INSTALL: Slightly updated the quick starter documentation to
+ include IDE compilation, prevent against BSD Make, and specify `make
+ setup' instead of a single `make' for build configuration.
+
+ * include/config/ftbuild.h, include/internal/internal.h: Added new
+ configuration files used to determine the location of all public,
+ configuration, and internal header files for FreeType 2. Modified
+ all headers under `include/freetype' to reflect this change. Note
+ that we still need to change the library source files themselves
+ though.
+
+ * builds/compiler/bcc.mk, builds/compiler/bcc-dev.mk,
+ builds/win32/w32-bcc.mk, builds/win32/w32-bccd.mk,
+ builds/win32/detect.mk: Added new files to support compilation with
+ the free Borland C++ command-line compiler. Modified the detection
+ rules to recognize the new `bcc32' target in `make setup bcc32'.
+
+ * src/sfnt/ttcmap.c, src/sfnt/ttpost.c, src/sfnt/ttsbit.c,
+ src/truetype/ttobjs.c, src/truetype/ttgload.c,
+ src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++
+ didn't really like. Basically, this compiler complains when FT_UInt
+ is compared to FT_UShort (apparently, it promotes `UShort' to `Int'
+ in these cases).
+
+2000-11-30 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * t2objs.c (T2_Init_Face): Added calculation of `face->height' for
+ pure CFF fonts.
+
+ * t1objs.c (T1_Init_Face): Fixed computation of `face->height'.
+
+2000-11-29 David Turner <david.turner@freetype.org>
+
+ * src/base/ftbbox.c (BBox_Conic_Check): Fixed a really stupid
+ bug in the formula used to compute the conic Bézier extrema
+ of non-monotonous arcs.
+
+2000-11-29 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftcalc.c (FT_SqrtFixed), src/base/ftobjs.c
+ (FT_Set_Renderer): Use FT_EXPORT_DEF.
+ * src/cache/ftcimage.c (FTC_Image_Cache_Lookup),
+ src/cache/ftcmanag.c (FTC_Manager_Done, FTC_Manager_Reset,
+ FTC_Manager_Lookup_Face, FTC_Manager_Lookup_Size,
+ FTC_Manager_Register_Cache), src/cache/ftcsbits.c
+ (FTC_SBit_Cache_Lookup): Ditto.
+
+ * src/include/freetype/cache/ftcglyph.h (FTC_GlyphNode_Init),
+ src/include/freetype/ftmac.h (FT_New_Face_From_FOND): Use FT_EXPORT.
+
+2000-11-29 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfdriver.c: Include ttsbit.h and ttpost.h only
+ conditionally.
+
+ * src/truetype/ttdriver.c (Set_Char_Sizes, Set_Pixel_Sizes): Set
+ `size->strike_index' only conditionally.
+
+ * src/type1/t1driver.c, src/type1/t1objs.c: Include t1afm.h only
+ conditionally.
+
+ * src/winfonts/winfnt.h: Move all type definitions to...
+ * src/include/freetype/internal/fnttypes.h: New file.
+ * src/winfonts/winfnt.c: Use it.
+
+2000-11-29 ??? ??? <darin@eazel.com>
+
+ * include/freetype/internal/ftdebug.h: Replaced FT_CAT and FT_XCAT
+ with a direct solution (which also satisfies picky compilers).
+
+2000-11-28 YAMANO-UCHI Hidetoshi <mer@din.or.jp>
+
+ * src/truetype/ttobjs.c (TT_Init_Size): Fix #ifdef's to work with
+ disabled interpreter also.
+
+ * src/base/ftnames.c (FT_Get_Sfnt_Name_Count): Fix incorrect
+ parentheses.
+
+2000-11-26 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/cff/t2gload.c (T2_Parse_CharStrings): Added logic to glyph
+ width setting code to take into account even/odd argument counts
+ and glyph width operand before endchar/hmoveto/vmoveto.
+
+2000-11-26 Werner Lemberg <wl@gnu.org>
+
+ * builds/ansi/ansi.mk: Fix inclusion order of files.
+
+2000-11-26 Keith Packard <keithp@keithp.com>
+
+ * src/type1/t1objs.c (T1_Init_Face): Compute style flags.
+
+2000-11-26 Werner Lemberg <wl@gnu.org>
+
+ * builds/compiler/ansi-cc.mk (CLEAN_LIBRARY): Fix rule and
+ conditional.
+
+2000-11-23 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1load.c (parse_subrs, parse_charstrings): Use decrypt
+ function from PSAux module.
+
+ * src/type1/t1parse.c (T1_Done_Parse): Renamed to...
+ (T1_Finalize_Parser): New function (to avoid name clash with a
+ function in the PSAux module).
+ (T1_Decrypt): Removed since it is duplicated in the PSAux module.
+ (T1_Get_Private_Dict): Added `psaux' as new parameter; use decrypt
+ function from PSAux module.
+
+ * src/type1/t1parse.h: Adapted.
+
+2000-11-22 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/cff/t2objs.c (T2_Init_Face): For pure CFF fonts, set
+ `root->num_faces' to `cff->num_faces' and set `units_per_EM'
+ to 1000.
+
+ * src/cff/t2parse.c (parse_t2_real): Fixed real number parsing
+ loop.
+
+ * src/cff/t2load.c (T2_Get_String): Called T2_Get_Name with a
+ sid that was off by one.
+
+2000-11-16 David Turner <david@freetype.org>
+
+ * src/autohint/ahtypes.h (AH_Hinter): Added new fields to control
+ auto-hinting of synthetic Type 1 fonts.
+
+ * src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph):
+ Added auto-hinting support of synthetic Type 1 fonts.
+
+2000-11-12 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * src/sfnt/ttload.c (TT_LookUp_Table, TT_Load_Generic_Table): Change
+ tracing output.
+
+ * src/sfnt/sfobjs.c (SFNT_Load_Face): Set boolean variable
+ `has-outline' to true only if the font has a `glyf' or `CFF ' table.
+
+2000-11-11 Werner Lemberg <wl@gnu.org>
+
+ * builds/win32/visualc/freetype.dsp: Fix raster1->raster and
+ type1z->type1.
+
+2000-11-11 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * builds/unix/freetype-config.in, builds/cygwin/freetype-config.in:
+ Added a --libtool option. When freetype-config --libtool is
+ invoked, the absolute path to the libtool convenience library
+ is returned.
+
+2000-11-11 Werner Lemberg <wl@gnu.org>
+
+ * builds/cygwin/cygwin-def.in: Same fix as previous.
+
+2000-11-10 Tom Kacvinsky <tkacvins@freetype.org>
+
+ * builds/unix/unix-def.in: Add
+
+ INSTALL_PROGRAM := @INSTALL_PROGRAM@
+ INSTALL_SCRIPT := @INSTALL_SCRIPT@
+
+ so that installation of freetype-config does not fail.
+
+2000-11-10 Werner Lemberg <wl@gnu.org>
+
+ * builds/cygwin/freetype-config.in, builds/unix/freetype-config.in:
+ Move test down for empty --exec-prefix.
+ Fix --version.
+
+ * builds/cygwin/install.mk, builds/unix/install.mk: Use
+ $(INSTALL_SCRIPT) for installation of freetype-config.
+
+ * builds/cygwin/install.mk: Fix clean target names.
+
+2000-11-09 David Turner <david@freetype.org>
+
+
+ * Version 2.0 released.
+ =======================
+
+----------------------------------------------------------------------------
+
+Copyright 2000-2015 by
+David Turner, Robert Wilhelm, and Werner Lemberg.
+
+This file is part of the FreeType project, and may only be used, modified,
+and distributed under the terms of the FreeType project license,
+LICENSE.TXT. By continuing to use, modify, or distribute this file you
+indicate that you have read the license and understand and accept it
+fully.
+
+
+Local Variables:
+version-control: never
+coding: utf-8
+End:
diff --git a/freetype-2.6/ChangeLog.21 b/freetype-2.6/ChangeLog.21
new file mode 100644
index 0000000..a6f8be7
--- /dev/null
+++ b/freetype-2.6/ChangeLog.21
@@ -0,0 +1,9439 @@
+2005-06-08 Werner Lemberg <wl@gnu.org>
+
+
+ * Version 2.1.10 released.
+ ==========================
+
+
+ * src/pcf/readme: Renamed to...
+ * src/pcf/README: This.
+
+2005-06-07 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ * builds/amiga/*: Added copyright notes, reworked some comments.
+
+2005-06-05 Werner Lemberg <wl@gnu.org>
+
+ * Add copyright notices to all files which don't have one.
+
+ * docs/license.txt: Renamed to...
+ * docs/LICENSE.TXT: This.
+ * docs/FTL.txt: Renamed to...
+ * docs/FTL.TXT: This.
+ * docs/GPL.txt: Renamed to...
+ * docs/GPL.TXT: This.
+
+ * docs/PATENTS: Slightly reworded. Suggested by Sylvain Beucler
+ <beuc@gnu.org>.
+
+2005-06-04 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
+ FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
+ FT_Outline_CubicToFunc, FT_Raster_RenderFunc),
+ include/freetype/ftrender.h (FT_Glyph_TransformFunc,
+ FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Don't use
+ `const' to stay compatible with FreeType 2.1.9.
+
+2005-06-01 Adam D. Moss <adam@gimp.org>
+
+ * src/base/ftstroke.c (ft_stroker_inside): Revert `sigma' patch from
+ 2004-07-11; this gives much better results under normal
+ circumstances.
+
+2005-05-30 Chia I Wu <b90201047@ntu.edu.tw>
+
+ * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Minor
+ documentation improvements.
+
+ * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix typos.
+
+ * src/base/ftbitmap.c (FT_Bitmap_Embolden): Add support for bitmap
+ of pixel_mode FT_PIXEL_MODE_GRAY2 or FT_PIXEL_MODE_GRAY4.
+ If xstr is larger than 8 and bitmap is of pixel_mode
+ FT_PIXEL_MODE_MONO, set xstr to 8 instead of returning error.
+
+2005-05-29 Chia I Wu <b90201047@ntu.edu.tw>
+
+ * src/base/ftbitmap.c (FT_Bitmap_Embolden): Fix emboldening bitmap
+ of mode FT_PIXEL_MODE_GRAY. Also add support for mode
+ FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V.
+ (ft_bitmap_assure_buffer): FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V
+ should have ppb (pixel per byte) 1.
+ Zero the padding when there's no need to allocate memory.
+
+ * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle slot->advance
+ too.
+ More suited emboldening strength.
+
+2005-05-28 Chia I Wu <b90201047@ntu.edu.tw>
+
+ * src/base/ftbitmap.c (FT_Bitmap_Embolden): Handle negative pitch.
+ Handle FT_PIXEL_MODE_GRAY with num_gray != 256.
+ Improve speed for FT_PIXEL_MODE_GRAY.
+ (ft_bitmap_assure_buffer): Accept FT_PIXEL_MODE_LCD and
+ FT_PIXEL_MODE_LCD_V.
+
+2005-05-27 Chia I Wu <b90201047@ntu.edu.tw>
+
+ * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Initialize `error'.
+
+ * src/base/ftobjs.c (ft_cmap_done_internal): New function.
+ (FT_CMap_Done): Remove cmap from cmap list.
+ (destroy_charmaps, FT_CMap_New): Don't call FT_CMap_Done but
+ ft_cmap_done_internal.
+
+2005-05-26 Werner Lemberg <wl@gnu.org>
+
+ * docs/GPL.txt: Update postal address of FSF.
+
+2005-05-26 Chia I Wu <b90201047@ntu.edu.tw>
+
+ * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Improve
+ documentation.
+
+ * src/base/ftsynth.c (FT_BOLD_THRESHOLD): Removed.
+ (FT_GlyphSlot_Embolden): Check whether slot is bitmap owner.
+ Always modify the metrics.
+
+2005-05-24 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2005-05-24 Chia I Wu <b90201047@ntu.edu.tw>
+
+ * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): New declaration.
+
+ * include/freetype/ftoutln.h (FT_Outline_Embolden): New declaration.
+
+ * src/base/ftbitmap.c (ft_bitmap_assure_buffer): New auxiliary
+ function.
+ (FT_Bitmap_Embolden): New function.
+
+ * src/base/ftoutln.c (FT_Outline_Embolden): New function.
+
+ * src/base/ftsynth.c: Don't include FT_INTERNAL_CALC_H and
+ FT_TRIGONOMETRY_H but FT_BITMAP_H.
+ (FT_GlyphSlot_Embolden): Use FT_Outline_Embolden or
+ FT_Bitmap_Embolden.
+
+2005-05-24 Werner Lemberg <wl@gnu.org>
+
+ * configure: Always remove config.mk, builds/unix/unix-def.mk, and
+ builds/unix/unix-cc.mk. This fixes repeated calls of the script.
+ Reported by Nelson Beebe and Behdad Esfahbod.
+
+ * README.CVS: Mention file permissions.
+
+2005-05-23 Werner Lemberg <wl@gnu.org>
+
+ * builds/amiga/makefile.os4 (WARNINGS), builds/compiler/gcc-dev.mk
+ (CFLAGS), builds/compiler/gcc.mk (CFLAGS): Remove
+ -fno-strict-aliasing.
+
+ * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c --
+ it is currently loaded from ttsbit.c.
+
+2005-05-23 Behdad Esfahbod <behdad@cs.toronto.edu>
+
+ Say you have `(Foo*)x' and want to assign, pass, or return it as
+ `(Bar*)'. If you simply say `x' or `(Bar*)x', then the C compiler
+ would warn you that type casting incompatible pointer types breaks
+ strict-aliasing. The solution is to cast to `(void*)' instead which
+ is the generic pointer type, so the compiler knows that it should
+ make no strict-aliasing assumption on `x'. But the problem with
+ `(void*)x' is that seems like in C++, unlike C, `void*' is not a
+ generic pointer type and assigning `void*' to `Bar*' without a cast
+ causes an error. The solution is to cast to `Bar*' too, with
+ `(Bar*)(void*)x' as the result -- this is what the patch does.
+
+ * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP),
+ include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Remove
+ cast on lvalue, use a temporary pointer instead.
+ Cast temporarily to (void*) to not break strict aliasing.
+
+ * include/freetype/internal/ftmemory.h (FT_MEM_ALLOC,
+ FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC, FT_MEM_FREE),
+ src/base/ftglyph.c (FT_Glyph_To_Bitmap): Cast temporarily to (void*)
+ to not break strict aliasing.
+
+ * src/base/ftinit.c (FT_USE_MODULE): Fix wrong type information.
+
+ * builds/unix/configure.ac (XX_CFLAGS): Remove -fno-strict-aliasing.
+
+2005-05-23 David Turner <dturner@freetype.org>
+
+ Fix Savannah bug #12213 (incorrect behaviour of the cache sub-system
+ in low-memory conditions).
+
+ * include/freetype/cache/ftccache.h (FTC_CACHE_TRYLOOP,
+ FTC_CACHE_TRYLOOP_END): New macros.
+
+ * src/cache/ftccache.c (FTC_Cache_NewNode), src/cache/ftcsbits.c
+ (ftc_snode_compare): Use FT_CACHE_TRYLOOP and FTC_CACE_TRYLOOP_END.
+
+2005-05-23 Werner Lemberg <wl@gnu.org>
+
+ * src/base/rules.mk (BASE_SRC): Don't add ftsynth.c here but...
+ (BASE_EXT_SRC): Here.
+
+2005-05-22 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftrfork.c (raccess_guess_apple_generic): Mark
+ `version_number' and `entry_length' as unused.
+ (raccess_guess_linux_double_from_file_name): Remove `memory'.
+ (raccess_make_file_name): Mark `error' as unused.
+
+ * src/bdf/bdflib.c (_bdf_parse_properties): Remove `memory'.
+
+ * src/cid/cidobjs.c (cid_face_init): Remove `psnames'.
+
+ * src/sfnt/sfobjs.c (sfnt_load_face): Remove `memory'.
+
+ * src/truetype/ttgxvar.c (ft_var_readpackedpoints,
+ ft_var_readpackeddeltas, ft_var_load_avar): Mark `error' as unused.
+
+ * src/base/rules.mk (BASE_SRC): Add ftsynth.c.
+
+2005-05-21 David Turner <david@freetype.org>
+
+ * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix a bug that
+ produced unpleasant artefacts when trying to embolden very sharp
+ corners.
+
+2005-05-20 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2005-05-20 Chia I Wu <b90201047@ntu.edu.tw>
+
+ * src/base/ftbitmap.c: Don't include FT_FREETYPE_H and FT_IMAGE_H
+ but FT_BITMAP_H.
+ (FT_Bitmap_Copy): New function (from ftglyph.c).
+
+ * include/freetype/ftbitmap.h (FT_Bitmap_Copy): New public
+ definition.
+
+ * src/base/ftglyph.c: Include FT_BITMAP_H.
+ (ft_bitmap_copy): Move to ftbitmap.c.
+ (ft_bitmap_glyph_init): Remove `memory' variable.
+ Create new bitmap object if FT_GLYPH_OWN_BITMAP isn't set.
+ (ft_bitmap_glyph_copy): Use FT_Bitmap_Copy.
+ (ft_bitmap_glyph_done): Use FT_Bitmap_Done.
+ (ft_outline_glyph_init): Use FT_Outline_Copy.
+
+ * src/base/ftoutln.c (FT_Outline_Copy): Handle source == target.
+ (FT_Outline_Done_Internal): Check for valid `memory' pointer.
+ (FT_Outline_Translate, FT_Outline_Reverse, FT_Outline_Render,
+ FT_Outline_Transform): Check for valid `outline' pointer.
+
+ * src/base/ftobjs.c (FT_New_GlyphSlot): Prepend glyph slot to
+ face->glyph, otherwise a new second glyph slot cannot be created.
+ (FT_Done_GlyphSlot): Fix memory leak.
+ (FT_Open_Face): Updated -- face->glyph is already managed by
+ FT_New_GlyphSlot.
+
+ * src/type42/t42objs.c (T42_GlyphSlot_Done): Updated.
+
+2005-05-20 Kirill Smelkov <kirr@mns.spb.ru>
+
+ * include/freetype/ftimage.h (FT_Raster_Params),
+ include/freetype/ftoutln.h (FT_Outline_Translate,
+ FT_Outline_Transform), src/base/ftoutln.c (FT_Outline_Translate,
+ FT_Outline_Transform): Decorate parameters with `const' where
+ appropriate.
+ Update all callers.
+
+ * src/raster/ftraster.c (ft_black_reset), src/smooth/ftgrays.c
+ (gray_raster_reset): Remove `const' from `pool_base' argument.
+
+2005-05-18 Kirill Smelkov <kirr@mns.spb.ru>
+
+ * src/raster/ftmisc.h: New file. Only needed if ftraster.c is
+ compiled as stand-alone.
+
+ * src/raster/ftraster.c: Add comment how to compile as stand-alone.
+ s/FT_CONFIG_OPTION_STATIC_RASTER/FT_STATIC_RASTER/.
+ s/TT_STATIC_RASTER/FT_STATIC_RASTER/.
+ [_STANDALONE_]: Include ftimage.h and ftmisc.h.
+ (FT_TRACE1, FT_TRACE6, ft_memset, FT_MEM_ZERO): Define
+ conditionally.
+ (Render_Glyph, Render_Gray_Glyph): Return Raster_Err_None (or
+ Raster_Err_Unsupported).
+ (ft_black_new) [_STANDALONE_]: Fix type of `the_raster'.
+ (ft_black_init, ft_black_reset, ft_black_set_mode, ft_black_render):
+ Use `ras', not `raster'.
+ (ft_black_done): Use FT_UNUSED_RASTER.
+ (Horizontal_Sweep_Init, Horizontal_Sweep_Step,
+ Horizontal_Gray_Sweep_Span): Use FT_UNUSED_RASTER.
+
+2005-05-18 Werner Lemberg <wl@gnu.org>
+
+ * docs/announce: Start updating.
+
+ * docs/CHANGES: Updated.
+
+2005-05-16 Vitaliy Pasternak <v_a_pasternak@mail.ru>
+
+ * builds/win32/visualc/freetype.vcproj: Updated.
+ Exclude debug info for `Release' versions to reduce library size.
+
+2005-05-16 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftobjs.c (FT_Open_Face): Make it work as documented, this
+ is, ignore `aface' completely if face_index < 0. Reported by David
+ Osborn <spam@habitualhiatus.com>.
+
+2005-05-16 Kirill Smelkov <kirr@mns.spb.ru>
+
+ * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
+ FT_Outline_LineTo_Func, FT_Outline_ConicToFunc,
+ FT_Outline_CubicToFunc), src/smooth/ftgrays.c (gray_render_conic,
+ gray_render_cubic, gray_move_to, gray_line_to, gray_conic_to,
+ gray_cubic_to, gray_render_span, gray_sweep): Decorate parameters
+ with `const' where appropriate.
+
+2005-05-11 Kirill Smelkov <kirr@mns.spb.ru>
+
+ * include/freetype/ftimage.h (FT_Raster_RenderFunc),
+ include/freetype/ftrender.h (FT_Glyph_TransformFunc,
+ FT_Renderer_Render_Func, FT_Renderer_TransformFunc),
+ src/base/ftglyph.c (ft_outline_glyph_transform),
+ src/raster/ftrend1.c (ft_raster1_transform, ft_raster1_render),
+ src/smooth/ftgrays.c (FT_Outline_Decompose, gray_raster_render),
+ src/smooth/ftsmooth.c (ft_smooth_transform,
+ ft_smooth_render_generic, ft_smooth_render, ft_smooth_render_lcd,
+ ft_smooth_render_lcd_v): Decorate parameters with `const' where
+ appropriate.
+
+ * src/raster/ftraster.c (RASTER_RENDER_POOL): Removed. Obsolete.
+ (ft_black_render): Decorate parameters with `const' where
+ appropriate.
+
+2005-05-11 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/ttcmap.c (tt_cmap4_set_range): Fix typo (FT_PEEK_SHORT ->
+ FT_PEEK_USHORT) which caused crashes. Reported by Ismail Donmez
+ <ismail@kde.org.tr>.
+
+2005-05-08 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/ftserv.h (FT_FACE_FIND_GLOBAL_SERVICE)
+ [__cplusplus]: Fix typo.
+
+2005-05-07 Werner Lemberg <wl@gnu.org>
+
+ Handle unsorted SFNT type 4 cmaps correctly (reported by Dirck
+ Blaskey <listtarget@danbala.com>).
+
+ * src/sfnt/ttcmap.h (TT_CMap): Add member `unsorted'.
+ * src/sfnt/ttcmac.c: Use SFNT_Err_Ok where appropriate.
+
+ (tt_cmap0_validate, tt_cmap2_validate, tt_cmap6_validate,
+ tt_cmap8_validate, tt_cmap10_validate, tt_cmap12_validate): Use
+ `FT_Error' as return type.
+ (tt_cmap4_validate): Use `FT_Error' as return type.
+ Return error code for unsorted cmap.
+ (tt_cmap4_char_index, tt_cmap4_char_next): Use old code for unsorted
+ cmaps.
+ (tt_face_build_cmaps): Set `unsorted' variable in cmap.
+
+2005-05-07 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttpload.c (tt_face_get_location): Fix typo.
+
+2005-05-06 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffobjs.c (cff_face_init): Set ppem value in top
+ dictionary for SFNT-based CFF.
+
+2005-05-05 Werner Lemberg <wl@gnu.org>
+
+ Handle malformed `loca' table entries.
+
+ * docs/TODO: Add some bugs which should be fixed.
+
+ * include/freetype/internal/tttypes.h (TT_FaceRec): Add `glyf_len'
+ element.
+
+ * src/truetype/ttpload.c (tt_face_load_loca): Get length of `glyf'
+ table.
+ (tt_face_get_location): Fix computation of `asize' for malformed
+ `loca' entries.
+
+2005-05-01 David Turner <david@freetype.org>
+
+ * Jamfile: Remove `otvalid' from the list of compiled modules.
+
+ * include/freetype/internal/ftserv.h: Add compiler pragmas to get
+ rid of annoying warnings with Visual C++ compiler in maximum warning
+ mode.
+
+ * src/autofit/afhints.c, src/autofit/aflatin.c, src/base/ftstroke.c,
+ src/bdf/bdfdrivr.c, src/cache/ftcbasic.c, src/cache/ftccmap.c,
+ src/cache/ftcmanag.c, src/cff/cffload.c, src/cid/cidload.c,
+ src/lzw/zopen.c, src/otvalid/otvgdef.c, src/pcf/pcfread.c,
+ src/sfnt/sfobjs.c, src/truetype/ttgxvar.c: Remove compiler warnings.
+
+2005-04-28 Werner Lemberg <wl@gnu.org>
+
+ * docs/TODO: Updated.
+
+2005-04-24 Werner Lemberg <wl@gnu.org>
+
+ * src/otvalid/otvcommn.c
+ (otv_GSUBGPOS_have_MarkAttachmentType_flag): Handle table == 0.
+
+2005-04-16 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffobjs.c (cff_face_init): Set default upem value in top
+ font dict also.
+ Handle font matrix settings in subfonts.
+
+ * src/cff/cffgload.c (cff_slot_load): Use the correct font matrix
+ for CID-keyed fonts with subfonts.
+
+ * docs/formats.txt: Updated.
+
+2005-04-14 Kirill Smelkov <kirr@mns.spb.ru>
+
+ * include/freetype/freetype.h (FT_Vector_Transform),
+ include/freetype/ftimage.h (FT_Raster_Params),
+ include/freetype/ftoutln.h, src/base/ftoutln.c (FT_Outline_Get_CBox,
+ FT_Outline_Copy, FT_Outline_Transform, FT_Vector_Transform,
+ FT_Outline_Get_Bitmap), src/raster/ftraster.c (ft_black_render),
+ src/smooth/ftgrays.c (gray_raster_render): Decorate parameters with
+ `const' where appropriate.
+
+2005-04-14 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1load.c (parse_charstrings): Catch this non-standard
+ beginning of the /CharStrings dictionary:
+
+ /CharStrings 118 dict def
+ Private begin
+ CharStrings begin
+
+ * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix arguments
+ to call of tt_sbit_decoder_load_bitmap.
+
+2005-04-13 Werner Lemberg <wl@gnu.org>
+
+ * docs/TODO: Updated.
+
+ * autogen.sh: Use `--force' for all commands.
+
+2005-04-09 Werner Lemberg <wl@gnu.org>
+
+ * src/pshinter/pshalgo.c (ps_hints_apply): Change scaling values
+ only if `fitted' is not zero.
+
+2005-04-06 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttgload.c (tt_face_get_metrics) [FT_OPTIMIZE_MEMORY]:
+ Fix typo which sometimes causes wrong metrics for the last glyph.
+
+2005-04-04 David Turner <david@freetype.org>
+
+ * devel/ftoption.h, include/freetype/config/ftoption.h
+ (FT_OPTIMIZE_MEMORY): Comment out this macro for the upcoming 2.1.10
+ release.
+ (*_CHESTER_*): Removed. No longer used.
+
+ * src/autofit/afhints.c (af_axis_hints_new_segment,
+ af_axis_hints_new_edge): Small tweak to use less heap memory.
+
+2005-04-03 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1parse.c (T1_New_Parser): Relax the check for a valid
+ first line in the font.
+
+2005-04-03 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES, include/freetype/freetype.h: Improve documentation
+ of FT_Set_Pixel_Sizes and FT_Set_Char_Size.
+
+2005-03-26 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ * builds/amiga/src/base/ftsystem.c (ft_amiga_stream_io): Fix buffer
+ offsets after a large read.
+
+2005-03-26 Werner Lemberg <wl@gnu.org>
+
+ * src/autofit/afglobal.c (af_face_globals_get_metrics):
+ s/index/gidx/.
+
+ * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix compiler
+ warnings.
+
+ * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
+
+ * src/sfnt/ttsbit0.h: Dummy file for build with `make'.
+
+2005-03-26 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ Update of the Amiga port.
+
+ * builds/amiga/makefile, builds/amiga/makefile.os4,
+ builds/amiga/smakefile: Included the base extension files
+ (ftbitmap.c, ftotval.c, ftpfr.c, ftstroke.c, ftxf86.c).
+
+2005-03-25 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ Update of the Amiga port.
+
+ * builds/amiga/makefile, builds/amiga/smakefile: Handle new modules.
+
+ * builds/amiga/makefile.os4: Makefile for AmigaOS4 SDK.
+
+ * builds/amiga/README: Updated.
+
+ * builds/amiga/include/freetype/config/ftconfig.h: Handle gcc for
+ AmigaOS4.
+
+ * builds/amiga/include/freetype/config/ftmodule.h: Handle new
+ modules.
+
+ * builds/amiga/src/base/ftdebug.c: Updated to current version of
+ default ftdebug.c.
+ Add various include files and macros to have proper support for
+ both AmigaOS4 and older AmigaOS versions.
+ Don't declare KVPrintF explicitly.
+ Replace getenv with GetVar.
+ Actually enable debugging code.
+
+ * builds/amiga/src/base/ftsystem.c: Major rewrite.
+
+2005-03-23 Werner Lemberg <wl@gnu.org>
+
+ * tests/*: Removed.
+
+2005-03-23 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES, docs/INSTALL.ANY: Updated.
+
+ * include/freetype/ftmoderr.h: Replace `Autohint' with `Autofit'.
+ Add `OTvalid'.
+
+ * src/autofit/aferrors.h: New file.
+
+ * src/autofit/afglobal.c, src/autofit/afhints.c,
+ src/autofit/aflatin.c, src/autofit/afloader.c: s/FT_Err_/AF_Err_/.
+ Include aferrors.h.
+
+ * src/autofit/rules.mk (AUTOF_DRV_H): Include aferrors.h.
+
+ * src/otvalid/otverror.h: s/FT_Mod_Err_OTV/FT_Mod_Err_OTvalid/.
+
+2005-03-22 David Turner <david@freetype.org>
+
+ * src/autohint/*: Removed.
+ * Jamfile: Updated.
+
+2005-03-15 David Turner <david@freetype.org>
+
+ * src/bdf/bdflib.c: Remove compiler warnings.
+ (hash_rehash, hash_init): Don't call FT_MEM_ZERO.
+ (_bdf_list_t): Add `memory' field.
+ (_bdf_list_init, _bdf_list_done, _bdf_list_ensure): New functions.
+ (_bdf_shift, _bdf_join): Rename to...
+ (_bdf_list_shift, _bdf_list_join): This.
+ (_bdf_split): Renamed to...
+ (_bdf_list_split): This. Use new functions.
+ (bdf_internal_readstream): Removed.
+ (NO_SKIP): New macro.
+ (_bdf_readstream): Rewritten.
+ (bdf_create_property, _bdf_add_comment): Improve allocation.
+ (_bdf_set_default_spacing, _bdf_parse_glyphs): Updated. Improve
+ allocation.
+ (_bdf_parse_properties, _bdf_parse_start): Updated.
+ (bdf_load_font): Updated to use new functions.
+
+ * src/type1/t1parse.c (check_type1_format): New function.
+ (T1_New_Parser): Use it to check font header before allocating
+ anything on the heap.
+
+ * src/type42/t42parse.c (t42_parser_init): Modify functions to check
+ the font header before allocating anything on the heap.
+
+ * include/freetype/internal/ftmemory.h (FT_ARRAY_MAX,
+ FT_ARRAY_CHECK): New macros.
+
+ * src/base/ftstream.c (FT_Stream_TryRead): New function.
+ * include/freetype/internal/ftstream.h: Updated.
+
+ * src/pcf/pcfread.c (pcf_read_TOC), src/pcf/pcfutil.c
+ (BitOrderInvert, TwoByteSwap, FourByteSwap): Minor fixes and
+ simplifications. Try to protect the PCF driver from doing stupid
+ things with broken fonts.
+
+ * src/lzw/ftlzw.c (FT_Stream_OpenLZW): Check the LZW header before
+ doing anything else. This avoids unnecessary heap allocations
+ (400KByte of heap memory for the LZW decoder).
+
+ * src/gzip/ftgzip.c (FT_Stream_OpenGZip): Ditto for the gzip
+ decoder, although the code savings are smaller.
+
+ * docs/CHANGES: Updated.
+
+2005-03-10 David Turner <david@freetype.org>
+
+ * src/tools/glnames.py: Add comment to explain the compression
+ being used for the Adobe Glyph List.
+
+2005-03-10 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttpload.c (tt_face_load_cvt, tt_face_load_fpgm):
+ Fix serious typo which prevented correct TT rendering.
+
+ * include/freetype/internal/ftmemory.h: Undo change from 2005-03-03.
+ To suppress warnings it is sufficient to use `-fno-strict-aliasing'.
+
+2005-03-10 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/glnames.py: Formatted.
+ Format output to be in sync with other FreeType code.
+ Import `re' and `os.path'.
+ (StringTable) <__init__>: Add parameter to initialize master table
+ name.
+ (StringTable) <dump>: Don't pass master table name.
+ (StringTable) <dump_sublist>: Emit explanatory comment.
+ Simplify and make output more human readable.
+ (t1_bias, glyph_list, adobe_glyph_names): Removed. Unused.
+ (main): Use `basename' for file name in header.
+
+ * src/psnames/pstables.h: Regenerated.
+
+2005-03-09 David Turner <david@freetype.org>
+
+ * src/tools/glnames.py: Rewrite the generator for the `pstables.h'
+ header file which contains various constant tables related to glyph
+ names. It now uses a different, more compact storage scheme that
+ saves about 20KB. This also closes Savannah bug #12262.
+
+ * src/psnames/pstables.h: Regenerated.
+
+ * src/psnames/psmodule.c (ps_unicode_value): Use
+ `ft_get_adobe_glyph_index', a new function defined in `pstables.h'.
+ (ps_get_macintosh_name, ps_get_standard_strings): Updated.
+
+ * src/base/ftobjs.c (FT_Set_Char_Sizes): Handle fractional sizes
+ more carefully. This fixes Savannah bug #12263.
+
+2005-03-06 David Turner <david@freetype.org>
+
+ * src/otvalid/otvgsub.c, src/otvalid/otvgpos.c: Make static tables
+ constant.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init): Fix Savannah bug
+ #12212 (auto-hinter refuses to work if no Unicode charmap in font).
+
+2005-03-05 Werner Lemberg <wl@gnu.org>
+
+ * autogen.sh: New script for bootstrapping.
+
+ * README.CVS: New file which documents bootstrapping.
+
+ * builds/unix/aclocal.m4, builds/unix/config.guess,
+ builds/unix/config.sub, builds/unix/configure,
+ builds/unix/ltmain.sh: Removed.
+
+2005-03-04 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftutil.c: Include FT_INTERNAL_OBJECTS_H.
+
+2005-03-03 Werner Lemberg <wl@gnu.org>
+
+ Various fixes for C and C++ compiling.
+
+ * src/autofit/*: Add copyright messages.
+
+ * src/autofit/afhints.c (af_glyph_hints_done): Don't use
+ `AF_Dimension' but `int' for loop counter.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_widths): Don't use
+ `AF_Dimension' but `int' for loop counter.
+ Use proper enumeration value for `render_mode'.
+ (af_latin_metrics_scale_dim): Don't shadow variables.
+ (af_latin_hints_compute_segments): Use proper cast for `major_dir'
+ and `segment_dir'.
+ (af_latin_align_linked_edge, af_latin_hint_edges): Fix arguments of call to
+ `af_latin_compute_stem_width'.
+ (af_latin_hints_apply): Don't use `AF_Dimension' but `int' for loop
+ counter.
+
+ * src/base/ftdbgmem.c (ft_mem_table_get_source, FT_DumpMemory): Use
+ proper cast for memory allocation.
+
+ * src/cff/cffdrivr.c (cff_get_kerning): Use proper cast for
+ initialization of `sfnt'.
+
+ * src/sfnt/sfdriver.c: Include `ttkern.h'.
+
+ * src/sfnt/ttkern.c (tt_face_get_kerning): Don't shadow variables.
+
+ * src/truetype/ttgload.c: Include `ttpload.h'.
+
+2005-03-03 David Turner <david@freetype.org>
+
+ * include/freetype/internal/ftmemory.h (FT_ALLOC, FT_REALLOC,
+ FT_QALLOC, FT_QREALLOC) [gcc >= 3.3]: Provide macro versions which
+ avoid compiler warnings.
+ (FT_NEW, FT_NEW_ARRAY, FT_RENEW_ARRAY, FT_QNEW, FT_QNEW_ARRAY,
+ FT_QRENEW_ARRAY, FT_ALLOC_ARRAY, FT_REALLOC_ARRAY): Updated.
+
+ * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
+ FT_FACE_FIND_GLOBAL_SERVICE, FT_FACE_LOOKUP_SERVICE) [__cplusplus]:
+ Provide macro versions which avoid compiler warnings.
+
+ * src/base/ftutil.c (ft_highpow2): New utility function.
+
+ * include/freetype/internal/ftobjs.h: Updated.
+
+ * src/pfr/pfrload.c (pfr_get_gindex, pfr_compare_kern_pairs,
+ pfr_sort_kerning_pairs): Don't define if FT_OPTIMIZE_MEMORY is set.
+ (pfr_phy_font_done): Don't handle `kern_pairs' if FT_OPTIMIZE_MEMORY
+ is set.
+ (pfr_phy_font_load): Don't call `pfr_sort_kerning_pairs' if
+ FT_OPTIMIZE_MEMORY is set.
+
+ * src/pfr/pfrobjs.c (pfr_slot_load): Comment out some code which
+ doesn't work with broken fonts.
+ (pfr_face_get_kerning) [FT_OPTIMIZE_MEMORY]: Implement.
+
+ * src/pfr/pfrtypes.h (PFR_KernItemRec): Optimize member types.
+ (PFR_NEXT_KPAIR): New macro.
+ (PFR_PhyFontRec): Don't define `kern_pairs' if FT_OPTIMIZE_MEMORY is
+ set.
+
+ * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Introduce
+ temporary variable to avoid gcc warning.
+ (tt_face_load_sbit_image): Mark unused variables with FT_UNUSED.
+
+ * src/truetype/ttpload.c (tt_face_load_loca) [FT_OPTIMIZE_MEMORY]:
+ Remove redundant variable.
+
+ * include/freetype/config/ftmodule.h: Moving the order of drivers to
+ speed up font loading. The PCF and BDF loaders are still slow and
+ consume far too much memory.
+
+2005-03-03 Werner Lemberg <wl@gnu.org>
+
+ * devel/ftoption.h: Updated to recent changes.
+
+2005-03-02 Werner Lemberg <wl@gnu.org>
+
+ * src/autofit/afdummy.c, src/autofit/afdummy.h
+ (af_dummy_script_class): Fix type.
+
+ * src/autofit/aflatin.c, src/autofit/aflatin.h
+ (af_latin_script_class): Fix type.
+
+ * src/autofit/rules.mk (AUTOF_DRV_SRC): Fix typo.
+
+2005-03-01 David Turner <david@freetype.org>
+
+ * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning),
+ src/sfnt/ttsbit0.c (tt_face_load_sbit_strikes,
+ tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_compound,
+ tt_sbit_decoder_load_image), src/sfnt/ttload.c
+ (tt_face_load_metrics): Remove compiler warnings
+ -- redundant variables, missing initializations, etc.
+
+ * src/sfnt/ttsbit.h: Handle FT_OPTIMIZE_MEMORY.
+
+ * src/autofit/rules.mk, src/autofit/module.mk,
+ src/autofit/afangles.h: New files.
+
+ * src/autofit/afhints.c (af_axis_hints_new_segment,
+ af_axis_hints_new_edge): New functions.
+ (af_glyph_hints_done): Do proper deallocation.
+ (af_glyph_hints_reload): Only reallocate points array. This
+ drastically reduces heap usage.
+
+ * src/autofit/afhints.h (AF_PointRec, AF_SegmentRec): Optimize
+ member types and positions.
+ (AF_AxisHintsRec): Add `max_segments' and `max_edges'.
+ (af_axis_hints_new_segment, af_axis_hints_new_edge): New prototypes.
+
+ * src/autofit/aflatin.c (af_latin_metricsc_scale): Don't call
+ AF_SCALER_EQUAL_SCALES.
+ (af_latin_hints_compute_segments): Change return type to FT_Error.
+ Update all callers.
+ Improve segment allocation.
+ (af_latin_hints_compute_edges): Change return type to FT_Error.
+ Update all callers.
+ Improve edge allocation and link handling.
+ (af_latin_hints_detect_features): Change return type to FT_Error.
+ Update all callers.
+
+ * src/autofit/aflatin.h: Updated.
+
+ * src/autofit/afloader.c (af_loader_load_g)
+ <FT_GLYPH_FORMAT_OUTLINE>: Assure axis->num_edges > 1. This fixes
+ a bug with certain fonts.
+
+ * include/freetype/config/ftmodule.h: The auto-fitter is now the
+ only supported auto-hinting module.
+
+ * include/freetype/config/ftstdlib.h (FT_INT_MAX): New macro.
+
+2005-02-28 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttpload.c (tt_face_load_loca): Fix typo.
+
+ * src/sfnt/ttkern.c: Include `ttkern.h'.
+ (FT_COMPONENT): Updated.
+
+ * include/freetype/internal/fttrace.h: Add entry for `ttkern'.
+
+ * src/sfnt/ttsbit0.c: s/FT_Err_/SFNT_Err_/.
+ Decorate constants with `U' and `L' where necessary.
+
+ * src/sfnt/ttcmap.c (tt_cmap4_next): Remove unused variable.
+
+2005-02-28 David Turner <david@freetype.org>
+
+ * src/base/ftdbgmem.c (FT_DumpMemory): Added sorting of memory
+ sources according to decreasing maximum cumulative allocations.
+ (ft_mem_source_compare): New auxiliary function.
+
+ * src/sfnt/ttsbit0.c: New file, implementing a heap-optimized
+ embedded bitmap loader.
+
+ * src/sfnt/ttsbit.c: Include `ft2build.h', FT_INTERNAL_DEBUG_H,
+ FT_INTERNAL_STREAM_H, FT_TRUETYPE_TAGS_H.
+ Load `ttsbit0.c' if FT_OPTIMIZE_MEMORY is set, otherwise use
+ file contents.
+ (tt_face_load_sbit_strikes): Set up root fields to indicate the
+ strikes. This fixes Savannah bug #12107.
+ Use `static' keyword for `sbit_line_metrics_field',
+ `strike_start_fields', `strike_end_fields'.
+
+ * include/freetype/internal/tttypes.h (TT_FaceRec): Define
+ `sbit_table', `sbit_table_size', `sbit_num_strikes' if
+ FT_OPTIMIZE_MEMORY is set.
+ Don't define `num_sbit_strikes' and `sbit_strikes' if
+ FT_OPTIMIZE_MEMORY is set.
+
+ * src/cff/cffobjs.c (sbit_size_reset): Handle FT_OPTIMIZE_MEMORY.
+
+ * src/sfnt/sfobjs.c (sfnt_load_face): Fixed bug that prevented
+ loading SFNT fonts without a `kern' table.
+ Properly pass root->face_flags.
+ Remove code for TT_CONFIG_OPTION_EMBEDDED_BITMAPS.
+
+ * src/sfnt/sfdriver.c (sfnt_interface)
+ [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Don't use `tt_find_sbit_image'
+ and `tt_load_sbit_metrics'.
+
+ * src/sfnt/ttcmap.c: Optimize linear charmap scanning for Format 4.
+ (OPT_CMAP4): New macro.
+ (TT_CMap4Rec) [OPT_CMAP4]: New structure.
+ (tt_cmap4_init, tt_cmap4_set_range, tt_cmap4_next, tt_cmap4_reset)
+ [OPT_CMAP4]: New functions.
+ (tt_cmap4_char_next) [OPT_CMAP4]: Use `tt_cmap4_next' and
+ `tt_cmap4_reset'.
+ (tt_cmap4_class_rec) [OPT_CMAP4]: Use `TT_CMap4Rec' and
+ `tt_cmap4_init'.
+
+ * src/truetype/ttobjs.c (Reset_SBit_Size): Handle
+ FT_OPTIMIZE_MEMORY.
+
+ * src/autofit/afhints.h (AF_PointRec, AF_SegmentRec, AF_EdgeRec):
+ Optimize member types.
+
+ * src/autofit/afloader.c (af_loader_done): Call
+ `af_glyph_hints_done'.
+
+2005-02-27 David Turner <david@freetype.org>
+
+ * src/sfnt/ttkern.c (tt_face_load_kern): Fix a small bug which
+ caused invalid (random) return values for the horizontal kerning.
+
+2005-02-25 David Turner <david@freetype.org>
+
+ Implement several memory optimizations to drastically reduce the
+ heap usage of FreeType, especially in the case of memory-mapped
+ files. The idea is to avoid loading and decoding tables in the
+ heap, and instead access the raw data whenever possible (i.e., when
+ it doesn't compromise performance).
+
+ This has several benefits: For example, opening vera.ttf now uses
+ just a small amount of memory (even when the FT_Library footprint is
+ accounted for), until you start loading glyphs. Even then, you save
+ at least 20KB compared to the non-optimized case. Performance of
+ various operations, including open and close, has also been
+ dramatically improved.
+
+ More optimizations to come, especially for the auto-hinter.
+
+ * include/freetype/internal/sfnt.h (TT_Face_GetKerningFunc): New
+ function type.
+ (SFNT_Interface): Add it.
+
+ * include/freetype/internal/tttypes.h (TT_HdmxEntryRec, TT_HdmxRec,
+ TT_Kern0_PairRec): Don't define if FT_OPTIMIZE_MEMORY is set.
+ (TT_FaceRec): Define `horz_metrics', `horz_metrics_size',
+ `vert_metrics', `vert_metrics_size', `hdmx_table',
+ `hdmx_table_size', `hdmx_record_count', `hdmx_record_size',
+ `hdmx_record_sizes', `kern_table', `kern_table_size,
+ `num_kern_tables', `kern_avail_bits', `kern_order_bits' if
+ FT_OPTIMIZE_MEMORY is set.
+ Don't define `hdmx', `num_kern_pairs', `kern_table_index',
+ `kern_pairs' if FT_OPTIMIZE_MEMORY is set.
+
+ * src/base/ftdbgmem.c (ft_mem_table_set): Don't shadow variable.
+ Fix compiler warning.
+
+ * src/cff/cffdrivr.c (Get_Kerning): Renamed to...
+ (cff_get_kerning): This. Simplify.
+ (cff_driver_class): Updated.
+
+ * src/sfnt/Jamfile (_sources): Add `ttkern'.
+ * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `ttkern.c'.
+
+ * src/sfnt/sfdriver.c (sfnt_interface): Add `tt_face_get_kerning'.
+
+ * src/sfnt/sfnt.c: Include `ttkern.c'.
+
+ * src/sfnt/sfobjs.c: Include `ttkern.h'.
+ (sfnt_load_face): Consider the `kern' and `gasp' table as optional.
+ (sfnt_done_face): Call `tt_face_done_kern'.
+ Handle horizontal metrics for FT_OPTIMIZE_MEMORY.
+
+ * src/sfnt/ttkern.c, src/sfnt/ttkern.h: New files. Code has been
+ taken from `ttload.c' and `ttload.h'.
+ Provide special versions of `tt_face_load_kern',
+ `tt_face_get_kerning', and `tt_face_done_kern' for
+ FT_OPTIMIZE_MEMORY.
+
+ * src/sfnt/ttload.c (tt_face_load_metrics, tt_face_load_hdmx,
+ tt_face_free_hdmx): Provide version for FT_OPTIMIZE_MEMORY.
+ (tt_face_load_kern, tt_kern_pair_compare, TT_KERN_INDEX): Moved to
+ `ttkern.c'.
+
+ * src/sfnt/ttload.h: Updated.
+
+ * src/sfnt/ttsbit.c (sbit_metrics_field): Add `static' keyword.
+
+ * src/truetype/ttdriver.c (Get_Kerning): Renamed to...
+ (tt_get_kerning): This. Simplify.
+ (tt_driver_class): Updated.
+
+ * src/truetype/ttgload.c (TT_Get_Metrics): Renamed to...
+ (tt_face_get_metrics): This. Provide version for FT_OPTIMIZE_MEMORY.
+ Update all callers.
+ (Get_Advance_Widths): Replaced with...
+ (Get_Advance_WidthPtr): This. Provide version for
+ FT_OPTIMIZE_MEMORY.
+ Update all callers.
+
+ * src/truetype/ttgload.h: Updated.
+
+2005-02-22 David Turner <david@freetype.org>
+
+ * src/base/ftdbgmem.c: Partly rewritten. Added the ability to list
+ all allocation sites in the memory debugger. Also a new function
+ FT_DumpMemory() was added. It is only available in builds with
+ FT_DEBUG_MEMORY defined, and you must declare it in your own code to
+ use it, i.e., with something like:
+
+ extern void FT_DumpMemory( FT_Memory );
+
+ ...
+
+ FT_DumpMemory( memory );
+
+ * include/freetype/config/ftoption.h
+ (TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Comment out definition --
+ again.
+ (FT_OPTIMIZE_MEMORY): New configuration macro to control various
+ optimizations for reducing the heap footprint of memory-mapped
+ TrueType files.
+
+ * include/freetype/internal/ftmemory.h (FT_ARRAY_ZERO): New
+ convenience macro.
+
+ * include/freetype/internal/tttypes.h (TT_FaceRec)
+ [FT_OPTIMIZE_MEMORY]: Use optimized types for `num_locations' and
+ `glyph_locations'.
+
+ * src/truetype/ttgload.c (load_truetype_glyph): Call
+ `tt_face_get_location'.
+
+ * src/truetype/ttobjs.c (tt_face_init)
+ [FT_CONFIG_OPTION_INCREMENTAL]: Improve error handling.
+ (tt_face_done): Call `tt_face_done_loca'.
+
+ * src/truetype/ttpload.c (tt_face_get_location, tt_face_done_loca):
+ New functions. If FT_OPTIMIZE_MEMORY is set, the locations table is
+ read directly from memory-mapped streams, instead of being decoded
+ into the heap.
+ (tt_face_load_loca) [FT_OPTIMIZE_MEMORY]: New implementation.
+ (tt_face_load_cvt, tt_face_load_fpgm): Only load table if the
+ bytecode interpreter is compiled in.
+
+ * src/truetype/ttpload.h: Updated.
+
+ * src/autohint/ahglyph.c (ah_outline_load): Improve allocation
+ logic.
+
+2005-02-20 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
+ --copy' from libtool 1.5.14.
+ * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
+ automake 1.9.4.
+
+ * builds/unix/config.guess, builds/unix/config.sub: Updated from
+ `config' CVS module at subversions.gnu.org.
+
+ * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
+ `texinfo' CVS module at subversions.gnu.org.
+
+2005-02-14 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffcmap.c (cff_cmap_unicode_init): Don't try to build
+ a cmap for a CID-keyed font which doesn't have SIDs.
+
+2005-02-13 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1load.c (read_binary_data): Return more meaningful
+ value.
+ (parse_encoding, parse_subrs, parse_charstrings, parse_dict): Check
+ parser error value after call to T1_Skip_PS_Token (where necessary).
+
+ * src/type1/t1parse.c (T1_Get_Private_Dict): Check parser error
+ value after call to T1_Skip_PS_Token.
+
+ * src/cid/cidparse.c (cid_parser_new): Check parser error value
+ after call to cid_parser_skip_PS_token.
+
+ * src/type42/t42parse.c (t42_parse_encoding, t42_parse_sfnts,
+ t42_parse_charstrings, t42_parse_dict): Check parser error value
+ after call to T1_Skip_PS_Token (where necessary).
+
+ * src/psaux/psobjc.c (skip_string, ps_parser_skip_PS_token,
+ ps_tobytes): Add error messages.
+
+2005-02-12 Werner Lemberg <wl@gnu.org>
+
+ * configure: Output more variables to the created Makefile so that
+ it can be used for ft2demos also (if the FT2DEMOS variable is
+ defined).
+
+2005-02-10 David Turner <david@freetype.org>
+
+ * src/pfr/pfrgload.c (pfr_glyph_load): Fix an unbounded growing
+ dynamic array when loading a glyph from a PFR font (Savannah bug
+ #11921).
+
+ * src/base/ftbitmap.c (FT_Bitmap_Convert): Small improvements to the
+ conversion function (mainly stupid optimization).
+
+ * src/base/Jamfile: Adding ftbitmap.c to the list of compiled files.
+
+2005-02-10 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/freetype-config.in: Add new flag `--ftversion' to
+ return the FreeType version. Suggested by George Williams
+ <gww@silcom.com>.
+
+ * docs/CHANGES: Updated.
+
+2005-02-09 Werner Lemberg <wl@gnu.org>
+
+ * src/otvalid/otvmod.c (otv_validate): Deallocate arrays in case
+ of error. Reported by YAMANO-UCHI Hidetoshi <mer@din.or.jp>.
+
+2005-02-08 Werner Lemberg <wl@gnu.org>
+
+ * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
+ <op_closepath>: Accept `T1_Parse_Have_Moveto' state also which can
+ happen in empty glyphs. Reported by Ian Brown
+ <ian.brown@printsoft.de> (Savannah bug #11856).
+
+2005-02-04 Werner Lemberg <wl@gnu.org>
+
+ * src/otlayout/*: Removed. Obsolete.
+
+2004-12-28 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
+ --copy' from libtool 1.5.10.
+ * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
+ automake 1.9.4.
+ * builds/unix/configure: Regenerated with autoconf 2.59b.
+
+ * builds/unix/config.guess, builds/unix/config.sub: Updated from
+ `config' CVS module at subversions.gnu.org.
+
+ * builds/unix/install-sh: Updated from
+ `texinfo' CVS module at subversions.gnu.org.
+
+ * builds/unix/ftsystem.c (FT_Stream_Open): Add proper cast for
+ ft_alloc.
+ Fix compiler warning.
+
+2004-12-27 Dirck Blaskey <listtarget@danbala.com>
+
+ * src/cff/cffobjs.c (cff_face_init): Improve computation of
+ FT_STYLE_BOLD_FLAG.
+
+2004-12-27 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffobjs.c (cff_face_init): A CFF within an SFNT can have
+ only a single font. This is undocumented but has been verified on
+ the opentype list.
+
+2004-12-26 Werner Lemberg <wl@gnu.org>
+
+ * Jamfile (FT2_COMPONENTS): Add `otvalid'.
+
+2004-12-25 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftbitmap.c (FT_Bitmap_Convert): Fix compiler warning.
+
+2004-12-15 Werner Lemberg <wl@gnu.org>
+
+ * vms_make.com: Add ftbitmap.obj.
+
+2004-12-14 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftbitmap.c, include/freetype/ftbitmap.h: New files for
+ handling various bitmap formats.
+
+ * include/freetype/config/ftheader.h (FT_BITMAP_H): New macro.
+
+ * src/base/rules.mk (BASE_EXT_SRC): Add ftbitmap.c.
+
+ * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Don't convert bitmaps to 8bpp
+ but return them as-is.
+
+ * docs/CHANGES: Mention new bitmap API.
+ * include/freetype/ftchapter.s: Updated.
+
+2004-12-11 Robert Clark <freetype@ratty.org.uk>
+
+ * src/base/ftobjs.c (FT_Get_Kerning): Make kerning amount
+ dependent on ppem by scaling down for ppem < 25, then do normal
+ rounding. This gives slightly better results than rounding towards
+ zero.
+
+2004-12-09 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftobjs.c (FT_Get_Kerning): Always round towards zero
+ for FT_KERNING_DEFAULT. This greatly enhances the kerning for
+ small ppem values.
+
+2004-12-08 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftobjs.c (ft_glyphslot_clear): Reset `lsb_delta' and
+ `rsb_delta'.
+
+2004-12-05 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/install.mk (install): Use $(OBJ_BUILD) for ftconfig.h.
+
+2004-12-03 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
+
+ * include/freetype/ttnameid.h: Updated to latest
+ specifications from Microsoft.
+
+2004-11-26 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
+
+ * vms_make.com: Include ftbbox.c.
+ Fix `ccopt'.
+ Handle `otvalid' module.
+ Update `vmslib.dat' default values.
+ Fixes to `libs.opt'.
+
+2004-11-23 Anders Kaseorg <anders@kaseorg.com>
+
+ * src/base/ftoutln.c (FT_OrientationExtremumRec,
+ ft_orientation_extremum_compute): Removed.
+ (FT_Outline_Get_Orientation): Rewritten, simplified.
+
+ * src/autohint/ahglyph.c: Include FT_OUTLINE_H.
+ (ah_test_extremum, ah_get_orientation): Removed.
+ (ah_outline_load): Use FT_Outline_Get_Orientation.
+
+ * src/base/ftsynth.c (ft_test_extrama, ft_get_orientation): Removed.
+ (FT_GlyphSlot_Embolden): Use FT_Outline_Get_Orientation.
+
+2004-11-23 Fernando Papa <fpapa@netgate.com.uy>
+
+ * src/truetype/ttinterp.h: Fix typo.
+
+2004-11-22 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
+
+ * builds/win32/detect.mk: Corrected logic that detects Windows NT to
+ use the previous change even if win32 is forced. Corrected
+ detection of win32 on Win9X.
+
+ * builds/dos/detect.mk: Added same correction as for win32 about
+ COPY on Windows NT. Detection of plain DOS 7.x.
+
+2004-11-22 Werner Lemberg <wl@gnu.org>
+
+ * builds/detect.mk: Undo change from 2004-11-20.
+ * builds/win32/detect.mk: If the `OS' environment variable contains
+ `Windows_NT', use `cmd.exe /c copy' for copying files.
+
+2004-11-20 Werner Lemberg <wl@gnu.org>
+
+ * builds/detect.mk (dos_setup): Use `cmd.exe' for copying
+ $(CONFIG_MK) to force lowercase file name under Windows.
+
+2004-11-19 Werner Lemberg <wl@gnu.org>
+
+ Fix a serious bug in the TT hinter.
+
+ * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Don't shift
+ points vertically before hinting.
+
+ * docs/CHANGES: Updated.
+
+ * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily,
+ FTC_GCache_Lookup): A new try to fix comparison with zero.
+
+2004-11-16 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/configure.ac: Add `-fno-strict-aliasing' if gcc is
+ used.
+ * builds/unix/configure: Regenerated.
+ * builds/unix/config.guess, builds/unix/config.sub: Updated from
+ `config' CVS module at subversions.gnu.org.
+
+2004-11-16 Dr. Martin P.J. Zinser <zinser@decus.de>
+
+ * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily,
+ FTC_GCache_Lookup): Fix comparison with zero.
+
+ * docs/INSTALL.VMS: Updated.
+
+ * vms_make.com: Updated. All `descrip.mms' files are now created
+ automatically.
+
+ * src/*/descrip.mms: Removed.
+
+2004-11-16 Owen Taylor <otaylor@redhat.com>
+
+ * builds/unix/freetype-config.in: Suppress -L$libdir for
+ /usr/lib64 as well as /usr/lib. (Reported by Dan Winship -
+ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=139199)
+
+2004-11-11 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffdrivr.c (cff_service_ps_info): Updated.
+ * src/cid/cidriver.c (cid_service_ps_info): Updated.
+ * src/type42/t42drivr.c (t42_ps_get_font_private): New function.
+ (t42_service_ps_info): Updated.
+
+ * src/type42/t42parse.c (t42_parse_dict): Remove compiler warning.
+
+2004-11-11 David Bevan <dbevan@emtex.com>
+
+ Add new function FT_Get_PS_Font_Private().
+
+ * include/freetype/internal/services/svpsinfo.h
+ (PS_GetFontPrivateFunc): New service function.
+
+ * include/freetype/t1tables.h, src/base/fttype1.c
+ (FT_Get_PS_Font_Private): New function.
+
+ * src/type1/t1driver.c (t1_ps_get_font_private): New function.
+ (t1_service_ps_info): Updated.
+
+2004-10-13 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/config/ftstdlib.h: Include `stddef.h'.
+ (ft_ptrdiff_t): Define.
+
+ * include/freetype/fttypes.h (FT_PtrDist): Use `ft_ptrdiff_t'.
+
+ * src/cid/cidload.c (cid_parse_dict), src/type1/t1load.c
+ (parse_dict): Fix compiler warning.
+
+2004-10-11 Joshua Neal <jneal@csdaily.com>
+
+ * src/sfnt/ttcmap.c (tt_face_build_cmaps): Check for pointer
+ overflow.
+
+ * src/sfnt/ttload.c (tt_face_load_hdmx): Protect against bad input.
+ Don't use FT_QNEW_ARRAY but FT_NEW_ARRAY to make deallocation work
+ in case of failure.
+
+ * src/sfnt/ttsbit.c (Load_SBit_Range): Check range intervals.
+ (tt_face_load_sbit_strikes): Allocate `strike_sbit_ranges' after
+ frame test.
+
+ * src/truetype/ttgload.c (TTLoad_Simple_Glyph): Add assertion for
+ `flag'.
+
+2004-10-09 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2004-10-09 Boris Letocha <b.letocha@cz.gmc.net>
+
+ Fix handling of NPUSHW if skipped in data stream.
+
+ * src/truetype/ttinterp.c (opcode_length): Set value for NPUSHW
+ to -2.
+ (SkipCode, TT_RunIns): Use opcode_length value for computation of
+ bytes to be skipped.
+
+2004-09-10 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
+
+ * vms_make.com: Updated.
+
+2004-09-09 Werner Lemberg <wl@gnu.org>
+
+ Adding OpenType validation module. The code is based on the
+ (unfinished) `otlayout' module but has been heavily modified to make
+ it much more compact.
+
+ * src/otvalid/*: New module.
+
+ * include/freetype/ftotval.h, src/base/ftotval.c,
+ include/freetype/internal/services/svotval.h: New files.
+
+ * include/freetype/config/ftmodule.h: Add otv_module_class.
+ * include/freetype/config/ftheader.h (FT_OPENTYPE_VALIDATE_H): New
+ macro.
+ * include/freetype/internal/ftserv.h
+ (FT_SERVICE_OPENTYPE_VALIDATE_H): New macro.
+ * include/freetype/internal/fttrace.h (otvmodule, otvcommon,
+ otvbase, otvgdef, otvgpos, otvgsub, otvjstf): New trace components.
+
+ * include/freetype/ftchapters.h: Updated.
+
+ * src/base/Jamfile (Library), src/base/descrip.mms (OBJS),
+ src/base/rules.mk (BASE_EXT_SRC): Updated.
+
+ * docs/CHANGES: Updated.
+
+2004-09-08 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/docmaker/sources.py (re_source_block_format2) <column>:
+ Use lookahead assertion to not match `*/'. This removes spurious
+ insertions of `/' in the HTML output.
+
+2004-09-07 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttgxvar.c (TT_Vary_Get_Glyph_Deltas): Fix call to
+ FT_NEW_ARRAY.
+
+2004-09-04 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/ftobjs.h: Don't include
+ FT_CONFIG_STANDARD_LIBRARY_H.
+ (FT_Validator, FT_ValidationLevel, FT_ValidatorRec, FT_VALIDATOR,
+ ft_validator_init, ft_validator_run, ft_validator_error, FT_INVALID,
+ FT_INVALID_TOO_SHORT, FT_INVALID_OFFSET, FT_INVALID_FORMAT,
+ FT_INVALID_GLYPH_ID, FT_INVALID_DATA): Move to...
+
+ * include/freetype/internal/ftvalid.h: New file.
+ Make FT_INVALID return module-specific error codes.
+
+ * include/freetype/internal/internal.h (FT_INTERNAL_VALIDATE_H): New
+ macro.
+
+ * include/freetype/fterrors.h: Undefine FT_ERR_PREFIX only if
+ FT_KEEP_ERR_PREFIX isn't defined.
+
+ * src/base/ftobjs.c: Include FT_INTERNAL_VALIDATE_H.
+
+ * src/sfnt/ttcmap.h: Don't include FT_INTERNAL_OBJECTS_H but
+ FT_INTERNAL_VALIDATE_H.
+
+ * src/sfnt/ttcmap.c: Don't include FT_INTERNAL_OBJECTS_H but
+ FT_INTERNAL_VALIDATE_H.
+ Include sferrors.h before FT_INTERNAL_VALIDATE_H.
+ s/FT_Err_Ok/SFNT_Err_Ok/.
+
+ * src/sfnt/sferrors.h: Define FT_KEEP_ERR_PREFIX.
+
+ * src/type1/t1afm.c: Include t1errors.h.
+
+2004-09-03 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftdebug.c (ft_debug_init): Highest debug level is 7,
+ not 6.
+ * docs/DEBUG: Updated.
+
+2004-08-30 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/tttags.h (TTAG_BASE, TTAG_GDEF, TTAG_GPOS,
+ TTAG_JSTF): New tags.
+
+ * include/freetype/fttypes.h (FT_Bytes, FT_Tag): New typedefs.
+ (FT_Int): Add `signed'.
+
+2004-08-29 Werner Lemberg <wl@gnu.org>
+
+ * src/otlayout/otlgpos.c (otl_gpos_subtable_validate): Add argument
+ to pass number of lookups.
+ Update all callers.
+ Don't call otl_lookup_list_validate but otl_lookup_validate.
+ (otl_gpos_validate): Call otl_lookup_list_validate instead of
+ otl_gpos_subtable_validate.
+
+ * src/otlayout/otlgpos.h: Updated.
+
+ * src/otlayout/otljstf.c (otl_jstf_max_validate): Add argument to
+ pass number of lookups.
+ Update all callers.
+
+
+ * src/cff/cffparse.c (cff_parse_real): s/exp/exponent/ to avoid
+ compiler warning.
+
+
+ * src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h: Renamed to...
+ * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: This.
+ * src/sfnt/Jamfile, src/sfnt/rules.mk, src/sfnt/sfdriver.c,
+ src/sfnt/sfnt.c, src/sfnt/sfobjs.c: Updated.
+
+
+ * builds/compiler/gcc-dev.mk (CFLAGS): Don't add `-Wnested-externs'
+ if compiler is g++ (v3.3.3 emits a warning otherwise).
+
+2004-08-28 Werner Lemberg <wl@gnu.org>
+
+ * src/otlayout/otlgpos.c (otl_value_length): Return number of bytes,
+ not number of 16bit entities.
+ (otl_gpos_lookup2_validate): Check class definition tables for
+ format 2.
+ Fix loop for format 2.
+ (otl_liga_mark2_validate): Fix offset for otl_anchor_validate.
+
+2004-08-27 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftmac.c: Don't include truetype/ttobjs.h.
+ Don't include type1/t1objs.h.
+ (FT_New_Face_From_FSSpec) [!__MWERKS__]: Remove compiler warnings.
+
+2004-08-27 Mathieu Malaterre <mathieu@malaterre.com>
+
+ * src/base/ftmac.c: Handle OS_INLINE for xlc compiler also.
+
+2004-08-27 Werner Lemberg <wl@gnu.org>
+
+ * src/otlayout/otlayout.h: Add copyright.
+ (OTL_INVALID_OFFSET): Removed.
+
+ * src/otlayout/otlgdef.h: Include otlayout.h.
+ Comment out inclusion of otltable.h.
+
+ * src/otlayout/otlgpos.c (otl_gpos_lookup4_validate): Fix call
+ to otl_base_array_validate.
+ (otl_liga_mark2_validate): Fix `for' loop.
+
+ * src/otlayout/otlgsub.c (otl_ligature_validate): Check `glyph_id',
+ not components array.
+
+ * src/otlcommn.c (otl_lookup_get_count, otl_feature_get_count):
+ Comment out.
+ (otl_lookup_list_get_count, otl_feature_list_get_count): Activate.
+ (otl_feature_list_validate, otl_gsubgpos_get_lookup_count):
+ s/otl_lookup_get_count/otl_lookup_list_get_count/.
+ (otl_script_list_validate):
+ s/otl_feature_get_count/otl_feature_list_get_count/.
+ (otl_script_validate): Call otl_lang_validate for default language.
+
+ * src/otlayout/otlcommn.h: Updated.
+
+2004-08-16 Werner Lemberg <wl@gnu.org>
+
+ * src/otlayout/otlgpos.c (otl_gpos_lookup1_validate,
+ otl_gpos_lookup2_validate, otl_gpos_lookup3_validate,
+ otl_gpos_lookup4_validate, otl_gpos_lookup5_validate,
+ otl_gpos_lookup6_validate, otl_gpos_lookup9_validate,
+ otl_gpos_validate): Update
+ function arguments.
+ (otl_gpos_lookup7_validate, otl_gpos_lookup8_validate): Update
+ function arguments.
+ Handle NULL offsets correctly.
+ Check sequence and lookup indices for format 3.
+ (otl_pos_rule_validate, otl_chain_pos_rule_validate): Add argument
+ to pass lookup count.
+ Check sequence and glyph indices.
+ (otl_gpos_subtable_validate): Update function arguments.
+ Update callers.
+
+ * src/otlayout/otlgpos.h: Updated.
+
+ * src/otlayout/otlgsub.c (otl_gsub_lookup1_validate,
+ otl_gsub_lookup3_validate, otl_gsub_lookup8_validate): Update
+ function arguments.
+ Add glyph index checks.
+ (otl_sequence_validate, otl_alternate_set_validate,
+ otl_ligature_validate): Add argument to pass glyph count.
+ Update callers.
+ Add glyph index check.
+ (otl_gsub_lookup2_validate, otl_gsub_lookup4_validate): Update
+ function arguments.
+ (otl_ligature_set_validate): Add argument to pass glyph count.
+ Update caller.
+ (otl_sub_class_rule_validate,
+ otl_sub_class_rule_set_validate): Removed.
+ (otl_sub_rule_validate, otl_chain_sub_rule_validate): Add argument
+ to pass lookup count.
+ Update callers.
+ Add lookup index check.
+ (otl_sub_rule_set_validate, otl_chain_sub_rule_set_validate): Add
+ argument to pass lookup count.
+ Update callers.
+ (otl_gsub_lookup5_validate): Update function arguments.
+ Handle NULL offsets correctly.
+ Don't call otl_sub_class_rule_set_validate but
+ otl_sub_rule_set_validate.
+ Check sequence and lookup indices for format 3.
+ (otl_gsub_lookup6_validate): Update function arguments.
+ Handle NULL offsets correctly.
+ Check sequence and lookup indices for format 3.
+ (otl_gsub_lookup7_validate, otl_gsub_validate): Update function
+ arguments.
+
+ * src/otlayout/otlgsub.h: Updated.
+
+ * src/otlayout/otlbase.c (otl_base_validate): Handle NULL offsets
+ correctly.
+
+ * src/otlayout/otlcommn.c (otl_class_definition_validate): Fix
+ compiler warning.
+ (otl_coverage_get_first, otl_coverage_get_last): New functions.
+ (otl_lookup_validate): Add arguments to pass lookup and glyph
+ counts.
+ Update callers.
+ (otl_lookup_list_validate): Add argument to pass glyph count.
+ Update callers.
+
+ * src/otlayout/otlcommn.h: Updated.
+
+ * src/otlayout/otljstf.c (otl_jstf_extender_validate,
+ otl_jstf_max_validate, otl_jstf_script_validate,
+ otl_jstf_priority_validate, otl_jstf_lang_validate): Add parameter
+ to validate glyph indices.
+ Update callers.
+ (otl_jstf_validate): Add parameter which specifies number of glyphs
+ in font.
+
+ * src/otlayout/otljstf.h: Updated.
+
+2004-08-15 Werner Lemberg <wl@gnu.org>
+
+ * src/otlayout/otlgpos.c (otl_liga_mark2_validate): Add parameter
+ to handle possible NULL values properly.
+ Update all callers.
+
+2004-08-15 Werner Lemberg <wl@gnu.org>
+
+ * src/otlayout/gpos.c: Rename counting variables to be more
+ meaningful.
+ Add copyright.
+ (otl_liga_attach_validate): Renamed to...
+ (otl_liga_mark2_validate): This.
+ Update all callers.
+ (otl_mark2_array_validate): Removed.
+ (otl_gpos_lookup6_validate): Call otl_liga_mark2_validate, not
+ otl_mark2_array_validate.
+ (otl_pos_class_set_validate, otl_pos_class_rule_validate): Removed.
+ (otl_gpos_lookup7_validate): Complete code for format 2.
+ (otl_chain_pos_class_rule_validate,
+ otl_chain_pos_class_set_validate): Removed.
+ (otl_gpos_lookup8_validate): Don't call
+ otl_chain_pos_class_set_validate but
+ otl_chain_pos_rule_set_validate.
+ Simplify some code.
+
+ * src/otlayout/otlgpos.h: Add copyright.
+
+2004-08-14 Werner Lemberg <wl@gnu.org>
+
+ * src/otlayout/otljstf.c (otl_jstf_gsub_mods_validate): Removed.
+ (otl_jstf_gpos_mods_validate): Renamed to...
+ (otl_jstf_gsubgpos_mods_validate): This.
+ Test whether lookup_count is zero.
+ (otl_jstf_priority_validate): Use otl_jstf_gsubgpos_mods_validate.
+ (otl_jstf_validate): Initialize gsub_lookup_count and
+ gpos_lookup_count if gsub or gpos is zero.
+
+ * src/otlayout/otlgsub.c: Rename counting variables to be more
+ meaningful.
+ Add copyright.
+ (otl_gsub_lookup1_validate): Simplify code.
+ (otl_gsub_lookup2_validate, otl_gsub_lookup3_validate,
+ otl_gsub_lookup4_validate, otl_gsub_lookup7_validate): Remove unused
+ variables.
+ (otl_gsub_lookup5_validate): Remove unused variable.
+ Fix call to otl_sub_rule_set_validate and
+ otl_sub_class_rule_set_validate.
+ (otl_chain_sub_class_rule_validate,
+ otl_chain_sub_class_set_validate): Removed.
+ (otl_gsub_lookup6_validate): Remove unused variable.
+ Fix call to otl_chain_sub_rule_set_validate.
+ (otl_gsub_lookup7_validate): Handle lookup type 8 also.
+ (otl_gsub_lookup8_validate: New function.
+ (otl_gsub_lookup1_apply, otl_gsub_lookup2_apply,
+ otl_gsub_lookup3_apply): Commented out.
+ (otl_gsub_validate_funcs): Add otl_gsub_lookup7_validate and
+ otl_gsub_lookup8_validate.
+ (otl_gsub_validate): Updated.
+
+ * src/otlayout/otlgsub.h: Add copyright.
+
+ * src/otlayout/otlcommn.c, src/otlayout/otlcommn.h
+ (otl_coverage_get_index): Comment out.
+
+2004-08-13 Werner Lemberg <wl@gnu.org>
+
+ * src/otlayout/otlcommn.c (otl_gsubgpos_get_lookup_count): New
+ function.
+ * src/otlayout/otlcommn.h: Updated.
+
+ * src/otlayout/otlbase.c: Rename counting variables to be more
+ meaningful.
+ Add copyright message.
+ * src/otlayout/otlbase.h: Add copyright message.
+
+ * src/otlayout/otlgdef.c: Rename counting variables to be more
+ meaningful.
+ Add copyright message.
+ Use OTL_CHECK everywhere.
+ (otl_caret_value_validate): Remove unused variable.
+ (otl_gdef_validate): All tables are optional.
+ * src/otlayout/otlgdef.h: Add copyright message.
+
+ * src/otlayout/otljstf.c: Rename counting variables to be more
+ meaningful.
+ Add copyright message.
+ (otl_jstf_gsub_mods_validate, otl_jstf_gpos_mods_validate): Add
+ parameter to pass lookup count.
+ Update all callers.
+ Check lookup array.
+ (otl_jstf_max_validate):
+ s/otl_gpos_subtable_check/otl_gpos_subtable_validate/.
+ (otl_jstf_priority_validate, otl_jstf_lang_validate,
+ otl_jstf_script_validate): Add two parameters to pass lookup counts.
+ Update all callers.
+ (otl_jstf_validate): Add two parameters to pass GPOS and GSUB
+ table offsets; use otl_gsubgpos_get_lookup_count to convert extract
+ lookup counts.
+ Fix typo.
+ * src/otlayout/otljstf.h: Updated.
+ Add copyright message.
+
+ * src/otlayout/otlgpos.c (otl_gpos_subtable_validate): New function.
+ (otl_gpos_validate): Use it.
+ * src/otlayout/otlgpos.h: Updated.
+
+2004-08-13 Werner Lemberg <wl@gnu.org>
+
+ * src/otlayout/otcommn.c: Use OTL_CHECK everywhere.
+ (otl_coverage_validate): Initialize `p',
+ s/count/num_glyphs/.
+ s/start_cover/start_coverage/.
+ (otl_coverage_get_index): Return OTL_Long, not OTL_Int.
+ Remove unused variables.
+ (otl_class_definition_validate): s/count/num_glyphs/.
+ Remove unused variables.
+ (otl_class_definition_get_value, otl_device_table_get_start,
+ otl_device_table_get_end, otl_device_table_get_delta,
+ otl_lookup_get_table, otl_lookup_list_get_count,
+ otl_lookup_list_get_lookup, otl_lookup_list_get_table,
+ otl_feature_get_lookups, otl_feature_list_get_count,
+ otl_feature_list_get_feature, otl_lang_get_count,
+ otl_lang_get_req_feature, otl_lang_get_features): Commented out
+ temporarily until we really need it.
+ (otl_lookup_validate): Removed.
+ (otl_lookup_table_validate): Renamed to ...
+ (otl_lookup_validate): This. Update callers.
+ (otl_lookup_list_validate): Remove already commented out definition
+ and move the other definition up.
+ (otl_feature_validate): Add parameter to pass number of lookups.
+ Update callers.
+ Check lookup indices.
+ (otl_feature_list_validate): Add parameter to pass lookup table.
+ Update callers.
+ (otl_lang_validate): Add parameter to pass number of features.
+ Update callers.
+ Handle req_feature and check feature indices.
+ (otl_script_validate): Add parameter to pass number of features.
+ Update callers.
+ (otl_script_list_validate): Add parameter to pass feature table.
+ Update callers.
+
+ * src/otlayout/otcommn.h: s/LOCALDEF/LOCAL/.
+ Comment out the same functions as in otcommn.c.
+ (otl_script_list_get_script): Removed.
+
+ * src/otlayout/otlgsub.c (otl_gsub_lookup1_apply): Change `index' to
+ type OTL_Long.
+ (otl_gsub_lookup2_apply, otl_gsub_lookup3_apply): Change `index' to
+ type OTL_Long.
+ Fix test.
+ (otl_gsub_validate): Fix order of validation.
+
+ * src/otlayout/otlgpos.c (otl_gpos_validate): Fix order of
+ validation.
+
+2004-08-12 Werner Lemberg <wl@gnu.org>
+
+ Make otlayout module compile (without actually working).
+
+ * src/otlayout/*: s/OTL_Valid/OTL_Validator/.
+ s/NULL/0/.
+
+ * src/otlayout/otlayout.h: Fix various typos.
+ (OTL_Bool): New typedef.
+ (OTL_Int, OTL_Long, OTL_Int16, OTL_Int32): Use `signed' keyword.
+ (OTL_Err_InvalidArgument): Removed.
+ (OTL_Err_InvalidData, OTL_Err_InvalidSize): New enum values.
+ (OTL_MAKE_TAG): Add missing parenthesis.
+ (OTL_INVALID_DATA): Use OTL_Err_InvalidData.
+ (OTL_INVALID_TOO_SHORT): Use OTL_Err_InvalidSize.
+ (OTL_INVALID_FORMAT, OTL_INVALID_OFFSET): New macros.
+
+ * src/otlayout/otlgpos.c: s/FT_/OTL_/.
+ s/OTL_Short/OTL_Int16/.
+ (otl_gpos_pairset_validate): Add return type.
+ (otl_base_array_validate): Fix call to otl_anchor_validate.
+ (otl_liga_array_validate): Fix call to otl_liga_attach_validate.
+ (otl_gpos_lookup5_validate): Fix typos.
+ (otl_gpos_lookup6_validate): Fix call to otl_mark2_array_validate.
+ (otl_gpos_lookup7_validate): Comment out unfinished code.
+ Fix typos.
+
+ * src/otlayout/otlgsub.c: Add forward declaration for
+ otl_gsub_validate_funcs.
+ (otl_gsub_lookup1_apply, otl_gsub_lookup2_apply,
+ otl_gsub_lookup3_apply): Fix call to otl_parser_check_property.
+ s/otl_coverage_lookup/otl_coverage_get_index/.
+ (otl_ligature_validate): Add missing variable declaration.
+ (otl_sub_rule_validate): Fix typo.
+ (otl_sub_class_rule_validate): Add missing variable declaration.
+ Fix typo.
+ (otl_gsub_lookup5_validate): Fix typo.
+ (otl_gsub_lookup6_validate): Fix call to
+ otl_chain_sub_class_set_validate.
+ (otl_gsub_validate_funcs): Don't use `const'.
+
+ * src/otlayout/otlcommn.c (otl_class_definition_get_value,
+ otl_device_table_validate, otl_device_table_get_delta,
+ otl_lookup_validate, otl_script_validate): Add missing
+ variable declarations.
+ (otl_lookup_list_validate): Comment out first definition.
+ (otl_lookup_list_foreach, otl_feature_list_foreach): Comment out.
+ (otl_feature_list_validate):
+ s/otl_feature_table_validate/otl_feature_validate/.
+ (otl_script_list_validate):
+ s/otl_script_table_validate/otl_script_validate/.
+
+ * src/otlayout/otlcommn.h: Comment out first declaration.
+ (otl_lookup_list_foreach, otl_feature_list_foreach): Comment out.
+
+ * src/otlayout/otlbase.c (otl_base_coord_validate): Fix call to
+ otl_device_table_validate.
+ (otl_base_script_validate): Add missing variable declarations.
+ (otl_base_script_list_validate): Fix call to
+ otl_base_script_validate.
+ (otl_axis_table_validate): Fix calls to otl_base_tag_list_validate
+ and otl_base_script_list_validate.
+ (otl_base_validate): Fix calls to otl_axis_table_validate.
+
+ * src/otlayout/otlgdef.c (otl_attach_list_validate): Fix call to
+ otl_attach_point_validate.
+ (otl_caret_value_validate): Add missing variable declaration.
+ Fix call to otl_device_table_validate.
+ (otl_ligature_glyph_validate): Fix call to otl_caret_value_validate.
+ (otl_ligature_caret_list_validate): Fix call to
+ otl_ligature_glyph_validate.
+ (otl_gdef_validate): Fix calls to otl_class_definition_validate,
+ otl_attach_list_validate, otl_ligature_caret_list_validate, and
+ otl_class_definition_validate.
+
+ * src/otlayout/otltable.h (otl_table_validate, otl_table_init,
+ otl_table_set_script): Comment out.
+
+ * src/otlayout/otlparse.h (OTL_ParserRec):
+ s/OTL_Alternate/OTL_GSUB_Alternate/.
+ (OTL_ParseError): Add OTL_Err_Parser_Memory and
+ OTL_Err_Parser_Internal.
+ (otl_parser_error): Fix typo.
+ (otl_parser_check_property): Remove third argument.
+
+ * src/otlayout/otlparse.c (otl_string_ensure):
+ s/OTL_Parse_Err_Memory/OTL_Err_Parser_Memory/.
+ (OTL_STRING_ENSURE, otl_parser_error, otl_parser_get_index,
+ otl_parser_replace_1, otl_parser_replace_n): Fix typos.
+ (OTL_PARSER_UNCOVERED): Removed.
+ (otl_parser_check_property): Remove third argument.
+
+ * src/otlayout/otljstf.c (otl_jstf_priority_validate): Add missing
+ variable declaration.
+
+ * src/otlayout/otlutils.h (OTL_MEM_REALLOC): Fix typo.
+
+2004-08-11 Danny <dannyboynow@yahoo.com>
+
+ * src/base/ftstream.c (FT_Stream_Close): Don't reset stream->close
+ to NULL. This allows custom close functions to delete the FT_STREAM
+ object.
+
+2004-08-11 Werner Lemberg <wl@gnu.org>
+
+ Add API to get information about SFNT tables.
+
+ * include/freetype/internal/services/svsfnt.h
+ (FT_SFNT_Table_Info_Func): New typedef.
+ (SFNT_Table): Add it.
+
+ * src/base/ftobjs (FT_Sfnt_Table_Info): New function.
+
+ * include/freetype/tttables.h: Updated.
+
+ * src/sfnt/sfdriver.c (sfnt_table_info): New function.
+ (sfnt_service_sfnt_table): Add it.
+
+ * docs/CHANGES: Updated.
+
+
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
+
+ * builds/unix/configure.ac (version_info): Set to 9:8:3.
+ * builds/unix/configure: Updated.
+
+ * builds/win32/visualc/index.html,
+ builds/win32/visualc/freetype.dsp,
+ builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
+
+ * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
+ s/2.1.9/2.1.10/.
+
+ * docs/CHANGES, docs/VERSION.DLL: Updated.
+
+2004-08-11 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ * src/base/ftrfork.c (FT_Raccess_Guess)
+ [!FT_CONFIG_OPTION_GUESSING_EMBEDDED_FORK]: Remove compiler
+ warnings.
+
+2004-08-06 Adam Piotrowski <st_intel@poczta.onet.pl>
+
+ * src/pfr/pfrload.c (pfr_sort_kerning_pairs): Single-byte
+ adjustments are unsigned, not signed.
+
+2004-08-05 David Turner <david@freetype.org>
+
+ `Activate' gray-scale specifing hinting within the TrueType
+ bytecode interpreter. This is an experimental feature which
+ should probably be made optional.
+
+ * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
+ load_truetype_glyph): Move the code to set the pedantic_hinting flag
+ to...
+ (TT_Load_Glyph): Here.
+ Set `grayscale' flag except for `FT_LOAD_TARGET_MONO'.
+
+ * src/truetyep/ttinterp.c (Ins_GETINFO): Return MS rasterizer
+ version 1.7.
+ Return rotation and stretching info only if glyph is rotated or
+ stretched, respectively.
+ Handle grayscale info.
+
+ * src/truetype/ttinterp.h (TT_ExecContextRec): Add `grayscale'
+ member.
+
+2004-08-02 George Williams <gww@silcom.com>
+
+ * src/base/ftobjs.c (FT_Attach_File): Initialize `open.stream'.
+
+2004-08-01 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2004-08-01 George Williams <gww@silcom.com>
+
+ FreeType now can read kerning values from PFM files.
+
+ * src/type1/t1afm.c (T1_Done_AFM): Renamed to...
+ (T1_Done_Metrics): This.
+ Update all callers.
+ (T1_Read_AFM): Make it static.
+ Don't enter and leave a frame.
+ (LITTLE_ENDIAN_USHORT, LITTLE_ENDIAN_UINT): New macros.
+ (T1_Read_PFM): New function.
+ (T1_Read_Metrics): New higher-level function to be used instead of
+ T1Read_AFM.
+ Update all callers.
+
+2004-07-31 Werner Lemberg <wl@gnu.org>
+
+ * src/pcf/pcfread (pcf_load_font), src/bdf/bdfdrivr.c
+ (BDF_Face_Init), src/truetype/ttgxvar (TT_Get_MM_Var,
+ tt_face_vary_cvt): Fix compiler warnings.
+
+2004-07-26 Søren Sandmann <sandmann@daimi.au.dk>
+
+ * src/pcf/pcfread.c (pcf_interpret_style): Always allocate memory for
+ face->style_name.
+ * src/pcf/pcfdrivr.c (PCF_Face_Done): Free `style_name'.
+
+2004-07-26 Darren J Longhorn <darren.longhorn@redcom.co.uk>
+
+ * include/freetype/config/ftconfig.h (FT_SIZEOF_LONG): Recognize
+ five-byte `long' (which is avoided then).
+
+2004-07-25 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ * src/pcf/pcfdrivr.c (PCF_Set_Pixel_Size): Compare heights, not
+ ppem values.
+ (PCF_Set_Point_Size): Don't call PCF_Set_Pixel_Size but provide own
+ code to compare ppem values.
+ * src/bdf/bdfdrivr.c (BDF_Set_Pixel_Size): Compare heights, not
+ ppem values.
+ (BDF_Set_Point_Size): Don't call BDF_Set_Pixel_Size but provide own
+ code to compare ppem values.
+
+2004-07-25 Kornfeld Eliyahu Peter <peter@e-kadmon.net>
+
+ * src/sfnt/sfobjs.c (sfnt_load_face): Handle
+ TT_NAME_ID_PREFERRED_FAMILY and TT_NAME_ID_PREFERRED_SUBFAMILY.
+
+2004-07-24 Derek B. Noonburg <derekn@foolabs.com>
+
+ * src/cff/cffload.c (cff_font_load): Always create inverse mapping.
+ Even if the charstring count is the same as the CID count, it is
+ still possible that the font uses a different CID -> GID mapping.
+
+2004-07-23 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttobjs.c (tt_face_init): Accept 0x00020000 format tag
+ found in some Arphic fonts made for Chinese version of Windows 3.1.
+
+2004-07-17 David Turner <david@freetype.org>
+
+ Fixed a dangling pointer bug in the cache code that happened in very
+ rare cases, i.e., when a new family object was destroyed by an
+ out-of-memory condition during a glyph node initialization. The
+ function FTC_Cache_Lookup would flush the cache and restart the
+ lookup with a bad pointer.
+
+ * include/freetype/cache/ftcglyph.h (FTC_FAMILY_TREE): New macro.
+ (FTC_GCACHE_LOOKUP_CMP): Use it.
+ Handle reference count in `num_nodes' correctly.
+
+ * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily): Use
+ FTC_FAMILY_FREE.
+ (FTC_GCache_Lookup): Handle reference count in `num_nodes' correctly.
+
+ * src/cache/ftcmanag.c (FTC_Manager_FlushN): Fixed a cache flushing
+ bug.
+
+ * src/truetype/ttinterp.c (Normalize): Fixed a bug that caused
+ long and unnecessary delays while normalizing huge vectors.
+
+2004-07-15 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+ * src/base/ftstroke.c (FT_Stroker_ParseOutline): Fix compiler
+ warning.
+
+2004-07-15 David Turner <david@freetype.org>
+
+ * src/base/ftstroke.c (FT_Stroker_ParseOutline): Single points
+ are not stroked, preventing a bug with pala.ttf and other
+ fonts.
+
+ * include/freetype/ftstroke.h: Updating documentation comments.
+
+2004-07-13 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftstroke.c (ft_stroke_border_reverse): Removed. Unused.
+
+2004-07-12 David Turner <david@freetype.org>
+
+ * src/base/ftstroke.c (ft_stroke_border_close): Add second parameter
+ to indicate reversion of points.
+ Update all callers.
+ (ft_stroke_border_reverse): Fix initialization of `point1' and
+ `tag1'.
+
+ * src/cache/ftcsbits.c (ftc_snode_load): Fixing advance computation
+ for transformed glyphs.
+
+2004-07-11 David Turner <david@freetype.org>
+
+ Fix bugs that prevented the stroker to correctly generate stroked
+ paths from closed paths, i.e., nearly all glyphs in vectorial fonts.
+
+ The code is still _very_ buggy though; treat with special care.
+
+ * src/base/ftstroke.c (FT_STROKE_TAG_BEGIN_END): New macro.
+ (ft_stroke_border_reverse): New function.
+ (ft_stroker_inside): Remove local variable `sigma'; use different
+ threshold.
+ (ft_stroker_add_reverse_left): Switch begin/end tags if necessary.
+ (FT_Stroker_EndSubPath): Call ft_stroker_inside and
+ ft_stroke_border_reverse.
+
+2004-06-26 Peter Kovar <peter.kovar@r3.roburnet.sk>
+
+ * src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
+
+2004-06-25 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1afm.c (afm_atoindex): Fix boundary test. Reported
+ by Dirck Blaskey.
+
+2004-06-24 David Turner <david@freetype.org>
+
+
+ * Version 2.1.9 released.
+ =========================
+
+
+ * src/truetype/ttgload.c, src/truetype/ttxgvar.c: Removing
+ compiler warnings.
+
+2004-06-23 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/ftmemory.h [FT_DEBUG_MEMORY]: Declare
+ FT_QAlloc_Debug and FT_QRealloc_Debug.
+
+ * src/base/ftutil.c (FT_QAlloc): Fix error and debug messages.
+ (FT_QRealloc): Call FT_QAlloc if original pointer is NULL.
+ Fix error message.
+
+2004-06-23 David Turner <david@freetype.org>
+
+ * include/freetype/internal/ftmemory.h, src/base/ftutil.c
+ (FT_QAlloc, FT_QRealloc), src/base/ftdbgmem.c (FT_QAlloc_Debug,
+ FT_QRealloc_Debug): New functions that perform allocation without
+ zero-ing out the corresponding blocks.
+
+ * include/freetype/internal/ftmemory.h (FT_MEM_QALLOC,
+ FT_MEM_QREALLOC, FT_MEM_QNEW, FT_MEM_QNEW_ARRAY,
+ FT_MEM_QRENEW_ARRAY, FT_QALLOC, FT_QREALLOC, FT_QNEW, FT_QNEW_ARRAY,
+ FT_QRENEW_ARRAY): New macros.
+
+ * src/base/ftstream.c (FT_Stream_EnterFrame): Use FT_QALLOC.
+ * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Use FT_QNEW_ARRAY.
+ * src/sfnt/sfobjs.c (tt_face_get_name): Use FT_QNEW_ARRAY.
+
+ * src/sfnt/ttload.c (tt_face_load_directory, tt_face_load_metrics,
+ tt_face_load_gasp): Use FT_QNEW_ARRAY.
+ (tt_face_load_kern): Use FT_QNEW_ARRAY.
+ Small optimization in the kerning table verifier; this speeds up
+ TrueType face opening by about 7%.
+ (tt_face_load_hdmx): Use FT_QNEW_ARRAY and FT_QALLOC.
+
+ * include/freetype/config/ftmodule.h: Changed the order of modules,
+ putting TrueType and Type 1 first. This dramatically improves the
+ performance of face open/close operations. For example, putting the
+ TrueType driver first in the list results in a 5x speedup when
+ opening `Vera.ttf'.
+
+ The very problem is that both the PCF and BDF drivers do a lot more
+ than necessary to detect that they cannot handle a font file.
+
+2004-06-22 Werner Lemberg <wl@gnu.org>
+
+ * src/pcf/pcfread.c (pcf_read_TOC, pcf_get_properties,
+ pcf_get_metrics, pcf_get_bitmaps, pcf_get_encodings): Improve
+ debugging messages.
+
+ * src/pcf/pcfdrivr.c (FT_COMPOMENT): Move up.
+ (PCF_Face_Init): Simplify code.
+
+ * src/bdf/bdfdrivr.h (BDF_FaceRec): New element `default_glyph'.
+
+ * src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_start),
+ src/bdf/bdf.h (bdf_font_t): s/default_glyph/default_char/.
+
+ * src/bdf/bdfdrivr.c (BDF_Face_Init): Fix number of glyphs.
+ Set `default_glyph'.
+ (BDF_Glyph_Load): Use `default_glyph' for undefined glyph.
+
+ * docs/CHANGES: Updated.
+
+2004-06-21 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2004-06-21 David Turner <david@freetype.org>
+
+ * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
+ load_truetype_glyph): Don't access (unrounded)
+ `TT_Size.root.metrics' but (rounded) `TT_Size.metrics'. This fixes
+ a scaling bug that caused incorrect rendering when the bytecode
+ interpreter was enabled.
+
+2004-06-14 Huw D M Davies <h.davies1@physics.ox.ac.uk>
+
+ * src/winfonts/winfnt.c (FNT_Face_Init): Set x_ppem and y_ppem
+ based on pixel_width and pixel_height.
+ (FNT_Size_Set_Pixels): Updated.
+
+2004-06-14 Werner Lemberg <wl@gnu.org>
+
+ * src/lzw/zopen.c: Comment out inclusion of signal.h and unistd.h.
+ Reported by Hyvärinen Jyrki Juhani.
+
+2004-06-11 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2004-06-10 David Turner <david@freetype.org>
+
+ * src/base/ftobject.c, src/base/fthash.c, src/base/ftexcept.c,
+ src/base/ftsysio.c, src/base/ftsysmem.c, src/base/ftlist.c: Removed.
+ Obsolete.
+
+ * src/raster/ftraster.c (Alignment, PAlignment): New union to fix
+ problems with 64bit systems.
+ (AlignProfileSize): Use it.
+
+2004-06-08 David Turner <david@freetype.org>
+
+ * include/freetype/freetype.h (FT_GlyphMetrics): Move `lsb_delta'
+ and `rsb_delta' elements to...
+ (FT_GlyphSlotRec): Here to retain binary compatibility with older
+ FreeType versions.
+ Update all users.
+
+ * src/sfnt/sfobjs.c (tt_face_get_name): Remove compiler warning.
+
+ * src/winfonts/winfnt.c (FNT_Load_Glyph): Add missing initialization
+ of slot->metrics.width and slot->metrics.height when loading a
+ Windows FNT glyph. Thanks to Huw Davies.
+
+ * include/freetype/cache/ftcmru.h (FTC_MruNode_CompareFunc): Change
+ return type to FT_Bool.
+
+ * src/cache/ftbasic.c (ftc_basic_family_compare): Change return
+ type to FT_Bool.
+
+ * src/cache/ftccache.c (FTC_Cache_Init, ftc_cache_init): Make
+ the former call the latter, not vice versa.
+ (FTC_Cache_Done, ftc_cache_done): Ditto.
+
+ * src/cache/ftcglyph.c (FTC_GNode_Compare, ftc_gnode_compare): Make
+ the former call the latter, not vice versa.
+ (FTC_GCache_Init, ftc_gcache_init): Ditto.
+ (FTC_GCache_Done, ftc_gcache_done): Ditto.
+
+ * src/cache/ftcimage.c (FTC_INode_Free, ftc_inode_free): Make the
+ former call the latter, not vice versa.
+ (FTC_INode_Weight, ftc_inode_weight): Ditto.
+
+ * src/cache/ftcmanag.c (ftc_size_node_compare,
+ ftc_size_node_compare_faceid, ftc_face_node_compare): Change return
+ type to FT_Bool.
+
+ * src/cache/ftcsbits.c (FTC_SNode_Free, ftc_snode_free): Make the
+ former call the latter, not vice versa.
+ (FTC_SNode_Weight, ftc_snode_weight): Ditto.
+ (FTC_SNode_Compare, ftc_snode_compare): Ditto.
+
+ * src/cache/ftcsbits.c: Fix some bugs and inefficiencies in the cache
+ sub-system.
+
+2004-06-05 Werner Lemberg <wl@gnu.org>
+
+ * src/autofit/afloader.c (af_loader_load_g): Set `lsb_delta' and
+ `rsb_delta' in slot->metrics and tune side bearings slightly.
+
+2004-06-04 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2004-06-04 David Chester <davidchester@gmx.net>
+
+ Improve inter-letter spacing for autohinted glyphs.
+
+ * include/freetype/freetype.h (FT_Glyph_Metrics): Add elements
+ `lsb_delta' and `rsb_delta'.
+
+ * src/autohint/ahhint.c (ah_hinter_load): Set `lsb_delta' and
+ `rsb_delta' in slot->metrics and tune side bearings slightly.
+
+2004-06-04 David Turner <david@freetype.org>
+
+ * src/autofit/*: Important fixes to the auto-fitter. The output
+ now seems to be 100% equivalent to the auto-hinter, while being
+ about 2% faster (which proves that script-specific algorithm
+ selection isn't a performance problem).
+
+ To test it, change `autohint' to `autofit' in
+ <freetype/config/ftmodule.h> and recompile.
+
+ A few more testing is needed before making this the official
+ auto-hinting module.
+
+2004-06-02 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttgload.c (compute_glyph_metrics): Fix compiler
+ warnings.
+
+2004-06-01 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfobjs.c (tt_face_get_name): Make sure that an English
+ name record for the Apple platform is preferred to a non-English
+ entry for the Microsoft platform. Problem reported by HANDA
+ Ken'ichi.
+
+2004-05-19 George Williams <gww@silcom.com>
+
+ * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): New
+ auxiliary functions.
+ (T1_Get_MM_Var): Provide axis tags.
+ Use mm_axis_unmap and mm_weights_unmap to provide default values
+ for design and normalized axis coordinates.
+
+ * include/freetype/t1tables.h (PS_DesignMapRec): Change type of
+ `design_points' to FT_Long.
+ Update all users.
+
+2004-05-17 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftbbox.c (BBox_Conic_Check): Fix boundary cases.
+ Reported by Mikey Anbary <manbary@vizrt.com>.
+
+2004-05-15 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfobjs.c (sfnt_done_face): Free face->postscript_name.
+
+2004-05-15 George Williams <gww@silcom.com>
+
+ * src/sfnt/ttload.c (tt_face_load_max_profile): Always set
+ face->root.num_glyphs.
+
+2004-05-14 Masatake YAMATO <jet@gyve.org>
+ George Williams <gww@silcom.com>
+
+ * src/sfnt/ttload.c (sfnt_dir_check): Handle `bhed' properly.
+
+2004-05-14 Werner Lemberg <wl@gnu.org>
+
+ * src/cache/ftcbasic.c (ftc_basic_family_compare,
+ ftc_basic_family_init, ftc_basic_family_get_count,
+ ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph,
+ ftc_basic_gnode_compare_faceid): Adjust parameters and return types
+ to prototypes given in header files from include/freetype/cache.
+ Use casts to proper types locally.
+ (ftc_basic_image_family_class, ftc_basic_image_cache_class,
+ ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class): Remove
+ casts.
+
+ * src/cache/ftccback.h: Adjust parameters and return types to
+ prototypes given in header files from include/freetype/cache.
+
+ * src/cache/ftcimage.c (ftc_inode_free, ftc_inode_new,
+ ftc_inode_weight): Adjust parameters and return types to prototypes
+ given in header files from include/freetype/cache. Use casts to
+ proper types locally.
+
+ * src/cache/ftcsbits.c (ftc_snode_free, ftc_snode_new,
+ ftc_snode_weight, ftc_snode_compare): Adjust parameters and return
+ types to prototypes given in header files from
+ include/freetype/cache. Use casts to proper types locally.
+
+ * src/cache/ftccmap.c (ftc_cmap_node_free, ftc_cmap_node_new,
+ ftc_cmap_node_weight, ftc_cmap_node_compare,
+ ftc_cmap_node_remove_faceid): Adjust parameters and return types to
+ prototypes given in header files from include/freetype/cache. Use
+ casts to proper types locally.
+ (ftc_cmap_cache_class): Remove casts.
+
+ * src/cache/ftcglyph.c (ftc_gnode_compare, ftc_gcache_init,
+ ftc_gcache_done): Adjust parameters and return types to prototypes
+ given in header files from include/freetype/cache. Use casts to
+ proper types locally.
+
+ * src/cache/ftcmanag.c (ftc_size_node_done, ftc_size_node_compare,
+ ftc_size_node_init, ftc_size_node_reset,
+ ftc_size_node_compare_faceid, ftc_face_node_init,
+ ftc_face_node_done, ftc_face_node_compare: Adjust parameters and
+ return types to prototypes given in header files from
+ include/freetype/cache. Use casts to proper types locally.
+
+ (ftc_size_list_class, ftc_face_list_class): Remove casts.
+
+2004-05-13 Werner Lemberg <wl@gnu.org>
+
+ * src/autohint/ahmodule.c (ft_autohinter_init, ft_autohinter_done):
+ Use FT_Module as parameter and do a cast to FT_AutoHinter locally.
+ (autohint_module_class): Remove casts.
+
+ * src/base/ftglyph.c (ft_bitmap_glyph_init, ft_bitmap_glyph_copy,
+ ft_bitmap_glyph_done, ft_bitmap_glyph_bbox, ft_outline_glyph_init,
+ ft_outline_glyph_done, ft_outline_glyph_copy,
+ ft_outline_glyph_transform, ft_outline_glyph_bbox,
+ ft_outline_glyph_prepare): Use FT_Glyph as parameter and do a cast
+ to FT_XXXGlyph locally.
+ Use FT_CALLBACK_DEF throughout.
+ (ft_bitmap_glyph_class, ft_outline_glyph_class): Remove casts.
+
+ * src/bdf/bdfdrivr.c (bdf_cmap_init, bdf_cmap_done,
+ bdf_cmap_char_index, bdf_cmap_char_next): Use FT_CMap as parameter
+ and do a cast to BDF_CMap locally.
+ (bdf_cmap_class): Remove casts.
+
+2004-05-12 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffgload.h (CFF_Builder): Remove `error'.
+ * src/cff/cffgload.c (cff_decoder_parse_charstrings): Replace
+ `Memory_Error' with `Fail' und update all users.
+
+2004-05-11 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/psaux.h (T1_ParseState): New
+ enumeration.
+ (T1_BuilderRec): Replace `path_begun' with `parse_state'.
+ Remove `error'.
+ * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Replace
+ `Memory_Error' with `Fail' and update all users.
+ Don't use `builder->error'.
+ Replace `path_begun' with `parse_state' and check parsing states.
+
+ * src/psaux/psobjs.c (t1_builder_init, t1_builder_start_point):
+ Replace `path_begun' with `parse_state' and check parsing states.
+
+2004-05-10 George Williams <gww@silcom.com>
+
+ * src/truetype/ttxgvar.c (ft_var_load_avar): Do free arrays in case
+ of error -- `avar' is optional so we can't rely on tt_done_blend
+ being called automatically.
+
+2004-05-09 George Williams <gww@silcom.com>
+
+ * src/truetype/ttxgvar.c (ft_var_load_avar, ft_var_load_gvar): Fix
+ error handling.
+
+2004-05-07 Werner Lemberg <wl@gnu.org>
+
+ * src/pfr/pfrobjs.c, src/pfr/pfrobjs.h (pfr_face_init,
+ pfr_face_done, pfr_face_get_kerning, pfr_slot_init, pfr_slot_done,
+ pfr_slot_load): Don't use PFR_XXX but FT_XXX arguments which are
+ typecast to the proper PFR_XXX types within the function.
+ Update code accordingly.
+
+ * src/pfr/pfrdrivr.c (pfr_get_kerning, pfr_get_advance,
+ pfr_get_metrics, pfr_get_service): Don't use PFR_XXX but FT_XXX
+ arguments which are typecast to the proper PFR_XXX types within the
+ function.
+ Update code accordingly.
+ Use FT_CALLBACK_DEF throughout.
+ (pfr_metrics_service_rec, pfr_driver_class): Remove casts.
+
+2004-05-06 Masatake YAMATO <jet@gyve.org>
+
+ * src/truetype/ttgxvar.c (ft_var_load_gvar): Use FT_FACE_STREAM.
+ (*): Rename local variable OffsetToData to offsetToData.
+
+2004-05-06 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffobjs.c (cff_size_done, cff_size_init, cff_size_reset,
+ cff_slot_done, cff_slot_init, cff_face_init, cff_face_done): Access
+ root fields directly.
+ * src/cff/cffdrivr.c (Load_Glyph): Access root fields directly.
+
+ * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Save current
+ frame before calling TT_Vary_Get_Glyph_Deltas.
+
+ * src/pcf/pcfdrivr.c (PCF_CMapRec): Rename `cmap' to `root' for
+ consistency.
+ (pcf_cmap_init, pcf_cmap_done, pcf_cmap_char_index,
+ pcf_cmap_char_next): Don't use PCF_XXX but FT_XXX arguments which
+ are typecast to the proper PCF_XXX types within the function.
+ Update code accordingly.
+ (pcf_cmap_class): Remove casts.
+ (PCF_Face_Done, PCF_Face_Init, PCF_Set_Pixel_Size): Don't use
+ PCF_XXX but FT_XXX arguments which are typecast to the proper
+ PCF_XXX types within the function.
+ Update code accordingly.
+ Use FT_CALLBACK_DEF throughout.
+ (PCF_Set_Point_Size): New wrapper function.
+ (PCF_Glyph_Load, pcf_driver_requester): Use FT_CALLBACK_DEF.
+ (pcf_driver_class): Remove casts.
+
+2004-05-04 Steve Hartwell <shspamsink@comcast.net>
+
+ * src/truetype/ttobjs.c (tt_driver_done): Fix typo.
+
+2004-05-04 Werner Lemberg <wl@gnu.org>
+
+ * src/bdf/bdfdrivr.c (BDF_Face_Done, BDF_Face_Init,
+ BDF_Set_Pixel_Size): Don't use BDF_XXX but FT_XXX arguments which
+ are typecast to the proper BDF_XXX types within the function.
+ Update code accordingly.
+ Use FT_CALLBACK_DEF throughout.
+ (BDF_Set_Point_Size): New wrapper function.
+ (bdf_driver_class): Remove casts.
+
+ * src/cff/cffdrivr.c (Get_Kerning, Load_Glyph, cff_get_interface):
+ Don't use CFF_XXX but FT_XXX arguments which are typecast to the
+ proper CFF_XXX types within the function.
+ Update code accordingly.
+ Use FT_CALLBACK_DEF throughout.
+ (cff_driver_class): Remove casts.
+
+ * src/cff/cffobjs.h, src/cff/cffobjs.c (cff_size_done,
+ cff_size_init, cff_size_reset, cff_slot_done, cff_slot_init,
+ cff_face_init, cff_face_done, cff_driver_init, cff_driver_done):
+ Don't use CFF_XXX but FT_XXX arguments which are typecast to the
+ proper CFF_XXX types within the function.
+ Update code accordingly.
+ (cff_point_size_reset): New wrapper function.
+
+ * src/cid/cidobjs.h, src/cid/cidobjs.c (cid_slot_done,
+ cid_slot_init, cid_size_done, cid_size_init, cid_size_reset,
+ cid_face_done, cid_face_init, cid_driver_init, cid_driver_done):
+ Don't use CID_XXX but FT_XXX arguments which are typecast to the
+ proper CID_XXX types within the function.
+ Update code accordingly.
+ (cid_point_size_reset): New wrapper function.
+
+ * src/cid/cidgload.c, src/cid/cidgload.h (cid_slot_load_glyph):
+ Don't use CID_XXX but FT_XXX arguments which are typecast to the
+ proper CID_XXX types within the function.
+ Update code accordingly.
+
+ * src/cid/cidriver.c (cid_get_interface):
+ Don't use CID_XXX but FT_XXX arguments which are typecast to the
+ proper CID_XXX types within the function.
+ Update code accordingly.
+ Use FT_CALLBACK_DEF.
+ (t1cid_driver_class): Remove casts.
+
+ * src/truetype/ttdriver.c (tt_get_interface): Use FT_CALLBACK_DEF.
+ * src/truetype/ttgxvar.c (ft_var_load_avar): Don't free non-local
+ variables (this is done later).
+ (ft_var_load_avar): Fix call to FT_FRAME_ENTER.
+ (TT_Get_MM_Var): Fix size for `fvar_fields'.
+ (TT_Vary_Get_Glyph_Deltas): Handle deallocation of local variables
+ correctly.
+
+ * src/base/ftdbgmem.c (ft_mem_debug_realloc): Don't abort if
+ current size is zero.
+
+2004-05-03 Steve Hartwell <shspamsink@comcast.net>
+
+ * src/truetype/ttobjs.h, src/truetype/ttobjs.c (tt_face_init,
+ tt_face_done, tt_size_init, tt_size_done, tt_driver_init,
+ tt_driver_done): Don't use TT_XXX but FT_XXX arguments which are
+ typecast to the proper TT_XXX types within the function.
+ Update code accordingly.
+
+ * src/truetype/ttdriver.c (Get_Kerning, Set_Char_Sizes,
+ Set_Pixel_Sizes, Load_Glyph, tt_get_interface): Don't use TT_XXX but
+ FT_XXX arguments which are typecast to the proper TT_XXX types
+ within the function.
+ Update code accordingly.
+ (tt_driver_class): Remove casts.
+
+2004-05-02 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/ttload.c (tt_face_free_names): Check that `table->names'
+ is not NULL. Reported by Gordon Childs <gchilds@quickcut.com.au>.
+
+2004-04-29 Werner Lemberg <wl@gnu.org>
+
+ * docs/formats.txt: Add more information on PFR format.
+
+2004-04-28 Werner Lemberg <wl@gnu.org>
+
+ * docs/formats.txt: New file.
+ * docs/CHANGES: Updated.
+
+2004-04-28 Masatake YAMATO <jet@gyve.org>
+
+ * include/freetype/internal/tttypes.h (GX_BlendRec_)
+ [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Fix a typo.
+
+ * src/truetype/ttgxvar.h (GX_BlendRec_): Fix a typo.
+
+2004-04-27 Masatake YAMATO <jet@gyve.org>
+
+ * src/truetype/ttgxvar.h: Use FT_LOCAL instead of FT_LOCAL_DEF
+ for function declarations.
+
+2004-04-25 George Williams <gww@silcom.com>
+
+ * src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix typo.
+
+2004-04-25 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/Jamfile, docs/CHANGES: Updated.
+
+2004-04-24 Werner Lemberg <wl@gnu.org>
+
+ * src/pcf/pcfdrivr.c: Revert change from 2004-04-17.
+ * src/pcf/pcfutil.c: Use FT_LOCAL_DEF.
+ * src/pcf/pcfutil.h: Include FT_CONFIG_CONFIG_H.
+ Use FT_BEGIN_HEADER and FT_END_HEADER.
+ Use FT_LOCAL.
+
+2004-04-24 George Williams <gww@silcom.com>
+
+ Add support for Apple's distortable font technology (in GX fonts).
+
+ * devel/ftoption.h, include/freetype/config/ftoption.h
+ (TT_CONFIG_OPTION_GX_VAR_SUPPORT): New macro.
+
+ * include/freetype/ftmm.h (FT_Var_Axis, FT_Var_Named_Style,
+ FT_MM_Var): New structures.
+ (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates,
+ FT_Set_Var_Blend_Coordinates): New function declarations.
+
+ * include/freetype/internal/services/svmm.h (FT_Get_MM_Var_Func,
+ FT_Set_Var_Design_Func): New typedefs.
+ Update MultiMasters service.
+
+ * include/freetype/internal/tttypes.h
+ [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include FT_MULTIPLE_MASTERS_H.
+ (GX_Blend) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New typedef.
+ (TT_Face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New members `doblend'
+ and `blend'.
+
+ * include/freetype/tttags.h (TTAG_avar, TTAG_cvar, TTAG_gvar): New
+ macros.
+
+ * include/freetype/internal/fttrace.h: Add `ttgxvar'.
+
+ * src/base/ftmm.c (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates,
+ FT_Set_Var_Blend_Coordinates): New functions.
+
+ * src/sfnt/sfobjs.c (sfnt_load_face)
+ [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Set FT_FACE_FLAG_MULTIPLE_MASTERS
+ flag for GX var fonts.
+
+ * src/truetype/ttgxvar.c, src/truetype/ttgxvar.h: New files.
+
+ * src/truetype/truetype.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
+ ttgxvar.c.
+
+ * src/truetype/ttdriver.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
+ FT_MULTIPLE_MASTERS_H, FT_SERVICE_MULTIPLE_MASTERS_H, and ttgxvar.h.
+ (tt_service_gx_multi_masters) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]:
+ New service.
+ (tt_services) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Updated.
+
+ * src/truetype/ttgload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
+ ttgxvar.h.
+ (TT_Process_Simple_Glyph, load_truetype_glyph)
+ [TT_CONFIG_OPTION_GX_VAR_SUPPORT] :Support GX var fonts.
+
+ * src/truetype/ttobjs.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
+ ttgxvar.h.
+ (tt_done_face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call
+ tt_done_blend.
+
+ * src/truetype/ttpload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
+ ttgxvar.h.
+ (tt_face_load_cvt) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call
+ tt_face_vary_cvt.
+
+ * src/truetype/rules.mk (TT_DRV_SRC): Add ttgxvar.c.
+
+ * src/type1/t1driver.c (t1_service_multi_masters): Add T1_Get_MM_Var
+ and T1_Set_Var_Design.
+
+ * src/type1/t1load.c (FT_INT_TO_FIXED, FT_FIXED_TO_INT): New macros.
+ (T1_Get_MM_Var, T1_Set_Var_Design): New functions.
+
+ * src/type1/t1load.h (T1_Get_MM_Var, T1_Set_Var_Design): New
+ function declarations.
+
+2004-04-23 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/ftcache.h (FT_Get_CharMap_Index): Rename
+ declaration and move to...
+ * include/freetype/freetype.h (FT_Get_Charmap_Index): Here.
+ (FREETYPE_PATCH): Set to 9.
+
+ * src/base/ftobjs.c (FT_Get_Charmap_Index): New function.
+
+ * builds/unix/configure.ac (version_info): Set to 9:7:3.
+ * builds/unix/configure: Updated.
+
+ * builds/win32/visualc/index.html,
+ builds/win32/visualc/freetype.dsp,
+ builds/win32/visualc/freetype.vcproj: s/218/219/.
+
+ * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
+ s/2.1.8/2.1.9/.
+
+ * docs/CHANGES, docs/VERSION.DLL: Updated.
+
+2004-04-21 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffparse.c (cff_parser_run), src/psaux/psobjs.c
+ (ps_parser_load_field): Use FT_CHAR_BIT.
+
+2004-04-21 David Turner <david@freetype.org>
+
+
+ * Version 2.1.8 released.
+ =========================
+
+
+ * src/cff/cffobjs.c (cff_face_init): Fix a small memory leak.
+
+ * src/autofit/afloader.c (af_loader_load_g), src/autofit/afmodule.c
+ (af_autofitter_load_glyph), src/base/ftdebug.c (FT_Trace_Get_Name):
+ Remove compiler warnings.
+
+ * src/autofit/aftypes.h: Undefine AF_DEBUG.
+
+ * src/lzw/zopen.c (rmask), src/pcf/pcfdrivr.c (pcf_service_bdf,
+ pcf_services), src/pcf/pcfread.c (tableNames), src/psaux/psobjs.c
+ (ft_char_table), src/type42/t42drivr.c (t42_service_glyph_dict,
+ t42_service_ps_font_name): Decorate data arrays with `const' to
+ avoid populating the `.data' segment.
+
+ * src/lzw/Jamfile: New file.
+
+2004-04-20 Werner Lemberg <wl@gnu.org>
+
+ * src/psaux/psobjs.c (T1Radix): Renamed to...
+ (ps_radix): This.
+ Update current cursor position.
+
+ * docs/CHANGES: Updated.
+
+2004-04-18 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph),
+ src/ttdriver.c (Load_Glyph): Change type of `glyph_index' to
+ FT_UInt. From Lex Warners.
+
+2004-04-17 Chisato Yamauchi <cyamauch@a.phys.nagoya-u.ac.jp>
+
+ * src/sfnt/ttload.c (tt_face_load_sfnt_header): Really fix change
+ from 2004-03-19.
+
+ * src/bdf/bdfdrivr.c (BDF_Face_Init): Use `ft_strlen'.
+
+ * src/pcf/pcfutil.c, src/pcf/pcfutil.h: Decorate functions with
+ `static'.
+ Remove unused function `RepadBitmap'.
+ * src/pcf/pcfdrivr.c: Don't include pcfutil.h.
+
+2004-04-16 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/freetype-config.in (usage): Fix and improve usage
+ information.
+
+2004-04-15 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/ftconfig.in, builds/vms/ftconfig.h: Define
+ FT_CHAR_BIT.
+
+ * src/base/ftobjs.c (FT_Load_Glyph): Don't apply autohinting if
+ glyph is vertically distorted or mirrored.
+
+ * src/cff/cffgload.c (cff_slot_load): Handle zero `size' properly
+ for embedded bitmaps.
+
+ * docs/CHANGES: Updated.
+
+2004-04-15 bytesoftware <bytesoftware@btinternet.com>
+
+ * include/freetype/config/ftconfig.h, src/base/ftstream.c
+ (FT_Stream_ReadFields): More fixes using FT_CHAR_BIT.
+
+2004-04-14 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/config/ftconfig.h (FT_CHAR_BIT): New macro.
+
+2004-04-14 Alex Strelnikov <ptktyrf@mail.ru>
+
+ * src/cache/ftcsbits.c (ftc_snode_load): Initialize `*asize' in case
+ of error.
+
+2004-04-14 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftmac.c [__GNUC__]: Define OS_INLINE.
+ * builds/unix/configure.ac: Don't try to remove `-ansi' compilation
+ switch on the Mac.
+
+ * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
+ --copy' from libtool 1.5.6.
+ * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
+ automake 1.8a.
+ * builds/unix/configure: Regenerated with autoconf 2.59a.
+
+2004-04-13 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/config/ftconfig.h: Use CHAR_BIT to define
+ size of FT_SIZEOF_xxx.
+
+2004-04-12 Chisato Yamauchi <cyamauch@a.phys.nagoya-u.ac.jp>
+
+ * include/freetype/internal/sfnt.h (TT_Find_SBit_Image_Func,
+ TT_Load_SBit_Metrics_Func): New typedefs.
+ (SFNT_Interface): Add find_sbit_image and load_sbit_metrics.
+
+ * src/sfnt/sfdriver.c (sfnt_interface): Updated.
+ * src/sfnt/ttsbit.h (tt_find_sbit_image, tt_load_sbit_metrics): New
+ declarations.
+ * src/sfnt/ttsbit.c (find_sbit_image): Renamed to...
+ (tt_find_sbit_image): This.
+ Updated all callers.
+ (load_sbit_metrics): Renamed to...
+ (tt_load_sbit_metrics): This.
+ Updated all callers.
+
+2004-04-12 Werner Lemberg <wl@gnu.org>
+
+ * configure: Accept makepp also.
+
+ * builds/unix/detect.mk: Use proper path to unix-def.mk.
+ * builds/unix/unix-def.in (BUILD_DIR, PLATFORM): Remove.
+ * builds/unix/unix.mk (BUILD_DIR, PLATFORM): Define.
+ Use BUILD_DIR.
+
+ * docs/INSTALL, docs/INSTALL.GNU, docs/INSTALL.UNX: Update
+ documentation on makepp.
+
+2004-04-11 Werner Lemberg <wl@gnu.org>
+
+ * src/lzw/zopen.c: Don't include sys/param.h and sys/stat.h.
+
+2004-04-10 Werner Lemberg <wl@gnu.org>
+
+ * src/lzw/ftlzw.c: Include zopen.h dependent on
+ FT_CONFIG_OPTION_USE_LZW.
+
+ * src/base/ftdebug.c: s/index/idx/ to avoid compiler warnings.
+
+2004-04-02 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
+ --copy' from libtool 1.5.2.
+ * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
+ automake 1.8a.
+ * builds/unix/configure: Regenerated with autoconf 2.59a.
+
+2004-04-01 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/ft-munmap.m4 (FT_MUNMAP_PARAM): Fix arguments of
+ AC_COMPILE_IFELSE.
+ * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
+ automake 1.8a.
+ * builds/unix/configure: Regenerated with autoconf 2.59a.
+ * builds/unix/config.guess, builds/unix/config.sub: Updated from
+ `config' CVS module at subversions.gnu.org.
+ * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
+ `texinfo' CVS module at subversions.gnu.org.
+ * builds/freetype.mk (refdoc): Updated.
+
+2004-03-31 Werner Lemberg <wl@gnu.org>
+
+ Handle broken FNT files which don't have a trailing NULL byte
+ in the face name string.
+
+ * src/winfonts/winfnt.h (FNT_FontRec): New member `family_name'.
+ * src/winfonts/winfnt.c (fnt_font_done): Free font->family_name.
+ (FNT_Face_Init): Append a final zero byte to the font face name.
+
+2004-03-30 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/ttload.c (tt_face_load_sfnt_header): Fix change from
+ 2004-03-19.
+
+2004-03-27 Werner Lemberg <wl@gnu.org>
+
+ * src/base/descrip.mms (OBJS): Add ftbbox.obj.
+
+2004-03-26 George Williams <gww@silcom.com>
+
+ Add vertical phantom points.
+
+ * include/freetype/internal/tttypes.h (TT_LoaderRec): Add
+ `top_bearing', `vadvance', `pp3', and `pp4'.
+
+ * src/autofit/afloader.c (af_loader_load_g): Handle two more points.
+
+ * src/autohint/ahhint.c (ah_hinter_load): Handle two more points.
+ * src/truetype/ttgload.c (Get_VMetrics): New function.
+ (TT_Load_Simple_Glyph, TT_Process_Simple_Glyph): Handle two more
+ points.
+ (load_truetype_glyph): Use Get_VMetrics.
+ Handle two more points.
+ (compute_glyph_metrics): Thanks to vertical phantom points we now
+ can always compute `advance_height' and `top_bearing'.
+ * src/truetype/ttobjs.h (TT_SubglyphRec): Add vertical phantom
+ points.
+
+
+ * src/autohint/ahglyph.c (ah_outline_load): Fix allocation of
+ `news'.
+
+2004-03-21 Werner Lemberg <wl@gnu.org>
+
+ * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Fix left side bearing.
+
+2004-03-20 Steve Hartwell <shspamsink@comcast.net>
+
+ * src/cache/ftcmru.c (FTC_MruList_RemoveSelection): Handle a NULL
+ value for `selection' as `select all'.
+
+2004-03-19 Steve Hartwell <shspamsink@comcast.net>
+
+ * src/sfnt/ttload.c (tt_face_load_sfnt_header): Reject face_index
+ values > 0 if loading non-TTC fonts.
+
+ * src/base/ftmac.c (open_face_from_buffer): Set positive face_index
+ to zero before calling FT_Open_Face.
+
+ * docs/CHANGES: Updated.
+
+2004-03-04 Werner Lemberg <wl@gnu.org>
+
+ * Jamfile, vms_make.com, builds/win32/visualc/freetype.dsp,
+ builds/win32/visualc/freetype/vcproj, include/freetype/ftmoderr.h:
+ Add LZW module.
+
+ * Jamfile.in: Removed.
+
+ * docs/CHANGES: Updated.
+
+ * include/freetype/internal/ftobjs.h: s/MIN/FT_MIN/, s/MAX/FT_MAX/,
+ s/ABS/FT_ABS/. Updated all callers.
+
+ * src/type1/t1load.c (parse_dict), src/pcf/pcfdrivr.c
+ (PCF_Face_Init): Use FT_ERROR_BASE.
+
+2004-03-04 Albert Chin <china@thewrittenword.com>
+
+ Add support for PCF fonts compressed with LZW (extension .pcf.Z,
+ created with `compress').
+
+ * include/freetype/config/ftoption.h, devel/ftoption.h
+ (FT_CONFIG_OPTION_USE_LZW): New macro.
+
+ * include/freetype/ftlzw.h: New file.
+ * include/freetype/config/ftheader.h (FT_LZW_H): New macro for
+ ftlzw.h.
+
+ * src/lzw/*: New files.
+
+ * src/pcf/pcfdrivr.c: Include FT_LZW_H.
+ (PCF_Face_Init): Try LZW also.
+
+ * src/gzip/ftgzip.c: s/0/Gzip_Err_Ok/ where appropriate.
+ Beautify.
+
+2004-03-03 Werner Lemberg <wl@gnu.org>
+
+ * src/pshinter/pshalgo.c (psh_hint_table_init): Simplify code.
+
+2004-03-02 Werner Lemberg <wl@gnu.org>
+
+ Add embedded bitmap support to CFF driver.
+
+ * src/cff/cffobjs.h (CFF_SizeRec): New structure.
+
+ * src/cff/cffgload.c (cff_builder_init): Updated.
+ (cff_slot_load): Updated.
+ [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Load sbit.
+
+ * src/cff/cffobjs.c (sbit_size_reset)
+ [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: New function.
+ (cff_size_get_globals_funcs, cff_size_done, cff_size_init): Updated.
+ (cff_size_reset): Updated.
+ [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Call sbit_size_reset.
+
+ * src/cff/cffdrivr.c (Load_Glyph): Updated.
+ (cff_driver_class): Use CFF_SizeRec.
+
+ * docs/CHANGES: Updated.
+
+2004-03-01 Werner Lemberg <wl@gnu.org>
+
+ * src/pshinter/pshglob.c (psh_globals_scale_widths): Don't use
+ FT_RoundFix but FT_PIX_ROUND.
+ (psh_blues_snap_stem): Don't use blue_shift but blue_threshold.
+
+ * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD_MAXIMUM): New macro.
+ (psh_glyph_find_string_points): Use PSH_STRONG_THRESHOLD_MAXIMUM.
+ (psh_glyph_find_blue_points): New function. Needed for fonts like
+ p052003l.pfb (URW Palladio L Roman) which have flex curves at the
+ base line within blue zones, but the flex curves aren't covered by
+ hints.
+ (ps_hints_apply): Use psh_glyph_find_blue_points.
+
+2004-02-27 Garrick Meeker <garrick@digitalanarchy.com>
+
+ * builds/unix/configure.ac: Fix compiler flags for
+ `--with-old-mac-fonts'.
+ * builds/unix/configure: Regenerated.
+
+ * src/base/ftmac.c: s/TARGET_API_MAC_CARBON/!TARGET_API_MAC_OS8/.
+ (FT_New_Face_From_Resource): New function.
+ (FT_New_Face): Use FT_New_Face_From_Resource.
+ (FT_New_Face_From_FSSpec): Use FT_New_Face_From_Resource.
+ [__MWERKS__]: Don't include FSp_fopen.h.
+
+2004-02-26 Werner Lemberg <wl@gnu.org>
+
+ * src/pshinter/pshglob.c (psh_globals_new): Fix value of
+ `dim->stdw.count'.
+ Don't assign default values to blue scale and blue shift.
+
+2004-02-25 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2004-02-25 Garrick Meeker <garrick@digitalanarchy.com>
+ Steve Hartwell <shspamsink@comcast.net>
+
+ Improve MacOS fond support. Provide a new API
+ `FT_New_Face_From_FSSpec' similar to `FT_New_Face'.
+
+ * src/base/ftmac.c [__MWERKS__]: Include FSp_fpopen.h.
+ STREAM_FILE [__MWERKS__]: New macro.
+ (ft_FSp_stream_close, ft_FSp_stream_io) [__MWERKS__]: New functions.
+ (file_spec_from_path) [__MWERKS__]: Updated #if statement.
+ (get_file_type, make_lwfn_spec): Use `const' for argument.
+ (is_dfont) [TARGET_API_MAC_CARBON]: Removed.
+ (count_face_sfnt, count_faces): New functions.
+ (parse_fond): Do some range checking.
+ (read_lwfn): Change type of second argument.
+ No longer call FSpOpenResFile.
+ (OpenFileAsResource): New function.
+ (FT_New_Face_From_LWFN): Use `const' for second argument.
+ Use OpenFileAsResource.
+ (FT_New_Face_From_Suitcase): Change type of second argument.
+ No longer call FSpOpenResFile.
+ Loop over all resource indices.
+ (FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Removed.
+ (FT_GetFile_From_Mac_Name): Use `const' for first argument.
+ (ResourceForkSize): Removed.
+ (FT_New_Face): Updated to use new functions.
+ (FT_New_Face_From_FSSpec): New function.
+
+ * include/freetype/ftmac.h: Updated.
+
+2004-02-24 Malcolm Taylor <mtaylor@clear.net.nz>
+
+ * src/autohint/ahhint.c (ah_hinter_load) <FT_GLYPH_FORMAT_OUTLINE>:
+ Handle case where outline->num_vedges is zero while computing hinted
+ metrics.
+
+2004-02-24 Gordon Childs <gchilds@quickcut.com.au>
+
+ * src/cff/cffcmap.c (cff_cmap_unicode_init): Provide correct value
+ for `count'.
+
+2004-02-24 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/t1tables.h (PS_PrivateRec): Add
+ `expansion_factor'.
+
+ * src/pshinter/pshglob (psh_blues_scale_zones): Fix computation
+ of blues->no_overshoots -- `blues_scale' is stored with a
+ magnification of 1000, and `scale' returns fractional pixels.
+
+ * src/type1/t1load.c (T1_Open_Face): Initialize `blue_shift',
+ `blue_fuzz', `expansion_factor', and `blue_scale' according to the
+ Type 1 specification.
+
+ * src/type1/t1tokens.h: Handle `ExpansionFactor'.
+
+ * docs/CHANGES: Updated.
+
+2004-02-24 Masatake YAMATO <jet@gyve.org>
+
+ Provide generic access to MacOS resource forks.
+
+ * src/base/ftrfork.c, include/freetype/internal/ftrfork.h: New
+ files.
+
+ * src/base/ftobjs.c: Include FT_INTERNAL_RFORK_H.
+ (Mac_Read_POST_Resource, Mac_Read_sfnt_Resource): Remove arguments
+ `resource_listoffset' and `resource_data' and adapt code
+ accordingly. These values are calculated outside of the function
+ now.
+ Add new argument `offsets'.
+ (IsMacResource): Use `FT_Raccess_Get_HeaderInfo' and
+ `FT_Raccess_Get_DataOffsets'.
+ (load_face_in_embedded_rfork): New function.
+ (load_mac_face): Use load_face_in_embedded_rfork.
+ (ft_input_stream_new): Renamed to...
+ (FT_Stream_New): This. Use FT_BASE_DEF. Updated all callers.
+ (ft_input_stream_free): Renamed to...
+ (FT_Stream_Free): This. Use FT_BASE_DEF. Updated all callers.
+
+ * src/base/ftbase.c: Include ftrfork.c.
+
+ * src/base/rules.mk (BASE_SRC), src/base/Jamfile: Updated.
+
+ * include/freetype/internal/internal.h (FT_INTERNAL_RFORK_H):
+ New macro.
+
+ * include/freetype/internal/fttrace.h: Added `rfork' as a new
+ trace definition.
+
+ * include/freetype/internal/ftstream.h: Declare FT_Stream_New and
+ FT_Stream_Free.
+
+ * include/freetype/config/ftoption.h, devel/ftoption.h
+ (FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK): New option.
+
+ * include/freetype/config/ftstdlib.h (ft_strrchr): New macro.
+
+2004-02-23 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+ * include/freetype/internal/ftdebug.h: Include FT_FREETYPE_H.
+
+2004-02-23 Masatake YAMATO <jet@gyve.org>
+
+ Provide a simple API to control FreeType's tracing levels.
+
+ * include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
+ FT_Trace_Get_Name): New declarations.
+
+ * src/base/ftdebug.c (FT_Trace_Get_Count, FT_Trace_Get_Name): New
+ functions.
+
+2004-02-23 David Turner <david@freetype.org>
+
+ * src/autofit/afhints.c, src/autofit/afhints.h,
+ src/autofit/aflatin.c, src/autofit/afloader.c, src/types.h: Grave
+ bugs have been fixed. The auto-fitter works, doesn't crash, but
+ still produces unexpected results...
+
+2004-02-21 Werner Lemberg <wl@gnu.org>
+
+ * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD): Changed to hold
+ the accepted shift for strong points in fractional pixels (which
+ is a heuristic value).
+ (psh_glyph_find_strong_points): Compute threshold for
+ psh_hint_table_find_strong_points.
+ (psh_hint_table_find_strong_point): Add parameter to pass threshold.
+
+2004-02-20 Werner Lemberg <wl@gnu.org>
+
+ * src/pshinter/pshrec.c (ps_mask_table_set_bits): Don't call
+ ps_mask_table_alloc but ps_mask_table_last.
+ (ps_hints_t2mask): Use correct position and number for vertical
+ and horizontal hinter mask bits.
+
+ * docs/CHANGES: Updated.
+
+2004-02-19 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftstroke.c (FT_Glyph_StrokeBorder): Fix enum handling.
+ * src/cff/cffdrivr.c (cff_get_cmap_info): Remove compiler warning.
+
+2004-02-18 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/freetype.h: Document FT_LOAD_TARGET_XXX properly.
+
+ * src/base/ftglyph.c (ft_bitmap_glyph_class,
+ ft_outline_glyph_class): Tag with FT_CALLBACK_TABLE_DEF.
+
+ * src/smooth/ftsmooth.c (ft_smooth_render): Handle
+ FT_RENDER_MODE_LIGHT.
+
+2004-02-17 Werner Lemberg <wl@gnu.org>
+
+ Fix callback functions in cache module.
+
+ * src/cache/ftccback.h: New file for callback declarations.
+
+ * src/cache/ftcbasic.c (ftc_basic_family_compare,
+ ftc_basic_family_init, ftc_basic_family_get_count,
+ ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph,
+ ftc_basic_gnode_compare_faceid): Use FT_CALLBACK_DEF.
+ (ftc_basic_image_family_class, ftc_basic_image_cache_class,
+ ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class):
+ Use FT_CALLBACK_TABLE_DEF and local wrapper functions.
+
+ * src/cache/ftccache.c: Include ftccback.h.
+ (ftc_cache_init, ftc_cache_done): New wrapper functions which use
+ FT_LOCAL_DEF.
+
+ * src/cache/ftccmap.c: Include ftccback.h.
+ (ftc_cmap_cache_class): Use local wrapper functions.
+
+ * src/cache/ftcglyph.c: Include ftccback.h.
+ (ftc_gnode_compare, ftc_gcache_init, ftc_gcache_done): New wrapper
+ functions which use FT_LOCAL_DEF.
+
+ * src/cache/ftcimage.c: Include ftccback.h.
+ (ftc_inode_free, ftc_inode_new, ftc_inode_weight): New wrapper
+ functions which use FT_LOCAL_DEF.
+
+ * src/cache/ftcmanag.c (ftc_size_list_class, ftc_face_list_class):
+ Use FT_CALLBACK_TABLE_DEF.
+
+ * src/cache;/ftcsbits.c: Include ftccback.h.
+ (ftc_snode_free, ftc_snode_new, ftc_snode_weight,
+ ftc_snode_compare): New wrapper functions which use FT_LOCAL_DEF.
+
+ * src/cache/rules.mk (CACHE_DRV_H): Add ftccback.h.
+
+2004-02-17 Masatake YAMATO <jet@gyve.org>
+
+ * include/freetype/ftmac.h (FT_GetFile_From_Mac_Name): Fix a typo
+ (FT_EXPORT_DEF -> FT_EXPORT).
+
+ * include/freetype/ftxf86.h (FT_Get_X11_Font_Format): Ditto.
+
+2004-02-15 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftobjs.c (FT_Set_Char_Size): Fix typo.
+
+2004-02-14 Masatake YAMATO <jet@gyve.org>
+
+ * builds/unix/ftsystem.c: Include errno.h.
+ (ft_close_stream): Renamed to...
+ (ft_close_stream_by_munmap): This.
+ (ft_close_stream_by_free): New function.
+ (FT_Stream_Open): Use fallback method if mmap fails.
+ Use proper function for closing the stream.
+
+2004-02-14 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1load.c (parse_dict): Initialize `start_binary'.
+
+2004-02-13 Robert Etheridge <roberte@stcc.cc.tx.us>
+
+ * src/type42/t42objs.c (T42_Face_Init), src/type1/t1objs.c
+ (T1_Face_Init), src/cid/cidobjs.c (cid_face_init): Fix computation
+ of underline_position and underline_thickness.
+
+2004-02-12 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftobjs.c (FT_Set_Char_Size): Return immediately if
+ ppem values don't change. Suggested by Graham Asher.
+
+2004-02-11 Werner Lemberg <wl@gnu.org>
+
+ * src/cid/cidload.c (cid_face_open): Always allocate
+ face->cid_stream so that we can deallocate it safely.
+
+2004-02-10 Werner Lemberg <wl@gnu.org>
+
+ Make the PS parser more tolerant w.r.t. non-standard font data. In
+ general, an error is only reported in case of a syntax error; a
+ wrong type is now simply ignored (if possible). To be independent
+ of the order of various MM-specific keywords, the parse_shared_dict
+ routine has been removed -- the PS parser is now capable to skip
+ this data. It no longer fails on parsing e.g.
+
+ dup /WeightVector exch def
+
+ Since the token following /WeightVector isn't `[' (starting an
+ array) it is simply ignored.
+
+ * include/freetype/fterrdef.h: Define `FT_Err_Ignore' (0xA2) as a
+ new internal error value.
+
+ * src/type1/t1load.c (parse_blend_axis_types,
+ parse_blend_design_positions, parse_blend_design_map): Return
+ T1_Err_Ignore if no proper array is following the keyword.
+ (parse_weight_vector): Use T1_ToTokenArray, initializing `blend'
+ structure, if necessary.
+ Return T1_Err_Ignore if no proper array is following the keyword.
+ (parse_shared_dict): Removed.
+ (parse_encoding): Set parser->root.error to return T1_Err_Ignore
+ if no result can be obtained.
+ Check for errors before accessing `elements' array.
+ (t1_keywords): Remove /shareddict.
+ (parse_dict): Reset error if t1_load_keyword returns T1_Err_Ignore.
+ Set keyword_flag only in case of success.
+ Check error code if skipping an unrecognized token.
+ (T1_Open_Face) [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: Call T1_Done_Blend
+ if blend commands haven't set up a proper MM font.
+
+ * src/psaux/psobjs.c (ps_parser_load_field_table): Remove special
+ code for synthetic fonts.
+ Return PSaux_Err_Ignore if no proper value has been found.
+
+2004-02-09 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffgload.c (cff_decoder_parse_charstrings)
+ <cff_op_endchar>: Preserve glyph width before calling
+ cff_operator_seac.
+
+2004-02-09 Martin Muskens <mmuskens@aurelon.com>
+
+ * src/cff/cffgload.c (cff_decoder_parse_charstrings): Handle special
+ first argument for `hintmask' and `cntrmask' operators also.
+
+2004-02-08 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/configure.in: Call AC_SUBST for `enable_shared',
+ `hardcode_libdir_flag_spec', and `wl'.
+ * builds/unix/configure: Regenerated.
+
+ * builds/unix/freetype-config.in: Make --prefix and --exec-prefix
+ actually work.
+ Report a proper --rpath (or -R) value for --libs argument if a
+ shared library has been built.
+
+ * docs/CHANGES: Updated.
+
+2004-02-07 Keith Packard <keithp@keithp.com>
+
+ * src/bdf/bdfdrivr.c (BDF_Face_Init, BDF_Set_Pixel_Size): Fix
+ computation of various vertical and horizontal metric values.
+
+ * src/pcfdrivr.c (PCF_Set_Pixel_Size), src/pcfread (pcf_load_font):
+ Ditto.
+
+2004-02-07 Werner Lemberg <wl@gnu.org>
+
+ * builds/win32/visualc/index.html,
+ builds/win32/visualc/freetype.dsp,
+ builds/win32/visualc/freetype.dsw, docs/CHANGES: Updated.
+
+2004-02-07 Vitaliy Pasternak <v_a_pasternak@mail.ru>
+
+ * builds/win32/visualc/freetype.sln,
+ builds/win32/visualc/freetype.vcproj: New files for VS.NET 2003.
+
+2004-02-03 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP):
+ Initialize `node'.
+ * src/type1/t1load.c (parse_dict): Initialize `have_integer'.
+
+2004-02-02 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1load.c (parse_dict): Handle `RD' and `-|' commands
+ outside of /Subrs or /CharStrings. This can happen if there is
+ additional code manipulating those two arrays so that FreeType
+ doesn't recognize them properly.
+ (T1_Open_Face): Improve an error message.
+
+2004-02-01 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1load.c (parse_charstrings): Exit immediately if
+ there are no elements in /CharStrings. This is needed for fonts
+ like Optima-Oblique which not only define /CharStrings but access it
+ also.
+
+2004-02-01 David Turner <david@freetype.org>
+
+ * src/sfnt/Jamfile: Removing `ttcmap' from the list of sources.
+
+ * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP)
+ <FTC_INLINE>: Provide macro version which doesn't use inline code.
+ * include/freetype/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP)
+ <FTC_INLINE>: Ditto.
+ Use FTC_MRULIST_LOOKUP_CMP.
+ * include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): New
+ macro.
+ (FTC_MRULIST_LOOKUP): Use it.
+
+ * src/cache/Jamfile (_sources), src/cache/descrip.mms: Updated.
+ * src/cache/ftcbasic.c: Fix compiler warnings.
+ * src/cache/ftcmanag.c (FTC_Manager_LookupSize,
+ FTC_Manager_LookupFace) <FTC_INLINE>: Use FTC_MRULIST_LOOKUP_CMP.
+ * src/cache/ftcmru.c (FTC_MruList_Find): Fix a bug (found after
+ heavy testing).
+
+ * Jamfile: Updating `refdoc' target, and adding `autohint' to the
+ list of modules to build. Both the autohinter and autofitter will
+ be built by default. But which one will be used is determined by
+ the content of `ftmodule.h'.
+
+ * src/autofit/*: Many updates, but the code is still buggy...
+
+2004-01-31 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffgload.c (cff_operator_seac): Fix magnitude of
+ accent offset.
+ Update code similarly to the seac support for Type 1 fonts.
+ (cff_decoder_parse_charstrings) <cff_op_endchar>: Fix magnitude
+ of accent offset.
+ Don't hint glyphs twice if seac is emulated.
+ <cff_op_flex>: Assign correct point tags.
+ * docs/CHANGES: Updated.
+
+2004-01-30 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1parse.c (T1_Get_Private_Dict): Use FT_MEM_MOVE, not
+ FT_MEM_COPY, for copying the private dict.
+
+ * src/type1/t1load.c (parse_subrs): Assign number of subrs only
+ in first run.
+ (parse_charstrings): Parse /CharStrings in second run without
+ assigning values.
+ (parse_dict): Skip all /CharStrings arrays but the first. We need
+ this for non-standard fonts like `Optima' which have different
+ outlines depending on the resolution. Note that there is no
+ guarantee that we get fitting /Subrs and /CharStrings arrays; this
+ can only be done by a real PS interpreter.
+
+2004-01-29 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
+
+ * builds/win32/visualc/index.html: New file, giving detailed
+ explanations about forcing CR+LF line endings for the VC++ project
+ files.
+
+2004-01-22 Garrick Meeker <garrick@digitalanarchy.com>
+
+ * src/cff/cffload.c (cff_subfont_load): Initialize `dict'.
+
+2004-01-22 Werner Lemberg <wl@gnu.org>
+
+ Add support for the hexadecimal representation of binary data
+ started with `StartData' in CID-keyed Type 1 fonts.
+
+ * include/freetype/internal/t1types.h (CID_FaceRec): Add new
+ members `binary_data' and `cid_stream'.
+
+ * src/cid/cidload.c (cid_read_subrs): Use `face->cid_stream'.
+ (cid_hex_to_binary): New auxiliary function.
+ (cid_face_open): Add new argument `face_index' to return quickly
+ if less than zero. Updated all callers.
+ Call `cid_hex_to_binary', then open and assign memory stream to
+ `face->cid_stream' if `parser->binary_length' is non-zero.
+ * src/cid/cidload.h: Updated.
+
+ * src/cid/cidobjs.c (cid_face_done): Free `binary_data' and
+ `cid_stream'.
+
+ * src/cid/cidparse.c (cid_parser_new): Check arguments to
+ `StartData' and set parser->binary_length accordingly.
+ * src/cid/cidparse.h (CID_Parser): New member `binary_length'.
+
+ * src/cid/cidgload.c (cid_load_glyph): Use `face->cid_stream'.
+
+ * docs/CHANGES: Updated.
+
+2004-01-21 Werner Lemberg <wl@gnu.org>
+
+ include/freetype/config/ftstdlib.h (ft_atoi): Replaced with...
+ (ft_atol): This.
+ * src/base/ftdbgmem.c: s/atol/ft_atol/.
+ * src/type42/t42drivr.c: s/ft_atoi/ft_atol/.
+
+2004-01-20 Masatake YAMATO <jet@gyve.org>
+
+ * include/freetype/ftcache.h: Delete duplicated definition of
+ FTC_FaceID.
+
+ * src/cff/cffdrivr.c (cff_get_cmap_info): Call sfnt module's TT CMap
+ Info service function if the cmap comes from sfnt. Return 0 if the
+ cmap is sythesized in cff module.
+
+2004-01-20 David Turner <david@freetype.org>
+
+ * src/cache/ftcmanag.c (ftc_size_node_compare): Call
+ FT_Activate_Size.
+
+2004-01-20 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1parse.c (T1_Get_Private_Dict): Skip exactly one
+ CR, LF, or CR/LF after `eexec'.
+
+2004-01-18 David Turner <david@freetype.org>
+
+ * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Remove compiler
+ warning.
+
+ * src/tools/docmaker/*: Updating beautifier tool.
+
+2004-01-15 David Turner <david@freetype.org>
+
+ * src/base/ftoutln.c (ft_orientation_extremum_compute): Fix
+ infinite loop bug.
+
+ * include/freetype/ftstroke.h: Include FT_GLYPH_H.
+ (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New
+ declarations.
+
+ * src/base/ftstroke.c: Include FT_INTERNAL_OBJECTS_H.
+ (FT_Outline_GetOutsideBorder): Inverse result.
+ (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_GlyphStrokeBorder): New
+ functions.
+ (FT_Stroker_EndSubPath): Close path if needed.
+ (FT_Stroker_Set, FT_Stroker_ParseOutline): Use FT_Stroker_Rewind.
+
+ * include/freetype/cache/ftcmanag.h (FTC_ScalerRec,
+ FTC_Manager_LookupSize): Moved to...
+ * include/freetype/ftcache.h (FTC_ScalerRec,
+ FTC_Manager_LookupSize): Here.
+
+ * src/tools/docmaker/docbeauty.py: New file to beautify the
+ documentation comments (e.g., to convert them to single block border
+ mode).
+ * src/tools/docmaker/docmaker.py (file_exists, make_file_list):
+ Moved to...
+ * src/tools/docmaker/utils.py (file_exists, make_file_list): Here.
+
+2004-01-14 David Turner <david@freetype.org>
+
+ * include/freetype/internal/ftmemory.h (FT_ARRAY_COPY,
+ FT_ARRAY_MOVE): New macros to make copying arrays easier.
+ Updated all relevant code to use them.
+
+2004-01-14 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffload.c (cff_font_load): Load charstrings_index earlier.
+ Use number of charstrings as argument to CFF_Load_FD_Select (as
+ documented in the CFF specs).
+
+2004-01-13 Graham Asher <graham.asher@btinternet.com>
+
+ * src/pshinter/pshalgo.c (psh_glyph_init): Move assignment of
+ `glyph->memory' up to free arrays properly in case of failure.
+
+2004-01-10 Masatake YAMATO <jet@gyve.org>
+
+ Make `FT_Get_CMap_Language_ID' work with CFF. Bug reported by
+ Steve Hartwell <shspamsink@comcast.net>.
+
+ * src/cff/cffdrivr.c: Include FT_SERVICE_TT_CMAP_H.
+ (cff_services): Added an entry for FT_SERVICE_ID_TT_CMAP.
+ (cff_get_cmap_info): New function.
+ (cff_service_get_cmap_info) New entry for cff_services.
+
+ * src/sfnt/ttcmap0.c: Exit loop after a format match has been found.
+ Suggested by Steve Hartwell <shspamsink@comcast.net>.
+
+2004-01-03 Masatake YAMATO <jet@gyve.org>
+
+ * src/base/ftobjs.c (destroy_charmaps): New function.
+ (destroy_face, open_face): Use `destroy_charmaps'.
+
+2004-01-01 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2004-01-01 Michael Jansson <mjan@em2-solutions.com>
+
+ * src/winfonts/winfnt.c (FNT_Size_Set_Pixels): Fix sign of
+ size->metrics.descender.
+
+2003-12-31 Wolfgang Domröse <porthos.domroese@harz.de>
+
+ * src/cff/cffgload.c (cff_decoder_parse_charstrings)
+ [FT_DEBUG_LEVEL_TRACE]: Use `%ld' in FT_TRACE4.
+ <cff_op_flex1>: Change type of dx and dy to FT_Pos and remove
+ cast for accessing arguments.
+
+2003-12-31 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Revert previous
+ change. It's not necessary.
+
+2003-12-29 Smith Charles <smith.charles@free.fr>
+
+ * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle `repeated
+ flags set' correctly.
+
+2003-12-29 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffobjs.c (cff_face_init): Fix memory leak by deallocating
+ `full' and `weight' properly.
+ * src/cff/cffgload.c (cff_decoder_parse_charstrings)
+ <cff_op_hintmask> [FT_DEBUG_LEVEL_TRACE]: Use `0x' as prefix for
+ tracing output.
+
+2003-12-26 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/sfnt.h (TT_Set_SBit_Strike_Func):
+ Use FT_UInt for ppem values.
+ * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Use FT_UInt for
+ ppem values.
+ * src/sfnt/ttsbit.h: Updated.
+
+ * src/base/ftobjs.c (FT_Set_Pixel_Sizes): Don't allow ppem values
+ larger than -0FFFF.
+
+2003-12-25 Werner Lemberg <wl@gnu.org>
+
+ * src/base/fttrigon.c, src/base/ftgloadr.c: Inlude
+ FT_INTERNAL_OBJECTS_H.
+
+ * src/base/ftstroke.c (FT_Outline_GetInsideBorder,
+ FT_Outline_GetOutsideBorder): s/or/o/ to make it compile with
+ C++ compilers.
+
+ * src/cache/ftcmru.c, include/freetype/cache/ftcmru.h:
+ s/select/selection/ to avoid compiler warning.
+ * src/cff/cffload.h: s/select/ftselect/ to avoid potential
+ compiler warning.
+
+2003-12-24 Werner Lemberg <wl@gnu.org>
+
+ * src/cache/ftcsbits.c (FTC_SNode_Weight):
+ s/FTC_SBIT_ITEM_PER_NODE/FTC_SBIT_ITEMS_PER_NODE/.
+
+2003-12-24 David Turner <david@freetype.org>
+
+ * Fixed compilation problems in the cache sub-system.
+
+ * Partial updates to src/autofit.
+
+ * Jamfile (FT2_COMPONENTS): Add autofit module.
+
+2003-12-23 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffgload.c (cff_lookup_glyph_by_stdcharcode): Handle
+ CID-keyed fonts.
+
+2003-12-23 David Turner <david@freetype.org>
+
+ * include/freetype/internal/ftobjs.h (FT_PAD_FLOOR, FT_PAD_ROUND,
+ FT_PAD_CEIL, FT_PIX_FLOOR, FT_PIX_ROUND, FT_CEIL): New macros. They
+ are used to avoid compiler warnings with very pedantic compilers.
+ Note that `(x) & -64' causes a warning if (x) is not signed. Use
+ `(x) & ~63' instead!
+ Updated all related code.
+
+ Add support for extraction of `inside' and `outside' borders.
+
+ * src/base/ftstroke.c (FT_StrokerBorder): New enumeration.
+ (FT_Outline_GetInsideBorder, FT_Outline_GetOutsideBorder,
+ FT_Stroker_GetBorderCounts, FT_Stroker_ExportBorder): New functions.
+ (FT_StrokeBorderRec): New boolean member `valid'.
+ (ft_stroke_border_get_counts): Updated.
+ * include/freetype/ftstroke.h: Updated.
+
+2003-12-22 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/ftwinfnt.h (FT_WinFNT_ID_*): New definitions
+ to describe the `charset' field in FT_WinFNT_HeaderRec.
+ * src/winfonts/winfnt.c (FNT_Face_Init): Set encoding to
+ FT_ENCODING_NONE except for FT_WinFNT_ID_MAC.
+
+ * include/freetype/freetype.h (FT_Encoding): Improve comment,
+ based on work by Detlef Würkner <TetiSoft@apg.lahn.de>.
+
+ * docs/CHANGES: Updated.
+
+2003-12-22 David Turner <david@freetype.org>
+
+ * include/freetype/ftcache.h,
+ include/freetype/cache/ftcmanag.h,
+ include/freetype/cache/ftccache.h,
+ include/freetype/cache/ftcmanag.h,
+ include/freetype/cache/ftcmru.h (added),
+ include/freetype/cache/ftlru.h (removed),
+ include/freetype/cache/ftcsbits.h,
+ include/freetype/cache/ftcimage.h,
+ include/freetype/cache/ftcglyph.h,
+ src/cache/ftcmru.c,
+ src/cache/ftcmanag.c,
+ src/cache/ftccache.c,
+ src/cache/ftcglyph.c,
+ src/cache/ftcimage.c,
+ src/cache/ftcsbits.c,
+ src/cache/ftccmap.c,
+ src/cache/ftcbasic.c (added),
+ src/cache/ftclru.c (removed):
+
+ *Complete* rewrite of the cache sub-system to `solve' the
+ following points:
+
+ - all public APIs have been moved to FT_CACHE_H, everything
+ under `include/freetype/cache' is only needed by client
+ applications that want to implement their own caches
+
+ - a new function named FTC_Manager_RemoveFaceID to deal
+ with the uninstallation of FaceIDs
+
+ - the image and sbit cache are now abstract classes, that
+ can be extended much more easily by client applications
+
+ - better performance in certain areas. Further optimizations
+ to come shortly anyway...
+
+ - the FTC_CMapCache_Lookup function has changed its signature,
+ charmaps can now only be retrieved by index
+
+ - FTC_Manager_Lookup_Face => FTC_Manager_LookupFace
+ FTC_Manager_Lookup_Size => FTC_Manager_LookupSize (still in
+ private header for the moment)
+
+2003-12-21 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1load.c (parse_dict): Stop parsing if `eexec' keyword
+ is encountered.
+
+2003-12-19 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 32. For
+ example, the Japanese Hiragino font already contains 15 subfonts.
+
+ * src/cff/cffload.c (cff_font_load): Deallocate `sids' array for
+ CID-keyed fonts.
+
+ * devel/ftoption.h: Define FT_DEBUG_MEMORY.
+
+2003-12-18 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/ttnameid.h (TT_ADOBE_ID_LATIN_1): New macro.
+ * src/type1/t1objs.c (T1_Face_Init): Use TT_ADOBE_ID* values.
+
+2003-12-18 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cfftypes.h (CFF_FontRecDictRec): Change type of
+ `cid_count' to `FT_ULong'.
+
+ * src/cff/cffgload.c (cff_slot_load): Take care of empty `cids'
+ array.
+
+ * src/cff/cffload.c (cff_charset_done): Free `cids' array.
+ (cff_font_load): Create cids array only for CID-keyed fonts which
+ are subsetted.
+
+ * src/cff/cffobjs.c (cff_face_init): Check the availability of
+ the PSNames modules for non-pure CFFs also.
+ Set FT_FACE_FLAG_GLYPH_NAMES for a non-pure CFF also if it isn't
+ CID-keyed.
+
+ * src/cff/rules.mk (CFF_DRV_H): Add cfftypes.h.
+
+2003-12-17 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfobjs.c (sfnt_init_face): Don't set
+ FT_FACE_FLAG_GLYPH_NAMES if the font contains a version 3.0 `post'
+ table.
+
+ * docs/CHANGES: Updated.
+
+2003-12-17 Masatake YAMATO <jet@gyve.org>
+
+ Add new function FT_Get_CMap_Language_ID to extract the language ID
+ for TrueType/sfnt fonts.
+
+ * include/freetype/internal/services/svttcmap.h: New file.
+ * include/freetype/internal/ftserv.h (FT_SERVICE_TT_CMAP_H): Add
+ svttcmap.h.
+
+ * src/sfnt/sfdriver.c: Include ttcmap0.h.
+ (tt_service_get_cmap_info): New service.
+ (sfnt_services): Updated.
+
+ * src/sfnt/ttcmap0.c (tt_cmap*_get_info): New functions.
+ (tt_cmap*_class_rec): Add tt_cmap*_get_info members.
+ (tt_get_cmap_info): New function.
+ * src/sfnt/ttcmap0.h: Include FT_SERVICE_TT_CMAP_H.
+ (TT_CMap_ClassRec): New field `get_cmap_info'.
+ (tt_get_cmap_info): New declaration.
+
+ * src/base/ftobjs.c: Include FT_SERVICE_TT_CMAP_H.
+ (FT_Get_CMap_Language_ID): New function implementation.
+ * include/freetype/tttables.h (FT_Get_CMap_Language_ID): New
+ function declaration.
+
+2003-12-16 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: Removed. Obsolete.
+
+ * include/freetype/internal/sfnt.h (SFNT_Interface): Remove
+ obsolete fields `load_charmap' and `free_charmap'.
+ (TT_CharMap_Load_Func, TT_CharMap_Free_Func): Removed.
+ * src/sfnt/sfnt.c: Don't include ttcmap.c.
+ * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttcmap.c.
+ * src/sfnt/ttload.c: Don't include ttcmap.h.
+ * src/sfnt/sfdriver.c: Don't include ttcmap.h.
+ (sfnt_interface): Updated.
+
+ * include/freetype/internal/tttypes.h (TT_TableDirRec,
+ TT_CMapDirRec, TT_CMapDirEntryRec, TT_CMap0, TT_CMap2SubHeaderRec,
+ TT_CMap2Rec, TT_CMap4Segment, TT_CMap4Rec, TT_CMap6,
+ TT_CMapGroupRec, TT_CMap8_12Rec, TT_CMap10Rec, TT_CharMap_Func,
+ TT_CharNext_Func, TT_CMapTableRec, TT_CharMapRec): Removed.
+ Obsolete.
+ * src/cff/cffobjs.h (CFF_CharMapRec): Removed. Obsolete.
+
+2003-12-15 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2003-12-15 Wolfgang Domröse <porthos.domroese@harz.de>
+
+ * builds/atari/*: New directory for building FreeType 2 on Atari
+ with the PureC compiler.
+
+2003-12-12 Wolfgang Domröse <porthos.domroese@harz.de>
+
+ * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add
+ cast.
+ * src/cff/cffdrivr.c (cff_ps_has_glyph_names): Assure that return
+ value is either 0 or 1.
+
+2003-12-12 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffdrivr.c (cff_get_glyph_name): Improve error message.
+ (cff_get_name_index): Return if no PSNames service is available.
+ (cff_ps_has_glyph_names): Handle CID-keyed fonts correctly.
+ * src/cff/cfftypes.h (CFF_CharsetRec): New field `cids', used for
+ CID-keyed fonts. This is the inverse mapping of `sids'.
+ * src/cff/cffload.c (cff_charset_load): New argument `invert'.
+ Initialize charset->cids if `invert' is set.
+ (cff_font_load): In call to cff_charset_load, set `invert' to true
+ for CID-keyed fonts.
+ * src/cff/cffgload.c (cff_slot_load): Handle glyph index as CID
+ and map it to the real glyph index.
+
+ * docs/CHANGES: Updated.
+
+2003-12-11 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffobjs.c (cff_face_init): Don't set
+ FT_FACE_FLAG_GLYPH_NAMES for CID-keyed fonts.
+ Don't construct a cmap for CID-keyed fonts.
+
+2003-12-10 Werner Lemberg <wl@gnu.org>
+
+ Use implementation specific SID value 0xFFFF to indicate that
+ a dictionary element is missing.
+
+ * src/cff/cffload.c (cff_subfont_load): Initialize all fields
+ which hold SIDs to 0xFFFF.
+ (cff_index_get_sid_string): Handle SID value 0xFFFF.
+ Handle case where `psnames' is zero.
+ (cff_font_load): Updated.
+ Don't load encoding for CID-keyed CFFs.
+
+ * src/cff/cffobjs.c (cff_face_init): Updated.
+ Don't check for PSNames module if font is CID-keyed.
+ Compute style name properly (using the same algorithm as in the
+ CID driver).
+ Fix computation of style flags.
+
+ * src/cff/cfftoken.h: Comment out handling of base_font_name.
+ Rename `postscript' field to `embedded_postscript'
+ * src/cff/cfftypes.h (CFF_FontRecDictRec): Remove `base_font_name'
+ and `postscript'.
+
+2003-12-10 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ * src/pcf/pcfdrivr.c (pcf_get_charset_id): New function (a clone
+ of the similar BDF function).
+ (pcf_service_bdf): Use it.
+
+2003-12-09 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfobjs.c (sfnt_load_face): Set FT_FACE_FLAG_GLYPH_NAMES
+ only if a `post' table is present.
+
+2003-12-09 George Williams <gww@silcom.com>
+
+ * src/base/ftobjs.c (load_mac_face): Recent versions of Linux
+ support Mac's HFS+ file system, thus enable code to read /rsrc on
+ non-Macintosh platforms also.
+
+2003-12-08 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/psaux.h (PS_TableRec): Change type
+ of `lengths' to FT_PtrDist.
+ (T1_DecoderRec): Change type of `subrs_len' to FT_PtrDist.
+ * include/freetype/internal/t1types.h (T1_FontRec): Change type
+ of `subrs_len' and `charstrings_len' to FT_PtrDist.
+
+ * src/base/ftobjs.c (Mac_Read_POST_Resource): Replace `junk'
+ variable with better solution.
+ (IsMacResource): Remove unused variable `map_len'.
+ Replace `junk' variable with better solution.
+ (FT_Open_Face) [!FT_MACINTOSH]: Add conditional
+ FT_CONFIG_OPTION_MAC_FONTS.
+
+2003-12-08 Wolfgang Domröse <porthos.domroese@harz.de>
+
+ * src/autohint/ahhint.c (ah_hinter_hint_edges,
+ ah_hinter_align_strong_points): Add some casts.
+
+ * src/base/ftoutln.c (FT_OrientationExtremumRec): Change type
+ of `pos' to FT_Long.
+
+ * src/base/ftobjs.c (Mac_Read_POST_Resource,
+ Mac_Read_sfnt_Resource): Change type of `len' to FT_Long.
+
+ * src/type42/t42parse.c (t42_parse_dict): Add cast for `n_keywords'.
+
+2003-12-07 Werner Lemberg <wl@gnu.org>
+
+ * docs/raster.txt: New file, taken from FreeType 1 and completely
+ revised.
+
+2003-12-04 Masatake YAMATO <jet@gyve.org>
+
+ * src/type1/t1driver.c (Get_Interface): Remove FT_UNUSED for
+ t1_interface. t1_interface is used.
+
+2003-11-27 David Turner <david@freetype.org>
+
+ * src/pfr/pfrdrivr.c (pfr_get_metrics): Revert incorrect change of
+ 2003-11-23: For PFR fonts, metrics->x_scale and metrics->y_scale are
+ the scaling values for outline units, not for metric units.
+
+2003-11-25 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftcalc.c, include/freetype/internal/ftcalc.h
+ (FT_MulDiv_No_Round): Surround code with `#ifdef
+ TT_CONFIG_OPTION_BYTECODE_INTERPRETER ... #endif'.
+
+2003-11-23 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftcalc.c (FT_MulDiv_No_Round): New function (32 and
+ 64 bit version).
+ * include/freetype/internal/ftcalc.h: Updated.
+
+ * src/truetype/ttinterp.c (TT_MULDIV_NO_ROUND): New macro.
+ (TT_INT64): Removed.
+ (DO_DIV): Use TT_MULDIV_NO_ROUND.
+
+ * src/pfr/pfrdrivr.c (pfr_get_metrics): Directly use
+ metrics->x_scale and metrics->y_scale.
+
+2003-11-22 Rogier van Dalen <R.C.van.Dalen@umail.leidenuniv.nl>
+
+ * src/truetype/ttinterp.c (CUR_Func_move_orig): New macro.
+ (Direct_Move_Orig, Direct_Move_Orig_X, Direct_Move_Orig_Y): New
+ functions. Similar to Direct_Move, Direct_Move_X, and
+ Direct_Move_Y but without touching.
+ (Compute_Funcs): Use new functions.
+
+ (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid,
+ Round_Up_To_Grid, Round_To_Double_Grid, Round_Super,
+ Round_Super_45): Fix rounding of value zero.
+
+ (DO_DIV): Don't use TT_MULDIV.
+
+ (Ins_SHC): This instruction actually touches the points.
+ (Ins_MSIRP): Fix undocumented behaviour.
+
+ * src/truetype/ttinterp.h (TT_ExecContextRec): Updated.
+
+2003-11-22 Werner Lemberg <wl@gnu.org>
+
+ * docs/VERSION.DLL, docs/CHANGES: Updated.
+
+ * src/base/ftobjs.c (FT_Set_Char_Size): Make metrics->x_scale and
+ metrics->y_scale really precise.
+
+ (FT_Load_Glyph): Update computation of linearHoriAdvance and
+ linearVertAdvance.
+
+ * src/truetype/ttinterp.c (Update_Max): Use FT_REALLOC.
+
+2003-11-22 David Turner <david@freetype.org>
+
+ * src/autofit/*: More updates.
+
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
+ * builds/unix/configure.ac (version_info): Set to 9:6:3.
+ * README: Updated.
+
+2003-11-13 John A. Boyd Jr. <jaboydjr@netwalk.com>
+
+ * src/bdf/bdfdrivr.c (bdf_interpret_style), src/pcf/pcfread.c
+ (pcf_interpret_style): Replace spaces with dashes in properties
+ SETWIDTH_NAME and ADD_STYLE_NAME to simplify parsing.
+
+2003-11-11 Werner Lemberg <wl@gnu.org>
+
+ * docs/CHANGES: Updated.
+
+2003-11-11 John A. Boyd Jr. <jaboydjr@netwalk.com>
+
+ Handle SETWIDTH_NAME and ADD_STYLE_NAME properties for BDF and PCF
+ fonts.
+
+ * src/bdf/bdfdrivr.c (bdf_interpret_style): New auxiliary function.
+ (BDF_Face_Init): Don't handle style properties but call
+ bdf_interpret_style.
+
+ * src/pcf/pcfread.c (pcf_interpret_style): New auxiliary function.
+ (pcf_load_font): Don't handle style properties but call
+ pcf_interpret_style.
+
+2003-11-07 Werner Lemberg <wl@gnu.org>
+
+
+ * Version 2.1.7 released.
+ =========================
+
+
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
+
+ * builds/unix/ft2unix.h: Fix comments.
+
+ * builds/unix/ftconfig.in: Synchronized with ANSI version.
+ Use `#undef' in templates as recommended in the autoconf
+ documentation.
+ Since real `#undef' lines don't survive during configuration, use
+ `/undef' instead; the postprocessing facility of the
+ AC_CONFIG_HEADERS autoconf macro converts them to `#undef'.
+
+ * builds/unix/install.mk (install): Install Unix version of
+ `ftconfig.h'.
+
+ * builds/unix/unix-cc.in (CFLAGS): Set FT_CONFIG_CONFIG_H macro
+ to include the correct `ftconfig.h' file.
+
+ * builds/unix/ft-munmap.m4 (FT_MUNMAP_DECL): Removed.
+ (FT_MUNMAP_PARAM): Updated syntax to autoconf 2.59.
+
+ * builds/unix/freetype2.m4: Updated syntax to autoconf 2.59.
+
+ * builds/unix/configure.ac: Use AC_CONFIG_HEADERS instead of
+ AC_CONFIG_HEADER to create ftconfig.h, and use second argument
+ to replace `/undef' with `#undef'.
+ Don't use FT_MUNMAP_DECL but AC_CHECK_DECLS to check for munmap.
+ Use AS_HELP_STRING in AC_ARG_WITH.
+ Update syntax to autoconf 2.59.
+
+ * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
+ --copy' from libtool 1.5.
+ * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
+ automake 1.7.8.
+ * builds/unix/configure: Regenerated with autoconf 2.59.
+ * builds/unix/config.guess, builds/unix/config.sub: Updated from
+ `config' CVS module at subversions.gnu.org
+ * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
+ `texinfo' CVS module at subversions.gnu.org.
+
+ * builds/vms/ftconfig.h: Synchronized with ANSI version.
+
+ * docs/CUSTOMIZE: Fix documentation error.
+ * docs/CHANGES, docs/VERSION.DLL, docs/release: Updated.
+
+ * builds/freetype.mk (refdoc): Updated --title.
+
+2003-11-07 David Turner <david@freetype.org>
+
+
+ * Version 2.1.6 released.
+ =========================
+
+
+ * install: Removed. Obsolete.
+
+2003-11-04 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfdriver.c: Include FT_SERVICE_SFNT_H.
+ (sfnt_service_sfnt_table): New service.
+ (sfnt_services): Updated.
+
+ * docs/license.txt: Reworded.
+
+2003-11-03 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/*: Add a guard to all public header files which
+ load FT_FREETYPE_H to reject freetype.h from FreeType 1.
+
+2003-11-02 Patrick Welche <prlw1@newn.cam.ac.uk>
+
+ * builds/unix/freetype2.m4, builds/unix/ft-munmap.m4: Protect
+ first argument of AC_DEFUN with brackets to avoid possible
+ expansion.
+
+2003-11-02 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/cache/ftcglyph.h: Don't include stddef.h.
+
+ * include/freetype/freetype.h: Fix check for ft2build.h.
+
+2003-11-01 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/freetype.h: Check that ft2build.h has been
+ loaded first.
+
+ * src/base/fttype1.c (FT_Get_PS_Font_Info): Fix incorrectly applied
+ patch.
+
+2003-10-31 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ * src/base/fttype1.c (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names):
+ Fix parameter order in calls to FT_FACE_FIND_SERVICE.
+
+2003-10-31 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/ftserv.h
+ (FT_SERVICE_POSTSCRIPT_NAMES_H): Removed. Unused.
+
+ * src/type42/t42drivr.c (t42_services): Updated.
+
+2003-10-29 David Turner <david@freetype.org>
+
+ * include/freetype/internal/bdftypes.h: Removed. Obsolete.
+ * src/base/ftbdf.c: Updated.
+
+ * include/freetype/internal/cfftypes.h: Moved to...
+ * src/cff/cfftypes.h: This place since no other module needs to
+ know about those types.
+
+ * include/freetype/internal/t42types.h: Moved to...
+ * src/type42/t42types.h: This place since no other module needs to
+ know about those types.
+
+ * include/freetype/internal/services/svbdf.h: Include FT_BDF_H.
+
+ * include/freetype/internal/services/svpsname.h: Renamed to...
+ * include/freetype/internal/services/svpscmap.h: This.
+ Updated `FT_Service_PsNames' -> `FT_Service_PsCMaps' and
+ `POSTSCRIPT_NAMES' -> `POSTSCRIPT_CMAPS' everywhere.
+
+ * include/freetype/internal/services/svpsinfo.h: New file, providing
+ PostScript info service.
+
+ * include/freetype/internal/ftserv.h (FT_SERVICE_POSTSCRIPT_CMAPS_H,
+ FT_SERVICE_POSTSCRIPT_INFO_H): New macros for svpscmap.h and
+ svpsinfo.h.
+ * include/freetype/internal/internal.h (FT_INTERNAL_TYPE42_TYPES_H,
+ FT_INTERNAL_CFF_TYPES_H, FT_INTERNAL_BDF_TYPES_H): Removed.
+
+ * src/base/fttype1.c: Don't include FT_INTERNAL_TYPE1_TYPES_H and
+ FT_INTERNAL_TYPE42_TYPES_H but FT_INTERNAL_SERVICE_H and
+ FT_SERVICE_POSTSCRIPT_INFO_H.
+ (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names): Use new
+ POSTSCRIPT_INFO service.
+
+ * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
+ (cff_ps_has_glyph_names): New function.
+ (cff_service_ps_info): New service.
+ (cff_services): Updated.
+
+ * src/cff/cffload.h, src/cff/cffobjs.h, src/cff/cffparse.h: Don't
+ include FT_INTERNAL_CFF_TYPES_H but cfftypes.h directly.
+
+ * src/cif/cidriver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
+ (cid_ps_get_font_info): New function.
+ (cid_service_ps_info): New service.
+ (cid_services): Updated.
+
+ * src/type1/t1driver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
+ (t1_ps_get_font_info, t1_ps_has_glyph_names): New functions.
+ (t1_service_ps_info): New service.
+ (t1_services): Updated.
+
+ * src/type42/t42drivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
+ (t42_ps_get_font_info, t42_ps_has_glyph_names): New functions.
+ (t42_service_ps_info): New service.
+
+ * src/type42/t42objs.h: Don't include FT_INTERNAL_TYPE42_TYPES_H
+ but t42types.h directly.
+
+ * src/psnames/psmodule.c (psnames_interface, psnames_services):
+ Renamed to...
+ (pscmaps_interface, pscmaps_services): This.
+ Updated all users.
+
+
+ * src/gzip/infblock.c (inflate_blocks): Remove compiler warning.
+
+2003-10-22 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1load.c (parse_encoding): Handle `/Encoding [ ... ]'.
+
+ * src/type1/t1parse.c (T1_Get_Private_Dict): Test whether `eexec'
+ is real.
+
+ * src/type42/t42parse.c (t42_parse_encoding): Improve boundary
+ checking while parsing.
+
+ * docs/CHANGES: Updated.
+
+2003-10-21 Josselin Mouette <joss@debian.org>
+
+ * include/freetype/internal/t1types.h (T1_FontRec): `paint_type'
+ and `stroke_width' aren't pointers.
+
+ * src/type42/t42objs.c (T42_Face_Done), src/type1/t1objs.c
+ (T1_Face_Done): Don't free `paint_type' and `stroke_width'.
+
+2003-10-20 Graham Asher <graham.asher@btinternet.com>
+
+ * src/winfonts/winfnt.c (fnt_cmap_class): Fix position of `const'.
+
+2003-10-19 Werner Lemberg <wl@gnu.org>
+
+ * src/autohint/ahhint.c (ah_hinter_load_glyph): Patch from
+ 2003-08-18 introduced a severe bug (FT_Render_Glyph was called
+ twice under some circumstances, causing strange results). This
+ is fixed now by clearing the FT_LOAD_RENDER bit of `load_flags'.
+
+ * src/base/ftpfr.c (FT_Get_PFR_Metrics): Initialize `error'.
+ * src/psaux/psobjs.c (ps_tobytes): Initialize `n'.
+ * src/type42/t42parse.c (t42_parse_sfnts): Initialize `string_size'.
+
+2003-10-16 Werner Lemberg <wl@gnu.org>
+
+ Completely revised Type 42 parser. It now handles both fonts
+ produced with ttftot42 (tested version 0.3.1) and
+ TrueTypeToType42.ps (tested version May 2001; it is necessary to
+ fix the broken header comment to be `%!PS-TrueTypeFont...').
+
+ * src/type42/t42objs.c (T42_GlyphSlot_Load): Change fourth
+ parameter to `FT_UInt'.
+ * src/type42/t42objs.h: Updated.
+
+ * src/type42/t42parse.h (T42_ParserRec): Change type of `in_memory'
+ to FT_Bool.
+ (T42_Loader): Change type of `num_chars' and `num_glyphs' to
+ FT_UInt.
+ Add `swap_table' element.
+ * src/type42/t42parse.c (T42_KEYWORD_COUNT, T1_ToFixed,
+ T1_ToCoordArray, T1_ToTokenArray): Removed.
+ (T1_ToBytes): New macro.
+ (t42_is_alpha, t42_hexval): Removed.
+ (t42_is_space): Handle `\0'.
+ (t42_parse_encoding): Updated to use new PostScript parser routines
+ from psaux.
+ Handle `/Encoding [ ... ]' also.
+ (T42_Load_Status): New enumeration.
+ (t42_parse_sfnts): Updated to use new PostScript parser routines
+ from psaux.
+ (t42_parse_charstrings): Updated to use new PostScript parser
+ routines from psaux.
+ Handle `/CharStrings << ... >>' also.
+ Don't expect that /.notdef is the first element in dictionary. Copy
+ code from type1 module to handle this.
+ (t42_parse_dict): Updated to use new PostScript parser routines
+ from psaux.
+ Remove code for synthetic fonts (which can't occur in Type 42
+ fonts).
+ (t42_loader_done): Release `swap_table'.
+
+ * src/psaux/psobjs.c (skip_string): Increase `cur' properly.
+
+ * src/type1/t1load.c (parse_charstrings): Make test for `.notdef'
+ faster.
+
+2003-10-15 Graham Asher <graham.asher@btinternet.com>
+
+ * src/autohint/ahglobal.c (blue_chars), src/winfonts/winfnt.c
+ (fnt_cmap_class_rec, fnt_cmap_class), src/bdf/bdflib.c (empty,
+ _num_bdf_properties), src/gzip/infutil.c (inflate_mask),
+ src/gzip/inffixed.h (fixed_bl, fixed_bd, fixed_tl, fixed_td),
+ src/gzip/inftrees.h (inflate_trees_fixed), srf/gzip/inftrees.c
+ (inflate_trees_fixed): Decorate with more `const' to avoid
+ writable global variables which are disallowed on ARM.
+
+2003-10-08 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1load.c (parse_font_matrix, parse_charstrings): Remove
+ code specially for synthetic fonts; this is handled elsewhere.
+ (parse_encoding): Remove code specially for synthetic fonts; this is
+ handled elsewhere.
+ Improve boundary checking while parsing.
+ (parse_dict): Improve boundary checking while parsing.
+ Use ft_memcmp to simplify code.
+
+2003-10-07 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1load.c (parse_subrs, parse_dict): Handle synthetic
+ fonts properly.
+ (parse_charstrings): Copy correct number of characters into
+ `name_table'.
+
+2003-10-06 Werner Lemberg <wl@gnu.org>
+
+ Heavy modification of the PS parser to handle comments and strings
+ correctly. This doesn't slow down the loading of PS fonts
+ significantly since charstrings aren't affected.
+
+ * include/freetype/config/ftstdlib.h (ft_xdigit): Renamed to...
+ (ft_isxdigit): This. Updated all callers.
+ (ft_isdigit): New alias to `isdigit'.
+
+ * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): Renamed
+ `skip_alpha' to `skip_PS_token'.
+ Add parameter to `to_bytes' and change some argument types.
+
+ * src/psaux/psauxmod.c (ps_parser_funcs): Updated.
+ * src/psaux/psobjs.c (ft_char_table): New array to map character
+ codes (ASCII and EBCDIC) of digits to numbers.
+ (OP): New auxiliary macro holding either `>=' or `<' depending on
+ the character encoding.
+ (skip_comment): New function.
+ (skip_spaces): Use it.
+ (skip_alpha): Removed.
+ (skip_literal_string, skip_string): New functions.
+ (ps_parser_skip_PS_token): New function. This is a better
+ replacement of...
+ (ps_parser_skip_alpha): Removed.
+ (ps_parser_to_token, ps_parser_to_token_array): Updated.
+ (T1Radix): Rewritten, using `ft_char_table'.
+ (t1_toint): Renamed to...
+ (ps_toint): This. Update all callers.
+ Use `ft_char_table'.
+ (ps_tobytes): Add parameter to handle delimiters and change some
+ argument types.
+ Use `ft_char_table'.
+ (t1_tofixed): Renamed to...
+ (ps_tofixed): This. Update all callers.
+ Use `ft_char_table'.
+ (t1_tocoordarray): Renamed and updated to...
+ (ps_tocoordarray): This. Update all callers.
+ (t1_tofixedarray): Renamed and updated to...
+ (ps_tofixedarray): This. Update all callers.
+ (t1_tobool): Renamed to...
+ (ps_tobool): This. Update all callers.
+ (ps_parser_load_field): Updated.
+ (ps_parser_load_field_table): Use `T1_MAX_TABLE_ELEMENTS'
+ everywhere.
+ (ps_parser_to_int, ps_parser_to_fixed, ps_parser_to_coord_array,
+ ps_parser_to_fixed_array): Skip spaces. Updated.
+ (ps_parser_to_bytes): Add parameter to handle delimiters and change
+ some argument types. Updated.
+ * src/psaux/psobjs.h: Updated.
+
+ * src/cid/cidload.c (cid_parse_dict): Updated.
+ * src/cid/cidparse.c (cid_parser_new): Check whether the `StartData'
+ token was really found.
+ * src/cid/cidparse.h (cid_parser_skip_alpha): Updated and renamed
+ to...
+ (cid_parser_skip_PS_token): This.
+
+ * src/type1/t1parse.h (T1_ParserRec): Use `FT_Bool' for boolean
+ fields.
+ (T1_Skip_Alpha): Replaced with...
+ (T1_Skip_PS_Token): This new macro.
+ * src/type1/t1parse.c (hexa_value): Removed.
+ (T1_Get_Private_Dict): Use `ft_isxdigit' and
+ `psaux->ps_parser_funcs_to_bytes' for handling ASCII hexadecimal
+ encoding.
+ After decrypting, replace the four random bytes at the beginning
+ with whitespace.
+ * src/type1/t1load.c (t1_allocate_blend): Use proper error values.
+ (parser_blend_design_positions, parse_blend_design_map,
+ parse_weight_vector): Updated.
+ (is_space): Handle `\f' also.
+ (is_name_char): Removed.
+ (read_binary_data): Updated.
+ (parse_encoding): Use `ft_isdigit'.
+ Updated.
+ (parse_subrs): Updated.
+ (TABLE_EXTEND): New macro.
+ (parse_charstrings): Updated.
+ Provide a workaround for buggy fonts which have more entries in the
+ /CharStrings dictionary then expected; the function now adds some
+ slots and skips entries which still exceed the new limit.
+ (parse_dict): Updated.
+ Terminate on the token `closefile'.
+
+ * src/type42/t42parse.c (T1_Skip_Alpha): Replaced with...
+ (T1_Skip_PS_Token): This new macro. Updated all callers.
+ (t42_parse_encoding): Use `ft_isdigit'.
+
+
+ * src/base/ftmm.c (ft_face_get_mm_service): Return FT_Err_OK if
+ success.
+
+2003-10-05 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/ftmodule.h: Renamed to...
+ * include/freetype/ftmodapi.h: This to avoid duplicate file names.
+ * include/freetype/config/ftheader.h (FT_MODULE_H): Updated.
+
+2003-10-04 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftoutln.c (FT_OrientationExtremumRec,
+ FT_Outline_Get_Orientation): Trivial typo fixes to make it compile.
+
+2003-10-02 Markus F.X.J. Oberhumer <markus@oberhumer.com>
+
+ * src/winfonts/winfnt.c (FT_WinFNT_HeaderRec): `color_table_offset'
+ has four bytes, not two.
+ Fix all users.
+ (fnt_font_load, FNT_Load_Glyph): Add more font validity tests.
+
+2003-10-01 David Turner <david@freetype.org>
+
+ * src/autofit/*: Adding first source files of the new multi-script
+ `auto-fitter'.
+
+ * include/freetype/ftoutln.h (FT_Orientation): New enumeration.
+ (FT_Outline_Get_Orientation): New declaration.
+
+ * src/base/ftoutln.c (FT_OrientationExtremumRec): New structure.
+ (ft_orientation_extremum_compute): New auxiliary function.
+ (FT_Outline_Get_Orientation): New function to compute the fill
+ orientation of a given glyph outline.
+
+ * include/freetype/internal/ftserv.h (FT_FACE_LOOKUP_SERVICE): Fixed
+ trivial bug which could crash the font engine when a cached service
+ pointer was retrieved.
+
+2003-09-30 Werner Lemberg <wl@gnu.org>
+
+ * src/cid/cidload.c (cid_parse_dict): Skip token if no keyword is
+ found.
+
+ * src/type1/t1parse.c (IS_T1_WHITESPACE, IS_T1_LINESPACE,
+ IS_T1_SPACE): Removed.
+ (PFB_Tag): Removed.
+ (read_pfb_tag): Don't use PFB_Tag.
+
+ * src/type42/t42parse.c (t42_is_space): Handle `\f' also.
+ (t42_parse_encoding): Handle synthetic fonts.
+
+2003-09-29 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/t1types.h: Don't include
+ FT_INTERNAL_OBJECTS_H but FT_INTERNAL_SERVICE_H.
+ * src/truetype/ttobjs.c: Don't include
+ FT_SERVICE_POSTSCRIPT_NAMES_H.
+
+2003-09-29 David Turner <david@freetype.org>
+
+ Added new service to handle glyph name dictionaries, replacing the
+ old internal header named `psnames.h' by `services/svpsname.h'.
+ Note that this is different from `services/svpostnm.h' which only
+ handles the retrieval of PostScript font names for a given face.
+ (Should we merge these two services into a single header?)
+
+ * include/freetype/internal/psnames.h: Removed. Most of its
+ contents is moved to...
+ * include/freetype/internal/services/svpsname.h: New file.
+
+ * include/freetype/internal/services/svpostnm.h
+ (FT_SERVICE_ID_POSTSCRIPT_NAME): Replaced with...
+ (FT_SERVICE_ID_POSTSCRIPT_FONT_NAME): New macro.
+ (PsName): Service named changed to...
+ (PsFontName): This.
+ Updated `FT_Service_PsName' -> `FT_Service_PsFontName' and
+ `POSTSCRIPT_NAME' -> `POSTSCRIPT_FONT_NAME' everywhere.
+
+ * include/freetype/internal/internal.h
+ (FT_INTERNAL_POSTSCRIPT_NAMES_H): Removed.
+ * include/freetype/internal/psaux.h: Include
+ FT_SERVICE_POSTSCRIPT_NAMES_H.
+ (T1_DecoderRec): Updated type of `psnames'.
+ * include/freetype/internal/t1types.h: Don't include
+ FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
+ Include FT_INTERNAL_OBJECTS_H.
+ * include/freetype/internal/t42types.h: Don't include
+ FT_INTERNAL_POSTSCRIPT_NAMES_H.
+ * include/freetype/internal/tttypes.h (TT_FaceRec): Updated.
+
+ * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): Changed
+ order of parameters. All callers updated.
+ (FT_FACE_FIND_GLOBAL_SERVICE): New macro to look up a service
+ globally, checking all modules.
+ (FT_ServiceCacheRec): Updated.
+ (FT_SERVICE_POSTSCRIPT_NAMES_H): New macro for accessing
+ `svpsname.h'.
+
+ * include/freetype/internal/ftobjs.h, src/base/ftobjs.c
+ (ft_module_get_service): New function.
+
+ * src/cff/cffdrivr.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
+ but FT_SERVICE_POSTSCRIPT_NAMES_H.
+ (cff_get_glyph_name, cff_get_name_index): Use new POSTSCRIPT_NAMES
+ service.
+ * src/cff/cffcmap.c (cff_cmap_unicode_init): Updated.
+ * src/cff/cffload.c, src/cff/cffload.h: Don't include
+ FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
+ (cff_index_get_sid_string): Updated.
+ * src/cff/cffobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
+ but FT_SERVICE_POSTSCRIPT_NAMES_H.
+ (cff_face_init): Use new POSTSCRIPT_NAMES service.
+ * src/cff/cffobjs.h: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
+ but FT_SERVICE_POSTSCRIPT_NAMES_H.
+
+ * src/cid/cidobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
+ but FT_SERVICE_POSTSCRIPT_NAMES_H.
+ (cid_face_init): Use new POSTSCRIPT_NAMES service.
+ * src/cid/cidriver.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H.
+
+ * src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Use
+ new POSTSCRIPT_NAMES service.
+ * src/psaux/t1decode.h (t1_lookup_glyph_by_stdcharcode,
+ t1_decode_init): Use new POSTSCRIPT_NAMES service.
+ * src/psaux/t1cmap.h, src/psaux/t1decode.h: Dont' include
+ FT_INTERNAL_POSTSCRIPT_NAMES_H.
+
+ * src/psnames/psmodule.c: Don't include
+ FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
+ (ps_build_unicode_table): Renamed to...
+ (ps_unicodes_init): This.
+ (ps_lookup_unicode): Renamed to...
+ (ps_unicodes_char_index): This.
+ (ps_next_unicode): Renamed to...
+ (ps_unicodes_char_next): This.
+ (psnames_interface): Updated.
+ (psnames_services): New services list.
+ (psnames_get_service): New function.
+ (psnames_module_class): Updated.
+
+ * src/sfnt/sfobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
+ but FT_SERVICE_POSTSCRIPT_NAMES_H.
+ (sfnt_init_face): Use new POSTSCRIPT_NAMES service.
+ * src/sfnt/ttpost.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
+ but FT_SERVICE_POSTSCRIPT_NAMES_H.
+ (tt_face_get_ps_name): Updated.
+
+ * src/truetype/ttobjs.c: Don't include
+ FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
+
+ * src/type1/t1driver.c: Don't include
+ FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
+ * src/type1/t1objs.c: Don't include
+ FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
+ (T1_Face_Init): Use new POSTSCRIPT_NAMES service.
+
+ * src/type42/t42drivr.c (t42_get_ps_name): Renamed to...
+ (t42_get_ps_font_name): This.
+ (t42_service_ps_name): Renamed to...
+ (t42_service_ps_font_name): This.
+ (t42_services): Updated.
+ * src/type42/t42objs.c (T42_Face_Init): Use new POSTSCRIPT_NAMES
+ service.
+ * src/type42/t42objs.h: Don't include
+ FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
+
+
+ * src/base/ftglyph.c (FT_Get_Glyph): Don't access `slot' before
+ testing its validity. Reported by Henry Maddocks
+ <maddocks@metservice.com>.
+
+2003-09-21 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE):
+ Fix compilation warning (s/pptr/Pptr/).
+
+ * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H,
+ FT_INTERNAL_FNT_TYPES_H): Removed.
+
+2003-09-21 David Turner <david@freetype.org>
+
+ Migrating the PFR and WINFNT drivers to the new service-based
+ internal API.
+
+ * include/freetype/internal/fnttypes.h: Removed. Most of its data
+ are moved to winfnt.h and...
+ * include/freetype/internal/services/svwinfnt.h: New file.
+
+ * include/freetype/internal/pfr.h: Removed. Most of its data are
+ moved to...
+ * include/freetype/internal/services/svpfr.h: New file.
+
+ * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
+ FT_FACE_LOOKUP_SERVICE): Simplify fix of 2003-09-16 by removing
+ pointer type argument.
+ Updated all callers.
+ Update macro names of services header files.
+
+ * src/base/ftobjs.c (FT_Get_Name_Index): Simplified code.
+
+ * src/base/ftpfr.c: Include FT_SERVICE_PFR_H instead of
+ FT_INTERNAL_PFR_H.
+ (ft_pfr_check, FT_Get_PFR_Metrics, FT_Get_PFR_Kerning,
+ FT_Get_PFR_Advance): Use services provided in `PFR_METRICS'.
+
+ * src/base/ftwinfnt.c: Include FT_SERVICE_WINFNT_H instead of
+ FT_INTERNAL_FNT_TYPES_H.
+ (FT_Get_WinFNT_Header): Use service provided in `WINFNT'.
+
+ * src/pfr/pfrdrivr.c: Include FT_SERVICE_PFR_H and
+ FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_PFR_H.
+ (pfr_service_bdf): Updated.
+ (pfr_services): New services list.
+ (pfr_get_service): New function.
+ (pfr_driver_class): Updated.
+
+ * src/winfonts/winfnt.c: Include FT_SERVICE_WINFNT_H and
+ FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_FNT_TYPES_H.
+ (winfnt_get_header, winfnt_get_service): New functions.
+ (winfnt_service_rec): New structure providing WINFNT services.
+ (winfnt_services): New services list.
+ (winfnt_driver_class): Updated.
+ * src/winfonts/winfnt.h: Add most of the removed fnttypes.h data.
+
+ * src/sfnt/sfdriver.c (sfnt_service_ps_name): Fix typo.
+
+ * src/type1/t1driver.c (t1_service_ps_name): Fix typo.
+
+ * src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrsbit.c,
+ src/psaux/psobjs.c, src/sfnt/sfobjs.c, src/truetype/ttobjs.c,
+ src/type1/t1objs.c, src/type42/t42objs.c: Removing various compiler
+ warnings.
+
+2003-09-19 David Bevan <dbevan@emtex.com>
+
+ * src/type1/t1parse.c (pfb_tag_fields): Removed.
+ (read_pfb_tag): Fix code so that it doesn't fail on end-of-file
+ indicator (0x8003).
+ * docs/CHANGES: Updated.
+
+2003-09-16 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
+ FT_FACE_LOOKUP_SERVICE): Add parameter to pass pointer type.
+ Ugly, I know, but this is needed for compilation with C++ --
+ maybe someone knows a better solution?
+ Updated all callers.
+
+ * src/base/ftobjs.c (FT_Get_Name_Index, FT_Get_Glyph_Name): Remove
+ C++ compiler warnings.
+
+ * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property):
+ Fix order of arguments passed to FT_FACE_FIND_SERVICE.
+
+2003-09-15 Werner Lemberg <wl@gnu.org>
+
+ Avoid header files with identical names.
+
+ * include/freetype/internal/services/bdf.h: Renamed to...
+ * include/freetype/internal/services/svbdf.h: This.
+ Add copyright notice.
+ * include/freetype/internal/services/glyfdict.h: Renamed to...
+ * include/freetype/internal/services/svgldict.h: This.
+ Add copyright notice.
+ * include/freetype/internal/services/multmast.h: Renamed to...
+ * include/freetype/internal/services/svmm.h: This.
+ Add copyright notice.
+ Add FT_BEGIN_HEADER and FT_END_HEADER.
+ * include/freetype/internal/services/sfnt.h: Renamed to...
+ * include/freetype/internal/services/svsfnt.h: This.
+ Add copyright notice.
+ * include/freetype/internal/services/postname.h: Renamed to...
+ * include/freetype/internal/services/svpostnm.h: This.
+ Add copyright notice.
+ * include/freetype/internal/services/xf86name.h: Renamed to...
+ * include/freetype/internal/services/svxf86nm.h: This.
+ Add copyright notice.
+
+ * include/freetype/internal/ftserv.h: Add FT_BEGIN_HEADER and
+ FT_END_HEADER.
+ Add copyright notice.
+ Update macro names of services header files.
+
+ * builds/freetype.mk (SERVICES_DIR): New variable.
+ (BASE_H): Add services header files.
+
+2003-09-11 Werner Lemberg <wl@gnu.org>
+
+ * builds/toplevel.mk (distclean): Remove `builds/unix/freetype2.pc'.
+
+ * src/cff/cffdrivr.c: Don't load headers twice.
+
+ * include/freetype/internal/ftserv.h (FT_SERVICE_SFNT_H): New macro.
+ * src/base/ftobjs.c: Include FT_SERVICE_SFNT_H.
+
+ * src/cff/cffcmap.c: Include `cfferrs.h'.
+ * src/pfr/pfrdrivr.c: Include `pfrerror.h'.
+ * src/sfnt/sfdriver.c: Include `sferrors.h'.
+ * src/psaux/psobjs.h: Add declaration for `ps_parser_to_bytes'.
+
+2003-09-11 David Turner <david@freetype.org>
+
+ Introducing the concept of `module services'. This is the first
+ step towards a massive simplification of the engine's internals, in
+ order to get rid of various numbers of hacks.
+
+ Note that these changes will break source & binary compatibility for
+ authors of external font drivers.
+
+ * include/freetype/config/ftconfig.h (FT_BEGIN_STMNT, FT_END_STMNT,
+ FT_DUMMY_STMNT): New macros.
+
+ * include/freetype/internal/ftserv.h: New file, containing the new
+ structures and macros to provide `services'.
+
+ * include/freetype/internal/internal.h (FT_INTERNAL_EXTENSION_H,
+ FT_INTERNAL_EXTEND_H, FT_INTERNAL_HASH_H, FT_INTERNAL_OBJECT_H):
+ Removed, obsolete.
+ (FT_INTERNAL_SERVICE_H): New macro for `ftserv.h'.
+
+ * include/freetype/internal/services/bdf.h,
+ include/freetype/internal/services/glyfdict.h,
+ include/freetype/internal/services/postname.h,
+ include/freetype/internal/services/xf86name.h: New files.
+
+ * include/freetype/ftmm.h (FT_Get_MM_Func, FT_Set_MM_Design_Func,
+ FT_Set_MM_Blend_Func): Function pointers moved (in modified form)
+ to...
+ * include/freetype/internal/services/multmast.h: New file.
+
+ * include/freetype/internal/sfnt.h (SFNT_Interface): `get_interface'
+ is now of type `FT_Module_Requester'.
+ (SFNT_Get_Interface_Func, SFNT_Load_Table_Func): Function pointers
+ moved (in modified form) to...
+ * include/freetype/internal/services/sfnt.h: New file.
+
+ * include/freetype/tttables.h (FT_Get_Sfnt_Table_Func): Function
+ pointer moved (in modified form) to `services/sfnt.h'.
+
+ * include/freetype/ftmodule.h (FT_Module_Interface): Make it a
+ a typedef to `FT_Pointer'.
+
+ * include/freetype/internal/tttypes.h (TT_FaceRec): Add
+ `postscript_name'.
+ * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
+ `postscript_name'.
+ Add `services' element.
+ (FT_LibraryRec): Remove `meta_class'.
+
+ * src/base/ftbdf.c: Include FT_SERVICE_BDF_H.
+ (test_font_type): Removed.
+ (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Use services
+ provided in `FT_SERVICE_ID_BDF'.
+
+ * src/base/ftmm.c: Include FT_SERVICE_MULTIPLE_MASTERS_H.
+ (ft_face_get_mm_service): New auxiliary function to get services
+ from `FT_SERVICE_ID_MULTI_MASTERS'.
+ (FT_Get_Multi_Master, FT_Set_MM_Design_Coordinates,
+ FT_Set_MM_Blend_Coordinates): Use `ft_face_get_mm_service'.
+
+ * src/base/ftobjs.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and
+ FT_SERVICE_GLYPH_DICT_H.
+ (ft_service_list_lookup): New function to get a specific service.
+ (destroy_face): Updated.
+ (Mac_Read_POST_Resource): Simplify some code.
+ (IsMacResource): Fix warnings.
+ (FT_Get_Name_Index, FT_Get_Glyph_Name): Use services provided in
+ `FT_SERVICE_ID_GLYPH_DICT'.
+ (FT_Get_Postscript_Name): Use service provided in
+ `FT_SERVICE_ID_POSTSCRIPT_NAME'.
+ (FT_Get_Sfnt_Table, FT_Load_Sfnt_Table): Use services provided in
+ `FT_SERVICE_ID_SFNT_TABLE'.
+
+ * src/base/ftxf86.c: Include FT_SERVICE_XFREE86_NAME_H.
+ (FT_Get_X11_Font_Format): Use service provided in
+ `FT_SERVICE_ID_XF86_NAME'.
+
+ * src/bdf/bdfdrivr.c: Include FT_SERVICE_BDF_H and
+ FT_SERVICE_XFREE86_NAME_H.
+ (bdf_get_charset_id): New function.
+ (bdf_service_bdf): New structure providing BDF services.
+ (bdf_services): New services list.
+ (bdf_driver_requester): Use `ft_service_list_lookup'.
+
+ * src/cff/cffdrivr.c: Include FT_SERVICE_XFREE86_NAME_H and
+ FT_SERVICE_GLYPH_DICT_H.
+ (cff_service_glyph_dict): New structure providing CFF services.
+ (cff_services): New services list.
+ (cff_get_interface): Use `ft_service_list_lookup'.
+
+ * src/cid/cidriver.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and
+ FT_SERVICE_XFREE86_NAME_H.
+ (cid_service_ps_name): New structure providing CID services.
+ (cid_services): New services list.
+ (cid_get_interface): Use `ft_service_list_lookup'.
+
+ * src/pcf/pcfdrivr.c: Include FT_SERVICE_BDF_H and
+ FT_SERVICE_XFREE86_NAME_H.
+ (pcf_service_bdf): New structure providing PCF services.
+ (pcf_services): New services list.
+ (pcf_driver_requester): Use `ft_service_list_lookup'.
+
+ * src/sfnt/sfdriver.c: Include FT_SERVICE_GLYPH_DICT_H and
+ FT_SERVICE_POSTSCRIPT_NAME_H.
+ (get_sfnt_glyph_name): Renamed to...
+ (sfnt_get_glyph_name): This.
+ (get_sfnt_postscript_name): Renamed to...
+ (sfnt_get_ps_name): This.
+ Updated.
+ (sfnt_service_glyph_dict, sfnt_service_ps_name): New structures
+ providing services.
+ (sfnt_services): New services list.
+ (sfnt_get_interface): Use `ft_service_list_lookup'.
+
+ * src/truetype/ttdriver.c: Include FT_SERVICE_XFREE86_NAME_H.
+ (tt_services): New services list.
+ (tt_get_interface): Use `ft_service_list_lookup'.
+
+ * src/type1/t1driver.c: Include FT_SERVICE_MULTIPLE_MASTERS_H,
+ FT_SERVICE_GLYPH_DICT_H, FT_SERVICE_XFREE86_NAME_H, and
+ FT_SERVICE_POSTSCRIPT_NAME_H.
+ (t1_service_glyph_dict, t1_service_ps_name,
+ t1_service_multi_masters): New structures providing Type 1 services.
+ (t1_services): New services list.
+ (Get_Interface): Use `ft_service_list_lookup'.
+
+ * src/type42/t42drivr.c: Include FT_SERVICE_XFREE86_NAME_H,
+ FT_SERVICE_GLYPH_DICT_H, and FT_SERVICE_POSTSCRIPT_NAME_H.
+ (t42_service_glyph_dict, t42_service_ps_name): New strucures
+ providing Type 42 services.
+ (t42_services): New services list.
+ (T42_Get_Interface): Use `ft_service_list_lookup'.
+
+
+ * README, docs/CHANGES: Updating version numbers for 2.1.6, and
+ removing obsolete warnings in the documentation.
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
+ * builds/unix/configure.ac (version_info): Set to 9:5:3.
+ * builds/unix/configure: Regenerated.
+
+ * include/freetype/internal/ftcore.h,
+ include/freetype/internal/ftexcept.h,
+ include/freetype/internal/fthash.h,
+ include/freetype/internal/ftobject.h: Removed. Obsolete.
+
+2003-09-09 David Turner <david@freetype.org>
+
+ Fixing PFR kerning support. The tables within the font file contain
+ (charcode,charcode) kerning pairs, we need to convert them to
+ (gindex,gindex).
+
+ * src/base/ftpfr.c (ft_pfr_check): Fix serious typo.
+ * src/pfr/prfload.c: Remove dead code.
+ (pfr_get_gindex, pfr_compare_kern_pairs, pfr_sort_kerning_pairs):
+ New functions.
+ (pfr_phy_font_done): Free `kern_pairs'.
+ (pfr_phy_font_load): Call `pfr_sort_kerning_pairs'.
+ * src/pfr/pfrobjs.c (pfr_face_get_kerning): Fix kerning extraction.
+ * src/pfr/pfrtypes.h (PFR_KERN_PAIR_INDEX): New macro.
+ (PFR_KernPairRec): Make `kerning' an FT_Int.
+ (PFR_PhyFontRec): New element `kern_pairs'.
+ (PFR_KernFlags): Values of PFR_KERN_2BYTE_CHAR and
+ PFR_KERN_2BYTE_ADJ were erroneously reversed.
+
+ * include/freetype/ftoption.h: Commenting out the macro
+ TT_CONFIG_OPTION_BYTECODE_INTERPRETER.
+
+2003-09-02 David Turner <david@freetype.org>
+
+
+ * Version 2.1.5 released.
+ =========================
+
+
+2003-08-31 Manish Singh <yosh@gimp.org>
+
+ * src/bdf/bdflib.c (_bdf_readstream): Don't use FT_MEM_COPY but
+ FT_MEM_MOVE.
+
+2003-08-30 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/freetype.h (FT_ENCODING_SJIS, FT_ENCODING_GB2312,
+ FT_ENCODING_BIG5, FT_ENCODING_WANSUNG, FT_ENCODING_JOHAB): New
+ enumerations of FT_Encoding. The FT_ENCODING_MS_* variants except
+ FT_ENCODING_MS_SYMBOL are now deprecated.
+ Updated all users.
+ * docs/CHANGES: Document it.
+
+2003-08-27 Werner Lemberg <wl@gnu.org>
+
+ * src/bdf/bdfdrivr.c (BDF_Face_Init): Accept lowercase characters
+ for spacing.
+
+2003-08-27 Mike FABIAN <mfabian@suse.de>
+
+ * src/pcf/pcfread.c (pcf_load_font), src/bdf/bdfdrivr.c
+ (BDF_Face_Init): Accept lowercase characters for slant and weight.
+
+2003-08-18 David Turner <david@freetype.org>
+
+ * include/freetype/config/ftoption.h: Disabling TrueType bytecode
+ interpreter until the UNPATENTED_HINTING works as advertised.
+
+ * src/autohint/ahhint.c (ah_hinter_load_glyph): Use `|' for
+ setting `load_flags'.
+
+ * Jamfile: Adding the `refdoc' target to the Jamfile in order to
+ build the API Reference in `docs/reference' automatically.
+
+ * include/freetype/t1tables.h (PS_FontInfoRec), src/cid/cidtoken.h,
+ src/type1/t1tokens.h, src/type42/t42parse.c: Resetting the types of
+ `italic_angle', `underline_position', and `underline_thickness' to
+ their previous values (i.e., long, short, and ushort) in order to
+ avoid breaking binary compatibility.
+
+ * include/freetype/ttunpat.h: Fixing documentation comment.
+
+ * include/freetype/config/ftoption.h, devel/ftoption.h
+ (TT_CONFIG_OPTION_OPTION_COMPILE_UNPATENTED_HINTING): Replaced
+ with...
+ (TT_CONFIG_OPTION_UNPATENTED_HINTING): This. Updated all users.
+ (TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): Removed.
+
+ * include/freetype/internal/ftobjs.h (FT_DEBUG_HOOK_TYPE1): Removed.
+ (FT_DEBUG_HOOK_UNPATENTED_HINTING): New macro. Use this with
+ `FT_Set_Debug_Hook' to get the same effect as the removed
+ TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING.
+
+ * src/truetype/ttobjs.c (tt_face_init): Use
+ `FT_DEBUG_HOOK_UNPATENTED_HINTING'.
+
+2003-08-06 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c
+ (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Fix
+ previous change.
+
+2003-08-05 Werner Lemberg <wl@gnu.org>
+
+ * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c
+ (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Apply
+ font matrix to advance width also.
+ * docs/CHANGES: Updated.
+
+2003-07-26 Werner Lemberg <wl@gnu.org>
+
+ * builds/unix/configure.ac (version_info): Set to 9:4:3.
+ * builds/unix/configure: Updated.
+ * docs/CHANGES, docs/VERSION.DLL: Updated.
+
+ * include/freetype/freetype.h (FT_GlyphSlot): Change 2003-06-16
+ also breaks binary compatibility. Reintroduce an unsigned integer
+ at the old position of `flags' called `reserved'.
+
+2003-07-25 Werner Lemberg <wl@gnu.org>
+
+ Make API reference valid HTML 4.01 transitional.
+
+ * src/tools/docmaker/tohtml.py (html_header_1): Add doctype
+ and charset.
+ (html_header_2): Fix style elements and add some more.
+ Fix syntax.
+ (block_header, block_footer, description_header, description_footer,
+ marker_header, marker_footer, source_header, source_footer,
+ chapter_header): Don't use <center>...</center> but `align=center'
+ table attribute.
+ (chapter_inter, chapter_footer): Add <li> and use special <ul>
+ class.
+ Use double quotes around table widths given in percent.
+ (keyword_prefix, keyword_suffix): Don't change font colour directly
+ but use a new <span> class.
+ (section_synopsis_header, section_synopsis_footer): Don't change
+ colour.
+ (code_header, code_footer): Don't change font colour directly but
+ use a special <pre> class.
+ (print_html_field): <tr> gets the `valign' attribute, not <table>.
+ (print_html_field_list): Ditto.
+ (index_exit): Don't use <center>...</center> but `align=center'
+ table attribute.
+ (section_enter): Ditto.
+ (toc_exit): Don't emit </table>.
+ (block_enter): Use <h4><a>, not <a><h4>.
+ (__init__): Fix tag order in self.html_footer.
+
+2003-07-25 David Turner <david@freetype.org>
+
+ This change reimplements fix from 2003-05-30 without breaking
+ binary compatibility.
+
+ * include/freetype/t1tables.h (PS_FontInfoRec): `italic_angle',
+ `is_fixed_pitch', `underline_position', `underline_thickness' are
+ reverted to be normal values.
+
+ * include/freetype/internal/psaux.h (T1_FieldType): Remove
+ `T1_FIELD_TYPE_BOOL_P', `T1_FIELD_TYPE_INTEGER_P',
+ `T1_FIELD_TYPE_FIXED_P', `T1_FIELD_TYPE_FIXED_1000_P'.
+ (T1_FIELD_TYPE_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P,
+ T1_FIELD_FIXED_1000_P): Removed.
+ (T1_FIELD_TYPE_BOOL): Renamed to...
+ (T1_FIELD_BOOL): New macro. Updated all callers.
+
+ * src/type42/t42parse.c: `italic_angle', `is_fixed_pitch',
+ `underline_position', `underline_thickness', `paint_type',
+ `stroke_width' are reverted to be normal values.
+ (T42_KEYWORD_COUNT): New macro.
+ (t42_parse_dict): New array `keyword_flags' to mark that a value has
+ already been assigned to a dictionary entry.
+ * src/type42/t42objs.c (T42_Face_Init, T42_Face_Done): Updated.
+
+ * src/cid/cidtoken.h: `italic_angle', `is_fixed_pitch',
+ `underline_position', `underline_thickness' are reverted to be
+ normal values.
+ * src/cid/cidobjs.c (cid_face_done, cid_face_init): Updated.
+
+ * src/psaux/psobjs.c (ps_parser_load_field): Updated.
+
+ * src/type1/t1tokens.h: `italic_angle', `is_fixed_pitch',
+ `underline_position', `underline_thickness', `paint_type',
+ `stroke_width' are reverted to be normal values.
+ * src/type1/t1objs.c (T1_Face_Done, T1_Face_Init): Updated.
+ * src/type1/t1load.c (T1_FIELD_COUNT): New macro.
+ (parse_dict): Add parameter for keyword flags.
+ Record only first instance of a field.
+ (T1_Open_Face): New array `keyword_flags'.
+
+2003-07-24 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
+ * builds/unix/configure.ac (version_info): Set to 10:0:3.
+ * builds/unix/configure: Updated.
+ * builds/freetype.mk (refdoc): Fix --title.
+
+ * docs/CHANGES, docs/VERSION.DLL, README: Updated.
+
+ * src/tools/docmaker/sources.py (re_crossref): Fix regular
+ expression to handle trailing punctuation characters.
+ * src/tools/docmaker/tohtml.py (make_html_word): Updated.
+
+ * docs/release: New file.
+
+2003-07-23 YAMANO-UCHI Hidetoshi <mer@din.or.jp>
+
+ * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): New
+ member function `to_bytes'.
+
+ * src/psaux/psauxmod.c (ps_parser_funcs): New member
+ `ps_parser_to_bytes'.
+ (psaux_module_class): Increase version to 0x20000L.
+
+ * src/psaux/psobjs.c (IS_T1_LINESPACE): Add \f.
+ (IS_T1_NULLSPACE): New macro.
+ (IS_T1_SPACE): Add it.
+ (skip_spaces, skip_alpha): New functions.
+ (ps_parser_skip_spaces, ps_parser_skip_alpha): Use them.
+ (ps_tobytes, ps_parser_to_bytes): New functions.
+
+2003-07-07 Werner Lemberg <wl@gnu.org>
+
+ * builds/freetype.mk (DOC_DIR): New variable.
+ (refdoc): Use *_DIR variables.
+ (distclean): Remove documentation files.
+
+ * builds/detect.mk (std_setup, dos_setup): Mention `make refdoc'.
+
+ * configure: Set DOC_DIR variable.
+
+2003-07-07 Patrik Hägglund <patrik.hagglund@bredband.net>
+
+ * builds/freetype.mk (refdoc): New target to build the
+ documentation.
+ (.PHONY): Updated.
+
+ * include/freetype/freetype.h: Improve documentation of FT_CharMap.
+ * include/freetype/ftimage,h: Fix documentation of FT_OUTLINE_FLAGS.
+ * include/freetype/tttables.h: Document FT_Sfnt_Tag.
+
+2003-07-06 Werner Lemberg <wl@gnu.org>
+
+ * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfread.c
+ (pcf_load_font): Fix computation of height if PIXEL_SIZE property is
+ missing.
+
+2003-07-01 Werner Lemberg <wl@gnu.org>
+
+ * src/cache/ftcsbits.c (ftc_sbit_node_compare): Only add `size' if
+ there is no error. Reported by Knut St. Osmundsen
+ <bird-freetype@anduin.net>.
+
+2003-06-30 Werner Lemberg <wl@gnu.org>
+
+ A new try to synchronize bitmap font access.
+
+ * include/freetype/freetype.h (FT_Bitmap_Size): `height' is now
+ defined to return the baseline-to-baseline distance. This was
+ already the value returned by the BDF and PCF drivers.
+
+ The `width' field now gives the average width. I wasn't able to
+ find something better. It should be taken as informative only.
+
+ New fields `size', `x_ppem', and `y_ppem'.
+
+ * src/pcf/pcfread.c (pcf_load_font): Updated to properly fill
+ FT_Bitmap_Size.
+ Do proper rounding and conversion from 72.27 to 72 points.
+
+ * src/bdf/bdfdrivr.c (BDF_Face_Init): Updated to properly fill
+ FT_Bitmap_Size.
+ Do proper rounding and conversion from 72.27 to 72 points.
+
+ * src/sfnt/sfobjs.c (sfnt_load_face): Updated to properly fill
+ FT_Bitmap_Size.
+
+ * src/winfonts/winfnt.c (FNT_Face_Init): Updated to properly fill
+ FT_Bitmap_Size.
+
+2003-06-29 Werner Lemberg <wl@gnu.org>
+
+ Redesigning the FNT driver to return multiple faces, not multiple
+ strikes. At least one font (app850.fon from WinME) contains
+ different FNT charmaps for its subfonts. Consequently, the previous
+ design of having multiple bitmap strikes in a single font face fails
+ since we have only one charmap per face.
+
+ * include/freetype/internal/fnttypes.h (FNT_Size_Rec): Removed.
+ (FNT_FaceRec): Remove `num_fonts' field and replace `fonts' with
+ `font'.
+
+ * src/base/ftwinfnt.c (FT_Get_WinFNT_Header): Updated.
+
+ * src/winfonts/winfnt.c (fnt_font_load): Don't set pixel_width equal
+ to pixel_height.
+ (fnt_face_done_fonts): Removed.
+ (fnt_face_get_dll_fonts): Renamed to...
+ (fnt_face_get_dll_font): This. Add second function argument to
+ select face index.
+ Updated to load just one subfont.
+ (fnt_font_done, FNT_Face_Done): Updated.
+ (FNT_Face_Init): Handle `face_index'.
+ Updated.
+ (FNT_Size_Set_Pixels): Simplified; similar to BDF and PCF, the
+ bitmap width is now ignored.
+ (FNT_Load_Glyph): Updated.
+ Fix glyph index computation.
+ (winfnt_driver_class): Updated.
+
+2003-06-25 Owen Taylor <otaylor@redhat.com>
+
+ * src/sfnt/ttload.c (tt_face_load_hdmx): Don't assign
+ num_records until we actually decide to load the table,
+ otherwise, we'll segfault in tt_face_free_hdmx.
+
+2003-06-24 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffdrivr.c (cff_get_glyph_name): Protect against zero
+ glyph name pointer. Reported by Mikey Anbary <manbary@vizrt.com>.
+
+2003-06-23 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/glnames.py: Updated to AGL 2.0.
+ * src/psnames/pstables.h: Regenerated.
+
+2003-06-22 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/cache/ftcglyph.h, include/freetype/ttnameid.h,
+ src/base/ftcalc.c, src/base/fttrigon.c, src/cff/cffgload.c,
+ src/otlayout/otlgsub.c, src/pshinter/pshrec.c,
+ src/psnames/psmodule.c, src/sfnt/sfobjs.c, src/truetype/ttdriver.c:
+ Decorate constants with `U' and `L' if appropriate.
+
+ * include/freetype/ftmoderr.h: Updated to include recent module
+ additions.
+
+ * src/pshinter/pshnterr.h (FT_ERR_BASE): Define as
+ `FT_Mod_Err_PShinter'.
+ * src/type42/t42error.h (FT_ERR_BASE): Define as
+ `FT_Mod_Err_Type42'.
+
+ * src/pshinter/pshrec.h (PS_HINTS_MAGIC): Removed. Not used.
+
+ * include/freetype/config/ftconfig.h [__MWERKS__]: Define FT_LONG64
+ and FT_INT64.
+
+2003-06-21 Werner Lemberg <wl@gnu.org>
+
+ * src/winfonts/winfnt.c (FNT_Load_Glyph): Use first_char in
+ computation of glyph_index.
+ (FNT_Size_Set_Pixels): To find a strike, first check pixel_height
+ only, then try to find a better hit by comparing pixel_width also.
+ Without this fix it isn't possible to access all strikes.
+ Also compute metrics.max_advance to be in sync with other bitmap
+ drivers.
+
+ * src/base/ftobjs.c (FT_Set_Char_Size): Remove redundant code.
+ (FT_Set_Pixel_Size): Assign value to `metrics' after validation of
+ arguments.
+
+2003-06-20 Werner Lemberg <wl@gnu.org>
+
+ Synchronize computation of height and width for bitmap strikes. The
+ `width' field in the FT_Bitmap_Size structure is now only useful to
+ enumerate different strikes. The `max_advance' field of the
+ FT_Size_Metrics structure should be used to get the (maximum) width
+ of a strike.
+
+ * src/bdf/bdfdrivr.c (BDF_Face_Init): Don't use AVERAGE_WIDTH for
+ computing `available_sizes->width' but make it always equal to
+ `available_sizes->height'.
+
+ * src/pcf/pcfread.c (pcf_load_font): Don't use RESOLUTION_X for
+ computing `available_sizes->width' but make it always equal to
+ `available_sizes->height'.
+
+ * src/truetype/ttdriver.c (Set_Pixel_Sizes): Pass only single
+ argument to function.
+
+ * src/psnames/psmodule.c (ps_unicode_value): Handle `.' after
+ `uniXXXX' and `uXXXX[X[X]]'.
+
+2003-06-19 Werner Lemberg <wl@gnu.org>
+
+ * src/bdf/bdfdrivr.c: s/FT_Err_/BDF_Err/.
+ * src/cache/ftccache.c, src/cache/ftcsbits.c, src/cache/ftlru.c:
+ s/FT_Err_/FTC_Err_/.
+ * src/cff/cffcmap.c: s/FT_Err_/CFF_Err_/.
+ * src/pcf/pcfdrivr.c: s/FT_Err_/PCF_Err_/.
+ * src/psaux/t1cmap.c: Include psauxerr.h.
+ s/FT_Err_/PSaux_Err_/.
+ * src/pshinter/pshnterr.h: New file.
+ * src/pshinter/rules.mk: Updated.
+ * src/pshinter/pshalgo.c, src/pshinter/pshrec.c: Include pshnterr.h.
+ s/FT_Err_/PSH_Err_/.
+ * src/pfr/pfrdrivr.c, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c:
+ s/FT_Err_/PFR_Err_/.
+ * src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c,
+ src/sfnt/ttload.c: s/FT_Err_/SFNT_Err_/.
+ * src/truetype/ttgload.c: s/FT_Err_/TT_Err_/.
+ * src/gzip/ftgzip.c: Load FT_MODULE_ERRORS_H and define
+ FT_ERR_PREFIX and FT_ERR_BASE.
+ s/FT_Err_/Gzip_Err_/.
+
+2003-06-19 Dirck Blaskey <listtarget@danbala.com>
+
+ * src/cff/cffload (cff_encoding_load): `nleft' must be FT_UInt,
+ otherwise adding 1 might wrap the result.
+
+2003-06-18 Werner Lemberg <wl@gnu.org>
+
+ * src/psnames/psmodule.c (ps_unicode_value): Add support to
+ recognize `uXXXX[X[X]]' glyph names.
+ Don't handle glyph names starting with `uni' which have more than
+ four digits.
+
+2003-06-16 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/freetype.h (FT_Open_Flags): Replaced with
+ #defines for the constants.
+ (FT_Open_Args): Change type of `flags' to FT_UInt.
+ (FT_GlyphSlot): Move `flags' to FT_Slot_Internal.
+
+ * include/freetype/ftimage.h (FT_Outline_Flags, FT_Raster_Flag):
+ Replaced with #defines for the constants.
+
+ * include/freetype/internal/ftobjs.h (FT_Slot_Internal): New
+ field `flags' (from FT_GlyphSlot).
+ Updated all affected source files.
+ (FT_GLYPH_OWN_BITMAP): New macro (from ftgloadr.h).
+
+ * include/freetype/internal/ftgloadr.h (FT_GLYPH_OWN_BITMAP): Moved
+ to ftobjs.h.
+
+ * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Use dummy
+ FT_GlyphSlot_Internal object.
+
+2003-06-15 Werner Lemberg <wl@gnu.org>
+
+ * builds/compiler/gcc.mk, builds/compiler/gcc-dev.mk (CFLAGS):
+ Add -fno-strict-aliasing to get rid of zillion warnings from gcc
+ version 3.3.
+
+2003-06-14 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/ftglyph.h (ft_glyph_bbox_unscaled,
+ ft_glyph_bbox_subpixels, ft_glyph_bbox_gridfit,
+ ft_glyph_bbox_truncate, ft_glyph_bbox_pixels): Replaced with
+ FT_GLYPH_BBOX_UNSCALED, FT_GLYPH_BBOX_SUBPIXELS,
+ FT_GLYPH_BBIX_GRIDFIT, FT_GLYPH_BBOX_TRUNCATE, FT_GLYPH_BBOX_PIXELS.
+ The lowercase variants are now (deprecated aliases) to the uppercase
+ versions.
+ Updated all other files.
+
+ * include/freetype/ftmodule.h (ft_module_font_driver,
+ ft_module_renderer, ft_module_hinter, ft_module_styler,
+ ft_module_driver_scalable, ft_module_driver_no_outlines,
+ ft_module_driver_has_hinter): Replaced with FT_MODULE_FONT_DRIVER,
+ FT_MODULE_RENDERER, FT_MODULE_HINTER, FT_MODULE_STYLER,
+ FT_MODULE_DRIVER_SCALABLE, FT_MODULE_DRIVER_NO_OUTLINES,
+ FT_MODULE_DRIVER_HAS_HINTER.
+ The lowercase variants are now (deprecated aliases) to the uppercase
+ versions.
+ Updated all other files.
+
+ * src/base/ftglyph.c (FT_Glyph_Get_CBox): Handle bbox_mode better
+ as enumeration.
+
+ * src/pcf/pcfdrivr.c (pcf_driver_class), src/winfonts/winfnt.c
+ (winfnt_driver_class), src/bdf/bdfdrivr.c (bdf_driver_class): Add
+ the FT_MODULE_DRIVER_NO_OUTLINES flag.
+
+2003-06-13 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ * src/pfr/pfrobjs.c (pfr_slot_load): Apply font matrix.
+
+2003-06-13 Werner Lemberg <wl@gnu.org>
+
+ * builds/dos/detect.mk: Test not only for `Dos' but for `DOS' also.
+
+ * builds/dos/dos-emx.mk, builds/compiler/emx.mk: New files for
+ EMX gcc compiler.
+ * builds/dos/detect.mk: Add target `emx'.
+
+ * builds/compiler/watcom.mk (LINK_LIBRARY): GNU Make for DOS doesn't
+ like a trailing semicolon; add a dummy command.
+
+ * src/cid/cidload.c: Remove parse_font_bbox code (already enclosed
+ with #if 0 ... #endif).
+
+ * src/type1/t1tokens.h: Handle /FontName.
+ * src/type1/t1load.c (parse_font_name): Removed.
+ Remove parse_font_bbox code (already enclosed with #if 0 ...
+ #endif).
+
+ * src/type42/t42parse.c (t42_parse_font_name): Removed.
+ Remove t42_parse_font_bbox code (already enclosed with #if 0 ...
+ #endif).
+ (t42_keywords): Handle /FontName with T1_FIELD_KEY.
+
+2003-06-12 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/psaux.h (T1_FieldType): Add
+ T1_FIELD_TYPE_KEY.
+ (T1_FIELD_KEY): New macro.
+ * src/psaux/psobjs.c (ps_parser_load_field): Handle
+ T1_FIELD_TYPE_KEY.
+
+ * src/cid/cidtoken.h: Use T1_FIELD_KEY for /CIDFontName.
+
+2003-06-11 Alexander Malmberg <alexander@malmberg.org>
+
+ * src/cache/ftlru.c (FT_LruList_Remove_Selection): Decrease
+ number of nodes.
+ (FT_LruList_Lookup): Fix assertion for out-of-memory case.
+
+2003-06-11 Werner Lemberg <wl@gnu.org>
+
+ * src/cid/cidload.c (cid_decrypt): Removed.
+ (cid_read_subrs): Use t1_decrypt from psaux module.
+ * src/cid/cidload.h: Updated.
+ * src/cid/cidgload.c (cid_load_glyph): Use t1_decrypt from psaux
+ module.
+
+2003-06-10 Werner Lemberg <wl@gnu.org>
+
+ * src/cid/cidobjs.c: Apply change 2003-05-31 from <Ron.Dev@gmx.de>.
+ Compute style flags.
+ Fix computation of root->height.
+ * src/cid/cidtoken.h: Handle FontBBox.
+ * src/cid/cidload.c (cid_load_keyword): Handle
+ T1_FIELD_LOCATION_BBOX.
+ (parse_font_bbox): Commented out.
+ (cid_field_record): Comment out element for parsing FontBBox.
+
+ * src/type42/t42parse.c (t42_parse_font_bbox): Commented out.
+ (t42_keywords): Handle FontBBox with T1_FIELD_BBOX, not with
+ T1_FIELD_CALLBACK.
+ (t42_parse_font_bbox): Commented out.
+ (t42_load_keyword): Handle T1_FIELD_LOCATION_BBOX.
+ * src/type42/t42objs.c (T42_Face_Init): Apply change 2003-05-31
+ from <Ron.Dev@gmx.de>.
+
+2003-06-09 George Williams <gww@silcom.com>
+
+ * src/truetype/ttinterp.c (SetSuperRound) <0x30>: Follow Apple's
+ TrueType specification.
+ (Ins_MDRP, Ins_MIRP): Fix single width cut-in test.
+
+2003-06-09 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ * src/gzip/ftgzip.c: (inflate_mask): Replaced with...
+ (NO_INFLATE_MASK): This.
+ * src/gzip/infutil.h: Declare `inflate_mask' conditionally by
+ NO_INFLATE_MASK.
+
+2003-06-09 Alexis S. L. Carvalho <alexis@cecm.usp.br>
+
+ * src/gzip/ftgzip.c (ft_gzip_file_fill_output): Handle Z_STREAM_END
+ correctly.
+
+2003-06-09 Wolfgang Domröse <porthos.domroese@harz.de>
+
+ * src/pshinter/pshglob.c (psh_globals_new): Change calculation of
+ dim->stdw.count to avoid compiler problem.
+
+ * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Move the block
+ variables to the beginning of the function to avoid compiler
+ problems.
+ Add casts necessary for 16bit compilers.
+
+2003-06-09 Werner Lemberg <wl@gnu.org>
+
+ * src/pfr/rules.mk (PFR_DRV_SRC): Add pfrsbit.c.
+ (PFR_DRV_H): Add pfrtypes.h.
+
+ * include/freetype/config/ftconfig.h: s/__MWKS__/__MWERKS__/.
+
+2003-06-08 Karl Schultz <kschultz@rsinc.com>
+
+ * src/pfr/pfrsbit.c (pfr_bitwriter_init): Change type of third
+ argument to FT_Bool.
+ (pfr_lookup_bitmap_data): Change type of third and fourth argument
+ to FT_UInt. Updated caller.
+ (pfr_load_bitmap_bits): Change type of fourth argument to FT_Bool.
+
+2003-06-08 Werner Lemberg <wl@gnu.org>
+
+ Completely revised FreeType's make management.
+
+ . In all makefiles `/' is used as the path separator. The
+ conversion to the real path separators is done as late as
+ possible using $(subst ...).
+
+ . $(HOSTSEP) no longer exists. Now, $(SEP) gives the path separator
+ for the operating system, and the new $(COMPILER_SEP) the path
+ separator for the compiler tools.
+
+ . $(BUILD) has been renamed to $(BUILD_DIR). In general, all
+ directory variables end with `_DIR'. The variants ending in `_'
+ (like `BASE_' have been removed).
+
+ The following ChangeLog entries only describe changes which are
+ not related to the redesign.
+
+ * builds/beos/beos-def.mk (BUILD_DIR): Fix typo.
+ * builds/compiler/watcom.mk (LINK_LIBRARY): Fix linker call to avoid
+ overlong arguments as suggested by J. Ali Harlow
+ <ali@avrc.city.ac.uk>.
+ * builds/dos/dos-wat.mk: New file.
+ * builds/freetype.mk (FREETYPE_H): Include header files from the
+ `devel' subdirectory.
+
+ * builds/os2/os2-dev.mk, builds/unix/unixddef.mk,
+ builds/unix/unixddef.mk, builds/win32/w32-bccd.mk,
+ builds/win32/w32-dev.mk (BUILD_DIR): Fix path.
+
+ * builds/unix/configure.ac, builds/unix/configure: Updated.
+ * builds/unix/unix-def.in (DISTCLEAN): Add `freetype2.pc'.
+
+2003-06-07 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftmac.c (FT_New_Face_From_SFNT): s/rlen/sfnt_size/ to
+ make it compile.
+
+ * devel/ftoption.h: Updated.
+
+2003-06-07 Detlef Würkner <TetiSoft@apg.lahn.de>
+
+ * include/freetype/internal/psaux.h, src/truetype/ttgload.h:
+ s/index/idx/ to fix compiler warnings.
+
+ * src/sfnt/ttcmap0.c (tt_face_build_cmaps): Use more `volatile' to
+ fix compiler warning.
+
+ * src/gzip/ftgzip.c (BUILDFIXED): Removed.
+ * src/gzip/inftrees.c (inflate_trees_fixed) [!BUILDFIXED]: Use
+ FT_UNUSED to remove compiler warning.
+
+2003-06-06 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/ftstroker.h: Renamed to...
+ * include/freetype/ftstroke.h: This.
+
+ * src/base/ftstroker.c: Renamed to...
+ * src/base/ftstroke.c: This.
+
+ * include/freetype/config/ftheader.h (FT_STROKER_H): Updated.
+
+ * src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk:
+ Updated.
+
+ * src/pcf/pcfdriver.c: Renamed to...
+ * src/pcf/pcfdrivr.c: This.
+ * src/pcf/pcfdriver.h: Renamed to...
+ * src/pcf/pcfdrivr.h: This.
+
+ * src/pcf/Jamfile, src/pcf/rules.mk: Updated.
+
+2003-06-05 Wenlin Institute (Tom Bishop) <wenlin@wenlin.com>
+
+ * src/base/ftmac.c (file_spec_from_path) [TARGET_API_MAC_CARBON]:
+ Add `#if !defined(__MWERKS__)'.
+
+2003-06-05 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/psaux.h (T1_FieldType): Add
+ T1_FIELD_TYPE_FIXED_1000 and T1_FIELD_TYPE_FIXED_1000_P.
+ (T1_FIELD_FIXED_1000, T1_FIELD_FIXED_1000_P): New macros.
+ * src/psaux/psobjs.c (ps_parser_load_field): Handle
+ T1_FIELD_TYPE_FIXED_1000 and T1_FIELD_TYPE_FIXED_1000_P.
+
+ * src/cff/cffparse.c (cff_kind_fixed_thousand): New enumeration.
+ (CFF_FIELD_FIXED_1000): New macro.
+ (cff_parser_run): Handle cff_kind_fixed_thousand.
+ * src/cff/cfftoken.h: Use CFF_FIELD_FIXED_1000 for blue_scale.
+ * src/cff/cffload (cff_subfont_load): Fix default values of
+ expansion_factor and blue_scale.
+
+ * src/cif/cidtoken.h, src/type1/t1tokens.h: Use T1_FIELD_FIXED_1000
+ for blue_scale.
+
+ * src/pshinter/pshglob.c (psh_globals_new): Fix default value of
+ blue_scale.
+
+2003-06-04 Wolfgang Domröse <porthos.domroese@harz.de>
+
+ * include/freetype/internal/ftdriver.h,
+ include/freetype/internal/ftobjs.h,
+ include/freetype/internal/psaux.h, src/cid/cidgload.c,
+ src/psaux/psobjs.c, src/psaux/t1decode.c, src/psaux/psobjs.h,
+ src/pshinter/pshrec.c, src/pshinter/pshalgo.c,
+ src/psnames/psmodule.c, src/raster/ftraster.c, src/sfnt/sfobjs.c,
+ src/smooth/ftgrays.c, src/smooth/ftsmooth.c, src/truetype/ttobjs.c,
+ src/truetype/ttdriver.c, src/truetype/ttgload.c, src/type1/t1afm.c,
+ src/type1/t1gload.c, src/type1/t1gload.h, src/type1/t1load.c,
+ src/type1/t1objs.c, src/type42/t42parse.c, src/type42/t42parse.h:
+ Many casts and slight argument type changes to make it work with
+ a 16bit compiler.
+
+2003-06-04 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/config/ftoption.h: Defining
+ TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING by default is a bad idea
+ since some fonts (e.g. Arial) produce worse results than without
+ hinting. Reverted.
+
+2003-06-04 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttgload.c (load_truetype_glyph)
+ [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Call
+ FT_GlyphLoader_CheckPoints before adding phantom points. This fixes
+ a segfault bug with fonts (e.g. htst3.ttf) which have nested
+ subglyphs more than one level deep. Reported by Anthony Fok.
+
+ * include/freetype/config/ftoption.h: Define
+ TT_CONFIG_OPTION_BYTECODE_INTERPRETER,
+ TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING, and
+ TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING to make it the new
+ default.
+
+2003-06-03 Werner Lemberg <wl@gnu.org>
+
+ * src/autohint/ahhint.c (ah_hinter_hint_edges): Removed. Just a
+ wrapper for ah_hint_edges.
+ (ah_hint_edges): Renamed to...
+ (ah_hinter_hint_edges): This.
+
+ * src/base/ftobjs.c (FT_Set_Hint_Flags): Removed. Unused.
+
+ * include/freetype/internal/ftobjs.h (FT_Face_InternalRec),
+ include/freetype/internal/psaux.h (T1_DecoderRec),
+ src/cff/cffgload.h (CFF_Builder): Remove `hint_flags' field.
+ Unused.
+
+ * src/cff/cffgload.c (cff_builder_init): Updated.
+ (cff_decoder_parse_charstrings) <cff_op_endchar>: Call hinter->apply
+ with decoder->hint_mode instead of builder->hint_flags.
+ * src/psaux/t1decode.c (t1_decoder_init): Updated.
+
+ * src/base/ftstroker.c (ft_stroke_border_export): s/index/idx/.
+
+ * src/sfnt/sfobjs.c (sfnt_load_face): Commented out code which
+ increased root->height by 15% if the line gap was zero. There exist
+ fonts (containing e.g. form drawing characters) which intentionally
+ have a zero line gap value.
+
+ * src/truetype/ttinterp.c (Free_Project, CUR_Func_freeProj):
+ Removed. Unused.
+ Updated all callers.
+
+2003-06-02 Werner Lemberg <wl@gnu.org>
+
+ * src/cff/cffobjs.c (cff_face_init): Use symbolic names for
+ Adobe specific encoding IDs (there was a wrong EID value for custom
+ encoding).
+
+ * src/cff/cffcmap.h (CFF_CMapStdRec): Remove `count'.
+ * src/cff/cffcmap.c (cff_cmap_encoding_init,
+ cff_cmap_encoding_done): Updated.
+ (cff_cmap_encoding_char_index, cff_cmap_encoding_char_next): Use
+ 256 as limit for character code.
+
+2003-06-01 Werner Lemberg <wl@gnu.org>
+
+ * src/winfonts/winfnt.c (FNT_Load_Glyph): Revert change from
+ 2003-03-20.
+
+2003-05-31 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/fttrigon.h (FT_Vector_Normalize): Removed.
+
+2003-05-31 <Ron.Dev@gmx.de>
+
+ * src/type1/t1objs.c (T1_Face_Init): Improve algorithm for guessing
+ the font style by ignoring spaces and hyphens.
+
+ * builds/unix/freetype2.in: Fix `Version' field.
+
+2003-05-30 Werner Lemberg <wl@gnu.org>
+
+ Avoid overwriting of numeric font dictionary entries for synthetic
+ fonts. Additionally, some entries were handled as `integer' instead
+ of `number'.
+
+ * include/freetype/internal/psaux.h (T1_FieldType): Add
+ T1_FIELD_TYPE_BOOL_P, T1_FIELD_TYPE_INTEGER_P, and
+ T1_FIELD_TYPE_FIXED_P.
+ (T1_FIELD_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P): New macros.
+ * src/psaux/psobjs.c (ps_parser_load_field): Handle new field types.
+
+ * include/freetype/internal/cfftypes.h (CFF_FontRecDict),
+ src/cff/cfftoken.h: Change type of underline_position and
+ underline_thickness to FT_Fixed.
+ * src/cff/cffload.c (cff_subfont_load): Fix default values of
+ underline_position and underline_thickness.
+ * src/cff/cffobjs.c (cff_face_init): Set underline_position
+ and underline_thickness in `root'.
+
+ * include/freetype/internal/t1types.h (T1_Font): Change point_type
+ and stroke_width to pointers.
+ * include/freetype/t1tables.h (PS_FontInfo): Change italic_angle,
+ is_fixed_pitch, underline_position, and underline_thickness to
+ pointers.
+ * src/type1/t1tokens.h: Change italic_angle, is_fixed_pitch,
+ underline_position, and underline_thickness to pointers. Change
+ the type of the latter two to `fixed'.
+ Change type of stroke_width to `fixed' and make it a pointer.
+ Change paint_type to pointer.
+ * src/type1/t1objs.c (T1_Face_Done): Updated.
+ (T1_Face_Init): Updated.
+ Fix assignment of underline_position and underline_thickness.
+
+ * src/cid/cidtoken.h: Change italic_angle, is_fixed_pitch,
+ underline_position, and underline_thickness to pointers. Change
+ the type of the latter two to `fixed'.
+ Change type of stroke_width to `fixed'.
+ * src/cid/cidobjs.c (cid_face_done): Updated.
+ (cid_face_init): Updated.
+ Fix assignment of underline_position and underline_thickness.
+
+ * src/type42/t42parse.c: Change italic_angle, is_fixed_pitch,
+ underline_position, and underline_thickness to pointers. Change the
+ type of the latter two to `fixed'.
+ Change type of stroke_width to `fixed' and make it a pointer.
+ Change paint_type to pointer.
+ * src/type42/t42objs.c (T42_Face_Init): Updated.
+ Fix assignment of underline_position and underline_thickness.
+ (T42_Face_Done): Updated.
+
+ * src/base/ftobjs.c (open_face_from_buffer): Fix compiler warning.
+ * src/pshinter/pshglob.c, src/pshinter/pshglob.h
+ (psh_globals_set_scale): Make it a local function.
+
+ * test/gview.c: Fix renaming ps3->ps typo.
+ Formatting.
+
+2003-05-29 Werner Lemberg <wl@gnu.org>
+
+ * src/pshinter/pshalgo1.[ch], src/pshinter/pshalgo2.[ch]: Removed.
+ * src/pshinter/pshalgo.h: Removed.
+
+ * src/pshinter/pshalgo3.[ch]: Renamed to...
+ * src/pshinter/pshalgo.[ch]: New files.
+ s/PSH3/PSH/.
+ s/psh3/psh/.
+ s/ps3/ps/.
+
+ * src/pshinter/pshrec.c, src/pshinter/pshinter.c: Updated.
+ * src/pshinter/rules.mk, src/pshinter/Jamfile: Updated.
+
+ * src/pshinter/pshglob.[ch] (psh_dimension_snap_width): Commented
+ out.
+
+ * tests/gview.c: Remove code for pshalgo1 and pshalgo2.
+ Updated.
+
+2003-05-28 Martin Zinser <zinser@decus.de>
+
+ * vms_make.com: Reworked support for shareable images on VMS. The
+ first version was kind of a hack; the current implementation of the
+ procedure to extract the required symbols is much cleaner.
+
+ Reworked creation of MMS files, avoiding a number of temporary files
+ which were created in the previous version.
+
+ Further work on creating descrip.mms files on the fly.
+
+ * builds/vms/descrip.mms, src/autohint/descrip.mms,
+ src/type1/descrip.mms: Removed.
+
+2003-05-28 Werner Lemberg <wl@gnu.org>
+
+ * src/pshinter/pshalgo3.c (psh3_glyph_compute_extrema): Skip
+ contours with only a single point to avoid segfault.
+
+ * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Activate code for
+ handling `origin'.
+
+2003-05-24 Werner Lemberg <wl@gnu.org>
+
+ * src/autohint/ahtypes.h (AH_OPTION_NO_STRONG_INTERPOLATION):
+ Removed since unused.
+
+2003-05-21 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/config/ftstdlib.h (ft_strcat): New wrapper macro
+ for strcat.
+
+ * src/base/ftmac.c (create_lwfn_name): s/isupper/ft_isupper/.
+ (parse_font): s/memcpy/ft_memcpy/.
+ (is_dfont) [TARGET_API_MAC_CARBON]: s/memcmp/ft_memcmp/.
+ * src/base/ftobjs.c (load_mac_face) [FT_MACINTOSH]:
+ s/strlen/ft_strlen/.
+ s/strcat/ft_strcat/.
+ s/strcpy/ft_strcpy/.
+ * src/gzip/zutil.h: s/memset/ft_memset/.
+ s/memcmp/ft_memcmp/.
+
+ * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c
+ (PCF_Face_Init): Test for charset registry case-insensitively.
+
+ * src/gzip/ftgzip.c (ft_gzip_fil_io): Revert change from yesterday;
+ it has already been fixed differently.
+
+ * src/truetype/ttinterp.c (DO_SFVTL): Add missing braces around
+ if-clause.
+
+2003-05-21 Martin Zinser <zinser@decus.de>
+
+ * t1load.c (parse_blend_axis_types): Fix compiler warning.
+
+ * descrip.mms: Removed. Now created by...
+
+ * vms_make.com: New file.
+
+2003-05-21 Weiqi Gao <weiqigao@networkusa.net>
+
+ * src/gzip/ftgzip.c (ft_gzip_file_io): Avoid zero value of `delta'
+ to prevent infinite loop.
+
+2003-05-21 Lars Clausen <lrclause@cs.uiuc.edu>
+
+ * docs/VERSION.DLL: Provide better autoconf snippet to check
+ FreeType version.
+
+2003-05-21 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftobjs.c (open_face): Free `internal' not
+ `face->internal' in case of error to avoid possible segfault.
+
+ * src/pshinter/pshalgo3.c (ps3_hints_apply): Check whether we
+ actually have an outline.
+
+2003-05-20 David Chester <davidchester@qmx.net>
+
+ * src/pshinter/pshalgo3.c (ps3_hints_apply): Try to optimize
+ y_scale so that the top of non-capital letters is aligned on a pixel
+ boundary whenever possible.
+
+ * src/autohint/ahhint.c (ah_hint_edges): Make sure that lowercase
+ m's maintain their symmetry.
+
+2003-05-20 Werner Lemberg <wl@gnu.org>
+
+ * src/autohint/ahhint.c (ah_hinter_load_glyph): Oops! David's
+ patch from yesterday has been resolved already in a different
+ way. Reverted.
+
+2003-05-19 David Chester <davidchester@qmx.net>
+
+ * src/autohint/ahhint.c (ah_hinter_load_glyph): Don't scale
+ y_scale locally but face->size->metrics.y_scale.
+
+2003-05-19 David Turner <david@freetype.org>
+
+ * src/sfnt/ttcmap0.c (tt_cmap4_char_next): Select proper start
+ value for `hi' to avoid infinite loop.
+
+2003-05-18 Yong Sun <sunyong@njstar.com>
+
+ * src/raster/ftraster.c (Insert_Y_Turn): Fix overflow test.
+
+2003-05-18 Werner Lemberg <wl@gnu.org>
+