modules/freetype2/ChangeLog.24

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 2013-05-08  Werner Lemberg  <wl@gnu.org>
     3 	* Version 2.4.12 released.
     4 	==========================
     7 	Tag sources with `VER-2-4-12'.
     9 	* docs/VERSION.DLL: Update documentation and bump version number to
    10 	2.4.12.
    12 	* README, Jamfile (RefDoc),
    13 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
    14 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
    15 	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
    16 	builds/win32/visualc/freetype.dsp,
    17 	builds/win32/visualc/freetype.vcproj,
    18 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
    19 	builds/win32/visualce/freetype.vcproj,
    20 	builds/win32/visualce/index.html,
    21 	builds/wince/vc2005-ce/freetype.vcproj,
    22 	builds/wince/vc2005-ce/index.html,
    23 	builds/wince/vc2008-ce/freetype.vcproj,
    24 	builds/wince/vc2008-ce/index.html: s/2.4.11/2.4.12/, s/2411/2412/.
    26 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 12.
    28 	* builds/unix/configure.raw (version_info): Set to 16:1:10.
    30 2013-05-08  Werner Lemberg  <wl@gnu.org>
    32 	* docs/CHANGES: Updated.
    34 2013-05-08  Werner Lemberg  <wl@gnu.org>
    36 	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Typo.
    38 2013-05-05  Werner Lemberg  <wl@gnu.org>
    40 	Synchronize `ftconfig.h'.
    42 	* builds/unix/ftconfig.in: Updated.
    44 2013-05-05  Werner Lemberg  <wl@gnu.org>
    46 	Fix compilation with C++.
    48 	* src/base/md5.c (body): Use proper cast.
    50 2013-05-05  Werner Lemberg  <wl@gnu.org>
    52 	Fix 64bit compilation issues.
    54 	* include/freetype/config/ftconfig.h [FT_LONG64]: Typedef
    55 	`FT_Int64' here.
    57 	* src/base/ftcalc.c: Remove typedef of `FT_Int64'.
    58 	(FT_DivFix): Fix cast.
    59 	* src/base/fttrigon.c: Remove typedef of `FT_Int64'.
    61 2013-05-05  Werner Lemberg  <wl@gnu.org>
    63 	[raster] Fix clang issues.
    65 	Fix suggested by <octoploid@yandex.com>.
    67 	* src/raster/ftraster.c (ULong): New typedef.
    68 	(SCALED): Add proper cast.
    70 2013-05-04  Werner Lemberg  <wl@gnu.org>
    72 	Fix clang fixes.
    74 	* src/base/fttrigon.c (ft_trig_prenorm, FT_Vector_Rotate): Use
    75 	correct types.
    77 	* src/cff/cf2intrp.c (cf2_interpT2CharString) <default>: Force
    78 	unsigned for computations.
    79 	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Ditto.
    80 	* src/cff/cffparse.c (cff_parse_integer): Ditto.
    82 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Ditto.
    84 2013-05-04  Werner Lemberg  <wl@gnu.org>
    86 	[cff] Make Adobe CFF engine work correctly on 64bit hosts.
    88 	Reported by numerous people on the `freetype-devel' list.  Without
    89 	this fix, glyphs aren't properly aligned on a common baseline.
    91 	On 64bit systems, `FT_Pos' expands to `long int', having a width of
    92 	64bit.  `CF2_Fixed' expands to `int' which is normally 32bit wide on
    93 	64bit hosts also.  Wrong casts filled up the blues arrays with
    94 	incorrect values.  Note that all blues values are accessed with the
    95 	`cf2_blueToFixed' macro which handles the 64bit to 32bit conversion.
    97 	* src/cff/cf2ft.h (cf2_getBlueValues, cf2_getOtherBlues,
    98 	cf2_getFamilyBlues, cf2_getFamilyOtherBlues): Use `FT_Pos' for
    99 	`data', not `CF2_Fixed'.
   100 	* src/cff/cf2ft.c (cf2_getBlueValues, cf2_getOtherBlues,
   101 	cf2_getFamilyBlues, cf2_getFamilyOtherBlues): Updated.
   102 	* src/cff/cf2blues.c (cf2_blues_init): Updated.
   104 2013-05-04  Werner Lemberg  <wl@gnu.org>
   106 	More fixes for clang's `sanitize' feature.
   108 	* src/base/ftcalc.c (FT_DivFix): Use unsigned values for
   109 	computations which use the left shift operator and convert to signed
   110 	as the last step.
   111 	* src/base/fttrigon.c (ft_trig_prenorm, FT_Vector_Rotate,
   112 	FT_Vector_Length, FT_Vector_Polarize): Ditto.
   114 	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Simplify.
   115 	* src/cff/cffload.c (cff_subfont_load): Fix constant.
   116 	* src/cff/cffparse.c (cff_parse_integer, cff_parse_real, do_fixed,
   117 	cff_parse_fixed_dynamic): Use unsigned values for computations which
   118 	use the left shift operator and convert to signed as the last step.
   120 	* src/cid/cidload.c (cid_get_offset): Ditto.
   122 	* src/psaux/psconv.c (PS_Conv_ToFixed): Ditto.
   123 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Ditto.
   125 	* src/truetype/ttinterp.c (TT_MulFix14, TT_DotFix14): Ditto.
   127 2013-05-04  Werner Lemberg  <wl@gnu.org>
   129 	Fix errors reported by clang's `sanitize' feature.
   131 	* include/freetype/internal/ftstream.h: Simplify and fix integer
   132 	extraction macros.
   133 	(FT_INT8_, FT_BYTE_I16, FT_BYTE_I32, FT_INT8_I16, FT_INT8_I32,
   134 	FT_INT8_I32, FT_INT8_U32): Removed.
   135 	(FT_PEEK_SHORT, FT_PEEK_LONG, FT_PEEK_OFF3, FT_PEEK_SHORT_LE,
   136 	FT_PEEK_LONG_LE, FT_PEEK_OFF3_LE): Use unsigned values for
   137 	computations and convert to signed as the last step.
   139 	* src/cff/cf2fixed.h (cf2_intToFixed, cf2_fixedToInt,
   140 	cf2_fracToFixed): Avoid shifts of negative values.
   141 	(cf2_intToFrac, cf2_fixedToFrac, cf2_fixedTo26Dot6): Removed,
   142 	unused.
   144 	* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdEXTENDEDNMBR,
   145 	default>: Use unsigned values for computations and convert to signed
   146 	as the last step.
   147 	Use proper types in tracing messages.
   149 	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Use unsigned
   150 	values for computation of operands and convert to signed as the last
   151 	step.
   152 	Use proper type in tracing message.
   154 2013-05-03  Werner Lemberg  <wl@gnu.org>
   156 	* src/cff/cf2blues.c: Remove dead code.
   158 2013-05-02  Chris Liddell  <chris.liddell@artifex.com>
   160 	* src/cff/cffgload.c: Include FT_CFF_DRIVER_H.
   162 2013-04-27  Werner Lemberg  <wl@gnu.org>
   164 	* docs/CHANGES: Updated.
   165 	* README: Improved.
   167 2013-04-13  Werner Lemberg  <wl@gnu.org>
   169 	[cff] Add a new Type 2 interpreter and hinter.
   171 	This work, written by Dave Arnold <darnold@adobe.com> and fully
   172 	integrated into FreeType by me, is a donation by Adobe in
   173 	collaboration with Google.  It is vastly superior to the old CFF
   174 	engine, and it will replace it soon.  Right now, it is still off by
   175 	default, and you have to explicitly select it using the new
   176 	`hinting-engine' property of the cff driver.
   178 	For convenience, (most of) the new files are committed separately.
   180 	* include/freetype/config/ftheader.h (FT_CFF_DRIVER_H): New macro.
   181 	* include/freetype/ftcffdrv.h: New file to access CFF driver
   182 	properties.
   183 	* include/freetype/fterrdef.h (FT_Err_Glyph_Too_Big): New error
   184 	code.
   185 	* include/freetype/internal/fttrace.h: Add `cf2blues', `cf2hints',
   186 	and `cf2interp'.
   188 	* src/cff/cffgload.h (CFF_SubFont): New member `current_subfont'.
   189 	* src/cff/cffobjs.h (CFF_DriverRec): New members `hinting_engine'
   190 	and `no_stem_darkening'.
   191 	* src/cff/cfftypes.h (CFF_FontRec): New member `cf2_instance'.
   193 	* src/cff/cff.c: Include new files.
   194 	* src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle
   195 	`hinting-engine' and `no-stem-darkening' properties (only the Adobe
   196 	engine listens to them).
   197 	* src/cff/cffgload.c: Include `cf2ft.h'.
   198 	(cff_decoder_prepare): Initialize `current_subfont'.
   199 	(cff_build_add_point): Handle Adobe engine which uses 16.16
   200 	coordinates.
   201 	(cff_slot_load): Handle FT_LOAD_NO_SCALE and FT_LOAD_NO_HINTING
   202 	separately.
   203 	Choose rendering engine based on `hinting_engine' property.
   204 	* src/cff/cffload.c (cff_font_done): Call finalizer of the Adobe
   205 	engine.
   206 	* src/cff/cffobjs.c: Include FT_CFF_DRIVER_H.
   207 	(cff_driver_init): Set default property values.
   209 	* src/cff/rules.mk (CFF_DRV_SRC, CFF_DRV_H): Add new files.
   211 	* src/cff/cf2*.*: New files, containing the Adobe engine.
   213 2013-04-12  Werner Lemberg  <wl@gnu.org>
   215 	[cff] Minor code administration issues.
   217 	* src/cff/cffgload.c (check_points): Rename to...
   218 	(cff_check_points): ...this and make it FT_LOCAL.
   219 	(cff_builder_add_point, cff_builder_add_point1,
   220 	cff_builder_start_point, cff_builder_close_contour,
   221 	cff_lookup_glyph_by_stdcharcode, cff_get_glyph_data,
   222 	cff_free_glyph_data): Make them FT_LOCAL.
   224 	* src/cff/cffgload.h: Updated.
   226 2013-04-12  Werner Lemberg  <wl@gnu.org>
   228 	Add output bitmap checksums.
   230 	Use `FT2_DEBUG=bitmap:3' for tracing.
   232 	* src/base/md5.c, src/base/md5.h: New files, taken from
   234 	  http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
   236 	* include/freetype/internal/fttrace.h: Add `bitmap'.
   238 	* src/base/ftobjs.c [FT_DEBUG_LEVEL_TRACE]: Include `md5.c'
   240 	(FT_Render_Glyph_Internal) [FT_DEBUG_LEVEL_TRACE]: For tracing,
   241 	convert resulting bitmap to a uniform format and compute a checksum.
   242 	Use `bitmap' category for the tracing message.
   244 	* src/base/rules.mk (BASE_H): Updated.
   246 	* docs/LICENSE.TXT: Updated.
   248 2013-04-12  Werner Lemberg  <wl@gnu.org>
   250 	[cff] Add framework for CFF properties.
   252 	* include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC7):
   253 	New macro.
   255 	* src/cff/cffdrivr.c: Include FT_SERVICE_PROPERTIES_H.
   256 	(cff_property_set, cff_property_get): New functions, still empty.
   257 	Define `cff_service_properties' service.
   258 	Update `cff_services'.
   260 	* src/cff/cffpic.h: Include FT_SERVICE_PROPERTIES_H.
   261 	(CFF_SERVICE_PROPERTIES_GET): New macro.
   262 	(CffModulePIC): Add `cff_service_properties'.
   264 2013-04-03  Werner Lemberg  <wl@gnu.org>
   266 	[bdf] Fix Savannah bug #38589.
   268 	* src/bdf/bdflib.c (_bdf_readstream): Thinko.
   270 2013-03-31  Werner Lemberg  <wl@gnu.org>
   272 	* configure: Use egrep, not grep.
   274 	Problem reported Mojca Miklavec <mojca.miklavec.lists@gmail.com>.
   276 2013-03-29  Werner Lemberg  <wl@gnu.org>
   278 	* include/freetype/ftlcdfil.h: Add description of color filtering.
   280 	Based on a contribution from Antti S. Lankila <alankila@bel.fi>
   281 	(Savannah bug #38607).
   283 2013-03-23  Werner Lemberg  <wl@gnu.org>
   285 	[autofit] Minor.
   287 	* src/autofit/afmodule.c (af_property_set): Typo.
   288 	(af_autofitter_init, af_autofitter_done): Use cast.
   290 2013-03-21  Werner Lemberg  <wl@gnu.org>
   292 	* configure: Automatically test for `gmake' also.
   294 	Suggested by Mojca Miklavec <mojca.miklavec.lists@gmail.com>.
   296 2013-03-21  Peter Breitenlohner  <peb@mppmu.mpg.de>
   298 	Respect CONFIG_SHELL from the environment.
   300 	Some large packages using FreeType have to use a broken (deficient)
   301 	/bin/sh.  The configure scripts (as generated by Autoconf) are
   302 	clever enough to find a better shell and put that one into the
   303 	environment variable CONFIG_SHELL.  If that environment variable is
   304 	already set the script skips the test and assumes to be already
   305 	running under a good shell.
   307 	* builds/unix/detect.mk: Honour CONFIG_SHELL.
   308 	* builds/unix/unix-def.in (SHELL): Define.
   310 2013-03-21  Werner Lemberg  <wl@gnu.org>
   312 	Fix Savannah patch #7971.
   314 	* configure: Handle MAKE environment variable also.
   316 2013-03-17  Werner Lemberg  <wl@gnu.org>
   318 	Fix Savannah bug #38538.
   320 	* builds/amiga/src/base/ftdebug.c, builds/win32/ftdebug.c,
   321 	builds/wince/ftdebug.c (FT_Throw): Add function.
   323 2013-03-17  Werner Lemberg  <wl@gnu.org>
   325 	[raster] Remove dead code.
   327 	* src/raster/rastpic.c (ft_raster1_renderer_class_pic_init)
   328 	src/smooth/ftspic.c (ft_smooth_renderer_class_pic_init): Do it.
   330 2013-03-17  Werner Lemberg  <wl@gnu.org>
   332 	* src/pshinter/pshpic.h (GET_PIC): Use correct container.
   334 2013-03-15  Werner Lemberg  <wl@gnu.org>
   336 	* include/freetype/ftmoderr.h: Fix commit from 2013-03-11.
   338 	The previous version was not backwards compatible.  Reported by
   339 	Behdad.
   341 2013-03-14  Werner Lemberg  <wl@gnu.org>
   343 	*/*: Use FT_ERR_EQ, FT_ERR_NEQ, and FT_ERR where appropriate.
   345 	FT_Err_XXX and friends are no longer directly used in the source
   346 	code.
   348 2013-03-14  Werner Lemberg  <wl@gnu.org>
   350 	New error management macros.
   352 	* include/freetype/fterrors.h (FT_ERR_XCAT, FT_ERR_CAT): Move to...
   353 	* include/freetype/fttypes.h: ... this file.
   354 	(FT_ERR, FT_ERR_EQ, FT_ERR_NEQ, FT_MODERR_EQ, FT_MODERR_NEQ): New
   355 	macros.
   357 	* include/freetype/freetype.h: Updated.
   359 2013-03-14  Werner Lemberg  <wl@gnu.org>
   361 	*/*: Use FT_Err_Ok only.
   363 	This is a purely mechanical conversion.
   365 2013-03-14  Werner Lemberg  <wl@gnu.org>
   367 	*/*: Use `FT_THROW'.
   369 	This is essentially a mechanical conversion, adding inclusion of
   370 	`FT_INTERNAL_DEBUG_H' where necessary, and providing the macros for
   371 	stand-alone compiling modes of the rasterizer modules.
   373 	To convert the remaining occurrences of FT_Err_XXX and friends it is
   374 	necessary to rewrite the code.  Note, however, that it doesn't harm
   375 	if some cases are not handled since FT_THROW is a no-op.
   377 2013-03-13  Werner Lemberg  <wl@gnu.org>
   379 	Introduce `FT_THROW' macro.
   381 	The idea is to replace code like
   383 	  return FT_Err_Foo_Bar;
   385 	or
   387 	  return CFF_Err_Foo_Bar;
   389 	with
   391 	  return FT_THROW( Foo_Bar );
   393 	The FT_THROW macro has two functions:
   395 	  . It hides the module specific prefix.
   397 	  . In debug mode, it calls the empty function `FT_Throw' which can
   398 	    be thus used to set a breakpoint.
   400 	* include/freetype/internal/ftdebug.h (FT_THROW): New macro.
   401 	(FT_Throw): New prototype.
   402 	* src/base/ftdebug.c (FT_Throw): New function.
   404 2013-03-12  Werner Lemberg  <wl@gnu.org>
   406 	Remove `FT_KEEP_ERR_PREFIX'.
   408 	The idea is to always have FT_ERR_PREFIX available internally.
   410 	* include/freetype/fterrors.h: Use FT2_BUILD_LIBRARY to guard
   411 	undefinition of FT_ERR_PREFIX
   413 	* src/gxvalid/gxverror.h, src/otvalid/otverror.h,
   414 	src/sfnt/sferrors.h: Updated.
   416 2013-03-11  Werner Lemberg  <wl@gnu.org>
   418 	[gxvalid] Fix module error.
   420 	* src/gxvalid/gxverror.h (FT_ERR_BASE): Define as
   421 	FT_Mod_Err_GXvalid.
   422 	* include/freetype/ftmoderr.h: Add module error for `GXvalid'.
   424 2013-03-11  Werner Lemberg  <wl@gnu.org>
   426 	Always use module related error codes.
   428 	* src/cff/cffobjs.c (cff_face_init), src/type1/t1objs.c
   429 	(T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Use
   430 	`FT_ERROR_BASE'.
   432 	* src/type1/t1load.c (parse_encoding): Use
   433 	T1_Err_Unknown_File_Format.
   435 2013-03-08  Werner Lemberg  <wl@gnu.org>
   437 	[cff] Set `linear{Hori,Vert}Advance' for embedded bitmaps also.
   439 	Problem reported by Khaled Hosny <khaledhosny@eglug.org>.
   441 	* src/cff/cffgload.c (cff_slot_load): Implement it.
   443 2013-02-23  Alexei Podtelezhnikov  <apodtele@gmail.com>
   445 	[base] Fix commit ab02d9e8.
   447 	* src/base/ftbbox.c (BBox_Cubic_Check): Change scaling to msb of 22.
   449 2013-02-19  Alexei Podtelezhnikov  <apodtele@gmail.com>
   451 	[base] New bisecting BBox_Cubic_Check (disabled).
   453 	* src/base/ftbbox.c (BBox_Cubic_Check): New bisecting algorithm
   454 	for extremum search built around simple condition that defines
   455 	which half contains the extremum.
   457 2013-02-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
   459 	[tools] Update BBox testing tool.
   461 	* src/tools/test_bbox.c: Add another cubic outline with exact BBox.
   462 	(REPEAT): Increase the number of benchmarking cycles.
   463 	(profile_outline): Tweak output formatting.
   465 2013-02-02  Werner Lemberg  <wl@gnu.org>
   467 	Fix Savannah bug #38235.
   469 	* builds/unix/configure.raw: Don't generate `freetype-config' and
   470 	`freetype.pc'.
   472 	* builds/unix/unix-def.in (FT2_EXTRA_LIBS, LIBBZ2, LIBZ,
   473 	build_libtool_libs, ft_version): New variables to be substituted.
   474 	(freetype-config, freetype.pc): New rules to generate those files.
   476 	* builds/unix/freetype-config.in: Remove code for handling `rpath'.
   477 	The use of $rpath has been accidentally removed in a patch from
   478 	2009-12-22, and apparently noone has missed it since.
   479 	Use `%' instead of `@' as a variable substitution marker.
   480 	Use quotes.
   482 	* builds/unix/freetype.in: Use `%' instead of `@' as a variable
   483 	substitution marker.
   484 	Use quotes.
   486 2013-02-07  Werner Lemberg  <wl@gnu.org>
   488 	* src/truetype/ttobjs.c (tt_size_run_prep): Reset more GS variables.
   490 	BTW, Greg agrees that the OpenType specification is missing the list
   491 	of GS variables which will always be reset to the default values
   492 	after the `prep' table has been executed.
   494 2013-02-06  Werner Lemberg  <wl@gnu.org>
   496 	* src/truetype/ttobjs.c (tt_size_run_prep): Reset reference points.
   498 	Up to now, we simply took a snapshot of the Graphics State after the
   499 	`prep' table has been executed, and right before a glyph's bytecode
   500 	was run it got reloaded.  However, as Greg Hitchcock has told us in
   501 	private communication, reference points get reset to zero in the MS
   502 	rasterizer and we follow in due course.  While reasonable, this is
   503 	undocumented behaviour.
   505 	Most notably, this fixes the rendering of Arial's `x' glyph in
   506 	subpixel hinting mode.
   508 2013-02-05  Werner Lemberg  <wl@gnu.org>
   510 	[truetype] A better fix for Savannah bug #38211.
   512 	* src/truetype/ttinterp.c (Ins_IP): Implement identical behaviour to
   513 	MS rasterizer if rp1 == rp2 (confirmed by Greg Hitchcock).
   515 2013-02-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
   517 	[pcf] Streamline parsing of PCF encoding table.
   519 	* src/pcf/pcfread.c (pcf_get_encodings): Use simpler double for-loop.
   520 	Reallocate array instead of using temporary storage.
   522 2013-02-01  Werner Lemberg  <wl@gnu.org>
   524 	Fix Savannah bug #38227.
   526 	* builds/unix/freetype-config.in: Set LC_ALL.
   528 2013-02-01  Werner Lemberg  <wl@gnu.org>
   530 	Fix Savannah bug #38221.
   532 	This complements commit 83c0ebab.
   534 	* src/base/ftcalc.c (FT_MulDiv_No_Round): Don't enclose with
   535 	`TT_USE_BYTECODE_INTERPRETER'.
   537 2013-02-01  Werner Lemberg  <wl@gnu.org>
   539 	[truetype] Fix Savannah bug #38211.
   541 	* src/truetype/ttinterp.c (Ins_IP): Make FreeType behave identical
   542 	to other interpreters if rp1 == rp2 (which is invalid).
   544 2013-01-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
   546 	[base] Small optimization of BBox calculation.
   548 	* src/base/ftbbox.c (BBox_Cubic_Check): Use FT_MSB function in
   549 	scaling algorithm.
   551 2013-01-26  Infinality  <infinality@infinality.net>
   553 	[truetype] Minor formatting fix.
   555 	* src/truetype/ttinterp.c: Updated.
   556 	(DO_RS): Fix indentation.
   558 2013-01-26  Infinality  <infinality@infinality.net>
   560 	[truetype] Fix rasterizer_version logic in sph.
   562 	* src/truetype/ttsubpix.c: Updated.
   563 	(ALWAYS_SKIP_DELTAP_Rules): Remove rule for Trebuchet MS.
   564 	(sph_set_tweaks): Fix `rasterizer_version' logic.
   566 2013-01-26  Infinality  <infinality@infinality.net>
   568 	[truetype] Align more to ClearType whitepaper for sph.
   570 	* include/freetype/internal/tttypes.h (TT_FaceRec): Add flags
   571 	for detected opcode patterns and compatibility mode.
   573 	* src/truetype/ttgload.c (tt_loader_init): Complete conditional.
   575 	* src/truetype/ttinterp.c: Updated.
   576 	Remove SPH_DEBUG and replace with FT_TRACE7.
   577 	(DO_RS): More conditions.
   578 	(Ins_FDEF): Add more opcode detection patterns.
   579 	More specific conditions when flagging an fdef.
   580 	Make compatibility mode only turn on when delta fdefs are found.
   581 	(Ins_CALL, Ins_LOOPCALL): Set flags for currently executed fdef.
   582 	(Ins_SHPIX): Remove logic to handle ttfautohinted fonts.
   583 	Simplify conditionals where possible.
   584 	Use `&' instead of `%' operator for dumb compilers.
   585 	(Ins_MIAP): Adjust twilight zone conditional.
   586 	Ensure `ignore_x_mode' is on when testing sph conditionals.
   587 	(Ins_MIRP): Ensure `ignore_x_mode' is on when testing sph
   588 	conditionals.
   589 	Do cvt cutin always when `ignore_x_mode' is active.
   590 	Remove test for ttfautohinted fonts.
   591 	(Ins_DELTAP): Ensure `ignore_x_mode' is on when testing sph
   592 	conditionals.
   593 	Do cvt cutin always when `ignore_x_mode' is active.
   594 	Remove test for ttfautohinted fonts.
   595 	Use `&' instead of `%' operator for dumb compilers.
   596 	(Ins_GETINFO): Remove SPH_DEBUG and replace with FT_TRACE7.
   598 	* src/truetype/ttinterp.h: Updated.
   599 	(TT_ExecContextRec): Remove compatibility_mode variable.
   600 	Add variable to indicate when executing in special fdefs for sph.
   602 	* src/truetype/ttobjs.h: Updated.
   603 	(TT_DefRecord): Add flags to identify special fdefs for sph.
   604 	(TT_SizeRec): Remove unnecessary ttfautohinted variable.
   606 	* src/truetype/ttsubpix.c: Updated.
   607 	(COMPATIBILITY_MODE_Rules): Remove all.  Auto-detected now.
   608 	(PIXEL_HINTING_Rules): Remove all.  Unnecessary after fixes.
   609 	(SKIP_NONPIXEL_Y_MOVES_Rules): Remove Ubuntu.
   610 	(SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Arial Bold `N'.
   611 	(SKIP_OFFPIXEL_Y_MOVES_Rules): Remove all.  Happens automatically
   612 	now.
   613 	(ROUND_NONPIXEL_Y_MOVES_Rules): Remove Ubuntu.
   614 	(ROUND_NONPIXEL_Y_MOVES_Rules_Exceptions): Remove all.
   615 	(NORMAL_ROUND_Rules): Remove Verdana.
   616 	(NO_DELTAP_AFTER_IUP_Rules): Remove all.
   617 	(sph_set_tweaks): Performance fix.  Don't run prep always.
   618 	Adjust conditional for sph_compatibility_mode.
   620 	* src/truetype/ttsubpix.h: Add new fdef flags for sph.
   622 2013-01-23  Alexei Podtelezhnikov  <apodtele@gmail.com>
   624 	[base] Fix broken emboldening at small sizes.
   626 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Do not attempt to
   627 	normalize zero-length vectors.
   629 2013-01-25  Werner Lemberg  <wl@gnu.org>
   631 	Fix Savannah bug #38167.
   633 	This fixes commit 83c0ebab from 2012-06-27.
   635 	* src/truetype/ttinterp.h:
   636 	s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
   638 2013-01-25  Xi Wang  <xi.wang@gmail.com>
   640 	[sfnt] Fix broken pointer overflow checks.
   642 	Many compilers such as gcc and clang optimize away pointer overflow
   643 	checks `p + n < p', because pointer overflow is undefined behavior.
   644 	Use a safe form `n > p_limit - p' instead.
   646 	Also avoid possible integer overflow issues, for example, using
   647 	`num_glyphs > ( p_limit - p ) / 2' rather than `num_glyphs * 2'
   648 	given a large `num_glyphs'.
   650 	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Implement it.
   652 2013-01-25  Werner Lemberg  <wl@gnu.org>
   654 	[base] Fix `make multi'.
   656 	* src/base/ftoutln.c, src/base/fttrigon.c: Include
   657 	FT_INTERNAL_CALC_H.
   659 2013-01-25  David 'Digit' Turner  <digit@google.com>
   661 	[truetype] Fix C++ compilation.
   663 	* src/truetype/ttsubpix.h: Updated.
   664 	(SPH_X_SCALING_RULES_SIZE): Moved and renamed to...
   665 	* src/truetype/ttsubpix.c (X_SCALING_RULES_SIZE): This.
   666 	(sph_X_SCALING_Rules): Removed.
   667 	(scale_test_tweak): Make function static.
   668 	(sph_test_tweak_x_scaling): New function.
   670 	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Updated.
   672 2013-01-23  Werner Lemberg  <wl@gnu.org>
   674 	[base] Make `FT_Hypot' really internal.
   676 	* include/freetype/fttrigon.h (FT_Hypot): Move to...
   677 	* include/freetype/internal/ftcalc.h: This file.
   679 	* src/base/fttrigon.c (FT_Hypot): Move to...
   680 	* src/base/ftcalc.c: This file.
   681 	Include FT_TRIGONOMETRY_H.
   683 	* src/truetype/ttgload.c: Don't include FT_TRIGONOMETRY_H.
   685 2013-01-23  Werner Lemberg  <wl@gnu.org>
   687 	[truetype] Revert change from 2013-01-22.
   689 	FreeType's `height' value is the baseline-to-baseline distance...
   691 	* src/truetype/ttobjs.c (tt_size_reset): Undo.
   693 2013-01-23  Alexei Podtelezhnikov  <apodtele@gmail.com>
   695 	[base, truetype] New internal `FT_Hypot' function.
   697 	* include/freetype/fttrigon.h (FT_Hypot): Declare it.
   698 	* src/base/fttrigon.c (FT_Hypot): Define it.
   699 	* src/truetype/ttgload.c (TT_Process_Composite_Component): Use it
   700 	instead of explicit expressions.
   701 	* src/truetype/ttinterp.c (Current_Ratio, Normalize): Use it instead
   702 	of TT_VecLen.
   703 	(TT_VecLen): Removed.
   705 2013-01-23  Alexei Podtelezhnikov  <apodtele@gmail.com>
   707 	[base] Fix integer overflow.
   709 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Normalize incoming and
   710 	outgoing vectors and use fixed point arithmetic.
   712 2013-01-23  Alexei Podtelezhnikov  <apodtele@gmail.com>
   714 	[base] Fix integer overflow.
   716 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Scale the
   717 	coordinates down to avoid overflow.
   719 2013-01-23  Alexei Podtelezhnikov  <apodtele@gmail.com>
   721 	[base] Split out MSB function.
   723 	* src/base/fttrigon.c (ft_trig_prenorm): Borrow from here.
   724 	* include/freetype/internal/ftcalc.h (FT_MSB): Declare here.
   725 	* src/base/ftcalc.c (FT_MSB): Define here.
   727 2013-01-22  Werner Lemberg  <wl@gnu.org>
   729 	[truetype] Fix font height.
   731 	* src/truetype/ttobjs.c (tt_size_reset): The Windows rendering
   732 	engine uses rounded values of the ascender and descender to compute
   733 	the TrueType font height.
   735 2013-01-16  Behdad Esfahbod  <behdad@behdad.org>
   737 	[sfnt] Fix optimized sbit loader.
   739 	It was not taking bit_depth into consideration when blitting!
   741 	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_byte_aligned,
   742 	* tt_sbit_decoder_load_bit_aligned): Handle bit
   743 	depth.
   745 2013-01-16  David 'Digit' Turner  <digit@google.com>
   747 	[truetype] Improve sub-pixel code.
   749 	This patches fixes many issues with the ttsubpix implementation.
   751 	1. Data tables are defined, instead of declared, in the header, and
   752 	   thus copied into each source file that includes it.
   754 	2. These tables were defined as global, mutable, visible variables,
   755 	   and thus costing private RAM to every process that loads the
   756 	   library (> 50 KB / process, this is huge!).
   758 	   Additionally, this also made the library export the symbols
   759 	   completely needlessly.
   761 	3. Missing `sph_' and `SPH_' prefixes to some of the definitions.
   763 	Note that this doesn't try to fix the incredibly inefficient storage
   764 	format for the data tables used by the code.  This one will require
   765 	another pass in the future.
   767 	* src/truetype/ttinterp.h (MAX_NAME_SIZE, MAX_CLASS_MEMBERS):
   768 	Renamed to...
   769 	(SPH_MAX_NAME_SIZE, SPH_MAX_CLASS_MEMBERS): This.
   770 	Update all users.
   772 	(SPH_TweakRule, SPH_ScaleRule): Decorate with `const' where
   773 	appropriate.
   775 	(Font_Class): Rename to...
   776 	(SPH_Font_Class): This.  Decorate with `const' where appropriate.
   778 	* src/truetype/ttsubpix.h (scale_test_tweak, sph_test_tweak):
   779 	Decorate arguments with `const' where appropriate.
   781 	Move font tweaking tables to...
   783 	* src/truetype/ttsubpic.c: This file and decorate them with `static'
   784 	and `const' where appropriate.
   786 	(X_SCALING_Rules, X_SCALING_RULES_SIZE): Renamed to...
   787 	(spu_X_SCALING_Rules, SPH_X_SCALING_RULES_SIZE): This.
   788 	Update all users.
   790 2013-01-12  Alexei Podtelezhnikov  <apodtele@gmail.com>
   792 	[truetype] Improve accuracy of normalization of short vectors.
   794 	Unit vector components are stored as 2.14 fixed-point numbers. In
   795 	order to calculate all 14 bits accurately, a short vector to be
   796 	normalized has to be upscaled to at least 14 bits before its length
   797 	is calculated. This has been safe since accurate CORDIC algorithms
   798 	were adopted.
   800 	* src/truetype/ttinterp.c (Normalize): Scale short vectors by 0x4000.
   802 2013-01-12  Alexei Podtelezhnikov  <apodtele@gmail.com>
   804 	[truetype] Kill very old vector normalization hacks.
   806 	Back in the days, vector length calculations were not very accurate
   807 	and the vector normalization function, Normalize, had to meticulously
   808 	correct the errors for long vectors [commit b7ef2b096867]. It was no
   809 	longer necessary after accurate CORDIC algorithms were adopted, but
   810 	the code remained. It is time to kill it.
   812 	* src/truetype/ttinterp.c (Normalize): Remove error compensation.
   813 	(TT_VecLen): Remove any mention of old less accurate implementation.
   815 2013-01-11  Werner Lemberg  <wl@gnu.org>
   817 	Disable FT_CONFIG_OPTION_OLD_INTERNALS.
   819 	After the next release we are going to remove the code completely.
   821 	* devel/ftoption.h, include/freetype/config/ftoption.h
   822 	(FT_CONFIG_OPTION_OLD_INTERNALS): Comment out.
   823 	* docs/CHANGES: Document it.
   825 2013-01-10  Alexei Podtelezhnikov  <apodtele@gmail.com>
   827 	[base] Update the overflow protection bit.
   829 	The recent optimizations of CORDIC iterations drastically reduce the
   830 	expansion factor.  Vector components with MSB of 29 are now safe
   831 	from overflow.
   833 	* src/base/fttrigon.c (FT_TRIG_SAFE_MSB): New macro.
   834 	(ft_trig_prenorm): Use it and remove dead code.
   836 2013-01-09  Alexei Podtelezhnikov  <apodtele@gmail.com>
   838 	[base, pshinter] Use FT_ABS, FT_MIN, and FT_MAX for readability.
   840 	* src/base/ftbbox.c: Updated.
   841 	* src/base/ftobjs.c: Updated.
   842 	* src/base/fttrigon.c: Updated.
   843 	* src/pshinter/pshalgo.c: Updated.
   844 	* src/pshinter/pshrec.c: Updated.
   846 2013-01-08  Alexei Podtelezhnikov  <apodtele@gmail.com>
   848 	[base] Clean up trigonometric core.
   850 	* src/base/fttrigon.c: Document the algorithm in a large comment.
   851 	(FT_TRIG_COSCALE): Remove macro.
   852 	(FT_Tan: Use `FT_TRIG_SCALE' instead.
   853 	(FT_Cos, FT_Vector_Unit): Ditto and round the return values.
   855 2013-01-02  Alexei Podtelezhnikov  <apodtele@gmail.com>
   857 	[base] Use rounding in CORDIC iterations.
   859 	* src/base/fttrigon.c (ft_trig_pseudo_rotate,
   860 	ft_trig_pseudo_polarize): Improve accuracy by rounding.
   862 2013-01-02  Alexei Podtelezhnikov  <apodtele@gmail.com>
   864 	[base] Reduce trigonometric algorithms.
   866 	After we get within 45 degrees by means of true 90-degree rotations,
   867 	we can remove initial 45-degree CORDIC iteration and start from
   868 	atan(1/2) pseudorotation, reducing expansion factor thereby.
   870 	* src/base/fttrigon.c (FT_TRIG_SCALE, FT_TRIG_COSCALE): Update macros.
   871 	(ft_trig_pseudo_rotate, ft_trig_pseudo_polarize): Update.
   873 	* src/tools/cordic.py: Bring up to date with trigonometric core.
   875 	* docs/CHANGES: Old typo.
   877 2013-01-02  Alexei Podtelezhnikov  <apodtele@gmail.com>
   879 	* src/pshinter/pshalgo.h: Remove unused code.
   881 2012-12-27  Werner Lemberg  <wl@gnu.org>
   883 	* src/truetype/ttgload.c (tt_loader_init): Add more tracing.
   885 2012-12-23  Werner Lemberg  <wl@gnu.org>
   887 	[type1] Fix handling of /FontBBox in MM fonts.
   888 	Problem reported by Del Merritt <del@alum.mit.edu>
   890 	If we have
   892 	  /FontBBox { { 11 12 13 14 15 16 17 18 }
   893 	              { 21 22 23 24 25 26 27 28 }
   894 	              { 31 32 33 34 35 36 37 38 }
   895 	              { 41 42 43 44 45 46 47 48 } }
   897 	in the /Blend dictionary,  then the first BBox is { 11 21 31 41 },
   898 	the second { 12 22 32 42 }, etc.
   900 	* include/freetype/internal/psaux.h (T1_FieldType): Add
   901 	`T1_FIELD_TYPE_MM_BBOX' (for temporary use).
   903 	* src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_MM_BBOX>:
   904 	Implement it.
   906 2012-12-21  Alexei Podtelezhnikov  <apodtele@gmail.com>
   908 	* src/tools/cordic.py: Bring up to date with trigonometric core.
   910 2012-12-21  Werner Lemberg  <wl@gnu.org>
   912 	Check parameters of `FT_Outline_New'.
   913 	Problem reported by Robin Watts <robin.watts@artifex.com>.
   915 	* src/base/ftoutln.c (FT_Outline_New_Internal): Ensure that
   916 	`numContours' and `numPoints' fit into FT_Outline's `n_points' and
   917 	`n_contours', respectively.
   919 2012-12-20  Werner Lemberg  <wl@gnu.org>
   921 	* Version 2.4.11 released.
   922 	==========================
   925 	Tag sources with `VER-2-4-11'.
   927 	* docs/CHANGES, docs/release: Updated.
   929 	* docs/VERSION.DLL: Update documentation and bump version number to
   930 	2.4.11.
   932 	* README, Jamfile (RefDoc),
   933 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
   934 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
   935 	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
   936 	builds/win32/visualc/freetype.dsp,
   937 	builds/win32/visualc/freetype.vcproj,
   938 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
   939 	builds/win32/visualce/freetype.vcproj,
   940 	builds/win32/visualce/index.html,
   941 	builds/wince/vc2005-ce/freetype.vcproj,
   942 	builds/wince/vc2005-ce/index.html,
   943 	builds/wince/vc2008-ce/freetype.vcproj,
   944 	builds/wince/vc2008-ce/index.html: s/2.4.10/2.4.11/, s/2410/2411/.
   946 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 11.
   948 	* builds/unix/configure.raw (version_info): Set to 16:0:10.
   950 	* builds/toplevel.mk (dist): Don't include `.mailmap'.
   952 2012-12-20  Alexei Podtelezhnikov  <apodtele@gmail.com>
   954 	[base] Improve trigonometric core.
   956 	FreeType used to rely on a 24-step iteration CORDIC algorithm to
   957 	calculate trigonometric functions and rotate vectors. It turns out
   958 	that once the vector is in the right half-plane, the initial rotation
   959 	by 63 degrees is not necessary. The algorithm is perfectly capable
   960 	to converge to any angle starting from the second 45 degree rotation.
   961 	This patch removes the first rotation and makes it a 23-step CORDIC
   962 	algorithm.
   964 	* src/base/fttrigon.c (FT_TRIG_SCALE, FT_TRIG_COSCALE): Update macro
   965 	values.
   966 	(ft_trig_pseudo_rotate, ft_trig_pseudo_polarize): Remove initial
   967 	rotation.
   969 2012-12-19  Werner Lemberg  <wl@gnu.org>
   971 	* src/base/ftobjs.c (ft_property_do): Fix compiler warning.
   973 2012-12-19  Alexei Podtelezhnikov  <apodtele@gmail.com>
   975 	* src/base/ftrfork.c (FT_Raccess_Guess): Switch to FT_Int counters.
   977 2012-12-19  Alexei Podtelezhnikov  <apodtele@gmail.com>
   979 	[base] Clean up trigonometric core.
   981 	* src/base/fttrrigon.c (ft_trig_pseudo_polarize): Align algorithm
   982 	with `ft_trig_pseudo_rotate'.
   984 2012-12-18  Infinality  <infinality@infinality.net>
   986 	[truetype] Minor performance enhancement.
   988 	* src/truetype/ttgload.c: (TT_Process_Simple_Glyph): Use FT_MulFix
   989 	instead of FT_MulDiv.
   991 2012-12-17  Infinality  <infinality@infinality.net>
   993 	[truetype] Remove unusued code and variables.
   995 	* src/truetype/ttinterp.c: Updated.
   996 	(Ins_FDEF): Remove opcode patterns that are not being used.
   998 2012-12-16  Werner Lemberg  <wl@gnu.org>
  1000 	Various compiler warning fixes.
  1002 	* include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Use
  1003 	`logical not' operator instead of negation.  The idea is that `~'
  1004 	returns exactly the data type enforced by the cast to a pointer (be
  1005 	it 32bit or 64bit or whatever), while a negative integer has not
  1006 	this flexibility.
  1007 	* src/cache/ftccmap.c (FTC_CMAP_UNKNOWN): Ditto.
  1008 	* src/truetype/ttgxvar.c (ALL_POINTS, TT_Get_MM_Var): Ditto.
  1009 	* src/type/t1load.c (T1_Get_MM_Var): Ditto.
  1010 	(parse_blend_axis_types): Use cast.
  1011 	* src/bdf/bdflib.c (_bdf_readstream): Use cast.
  1013 2012-12-16  Infinality  <infinality@infinality.net>
  1015 	[truetype] Remove unusued code and variables.  Add minor fixes.
  1017 	* src/truetype/ttsubpix.h: Updated.
  1018 	(SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Trebuchet MS.
  1019 	(ALLOW_X_DMOVEX_Rules): Remove Arial characters.
  1020 	(ALLOW_X_DMOVE_Rules): Remove Arial characters.
  1021 	(RASTERIZER_35_Rules): Verdana no longer needs to be here.
  1022 	(SKIP_IUP_Rules): Formatting fix.
  1023 	(DELTAP_SKIP_EXAGGERATED_VALUES_Rules): Remove Segoe UI.
  1024 	(COMPATIBLE_WIDTHS_Rules): Add Monaco and Trebuchet MS.
  1025 	(X_SCALING_Rules): Add misc. corrective fixes.
  1027 	* src/truetype/ttgload.c: (TT_Process_Simple_Glyph): Adjust correction
  1028 	factor for emboldening during scaling.
  1030 	* src/truetype/ttinterp.h: Updated.
  1031 	(TT_ExecContextRec): Remove unused variables.
  1033 	* src/truetype/ttobjs.h: Updated.
  1034 	(TT_SizeRec): Add ttfautohinted variable.
  1036 	* src/truetype/ttinterp.c: Updated.
  1037 	(Ins_FDEF): Rework code to fix bugs and add more detection.
  1038 	(Ins_CALL): Remove unused code.
  1039 	(Ins_LOOPCALL): Remove unused code.
  1040 	(TT_RunIns): Remove unusued code.
  1041 	(Ins_SHPIX): Add logic to handle ttfautohinted fonts.
  1042 	(Ins_MIRP): Don't round x in cut-in calculation.  Add logic to handle
  1043 	ttfautohinted fonts.
  1045 2012-12-16  Werner Lemberg  <wl@gnu.org>
  1047 	[sfnt] Fix Savannah bug #37936.
  1049 	* src/sfnt/ttload.c (tt_face_load_gasp): Avoid memory leak.
  1051 2012-12-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
  1053 	[base] Fix 11-year old bug.
  1055 	Since the initial commit (ebe85f59) the value of FT_TRIG_SCALE has
  1056 	always been slightly less than the correct value, which has been
  1057 	given in the comment as a hexadecimal. As a result, vector lengths
  1058 	were underestimated and rotated vectors were shortened.
  1060 	* src/base/fttrigon.c (FT_TRIG_SCALE): Fix macro value.
  1062 2012-12-15  Werner Lemberg  <wl@gnu.org>
  1064 	[bdf] Fix Savannah bug #37907.
  1066 	* src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Normalize
  1067 	negative second parameter of `ENCODING' field also.
  1069 2012-12-15  Werner Lemberg  <wl@gnu.org>
  1071 	[bdf] Fix Savannah bug #37906.
  1073 	* src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Use correct array
  1074 	size for checking `glyph_enc'.
  1076 2012-12-15  Werner Lemberg  <wl@gnu.org>
  1078 	[bdf] Fix Savannah bug #37905.
  1080 	* src/bdf/bdflib.c (_bdf_parse_start) <STARTPROPERTIES>: Reset
  1081 	`props_size' to zero in case of allocation error; this value gets
  1082 	used in a loop in `bdf_free_font'.
  1084 2012-12-10  Alexei Podtelezhnikov  <apodtele@gmail.com>
  1086 	[truetype] Scale F_dot_P down.
  1088 	The dot product between freeVector and projVector or cosine of
  1089 	the angle between these FT_F2Dot14 unit vectors used to be scaled up
  1090 	by 4 and routinely occupied 32 bits in an FT_Long field F_dot_P.
  1091 	This patch scales the value down by 2^14 instead, which simplifies
  1092 	its use throughout the bytecode interpreter.
  1094 	This does not lead to the loss of precision because the lower bits
  1095 	are unreliable anyway. Consider two unit vectors (1,0) and (.6,.8)
  1096 	for which the true value of F_dot_P is .6 * 0x40000000 = 0x26666666.
  1097 	These vectors are stored as (0x4000,0) and (0x2666,0x3333) after
  1098 	rounding and F_dot_P is assigned 0x26660000. The lower bits were
  1099 	already lost while rounding the unit vector components.
  1101 	Besides code simplification, this change can lead to better
  1102 	performance when FT_MulDiv with the scaled-down F_dot_P is less
  1103 	likely to use the costly 64-bit path. We are not changing the type
  1104 	of F_dot_P to FT_F2Dot14 at this point.
  1106 	* src/truetype/ttinterp.c (Compute_Funcs): Scale F_dot_P down by 14
  1107 	bits and modify its use accordingly.
  1108 	(Direct_Move, Direct_Move_Orig, Compute_Point_Displacement): Modify
  1109 	the use of F_dot_P field.
  1110 	* src/truetype/ttobjs.c (tt_size_run_fpgm): Change arbitrary
  1111 	assignment of F_dot_P to its theoretical maximum in case we decide
  1112 	to scale back its type later.
  1114 2012-12-09  Johnson Y. Yan  <yinsen_yan@foxitsoftware.com>
  1116 	[type1] Another fix for 2012-09-17 commit.
  1118 	* src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Correctly set
  1119 	`limit' value.
  1121 2012-12-06  Alexei Podtelezhnikov  <apodtele@gmail.com>
  1123 	[truetype] Tweak the previous commit.
  1125 	* src/truetype/ttinterp.c (Current_Ratio): Put unit vector
  1126 	components as the second TT_MulFix14 arguments. This is required
  1127 	on 16-bit systems.
  1129 2012-12-06  Alexei Podtelezhnikov  <apodtele@gmail.com>
  1131 	[truetype] Microoptimizations in bytecode interpreter.
  1133 	* src/truetype/ttinterp.c (TT_DivFix14): New macro.
  1134 	(Normalize): Use it here.
  1135 	(Current_Ratio): Use TT_MulFix14 instead of FT_MulDiv.
  1136 	(Ins_SHPIX): Cancel out two TT_MulFix14 calls.
  1138 2012-12-05  Alexei Podtelezhnikov  <apodtele@gmail.com>
  1140 	[truetype] Cosmetic improvement in bytecode interpreter.
  1142 	* src/truetype/ttinterp.c: Use explicit calls to FT_MulDiv,
  1143 	FT_MulFix, and FT_DivFix instead of macros.
  1145 2012-12-03  John Tytgat  <John.Tytgat@esko.com>
  1147 	[pshinter] Clamp BlueScale value.
  1149 	This is Savannah bug #37856.
  1151 	* src/pshinter/pshglob.c (psh_calc_max_height): New function.
  1152 	(psh_globals_new): Use it to limit BlueScale value to
  1153 	`1 / max_of_blue_zone_heights'.
  1155 2012-12-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
  1157 	[truetype, type1] Revise the use of FT_MulDiv.
  1159 	* src/truetype/ttgxvar.c: Updated.
  1160 	* src/truetype/ttobjs.c: Updated.
  1161 	* src/type1/t1load.c: Updated.
  1163 2012-11-30  Werner Lemberg  <wl@gnu.org>
  1165 	[configure] Preserve customized `ftoption.h'.
  1167 	Problem reported by Del Merritt <del@alum.mit.edu>.
  1169 	* builds/unix/configure.raw <cpp computation of bit length>: Don't
  1170 	remove existing FreeType configuration files.
  1172 2012-11-29  John Tytgat  <John.Tytgat@esko.com>
  1174 	[type1] Fix Savannah bug #37831.
  1176 	The bug report also contains a patch.
  1178 	* src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Really fix
  1179 	change from 2012-09-17.
  1181 2012-11-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
  1183 	[truetype] Fix formatting and typo.
  1185 2012-11-27  Alexei Podtelezhnikov  <apodtele@gmail.com>
  1187 	[cid, type1, type42] Clean up units_per_EM calculations.
  1189 	* src/cid/cidload.c (cid_parse_font_matrix): Updated.
  1190 	* src/type1/t1load.c (t1_parse_font_matrix): Updated.
  1191 	* src/type42/t42parse.c (t42_parse_font_matrix): Updated.
  1193 2012-11-27  Alexei Podtelezhnikov  <apodtele@gmail.com>
  1195 	[ftstroke] Minor improvement.
  1197 	* src/base/ftstroke.c: Replace nested FT_DivFix and FT_MulFix with
  1198 	FT_MulDiv.
  1200 2012-11-17  Werner Lemberg  <wl@gnu.org>
  1202 	* src/base/fttrigon.c (ft_trig_downscale): Make 64bit version work.
  1204 2012-11-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
  1206 	[base] Fix integer overflows in dd5718c7d67a.
  1208 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Use FT_MulDiv.
  1210 2012-11-15  Werner Lemberg  <wl@gnu.org>
  1212 	[autofit] Trace stem widths.
  1214 	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Add some
  1215 	FT_TRACE calls.
  1217 2012-11-13  Werner Lemberg  <wl@gnu.org>
  1219 	[cff] Add support for OpenType Collections (OTC).
  1221 	* src/cff/cffload.c (cff_font_load): Separate subfont and face
  1222 	index handling to load both pure CFFs with multiple subfonts and
  1223 	OTCs (with multiple faces where each face holds exactly one
  1224 	subfont).
  1225 	* src/cff/cffobjs.c (cff_face_init): Updated.
  1227 2012-11-12  Werner Lemberg  <wl@gnu.org>
  1229 	[autofit] Minor improvement.
  1231 	* src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Fix
  1232 	loop.
  1234 2012-11-10  Werner Lemberg  <wl@gnu.org>
  1236 	[autofit] Improve tracing.
  1238 	* src/autofit/aflatin.c (af_latin_hint_edges)
  1239 	[FT_DEBUG_LEVEL_TRACE]: Count number of actions and emit something
  1240 	if there weren't any.
  1242 2012-11-04  Alexei Podtelezhnikov  <apodtele@gmail.com>
  1244 	[base] Fortify emboldening code against egregious distortions.
  1246 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Threshold emboldening
  1247 	strength when it leads to segment collapse.
  1249 2012-11-03  Alexei Podtelezhnikov  <apodtele@gmail.com>
  1251 	[base] Clean up emboldening code and improve comments there.
  1253 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Replace sequential
  1254 	calls to FT_MulFix and FT_DivFix with FT_MulDiv.
  1255 	Mention that bisectors are used to figure out the shift direction.
  1257 2012-10-24  Werner Lemberg  <wl@gnu.org>
  1259 	[autofit] Add standard character to `AF_ScriptClassRec' structure.
  1261 	* src/autofit/aftypes.h (AF_ScriptClassRec): Add `standard_char'
  1262 	member.
  1263 	(AF_DEFINE_SCRIPT_CLASS): Updated.
  1265 	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Use it.
  1266 	(af_latin_metrics_init, af_latin_script_class): Updated.
  1268 	* src/autofit/aflatin.c (af_latin2_metrics_init_widths): Use it.
  1269 	(af_latin2_metrics_init, af_latin2_script_class): Updated.
  1271 	* src/autofit/afcjk.c (af_cjk_metrics_init_widths): Use it.
  1272 	(af_cjk_metrics_init, af_cjk_script_class): Updated.
  1274 	* src/autofit/afindic.c	(af_indic_metrics_init,
  1275 	af_indic_script_class): Updated.
  1277 	* src/autofit/afcjk.h, src/autofit/aflatin.h: Updated.
  1279 	* src/autofit/afdummy.c: Updated.
  1281 2012-10-24  Werner Lemberg  <wl@gnu.org>
  1283 	[autofit] Only use Unicode CMap.
  1285 	* src/autofit/aflatin.c (af_latin_metrics_init): Implement it, to be
  1286 	in sync with `af_face_globals_compute_script_coverage'.
  1288 2012-10-21  Werner Lemberg  <wl@gnu.org>
  1290 	[psaux] Improve parsing of invalid numbers.
  1292 	* src/psaux/psconv.c (PS_Conv_Strtol): Always parse complete number,
  1293 	even in case of overflow.
  1294 	(PS_Conv_ToInt): Only increase cursor if parsing was successful.
  1295 	(PS_Conv_ToFixed): Ditto.
  1296 	Trace underflow and data error.
  1298 2012-10-21  Werner Lemberg  <wl@gnu.org>
  1300 	[smooth] Improve tracing.
  1302 	* src/smooth/ftgrays.c (gray_sweep): Trace last sweep line of
  1303 	current band also.
  1305 2012-10-20  Alexei Podtelezhnikov  <apodtele@gmail.com>
  1307 	[truetype] Cheaper way to threshold angles between vectors.
  1309 	* src/truetype/ttinterp.c (Ins_ISECT): Thresholding tangent is a lot
  1310 	cheaper than thresholding sine.
  1312 2012-10-20  Werner Lemberg  <wl@gnu.org>
  1314 	[cff] Improve parsing of invalid real numbers.
  1316 	* src/cff/cffparse.c (cff_parse_real): Always parse complete number,
  1317 	even in case of overflow or underflow.
  1318 	Also trace one more underflow.
  1320 2012-10-20  Andreas Pehnack  <andreas.pehnack@me.com>
  1322 	[sfnt] Load pure CFF fonts wrapped in SFNT container.
  1324 	Such fonts only have a `cmap' and a `CFF' table.
  1326 	* src/sfnt/ttload.c (tt_face_load_font_dir): Don't call
  1327 	`check_table_dir' if font signature is `OTTO'.
  1329 2012-10-20  Werner Lemberg  <wl@gnu.org>
  1331 	[psaux] Fix some value overflows and improve tracing.
  1333 	* src/psaux/psconv.c: Include FT_INTERNAL_DEBUG_H.
  1334 	(FT_COMPONENT): Define.
  1335 	(PS_Conv_Strtol): Return FT_Long.
  1336 	Handle bad data and overflow.
  1337 	Emit some tracing messages in case of error.
  1338 	(PS_Conv_ToInt): Return FT_Long.
  1339 	(PS_Conv_ToFixed): Updated.
  1340 	* src/psaux/psconv.h: Updated.
  1342 	* include/freetype/internal/fttrace.h: Add `psconv'.
  1344 2012-10-20  Werner Lemberg  <wl@gnu.org>
  1346 	[autofit] Fix `make multi CC=c++'.
  1348 	* src/autofit/aflatin.c, src/autofit/aflatin2.c: Include
  1349 	`afglobal.h'.
  1350 	* src/autofit/afloader.c: Fix order of header files.
  1351 	* src/autofit/afmodule.c: Include `afglobal.h' and `aferrors.h'.
  1353 2012-10-19  Werner Lemberg  <wl@gnu.org>
  1355 	[cff] Fix more value errors and improve tracing.
  1357 	* src/cff/cffparse.c (cff_parse_integer): Emit tracing message in
  1358 	case of error.
  1359 	(cff_parse_real): Handle and trace overflow, underflow, and bad data
  1360 	consistently.
  1361 	(do_fixed): New helper function, handling and tracing overflow.
  1362 	(cff_parse_fixed, cff_parse_fixed_scaled): Use `do_fixed'.
  1364 2012-10-17  Werner Lemberg  <wl@gnu.org>
  1366 	[psaux] Fix some value overflows.
  1368 	* src/psaux/psconv.c (PS_Conv_ToFixed): Implement it.
  1370 2012-10-17  Bram Tassyns  <BramT@enfocus.com>
  1372 	[cff] Fix value overflow.
  1374 	* src/cff/cffparse.c (cff_parse_fixed_scaled): Implement it.
  1376 2012-10-17  Werner Lemberg  <wl@gnu.org>
  1378 	[truetype] Fix Savannah bug #37572.
  1380 	* src/truetype/ttinterp.c (Ins_ISECT): Use angle between vectors to
  1381 	avoid grazing intersections.  The previous threshold was too coarse,
  1382 	incorrectly rejecting short but valid vectors.
  1384 2012-09-30  Gilles Espinasse  <g.esp@free.fr>
  1386 	Remove useless `rm' detection.
  1388 	`rm -f' is directly used in the `configure' script created by
  1389 	autoconf, thus no availability test is necessary.
  1391 	* builds/unix/configure.raw (RMF): Remove test.
  1392 	* builds/unix/unix-def.in (DELETE): Updated.
  1394 2012-09-29  Werner Lemberg  <wl@gnu.org>
  1396 	[autofit] Minor optimization.
  1398 	* src/autofit/afglobals.c (af_face_globals_compute_script_coverage):
  1399 	Add loop condition.
  1401 2012-09-29  Werner Lemberg  <wl@gnu.org>
  1403 	[autofit] Fix thinko.
  1405 	* src/autofit/aftypes.h (AF_SCRIPT):
  1406 	s/AF_SCRIPT_NONE/AF_SCRIPT_DUMMY/.  We already use `AF_SCRIPT_NONE'
  1407 	as a bit mask.
  1409 	* src/autofit/afdummy.c: Updated.
  1411 2012-09-18  Werner Lemberg  <wl@gnu.org>
  1413 	[autofit] Implement `increase-x-height' property.
  1415 	* include/freetype/ftautoh.h (FT_Prop_IncreaseXHeight): New
  1416 	structure.
  1418 	* include/autofit/afmodule.c (af_property_get_face_globals): New
  1419 	function, re-using code from `af_property_get'.
  1420 	(af_property_set, af_property_get): Handle `increase-x-height'.
  1421 	Updated.
  1423 2012-09-18  Werner Lemberg  <wl@gnu.org>
  1425 	[autofit] Implement Infinality's `increase glyph heights'.
  1427 	This is an improved version of a similar fix contained in the
  1428 	so-called `Infinality patch', taken from
  1430 	  http://www.infinality.net/fedora/linux/zips/freetype-infinality-2.4.10-20120616_01-x86_64.tar.bz2
  1432 	which addresses various enhancements of the auto-hinter.  Without
  1433 	properties to control a module's metadata it wasn't possible to
  1434 	adapt the patches because everything was originally controlled by
  1435 	environment variables which I consider not suitable in general.
  1437 	A patch to control `increase_x_height' follows.
  1439 	* src/autofit/afglobal.h (AF_PROP_INCREASE_X_HEIGHT_MIN,
  1440 	AF_PROP_INCREASE_X_HEIGHT_MAX): New macros.
  1441 	(AF_FaceGlobalsRec): Add `increase_x_height' member.
  1442 	* src/autofit/afglobal.c (af_face_globals_new): Initialize it.
  1444 	* src/autofit/aflatin.c (af_latin_metrics_scale_dim),
  1445 	* src/autofit/aflatin2.c (af_latin2_metrics_scale_dim): Implement
  1446 	handling of `increase_x_height'.
  1448 2012-09-18  Werner Lemberg  <wl@gnu.org>
  1450 	[autofit] Add hierarchical property access to some structures.
  1452 	* src/autofit/afglobal.h: Include `afmodule.h'.
  1453 	(AF_FaceGlobalsRec): Add `module' member.
  1454 	(AF_FaceGlobals): Typedef moved to...
  1455 	* src/autofit/aftypes.h: Here.
  1456 	(AF_ScriptMetricsRec): Add `globals' member.
  1458 	* src/autofit/afglobal.c (af_face_globals_new,
  1459 	af_face_globals_compute_script_coverage,
  1460 	af_face_globals_get_metrics): Updated.
  1462 	* src/autofit/afloader.c (af_loader_reset), src/autofit/afmodule.c
  1463 	(af_property_get): Updated.
  1465 2012-09-17  Werner Lemberg  <wl@gnu.org>
  1467 	[type1] Fix Savannah bug #37350.
  1469 	* src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Check for ASCII
  1470 	storage only if we actually have at least four bytes.
  1472 2012-09-15  Werner Lemberg  <wl@gnu.org>
  1474 	[autofit] Implement `fallback-script' property.
  1476 	* src/autofit/afglobal.c: s/default_script/fallback_script/.
  1477 	* src/autofit/afglobal.h: s/AF_SCRIPT_DEFAULT/AF_SCRIPT_FALLBACK/.
  1479 	* src/autofit/afmodule.c: s/default_script/fallback_script/.
  1480 	(af_property_set, af_property_get): Implement `fallback-script'.
  1481 	* src/autofit/afmodule.h: s/default_script/fallback_script/.
  1483 	* include/freetype/ftautoh.h: Document it.
  1485 2012-09-15  Werner Lemberg  <wl@gnu.org>
  1487 	[autofit] Correct previous Unicode 6.1.0 change.
  1489 	The auto-hinter's latin module only handles latin ligatures in the
  1490 	`Alphabetical Presentation Forms' block.
  1492 	* src/autofit/aflatin.c (af_latin_uniranges): Fix it.
  1494 2012-09-15  Werner Lemberg  <wl@gnu.org>
  1496 	* src/autofit/afmodule.c: s/FT_Err_/AF_Err_/.
  1498 2012-09-15  Werner Lemberg  <wl@gnu.org>
  1500 	[autofit] Make default script a global property.
  1502 	* src/autofit/afmodule.h (AF_ModuleRec): Add `default_script' field.
  1504 	* src/autofit/afglobal.c (af_face_globals_compute_script_coverage,
  1505 	af_face_globals_new), src/autofit/afloader.c (af_loader_reset),
  1506 	src/autofit/afmodule.c (af_property_get) <glyph-to-script-map>,
  1507 	af_autofitter_init:
  1508 	Handle default script.
  1510 	* src/autofit/afglobal.h: Updated.
  1512 2012-09-15  Werner Lemberg  <wl@gnu.org>
  1514 	Use `FT_Module' instead of `FT_Library' argument in property funcs.
  1516 	This internal change simplifies access to global module data.
  1518 	* include/freetype/internal/services/svprop.h
  1519 	(FT_Properties_SetFunc, FT_Properties_GetFunc): Change accordingly.
  1521 	* src/base/ftobjs.c (ft_property_do), src/autofit/afmodule.c
  1522 	(af_property_set, af_property_get): Updated.
  1524 2012-09-14  Werner Lemberg  <wl@gnu.org>
  1526 	[autofit] Update to Unicode 6.1.0.
  1528 	* src/autofit/afcjk.c (af_cjk_uniranges), src/autofit/aflatin.c
  1529 	(af_latin_uniranges): Add and fix ranges.
  1531 2012-09-14  Werner Lemberg  <wl@gnu.org>
  1533 	[autofit] Pass `AF_Module' instead of `AF_Loader'.
  1535 	We want to access the (not yet existing) module's global data later
  1536 	on.
  1538 	* src/autofit/afloader.c: Include `afmodule.h'.
  1539 	(af_loader_init, af_loader_reset, af_loader_done,
  1540 	af_loader_load_glyph): Change accordingly.
  1541 	* src/autofit/afmodule.c (AF_ModuleRec): Move to `afmodule.h'.
  1542 	Updated.
  1544 	* src/autofit/afmodule.h: Include `afloader.h'.
  1545 	(AF_ModuleRec): Define here.
  1546 	* src/autofit/afloader.h (AF_Module): Define here.
  1547 	Updated.
  1549 2012-09-14  Werner Lemberg  <wl@gnu.org>
  1551 	[autofit] Fix `make multi'.
  1553 	* include/freetype/internal/fttrace.h: Add `afmodule'.
  1554 	* src/autofit/afmodule.c: Include FT_INTERNAL_DEBUG_H.
  1555 	(FT_COMPONENT): Define.
  1557 2012-09-14  Werner Lemberg  <wl@gnu.org>
  1559 	* src/autofit/afmodule.c: s/FT_Autofitter/AF_Module/.
  1561 2012-09-12  Werner Lemberg  <wl@gnu.org>
  1563 	[autofit] Minor reorganization.
  1565 	* src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT,
  1566 	AF_SCRIPT_LIST_NONE, AF_DIGIT): Move to...
  1567 	* src/autofit/afglobal.h (AF_SCRIPT_DEFAULT, AF_SCRIPT_LIST_NONE,
  1568 	AF_DIGIT): This and update code.
  1570 2012-09-01  Werner Lemberg  <wl@gnu.org>
  1572 	[autofit] Implement `glyph-to-script-map' property.
  1574 	* include/freetype/ftautoh.h: New public header file.
  1575 	* include/freetype/config/ftheader.h (FT_AUTOHINTER_H): New macro.
  1577 	* src/autofit/afglobal.c (AF_FaceGlobalsRec): Move structure to...
  1578 	* src/autofit/afglobal.h: This header file.
  1579 	* src/autofit/afmodule.c: Include FT_AUTOHINTER_H.
  1580 	(af_property_get): Handle `glyph-to-script-map'.
  1582 2012-08-31  Werner Lemberg  <wl@gnu.org>
  1584 	[autofit] Implement properties service framework.
  1586 	No properties are added yet.
  1588 	* src/autofit/afmodule.c: Include FT_SERVICE_PROPERTIES_H.
  1589 	(af_property_set, af_property_get): New dummy functions.
  1590 	(af_service_properties, af_services, af_get_interface): Provide
  1591 	service setup.
  1592 	(autofit_moduleclass): Add service interface.
  1594 	* src/autofit/afpic.c: Add necessary forward declarations.
  1595 	(autofit_module_class_pic_init): Add code for service addition.
  1596 	(autofit_module_pic_free): Add code for service removal.
  1597 	* src/autofit/afpic.h (AF_SERVICES_GET, AF_SERVICE_PROPERTIES_GET):
  1598 	New macros which provide necessary syntactical sugar for PIC
  1599 	support.
  1601 2012-08-30  Werner Lemberg  <wl@gnu.org>
  1603 	Implement properties to control FreeType modules.
  1605 	* include/freetype/fterrdef.h (FT_Err_Missing_Property): New error
  1606 	code.
  1607 	* include/freetype/ftmodapi.h (FT_Property_Set, FT_Property_Get):
  1608 	New API.
  1610 	* include/freetype/internal/services/svprop.h: New file.
  1611 	* include/freetype/internal/ftserv.h (FT_SERVICE_PROPERTIES_H): New
  1612 	macro.
  1614 	* src/base/ftobjs.c: Include FT_SERVICE_PROPERTIES_H.
  1615 	(ft_property_do, FT_Property_Set, FT_Property_Get): New functions.
  1617 2012-08-29  Werner Lemberg  <wl@gnu.org>
  1619 	[docmaker] Allow `-' in tags and identifiers.
  1621 	* src/tools/docmaker/content.py (re_identifier),
  1622 	src/tools/docmaker/sources.py (re_markup_tag1, re_markup_tag2,
  1623 	re_crossref): Add `-' in patterns.
  1625 2012-08-27  Werner Lemberg  <wl@gnu.org>
  1627 	[FT_CONFIG_OPTION_PIC] Fix g++ 4.6.2 compiler warnings.
  1629 	* include/freetype/internal/ftdriver.h (FT_DEFINE_DRIVER),
  1630 	include/freetype/internal/ftobjs.h (FT_DEFINE_RENDERER,
  1631 	FT_DEFINE_MODULE), include/freetype/internal/ftserv.h
  1632 	(FT_DEFINE_SERVICEDESCREC1, FT_DEFINE_SERVICEDESCREC2,
  1633 	FT_DEFINE_SERVICEDESCREC3, FT_DEFINE_SERVICEDESCREC4,
  1634 	FT_DEFINE_SERVICEDESCREC5, FT_DEFINE_SERVICEDESCREC6),
  1635 	src/autofit/afpic.c (autofit_module_class_pic_init),
  1636 	src/base/basepic.c (ft_base_pic_init), src/base/ftinit.c
  1637 	(ft_create_default_module_classes), src/cff/cffparse.c
  1638 	(FT_Create_Class_cff_field_handlers), src/cff/cffpic.c
  1639 	(cff_driver_class_pic_init), src/pshinter/pshpic.c
  1640 	(pshinter_module_class_pic_init), src/psnames/pspic.c
  1641 	(psnames_module_class_pic_init), src/raster/rastpic.c
  1642 	(ft_raster1_renderer_class_pic_init), src/sfnt/sfntpic.c
  1643 	(sfnt_module_class_pic_init), src/sfnt/ttcmap.c
  1644 	(FT_Create_Class_tt_cmap_classes), src/smooth/ftspic.c
  1645 	(ft_smooth_renderer_class_pic_init), src/truetype/ttpic.c
  1646 	(tt_driver_class_pic_init): Initialize allocation variable.
  1648 2012-08-27  Werner Lemberg  <wl@gnu.org>
  1650 	[truetype] Fix compilation warning.
  1652 	* src/truetype/ttgload.c (IS_HINTED): Move macro to...
  1653 	* src/truetype/ttobjs.h: This header file.
  1655 2012-08-27  Werner Lemberg  <wl@gnu.org>
  1657 	[autofit, cff, pshinter, psnames] More renamings for orthogonality.
  1659 	* src/autofit/afmodule.c, src/autofit/afpic.h:
  1660 	s/AF_AUTOFITTER_/AF_/.
  1662 	* src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffparse.c,
  1663 	src/cff/cffpic.h: s/FT_CFF_/CFF_/.
  1665 	* src/pshinter/pshmod.c, src/pshinter/pshpic.h:
  1666 	s/FT_PSHINTER_/PSHINTER_/.
  1668 	* src/psnames/psmodule.c, src/psnames/pspic.h:
  1669 	s/FT_PSCMAPS/PSCMAPS_/.
  1671 2012-08-27  Werner Lemberg  <wl@gnu.org>
  1673 	[sfnt, truetype] More renamings for orthogonality.
  1675 	* src/sfnt/sfdriver.c, src/sfnt/sfntpic.h, src/sfnt/ttcmap.c,
  1676 	src/truetype/ttdriver.c, src/truetype/ttpic.h: s/FT_SFNT_/SFNT_/,
  1677 	s/FT_TT_/TT_/, s/GET_CMAP_INFO_GET/CMAP_INFO_GET/.
  1679 2012-08-27  Werner Lemberg  <wl@gnu.org>
  1681 	[autofit] Some macro and variable renamings for orthogonality.
  1683 	* include/freetype/internal/autohint.h, src/base/ftobjs.c,
  1684 	src/autofit/afmodule.c, src/autofit/afpic.c, src/autofit/afpic.h:
  1685 	s/SERVICE/INTERFACE/, s/service/interface/, s/Service/Interface/.
  1687 2012-08-26  Werner Lemberg  <wl@gnu.org>
  1689 	Fix Savannah bug #37178.
  1691 	* src/base/ftobjs.c (FT_Open_Face): Initialize `error' with
  1692 	`FT_Err_Missing_Module' before loop to indicate `no valid drivers'.
  1694 2012-08-17  Werner Lemberg  <wl@gnu.org>
  1696 	* src/base/ftsynth.c (FT_GlyphSlot_Oblique): Fix shear angle.
  1698 	The old value was far too large (more than 20°).  The new one
  1699 	corresponds to 12°, quite common in typography.
  1701 2012-08-12  Alexei Podtelezhnikov  <apodtele@gmail.com>
  1703 	[smooth] Fix Savannah bug #37017.
  1705 	* src/smooth/ftgrays.c (gray_render_cubic): Use a different set of
  1706 	checks when detecting super curvy splines to be split.
  1708 2012-08-05  Werner Lemberg  <wl@gnu.org>
  1710 	[autofit] Improve recognition of flat segments.
  1712 	Problem reported by Brad Dunzer <BDunzer@extensis.com>.
  1714 	* src/autofit/aflatin.c (af_latin_metrics_init_blues): We have
  1715 	a flat segment if the horizontal distance of best on-points is
  1716 	larger than a given threshold.
  1718 2012-08-05  Werner Lemberg  <wl@gnu.org>
  1720 	[autofit] Variable renamings.
  1722 	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Replace
  1723 	`glyph' with `outline'.
  1724 	s/best_first/best_contour_first/.
  1725 	s/best_last/best_contour_last/.
  1727 2012-07-31  Werner Lemberg  <wl@gnu.org>
  1729 	[type1] Fix Savannah bug #37000.
  1731 	* src/type1/t1load.c (parse_encoding): Fix order of checks.
  1733 2012-07-17  Werner Lemberg  <wl@gnu.org>
  1735 	[psaux] Fix Savannah bug #36833.
  1737 	* src/psaux/t1decode.c (t1operator_seac): `seac' is not a valid
  1738 	operator if we want metrics only.
  1740 2012-07-16  Werner Lemberg  <wl@gnu.org>
  1742 	[type1] Fix Savannah bug #36832.
  1744 	* src/type1/t1load.c (parse_charstrings): Reject negative number of
  1745 	glyphs.
  1747 2012-07-13  Werner Lemberg  <wl@gnu.org>
  1749 	[type1] Fix Savannah bug #36829.
  1751 	* src/type1/t1load.c (parse_encoding): Check cursor position after
  1752 	call to T1_Skip_PS_Token.
  1754 2012-07-12  Alexei Podtelezhnikov  <apodtele@gmail.com>
  1756 	Revert the last commit 45337b07.
  1758 	* src/base/ftstroke.c (FT_Stroker_New): Revert the previous change.
  1760 2012-07-11  Alexei Podtelezhnikov  <apodtele@gmail.com>
  1762 	[ftstroke] Fix uninitialized return value.
  1764 	* src/base/ftstroke.c (FT_Stroker_New): Return FT_Err_Ok instead.
  1766 2012-07-11  Werner Lemberg  <wl@gnu.org>
  1768 	[smooth] Avoid memory leak in case of failure.
  1770 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Use flags to
  1771 	indicate what to clean up after finishing the function, with and
  1772 	without errors.
  1774 2012-07-09  Werner Lemberg  <wl@gnu.org>
  1776 	Fix compilation with MSVC 5.0.
  1778 	Problem reported by Peter Breitenlohner and Akira Kakuto.
  1780 	* include/freetype/config/ftstdlib.h (ft_setjmp): Updated.
  1781 	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove cast.
  1783 2012-07-09  Werner Lemberg  <wl@gnu.org>
  1785 	[autofit] Improve debugging messages; do some code cleanup.
  1787 	* src/autofit/aflatin.c (af_latin_align_linked_edge,
  1788 	af_latin_hint_edges): Synchronize with formatting used in the
  1789 	ttfautohint project.
  1791 2012-07-07  Gilles Espinasse  <g.esp@free.fr>
  1793 	Fix strict-aliasing warning.
  1795 	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Avoid double cast.
  1797 2012-07-07  Dave Thomas  <dave.thomas@metaforic.com>
  1799 	[ARM] Fix FT_MulFix_arm.
  1801 	* include/freetype/config/ftconfig.h (FT_MulFix_arm) [__arm__]:
  1802 	Avoid ADDS instruction to clobber condition codes.
  1804 2012-07-06  Werner Lemberg  <wl@gnu.org>
  1806 	[autofit] Do some code cleanup.
  1808 	* src/autofit/afglobal.c (af_face_globals_new): Simplify.
  1810 	* src/autofit/afhints.c: Use `FT_TRACE7' instead of `printf'
  1811 	everywhere.
  1812 	(FT_COMPONENT): New macro.
  1813 	(af_glyph_hints_done): Simplify.
  1815 	* include/freetype/internal/fttrace.h: Updated.
  1817 2012-07-05  Werner Lemberg  <wl@gnu.org>
  1819 	[autofit] Improve output of debugging information.
  1821 	* src/autofit/afhints.c (af_glyph_hints_dump_segments): Print more
  1822 	data; report no data.
  1823 	(af_glyph_hints_dump_edges): Report no data.
  1825 2012-07-04  Werner Lemberg  <wl@gnu.org>
  1827 	[autofit] Fix Savannah bug #36091.
  1829 	* src/autofit/aflatin.c (af_latin_metrics_init_blues),
  1830 	src/autofit/aflatin2.c (af_latin2_metrics_init_blues): Change the
  1831 	constraint for testing round vs. flat segment: Accept either a
  1832 	small distance or a small angle.
  1834 2012-07-04  Werner Lemberg  <wl@gnu.org>
  1836 	[autofit] Beautify blue zone tracing.
  1838 	* src/autofit/aflatin.c (af_latin_metrics_init_blues),
  1839 	src/autofit/aflatin2.c (af_latin2_metrics_init_blues): Implement it.
  1841 2012-07-03  Werner Lemberg  <wl@gnu.org>
  1843 	[autofit] Quantize stem widths.
  1845 	* src/autofit/afangles.c (af_sort_widths): Rename to...
  1846 	(af_sort_and_quantize_widths): This.
  1847 	Add code to avoid stem widths which are almost identical.
  1848 	* src/autofit/aftypes.h, src/autofit/aflatin.c, src/autofit/afcjk.c:
  1849 	Updated.
  1851 2012-07-03  Werner Lemberg  <wl@gnu.org>
  1853 	[autofit] Minor speed-up.
  1855 	* src/autofit/afangles (af_sort_pos, af_sort_widths): Don't swap
  1856 	elements if they are equal.
  1858 2012-06-30  Gilles Espinasse  <g.esp@free.fr>
  1860 	Fix `checking if gcc static flag -static works' test.
  1862 	On my linux build tree, I receive yes answer in in every package I
  1863 	build except freetype for this test checking if gcc static flag
  1864 	`-static' works
  1866 	On freetype, no is received, unless bzip2 and zlib are disabled using
  1868 	  ./configure --without-bzip2 --without-zlib
  1870 	The reason is that bzip2 and zlib tests add `-lz' and `-lbz2' to
  1871 	LDFLAGS and this broke static flag test.
  1873 	* builds/unix/configure.raw: Update CFLAGS and LDFLAGS only after
  1874 	LT_INIT has run.
  1876 2012-06-28  Infinality  <infinality@infinality.net>
  1878 	[truetype] Fix various artifacts.
  1880 	Verdana was broken in the original Infinality commit.  Also
  1881 	includes other minor fixes.
  1883 	* src/truetype/ttsubpix.h: Updated.  Removed unused macros.
  1884 	(RASTERIZER_35_Rules): Add Verdana.
  1885 	(SKIP_NONPIXEL_Y_MOVES_Rules): Add Tahoma `s'.
  1886 	(MIRP_CVT_ZERO_Rules): Remove Verdana.
  1887 	(ALWAYS_SKIP_DELTAP_Rules): Add Russian char 0x438.
  1888 	(COMPATIBLE_WIDTHS_Rules): Rearrange some rules.
  1889 	(X_SCALING_Rules): Adjust Verdana `a' at 12 and 13 ppem.
  1891 	* src/truetype/ttsubpix.c: Updated.
  1892 	(sph_set_tweaks): Re-execute fpgm always.
  1894 2012-06-28  Gilles Espinasse  <g.esp@free.fr>
  1896 	Fix CFLAGS and LDFLAGS share configure test.
  1898 	* builds/unix/configure.raw: Fix typo.
  1900 2012-06-28  Werner Lemberg  <wl@gnu.org>
  1902 	[truetype] Set the `subpixel_positioned' flag unconditionally.
  1904 	This is how the code currently behaves.
  1906 	* src/truetype/ttgload.c (tt_loader_init): Do it.
  1908 2012-06-27  Werner Lemberg  <wl@gnu.org>
  1910 	Fix conditional compilation.
  1912 	* src/base/basepic.c: Use FT_CONFIG_OPTION_MAC_FONTS.
  1914 2012-06-27  Werner Lemberg  <wl@gnu.org>
  1916 	Fix conditional compilation.
  1918 	* include/freetype/internal/ftcalc.h (FT_MulDiv_No_Round): Don't
  1919 	enclose with `TT_USE_BYTECODE_INTERPRETER'; we now need the function
  1920 	elsewhere also.
  1922 	* src/autofit/afcjk.h: Use AF_CONFIG_OPTION_CJK.
  1924 	* src/truetype/ttgload.c (tt_loader_init): Fix compiler warning.
  1926 	* src/truetype/ttinterp.c (Ins_MSIRP): Fix compiler warning.
  1928 	* src/truetype/ttinterp.h: Use
  1929 	TT_CONFIG_OPTION_BYTECODE_INTERPRETER.
  1931 2012-06-26  Infinality  <infinality@infinality.net>
  1933 	[truetype] Remove unused rounding functionality.
  1935 	The subpixel hinting patch contained the concept of an adjustable
  1936 	number of gridlines per pixel.  This is no longer used due to x
  1937 	being completely ignored instead.  This will return some of the
  1938 	code to its existing state prior to the original Infinality
  1939 	commit.
  1941 	* include/freetype/internal/ftobjs.h (FT_PIX_FLOOR_GRID,
  1942 	FT_PIX_ROUND_GRID, FT_PIX_CEIL_GRID): Removed.
  1944 	* src/truetype/ttinterp.c: Updated.
  1945 	(Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid,
  1946 	Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, Round_Super_45,
  1947 	SetSuperRound): Remove parameter to handle the number of grid lines per
  1948 	pixel.
  1949 	(SET_SuperRound, ROUND_None, CUR_Func_round): Updated.
  1950 	(DO_SROUND, DOS45ROUND, DO_ODD, DO_EVEN): Updated.
  1951 	(DO_ROUND, DO_NROUND): Updated.
  1952 	(Move_Zp2_Point, Ins_SHPIX, Ins_MSIRP, Ins_MDAP, Ins_MIAP,
  1953 	Ins_MDRP, Ins_MIRP): Perform Round_None instead of calling a modified
  1954 	rounding function.  Remove gridlines_per_pixel.  Create a local
  1955 	variable to store control value cutin. Simplify the conditional for
  1956 	ignore_x_mode.  Adjust rounding calls to pass only two values.
  1958 2012-06-25  Werner Lemberg  <wl@gnu.org>
  1960 	[cff] Fix Savannah bug #36705.
  1962 	Handle numbers like 2.001 correctly.
  1964 	* src/cff/cffparse.c (cff_parse_real): Avoid negative values for
  1965 	`shift'.
  1967 2012-06-18  Infinality  <infinality@infinality.net>
  1969 	[truetype] Support subpixel hinting.
  1971 	This is the large, famous `Infinality' patch to support ClearType
  1972 	bytecode which has been available from
  1973 	http://www.infinality.net/blog/ for some time, and which has been
  1974 	refined over the last years.  While still experimental, it is now
  1975 	mature enough to be included directly into FreeType.
  1977 	Most of the code is based on the ClearType whitepaper written by
  1978 	Greg Hitchcock
  1980 	  http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
  1982 	which gives a detailed overview of the necessary changes to the
  1983 	Microsoft rasterizer so that older fonts are supported.  However, a
  1984 	lot of details are still missing, and this patches provides a
  1985 	framework to easily handle rendering issues down to the glyph level
  1986 	of certain fonts.
  1988 	Note that ClearType support is not completely implemented!  In
  1989 	particular, full support for the options `compatible_widths',
  1990 	`symmetrical_smoothing, and `bgr' (via the GETINFO bytecode
  1991 	instruction) is missing.
  1993 	* src/truetype/ttsubpix.c: New file, providing code to handle
  1994 	`tweaks', this is, rules for certain glyphs in certain fonts
  1995 	(including wildcards) which need a special treatment.
  1997 	* src/truetype/ttsubpix.h: New file, holding the tweaking rules.
  1999 	* include/freetype/config/ftoption.h, src/devel/ftoption.h
  2000 	(TT_CONFIG_OPTION_SUBPIXEL_HINTING): New macro.
  2002 	* include/freetype/internal/ftobjs.h (FT_PIX_FLOOR_GRID,
  2003 	FT_PIX_ROUND_GRID, FT_PIX_CEIL_GRID): New macros.
  2005 	* src/truetype/truetype.c [TT_USE_BYTECODE_INTERPRETER]: Include
  2006 	`ttsubpix.c'.
  2008 	* src/truetype/ttgload.c: Include `ttsubpix.h'.
  2009 	[All changes below are guarded by TT_CONFIG_OPTION_SUBPIXEL_HINTING.]
  2011 	(tt_get_metrics): Set tweak flags.
  2012 	(TT_Hint_Glyph): Call `FT_Outline_EmboldenXY' if necessary.
  2013 	(TT_Process_Simple_Glyph): Compensate emboldening if necessary.
  2014 	(compute_glyph_metrics): Handle `compatible widths' option.
  2015 	(tt_loader_init): Handle ClearType GETINFO information bits.
  2017 	* src/truetype/rules.mk (TT_DRC_SRC): Updated.
  2019 	* src/truetype/ttinterp.c: Include `ttsubpix.h'.
  2020 	[Where necessary, changes below are guarded by
  2021 	TT_CONFIG_OPTION_SUBPIXEL_HINTING.]
  2023 	(Direct_Move, Direct_Move_X): Extended.
  2024 	(Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid,
  2025 	Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, Round_Super_45,
  2026 	SetSuperRound): Add parameter to handle the number of grid lines per
  2027 	pixel.
  2028 	(SET_SuperRound, ROUND_None, CUR_Func_round): Updated.
  2029 	(DO_SROUND, DOS45ROUND, DO_ODD, DO_EVEN): Updated.
  2030 	(DO_ROUND, DO_NROUND): Updated.
  2031 	(DO_RS): Take care of `Typeman' bytecode patterns.
  2032 	(Ins_FDEF): Add some debugging code.  Commented out.
  2033 	(Ins_ENDF): Restore state.
  2034 	(Ins_CALL, Ins_LOOPCALL): Handle inline delta functions.
  2035 	(Ins_MD): Handle `Vacuform' rounds.
  2036 	(Move_Zp2_Point, Ins_SHPIX, Ins_MSIRP, Ins_MDAP, Ins_MIAP,
  2037 	Ins_MDRP, Ins_MIRP): Handle tweaks.
  2038 	(Ins_ALIGNRP): Add tweak guard.
  2039 	(Ins_IUP, Ins_DELTAP): Handle tweaks.
  2040 	(Ins_GETINFO): Handle new ClearType bits.
  2041 	(TT_RunIns): Handle tweaks.
  2043 	* src/truetype/ttinterp.h: Updated.
  2044 	(SPH_TweakRule, SPH_ScaleRule): New structures for tweaks.
  2045 	(TT_ExecContextRec): Add members for subpixel hinting support.
  2047 	* src/truetype/ttobjs.h (TT_DefRecord): Add `inline_delta' member.
  2049 2012-06-15  Werner Lemberg  <wl@gnu.org>
  2051 	* Version 2.4.10 released.
  2052 	=========================
  2055 	Tag sources with `VER-2-4-10'.
  2057 	* docs/VERSION.DLL: Update documentation and bump version number to
  2058 	2.4.10.
  2060 	* README, Jamfile (RefDoc),
  2061 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
  2062 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
  2063 	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
  2064 	builds/win32/visualc/freetype.dsp,
  2065 	builds/win32/visualc/freetype.vcproj,
  2066 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
  2067 	builds/win32/visualce/freetype.vcproj,
  2068 	builds/win32/visualce/index.html,
  2069 	builds/wince/vc2005-ce/freetype.vcproj,
  2070 	builds/wince/vc2005-ce/index.html,
  2071 	builds/wince/vc2008-ce/freetype.vcproj,
  2072 	builds/wince/vc2008-ce/index.html: s/2.4.9/2.4.10/, s/249/2410/.
  2074 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
  2076 	* builds/unix/configure.raw (version_info): Set to 15:0:9.
  2078 2012-06-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
  2080 	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Improve spacing.
  2082 	* docs/CHANGES: Updated.
  2084 2012-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2086 	* builds/exports.mk: Add CCexe_CFLAGS and CCexe_LDFLAGS.
  2088 	to pass special compiler/linker flags under cross development.
  2089 	Suggested by Savannah bug #36367.
  2091 	ChangeLog on 2010-07-15 saying as they were removed was wrong
  2092 	for the official trunk of FreeType2.  This commit is the first
  2093 	introduction of them.
  2095 2012-06-14  Werner Lemberg  <wl@gnu.org>
  2097 	* docs/CHANGES: Updated.
  2099 2012-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2101 	[truetype] Add new versions of NEC FA family to tricky font list.
  2103 	NEC FA family dated in 1996 have different checksum.
  2104 	Reported by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>; see
  2106 	  http://lists.gnu.org/archive/html/freetype-devel/2012-06/msg00023.html
  2108 	* src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): 4 sets
  2109 	of fpgm & prep table checksums for FA-Gothic, FA-Minchou,
  2110 	FA-RoundedGothicM, FA-RoundedGothicB are added.  The family
  2111 	names in sample PDF are truncated, thus the list of the
  2112 	family names in tt_check_trickyness_family() is not updated yet.
  2114 2012-06-06  Werner Lemberg  <wl@gnu.org>
  2116 	[ftraster] Fix rounding issue causing visual artifacts.
  2118 	Problem reported by jola <hans-jochen.lau@lhsystems.com>; see
  2120 	  http://lists.gnu.org/archive/html/freetype-devel/2012-05/msg00036.html
  2122 	* src/raster/ftraster.c (SMulDiv_No_Round): New macro.
  2123 	(Line_Up): Use it.
  2124 	* src/raster/ftmisc.h (FT_MulDiv_No_Round): Copied from `ftcalc.c'.
  2126 2012-05-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
  2128 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Simplify.
  2130 	We now use the cross product of the direction vectors to compute the
  2131 	outline's orientation.
  2133 2012-05-28  Werner Lemberg  <wl@gnu.org>
  2135 	* docs/CHANGES: Updated.
  2137 2012-05-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
  2139 	New function FT_Outline_EmboldenXY.
  2141 	* include/freetype/ftoutln.h (FT_Outline_EmboldenXY): Define it.
  2143 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Implement it, using a
  2144 	simplified embolding algorithm.
  2145 	(FT_Outline_Embolden): Make it a special case of
  2146 	`FT_Outline_EmboldenXY'
  2148 2012-05-07  Werner Lemberg  <wl@gnu.org>
  2150 	[type1] Fix Savannah bug #36386.
  2152 	* src/type1/t1load.c (t1_load_keyword): Ignore keyword if context is
  2153 	not valid.
  2155 2012-04-07  Werner Lemberg  <wl@gnu.org>
  2157 	Remove compiler warning.
  2159 	* src/truetype/ttgload.c (TT_Load_Glyph)
  2160 	[!TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Access `glyph->face' directly.
  2162 2012-03-28  Werner Lemberg  <wl@gnu.org>
  2164 	[autofit] Properly copy scaler flags to script metrics object.
  2166 	Without this patch, only the dummy and cjk autohinter modules get
  2167 	them (since they copy the whole scaler object).
  2169 	* src/autofit/aflatin.c (af_latin_metrics_scale),
  2170 	src/autofit/aflatin2.c (af_latin2_metrics_scale): Implement it.
  2172 2012-03-22  Alexei Podtelezhnikov  <apodtele@gmail.com>
  2174 	[bdflib] Remove redundant macro.
  2176 	* src/bdf/bdflib.c (isdigok): Remove and replace with sbitset, which
  2177 	is exactly the same.
  2179 2012-03-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2181 	[configure] Fix Savannah bug #35644.
  2183 	* builds/unix/configure.raw: Check `-ansi' flag works even if gcc
  2184 	is used.  Bionic libc headers for Android lose the consistency
  2185 	when they are parsed with __STDC_VERSION__ older than 199901L or
  2186 	__STRICT_ANSI__.
  2188 2012-03-20  Werner Lemberg  <wl@gnu.org>
  2190 	[bdf] Improvement to Savannah bug #35656.
  2192 	* src/bdf/bdflib.c (isdigok): Add cast, as suggested in report.
  2194 2012-03-17  Chris Liddell  <chris.liddell@artifex.com>
  2196 	[type1] Fix Savannah bug #35847.
  2198 	* src/type1/t1load.c (parse_subrs): Fix the loop exit condition;
  2199 	we want to exit when we have run out of data.
  2201 2012-03-16  Werner Lemberg  <wl@gnu.org>
  2203 	[bdf] Really fix Savannah bug #35658.
  2205 	* src/bdf/bdflib.c (_bdf_list_split): Add one more `field' initializer.
  2207 2012-03-14  Yann Droneaud  <yann@droneaud.fr>
  2209 	[sfnt] Make arrays static like all others.
  2211 	* src/sfnt/ttload.c (tt_face_load_maxp, tt_face_load_os2),
  2212 	src/sfnt/ttmtx.c (tt_face_load_hhea): Add `static' keyword to frame
  2213 	fields.
  2215 2012-03-14  Huw Davies  <huw@codeweavers.com>
  2217 	[sfnt] A refinement of the previous commit.
  2219 	* src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16,
  2220 	tt_name_entry_ascii_from_other): Stop at null byte.
  2222 2012-03-14  Huw Davies  <huw@codeweavers.com>
  2224 	[sfnt] Add `name' table compatibility to MS Windows.
  2226 	* src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16,
  2227 	tt_name_entry_ascii_from_other): Don't replace `\0' with question
  2228 	marks when converting strings.
  2230 2012-03-14  Werner Lemberg  <wl@gnu.org>
  2232 	[type1] Fix Savannah bug #35833.
  2234 	Based on the patch given in the bug report.
  2236 	* src/type1/t1load.c (IS_INCREMENTAL): New macro.
  2237 	(read_binary_data): Add parameter `incremental'.
  2238 	Update all callers using `IS_INCREMENTAL'.
  2240 2012-03-11  Werner Lemberg  <wl@gnu.org>
  2242 	[autofit] Return correct linear advance width values.
  2244 	This was quite a subtle bug which accidentally showed up with glyph
  2245 	`afii10023' of arial.ttf (version 2.76).  This glyph is a composite;
  2246 	the first component, `E', has an advance width of 1366 font units,
  2247 	while the advance width of the composite itself (which looks like
  2248 	uppercase `E' with dieresis) is 1367 font units.  I think this is
  2249 	actually a bug in the font itself, because there is no reason that
  2250 	this glyph has not the same width as uppercase `E' without the
  2251 	dieresis.  Anyway, it helped identify this problem.
  2253 	Using the TrueType hinter, the correct value (1367) of `afii10023'
  2254 	was returned, but the autohinter mysteriously returned 1366.
  2256 	Digging in the code showed that the autohinter recursively calls
  2257 	FT_Load_Glyph to load the glyph, adding the FT_LOAD_NO_SCALE load
  2258 	flag.  However, the `linearHoriAdvance' field is still returned as a
  2259 	scaled value.  To avoid scaling twice, the old code in autofit reset
  2260 	`linearHoriAdvance', using the `horiAdvance' field.  This seemed to
  2261 	work since FT_LOAD_NO_SCALE was in use, but it failed actually,
  2262 	because `horiAdvance' is defined as the distance of the first
  2263 	subglyph's phantom points, which in turn are initialized using the
  2264 	advance width of the first subglyph.  And as the given example
  2265 	shows, these widths can differ.
  2267 	* src/autofit/afloader.c (af_loader_load_g): Temporarily set
  2268 	FT_LOAD_LINEAR_DESIGN while calling FT_Load_Glyph to get unscaled
  2269 	values for the linear advance widths.
  2271 2012-03-10  Werner Lemberg  <wl@gnu.org>
  2273 	[truetype] Fix SSW instruction.
  2275 	* src/truetype/ttinterp.c (DO_SSW): SSW *does* use font units.  For
  2276 	verification, it took some time to find a font which actually uses
  2277 	this instruction.
  2279 2012-03-09  Vinnie Falco  <vinnie.falco@gmail.com>
  2281 	Prepare source code for amalgamation.
  2283 	* include/freetype/freetype.h: Swap order of preprocessor blocks.
  2285 2012-03-08  Werner Lemberg  <wl@gnu.org>
  2287 	* Version 2.4.9 released.
  2288 	=========================
  2291 	Tag sources with `VER-2-4-9'.
  2293 	* docs/CHANGES: Updated.
  2295 	* docs/VERSION.DLL: Update documentation and bump version number to
  2296 	2.4.9.
  2298 	* README, Jamfile (RefDoc),
  2299 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
  2300 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
  2301 	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
  2302 	builds/win32/visualc/freetype.dsp,
  2303 	builds/win32/visualc/freetype.vcproj,
  2304 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
  2305 	builds/win32/visualce/freetype.vcproj,
  2306 	builds/win32/visualce/index.html,
  2307 	builds/wince/vc2005-ce/freetype.vcproj,
  2308 	builds/wince/vc2005-ce/index.html,
  2309 	builds/wince/vc2008-ce/freetype.vcproj,
  2310 	builds/wince/vc2008-ce/index.html: s/2.4.8/2.4.9/, s/248/249/.
  2312 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 9.
  2314 	* builds/unix/configure.raw (version_info): Set to 14:1:8.
  2316 2012-03-08  Werner Lemberg  <wl@gnu.org>
  2318 	[bdf] Add missing overflow check.
  2320 	* src/bdf/bdflib.c (_bdf_parse_glyphs) <BITMAP>: Add threshold for
  2321 	`glyph->bpr'.
  2323 2012-03-07  Vinnie Falco  <vinnie.falco@gmail.com>
  2325 	Prepare source code for amalgamation.
  2327 	* src/autofit/aferrors.h, src/bdf/bdferror.h, src/bzip2/ftbzip2.c,
  2328 	src/cache/ftcerror.h, src/cff/cfferrs.h, src/cid/ciderrs.h,
  2329 	src/gxvalid/gxverror.h, src/gzip/ftgzip.c, src/lzw/ftlzw.c,
  2330 	src/otvalid/otverror.h, src/pcf/pcferror.h, src/pfr/pfrerror.h,
  2331 	src/psaux/psauxerr.h, src/pshinter/pshnterr.h,
  2332 	src/psnames/psnamerr.h, src/raster/rasterrs.h, src/sfnt/sferrors.h,
  2333 	src/smooth/ftsmerrs.h, src/truetype/tterrors.h,
  2334 	src/type1/t1errors.h, src/type42/t42error.h, src/winfonts/fnterrs.h:
  2335 	Add #undef FT_ERR_PREFIX before #define FT_ERR_PREFIX.
  2337 2012-03-03  Werner Lemberg  <wl@gnu.org>
  2339 	Fix Savannah bug #35660.
  2341 	For some divisions, we use casts to 32bit entities.  Always guard
  2342 	against division by zero with these casts also.
  2344 	* src/base/ftcalc.c (ft_div64by32): Remove redundant cast.
  2345 	(FT_MulDiv, FT_MulDiv_No_Round): Add 32bit cast.
  2346 	(FT_DivFix): Add 32bit cast (this omission triggered the bug).
  2348 2012-03-03  Werner Lemberg  <wl@gnu.org>
  2350 	[psaux] Fix handling of track kerning.
  2352 	* src/psaux/afmparse.c (afm_parse_track_kern): Don't inverse sign
  2353 	for `min_kern'.  It is indeed quite common that track kerning
  2354 	*increases* spacing for very small sizes.
  2356 2012-03-02  Werner Lemberg  <wl@gnu.org>
  2358 	[truetype] Fix Savannah bug #35689.
  2360 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check first outline
  2361 	point.
  2363 2012-03-01  Werner Lemberg  <wl@gnu.org>
  2365 	[bdf] Fix Savannah bug #35656.
  2367 	* src/bdf/bdflib.c (_bdf_parse_glyphs) <_BDF_BITMAP>: Check validity
  2368 	of nibble characters instead of accessing `a2i' array.
  2370 2012-03-01  Werner Lemberg  <wl@gnu.org>
  2372 	[winfonts] Fix Savannah bug #35659.
  2374 	* src/winfonts/winfnt.c (FNT_Face_Init): Check number of glyphs.
  2376 2012-03-01  Werner Lemberg  <wl@gnu.org>
  2378 	[bdf] Fix Savannah bug #35658.
  2380 	* src/bdf/bdflib.c (_bdf_list_split): Initialize `field' elements
  2381 	properly.
  2383 2012-03-01  Werner Lemberg  <wl@gnu.org>
  2385 	[psaux] Fix Savannah bug #35657.
  2387 	If in function `skip_spaces' the routine `skip_comment' comes to the
  2388 	end of buffer, `cur' is still increased by one, so we need to check
  2389 	for `p >= limit' and not `p == limit'.
  2391 	* src/psaux/psconv.c (PS_Conv_Strtol, PS_Conv_ToFixed,
  2392 	PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Fix boundary checking.
  2394 2012-03-01  Werner Lemberg  <wl@gnu.org>
  2396 	[truetype] Fix Savannah bug #35646.
  2398 	* src/truetype/ttinterp.c (Ins_MIRP): Typo, present since ages.  The
  2399 	code is now in sync with the other operators (e.g. MSIRP) which
  2400 	modify twilight points.
  2402 2012-03-01  Werner Lemberg  <wl@gnu.org>
  2404 	[bdf] Fix Savannah bug #35643.
  2406 	* src/bdf/bdflib.c (_bdf_list_ensure): Bring code in sync with
  2407 	comment before `_bdf_list_split', this is, really allocate at least
  2408 	five `field' elements.
  2410 2012-03-01  Werner Lemberg  <wl@gnu.org>
  2412 	[bdf] Fix Savannah bug #35641.
  2414 	* src/bdf/bdflib.c (_bdf_parse_glyphs) <DWIDTH, BBX>: Abort if
  2415 	_BDF_ENCODING isn't set.  We need this because access to the `glyph'
  2416 	variable might be undefined otherwise.
  2418 2012-03-01  Werner Lemberg  <wl@gnu.org>
  2420 	[truetype] Fix Savannah bug #35640.
  2422 	* src/truetype/ttinterp.c (SkipCode, TT_RunIns): Fix boundary check
  2423 	for NPUSHB and NPUSHW instructions.
  2425 2012-02-29  Werner Lemberg  <wl@gnu.org>
  2427 	[truetype] Fix Savannah bug #35601.
  2429 	* src/truetype/ttinterp.c (Ins_SHZ): Use number of points instead of
  2430 	last point for loop.
  2431 	Also remove redundant boundary check.
  2433 2012-02-29  Werner Lemberg  <wl@gnu.org>
  2435 	[truetype] Remove redundant check.
  2437 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
  2438 	second check for ordered contour start points.
  2440 2012-02-29  Werner Lemberg  <wl@gnu.org>
  2442 	[truetype] Make SHC instruction behave similar to MS rasterizer.
  2444 	* src/truetype/ttinterp.c (Ins_SHC): Handle virtual contour in
  2445 	twilight zone.
  2447 2012-02-29  Alexei Podtelezhnikov  <apodtele@gmail.com>
  2449 	Avoid modulo operators against a power-of-two denominator.
  2451 	* src/afcjk.c (af_hint_normal_stem), src/base/ftoutln.c
  2452 	(ft_contour_has), src/cff/cffgload.c (cff_decoder_parse_charstrings)
  2453 	<cff_op_vvcurveto, cff_op_hhcurveto, cff_op_hvcurveto>,
  2454 	src/gxvalid/gxvcommn.c (GXV_32BIT_ALIGNMENT_VALIDATE),
  2455 	src/gxvalid/gxvfeat.c (gxv_feat_setting_validate): Replace `%' with
  2456 	`&' operator.
  2458 2012-02-29  Werner Lemberg  <wl@gnu.org>
  2460 	[autofit] Don't synchronize digit widths for light rendering mode.
  2462 	We don't hint horizontally in this mode.
  2464 	* src/autofit/afloader.c (af_loader_load_g) <Hint_Metrics>:
  2465 	Implement it.
  2467 2012-02-26  Alexei Podtelezhnikov  <apodtele@gmail.com>
  2469 	[type42] Minor code optimization (again).
  2471 	* src/type42/t42parse.c (t42_parse_sfnts): Simplify previous change.
  2473 2012-02-26  Mateusz Jurczyk  <mjurczyk@google.com>
  2474 	    Werner Lemberg  <wl@gnu.org>
  2476 	[smooth] Fix Savannah bug #35604.
  2478 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Use `FT_Pos'
  2479 	instead of `FT_UInt' for some variables and update comparisons
  2480 	accordingly.  A detailed analysis can be found in the bug report.
  2482 2012-02-26  Alexei Podtelezhnikov  <apodtele@gmail.com>
  2484 	[type42] Minor code optimization.
  2486 	* src/type42/t42parse.c (t42_parse_sfnts): Use bitmask instead of
  2487 	modulo operator.
  2489 2012-02-26  Werner Lemberg  <wl@gnu.org>
  2491 	* docs/CHANGES: Updated.
  2493 2012-02-26  Werner Lemberg  <wl@gnu.org>
  2495 	[type1] Fix Savannah bug #35608.
  2497 	* src/type1/t1parse.c (T1_Get_Private_Dict): Reject too short
  2498 	dictionaries.
  2500 2012-02-26  Werner Lemberg  <wl@gnu.org>
  2502 	[bdf] Support `ENCODING -1 <n>' format.
  2504 	* src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Implement it.
  2506 2012-02-26  Werner Lemberg  <wl@gnu.org>
  2508 	[bdf] Fix Savannah bug #35607.
  2510 	* src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Normalize
  2511 	negative encoding values.
  2513 2012-02-26  Werner Lemberg  <wl@gnu.org>
  2515 	[type1] Fix Savannah bug #35606.
  2517 	* src/type1/t1load.c (parse_subrs): Add proper guards for `strncmp'.
  2519 	* src/psaux/psobjs.c (ps_parser_skip_PS_token): Emit error message
  2520 	only if cur < limit.
  2522 2012-02-25  Werner Lemberg  <wl@gnu.org>
  2524 	[pcf] Fix Savannah bug #35603.
  2526 	* src/pcf/pcfread.c (pcf_get_properties): Assure final zero byte in
  2527 	`strings' array.
  2529 2012-02-25  Werner Lemberg  <wl@gnu.org>
  2531 	[type42] Fix Savannah bug #35602.
  2533 	* src/type42/t42parse.c (t42_parse_sfnts): Check `string_size' more
  2534 	thoroughly.
  2536 2012-02-25  Werner Lemberg  <wl@gnu.org>
  2538 	[bdf] Fix Savannah bugs #35599 and #35600.
  2540 	* src/bdf/bdflib.c (ACMSG16): New warning message.
  2541 	(_bdf_parse_glyphs) <_BDF_BITMAP>: Check line length.
  2543 2012-02-24  Werner Lemberg  <wl@gnu.org>
  2545 	[bdf] Fix Savannah bugs #35597 and #35598.
  2547 	* src/bdf/bdflib.c (_bdf_is_atom): Fix handling of property value.
  2549 2012-02-24  Vinnie Falco  <vinnie.falco@gmail.com>
  2551 	Prepare source code for amalgamation (6/6).
  2553 	* src/cff/cffdrivr.c: s/Load_Glyph/cff_glyph_load/.
  2555 	* src/cid/cidload.c: s/parse_font_matrix/cid_parse_font_matrix/.
  2556 	s/t1_init_loader/cid_init_loader/.
  2557 	s/t1_done_loader/cid_done_loader/.
  2559 	* src/pxaux/t1cmap.c: s/t1_get_glyph_name/psaux_get_glyph_name/.
  2561 	* src/truetype/ttdriver.c: s/Load_Glyph/tt_glyph_load/.
  2563 	* src/type1/t1load.c: s/parse_font_matrix/t1_parse_font_matrix/.
  2565 2012-02-24  Vinnie Falco  <vinnie.falco@gmail.com>
  2567 	Prepare source code for amalgamation (5/6).
  2569 	* include/freetype/fterrors.h: Undefine FT_KEEP_ERR_PREFIX after
  2570 	using it.
  2572 2012-02-22  Vinnie Falco  <vinnie.falco@gmail.com>
  2574 	Prepare source code for amalgamation (4/6).
  2576 	* src/smooth/ftgrays.c, src/raster/ftraster.c: Undefine RAS_ARG,
  2577 	RAS_ARGS, RAS_VAR, and RAS_VARS before defining it.
  2579 	* src/smooth/ftgrays.c: s/TRaster/black_TRaster/,
  2580 	s/PRaster/black_PRaster/.
  2581 	* src/raster/ftraster.c: s/TRaster/gray_TRaster/,
  2582 	s/PRaster/gray_PRaster/.
  2584 2012-02-20  Vinnie Falco  <vinnie.falco@gmail.com>
  2586 	Prepare source code for amalgamation (3/6).
  2588 	* src/smooth/ftgrays.c: s/TWorker/black_TWorker/,
  2589 	s/PWorker/black_PWorker/.
  2590 	* src/raster/ftraster.c: s/TWorker/gray_TWorker/,
  2591 	s/PWorker/gray_PWorker/.
  2593 2012-02-20  Vinnie Falco  <vinnie.falco@gmail.com>
  2595 	Prepare source code for amalgamation (2/6).
  2597 	* src/smooth/ftgrays.c, src/raster/ftraster.c: Undefine FLOOR,
  2598 	CEILING, TRUNC, and SCALED before defining it.
  2600 2012-02-20  Vinnie Falco  <vinnie.falco@gmail.com>
  2602 	Prepare source code for amalgamation (1/6).
  2604 	See discussion starting at
  2606 	  http://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00037.html
  2608 	* src/smooth/ftgrays.c: s/TBand/gray_TBand/.
  2609 	* src/raster/ftraster.c: s/TBand/black_TBand/.
  2611 2012-02-17  Alexei Podtelezhnikov  <apodtele@gmail.com>
  2613 	[autofit] Fix outline flags.
  2615 	* src/autofit/afloader.c (af_loader_load_g): Don't reassign
  2616 	`outline.flags' so that this information is preserved.  See
  2617 	discussion starting at
  2619 	  http://lists.gnu.org/archive/html/freetype-devel/2012-02/msg00046.html
  2621 2012-02-11  Werner Lemberg  <wl@gnu.org>
  2623 	[truetype] Fix Savannah bug #35466.
  2625 	Jump instructions are now bound to the current function.  The MS
  2626 	Windows rasterizer behaves the same, as confirmed by Greg Hitchcock.
  2628 	* src/truetype/ttinterp.h (TT_CallRec): Add `Cur_End' element.
  2629 	* src/truetype/ttobjs.h (TT_DefRecord): Add `end' element.
  2631 	* src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Check upper
  2632 	bound of jump address.
  2633 	(Ins_FDEF, Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns): Updated.
  2635 2012-02-11  Werner Lemberg  <wl@gnu.org>
  2637 	We don't use `extensions'.
  2639 	* include/freetype/internal/ftobjs.h (FT_DriverRec): Remove
  2640 	`extensions' field.
  2642 2012-02-11  Werner Lemberg  <wl@gnu.org>
  2644 	Clean up `generic' fields.
  2646 	* include/freetype/internal/ftobjs.h (FT_ModuleRec, FT_LibraryRec):
  2647 	Remove `generic' field since users can't access it.
  2649 	* src/base/ftobjs.c (FT_Done_GlyphSlot): Call `generic.finalizer' as
  2650 	advertised in the documentation of FT_Generic.
  2651 	(Destroy_Module, FT_Done_Library): Updated to changes in `ftobjs.h'.
  2653 2012-02-07  Werner Lemberg  <wl@gnu.org>
  2655 	[autofit] Harmonize function arguments.
  2657 	* src/autofit/afloader.c, src/autofit/afloader.h: Use `FT_Int32' for
  2658 	`load_flags'.
  2660 2012-02-07  Werner Lemberg  <wl@gnu.org>
  2662 	* src/cff/cffobjs.c (cff_face_init): Remove unnecessary casts.
  2664 2012-01-17  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2666 	[gxvalid] Fix Savannah bug #35286.
  2668 	Patch submitted by anonymous reporter.
  2670 	* src/gxvalid/gxvcommn.c (gxv_XStateTable_subtable_setup):
  2671 	gxv_set_length_by_ulong_offset() must be called with 3, not 4,
  2672 	the number of the subtables in the state tables; classTable,
  2673 	stateArray, entryTable.
  2675 2012-01-17  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2677 	[raccess] Modify for PIC build.
  2679 	Based on the patch provided by Erik Dahlstrom <ed@opera.com>,
  2680 	http://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00010.html
  2682 	Also `raccess_guess_table[]' and `raccess_rule_by_darwin_vfs()'
  2683 	are renamed with `ft_' suffixes.
  2685 	* src/base/ftbase.h: `raccess_rule_by_darwin_vfs()' is renamed
  2686 	to `ft_raccess_rule_by_darwin_vfs()'.
  2687 	* src/base/ftobjs.c: Ditto.
  2689 	* src/base/ftrfork.c: Declarations of FT_RFork_Rule,
  2690 	raccess_guess_rec, are moved to...
  2691 	* include/freetype/internal/ftrfork.h: Here.
  2693 	* include/freetype/internal/ftrfork.h:
  2694 	FT_RFORK_RULE_ARRAY_{BEGIN,ENTRY,END} macros are defined
  2695 	to replace raccess_guess_table[] in both of PIC and non-PIC
  2696 	modes.
  2697 	* src/base/ftrfork.c: raccess_guess_table[] array is rewritten
  2698 	by FT_RFORK_RULE_ARRAY_{BEGIN,ENTRY,END}.
  2700 	* src/base/basepic.h (BasePIC): Add `ft_raccess_guess_table'
  2701 	storage.  (FT_RACCESS_GUESS_TABLE_GET): New macro to retrieve
  2702 	the function pointer from `ft_raccess_guess_table' storage in
  2703 	`BasePIC' structure.
  2704 	* src/base/ftrfork.c (FT_Raccess_Guess): Rewritten with
  2705 	FT_RACCESS_GUESS_TABLE_GET.
  2706 	(raccess_get_rule_type_from_rule_index): Add `library' as the
  2707 	first argument to the function, to retrieve the storage of
  2708 	`ft_raccess_guess_table' from it.  Also `raccess_guess_table'
  2709 	is replaced by FT_RACCESS_GUESS_TABLE_GET.
  2710 	(ft_raccess_rule_by_darwin_vfs): Ditto.
  2712 2012-01-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2714 	Remove trailing spaces.
  2716 2012-01-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2718 	Formatting PIC related sources.
  2720 	* src/autofit/afpic.c: Harmonize to FT2 coding conventions.
  2721 	* src/base/basepic.c: Ditto.
  2722 	* src/base/ftpic.c: Ditto.
  2723 	* src/cff/cffpic.c: Ditto.
  2724 	* src/pshinter/pshpic.c: Ditto.
  2725 	* src/psnames/pspic.c: Ditto.
  2726 	* src/raster/rastpic.c: Ditto.
  2727 	* src/sfnt/sfntpic.c: Ditto.
  2728 	* src/smooth/ftspic.c: Ditto.
  2729 	* src/truetype/ttpic.c: Ditto.
  2731 2012-01-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2733 	[autofit] Fix the inclusion of `aflatin2.h' in PIC file.
  2735 	* src/autofit/afpic.c: Include `aflatin2.h' when
  2736 	FT_OPTION_AUTOFIT2 is defined, as afglobal.c does so.
  2737 	Unconditionally inclusion causes declared but unimplemented
  2738 	warning by GCC 4.6.
  2740 2012-01-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2742 	[cff] Remove redundant declarations of cff_cmap_XXX_class_rec.
  2744 	* src/cff/cffpic.c: The declarations of
  2745 	FT_Init_Class_cff_cmap_encoding_class_rec() and
  2746 	FT_Init_Class_cff_cmap_unicode_class_rec() are removed.
  2747 	They can be obtained by the inclusion of cffcmap.h.
  2748 	cffcmap.h invokes FT_DECLARE_CMAP_CLASS() and it declares
  2749 	FT_Init_Class_cff_cmap_encoding_class_rec() etc in PIC mode.
  2751 2012-01-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2753 	Fix redundant declaration warning in PIC mode.
  2755 	Originally FT_DEFINE_{DRIVER,MODULE,RENDERER}() macros were
  2756 	designed to declare xxx_pic_{free,init} by themselves.
  2757 	Because these macros are used at the end of the module
  2758 	interface (e.g. ttdriver.c) and the wrapper source to build
  2759 	a module as a single object (e.g. truetype.c) includes
  2760 	the PIC file (e.g. ttpic.c) before the module interface,
  2761 	these macros are expanded AFTER xxx_pic_{free,init} body
  2762 	when the modules are built as single object.
  2763 	The declaration after the implementation causes the redundant
  2764 	declaration warnings, so the declarations are moved to module
  2765 	PIC headers (e.g. ttpic.h).  Separating to other header files
  2766 	are needed for multi build.
  2768 	* include/freetype/internal/ftdriver.h (FT_DEFINE_DRIVER):
  2769 	Remove class_##_pic_free and class_##_pic_init declarations.
  2770 	* include/freetype/internal/ftobjs.h (FT_DEFINE_RENDERER,
  2771 	FT_DEFINE_MODULE): Ditto.
  2773 	* src/base/basepic.h: Insert a comment and fix coding style.
  2774 	* src/autofit/afpic.h: Declare autofit_module_class_pic_{free,
  2775 	init}.
  2776 	* src/cff/cffpic.h: Declare cff_driver_class_pic_{free,init}.
  2777 	* src/pshinter/pshpic.h: Declare pshinter_module_class_pic_{free,
  2778 	init}.
  2779 	* src/psnames/pspic.h: Declare psnames_module_class_pic_{free,
  2780 	init}.
  2781 	* src/raster/rastpic.h: Declare
  2782 	ft_raster{1,5}_renderer_class_pic_{free,init}
  2783 	* src/sfnt/sfntpic.h: Declare sfnt_module_class_pic_{free,init}.
  2784 	* src/smooth/ftspic.h: Declare
  2785 	ft_smooth_{,lcd_,lcdv_}renderer_class_pic_{free,init}.
  2786 	* src/truetype/ttpic.h: Declare tt_driver_class_pic_{free,init}.
  2788 2012-01-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2790 	Make pspic.c to include module error header to fix multi build.
  2792 	* src/psnames/pspic.c: Include `psnamerr.h'.
  2794 2012-01-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2796 	[base] Fix a dereference of uninitialized variable in PIC mode.
  2798 	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): `glyph' must be
  2799 	set before derefering to obtain `library'.  The initialization
  2800 	of `clazz', `glyph', `library' and NULL pointer check are
  2801 	reordered to minimize PIC conditonals.
  2803 2012-01-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2805 	[base] Insert explicit cast for GCC 4.6 in PIC mode.
  2807 	* src/base/ftinit.c (FT_Add_Default_Modules): Under PIC
  2808 	configuration, FT_DEFAULT_MODULES_GET returns
  2809 	FT_Module_Class** pointer, GCC 4.6 warns that
  2810 	const FT_Module_Class* const* variable is warned as
  2811 	inappropriate to store it.  To calm it, explicit cast is
  2812 	inserted.  Also `library' is checked to prevent the NULL
  2813 	pointer dereference in FT_DEFAULT_MODULES_GET.
  2815 2012-01-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2817 	Fix PIC build broken by d9145241fe378104ba4c12a42534549faacc92e6.
  2819 	Under PIC configuration, FT_{CFF,PSCMAPS,SFNT,TT}_SERVICES_GET
  2820 	take no arguments but derefer the variable named `library'
  2821 	internally.
  2823 	* src/cff/cffdrivr.c (cff_get_interface): Declare `library' and
  2824 	set it if non-NULL driver is passed.
  2825 	* src/truetype/ttdriver.c (tt_get_interface): Ditto.
  2827 	* src/sfnt/sfdriver.c (sfnt_get_interface): Declare `library'
  2828 	under PIC configuration, and set it if non-NULL module is given.
  2829 	* src/psnames/psmodule.c (psnames_get_interface): Ditto.
  2831 2012-01-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2833 	Make PIC files include module error headers, to use the error codes
  2834 	with per-module prefix.
  2836 	* src/autofit/afpic.c: Include `aferrors.h'.
  2837 	* src/cff/cffpic.c: Include `cfferrs.h'.
  2838 	* src/pshinter/pshpic.c: Include `pshnterr.h'.
  2839 	* src/raster/rastpic.c: Include `rasterrs.h'.
  2840 	* src/sfnt/sfntpic.c: Include `sferrors.h'.
  2841 	* src/smooth/ftspic.c: Include `ftsmerrs.h'.
  2842 	* src/truetype/ttpic.c: Include `tterrors.h'.
  2844 2012-01-04  Tobias Ringström  <tobias@ringis.se>
  2846 	[truetype] Fix IP instruction if x_ppem != y_ppem.
  2848 	* src/truetype/ttinterp.c (Ins_IP): Scale `orus' coordinates
  2849 	properly.
  2851 2012-01-02  Werner Lemberg  <wl@gnu.org>
  2853 	Fix tracing message for `loca' table.
  2855 	* src/truetype/ttpload.c (tt_face_get_location): Don't emit a
  2856 	warning message if the last `loca' entry references an empty glyph.
  2858 2011-12-10  Werner Lemberg  <wl@gnu.org>
  2860 	Add some variable initializations.
  2861 	Reported by Richard COOK <rscook@unicode.org>.
  2863 	* src/type1/t1driver.c (t1_ps_get_font_value): Initialize `val'.
  2864 	* src/smooth/ftgrays.c (gray_render_conic): Initialize `levels'
  2865 	earlier.
  2867 2011-12-08  Werner Lemberg  <wl@gnu.org>
  2869 	Fix serious scaling bug in `FT_Get_Advances'.
  2871 	* src/base/ftadvanc.c (FT_Get_Advances): Advance values returned by
  2872 	`FT_Load_Glyph' must be simply multiplied by 1024.
  2874 2011-12-08  Werner Lemberg  <wl@gnu.org>
  2876 	* src/bdf/bdflib.c (_bdf_parse_start): Drop redundant error tracing.
  2878 2011-12-02  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2880 	[mac] Unify DARWIN_NO_CARBON with FT_MACINTOSH.
  2882 	Originally FT_MACINTOSH was a pure auto macro and DARWIN_NO_CARBON
  2883 	was a configurable macro to disable Carbon-dependent code.  Because
  2884 	now configure script sets DARWIN_NO_CARBON by default and disables
  2885 	Darwin & Carbon-dependent codes, these macros can be unified.
  2886 	FT_MACINTOSH (undefined by default) is kept and DARWIN_NO_CARBON
  2887 	(defined by default) is removed, because DARWIN_NO_CARBON violates
  2888 	FT_XXX naming convention of public macros, and a macro configured by
  2889 	default is not portable for the building without configure (e.g.
  2890 	make devel).
  2892 	* builds/unix/configure.raw: Define FT_MACINTOSH if Carbon-based
  2893 	old Mac font support is requested and Carbon is available.
  2894 	* builds/unix/ftconfig.in: Undefine FT_MACINTOSH when the support
  2895 	for Mac OS X without Carbon (e.g.  Mac OS X 10.4 for ppc64) is
  2896 	requested.
  2897 	* include/freetype/config/ftconfig.in: Ditto.
  2898 	* builds/vms/ftconfig.h: Ditto.
  2900 	* src/base/ftbase.h: Remove DARWIN_NO_CARBON.
  2901 	* src/base/ftbase.c: Ditto.
  2902 	* src/base/ftobjs.c: Ditto.
  2903 	* src/base/ftrfork.c: Ditto.
  2905 	* src/base/ftmac.c: Compile the body if FT_MACINTOSH is defined
  2906 	(same with TT_USE_BYTECODE_INTERPRETER in ttinterp.c).
  2907 	* builds/mac/ftmac.c: Ditto.
  2909 	* builds/mac/FreeType.m68k_cfm.make.txt: Define FT_MACINTOSH.
  2910 	* builds/mac/FreeType.m68k_far.make.txt: Ditto.
  2911 	* builds/mac/FreeType.ppc_classic.make.txt: Ditto.
  2912 	* builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
  2914 2011-11-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2916 	Fix Savannah bug #34728 (`make devel' on Mac OS X).
  2918 	* builds/toplevel.mk: Check `/dev/null' to identify the Unix-
  2919 	like systems without `init' nor `hurd' (e.g. Mac OS X >= 10.4).
  2920 	* builds/unix/detect.mk: Ditto.
  2922 2011-11-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2924 	[apinames] Fix the overflow of signed integer hash.
  2926 	* src/tools/apinames.c (names_add): Change the type of `h' from
  2927 	int to unsigned int, to prevent undefined behaviour in the
  2928 	overflow of signed integers (overflow of unsigned int is defined
  2929 	to be wrap around).  Found by clang test suggested by Sean
  2930 	McBride.
  2932 2011-11-30  Werner Lemberg  <wl@gnu.org>
  2934 	[winfonts] Remove casts.
  2936 	* src/winfonts/winfnt.c (winfnt_driver_class): Remove all casts and
  2937 	update affected functions.
  2938 	(FNT_Size_Select): Fix number of arguments.
  2940 2011-11-30  Werner Lemberg  <wl@gnu.org>
  2942 	[type42] Remove casts.
  2944 	* src/type42/t42driver.c (t42_driver_class): Remove all casts and
  2945 	update affected functions.
  2947 	* src/type42/t42objs.c, src/type42/t42objs.h: Updated for t42driver
  2948 	changes.
  2950 2011-11-30  Werner Lemberg  <wl@gnu.org>
  2952 	[type1] Remove casts.
  2954 	* src/type1/t1driver.c (t1_driver_class): Remove all casts and
  2955 	update affected functions.
  2957 	* src/type1/t1gload.c, src/type1/t1gload.h, src/type1/t1objs.c:
  2958 	Updated for t1driver changes.
  2959 	src/type1/t1objs.h (T1_Driver): Remove unused typedef.
  2960 	Updated for t1driver changes.
  2962 2011-11-27  Werner Lemberg  <wl@gnu.org>
  2964 	[bdf] Fix Savannah bug #34896.
  2966 	ENCODING now covers the whole Unicode range.
  2968 	Note, however, that this change is quite expensive since it
  2969 	increases the size of three arrays by almost 400kByte in total.  The
  2970 	right fix is to replace the logic with something smarter.
  2971 	Additionally, there exist very old BDFs for three-byte CCCII
  2972 	encoding which exceeds the range of Unicode (another reason to have
  2973 	a smarter logic).
  2975 	* src/bdf/bdf.h (bdf_font_t): Increase size of `nmod' and `umod'
  2976 	arrays.
  2977 	* src/bdf/bdflib.c (bdf_parse_t): Increase size of `have' array.
  2979 2011-11-27  Werner Lemberg  <wl@gnu.org>
  2981 	[bdf] Improve tracing.
  2983 	* src/bdf/bdflib.c (DBGMSG1, DBGMSG2): New macros.
  2984 	(_bdf_parse_glyphs): Use them.
  2986 2011-11-26  Werner Lemberg  <wl@gnu.org>
  2988 	Improve tracing.
  2990 	* src/bdf/bdfdrivr.c (BDF_Face_Done), src/pcf/pcfdrivr.c
  2991 	(PCF_Face_Done): Remove tracing message.
  2993 	* src/bdf/bdfdrivr.c (BDF_Face_Init), src/cff/cffobjs.c
  2994 	(cff_face_init), src/cid/cidobjs.c (cid_face_init),
  2995 	src/pfr/pfrobjs.c (pfr_face_init), src/sfnt/sfobjs.c
  2996 	(sfnt_init_face), src/truetype/ttobjs.c (tt_face_init),
  2997 	src/type1/t1objs.c (T1_Face_Init), src/type42/t42objs.c
  2998 	(T42_Face_Init), src/winfonts/winfnt.c (FNT_Face_Init): Add
  2999 	`greeting' message.
  3001 	* src/sfnt/sfobjs.c (sfnt_open_font), src/type42/t42objs.c
  3002 	(T42_Open_Face): Improve tracing.
  3004 2011-11-26  Werner Lemberg  <wl@gnu.org>
  3006 	[cid] Fix error code.
  3008 	* src/cid/cidparse.c (cid_parser_new): Do it.
  3010 2011-11-26  Werner Lemberg  <wl@gnu.org>
  3012 	[cff] Fix error code.
  3014 	* src/cff/cffload.c (cff_font_load): Do it.
  3016 2011-11-26  Werner Lemberg  <wl@gnu.org>
  3018 	Add new error code FT_Err_Missing_Module.
  3020 	Previously, FreeType misleadingly returned
  3021 	FT_Err_Unknown_File_Format if a module was missing (or a test was
  3022 	missing completely).
  3024 	* include/freetype/fterrdef.h (FT_Err_Missing_Module): Define.
  3026 	* src/cff/cffobjs.c (cff_face_init), src/cff/cffdrivr.c
  3027 	(cff_get_glyph_name), src/cid/cidobjs.c (cid_face_init),
  3028 	src/sfnt/sfobjs.c (sfnt_init_face), src/truetype/ttobjs.c
  3029 	(tt_face_init), src/type1/t1objs.c (T1_Face_Init),
  3030 	src/type42/t42objs.c (T42_Face_Init, T42_Driver_Init): Updated.
  3032 	* src/type1/t1afm.c (T1_Read_Metrics), src/type/t1objs.c
  3033 	(T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Remove now
  3034 	redundant test for `psaux'.
  3036 2011-11-25  Werner Lemberg  <wl@gnu.org>
  3038 	[bdf] Add more error messages.
  3040 	* src/bdf/bdflib.c (_bdf_set_default_spacing, _bdf_add_property):
  3041 	Add line number argument.
  3042 	Update all callers.
  3043 	(ERRMSG5, ERRMSG6, ERRMSG7, ERRMSG8, ERRMSG9): New macros.
  3044 	(_bdf_readstream, _bdf_set_default_spacing, _bdf_add_property,
  3045 	_bdf_parse_glyphs, _bdf_parse_start): Add error messages.
  3047 2011-11-24  Werner Lemberg  <wl@gnu.org>
  3049 	* include/freetype/fterrors.h: Remove dead code.
  3051 2011-11-15  Werner Lemberg  <wl@gnu.org>
  3053 	* docs/releases: Updated.
  3055 2011-11-15  Werner Lemberg  <wl@gnu.org>
  3057 	* Version 2.4.8 released.
  3058 	=========================
  3061 	Tag sources with `VER-2-4-8'.
  3063 	* docs/CHANGES: Updated.
  3065 	* docs/VERSION.DLL: Update documentation and bump version number to
  3066 	2.4.8.
  3068 	* README, Jamfile (RefDoc),
  3069 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
  3070 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
  3071 	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
  3072 	builds/win32/visualc/freetype.dsp,
  3073 	builds/win32/visualc/freetype.vcproj,
  3074 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
  3075 	builds/win32/visualce/freetype.vcproj,
  3076 	builds/win32/visualce/index.html,
  3077 	builds/wince/vc2005-ce/freetype.vcproj,
  3078 	builds/wince/vc2005-ce/index.html,
  3079 	builds/wince/vc2008-ce/freetype.vcproj,
  3080 	builds/wince/vc2008-ce/index.html: s/2.4.7/2.4.8/, s/247/248/.
  3082 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
  3084 	* builds/unix/configure.raw (version_info): Set to 14:0:8.
  3086 2011-11-13  Chris Liddell  <chris.liddell@artifex.com>
  3088 	Add FT_Get_PS_Font_Value() API.
  3090 	This allows a Type 1 font face to be interrogated to retrieve most
  3091 	of the dictionary keys (keys not relevant to FreeType's Type 1
  3092 	interpreter are not available).
  3094 	* include/freetype/internal/services/svpsinfo.h
  3095 	(PS_GetFontValueFunc): New typedef.
  3096 	(PSInfo): Add `ps_get_font_value'.
  3097 	(FT_DEFINE_SERVICE_PSINFOREC): Updated.
  3099 	* include/freetype/internal/t1types.h (T1_EncodingType): Moved to...
  3100 	* include/freetype/t1tables.h: Here.
  3101 	(PS_Dict_Keys): New enumeration.
  3102 	(FT_Get_PS_Font_Value): New declaration.
  3104 	* src/base/fttype1.c (FT_Get_PS_Font_Value): New function.
  3106 	* src/type1/t1driver.c (t1_ps_get_font_value): This new function
  3107 	does the real job.
  3108 	(t1_service_ps_info): Add it.
  3110 	* src/cff/cffdrivr.c (cff_service_ps_info), src/cid/cidriver.c
  3111 	(cid_service_ps_info), src/type42/t42drivr.c (t42_service_ps_info):
  3112 	Updated.
  3114 2011-11-08  Braden Thomas  <bthomas@apple.com>
  3116 	[cid] Various loading fixes.
  3118 	* src/cid/cidload.c (cid_load_keyword) <default>,
  3119 	(parse_font_matrix, parse_expansion_factor): Correctly check number
  3120 	of dictionaries.
  3121 	(cid_read_subrs): Protect against invalid values of `num_subrs'.
  3122 	Assure that the elements of the `offsets' array are ascending.
  3124 2011-11-05  Werner Lemberg  <wl@gnu.org>
  3126 	* README: We use copyright ranges also.
  3128 	According to
  3130 	  http://www.gnu.org/prep/maintain/html_node/Copyright-Notices.html
  3132 	this should be mentioned explicitly.
  3134 2011-10-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3136 	[raccess] Supplement for previous fix.
  3138 	* src/base/ftbase.h (raccess_rule_by_darwin_vfs): Do not declare
  3139 	it on native Mac OS X.
  3140 	* src/base/ftrfork.c (raccess_get_rule_type_from_rule_index):
  3141 	Hide raccess_get_rule_type_from_rule_index() on native Mac OS X
  3142 	too.
  3144 2011-10-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3146 	[raccess] Hide raccess_rule_by_darwin_vfs() on native Mac OS X.
  3148 	* src/base/ftrfork.c (raccess_rule_by_darwin_vfs): Do not
  3149 	compile on native Mac OS X because it is not used.
  3151 2011-10-25  Werner Lemberg  <wl@gnu.org>
  3153 	[truetype] Fix MD instruction for twilight zone.
  3155 	* src/truetype/ttinterp.c (Ins_MD): Without this fix, the MD
  3156 	instruction applied to original coordinates of twilight points
  3157 	always returns zero.
  3159 2011-10-18  Werner Lemberg  <wl@gnu.org>
  3161 	* Version 2.4.7 released.
  3162 	=========================
  3165 	Tag sources with `VER-2-4-7'.
  3167 	* docs/CHANGES: Updated.
  3169 	* docs/VERSION.DLL: Update documentation and bump version number to
  3170 	2.4.7.
  3172 	* README, Jamfile (RefDoc),
  3173 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
  3174 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
  3175 	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
  3176 	builds/win32/visualc/freetype.dsp,
  3177 	builds/win32/visualc/freetype.vcproj,
  3178 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
  3179 	builds/win32/visualce/freetype.vcproj,
  3180 	builds/win32/visualce/index.html,
  3181 	builds/wince/vc2005-ce/freetype.vcproj,
  3182 	builds/wince/vc2005-ce/index.html,
  3183 	builds/wince/vc2008-ce/freetype.vcproj,
  3184 	builds/wince/vc2008-ce/index.html: s/2.4.6/2.4.7/, s/246/247/.
  3186 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
  3188 	* builds/unix/configure.raw (version_info): Set to 13:2:7.
  3190 2011-10-15  Kal Conley  <kcconley@gmail.com>
  3192 	Fix handling of transformations if no renderer is present.
  3194 	* src/base/ftobjs.c (FT_Load_Glyph): Thinko.
  3196 2011-10-15  Kal Conley  <kcconley@gmail.com>
  3198 	Fix conditions for autohinting.
  3200 	* src/base/ftobjs.c (FT_Load_Glyph): Handle
  3201 	FT_LOAD_IGNORE_TRANSFORM.
  3203 2011-10-07  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3205 	[gxvalid] Fix a bug to detect too large offset in morx table.
  3207 	* src/gxvalid/gxvmorx2.c
  3208 	(gxv_morx_subtable_type2_ligActionIndex_validate): Fix a bug
  3209 	that too large positive offset cannot be detected.
  3211 2011-10-01  Braden Thomas  <bthomas@apple.com>
  3213 	Handle some border cases.
  3215 	* include/freetype/config/ftstdlib.h (FT_USHORT_MAX): New macro.
  3217 	* src/base/ftbitmap.c (FT_Bitmap_Convert): Protect against invalid
  3218 	value of `target->rows'.
  3220 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add check for
  3221 	flex start.
  3223 	* src/raster/ftrend1.c (ft_raster1_render): Check `width' and
  3224 	`height'.
  3226 	* src/truetype/ttgxvar.c (TT_Vary_Get_Glyph_Deltas): Protect against
  3227 	invalid values in `localpoints' array.
  3229 2011-10-01  Werner Lemberg  <wl@gnu.org>
  3231 	[psnames] Handle zapfdingbats.
  3232 	Problem reported by Nicolas Rougier <Nicolas.Rougier@inria.fr>.
  3234 	* src/tools/glnames.py (adobe_glyph_list): Add data from AGL's
  3235 	`zapfdingbats.txt' file.
  3237 	* src/psnames/pstables.h: Regenerated.
  3239 2011-09-27  Simon Bünzli  <zeniko@gmail.com>
  3241 	[type1] Fix Savannah bug #34189.
  3243 	* src/type1/t1load.c (T1_Open_Face): Initialize
  3244 	`face->len_buildchar'.
  3246 2011-09-26  Werner Lemberg  <wl@gnu.org>
  3248 	[cff] Dump SIDs while tracing.
  3250 	* src/cff/cffobjs.c (cff_face_init): Do it.
  3252 	* src/cff/cffparse.c (cff_parser_run) [FT_DEBUG_LEVEL_TRACE]
  3253 	<cff_kind_string>: Identify as SID.
  3255 2011-09-17  Werner Lemberg  <wl@gnu.org>
  3257 	Remove unused FT_ALIGNMENT macro.
  3259 	* builds/unix/ftconfig.in, builds/vms/ftconfig.h,
  3260 	include/freetype/config/ftconfig.h: Do it.
  3262 2011-09-17  Alexei Podtelezhnikov  <apodtele@gmail.com>
  3264 	[smooth] Slightly optimize conic and cubic flatterners.
  3266 	* src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move
  3267 	out some code from the main loop to speed it up.
  3269 2011-09-11  Tomas Hoger  <thoger@redhat.com>
  3271 	Slightly improve LZW_CLEAR handling.
  3273 	* src/lzw/ftzopen.c (ft_lzwstate_io) <FT_LZW_PHASE_CODE>:
  3274 	Ensure that subsequent (modulo garbage byte(s)) LZW_CLEAR codes are
  3275 	handled as clear codes.  This also re-sets old_code and old_char to
  3276 	predictable values, which is a little better than using `random'
  3277 	ones if the code following LZW_CLEAR is invalid.
  3279 2011-09-11  Tomas Hoger  <thoger@redhat.com>
  3281 	Add explicit LZW decompression stack size limit.
  3283 	Stack larger than 1<<LZW_MAX_BITS is never needed if prefix table is
  3284 	constructed correctly.  It's even less than that, see e.g.
  3285 	libarchive code comment for a better size upper bound:
  3287 	  http://code.google.com/p/libarchive/source/browse/trunk/libarchive/archive_read_support_filter_compress.c?r=3635#121
  3289 	This patch adds explicit stack size limit, enforced when stack is
  3290 	realloced.
  3292 	An alternative is to ensure that code < state->prefix[code - 256]
  3293 	when traversing prefix table.  Such check is less efficient and
  3294 	should not be required if prefix table is constructed correctly in
  3295 	the first place.
  3297 	* src/lzw/ftzopen.c (ft_lzwstate_stack_grow): Implement it.
  3299 2011-09-11  Tomas Hoger  <thoger@redhat.com>
  3301 	Protect against loops in the prefix table.
  3303 	LZW decompressor did not sufficiently check codes read from the
  3304 	input LZW stream.  A specially-crafted or corrupted input could
  3305 	create a loop in the prefix table, which leads to memory usage
  3306 	spikes, as there's no decompression stack size limit.
  3308 	* src/lzw/ftzopen.c (ft_lzwstate_io) <FT_LZW_PHASE_START>: First
  3309 	code in valid LZW stream must be 0..255.
  3310 	<FT_LZW_PHASE_CODE>: In the special KwKwK case, code == free_ent,
  3311 	code > free_ent is invalid.
  3313 2011-09-09  Werner Lemberg  <wl@gnu.org>
  3315 	Better tracing of metrics.
  3317 	* src/base/ftobjs.c (FT_Request_Size, FT_Select_Size): Decorate with
  3318 	FT_TRACE.
  3320 2011-09-07  Werner Lemberg  <wl@gnu.org>
  3322 	[cff] Fix Savannah bug #33816.
  3324 	* src/cff/cfftypes.h (CFF_FontRecDictRec): New member
  3325 	`has_font_matrix'.
  3326 	* src/cff/cffparse.c (cff_parse_font_matrix): Set it.
  3327 	Update tracing output.
  3328 	* src/cff/cffobjs.c (cff_face_init): Use it so that the heuristics
  3329 	can be removed.
  3331 2011-08-30  Werner Lemberg  <wl@gnu.org>
  3333 	Better tracing of metrics.
  3335 	* src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics):
  3336 	Decorate with FT_TRACE.
  3338 2011-08-25  Werner Lemberg  <wl@gnu.org>
  3340 	[cff] Better tracing of the parsing process.
  3342 	* src/cff/cffload.c (cff_subfont_load, cff_font_load): Decorate with
  3343 	FT_TRACE.
  3345 	* src/cff/cffparse.c (cff_parse_font_matrix, cff_parse_font_bbox,
  3346 	cff_parse_private_dict, cff_parse_cid_ros): Updated.
  3347 	(CFF_FIELD_NUM, CFF_FIELD_FIXED, CFF_FIELD_FIXED_1000,
  3348 	CFF_FIELD_STRING, CFF_FIELD_BOOL, CFF_FIELD_CALLBACK, CFF_FIELD,
  3349 	CFF_FIELD_DELTA): Add argument for ID.
  3350 	(cff_parser_run): Decorate with FT_TRACE.
  3352 	* src/cff/cffparse.h (CFF_Field_Handler) [FT_DEBUG_LEVEL_TRACE]: Add
  3353 	`id' member.
  3355 	* src/cff/cfftoken.h: Add IDs to all fields.
  3357 2011-08-16  Werner Lemberg  <wl@gnu.org>
  3359 	Fix Savannah bug #34022.
  3361 	* README, docs/INSTALL: Remove references to UPGRADE.UNIX.
  3363 2011-08-15  Werner Lemberg  <wl@gnu.org>
  3365 	Fix Savannah bug #34018.
  3367 	* docs/UPGRADE.UNIX: Removed.  Obsolete.
  3369 2011-08-15  David Bevan  <david.bevan@pb.com>
  3371 	Fix Savannah bug #33992.
  3373 	* src/base/ftstroke.c (FT_Stroker_ParseOutline): Fix border case.
  3375 2011-08-12  Werner Lemberg  <wl@gnu.org
  3377 	[truetype] Fix degenerate case in S{P,F,DP}VTL opcodes.
  3379 	* src/truetype/ttinterp.c (Ins_SxVTL): Handle p1 == p2 specially.
  3380 	(Ins_SDPVTL): Handle v1 == v2 specially.
  3382 2011-08-09  Werner Lemberg  <wl@gnu.org>
  3384 	[cff] Fix Savannah bug #33975.
  3386 	* src/cff/cffparse.c (cff_parse_font_matrix): Fix typo.
  3388 2011-07-29  Werner Lemberg  <wl@gnu.org>
  3390 	* Version 2.4.6 released.
  3391 	=========================
  3394 	Tag sources with `VER-2-4-6'.
  3396 	* docs/CHANGES: Updated.
  3398 	* docs/VERSION.DLL: Update documentation and bump version number to
  3399 	2.4.6.
  3401 	* README, Jamfile (RefDoc),
  3402 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
  3403 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
  3404 	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
  3405 	builds/win32/visualc/freetype.dsp,
  3406 	builds/win32/visualc/freetype.vcproj,
  3407 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
  3408 	builds/win32/visualce/freetype.vcproj,
  3409 	builds/win32/visualce/index.html,
  3410 	builds/wince/vc2005-ce/freetype.vcproj,
  3411 	builds/wince/vc2005-ce/index.html,
  3412 	builds/wince/vc2008-ce/freetype.vcproj,
  3413 	builds/wince/vc2008-ce/index.html: s/2.4.5/2.4.6/, s/245/246/.
  3415 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
  3417 	* builds/unix/configure.raw (version_info): Set to 13:1:7.
  3419 2011-07-29  Werner Lemberg  <wl@gnu.org>
  3421 	[cff] Add some more tracing infos.
  3423 	* src/cff/cffparse.c (cff_parse_font_matrix, cff_parse_font_bbox,
  3424 	cff_parse_cid_ros): Add tracing.
  3426 2011-07-22  Dirk Müller  <dmueller@suse.de>
  3428 	[psaux, type1] Fix null pointer dereferences.
  3430 	Found with font fuzzying.
  3432 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Check
  3433 	`decoder->buildchar'.
  3435 	* src/type1/t1load.c (t1_load_keyword): Check `blend->num_designs'.
  3437 2011-07-20  Chris Morgan  <cmorgan@cybexintl.com>
  3439 	Add FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT.
  3441 	Useful for embedded systems which don't need file stream support.
  3443 	* src/base/ftsystem.c, src/base/ftobjs.c (FT_Stream_New): Implement
  3444 	it.
  3446 2011-07-20  Elton Chung  <elton328@gmail.com>
  3448 	* src/base/ftpatent.c (FT_Face_SetUnpatentedHinting): Fix typo.
  3450 2011-07-16  Steven Chu  <steven.f.chu@gmail.com>
  3452 	[truetype] Fix metrics on size request for scalable fonts.
  3454 	* src/truetype/ttdriver.c (tt_size_request): Fix copying metrics
  3455 	from TT_Size to FT_Size if scalable font.
  3457 	See
  3459 	  http://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00049.html
  3461 	for some comparison images.
  3463 2011-07-14  Matthias Drochner  <M.Drochner@fz-juelich.de>.
  3465 	[psaux] Fix potential sign extension problems.
  3467 	When shifting right a signed value, it is not defined by the
  3468 	C standard whether one gets a sign extension or not.  Use a macro to
  3469 	do an explicit cast from a signed short (assuming that this is
  3470 	16bit) to an int.
  3472 	* src/psaux/t1decode.c (Fix2Int): New macro.
  3473 	Use it where appropriate.
  3475 2011-07-14  Werner Lemberg  <wl@gnu.org>
  3477 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
  3478 	<op_callothersubr>: Better handling of subroutine index 0.
  3479 	From Matthias Drochner <M.Drochner@fz-juelich.de>.
  3481 2011-07-10  Алексей Подтележников  <apodtele@gmail.com>
  3483 	[psaux] Optimize previous commit.
  3485 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
  3486 	<op_callothersubr>: Move error check down to avoid testing twice for
  3487 	good cases.
  3489 2011-07-08  Werner Lemberg  <wl@gnu.org>
  3491 	[psaux] Add better argument check for `callothersubr'.
  3493 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
  3494 	<op_callothersubr>: Reject negative arguments.
  3496 2011-07-07  Werner Lemberg  <wl@gnu.org>
  3498 	[sfnt] Try harder to find non-zero values for ascender and descender.
  3500 	* src/sfnt/sfobjs.c (sfnt_load_face): Consult `OS/2' table in case
  3501 	the `hhea' table's values are zero.
  3503 2011-07-03  Werner Lemberg  <wl@gnu.org>
  3505 	Fix previous commit.
  3507 	We want to unset FT_FACE_FLAG_SCALABLE only if there are bitmap
  3508 	strikes in the font.
  3510 	* src/truetype/ttobjs.c (tt_face_init): Implement it.
  3512 	* docs/CHANGES: Updated.
  3514 2011-07-02  Just Fill Bugs  <mozbugbox@yahoo.com.au>
  3516 	[truetype] Fix Savannah bug #33246.
  3518 	* src/truetype/ttobjs.c (tt_check_single_notdef): New function.
  3519 	(tt_face_init): Use it to test FT_FACE_FLAG_SCALABLE.
  3521 2011-07-02  Werner Lemberg  <wl@gnu.org>
  3523 	* docs/CHANGES: Updated.
  3525 2011-07-02  David Bevan  <david.bevan@pb.com>
  3527 	[ftstroke] Major revision.
  3529 	The main problems
  3530 	-----------------
  3532 	  o If FT_STROKER_LINEJOIN_BEVEL was specified, unlimited miter
  3533 	    joins (not bevel joins) were generated.  Indeed, the meanings of
  3534 	    `miter' and `bevel' were incorrectly reversed (consistently) in
  3535 	    both the code and comments.
  3537 	  o The way bevel joins were constructed (whether specified
  3538 	    explicitly, or created as a result of exceeding the miter limit)
  3539 	    did not match what is required for stroked text in PostScript or
  3540 	    PDF.
  3542 	The main fixes
  3543 	--------------
  3545 	  o The behaviour of FT_STROKER_LINEJOIN_BEVEL has been corrected.
  3547 	  o A new line join style, FT_STROKER_LINEJOIN_MITER_FIXED, has been
  3548 	    introduced to support PostScript and PDF miter joins.
  3550 	  o FT_STROKER_LINEJOIN_MITER_VARIABLE has been introduced as an
  3551 	    alias for FT_STROKER_LINEJOIN_MITER.
  3553 	Additionally, a variety of stroking errors have been fixed.  These
  3554 	would cause various artifacts (including points `at infinity'),
  3555 	especially when stroking poor quality fonts.
  3557 	See
  3559 	  http://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00001.html
  3561 	for example documents.  The FreeType stroker now produces results
  3562 	very similar to that produced by GhostScript and Distiller for these
  3563 	fonts.
  3565 	Other problems
  3566 	--------------
  3568 	The following problems have been resolved:
  3570 	  o Inside corners could be generated incorrectly.  Intersecting the
  3571 	    inside corner could cause a missing triangular area and other
  3572 	    effects.
  3574 	    The intersection point can only be used if the join is between
  3575 	    two lines and both lines are long enough.  The `optimization'
  3576 	    condition in `ft_stroker_inside' has been corrected; this
  3577 	    requires the line length to be passed into various functions and
  3578 	    stored in `FT_StrokerRec'.
  3580 	  o Incorrect cubic curves could be generated.  The angle
  3581 	    calculations in `FT_Stroker_CubicTo' have been corrected to
  3582 	    handle the case of the curve crossing the +/-PI direction.
  3584 	  o If the border radius was greater than the radius of curvature of
  3585 	    a curve, then the negative sector would end up outside (not
  3586 	    inside) the border.  This situation is now recognized and the
  3587 	    negative sector is circumnavigated in the opposite direction.
  3588 	    (If round line joins are being used, this code is disabled
  3589 	    because the line join will always cover the negative sector.)
  3591 	  o When a curve is split, the arcs may not join smoothly (especially
  3592 	    if the curve turns sharply back on itself).  Changes in
  3593 	    direction between adjacent arcs were not handled.  A round
  3594 	    corner is now added if the deviation from one arc to the next is
  3595 	    greater than a suitable threshold.
  3597 	  o The current direction wasn't retained if a the outline contained
  3598 	    a zero length lineto or a curve that was determined to be
  3599 	    `basically a point'.  This could cause a spurious join to be
  3600 	    added.
  3602 	  o Cubics with close control points could be mishandled.  All eight
  3603 	    cases are now distinguished correctly.
  3605 	Other improvements
  3606 	------------------
  3608 	o Borders for cubic curves could be too `flat'.
  3609 	  FT_SMALL_CUBIC_THRESHOLD has been reduced a little to prevent
  3610 	  this.
  3612 	o The handling and use of movable points has been simplified a
  3613 	  little.
  3615 	o Various values are now computed only if the results are actually
  3616 	  needed.
  3618 	o The directions of the outer and inner borders have been swapped,
  3619 	  as recommended by Graham Asher.
  3621 	* src/base/ftstroke.c: Revised.
  3622 	* include/freetype/ftstroke.h: Updated.
  3624 2011-06-30  İsmail Dönmez <ismail@namtrac.org>
  3626 	* builds/toplevel.mk: We use git, not CVS, thus skip `.gitignore'.
  3628 2011-06-29  Werner Lemberg  <wl@gnu.org>
  3630 	[bdf] Fix Savannah bug #33663.
  3632 	* src/bdf/bdflib.c (_bdf_parse_glyphs): Handle negative values for
  3633 	ENCODING correctly.
  3635 	* docs/CHANGES: Document it.
  3637 2011-06-24  Werner Lemberg  <wl@gnu.org>
  3639 	* Version 2.4.5 released.
  3640 	=========================
  3643 	Tag sources with `VER-2-4-5'.
  3645 	* docs/CHANGES: Updated.
  3647 	* docs/VERSION.DLL: Update documentation and bump version number to
  3648 	2.4.5
  3650 	* README, Jamfile (RefDoc),
  3651 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
  3652 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
  3653 	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
  3654 	builds/win32/visualc/freetype.dsp,
  3655 	builds/win32/visualc/freetype.vcproj,
  3656 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
  3657 	builds/win32/visualce/freetype.vcproj,
  3658 	builds/win32/visualce/index.html,
  3659 	builds/wince/vc2005-ce/freetype.vcproj,
  3660 	builds/wince/vc2005-ce/index.html,
  3661 	builds/wince/vc2008-ce/freetype.vcproj,
  3662 	builds/wince/vc2008-ce/index.html: s/2.4.4/2.4.5/, s/244/245/.
  3664 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
  3666 	* builds/unix/configure.raw (version_info): Set to 13:0:7.
  3668 2011-06-20  Werner Lemberg  <wl@gnu.org>
  3670 	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Fix change
  3671 	from 2011-05-04.
  3673 2011-06-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3675 	[gxvalid] make the `prop' validation tracing verbose.
  3677 	* src/gxvalid/gxvprop.c: Add tracing messages for errors.
  3679 2011-06-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3681 	[autogen.sh] Reflect environment variable LIBTOOLIZE.
  3683 2011-06-18  Werner Lemberg <wl@gnu.org>
  3685 	Update license documentation.
  3687 	* docs/GPL.TXT: Renamed to...
  3688 	* docs/GPLv2.TXT: This.
  3690 	* docs/LICENSE.TXT: Updated.
  3692 2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3694 	Fix g++4.6 compiler warnings in module drivers.
  3696 	The background is same with previous commit.
  3698 	* src/truetype/ttgxvar.c (ft_var_readpackedpoints):
  3699 	Init `points'.  (TT_Vary_Get_Glyph_Deltas): Init
  3700 	`delta_xy'.  (TT_Get_MM_Var): Init `mmvar'.
  3701 	* src/type1/t1load.c (T1_Get_MM_Var): Ditto.
  3702 	* src/cff/cffdrivr.c (cff_ps_get_font_info): Init
  3703 	`font_info'.
  3704 	* src/cff/cffload.c (cff_index_get_pointers): Init `t'.
  3705 	(cff_font_load): Init `sub'.
  3706 	* src/cff/cffobjs.c (cff_size_init): Init `internal'.
  3707 	(cff_face_init): Init `cff'.
  3708 	* src/pfr/pfrload.c (pfr_extra_item_load_stem_snaps):
  3709 	Init `snaps'.
  3710 	* src/pcf/pcfread.c (pcf_get_properties): Init `properties'.
  3711 	(pcf_get_bitmaps): Init `offsets'.  (pcf_get_encodings):
  3712 	Init `tmpEncoding'.
  3713 	* src/sfnt/ttload.c (tt_face_load_gasp): Init `gaspranges'.
  3714 	* src/sfnt/ttsbit.c (Load_SBit_Image): Init `components'.
  3715 	* src/cache/ftcmru.c (FTC_MruList_New): Init `node'.
  3716 	* src/gzip/ftgzip.c (FT_Stream_OpenGzip): Init `zip' and
  3717 	`zip_buff'.
  3718 	* src/lzw/ftlzw.c (FT_Stream_OpenLZW): Init `zip'.
  3719 	* src/bzip2/ftbzip2.c (FT_Stream_OpenBzip2): Init `zip'.
  3721 2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3723 	[base] Fix g++4.6 compiler warnings in src/base/*.c.
  3725 	Passing uninitialized pointer to FT_NEW() families is
  3726 	not problematic theoretically (as far as the returned
  3727 	pointer is checked before writing), but g++4.6 dislikes
  3728 	it and warns by -Wuninitialized.  Initialize them by NULL.
  3730 	* src/base/ftobjs.c (FT_Stream_New): Init `stream'.
  3731 	(new_memory_stream): Ditto.
  3732 	(FT_New_GlyphSlot): Init `slot'.
  3733 	(FT_CMap_New): Init `cmap'.
  3734 	(open_face_PS_from_sfnt_stream): Init `sfnt_ps'.
  3735 	(Mac_Read_POST_Resource): Init `pfb_data'.
  3736 	(Mac_Read_sfnt_Resource): Init `sfnt_data'.
  3737 	* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets):
  3738 	Init `offsets_internal' and `ref'.
  3739 	(raccess_guess_darwin_hfsplus): Init `newpath'.
  3740 	(raccess_guess_darwin_newvfs): Ditto.
  3741 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer):
  3742 	Init `buffer'.
  3743 	* src/base/ftstroke.c (FT_Stroker_New): Init `stroker'.
  3745 2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3747 	[gxvalid] Cleanup.
  3749 	Some invalid, overrunning, unrecommended non-zero values
  3750 	are cared in paranoid validation mode only.  There are
  3751 	many lines looking like:
  3753 	  if ( valid->root->level >= FT_VALIDATE_PARANOID )
  3754 	    FT_INVALID_xxx;
  3756 	To simplify them, GXV_SET_ERR_IF_PARANOID( err ) is
  3757 	introduced for more paranoid validation in future.
  3759 	* src/gxvalid/gxvcommn.h (IS_PARANOID_VALIDATION):
  3760 	New macro to assure valid->root->level is more or
  3761 	equal to FT_VALIDATE_PARANOID.  (GXV_SET_ERR_IF_PARANOID):
  3762 	New macro to raise an error if in paranoid validation.
  3763 	* src/gxvalid/gxvcommn.c: Use GXV_SET_ERR_IF_PARANOID().
  3764 	* src/gxvalid/gxvfeat.c: Ditto.
  3765 	* src/gxvalid/gxvjust.c: Ditto.
  3766 	* src/gxvalid/gxvkern.c: Ditto.
  3767 	* src/gxvalid/gxvmort.c: Ditto.
  3768 	* src/gxvalid/gxvmort0.c: Ditto.
  3769 	* src/gxvalid/gxvmort1.c: Ditto.
  3770 	* src/gxvalid/gxvmort2.c: Ditto.
  3771 	* src/gxvalid/gxvmorx1.c: Ditto.
  3772 	* src/gxvalid/gxvmorx2.c: Ditto.
  3774 2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3776 	[gxvalid] Fix gcc4.6 compiler warnings in gxvtrak.c.
  3778 	* src/gxvalid/gxvtrak.c (gxv_trak_trackTable_validate):
  3779 	Check different entries pointing same traking value.
  3780 	(gxv_trak_validate): Remove unused variable `table_size'.
  3782 2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3784 	[gxvalid] Fix gcc4.6 compiler warnings in gxvmorx*.c.
  3786 	* src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate):
  3787 	Conditionalize unvalidated variable `subFeatureFlags'.
  3788 	(gxv_morx_chain_validate): Conditionalize unvalidated
  3789 	variable `defaultFlags'.
  3791 	* src/gxvalid/gxmorx0.c
  3792 	(gxv_morx_subtable_type0_entry_validate):
  3793 	Conditionalize unvalidated variables; `markFirst',
  3794 	`dontAdvance', `markLast', `verb'.
  3796 	* src/gxvalid/gxmorx1.c
  3797 	(gxv_morx_subtable_type1_entry_validate): Conditionalize
  3798 	unvalidated variables; `setMark', `dontAdvance'.
  3800 	* src/gxvalid/gxvmorx2.c
  3801 	(gxv_morx_subtable_type2_ligActionOffset_validate):
  3802 	Conditionalize unvalidated variables; `last', `store'.
  3803 	Checking for overrunning offset is added.
  3804 	(gxv_morx_subtable_type2_entry_validate):
  3805 	Conditionalize unvalidated variables; `setComponent',
  3806 	`dontAdvance', `performAction'.
  3807 	(gxv_morx_subtable_type2_ligatureTable_validate):
  3808 	Check if the GID for ligature does not exceed the
  3809 	max GID in `maxp' table.
  3811 	* src/gxvalid/gxvmort5.c
  3812 	(gxv_morx_subtable_type5_InsertList_validate):
  3813 	Conditionalize unvalidated loading of `insert_glyphID'
  3814 	array.  (gxv_morx_subtable_type5_entry_validate):
  3815 	Conditionalize unvalidated variables; `setMark',
  3816 	`dontAdvance', `currentIsKashidaLike',
  3817 	`markedIsKashidaLike', `currentInsertBefore',
  3818 	`markedInsertBefore'.
  3820 2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3822 	[gxvalid] Fix gcc4.6 compiler warnings in gxvmort*.c.
  3824 	* src/gxvalid/gxvmort.c (gxv_mort_subtables_validate):
  3825 	Conditionalize unvalidated variable `subFeatureFlags'.
  3826 	(gxv_mort_chain_validate): Conditionalize unvalidated
  3827 	variable `defaultFlags'.
  3829 	* src/gxvalid/gxmort0.c
  3830 	(gxv_mort_subtable_type0_entry_validate): Check the
  3831 	conflict of the marks for the glyphs.
  3833 	* src/gxvalid/gxmort1.c
  3834 	(gxv_mort_subtable_type1_offset_to_subst_validate):
  3835 	Local variables `min_gid', `max_gid' are replaced by
  3836 	variables in the validator.
  3837 	(gxv_mort_subtable_type1_entry_validate): Conditionalize
  3838 	unvalidated variables; `setMark', `dontAdvance'.
  3839 	(gxv_mort_subtable_type1_substTable_validate):
  3840 	Validate the GID by the min/max GIDs in the validator.
  3842 	* src/gxvalid/gxvmort2.c
  3843 	(gxv_mort_subtable_type2_ligActionOffset_validate):
  3844 	Conditionalize unvalidated variables; `last', `store'.
  3845 	Checking for overrunning offset is added.
  3846 	(gxv_mort_subtable_type2_entry_validate):
  3847 	Conditionalize unvalidated variables; `setComponent',
  3848 	`dontAdvance'.
  3849 	(gxv_mort_subtable_type2_ligatureTable_validate):
  3850 	Check if the GID for ligature does not exceed the
  3851 	max GID in `maxp' table.
  3853 	* src/gxvalid/gxvmort5.c
  3854 	(gxv_mort_subtable_type5_InsertList_validate):
  3855 	Conditionalize unvalidated loading of `insert_glyphID'
  3856 	array.  (gxv_mort_subtable_type5_entry_validate):
  3857 	Conditionalize unvalidated variables; `setMark',
  3858 	`dontAdvance', `currentIsKashidaLike',
  3859 	`markedIsKashidaLike', `currentInsertBefore',
  3860 	`markedInsertBefore'.
  3862 2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3864 	[gxvalid] Fix gcc4.6 compiler warnings in gxvkern.c.
  3866 	* src/gxvalid/gxvkern.c
  3867 	(gxv_kern_subtable_fmt0_pairs_validate): Conditionalize
  3868 	unvalidated variable `kernValue'.
  3869 	(gxv_kern_subtable_fmt1_entry_validate): Conditionalize
  3870 	unvalidated variables; `push', `dontAdvance', `kernAction',
  3871 	`kernValue'.
  3872 	(gxv_kern_coverage_new_apple_validate): Conditionalize
  3873 	trace-only variables; `kernVertical', `kernCrossStream',
  3874 	`kernVariation'.
  3875 	(gxv_kern_coverage_classic_apple_validate): Conditionalize
  3876 	trace-only variables; `horizontal', `cross_stream'.
  3877 	(gxv_kern_coverage_classic_microsoft_validate):
  3878 	Conditionalize trace-only variables; `horizontal',
  3879 	`minimum', `cross_stream', `override'.
  3880 	(gxv_kern_subtable_validate): Conditionalize trace-only
  3881 	variables; `version', `tupleIndex'.
  3883 2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3885 	[gxvalid] Fix gcc4.6 compiler warnings in gxvjust.c.
  3887 	* src/gxvalid/gxvjust.c (gxv_just_check_max_gid):
  3888 	New function to unify the checks of too large GID.
  3889 	(gxv_just_wdp_entry_validate): Conditionalize unvalidated
  3890 	variables; `beforeGrowLimit', `beforeShrinkGrowLimit',
  3891 	`afterGrowLimit', `afterShrinkGrowLimit', `growFlags',
  3892 	`shrinkFlags'.  Additional check for non-zero values in
  3893 	unused storage `justClass' is added.
  3894 	(gxv_just_actSubrecord_type0_validate): Conditionalize
  3895 	unvalidated variable `order'.  GID is checked by
  3896 	gxv_just_check_max_gid().  Additional check for upside-down
  3897 	relationship between `lowerLimit' and `upperLimit' is added.
  3898 	(gxv_just_actSubrecord_type1_validate): GID is checked by
  3899 	gxv_just_check_max_gid().
  3900 	(gxv_just_actSubrecord_type2_validate): Conditionalize
  3901 	unvalidated variable `substThreshhold'.  GID is checked by
  3902 	gxv_just_check_max_gid().
  3903 	(gxv_just_actSubrecord_type5_validate): GID is checked by
  3904 	gxv_just_check_max_gid().
  3905 	(gxv_just_classTable_entry_validate): Conditionalize
  3906 	unvalidated variables; `setMark', `dontAdvance',
  3907 	`markClass', `currentClass'.
  3909 2011-06-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3911 	[gxvalid] Preparation to fix gcc4.6 compiler warnings.
  3913 	* src/gxvalid/gxvcommn.h (GXV_LOAD_TRACE_VARS): New macro to
  3914 	conditionalize the variable which is only used for trace messages.
  3915 	Automatically set by FT_DEBUG_LEVEL_TRACE.
  3916 	(GXV_LOAD_UNUSED_VARS): New macro to conditionalize the loading of
  3917 	unvalidated variables.  Undefined by default to calm gcc4.6 warning.
  3918 	(GXV_ValidatorRec.{min_gid,max_gid}): New variables to hold defined
  3919 	GID ranges, for the comparison of GID ranges in different subtables.
  3921 2011-06-08  Werner Lemberg  <wl@gnu.org>
  3923 	[autofit] Remove unused structure member.
  3925 	* src/autofit/afhints.h (AF_SegmentRec): Remove `contour'.
  3926 	* src/autofit/aflatin.c (af_latin_hints_compute_segments),
  3927 	src/autofit/aflatin2.c (af_latin2_hints_compute_segments): Updated.
  3929 2011-05-30  Werner Lemberg  <wl@gnu.org>
  3931 	Fix g++ 4.6 compilation.
  3933 	* src/autofit/afhints.c (af_glyph_hints_dump_segments,
  3934 	af_glyph_hints_dump_edges): Use cast.
  3936 2011-05-30  Werner Lemberg  <wl@gnu.org>
  3938 	Fix gcc 4.6 compiler warnings.
  3940 	* src/autofit/afcjk.c (af_cjk_metrics_init_blues): Use casts and
  3941 	remove unused variables.
  3942 	* src/autofit/aflatin.c (af_latin_hints_compute_edges): Comment out
  3943 	`up_dir'.
  3944 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Use `height_org'
  3945 	and `width_org' conditionalized.
  3947 2011-05-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3949 	[mac] Conditionalize the inclusion of `AvailabilityMacros.h'.
  3951 	The native SDK on earliest Mac OS X (10.0-10.1) did not have
  3952 	`AvailabilityMacros.h'.  To prevent the inclusion of missing
  3953 	header file, ECANCELED (introduced in 10.2) in POSIX header
  3954 	file <errno.h> is checked to detect the system version.
  3956 	* include/freetype/config/ftconfig.h: Conditionalize the
  3957 	inclusion of `AvailabilityMacros.h'.
  3958 	* builds/unix/ftconfig.in: Ditto.
  3959 	* builds/vms/ftconfig.h: Ditto.
  3961 2011-05-27  Werner Lemberg  <wl@gnu.org>
  3963 	[autofit] Improve tracing of hinting process.
  3965 	* src/autofit/aflatin.c (af_latin_hint_edges): Add tracing message
  3966 	`ADJUST'.
  3968 2011-05-26  Werner Lemberg  <wl@gnu.org>
  3970 	[autofit] Fix trace message.
  3972 	* src/autofit/aflatin.c (af_latin_hint_edges): Show correct value in
  3973 	tracing message.
  3975 2011-05-24  Daniel Zimmermann  <netzimme@googlemail.com>
  3977 	Reduce warnings for MS Visual Studio 2010.
  3979 	* src/autofit/afhints.c (af_glyph_hints_get_num_segments,
  3980 	af_glyph_hints_get_segment_offset) [!FT_DEBUG_AUTOFIT]: Provide
  3981 	return value.
  3982 	* src/cff/cffgload.c (cff_slot_load): Add cast.
  3983 	* src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): Use proper
  3984 	loop variable type.
  3986 2011-05-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3988 	Automake component `builds/unix/install-sh' is removed.
  3990 	* builds/unix/install-sh: Removed.  It is not needed to
  3991 	include repository, because autogen.sh installs it.
  3992 	* builds/unix/.gitignore: Register install-sh.
  3994 2011-05-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3996 	[autofit] Make trace message for CJK bluezone more verbose.
  3998 2011-05-08  Just Fill Bugs  <mozbugbox@yahoo.com.au>
  3999             suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4001 	[autofit] Add bluezones for CJK Ideographs.
  4003 	To remove extremas of vertical strokes of CJK Ideographs at
  4004 	low resolution and make the top and bottom horizontal stems
  4005 	aligned, bluezones for CJK Ideographs are calculated from
  4006 	sample glyphs.  At present, vertical bluezones (bluezones
  4007 	to align vertical stems) are disabled by default.  For detail, see
  4008 	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00070.html
  4009 	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00092.html
  4010 	http://lists.gnu.org/archive/html/freetype-devel/2011-05/msg00001.html
  4012 	* include/freetype/internal/fttrace.h: New trace component `afcjk'.
  4013 	* src/autofit/afcjk.h (AF_CJK{Blue,Axis,Metric}Rec): Add CJK version
  4014 	for AF_Latin{Blue,Axis,Metric}Rec.
  4015 	(af_cjk_metrics_check_digits): Ditto, shared with Indic module.
  4016 	(af_cjk_metrics_init_widths): Ditto.
  4017 	(af_cjk_metrics_init): Take AF_CJKMetric instead of AF_LatinMetric.
  4018 	(af_cjk_metrics_scale): Ditto (declaration).
  4019 	(af_cjk_hints_init): Ditto (declaration).
  4020 	(af_cjk_hints_apply): Ditto (declaration).
  4021 	* src/autofit/afcjk.c (af_cjk_metrics_scale): Ditto (body).
  4022 	(af_cjk_hints_init): Ditto (body).
  4023 	(af_cjk_hints_apply): Ditto (body).
  4024 	(af_cjk_metrics_init_widths): Duplicate af_latin_metrics_init_widths.
  4025 	(af_cjk_metrics_check_digits): Duplicate af_latin_metrics_check_digits.
  4026 	(af_cjk_metrics_init): Call CJK bluezone initializer.
  4027 	(af_cjk_metrics_scale_dim): Add code to scale bluezones.
  4028 	(af_cjk_hints_compute_blue_edges): New function, CJK version of
  4029 	af_latin_hints_compute_blue_edges.
  4030 	(af_cjk_metrics_init_blues): New function, CJK version of
  4031 	af_latin_metrics_init_blues.
  4032 	(af_cjk_hints_edges): Add code to align the edge stems to blue zones.
  4034 	* src/autofit/afindic.c (af_indic_metrics_init): Take AF_CJKMetric
  4035 	instead of AF_LatinMetric, and initialize as af_cjk_metrics_init.
  4036 	However bluezones are not initialized.
  4037 	(af_indic_metrics_scale): Take AF_CJKMetric instead of AF_LatinMetric.
  4038 	(af_indic_hints_init): Ditto.
  4039 	(af_indic_hints_apply): Ditto.
  4041 	* docs/CHANGES: Note about CJK bluezone support.
  4043 2011-05-06  Werner Lemberg  <wl@gnu.org>
  4045 	[autofit] Remove unused struct member.
  4047 	* src/autofit/aflatin.h (AF_LatinAxis): Remove `control_overshoot'.
  4049 2011-05-04  Werner Lemberg  <wl@gnu.org>
  4051 	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Simplify.
  4053 2011-05-01  Just Fill Bugs  <mozbugbox@yahoo.com.au>
  4054             Werner Lemberg  <wl@gnu.org>
  4056 	[autofit] Add more debugging functions.
  4058 	* src/autofit/afhints.c (af_glyph_hints_get_num_segments,
  4059 	af_glyph_hints_get_segment_offset): New functions.
  4061 2011-05-01  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4063 	Add new option `--disable-mmap' to configure script.
  4065 	* builds/unix/configure.raw: New option `--disable-mmap'
  4066 	is added.  It is for the developers to simulate the systems
  4067 	without mmap() (like 4.3BSD, minix etc) on POSIX systems.
  4069 2011-04-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4071 	[truetype] Always recalculate the sfnt table checksum.
  4073 	* src/truetype/ttobjs.c (tt_get_sfnt_checksum): Recalculate
  4074 	the sfnt table checksum even if non-zero value is written in
  4075 	the TrueType font header.  Some bad PDF generators write
  4076 	wrong values.  For details see examples and benchmark tests
  4077 	of the latency by recalculation:
  4078 	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00091.html
  4079 	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00096.html
  4081 2011-04-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4083 	[truetype] Register a set of tricky fonts, NEC FA family.
  4085 	* src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids):
  4086 	Add 8 checksum sets for NEC FA family.  For the tricky fonts
  4087 	without some tables (e.g. NEC FA fonts lack cvt table),
  4088 	extra check is added to assure that a zero-length table in the
  4089 	registry is not included in the font.
  4091 2011-04-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4093 	[truetype] Fix a bug in the sfnt table checksum getter.
  4095 	* src/truetype/ttobjs.c (tt_get_sfnt_checksum): Check the
  4096 	return value of face->goto_table() correctly.
  4098 2011-04-28  Werner Lemberg  <wl@gnu.org>
  4100 	[autofit] Improve tracing messages.
  4102 	* src/autofit/aflatin.c (af_latin_metrics_init_blues,
  4103 	af_latin_align_linked_edge, af_latin_hint_edges): Do it.
  4105 2011-04-25  Kan-Ru Chen  <kanru@kanru.info>
  4107 	[truetype] Always check the checksum to identify tricky fonts.
  4109 	Because some PDF generators mangle the family name badly,
  4110 	the trickyness check by the checksum should be invoked always.
  4111 	For sample PDF, see
  4112 	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00073.html
  4114 	* src/truetype/ttobjs.c (tt_check_trickyness): Even when
  4115 	tt_check_trickyness_family() finds no trickyness,
  4116 	tt_check_trickyness_sfnt_ids() is invoked.
  4118 2011-04-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4120 	[autofit] Add more Indic scripts with hanging baseline.
  4122 	* src/autofit/afindic.c (af_indic_uniranges): Tibetan, Limbu,
  4123 	Sundanese, Meetei Mayak, Syloti Nagri and Sharada scripts are
  4124 	added.
  4126 2011-04-21  Behdad Esfahbod  <behdad@behdad.org>
  4128 	Always ignore global advance.
  4130 	This makes FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH redundant,
  4131 	deprecated, and ignored.  The new behavior is what every major user
  4132 	of FreeType has been requesting.  Global advance is broken in many
  4133 	CJK fonts.  Just ignoring it by default makes most sense.
  4135 	* src/truetype/ttdriver.c (tt_get_advances),
  4136 	src/truetype/ttgload.c (TT_Get_HMetrics, TT_Get_VMetrics,
  4137 	tt_get_metrics, compute_glyph_metrics, TT_Load_Glyph),
  4138 	src/truetype/ttgload.h: Implement it.
  4140 	* docs/CHANGES: Updated.
  4142 2011-04-21  rainy6144  <rainy6144@gmail.com>
  4144 	[autofit] Blur CJK stems if too many to preserve their gaps.
  4146 	When there are too many stems to preserve their gaps in the
  4147 	rasterization of CJK Ideographs at a low resolution, blur the
  4148 	stems instead of showing clumped stems.  See
  4149 	http://lists.gnu.org/archive/html/freetype-devel/2011-02/msg00011.html
  4150 	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00046.html
  4151 	for details.
  4153 	* src/autofit/afcjk.c (af_cjk_hint_edges): Store the position of
  4154 	the previous stem by `has_last_stem' and `last_stem_pos', and skip
  4155 	a stem if the current and previous stem are too near to preserve
  4156 	the gap.
  4158 2011-04-18  Werner Lemberg  <wl@gnu.org>
  4160 	Integrate autofitter debugging stuff.
  4162 	* devel/ftoption.h, include/freetype/config/ftoption.h
  4163 	(FT_DEBUG_AUTOFIT): New macro.
  4165 	* include/freetype/internal/fttrace.h: Add trace components for
  4166 	autofitter.
  4168 	* src/autofit/aftypes.h (AF_LOG): Removed.
  4169 	(_af_debug): Removed.
  4171 	* src/autofit/*: s/AF_DEBUG/FT_DEBUG_AUTOFIT/.
  4172 	s/AF_LOG/FT_TRACE5/.
  4173 	Define FT_COMPONENT where necessary.
  4175 2011-04-18  Werner Lemberg  <wl@gnu.org>
  4177 	Synchronize config files.
  4179 	* builds/unix/ftconfig.in: Copy missing assembler routines from
  4180 	include/freetype/config/ftconfig.h.
  4182 2011-04-13  Werner Lemberg  <wl@gnu.org>
  4184 	[psaux] Fix Savannah bug #33047.
  4186 	Patch submitted by anonymous reporter.
  4188 	* src/psaux/psobjs.c (ps_table_add): Use FT_PtrDist for pointer
  4189 	difference.
  4191 2011-04-11  Kan-Ru Chen  <kanru@kanru.info>
  4193 	Fix reading of signed integers from files on 64bit platforms.
  4195 	Previously, signed integers were converted to unsigned integers, but
  4196 	this can fail because of sign extension.  For example, 0xa344a1eb
  4197 	becomes 0xffffffffa344a1eb.
  4199 	We now do the reverse which is always correct because the integer
  4200 	size is the same during the cast from unsigned to signed.
  4202 	* include/freetype/internal/ftstream.h, src/base/ftstream.c
  4203 	(FT_Stream_Get*): Replace with...
  4204 	(FT_Stream_GetU*): Functions which read unsigned integers.
  4205 	Update all macros accordingly.
  4207 	* src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Updated.
  4209 2011-04-07  Werner Lemberg  <wl@gnu.org>
  4211 	Update Unicode ranges for CJK autofitter; in particular, add Hangul.
  4213 	* src/autofit/afcjk.c (af_cjk_uniranges): Update to Unicode 6.0.
  4215 2011-04-04  Werner Lemberg  <wl@gnu.org>
  4217 	Fix formatting of autofit debug dumps.
  4219 	* src/autofit/afhints.c (af_glyph_hints_dump_points,
  4220 	af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Adjust
  4221 	column widths.
  4223 2011-03-30  Werner Lemberg  <wl@gnu.org>
  4225 	* src/autofit/aftypes.h (AF_OutlineRec): Removed, unused.
  4227 2011-03-24  Werner Lemberg  <wl@gnu.org>
  4229 	* src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 256.
  4230 	This limit is given on p. 37 of Adobe Technical Note #5014.
  4232 2011-03-23  Werner Lemberg  <wl@gnu.org>
  4234 	* src/truetype/ttpload.c (tt_face_load_loca): Fix mismatch warning.
  4236 2011-03-20  Werner Lemberg  <wl@gnu.org>
  4238 	* src/sfnt/sfobjs.c (sfnt_open_font): Check number of TTC subfonts.
  4240 2011-03-19  Werner Lemberg  <wl@gnu.org>
  4242 	More C++ compilation fixes.
  4244 	* src/autofit/afhints.c (af_glyph_hints_dump_points,
  4245 	af_glyph_hints_dump_segments, af_glyph_hints_dump_edges)
  4246 	[__cplusplus]: Protect with `extern "C"'.
  4248 2011-03-18  Werner Lemberg  <wl@gnu.org>
  4250 	C++ compilation fixes.
  4252 	* src/autofit/aflatin.c (af_latin_hints_apply), src/autofit/afcjk.c
  4253 	(af_cjk_hints_apply): Use cast for `dim'.
  4255 2011-03-17  Alexei Podtelezhnikov  <apodtele@gmail.com>
  4257 	A better fix for Savannah bug #32671.
  4259 	* src/smooth/ftgrays.c (gray_render_conic): Clean up code and
  4260 	replace WHILE loop with a more natural DO-WHILE construct.
  4262 2011-03-16  Werner Lemberg  <wl@gnu.org>.
  4264 	* src/base/ftstroke.c (FT_StrokerRec): Remove unused `valid' field.
  4265 	Suggested by Graham Asher.
  4267 2011-03-09  Werner Lemberg  <wl@gnu.org>
  4269 	Make FT_Sfnt_Table_Info return the number of SFNT tables.
  4271 	* src/sfnt/sfdriver.c (sfnt_table_info): Implement it.
  4272 	* include/freetype/tttables.h: Update documentation.
  4273 	* docs/CHANGES: Updated.
  4275 2011-03-07  Bram Tassyns  <bramt@enfocus.be>
  4277 	[cff] Fix Savannah bug #27988.
  4279 	* src/cff/cffobjs.c (remove_style): New function.
  4280 	(cff_face_init): Use it to strip off the style part of the family
  4281 	name.
  4283 2011-03-07  Werner Lemberg  <wl@gnu.org>
  4285 	* docs/CHANGES: Updated.
  4287 2011-03-07  Alexei Podtelezhnikov  <apodtele@gmail.com>
  4289 	Quick fix for Savannah bug #32671.
  4291 	This isn't the optimal solution yet, but it restores the previous
  4292 	rendering quality (more or less).
  4294 	* src/smooth/ftgrays.c (gray_render_conic): Do more splitting.
  4296 2011-03-06  Werner Lemberg  <wl@gnu.org>
  4298 	Fix autohinting fallback.
  4300 	* src/base/ftobjs.c (FT_Load_Glyph): Assure that we only check TTFs,
  4301 	ignoring CFF-based OTFs.
  4303 2011-02-27  Werner Lemberg  <wl@gnu.org>
  4305 	Add AF_CONFIG_OPTION_USE_WARPER to control the autofit warper.
  4307 	* devel/ftoption.h, include/freetype/config/ftoption.h
  4308 	(AF_CONFIG_OPTION_USE_WARPER): New macro.
  4309 	* src/autofit/aftypes.h (AF_USE_WARPER): Remove.
  4311 	* src/autofit/*: s/AF_USE_WARPER/AF_CONFIG_OPTION_USE_WARPER/.
  4313 	* src/autofit/afwarp.c [!AF_CONFIG_OPTION_USE_WARPER]: Replace dummy
  4314 	variable assignment with a typedef.
  4316 2011-02-26  Werner Lemberg  <wl@gnu.org>
  4318 	[autofit] Slight simplifications.
  4320 	* src/autofit/aflatin.c (af_latin_hints_link_segments): Remove
  4321 	test which always returns false.
  4322 	(af_latin_hints_compute_blue_edges): Remove redundant assignment.
  4324 2011-02-24  Werner Lemberg  <wl@gnu.org>
  4326 	* docs/PROBLEMS: Mention rendering differences on different
  4327 	platforms.
  4328 	Suggested and worded by Jason Owen <jason.a.owen@gmail.com>.
  4330 2011-02-24  Werner Lemberg  <wl@gnu.org>
  4332 	[autofit] Comment out unused code.
  4334 	* src/autofit/aflatin.c, src/autofit/aflatin2.c
  4335 	(af_latin_hints_compute_edges): Do it.
  4337 2011-02-24  Werner Lemberg  <wl@gnu.org>
  4339 	* src/autofit/afhints.h (AF_GlyphHints): Remove unused field.
  4341 2011-02-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4343 	[cache] Fix an off-by-one bug in `FTC_Manager_RemoveFaceID'.
  4344 	Found by <ychen1392001@yahoo.com.cn>, see detail in
  4346 	  http://lists.gnu.org/archive/html/freetype/2011-01/msg00023.html
  4348 	* src/cache/ftccache.c (FTC_Cache_RemoveFaceID): Check the node
  4349 	buckets[cache->p + cache->mask] too.
  4351 2011-02-19  Kevin Kofler  <kevin.kofler@chello.at>
  4353 	Fall back to autohinting if a TTF/OTF doesn't contain any bytecode.
  4354 	This is Savannah patch #7471.
  4356 	* src/base/ftobjs.c (FT_Load_Glyph): Implement it.
  4358 2011-02-19  John Tytgat  <John.Tytgat@esko.com>
  4360 	[cff] Fix subset prefix removal.
  4361 	This is Savannah patch #7465.
  4363 	* src/cff/cffobjs.c (remove_subset_prefix): Update length after
  4364 	subset prefix removal.
  4366 2011-02-13  Bradley Grainger  <bgrainger@logos.com>
  4368 	Add inline assembly version of FT_MulFix for MSVC.
  4370 	* include/freetype/config/ftconfig.h: Ported the FT_MulFix_i386
  4371 	function from GNU inline assembly syntax (see #ifdef __GNUC__ block
  4372 	above) to MASM syntax for Microsoft Visual C++.
  4374 2011-02-13  Bradley Grainger  <bgrainger@logos.com>
  4376 	Add project and solution files in Visual Studio 2010 format.
  4378 	* builds/win32/.gitignore: Ignore user-specific cache files.
  4379 	* builds/win32/vc2010/: Add VS2010 project & solution files, created
  4380 	by upgrading builds/win32/vc2008/freetype.vcproj.
  4381 	* objs/.gitignore: Ignore Visual Studio output files.
  4383 2011-02-01  Werner Lemberg  <wl@gnu.org>
  4385 	* src/autofit/afdummy.c: Include `aferrors.h'.
  4386 	Problem reported by Chris Liddell <chris.liddell@artifex.com>.
  4388 2011-02-01  Werner Lemberg  <wl@gnu.org>
  4390 	[cff] Ignore unknown operators in charstrings.
  4391 	Patch suggested by Miles.Lau <sunliang_liu@foxitsoftware.com>.
  4393 	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Emit tracing
  4394 	message for unknown operators and continue instead of exiting with a
  4395 	syntax error.
  4397 2011-02-01  Werner Lemberg  <wl@gnu.org>
  4399 	[truetype] FT_LOAD_PEDANTIC now affects `prep' and `fpgm' also.
  4401 	* src/truetype/ttgload.c (tt_loader_init): Handle
  4402 	`FT_LOAD_PEDANTIC'.
  4403 	* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep,
  4404 	tt_size_init_bytecode, tt_size_ready_bytecode): New argument to
  4405 	handle pedantic mode.
  4406 	* src/truetype/ttobjs.h: Updated.
  4408 2011-01-31  Werner Lemberg  <wl@gnu.org>
  4410 	[truetype] Protect jump instructions against endless loops.
  4412 	* src/truetype/interp.c (DO_JROT, DO_JMPR, DO_JROF): Exit with error
  4413 	if offset is zero.
  4415 2011-01-31  Werner Lemberg  <wl@gnu.org>
  4417 	[truetype] Improve handling of invalid references.
  4419 	* src/truetype/interp.c: Set even more TT_Err_Invalid_Reference
  4420 	error codes only if pedantic hinting is active.  At the same time,
  4421 	try to provide sane values which hopefully allow useful
  4422 	continuation.  Exception to this is CALL and LOOPCALL – due to
  4423 	possible stack corruption it is necessary to bail out.
  4425 2011-01-31  Werner Lemberg  <wl@gnu.org>
  4427 	[truetype] Improve handling of stack underflow.
  4429 	* src/truetype/ttinterp.c (TT_RunIns, Ins_FLIPPT, Ins_DELTAP,
  4430 	Ins_DELTAC): Exit with error only if `pedantic_hinting' is set.
  4431 	Otherwise, try to do something sane.
  4433 2011-01-30  Werner Lemberg  <wl@gnu.org>
  4435 	* src/sfnt/ttmtx.c (tt_face_load_hmtx): Fix tracing message.
  4437 2011-01-30  LIU Sun-Liang  <sunliang_liu@foxitsoftware.com>
  4439 	[truetype]: Fix behaviour of MIAP for invalid arguments.
  4441 	* src/truetype/ttinterp.c (Ins_MIAP): Set reference points even in
  4442 	case of error.
  4444 2011-01-18  Werner Lemberg  <wl@gnu.org>
  4446 	[truetype] Fix handling of MIRP instruction.
  4448 	Thanks to Greg Hitchcock who explained the issue.
  4450 	* src/truetype/ttinterp.c (Ins_MIRP): Replace a `>=' operator with
  4451 	`>' since the description in the specification is incorrect.
  4452 	This fixes, for example, glyph `two' in font `Helvetica Neue LT Com
  4453 	65 medium' at 15ppem.
  4455 2011-01-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4457 	Fix ARM assembly code in include/freetype/config/ftconfig.h.
  4459 	* include/freetype/config/ftconfig.h (FT_MulFix_arm):
  4460 	Copy the maintained code from builds/unix/ftconfig.in.
  4461 	Old GNU binutils could not accept the reduced syntax
  4462 	`orr %0, %2, lsl #16'.  Un-omitted syntax like RVCT,
  4463 	`orr %0, %0, %2, lsl #16' is better.  Reported by
  4464 	Johnson Y. Yan.  The bug report by Qt developers is
  4465 	considered too.
  4467 	http://bugreports.qt.nokia.com/browse/QTBUG-6521
  4469 2011-01-15  Werner Lemberg  <wl@gnu.org>
  4471 	[raster] Make bbox handling the same as with Microsoft's rasterizer.
  4473 	Right before B/W rasterizing, the bbox gets simply rounded to
  4474 	integers.  This fixes, for example, glyph `three' in font `Helvetica
  4475 	Neue LT Com 65 Medium' at 11ppem.
  4477 	Thanks to Greg Hitchcock who explained this behaviour.
  4479 	* src/raster/ftrend1.c (ft_raster1_render): Implement it.
  4481 2011-01-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4483 	Copy -mcpu=* & -march=* options from CFLAGS to LDFLAGS.
  4485 	* builds/unix/configure.raw: Consider recent gcc-standard
  4486 	flags to specify architecture in CFLAGS & LDFLAGS
  4487 	harmonization.  Requested by Savannah bug #32114, to
  4488 	support multilib feature of BuildRoot SDK correctly.
  4490 2011-01-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4492 	Fix off-by-one bug in CFLAGS & LDFLAGS harmonizer.
  4494 	* builds/unix/configure.raw: Some important options that
  4495 	included in CFLAGS but not in LDFLAGS are copied to
  4496 	LDFLAGS, but the last option in CFLAGS was not checked.
  4498 2011-01-13  Werner Lemberg  <wl@gnu.org>
  4500 	[raster] Add undocumented drop-out rule to the other bbox side also.
  4502 	* src/raster/ftraster.c (Vertical_Sweep_Drop,
  4503 	Horizontal_Sweep_Drop): Implement it.
  4505 2011-01-13  Werner Lemberg  <wl@gnu.org>
  4507 	[raster] Reduce jitter value.
  4509 	This catches a rendering problem with glyph `x' from Tahoma at
  4510 	10ppem.  It seems that the increase of the precision in the change
  4511 	from 2009-06-11 makes a larger jitter value unnecessary.
  4513 	* src/raster/ftraster.c (Set_High_Precision): Implement it.
  4515 2011-01-13  Werner Lemberg  <wl@gnu.org>
  4517 	[raster] Handle drop-outs at glyph borders according to Microsoft.
  4519 	If a drop-out rule would switch on a pixel outside of the glyph's
  4520 	bounding box, use the right (or top) pixel instead.  This is an
  4521 	undocumented feature, but some fonts like `Helvetica Neue LT Com 65
  4522 	Medium' heavily rely on it.
  4524 	Thanks to Greg Hitchcock who explained this behaviour.
  4526 	* src/raster/ftraster.c (Vertical_Sweep_Drop,
  4527 	Horizontal_Sweep_Drop): Implement it.
  4529 2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4531 	[cache] Fix Savannah bug #31923, patch drafted by Harsha.
  4533 	When a node comparator changes the cached nodes during the
  4534 	search of a node matching with queried properties, the
  4535 	pointers obtained before the function should be updated to
  4536 	prevent the dereference to freed or reallocated nodes.
  4537 	To minimize the rescan of the linked list, the update is
  4538 	executed when the comparator notifies the change of cached
  4539 	nodes. This change depends previous change:
  4540 	38b272ffbbdaae276d636aec4ef84af407d16181
  4542 	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Rescan the
  4543 	top node if the cached nodes are changed.
  4544 	* src/cache/ftccache.c (FTC_Cache_Lookup): Ditto.
  4546 2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4548 	[cache] Notice if a cache query induced the node list change.
  4550 	Some node comparators (comparing the cache node contents and the
  4551 	properties specified by the query) can flush the cache node to
  4552 	prevent the cache inflation.  The change may invalidate the pointers
  4553 	to the node obtained before the node comparison, so it should be
  4554 	noticed to the caller.  The problem caused by the cache node
  4555 	changing is reported by Harsha, see Savannah bug #31923.
  4557 	* src/cache/ftccache.h (FTC_Node_CompareFunc): Add new argument
  4558 	`FT_Bool* list_changed' to indicate the change of the cached nodes
  4559 	to the caller.
  4560 	(FTC_CACHE_LOOKUP_CMP): Watch the change of the cached nodes by
  4561 	`_list_changed'.
  4562 	(FTC_CACHE_TRYLOOP_END): Take new macro argument `_list_changed'
  4563 	and update it when `FTC_Manager_FlushN' flushes any nodes.
  4565 	* src/cache/ftccback.h (ftc_snode_compare): Updated to fit with new
  4566 	FTC_Node_CompareFunc type.
  4567 	(ftc_gnode_compare): Ditto.
  4569 	* src/cache/ftcbasic.c: Include FT_INTERNAL_OBJECTS_H to use
  4570 	TRUE/FALSE macros.
  4571 	(ftc_basic_gnode_compare_faceid): New argument `FT_Bool*
  4572 	list_changed' to indicate the change of the cache nodes (anyway, it
  4573 	is always FALSE).
  4575 	* src/cache/ftccmap.c: Include FT_INTERNAL_OBJECTS_H to use
  4576 	TRUE/FALSE macros.
  4577 	(ftc_cmap_node_compare): New argument `FT_Bool* list_changed' to
  4578 	indicate the change of the cache nodes (anyway, it is always FALSE).
  4579 	(ftc_cmap_node_remove_faceid): Ditto.
  4581 	* src/cache/ftccache.c (FTC_Cache_NewNode): Pass a NULL pointer to
  4582 	`FTC_CACHE_TRYLOOP_END', because the result is not needed.
  4583 	(FTC_Cache_Lookup): Watch the change of the cache nodes by
  4584 	`list_changed'.
  4585 	(FTC_Cache_RemoveFaceID): Ditto.
  4587 	* src/cache/ftcglyph.c: Include FT_INTERNAL_OBJECTS_H to use
  4588 	TRUE/FALSE macros.
  4589 	(ftc_gnode_compare): New argument `FT_Bool* list_changed' to
  4590 	indicate the change of the cache nodes (anyway, it is always FALSE).
  4591 	(FTC_GNode_Compare): New argument `FT_Bool* list_changed' to be
  4592 	passed to `ftc_gnode_compare'.
  4593 	* src/cache/ftcglyph.h (FTC_GNode_Compare): Ditto.
  4595 	* src/cache/ftcsbits.c (ftc_snode_compare): New argument `FT_Bool*
  4596 	list_changed' to indicate the change of the cache nodes, anyway.  It
  4597 	is updated by `FTC_CACHE_TRYLOOP'.
  4598 	(FTC_SNode_Compare): New argument `FT_Bool* list_changed' to be
  4599 	passed to `ftc_snode_compare'.
  4600 	* src/cache/ftcsbits.h (FTC_SNode_Compare): Ditto.
  4602 2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4604 	[cache] Fit `FTC_GNode_Compare' to `FTC_Node_CompareFunc'.
  4606 	* src/cache/ftcglyph.h (FTC_GNode_Compare): Add the 3rd
  4607 	argument `FTC_Cache  cache' to fit FTC_Node_CompareFunc
  4608 	prototype.
  4609 	* src/cache/ftcglyph.c (FTC_GNode_Compare): Ditto. Anyway,
  4610 	`cache' is not used by its child `ftc_gnode_compare'.
  4612 2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4614 	[cache] Deduplicate the code to get the top node by a hash.
  4616 	There are several duplicated code fragments getting the top node
  4617 	from a cache by a given hash, like:
  4619 	    idx = hash & cache->mask;
  4620 	    if ( idx < cache->p )
  4621 	      idx = hash & ( cache->mask * 2 + 1 );
  4622 	    pnode = cache->buckets + idx;
  4624 	To remove duplication, a cpp-macro to do same work
  4625 	`FTC_NODE__TOP_FOR_HASH' is introduced.  For non-inlined
  4626 	configuration, non-`ftc_get_top_node_for_hash' is also introduced.
  4628 	* src/cache/ftccache.h (FTC_NODE__TOP_FOR_HASH): Declare
  4629 	and implement inlined version.
  4630 	(FTC_CACHE_LOOKUP_CMP): Use `FTC_NODE__TOP_FOR_HASH'.
  4631 	* src/cache/ftccache.c (ftc_get_top_node_for_hash): Non-inlined
  4632 	version.
  4633 	(ftc_node_hash_unlink): Use `FTC_NODE__TOP_FOR_HASH'.
  4634 	(ftc_node_hash_link): Ditto.
  4635 	(FTC_Cache_Lookup): Ditto.
  4637 2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4639 	[cache] inline-specific functions are conditionalized.
  4641 	* src/cache/ftcglyph.c (FTC_GNode_Compare): Conditionalized for
  4642 	inlined configuration.  This function is a thin wrapper of
  4643 	`ftc_gnode_compare' for inlined `FTC_CACHE_LOOKUP_CMP' (see
  4644 	`nodecmp' argument).  Under non-inlined configuration,
  4645 	`ftc_gnode_compare' is invoked by `FTC_Cache_Lookup', via
  4646 	`FTC_Cache->clazz.node_compare'.
  4648 	* src/cache/ftcglyph.h (FTC_GNode_Compare): Ditto.
  4649 	* src/cache/ftcsbits.c (FTC_SNode_Compare): Ditto, for
  4650 	`ftc_snode_compare'.
  4651 	* src/cache/ftcsbits.h (FTC_SNode_Compare): Ditto.
  4653 2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4655 	[cache] Correct a type mismatch under non-inlined config.
  4657 	* src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): `FTC_GCache_Lookup'
  4658 	takes the node via a pointer `FTC_Node*', differently from cpp-macro
  4659 	`FTC_CACHE_LOOKUP_CMP'.
  4661 2011-01-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4663 	Update Jamfile to include Bzip2 support.
  4665 	* Jamfile: Include src/bzip2 to project.
  4666 	Comments for lzw, gzip, bzip2 are changed to clarify that
  4667 	they are for compressed PCF fonts, not others.
  4668 	(e.g. compressed BDF fonts are not supported yet)
  4670 2011-01-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4672 	Update Symbian project files to include Bzip2 support.
  4674 	Currently, it provides `FT_Stream_OpenBzip2' that returns
  4675 	unimplemented error always, to prevent unresolved symbol
  4676 	error for the applications designed for Unix systems.
  4678 	* builds/symbian/bld.inf: Include ftbzip2.h.
  4679 	* builds/symbian/freetype.mmp: Include ftbzip2.c.
  4681 2011-01-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4683 	Update classic MacOS makefiles to include Bzip2 support.
  4685 	Currently, it provides `FT_Stream_OpenBzip2' that returns
  4686 	unimplemented error always, to prevent unresolved symbol
  4687 	error for the applications designed for Unix systems.
  4689 	* builds/mac/FreeType.m68k_cfm.make.txt: Include ftbzip2.c.o.
  4690 	* builds/mac/FreeType.m68k_far.make.txt: Ditto.
  4691 	* builds/mac/FreeType.ppc_carbon.make.txt: Include ftbzip2.c.x.
  4692 	* builds/mac/FreeType.ppc_classic.make.txt: Ditto.
  4694 2011-01-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4696 	Update Amiga makefiles to include Bzip2 support.
  4698 	Currently, it provides `FT_Stream_OpenBzip2' that returns
  4699 	unimplemented error always, to prevent unresolved symbol
  4700 	error for the applications designed for Unix systems.
  4702 	* builds/amiga/makefile: Include bzip2.ppc.o built from ftbzip2.c.
  4703 	* builds/amiga/makefile.os4: Include bzip2.o built from ftbzip2.c.
  4704 	* builds/amiga/smakefile: Ditto.
  4706 2011-01-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4708 	Update pkg-config tools to reflect Bzip2 support.
  4710 	* builds/unix/freetype-config.in: Include `-lbz2' to
  4711 	--libs output, if built with Bzip2 support.
  4712 	* builds/unix/freetype2.in: Ditto.
  4714 2011-01-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4716 	* builds/unix/configure.raw: Remove `SYSTEM_BZ2LIB' macro.
  4718 	SYSTEM_ZLIB is used to switch the builtin zlib source
  4719 	or system zlib source out of FreeType2.  But ftbzip2
  4720 	module has no builtin bzip2 library and always requires
  4721 	system bzip2 library.  Thus SYSTEM_BZ2LIB is always yes,
  4722 	it is not used.
  4724 2011-01-03  Werner Lemberg  <wl@gnu.org>
  4726 	*/rules.mk: Handle `*pic.c' files.
  4728 2010-12-31  Werner Lemberg  <wl@gnu.org>
  4730 	* src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 64.
  4731 	Problem reported by Tom Bishop <wenlin@wenlin.com>.
  4733 2010-12-31  Werner Lemberg  <wl@gnu.org>
  4735 	Improve bzip2 support.
  4737 	* include/freetype/ftmoderr.h: Add bzip2.
  4739 	* docs/INSTALL.ANY, docs/CHANGES: Updated.
  4741 	* src/pcf/README: Updated.
  4742 	* include/freetype/internal/pcftypes.h: Obsolete, removed.
  4744 2010-12-31  Joel Klinghed  <the_jk@yahoo.com>
  4746 	Add bzip2 compression support to handle *.pcf.bz2 files.
  4748 	* builds/unix/configure.raw: Test for libbz2 library.
  4750 	* devel/ftoption.h, include/freetype/config/ftoption.h
  4751 	(FT_CONFIG_OPTION_USE_BZIP2): Define.
  4752 	* include/freetype/config/ftheader.h (FT_BZIP2_H): Define.
  4754 	* include/freetype/ftbzip2.h: New file.
  4756 	* src/bzip2/*: New files.
  4758 	* src/pcf/pcf.h: s/gzip_/comp_/.
  4759 	* src/pcf/pcfdrvr.c: Include FT_BZIP2_H.
  4760 	s/gzip_/comp_/.
  4761 	(PCF_Face_Init): Handle bzip2 compressed files.
  4763 	* docs/formats.txt, modules.cfg: Updated.
  4765 2010-12-25  Harsha  <mm.harsha@gmail.com>
  4767 	Apply Savannah patch #7422.
  4769 	If we encounter a space in a string then the sbit buffer is NULL,
  4770 	height and width are 0s.  So the check in ftc_snode_compare will
  4771 	always pass for spaces (comparision with 255).  Here the comments
  4772 	above the condition are proper but the implementation is not.  When
  4773 	we create an snode I think it is the proper way to initialize the
  4774 	width to 255 and then put a check for being equal to 255 in snode
  4775 	compare function.
  4777 	* src/cache/ftcsbits.c (FTC_SNode_New): Initialize sbit widths with
  4778 	value 255.
  4779 	(ftc_snode_compare): Fix condition.
  4781 2010-12-13  Werner Lemberg  <wl@gnu.org>
  4783 	Fix parameter handling of `FT_Set_Renderer'.
  4784 	Reported by Kirill Tishin <siege@bk.ru>.
  4786 	* src/base/ftobjs.c (FT_Set_Renderer): Increment `parameters'.
  4788 2010-12-09  Werner Lemberg  <wl@gnu.org>
  4790 	[cff] Allow `hlineto' and `vlineto' without arguments.
  4792 	We simply ignore such instructions.  This is invalid, but it doesn't
  4793 	harm; and indeed, there exist such subsetted fonts in PDFs.
  4795 	Reported by Albert Astals Cid <aacid@kde.org>.
  4797 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
  4798 	[cff_op_hlineto]: Ignore instruction if there aren't any arguments
  4799 	on the stack.
  4801 2010-11-28  Werner Lemberg  <wl@gnu.org>
  4803 	* Version 2.4.4 released.
  4804 	=========================
  4807 	Tag sources with `VER-2-4-4'.
  4809 	* docs/CHANGES: Updated.
  4811 	* docs/VERSION.DLL: Update documentation and bump version number to
  4812 	2.4.4
  4814 	* README, Jamfile (RefDoc),
  4815 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
  4816 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
  4817 	builds/win32/visualc/freetype.dsp,
  4818 	builds/win32/visualc/freetype.vcproj,
  4819 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
  4820 	builds/win32/visualce/freetype.vcproj,
  4821 	builds/win32/visualce/index.html,
  4822 	builds/wince/vc2005-ce/freetype.vcproj,
  4823 	builds/wince/vc2005-ce/index.html,
  4824 	builds/wince/vc2008-ce/freetype.vcproj,
  4825 	builds/wince/vc2008-ce/index.html: s/2.4.3/2.4.4/, s/243/244/.
  4827 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
  4829 	* builds/unix/configure.raw (version_info): Set to 12:2:6.
  4831 2010-11-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
  4833 	[ftsmooth]: Minor code simplification.
  4835 	* src/smooth/ftgrays (gray_render_cubic): Do only one comparison
  4836 	instead of two.
  4838 2010-11-26  Johnson Y. Yan  <yinsen_yan@foxitsoftware.com>
  4840 	[truetype] Better multi-threading support.
  4842 	* src/truetype/ttinterp.c (TT_Load_Context): Reset glyph zone
  4843 	references.
  4845 2010-11-23  John Tytgat  <John.Tytgat@esko.com>
  4847 	* src/psaux/t1decode.c (t1_decoder_parse_charstring): Expand
  4848 	start_point, check_points, add_point, add_point1, close_contour
  4849 	macros.
  4850 	Remove add_contour macro.
  4851 	Return error code from t1_builder_start_point and
  4852 	t1_builder_check_points when there was one (instead of returning 0).
  4854 2010-11-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4856 	[truetype] Identify the tricky fonts by cvt/fpgm/prep checksums.
  4857 	Some Latin TrueType fonts are still expected to be unhinted.
  4858 	Fix Savannah bug #31645.
  4860 	* src/truetype/ttobjs.c (tt_check_trickyness): Divided to...
  4861 	(tt_check_trickyness_family): this checking family name, and
  4862 	(tt_check_trickyness_sfnt_ids): this checking cvt/fpgm/prep.
  4863 	(tt_get_sfnt_checksum): Function to retrieve the sfnt checksum
  4864 	for specified subtable even if cleared by lazy PDF generators.
  4865 	(tt_synth_sfnt_checksum): Function to calculate the checksum.
  4867 2010-11-18  Werner Lemberg  <wl@gnu.org>
  4869 	[truetype] Fix `loca' handling for inconsistent number of glyphs.
  4870 	Reported by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>.
  4872 	* src/truetype/ttpload.c (tt_face_load_loca): While sanitizing,
  4873 	handle case where `loca' is the last table in the font.
  4875 2010-11-18  Werner Lemberg  <wl@gnu.org>
  4877 	[sfnt] Ignore all errors while loading `OS/2' table.
  4878 	Suggested by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>.
  4880 	* src/sfnt/sfobjs.c (sfnt_load_face): Do it.
  4882 2010-11-18  Johnson Y. Yan  <yinsen_yan@foxitsoftware.com>
  4884 	[type1] Fix matrix normalization.
  4886 	* src/type1/t1load.c (parse_font_matrix): Handle sign of scaling
  4887 	factor.
  4889 2010-11-18  Werner Lemberg  <wl@gnu.org>
  4891 	[type1] Improve guard against malformed data.
  4892 	Based on a patch submitted by Johnson Y. Yan
  4893 	<yinsen_yan@foxitsoftware.com>
  4895 	* src/type1/t1load.c (read_binary_data): Check `size'.
  4897 2010-11-17  Werner Lemberg  <wl@gnu.org>
  4899 	[sfnt] While tracing, output table checksums also.
  4901 	* src/sfnt/ttload.c (tt_face_load_font_dir): Do it.
  4903 2010-11-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4905 	[UVS] Fix `find_variant_selector_charmap', Savannah bug #31545.
  4907 	Since 2010-07-04, `find_variant_selector_charmap' returns
  4908 	the first cmap subtable always under rogue-compatible
  4909 	configuration, it causes NULL pointer dereference and
  4910 	make UVS-related functions crashed.
  4912 	* src/base/ftobjs.c (Fix find_variant_selector_charmap):
  4913 	Returns UVS cmap correctly.
  4915 2010-11-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
  4917 	[ftsmooth] Improve rendering.
  4919 	* src/smooth/ftsmooth.c (gray_render_conic): Since version 2.4.3,
  4920 	cubic deviations have been estimated _after_ UPSCALE, whereas
  4921 	conic ones have been evaluated _before_ UPSCALE, which produces
  4922 	inferior rendering results.  Fix this.
  4923 	Partially undo change from 2010-10-15 by using ONE_PIXEL/4; this has
  4924 	been tested with demo images sent to the mailing list.  See
  4926 	  http://lists.gnu.org/archive/html/freetype-devel/2010-10/msg00055.html
  4928 	and later mails in this thread.
  4930 2010-10-28  Werner Lemberg  <wl@gnu.org>
  4932 	[ftraster] Minor fixes.
  4934 	Reported by Tom Bishop <wenlin@wenlin.com>.
  4936 	* src/raster/ftraster.c (ULong): Remove unused typedef.
  4937 	(TWorker): Remove unused variable `precision_mask'.
  4939 2010-10-28  Werner Lemberg  <wl@gnu.org>
  4941 	[ftraster] Fix rendering.
  4943 	Problem reported by Tom Bishop <wenlin@wenlin.com>; see
  4944 	thread starting with
  4946 	  http://lists.gnu.org/archive/html/freetype/2010-10/msg00049.html
  4948 	* src/raster/ftraster.c (Line_Up): Replace FMulDiv with SMulDiv
  4949 	since the involved multiplication exceeds 32 bits.
  4951 2010-10-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4953 	Revert a change of `_idx' type in `FTC_CACHE_LOOKUP_CMP'.
  4955 	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Revert
  4956 	the type of `_idx' from FT_PtrDist (by previous change)
  4957 	to original FT_UFast, to match with FT_CacheRec.
  4959 2010-10-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4961 	[cache] Change the hash types to FT_PtrDist.
  4963 	On LLP64 platforms (e.g. Win64), FT_ULong (32-bit)
  4964 	variables are inappropriate to calculate hash values
  4965 	from the memory address (64-bit).  The hash variables
  4966 	are extended from FT_ULong to FT_PtrDist and new
  4967 	hashing macro functions are introduced.  The hash
  4968 	values on 16-bit memory platforms are changed, but
  4969 	ILP32 and LP64 are not changed.  The hash value in
  4970 	the cache subsystem is not reverted to the memory
  4971 	address, so using signed type FT_PtrDist is safe.
  4973 	* src/cache/ftccache.h (_FTC_FACE_ID_HASH): New hash
  4974 	function to replace `FTC_FACE_ID_HASH' for portability.
  4975 	* src/cache/ftcmanag.h (FTC_SCALER_HASH): Replace
  4976 	`FTC_FACE_ID_HASH' by `_FTC_FACE_ID_HASH'.
  4977 	* src/cache/ftccmap.c (FTC_CMAP_HASH): Ditto.
  4979 	* src/cache/ftccache.h (FTC_NodeRec): The type of the
  4980 	member `hash' is changed from FT_UInt32 to FT_PtrDist.
  4982 	* src/cache/ftccache.h (FTC_Cache_Lookup): The type of the
  4983 	argument `hash' is changed from FT_UInt32 to FT_PtrDist.
  4984 	(FTC_Cache_NewNode): Ditto.
  4985 	* src/cache/ftccache.c (ftc_cache_add): Ditto.
  4986 	(FTC_Cache_Lookup): Ditto.  (FTC_Cache_NewNode): Ditto.
  4987 	* src/cache/ftcglyph.h (FTC_GCache_Lookup): Ditto.
  4988 	* src/cache/ftcglyph.c (FTC_GCache_Lookup): Ditto.
  4990 	* src/cache/ftcbasic.c (FTC_ImageCache_Lookup): The type
  4991 	of the internal variable `hash' is changed to FT_PtrDist
  4992 	from FT_UInt32.  (FTC_ImageCache_LookupScaler): Ditto.
  4993 	(FTC_SBitCache_Lookup): Ditto.
  4994 	(FTC_SBitCache_LookupScaler): Ditto.
  4995 	* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Ditto.
  4996 	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Ditto.
  4997 	Also the type of the internal variable `_idx' is changed to
  4998 	FT_PtrDist from FT_UFast for better pointer calculation.
  5000 2010-10-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5002 	[cache] Hide internal macros incompatible with LLP64.
  5004 	`FT_POINTER_TO_ULONG', `FTC_FACE_ID_HASH', and
  5005 	`FTC_IMAGE_TYPE_HASH' are enclosed by
  5006 	FT_CONFIG_OPTION_OLD_INTERNALS and hidden from
  5007 	normal clients.
  5009 	For the history of these macros, see the investigation:
  5010 	http://lists.gnu.org/archive/html/freetype/2010-10/msg00022.html
  5012 2010-10-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5014 	Change the type of `FT_MEM_VAL' from FT_ULong to FT_PtrDist.
  5016 	On LLP64 platforms (e.g. Win64), unsigned long (32-bit)
  5017 	cannot cover the memory address (64-bit).  `FT_MEM_VAL' is
  5018 	used for hashing only and not dereferred, so using signed
  5019 	type FT_PtrDist is safe.
  5021 	* src/base/ftdbgmem.c (FT_MEM_VAL): Change the type of the
  5022 	return value from FT_ULong to FT_PtrDist.
  5023 	(ft_mem_table_resize): The type of hash is changed to
  5024 	FT_PtrDist.  (ft_mem_table_get_nodep): Ditto.
  5026 2010-10-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5028 	Replace "%lx" for memory address by "%p", LLP64 platforms.
  5030 	On LLP64 platforms (e.g. Win64), long (32-bit) cannot cover
  5031 	the memory address (64-bit).  Also the casts from the pointer
  5032 	type to long int should be removed to preserve the address
  5033 	correctly.
  5035 	* src/raster/ftraster.c (New_Profile): Replace "%lx" by "%p".
  5036 	(End_Profile) Ditto.
  5037 	* src/truetype/ttinterp.c (Init_Context): Ditto.
  5039 2010-10-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
  5041 	Fix thinko in spline flattening.
  5043 	FT_MAX_CURVE_DEVIATION is dependent on the value of ONE_PIXEL.
  5045 	* src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): Remove it and
  5046 	replace it everywhere with ONE_PIXEL/8.
  5048 2010-10-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5050 	[raccess] Skip unrequired resource access rules by Darwin VFS.
  5052 	When a resource fork access rule by Darwin VFS could open the
  5053 	resource fork but no font is found in it, the rest of rules
  5054 	by Darwin VFS are skipped.  It reduces the warnings of the
  5055 	deprecated resource fork access method by recent Darwin kernel.
  5056 	Fix MacPorts ticket #18859:
  5057 		http://trac.macports.org/ticket/18859
  5059 	* src/base/ftobjs.c (load_face_in_embedded_rfork):
  5060 	When `FT_Stream_New' returns FT_Err_Cannot_Open_Stream, it
  5061 	means that the file is possible to be `fopen'-ed but zero-sized.
  5062 	Also there is a case that the resource fork is not zero-sized,
  5063 	but no supported font exists in it.  If a rule by Darwin VFS
  5064 	falls into such cases, there is no need to try other Darwin VFS
  5065 	rules anymore.  Such cases are marked by vfs_rfork_has_no_font.
  5066 	If it is TRUE, the Darwin VFS rules are skipped.
  5068 2010-10-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5070 	[raccess] Grouping resource access rules based on Darwin VFS.
  5072 	MacOS X/Darwin kernel supports a few tricky methods to access
  5073 	a resource fork via ANSI C or POSIX interface.  Current resource
  5074 	fork accessor tries all possible methods to support all kernels.
  5075 	But if a method could open a resource fork but no font is found,
  5076 	there is no need to try other methods older than tested method.
  5077 	To determine whether the rule index is for Darwin VFS, a local
  5078 	function `ftrfork.c::raccess_rule_by_darwin_vfs' is introduced.
  5079 	To use this function in ftobjs.c etc but it should be inlined,
  5080 	it is exposed by ftbase.h.
  5082 	* src/base/ftrfork.c (FT_RFork_Rule): New enum type to identify
  5083 	the rules to access the resource fork.
  5084 	(raccess_guess_rec): New structure to bind the rule function and
  5085 	rule enum type.
  5086 	(FT_Raccess_Guess): The list of the rule functions is replaced by
  5087 	(raccess_guess_table): This.  This is exposed to be used by other
  5088 	intra module functions.
  5089 	(raccess_rule_by_darwin_vfs): A function to return a boolean
  5090 	if the rule specified by the rule index is based on Darwin VFS.
  5092 2010-10-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5094 	Prevent to open a FT_Stream for zero-sized file on non-Unix.
  5096 	builds/unix/ftsystem.c prevents to open an useless stream from
  5097 	zero-sized file and returns FT_Err_Cannot_Open_Stream, but the
  5098 	stream drivers for ANSI C, Amiga and VMS return useless streams.
  5099 	For cross-platform consistency, all stream drivers should act
  5100 	same.
  5102 	* src/base/ftsystem.c (FT_Stream_Open): If the size of the opened
  5103 	file is zero, FT_Err_Cannot_Open_Stream is returned.
  5104 	* builds/amiga/src/base/ftsystem.c (FT_Stream_Open): Ditto.
  5105 	* src/vms/ftsystem.c (FT_Stream_Open): Ditto.
  5107 2010-10-12  Werner Lemberg  <wl@gnu.org>
  5109 	[truetype] Fix Savannah bug #31310.
  5111 	* src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against
  5112 	invalid `runcnt' values.
  5114 2010-10-08  Chris Liddell  <chris.liddell@artifex.com>
  5116 	[sfnt] Fix Savannah bug #31275.
  5118 	* src/sfnt/ttpost.c: Include FT_INTERNAL_DEBUG_H.
  5120 2010-10-06  Werner Lemberg  <wl@gnu.org>
  5122 	[truetype] Improve error handling of `SHZ' bytecode instruction.
  5123 	Problem reported by Chris Evans <scarybeasts@gmail.com>.
  5125 	* src/truetype/ttinterp.c (Ins_SHZ): Check `last_point'.
  5127 2010-10-05  Werner Lemberg  <wl@gnu.org>
  5129 	Fix Savannah bug #31253.
  5130 	Patch submitted by an anonymous reporter.
  5132 	* configure: Use `awk' instead of `sed' to manipulate output of `ls
  5133 	-id'.
  5135 2010-10-03  Werner Lemberg  <wl@gnu.org>
  5137 	* Version 2.4.3 released.
  5138 	=========================
  5141 	Tag sources with `VER-2-4-3'.
  5143 	* docs/CHANGES: Updated.
  5145 	* docs/VERSION.DLL: Update documentation and bump version number to
  5146 	2.4.3
  5148 	* README, Jamfile (RefDoc),
  5149 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
  5150 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
  5151 	builds/win32/visualc/freetype.dsp,
  5152 	builds/win32/visualc/freetype.vcproj,
  5153 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
  5154 	builds/win32/visualce/freetype.vcproj,
  5155 	builds/win32/visualce/index.html,
  5156 	builds/wince/vc2005-ce/freetype.vcproj,
  5157 	builds/wince/vc2005-ce/index.html,
  5158 	builds/wince/vc2008-ce/freetype.vcproj,
  5159 	builds/wince/vc2008-ce/index.html: s/2.4.2/2.4.3/, s/242/243/.
  5161 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
  5163 	* builds/unix/configure.raw (version_info): Set to 12:1:6.
  5165 2010-10-03  Werner Lemberg  <wl@gnu.org>
  5167 	Avoid `configure' issues with symbolic links.
  5168 	Based on a patch from Alexander Stohr <Alexander.Stohr@gmx.de>.
  5170 	* configure: Compare directories using `ls -id'.
  5171 	Check existence of `reference' subdirectory before creating it.
  5173 2010-10-02  Werner Lemberg  <wl@gnu.org>
  5175 	[sfnt] Fix Savannah bug #31088 (sort of).
  5177 	* src/sfnt/ttload.c (tt_face_load_maxp): Always allocate at least 64
  5178 	function entries.
  5180 2010-10-02  Werner Lemberg  <wl@gnu.org>
  5182 	[smooth] Fix splitting of cubics for negative values.
  5184 	Reported by Róbert Márki <gsmiko@gmail.com>; see
  5185 	http://lists.gnu.org/archive/html/freetype/2010-09/msg00019.html.
  5187 	* src/smooth/ftgrays.c (gray_render_cubic): Fix thinko.
  5189 2010-10-01  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5191 	[truetype] Fix Savannah bug #31040.
  5193 	* src/truetype/ttinterp.c (free_buffer_in_size): Remove.
  5194 	(TT_RunIns): Updated.
  5196 2010-09-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5198 	[sfnt] Make error message filling NULL names less verbose.
  5200 	* src/sfnt/ttpost.c (load_format_20): Showing 1 summary message
  5201 	when we fill `post' names by NULL, instead of per-entry message.
  5203 2010-09-20  Graham Asher  <graham.asher@btinternet.com>
  5204 	    David Bevan  <david.bevan@pb.com>
  5206 	[smooth] Fix and improve spline flattening.
  5208 	This fixes the flattening of cubic, S-shaped curves and speeds up
  5209 	the handling of both the conic and cubic arcs.
  5211 	See the discussions on the freetype-devel mailing list in late
  5212 	August and September 2010 for details.
  5214 	* src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): New macro.
  5215 	(TWorker): Remove `conic_level' and `cubic_level' elements.
  5216 	(gray_render_conic): Simplify algorithm.
  5217 	(gray_render_cubic): New algorithm; details are given in the code
  5218 	comments.
  5219 	(gray_convert_glyph): Remove heuristics.
  5221 2010-09-19  Werner Lemberg  <wl@gnu.org>
  5223 	Minor fixes.
  5225 	* src/cff/cffload.c (cff_charset_compute_cids): `charset->sids[i]'
  5226 	is `FT_UShort'.
  5227 	(cff_index_access_element): Don't use additions in comparison.
  5228 	* src/sfnt/ttpost.c (load_format_20): Make `post_limit' of type
  5229 	`FT_Long'.
  5230 	Don't use additions in comparison.
  5231 	Improve tracing messages.
  5232 	(load_format_25, load_post_names): Make `post_limit' of type
  5233 	`FT_Long'.
  5235 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5237 	[cff] Truncate the element length at the end of the stream.
  5238 	See Savannah bug #30975.
  5240 	* src/cff/cffload.c (cff_index_access_element): `off2', the offset
  5241 	to the next element is truncated at the end of the stream to prevent
  5242 	invalid I/O.  As `off1', the offset to the requested element has
  5243 	been checked by `FT_STREAM_SEEK', `off2' should be checked
  5244 	similarly.
  5246 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5248 	[cff] Ignore CID > 0xFFFFU.
  5249 	See Savannah bug #30975.
  5251 	* src/cff/cffload.c (cff_charset_compute_cids): Ignore CID if
  5252 	greater than 0xFFFFU.  CFF font spec does not mention maximum CID in
  5253 	the font, but PostScript and PDF spec define that maximum CID is
  5254 	0xFFFFU.
  5256 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5258 	[cff] Make trace message in` cff_charset_load' verbose.
  5259 	See Savannah bug #30975.
  5261 	* src/cff/cffload.c (cff_charset_load): Report the original `nleft'
  5262 	and truncated `nleft'.
  5264 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5266 	[cff] Correct `max_cid' from CID array length to max CID.
  5267 	See Savannah bug #30975.
  5269 	* src/cff/cffload.c (cff_charset_compute_cids): Don't increment
  5270 	max_cid after detecting max CID.  The array CFF_Charset->cids is
  5271 	allocated by max_cid + 1.
  5272 	(cff_charset_cid_to_gindex): Permit CID is less than or equal to
  5273 	CFF_Charset->max_cid.
  5274 	* src/cff/cffobjs.c (cff_face_init): FT_Face->num_glyphs is
  5275 	calculated as CFF_Charset->max_cid + 1.
  5277 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5279 	[truetype] Sanitize the broken offsets in `loca'.
  5280 	See Savannah bug #31040.
  5282 	* src/truetype/ttpload.c (tt_face_get_location): If `pos1', the
  5283 	offset to the requested entry in `glyf' exceeds the end of the
  5284 	table, return offset=0, length=0.  If `pos2', the offset to the next
  5285 	entry in `glyf' exceeds the end of the table, truncate the entry
  5286 	length at the end of `glyf' table.
  5288 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5290 	[sfnt] Prevent overrunning in `post' table parser.
  5291 	See Savannah bug #31040.
  5293 	* src/sfnt/ttpost.c (load_post_names): Get the length of `post'
  5294 	table and pass the limit of `post' table to `load_format_20' and
  5295 	`load_format_25'.
  5296 	(load_format_20): Stop the parsing when we reached at the limit of
  5297 	`post' table.  If more glyph names are required, they are filled by
  5298 	NULL names.
  5300 2010-09-17  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5302 	[truetype] Don't duplicate size->twilight structure to be freed.
  5303 	See Savannah bug #31040 for detail.
  5305 	* src/truetype/ttinterp.c (free_buffer_in_size): Don't duplicate
  5306 	FT_GlyphZoneRec size->twilight to be freed.  If duplicated,
  5307 	`FT_FREE' erases the duplicated pointers only and leave original
  5308 	pointers.  They can cause the double-free crash when the burst
  5309 	errors occur in TrueType interpreter and `free_buffer_in_size' is
  5310 	invoked repeatedly.
  5312 2010-09-15  Werner Lemberg  <wl@gnu.org>
  5314 	Make bytecode debugging with FontForge work again.
  5316 	* src/truetype/ttinterp.c (TT_RunIns): Don't call
  5317 	`free_buffer_in_size' in case of error if a debugger is active.
  5319 2010-09-14  Werner Lemberg  <wl@gnu.org>
  5321 	Improve tracing messages.
  5323 	* src/truetype/ttinterp.c (TT_RunIns): Improve wording of tracing
  5324 	message.
  5325 	* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Add
  5326 	tracing message.
  5327 	* src/truetype/ttgload.c (tt_loader_init): Add tracing message.
  5328 	* src/cache/ftcsbits.c (ftc_snode_load): Emit tracing message if
  5329 	glyph doesn't fit into a small bitmap container.
  5331 2010-09-13  Werner Lemberg  <wl@gnu.org>
  5333 	Fix minor issues reported by <muktha.narayan@wipro.com>.
  5335 	* src/autofit/aflatin.c (af_latin_compute_stem_width): Remove
  5336 	redundant conditional check.
  5337 	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Ditto.
  5338 	* src/cff/cffload.c (cff_encoding_load): Remove conditional check
  5339 	which always evaluates to `true'.
  5340 	* src/pshinter/pshalgo.c (ps_glyph_interpolate_strong_points):
  5341 	Ditto.
  5342 	* src/truetype/ttinterp.c (Ins_IUP): Ditto.
  5343 	* src/cid/cidgload.c (cid_slot_load_glyph): Don't check for NULL if
  5344 	value is already dereferenced.
  5345 	* src/winfonts/winfnt.c (FNT_Load_Glyph): Fix check of `face'.
  5347 2010-08-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5349 	Ignore the environmental setting of LIBTOOL.
  5350 	Patch is suggested by Adrian Bunk, to prevent unexpected
  5351 	reflection of environmental LIBTOOL.  See:
  5352 	http://savannah.nongnu.org/patch/?7290
  5354 	* builds/unix/unix-cc.in: LIBTOOL is unconditionally set to
  5355 	$(FT_LIBTOOL_DIR)/libtool.  FT_LIBTOOL_DIR is set to $(BUILD_DIR)
  5356 	by default.
  5357 	* configure: When configured for the building out of source tee,
  5358 	FT_LIBTOOL_DIR is set to $(OBJ_DIR).
  5360 2010-08-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5362 	[truetype] Decrease the trace level catching the interpreter error.
  5364 	* src/truetype/ttinterp.c (TT_RunIns): Decrease the trace level
  5365 	showing the error when the interpreter returns with an error,
  5366 	from` FT_TRACE7' to `FT_TRACE1'.
  5368 2010-08-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5370 	[truetype] Prevent bytecode reuse after the interpretation error.
  5372 	* src/truetype/ttinterp.c (free_buffer_in_size): New function to
  5373 	free the buffer allocated during the interpretation of this glyph.
  5374 	(TT_RunIns): Unset FT_Face->size->{cvt_ready,bytecode_ready} if
  5375 	an error occurs in the bytecode interpretation.  The interpretation
  5376 	of invalid bytecode may break the function definitions and referring
  5377 	them in later interpretation is danger.  By unsetting these flags,
  5378 	`fpgm' and `prep' tables are executed again in next interpretation.
  5380 	This fixes Savannah bug #30798, reported by Robert Święcki.
  5382 2010-08-29  Werner Lemberg  <wl@gnu.org>
  5384 	[ftraster] Pacify compiler.
  5386 	* src/raster/ftraster.c (ft_black_new) [_STANDALONE_]: `memory' is
  5387 	not used.
  5389 2010-08-29  Werner Lemberg  <wl@gnu.org>
  5391 	[cff] Allow SIDs >= 65000.
  5393 	* src/cff/cffload.c (cff_charset_load): Fix change from 2009-03-20:
  5394 	The threshold for SIDs is not applicable here.  I misinterpreted the
  5395 	`SID values 65000 and above are available for implementation use'
  5396 	sentence in the CFF specification.
  5398 	Problem reported by Ivan Ninčić <inincic@pdftron.com>.
  5400 2010-08-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5402 	Force hinting when the font lacks its familyname.
  5404 	In Type42 or Type11 font embedded in PostScript & PDF, TrueType sfnt
  5405 	stream may lack `name' table because they are not required.  Hinting
  5406 	for nameless fonts is safer for PDFs including embedded Chinese
  5407 	fonts.  Written by David Bevan, see:
  5409 	http://lists.gnu.org/archive/html/freetype-devel/2010-08/msg00021.html
  5410 	http://lists.freedesktop.org/archives/poppler/2010-August/006310.html
  5412 	* src/truetype/ttobjs.c (tt_check_trickyness): If a NULL pointer by
  5413 	nameless font is given, TRUE is returned to enable hinting.
  5415 2010-08-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5417 	Register yet another tricky TrueType font.
  5419 	* src/truetype/ttobjs.c (tt_check_trickyness): Add `HuaTianKaiTi?',
  5420 	a Kaishu typeface paired with `HuaTianSongTi?' by Huatian
  5421 	Information Industry.
  5423 2010-08-17  Teijo Kinnunen <Teijo.Kinnunen@nuance.com>
  5425 	[cache] Fix Savannah bug #30788.
  5427 	* src/cache/ftccache.c (FTC_Cache_Clear): Check `cache->buckets' for
  5428 	NULL too.
  5430 2010-08-10  Werner Lemberg  <wl@gnu.org>
  5432 	Try to fix Savannah bug #30717 (and probably #30719 too).
  5434 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Add another
  5435 	overflow test for `width' and `height'.
  5437 2010-08-06  Werner Lemberg  <wl@gnu.org>
  5439 	* Version 2.4.2 released.
  5440 	=========================
  5443 	Tag sources with `VER-2-4-2'.
  5445 	* docs/CHANGES: Updated.
  5447 	* docs/VERSION.DLL: Update documentation and bump version number to
  5448 	2.4.2
  5450 	* README, Jamfile (RefDoc),
  5451 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
  5452 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
  5453 	builds/win32/visualc/freetype.dsp,
  5454 	builds/win32/visualc/freetype.vcproj,
  5455 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
  5456 	builds/win32/visualce/freetype.vcproj,
  5457 	builds/win32/visualce/index.html,
  5458 	builds/wince/vc2005-ce/freetype.vcproj,
  5459 	builds/wince/vc2005-ce/index.html,
  5460 	builds/wince/vc2008-ce/freetype.vcproj,
  5461 	builds/wince/vc2008-ce/index.html: s/2.4.1/2.4.2/, s/241/242/.
  5463 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
  5465 	* builds/unix/configure.raw (version_info): Set to 12:0:6.
  5467 2010-08-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5469 	Fix Savannah bug #30648.
  5471 	* src/base/ftobjs.c (FT_Done_Library): Specify the order of font
  5472 	drivers during the face closing process.  Type42 faces should be
  5473 	closed before TrueType faces, because a Type42 face refers to
  5474 	another internal TrueType face which is created from sfnt[] array on
  5475 	the memory.
  5477 2010-08-06  Yuriy Kaminskiy  <yumkam@mail.ru>
  5479 	[raster] Fix valgrind warning.
  5481 	* src/raster/ftraster.c (Decompose_Curve) <default>: Access point[0]
  5482 	only if we don't hit `limit'.
  5484 2010-08-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5486 	Fix Savannah bug #30658.
  5488 	* src/base/ftobjs.c (Mac_Read_POST_Resource): Check that the total
  5489 	length of collected POST segments does not overrun the allocated
  5490 	buffer.
  5492 2010-08-06  Yuriy Kaminskiy  <yumkam@mail.ru>
  5494 	Fix conditional usage of FT_MulFix_i386.
  5495 	With -ansi flag, gcc does not define `i386', only `__i386__'.
  5497 	* include/freetype/config/ftconfig.h, builds/unix/ftconfig.in:
  5498 	s/i386/__i386__/.
  5500 2010-08-05  Werner Lemberg  <wl@gnu.org>
  5502 	[truetype] Fix Savannah bug #30657.
  5504 	* src/truetype/ttinterp.c (BOUNDSL): New macro.
  5505 	Change `BOUNDS' to `BOUNDSL' where appropriate.
  5507 	* src/truetype/ttinterp.h (TT_ExecContextRec): Fix type of
  5508 	`cvtSize'.
  5510 2010-08-05  Werner Lemberg  <wl@gnu.org>
  5512 	[type42] Fix Savannah bug #30656.
  5514 	* src/type42/t42parse.c (t42_parse_sfnts): Protect against negative
  5515 	string_size.
  5516 	Fix comparison.
  5518 2010-08-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5520 	[cff] Don't use any values in decoder after parsing error.
  5522 	* src/cff/cffgload.c (cff_slot_load): Skip the evaluations
  5523 	of the values in decoder, if `cff_decoder_parse_charstrings'
  5524 	returns any error.
  5526 2010-08-04  Werner Lemberg  <wl@gnu.org>
  5528 	Fix Savannah bug #30644.
  5530 	* src/base/ftstream.c (FT_Stream_EnterFrame): Fix comparison.
  5532 2010-08-04  Werner Lemberg  <wl@gnu.org>
  5534 	`make devel' fails if FT_CONFIG_OPTION_OLD_INTERNALS is set.
  5536 	* devel/ftoption.h: Synchronize with
  5537 	include/freetype/config/ftoption.h.
  5539 2010-08-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5541 	[cff] Improve stack overflow test.
  5543 	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Check stack
  5544 	after execution of operations too.
  5546 2010-07-18  Werner Lemberg  <wl@gnu.org>
  5548 	Add reference counters and to FT_Library and FT_Face objects.
  5550 	* include/freetype/freetype.h (FT_Reference_Face): New function.
  5551 	* include/freetype/ftmodapi.h (FT_Rererence_Library): New function.
  5553 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec,
  5554 	FT_LibraryRec): New field `refcount'.
  5556 	* src/base/ftobjs.c (FT_Open_Face, FT_New_Library): Handle
  5557 	`refcount'.
  5558 	(FT_Reference_Face, FT_Reference_Library): Implement new functions.
  5559 	(FT_Done_Face, FT_Done_Library): Handle `refcount'.
  5561 	* docs/CHANGES: Updated.
  5563 2010-07-18  Werner Lemberg  <wl@gnu.org>
  5565 	* Version 2.4.1 released.
  5566 	=========================
  5569 	Tag sources with `VER-2-4-1'.
  5571 	* docs/CHANGES: Updated.
  5573 	* docs/VERSION.DLL: Update documentation and bump version number to
  5574 	2.4.1.
  5576 	* README, Jamfile (RefDoc),
  5577 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
  5578 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
  5579 	builds/win32/visualc/freetype.dsp,
  5580 	builds/win32/visualc/freetype.vcproj,
  5581 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
  5582 	builds/win32/visualce/freetype.vcproj,
  5583 	builds/win32/visualce/index.html,
  5584 	builds/wince/vc2005-ce/freetype.vcproj,
  5585 	builds/wince/vc2005-ce/index.html,
  5586 	builds/wince/vc2008-ce/freetype.vcproj,
  5587 	builds/wince/vc2008-ce/index.html: s/2.4.0/2.4.1/, s/240/241/.
  5589 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
  5591 	* builds/unix/configure.raw (version_info): Set to 11:1:5.
  5593 2010-07-17  Werner Lemberg  <wl@gnu.org>
  5595 	[cff] Final try to fix `hintmask' and `cntrmask' limit check.
  5597 	Problem reported by Tobias Wolf <towolf@gmail.com>.
  5599 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
  5600 	<cff_op_hintmask>: Sigh.  I'm apparently too silly to fix this
  5601 	correctly in less than three tries.
  5603 2010-07-12  Werner Lemberg  <wl@gnu.org>
  5605 	* Version 2.4.0 released.
  5606 	=========================
  5609 	Tag sources with `VER-2-4-0'.
  5611 	* docs/CHANGES: Updated.
  5613 	* docs/VERSION.DLL: Update documentation and bump version number to
  5614 	2.4.0.
  5616 	* README, Jamfile (RefDoc),
  5617 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
  5618 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
  5619 	builds/win32/visualc/freetype.dsp,
  5620 	builds/win32/visualc/freetype.vcproj,
  5621 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
  5622 	builds/win32/visualce/freetype.vcproj,
  5623 	builds/win32/visualce/index.html,
  5624 	builds/wince/vc2005-ce/freetype.vcproj,
  5625 	builds/wince/vc2005-ce/index.html,
  5626 	builds/wince/vc2008-ce/freetype.vcproj,
  5627 	builds/wince/vc2008-ce/index.html: s/2.3.12/2.4.0/, s/2312/240/.
  5629 	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 4.
  5630 	(FREETYPE_PATCH): Set to 0.
  5632 	* builds/unix/configure.raw (version_info): Set to 11:0:5.
  5634 2010-07-12  Werner Lemberg  <wl@gnu.org>
  5636 	Remove C++ warnings.
  5638 	*/*: Initialize pointers where necessary to make g++ happy.
  5640 2010-07-12  malc  <av1474@comtv.ru>
  5641 	    Richard Henderson  <rth@redhat.com>
  5643 	Fix type-punning issues with C++.
  5645 	* include/freetype/internal/ftmemory.h (FT_ASSIGNP) [__cplusplus]:
  5646 	Emulate a `typeof' operator with an inline template which uses
  5647 	`static_cast'.
  5649 2010-07-11  Werner Lemberg  <wl@gnu.org>
  5651 	Fix C++ compilation issue.
  5653 	* src/tools/apinames.c (names_dump) <OUTPUT_WATCOM_LBC>: Fix
  5654 	type of `dot' variable.
  5656 2010-07-10  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5658 	Fix another case reported in Savannah bug #30373.
  5659 	Permit a face for Type1, Type42 and CFF without charmap,
  5660 	patch by Tor Andersson.
  5662 	* src/type1/t1objs.c (T1_Face_Init): Reset the error if it
  5663 	is FT_Err_No_Unicode_Glyph_Name.
  5664 	* src/type42/t42objs.c (T42_Face_Init): Ditto.
  5665 	* src/cff/cffobjs.c (cff_face_init): Ditto.
  5667 2010-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5669 	Use defined macros to set {platform,encoding}_id.
  5671 	* src/bdf/bdfdrivr.c: Include ttnameid.h and use macros to
  5672 	set charmap.{platfom,encoding}_id.
  5673 	* src/pcf/pcfdrivr.c: Ditto.
  5674 	* src/winfonts/winfnt.c: Ditto.
  5675 	* src/type1/t1objs.c: Ditto.
  5676 	* src/type42/t42objs.c: Ditto.
  5677 	* src/cff/cffobjs.c: Ditto.
  5678 	* src/pfr/pfrobjs.c: Ditto.
  5680 2010-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5682 	Fix Savannah bug #30373.
  5683 	Too serious check of errors by `FT_CMap_New' since 2010-07-04
  5684 	is fixed. Reported by Tor Andersson.
  5686 	* include/freetype/fterrdef.h
  5687 	(PSnames_Err_No_Unicode_Glyph_Name): New error code to
  5688 	indicate the Unicode charmap synthesis failed because
  5689 	no Unicode glyph name is found.
  5691 	* src/psnames/psmodule.c (ps_unicodes_init): Return
  5692 	PSnames_Err_No_Unicode_Glyph_Name when no Unicode glyph name
  5693 	is found in the font.
  5694 	* src/cff/cffcmap.c (cff_cmap_unicode_init): Return
  5695 	CFF_Err_No_Unicode_Glyph_Name when no SID is available.
  5697 	* src/type1/t1objs.c (T1_Face_Init): Proceed if `FT_CMap_New'
  5698 	is failed by the lack of Unicode glyph name.
  5699 	* src/type42/t42objs.c (T42_Face_Init): Ditto.
  5700 	* src/cff/cffobjs.c (cff_face_init): Ditto.
  5702 2010-07-09  Ken Sharp  <ken.sharp@artifex.com>
  5704 	Make ftraster.c compile in stand-alone mode with MSVC compiler.
  5706 	* src/raster/ftmisc.h (FT_Int64) [_WIN32, _WIN64]: Fix typedef
  5707 	since there is no `inttypes.h' for MSVC.
  5709 2010-07-08  Werner Lemberg  <wl@gnu.org>
  5711 	[truetype] Fix Savannah bug #30361.
  5713 	* src/truetype/ttinterp.c (Ins_IUP): Fix bounds check.
  5715 2010-07-06  Werner Lemberg  <wl@gnu.org>
  5717 	Pacify compiler.
  5719 	* src/cff/cffload.c (cff_index_get_pointers): Initialize
  5720 	`new_bytes'.
  5722 2010-07-05  Eugene A. Shatokhin  <spectre@ispras.ru>
  5724 	Fix Savannah bug #27648.
  5726 	* src/base/ftobjs.c (ft_remove_renderer, FT_Add_Module): Call
  5727 	`raster_done' only if we have an outline glyph format.
  5729 2010-07-05  Werner Lemberg  <wl@gnu.org>
  5731 	Fix Savannah bug #30030.
  5733 	* builds/win32/*/freetype.vcproj: Add ftxf86.c.
  5735 2010-07-05  Werner Lemberg  <wl@gnu.org>
  5737 	[cff] Next try to fix `hintmask' and `cntrmask' limit check.
  5739 	Problem reported by malc <av1474@comtv.ru>.
  5741 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
  5742 	<cff_op_hintmask>: It is possible that there is just a single byte
  5743 	after the `hintmask' or `cntrmask', e.g., a `return' instruction.
  5745 2010-07-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5747 	Restrict the number of the charmaps in a rogue-compatible mode.
  5748 	Fix for Savannah bug #30059.
  5750 	* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Replace `16' the
  5751 	minimum character code passed by a legacy rogue client by...
  5752 	* include/freetype/config/ftoption.h (FT_MAX_CHARMAP_CACHEABLE):
  5753 	This.  It is undefined when FT_CONFIG_OPTION_OLD_INTERNALS is
  5754 	undefined (thus the rogue client compatibility is not required).
  5756 	* src/cff/cffobjs.c (cff_face_init): Abort the automatic
  5757 	selection or synthesis of Unicode cmap subtable when the charmap
  5758 	index exceeds FT_MAX_CHARMAP_CACHEABLE.
  5759 	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Issue error message
  5760 	when the charmap index exceeds FT_MAX_CHARMAP_CACHEABLE.
  5762 	* src/base/ftobjs.c (find_unicode_charmap): When Unicode charmap
  5763 	is found after FT_MAX_CHARMAP_CACHEABLE, ignore it and search
  5764 	earlier one.
  5765 	(find_variant_selector_charmap): When UVS charmap is found after
  5766 	FT_MAX_CHARMAP_CACHEABLE, ignore it and search earlier one.
  5767 	(FT_Select_Charmap): When a charmap matching with requested
  5768 	encoding but after FT_MAX_CHARMAP_CACHEABLE, ignore and search
  5769 	earlier one.
  5770 	(FT_Set_Charmap): When a charmap matching with requested
  5771 	charmap but after FT_MAX_CHARMAP_CACHEABLE, ignore and search
  5772 	earlier one.
  5773 	(FT_Get_Charmap_Index): When a requested charmap is found
  5774 	after FT_MAX_CHARMAP_CACHEABLE, return the inverted charmap
  5775 	index.
  5777 2010-07-04  Werner Lemberg  <wl@gnu.org>
  5779 	TrueType hinting is no longer patented.
  5781 	* include/freetype/config/ftoption.h, devel/ftoption.h
  5782 	(TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Define.
  5783 	(TT_CONFIG_OPTION_UNPATENTED_HINTING): Undefine.
  5785 	* docs/CHANGES, docs/INSTALL, include/freetype/freetype.h: Updated.
  5786 	* docs/TRUETYPE, docs/PATENTS: Removed.
  5788 2010-07-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5790 	Check error value by `FT_CMap_New'.
  5792 	* src/cff/cffobjs.c (cff_face_init): Check error value by
  5793 	`FT_CMap_New'.
  5794 	* src/pfr/pfrobjs.c (pfr_face_init): Ditto.
  5795 	* src/type1/t1jobjs.c (T1_Face_Init): Ditto.
  5796 	* src/type42/t42jobjs.c (T42_Face_Init): Ditto.
  5798 2010-07-03  Werner Lemberg  <wl@gnu.org>
  5800 	Make ftgrays.c compile stand-alone again.
  5802 	* src/smooth/ftgrays.c [_STANDALONE_]: Include `stddef.h'.
  5803 	(FT_INT_MAX, FT_PtrDist)[_STANDALONE_]: Define.
  5805 2010-07-02  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5807 	Additional fix for Savannah bug #30306.
  5809 	* src/base/ftobjs.c (Mac_Read_POST_Resource): If the type of the
  5810 	POST fragment is 0, the segment is completely ignored.  The declared
  5811 	length of the segment is not cared at all.  According to Adobe
  5812 	Technical Note 5040, type 0 segment is a comment only and should not
  5813 	be loaded for the interpreter.  Reported by Robert Święcki.
  5815 2010-07-01  Werner Lemberg  <wl@gnu.org>
  5817 	[truetype] Protect against code range underflow.
  5819 	* src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Don't allow
  5820 	negative IP values.
  5822 2010-07-01  Werner Lemberg  <wl@gnu.org>
  5824 	[truetype] Add rudimentary tracing for bytecode instructions.
  5826 	* src/truetype/ttinterp.c (opcode_name) [FT_DEBUG_LEVEL_TRACE]: New
  5827 	array.
  5828 	(TT_RunIns): Trace opcodes.
  5830 2010-06-30  Werner Lemberg  <wl@gnu.org>
  5832 	[smooth] Fix Savannah bug #30263.
  5834 	* src/smooth/ftgrays.c (gray_render_span): Use cast to `unsigned
  5835 	int' to avoid integer overflow.
  5837 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Use smaller
  5838 	threshold values for `width' and `height'.  This is not directly
  5839 	related to the bug fix but makes sense anyway.
  5841 2010-07-01  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5843 	Initial fix for Savannah bug #30306.
  5845 	* src/base/ftobjs.c (Mac_Read_POST_Resource): Check `rlen', the
  5846 	length of fragment declared in the POST fragment header, and prevent
  5847 	an underflow in length calculation.  Some fonts set the length to
  5848 	zero in spite of the existence of a following 16bit `type'.
  5849 	Reported by Robert Święcki.
  5851 2010-07-01  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5853 	Additional fix for Savannah bug #30248 and #30249.
  5855 	* src/base/ftobjs.c (Mac_Read_POST_Resource): Check the buffer size
  5856 	during gathering PFB fragments embedded in LaserWriter PS font for
  5857 	Macintosh.  Reported by Robert Święcki.
  5859 2010-06-30  Alexei Podtelezhnikov  <apodtele@gmail.com>
  5861 	Minor optimizations by avoiding divisions.
  5863 	* src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning):
  5864 	Replace divisions with multiplication in comparisons.
  5866 2010-06-29  Werner Lemberg  <wl@gnu.org>
  5868 	Fix minor tracing issues.
  5870 	* src/cff/cffgload.c, src/truetype/ttgload.c: Adjust tracing levels.
  5872 2010-06-27  Werner Lemberg  <wl@gnu.org>
  5874 	[cff] Really fix `hintmask' and `cntrmask' limit check.
  5876 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
  5877 	<cff_op_hintmask>: Fix thinko and handle tracing also.
  5879 2010-06-27  Werner Lemberg  <wl@gnu.org>
  5881 	Fix valgrind warning.
  5883 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Initialize
  5884 	`result' array.
  5886 2010-06-27  Werner Lemberg  <wl@gnu.org>
  5888 	[cff] Fix memory leak.
  5890 	* src/cff/cffgload.c (cff_operator_seac): Free charstrings even in
  5891 	case of errors.
  5893 2010-06-27  Werner Lemberg  <wl@gnu.org>
  5895 	[cff] Protect against invalid `hintmask' and `cntrmask' operators.
  5897 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
  5898 	<cff_op_hintmask>: Ensure that we don't exceed `limit' while parsing
  5899 	the bit masks of the `hintmask' and `cntrmask' operators.
  5901 2010-06-26  Werner Lemberg  <wl@gnu.org>
  5903 	Fix PFR change 2010-06-24.
  5905 	* src/pfr/pfrgload.c (pfr_glyph_load_simple): Really protect against
  5906 	invalid indices.
  5908 2010-06-26  Werner Lemberg  <wl@gnu.org>
  5910 	Improve PFR tracing messages.
  5912 	* src/pfr/pfrgload.c (pfr_glyph_load_rec): Emit tracing messages for
  5913 	simple and compound glyph offsets.
  5915 2010-06-26  Werner Lemberg  <wl@gnu.org>
  5917 	Fix last PFR change.
  5919 	* src/pfr/pfrobjs.c (pfr_face_init): Fix rejection logic.
  5921 2010-06-26  Werner Lemberg  <wl@gnu.org>
  5923 	[sfnt] Fix Savannah bug #30262.
  5925 	* src/sfnt/ttload.c (tt_face_load_maxp): Limit `maxComponentDepth'
  5926 	arbitrarily to 100 to avoid stack exhaustion.
  5928 2010-06-26  Werner Lemberg  <wl@gnu.org>
  5930 	Add some memory checks (mainly for debugging).
  5932 	* src/base/ftstream.c (FT_Stream_EnterFrame): Exit with error
  5933 	if the frame size is larger than the stream size.
  5935 	* src/base/ftsystem.c (ft_ansi_stream_io): Exit with error if
  5936 	seeking a position larger than the stream size.
  5938 2010-06-25  Werner Lemberg  <wl@gnu.org>
  5940 	[pfr] Fix Savannah bug #30261.
  5942 	* src/pfr/pfrobjs.c (pfr_face_init): Reject fonts which contain
  5943 	neither outline nor bitmap glyphs.
  5945 2010-06-25  Werner Lemberg  <wl@gnu.org>
  5947 	[cff] Fix Savannah bug #30254.
  5949 	* src/cff/cffload.c (cff_index_get_pointers): Do sanity check for
  5950 	first offset also.
  5952 2010-06-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5954 	Initial fix for Savannah bug #30248 and #30249.
  5956 	* src/base/ftobjs.c (Mac_Read_POST_Resource): Check the error during
  5957 	reading a PFB fragment embedded in LaserWriter PS font for Macintosh.
  5958 	Reported by Robert Święcki.
  5960 2010-06-24  Werner Lemberg  <wl@gnu.org>
  5962 	[pcf] Fix Savannah bug #30247.
  5964 	* src/pcf/pcfread.c (pcf_get_metrics): Disallow (invalid) fonts with
  5965 	zero metrics.
  5967 2010-06-24  Graham Asher  <graham.asher@btinternet.com>
  5969 	* src/smooth/ftgrays.c (gray_render_cubic): Fix algorithm.
  5970 	The previous version was too aggressive, as demonstrated in
  5971 	http://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00020.html.
  5973 2010-06-24  Werner Lemberg  <wl@gnu.org>
  5975 	*/*: Use module specific error names where appropriate.
  5977 2010-06-24  Werner Lemberg  <wl@gnu.org>
  5979 	[sfnt] Fix Savannah bug #30236.
  5981 	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Improve check for pointer
  5982 	to `cmap_table'.
  5984 2010-06-24  Werner Lemberg  <wl@gnu.org>
  5986 	[pfr] Fix Savannah bug #30235.
  5988 	* src/pfr/pfrgload.c (pfr_glyph_load_simple): Protect against
  5989 	invalid indices if there aren't any coordinates for indexing.
  5991 2010-06-24  Werner Lemberg  <wl@gnu.org>
  5993 	[bdf]: Font properties are optional.
  5995 	* src/bdf/bdflib.c (_bdf_readstream): Use special error code to
  5996 	indicate a redo operation.
  5997 	(_bdf_parse_start): Handle `CHARS' keyword here too and pass current
  5998 	input line to `_bdf_parse_glyph'.
  6000 2010-06-23  Werner Lemberg  <wl@gnu.org>
  6002 	[bdf] Fix Savannah bug #30220.
  6004 	* include/freetype/fterrdef.h
  6005 	(BDF_Err_Missing_Fontboundingbox_Field): New error code.
  6007 	* src/bdf/bdflib.c (_bdf_parse_start): Check for missing
  6008 	`FONTBOUNDINGBOX' field.
  6009 	Avoid memory leak if there are multiple `FONT' lines (which is
  6010 	invalid but doesn't hurt).
  6012 2010-06-21  Werner Lemberg  <wl@gnu.org>
  6014 	[pfr] Fix Savannah bug #30168.
  6016 	* src/pfr/pfrgload.c (pfr_glyph_load_compound): Limit the number of
  6017 	subglyphs to avoid endless recursion.
  6019 2010-06-20  Werner Lemberg  <wl@gnu.org>
  6021 	[psaux] Fix Savannah bug #30145.
  6023 	* src/psaux/psobjs.c (t1_builder_add_contour): Protect against
  6024 	`outline == NULL' which might happen in invalid fonts.
  6026 2010-06-19  Werner Lemberg  <wl@gnu.org>
  6028 	[bdf] Fix Savannah bug #30135.
  6030 	* src/bdf/bdflib.c (_bdf_list_join): Don't modify value in static
  6031 	string `empty'.
  6032 	(_bdf_parse_glyph): Avoid memory leak in case of error.
  6034 2010-06-15  Werner Lemberg  <wl@gnu.org>
  6036 	[autofit] Fix Savannah bug #30108.
  6038 	* src/autofit/afglobal.c (af_face_globals_compute_script_coverage):
  6039 	Properly mask AF_DIGIT bit in comparison.
  6041 2010-06-11  Werner Lemberg  <wl@gnu.org>
  6043 	[pshinter] Fix Savannah bug #30106.
  6045 	Point numbers for FreeType's implementation of hinting masks are
  6046 	collected before the final number of points of a glyph has been
  6047 	determined; in particular, the code for handling the `endchar'
  6048 	opcode can reduce the number of points.
  6050 	* src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Assure that
  6051 	`end_point' is not larger than `glyph->num_points'.
  6053 2010-06-11  Werner Lemberg  <wl@gnu.org>
  6055 	[cff]: Improve debugging output.
  6057 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
  6058 	<cff_op_hintmask>: Implement it.
  6060 2010-06-10  Graham Asher  <graham.asher@btinternet.com>
  6062 	ftgrays: Speed up rendering of small cubic splines.
  6064 	* src/smooth/ftgrays.c (gray_render_cubic): Implement new,
  6065 	simplified algorithm to find out whether the spline can be replaced
  6066 	with two straight lines.  See this thread for more:
  6068 	  http://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00000.html
  6070 2010-06-09  Werner Lemberg  <wl@gnu.org>
  6072 	[cff] Fix Savannah bug #30082.
  6074 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
  6075 	<cff_op_callothersubr>: Protect against stack underflow.
  6077 2010-06-08  Werner Lemberg  <wl@gnu.org>
  6079 	[cff] Fix Savannah bug #30053.
  6081 	* src/cff/cffparse.c (cff_parse_real): Handle border case where
  6082 	`fraction_length' has value 10.
  6084 2010-06-07  Werner Lemberg  <wl@gnu.org>
  6086 	Fix Savannah bug #30052.
  6087 	This bug has been introduced with commit 2415cbf3.
  6089 	* src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Protect
  6090 	against endless loop in case of corrupted font header data.
  6092 2010-05-26  Werner Lemberg  <wl@gnu.org>
  6094 	Remove unused variable.
  6095 	Found by Graham.
  6097 	* src/autofit/afhints.c (af_glyph_hints_reload): Remove unused
  6098 	variable `first' in first block.
  6100 2010-05-22  Werner Lemberg  <wl@gnu.org>
  6102 	Fix various memory problems found by linuxtesting.org.
  6104 	* src/base/ftgxval.c (FT_TrueTypeGX_Free, FT_ClassicKern_Free),
  6105 	src/base/ftotval.c (FT_OpenType_Free), src/base/ftpfr.c
  6106 	(ft_pfr_check): Check `face'.
  6108 	* src/base/ftobjs.c (FT_Get_Charmap_Index): Check `charmap' and
  6109 	`charmap->face'.
  6110 	(FT_Render_Glyph): Check `slot->face'.
  6111 	(FT_Get_SubGlyph_Info): Check `glyph->subglyphs'.
  6113 2010-05-22  Werner Lemberg  <wl@gnu.org>
  6115 	autofit: Remove dead code.
  6116 	Suggested by Graham.
  6118 	* src/autofit/afhints.c (af_glyph_hints_compute_inflections):
  6119 	Removed.
  6120 	(af_glyph_hints_reload): Remove third argument.
  6121 	Update all callers.
  6123 2010-05-21  Bram Tassyns  <bramt@enfocus.be>
  6125 	[cff] Fix Savannah bug #27987.
  6127 	* src/cff/cffobjs.c (remove_subset_prefix): New function.
  6128 	(cff_face_init): Use it to adjust `cffface->family_name'.
  6130 2010-05-20  Werner Lemberg  <wl@gnu.org>
  6132 	TrueType: Make FreeType ignore maxSizeOfInstructions in `maxp'.
  6134 	Acroread does the same.
  6136 	* src/truetype/ttgload.c (TT_Process_Composite_Glyph): Call
  6137 	`Update_Max' to adjust size of instructions array if necessary and
  6138 	add a rough safety check.
  6140 	(load_truetype_glyph): Save `loader->byte_len' before recursive
  6141 	call.
  6143 	* src/truetype/ttinterp.h, src/truetype/ttinterp.c (Update_Max):
  6144 	Declare it as FT_LOCAL.
  6146 2010-05-18  Hongbo Ni  <hongbo@njstar.com>
  6148 	Apply Savannah patch #7196.
  6150 	* src/cff/cffgload.c (cff_slot_load): Prevent crash if CFF subfont
  6151 	index is out of range.
  6153 2010-05-11  Werner Lemberg  <wl@gnu.org>
  6155 	* docs/formats.txt: Give pointer to PCF documentation.
  6156 	Information provided by Alan Coopersmith
  6157 	<alan.coopersmith@oracle.com>.
  6159 2010-05-10  Ken Sharp  <ken.sharp@artifex.com>
  6161 	[psaux] Fix Savannah bug #29846.
  6163 	Previously we discovered fonts which used `setcurrentpoint' to set
  6164 	the initial point of a contour to 0,0.  This caused FreeType to
  6165 	raise an error, because the `setcurrentpoint' operator is only
  6166 	supposed to be used with the results from an OtherSubr subroutine.
  6168 	This was fixed by simply ignoring the error and carrying on.
  6170 	Now we have found a font which uses setcurrentpoint to actually
  6171 	establish a non-zero point for a contour during the course of a
  6172 	glyph program.  FWIW, these files may be produced by an application
  6173 	called `Intaglio' on the Mac, when converting TrueType fonts to
  6174 	Type 1.
  6176 	The fix allows the new invalid behaviour, the old invalid behaviour
  6177 	and real proper usage of the operator to work the same way as Adobe
  6178 	interpreters apparently do.
  6180 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Make
  6181 	`setcurrentpoint' use the top two elements of the stack to establish
  6182 	unconditionally the current x and y coordinates.
  6184 	Make the `flex' subroutine handling (OtherSubr 0) put the current
  6185 	x,y coordinates onto the stack, instead of two dummy uninitialised
  6186 	values.
  6188 2010-04-14  Ken Sharp  <ken.sharp@artifex.com>
  6190 	[psaux] Fix Savannah bug #29444.
  6192 	* src/psaux/psobjs.c (t1_builder_start_point): Accept (invalid)
  6193 	`lineto' immediately after `hsbw', in accordance with Acrobat, GS,
  6194 	and others.
  6196 2010-04-14  Michał Cichoń  <thedmd@artifexmundi.com>
  6198 	[psaux] Fix Savannah bug #27999.
  6200 	* src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID): Only remove
  6201 	selected entry, not all.
  6203 2010-04-06  Jonathan Kew  <jfkthame@gmail.com>
  6205 	[truetype] Add overflow check to `fvar' table.
  6207 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Check axis and instance
  6208 	count.
  6210 2010-04-05  Ken Sharp  <ken.sharp@artifex.com>
  6212 	[raster] Fix Savannah bug #29335.
  6214 	* src/raster/ftraster.c (Line_Up): Use slow multiplication to
  6215 	prevent overflow.  This shouldn't have any serious impact on speed,
  6216 	however.
  6218 2010-04-05  Werner Lemberg  <wl@gnu.org>
  6220 	Add new function `FT_Library_SetLcdFilterWeights'.
  6222 	This is based on code written by Lifter
  6223 	<http://unixforum.org/index.php?showuser=11691>.  It fixes
  6224 	FreeDesktop bug #27386.
  6226 	* src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights): New
  6227 	function.
  6229 	* include/freetype/ftlcdfil.h: Updated.
  6231 	* docs/CHANGES: Updated.
  6233 2010-04-01  John Tytgat  <John.Tytgat@esko.com>
  6235 	[truetype] Fix Savannah bug #29404.
  6237 	* src/truetype/ttgload.c: Revert change 2752bd1a (check on bit 1
  6238 	of `head' table of TrueType fonts).
  6240 2010-03-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6242 	Fix `multi build' for Tytgat's CFF driver improvement.
  6244 	* src/base/cffload.h (cff_index_get_name): Added.
  6246 2010-03-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6248 	Remove duplicated inclusion of `FT_OUTLINE_H' in ftobjs.c.
  6250 	* src/base/ftobjs.c: Remove 2nd inclusion of `FT_OUTLINE_H'.
  6252 2010-03-11  Chris Liddell  <chris.liddell@artifex.com>
  6254 	[raster] Fix Savannah bug #27442.
  6256 	* src/raster/ftraster.c (ft_black_reset): Fix `buffer_size'.
  6258 2010-03-09  Werner Lemberg  <wl@gnu.org>
  6260 	[cff] Remove unused variable.
  6261 	Reported by Graham.
  6263 	* src/cff/cffparse.c (cff_parse_real): Remove `rest'.
  6265 2010-03-02  John Tytgat  <John.Tytgat@esko.com>
  6267 	[cff] Improve CFF string (especially glyphname) lookup performance.
  6269 	We do this by avoiding memory allocation and file I/O.  This is
  6270 	Savannah patch #7104.
  6272 	* src/cff/cfftypes.h: Include PS cmaps service and
  6273 	FT_INTERNAL_POSTSCRIPT_HINTS_H.
  6274 	(CFF_SubFontRec): Remove `num_local_subrs'.
  6275 	(CFF_FontRec): Add `num_strings', `strings', and `string_pool'
  6276 	fields.
  6277 	Remove `string_index' and `num_global_subrs' fields.
  6278 	Use real types instead of `void' for `pshinter' and `psnames' fields.
  6280 	* src/cff/cffload.c: Don't include PS cmaps service.
  6281 	(cff_index_get_pointers): Add `pool' parameter which allows to
  6282 	insert an extra NUL character for each String INDEX entry.
  6283 	(cff_index_get_name): Make it a local function.
  6284 	(cff_index_get_string): New function.
  6285 	(cff_subfont_load): Updated.
  6286 	(cff_font_load): Initialize `num_strings', `strings', and
  6287 	`string_pool' fields in the `CFF_FontRec' structure.
  6288 	(cff_index_get_sid_string): Use `cff_index_get_string' instead of
  6289 	`cff_index_get_name'.
  6290 	(cff_font_done): Updated.
  6292 	* src/cff/cffload.h: Don't include PS cmaps service.
  6293 	(cff_index_get_string): Added.
  6294 	(cff_index_get_sid_string): Updated.
  6296 	* src/cff/cffobjs.c: Don't include PS cmaps service and
  6297 	FT_INTERNAL_POSTSCRIPT_HINTS_H.
  6298 	(cff_size_get_globals_funcs, cff_slot_init): Updated.
  6299 	(cff_face_init): Follow `cff_index_get_name',
  6300 	`cff_index_get_string', and `cff_index_get_sid_string' changes.
  6302 	* src/cff/cffcmap.c (cff_sid_free_glyph_name): Removed.
  6303 	(cff_sid_to_glyph_name): Use `cff_index_get_cid_string'.
  6304 	(cff_cmap_unicode_init): Updated.
  6306 	* src/cff/cffdrivr.c: Don't include PS cmap service.
  6307 	(cff_get_glyph_name): Avoid unnecessary lookup for POSTSCRIPT_CMAPS
  6308 	service.
  6309 	(cff_get_glyph_name, cff_ps_get_font_info, cff_get_ros): Follow API
  6310 	`cff_index_get_sid_string' change.
  6311 	(cff_get_name_index): Use `cff_index_get_string' instead of
  6312 	`cff_index_get_name'.
  6314 	* src/cff/cffgload.c: Don't include FT_INTERNAL_POSTSCRIPT_HINTS_H.
  6315 	(cff_decoder_init, cff_decoder_prepare): Updated.
  6317 2010-02-27  Werner Lemberg  <wl@gnu.org>
  6319 	Simplify code.
  6320 	Suggested by Behdad.
  6322 	* src/base/ftobjs.c (FT_Get_First_Char): Don't use a loop since we
  6323 	call FT_Get_Next_Char anyway if necessary.
  6325 2010-02-26  Behdad Esfahbod  <behdad@behdad.org>
  6327 	Improve handling of invalid glyph indices in char->index functions.
  6329 	* src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Use a
  6330 	loop.
  6332 2010-02-18  Chris Liddell  <chris.liddell@artifex.com>
  6334 	[truetype] Fix Savannah bug #28905.
  6336 	Initialize phantom points before calling the incremental interface
  6337 	to update glyph metrics.
  6339 	* src/truetype/ttgload.c (tt_get_metrics_incr_overrides)
  6340 	[FT_CONFIG_OPTION_INCREMENTAL]: New function, split off from...
  6341 	(tt_get_metrics): This.
  6342 	Updated.
  6343 	(load_truetype_glyph): Use tt_get_metrics_incr_overrides.
  6345 ----------------------------------------------------------------------------
  6347 Copyright 2010-2013 by
  6348 David Turner, Robert Wilhelm, and Werner Lemberg.
  6350 This file is part of the FreeType project, and may only be used, modified,
  6351 and distributed under the terms of the FreeType project license,
  6352 LICENSE.TXT.  By continuing to use, modify, or distribute this file you
  6353 indicate that you have read the license and understand and accept it
  6354 fully.
  6357 Local Variables:
  6358 version-control: never
  6359 coding: utf-8
  6360 End:

mercurial