Home | History | Annotate | Download | only in freetype
      1 2013-05-08  Werner Lemberg  <wl (a] gnu.org>
      2 
      3 	* Version 2.4.12 released.
      4 	==========================
      5 
      6 
      7 	Tag sources with `VER-2-4-12'.
      8 
      9 	* docs/VERSION.DLL: Update documentation and bump version number to
     10 	2.4.12.
     11 
     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/.
     25 
     26 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 12.
     27 
     28 	* builds/unix/configure.raw (version_info): Set to 16:1:10.
     29 
     30 2013-05-08  Werner Lemberg  <wl (a] gnu.org>
     31 
     32 	* docs/CHANGES: Updated.
     33 
     34 2013-05-08  Werner Lemberg  <wl (a] gnu.org>
     35 
     36 	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Typo.
     37 
     38 2013-05-05  Werner Lemberg  <wl (a] gnu.org>
     39 
     40 	Synchronize `ftconfig.h'.
     41 
     42 	* builds/unix/ftconfig.in: Updated.
     43 
     44 2013-05-05  Werner Lemberg  <wl (a] gnu.org>
     45 
     46 	Fix compilation with C++.
     47 
     48 	* src/base/md5.c (body): Use proper cast.
     49 
     50 2013-05-05  Werner Lemberg  <wl (a] gnu.org>
     51 
     52 	Fix 64bit compilation issues.
     53 
     54 	* include/freetype/config/ftconfig.h [FT_LONG64]: Typedef
     55 	`FT_Int64' here.
     56 
     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'.
     60 
     61 2013-05-05  Werner Lemberg  <wl (a] gnu.org>
     62 
     63 	[raster] Fix clang issues.
     64 
     65 	Fix suggested by <octoploid (a] yandex.com>.
     66 
     67 	* src/raster/ftraster.c (ULong): New typedef.
     68 	(SCALED): Add proper cast.
     69 
     70 2013-05-04  Werner Lemberg  <wl (a] gnu.org>
     71 
     72 	Fix clang fixes.
     73 
     74 	* src/base/fttrigon.c (ft_trig_prenorm, FT_Vector_Rotate): Use
     75 	correct types.
     76 
     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.
     81 
     82 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Ditto.
     83 
     84 2013-05-04  Werner Lemberg  <wl (a] gnu.org>
     85 
     86 	[cff] Make Adobe CFF engine work correctly on 64bit hosts.
     87 
     88 	Reported by numerous people on the `freetype-devel' list.  Without
     89 	this fix, glyphs aren't properly aligned on a common baseline.
     90 
     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.
     96 
     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.
    103 
    104 2013-05-04  Werner Lemberg  <wl (a] gnu.org>
    105 
    106 	More fixes for clang's `sanitize' feature.
    107 
    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.
    113 
    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.
    119 
    120 	* src/cid/cidload.c (cid_get_offset): Ditto.
    121 
    122 	* src/psaux/psconv.c (PS_Conv_ToFixed): Ditto.
    123 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Ditto.
    124 
    125 	* src/truetype/ttinterp.c (TT_MulFix14, TT_DotFix14): Ditto.
    126 
    127 2013-05-04  Werner Lemberg  <wl (a] gnu.org>
    128 
    129 	Fix errors reported by clang's `sanitize' feature.
    130 
    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.
    138 
    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.
    143 
    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.
    148 
    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.
    153 
    154 2013-05-03  Werner Lemberg  <wl (a] gnu.org>
    155 
    156 	* src/cff/cf2blues.c: Remove dead code.
    157 
    158 2013-05-02  Chris Liddell  <chris.liddell (a] artifex.com>
    159 
    160 	* src/cff/cffgload.c: Include FT_CFF_DRIVER_H.
    161 
    162 2013-04-27  Werner Lemberg  <wl (a] gnu.org>
    163 
    164 	* docs/CHANGES: Updated.
    165 	* README: Improved.
    166 
    167 2013-04-13  Werner Lemberg  <wl (a] gnu.org>
    168 
    169 	[cff] Add a new Type 2 interpreter and hinter.
    170 
    171 	This work, written by Dave Arnold <darnold (a] 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.
    177 
    178 	For convenience, (most of) the new files are committed separately.
    179 
    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'.
    187 
    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'.
    192 
    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.
    208 
    209 	* src/cff/rules.mk (CFF_DRV_SRC, CFF_DRV_H): Add new files.
    210 
    211 	* src/cff/cf2*.*: New files, containing the Adobe engine.
    212 
    213 2013-04-12  Werner Lemberg  <wl (a] gnu.org>
    214 
    215 	[cff] Minor code administration issues.
    216 
    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.
    223 
    224 	* src/cff/cffgload.h: Updated.
    225 
    226 2013-04-12  Werner Lemberg  <wl (a] gnu.org>
    227 
    228 	Add output bitmap checksums.
    229 
    230 	Use `FT2_DEBUG=bitmap:3' for tracing.
    231 
    232 	* src/base/md5.c, src/base/md5.h: New files, taken from
    233 
    234 	  http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
    235 
    236 	* include/freetype/internal/fttrace.h: Add `bitmap'.
    237 
    238 	* src/base/ftobjs.c [FT_DEBUG_LEVEL_TRACE]: Include `md5.c'
    239 
    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.
    243 
    244 	* src/base/rules.mk (BASE_H): Updated.
    245 
    246 	* docs/LICENSE.TXT: Updated.
    247 
    248 2013-04-12  Werner Lemberg  <wl (a] gnu.org>
    249 
    250 	[cff] Add framework for CFF properties.
    251 
    252 	* include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC7):
    253 	New macro.
    254 
    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'.
    259 
    260 	* src/cff/cffpic.h: Include FT_SERVICE_PROPERTIES_H.
    261 	(CFF_SERVICE_PROPERTIES_GET): New macro.
    262 	(CffModulePIC): Add `cff_service_properties'.
    263 
    264 2013-04-03  Werner Lemberg  <wl (a] gnu.org>
    265 
    266 	[bdf] Fix Savannah bug #38589.
    267 
    268 	* src/bdf/bdflib.c (_bdf_readstream): Thinko.
    269 
    270 2013-03-31  Werner Lemberg  <wl (a] gnu.org>
    271 
    272 	* configure: Use egrep, not grep.
    273 
    274 	Problem reported Mojca Miklavec <mojca.miklavec.lists (a] gmail.com>.
    275 
    276 2013-03-29  Werner Lemberg  <wl (a] gnu.org>
    277 
    278 	* include/freetype/ftlcdfil.h: Add description of color filtering.
    279 
    280 	Based on a contribution from Antti S. Lankila <alankila (a] bel.fi>
    281 	(Savannah bug #38607).
    282 
    283 2013-03-23  Werner Lemberg  <wl (a] gnu.org>
    284 
    285 	[autofit] Minor.
    286 
    287 	* src/autofit/afmodule.c (af_property_set): Typo.
    288 	(af_autofitter_init, af_autofitter_done): Use cast.
    289 
    290 2013-03-21  Werner Lemberg  <wl (a] gnu.org>
    291 
    292 	* configure: Automatically test for `gmake' also.
    293 
    294 	Suggested by Mojca Miklavec <mojca.miklavec.lists (a] gmail.com>.
    295 
    296 2013-03-21  Peter Breitenlohner  <peb (a] mppmu.mpg.de>
    297 
    298 	Respect CONFIG_SHELL from the environment.
    299 
    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.
    306 
    307 	* builds/unix/detect.mk: Honour CONFIG_SHELL.
    308 	* builds/unix/unix-def.in (SHELL): Define.
    309 
    310 2013-03-21  Werner Lemberg  <wl (a] gnu.org>
    311 
    312 	Fix Savannah patch #7971.
    313 
    314 	* configure: Handle MAKE environment variable also.
    315 
    316 2013-03-17  Werner Lemberg  <wl (a] gnu.org>
    317 
    318 	Fix Savannah bug #38538.
    319 
    320 	* builds/amiga/src/base/ftdebug.c, builds/win32/ftdebug.c,
    321 	builds/wince/ftdebug.c (FT_Throw): Add function.
    322 
    323 2013-03-17  Werner Lemberg  <wl (a] gnu.org>
    324 
    325 	[raster] Remove dead code.
    326 
    327 	* src/raster/rastpic.c (ft_raster1_renderer_class_pic_init)
    328 	src/smooth/ftspic.c (ft_smooth_renderer_class_pic_init): Do it.
    329 
    330 2013-03-17  Werner Lemberg  <wl (a] gnu.org>
    331 
    332 	* src/pshinter/pshpic.h (GET_PIC): Use correct container.
    333 
    334 2013-03-15  Werner Lemberg  <wl (a] gnu.org>
    335 
    336 	* include/freetype/ftmoderr.h: Fix commit from 2013-03-11.
    337 
    338 	The previous version was not backward compatible.  Reported by
    339 	Behdad.
    340 
    341 2013-03-14  Werner Lemberg  <wl (a] gnu.org>
    342 
    343 	*/*: Use FT_ERR_EQ, FT_ERR_NEQ, and FT_ERR where appropriate.
    344 
    345 	FT_Err_XXX and friends are no longer directly used in the source
    346 	code.
    347 
    348 2013-03-14  Werner Lemberg  <wl (a] gnu.org>
    349 
    350 	New error management macros.
    351 
    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.
    356 
    357 	* include/freetype/freetype.h: Updated.
    358 
    359 2013-03-14  Werner Lemberg  <wl (a] gnu.org>
    360 
    361 	*/*: Use FT_Err_Ok only.
    362 
    363 	This is a purely mechanical conversion.
    364 
    365 2013-03-14  Werner Lemberg  <wl (a] gnu.org>
    366 
    367 	*/*: Use `FT_THROW'.
    368 
    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.
    372 
    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.
    376 
    377 2013-03-13  Werner Lemberg  <wl (a] gnu.org>
    378 
    379 	Introduce `FT_THROW' macro.
    380 
    381 	The idea is to replace code like
    382 
    383 	  return FT_Err_Foo_Bar;
    384 
    385 	or
    386 
    387 	  return CFF_Err_Foo_Bar;
    388 
    389 	with
    390 
    391 	  return FT_THROW( Foo_Bar );
    392 
    393 	The FT_THROW macro has two functions:
    394 
    395 	  . It hides the module specific prefix.
    396 
    397 	  . In debug mode, it calls the empty function `FT_Throw' which can
    398 	    be thus used to set a breakpoint.
    399 
    400 	* include/freetype/internal/ftdebug.h (FT_THROW): New macro.
    401 	(FT_Throw): New prototype.
    402 	* src/base/ftdebug.c (FT_Throw): New function.
    403 
    404 2013-03-12  Werner Lemberg  <wl (a] gnu.org>
    405 
    406 	Remove `FT_KEEP_ERR_PREFIX'.
    407 
    408 	The idea is to always have FT_ERR_PREFIX available internally.
    409 
    410 	* include/freetype/fterrors.h: Use FT2_BUILD_LIBRARY to guard
    411 	undefinition of FT_ERR_PREFIX
    412 
    413 	* src/gxvalid/gxverror.h, src/otvalid/otverror.h,
    414 	src/sfnt/sferrors.h: Updated.
    415 
    416 2013-03-11  Werner Lemberg  <wl (a] gnu.org>
    417 
    418 	[gxvalid] Fix module error.
    419 
    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'.
    423 
    424 2013-03-11  Werner Lemberg  <wl (a] gnu.org>
    425 
    426 	Always use module related error codes.
    427 
    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'.
    431 
    432 	* src/type1/t1load.c (parse_encoding): Use
    433 	T1_Err_Unknown_File_Format.
    434 
    435 2013-03-08  Werner Lemberg  <wl (a] gnu.org>
    436 
    437 	[cff] Set `linear{Hori,Vert}Advance' for embedded bitmaps also.
    438 
    439 	Problem reported by Khaled Hosny <khaledhosny (a] eglug.org>.
    440 
    441 	* src/cff/cffgload.c (cff_slot_load): Implement it.
    442 
    443 2013-02-23  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    444 
    445 	[base] Fix commit ab02d9e8.
    446 
    447 	* src/base/ftbbox.c (BBox_Cubic_Check): Change scaling to msb of 22.
    448 
    449 2013-02-19  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    450 
    451 	[base] New bisecting BBox_Cubic_Check (disabled).
    452 
    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.
    456 
    457 2013-02-18  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    458 
    459 	[tools] Update BBox testing tool.
    460 
    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.
    464 
    465 2013-02-02  Werner Lemberg  <wl (a] gnu.org>
    466 
    467 	Fix Savannah bug #38235.
    468 
    469 	* builds/unix/configure.raw: Don't generate `freetype-config' and
    470 	`freetype.pc'.
    471 
    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.
    475 
    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.
    481 
    482 	* builds/unix/freetype.in: Use `%' instead of `@' as a variable
    483 	substitution marker.
    484 	Use quotes.
    485 
    486 2013-02-07  Werner Lemberg  <wl (a] gnu.org>
    487 
    488 	* src/truetype/ttobjs.c (tt_size_run_prep): Reset more GS variables.
    489 
    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.
    493 
    494 2013-02-06  Werner Lemberg  <wl (a] gnu.org>
    495 
    496 	* src/truetype/ttobjs.c (tt_size_run_prep): Reset reference points.
    497 
    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.
    504 
    505 	Most notably, this fixes the rendering of Arial's `x' glyph in
    506 	subpixel hinting mode.
    507 
    508 2013-02-05  Werner Lemberg  <wl (a] gnu.org>
    509 
    510 	[truetype] A better fix for Savannah bug #38211.
    511 
    512 	* src/truetype/ttinterp.c (Ins_IP): Implement identical behaviour to
    513 	MS rasterizer if rp1 == rp2 (confirmed by Greg Hitchcock).
    514 
    515 2013-02-01  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    516 
    517 	[pcf] Streamline parsing of PCF encoding table.
    518 
    519 	* src/pcf/pcfread.c (pcf_get_encodings): Use simpler double for-loop.
    520 	Reallocate array instead of using temporary storage.
    521 
    522 2013-02-01  Werner Lemberg  <wl (a] gnu.org>
    523 
    524 	Fix Savannah bug #38227.
    525 
    526 	* builds/unix/freetype-config.in: Set LC_ALL.
    527 
    528 2013-02-01  Werner Lemberg  <wl (a] gnu.org>
    529 
    530 	Fix Savannah bug #38221.
    531 
    532 	This complements commit 83c0ebab.
    533 
    534 	* src/base/ftcalc.c (FT_MulDiv_No_Round): Don't enclose with
    535 	`TT_USE_BYTECODE_INTERPRETER'.
    536 
    537 2013-02-01  Werner Lemberg  <wl (a] gnu.org>
    538 
    539 	[truetype] Fix Savannah bug #38211.
    540 
    541 	* src/truetype/ttinterp.c (Ins_IP): Make FreeType behave identical
    542 	to other interpreters if rp1 == rp2 (which is invalid).
    543 
    544 2013-01-28  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    545 
    546 	[base] Small optimization of BBox calculation.
    547 
    548 	* src/base/ftbbox.c (BBox_Cubic_Check): Use FT_MSB function in
    549 	scaling algorithm.
    550 
    551 2013-01-26  Infinality  <infinality (a] infinality.net>
    552 
    553 	[truetype] Minor formatting fix.
    554 
    555 	* src/truetype/ttinterp.c: Updated.
    556 	(DO_RS): Fix indentation.
    557 
    558 2013-01-26  Infinality  <infinality (a] infinality.net>
    559 
    560 	[truetype] Fix rasterizer_version logic in sph.
    561 
    562 	* src/truetype/ttsubpix.c: Updated.
    563 	(ALWAYS_SKIP_DELTAP_Rules): Remove rule for Trebuchet MS.
    564 	(sph_set_tweaks): Fix `rasterizer_version' logic.
    565 
    566 2013-01-26  Infinality  <infinality (a] infinality.net>
    567 
    568 	[truetype] Align more to ClearType whitepaper for sph.
    569 
    570 	* include/freetype/internal/tttypes.h (TT_FaceRec): Add flags
    571 	for detected opcode patterns and compatibility mode.
    572 
    573 	* src/truetype/ttgload.c (tt_loader_init): Complete conditional.
    574 
    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.
    597 
    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.
    601 
    602 	* src/truetype/ttobjs.h: Updated.
    603 	(TT_DefRecord): Add flags to identify special fdefs for sph.
    604 	(TT_SizeRec): Remove unnecessary ttfautohinted variable.
    605 
    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.
    619 
    620 	* src/truetype/ttsubpix.h: Add new fdef flags for sph.
    621 
    622 2013-01-23  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    623 
    624 	[base] Fix broken emboldening at small sizes.
    625 
    626 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Do not attempt to
    627 	normalize zero-length vectors.
    628 
    629 2013-01-25  Werner Lemberg  <wl (a] gnu.org>
    630 
    631 	Fix Savannah bug #38167.
    632 
    633 	This fixes commit 83c0ebab from 2012-06-27.
    634 
    635 	* src/truetype/ttinterp.h:
    636 	s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
    637 
    638 2013-01-25  Xi Wang  <xi.wang (a] gmail.com>
    639 
    640 	[sfnt] Fix broken pointer overflow checks.
    641 
    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.
    645 
    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'.
    649 
    650 	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Implement it.
    651 
    652 2013-01-25  Werner Lemberg  <wl (a] gnu.org>
    653 
    654 	[base] Fix `make multi'.
    655 
    656 	* src/base/ftoutln.c, src/base/fttrigon.c: Include
    657 	FT_INTERNAL_CALC_H.
    658 
    659 2013-01-25  David 'Digit' Turner  <digit (a] google.com>
    660 
    661 	[truetype] Fix C++ compilation.
    662 
    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.
    669 
    670 	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Updated.
    671 
    672 2013-01-23  Werner Lemberg  <wl (a] gnu.org>
    673 
    674 	[base] Make `FT_Hypot' really internal.
    675 
    676 	* include/freetype/fttrigon.h (FT_Hypot): Move to...
    677 	* include/freetype/internal/ftcalc.h: This file.
    678 
    679 	* src/base/fttrigon.c (FT_Hypot): Move to...
    680 	* src/base/ftcalc.c: This file.
    681 	Include FT_TRIGONOMETRY_H.
    682 
    683 	* src/truetype/ttgload.c: Don't include FT_TRIGONOMETRY_H.
    684 
    685 2013-01-23  Werner Lemberg  <wl (a] gnu.org>
    686 
    687 	[truetype] Revert change from 2013-01-22.
    688 
    689 	FreeType's `height' value is the baseline-to-baseline distance...
    690 
    691 	* src/truetype/ttobjs.c (tt_size_reset): Undo.
    692 
    693 2013-01-23  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    694 
    695 	[base, truetype] New internal `FT_Hypot' function.
    696 
    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.
    704 
    705 2013-01-23  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    706 
    707 	[base] Fix integer overflow.
    708 
    709 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Normalize incoming and
    710 	outgoing vectors and use fixed point arithmetic.
    711 
    712 2013-01-23  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    713 
    714 	[base] Fix integer overflow.
    715 
    716 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Scale the
    717 	coordinates down to avoid overflow.
    718 
    719 2013-01-23  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    720 
    721 	[base] Split out MSB function.
    722 
    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.
    726 
    727 2013-01-22  Werner Lemberg  <wl (a] gnu.org>
    728 
    729 	[truetype] Fix font height.
    730 
    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.
    734 
    735 2013-01-16  Behdad Esfahbod  <behdad (a] behdad.org>
    736 
    737 	[sfnt] Fix optimized sbit loader.
    738 
    739 	It was not taking bit_depth into consideration when blitting!
    740 
    741 	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_byte_aligned,
    742 	* tt_sbit_decoder_load_bit_aligned): Handle bit
    743 	depth.
    744 
    745 2013-01-16  David 'Digit' Turner  <digit (a] google.com>
    746 
    747 	[truetype] Improve subpixel code.
    748 
    749 	This patches fixes many issues with the ttsubpix implementation.
    750 
    751 	1. Data tables are defined, instead of declared, in the header, and
    752 	   thus copied into each source file that includes it.
    753 
    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!).
    757 
    758 	   Additionally, this also made the library export the symbols
    759 	   completely needlessly.
    760 
    761 	3. Missing `sph_' and `SPH_' prefixes to some of the definitions.
    762 
    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.
    766 
    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.
    771 
    772 	(SPH_TweakRule, SPH_ScaleRule): Decorate with `const' where
    773 	appropriate.
    774 
    775 	(Font_Class): Rename to...
    776 	(SPH_Font_Class): This.  Decorate with `const' where appropriate.
    777 	
    778 	* src/truetype/ttsubpix.h (scale_test_tweak, sph_test_tweak):
    779 	Decorate arguments with `const' where appropriate.
    780 
    781 	Move font tweaking tables to...
    782 
    783 	* src/truetype/ttsubpix.c: This file and decorate them with `static'
    784 	and `const' where appropriate.
    785 
    786 	(X_SCALING_Rules, X_SCALING_RULES_SIZE): Renamed to...
    787 	(sph_X_SCALING_Rules, SPH_X_SCALING_RULES_SIZE): This.
    788 	Update all users.
    789 
    790 2013-01-12  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    791 
    792 	[truetype] Improve accuracy of normalization of short vectors.
    793 
    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.
    799 
    800 	* src/truetype/ttinterp.c (Normalize): Scale short vectors by 0x4000.
    801 
    802 2013-01-12  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    803 
    804 	[truetype] Kill very old vector normalization hacks.
    805 
    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.
    811 
    812 	* src/truetype/ttinterp.c (Normalize): Remove error compensation.
    813 	(TT_VecLen): Remove any mention of old less accurate implementation.
    814 
    815 2013-01-11  Werner Lemberg  <wl (a] gnu.org>
    816 
    817 	Disable FT_CONFIG_OPTION_OLD_INTERNALS.
    818 
    819 	After the next release we are going to remove the code completely.
    820 
    821 	* devel/ftoption.h, include/freetype/config/ftoption.h
    822 	(FT_CONFIG_OPTION_OLD_INTERNALS): Comment out.
    823 	* docs/CHANGES: Document it.
    824 
    825 2013-01-10  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    826 
    827 	[base] Update the overflow protection bit.
    828 
    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.
    832 
    833 	* src/base/fttrigon.c (FT_TRIG_SAFE_MSB): New macro.
    834 	(ft_trig_prenorm): Use it and remove dead code.
    835 
    836 2013-01-09  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    837 
    838 	[base, pshinter] Use FT_ABS, FT_MIN, and FT_MAX for readability.
    839 
    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.
    845 
    846 2013-01-08  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    847 
    848 	[base] Clean up trigonometric core.
    849 
    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.
    854 
    855 2013-01-02  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    856 
    857 	[base] Use rounding in CORDIC iterations.
    858 
    859 	* src/base/fttrigon.c (ft_trig_pseudo_rotate,
    860 	ft_trig_pseudo_polarize): Improve accuracy by rounding.
    861 
    862 2013-01-02  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    863 
    864 	[base] Reduce trigonometric algorithms.
    865 
    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.
    869 
    870 	* src/base/fttrigon.c (FT_TRIG_SCALE, FT_TRIG_COSCALE): Update macros.
    871 	(ft_trig_pseudo_rotate, ft_trig_pseudo_polarize): Update.
    872 
    873 	* src/tools/cordic.py: Bring up to date with trigonometric core.
    874 
    875 	* docs/CHANGES: Old typo.
    876 
    877 2013-01-02  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    878 
    879 	* src/pshinter/pshalgo.h: Remove unused code.
    880 
    881 2012-12-27  Werner Lemberg  <wl (a] gnu.org>
    882 
    883 	* src/truetype/ttgload.c (tt_loader_init): Add more tracing.
    884 
    885 2012-12-23  Werner Lemberg  <wl (a] gnu.org>
    886 
    887 	[type1] Fix handling of /FontBBox in MM fonts.
    888 	Problem reported by Del Merritt <del (a] alum.mit.edu>
    889 
    890 	If we have
    891 
    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 } }
    896 
    897 	in the /Blend dictionary,  then the first BBox is { 11 21 31 41 },
    898 	the second { 12 22 32 42 }, etc.
    899 
    900 	* include/freetype/internal/psaux.h (T1_FieldType): Add
    901 	`T1_FIELD_TYPE_MM_BBOX' (for temporary use).
    902 
    903 	* src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_MM_BBOX>:
    904 	Implement it.
    905 
    906 2012-12-21  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    907 
    908 	* src/tools/cordic.py: Bring up to date with trigonometric core.
    909 
    910 2012-12-21  Werner Lemberg  <wl (a] gnu.org>
    911 
    912 	Check parameters of `FT_Outline_New'.
    913 	Problem reported by Robin Watts <robin.watts (a] artifex.com>.
    914 
    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.
    918 
    919 2012-12-20  Werner Lemberg  <wl (a] gnu.org>
    920 
    921 	* Version 2.4.11 released.
    922 	==========================
    923 
    924 
    925 	Tag sources with `VER-2-4-11'.
    926 
    927 	* docs/CHANGES, docs/release: Updated.
    928 
    929 	* docs/VERSION.DLL: Update documentation and bump version number to
    930 	2.4.11.
    931 
    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/.
    945 
    946 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 11.
    947 
    948 	* builds/unix/configure.raw (version_info): Set to 16:0:10.
    949 
    950 	* builds/toplevel.mk (dist): Don't include `.mailmap'.
    951 
    952 2012-12-20  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    953 
    954 	[base] Improve trigonometric core.
    955 
    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.
    963 
    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.
    968 
    969 2012-12-19  Werner Lemberg  <wl (a] gnu.org>
    970 
    971 	* src/base/ftobjs.c (ft_property_do): Fix compiler warning.
    972 
    973 2012-12-19  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    974 
    975 	* src/base/ftrfork.c (FT_Raccess_Guess): Switch to FT_Int counters.
    976 
    977 2012-12-19  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    978 
    979 	[base] Clean up trigonometric core.
    980 
    981 	* src/base/fttrigon.c (ft_trig_pseudo_polarize): Align algorithm
    982 	with `ft_trig_pseudo_rotate'.
    983 
    984 2012-12-18  Infinality  <infinality (a] infinality.net>
    985 
    986 	[truetype] Minor performance enhancement.
    987 
    988 	* src/truetype/ttgload.c: (TT_Process_Simple_Glyph): Use FT_MulFix
    989 	instead of FT_MulDiv.
    990 
    991 2012-12-17  Infinality  <infinality (a] infinality.net>
    992 
    993 	[truetype] Remove unused code and variables.
    994 
    995 	* src/truetype/ttinterp.c: Updated.
    996 	(Ins_FDEF): Remove opcode patterns that are not being used.
    997 
    998 2012-12-16  Werner Lemberg  <wl (a] gnu.org>
    999 
   1000 	Various compiler warning fixes.
   1001 
   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.
   1012 
   1013 2012-12-16  Infinality  <infinality (a] infinality.net>
   1014 
   1015 	[truetype] Remove unused code and variables.  Add minor fixes.
   1016 
   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.
   1026 
   1027 	* src/truetype/ttgload.c: (TT_Process_Simple_Glyph): Adjust correction
   1028 	factor for emboldening during scaling.
   1029 
   1030 	* src/truetype/ttinterp.h: Updated.
   1031 	(TT_ExecContextRec): Remove unused variables.
   1032 
   1033 	* src/truetype/ttobjs.h: Updated.
   1034 	(TT_SizeRec): Add ttfautohinted variable.
   1035 
   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 unused 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.
   1044 
   1045 2012-12-16  Werner Lemberg  <wl (a] gnu.org>
   1046 
   1047 	[sfnt] Fix Savannah bug #37936.
   1048 
   1049 	* src/sfnt/ttload.c (tt_face_load_gasp): Avoid memory leak.
   1050 
   1051 2012-12-15  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1052 
   1053 	[base] Fix 11-year old bug.
   1054 
   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.
   1059 
   1060 	* src/base/fttrigon.c (FT_TRIG_SCALE): Fix macro value.
   1061 
   1062 2012-12-15  Werner Lemberg  <wl (a] gnu.org>
   1063 
   1064 	[bdf] Fix Savannah bug #37907.
   1065 
   1066 	* src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Normalize
   1067 	negative second parameter of `ENCODING' field also.
   1068 
   1069 2012-12-15  Werner Lemberg  <wl (a] gnu.org>
   1070 
   1071 	[bdf] Fix Savannah bug #37906.
   1072 
   1073 	* src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Use correct array
   1074 	size for checking `glyph_enc'.
   1075 
   1076 2012-12-15  Werner Lemberg  <wl (a] gnu.org>
   1077 
   1078 	[bdf] Fix Savannah bug #37905.
   1079 
   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'.
   1083 
   1084 2012-12-10  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1085 
   1086 	[truetype] Scale F_dot_P down.
   1087 
   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.
   1093 
   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.
   1100 
   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.
   1105 
   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.
   1113 
   1114 2012-12-09  Johnson Y. Yan  <yinsen_yan (a] foxitsoftware.com>
   1115 
   1116 	[type1] Another fix for 2012-09-17 commit.
   1117 
   1118 	* src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Correctly set
   1119 	`limit' value.
   1120 
   1121 2012-12-06  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1122 
   1123 	[truetype] Tweak the previous commit.
   1124 
   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.
   1128 
   1129 2012-12-06  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1130 
   1131 	[truetype] Microoptimizations in bytecode interpreter.
   1132 
   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.
   1137 
   1138 2012-12-05  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1139 
   1140 	[truetype] Cosmetic improvement in bytecode interpreter.
   1141 
   1142 	* src/truetype/ttinterp.c: Use explicit calls to FT_MulDiv,
   1143 	FT_MulFix, and FT_DivFix instead of macros.
   1144 
   1145 2012-12-03  John Tytgat  <John.Tytgat (a] esko.com>
   1146 
   1147 	[pshinter] Clamp BlueScale value.
   1148 
   1149 	This is Savannah bug #37856.
   1150 
   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'.
   1154 
   1155 2012-12-01  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1156 
   1157 	[truetype, type1] Revise the use of FT_MulDiv.
   1158 
   1159 	* src/truetype/ttgxvar.c: Updated.
   1160 	* src/truetype/ttobjs.c: Updated.
   1161 	* src/type1/t1load.c: Updated.
   1162 
   1163 2012-11-30  Werner Lemberg  <wl (a] gnu.org>
   1164 
   1165 	[configure] Preserve customized `ftoption.h'.
   1166 
   1167 	Problem reported by Del Merritt <del (a] alum.mit.edu>.
   1168 
   1169 	* builds/unix/configure.raw <cpp computation of bit length>: Don't
   1170 	remove existing FreeType configuration files.
   1171 
   1172 2012-11-29  John Tytgat  <John.Tytgat (a] esko.com>
   1173 
   1174 	[type1] Fix Savannah bug #37831.
   1175 
   1176 	The bug report also contains a patch.
   1177 
   1178 	* src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Really fix
   1179 	change from 2012-09-17.
   1180 
   1181 2012-11-28  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1182 
   1183 	[truetype] Fix formatting and typo.
   1184 
   1185 2012-11-27  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1186 
   1187 	[cid, type1, type42] Clean up units_per_EM calculations.
   1188 
   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.
   1192 
   1193 2012-11-27  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1194 
   1195 	[ftstroke] Minor improvement.
   1196 
   1197 	* src/base/ftstroke.c: Replace nested FT_DivFix and FT_MulFix with
   1198 	FT_MulDiv.
   1199 
   1200 2012-11-17  Werner Lemberg  <wl (a] gnu.org>
   1201 
   1202 	* src/base/fttrigon.c (ft_trig_downscale): Make 64bit version work.
   1203 
   1204 2012-11-15  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1205 
   1206 	[base] Fix integer overflows in dd5718c7d67a.
   1207 
   1208 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Use FT_MulDiv.
   1209 
   1210 2012-11-15  Werner Lemberg  <wl (a] gnu.org>
   1211 
   1212 	[autofit] Trace stem widths.
   1213 
   1214 	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Add some
   1215 	FT_TRACE calls.
   1216 
   1217 2012-11-13  Werner Lemberg  <wl (a] gnu.org>
   1218 
   1219 	[cff] Add support for OpenType Collections (OTC).
   1220 
   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.
   1226 
   1227 2012-11-12  Werner Lemberg  <wl (a] gnu.org>
   1228 
   1229 	[autofit] Minor improvement.
   1230 
   1231 	* src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Fix
   1232 	loop.
   1233 
   1234 2012-11-10  Werner Lemberg  <wl (a] gnu.org>
   1235 
   1236 	[autofit] Improve tracing.
   1237 
   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.
   1241 
   1242 2012-11-04  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1243 
   1244 	[base] Fortify emboldening code against egregious distortions.
   1245 
   1246 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Threshold emboldening
   1247 	strength when it leads to segment collapse.
   1248 
   1249 2012-11-03  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1250 
   1251 	[base] Clean up emboldening code and improve comments there.
   1252 
   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.
   1256 
   1257 2012-10-24  Werner Lemberg  <wl (a] gnu.org>
   1258 
   1259 	[autofit] Add standard character to `AF_ScriptClassRec' structure.
   1260 
   1261 	* src/autofit/aftypes.h (AF_ScriptClassRec): Add `standard_char'
   1262 	member.
   1263 	(AF_DEFINE_SCRIPT_CLASS): Updated.
   1264 
   1265 	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Use it.
   1266 	(af_latin_metrics_init, af_latin_script_class): Updated.
   1267 
   1268 	* src/autofit/aflatin.c (af_latin2_metrics_init_widths): Use it.
   1269 	(af_latin2_metrics_init, af_latin2_script_class): Updated.
   1270 
   1271 	* src/autofit/afcjk.c (af_cjk_metrics_init_widths): Use it.
   1272 	(af_cjk_metrics_init, af_cjk_script_class): Updated.
   1273 
   1274 	* src/autofit/afindic.c	(af_indic_metrics_init,
   1275 	af_indic_script_class): Updated.
   1276 
   1277 	* src/autofit/afcjk.h, src/autofit/aflatin.h: Updated.
   1278 
   1279 	* src/autofit/afdummy.c: Updated.
   1280 
   1281 2012-10-24  Werner Lemberg  <wl (a] gnu.org>
   1282 
   1283 	[autofit] Only use Unicode CMap.
   1284 
   1285 	* src/autofit/aflatin.c (af_latin_metrics_init): Implement it, to be
   1286 	in sync with `af_face_globals_compute_script_coverage'.
   1287 
   1288 2012-10-21  Werner Lemberg  <wl (a] gnu.org>
   1289 
   1290 	[psaux] Improve parsing of invalid numbers.
   1291 
   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.
   1297 
   1298 2012-10-21  Werner Lemberg  <wl (a] gnu.org>
   1299 
   1300 	[smooth] Improve tracing.
   1301 
   1302 	* src/smooth/ftgrays.c (gray_sweep): Trace last sweep line of
   1303 	current band also.
   1304 
   1305 2012-10-20  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1306 
   1307 	[truetype] Cheaper way to threshold angles between vectors.
   1308 
   1309 	* src/truetype/ttinterp.c (Ins_ISECT): Thresholding tangent is a lot
   1310 	cheaper than thresholding sine.
   1311 
   1312 2012-10-20  Werner Lemberg  <wl (a] gnu.org>
   1313 
   1314 	[cff] Improve parsing of invalid real numbers.
   1315 
   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.
   1319 
   1320 2012-10-20  Andreas Pehnack  <andreas.pehnack (a] me.com>
   1321 
   1322 	[sfnt] Load pure CFF fonts wrapped in SFNT container.
   1323 
   1324 	Such fonts only have a `cmap' and a `CFF' table.
   1325 
   1326 	* src/sfnt/ttload.c (tt_face_load_font_dir): Don't call
   1327 	`check_table_dir' if font signature is `OTTO'.
   1328 
   1329 2012-10-20  Werner Lemberg  <wl (a] gnu.org>
   1330 
   1331 	[psaux] Fix some value overflows and improve tracing.
   1332 
   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.
   1341 
   1342 	* include/freetype/internal/fttrace.h: Add `psconv'.
   1343 
   1344 2012-10-20  Werner Lemberg  <wl (a] gnu.org>
   1345 
   1346 	[autofit] Fix `make multi CC=c++'.
   1347 
   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'.
   1352 
   1353 2012-10-19  Werner Lemberg  <wl (a] gnu.org>
   1354 
   1355 	[cff] Fix more value errors and improve tracing.
   1356 
   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'.
   1363 
   1364 2012-10-17  Werner Lemberg  <wl (a] gnu.org>
   1365 
   1366 	[psaux] Fix some value overflows.
   1367 
   1368 	* src/psaux/psconv.c (PS_Conv_ToFixed): Implement it.
   1369 
   1370 2012-10-17  Bram Tassyns  <BramT (a] enfocus.com>
   1371 
   1372 	[cff] Fix value overflow.
   1373 
   1374 	* src/cff/cffparse.c (cff_parse_fixed_scaled): Implement it.
   1375 
   1376 2012-10-17  Werner Lemberg  <wl (a] gnu.org>
   1377 
   1378 	[truetype] Fix Savannah bug #37572.
   1379 
   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.
   1383 
   1384 2012-09-30  Gilles Espinasse  <g.esp (a] free.fr>
   1385 
   1386 	Remove useless `rm' detection.
   1387 
   1388 	`rm -f' is directly used in the `configure' script created by
   1389 	autoconf, thus no availability test is necessary.
   1390 
   1391 	* builds/unix/configure.raw (RMF): Remove test.
   1392 	* builds/unix/unix-def.in (DELETE): Updated.
   1393 
   1394 2012-09-29  Werner Lemberg  <wl (a] gnu.org>
   1395 
   1396 	[autofit] Minor optimization.
   1397 
   1398 	* src/autofit/afglobal.c (af_face_globals_compute_script_coverage):
   1399 	Add loop condition.
   1400 
   1401 2012-09-29  Werner Lemberg  <wl (a] gnu.org>
   1402 
   1403 	[autofit] Fix thinko.
   1404 
   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.
   1408 
   1409 	* src/autofit/afdummy.c: Updated.
   1410 
   1411 2012-09-18  Werner Lemberg  <wl (a] gnu.org>
   1412 
   1413 	[autofit] Implement `increase-x-height' property.
   1414 
   1415 	* include/freetype/ftautoh.h (FT_Prop_IncreaseXHeight): New
   1416 	structure.
   1417 
   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.
   1422 
   1423 2012-09-18  Werner Lemberg  <wl (a] gnu.org>
   1424 
   1425 	[autofit] Implement Infinality's `increase glyph heights'.
   1426 
   1427 	This is an improved version of a similar fix contained in the
   1428 	so-called `Infinality patch', taken from
   1429 
   1430 	  http://www.infinality.net/fedora/linux/zips/freetype-infinality-2.4.10-20120616_01-x86_64.tar.bz2
   1431 
   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.
   1436 
   1437 	A patch to control `increase_x_height' follows.
   1438 
   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.
   1443 
   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'.
   1447 
   1448 2012-09-18  Werner Lemberg  <wl (a] gnu.org>
   1449 
   1450 	[autofit] Add hierarchical property access to some structures.
   1451 
   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.
   1457 
   1458 	* src/autofit/afglobal.c (af_face_globals_new,
   1459 	af_face_globals_compute_script_coverage,
   1460 	af_face_globals_get_metrics): Updated.
   1461 
   1462 	* src/autofit/afloader.c (af_loader_reset), src/autofit/afmodule.c
   1463 	(af_property_get): Updated.
   1464 
   1465 2012-09-17  Werner Lemberg  <wl (a] gnu.org>
   1466 
   1467 	[type1] Fix Savannah bug #37350.
   1468 
   1469 	* src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Check for ASCII
   1470 	storage only if we actually have at least four bytes.
   1471 
   1472 2012-09-15  Werner Lemberg  <wl (a] gnu.org>
   1473 
   1474 	[autofit] Implement `fallback-script' property.
   1475 
   1476 	* src/autofit/afglobal.c: s/default_script/fallback_script/.
   1477 	* src/autofit/afglobal.h: s/AF_SCRIPT_DEFAULT/AF_SCRIPT_FALLBACK/.
   1478 
   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/.
   1482 
   1483 	* include/freetype/ftautoh.h: Document it.
   1484 
   1485 2012-09-15  Werner Lemberg  <wl (a] gnu.org>
   1486 
   1487 	[autofit] Correct previous Unicode 6.1.0 change.
   1488 
   1489 	The auto-hinter's latin module only handles latin ligatures in the
   1490 	`Alphabetical Presentation Forms' block.
   1491 
   1492 	* src/autofit/aflatin.c (af_latin_uniranges): Fix it.
   1493 
   1494 2012-09-15  Werner Lemberg  <wl (a] gnu.org>
   1495 
   1496 	* src/autofit/afmodule.c: s/FT_Err_/AF_Err_/.
   1497 
   1498 2012-09-15  Werner Lemberg  <wl (a] gnu.org>
   1499 
   1500 	[autofit] Make default script a global property.
   1501 
   1502 	* src/autofit/afmodule.h (AF_ModuleRec): Add `default_script' field.
   1503 
   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.
   1509 
   1510 	* src/autofit/afglobal.h: Updated.
   1511 
   1512 2012-09-15  Werner Lemberg  <wl (a] gnu.org>
   1513 
   1514 	Use `FT_Module' instead of `FT_Library' argument in property funcs.
   1515 
   1516 	This internal change simplifies access to global module data.
   1517 
   1518 	* include/freetype/internal/services/svprop.h
   1519 	(FT_Properties_SetFunc, FT_Properties_GetFunc): Change accordingly.
   1520 
   1521 	* src/base/ftobjs.c (ft_property_do), src/autofit/afmodule.c
   1522 	(af_property_set, af_property_get): Updated.
   1523 
   1524 2012-09-14  Werner Lemberg  <wl (a] gnu.org>
   1525 
   1526 	[autofit] Update to Unicode 6.1.0.
   1527 
   1528 	* src/autofit/afcjk.c (af_cjk_uniranges), src/autofit/aflatin.c
   1529 	(af_latin_uniranges): Add and fix ranges.
   1530 
   1531 2012-09-14  Werner Lemberg  <wl (a] gnu.org>
   1532 
   1533 	[autofit] Pass `AF_Module' instead of `AF_Loader'.
   1534 
   1535 	We want to access the (not yet existing) module's global data later
   1536 	on.
   1537 
   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.
   1543 
   1544 	* src/autofit/afmodule.h: Include `afloader.h'.
   1545 	(AF_ModuleRec): Define here.
   1546 	* src/autofit/afloader.h (AF_Module): Define here.
   1547 	Updated.
   1548 
   1549 2012-09-14  Werner Lemberg  <wl (a] gnu.org>
   1550 
   1551 	[autofit] Fix `make multi'.
   1552 
   1553 	* include/freetype/internal/fttrace.h: Add `afmodule'.
   1554 	* src/autofit/afmodule.c: Include FT_INTERNAL_DEBUG_H.
   1555 	(FT_COMPONENT): Define.
   1556 
   1557 2012-09-14  Werner Lemberg  <wl (a] gnu.org>
   1558 
   1559 	* src/autofit/afmodule.c: s/FT_Autofitter/AF_Module/.
   1560 
   1561 2012-09-12  Werner Lemberg  <wl (a] gnu.org>
   1562 
   1563 	[autofit] Minor reorganization.
   1564 
   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.
   1569 
   1570 2012-09-01  Werner Lemberg  <wl (a] gnu.org>
   1571 
   1572 	[autofit] Implement `glyph-to-script-map' property.
   1573 
   1574 	* include/freetype/ftautoh.h: New public header file.
   1575 	* include/freetype/config/ftheader.h (FT_AUTOHINTER_H): New macro.
   1576 
   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'.
   1581 
   1582 2012-08-31  Werner Lemberg  <wl (a] gnu.org>
   1583 
   1584 	[autofit] Implement properties service framework.
   1585 
   1586 	No properties are added yet.
   1587 
   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.
   1593 
   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.
   1600 
   1601 2012-08-30  Werner Lemberg  <wl (a] gnu.org>
   1602 
   1603 	Implement properties to control FreeType modules.
   1604 
   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.
   1609 
   1610 	* include/freetype/internal/services/svprop.h: New file.
   1611 	* include/freetype/internal/ftserv.h (FT_SERVICE_PROPERTIES_H): New
   1612 	macro.
   1613 
   1614 	* src/base/ftobjs.c: Include FT_SERVICE_PROPERTIES_H.
   1615 	(ft_property_do, FT_Property_Set, FT_Property_Get): New functions.
   1616 
   1617 2012-08-29  Werner Lemberg  <wl (a] gnu.org>
   1618 
   1619 	[docmaker] Allow `-' in tags and identifiers.
   1620 
   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.
   1624 
   1625 2012-08-27  Werner Lemberg  <wl (a] gnu.org>
   1626 
   1627 	[FT_CONFIG_OPTION_PIC] Fix g++ 4.6.2 compiler warnings.
   1628 
   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.
   1647 
   1648 2012-08-27  Werner Lemberg  <wl (a] gnu.org>
   1649 
   1650 	[truetype] Fix compilation warning.
   1651 
   1652 	* src/truetype/ttgload.c (IS_HINTED): Move macro to...
   1653 	* src/truetype/ttobjs.h: This header file.
   1654 
   1655 2012-08-27  Werner Lemberg  <wl (a] gnu.org>
   1656 
   1657 	[autofit, cff, pshinter, psnames] More renamings for orthogonality.
   1658 
   1659 	* src/autofit/afmodule.c, src/autofit/afpic.h:
   1660 	s/AF_AUTOFITTER_/AF_/.
   1661 
   1662 	* src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffparse.c,
   1663 	src/cff/cffpic.h: s/FT_CFF_/CFF_/.
   1664 
   1665 	* src/pshinter/pshmod.c, src/pshinter/pshpic.h:
   1666 	s/FT_PSHINTER_/PSHINTER_/.
   1667 
   1668 	* src/psnames/psmodule.c, src/psnames/pspic.h:
   1669 	s/FT_PSCMAPS/PSCMAPS_/.
   1670 
   1671 2012-08-27  Werner Lemberg  <wl (a] gnu.org>
   1672 
   1673 	[sfnt, truetype] More renamings for orthogonality.
   1674 
   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/.
   1678 
   1679 2012-08-27  Werner Lemberg  <wl (a] gnu.org>
   1680 
   1681 	[autofit] Some macro and variable renamings for orthogonality.
   1682 
   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/.
   1686 
   1687 2012-08-26  Werner Lemberg  <wl (a] gnu.org>
   1688 
   1689 	Fix Savannah bug #37178.
   1690 
   1691 	* src/base/ftobjs.c (FT_Open_Face): Initialize `error' with
   1692 	`FT_Err_Missing_Module' before loop to indicate `no valid drivers'.
   1693 
   1694 2012-08-17  Werner Lemberg  <wl (a] gnu.org>
   1695 
   1696 	* src/base/ftsynth.c (FT_GlyphSlot_Oblique): Fix shear angle.
   1697 
   1698 	The old value was far too large (more than 20).  The new one
   1699 	corresponds to 12, quite common in typography.
   1700 
   1701 2012-08-12  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1702 
   1703 	[smooth] Fix Savannah bug #37017.
   1704 
   1705 	* src/smooth/ftgrays.c (gray_render_cubic): Use a different set of
   1706 	checks when detecting super curvy splines to be split.
   1707 
   1708 2012-08-05  Werner Lemberg  <wl (a] gnu.org>
   1709 
   1710 	[autofit] Improve recognition of flat segments.
   1711 
   1712 	Problem reported by Brad Dunzer <BDunzer (a] extensis.com>.
   1713 
   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.
   1717 
   1718 2012-08-05  Werner Lemberg  <wl (a] gnu.org>
   1719 
   1720 	[autofit] Variable renamings.
   1721 
   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/.
   1726 
   1727 2012-07-31  Werner Lemberg  <wl (a] gnu.org>
   1728 
   1729 	[type1] Fix Savannah bug #37000.
   1730 
   1731 	* src/type1/t1load.c (parse_encoding): Fix order of checks.
   1732 
   1733 2012-07-17  Werner Lemberg  <wl (a] gnu.org>
   1734 
   1735 	[psaux] Fix Savannah bug #36833.
   1736 
   1737 	* src/psaux/t1decode.c (t1operator_seac): `seac' is not a valid
   1738 	operator if we want metrics only.
   1739 
   1740 2012-07-16  Werner Lemberg  <wl (a] gnu.org>
   1741 
   1742 	[type1] Fix Savannah bug #36832.
   1743 
   1744 	* src/type1/t1load.c (parse_charstrings): Reject negative number of
   1745 	glyphs.
   1746 
   1747 2012-07-13  Werner Lemberg  <wl (a] gnu.org>
   1748 
   1749 	[type1] Fix Savannah bug #36829.
   1750 
   1751 	* src/type1/t1load.c (parse_encoding): Check cursor position after
   1752 	call to T1_Skip_PS_Token.
   1753 
   1754 2012-07-12  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1755 
   1756 	Revert the last commit 45337b07.
   1757 
   1758 	* src/base/ftstroke.c (FT_Stroker_New): Revert the previous change.
   1759 
   1760 2012-07-11  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1761 
   1762 	[ftstroke] Fix uninitialized return value.
   1763 
   1764 	* src/base/ftstroke.c (FT_Stroker_New): Return FT_Err_Ok instead.
   1765 
   1766 2012-07-11  Werner Lemberg  <wl (a] gnu.org>
   1767 
   1768 	[smooth] Avoid memory leak in case of failure.
   1769 
   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.
   1773 
   1774 2012-07-09  Werner Lemberg  <wl (a] gnu.org>
   1775 
   1776 	Fix compilation with MSVC 5.0.
   1777 
   1778 	Problem reported by Peter Breitenlohner and Akira Kakuto.
   1779 
   1780 	* include/freetype/config/ftstdlib.h (ft_setjmp): Updated.
   1781 	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove cast.
   1782 
   1783 2012-07-09  Werner Lemberg  <wl (a] gnu.org>
   1784 
   1785 	[autofit] Improve debugging messages; do some code cleanup.
   1786 
   1787 	* src/autofit/aflatin.c (af_latin_align_linked_edge,
   1788 	af_latin_hint_edges): Synchronize with formatting used in the
   1789 	ttfautohint project.
   1790 
   1791 2012-07-07  Gilles Espinasse  <g.esp (a] free.fr>
   1792 
   1793 	Fix strict-aliasing warning.
   1794 
   1795 	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Avoid double cast.
   1796 
   1797 2012-07-07  Dave Thomas  <dave.thomas (a] metaforic.com>
   1798 
   1799 	[ARM] Fix FT_MulFix_arm.
   1800 
   1801 	* include/freetype/config/ftconfig.h (FT_MulFix_arm) [__arm__]:
   1802 	Avoid ADDS instruction to clobber condition codes.
   1803 
   1804 2012-07-06  Werner Lemberg  <wl (a] gnu.org>
   1805 
   1806 	[autofit] Do some code cleanup.
   1807 
   1808 	* src/autofit/afglobal.c (af_face_globals_new): Simplify.
   1809 
   1810 	* src/autofit/afhints.c: Use `FT_TRACE7' instead of `printf'
   1811 	everywhere.
   1812 	(FT_COMPONENT): New macro.
   1813 	(af_glyph_hints_done): Simplify.
   1814 
   1815 	* include/freetype/internal/fttrace.h: Updated.
   1816 
   1817 2012-07-05  Werner Lemberg  <wl (a] gnu.org>
   1818 
   1819 	[autofit] Improve output of debugging information.
   1820 
   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.
   1824 
   1825 2012-07-04  Werner Lemberg  <wl (a] gnu.org>
   1826 
   1827 	[autofit] Fix Savannah bug #36091.
   1828 
   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.
   1833 
   1834 2012-07-04  Werner Lemberg  <wl (a] gnu.org>
   1835 
   1836 	[autofit] Beautify blue zone tracing.
   1837 
   1838 	* src/autofit/aflatin.c (af_latin_metrics_init_blues),
   1839 	src/autofit/aflatin2.c (af_latin2_metrics_init_blues): Implement it.
   1840 
   1841 2012-07-03  Werner Lemberg  <wl (a] gnu.org>
   1842 
   1843 	[autofit] Quantize stem widths.
   1844 
   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.
   1850 
   1851 2012-07-03  Werner Lemberg  <wl (a] gnu.org>
   1852 
   1853 	[autofit] Minor speed-up.
   1854 
   1855 	* src/autofit/afangles (af_sort_pos, af_sort_widths): Don't swap
   1856 	elements if they are equal.
   1857 
   1858 2012-06-30  Gilles Espinasse  <g.esp (a] free.fr>
   1859 
   1860 	Fix `checking if gcc static flag -static works' test.
   1861 
   1862 	On my linux build tree, I receive yes answer in every package I
   1863 	build except FreeType for this test checking if gcc static flag
   1864 	`-static' works
   1865 
   1866 	In FreeType, no is received, unless bzip2 and zlib are disabled using
   1867 
   1868 	  ./configure --without-bzip2 --without-zlib
   1869 
   1870 	The reason is that bzip2 and zlib tests add `-lz' and `-lbz2' to
   1871 	LDFLAGS and this broke static flag test.
   1872 
   1873 	* builds/unix/configure.raw: Update CFLAGS and LDFLAGS only after
   1874 	LT_INIT has run.
   1875 
   1876 2012-06-28  Infinality  <infinality (a] infinality.net>
   1877 
   1878 	[truetype] Fix various artifacts.
   1879 
   1880 	Verdana was broken in the original Infinality commit.  Also
   1881 	includes other minor fixes.
   1882 
   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.
   1890 
   1891 	* src/truetype/ttsubpix.c: Updated.
   1892 	(sph_set_tweaks): Re-execute fpgm always.
   1893 
   1894 2012-06-28  Gilles Espinasse  <g.esp (a] free.fr>
   1895 
   1896 	Fix CFLAGS and LDFLAGS share configure test.
   1897 
   1898 	* builds/unix/configure.raw: Fix typo.
   1899 
   1900 2012-06-28  Werner Lemberg  <wl (a] gnu.org>
   1901 
   1902 	[truetype] Set the `subpixel_positioned' flag unconditionally.
   1903 
   1904 	This is how the code currently behaves.
   1905 
   1906 	* src/truetype/ttgload.c (tt_loader_init): Do it.
   1907 
   1908 2012-06-27  Werner Lemberg  <wl (a] gnu.org>
   1909 
   1910 	Fix conditional compilation.
   1911 
   1912 	* src/base/basepic.c: Use FT_CONFIG_OPTION_MAC_FONTS.
   1913 
   1914 2012-06-27  Werner Lemberg  <wl (a] gnu.org>
   1915 
   1916 	Fix conditional compilation.
   1917 
   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.
   1921 
   1922 	* src/autofit/afcjk.h: Use AF_CONFIG_OPTION_CJK.
   1923 
   1924 	* src/truetype/ttgload.c (tt_loader_init): Fix compiler warning.
   1925 
   1926 	* src/truetype/ttinterp.c (Ins_MSIRP): Fix compiler warning.
   1927 
   1928 	* src/truetype/ttinterp.h: Use
   1929 	TT_CONFIG_OPTION_BYTECODE_INTERPRETER.
   1930 
   1931 2012-06-26  Infinality  <infinality (a] infinality.net>
   1932 
   1933 	[truetype] Remove unused rounding functionality.
   1934 
   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.
   1940 
   1941 	* include/freetype/internal/ftobjs.h (FT_PIX_FLOOR_GRID,
   1942 	FT_PIX_ROUND_GRID, FT_PIX_CEIL_GRID): Removed.
   1943 
   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.
   1957 
   1958 2012-06-25  Werner Lemberg  <wl (a] gnu.org>
   1959 
   1960 	[cff] Fix Savannah bug #36705.
   1961 
   1962 	Handle numbers like 2.001 correctly.
   1963 
   1964 	* src/cff/cffparse.c (cff_parse_real): Avoid negative values for
   1965 	`shift'.
   1966 
   1967 2012-06-18  Infinality  <infinality (a] infinality.net>
   1968 
   1969 	[truetype] Support subpixel hinting.
   1970 
   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.
   1976 
   1977 	Most of the code is based on the ClearType whitepaper written by
   1978 	Greg Hitchcock
   1979 
   1980 	  https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
   1981 
   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.
   1987 
   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.
   1992 
   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.
   1996 
   1997 	* src/truetype/ttsubpix.h: New file, holding the tweaking rules.
   1998 
   1999 	* include/freetype/config/ftoption.h, src/devel/ftoption.h
   2000 	(TT_CONFIG_OPTION_SUBPIXEL_HINTING): New macro.
   2001 
   2002 	* include/freetype/internal/ftobjs.h (FT_PIX_FLOOR_GRID,
   2003 	FT_PIX_ROUND_GRID, FT_PIX_CEIL_GRID): New macros.
   2004 
   2005 	* src/truetype/truetype.c [TT_USE_BYTECODE_INTERPRETER]: Include
   2006 	`ttsubpix.c'.
   2007 
   2008 	* src/truetype/ttgload.c: Include `ttsubpix.h'.
   2009 	[All changes below are guarded by TT_CONFIG_OPTION_SUBPIXEL_HINTING.]
   2010 
   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.
   2016 
   2017 	* src/truetype/rules.mk (TT_DRV_SRC): Updated.
   2018 
   2019 	* src/truetype/ttinterp.c: Include `ttsubpix.h'.
   2020 	[Where necessary, changes below are guarded by
   2021 	TT_CONFIG_OPTION_SUBPIXEL_HINTING.]
   2022 
   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.
   2042 
   2043 	* src/truetype/ttinterp.h: Updated.
   2044 	(SPH_TweakRule, SPH_ScaleRule): New structures for tweaks.
   2045 	(TT_ExecContextRec): Add members for subpixel hinting support.
   2046 
   2047 	* src/truetype/ttobjs.h (TT_DefRecord): Add `inline_delta' member.
   2048 
   2049 2012-06-15  Werner Lemberg  <wl (a] gnu.org>
   2050 
   2051 	* Version 2.4.10 released.
   2052 	=========================
   2053 
   2054 
   2055 	Tag sources with `VER-2-4-10'.
   2056 
   2057 	* docs/VERSION.DLL: Update documentation and bump version number to
   2058 	2.4.10.
   2059 
   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/.
   2073 
   2074 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
   2075 
   2076 	* builds/unix/configure.raw (version_info): Set to 15:0:9.
   2077 
   2078 2012-06-15  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2079 
   2080 	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Improve spacing.
   2081 
   2082 	* docs/CHANGES: Updated.
   2083 
   2084 2012-06-14  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2085 
   2086 	* builds/exports.mk: Add CCexe_CFLAGS and CCexe_LDFLAGS.
   2087 
   2088 	to pass special compiler/linker flags under cross development.
   2089 	Suggested by Savannah bug #36367.
   2090 
   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.
   2094 
   2095 2012-06-14  Werner Lemberg  <wl (a] gnu.org>
   2096 
   2097 	* docs/CHANGES: Updated.
   2098 
   2099 2012-06-14  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2100 
   2101 	[truetype] Add new versions of NEC FA family to tricky font list.
   2102 
   2103 	NEC FA family dated in 1996 have different checksum.
   2104 	Reported by Johnson Y. Yan <yinsen_yan (a] foxitsoftware.com>; see
   2105 
   2106 	  https://lists.gnu.org/archive/html/freetype-devel/2012-06/msg00023.html
   2107 
   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.
   2113 
   2114 2012-06-06  Werner Lemberg  <wl (a] gnu.org>
   2115 
   2116 	[ftraster] Fix rounding issue causing visual artifacts.
   2117 
   2118 	Problem reported by jola <hans-jochen.lau (a] lhsystems.com>; see
   2119 
   2120 	  https://lists.gnu.org/archive/html/freetype-devel/2012-05/msg00036.html
   2121 
   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'.
   2125 
   2126 2012-05-28  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2127 
   2128 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Simplify.
   2129 
   2130 	We now use the cross product of the direction vectors to compute the
   2131 	outline's orientation.
   2132 
   2133 2012-05-28  Werner Lemberg  <wl (a] gnu.org>
   2134 
   2135 	* docs/CHANGES: Updated.
   2136 
   2137 2012-05-28  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2138 
   2139 	New function FT_Outline_EmboldenXY.
   2140 
   2141 	* include/freetype/ftoutln.h (FT_Outline_EmboldenXY): Define it.
   2142 
   2143 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Implement it, using a
   2144 	simplified emboldening algorithm.
   2145 	(FT_Outline_Embolden): Make it a special case of
   2146 	`FT_Outline_EmboldenXY'
   2147 
   2148 2012-05-07  Werner Lemberg  <wl (a] gnu.org>
   2149 
   2150 	[type1] Fix Savannah bug #36386.
   2151 
   2152 	* src/type1/t1load.c (t1_load_keyword): Ignore keyword if context is
   2153 	not valid.
   2154 
   2155 2012-04-07  Werner Lemberg  <wl (a] gnu.org>
   2156 
   2157 	Remove compiler warning.
   2158 
   2159 	* src/truetype/ttgload.c (TT_Load_Glyph)
   2160 	[!TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Access `glyph->face' directly.
   2161 
   2162 2012-03-28  Werner Lemberg  <wl (a] gnu.org>
   2163 
   2164 	[autofit] Properly copy scaler flags to script metrics object.
   2165 
   2166 	Without this patch, only the dummy and cjk autohinter modules get
   2167 	them (since they copy the whole scaler object).
   2168 
   2169 	* src/autofit/aflatin.c (af_latin_metrics_scale),
   2170 	src/autofit/aflatin2.c (af_latin2_metrics_scale): Implement it.
   2171 
   2172 2012-03-22  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2173 
   2174 	[bdflib] Remove redundant macro.
   2175 
   2176 	* src/bdf/bdflib.c (isdigok): Remove and replace with sbitset, which
   2177 	is exactly the same.
   2178 
   2179 2012-03-20  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2180 
   2181 	[configure] Fix Savannah bug #35644.
   2182 
   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__.
   2187 
   2188 2012-03-20  Werner Lemberg  <wl (a] gnu.org>
   2189 
   2190 	[bdf] Improvement to Savannah bug #35656.
   2191 
   2192 	* src/bdf/bdflib.c (isdigok): Add cast, as suggested in report.
   2193 
   2194 2012-03-17  Chris Liddell  <chris.liddell (a] artifex.com>
   2195 
   2196 	[type1] Fix Savannah bug #35847.
   2197 
   2198 	* src/type1/t1load.c (parse_subrs): Fix the loop exit condition;
   2199 	we want to exit when we have run out of data.
   2200 
   2201 2012-03-16  Werner Lemberg  <wl (a] gnu.org>
   2202 
   2203 	[bdf] Really fix Savannah bug #35658.
   2204 
   2205 	* src/bdf/bdflib.c (_bdf_list_split): Add one more `field' initializer.
   2206 
   2207 2012-03-14  Yann Droneaud  <yann (a] droneaud.fr>
   2208 
   2209 	[sfnt] Make arrays static like all others.
   2210 
   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.
   2214 
   2215 2012-03-14  Huw Davies  <huw (a] codeweavers.com>
   2216 
   2217 	[sfnt] A refinement of the previous commit.
   2218 
   2219 	* src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16,
   2220 	tt_name_entry_ascii_from_other): Stop at null byte.
   2221 
   2222 2012-03-14  Huw Davies  <huw (a] codeweavers.com>
   2223 
   2224 	[sfnt] Add `name' table compatibility to MS Windows.
   2225 
   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.
   2229 
   2230 2012-03-14  Werner Lemberg  <wl (a] gnu.org>
   2231 
   2232 	[type1] Fix Savannah bug #35833.
   2233 
   2234 	Based on the patch given in the bug report.
   2235 
   2236 	* src/type1/t1load.c (IS_INCREMENTAL): New macro.
   2237 	(read_binary_data): Add parameter `incremental'.
   2238 	Update all callers using `IS_INCREMENTAL'.
   2239 
   2240 2012-03-11  Werner Lemberg  <wl (a] gnu.org>
   2241 
   2242 	[autofit] Return correct linear advance width values.
   2243 
   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.
   2252 
   2253 	Using the TrueType hinter, the correct value (1367) of `afii10023'
   2254 	was returned, but the autohinter mysteriously returned 1366.
   2255 
   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.
   2266 
   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.
   2270 
   2271 2012-03-10  Werner Lemberg  <wl (a] gnu.org>
   2272 
   2273 	[truetype] Fix SSW instruction.
   2274 
   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.
   2278 
   2279 2012-03-09  Vinnie Falco  <vinnie.falco (a] gmail.com>
   2280 
   2281 	Prepare source code for amalgamation.
   2282 
   2283 	* include/freetype/freetype.h: Swap order of preprocessor blocks.
   2284 
   2285 2012-03-08  Werner Lemberg  <wl (a] gnu.org>
   2286 
   2287 	* Version 2.4.9 released.
   2288 	=========================
   2289 
   2290 
   2291 	Tag sources with `VER-2-4-9'.
   2292 
   2293 	* docs/CHANGES: Updated.
   2294 
   2295 	* docs/VERSION.DLL: Update documentation and bump version number to
   2296 	2.4.9.
   2297 
   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/.
   2311 
   2312 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 9.
   2313 
   2314 	* builds/unix/configure.raw (version_info): Set to 14:1:8.
   2315 
   2316 2012-03-08  Werner Lemberg  <wl (a] gnu.org>
   2317 
   2318 	[bdf] Add missing overflow check.
   2319 
   2320 	* src/bdf/bdflib.c (_bdf_parse_glyphs) <BITMAP>: Add threshold for
   2321 	`glyph->bpr'.
   2322 
   2323 2012-03-07  Vinnie Falco  <vinnie.falco (a] gmail.com>
   2324 
   2325 	Prepare source code for amalgamation.
   2326 
   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.
   2336 
   2337 2012-03-03  Werner Lemberg  <wl (a] gnu.org>
   2338 
   2339 	Fix Savannah bug #35660.
   2340 
   2341 	For some divisions, we use casts to 32bit entities.  Always guard
   2342 	against division by zero with these casts also.
   2343 
   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).
   2347 
   2348 2012-03-03  Werner Lemberg  <wl (a] gnu.org>
   2349 
   2350 	[psaux] Fix handling of track kerning.
   2351 
   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.
   2355 
   2356 2012-03-02  Werner Lemberg  <wl (a] gnu.org>
   2357 
   2358 	[truetype] Fix Savannah bug #35689.
   2359 
   2360 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check first outline
   2361 	point.
   2362 
   2363 2012-03-01  Werner Lemberg  <wl (a] gnu.org>
   2364 
   2365 	[bdf] Fix Savannah bug #35656.
   2366 
   2367 	* src/bdf/bdflib.c (_bdf_parse_glyphs) <_BDF_BITMAP>: Check validity
   2368 	of nibble characters instead of accessing `a2i' array.
   2369 
   2370 2012-03-01  Werner Lemberg  <wl (a] gnu.org>
   2371 
   2372 	[winfonts] Fix Savannah bug #35659.
   2373 
   2374 	* src/winfonts/winfnt.c (FNT_Face_Init): Check number of glyphs.
   2375 
   2376 2012-03-01  Werner Lemberg  <wl (a] gnu.org>
   2377 
   2378 	[bdf] Fix Savannah bug #35658.
   2379 
   2380 	* src/bdf/bdflib.c (_bdf_list_split): Initialize `field' elements
   2381 	properly.
   2382 
   2383 2012-03-01  Werner Lemberg  <wl (a] gnu.org>
   2384 
   2385 	[psaux] Fix Savannah bug #35657.
   2386 
   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'.
   2390 
   2391 	* src/psaux/psconv.c (PS_Conv_Strtol, PS_Conv_ToFixed,
   2392 	PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Fix boundary checking.
   2393 
   2394 2012-03-01  Werner Lemberg  <wl (a] gnu.org>
   2395 
   2396 	[truetype] Fix Savannah bug #35646.
   2397 
   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.
   2401 
   2402 2012-03-01  Werner Lemberg  <wl (a] gnu.org>
   2403 
   2404 	[bdf] Fix Savannah bug #35643.
   2405 
   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.
   2409 
   2410 2012-03-01  Werner Lemberg  <wl (a] gnu.org>
   2411 
   2412 	[bdf] Fix Savannah bug #35641.
   2413 
   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.
   2417 
   2418 2012-03-01  Werner Lemberg  <wl (a] gnu.org>
   2419 
   2420 	[truetype] Fix Savannah bug #35640.
   2421 
   2422 	* src/truetype/ttinterp.c (SkipCode, TT_RunIns): Fix boundary check
   2423 	for NPUSHB and NPUSHW instructions.
   2424 
   2425 2012-02-29  Werner Lemberg  <wl (a] gnu.org>
   2426 
   2427 	[truetype] Fix Savannah bug #35601.
   2428 
   2429 	* src/truetype/ttinterp.c (Ins_SHZ): Use number of points instead of
   2430 	last point for loop.
   2431 	Also remove redundant boundary check.
   2432 
   2433 2012-02-29  Werner Lemberg  <wl (a] gnu.org>
   2434 
   2435 	[truetype] Remove redundant check.
   2436 
   2437 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
   2438 	second check for ordered contour start points.
   2439 
   2440 2012-02-29  Werner Lemberg  <wl (a] gnu.org>
   2441 
   2442 	[truetype] Make SHC instruction behave similar to MS rasterizer.
   2443 
   2444 	* src/truetype/ttinterp.c (Ins_SHC): Handle virtual contour in
   2445 	twilight zone.
   2446 
   2447 2012-02-29  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2448 
   2449 	Avoid modulo operators against a power-of-two denominator.
   2450 
   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.
   2457 
   2458 2012-02-29  Werner Lemberg  <wl (a] gnu.org>
   2459 
   2460 	[autofit] Don't synchronize digit widths for light rendering mode.
   2461 
   2462 	We don't hint horizontally in this mode.
   2463 
   2464 	* src/autofit/afloader.c (af_loader_load_g) <Hint_Metrics>:
   2465 	Implement it.
   2466 
   2467 2012-02-26  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2468 
   2469 	[type42] Minor code optimization (again).
   2470 
   2471 	* src/type42/t42parse.c (t42_parse_sfnts): Simplify previous change.
   2472 
   2473 2012-02-26  Mateusz Jurczyk  <mjurczyk (a] google.com>
   2474 	    Werner Lemberg  <wl (a] gnu.org>
   2475 
   2476 	[smooth] Fix Savannah bug #35604.
   2477 
   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.
   2481 
   2482 2012-02-26  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2483 
   2484 	[type42] Minor code optimization.
   2485 
   2486 	* src/type42/t42parse.c (t42_parse_sfnts): Use bitmask instead of
   2487 	modulo operator.
   2488 
   2489 2012-02-26  Werner Lemberg  <wl (a] gnu.org>
   2490 
   2491 	* docs/CHANGES: Updated.
   2492 
   2493 2012-02-26  Werner Lemberg  <wl (a] gnu.org>
   2494 
   2495 	[type1] Fix Savannah bug #35608.
   2496 
   2497 	* src/type1/t1parse.c (T1_Get_Private_Dict): Reject too short
   2498 	dictionaries.
   2499 
   2500 2012-02-26  Werner Lemberg  <wl (a] gnu.org>
   2501 
   2502 	[bdf] Support `ENCODING -1 <n>' format.
   2503 
   2504 	* src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Implement it.
   2505 
   2506 2012-02-26  Werner Lemberg  <wl (a] gnu.org>
   2507 
   2508 	[bdf] Fix Savannah bug #35607.
   2509 
   2510 	* src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Normalize
   2511 	negative encoding values.
   2512 
   2513 2012-02-26  Werner Lemberg  <wl (a] gnu.org>
   2514 
   2515 	[type1] Fix Savannah bug #35606.
   2516 
   2517 	* src/type1/t1load.c (parse_subrs): Add proper guards for `strncmp'.
   2518 
   2519 	* src/psaux/psobjs.c (ps_parser_skip_PS_token): Emit error message
   2520 	only if cur < limit.
   2521 
   2522 2012-02-25  Werner Lemberg  <wl (a] gnu.org>
   2523 
   2524 	[pcf] Fix Savannah bug #35603.
   2525 
   2526 	* src/pcf/pcfread.c (pcf_get_properties): Assure final zero byte in
   2527 	`strings' array.
   2528 
   2529 2012-02-25  Werner Lemberg  <wl (a] gnu.org>
   2530 
   2531 	[type42] Fix Savannah bug #35602.
   2532 
   2533 	* src/type42/t42parse.c (t42_parse_sfnts): Check `string_size' more
   2534 	thoroughly.
   2535 
   2536 2012-02-25  Werner Lemberg  <wl (a] gnu.org>
   2537 
   2538 	[bdf] Fix Savannah bugs #35599 and #35600.
   2539 
   2540 	* src/bdf/bdflib.c (ACMSG16): New warning message.
   2541 	(_bdf_parse_glyphs) <_BDF_BITMAP>: Check line length.
   2542 
   2543 2012-02-24  Werner Lemberg  <wl (a] gnu.org>
   2544 
   2545 	[bdf] Fix Savannah bugs #35597 and #35598.
   2546 
   2547 	* src/bdf/bdflib.c (_bdf_is_atom): Fix handling of property value.
   2548 
   2549 2012-02-24  Vinnie Falco  <vinnie.falco (a] gmail.com>
   2550 
   2551 	Prepare source code for amalgamation (6/6).
   2552 
   2553 	* src/cff/cffdrivr.c: s/Load_Glyph/cff_glyph_load/.
   2554 
   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/.
   2558 
   2559 	* src/psaux/t1cmap.c: s/t1_get_glyph_name/psaux_get_glyph_name/.
   2560 
   2561 	* src/truetype/ttdriver.c: s/Load_Glyph/tt_glyph_load/.
   2562 
   2563 	* src/type1/t1load.c: s/parse_font_matrix/t1_parse_font_matrix/.
   2564 
   2565 2012-02-24  Vinnie Falco  <vinnie.falco (a] gmail.com>
   2566 
   2567 	Prepare source code for amalgamation (5/6).
   2568 
   2569 	* include/freetype/fterrors.h: Undefine FT_KEEP_ERR_PREFIX after
   2570 	using it.
   2571 
   2572 2012-02-22  Vinnie Falco  <vinnie.falco (a] gmail.com>
   2573 
   2574 	Prepare source code for amalgamation (4/6).
   2575 
   2576 	* src/smooth/ftgrays.c, src/raster/ftraster.c: Undefine RAS_ARG,
   2577 	RAS_ARGS, RAS_VAR, and RAS_VARS before defining it.
   2578 
   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/.
   2583 
   2584 2012-02-20  Vinnie Falco  <vinnie.falco (a] gmail.com>
   2585 
   2586 	Prepare source code for amalgamation (3/6).
   2587 
   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/.
   2592 
   2593 2012-02-20  Vinnie Falco  <vinnie.falco (a] gmail.com>
   2594 
   2595 	Prepare source code for amalgamation (2/6).
   2596 
   2597 	* src/smooth/ftgrays.c, src/raster/ftraster.c: Undefine FLOOR,
   2598 	CEILING, TRUNC, and SCALED before defining it.
   2599 
   2600 2012-02-20  Vinnie Falco  <vinnie.falco (a] gmail.com>
   2601 
   2602 	Prepare source code for amalgamation (1/6).
   2603 
   2604 	See discussion starting at
   2605 
   2606 	  https://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00037.html
   2607 
   2608 	* src/smooth/ftgrays.c: s/TBand/gray_TBand/.
   2609 	* src/raster/ftraster.c: s/TBand/black_TBand/.
   2610 
   2611 2012-02-17  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2612 
   2613 	[autofit] Fix outline flags.
   2614 
   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
   2618 
   2619 	  https://lists.gnu.org/archive/html/freetype-devel/2012-02/msg00046.html
   2620 
   2621 2012-02-11  Werner Lemberg  <wl (a] gnu.org>
   2622 
   2623 	[truetype] Fix Savannah bug #35466.
   2624 
   2625 	Jump instructions are now bound to the current function.  The MS
   2626 	Windows rasterizer behaves the same, as confirmed by Greg Hitchcock.
   2627 
   2628 	* src/truetype/ttinterp.h (TT_CallRec): Add `Cur_End' element.
   2629 	* src/truetype/ttobjs.h (TT_DefRecord): Add `end' element.
   2630 
   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.
   2634 
   2635 2012-02-11  Werner Lemberg  <wl (a] gnu.org>
   2636 
   2637 	We don't use `extensions'.
   2638 
   2639 	* include/freetype/internal/ftobjs.h (FT_DriverRec): Remove
   2640 	`extensions' field.
   2641 
   2642 2012-02-11  Werner Lemberg  <wl (a] gnu.org>
   2643 
   2644 	Clean up `generic' fields.
   2645 
   2646 	* include/freetype/internal/ftobjs.h (FT_ModuleRec, FT_LibraryRec):
   2647 	Remove `generic' field since users can't access it.
   2648 
   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'.
   2652 
   2653 2012-02-07  Werner Lemberg  <wl (a] gnu.org>
   2654 
   2655 	[autofit] Harmonize function arguments.
   2656 
   2657 	* src/autofit/afloader.c, src/autofit/afloader.h: Use `FT_Int32' for
   2658 	`load_flags'.
   2659 
   2660 2012-02-07  Werner Lemberg  <wl (a] gnu.org>
   2661 
   2662 	* src/cff/cffobjs.c (cff_face_init): Remove unnecessary casts.
   2663 
   2664 2012-01-17  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2665 
   2666 	[gxvalid] Fix Savannah bug #35286.
   2667 
   2668 	Patch submitted by anonymous reporter.
   2669 
   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.
   2674 
   2675 2012-01-17  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2676 
   2677 	[raccess] Modify for PIC build.
   2678 
   2679 	Based on the patch provided by Erik Dahlstrom <ed (a] opera.com>,
   2680 	https://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00010.html
   2681 
   2682 	Also `raccess_guess_table[]' and `raccess_rule_by_darwin_vfs()'
   2683 	are renamed with `ft_' suffixes.
   2684 
   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.
   2688 
   2689 	* src/base/ftrfork.c: Declarations of FT_RFork_Rule,
   2690 	raccess_guess_rec, are moved to...
   2691 	* include/freetype/internal/ftrfork.h: Here.
   2692 
   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}.
   2699 
   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.
   2711 
   2712 2012-01-16  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2713 
   2714 	Remove trailing spaces.
   2715 
   2716 2012-01-16  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2717 
   2718 	Formatting PIC related sources.
   2719 
   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.
   2730 
   2731 2012-01-16  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2732 
   2733 	[autofit] Fix the inclusion of `aflatin2.h' in PIC file.
   2734 
   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.
   2739 
   2740 2012-01-16  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2741 
   2742 	[cff] Remove redundant declarations of cff_cmap_XXX_class_rec.
   2743 
   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.
   2750 
   2751 2012-01-15  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2752 
   2753 	Fix redundant declaration warning in PIC mode.
   2754 
   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.
   2767 
   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.
   2772 
   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}.
   2787 
   2788 2012-01-15  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2789 
   2790 	Make pspic.c to include module error header to fix multi build.
   2791 
   2792 	* src/psnames/pspic.c: Include `psnamerr.h'.
   2793 
   2794 2012-01-14  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2795 
   2796 	[base] Fix a dereference of uninitialized variable in PIC mode.
   2797 
   2798 	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): `glyph' must be
   2799 	set before dereferring to obtain `library'.  The initialization
   2800 	of `clazz', `glyph', `library' and NULL pointer check are
   2801 	reordered to minimize PIC conditionals.
   2802 
   2803 2012-01-14  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2804 
   2805 	[base] Insert explicit cast for GCC 4.6 in PIC mode.
   2806 
   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.
   2814 
   2815 2012-01-13  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2816 
   2817 	Fix PIC build broken by d9145241fe378104ba4c12a42534549faacc92e6.
   2818 
   2819 	Under PIC configuration, FT_{CFF,PSCMAPS,SFNT,TT}_SERVICES_GET
   2820 	take no arguments but derefer the variable named `library'
   2821 	internally.
   2822 
   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.
   2826 
   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.
   2830 
   2831 2012-01-13  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2832 
   2833 	Make PIC files include module error headers, to use the error codes
   2834 	with per-module prefix.
   2835 
   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'.
   2843 
   2844 2012-01-04  Tobias Ringstrm  <tobias (a] ringis.se>
   2845 
   2846 	[truetype] Fix IP instruction if x_ppem != y_ppem.
   2847 
   2848 	* src/truetype/ttinterp.c (Ins_IP): Scale `orus' coordinates
   2849 	properly.
   2850 
   2851 2012-01-02  Werner Lemberg  <wl (a] gnu.org>
   2852 
   2853 	Fix tracing message for `loca' table.
   2854 
   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.
   2857 
   2858 2011-12-10  Werner Lemberg  <wl (a] gnu.org>
   2859 
   2860 	Add some variable initializations.
   2861 	Reported by Richard COOK <rscook (a] unicode.org>.
   2862 
   2863 	* src/type1/t1driver.c (t1_ps_get_font_value): Initialize `val'.
   2864 	* src/smooth/ftgrays.c (gray_render_conic): Initialize `levels'
   2865 	earlier.
   2866 
   2867 2011-12-08  Werner Lemberg  <wl (a] gnu.org>
   2868 
   2869 	Fix serious scaling bug in `FT_Get_Advances'.
   2870 
   2871 	* src/base/ftadvanc.c (FT_Get_Advances): Advance values returned by
   2872 	`FT_Load_Glyph' must be simply multiplied by 1024.
   2873 
   2874 2011-12-08  Werner Lemberg  <wl (a] gnu.org>
   2875 
   2876 	* src/bdf/bdflib.c (_bdf_parse_start): Drop redundant error tracing.
   2877 
   2878 2011-12-02  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2879 
   2880 	[mac] Unify DARWIN_NO_CARBON with FT_MACINTOSH.
   2881 
   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).
   2891 
   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.
   2899 
   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.
   2904 
   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.
   2908 
   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.
   2913 
   2914 2011-11-30  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2915 
   2916 	Fix Savannah bug #34728 (`make devel' on Mac OS X).
   2917 
   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.
   2921 
   2922 2011-11-30  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2923 
   2924 	[apinames] Fix the overflow of signed integer hash.
   2925 
   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.
   2931 
   2932 2011-11-30  Werner Lemberg  <wl (a] gnu.org>
   2933 
   2934 	[winfonts] Remove casts.
   2935 
   2936 	* src/winfonts/winfnt.c (winfnt_driver_class): Remove all casts and
   2937 	update affected functions.
   2938 	(FNT_Size_Select): Fix number of arguments.
   2939 
   2940 2011-11-30  Werner Lemberg  <wl (a] gnu.org>
   2941 
   2942 	[type42] Remove casts.
   2943 
   2944 	* src/type42/t42drivr.c (t42_driver_class): Remove all casts and
   2945 	update affected functions.
   2946 
   2947 	* src/type42/t42objs.c, src/type42/t42objs.h: Updated for t42 driver
   2948 	changes.
   2949 
   2950 2011-11-30  Werner Lemberg  <wl (a] gnu.org>
   2951 
   2952 	[type1] Remove casts.
   2953 
   2954 	* src/type1/t1driver.c (t1_driver_class): Remove all casts and
   2955 	update affected functions.
   2956 
   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.
   2961 
   2962 2011-11-27  Werner Lemberg  <wl (a] gnu.org>
   2963 
   2964 	[bdf] Fix Savannah bug #34896.
   2965 
   2966 	ENCODING now covers the whole Unicode range.
   2967 
   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).
   2974 
   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.
   2978 
   2979 2011-11-27  Werner Lemberg  <wl (a] gnu.org>
   2980 
   2981 	[bdf] Improve tracing.
   2982 
   2983 	* src/bdf/bdflib.c (DBGMSG1, DBGMSG2): New macros.
   2984 	(_bdf_parse_glyphs): Use them.
   2985 
   2986 2011-11-26  Werner Lemberg  <wl (a] gnu.org>
   2987 
   2988 	Improve tracing.
   2989 
   2990 	* src/bdf/bdfdrivr.c (BDF_Face_Done), src/pcf/pcfdrivr.c
   2991 	(PCF_Face_Done): Remove tracing message.
   2992 
   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.
   3000 
   3001 	* src/sfnt/sfobjs.c (sfnt_open_font), src/type42/t42objs.c
   3002 	(T42_Open_Face): Improve tracing.
   3003 
   3004 2011-11-26  Werner Lemberg  <wl (a] gnu.org>
   3005 
   3006 	[cid] Fix error code.
   3007 
   3008 	* src/cid/cidparse.c (cid_parser_new): Do it.
   3009 
   3010 2011-11-26  Werner Lemberg  <wl (a] gnu.org>
   3011 
   3012 	[cff] Fix error code.
   3013 
   3014 	* src/cff/cffload.c (cff_font_load): Do it.
   3015 
   3016 2011-11-26  Werner Lemberg  <wl (a] gnu.org>
   3017 
   3018 	Add new error code FT_Err_Missing_Module.
   3019 
   3020 	Previously, FreeType misleadingly returned
   3021 	FT_Err_Unknown_File_Format if a module was missing (or a test was
   3022 	missing completely).
   3023 
   3024 	* include/freetype/fterrdef.h (FT_Err_Missing_Module): Define.
   3025 
   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.
   3031 
   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'.
   3035 
   3036 2011-11-25  Werner Lemberg  <wl (a] gnu.org>
   3037 
   3038 	[bdf] Add more error messages.
   3039 
   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.
   3046 
   3047 2011-11-24  Werner Lemberg  <wl (a] gnu.org>
   3048 
   3049 	* include/freetype/fterrors.h: Remove dead code.
   3050 
   3051 2011-11-15  Werner Lemberg  <wl (a] gnu.org>
   3052 
   3053 	* docs/releases: Updated.
   3054 
   3055 2011-11-15  Werner Lemberg  <wl (a] gnu.org>
   3056 
   3057 	* Version 2.4.8 released.
   3058 	=========================
   3059 
   3060 
   3061 	Tag sources with `VER-2-4-8'.
   3062 
   3063 	* docs/CHANGES: Updated.
   3064 
   3065 	* docs/VERSION.DLL: Update documentation and bump version number to
   3066 	2.4.8.
   3067 
   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/.
   3081 
   3082 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
   3083 
   3084 	* builds/unix/configure.raw (version_info): Set to 14:0:8.
   3085 
   3086 2011-11-13  Chris Liddell  <chris.liddell (a] artifex.com>
   3087 
   3088 	Add FT_Get_PS_Font_Value() API.
   3089 
   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).
   3093 
   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.
   3098 
   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.
   3103 
   3104 	* src/base/fttype1.c (FT_Get_PS_Font_Value): New function.
   3105 
   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.
   3109 
   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.
   3113 
   3114 2011-11-08  Braden Thomas  <bthomas (a] apple.com>
   3115 
   3116 	[cid] Various loading fixes.
   3117 
   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.
   3123 
   3124 2011-11-05  Werner Lemberg  <wl (a] gnu.org>
   3125 
   3126 	* README: We use copyright ranges also.
   3127 
   3128 	According to
   3129 
   3130 	  https://www.gnu.org/prep/maintain/html_node/Copyright-Notices.html
   3131 
   3132 	this should be mentioned explicitly.
   3133 
   3134 2011-10-30  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3135 
   3136 	[raccess] Supplement for previous fix.
   3137 
   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.
   3143 
   3144 2011-10-30  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3145 
   3146 	[raccess] Hide raccess_rule_by_darwin_vfs() on native Mac OS X.
   3147 
   3148 	* src/base/ftrfork.c (raccess_rule_by_darwin_vfs): Do not
   3149 	compile on native Mac OS X because it is not used.
   3150 
   3151 2011-10-25  Werner Lemberg  <wl (a] gnu.org>
   3152 
   3153 	[truetype] Fix MD instruction for twilight zone.
   3154 
   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.
   3158 
   3159 2011-10-18  Werner Lemberg  <wl (a] gnu.org>
   3160 
   3161 	* Version 2.4.7 released.
   3162 	=========================
   3163 
   3164 
   3165 	Tag sources with `VER-2-4-7'.
   3166 
   3167 	* docs/CHANGES: Updated.
   3168 
   3169 	* docs/VERSION.DLL: Update documentation and bump version number to
   3170 	2.4.7.
   3171 
   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/.
   3185 
   3186 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
   3187 
   3188 	* builds/unix/configure.raw (version_info): Set to 13:2:7.
   3189 
   3190 2011-10-15  Kal Conley  <kcconley (a] gmail.com>
   3191 
   3192 	Fix handling of transformations if no renderer is present.
   3193 
   3194 	* src/base/ftobjs.c (FT_Load_Glyph): Thinko.
   3195 
   3196 2011-10-15  Kal Conley  <kcconley (a] gmail.com>
   3197 
   3198 	Fix conditions for autohinting.
   3199 
   3200 	* src/base/ftobjs.c (FT_Load_Glyph): Handle
   3201 	FT_LOAD_IGNORE_TRANSFORM.
   3202 
   3203 2011-10-07  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3204 
   3205 	[gxvalid] Fix a bug to detect too large offset in morx table.
   3206 
   3207 	* src/gxvalid/gxvmorx2.c
   3208 	(gxv_morx_subtable_type2_ligActionIndex_validate): Fix a bug
   3209 	that too large positive offset cannot be detected.
   3210 
   3211 2011-10-01  Braden Thomas  <bthomas (a] apple.com>
   3212 
   3213 	Handle some border cases.
   3214 
   3215 	* include/freetype/config/ftstdlib.h (FT_USHORT_MAX): New macro.
   3216 
   3217 	* src/base/ftbitmap.c (FT_Bitmap_Convert): Protect against invalid
   3218 	value of `target->rows'.
   3219 
   3220 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add check for
   3221 	flex start.
   3222 
   3223 	* src/raster/ftrend1.c (ft_raster1_render): Check `width' and
   3224 	`height'.
   3225 
   3226 	* src/truetype/ttgxvar.c (TT_Vary_Get_Glyph_Deltas): Protect against
   3227 	invalid values in `localpoints' array.
   3228 
   3229 2011-10-01  Werner Lemberg  <wl (a] gnu.org>
   3230 
   3231 	[psnames] Handle zapfdingbats.
   3232 	Problem reported by Nicolas Rougier <Nicolas.Rougier (a] inria.fr>.
   3233 
   3234 	* src/tools/glnames.py (adobe_glyph_list): Add data from AGL's
   3235 	`zapfdingbats.txt' file.
   3236 
   3237 	* src/psnames/pstables.h: Regenerated.
   3238 
   3239 2011-09-27  Simon Bnzli  <zeniko (a] gmail.com>
   3240 
   3241 	[type1] Fix Savannah bug #34189.
   3242 
   3243 	* src/type1/t1load.c (T1_Open_Face): Initialize
   3244 	`face->len_buildchar'.
   3245 
   3246 2011-09-26  Werner Lemberg  <wl (a] gnu.org>
   3247 
   3248 	[cff] Dump SIDs while tracing.
   3249 
   3250 	* src/cff/cffobjs.c (cff_face_init): Do it.
   3251 
   3252 	* src/cff/cffparse.c (cff_parser_run) [FT_DEBUG_LEVEL_TRACE]
   3253 	<cff_kind_string>: Identify as SID.
   3254 
   3255 2011-09-17  Werner Lemberg  <wl (a] gnu.org>
   3256 
   3257 	Remove unused FT_ALIGNMENT macro.
   3258 
   3259 	* builds/unix/ftconfig.in, builds/vms/ftconfig.h,
   3260 	include/freetype/config/ftconfig.h: Do it.
   3261 
   3262 2011-09-17  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3263 
   3264 	[smooth] Slightly optimize conic and cubic flatteners.
   3265 
   3266 	* src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move
   3267 	out some code from the main loop to speed it up.
   3268 
   3269 2011-09-11  Tomas Hoger  <thoger (a] redhat.com>
   3270 
   3271 	Slightly improve LZW_CLEAR handling.
   3272 
   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.
   3278 
   3279 2011-09-11  Tomas Hoger  <thoger (a] redhat.com>
   3280 
   3281 	Add explicit LZW decompression stack size limit.
   3282 
   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:
   3286 
   3287 	  http://code.google.com/p/libarchive/source/browse/trunk/libarchive/archive_read_support_filter_compress.c?r=3635#121
   3288 
   3289 	This patch adds explicit stack size limit, enforced when stack is
   3290 	realloced.
   3291 
   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.
   3296 
   3297 	* src/lzw/ftzopen.c (ft_lzwstate_stack_grow): Implement it.
   3298 
   3299 2011-09-11  Tomas Hoger  <thoger (a] redhat.com>
   3300 
   3301 	Protect against loops in the prefix table.
   3302 
   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.
   3307 
   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.
   3312 
   3313 2011-09-09  Werner Lemberg  <wl (a] gnu.org>
   3314 
   3315 	Better tracing of metrics.
   3316 
   3317 	* src/base/ftobjs.c (FT_Request_Size, FT_Select_Size): Decorate with
   3318 	FT_TRACE.
   3319 
   3320 2011-09-07  Werner Lemberg  <wl (a] gnu.org>
   3321 
   3322 	[cff] Fix Savannah bug #33816.
   3323 
   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.
   3330 
   3331 2011-08-30  Werner Lemberg  <wl (a] gnu.org>
   3332 
   3333 	Better tracing of metrics.
   3334 
   3335 	* src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics):
   3336 	Decorate with FT_TRACE.
   3337 
   3338 2011-08-25  Werner Lemberg  <wl (a] gnu.org>
   3339 
   3340 	[cff] Better tracing of the parsing process.
   3341 
   3342 	* src/cff/cffload.c (cff_subfont_load, cff_font_load): Decorate with
   3343 	FT_TRACE.
   3344 
   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.
   3351 
   3352 	* src/cff/cffparse.h (CFF_Field_Handler) [FT_DEBUG_LEVEL_TRACE]: Add
   3353 	`id' member.
   3354 
   3355 	* src/cff/cfftoken.h: Add IDs to all fields.
   3356 
   3357 2011-08-16  Werner Lemberg  <wl (a] gnu.org>
   3358 
   3359 	Fix Savannah bug #34022.
   3360 
   3361 	* README, docs/INSTALL: Remove references to UPGRADE.UNIX.
   3362 
   3363 2011-08-15  Werner Lemberg  <wl (a] gnu.org>
   3364 
   3365 	Fix Savannah bug #34018.
   3366 
   3367 	* docs/UPGRADE.UNIX: Removed.  Obsolete.
   3368 
   3369 2011-08-15  David Bevan  <david.bevan (a] pb.com>
   3370 
   3371 	Fix Savannah bug #33992.
   3372 
   3373 	* src/base/ftstroke.c (FT_Stroker_ParseOutline): Fix border case.
   3374 
   3375 2011-08-12  Werner Lemberg  <wl (a] gnu.org
   3376 
   3377 	[truetype] Fix degenerate case in S{P,F,DP}VTL opcodes.
   3378 
   3379 	* src/truetype/ttinterp.c (Ins_SxVTL): Handle p1 == p2 specially.
   3380 	(Ins_SDPVTL): Handle v1 == v2 specially.
   3381 
   3382 2011-08-09  Werner Lemberg  <wl (a] gnu.org>
   3383 
   3384 	[cff] Fix Savannah bug #33975.
   3385 
   3386 	* src/cff/cffparse.c (cff_parse_font_matrix): Fix typo.
   3387 
   3388 2011-07-29  Werner Lemberg  <wl (a] gnu.org>
   3389 
   3390 	* Version 2.4.6 released.
   3391 	=========================
   3392 
   3393 
   3394 	Tag sources with `VER-2-4-6'.
   3395 
   3396 	* docs/CHANGES: Updated.
   3397 
   3398 	* docs/VERSION.DLL: Update documentation and bump version number to
   3399 	2.4.6.
   3400 
   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/.
   3414 
   3415 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
   3416 
   3417 	* builds/unix/configure.raw (version_info): Set to 13:1:7.
   3418 
   3419 2011-07-29  Werner Lemberg  <wl (a] gnu.org>
   3420 
   3421 	[cff] Add some more tracing infos.
   3422 
   3423 	* src/cff/cffparse.c (cff_parse_font_matrix, cff_parse_font_bbox,
   3424 	cff_parse_cid_ros): Add tracing.
   3425 
   3426 2011-07-22  Dirk Mller  <dmueller (a] suse.de>
   3427 
   3428 	[psaux, type1] Fix null pointer dereferences.
   3429 
   3430 	Found with font fuzzying.
   3431 
   3432 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Check
   3433 	`decoder->buildchar'.
   3434 
   3435 	* src/type1/t1load.c (t1_load_keyword): Check `blend->num_designs'.
   3436 
   3437 2011-07-20  Chris Morgan  <cmorgan (a] cybexintl.com>
   3438 
   3439 	Add FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT.
   3440 
   3441 	Useful for embedded systems which don't need file stream support.
   3442 
   3443 	* src/base/ftsystem.c, src/base/ftobjs.c (FT_Stream_New): Implement
   3444 	it.
   3445 
   3446 2011-07-20  Elton Chung  <elton328 (a] gmail.com>
   3447 
   3448 	* src/base/ftpatent.c (FT_Face_SetUnpatentedHinting): Fix typo.
   3449 
   3450 2011-07-16  Steven Chu  <steven.f.chu (a] gmail.com>
   3451 
   3452 	[truetype] Fix metrics on size request for scalable fonts.
   3453 
   3454 	* src/truetype/ttdriver.c (tt_size_request): Fix copying metrics
   3455 	from TT_Size to FT_Size if scalable font.
   3456 
   3457 	See
   3458 
   3459 	  https://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00049.html
   3460 
   3461 	for some comparison images.
   3462 
   3463 2011-07-14  Matthias Drochner  <M.Drochner (a] fz-juelich.de>.
   3464 
   3465 	[psaux] Fix potential sign extension problems.
   3466 
   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.
   3471 
   3472 	* src/psaux/t1decode.c (Fix2Int): New macro.
   3473 	Use it where appropriate.
   3474 
   3475 2011-07-14  Werner Lemberg  <wl (a] gnu.org>
   3476 
   3477 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
   3478 	<op_callothersubr>: Better handling of subroutine index 0.
   3479 	From Matthias Drochner <M.Drochner (a] fz-juelich.de>.
   3480 
   3481 2011-07-10     <apodtele (a] gmail.com>
   3482 
   3483 	[psaux] Optimize previous commit.
   3484 
   3485 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
   3486 	<op_callothersubr>: Move error check down to avoid testing twice for
   3487 	good cases.
   3488 
   3489 2011-07-08  Werner Lemberg  <wl (a] gnu.org>
   3490 
   3491 	[psaux] Add better argument check for `callothersubr'.
   3492 
   3493 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
   3494 	<op_callothersubr>: Reject negative arguments.
   3495 
   3496 2011-07-07  Werner Lemberg  <wl (a] gnu.org>
   3497 
   3498 	[sfnt] Try harder to find non-zero values for ascender and descender.
   3499 
   3500 	* src/sfnt/sfobjs.c (sfnt_load_face): Consult `OS/2' table in case
   3501 	the `hhea' table's values are zero.
   3502 
   3503 2011-07-03  Werner Lemberg  <wl (a] gnu.org>
   3504 
   3505 	Fix previous commit.
   3506 
   3507 	We want to unset FT_FACE_FLAG_SCALABLE only if there are bitmap
   3508 	strikes in the font.
   3509 
   3510 	* src/truetype/ttobjs.c (tt_face_init): Implement it.
   3511 
   3512 	* docs/CHANGES: Updated.
   3513 
   3514 2011-07-02  Just Fill Bugs  <mozbugbox (a] yahoo.com.au>
   3515 
   3516 	[truetype] Fix Savannah bug #33246.
   3517 
   3518 	* src/truetype/ttobjs.c (tt_check_single_notdef): New function.
   3519 	(tt_face_init): Use it to test FT_FACE_FLAG_SCALABLE.
   3520 
   3521 2011-07-02  Werner Lemberg  <wl (a] gnu.org>
   3522 
   3523 	* docs/CHANGES: Updated.
   3524 
   3525 2011-07-02  David Bevan  <david.bevan (a] pb.com>
   3526 
   3527 	[ftstroke] Major revision.
   3528 
   3529 	The main problems
   3530 	-----------------
   3531 
   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.
   3536 
   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.
   3541 
   3542 	The main fixes
   3543 	--------------
   3544 
   3545 	  o The behaviour of FT_STROKER_LINEJOIN_BEVEL has been corrected.
   3546 
   3547 	  o A new line join style, FT_STROKER_LINEJOIN_MITER_FIXED, has been
   3548 	    introduced to support PostScript and PDF miter joins.
   3549 
   3550 	  o FT_STROKER_LINEJOIN_MITER_VARIABLE has been introduced as an
   3551 	    alias for FT_STROKER_LINEJOIN_MITER.
   3552 
   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.
   3556 
   3557 	See
   3558 
   3559 	  https://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00001.html
   3560 
   3561 	for example documents.  The FreeType stroker now produces results
   3562 	very similar to that produced by GhostScript and Distiller for these
   3563 	fonts.
   3564 
   3565 	Other problems
   3566 	--------------
   3567 
   3568 	The following problems have been resolved:
   3569 
   3570 	  o Inside corners could be generated incorrectly.  Intersecting the
   3571 	    inside corner could cause a missing triangular area and other
   3572 	    effects.
   3573 
   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'.
   3579 
   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.
   3583 
   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.)
   3590 
   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.
   3596 
   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.
   3601 
   3602 	  o Cubics with close control points could be mishandled.  All eight
   3603 	    cases are now distinguished correctly.
   3604 
   3605 	Other improvements
   3606 	------------------
   3607 
   3608 	o Borders for cubic curves could be too `flat'.
   3609 	  FT_SMALL_CUBIC_THRESHOLD has been reduced a little to prevent
   3610 	  this.
   3611 
   3612 	o The handling and use of movable points has been simplified a
   3613 	  little.
   3614 
   3615 	o Various values are now computed only if the results are actually
   3616 	  needed.
   3617 
   3618 	o The directions of the outer and inner borders have been swapped,
   3619 	  as recommended by Graham Asher.
   3620 
   3621 	* src/base/ftstroke.c: Revised.
   3622 	* include/freetype/ftstroke.h: Updated.
   3623 
   3624 2011-06-30  smail Dnmez  <ismail (a] namtrac.org>
   3625 
   3626 	* builds/toplevel.mk: We use git, not CVS, thus skip `.gitignore'.
   3627 
   3628 2011-06-29  Werner Lemberg  <wl (a] gnu.org>
   3629 
   3630 	[bdf] Fix Savannah bug #33663.
   3631 
   3632 	* src/bdf/bdflib.c (_bdf_parse_glyphs): Handle negative values for
   3633 	ENCODING correctly.
   3634 
   3635 	* docs/CHANGES: Document it.
   3636 
   3637 2011-06-24  Werner Lemberg  <wl (a] gnu.org>
   3638 
   3639 	* Version 2.4.5 released.
   3640 	=========================
   3641 
   3642 
   3643 	Tag sources with `VER-2-4-5'.
   3644 
   3645 	* docs/CHANGES: Updated.
   3646 
   3647 	* docs/VERSION.DLL: Update documentation and bump version number to
   3648 	2.4.5
   3649 
   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/.
   3663 
   3664 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
   3665 
   3666 	* builds/unix/configure.raw (version_info): Set to 13:0:7.
   3667 
   3668 2011-06-20  Werner Lemberg  <wl (a] gnu.org>
   3669 
   3670 	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Fix change
   3671 	from 2011-05-04.
   3672 
   3673 2011-06-19  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3674 
   3675 	[gxvalid] make the `prop' validation tracing verbose.
   3676 
   3677 	* src/gxvalid/gxvprop.c: Add tracing messages for errors.
   3678 
   3679 2011-06-19  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3680 
   3681 	[autogen.sh] Reflect environment variable LIBTOOLIZE.
   3682 
   3683 2011-06-18  Werner Lemberg  <wl (a] gnu.org>
   3684 
   3685 	Update license documentation.
   3686 
   3687 	* docs/GPL.TXT: Renamed to...
   3688 	* docs/GPLv2.TXT: This.
   3689 
   3690 	* docs/LICENSE.TXT: Updated.
   3691 
   3692 2011-06-14  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3693 
   3694 	Fix g++4.6 compiler warnings in module drivers.
   3695 
   3696 	The background is same with previous commit.
   3697 
   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'.
   3720 
   3721 2011-06-14  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3722 
   3723 	[base] Fix g++4.6 compiler warnings in src/base/*.c.
   3724 
   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.
   3729 
   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'.
   3744 
   3745 2011-06-14  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3746 
   3747 	[gxvalid] Cleanup.
   3748 
   3749 	Some invalid, overrunning, unrecommended non-zero values
   3750 	are cared in paranoid validation mode only.  There are
   3751 	many lines looking like:
   3752 
   3753 	  if ( valid->root->level >= FT_VALIDATE_PARANOID )
   3754 	    FT_INVALID_xxx;
   3755 
   3756 	To simplify them, GXV_SET_ERR_IF_PARANOID( err ) is
   3757 	introduced for more paranoid validation in future.
   3758 
   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.
   3773 
   3774 2011-06-14  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3775 
   3776 	[gxvalid] Fix gcc4.6 compiler warnings in gxvtrak.c.
   3777 
   3778 	* src/gxvalid/gxvtrak.c (gxv_trak_trackTable_validate):
   3779 	Check different entries pointing same tracking value.
   3780 	(gxv_trak_validate): Remove unused variable `table_size'.
   3781 
   3782 2011-06-14  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3783 
   3784 	[gxvalid] Fix gcc4.6 compiler warnings in gxvmorx*.c.
   3785 
   3786 	* src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate):
   3787 	Conditionalize unvalidated variable `subFeatureFlags'.
   3788 	(gxv_morx_chain_validate): Conditionalize unvalidated
   3789 	variable `defaultFlags'.
   3790 
   3791 	* src/gxvalid/gxvmorx0.c
   3792 	(gxv_morx_subtable_type0_entry_validate):
   3793 	Conditionalize unvalidated variables; `markFirst',
   3794 	`dontAdvance', `markLast', `verb'.
   3795 
   3796 	* src/gxvalid/gxvmorx1.c
   3797 	(gxv_morx_subtable_type1_entry_validate): Conditionalize
   3798 	unvalidated variables; `setMark', `dontAdvance'.
   3799 
   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.
   3810 
   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'.
   3819 
   3820 2011-06-14  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3821 
   3822 	[gxvalid] Fix gcc4.6 compiler warnings in gxvmort*.c.
   3823 
   3824 	* src/gxvalid/gxvmort.c (gxv_mort_subtables_validate):
   3825 	Conditionalize unvalidated variable `subFeatureFlags'.
   3826 	(gxv_mort_chain_validate): Conditionalize unvalidated
   3827 	variable `defaultFlags'.
   3828 
   3829 	* src/gxvalid/gxvmort0.c
   3830 	(gxv_mort_subtable_type0_entry_validate): Check the
   3831 	conflict of the marks for the glyphs.
   3832 
   3833 	* src/gxvalid/gxvmort1.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.
   3841 
   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.
   3852 
   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'.
   3861 
   3862 2011-06-14  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3863 
   3864 	[gxvalid] Fix gcc4.6 compiler warnings in gxvkern.c.
   3865 
   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'.
   3882 
   3883 2011-06-14  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3884 
   3885 	[gxvalid] Fix gcc4.6 compiler warnings in gxvjust.c.
   3886 
   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'.
   3908 
   3909 2011-06-14  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3910 
   3911 	[gxvalid] Preparation to fix gcc4.6 compiler warnings.
   3912 
   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.
   3920 
   3921 2011-06-08  Werner Lemberg  <wl (a] gnu.org>
   3922 
   3923 	[autofit] Remove unused structure member.
   3924 
   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.
   3928 
   3929 2011-05-30  Werner Lemberg  <wl (a] gnu.org>
   3930 
   3931 	Fix g++ 4.6 compilation.
   3932 
   3933 	* src/autofit/afhints.c (af_glyph_hints_dump_segments,
   3934 	af_glyph_hints_dump_edges): Use cast.
   3935 
   3936 2011-05-30  Werner Lemberg  <wl (a] gnu.org>
   3937 
   3938 	Fix gcc 4.6 compiler warnings.
   3939 
   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.
   3946 
   3947 2011-05-28  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3948 
   3949 	[mac] Conditionalize the inclusion of `AvailabilityMacros.h'.
   3950 
   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.
   3955 
   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.
   3960 
   3961 2011-05-27  Werner Lemberg  <wl (a] gnu.org>
   3962 
   3963 	[autofit] Improve tracing of hinting process.
   3964 
   3965 	* src/autofit/aflatin.c (af_latin_hint_edges): Add tracing message
   3966 	`ADJUST'.
   3967 
   3968 2011-05-26  Werner Lemberg  <wl (a] gnu.org>
   3969 
   3970 	[autofit] Fix trace message.
   3971 
   3972 	* src/autofit/aflatin.c (af_latin_hint_edges): Show correct value in
   3973 	tracing message.
   3974 
   3975 2011-05-24  Daniel Zimmermann  <netzimme (a] googlemail.com>
   3976 
   3977 	Reduce warnings for MS Visual Studio 2010.
   3978 
   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.
   3985 
   3986 2011-05-16  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3987 
   3988 	Automake component `builds/unix/install-sh' is removed.
   3989 
   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.
   3993 
   3994 2011-05-12  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3995 
   3996 	[autofit] Make trace message for CJK bluezone more verbose.
   3997 
   3998 2011-05-08  Just Fill Bugs  <mozbugbox (a] yahoo.com.au>
   3999             suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4000 
   4001 	[autofit] Add bluezones for CJK Ideographs.
   4002 
   4003 	To remove extrema 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 	https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00070.html
   4009 	https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00092.html
   4010 	https://lists.gnu.org/archive/html/freetype-devel/2011-05/msg00001.html
   4011 
   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_hint_edges): Add code to align the edge stems to blue zones.
   4033 
   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.
   4040 
   4041 	* docs/CHANGES: Note about CJK bluezone support.
   4042 
   4043 2011-05-06  Werner Lemberg  <wl (a] gnu.org>
   4044 
   4045 	[autofit] Remove unused struct member.
   4046 
   4047 	* src/autofit/aflatin.h (AF_LatinAxis): Remove `control_overshoot'.
   4048 
   4049 2011-05-04  Werner Lemberg  <wl (a] gnu.org>
   4050 
   4051 	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Simplify.
   4052 
   4053 2011-05-01  Just Fill Bugs  <mozbugbox (a] yahoo.com.au>
   4054             Werner Lemberg  <wl (a] gnu.org>
   4055 
   4056 	[autofit] Add more debugging functions.
   4057 
   4058 	* src/autofit/afhints.c (af_glyph_hints_get_num_segments,
   4059 	af_glyph_hints_get_segment_offset): New functions.
   4060 
   4061 2011-05-01  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4062 
   4063 	Add new option `--disable-mmap' to configure script.
   4064 
   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.
   4068 
   4069 2011-04-30  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4070 
   4071 	[truetype] Always recalculate the sfnt table checksum.
   4072 
   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 	https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00091.html
   4079 	https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00096.html
   4080 
   4081 2011-04-30  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4082 
   4083 	[truetype] Register a set of tricky fonts, NEC FA family.
   4084 
   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.
   4090 
   4091 2011-04-29  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4092 
   4093 	[truetype] Fix a bug in the sfnt table checksum getter.
   4094 
   4095 	* src/truetype/ttobjs.c (tt_get_sfnt_checksum): Check the
   4096 	return value of face->goto_table() correctly.
   4097 
   4098 2011-04-28  Werner Lemberg  <wl (a] gnu.org>
   4099 
   4100 	[autofit] Improve tracing messages.
   4101 
   4102 	* src/autofit/aflatin.c (af_latin_metrics_init_blues,
   4103 	af_latin_align_linked_edge, af_latin_hint_edges): Do it.
   4104 
   4105 2011-04-25  Kan-Ru Chen  <kanru (a] kanru.info>
   4106 
   4107 	[truetype] Always check the checksum to identify tricky fonts.
   4108 
   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 	https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00073.html
   4113 
   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.
   4117 
   4118 2011-04-22  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4119 
   4120 	[autofit] Add more Indic scripts with hanging baseline.
   4121 
   4122 	* src/autofit/afindic.c (af_indic_uniranges): Tibetan, Limbu,
   4123 	Sundanese, Meetei Mayek, Syloti Nagri and Sharada scripts are
   4124 	added.
   4125 
   4126 2011-04-21  Behdad Esfahbod  <behdad (a] behdad.org>
   4127 
   4128 	Always ignore global advance.
   4129 
   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.
   4134 
   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.
   4139 
   4140 	* docs/CHANGES: Updated.
   4141 
   4142 2011-04-21  rainy6144  <rainy6144 (a] gmail.com>
   4143 
   4144 	[autofit] Blur CJK stems if too many to preserve their gaps.
   4145 
   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 	https://lists.gnu.org/archive/html/freetype-devel/2011-02/msg00011.html
   4150 	https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00046.html
   4151 	for details.
   4152 
   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.
   4157 
   4158 2011-04-18  Werner Lemberg  <wl (a] gnu.org>
   4159 
   4160 	Integrate autofitter debugging stuff.
   4161 
   4162 	* devel/ftoption.h, include/freetype/config/ftoption.h
   4163 	(FT_DEBUG_AUTOFIT): New macro.
   4164 
   4165 	* include/freetype/internal/fttrace.h: Add trace components for
   4166 	autofitter.
   4167 
   4168 	* src/autofit/aftypes.h (AF_LOG): Removed.
   4169 	(_af_debug): Removed.
   4170 
   4171 	* src/autofit/*: s/AF_DEBUG/FT_DEBUG_AUTOFIT/.
   4172 	s/AF_LOG/FT_TRACE5/.
   4173 	Define FT_COMPONENT where necessary.
   4174 
   4175 2011-04-18  Werner Lemberg  <wl (a] gnu.org>
   4176 
   4177 	Synchronize config files.
   4178 
   4179 	* builds/unix/ftconfig.in: Copy missing assembler routines from
   4180 	include/freetype/config/ftconfig.h.
   4181 
   4182 2011-04-13  Werner Lemberg  <wl (a] gnu.org>
   4183 
   4184 	[psaux] Fix Savannah bug #33047.
   4185 
   4186 	Patch submitted by anonymous reporter.
   4187 
   4188 	* src/psaux/psobjs.c (ps_table_add): Use FT_PtrDist for pointer
   4189 	difference.
   4190 
   4191 2011-04-11  Kan-Ru Chen  <kanru (a] kanru.info>
   4192 
   4193 	Fix reading of signed integers from files on 64bit platforms.
   4194 
   4195 	Previously, signed integers were converted to unsigned integers, but
   4196 	this can fail because of sign extension.  For example, 0xa344a1eb
   4197 	becomes 0xffffffffa344a1eb.
   4198 
   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.
   4201 
   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.
   4206 
   4207 	* src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Updated.
   4208 
   4209 2011-04-07  Werner Lemberg  <wl (a] gnu.org>
   4210 
   4211 	Update Unicode ranges for CJK autofitter; in particular, add Hangul.
   4212 
   4213 	* src/autofit/afcjk.c (af_cjk_uniranges): Update to Unicode 6.0.
   4214 
   4215 2011-04-04  Werner Lemberg  <wl (a] gnu.org>
   4216 
   4217 	Fix formatting of autofit debug dumps.
   4218 
   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.
   4222 
   4223 2011-03-30  Werner Lemberg  <wl (a] gnu.org>
   4224 
   4225 	* src/autofit/aftypes.h (AF_OutlineRec): Removed, unused.
   4226 
   4227 2011-03-24  Werner Lemberg  <wl (a] gnu.org>
   4228 
   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.
   4231 
   4232 2011-03-23  Werner Lemberg  <wl (a] gnu.org>
   4233 
   4234 	* src/truetype/ttpload.c (tt_face_load_loca): Fix mismatch warning.
   4235 
   4236 2011-03-20  Werner Lemberg  <wl (a] gnu.org>
   4237 
   4238 	* src/sfnt/sfobjs.c (sfnt_open_font): Check number of TTC subfonts.
   4239 
   4240 2011-03-19  Werner Lemberg  <wl (a] gnu.org>
   4241 
   4242 	More C++ compilation fixes.
   4243 
   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"'.
   4247 
   4248 2011-03-18  Werner Lemberg  <wl (a] gnu.org>
   4249 
   4250 	C++ compilation fixes.
   4251 
   4252 	* src/autofit/aflatin.c (af_latin_hints_apply), src/autofit/afcjk.c
   4253 	(af_cjk_hints_apply): Use cast for `dim'.
   4254 
   4255 2011-03-17  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4256 
   4257 	A better fix for Savannah bug #32671.
   4258 
   4259 	* src/smooth/ftgrays.c (gray_render_conic): Clean up code and
   4260 	replace WHILE loop with a more natural DO-WHILE construct.
   4261 
   4262 2011-03-16  Werner Lemberg  <wl (a] gnu.org>.
   4263 
   4264 	* src/base/ftstroke.c (FT_StrokerRec): Remove unused `valid' field.
   4265 	Suggested by Graham Asher.
   4266 
   4267 2011-03-09  Werner Lemberg  <wl (a] gnu.org>
   4268 
   4269 	Make FT_Sfnt_Table_Info return the number of SFNT tables.
   4270 
   4271 	* src/sfnt/sfdriver.c (sfnt_table_info): Implement it.
   4272 	* include/freetype/tttables.h: Update documentation.
   4273 	* docs/CHANGES: Updated.
   4274 
   4275 2011-03-07  Bram Tassyns  <bramt (a] enfocus.be>
   4276 
   4277 	[cff] Fix Savannah bug #27988.
   4278 
   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.
   4282 
   4283 2011-03-07  Werner Lemberg  <wl (a] gnu.org>
   4284 
   4285 	* docs/CHANGES: Updated.
   4286 
   4287 2011-03-07  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4288 
   4289 	Quick fix for Savannah bug #32671.
   4290 
   4291 	This isn't the optimal solution yet, but it restores the previous
   4292 	rendering quality (more or less).
   4293 
   4294 	* src/smooth/ftgrays.c (gray_render_conic): Do more splitting.
   4295 
   4296 2011-03-06  Werner Lemberg  <wl (a] gnu.org>
   4297 
   4298 	Fix autohinting fallback.
   4299 
   4300 	* src/base/ftobjs.c (FT_Load_Glyph): Assure that we only check TTFs,
   4301 	ignoring CFF-based OTFs.
   4302 
   4303 2011-02-27  Werner Lemberg  <wl (a] gnu.org>
   4304 
   4305 	Add AF_CONFIG_OPTION_USE_WARPER to control the autofit warper.
   4306 
   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.
   4310 
   4311 	* src/autofit/*: s/AF_USE_WARPER/AF_CONFIG_OPTION_USE_WARPER/.
   4312 
   4313 	* src/autofit/afwarp.c [!AF_CONFIG_OPTION_USE_WARPER]: Replace dummy
   4314 	variable assignment with a typedef.
   4315 
   4316 2011-02-26  Werner Lemberg  <wl (a] gnu.org>
   4317 
   4318 	[autofit] Slight simplifications.
   4319 
   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.
   4323 
   4324 2011-02-24  Werner Lemberg  <wl (a] gnu.org>
   4325 
   4326 	* docs/PROBLEMS: Mention rendering differences on different
   4327 	platforms.
   4328 	Suggested and worded by Jason Owen <jason.a.owen (a] gmail.com>.
   4329 
   4330 2011-02-24  Werner Lemberg  <wl (a] gnu.org>
   4331 
   4332 	[autofit] Comment out unused code.
   4333 
   4334 	* src/autofit/aflatin.c, src/autofit/aflatin2.c
   4335 	(af_latin_hints_compute_edges): Do it.
   4336 
   4337 2011-02-24  Werner Lemberg  <wl (a] gnu.org>
   4338 
   4339 	* src/autofit/afhints.h (AF_GlyphHints): Remove unused field.
   4340 
   4341 2011-02-20  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4342 
   4343 	[cache] Fix an off-by-one bug in `FTC_Manager_RemoveFaceID'.
   4344 	Found by <ychen1392001 (a] yahoo.com.cn>, see detail in
   4345 
   4346 	  https://lists.gnu.org/archive/html/freetype/2011-01/msg00023.html
   4347 
   4348 	* src/cache/ftccache.c (FTC_Cache_RemoveFaceID): Check the node
   4349 	buckets[cache->p + cache->mask] too.
   4350 
   4351 2011-02-19  Kevin Kofler  <kevin.kofler (a] chello.at>
   4352 
   4353 	Fall back to autohinting if a TTF/OTF doesn't contain any bytecode.
   4354 	This is Savannah patch #7471.
   4355 
   4356 	* src/base/ftobjs.c (FT_Load_Glyph): Implement it.
   4357 
   4358 2011-02-19  John Tytgat  <John.Tytgat (a] esko.com>
   4359 
   4360 	[cff] Fix subset prefix removal.
   4361 	This is Savannah patch #7465.
   4362 
   4363 	* src/cff/cffobjs.c (remove_subset_prefix): Update length after
   4364 	subset prefix removal.
   4365 
   4366 2011-02-13  Bradley Grainger  <bgrainger (a] logos.com>
   4367 
   4368 	Add inline assembly version of FT_MulFix for MSVC.
   4369 
   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++.
   4373 
   4374 2011-02-13  Bradley Grainger  <bgrainger (a] logos.com>
   4375 
   4376 	Add project and solution files in Visual Studio 2010 format.
   4377 
   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.
   4382 
   4383 2011-02-01  Werner Lemberg  <wl (a] gnu.org>
   4384 
   4385 	* src/autofit/afdummy.c: Include `aferrors.h'.
   4386 	Problem reported by Chris Liddell <chris.liddell (a] artifex.com>.
   4387 
   4388 2011-02-01  Werner Lemberg  <wl (a] gnu.org>
   4389 
   4390 	[cff] Ignore unknown operators in charstrings.
   4391 	Patch suggested by Miles.Lau <sunliang_liu (a] foxitsoftware.com>.
   4392 
   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.
   4396 
   4397 2011-02-01  Werner Lemberg  <wl (a] gnu.org>
   4398 
   4399 	[truetype] FT_LOAD_PEDANTIC now affects `prep' and `fpgm' also.
   4400 
   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.
   4407 
   4408 2011-01-31  Werner Lemberg  <wl (a] gnu.org>
   4409 
   4410 	[truetype] Protect jump instructions against endless loops.
   4411 
   4412 	* src/truetype/interp.c (DO_JROT, DO_JMPR, DO_JROF): Exit with error
   4413 	if offset is zero.
   4414 
   4415 2011-01-31  Werner Lemberg  <wl (a] gnu.org>
   4416 
   4417 	[truetype] Improve handling of invalid references.
   4418 
   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.
   4424 
   4425 2011-01-31  Werner Lemberg  <wl (a] gnu.org>
   4426 
   4427 	[truetype] Improve handling of stack underflow.
   4428 
   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.
   4432 
   4433 2011-01-30  Werner Lemberg  <wl (a] gnu.org>
   4434 
   4435 	* src/sfnt/ttmtx.c (tt_face_load_hmtx): Fix tracing message.
   4436 
   4437 2011-01-30  LIU Sun-Liang  <sunliang_liu (a] foxitsoftware.com>
   4438 
   4439 	[truetype]: Fix behaviour of MIAP for invalid arguments.
   4440 
   4441 	* src/truetype/ttinterp.c (Ins_MIAP): Set reference points even in
   4442 	case of error.
   4443 
   4444 2011-01-18  Werner Lemberg  <wl (a] gnu.org>
   4445 
   4446 	[truetype] Fix handling of MIRP instruction.
   4447 
   4448 	Thanks to Greg Hitchcock who explained the issue.
   4449 
   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.
   4454 
   4455 2011-01-15  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4456 
   4457 	Fix ARM assembly code in include/freetype/config/ftconfig.h.
   4458 
   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.
   4466 
   4467 	https://bugreports.qt.io/browse/QTBUG-6521
   4468 
   4469 2011-01-15  Werner Lemberg  <wl (a] gnu.org>
   4470 
   4471 	[raster] Make bbox handling the same as with Microsoft's rasterizer.
   4472 
   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.
   4476 
   4477 	Thanks to Greg Hitchcock who explained this behaviour.
   4478 
   4479 	* src/raster/ftrend1.c (ft_raster1_render): Implement it.
   4480 
   4481 2011-01-15  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4482 
   4483 	Copy -mcpu=* & -march=* options from CFLAGS to LDFLAGS.
   4484 
   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.
   4489 
   4490 2011-01-15  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4491 
   4492 	Fix off-by-one bug in CFLAGS & LDFLAGS harmonizer.
   4493 
   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.
   4497 
   4498 2011-01-13  Werner Lemberg  <wl (a] gnu.org>
   4499 
   4500 	[raster] Add undocumented drop-out rule to the other bbox side also.
   4501 
   4502 	* src/raster/ftraster.c (Vertical_Sweep_Drop,
   4503 	Horizontal_Sweep_Drop): Implement it.
   4504 
   4505 2011-01-13  Werner Lemberg  <wl (a] gnu.org>
   4506 
   4507 	[raster] Reduce jitter value.
   4508 
   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.
   4512 
   4513 	* src/raster/ftraster.c (Set_High_Precision): Implement it.
   4514 
   4515 2011-01-13  Werner Lemberg  <wl (a] gnu.org>
   4516 
   4517 	[raster] Handle drop-outs at glyph borders according to Microsoft.
   4518 
   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.
   4523 
   4524 	Thanks to Greg Hitchcock who explained this behaviour.
   4525 
   4526 	* src/raster/ftraster.c (Vertical_Sweep_Drop,
   4527 	Horizontal_Sweep_Drop): Implement it.
   4528 
   4529 2011-01-09  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4530 
   4531 	[cache] Fix Savannah bug #31923, patch drafted by Harsha.
   4532 
   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
   4541 
   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.
   4545 
   4546 2011-01-09  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4547 
   4548 	[cache] Notice if a cache query induced the node list change.
   4549 
   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.
   4556 
   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.
   4564 
   4565 	* src/cache/ftccback.h (ftc_snode_compare): Updated to fit with new
   4566 	FTC_Node_CompareFunc type.
   4567 	(ftc_gnode_compare): Ditto.
   4568 
   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).
   4574 
   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.
   4580 
   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.
   4586 
   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.
   4594 
   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.
   4601 
   4602 2011-01-09  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4603 
   4604 	[cache] Fit `FTC_GNode_Compare' to `FTC_Node_CompareFunc'.
   4605 
   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'.
   4611 
   4612 2011-01-09  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4613 
   4614 	[cache] Deduplicate the code to get the top node by a hash.
   4615 
   4616 	There are several duplicated code fragments getting the top node
   4617 	from a cache by a given hash, like:
   4618 
   4619 	    idx = hash & cache->mask;
   4620 	    if ( idx < cache->p )
   4621 	      idx = hash & ( cache->mask * 2 + 1 );
   4622 	    pnode = cache->buckets + idx;
   4623 
   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.
   4627 
   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.
   4636 
   4637 2011-01-09  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4638 
   4639 	[cache] inline-specific functions are conditionalized.
   4640 
   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'.
   4647 
   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.
   4652 
   4653 2011-01-09  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4654 
   4655 	[cache] Correct a type mismatch under non-inlined config.
   4656 
   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'.
   4660 
   4661 2011-01-06  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4662 
   4663 	Update Jamfile to include Bzip2 support.
   4664 
   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)
   4669 
   4670 2011-01-05  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4671 
   4672 	Update Symbian project files to include Bzip2 support.
   4673 
   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.
   4677 
   4678 	* builds/symbian/bld.inf: Include ftbzip2.h.
   4679 	* builds/symbian/freetype.mmp: Include ftbzip2.c.
   4680 
   4681 2011-01-05  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4682 
   4683 	Update classic MacOS makefiles to include Bzip2 support.
   4684 
   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.
   4688 
   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.
   4693 
   4694 2011-01-05  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4695 
   4696 	Update Amiga makefiles to include Bzip2 support.
   4697 
   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.
   4701 
   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.
   4705 
   4706 2011-01-05  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4707 
   4708 	Update pkg-config tools to reflect Bzip2 support.
   4709 
   4710 	* builds/unix/freetype-config.in: Include `-lbz2' to
   4711 	--libs output, if built with Bzip2 support.
   4712 	* builds/unix/freetype2.in: Ditto.
   4713 
   4714 2011-01-05  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4715 
   4716 	* builds/unix/configure.raw: Remove `SYSTEM_BZ2LIB' macro.
   4717 
   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.
   4723 
   4724 2011-01-03  Werner Lemberg  <wl (a] gnu.org>
   4725 
   4726 	*/rules.mk: Handle `*pic.c' files.
   4727 
   4728 2010-12-31  Werner Lemberg  <wl (a] gnu.org>
   4729 
   4730 	* src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 64.
   4731 	Problem reported by Tom Bishop <wenlin (a] wenlin.com>.
   4732 
   4733 2010-12-31  Werner Lemberg  <wl (a] gnu.org>
   4734 
   4735 	Improve bzip2 support.
   4736 
   4737 	* include/freetype/ftmoderr.h: Add bzip2.
   4738 
   4739 	* docs/INSTALL.ANY, docs/CHANGES: Updated.
   4740 
   4741 	* src/pcf/README: Updated.
   4742 	* include/freetype/internal/pcftypes.h: Obsolete, removed.
   4743 
   4744 2010-12-31  Joel Klinghed  <the_jk (a] yahoo.com>
   4745 
   4746 	Add bzip2 compression support to handle *.pcf.bz2 files.
   4747 
   4748 	* builds/unix/configure.raw: Test for libbz2 library.
   4749 
   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.
   4753 
   4754 	* include/freetype/ftbzip2.h: New file.
   4755 
   4756 	* src/bzip2/*: New files.
   4757 
   4758 	* src/pcf/pcf.h: s/gzip_/comp_/.
   4759 	* src/pcf/pcfdrivr.c: Include FT_BZIP2_H.
   4760 	s/gzip_/comp_/.
   4761 	(PCF_Face_Init): Handle bzip2 compressed files.
   4762 
   4763 	* docs/formats.txt, modules.cfg: Updated.
   4764 
   4765 2010-12-25  Harsha  <mm.harsha (a] gmail.com>
   4766 
   4767 	Apply Savannah patch #7422.
   4768 
   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 (comparison 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.
   4776 
   4777 	* src/cache/ftcsbits.c (FTC_SNode_New): Initialize sbit widths with
   4778 	value 255.
   4779 	(ftc_snode_compare): Fix condition.
   4780 
   4781 2010-12-13  Werner Lemberg  <wl (a] gnu.org>
   4782 
   4783 	Fix parameter handling of `FT_Set_Renderer'.
   4784 	Reported by Kirill Tishin <siege (a] bk.ru>.
   4785 
   4786 	* src/base/ftobjs.c (FT_Set_Renderer): Increment `parameters'.
   4787 
   4788 2010-12-09  Werner Lemberg  <wl (a] gnu.org>
   4789 
   4790 	[cff] Allow `hlineto' and `vlineto' without arguments.
   4791 
   4792 	We simply ignore such instructions.  This is invalid, but it doesn't
   4793 	harm; and indeed, there exist such subsetted fonts in PDFs.
   4794 
   4795 	Reported by Albert Astals Cid <aacid (a] kde.org>.
   4796 
   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.
   4800 
   4801 2010-11-28  Werner Lemberg  <wl (a] gnu.org>
   4802 
   4803 	* Version 2.4.4 released.
   4804 	=========================
   4805 
   4806 
   4807 	Tag sources with `VER-2-4-4'.
   4808 
   4809 	* docs/CHANGES: Updated.
   4810 
   4811 	* docs/VERSION.DLL: Update documentation and bump version number to
   4812 	2.4.4
   4813 
   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/.
   4826 
   4827 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
   4828 
   4829 	* builds/unix/configure.raw (version_info): Set to 12:2:6.
   4830 
   4831 2010-11-28  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4832 
   4833 	[ftsmooth]: Minor code simplification.
   4834 
   4835 	* src/smooth/ftgrays (gray_render_cubic): Do only one comparison
   4836 	instead of two.
   4837 
   4838 2010-11-26  Johnson Y. Yan  <yinsen_yan (a] foxitsoftware.com>
   4839 
   4840 	[truetype] Better multi-threading support.
   4841 
   4842 	* src/truetype/ttinterp.c (TT_Load_Context): Reset glyph zone
   4843 	references.
   4844 
   4845 2010-11-23  John Tytgat  <John.Tytgat (a] esko.com>
   4846 
   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).
   4853 
   4854 2010-11-22  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4855 
   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.
   4859 
   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.
   4866 
   4867 2010-11-18  Werner Lemberg  <wl (a] gnu.org>
   4868 
   4869 	[truetype] Fix `loca' handling for inconsistent number of glyphs.
   4870 	Reported by Johnson Y. Yan <yinsen_yan (a] foxitsoftware.com>.
   4871 
   4872 	* src/truetype/ttpload.c (tt_face_load_loca): While sanitizing,
   4873 	handle case where `loca' is the last table in the font.
   4874 
   4875 2010-11-18  Werner Lemberg  <wl (a] gnu.org>
   4876 
   4877 	[sfnt] Ignore all errors while loading `OS/2' table.
   4878 	Suggested by Johnson Y. Yan <yinsen_yan (a] foxitsoftware.com>.
   4879 
   4880 	* src/sfnt/sfobjs.c (sfnt_load_face): Do it.
   4881 
   4882 2010-11-18  Johnson Y. Yan  <yinsen_yan (a] foxitsoftware.com>
   4883 
   4884 	[type1] Fix matrix normalization.
   4885 
   4886 	* src/type1/t1load.c (parse_font_matrix): Handle sign of scaling
   4887 	factor.
   4888 
   4889 2010-11-18  Werner Lemberg  <wl (a] gnu.org>
   4890 
   4891 	[type1] Improve guard against malformed data.
   4892 	Based on a patch submitted by Johnson Y. Yan
   4893 	<yinsen_yan (a] foxitsoftware.com>
   4894 
   4895 	* src/type1/t1load.c (read_binary_data): Check `size'.
   4896 
   4897 2010-11-17  Werner Lemberg  <wl (a] gnu.org>
   4898 
   4899 	[sfnt] While tracing, output table checksums also.
   4900 
   4901 	* src/sfnt/ttload.c (tt_face_load_font_dir): Do it.
   4902 
   4903 2010-11-04  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4904 
   4905 	[UVS] Fix `find_variant_selector_charmap', Savannah bug #31545.
   4906 
   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.
   4911 
   4912 	* src/base/ftobjs.c (Fix find_variant_selector_charmap):
   4913 	Returns UVS cmap correctly.
   4914 
   4915 2010-11-01  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4916 
   4917 	[ftsmooth] Improve rendering.
   4918 
   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
   4925 
   4926 	  https://lists.gnu.org/archive/html/freetype-devel/2010-10/msg00055.html
   4927 
   4928 	and later mails in this thread.
   4929 
   4930 2010-10-28  Werner Lemberg  <wl (a] gnu.org>
   4931 
   4932 	[ftraster] Minor fixes.
   4933 
   4934 	Reported by Tom Bishop <wenlin (a] wenlin.com>.
   4935 
   4936 	* src/raster/ftraster.c (ULong): Remove unused typedef.
   4937 	(TWorker): Remove unused variable `precision_mask'.
   4938 
   4939 2010-10-28  Werner Lemberg  <wl (a] gnu.org>
   4940 
   4941 	[ftraster] Fix rendering.
   4942 
   4943 	Problem reported by Tom Bishop <wenlin (a] wenlin.com>; see
   4944 	thread starting with
   4945 
   4946 	  https://lists.gnu.org/archive/html/freetype/2010-10/msg00049.html
   4947 
   4948 	* src/raster/ftraster.c (Line_Up): Replace FMulDiv with SMulDiv
   4949 	since the involved multiplication exceeds 32 bits.
   4950 
   4951 2010-10-25  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4952 
   4953 	Revert a change of `_idx' type in `FTC_CACHE_LOOKUP_CMP'.
   4954 
   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.
   4958 
   4959 2010-10-24  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   4960 
   4961 	[cache] Change the hash types to FT_PtrDist.
   4962 
   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.
   4972 
   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.
   4978 
   4979 	* src/cache/ftccache.h (FTC_NodeRec): The type of the
   4980 	member `hash' is changed from FT_UInt32 to FT_PtrDist.
   4981 
   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.
   4989 
   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.
   4999 
   5000 2010-10-24  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5001 
   5002 	[cache] Hide internal macros incompatible with LLP64.
   5003 
   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.
   5008 
   5009 	For the history of these macros, see the investigation:
   5010 	https://lists.gnu.org/archive/html/freetype/2010-10/msg00022.html
   5011 
   5012 2010-10-24  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5013 
   5014 	Change the type of `FT_MEM_VAL' from FT_ULong to FT_PtrDist.
   5015 
   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.
   5020 
   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.
   5025 
   5026 2010-10-24  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5027 
   5028 	Replace "%lx" for memory address by "%p", LLP64 platforms.
   5029 
   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.
   5034 
   5035 	* src/raster/ftraster.c (New_Profile): Replace "%lx" by "%p".
   5036 	(End_Profile) Ditto.
   5037 	* src/truetype/ttinterp.c (Init_Context): Ditto.
   5038 
   5039 2010-10-15  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   5040 
   5041 	Fix thinko in spline flattening.
   5042 
   5043 	FT_MAX_CURVE_DEVIATION is dependent on the value of ONE_PIXEL.
   5044 
   5045 	* src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): Remove it and
   5046 	replace it everywhere with ONE_PIXEL/8.
   5047 
   5048 2010-10-13  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5049 
   5050 	[raccess] Skip unrequired resource access rules by Darwin VFS.
   5051 
   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 		https://trac.macports.org/ticket/18859
   5058 
   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.
   5067 
   5068 2010-10-13  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5069 
   5070 	[raccess] Grouping resource access rules based on Darwin VFS.
   5071 
   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.
   5081 
   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.
   5091 
   5092 2010-10-13  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5093 
   5094 	Prevent to open a FT_Stream for zero-sized file on non-Unix.
   5095 
   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.
   5101 
   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.
   5106 
   5107 2010-10-12  Werner Lemberg  <wl (a] gnu.org>
   5108 
   5109 	[truetype] Fix Savannah bug #31310.
   5110 
   5111 	* src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against
   5112 	invalid `runcnt' values.
   5113 
   5114 2010-10-08  Chris Liddell  <chris.liddell (a] artifex.com>
   5115 
   5116 	[sfnt] Fix Savannah bug #31275.
   5117 
   5118 	* src/sfnt/ttpost.c: Include FT_INTERNAL_DEBUG_H.
   5119 
   5120 2010-10-06  Werner Lemberg  <wl (a] gnu.org>
   5121 
   5122 	[truetype] Improve error handling of `SHZ' bytecode instruction.
   5123 	Problem reported by Chris Evans <scarybeasts (a] gmail.com>.
   5124 
   5125 	* src/truetype/ttinterp.c (Ins_SHZ): Check `last_point'.
   5126 
   5127 2010-10-05  Werner Lemberg  <wl (a] gnu.org>
   5128 
   5129 	Fix Savannah bug #31253.
   5130 	Patch submitted by an anonymous reporter.
   5131 
   5132 	* configure: Use `awk' instead of `sed' to manipulate output of `ls
   5133 	-id'.
   5134 
   5135 2010-10-03  Werner Lemberg  <wl (a] gnu.org>
   5136 
   5137 	* Version 2.4.3 released.
   5138 	=========================
   5139 
   5140 
   5141 	Tag sources with `VER-2-4-3'.
   5142 
   5143 	* docs/CHANGES: Updated.
   5144 
   5145 	* docs/VERSION.DLL: Update documentation and bump version number to
   5146 	2.4.3
   5147 
   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/.
   5160 
   5161 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
   5162 
   5163 	* builds/unix/configure.raw (version_info): Set to 12:1:6.
   5164 
   5165 2010-10-03  Werner Lemberg  <wl (a] gnu.org>
   5166 
   5167 	Avoid `configure' issues with symbolic links.
   5168 	Based on a patch from Alexander Stohr <Alexander.Stohr (a] gmx.de>.
   5169 
   5170 	* configure: Compare directories using `ls -id'.
   5171 	Check existence of `reference' subdirectory before creating it.
   5172 
   5173 2010-10-02  Werner Lemberg  <wl (a] gnu.org>
   5174 
   5175 	[sfnt] Fix Savannah bug #31088 (sort of).
   5176 
   5177 	* src/sfnt/ttload.c (tt_face_load_maxp): Always allocate at least 64
   5178 	function entries.
   5179 
   5180 2010-10-02  Werner Lemberg  <wl (a] gnu.org>
   5181 
   5182 	[smooth] Fix splitting of cubics for negative values.
   5183 
   5184 	Reported by Rbert Mrki <gsmiko (a] gmail.com>; see
   5185 	https://lists.gnu.org/archive/html/freetype/2010-09/msg00019.html.
   5186 
   5187 	* src/smooth/ftgrays.c (gray_render_cubic): Fix thinko.
   5188 
   5189 2010-10-01  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5190 
   5191 	[truetype] Fix Savannah bug #31040.
   5192 
   5193 	* src/truetype/ttinterp.c (free_buffer_in_size): Remove.
   5194 	(TT_RunIns): Updated.
   5195 
   5196 2010-09-20  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5197 
   5198 	[sfnt] Make error message filling NULL names less verbose.
   5199 
   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.
   5202 
   5203 2010-09-20  Graham Asher  <graham.asher (a] btinternet.com>
   5204 	    David Bevan  <david.bevan (a] pb.com>
   5205 
   5206 	[smooth] Fix and improve spline flattening.
   5207 
   5208 	This fixes the flattening of cubic, S-shaped curves and speeds up
   5209 	the handling of both the conic and cubic arcs.
   5210 
   5211 	See the discussions on the freetype-devel mailing list in late
   5212 	August and September 2010 for details.
   5213 
   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.
   5220 
   5221 2010-09-19  Werner Lemberg  <wl (a] gnu.org>
   5222 
   5223 	Minor fixes.
   5224 
   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'.
   5234 
   5235 2010-09-19  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5236 
   5237 	[cff] Truncate the element length at the end of the stream.
   5238 	See Savannah bug #30975.
   5239 
   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.
   5245 
   5246 2010-09-19  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5247 
   5248 	[cff] Ignore CID > 0xFFFFU.
   5249 	See Savannah bug #30975.
   5250 
   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.
   5255 
   5256 2010-09-19  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5257 
   5258 	[cff] Make trace message in` cff_charset_load' verbose.
   5259 	See Savannah bug #30975.
   5260 
   5261 	* src/cff/cffload.c (cff_charset_load): Report the original `nleft'
   5262 	and truncated `nleft'.
   5263 
   5264 2010-09-19  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5265 
   5266 	[cff] Correct `max_cid' from CID array length to max CID.
   5267 	See Savannah bug #30975.
   5268 
   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.
   5276 
   5277 2010-09-19  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5278 
   5279 	[truetype] Sanitize the broken offsets in `loca'.
   5280 	See Savannah bug #31040.
   5281 
   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.
   5287 
   5288 2010-09-19  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5289 
   5290 	[sfnt] Prevent overrunning in `post' table parser.
   5291 	See Savannah bug #31040.
   5292 
   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.
   5299 
   5300 2010-09-17  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5301 
   5302 	[truetype] Don't duplicate size->twilight structure to be freed.
   5303 	See Savannah bug #31040 for detail.
   5304 
   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.
   5311 
   5312 2010-09-15  Werner Lemberg  <wl (a] gnu.org>
   5313 
   5314 	Make bytecode debugging with FontForge work again.
   5315 
   5316 	* src/truetype/ttinterp.c (TT_RunIns): Don't call
   5317 	`free_buffer_in_size' in case of error if a debugger is active.
   5318 
   5319 2010-09-14  Werner Lemberg  <wl (a] gnu.org>
   5320 
   5321 	Improve tracing messages.
   5322 
   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.
   5330 
   5331 2010-09-13  Werner Lemberg  <wl (a] gnu.org>
   5332 
   5333 	Fix minor issues reported by <muktha.narayan (a] wipro.com>.
   5334 
   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'.
   5346 
   5347 2010-08-31  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5348 
   5349 	Ignore the environmental setting of LIBTOOL.
   5350 	Patch is suggested by Adrian Bunk, to prevent unexpected
   5351 	reflection of environmental LIBTOOL.  See:
   5352 	https://savannah.nongnu.org/patch/?7290
   5353 
   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).
   5359 
   5360 2010-08-31  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5361 
   5362 	[truetype] Decrease the trace level catching the interpreter error.
   5363 
   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'.
   5367 
   5368 2010-08-30  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5369 
   5370 	[truetype] Prevent bytecode reuse after the interpretation error.
   5371 
   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.
   5379 
   5380 	This fixes Savannah bug #30798, reported by Robert wicki.
   5381 
   5382 2010-08-29  Werner Lemberg  <wl (a] gnu.org>
   5383 
   5384 	[ftraster] Pacify compiler.
   5385 
   5386 	* src/raster/ftraster.c (ft_black_new) [_STANDALONE_]: `memory' is
   5387 	not used.
   5388 
   5389 2010-08-29  Werner Lemberg  <wl (a] gnu.org>
   5390 
   5391 	[cff] Allow SIDs >= 65000.
   5392 
   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.
   5397 
   5398 	Problem reported by Ivan Nini <inincic (a] pdftron.com>.
   5399 
   5400 2010-08-28  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5401 
   5402 	Force hinting when the font lacks its familyname.
   5403 
   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:
   5408 
   5409 	https://lists.gnu.org/archive/html/freetype-devel/2010-08/msg00021.html
   5410 	https://lists.freedesktop.org/archives/poppler/2010-August/006310.html
   5411 
   5412 	* src/truetype/ttobjs.c (tt_check_trickyness): If a NULL pointer by
   5413 	nameless font is given, TRUE is returned to enable hinting.
   5414 
   5415 2010-08-28  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5416 
   5417 	Register yet another tricky TrueType font.
   5418 
   5419 	* src/truetype/ttobjs.c (tt_check_trickyness): Add `HuaTianKaiTi?',
   5420 	a Kaishu typeface paired with `HuaTianSongTi?' by Huatian
   5421 	Information Industry.
   5422 
   5423 2010-08-17  Teijo Kinnunen  <Teijo.Kinnunen (a] nuance.com>
   5424 
   5425 	[cache] Fix Savannah bug #30788.
   5426 
   5427 	* src/cache/ftccache.c (FTC_Cache_Clear): Check `cache->buckets' for
   5428 	NULL too.
   5429 
   5430 2010-08-10  Werner Lemberg  <wl (a] gnu.org>
   5431 
   5432 	Try to fix Savannah bug #30717 (and probably #30719 too).
   5433 
   5434 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Add another
   5435 	overflow test for `width' and `height'.
   5436 
   5437 2010-08-06  Werner Lemberg  <wl (a] gnu.org>
   5438 
   5439 	* Version 2.4.2 released.
   5440 	=========================
   5441 
   5442 
   5443 	Tag sources with `VER-2-4-2'.
   5444 
   5445 	* docs/CHANGES: Updated.
   5446 
   5447 	* docs/VERSION.DLL: Update documentation and bump version number to
   5448 	2.4.2
   5449 
   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/.
   5462 
   5463 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
   5464 
   5465 	* builds/unix/configure.raw (version_info): Set to 12:0:6.
   5466 
   5467 2010-08-06  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5468 
   5469 	Fix Savannah bug #30648.
   5470 
   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.
   5476 
   5477 2010-08-06  Yuriy Kaminskiy  <yumkam (a] mail.ru>
   5478 
   5479 	[raster] Fix valgrind warning.
   5480 
   5481 	* src/raster/ftraster.c (Decompose_Curve) <default>: Access point[0]
   5482 	only if we don't hit `limit'.
   5483 
   5484 2010-08-06  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5485 
   5486 	Fix Savannah bug #30658.
   5487 
   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.
   5491 
   5492 2010-08-06  Yuriy Kaminskiy  <yumkam (a] mail.ru>
   5493 
   5494 	Fix conditional usage of FT_MulFix_i386.
   5495 	With -ansi flag, gcc does not define `i386', only `__i386__'.
   5496 
   5497 	* include/freetype/config/ftconfig.h, builds/unix/ftconfig.in:
   5498 	s/i386/__i386__/.
   5499 
   5500 2010-08-05  Werner Lemberg  <wl (a] gnu.org>
   5501 
   5502 	[truetype] Fix Savannah bug #30657.
   5503 
   5504 	* src/truetype/ttinterp.c (BOUNDSL): New macro.
   5505 	Change `BOUNDS' to `BOUNDSL' where appropriate.
   5506 
   5507 	* src/truetype/ttinterp.h (TT_ExecContextRec): Fix type of
   5508 	`cvtSize'.
   5509 
   5510 2010-08-05  Werner Lemberg  <wl (a] gnu.org>
   5511 
   5512 	[type42] Fix Savannah bug #30656.
   5513 
   5514 	* src/type42/t42parse.c (t42_parse_sfnts): Protect against negative
   5515 	string_size.
   5516 	Fix comparison.
   5517 
   5518 2010-08-05  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5519 
   5520 	[cff] Don't use any values in decoder after parsing error.
   5521 
   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.
   5525 
   5526 2010-08-04  Werner Lemberg  <wl (a] gnu.org>
   5527 
   5528 	Fix Savannah bug #30644.
   5529 
   5530 	* src/base/ftstream.c (FT_Stream_EnterFrame): Fix comparison.
   5531 
   5532 2010-08-04  Werner Lemberg  <wl (a] gnu.org>
   5533 
   5534 	`make devel' fails if FT_CONFIG_OPTION_OLD_INTERNALS is set.
   5535 
   5536 	* devel/ftoption.h: Synchronize with
   5537 	include/freetype/config/ftoption.h.
   5538 
   5539 2010-08-04  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5540 
   5541 	[cff] Improve stack overflow test.
   5542 
   5543 	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Check stack
   5544 	after execution of operations too.
   5545 
   5546 2010-07-18  Werner Lemberg  <wl (a] gnu.org>
   5547 
   5548 	Add reference counters and to FT_Library and FT_Face objects.
   5549 
   5550 	* include/freetype/freetype.h (FT_Reference_Face): New function.
   5551 	* include/freetype/ftmodapi.h (FT_Reference_Library): New function.
   5552 
   5553 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec,
   5554 	FT_LibraryRec): New field `refcount'.
   5555 
   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'.
   5560 
   5561 	* docs/CHANGES: Updated.
   5562 
   5563 2010-07-18  Werner Lemberg  <wl (a] gnu.org>
   5564 
   5565 	* Version 2.4.1 released.
   5566 	=========================
   5567 
   5568 
   5569 	Tag sources with `VER-2-4-1'.
   5570 
   5571 	* docs/CHANGES: Updated.
   5572 
   5573 	* docs/VERSION.DLL: Update documentation and bump version number to
   5574 	2.4.1.
   5575 
   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/.
   5588 
   5589 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
   5590 
   5591 	* builds/unix/configure.raw (version_info): Set to 11:1:5.
   5592 
   5593 2010-07-17  Werner Lemberg  <wl (a] gnu.org>
   5594 
   5595 	[cff] Final try to fix `hintmask' and `cntrmask' limit check.
   5596 
   5597 	Problem reported by Tobias Wolf <towolf (a] gmail.com>.
   5598 
   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.
   5602 
   5603 2010-07-12  Werner Lemberg  <wl (a] gnu.org>
   5604 
   5605 	* Version 2.4.0 released.
   5606 	=========================
   5607 
   5608 
   5609 	Tag sources with `VER-2-4-0'.
   5610 
   5611 	* docs/CHANGES: Updated.
   5612 
   5613 	* docs/VERSION.DLL: Update documentation and bump version number to
   5614 	2.4.0.
   5615 
   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/.
   5628 
   5629 	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 4.
   5630 	(FREETYPE_PATCH): Set to 0.
   5631 
   5632 	* builds/unix/configure.raw (version_info): Set to 11:0:5.
   5633 
   5634 2010-07-12  Werner Lemberg  <wl (a] gnu.org>
   5635 
   5636 	Remove C++ warnings.
   5637 
   5638 	*/*: Initialize pointers where necessary to make g++ happy.
   5639 
   5640 2010-07-12  malc  <av1474 (a] comtv.ru>
   5641 	    Richard Henderson  <rth (a] redhat.com>
   5642 
   5643 	Fix type-punning issues with C++.
   5644 
   5645 	* include/freetype/internal/ftmemory.h (FT_ASSIGNP) [__cplusplus]:
   5646 	Emulate a `typeof' operator with an inline template which uses
   5647 	`static_cast'.
   5648 
   5649 2010-07-11  Werner Lemberg  <wl (a] gnu.org>
   5650 
   5651 	Fix C++ compilation issue.
   5652 
   5653 	* src/tools/apinames.c (names_dump) <OUTPUT_WATCOM_LBC>: Fix
   5654 	type of `dot' variable.
   5655 
   5656 2010-07-10  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5657 
   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.
   5661 
   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.
   5666 
   5667 2010-07-09  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5668 
   5669 	Use defined macros to set {platform,encoding}_id.
   5670 
   5671 	* src/bdf/bdfdrivr.c: Include ttnameid.h and use macros to
   5672 	set charmap.{platform,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.
   5679 
   5680 2010-07-09  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5681 
   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.
   5685 
   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.
   5690 
   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.
   5696 
   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.
   5701 
   5702 2010-07-09  Ken Sharp  <ken.sharp (a] artifex.com>
   5703 
   5704 	Make ftraster.c compile in stand-alone mode with MSVC compiler.
   5705 
   5706 	* src/raster/ftmisc.h (FT_Int64) [_WIN32, _WIN64]: Fix typedef
   5707 	since there is no `inttypes.h' for MSVC.
   5708 
   5709 2010-07-08  Werner Lemberg  <wl (a] gnu.org>
   5710 
   5711 	[truetype] Fix Savannah bug #30361.
   5712 
   5713 	* src/truetype/ttinterp.c (Ins_IUP): Fix bounds check.
   5714 
   5715 2010-07-06  Werner Lemberg  <wl (a] gnu.org>
   5716 
   5717 	Pacify compiler.
   5718 
   5719 	* src/cff/cffload.c (cff_index_get_pointers): Initialize
   5720 	`new_bytes'.
   5721 
   5722 2010-07-05  Eugene A. Shatokhin  <spectre (a] ispras.ru>
   5723 
   5724 	Fix Savannah bug #27648.
   5725 
   5726 	* src/base/ftobjs.c (ft_remove_renderer, FT_Add_Module): Call
   5727 	`raster_done' only if we have an outline glyph format.
   5728 
   5729 2010-07-05  Werner Lemberg  <wl (a] gnu.org>
   5730 
   5731 	Fix Savannah bug #30030.
   5732 
   5733 	* builds/win32/*/freetype.vcproj: Add ftxf86.c.
   5734 
   5735 2010-07-05  Werner Lemberg  <wl (a] gnu.org>
   5736 
   5737 	[cff] Next try to fix `hintmask' and `cntrmask' limit check.
   5738 
   5739 	Problem reported by malc <av1474 (a] comtv.ru>.
   5740 
   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.
   5744 
   5745 2010-07-04  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5746 
   5747 	Restrict the number of the charmaps in a rogue-compatible mode.
   5748 	Fix for Savannah bug #30059.
   5749 
   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).
   5755 
   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.
   5761 
   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.
   5776 
   5777 2010-07-04  Werner Lemberg  <wl (a] gnu.org>
   5778 
   5779 	TrueType hinting is no longer patented.
   5780 
   5781 	* include/freetype/config/ftoption.h, devel/ftoption.h
   5782 	(TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Define.
   5783 	(TT_CONFIG_OPTION_UNPATENTED_HINTING): Undefine.
   5784 
   5785 	* docs/CHANGES, docs/INSTALL, include/freetype/freetype.h: Updated.
   5786 	* docs/TRUETYPE, docs/PATENTS: Removed.
   5787 
   5788 2010-07-04  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5789 
   5790 	Check error value by `FT_CMap_New'.
   5791 
   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/t1objs.c (T1_Face_Init): Ditto.
   5796 	* src/type42/t42objs.c (T42_Face_Init): Ditto.
   5797 
   5798 2010-07-03  Werner Lemberg  <wl (a] gnu.org>
   5799 
   5800 	Make ftgrays.c compile stand-alone again.
   5801 
   5802 	* src/smooth/ftgrays.c [_STANDALONE_]: Include `stddef.h'.
   5803 	(FT_INT_MAX, FT_PtrDist)[_STANDALONE_]: Define.
   5804 
   5805 2010-07-02  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5806 
   5807 	Additional fix for Savannah bug #30306.
   5808 
   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 wicki.
   5814 
   5815 2010-07-01  Werner Lemberg  <wl (a] gnu.org>
   5816 
   5817 	[truetype] Protect against code range underflow.
   5818 
   5819 	* src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Don't allow
   5820 	negative IP values.
   5821 
   5822 2010-07-01  Werner Lemberg  <wl (a] gnu.org>
   5823 
   5824 	[truetype] Add rudimentary tracing for bytecode instructions.
   5825 
   5826 	* src/truetype/ttinterp.c (opcode_name) [FT_DEBUG_LEVEL_TRACE]: New
   5827 	array.
   5828 	(TT_RunIns): Trace opcodes.
   5829 
   5830 2010-06-30  Werner Lemberg  <wl (a] gnu.org>
   5831 
   5832 	[smooth] Fix Savannah bug #30263.
   5833 
   5834 	* src/smooth/ftgrays.c (gray_render_span): Use cast to `unsigned
   5835 	int' to avoid integer overflow.
   5836 
   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.
   5840 
   5841 2010-07-01  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5842 
   5843 	Initial fix for Savannah bug #30306.
   5844 
   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 wicki.
   5850 
   5851 2010-07-01  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5852 
   5853 	Additional fix for Savannah bug #30248 and #30249.
   5854 
   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 wicki.
   5858 
   5859 2010-06-30  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   5860 
   5861 	Minor optimizations by avoiding divisions.
   5862 
   5863 	* src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning):
   5864 	Replace divisions with multiplication in comparisons.
   5865 
   5866 2010-06-29  Werner Lemberg  <wl (a] gnu.org>
   5867 
   5868 	Fix minor tracing issues.
   5869 
   5870 	* src/cff/cffgload.c, src/truetype/ttgload.c: Adjust tracing levels.
   5871 
   5872 2010-06-27  Werner Lemberg  <wl (a] gnu.org>
   5873 
   5874 	[cff] Really fix `hintmask' and `cntrmask' limit check.
   5875 
   5876 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
   5877 	<cff_op_hintmask>: Fix thinko and handle tracing also.
   5878 
   5879 2010-06-27  Werner Lemberg  <wl (a] gnu.org>
   5880 
   5881 	Fix valgrind warning.
   5882 
   5883 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Initialize
   5884 	`result' array.
   5885 
   5886 2010-06-27  Werner Lemberg  <wl (a] gnu.org>
   5887 
   5888 	[cff] Fix memory leak.
   5889 
   5890 	* src/cff/cffgload.c (cff_operator_seac): Free charstrings even in
   5891 	case of errors.
   5892 
   5893 2010-06-27  Werner Lemberg  <wl (a] gnu.org>
   5894 
   5895 	[cff] Protect against invalid `hintmask' and `cntrmask' operators.
   5896 
   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.
   5900 
   5901 2010-06-26  Werner Lemberg  <wl (a] gnu.org>
   5902 
   5903 	Fix PFR change 2010-06-24.
   5904 
   5905 	* src/pfr/pfrgload.c (pfr_glyph_load_simple): Really protect against
   5906 	invalid indices.
   5907 
   5908 2010-06-26  Werner Lemberg  <wl (a] gnu.org>
   5909 
   5910 	Improve PFR tracing messages.
   5911 
   5912 	* src/pfr/pfrgload.c (pfr_glyph_load_rec): Emit tracing messages for
   5913 	simple and compound glyph offsets.
   5914 
   5915 2010-06-26  Werner Lemberg  <wl (a] gnu.org>
   5916 
   5917 	Fix last PFR change.
   5918 
   5919 	* src/pfr/pfrobjs.c (pfr_face_init): Fix rejection logic.
   5920 
   5921 2010-06-26  Werner Lemberg  <wl (a] gnu.org>
   5922 
   5923 	[sfnt] Fix Savannah bug #30262.
   5924 
   5925 	* src/sfnt/ttload.c (tt_face_load_maxp): Limit `maxComponentDepth'
   5926 	arbitrarily to 100 to avoid stack exhaustion.
   5927 
   5928 2010-06-26  Werner Lemberg  <wl (a] gnu.org>
   5929 
   5930 	Add some memory checks (mainly for debugging).
   5931 
   5932 	* src/base/ftstream.c (FT_Stream_EnterFrame): Exit with error
   5933 	if the frame size is larger than the stream size.
   5934 
   5935 	* src/base/ftsystem.c (ft_ansi_stream_io): Exit with error if
   5936 	seeking a position larger than the stream size.
   5937 
   5938 2010-06-25  Werner Lemberg  <wl (a] gnu.org>
   5939 
   5940 	[pfr] Fix Savannah bug #30261.
   5941 
   5942 	* src/pfr/pfrobjs.c (pfr_face_init): Reject fonts which contain
   5943 	neither outline nor bitmap glyphs.
   5944 
   5945 2010-06-25  Werner Lemberg  <wl (a] gnu.org>
   5946 
   5947 	[cff] Fix Savannah bug #30254.
   5948 
   5949 	* src/cff/cffload.c (cff_index_get_pointers): Do sanity check for
   5950 	first offset also.
   5951 
   5952 2010-06-25  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   5953 
   5954 	Initial fix for Savannah bug #30248 and #30249.
   5955 
   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 wicki.
   5959 
   5960 2010-06-24  Werner Lemberg  <wl (a] gnu.org>
   5961 
   5962 	[pcf] Fix Savannah bug #30247.
   5963 
   5964 	* src/pcf/pcfread.c (pcf_get_metrics): Disallow (invalid) fonts with
   5965 	zero metrics.
   5966 
   5967 2010-06-24  Graham Asher  <graham.asher (a] btinternet.com>
   5968 
   5969 	* src/smooth/ftgrays.c (gray_render_cubic): Fix algorithm.
   5970 	The previous version was too aggressive, as demonstrated in
   5971 	https://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00020.html.
   5972 
   5973 2010-06-24  Werner Lemberg  <wl (a] gnu.org>
   5974 
   5975 	*/*: Use module specific error names where appropriate.
   5976 
   5977 2010-06-24  Werner Lemberg  <wl (a] gnu.org>
   5978 
   5979 	[sfnt] Fix Savannah bug #30236.
   5980 
   5981 	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Improve check for pointer
   5982 	to `cmap_table'.
   5983 
   5984 2010-06-24  Werner Lemberg  <wl (a] gnu.org>
   5985 
   5986 	[pfr] Fix Savannah bug #30235.
   5987 
   5988 	* src/pfr/pfrgload.c (pfr_glyph_load_simple): Protect against
   5989 	invalid indices if there aren't any coordinates for indexing.
   5990 
   5991 2010-06-24  Werner Lemberg  <wl (a] gnu.org>
   5992 
   5993 	[bdf]: Font properties are optional.
   5994 
   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'.
   5999 
   6000 2010-06-23  Werner Lemberg  <wl (a] gnu.org>
   6001 
   6002 	[bdf] Fix Savannah bug #30220.
   6003 
   6004 	* include/freetype/fterrdef.h
   6005 	(BDF_Err_Missing_Fontboundingbox_Field): New error code.
   6006 
   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).
   6011 
   6012 2010-06-21  Werner Lemberg  <wl (a] gnu.org>
   6013 
   6014 	[pfr] Fix Savannah bug #30168.
   6015 
   6016 	* src/pfr/pfrgload.c (pfr_glyph_load_compound): Limit the number of
   6017 	subglyphs to avoid endless recursion.
   6018 
   6019 2010-06-20  Werner Lemberg  <wl (a] gnu.org>
   6020 
   6021 	[psaux] Fix Savannah bug #30145.
   6022 
   6023 	* src/psaux/psobjs.c (t1_builder_add_contour): Protect against
   6024 	`outline == NULL' which might happen in invalid fonts.
   6025 
   6026 2010-06-19  Werner Lemberg  <wl (a] gnu.org>
   6027 
   6028 	[bdf] Fix Savannah bug #30135.
   6029 
   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.
   6033 
   6034 2010-06-15  Werner Lemberg  <wl (a] gnu.org>
   6035 
   6036 	[autofit] Fix Savannah bug #30108.
   6037 
   6038 	* src/autofit/afglobal.c (af_face_globals_compute_script_coverage):
   6039 	Properly mask AF_DIGIT bit in comparison.
   6040 
   6041 2010-06-11  Werner Lemberg  <wl (a] gnu.org>
   6042 
   6043 	[pshinter] Fix Savannah bug #30106.
   6044 
   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.
   6049 
   6050 	* src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Assure that
   6051 	`end_point' is not larger than `glyph->num_points'.
   6052 
   6053 2010-06-11  Werner Lemberg  <wl (a] gnu.org>
   6054 
   6055 	[cff]: Improve debugging output.
   6056 
   6057 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
   6058 	<cff_op_hintmask>: Implement it.
   6059 
   6060 2010-06-10  Graham Asher  <graham.asher (a] btinternet.com>
   6061 
   6062 	ftgrays: Speed up rendering of small cubic splines.
   6063 
   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:
   6067 
   6068 	  https://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00000.html
   6069 
   6070 2010-06-09  Werner Lemberg  <wl (a] gnu.org>
   6071 
   6072 	[cff] Fix Savannah bug #30082.
   6073 
   6074 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
   6075 	<cff_op_callothersubr>: Protect against stack underflow.
   6076 
   6077 2010-06-08  Werner Lemberg  <wl (a] gnu.org>
   6078 
   6079 	[cff] Fix Savannah bug #30053.
   6080 
   6081 	* src/cff/cffparse.c (cff_parse_real): Handle border case where
   6082 	`fraction_length' has value 10.
   6083 
   6084 2010-06-07  Werner Lemberg  <wl (a] gnu.org>
   6085 
   6086 	Fix Savannah bug #30052.
   6087 	This bug has been introduced with commit 2415cbf3.
   6088 
   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.
   6091 
   6092 2010-05-26  Werner Lemberg  <wl (a] gnu.org>
   6093 
   6094 	Remove unused variable.
   6095 	Found by Graham.
   6096 
   6097 	* src/autofit/afhints.c (af_glyph_hints_reload): Remove unused
   6098 	variable `first' in first block.
   6099 
   6100 2010-05-22  Werner Lemberg  <wl (a] gnu.org>
   6101 
   6102 	Fix various memory problems found by linuxtesting.org.
   6103 
   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'.
   6107 
   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'.
   6112 
   6113 2010-05-22  Werner Lemberg  <wl (a] gnu.org>
   6114 
   6115 	autofit: Remove dead code.
   6116 	Suggested by Graham.
   6117 
   6118 	* src/autofit/afhints.c (af_glyph_hints_compute_inflections):
   6119 	Removed.
   6120 	(af_glyph_hints_reload): Remove third argument.
   6121 	Update all callers.
   6122 
   6123 2010-05-21  Bram Tassyns  <bramt (a] enfocus.be>
   6124 
   6125 	[cff] Fix Savannah bug #27987.
   6126 
   6127 	* src/cff/cffobjs.c (remove_subset_prefix): New function.
   6128 	(cff_face_init): Use it to adjust `cffface->family_name'.
   6129 
   6130 2010-05-20  Werner Lemberg  <wl (a] gnu.org>
   6131 
   6132 	TrueType: Make FreeType ignore maxSizeOfInstructions in `maxp'.
   6133 
   6134 	Acroread does the same.
   6135 
   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.
   6139 
   6140 	(load_truetype_glyph): Save `loader->byte_len' before recursive
   6141 	call.
   6142 
   6143 	* src/truetype/ttinterp.h, src/truetype/ttinterp.c (Update_Max):
   6144 	Declare it as FT_LOCAL.
   6145 
   6146 2010-05-18  Hongbo Ni  <hongbo (a] njstar.com>
   6147 
   6148 	Apply Savannah patch #7196.
   6149 
   6150 	* src/cff/cffgload.c (cff_slot_load): Prevent crash if CFF subfont
   6151 	index is out of range.
   6152 
   6153 2010-05-11  Werner Lemberg  <wl (a] gnu.org>
   6154 
   6155 	* docs/formats.txt: Give pointer to PCF documentation.
   6156 	Information provided by Alan Coopersmith
   6157 	<alan.coopersmith (a] oracle.com>.
   6158 
   6159 2010-05-10  Ken Sharp  <ken.sharp (a] artifex.com>
   6160 
   6161 	[psaux] Fix Savannah bug #29846.
   6162 
   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.
   6167 
   6168 	This was fixed by simply ignoring the error and carrying on.
   6169 
   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.
   6175 
   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.
   6179 
   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.
   6183 
   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.
   6187 
   6188 2010-04-14  Ken Sharp  <ken.sharp (a] artifex.com>
   6189 
   6190 	[psaux] Fix Savannah bug #29444.
   6191 
   6192 	* src/psaux/psobjs.c (t1_builder_start_point): Accept (invalid)
   6193 	`lineto' immediately after `hsbw', in accordance with Acrobat, GS,
   6194 	and others.
   6195 
   6196 2010-04-14  Micha Cicho  <thedmd (a] artifexmundi.com>
   6197 
   6198 	[psaux] Fix Savannah bug #27999.
   6199 
   6200 	* src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID): Only remove
   6201 	selected entry, not all.
   6202 
   6203 2010-04-06  Jonathan Kew  <jfkthame (a] gmail.com>
   6204 
   6205 	[truetype] Add overflow check to `fvar' table.
   6206 
   6207 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Check axis and instance
   6208 	count.
   6209 
   6210 2010-04-05  Ken Sharp  <ken.sharp (a] artifex.com>
   6211 
   6212 	[raster] Fix Savannah bug #29335.
   6213 
   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.
   6217 
   6218 2010-04-05  Werner Lemberg  <wl (a] gnu.org>
   6219 
   6220 	Add new function `FT_Library_SetLcdFilterWeights'.
   6221 
   6222 	This is based on code written by Lifter
   6223 	<https://unixforum.org/index.php?showuser=11691>.  It fixes
   6224 	FreeDesktop bug #27386.
   6225 
   6226 	* src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights): New
   6227 	function.
   6228 
   6229 	* include/freetype/ftlcdfil.h: Updated.
   6230 
   6231 	* docs/CHANGES: Updated.
   6232 
   6233 2010-04-01  John Tytgat  <John.Tytgat (a] esko.com>
   6234 
   6235 	[truetype] Fix Savannah bug #29404.
   6236 
   6237 	* src/truetype/ttgload.c: Revert change 2752bd1a (check on bit 1
   6238 	of `head' table of TrueType fonts).
   6239 
   6240 2010-03-14  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   6241 
   6242 	Fix `multi build' for Tytgat's CFF driver improvement.
   6243 
   6244 	* src/base/cffload.h (cff_index_get_name): Added.
   6245 
   6246 2010-03-12  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   6247 
   6248 	Remove duplicated inclusion of `FT_OUTLINE_H' in ftobjs.c.
   6249 
   6250 	* src/base/ftobjs.c: Remove 2nd inclusion of `FT_OUTLINE_H'.
   6251 
   6252 2010-03-11  Chris Liddell  <chris.liddell (a] artifex.com>
   6253 
   6254 	[raster] Fix Savannah bug #27442.
   6255 
   6256 	* src/raster/ftraster.c (ft_black_reset): Fix `buffer_size'.
   6257 
   6258 2010-03-09  Werner Lemberg  <wl (a] gnu.org>
   6259 
   6260 	[cff] Remove unused variable.
   6261 	Reported by Graham.
   6262 
   6263 	* src/cff/cffparse.c (cff_parse_real): Remove `rest'.
   6264 
   6265 2010-03-02  John Tytgat  <John.Tytgat (a] esko.com>
   6266 
   6267 	[cff] Improve CFF string (especially glyphname) lookup performance.
   6268 
   6269 	We do this by avoiding memory allocation and file I/O.  This is
   6270 	Savannah patch #7104.
   6271 
   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.
   6279 
   6280 	* src/cff/cffload.c: Don't include PS cmaps service.
   6281 	(cff_index_get_pointers): Add `pool' parameter which allows inserting
   6282 	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.
   6291 
   6292 	* src/cff/cffload.h: Don't include PS cmaps service.
   6293 	(cff_index_get_string): Added.
   6294 	(cff_index_get_sid_string): Updated.
   6295 
   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.
   6301 
   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.
   6305 
   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'.
   6313 
   6314 	* src/cff/cffgload.c: Don't include FT_INTERNAL_POSTSCRIPT_HINTS_H.
   6315 	(cff_decoder_init, cff_decoder_prepare): Updated.
   6316 
   6317 2010-02-27  Werner Lemberg  <wl (a] gnu.org>
   6318 
   6319 	Simplify code.
   6320 	Suggested by Behdad.
   6321 
   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.
   6324 
   6325 2010-02-26  Behdad Esfahbod  <behdad (a] behdad.org>
   6326 
   6327 	Improve handling of invalid glyph indices in char->index functions.
   6328 
   6329 	* src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Use a
   6330 	loop.
   6331 
   6332 2010-02-18  Chris Liddell  <chris.liddell (a] artifex.com>
   6333 
   6334 	[truetype] Fix Savannah bug #28905.
   6335 
   6336 	Initialize phantom points before calling the incremental interface
   6337 	to update glyph metrics.
   6338 
   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.
   6344 
   6345 ----------------------------------------------------------------------------
   6346 
   6347 Copyright 2010-2018 by
   6348 David Turner, Robert Wilhelm, and Werner Lemberg.
   6349 
   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.
   6355 
   6356 
   6357 Local Variables:
   6358 version-control: never
   6359 coding: utf-8
   6360 End:
   6361