Home | History | Annotate | Download | only in freetype
      1 2018-01-27  Werner Lemberg  <wl (a] gnu.org>
      2 
      3 	[truetype] Better protection against invalid VF data.
      4 
      5 	Reported as
      6 
      7 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5739
      8 
      9 	Bug introduced in commit 08cd62deedefe217f2ea50e392923ce8b5bc7ac7.
     10 
     11 	* src/truetype/ttgxvar.c (TT_Set_Var_Design): Always initialize
     12 	`normalizedcoords'.
     13 
     14 2018-01-27  Werner Lemberg  <wl (a] gnu.org>
     15 
     16 	* src/truetype/ttinterp.c (Ins_GETVARIATION): Avoid NULL reference.
     17 
     18 	Reported as
     19 
     20 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5736
     21 
     22 2018-01-27  Werner Lemberg  <wl (a] gnu.org>
     23 
     24 	* src/truetype/ttgxvar.c (tt_set_mm_blend): Minor.
     25 
     26 2018-01-27  Werner Lemberg  <wl (a] gnu.org>
     27 
     28 	[truetype] Better trace VF instances.
     29 
     30 	* src/truetype/ttgxvar.c (ft_var_to_normalized): Don't emit number
     31 	of coordinates.
     32 	(TT_Get_MM_Var): Trace instance indices names.
     33 	(TT_Set_Var_Design): Updated.
     34 
     35 2018-01-27  Werner Lemberg  <wl (a] gnu.org>
     36 
     37 	[truetype] Beautify tracing of VF axis records.
     38 
     39 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Show axis records in a
     40 	table-like manner.
     41 
     42 2018-01-26  Ben Wagner  <bungeman (a] google.com>
     43 
     44 	[truetype] Fix multiple calls of `FT_Get_MM_Var' (#52955).
     45 
     46 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Set
     47 	`face->blend->num_axis' in case we have to initialize the
     48 	`face->blend'.
     49 
     50 2018-01-23  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
     51 
     52 	[apinames] Anonymous version map for GNU linker.
     53 
     54 	* src/tools/apinames.c (PROGRAM_VERSION): Set to 0.3.
     55 	(OutputFormat): Add `OUTPUT_GNU_VERMAP'.
     56 	(names_dump): Handle it.
     57 	(usage): Updated.
     58 	(main): Handle new command line flag `-wL'.
     59 
     60 2018-01-21  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
     61 
     62 	[unix] Call libtool to clean up.
     63 
     64 	* builds/unix/install.mk (clean_project_unix, distclean_project_unix):
     65 	Use libtool.
     66 	* builds/freetype.mk: Minor.
     67 
     68 2018-01-18  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
     69 
     70 	* src/base/ftver.rc: Fix mingw-w64 compilation.
     71 
     72 2018-01-18  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
     73 
     74 	[build] Enable VERSIONINFO resource for Cygwin/MinGW.
     75 
     76 	* builds/unix/configure.raw: Check for resource compiler.
     77 	* builds/unix/unix-cc.in: Conditionally set up resource compiler.
     78 	* builds/freetype.mk: Add conditional rule for `ftver.rc'.
     79 	* src/base/ftver.rc: Copyright notice and year update.
     80 
     81 2018-01-18  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
     82 
     83 	[build] Move VERSIONINFO resource.
     84 
     85 	* builds/windows/vc2010/freetype.vcxproj: Updated.
     86 	* builds/windows/ftver.rc: Move file from here...
     87 	* src/base/ftver.rc: ... to here.
     88 
     89 2018-01-12  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
     90 
     91 	[build] Expand dllexport/dllimport to Cygwin/MinGW.
     92 
     93 	* include/freetype/config/ftconfig.h: Respect DLL_EXPORT,
     94 	s/_MSC_VER/_WIN32/.
     95 	* builds/unix/ftconfig.in: Replicate here.
     96 	* builds/vms/ftconfig.h: Replicate here.
     97 
     98 2018-01-12  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
     99 
    100 	[build] Improve and document MSVC build.
    101 
    102 	* include/freetype/config/ftconfig.h: Guard dllexport/dllimport
    103 	attributes with _DLL and FT2_DLLIMPORT.
    104 	* builds/windows/vc2010/index.html: Update documentation.
    105 
    106 2018-01-10  Steve Robinson  <ssrobins (a] gmail.com>
    107 
    108 	* CMakeLists.txt [win32]: Suppress warnings for POSIX functions.
    109 
    110 2018-01-10  Ewald Hew  <ewaldhew (a] gmail.com>
    111 
    112 	[psaux] Correctly handle Flex features (#52846).
    113 
    114 	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdVMOVETO,
    115 	cf2_cmdHMOVETO>: Do not move if doing Flex.
    116 
    117 2018-01-09  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    118 
    119 	* builds/windows/vc2010/freetype.sln: Synchronize with the project.
    120 
    121 2018-01-08  Werner Lemberg  <wl (a] gnu.org>
    122 
    123 	* Version 2.9 released.
    124 	=======================
    125 
    126 
    127 	Tag sources with `VER-2-9'.
    128 
    129 	* docs/VERSION.TXT: Add entry for version 2.9.
    130 
    131 	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
    132 	builds/windows/vc2005/index.html,
    133 	builds/windows/vc2008/freetype.vcproj,
    134 	builds/windows/vc2008/index.html,
    135 	builds/windows/vc2010/freetype.vcxproj,
    136 	builds/windows/vc2010/index.html,
    137 	builds/windows/visualc/freetype.dsp,
    138 	builds/windows/visualc/freetype.vcproj,
    139 	builds/windows/visualc/index.html,
    140 	builds/windows/visualce/freetype.dsp,
    141 	builds/windows/visualce/freetype.vcproj,
    142 	builds/windows/visualce/index.html,
    143 	builds/windows/ftver.rc,
    144 	builds/wince/vc2005-ce/freetype.vcproj,
    145 	builds/wince/vc2005-ce/index.html,
    146 	builds/wince/vc2008-ce/freetype.vcproj,
    147 	builds/wince/vc2008-ce/index.html: s/2.8.1/2.9/, s/281/29/.
    148 
    149 	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 9.
    150 	(FREETYPE_PATCH): Set to 0.
    151 
    152 	* builds/unix/configure.raw (version_info): Set to 22:0:16.
    153 	* CMakeLists.txt (VERSION_PATCH): Set to 1.
    154 
    155 2018-01-07  Werner Lemberg  <wl (a] gnu.org>
    156 
    157 	Add check for librt, needed for `ftbench' (#52824).
    158 
    159 	* builds/unix/configure.raw (LIB_CLOCK_GETTIME): Define; this will
    160 	hold `-lrt' if necessary.
    161 
    162 	* builds/unix/unix-cc.in (LIB_CLOCK_GETTIME): New variable.
    163 
    164 2018-01-07  Ewald Hew  <ewaldhew (a] gmail.com>
    165 
    166 	[psaux] Fix Type 1 glyphs with too many stem hints.
    167 
    168 	According to the CFF specification, charstrings can have up to 96 stem
    169 	hints. Due to hint replacement routines in Type 1 charstrings, some
    170 	glyphs are rejected by the Adobe engine, which implements the above
    171 	limit. This fix turns off hinting for such glyphs.
    172 
    173 	* src/psaux/pshints.c (cf2_hintmap_build): Reset the error from calling
    174 	`cf2_hintmask_setAll' on a problematic Type 1 charstring and turn off
    175 	hinting.
    176 
    177 2018-01-06  Werner Lemberg  <wl (a] gnu.org>
    178 
    179 	Add `FT_Done_MM_Var'.
    180 
    181 	This is necessary in case the application's memory routines differ
    182 	from FreeType.  A typical example is a Python application on Windows
    183 	that calls FreeType compiled as a DLL via the `ctypes' interface.
    184 
    185 	* include/freetype/ftmm.h, src/base/ftmm.c (FT_Done_MM_Var): Declare
    186 	and define.
    187 
    188 	* docs/CHANGES: Updated.
    189 
    190 2018-01-03  Werner Lemberg  <wl (a] gnu.org>
    191 
    192 	[truetype] Round offsets of glyph components only if hinting is on.
    193 
    194 	* src/truetype/ttgload.c (TT_Process_Composite_Component): Implement
    195 	it.
    196 
    197 2018-01-03  Werner Lemberg  <wl (a] gnu.org>
    198 
    199 	* src/truetype/ttgxvar.c (ft_var_to_design): Remove dead code.
    200 
    201 	This is a better fix than the previous commit, which is now
    202 	reverted.
    203 
    204 2018-01-03  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    205 
    206 	Move internal LCD-related declarations.
    207 
    208 	* include/freetype/ftlcdfil.h (ft_lcd_padding, ft_lcd_filter_fir):
    209 	Move from here...
    210 	* include/freetype/internal/ftobjs.h: ... to here.
    211 
    212 2018-01-03  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    213 
    214 	* include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF)
    215 	[_MSC_VER]: Limit Visual C++ attributes.
    216 
    217 2018-01-03  Werner Lemberg  <wl (a] gnu.org>
    218 
    219 	[truetype] Make blend/design coordinate round-tripping work.
    220 
    221 	Behdad reported that setting blend coordinates, then getting design
    222 	coordinates did incorrectly return the default instance's
    223 	coordinates.
    224 
    225 	* src/truetype/ttgxvar.c (tt_set_mm_blend): Fix it.
    226 
    227 2017-12-31  Werner Lemberg  <wl (a] gnu.org>
    228 
    229 	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix endless loop.
    230 
    231 	Reported as
    232 
    233 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4838
    234 
    235 2017-12-31  Werner Lemberg  <wl (a] gnu.org>
    236 
    237 	Synchronize other Windows project files.
    238 
    239 	* builds/windows/*: Add missing files.
    240 
    241 2017-12-31  Werner Lemberg  <wl (a] gnu.org>
    242 
    243 	Update Visual C 2010 project files.
    244 
    245 	Problem reported by Hin-Tak.
    246 
    247 	* builds/windows/vc2010/freetype.vcxproj: Add files `ftbdf.c' and
    248 	`ftcid.c'.
    249 	Sort entries.
    250 	* builds/windows/vc2010/freetype.vcxproj.filter: Ditto.
    251 	Fix members of `FT_MODULE' group.
    252 
    253 2017-12-30  Werner Lemberg  <wl (a] gnu.org>
    254 
    255 	* builds/vms/ftconfig.h: Synchronize with unix `ftconfig.in' file.
    256 
    257 2017-12-28  Werner Lemberg  <wl (a] gnu.org>
    258 
    259 	* builds/unix/ftconfig.in: Synchronize with main `ftconfig.h' file.
    260 
    261 	Reported by Nikolaus.
    262 
    263 2017-12-27  Werner Lemberg  <wl (a] gnu.org>
    264 
    265 	Fix compiler warnings.
    266 
    267 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Make `pitch' and
    268 	`new_pitch' unsigned.
    269 
    270 	* src/base/ftpsprop.c: Include FT_INTERNAL_POSTSCRIPT_PROPS_H.
    271 
    272 2017-12-27  Werner Lemberg  <wl (a] gnu.org>
    273 
    274 	Fixes for `make multi'.
    275 
    276 	* include/freetype/internal/ftpsprop.h: Use `FT_BASE_CALLBACK'.
    277 	(ps_property_get): Harmonize declaration with corresponding
    278 	function typedef.
    279 
    280 	* include/freety[e/internal/fttrace.h: Add `trace_psprops'.
    281 
    282 	* src/base/ftpsprop.c: Include necessary header files.
    283 	(FT_COMPONENT): Define.
    284 	(ps_property_set): Tag with `FT_BASE_CALLBACK_DEF'.
    285 	(ps_property_get): Tag with `FT_BASE_CALLBACK_DEF'.
    286 	Harmonize declaration with corresponding function typedef.
    287 
    288 2017-12-27  Werner Lemberg  <wl (a] gnu.org>
    289 
    290 	Provide support for intra-module callback functions.
    291 
    292 	This is needed especially for `make multi' with C++.
    293 
    294 	* include/freetype/config/ftconfig.h (FT_BASE_CALLBACK,
    295 	FT_BASE_CALLBACK_DEF): New macros.
    296 
    297 2017-12-25  Ewald Hew  <ewaldhew (a] gmail.com>
    298 
    299 	Move PostScript drivers' property handlers to `base'.
    300 
    301 	This reduces the amount of duplicated code across PostScript
    302 	drivers.
    303 
    304 	* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
    305 	({cff,cid,t1}_property_{get,set}): Moved to...
    306 	* include/freetype/internal/ftpsprop.h: ...this new file.
    307 	(ps_property_{get,set}): New functions to replace moved ones.
    308 
    309 	* src/base/ftpsprop.c: New file that implements above functions.
    310 
    311 	* include/freetype/internal/internal.h
    312 	(FT_INTERNAL_POSTSCRIPT_PROPS_H): New macro.
    313 
    314 	* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c:
    315 	Updated.
    316 
    317 	* src/base/Jamfile, src/base/rules.mk (BASE_SRC), src/base/ftbase.c:
    318 	Updated.
    319 
    320 2017-12-20  Werner Lemberg  <wl (a] gnu.org>
    321 
    322 	Speed up FT_Set_Var_{Design,Blend}_Coordinates if curr == new.
    323 
    324 	We exit early if the current design or blend coordinates are
    325 	identical to the new ones.
    326 
    327 	* src/truetype/ttgxvar.c (tt_set_mm_blend, TT_Set_Var_Design):
    328 	Implement it, returning internal error code -1 if there will be no
    329 	variation change.
    330 
    331 	* src/type1/t1load.c (t1_set_mm_blend): Ditto.
    332 
    333 	* src/base/ftmm.c (FT_Set_Var_Design_Coordinates,
    334 	FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): Updated.
    335 
    336 2017-12-18  Werner Lemberg  <wl (a] gnu.org>
    337 
    338 	[sfnt] Fix charmap type 2 iterator (#52646).
    339 
    340 	The subsetted demo font of the report that exhibits the bug has a
    341 	very unusual type 2 cmap for Unicode(!): It contains only two
    342 	sub-headers, one for one-byte characters (covering the range 0x20 to
    343 	0xFA), and a second one for higher byte 0x01 (just for character
    344 	code U+0131).
    345 
    346 	Before this commit, the iterator wasn't able to correctly handle a
    347 	sub-header for higher byte 0x01.
    348 
    349 	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix character increment
    350 	for outer loop.
    351 
    352 2017-12-18  Matthias Clasen  <matthias.clasen (a] gmail.com>
    353 
    354 	[truetype] Fix clamping, minor tracing code beautification.
    355 
    356 	* src/truetype/ttgxvar.c (ft_var_to_normalized): Trace number of
    357 	design coordinates.
    358 	Use clamped value.
    359 
    360 2017-12-18  Werner Lemberg  <wl (a] gnu.org>
    361 
    362 	* src/*/*: Only use `ft_' and `FT_' variants of stdc library stuff.
    363 
    364 2017-12-18  Werner Lemberg  <wl (a] gnu.org>
    365 
    366 	* src/truetype/ttgxvar.c (tt_face_vary_cvt): Add size guard (#52688).
    367 
    368 2017-12-18  Werner Lemberg  <wl (a] gnu.org>
    369 
    370 	[truetype] Fix previous commit.
    371 
    372 	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Correctly handle
    373 	unhinted phantom points, which must be properly scaled.
    374 
    375 2017-12-18  Werner Lemberg  <wl (a] gnu.org>
    376 
    377 	[truetype] Don't apply HVAR and VVAR deltas twice (#52683).
    378 
    379 	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Always adjust
    380 	`pp1' to `pp4', except if we have an HVAR and/or VVAR table.
    381 
    382 	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Handle
    383 	alternative code branch identically w.r.t. presence of an HVAR
    384 	and/or VVAR table.
    385 
    386 2017-12-17  Jonathan Kew  <jfkthame (a] gmail.com>
    387 
    388 	[truetype] Correctly handle variation font phantom points (#52683).
    389 
    390 	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix phantom
    391 	point indices.
    392 
    393 2017-12-17  Jonathan Kew  <jfkthame (a] gmail.com>
    394 
    395 	Fix incorrect advance width scaling (#52683).
    396 
    397 	* src/base/ftadvance.c (FT_Get_Advances): Always respect the
    398 	FT_LOAD_NO_SCALE flag if present.
    399 
    400 2017-12-16  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    401 
    402 	* builds/windows/vc2010/freetype.vcxproj: AfterBuild copy.
    403 	* objs/.gitignore: Ignore almost everything.
    404 
    405 2017-12-11  Werner Lemberg  <wl (a] gnu.org>
    406 
    407 	Fix compiler warning (#52640).
    408 
    409 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Remove unused
    410 	variable.
    411 
    412 2017-12-08  Azzuro  <azzuro (a] team-mediaportal.com>
    413 
    414 	* builds/windows/vc2010/freetype.vcxproj: Adjust output directory.
    415 
    416 	This allows builds with different configurations in parallel.
    417 
    418 2017-12-08  Werner Lemberg  <wl (a] gnu.org>
    419 
    420 	Fix `make setup dos', second try (#52622).
    421 
    422 	* builds/detect.mk (dos_setup): Don't use literal `>' character at
    423 	all.  Mixing the different escaping rules from make, dos, and
    424 	windows is too fragile.
    425 
    426 2017-12-08  Werner Lemberg  <wl (a] gnu.org>
    427 
    428 	[docmaker] Fix code section parsing.
    429 
    430 	Stuff like
    431 
    432 	  {
    433 	    <bla>
    434 	  }
    435 
    436 	confused the parser, which incorrectly treated `<bla>' as a markup
    437 	tag.
    438 
    439 	* src/tools/docmaker/content.py (ContentProcessor::process_content):
    440 	Apply `re_markup_tags' only outside of code sections.
    441 
    442 2017-12-08  Werner Lemberg  <wl (a] gnu.org>
    443 
    444 	New `ftdriver.h' file, covering all driver modules.
    445 
    446 	This reduces redundancy and increases synergy; it also reduces the
    447 	number of header files.
    448 
    449 	* include/freetype/config/ftheader.h (FT_DRIVER_H): New macro.
    450 	(FT_AUTOHINTER_H, FT_CFF_DRIVER_H, FT_TRUETYPE_DRIVER_H,
    451 	FT_PCF_DRIVER_H, FT_TYPE1_DRIVER_H): Make them aliases to
    452 	FT_DRIVER_H.
    453 
    454 	* include/freetype/ftautoh.h, include/freetype/ftcffdrv.h,
    455 	include/freetype/ftpcfdrv.h, include/freetype/ftt1drv.h,
    456 	include/freetype/ftttdrv.h: Replaced with...
    457 	* include/freetype/ftdriver.h: ...this new file.
    458 	(FT_CFF_HINTING_ADOBE, FT_T1_HINTING_ADOBE): Renamed to...
    459 	(FT_HINTING_ADOBE): ... this new macro.
    460 	(FT_CFF_HINTING_FREETYPE, FT_T1_HINTING_FREETYPE): Renamed to...
    461 	(FT_HINTING_FREETYPE): ... this new macro.
    462 
    463 	* src/*/*: Updated accordingly.
    464 
    465 2017-12-08  Werner Lemberg  <wl (a] gnu.org>
    466 
    467 	Move `ftdriver.h' to `ftdrv.h'.
    468 
    469 	* include/freetype/internal/ftdriver.h: Renamed to...
    470 	* include/freetype/internal/ftdrv.h: ... this name.
    471 
    472 	* include/freetype/internal/internal.h (FT_INTERNAL_DRIVER_H):
    473 	Updated.
    474 
    475 2017-12-08  Werner Lemberg  <wl (a] gnu.org>
    476 
    477 	Fix access to uninitalized memory (#52613).
    478 
    479 	Also reported as
    480 
    481 	  https://bugs.chromium.org/p/chromium/issues/detail?id=791317
    482 
    483 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): If increasing the
    484 	bitmap size needs a larger bitmap buffer, assure that the new memory
    485 	areas are initialized also.
    486 
    487 2017-12-08  Werner Lemberg  <wl (a] gnu.org>
    488 
    489 	Fix `make setup dos' (#52622).
    490 
    491 	* builds/detect.mk (dos_setup): Properly escape literal `>'
    492 	character.
    493 
    494 2017-12-07  Werner Lemberg  <wl (a] gnu.org>
    495 
    496 	Fix C++ compilation.
    497 
    498 	* src/psaux/psauxmod.h: Use FT_CALLBACK_TABLE macro where necessary.
    499 
    500 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix warning.
    501 
    502 2017-12-07  Werner Lemberg  <wl (a] gnu.org>
    503 
    504 	Fix `make multi'.
    505 
    506 	* include/freetype/internal/fttrace.h: Remove unused tracing macros.
    507 	s/pshalgo2/pshalgo/.
    508 	Add `trace_cffdecode'.
    509 	* src/pshinter/pshalgo.c (FT_COMPONENT): Updated.
    510 
    511 	* src/cff/cffload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
    512 	* src/cff/cffobjs.c: Include FT_SERVICE_METRICS_VARIATIONS_H and
    513 	FT_SERVICE_CFF_TABLE_LOAD_H.
    514 
    515 	* src/cid/cidriver.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
    516 
    517 	* src/psaux/cffdecode.c: Include FT_FREETYPE_H and
    518 	FT_INTERNAL_DEBUG_H.
    519 	(FT_COMPONENT): Define.
    520 	* src/psaux/cffdecode.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
    521 	* src/psaux/psauxmod.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
    522 	Declare `cff_builder_funcs' and `ps_builder_funcs'.
    523 	* src/psaux/psft.c: Include `psobjs.h' and `cffdecode.h'.
    524 	* src/psaux/psobjs.c : Include `psauxmod.h'.
    525 
    526 2017-12-07  Werner Lemberg  <wl (a] gnu.org>
    527 
    528 	* include/freetype/config/ftheader.h: Some clean-up.
    529 
    530 	This commit removes documentation of deprecated macros and does some
    531 	minor streamlining.
    532 
    533 2017-12-06  Werner Lemberg  <wl (a] gnu.org>
    534 
    535 	* builds/symbian/bld.inf: Updated.
    536 
    537 2017-12-06  Werner Lemberg  <wl (a] gnu.org>
    538 
    539 	New header file `ftparams.h' that collects all parameter tags.
    540 
    541 	* include/freetype/config/ftheader.h (FT_PARAMETER_TAGS_H): New
    542 	macro.
    543 	(FT_TRUETYPE_UNPATENTED_H, FT_UNPATENTED_HINTING_H): Define it to
    544 	`ftparams.h'.
    545 
    546 	* include/freetype/ftautoh.h, include/freetype/ftcffdrv.h,
    547 	include/freetype/ftincrem.h, include/freetype/ftlcdfil.h,
    548 	include/freetype/ftsnames.h, include/freetype/ftt1drv.h: Include
    549 	FT_PARAMETER_TAGS_H.
    550 	Move FT_PARAM_TAG_XXX definitions to...
    551 	* include/freetype/ftparams.h: ...this new file.
    552 
    553 	* include/freetype/ttunpat.h: Remove.  No longer needed.
    554 
    555 2017-12-05  Werner Lemberg  <wl (a] gnu.org>
    556 
    557 	Improve tracing messages by using singular and plural forms.
    558 
    559 	* src/*/*.c: Implement it.
    560 
    561 2017-12-04  Werner Lemberg  <wl (a] gnu.org>
    562 
    563 	[truetype] Allow shared points in `cvar' table (#52532).
    564 
    565 	* src/truetype/ttgxvar.c (tt_face_vary_cvt): Implement it by copying
    566 	and adjusting the corresponding code from
    567 	`TT_Vary_Apply_Glyph_Deltas'.
    568 
    569 2017-11-28  Werner Lemberg  <wl (a] gnu.org>
    570 
    571 	[truetype] Improving tracing of composite glyphs.
    572 
    573 	* src/truetype/ttgload.c (TT_Load_Composite_Glyph)
    574 	[FT_DEBUG_LEVEL_TRACE]: Show composite glyph information.
    575 
    576 2017-11-27  Werner Lemberg  <wl (a] gnu.org>
    577 
    578 	[type1] Allow (again) `/Encoding' with >256 elements (#52464).
    579 
    580 	In version 2.6.1, this has been disallowed to better reject
    581 	malformed fonts; however, this restriction was too strong.  This
    582 	time, we only take the first 256 elements into account, since
    583 	encoding arrays are always accessed with a 8bit integer, according
    584 	to the PostScript Language Reference.
    585 
    586 	* src/type1/t1load.c (parse_encoding): Implement it.
    587 
    588 2017-11-27  Jan Alexander Steffens (heftig)  <jan.steffens (a] gmail.com>
    589 
    590 	Fix last commit (#52522).
    591 
    592 	* builds/freetype.mk: Set `FT_OPTION_H' and `FTOPTION_FLAG'
    593 	properly if we have `ftoption.h' in `BUILD_DIR'.
    594 
    595 2017-11-24  Werner Lemberg  <wl (a] gnu.org>
    596 
    597 	[unix] Install a massaged `ftoption.h' file (#51780).
    598 
    599 	* builds/unix/configure.raw (ftoption_set, ftoption_unset): New
    600 	auxiliary functions to construct...
    601 	(FTOPTION_H_SED): ... this new variable.
    602 	Apply it as a sed argument while copying `ftoption.h' to the
    603 	`builds/unix' directory (using `AC_CONFIG_FILES').
    604 	Simplify code of test that checks cpp's computation of bit length
    605 	(the test previously created an empty `ftoption.h' file and deleted
    606 	it immediately afterwards); without this change, it can happen on my
    607 	GNU/Linux box that `configure's execution of `config.status' doesn't
    608 	create `ftoption.h' (no idea why this happens).
    609 
    610 	* builds/unix/install.mk (install): Install
    611 	`builds/unix/ftoption.h'.
    612 
    613 	* builds/unix/unix-def.in (DISTCLEAN): Updated.
    614 
    615 	* builds/unix/.gitignore: Updated.
    616 
    617 2017-11-23  Tor Andersson  <tor.andersson (a] artifex.com>
    618 
    619 	Silence unused function warnings (#52465).
    620 
    621 	Some static function declarations cause unused function warnings if
    622 	certain config options are turned off via `ftoption.h'.
    623 
    624 	* src/base/ftbase.h, src/base/ftrfork.c, src/sfnt/ttbdf.h,
    625 	src/truetype/ttgxvar.h: Add #ifdef guards around these sections.
    626 
    627 2017-11-22  Ewald Hew  <ewaldhew (a] gmail.com>
    628 
    629 	* src/psaux/psft.c (cf2_setGlyphWidth): Check format before setting.
    630 
    631 	Reported as
    632 
    633 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4377
    634 
    635 2017-11-22  Ewald Hew  <ewaldhew (a] gmail.com>
    636 
    637 	[psaux] Fix CFF advance widths. (#52466)
    638 
    639 	Glyph advance widths were being written to the new `PS_Decoder' but not
    640 	saved to the underlying format specific decoder. This caused pure CFF
    641 	fonts to have bad advance width.
    642 
    643 	* include/freetype/internal/psaux.h (PS_Decoder): Change `glyph_width'
    644 	field to pointer.
    645 	Remove unused fields.
    646 	* src/psaux/psobjs.c (ps_decoder_init): Change `glyph_width' from copy
    647 	to reference.
    648 	Remove unused.
    649 	* src/psaux/psft.c (cf2_setGlyphWidth): Update code.
    650 
    651 2017-11-15  Vlad Tsyrklevich  <vtsyrklevich (a] google.com>
    652 
    653 	* include/freetype/ftrender.h: Fix `FT_Renderer_RenderFunc' type.
    654 
    655 2017-11-14  Nikolaus Waxweiler  <madigens (a] gmail.com>
    656 
    657 	Use Adobe hinting engine for `light' hinting of both CFF and Type 1.
    658 
    659 	Since Ewald Hew factored the Adobe hinting engine out of the CFF
    660 	driver code, we can now use it on Type 1 (and CID) font formats, as
    661 	both have the same hinting philosophy.
    662 
    663 	This change activates the Adobe hinter when in LIGHT mode, and
    664 	therefore always unless explicitly asking for the auto-hinter.  This
    665 	makes LIGHT behavior consistent with CFF fonts.  As of this commit,
    666 	the hinting engine table looks as follows.
    667 
    668 	             LIGHT  NORMAL
    669 	  -------------------------
    670 	   TrueType  Auto   v40
    671 	   CFF       Adobe  Adobe
    672 	   Type 1    Adobe  Adobe
    673 
    674 2017-11-10  Yuri Levchenko  <yuri_levchenko (a] boolat.com>
    675 
    676 	* CMakeLists.txt: Add `DISABLE_FORCE_DEBUG_PREFIX' option.
    677 
    678 2017-11-06  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    679 
    680 	* src/base/ftobjs.c (FT_Load_Glyph): Relocate condition.
    681 
    682 2017-11-06  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    683 
    684 	* src/smooth/ftgrays.c (gray_set_cell): Fix uninitialized variables.
    685 
    686 2017-11-03  Ewald Hew  <ewaldhew (a] gmail.com>
    687 
    688 	[psaux] Fix PostScript interpreter rewinding in Type 1 mode. (#52251)
    689 
    690 	The interpreter in Type 1 mode rewinds the charstring after collecting
    691 	all hints for building the initial hintmap (commit d52dd7f). However,
    692 	some charstrings use `endchar' in a final subroutine call, rewinding to
    693 	the start of that subroutine, and only a small section of the actual
    694 	glyph is drawn.
    695 
    696 	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdENDCHAR>:
    697 	Ensure we are on the top level charstring before rewinding.
    698 
    699 2017-11-03  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
    700 
    701 	[truetype] Add more tricky fonts.
    702 
    703 	See the report by Yang Yinsen.
    704 	https://lists.gnu.org/archive/html/freetype-devel/2017-11/msg00000.html
    705 
    706 	* src/truetype/ttobjs.c (trick_names): Add `DFGothic-EB',
    707 	`DFGyoSho-Lt', `DFHSGothic-W5', `DFHSMincho-W3' and `DFHSMincho-W7'.
    708 	(tt_check_trickyness_sfnt_ids): Add checksums for DFGothic-EB,
    709 	DFGyoSho-Lt, DFHSGothic-W5, DFHSMincho-W3 and DFHSMincho-W7.  Also
    710 	add checksums for DLCLiShu and DLCHayBold which their family names
    711 	were already listed but their checksums were previously unknown.
    712 
    713 2017-11-01  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    714 
    715 	[smooth] Fix complex rendering at high ppem.
    716 
    717 	We used to split large glyphs into horizontal bands and continue
    718 	bisecting them still horizontally if that was not enough.  This is
    719 	guaranteed to fail when a single scanline cannot fit into the
    720 	rendering memory pool.  Now we bisect the bands vertically so that
    721 	the smallest unit is a column of the band height, which is guranteed
    722 	to fit into memory.
    723 
    724 	* src/smooth/ftgrays.c (gray_convert_glyph): Implement it.
    725 
    726 2017-10-20  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    727 
    728 	[smooth] Improve complex rendering at high ppem.
    729 
    730 	At large sizes almost but not exactly horizontal segments can quickly
    731 	drain the rendering pool. This patch at least avoids filling the pool
    732 	with trivial cells. Beyond this, we can only increase the pool size.
    733 
    734 	Reported, analyzed, and tested by Colin Fahey.
    735 
    736 	* src/smooth/ftgrays.c (gray_set_cell): Do not record trivial cells.
    737 
    738 2017-10-20  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    739 
    740 	[base] Improve tracing in FT_Load_Glyph, FT_*_Size.
    741 
    742 	* src/base/ftobjs.c (FT_Load_Glyph): Tag tracing messages with
    743 	function name, glyph index, and load flags.
    744 	(FT_Select_Metrics, FT_Request_Metrics): Remove all tracing.
    745 	(FT_Select_Size, FT_Request_Size): Improve tracing.
    746 
    747 2017-10-18  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    748 
    749 	[base] Improve tracing in FT_Render_Glyph.
    750 
    751 	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Add total coverage
    752 	calculations and downgrade Netpbm dump to bitmap:7.
    753 
    754 2017-10-15  Ewald Hew  <ewaldhew (a] gmail.com>
    755 
    756 	[cff] Fix segfault on missing `psaux' (#52218)
    757 
    758 	* src/cff/cffload.c (cff_done_blend): Add a check for possible nullptr.
    759 
    760 	* modules.cfg: Update dependency list.
    761 
    762 2017-10-15  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    763 
    764 	[base, cff] Fix MSVC warnings.
    765 
    766 	* src/base/ftobjs.c (FT_New_Library): C4702: unreachable code.
    767 	(ft_glyphslot_preset_bitmap): C4244: possible loss of data.
    768 	* src/cff/cffload.c (cff_blend_doBlend): C4244: possible loss of data.
    769 	Turn `sum' into unsigned.
    770 
    771 2017-10-14  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    772 
    773 	[base] Netpbm image tracing.
    774 
    775 	* src/base/ftobjs.c (FT_Load_Glyph): Trace bitmap size.
    776 	(FT_Render_Glyph_Internal): Trace bitmap in Netpbm format.
    777 
    778 	* src/smooth/ftgrays.c (gray_sweep): Sweep remnants of span tracing.
    779 
    780 2017-10-14  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    781 
    782 	* builds/windows/ftdebug.c (FT_Message): Print to stderr.
    783 	* builds/wince/ftdebug.c (FT_Message): Ditto.
    784 
    785 2017-10-14  Behdad Esfahbod  <behdad (a] behdad.org>
    786 
    787 	[afshaper] Delay creating `hb_set' objects until needed.
    788 
    789 	In runs on Noto Naskh Arabic, this results in 89 sets created
    790 	instead of 340 before.  Makes auto-hinter setup with HarfBuzz
    791 	enabled 20% to 30% faster.
    792 
    793 	* src/autofit/afshaper.c (af_shaper_get_coverage): Implement it.
    794 
    795 2017-10-12  Ewald Hew  <ewaldhew (a] gmail.com>
    796 
    797 	[type1, cid] Add hinting engine switch.
    798 
    799 	Implement property service in `type1' and `cid' drivers to allow
    800 	switching between FreeType or Adobe hinting engine when both are
    801 	available.
    802 
    803 	* src/cid/cidriver.c (cid_property_{set,get}, cid_services),
    804 	src/type1/t1driver.c (t1_property_{set,get}, t1_services): Add
    805 	Properties service.
    806 
    807 	* src/cid/cidobjs.c (cid_driver_init), src/type1/t1objs.c
    808 	(T1_Driver_Init): Add default property values.
    809 
    810 2017-10-12  Ewald Hew  <ewaldhew (a] gmail.com>
    811 
    812 	Add T1_CONFIG_OPTION_OLD_ENGINE configuration option.
    813 
    814 	This controls whether the old Type 1 engine gets compiled into FreeType.
    815 	It is disabled by default.
    816 
    817 	* devel/ftoption.h, include/freetype/config/ftoption.h
    818 	(T1_CONFIG_OPTION_OLD_ENGINE): New macro.
    819 
    820 	* include/freetype/internal/psaux.h (PS_Decoder): Remove unused field.
    821 	* include/freetype/internal/psaux.h, src/cid/cidgload.c
    822 	(cid_load_glyph), src/psaux/psauxmod.c, src/psaux/psobjs.c
    823 	(ps_builder_add_point), src/psaux/t1decode.c
    824 	(t1_lookup_glyph_by_stdcharcode, t1_decoder_parse_glyph,
    825 	t1operator_seac, t1_decoder_parse_charstrings), src/psaux/t1decode.h,
    826 	src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Surround
    827 	relevant code with macro.
    828 	Minor code changes.
    829 
    830 2017-10-12  Ewald Hew  <ewaldhew (a] gmail.com>
    831 
    832 	Extract width parsing from Type 1 parser.
    833 
    834 	Duplicate the fast advance width calculations from the old parser.
    835 	This is to facilitate adding options for compiling out the old parser.
    836 
    837 	* src/psaux/t1decode.{c,h} (t1_decoder_parse_metrics): New function.
    838 	* include/freetype/internal/psaux.h (T1_Decoder_Funcs): New entry
    839 	`parse_metrics'.
    840 	* src/psaux/psauxmod.c: Set the new entry.
    841 
    842 	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String),
    843 	src/cid/cidgload.c (cid_load_glyph): Separate
    844 	conditional for selecting engine.
    845 
    846 2017-10-09  Werner Lemberg  <wl (a] gnu.org>
    847 
    848 	* src/base/ftoutln.c (FT_Outline_Translate): Fix integer overflow.
    849 
    850 	Reported as
    851 
    852 	  https://bugs.chromium.org/p/chromium/issues/detail?id=772775
    853 
    854 2017-10-08  Werner Lemberg  <wl (a] gnu.org>
    855 
    856 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Integer overflows.
    857 
    858 	Reported as
    859 
    860 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3579
    861 
    862 2017-10-07  Werner Lemberg  <wl (a] gnu.org>
    863 
    864 	[sfnt] Adjust behaviour of PS font names for variation fonts.
    865 
    866 	* src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Use a named instance's
    867 	PS name only if no variation is applied.
    868 
    869 2017-10-07  Werner Lemberg  <wl (a] gnu.org>
    870 
    871 	[cff, truetype] Adjust behaviour of named instances.
    872 
    873 	This commit completely separates the interaction between named
    874 	instances and variation functions.  In particular, resetting the
    875 	variation returns to the current named instance (if set) and not to
    876 	the base font.
    877 
    878 	As a side effect, variation functions no longer change the named
    879 	instance index.
    880 
    881 	* src/cff/cffobjs.c (cff_face_init): Use MM service's `set_instance'
    882 	function.
    883 	Also apply `MVAR' table to named instances.
    884 
    885 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Add cast.
    886 	(tt_set_mm_blend): No longer check whether requested variation
    887 	coincides with a named instance.
    888 	(TT_Set_Var_Design): Use current named instance for default
    889 	coordinates.
    890 	* src/truetype/ttobjs.c (tt_face_init): Use `TT_Set_Named_Instance'.
    891 
    892 2017-10-07  Werner Lemberg  <wl (a] gnu.org>
    893 
    894 	Make `FT_Set_Named_Instance' work.
    895 
    896 	* src/cff/cffdrivr.c (cff_set_instance): New function.
    897 	(cff_service_multi_masters): Register it.
    898 
    899 	* src/truetype/ttgxvar.c (TT_Set_Named_Instance): New function.
    900 	* src/truetype/ttgxvar.h: Updated.
    901 	* src/truetype/ttdriver.c (tt_service_gx_multi_masters): Register
    902 	it.
    903 
    904 	* src/type1/t1load.c (T1_Reset_MM_Blend): New function.
    905 	* src/type1/t1load.h: Updated.
    906 	* src/type1/t1driver.c (t1_service_multi_masters): Register it.
    907 
    908 2017-10-07  Werner Lemberg  <wl (a] gnu.org>
    909 
    910 	Make `FT_FACE_FLAG_VARIATION' work.
    911 
    912 	* include/freetype/internal/tttypes.h (TT_Face): Remove
    913 	`is_default_instance'; this can be replaced with a combination of
    914 	`FT_IS_VARIATION' and `FT_IS_INSTANCE'.
    915 
    916 	* src/cff/cffdrivr.c (cff_get_advances): Updated.
    917 
    918 	* src/sfnt/sfdriver.c (sfnt_get_ps_name), src/sfnt/sfobjs.c
    919 	(sfnt_init_face): Updated.
    920 
    921 	* src/truetype/ttdriver.c (tt_get_advances), src/truetype/ttgload.c
    922 	(TT_Process_Simple_Glyph, load_truetype_glyph, IS_DEFAULT_INSTANCE),
    923 	src/truetype/ttgxvar.c (tt_set_mm_blend): Updated.
    924 	* src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design):
    925 	Handle `FT_FACE_FLAG_VARIATION'.
    926 
    927 	* src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design): Handle
    928 	`FT_FACE_FLAG_VARIATION'.
    929 
    930 2017-10-07  Werner Lemberg  <wl (a] gnu.org>
    931 
    932 	New function `FT_Set_Named_Instance'.
    933 
    934 	No effect yet.
    935 
    936 	* src/base/ftmm.c (FT_Set_Named_Instance): New function.
    937 
    938 	* include/freetype/ftmm.h: Updated.
    939 
    940 2017-10-07  Werner Lemberg  <wl (a] gnu.org>
    941 
    942 	Add macros for checking whether a font variation is active.
    943 
    944 	* include/freetype/freetype.h (FT_FACE_FLAG_VARIATION,
    945 	FT_IS_VARIATION): New macros.
    946 	No effect yet.
    947 
    948 2017-10-07  Werner Lemberg  <wl (a] gnu.org>
    949 
    950 	Add framework for setting named instance in MM service.
    951 
    952 	* include/freetype/internal/services/svmm.h (FT_Set_Instance_Func):
    953 	New function typedef.
    954 	(MultiMasters): Add `set_instance' member.
    955 	(FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
    956 
    957 	* src/cff/cffdrivr.c (cff_service_multi_masters),
    958 	src/truetype/ttdriver (tt_service_gx_multi_masters),
    959 	src/type1/t1driver.c (t1_service_multi_masters): Updated.
    960 
    961 2017-10-07  Werner Lemberg  <wl (a] gnu.org>
    962 
    963 	[type1] Minor code shuffling.
    964 
    965 	* src/type1/t1load.c (T1_Set_MM_Blend): Make it a wrapper of...
    966 	(t1_set_mm_blend): ...this new function.
    967 	(T1_Set_MM_Design): Use `t1_set_mm_blend'.
    968 
    969 2017-10-05  Werner Lemberg  <wl (a] gnu.org>
    970 
    971 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Fix integer
    972 	overflow.
    973 
    974 	Reported as
    975 
    976 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3539
    977 
    978 2017-10-05  Werner Lemberg  <wl (a] gnu.org>
    979 
    980 	Fix compiler warnings.
    981 
    982 	* src/cff/cffdrivr.c (cff_ps_get_font_extra): Avoid code that relies
    983 	on numeric overflow.
    984 	Add cast.
    985 
    986 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix variable
    987 	types, add cast.
    988 
    989 2017-10-04  John Tytgat  <John.Tytgat (a] esko.com>
    990 
    991 	[cff] Add support for `FSType'.
    992 
    993 	* include/freetype/internal/cfftypes.h (CFF_FontRec): Add
    994 	`font_extra' entry.
    995 
    996 	* src/cff/cffdrivr.c (cff_ps_get_font_extra): New function to
    997 	retrieve FSType info from the embedded PostScript data.
    998 	(cff_service_ps_info): Register function.
    999 
   1000 	* src/cff/cffload.c (cff_font_done): Free `font_extra'.
   1001 
   1002 2017-09-30  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1003 
   1004 	Signedness fixes in bitmap presetting.
   1005 
   1006 	Reported as
   1007 
   1008 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3514.
   1009 
   1010 	* src/raster/ftrend1.c (ft_raster1_render): Exlicitly signed height.
   1011 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
   1012 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Explicitly unsigned
   1013 	subtraction.
   1014 
   1015 2017-09-29  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1016 
   1017 	Bitmap metrics presetting [2/2].
   1018 
   1019 	* src/base/ftobjs.c (FT_Load_Glyph): Preset the bitmap metrics when
   1020 	appropriate but `FT_Render_Glyph' is not called.
   1021 	* include/freetype/freetype.h (FT_GlyphSlotRec): Document the change.
   1022 
   1023 2017-09-28  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1024 
   1025 	[smooth, raster] Miscellaneous cleanups.
   1026 
   1027 	* src/raster/ftrend1.c (ft_raster1_render): Clean up the exit.
   1028 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Reduce
   1029 	translations and clean up the exit.
   1030 	(ft_smooth_render_lcd, ft_smooth_render_lcd): Remove unused `error'.
   1031 
   1032 2017-09-28  Ben Wagner  <bungeman (a] google.com>
   1033 
   1034 	[truetype] Really, really fix #52082.
   1035 
   1036 	* src/truetype/ttinterp.c (Ins_MDRP): Correct conditional.
   1037 
   1038 2017-09-28  Werner Lemberg  <wl (a] gnu.org>
   1039 
   1040 	* src/psaux/psintrp.c (cf2_doStems): Fix integer overflow.
   1041 
   1042 	Reported as
   1043 
   1044 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3510
   1045 
   1046 2017-09-28  Ewald Hew  <ewaldhew (a] gmail.com>
   1047 
   1048 	* src/cid/cidgload.c (cid_slot_load_glyph): Fix memory leak.
   1049 
   1050 	Reported as
   1051 
   1052 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3489
   1053 
   1054 2017-09-28  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1055 
   1056 	Bitmap metrics presetting [1/2].
   1057 
   1058 	This mainly just extracts the code for presetting the bitmap metrics
   1059 	from the monochrome, grayscale, and LCD renderers into a separate
   1060 	function.
   1061 
   1062 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): New function that
   1063 	calculates prospective bitmap metrics for the given rendering mode.
   1064 	* include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap):
   1065 	Declare it.
   1066 
   1067 	* src/base/ftlcdfil.c (ft_lcd_padding): New helper function that adds
   1068 	padding to CBox taking into account pecularities of LCD rendering.
   1069 	* include/freetype/ftlcdfil.h (ft_lcd_padding): Declare it.
   1070 
   1071 	* src/raster/ftrend1.c (ft_raster1_render): Reworked to use
   1072 	`ft_glyphslot_preset_bitmap'.
   1073 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
   1074 	(ft_smooth_render_lcd, ft_smooth_render_lcd): The pixel_mode setting
   1075 	is moved to `ft_glyphslot_preset_bitmap'.
   1076 
   1077 2017-09-28  Ewald Hew  <ewaldhew (a] gmail.com>
   1078 
   1079 	[psaux] Fix compiler warning.
   1080 
   1081 	* src/psaux/pshints.c (cf2_hintmap_dump): Add switch for tracing
   1082 	code.
   1083 
   1084 2017-09-27  Werner Lemberg  <wl (a] gnu.org>
   1085 
   1086 	* src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning.
   1087 
   1088 2017-09-25  Werner Lemberg  <wl (a] gnu.org>
   1089 
   1090 	[psaux] Fix compiler warnings.
   1091 
   1092 	* src/psaux/psft.c (cf2_initLocalRegionBuffer): Remove redundant
   1093 	test.
   1094 
   1095 	* src/psaux/psintrp.c (cf2_interpT2CharString)
   1096 	<cf2_escCALLOTHERSUBR>: Add casts.
   1097 
   1098 	* src/psaux/psobjs.c (ps_decoder_init): Add cast.
   1099 
   1100 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1101 
   1102 	[psaux] Minor fixes.
   1103 
   1104 	* include/freetype/internal/psaux.h, src/psaux/psobjs.{c,h}:
   1105 	Rearrange `ps_builder_init' arguments to conventional order.
   1106 
   1107 	* src/psaux/psft.c (cf2_decoder_parse_charstrings): Add a check and
   1108 	notice for `SubFont' in Type 1 mode.
   1109 
   1110 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1111 
   1112 	[psaux] Move `psdecode' into `psobjs'.
   1113 
   1114 	As the former only contains a single procedure, move it into
   1115 	`psobjs' for simplicity.  Also change the parameter order to the
   1116 	conventional one.
   1117 
   1118 	* src/psaux/psdecode.c (ps_decoder_init): Moved to...
   1119 	* src/psaux/psobjs.c: ...Here.
   1120 	* src/psaux/psdecode.h, src/psaux/psobjs.h: Ditto.
   1121 
   1122 	* include/freetype/internal/psaux.h (PSAux_ServiceRec): Update
   1123 	`ps_decoder_init' function signature.
   1124 
   1125 	* src/cff/cffgload.c, src/cid/cidgload.c, src/type1/t1gload.c:
   1126 	Update calls.
   1127 
   1128 	* src/psaux/psaux.c, src/psaux/psauxmod.c: Update includes.
   1129 
   1130 	* src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRV_SRC):
   1131 	Update file references.
   1132 
   1133 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1134 
   1135 	[psaux] Fix Type 1 hinting.
   1136 
   1137 	Type 1 hinting breaks sometimes when mid-charstring hints should
   1138 	have been in the initial hintmap.  This fix adds a preprocessing
   1139 	pass that reads all hints and builds the correct initial hintmap
   1140 	first, before proceeding to build the glyph outline.
   1141 
   1142 	* src/psaux/psintrp.c (cf2_interpT2CharString): New
   1143 	`initial_map_ready' boolean flag.
   1144 	Ignore outline commands and hint changes on first pass.
   1145 	<cf2_cmdENDCHAR>: Add section to build hintmap and rewind.
   1146 
   1147 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1148 
   1149 	[psaux] Add tracing for hints.
   1150 
   1151 	* src/psaux/pshints.c (cf2_hintmap_dump): New function.
   1152 	(cf2_hintmap_insertHint): Trace incoming and inserted hints.
   1153 	(cf2_hintmap_build): Dump hintmap before and after hint adjustment.
   1154 
   1155 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1156 
   1157 	[psaux] Minor fixes.
   1158 
   1159 	* src/psaux/psintrp.c (cf2_interpT2CharString): Fix check for pop
   1160 	results.
   1161 	s/font->decoder/decoder/ where necessary.
   1162 	<cf2_cmdHSTEM, cf2_cmdVSTEM, cf2_escHSTEM3, cf2_escVSTEM3>: Use
   1163 	offset parameter in `cf2_doStems' instead of doing correction for
   1164 	left-sidebearing.
   1165 
   1166 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1167 
   1168 	[cid] Use the new engine.
   1169 
   1170 	* src/cid/cidgload.c: Update includes.
   1171 	(cid_load_glyph, cid_slot_load_glyph): Implement changes to glyph
   1172 	loading code as with `type1' module.
   1173 
   1174 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1175 
   1176 	[cid] Add Adobe engine configuration.
   1177 
   1178 	This is similar to what was done in the `type1' module.
   1179 
   1180 	* src/cid/cidriver.c (t1cid_driver_class): Update declaration.
   1181 	* src/cid/cidobjs.c: Include FT_TYPE1_DRIVER_H.
   1182 	(cid_driver_init): Update code.
   1183 
   1184 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1185 
   1186 	[psaux] Change subfont synthesis for CID fonts.
   1187 
   1188 	Change `t1_make_subfont' to take in the Private dict record as an
   1189 	argument.  This is because Type 1 and CID font records in FreeType
   1190 	have this in different places.
   1191 
   1192 	* src/psaux/psobjs.c (t1_make_subfont): Change `T1_Face' to
   1193 	`FT_Face' so that CID is also accepted.
   1194 	Take `PS_Private' as an argument and let caller figure out where the
   1195 	Private dict actually is.
   1196 	Update references.
   1197 
   1198 	* include/freetype/internal/psaux.h, src/psaux/psobjs.h: Update
   1199 	declaration.
   1200 
   1201 	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Update
   1202 	call.
   1203 
   1204 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1205 
   1206 	[type1] Switch to Adobe engine.
   1207 
   1208 	* src/type1/t1objs.c (T1_Driver_Init): Set default to Adobe engine.
   1209 
   1210 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1211 
   1212 	[psaux] Extend Adobe interpreter (seac).
   1213 
   1214 	This concludes the changes needed to add Type 1 support.
   1215 
   1216 	* src/psaux/psintrp.c: Update includes.
   1217 	(cf2_interpT2CharString) <cf2_escSEAC>: Implement this similarly to
   1218 	implied seac for CFF.
   1219 
   1220 	* src/psaux/t1decode.c (t1_lookup_glyph_by_stdcharcode_ps): New
   1221 	function to look up the glyph index.
   1222 
   1223 	* src/psaux/psft.c (cf2_getT1SeacComponent,
   1224 	cf2_freeT1SeacComponent): New functions to get the charstrings for
   1225 	seac components.
   1226 
   1227 	* src/psaux/t1decode.h, src/psaux/psft.h: Update declarations.
   1228 
   1229 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1230 
   1231 	[psaux] Extend Adobe interpreter (flex in callothersubr).
   1232 
   1233 	* src/psaux/psintrp.c (cf2_interpT2CharString)
   1234 	<cf2_escCALLOTHERSUBR>: Fix Flex feature handling (OtherSubrs 0, 1,
   1235 	2).
   1236 	<cf2_cmdRMOVETO>: Do not actually move the `glyphPath' while doing
   1237 	flex.  This is to avoid closing the current contour.
   1238 
   1239 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1240 
   1241 	[psaux] Extend Adobe interpreter (callothersubr).
   1242 
   1243 	* src/psaux/psintrp.c (cf2_interpT2CharString)
   1244 	<cf2_escCALLOTHERSUBR>: Copy code from
   1245 	`t1_decoder_parse_charstrings' (in `t1decode.c').
   1246 	OtherSubr 3 (change hints) should reset the hintmask, so that the
   1247 	new hints are applied.
   1248 	Fix function calls and stack access.
   1249 
   1250 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1251 
   1252 	[psaux] Extend Adobe interpreter (pop).
   1253 
   1254 	* src/psaux/psintrp.c (cf2_interpT2CharString): Change how unhandled
   1255 	OtherSubr results are stored.  Implement the PostScript stack using
   1256 	an array.
   1257 	<cf2_escPOP>: Ensure that the stack is not cleared after getting
   1258 	`OtherSubr' results.
   1259 	Fix stack access.
   1260 
   1261 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1262 
   1263 	[psaux] Extend Adobe interpreter (callsubr).
   1264 
   1265 	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdCALLSUBR>:
   1266 	Type 1 mode.
   1267 
   1268 	* src/psaux/psft.c (cf2_initLocalRegionBuffer): Add Type 1 mode.
   1269 
   1270 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1271 
   1272 	[psaux] Extend Adobe interpreter (div, four-byte numbers).
   1273 
   1274 	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_escDIV>: Add
   1275 	Type 1 mode.  Type 1 requires large integers to be followed by
   1276 	`div'; cf. `Adobe Type 1 Font Format', section 6.2.
   1277 	<op == 255>: Push Type 1 four-byte numbers as `Int' always.  This is
   1278 	to ensure `div' and `callsubr' get values they can use.
   1279 
   1280 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1281 
   1282 	[psaux] Extend Adobe interpreter (hints).
   1283 
   1284 	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
   1285 	cf2_cmdVSTEM>: Add correction for left sidebearing in Type 1 mode.
   1286 	Allow adding hints mid-charstring.
   1287 	<cf2_escVSTEM3, cf2_escHSTEM3>: Translate into equivalent commands
   1288 	for three normal stem hints.  This requires some recalculation of
   1289 	stem positions.
   1290 	Correction for left sidebearing.
   1291 
   1292 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1293 
   1294 	[psaux] Extend Adobe interpreter (hsbw, sbw).
   1295 
   1296 	* src/psaux/psintrp.c (cf2_doStems): `hsbw' or `sbw' must be the
   1297 	first operation in a Type 1 charstring.
   1298 	(cf2_interpT2CharString): Remove unused variables.
   1299 	<cf2_cmdHMOVETO, cf2_cmdVMOVETO, cf2_cmdRMOVETO>: `hsbw' or `sbw'
   1300 	must be the first operation in a Type 1 charstring.
   1301 	<cf2_cmdHSBW, cf2_escSBW>: Fix data access and add correction for
   1302 	left sidebearing.
   1303 
   1304 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1305 
   1306 	[psaux] Extend Adobe interpreter (setcurrentpoint).
   1307 
   1308 	* src/psaux/psintrp.c (cf2_interpT2CharString)
   1309 	<cf2_escSETCURRENTPT>: Fix stack access.
   1310 
   1311 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1312 
   1313 	[psaux] Extend Adobe interpreter (closepath).
   1314 
   1315 	* src/psaux/psintrp.c (cf2_interpT2CharString) <c2f_cmdCLOSEPATH>:
   1316 	Use the right builder function.  We can use the `haveWidth' boolean
   1317 	already present, instead of implementing `parse_state'.
   1318 
   1319 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1320 
   1321 	[psaux] Add Type 1 operations to Adobe CFF interpreter.
   1322 
   1323 	The following Type 1 specific ops have been added (copied from
   1324 	`t1decode'):
   1325 
   1326 	  closepath
   1327 	  vstem3
   1328 	  hstem3
   1329 	  seac
   1330 	  sbw
   1331 	  callothersubr
   1332 	  pop
   1333 	  setcurrentpoint
   1334 	  hsbw
   1335 
   1336 	The following require a Type 1 mode, because of differences in
   1337 	specification:
   1338 
   1339 	  hstem
   1340 	  vstem
   1341 	  vmoveto
   1342 	  callsubr
   1343 	  div
   1344 	  rmoveto
   1345 	  hmoveto
   1346 	  Numbers
   1347 
   1348 	The subsequent commits will implement these changes and adapt
   1349 	accesses of data and objects to the new interpreter.
   1350 
   1351 	NOTE: Will not compile in the meantime!
   1352 
   1353 	* src/psaux/psintrp.c: Add opcodes to enum.
   1354 	(cf2_interpT2CharString): Copy relevant code over from
   1355 	`t1_decoder_parse_charstrings' (in `t1decode.c').
   1356 
   1357 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1358 
   1359 	[type1] Fixes for rendering.
   1360 
   1361 	The Type 1 advance width calculation passes null for glyph slot,
   1362 	etc, which can cause null pointer access in the new interpreter.
   1363 	Fall back to the old one for now.
   1364 
   1365 	Fix the large glyph retry code and ensure hinting and scaling flags
   1366 	are set properly.
   1367 
   1368 	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add a
   1369 	check for metrics_only.
   1370 	Set the `force_scaling' flag.
   1371 	(T1_Parse_Glyph): Updated.
   1372 	(T1_Load_Glyph): Add `hinting' and `scaled' flags.
   1373 
   1374 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1375 
   1376 	[psaux] Add missing objects (2/2).
   1377 
   1378 	Synthesize a `SubFont' object for Type 1 fonts.  This is used in the
   1379 	interpreter to access Private dict data, which are stored in
   1380 	different places for Type 1 and CFF.  This allows the same data to
   1381 	be used in either mode.
   1382 
   1383 	* src/psaux/psobjs.c (t1_make_subfont): New procedure to copy
   1384 	required values to a dummy `CFF_SubFont' object.  This is similar to
   1385 	`cff_make_private_dict'.
   1386 	* src/psaux/psobjs.h: Add the new declaration.
   1387 
   1388 	* include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Ditto.
   1389 	Add this to the PSAux Service for future use with CID fonts.
   1390 
   1391 	* src/type1/t1gload.c: Include FT_INTERNAL_CFF_TYPES_H.
   1392 	(T1_Parse_Glyph_And_Get_Char_String): Add the call.
   1393 
   1394 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1395 
   1396 	[psaux] Add missing objects for Type 1 (1/2).
   1397 
   1398 	Move `CF2_Font' instance to `PS_Decoder'.  This is the context for
   1399 	the interpreter and since it is currently stored in `CFF_Font', is
   1400 	unavailable in Type 1 mode.
   1401 
   1402 	* include/freetype/internal/psaux.h (T1_Decoder, PS_Decoder): New
   1403 	`cf2_instance' field.
   1404 
   1405 	* src/psaux/psdecode.c (ps_decoder_init): Copy `cf2_instance' to
   1406 	`PS_Decoder'.
   1407 
   1408 	* src/psaux/t1decode.c (t1_decoder_done): Add finalization code.
   1409 
   1410 	* src/psaux/psft.c (cf2_decoder_parse_charstrings): Update accesses.
   1411 
   1412 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1413 
   1414 	Allow `type1' module to use the Adobe engine.
   1415 
   1416 	Add the callback and some conditionals to switch between the two
   1417 	engines.
   1418 
   1419 	* include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Change
   1420 	function declarations.
   1421 	* src/psaux/psauxmod.c (T1_Decoder_FuncsRec): Register the
   1422 	callbacks.
   1423 
   1424 	* src/psaux/psobjs.c (ps_builder_add_point): Add conditionals for
   1425 	number conversion.
   1426 
   1427 	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add code
   1428 	to choose which renderer to use.
   1429 
   1430 	* src/cid/cidgload.c (cid_load_glyph): Update call.
   1431 	* src/base/ftobjs.c, src/psaux/psobjs.c, src/type1/t1gload.c: Update
   1432 	includes.
   1433 
   1434 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1435 
   1436 	[type1] Add Adobe engine configuration.
   1437 
   1438 	Use the previously changed PS_Driver in type1 module to store
   1439 	hinting engine configuration.
   1440 
   1441 	* include/freetype/ftt1drv.h: New file.
   1442 	Duplicate and rename config options from CFF.
   1443 	* include/freetype/config/ftheader.h (FT_TYPE1_DRIVER_H): New macro.
   1444 
   1445 	* src/type1/t1driver.c (t1_driver_class): Update declaration.
   1446 	* src/type1/t1objs.c: Include FT_TYPE1_DRIVER_H.
   1447 	(T1_Driver_Init): Update code.
   1448 
   1449 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1450 
   1451 	[cff] Move and rename `CFF_Driver'.
   1452 
   1453 	This is so that we can use the same hinting engine parameters for
   1454 	Type 1.
   1455 
   1456 	* include/freetype/internal/cffotypes.h (CFF_Driver): Rename and
   1457 	move to...
   1458 	* include/freetype/internal/psaux.h (PS_Driver): ...here.
   1459 
   1460 	* src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffload.c,
   1461 	src/cff/cffobjs.c, src/cff/cffobjs.h, src/psaux/psft.c,
   1462 	src/psaux/psobjs.c: Update references.
   1463 
   1464 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1465 
   1466 	[psaux, type1] Reorganize object fields.
   1467 
   1468 	Make some fields more generic, so that we can access them the same
   1469 	way regardless of Type 1 or CFF.
   1470 
   1471 	* include/freetype/internal/psaux.h (PS_Builder): Change `TT_Face'
   1472 	to `FT_Face'.
   1473 	Remove unused fields.
   1474 
   1475 	* src/psaux/psft.c: Update all accesses of `PS_Builder.face'.
   1476 	Add some asserts to guard against casting `T1_Face' as `TT_Face'.
   1477 
   1478 	* src/type1/t1objs.h (T1_GlyphSlot): Reorder fields to follow
   1479 	`CFF_GlyphSlot', so that we can pretend they are the same in the
   1480 	interpreter.
   1481 
   1482 	* src/psaux/psobjs.c (ps_builder_init, ps_builder_add_point):
   1483 	Updated with above changes.
   1484 
   1485 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1486 
   1487 	[psaux] Prepare for Type 1 mode.
   1488 
   1489 	Add some checks for Type 1 data passing through.
   1490 
   1491 	* src/psaux/psfont.h (CF2_Font): Add `isT1' flag.
   1492 	* src/psaux/psfont.c (cf2_font_setup): Skip the variations and blend
   1493 	code which is not applicable for Type 1.
   1494 
   1495 	* src/psaux/psft.c (cf2_decoder_parse_charstrings): Avoid accessing
   1496 	`decoder->cff' in Type 1 mode.
   1497 	Copy `is_t1' flag to `CF2_Font'.
   1498 
   1499 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   1500 
   1501 	[psaux, cff] Use the new objects.
   1502 
   1503 	* include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Fix
   1504 	switching between new and old engines.
   1505 
   1506 	* src/cff/cffgload.c, src/cff/cffparse.c: Update calls.
   1507 
   1508 	* src/psaux/psblues.c, src/psaux/psfont.c, src/psaux/psfont.h,
   1509 	src/psaux/psft.c, src/psaux/psft.h, src/psaux/psintrp.c: Update all
   1510 	to use new objects.
   1511 
   1512 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   1513 
   1514 	[psaux] Objects for new interpreter (part 2).
   1515 
   1516 	Make the new objects copy over values.  They are essentially wrapper
   1517 	types for the different decoders/builders.
   1518 
   1519 	* include/freetype/internal/psaux.h: Update declarations.
   1520 	(PS_Builder): Add `is_t1' flag.
   1521 	(PS_Decoder_{Get,Free}_Glyph_Callback): Renamed to...
   1522 	(CFF_Decoder_{Get,Free}_Glyph_Callback: ... this.
   1523 	(PS_Decoder): Updated.
   1524 	Add `t1_parse_callback' member.
   1525 	(PSAux_ServiceRec): Add `ps_decoder_init' member.
   1526 
   1527 	* src/psaux/psdecode.h, src/psaux/psobjs.h: Update declarations.
   1528 
   1529 	* src/psaux/psdecode.c, src/psaux/psobjs.c: Implement copy with two
   1530 	modes.
   1531 
   1532 	* src/psaux/psauxmod.c: Add builder and decoder functions to `PSAux'
   1533 	service.
   1534 
   1535 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   1536 
   1537 	[psaux] Add objects for new interpreter.
   1538 
   1539 	Introduce `PS_Decoder' and `PS_Builder' which include all fields
   1540 	from either Type 1 or CFF decoders/builders.
   1541 
   1542 	* include/freetype/internal/psaux.h (PS_Builder, PS_Decoder): New
   1543 	structs.
   1544 
   1545 	* src/psaux/psobjs.c, src/psaux/psobjs.h: Add `PS_Builder'
   1546 	functions.
   1547 
   1548 	* src/psaux/psdecode.c, src/psaux/psdecode.h: New files to hold
   1549 	`PS_Decoder' initialization functions.
   1550 
   1551 	* src/psaux/psaux.c, src/psaux/Jamfile (_sources),
   1552 	src/psaux/rules.mk (PSAUX_DRV_SRC): Updated.
   1553 
   1554 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   1555 
   1556 	[psaux] Rename files.
   1557 
   1558 	Replace the `cf2' file name prefix with `ps' as the Adobe engine
   1559 	will be used for both PostScript Types 1 and 2 (CFF) instead of just
   1560 	CFF.
   1561 
   1562 	s/cf2/ps/ for all following.
   1563 
   1564 	* src/psaux/cf2*: Rename files.
   1565 	* src/psaux/*: Update includes.
   1566 
   1567 	* src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRC_SRC,
   1568 	PSAUX_DRV_H): Update file references.
   1569 
   1570 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   1571 
   1572 	[psaux] Minor fix.
   1573 
   1574 	Use `MultiMasters' service in `psaux' instead of a call to `cff'.
   1575 	The project builds if CFF_CONFIG_OPTION_OLD_ENGINE is not defined.
   1576 
   1577 	* src/psaux/cf2ft.c: Update includes.
   1578 	(cf2_getNormalizedVector): Use `mm->get_var_blend' instead of
   1579 	`cff_get_var_blend'.
   1580 
   1581 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   1582 
   1583 	[psaux, cff] Move `cff_random' into `psaux' service.
   1584 
   1585 	NOTE: Does not compile!
   1586 
   1587 	Minor fix to allow both `cff' and `psaux' to use `cff_random'.
   1588 
   1589 	* src/cff/cffload.c (cff_random): Move to...
   1590 	* src/psaux/psobjs.c: Here.
   1591 	* src/cff/cffload.h: Move corresponding declaration to
   1592 	`src/psaux/psobjs.h'.
   1593 
   1594 	* include/freetype/internal/psaux.h (PSAux_ServiceRec): Register the
   1595 	function here...
   1596 	* src/psaux/psauxmod.c: And here.
   1597 
   1598 	* src/cff/cffload.c, src/psaux/cf2intrp.c: Update code.
   1599 
   1600 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   1601 
   1602 	[cff] Move struct declarations to `freetype/internal'.
   1603 
   1604 	NOTE: Does not compile!
   1605 
   1606 	This is so that the CFF functions moved to `psaux' can access the
   1607 	same structs that they need.
   1608 
   1609 	* src/cff/cfftypes.h: Moved to...
   1610 	* include/freetype/internal/cfftypes.h: ...Here.
   1611 
   1612 	* src/cff/cffobjs.h: Moved the struct declarations to...
   1613 	* include/freetype/internal/cffotypes.h: ... this new file.
   1614 
   1615 	* include/freetype/internal/internal.h (FT_INTERNAL_CFF_TYPES_H,
   1616 	FT_INTERNAL_CFF_OBJECT_TYPES_H): New macros.
   1617 
   1618 	* src/cff/cffcmap.h, src/cff/cffdrivr.c, src/cff/cffgload.c,
   1619 	src/cff/cffgload.h, src/cff/cffload.h, src/cff/cffobjs.c,
   1620 	src/cff/cffobjs.h, src/cff/cffparse.h, src/psaux/psobjs.h,
   1621 	include/freetype/internal/psaux.h,
   1622 	include/freetype/internal/services/svcfftl.h: Update includes.
   1623 
   1624 	* src/cff/rules.mk (CFF_DRV_H): Updated.
   1625 
   1626 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   1627 
   1628 	[psaux, cff] Add new service for inter-module calls.
   1629 
   1630 	NOTE: Does not compile!
   1631 
   1632 	This is to allow CFF functions moved to `psaux' to call functions
   1633 	declared in `src/cff/cffload.h'.
   1634 
   1635 	* include/freetype/internal/services/svcfftl.h: New file, setting up
   1636 	a `CFFLoad' service.
   1637 
   1638 	* include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC10,
   1639 	FT_DEFINE_SERVICEDESCREC): New macros.
   1640 	(FT_SERVICE_CFF_TABLE_LOAD_H): New macro.
   1641 
   1642 	* src/cff/cffdrivr.c, src/cff/cffpic.h: Register the new service.
   1643 
   1644 	* src/cff/cfftypes.h (CFF_FontRec), src/psaux/cf2font.h
   1645 	(CF2_FontRec): Add service interface.
   1646 
   1647 	* src/cff/cffobjs.c, src/psaux/cf2font.c, src/psaux/cf2ft.c,
   1648 	src/psaux/cf2intrp.c, src/psaux/cffdecode.c: Use the new service.
   1649 
   1650 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   1651 
   1652 	[psaux, cff] Add callbacks for inter-module calls.
   1653 
   1654 	NOTE: Does not compile!
   1655 
   1656 	* include/freetype/internal/psaux.h: Add function pointer
   1657 	declarations.
   1658 
   1659 	* src/psaux/cffdecode.c (cff_decoder_init): Update to take in
   1660 	callbacks.
   1661 	* src/psaux/cffdecode.h: Ditto.
   1662 
   1663 	* src/cff/cffgload.c (cff_compute_max_advance, cff_slot_load):
   1664 	Update calls to pass in callbacks.
   1665 	* src/psaux/cf2ft.c, src/psaux/cffdecode.c: Use them.
   1666 
   1667 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   1668 
   1669 	[psaux, cff] Create new `PSAux' service interface entries.
   1670 
   1671 	NOTE: Does not compile!
   1672 
   1673 	* include/freetype/internal/psaux.h: Include
   1674 	FT_INTERNAL_TRUETYPE_TYPES_H.
   1675 	(CFF_Builder_FuncsRec, CFF_Decocer_FuncsRec): New function tables.
   1676 	(CFF_Builder): Updated.
   1677 	Fix for forward declaration.
   1678 	(PSAux_ServiceRec): New field `cff_decoder_funcs'.
   1679 
   1680 	* src/psaux/psauxmod.c (cff_builder_funcs, cff_decoder_funcs): New
   1681 	function tables.
   1682 	(PSAux_Interface): Updated.
   1683 
   1684 	* include/freetype/internal/tttypes.h (TT_FaceRec): Add `psaux'
   1685 	service interface.
   1686 
   1687 	* src/cff/cffgload.c, src/cff/cffobjs.c, src/cff/cffparse.c: Update
   1688 	function calls to use psaux service.
   1689 
   1690 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   1691 
   1692 	[psaux, cff] Move CFF builder components into `psaux' module.
   1693 
   1694 	NOTE: Does not compile!
   1695 
   1696 	* src/cff/cffgload.c
   1697 	(cff_builder_{init,done,add_point,add_point1,add_contour,start_point,close_contour},
   1698 	cff_check_points): Move to...
   1699 	* src/psaux/psobjs.c: Here.
   1700 
   1701 	* src/cff/cffgload.h: Move corresponding declarations to
   1702 	`src/psaux/psobjs.h'.
   1703 
   1704 	* src/cff/cffgload.h (CFF_Builder): Move struct declaration to...
   1705 	* include/freetype/internal/psaux.h: Here.
   1706 
   1707 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   1708 
   1709 	[psaux, cff] Move CFF decoder components into `psaux' module.
   1710 
   1711 	NOTE: Does not compile!
   1712 
   1713 	* src/cff/cffgload.c (CFF_Operator,
   1714 	CFF_COUNT_{CHECK_WIDTH,EXACT,CLEAR_STACK}, cff_argument_counts,
   1715 	cff_operator_seac, cff_compute_bias,
   1716 	cff_lookup_glyph_by_stdcharcode,
   1717 	cff_decoder_{parse_charstrings,init,prepare}): Move to...
   1718 	* src/psaux/cffdecode.c: This new file.
   1719 
   1720 	* src/cff/cffgload.h: Move corresponding declarations to...
   1721 	* src/psaux/cffdecode.h: This new file.
   1722 
   1723 	* src/cff/cffgload.h (CFF_MAX_{OPERANDS,SUBRS_CALLS,TRANS_ELEMENTS},
   1724 	CFF_Decoder_Zone, CFF_Decoder): Move declarations to...
   1725 	* include/freetype/internal/psaux.h: Here.
   1726 
   1727 	* src/psaux/cf2ft.h: Update include.
   1728 
   1729 	* src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Update with
   1730 	the new file.
   1731 
   1732 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   1733 
   1734 	[psaux, cff] Move Adobe's engine components into `psaux' module.
   1735 
   1736 	This is the first patch of a sequence to move the Type 2 charstring
   1737 	processing capability from the `cff' module to the `psaux' module.
   1738 
   1739 	NOTE: Does not compile!
   1740 
   1741 	* src/cff/cf2*: Move these files to...
   1742 	* src/psaux/cf2*: Here.
   1743 
   1744 	* src/cff/Jamfile (_sources), src/cff/rules.mk (CFF_DRV_SRC,
   1745 	CFF_DRV_H), src/cff/cff.c, src/cff/cffgload.c: Remove file
   1746 	references.
   1747 
   1748 	* src/psaux/Jamfile (_sources), src/psaux/rules.mk, src/psaux/psaux.c
   1749 	(PSAUX_DRV_SRC, PSAUX_DRV_H): Add file references.
   1750 
   1751 2017-09-24  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1752 
   1753 	Tweak per-face LCD filtering controls.
   1754 
   1755 	Thing are simpler with a NULL-function pointer.
   1756 
   1757 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
   1758 	pointer to the filter function.
   1759 	(FT_LibraryRec): Remove unused `lcd_filter'.
   1760 	(FT_Bitmap_LcdFilterFunc, ft_lcd_filter_fir):  Move from here...
   1761 	* include/freetype/ftlcdfil.h (FT_Bitmap_LcdFilterFunc,
   1762 	ft_lcd_filter_fir): ... to here.
   1763 
   1764 	* src/base/ftobjs.c (ft_open_face_internal): NULL-initialize the
   1765 	per-face filter.
   1766 	(FT_Face_Properties): Set it.
   1767 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Simplify.
   1768 
   1769 	* src/base/ftlcdfil.c (ft_lcd_filter_fir, FT_Libary_SetLcdFilter):
   1770 	Minor.
   1771 
   1772 2017-09-24  Jonathan Kew  <jfkthame (a] gmail.com>
   1773 
   1774 	[sfnt] Fix `premultiply_data' (#52092).
   1775 
   1776 	* src/sfnt/pngshim.c (premultiply_data): Don't use vector extension
   1777 	if we have less than 16 bytes of data.
   1778 
   1779 2017-09-24  Werner Lemberg  <wl (a] gnu.org>
   1780 
   1781 	[otvalid] Fix handling of ValueRecords.
   1782 
   1783 	For GPOS pair positioning format 1 the description of ValueRecords
   1784 	in the OpenType specification (1.8.2, from today) is wrong  the
   1785 	offset has to be taken from the parent structure; in this case the
   1786 	`PairSet' table.
   1787 
   1788 	* src/otvalid/otvgpos.c (otv_PairSet_validate): Set `extra3'.
   1789 	(otv_PairPos_validate): Adjust.
   1790 
   1791 2017-09-23  Werner Lemberg  <wl (a] gnu.org>
   1792 
   1793 	[otvalid] Handle `GSUB' and `GPOS' v1.1 tables.
   1794 
   1795 	* src/otvalid/otvgsub.c (otv_GSUB_validate), src/otvalid/otvgpos.c
   1796 	(otv_GPOS_validate): Implement it.
   1797 
   1798 2017-09-23  Werner Lemberg  <wl (a] gnu.org>
   1799 
   1800 	[otvalid] Update common table handling to OpenType 1.8.2.
   1801 
   1802 	* src/otvalid/otvcommn.c (otv_Device_validate): Handle
   1803 	VariationIndex subtable.
   1804 	(otv_Lookup_validate): Handle MarkFilteringSet.
   1805 
   1806 2017-09-23  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1807 
   1808 	[build] Windows-style DLL versioning.
   1809 
   1810 	* build/windows/ftver.rc: New VERSIONINFO resource.
   1811 	* build/windows/vc2010/freetype.vcxproj: Further improvements.
   1812 
   1813 2017-09-23  Ben Wagner  <bungeman (a] google.com>
   1814 
   1815 	[truetype] Really fix #52082.
   1816 
   1817 	* src/truetype/ttinterp.c (Ins_MDRP): Correct conditional.
   1818 
   1819 2017-09-23  Werner Lemberg  <wl (a] gnu.org>
   1820 
   1821 	[otvalid] Handle `GDEF' v1.2 and v1.3 tables.
   1822 
   1823 	No validation of variation stuff yet.
   1824 
   1825 	* src/otvalid/otvgdef.c (otv_MarkGlyphSets_validate): New function.
   1826 	(otv_GDEF_validate): Implement it.
   1827 
   1828 2017-09-22  Werner Lemberg  <wl (a] gnu.org>
   1829 
   1830 	[otvalid] Handle `BASE' v1.1 table.
   1831 
   1832 	No validation of variation stuff yet.
   1833 
   1834 	* src/otvalid/otvbase.c (otv_BASE_validate): Implement it.
   1835 
   1836 2017-09-22  Werner Lemberg  <wl (a] gnu.org>
   1837 
   1838 	[otvalid] Macros for 32bit offset support.
   1839 
   1840 	* src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE32,
   1841 	OTV_OPTIONAL_OFFSET32, OTV_SIZE_CHECK32): New macros.
   1842 
   1843 2017-09-21  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1844 
   1845 	[build] Simplify Visual C++ 2010 project.
   1846 
   1847 	* build/windows/vc2010/freetype.vcxproj: Remove fake singlethreaded
   1848 	configurations and tweak.
   1849 
   1850 2017-09-21  Werner Lemberg  <wl (a] gnu.org>
   1851 
   1852 	[truetype] Integer overflow (#52082).
   1853 
   1854 	* src/truetype/ttinterp.c (Ins_MDRP): Avoid FT_ABS.
   1855 
   1856 2017-09-21  Werner Lemberg  <wl (a] gnu.org>
   1857 
   1858 	[sfnt] Fix postscript name for default instance of variation fonts.
   1859 
   1860 	Problem reported by Behdad.
   1861 
   1862 	* src/sfnt/sfdriver.c (sfnt_get_ps_name): Test
   1863 	`is_default_instance'.
   1864 
   1865 2017-09-21  Werner Lemberg  <wl (a] gnu.org>
   1866 
   1867 	[truetype] Fix `mmvar' array pointers, part 2.
   1868 
   1869 	The previous commit was incomplete.
   1870 
   1871 	* src/truetype/ttgxvar.c: Properly initialize sub-array offsets for
   1872 	`master' also.
   1873 
   1874 2017-09-21  Werner Lemberg  <wl (a] gnu.org>
   1875 
   1876 	[truetype] Fix `mmvar' array pointers.
   1877 
   1878 	Without this change, clang's AddressSanitizer reports many runtime
   1879 	errors due to misaligned addresses.
   1880 
   1881 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Use multiples of pointer
   1882 	size for sub-array offsets into `mmvar'.
   1883 
   1884 2017-09-20  Werner Lemberg  <wl (a] gnu.org>
   1885 
   1886 	[truetype] Integer overflows.
   1887 
   1888 	Changes triggered by
   1889 
   1890 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3429
   1891 
   1892 	* src/truetype/ttinterp.c (Ins_SHPIX, Ins_DELTAP): Use NEG_LONG.
   1893 	(Ins_MIAP): Use SUB_LONG.
   1894 
   1895 2017-09-19  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1896 
   1897 	[build] Fix DLL builds in Visual C++ project.
   1898 
   1899 	* build/windows/vc2010/freetype.vcxproj: Use DynamicLibrary in Debug
   1900 	and Release configurations.
   1901 	* include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF)
   1902 	[_DLL]: Use Visual C++ extensions.
   1903 
   1904 2017-09-19  John Tytgat  <John.Tytgat (a] esko.com>
   1905 
   1906 	[cff] Fix family name logic of pure CFF fontdata (#52056).
   1907 
   1908 	1. If `FamilyName' is present in the CFF font, use this for
   1909 	   FT_Face's `family_name'.
   1910 	2. Otherwise, use the face name and chop off any subset prefix.
   1911 	3. If at this point FT_Face's `family_name' is set, use this
   1912 	   together with the full name to determine the style.
   1913 	4. Otherwise, use `CIDFontName' as FT_Face's `family_name'.
   1914 	5. If we don't have a valid style, use "Regular".
   1915 
   1916 	Previously, FT_Face's `family_name' entry for pure CFF fontdata
   1917 	nearly always was the fontname itself, instead of the `FamilyName'
   1918 	entry in the CFF font (assuming there is one).
   1919 
   1920 	* src/cff/cffobjs.c (cff_face_init) [pure_cff]: Implement it.
   1921 
   1922 2017-09-18  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1923 
   1924 	[build] Declutter Visual C++ 2010-2017 project.
   1925 
   1926 	* build/windows/vc2010/freetype.vcxproj: Use MaxSpeed (/02)
   1927 	optimization for Release configuration throughout the project.
   1928 
   1929 2017-09-16  Werner Lemberg  <wl (a] gnu.org>
   1930 
   1931 	* Version 2.8.1 released.
   1932 	=========================
   1933 
   1934 
   1935 	Tag sources with `VER-2-8-1'.
   1936 
   1937 	* docs/VERSION.TXT: Add entry for version 2.8.1.
   1938 	* docs/CHANGES: Updated.
   1939 
   1940 	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
   1941 	builds/windows/vc2005/index.html,
   1942 	builds/windows/vc2008/freetype.vcproj,
   1943 	builds/windows/vc2008/index.html,
   1944 	builds/windows/vc2010/freetype.vcxproj,
   1945 	builds/windows/vc2010/index.html,
   1946 	builds/windows/visualc/freetype.dsp,
   1947 	builds/windows/visualc/freetype.vcproj,
   1948 	builds/windows/visualc/index.html,
   1949 	builds/windows/visualce/freetype.dsp,
   1950 	builds/windows/visualce/freetype.vcproj,
   1951 	builds/windows/visualce/index.html,
   1952 	builds/wince/vc2005-ce/freetype.vcproj,
   1953 	builds/wince/vc2005-ce/index.html,
   1954 	builds/wince/vc2008-ce/freetype.vcproj,
   1955 	builds/wince/vc2008-ce/index.html: s/2.8/2.8.1/, s/28/281/.
   1956 
   1957 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
   1958 
   1959 	* builds/unix/configure.raw (version_info): Set to 21:0:15.
   1960 	* CMakeLists.txt (VERSION_PATCH): Set to 1.
   1961 
   1962 2017-09-13  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   1963 
   1964 	[sfnt] lowest gcc for vectors (e1d0249e) is changed to 4.7.
   1965 
   1966 	__builtin_shuffle() was introduced in gcc-4.7.  The lowest
   1967 	gcc to enable vector operation is delayed from 4.6 to 4.7.
   1968 
   1969 	* src/sfnt/pngshim.c (premultiply_data): Fix cpp-macro to
   1970 	enable the vector operation, to change the lowest gcc version
   1971 	from 4.6 to 4.7.
   1972 
   1973 2017-09-13  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   1974 
   1975 	[cache] Fix a possible overflow by signed integer comparison.
   1976 
   1977 	Improve the code by 5d3ff05615dda6d1325ed612381a17a0df04c975 ,
   1978 	issues are found by Behdad Esfahbod and Werner Lemberg.
   1979 
   1980 	* src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Replace
   1981 	a subtraction to check higher bit by a bit operation,
   1982 	and cpp-conditionalize for appropriate systems.  Add better
   1983 	documentation to the comment.
   1984 	(FTC_ImageCache_LookupScaler): Ditto.
   1985 	(FTC_SBitCache_Lookup): Ditto.
   1986 	(FTC_SBitCache_LookupScaler): Ditto.
   1987 
   1988 2017-09-13  Werner Lemberg  <wl (a] gnu.org>
   1989 
   1990 	[autofit] Really fix #41334 (#52000).
   1991 
   1992 	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Set
   1993 	`segment->delta' everywhere.
   1994 
   1995 2017-09-12  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   1996 
   1997 	[autofit, sfnt] Fix for `make multi'.
   1998 
   1999 	* src/autofit/afshaper.c: Include FT_ADVANCE_H, to use
   2000 	FT_Get_Advance() in it.
   2001 	* src/sfnt/ttcmap.c: Include FT_SERVICE_POSTSCRIPT_CMAPS_H
   2002 	to use PS_Unicodes in it, also include `ttpost.h' to use
   2003 	tt_face_get_ps_name() in it.
   2004 
   2005 2017-09-11  Azzuro  <azzuro (a] team-mediaportal.com>
   2006 
   2007 	[build] Improve builds with different MS Visual Studio versions.
   2008 
   2009 	* builds/windows/vc2010/freetype.vcxproj: Switch platform toolset
   2010 	according to the Visual Studio version.
   2011 
   2012 2017-09-11  Werner Lemberg  <wl (a] gnu.org>
   2013 
   2014 	* src/sfnt/ttkern.c (tt_face_load_kern): Reject format 2 tables.
   2015 
   2016 	Reported by Behdad.
   2017 
   2018 2017-09-09  Werner Lemberg  <wl (a] gnu.org>
   2019 
   2020 	[autofit] Improve communication with ftgrid.
   2021 
   2022 	* src/autofit/afhints.c (af_glyph_hints_get_segment_offset):
   2023 	Provide values in font units.
   2024 
   2025 2017-09-08  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2026 
   2027 	[base] Remove a check for resource ID in the resource fork driver.
   2028 
   2029 	LastResort.dfont has a marginal resource ID 0xFFFF for sfnt
   2030 	resource.  Inside Macintosh: More Macintosh Toolbox, `Resource IDs'
   2031 	(1-46), tells that some IDs are reserved and should not be used.
   2032 	FreeType2 just uses resource ID to sort the fragmented resource.
   2033 	To accept the marginal fonts, the checking is removed.
   2034 
   2035 	* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Remove res_id
   2036 	validity check, fix a trace message format.
   2037 
   2038 2017-09-08  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2039 
   2040 	[sfnt, truetype] Register the tags for marginal fonts.
   2041 
   2042 	The first 32bit of standard TrueType variants is 0x00010000,
   2043 	`OTTO', `ttcf', `true' or `typ1'.  2 marginal dfonts on legacy Mac
   2044 	OS X, Keyboard.dfont and LastResort.dfont, have the sfnt resources
   2045 	starting 0xA5 followed by `kbd' or `lst'.  Considering the following
   2046 	data could be parsed as conventional TrueType fonts, the header
   2047 	checking is updated to allow these tags.  It seems that recent Mac
   2048 	OS X has already switched to normal TTF for these fonts.
   2049 
   2050 	See the discussion at
   2051 	http://u88.n24.queensu.ca/exiftool/forum/index.php?topic=3931.0
   2052 
   2053 	* include/freetype/tttags.h (TTAG_0xA5kbd, TTAG_0xA5lst): New header
   2054 	tags for Keyboard.dfont and LastResort.dfont.
   2055 	* src/sfnt/sfobjs.c (sfnt_open_font): Accept the sfnt resource
   2056 	starts with TTAG_0xA5kbd or TTAG_0xA5lst.
   2057 	* src/truetype/ttobjs.c (tt_face_init): Accept the face with the
   2058 	format tag is TTAG_0xA5kbd or TTAG_0xA5lst.
   2059 
   2060 2017-09-05  Werner Lemberg  <wl (a] gnu.org>
   2061 
   2062 	Fix multiple calls of `FT_Bitmap_Convert'.
   2063 
   2064 	The documentation of `FT_Bitmap_Convert' says that multiple calls do
   2065 	proper reallocation of the target FT_Bitmap object.  However, this
   2066 	failed for the sequence
   2067 
   2068 	  non-empty bitmap
   2069 	  empty bitmap
   2070 	  non-empty bitmap
   2071 
   2072 	Reason was that `FT_Bitmap_Convert' only reallocated the bitmap
   2073 	buffer if it became too small; it didn't make the buffer smaller.
   2074 	For an empty bitmap following a non-empty one, only the buffer
   2075 	dimension got set to zero, without deallocation.  If the next call
   2076 	was a non-empty buffer again, an assertion in `ft_mem_qrealloc' was
   2077 	triggered.
   2078 
   2079 	* src/base/ftbitmap.c (FT_Bitmap_Convert): Always reallocate target
   2080 	buffer to the correct size.
   2081 
   2082 	* docs/CHANGES: Document it.
   2083 
   2084 2017-09-05  Werner Lemberg  <wl (a] gnu.org>
   2085 
   2086 	[bdf] Fix size and resolution handling.
   2087 
   2088 	* src/bdf/bdfdrivr.c (BDF_Face_Init): Use `SIZE' values if
   2089 	`POINT_SIZE', `RESOLUTION_X', or `RESOLUTION_Y' properties are
   2090 	missing.
   2091 
   2092 	* docs/CHANGES: Document it.
   2093 
   2094 2017-08-25  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2095 
   2096 	Swap `ALLOC_MULT' arguments (#51833).
   2097 
   2098 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Updated.
   2099 	* src/winfonts/winfnt.c (FNT_Load_Glyph): Updated.
   2100 	* src/raster/ftrend1.c (ft_raster1_render): Updated.
   2101 
   2102 2017-08-23  Werner Lemberg  <wl (a] gnu.org>
   2103 
   2104 	[sfnt] Fix clang compilation (#51788).
   2105 
   2106 	* src/sfnt/pngshim.c (premultiply_data): Use vectors instead of
   2107 	scalars.
   2108 	(vector_shuffle): New macro to take care of a different built-in
   2109 	function name on clang.
   2110 
   2111 2017-08-22  Werner Lemberg  <wl (a] gnu.org>
   2112 
   2113 	[base] Don't zero out allocated memory twice (#51816).
   2114 
   2115 	Patch applied from bug report.
   2116 
   2117 	* src/base/ftutil.c (ft_mem_qrealloc): Use low-level allocation to
   2118 	avoid unnecessary overhead.
   2119 
   2120 2017-08-22  Werner Lemberg  <wl (a] gnu.org>
   2121 
   2122 	[truetype] Integer overflow.
   2123 
   2124 	Changes triggered by
   2125 
   2126 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3107
   2127 
   2128 	* src/truetype/ttinterp.c (Ins_MDRP, Ins_MIRP, Ins_ALIGNPTS): Use
   2129 	NEG_LONG.
   2130 
   2131 2017-08-17  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2132 
   2133 	[sfnt] Avoid synthetic unicode for symbol fonts with PUA.
   2134 
   2135 	Reported as
   2136 
   2137 	  https://bugs.chromium.org/p/chromium/issues/detail?id=754574
   2138 
   2139 	* src/sfnt/sfobjs.c (sfnt_load_face): Check for FT_ENCODING_MS_SYMBOL.
   2140 
   2141 2017-08-16  Werner Lemberg  <wl (a] gnu.org>
   2142 
   2143 	* src/sfnt/pngshim.c (premultiply_data): Fix compiler warnings.
   2144 
   2145 2017-08-15  Behdad Esfahbod  <behdad (a] behdad.org>
   2146 
   2147 	[sfnt] Speed up PNG image loading.
   2148 
   2149 	This reduces the overhead of `premultiply_data' by 60%.
   2150 
   2151 	* src/sfnt/pngshim.c (premultiply_data): Provide code which uses
   2152 	gcc's (and clang's) `vector_byte' attribute to process 4 pixels at a
   2153 	time.
   2154 
   2155 2017-08-11  Werner Lemberg  <wl (a] gnu.org>
   2156 
   2157 	[sfnt, truetype] Improve handling of missing sbits.
   2158 
   2159 	Requested by Behdad.
   2160 
   2161 	Modern bitmap-only SFNTs like `NotoColorEmoji.ttf' don't contain
   2162 	entries in the bitmap strike(s) for empty glyphs.  Instead, they
   2163 	rely that a space glyph gets created from the font's metrics data.
   2164 	This commit makes FreeType behave accordingly.
   2165 
   2166 	* include/freetype/fterrdef.h (FT_Err_Missing_Bitmap): New error
   2167 	code.
   2168 
   2169 	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_image): Change error codes
   2170 	to make a distinction between a missing bitmap in a composite and a
   2171 	simple missing bitmap.
   2172 
   2173 	* src/truetype/ttgload.c (TT_Load_Glyph): For a missing bitmap (in a
   2174 	bitmap-only font), synthesize an empty bitmap glyph if metrics are
   2175 	available.
   2176 
   2177 2017-08-10  Werner Lemberg  <wl (a] gnu.org>
   2178 
   2179 	[base] Minor API improvement for default variation axis setting.
   2180 
   2181 	* src/base/ftmm.c (FT_Set_MM_Design_Coordinates,
   2182 	FT_Set_Var_Design_Coordinates, FT_Set_MM_Blend_Coordinates,
   2183 	FT_Set_Var_Blend_Coordinates): Allow coords==NULL if num_coords==0.
   2184 
   2185 	* docs/CHANGES: Updated.
   2186 
   2187 2017-08-08  Werner Lemberg  <wl (a] gnu.org>
   2188 
   2189 	[psnames] Really fix issue #49949.
   2190 
   2191 	We now use a separate preprocessor macro to handle both definition
   2192 	and declaration of the glyph name arrays.
   2193 
   2194 	* src/psnames/psmodule.c (DEFINE_PS_TABLE_DATA): New macro.
   2195 
   2196 	* src/tools/glnames.py (StringTable::dump,
   2197 	StringTable::dump_sublist): Use `DEFINE_PS_TABLE_DATA'.
   2198 	(dump_encoding): Ditto.
   2199 	(main): Use `wb' mode for writing the output file, which works on
   2200 	Windows also.
   2201 
   2202 	* src/psnames/pstables.h: Regenerated.
   2203 
   2204 2017-08-08  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2205 
   2206 	[smooth] Harmony LCD rendering.
   2207 
   2208 	This is a new technology for LCD-optimized rendering. It capitalizes
   2209 	on the fact that each color channel grid is shifted by a third of a
   2210 	pixel.  Therefore it is logical to render 3 separate monochrome
   2211 	bitmaps shifting the outline by 1/3 pixel, and then combine them.
   2212 	Importantly, the resulting output does not require additional LCD
   2213 	filtering.
   2214 
   2215 	* src/smooth/ftsmooth.c (ft_smooth_render_generic)
   2216 	[!FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Implement new LCD-optimized
   2217 	rendering.
   2218 
   2219 	* include/freetype/ftlcdfil.h, include/freetype/freetype.h,
   2220 	include/freetype/config/ftoption.h, devel/ftoption.h: Updated
   2221 	documentation.
   2222 
   2223 2017-08-08  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2224 
   2225 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Clean up.
   2226 
   2227 2017-08-08  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2228 
   2229 	* src/sfnt/ttpost.c (format): Use otspec-compliant versions.
   2230 
   2231 2017-08-05  Werner Lemberg  <wl (a] gnu.org>
   2232 
   2233 	[truetype] Integer overflow.
   2234 
   2235 	Reported as
   2236 
   2237 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2868
   2238 
   2239 	* src/truetype/ttinterp.c (Ins_ALIGNRP): Use NEG_LONG.
   2240 
   2241 2017-08-05  Werner Lemberg  <wl (a] gnu.org>
   2242 
   2243 	[base, truetype] New function `FT_Get_Var_Axis_Flags'.
   2244 
   2245 	The reserved `flags' field got a value in OpenType version 1.8.2;
   2246 	unfortunately, the public `FT_Var_Axis' structure misses the
   2247 	corresponding element.  Since we can't add a new field, we add an
   2248 	access function.
   2249 
   2250 	* src/base/ftmm.c (FT_Get_Var_Axis_Flags): New function.
   2251 
   2252 	* include/freetype/ftmm.h (FT_VAR_AXIS_FLAG_HIDDEN): New macro.
   2253 	Updated.
   2254 
   2255 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Increase allocated memory
   2256 	of `mmvar' to hold axis flags.
   2257 	Fill the axis flags array.
   2258 
   2259 	* docs/CHANGES: Updated.
   2260 
   2261 2017-08-03  Nikolaus Waxweiler  <madigens (a] gmail.com>
   2262 
   2263 	[truetype] Fix metrics of B/W hinting in v40 mode.
   2264 
   2265 	Phantom points are now saved outside v40 backwards compatibility
   2266 	mode.  This fixes the jumping glyphs when switching between v35 and
   2267 	v40 monochrome mode.
   2268 
   2269 	* src/truetype/ttgload.c (TT_Hint_Glyph): Fix inversed bool logic.
   2270 
   2271 2017-08-03  Nikolaus Waxweiler  <madigens (a] gmail.com>
   2272 
   2273 	[truetype] Do not set any ClearType flags in v40 monochrome mode.
   2274 
   2275 	This fixes weird behavior of instructions that resulted in rendering
   2276 	differences between v35 and v40 in monochrome mode, e.g., in
   2277 	`timesbi.ttf'.
   2278 
   2279 	* src/truetype/ttinterp.c (Ins_GETINFO)
   2280 	[TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL]: Check
   2281 	`subpixel_hinting_lean'.
   2282 
   2283 2017-08-01  Werner Lemberg  <wl (a] gnu.org>
   2284 
   2285 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix thinko.
   2286 
   2287 2017-08-01  Behdad Esfahbod  <behdad (a] behdad.org>
   2288 
   2289 	[truetype] Fix loading of named instances.
   2290 
   2291 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Preserve file position
   2292 	while loading the `avar' table.
   2293 
   2294 2017-08-01  Werner Lemberg  <wl (a] gnu.org>
   2295 
   2296 	[sfnt, truetype] Minor adjustments for OpenType 1.8.2.
   2297 
   2298 	* src/sfnt/sfobjs.c (sfnt_load_face): The units per EM value has now
   2299 	(tighter) limits.
   2300 
   2301 	* src/truetype/ttgload.c (load_truetype_glyph): The new OpenType
   2302 	version explicitly allows all negative values for the number of
   2303 	contours if we have a composite glyph (this is for better backwards
   2304 	compatibility I guess), but it still recommends value -1.
   2305 
   2306 2017-07-26  Werner Lemberg  <wl (a] gnu.org>
   2307 
   2308 	[cff] Integer overflow.
   2309 
   2310 	Reported as
   2311 
   2312 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2738
   2313 
   2314 	* src/cff/cf2hints.c (cf2_glyphpath_computeOffset,
   2315 	cf2_glyphpath_curveTo): Use ADD_INT32.
   2316 
   2317 2017-07-13  Werner Lemberg  <wl (a] gnu.org>
   2318 
   2319 	[base] Fix memory leak.
   2320 
   2321 	Reported as
   2322 
   2323 	  https://bugs.chromium.org/p/chromium/issues/detail?id=738362
   2324 
   2325 	* src/base/ftglyph.c (FT_Get_Glyph): Do proper deallocation in case
   2326 	of error.
   2327 
   2328 2017-07-12  Werner Lemberg  <wl (a] gnu.org>
   2329 
   2330 	[base] Integer overflow.
   2331 
   2332 	Reported as
   2333 
   2334 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2573
   2335 
   2336 	* src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Use
   2337 	FT_PIX_CEIL_LONG and FT_PIX_ROUND_LONG.
   2338 
   2339 2017-07-12  Werner Lemberg  <wl (a] gnu.org>
   2340 
   2341 	* src/truetype/ttpload.c (tt_face_get_location): Off-by-one typo.
   2342 
   2343 	Also improve tracing message.
   2344 
   2345 	Problem reported as
   2346 
   2347 	  https://bugs.chromium.org/p/chromium/issues/detail?id=738919
   2348 
   2349 2017-07-07  Werner Lemberg  <wl (a] gnu.org>
   2350 
   2351 	[cff] Integer overflow.
   2352 
   2353 	Reported as
   2354 
   2355 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2517
   2356 
   2357 	* src/cff/cf2blues.c (cf2_blues_capture): Use SUB_INT32.
   2358 
   2359 2017-07-05  Werner Lemberg  <wl (a] gnu.org>
   2360 
   2361 	* src/sfnt/ttcmap.c (tt_cmap_unicode_class_rec): Fix warning.
   2362 
   2363 2017-07-05  Werner Lemberg  <wl (a] gnu.org>
   2364 
   2365 	* src/truetype/ttgxvar.c (FT_Stream_SeekSet): Fix warning (#51395).
   2366 
   2367 2017-07-04  Werner Lemberg  <wl (a] gnu.org>
   2368 
   2369 	[truetype] Prevent address overflow (#51365).
   2370 
   2371 	* src/truetype/ttgxvar.c (FT_Stream_SeekSet): Add guard.
   2372 
   2373 2017-07-03  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2374 
   2375 	* src/base/ftlcdfil.c (ft_lcd_filter_fir): Improve code.
   2376 
   2377 2017-07-03  Werner Lemberg  <wl (a] gnu.org>
   2378 
   2379 	[truetype] Integer overflow.
   2380 
   2381 	Reported as
   2382 
   2383 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2455
   2384 
   2385 	* src/truetype/ttinterp.c (Ins_SCFS): Use SUB_LONG.
   2386 
   2387 2017-07-01  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2388 
   2389 	* src/sfnt/sfobjs.c (sfnt_load_face): Ignore No_Unicode_Glyph_Name.
   2390 
   2391 2017-06-28  Ben Wagner  <bungeman (a] google.com>
   2392 
   2393 	Avoid Microsoft compiler warnings (#51331).
   2394 
   2395 	While clang's sanitizer recommends a cast to unsigned for safe
   2396 	negation (to handle -INT_MIN), both MSVC and Visualc emit warning
   2397 	C4146 if an unsigned value gets negated.
   2398 
   2399 	* include/freetype/internal/ftcalc.h (NEG_LONG, NEG_INT32),
   2400 	src/base/ftcalc.c (FT_MOVE_SIGN): Replace negation with a
   2401 	subtraction.
   2402 
   2403 2017-06-27  Werner Lemberg  <wl (a] gnu.org>
   2404 
   2405 	* src/cff/cffparse.c (do_fixed): Fix typo.
   2406 
   2407 	Spotted by chris <chris (a] gcjd.org>.
   2408 
   2409 2017-06-27  Werner Lemberg  <wl (a] gnu.org>
   2410 
   2411 	[truetype] Integer overflows.
   2412 
   2413 	Reported as
   2414 
   2415 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2384
   2416 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2391
   2417 
   2418 	* src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round, FT_DivFix): Use
   2419 	NEG_LONG.
   2420 
   2421 	* src/truetype/ttinterp.c (Ins_SxVTL): Use NEG_LONG.
   2422 
   2423 2017-06-24  Werner Lemberg  <wl (a] gnu.org>
   2424 
   2425 	[truetype] Integer overflows.
   2426 
   2427 	Reported as
   2428 
   2429 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2364
   2430 
   2431 	* src/truetype/ttinterp.c (Ins_ISECT): Use NEG_LONG.
   2432 
   2433 2017-06-22  Werner Lemberg  <wl (a] gnu.org>
   2434 
   2435 	[cff, truetype] Integer overflows.
   2436 
   2437 	Reported as
   2438 
   2439 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2323
   2440 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2328
   2441 
   2442 	* src/cff/cf2blues.c (cf2_blues_capture): Use ADD_INT32 and
   2443 	SUB_INT32.
   2444 
   2445 	* src/truetype/ttinterp.c (Ins_SDPVTL): Use SUB_LONG and NEG_LONG.
   2446 
   2447 2017-06-21  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2448 
   2449 	[sfnt] Synthesize a Unicode charmap if one is missing.
   2450 
   2451 	* src/sfnt/ttcmap.h (tt_cmap_unicode_class_rec): Declare it.
   2452 	* src/sfnt/ttcmap.c (tt_get_glyph_name, tt_cmap_unicode_init,
   2453 	tt_cmap_unicode_done, tt_cmap_unicode_char_index,
   2454 	tt_cmap_unicode_char_next, tt_cmap_unicode_class_rec): Implement
   2455 	synthetic Unicode charmap class.
   2456 	(tt_get_cmap_info): Make sure the callback is available.
   2457 
   2458 	* src/sfnt/sfobjs.c (sfnt_load_face)
   2459 	[FT_CONFIG_OPTION_POSTSCRIPT_NAMES]: If Unicode charmap is missing,
   2460 	synthesize one.
   2461 
   2462 	* include/freetype/config/ftoption.h: Document it.
   2463 	* devel/ftoption.h: Ditto.
   2464 
   2465 2017-06-20  Tony Theodore  <tonyt (a] logyst.com>
   2466 
   2467 	Fix pkg-config in freetype-config for cross-compiling (#51274).
   2468 
   2469 	* builds/unix/unix-def.in (PKG_CONFIG): New variable.
   2470 	(freetype-config): Use it in sed expression.
   2471 
   2472 	* builds/unix/freetype-config.in: s/pkg-config/%PKG_CONFIG%/.
   2473 
   2474 2017-06-20  Werner Lemberg  <wl (a] gnu.org>
   2475 
   2476 	[cff, truetype] Integer overflows.
   2477 
   2478 	Reported as
   2479 
   2480 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2300
   2481 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2313
   2482 
   2483 	* src/cff/cf2hints.c (cf2_hintmap_adjustHints): Use ADD_INT32.
   2484 
   2485 	* src/truetype/ttinterp.c (Ins_ABS): Avoid FT_ABS.
   2486 
   2487 2017-06-17  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2488 
   2489 	[base, smooth] LCD filtering cleanups.
   2490 
   2491 	* src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy):
   2492 	Clean up, start filtering from the bottom-left origin.
   2493 
   2494 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Updated.
   2495 
   2496 2017-06-16  Werner Lemberg  <wl (a] gnu.org>
   2497 
   2498 	[truetype] Integer overflows.
   2499 
   2500 	Reported as
   2501 
   2502 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2270
   2503 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2276
   2504 
   2505 	* src/truetype/ttinterp.c (Ins_MDRP, _iup_worker_interpolate): Use
   2506 	ADD_LONG and SUB_LONG.
   2507 
   2508 2017-06-15  Werner Lemberg  <wl (a] gnu.org>
   2509 
   2510 	[bdf, cff] Integer overflows.
   2511 
   2512 	Reported as
   2513 
   2514 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2244
   2515 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2261
   2516 
   2517 	* src/bdf/bdfdrivr.c (BDF_Face_Init): Replace calls to FT_ABS with
   2518 	direct code to avoid value negation.
   2519 
   2520 	* src/cff/cf2blues.c (cf2_blues_capture): Use SUB_INT32 and
   2521 	ADD_INT32.
   2522 
   2523 2017-06-13  Werner Lemberg  <wl (a] gnu.org>
   2524 
   2525 	* src/winfonts/winfnt.c (FNT_Face_Init): Don't set active encoding.
   2526 
   2527 	FreeType only sets a default active encoding for Unicode.
   2528 
   2529 2017-06-13  Werner Lemberg  <wl (a] gnu.org>
   2530 
   2531 	[cff, truetype] Integer overflows.
   2532 
   2533 	Reported as
   2534 
   2535 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2216
   2536 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2218
   2537 
   2538 	* src/cff/cf2fixed.h (cf2_fixedAbs): Use NEG_INT32.
   2539 
   2540 	* src/truetype/ttinterp.c (Ins_IP): Use SUB_LONG.
   2541 
   2542 2017-06-11  Werner Lemberg  <wl (a] gnu.org>
   2543 
   2544 	[cff] Integer overflows.
   2545 
   2546 	Reported as
   2547 
   2548 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2200
   2549 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2210
   2550 
   2551 	* src/cff/cf2hints.c (cf2_hintmap_insertHint): Use SUB_INT32 and
   2552 	ADD_INT32.
   2553 
   2554 	* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdVMOVETO>: Use
   2555 	ADD_INT32.
   2556 
   2557 2017-06-10  Werner Lemberg  <wl (a] gnu.org>
   2558 
   2559 	[truetype] Fix TT_Set_Var_Design.
   2560 
   2561 	Reported by Nikolaus Waxweiler <madigens (a] gmail.com>.
   2562 
   2563 	* src/truetype/ttgxvar.c (TT_Set_Var_Design): Correctly handle the
   2564 	case where we have less input coordinates than axes.
   2565 
   2566 2017-06-10  Werner Lemberg  <wl (a] gnu.org>
   2567 
   2568 	* src/base/ftcalc.c (FT_DivFix): Fix embarrassing typo.
   2569 
   2570 	Bug introduced 2017-05-28.
   2571 
   2572 2017-06-09  Werner Lemberg  <wl (a] gnu.org>
   2573 
   2574 	[cff, truetype] Integer overflows.
   2575 
   2576 	Reported as
   2577 
   2578 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2144
   2579 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2151
   2580 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2153
   2581 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2173
   2582 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2186
   2583 
   2584 	* src/cff/cf2blues.c (cf2_blues_init): Use SUB_INT32.
   2585 
   2586 	* src/truetype/ttinterp.c (Round_None, Round_To_Grid,
   2587 	Round_To_Half_Grid, Round_Down_To_Grid, Round_Up_To_Grid,
   2588 	Round_To_Double_Grid, Round_Super, Round_Super_45): Use ADD_LONG,
   2589 	SUB_LONG, NEG_LONG, FT_PIX_ROUND_LONG, FT_PIX_CEIL_LONG,
   2590 	FT_PAD_ROUND_LONG
   2591 	(Ins_SxVTL, Ins_MIRP): Use SUB_LONG.
   2592 	(_iup_worker_shift): Use SUB_LONG and ADD_LONG.
   2593 
   2594 2017-06-09  Werner Lemberg  <wl (a] gnu.org>
   2595 
   2596 	Provide more macros for flooring, ceiling, and rounding.
   2597 
   2598 	These versions don't produce run-time errors due to integer
   2599 	overflow.
   2600 
   2601 	* include/freetype/internal/ftobjs.h: Include FT_INTERNAL_CALC_H.
   2602 	(FT_PAD_ROUND_LONG, FT_PAD_CEIL_LONG, FT_PIX_ROUND_LONG,
   2603 	FT_PIX_CEIL_LONG): New macros.
   2604 	(FT_PAD_ROUND_INT32, FT_PAD_CEIL_INT32, FT_PIX_ROUND_INT32,
   2605 	FT_PIX_CEIL_INT32): New macros.
   2606 
   2607 2017-06-09  Werner Lemberg  <wl (a] gnu.org>
   2608 
   2609 	Remove unused macros.
   2610 
   2611 	* include/freetype/internal/ftcalc.h (ADD_INT, SUB_INT, MUL_INT,
   2612 	NEG_INT): Deleted.
   2613 
   2614 2017-06-09  Werner Lemberg  <wl (a] gnu.org>
   2615 
   2616 	*/*: Remove `OVERFLOW_' prefix.
   2617 
   2618 	This increases readability.
   2619 
   2620 2017-06-07  Werner Lemberg  <wl (a] gnu.org>
   2621 
   2622 	[cff, truetype] Integer overflows.
   2623 
   2624 	Reported as
   2625 
   2626 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2133
   2627 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2137
   2628 
   2629 	* src/cff/cf2hints.c (cf2_hint_init): Use OVERFLOW_SUB_INT32.
   2630 
   2631 	* src/truetype/ttinterp.c (PROJECT, DUALPROJ): Use
   2632 	OVERFLOW_SUB_LONG.
   2633 
   2634 2017-06-06  Werner Lemberg  <wl (a] gnu.org>
   2635 
   2636 	[cff] Integer overflows.
   2637 
   2638 	Reported as
   2639 
   2640 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2109
   2641 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2110
   2642 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2122
   2643 
   2644 	* src/cff/cf2blues.c (cf2_blues_init): Use OVERFLOW_SUB_INT32.
   2645 
   2646 	* src/cff/cf2hints.c (cf2_hintmap_map): Synchronize if-else
   2647 	branches.
   2648 
   2649 2017-06-05  Werner Lemberg  <wl (a] gnu.org>
   2650 
   2651 	[cff] Integer overflow.
   2652 
   2653 	Reported as
   2654 
   2655 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2089
   2656 
   2657 	* src/cff/cffload.c (cff_blend_doBlend): User OVERFLOW_ADD_INT32.
   2658 
   2659 2017-06-04  Werner Lemberg  <wl (a] gnu.org>
   2660 
   2661 	[cff, truetype] Integer overflows.
   2662 
   2663 	Reported as
   2664 
   2665 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2075
   2666 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2088
   2667 
   2668 	* src/cff/cf2font.c (cf2_font_setup): Use OVERFLOW_MUL_INT32.
   2669 
   2670 	* src/truetype/ttinterp.c (Ins_ISECT): Use OVERFLOW_MUL_LONG,
   2671 	OVERFLOW_ADD_LONG, and OVERFLOW_SUB_LONG.
   2672 
   2673 2017-06-03  Werner Lemberg  <wl (a] gnu.org>
   2674 
   2675 	[base, cff, truetype] Integer overflows.
   2676 
   2677 	Reported as
   2678 
   2679 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2060
   2680 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2062
   2681 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2063
   2682 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2068
   2683 
   2684 	* src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Use
   2685 	OVERFLOW_ADD_LONG and OVERFLOW_SUB_LONG.
   2686 
   2687 	* src/cff/cf2blues.c (cf2_blues_capture), src/cff/cf2hints.c
   2688 	(cf2_hintmap_adjustHints): Use OVERFLOW_SUB_INT32.
   2689 
   2690 	* src/truetype/ttgload.c (compute_glyph_metrics): User
   2691 	OVERFLOW_SUB_LONG.
   2692 
   2693 	* src/truetype/ttinterp.c (Direct_Move, Direct_Move_Orig,
   2694 	Direct_Move_X, Direct_Move_Y, Direct_Move_Orig_X,
   2695 	Direct_Move_Orig_Y, Move_Zp2_Point, Ins_MSIRP): Use
   2696 	OVERFLOW_ADD_LONG and OVERFLOW_SUB_LONG.
   2697 
   2698 2017-06-03  Werner Lemberg  <wl (a] gnu.org>
   2699 
   2700 	* builds/unix/freetype-config.in: Fix pkg-config test (#51162).
   2701 
   2702 	Patch directly taken from bug report.
   2703 
   2704 2017-06-03  Werner Lemberg  <wl (a] gnu.org>
   2705 
   2706 	[bdf] Synchronize sanity checks with pcf driver.
   2707 
   2708 	Reported as
   2709 
   2710 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2054
   2711 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2058
   2712 
   2713 	* src/bdf/bdfdrivr.c (BDF_Face_Init): Check font ascent and descent.
   2714 	Check AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE, RESOLUTION_X, and
   2715 	RESOLUTION_Y properties.
   2716 
   2717 2017-06-03  Werner Lemberg  <wl (a] gnu.org>
   2718 
   2719 	[cff, truetype] Integer overflows.
   2720 
   2721 	Reported as
   2722 
   2723 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2047
   2724 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2057
   2725 
   2726 	* src/cff/cf2hints.c (cf2_hintmap_map): Use OVERFLOW_SUB_INT32.
   2727 
   2728 	* src/truetype/ttinterp.c (Ins_ADD): Use OVERFLOW_ADD_LONG.
   2729 	(Ins_SUB): Use OVERFLOW_SUB_LONG.
   2730 	(Ins_NEG): Use NEG_LONG.
   2731 
   2732 2017-06-03  Werner Lemberg  <wl (a] gnu.org>
   2733 
   2734 	ftcalc.h: Avoid left-shift of negative numbers.
   2735 
   2736 	Reported as
   2737 
   2738 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2055
   2739 
   2740 	* include/freetype/internal/ftcalc.h (INT_TO_F26DOT6,
   2741 	INT_TO_F2DOT14, INT_TO_FIXED, F2DOT14_TO_FIXED): Use multiplication.
   2742 
   2743 2017-06-02  Werner Lemberg  <wl (a] gnu.org>
   2744 
   2745 	[cff] Even more integer overflows.
   2746 
   2747 	Reported as
   2748 
   2749 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2046
   2750 
   2751 	* src/cff/cf2intrp.c (cf2_doStems, cf2_interpT2CharString): Use
   2752 	OVERFLOW_ADD_INT32.
   2753 
   2754 2017-06-02  Werner Lemberg  <wl (a] gnu.org>
   2755 
   2756 	[cff] More integer overflows.
   2757 
   2758 	Reported as
   2759 
   2760 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2032
   2761 
   2762 	* src/cff/cf2blues.c (cf2_blues_init): Use OVERFLOW_SUB_INT32.
   2763 
   2764 2017-06-02  Werner Lemberg  <wl (a] gnu.org>
   2765 
   2766 	[bdf] Don't left-shift negative numbers.
   2767 
   2768 	Reported as
   2769 
   2770 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2031
   2771 
   2772 	* src/bdf/bdfdrivr.c (BDF_Face_Init): Use multiplication.
   2773 
   2774 2017-06-02  Werner Lemberg  <wl (a] gnu.org>
   2775 
   2776 	[bdf] Fix integer scanning routines.
   2777 
   2778 	Reported as
   2779 
   2780 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2029
   2781 
   2782 	* src/bdf/bdflib.c (_bdf_atoul, _bdf_atol, _bdf_atous, _bdf_atos):
   2783 	Stop scanning if result would overflow.
   2784 
   2785 2017-06-02  Werner Lemberg  <wl (a] gnu.org>
   2786 
   2787 	[cff] Fix integer overflows.
   2788 
   2789 	Reported as
   2790 
   2791 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2027
   2792 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2028
   2793 
   2794 	* src/cff/cf2hints.c (cf2_hintmap_insertHint), src/cff/cf2intrp.c
   2795 	(cf2_doFlex): Use OVERFLOW_ADD_INT32 and OVERFLOW_SUB_INT32.
   2796 
   2797 2017-06-01  Werner Lemberg  <wl (a] gnu.org>
   2798 
   2799 	[smooth] Some 32bit integer overflow run-time errors.
   2800 
   2801 	* src/smooth/ftgrays.c [STANDALONE] (OVERFLOW_ADD_LONG,
   2802 	OVERFLOW_SUB_LONG, OVERFLOW_MUL_LONG, NEG_LONG): New macros.
   2803 	[!STANDALONE]: Include FT_INTERNAL_CALC_H.
   2804 	(gray_render_cubic): Use those macros where appropriate.
   2805 
   2806 2017-06-01  Werner Lemberg  <wl (a] gnu.org>
   2807 
   2808 	* src/base/ftglyph.c (FT_Get_Glyph): Check `slot->advance'.
   2809 
   2810 2017-06-01  Werner Lemberg  <wl (a] gnu.org>
   2811 
   2812 	[psaux] 32bit integer overflow tun-time errors (#46149).
   2813 
   2814 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Use
   2815 	OVERFLOW_ADD_LONG and OVERFLOW_SUB_LONG where appropriate.
   2816 
   2817 2017-06-01  Werner Lemberg  <wl (a] gnu.org>
   2818 
   2819 	* src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter again.
   2820 
   2821 	Problem reported by Marek Kak <mkasik (a] redhat.com>.
   2822 
   2823 	The problematic font that exceeds the old limit is Padauk-Bold,
   2824 	version 3.002, containing bytecode generated by a buggy version of
   2825 	ttfautohint.
   2826 
   2827 2017-05-31  Werner Lemberg  <wl (a] gnu.org>
   2828 
   2829 	[cff] 32bit integer overflow run-time errors 2/2 (#46149).
   2830 
   2831 	This commit handles the new engine.
   2832 
   2833 	* include/freetype/internal/ftcalc.h (OVERFLOW_ADD_INT32,
   2834 	OVERFLOW_SUB_INT32, OVERFLOW_MUL_INT32, NEG_INT, NEG_LONG,
   2835 	NEG_INT32): New macros.
   2836 
   2837 	* src/cff/cf2ft.c (cf2_getScaleAndHintFlag): Use OVERFLOW_ADD_INT32.
   2838 
   2839 	* src/cff/cf2hints.c (cf2_getWindingMomentum, cf2_hint_init,
   2840 	cf2_hintmap_map, cf2_glyphpath_hintPoint,
   2841 	cf2_glyphpath_computeIntersection, cf2_glyphpath_computeOffset,
   2842 	cf2_glyphpath_lineTo, cf2_glyphpath_curveTo): Use
   2843 	OVERFLOW_ADD_INT32, OVERFLOW_SUB_INT32, OVERFLOW_MUL_INT32, and
   2844 	NEG_INT32 where appropriate.
   2845 
   2846 	* src/cff/cf2intrp.c (cf2_doFlex, cf2_doBlend,
   2847 	cf2_interpT2CharString): Ditto.
   2848 	Also add some other code where needed to avoid overflow.
   2849 
   2850 2017-05-30  Werner Lemberg  <wl (a] gnu.org>
   2851 
   2852 	[cff] 32bit integer overflow run-time errors 1/2 (#46149).
   2853 
   2854 	This commit handles the old engine.
   2855 
   2856 	* src/cff/cffgload.c: Include FT_INTERNAL_CALC_H.
   2857 	(cff_decoder_parse_charstrings): Use OVERFLOW_ADD_LONG and
   2858 	OVERFLOW_SUB_LONG where needed.
   2859 
   2860 	* src/cff/cffparse.c: Include FT_INTERNAL_CALC_H.
   2861 	(power_ten_limits): New static array.
   2862 	(do_fixed): Use it to prevent multiplication overflow.
   2863 	(cff_parser_run): Use OVERFLOW_ADD_LONG.
   2864 
   2865 2017-05-30  Werner Lemberg  <wl (a] gnu.org>
   2866 
   2867 	[psaux] Correctly handle sequences of multiple number signs.
   2868 
   2869 	* src/psaux/psconv.c (PS_Conv_Strtol, PS_Conv_ToFixed): Return zero
   2870 	if we encounter more than a single sign.
   2871 
   2872 2017-05-29  Werner Lemberg  <wl (a] gnu.org>
   2873 
   2874 	[pcf] 32bit integer overflow run-time errors (#46149).
   2875 
   2876 	* src/pcf/pcfread.c (pcf_get_accel): Add sanity checks for
   2877 	`fontAscent' and `fontDescent'.
   2878 	(pcf_load_font): Add sanity checks for global height.
   2879 	Add sanity checks for AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE,
   2880 	RESOLUTION_X, and RESOLUTION_Y properties.
   2881 
   2882 2017-05-29  Werner Lemberg  <wl (a] gnu.org>
   2883 
   2884 	Handle some integer overflow run-time errors (#46149, #48979).
   2885 
   2886 	This commit (mainly for 32bit CPUs) is the first of a series of
   2887 	similar commits to handle known integer overflows.  Basically, all
   2888 	of them are harmless, since they affect rendering of glyphs only,
   2889 	not posing security threats.  It is expected that fuzzying will show
   2890 	up more overflows, to be fixed in due course.
   2891 
   2892 	The idea is to mark places where overflows can occur, using macros
   2893 	that simply cast to unsigned integers, because overflow arithmetic
   2894 	is well defined in this case.  Doing so suppresses run-time errors
   2895 	of sanitizers without adding computational overhead.
   2896 
   2897 	* include/freetype/internal/ftcalc.h (OVERFLOW_ADD_INT,
   2898 	OVERFLOW_SUB_INT, OVERFLOW_MUL_INT, OVERFLOW_ADD_LONG,
   2899 	OVERFLOW_SUB_LONG, OVERFLOW_MUL_LONG): New macros.
   2900 
   2901 	* src/base/ftcalc.c (FT_RoundFix, FT_CeilFix, FT_Matrix_Multiply,
   2902 	FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled,
   2903 	ft_corner_orientation): Use new macros.
   2904 
   2905 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Use new macros.
   2906 
   2907 2017-05-28  Werner Lemberg  <wl (a] gnu.org>
   2908 
   2909 	* include/freetype/internal/ftcalc.h (FLOAT_TO_FIXED): Remove.
   2910 
   2911 	This macro is not used.
   2912 
   2913 2017-05-28  Werner Lemberg  <wl (a] gnu.org>
   2914 
   2915 	[cff] s/cf2_floatToFixed/cf2_doubleToFixed/.
   2916 
   2917 	The new name better describes what the macro actually does;
   2918 	additionally, we don't need a trailing `f' for literals (there was
   2919 	only a single such instance in the code, but this caused a clang
   2920 	warning because the macro itself uses `double' literals).
   2921 
   2922 	* src/cff/cf2blues.c, src/cff/cf2blues.h, src/cff/cf2fixed.h,
   2923 	src/cff/cf2font.c, src/cff/cf2hints.c: Updated.
   2924 
   2925 2017-05-28  Werner Lemberg  <wl (a] gnu.org>
   2926 
   2927 	Fix negation of INT_MIN and LONG_MIN (#46149).
   2928 
   2929 	* src/base/ftcalc.c (FT_MOVE_SIGN): Add argument to pass unsigned
   2930 	value, to be used as the result.
   2931 	(FT_MulDiv, FT_MulDiv_No_Round, FT_DivFix, FT_MulFix,
   2932 	FT_Vector_NormLen): Updated.
   2933 
   2934 2017-05-27  Werner Lemberg  <wl (a] gnu.org>
   2935 
   2936 	[truetype] Fix handling of design coordinates (#51127).
   2937 
   2938 	* src/truetype/ttgxvar.c (tt_set_mm_blend): Compute all design
   2939 	coordinates if we have to create the `blends->coord' array.
   2940 	(TT_Get_MM_Blend, TT_Get_Var_Design): Select default instance
   2941 	coordinates if no instance is selected yet.
   2942 
   2943 2017-05-24  Werner Lemberg  <wl (a] gnu.org>
   2944 
   2945 	[bdf, pcf] Support ISO646.1991-IRV character encoding (aka ASCII).
   2946 
   2947 	Problem reported by Marek Kak <mkasik (a] redhat.com>, cf.
   2948 
   2949 	  https://bugzilla.redhat.com/show_bug.cgi?id=1451795
   2950 
   2951 	* src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdrivr.c
   2952 	(PCF_Face_Init): Implement it.
   2953 
   2954 2017-05-20  Nikolaus Waxweiler  <madigens (a] gmail.com>
   2955 
   2956 	[truetype] Always use interpreter v35 for B/W rendering (#51051).
   2957 
   2958 	* src/truetype/ttgload.c (tt_loader_init)
   2959 	[TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL]: Adjust
   2960 	`subpixel_hinting_lean', `grayscale_cleartype', and
   2961 	`vertical_lcd_lean' accordingly.
   2962 
   2963 	* src/truetype/ttinterp.c (Ins_GETINFO): Updated.
   2964 	(TT_RunIns): Update `backward_compatibility' flag.
   2965 
   2966 2017-05-20  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2967 
   2968 	[smooth] Implement minimal dynamic padding for LCD filtering.
   2969 
   2970 	Extra bitmap padding for LCD filtering depends on the filter.  The
   2971 	default 5-tap filter needs 2 extra subpixels.  The light 3-tap filter
   2972 	needs only 1 extra subpixel.  This space could be already available
   2973 	due to rounding.  In order to optimize the padding, we now expand
   2974 	CBox for the given filter weights before rounding.
   2975 
   2976 	This change breaks current Skia (and Firefox).
   2977 
   2978 	* include/freetype/internal/ftobjs.h (FT_LibraryRec)
   2979 	[FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Remove `lcd_extra' field.
   2980 
   2981 	* src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights,
   2982 	FT_Library_SetLcdFilter): Remove `lcd_extra' initializations.
   2983 
   2984 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Implement dymanic
   2985 	LCD padding.
   2986 
   2987 2017-05-15  Werner Lemberg  <wl (a] gnu.org>
   2988 
   2989 	[sfnt] Return proper scaling values for SBIX bitmaps.
   2990 
   2991 	Problem reported by Hin-Tak Leung <htl10 (a] users.sourceforge.net>.
   2992 
   2993 	* src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Implement it.
   2994 
   2995 2017-05-15  Werner Lemberg  <wl (a] gnu.org>
   2996 
   2997 	[truetype] Fix error handling for embedded bitmaps.
   2998 
   2999 	Problem reported by Hin-Tak Leung <htl10 (a] users.sourceforge.net>.
   3000 
   3001 	* src/truetype/ttgload.c (TT_Load_Glyph)
   3002 	[TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Handle error if font is not
   3003 	scalable.
   3004 
   3005 2017-05-15  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3006 
   3007 	[autofit] Make autohint warping NORMAL option.
   3008 
   3009 	This moves warping option from LIGHT to NORMAL mode.  This makes LIGHT
   3010 	truly void of hinting in x-direction, with left side bearing never
   3011 	changed and right side bearing only altered by advance rounding.
   3012 	Therefore, LIGHT is now ready to return fractional advance.  As a
   3013 	NORMAL option, warping substitutes normal hinting.
   3014 
   3015 	* src/autofit/afcjk.c (af_cjk_hints_apply): Updated.
   3016 	* src/autofit/aflatin.c (af_latin_hints_apply): Updated.
   3017 	* src/autofit/aflatin2.c (af_latin2_hints_apply): Updated.
   3018 
   3019 	* src/autofit/afloader.c (af_loader_load_glyph): Handle warping
   3020 	phantom points as normal.
   3021 
   3022 2017-05-14  Werner Lemberg  <wl (a] gnu.org>
   3023 
   3024 	Remove remnants of raster pool.
   3025 
   3026 	* include/freetype/internal/ftobjs.h (FT_LibraryRec): Remove
   3027 	`raster_pool' and `raster_pool_size' fields.
   3028 
   3029 	* src/base/ftobjs.c (FT_New_Library), src/raster/ftrend1.c
   3030 	(ft_raster1_init), src/smooth/ftsmooth.c (ft_smooth_init): Updated.
   3031 
   3032 2017-05-13  Werner Lemberg  <wl (a] gnu.org>
   3033 
   3034 	* Version 2.8 released.
   3035 	=======================
   3036 
   3037 
   3038 	Tag sources with `VER-2-8'.
   3039 
   3040 	* docs/VERSION.TXT: Add entry for version 2.8.
   3041 	* docs/CHANGES: Updated.
   3042 
   3043 	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
   3044 	builds/windows/vc2005/index.html,
   3045 	builds/windows/vc2008/freetype.vcproj,
   3046 	builds/windows/vc2008/index.html,
   3047 	builds/windows/vc2010/freetype.vcxproj,
   3048 	builds/windows/vc2010/index.html,
   3049 	builds/windows/visualc/freetype.dsp,
   3050 	builds/windows/visualc/freetype.vcproj,
   3051 	builds/windows/visualc/index.html,
   3052 	builds/windows/visualce/freetype.dsp,
   3053 	builds/windows/visualce/freetype.vcproj,
   3054 	builds/windows/visualce/index.html,
   3055 	builds/wince/vc2005-ce/freetype.vcproj,
   3056 	builds/wince/vc2005-ce/index.html,
   3057 	builds/wince/vc2008-ce/freetype.vcproj,
   3058 	builds/wince/vc2008-ce/index.html: s/2.7.1/2.8/, s/271/28/.
   3059 
   3060 	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 8.
   3061 	(FREETYPE_PATCH): Set to 0.
   3062 
   3063 	* builds/unix/configure.raw (version_info): Set to 20:0:14.
   3064 	* CMakeLists.txt (VERSION_MINOR): Set to 8.
   3065 	(VERSION_PATCH): Set to 0.
   3066 
   3067 2017-05-12  Hin-Tak Leung  <htl10 (a] users.sourceforge.net>
   3068 
   3069 	Fix `FT_UINT_TO_POINTER' macro for Windows.
   3070 
   3071 	* builds/unix/ftconfig.in, builds/vms/ftconfig.h,
   3072 	include/freetype/config/ftconfig.h (FT_UINT_TO_POINTER) [_WIN64]:
   3073 	Fix definition.
   3074 
   3075 2017-05-11  Sascha Brawer  <sascha (a] google.com>
   3076 	    Werner Lemberg  <wl (a] gnu.org
   3077 
   3078 	[autofit] Add support for Chakma script.
   3079 
   3080 	* src/autofit/afblue.dat: Add blue zone data for Chakma.
   3081 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3082 
   3083 	* src/autofit/afscript.h: Add Chakma standard character.
   3084 
   3085 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Chakma data.
   3086 
   3087 2017-05-10  Sascha Brawer  <sascha (a] google.com>
   3088 	    Werner Lemberg  <wl (a] gnu.org
   3089 
   3090 	[autofit] Add support for Kayah Li script.
   3091 
   3092 	* src/autofit/afblue.dat: Add blue zone data for Kayah Li.
   3093 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3094 
   3095 	* src/autofit/afscript.h: Add Kayah Li standard character.
   3096 
   3097 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Kayah Li data.
   3098 
   3099 2017-05-10  Sascha Brawer  <sascha (a] google.com>
   3100 	    Werner Lemberg  <wl (a] gnu.org
   3101 
   3102 	[autofit] Add support for Bamum script.
   3103 
   3104 	* src/autofit/afblue.dat: Add blue zone data for Bamum.
   3105 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3106 
   3107 	* src/autofit/afscript.h: Add Bamum standard character.
   3108 
   3109 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Bamum data.
   3110 
   3111 2017-05-10  Sascha Brawer  <sascha (a] google.com>
   3112 	    Werner Lemberg  <wl (a] gnu.org
   3113 
   3114 	[autofit] Add support for Saurashtra script.
   3115 
   3116 	* src/autofit/afblue.dat: Add blue zone data for Saurashtra.
   3117 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3118 
   3119 	* src/autofit/afscript.h: Add Saurashtra standard character.
   3120 
   3121 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Saurashtra
   3122 	data.
   3123 
   3124 2017-05-10  Sascha Brawer  <sascha (a] google.com>
   3125 	    Werner Lemberg  <wl (a] gnu.org
   3126 
   3127 	[autofit] Add support for Buhid script.
   3128 
   3129 	* src/autofit/afblue.dat: Add blue zone data for Buhid.
   3130 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3131 
   3132 	* src/autofit/afscript.h: Add Buhid standard character.
   3133 
   3134 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Buhid data.
   3135 
   3136 2017-05-08  Sascha Brawer  <sascha (a] google.com>
   3137 	    Werner Lemberg  <wl (a] gnu.org
   3138 
   3139 	[autofit] Add support for Shavian script.
   3140 
   3141 	* src/autofit/afblue.dat: Add blue zone data for Shavian.
   3142 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3143 
   3144 	* src/autofit/afscript.h: Add Shavian standard character.
   3145 
   3146 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Shavian data.
   3147 
   3148 2017-05-08  Sascha Brawer  <sascha (a] google.com>
   3149 	    Werner Lemberg  <wl (a] gnu.org
   3150 
   3151 	[autofit] Add support for Vai script.
   3152 
   3153 	* src/autofit/afblue.dat: Add blue zone data for Vai.
   3154 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3155 
   3156 	* src/autofit/afscript.h: Add Vai standard character.
   3157 
   3158 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Vai data.
   3159 
   3160 2017-05-08  Sascha Brawer  <sascha (a] google.com>
   3161 	    Werner Lemberg  <wl (a] gnu.org
   3162 
   3163 	[autofit] Add support for Osmanya script.
   3164 
   3165 	* src/autofit/afblue.dat: Add blue zone data for Osmanya.
   3166 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3167 
   3168 	* src/autofit/afscript.h: Add Osmanya standard character.
   3169 
   3170 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Osmanya data.
   3171 
   3172 2017-05-08  Sascha Brawer  <sascha (a] google.com>
   3173 	    Werner Lemberg  <wl (a] gnu.org
   3174 
   3175 	[autofit] Add support for Coptic script.
   3176 
   3177 	* src/autofit/afblue.dat: Add blue zone data for Coptic.
   3178 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3179 
   3180 	* src/autofit/afscript.h: Add Coptic standard character.
   3181 
   3182 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Coptic data.
   3183 
   3184 2017-05-08  Sascha Brawer  <sascha (a] google.com>
   3185 	    Werner Lemberg  <wl (a] gnu.org
   3186 
   3187 	[autofit] Add support for Carian script.
   3188 
   3189 	* src/autofit/afblue.dat: Add blue zone data for Carian.
   3190 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3191 
   3192 	* src/autofit/afscript.h: Add Carian standard character.
   3193 
   3194 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Carian data.
   3195 
   3196 2017-05-07  Werner Lemberg  <wl (a] gnu.org>
   3197 
   3198 	[truetype] Add tricky font `DFGirl-W6-WIN-BF' (from Dynalab).
   3199 
   3200 	Reported by Roy Tam <roytam (a] gmail.com>.
   3201 
   3202 	* src/truetype/ttobjs.c (tt_check_trickyness_family): Implement it.
   3203 
   3204 2017-05-07  Roy Tam  <roytam (a] gmail.com>
   3205 	    Werner Lemberg  <wl (a] gnu.org>
   3206 
   3207 	[truetype] More tricky fonts (mainly from Dynalab).
   3208 
   3209 	* src/truetype/ttobjs.c (tt_check_trickyness_family,
   3210 	tt_check_trickyness_sfnt_ids): Add them.
   3211 
   3212 2017-05-07  Werner Lemberg  <wl (a] gnu.org>
   3213 
   3214 	[truetype] Add tricky font `DLCHayMedium' (from Dynalab).
   3215 
   3216 	Reported by Roy Tam <roytam (a] gmail.com>.
   3217 
   3218 	* src/truetype/ttobjs.c (tt_check_trickyness_family): Implement it.
   3219 
   3220 2017-05-03  Werner Lemberg  <wl (a] gnu.org>
   3221 
   3222 	*/*: s/backwards compatibility/backward compatibility/.
   3223 
   3224 2017-05-03  Sascha Brawer  <sascha (a] google.com>
   3225 	    Werner Lemberg  <wl (a] gnu.org
   3226 
   3227 	[autofit] Add support for Unified Canadian Syllabics script.
   3228 
   3229 	* src/autofit/afblue.dat: Add blue zone data for Unified Canadian
   3230 	Syllabics.
   3231 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3232 
   3233 	* src/autofit/afscript.h: Add Unified Canadian Syllabics standard
   3234 	character.
   3235 
   3236 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Unified
   3237 	Canadian Syllabics data.
   3238 
   3239 2017-05-03  Sascha Brawer  <sascha (a] google.com>
   3240 	    Werner Lemberg  <wl (a] gnu.org>
   3241 
   3242 	[autofit] Add blue-zone support for Sundanese script.
   3243 
   3244 	This essentially moves the Sundanese script from the `Indic' hinter
   3245 	to the `Latin' hinter.
   3246 
   3247 	* src/autofit/afblue.dat: Add blue zone data for Sundanese.
   3248 
   3249 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3250 
   3251 	* src/autofit/afscript.h: Add Sundanese standard character and move
   3252 	data out of AF_CONFIG_OPTION_INDIC block.
   3253 
   3254 	* src/autofit/afranges.c: Move Sundanese data out of
   3255 	AF_CONFIG_OPTION_INDIC block.
   3256 
   3257 	* src/autofit/afstyles.h: Update Sundanese data; in particular, use
   3258 	AF_WRITING_SYSTEM_LATIN.
   3259 
   3260 2017-05-03  Sascha Brawer  <sascha (a] google.com>
   3261 	    Werner Lemberg  <wl (a] gnu.org
   3262 
   3263 	[autofit] Add support for Avestan script.
   3264 
   3265 	* src/autofit/afblue.dat: Add blue zone data for Avestan.
   3266 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3267 
   3268 	* src/autofit/afscript.h: Add Avestan standard character.
   3269 
   3270 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Avestan data.
   3271 
   3272 2017-05-02  Behdad Esfahbod  <behdad (a] behdad.org>
   3273 
   3274 	[truetype] Make `IUP' gvar deltas do the same as Apple (#50832).
   3275 
   3276 	When points are not touched by gvar interpolation deltas, FreeType
   3277 	gave a slightly different result than Apple's CoreText.
   3278 
   3279 	The OpenType working group will update the specification to document
   3280 	the following behaviour: If the two points with deltas to the `left'
   3281 	and `right' of the untouched point have the same coordinate, then
   3282 	the inferred delta for the untouched point should be zero.
   3283 
   3284 	* src/truetype/ttgxvar.c (tt_delta_interpolate): Implement new
   3285 	behaviour.
   3286 
   3287 2017-05-02  Werner Lemberg  <wl (a] gnu.org>
   3288 
   3289 	[autofit] Remove `slight' auto-hint mode again.
   3290 
   3291 	A poll on freetype-devel favoured changes directly applied to
   3292 	`light'.
   3293 
   3294 	* include/freetype/freetype.h (FT_LOAD_TARGET_SLIGHT,
   3295 	FT_RENDER_MODE_SLIGHT): Removed.
   3296 
   3297 	* src/autofit/afcjk.c (af_cjk_hints_init), src/autofit/aflatin.c
   3298 	(af_latin_hints_init), src/autofit/aflatin2.c
   3299 	(af_latin2_hints_init): Revert change from 2017-04-22.
   3300 
   3301 	* src/autofit/afloader.c (af_loader_load_glyph) Remove references to
   3302 	FT_RENDER_MODE_SLIGHT.
   3303 	[AF_CONFIG_OPTION_TT_SIZE_METRICS]: Enable TrueType-like metrics
   3304 	unconditionally.
   3305 
   3306 	* src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Revert change from
   3307 	2017-04-22.
   3308 
   3309 	* src/base/ftobjs.c (FT_Load_Glyph): Revert change from 2017-04-22.
   3310 
   3311 	* src/pshinter/pshalgo.c (ps_hints_apply): Revert change from
   3312 	2017-04-22.
   3313 
   3314 	* src/smooth/ftsmooth.c (ft_smooth_render): Revert change from
   3315 	2017-04-22.
   3316 
   3317 	* docs/CHANGES: Updated.
   3318 
   3319 2017-04-30  Werner Lemberg  <wl (a] gnu.org>
   3320 
   3321 	[autofit] Fix metrics computation.
   3322 
   3323 	Problem reported by Markus Trippelsdorf <markus (a] trippelsdorf.de> and
   3324 	Nikolaus Waxweiler <madigens (a] gmail.com>.
   3325 
   3326 	* src/base/ftobjs.c (FT_Request_Size): Trigger recomputation of
   3327 	auto-hinter metrics.  Without this change, multiple size changing
   3328 	calls for a single face fail.
   3329 
   3330 2017-04-29  Werner Lemberg  <wl (a] gnu.org>
   3331 
   3332 	* src/truetype/ttdriver.c (tt_size_request): Properly check `error'.
   3333 
   3334 	Reported by Earnestly <zibeon (a] googlemail.com> in
   3335 
   3336 	  https://lists.nongnu.org/archive/html/freetype/2017-04/msg00031.html
   3337 
   3338 2017-04-27  Werner Lemberg  <wl (a] gnu.org>
   3339 
   3340 	Introduce AF_CONFIG_OPTION_TT_SIZE_METRICS configuration option.
   3341 
   3342 	* include/freetype/config/ftoption.h
   3343 	(AF_CONFIG_OPTION_TT_SIZE_METRICS): New option, commented out by
   3344 	default.
   3345 
   3346 	* src/autofit/afloader.c (af_loader_load_glyph): Use
   3347 	AF_CONFIG_OPTION_TT_SIZE_METRICS to guard the corresponding code.
   3348 
   3349 2017-04-26  Werner Lemberg  <wl (a] gnu.org>
   3350 
   3351 	* include/freetype/freetype.h (FT_Render_Mode): Fix order.
   3352 
   3353 	This retains backward compatibility.
   3354 
   3355 	Noted by Alexei.
   3356 
   3357 2017-04-22  Werner Lemberg  <wl (a] gnu.org>
   3358 
   3359 	[truetype] Do linear scaling for FT_LOAD_NO_HINTING (#50470).
   3360 
   3361 	* src/truetype/ttobjs.h (TT_SizeRec): Add field `hinted_metrics' to
   3362 	hold hinted metrics.
   3363 	Make `metrics' a pointer so that `tt_glyph_load' can easily switch
   3364 	between metrics.
   3365 
   3366 	* src/truetype/ttdriver.c (tt_size_request): Updated.
   3367 	(tt_glyph_load): Use top-level metrics if FT_LOAD_NO_HINTING is
   3368 	used.
   3369 
   3370 	* src/truetype/ttgload.c (TT_Hint_Glyph, TT_Process_Simple_Glyph,
   3371 	TT_Process_Composite_Component, load_truetype_glyph,
   3372 	compute_glyph_metrics, TT_Load_Glyph): Updated.
   3373 
   3374 	* src/truetype/ttinterp.c (TT_Load_Context): Updated.
   3375 
   3376 	* src/truetype/ttobjs.c (tt_size_reset): Updated.
   3377 
   3378 	* src/truetype/ttsubpix.c (sph_set_tweaks): Updated.
   3379 
   3380 2017-04-22  Werner Lemberg  <wl (a] gnu.org>
   3381 
   3382 	Add new `slight' auto-hinting mode.
   3383 
   3384 	This mode uses fractional advance widths and doesn't scale glyphs
   3385 	horizontally, only applying vertical scaling and hinting.
   3386 
   3387 	At the same time, the behaviour of the `light' auto-hinter gets
   3388 	restored for backward compatibility: Both vertical and horizontal
   3389 	scaling is again based on rounded metrics values (this was changed
   3390 	in a commit from 2017-03-30 as a side effect).  To be more precise,
   3391 	the behaviour is restored for TrueType fonts only; for other font
   3392 	formats like Type 1, this is a new feature of the `light' hinting
   3393 	mode.
   3394 
   3395 	* include/freetype/freetype.h (FT_LOAD_TARGET_SLIGHT): New macro.
   3396 	(FT_RENDER_MODE_SLIGHT): New render mode.
   3397 
   3398 	* include/freetype/internal/ftobjs.h (FT_Size_InternalRec): Add
   3399 	`autohint_mode' and `autohint_metrics' fields.
   3400 
   3401 	* src/autofit/afcjk.c (af_cjk_hints_init), src/autofit/aflatin.c
   3402 	(af_latin_hints_init), src/autofit/aflatin2 (af_latin2_hints_init):
   3403 	Updated.
   3404 
   3405 	* src/autofit/afloader.c (af_loader_embolden_glyph_in_slot): Use
   3406 	`autohint_metrics'.
   3407 	(af_loader_load_glyph): s/internal/slot_internal/.
   3408 	Initialize `autohint_metrics' and `autohint_mode' depending on
   3409 	current auto-hint mode.
   3410 	Use `autohint_metrics'.
   3411 	Updated.
   3412 
   3413 	* src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Updated.
   3414 
   3415 	* src/base/ftobjs.c (FT_Load_Glyph): Updated.
   3416 	(FT_New_Size): Allocate `internal' object.
   3417 
   3418 	* src/pshinter/pshalgo.c (ps_hints_apply): Updated.
   3419 
   3420 	* src/smooth/ftsmooth.c (ft_smooth_render): Updated.
   3421 
   3422 2017-04-22  Werner Lemberg  <wl (a] gnu.org>
   3423 
   3424 	Introduce `FT_Size_InternalRec' structure.
   3425 
   3426 	We are going to extend this later on.
   3427 
   3428 	* include/freetype/internal/ftobjs.h (FT_Size_InternalRec): New
   3429 	structure with a single field `module_data'.
   3430 
   3431 	* src/base/ftobjs.c (FT_New_Size): Allocate `internal' field of
   3432 	`FT_Size' structure.
   3433 
   3434 	* src/cff/cffgload.c (cff_builder_init, cff_decoder_prepare): Use
   3435 	`size->internal->module_data' instead of `size->internal'.
   3436 
   3437 	* src/cff/cffobjs.c (cff_size_done): Deallocate `module_data'.
   3438 	(cff_size_init, cff_size_select, cff_size_request): Use
   3439 	`size->internal->module_data' instead of `size->internal'.
   3440 
   3441 	* src/cif/cidobjs.c (cid_size_done, cid_size_init,
   3442 	cid_size_request): Use `size->internal->module_data' instead of
   3443 	`size->internal'.
   3444 
   3445 	* src/psaux/psobjs.c (t1_builder_ini): Use
   3446 	`size->internal->module_data' instead of `size->internal'.
   3447 
   3448 	* src/type1/t1objs.c (T1_Size_Done, T1_Size_Init, T1_Size_Request):
   3449 	Use `size->internal->module_data' instead of `size->internal'.
   3450 
   3451 2017-04-21  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3452 
   3453 	* src/smooth/ftsmooth.h: Remove unused guards and declaration.
   3454 
   3455 2017-04-16  Hin-Tak Leung  <htl10 (a] users.sourceforge.net>
   3456 
   3457 	Fix tracing messages.
   3458 
   3459 	* src/base/ftobjs.c (FT_Face_GetCharVariantIndex,
   3460 	FT_Face_GetCharVariantIsDefault, FT_Face_GetVariantsOfChar): Print
   3461 	correct function name.
   3462 
   3463 2017-04-08  Sascha Brawer  <sascha (a] google.com>
   3464 	    Werner Lemberg  <wl (a] gnu.org
   3465 
   3466 	[autofit] Add support for Old Turkic script.
   3467 
   3468 	* src/autofit/afblue.dat: Add blue zone data for Old Turkic.
   3469 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3470 
   3471 	* src/autofit/afscript.h: Add Old Turkic standard characters.
   3472 
   3473 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Old Turkic data.
   3474 
   3475 2017-04-08  Sascha Brawer  <sascha (a] google.com>
   3476 	    Werner Lemberg  <wl (a] gnu.org
   3477 
   3478 	[autofit] Add support for Gothic script.
   3479 
   3480 	* src/autofit/afblue.dat: Add blue zone data for Gothic.
   3481 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3482 
   3483 	* src/autofit/afscript.h: Add Gothic standard characters.
   3484 
   3485 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Gothic data.
   3486 
   3487 2017-04-08  Sascha Brawer  <sascha (a] google.com>
   3488 	    Werner Lemberg  <wl (a] gnu.org
   3489 
   3490 	[autofit] Add support for Cypriot script.
   3491 
   3492 	* src/autofit/afblue.dat: Add blue zone data for Cypriot.
   3493 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3494 
   3495 	* src/autofit/afscript.h: Add Cypriot standard characters.
   3496 
   3497 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Cypriot data.
   3498 
   3499 2017-04-08  Sascha Brawer  <sascha (a] google.com>
   3500 	    Werner Lemberg  <wl (a] gnu.org
   3501 
   3502 	[autofit] Add support for Deseret script.
   3503 
   3504 	* src/autofit/afblue.dat: Add blue zone data for Deseret.
   3505 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3506 
   3507 	* src/autofit/afscript.h: Add Deseret standard characters.
   3508 
   3509 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Deseret data.
   3510 
   3511 2017-04-07  Werner Lemberg  <wl (a] gnu.org>
   3512 
   3513 	[autofit] Fix invalid character range description (#50745).
   3514 
   3515 	Also reported as
   3516 
   3517 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1034
   3518 
   3519 	* src/autofit/afranges.c (af_glag_nonbase_uniranges): Fix typo in
   3520 	recent commit.
   3521 
   3522 2017-04-07  Werner Lemberg  <wl (a] gnu.org>
   3523 
   3524 	[ftfuzzer] Fix clang warnings.
   3525 
   3526 	* src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Add
   3527 	casts.
   3528 
   3529 2017-04-06  Sascha Brawer  <sascha (a] google.com>
   3530 	    Werner Lemberg  <wl (a] gnu.org
   3531 
   3532 	[autofit] Add support for Lisu script.
   3533 
   3534 	* src/autofit/afblue.dat: Add blue zone data for Lisu.
   3535 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3536 
   3537 	* src/autofit/afscript.h: Add Lisu standard characters.
   3538 
   3539 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Lisu data.
   3540 
   3541 2017-04-06  Sascha Brawer  <sascha (a] google.com>
   3542 	    Werner Lemberg  <wl (a] gnu.org
   3543 
   3544 	[autofit] Add support for Osage script.
   3545 
   3546 	* src/autofit/afblue.dat: Add blue zone data for Osage.
   3547 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3548 
   3549 	* src/autofit/afscript.h: Add Osage standard characters.
   3550 
   3551 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Osage data.
   3552 
   3553 2017-04-06  Sascha Brawer  <sascha (a] google.com>
   3554 	    Werner Lemberg  <wl (a] gnu.org
   3555 
   3556 	[autofit] Add support for Glagolitic script.
   3557 
   3558 	* src/autofit/afblue.dat: Add blue zone data for Glagolitic.
   3559 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3560 
   3561 	* src/autofit/afscript.h: Add Glagolitic standard characters.
   3562 
   3563 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Glagolitic data.
   3564 
   3565 2017-04-06  Sascha Brawer  <sascha (a] google.com>
   3566 	    Werner Lemberg  <wl (a] gnu.org
   3567 
   3568 	[autofit] Add support for Tai Viet script.
   3569 
   3570 	* src/autofit/afblue.dat: Add blue zone data for Tai Viet.
   3571 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3572 
   3573 	* src/autofit/afscript.h: Add Tai Viet standard characters.
   3574 
   3575 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Tai Viet data.
   3576 
   3577 2017-04-06  Sascha Brawer  <sascha (a] google.com>
   3578 	    Werner Lemberg  <wl (a] gnu.org
   3579 
   3580 	[autofit] Add support for Tifinagh script.
   3581 
   3582 	* src/autofit/afblue.dat: Add blue zone data for Tifinagh.
   3583 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3584 
   3585 	* src/autofit/afscript.h: Add Tifinagh standard characters.
   3586 
   3587 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Tifinagh data.
   3588 
   3589 2017-04-06  Sascha Brawer  <sascha (a] google.com>
   3590 	    Werner Lemberg  <wl (a] gnu.org
   3591 
   3592 	[autofit] Add support for N'Ko script.
   3593 
   3594 	* src/autofit/afblue.dat: Add blue zone data for N'Ko.
   3595 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3596 
   3597 	* src/autofit/afscript.h: Add N'Ko standard characters.
   3598 
   3599 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add N'Ko data.
   3600 
   3601 2017-04-06  Sascha Brawer  <sascha (a] google.com>
   3602 
   3603 	[autofit] Add support for Adlam script.
   3604 
   3605 	* src/autofit/afblue.dat: Add blue zone data for Adlam.
   3606 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3607 
   3608 	* src/autofit/afscript.h: Add Adlam standard characters.
   3609 
   3610 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Adlam data.
   3611 
   3612 2017-04-06  Sascha Brawer  <sascha (a] google.com>
   3613 
   3614 	[autofit] Add support for Ol Chiki script.
   3615 
   3616 	* src/autofit/afblue.dat: Add blue zone data for Ol Chiki.
   3617 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3618 
   3619 	* src/autofit/afscript.h: Add Ol Chiki standard character.
   3620 
   3621 	* src/autofit/afranges.c, src/autofit/afstyles.h: Add Ol Chiki data.
   3622 
   3623 2017-04-03  Werner Lemberg  <wl (a] gnu.org>
   3624 
   3625 	[truetype] Avoid reexecution of `fpgm' and `prep' in case of error.
   3626 
   3627 	Reported as
   3628 
   3629 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=981
   3630 
   3631 	* include/freetype/fterrdef.h (FT_Err_DEF_In_Glyf_Bytecode): New
   3632 	error code.
   3633 
   3634 	* src/truetype/ttinterp.c (Ins_FDEF, Ins_IDEF): Prohibit execution
   3635 	of these two opcodes in `glyf' bytecode.
   3636 	(TT_RunIns): Don't enforce reexecution of `fpgm' and `prep' bytecode
   3637 	in case of error since function tables can no longer be modified
   3638 	(due to the changes in `Ins_FDEF' and `Ins_IDEF').  This change can
   3639 	enormously speed up handling of broken fonts.
   3640 
   3641 2017-04-02  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3642 
   3643 	[autofit] Disable metrics adjustment for `FT_LOAD_TARGET_LCD'.
   3644 
   3645 	* src/autofit/aflatin.c (af_latin_hints_init): Updated.
   3646 	* src/autofit/aflatin2.c (af_latin2_hints_init): Ditto.
   3647 
   3648 2017-04-01  Werner Lemberg  <wl (a] gnu.org>
   3649 
   3650 	* src/truetype/ttgload.c: Include FT_CONFIG_CONFIG_H.
   3651 
   3652 	Otherwise FT_UINT_TO_POINTER might not be defined.
   3653 
   3654 	Problem reported by Alexei.
   3655 
   3656 2017-03-31  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3657 
   3658 	[autofit] Disable stem adjustment for `FT_LOAD_TARGET_LCD'.
   3659 
   3660 	* include/freetype/freetype.h (FT_LOAD_TARGET_LCD): Document it.
   3661 	* src/autofit/afcjk.c (af_cjk_hints_init): Updated.
   3662 	* src/autofit/aflatin.c (af_latin_hints_init): Ditto.
   3663 	* src/autofit/aflatin2.c (af_latin2_hints_init): Ditto.
   3664 
   3665 2017-03-31  Werner Lemberg  <wl (a] gnu.org>
   3666 
   3667 	* src/cff/cffload.c (cff_font_load): Improve fix from 2017-01-04.
   3668 
   3669 	Allow CFFs containing a single font to have an empty font name.
   3670 
   3671 	Problem reported by  <418092625 (a] qq.com> in
   3672 
   3673 	  https://lists.nongnu.org/archive/html/freetype-devel/2017-03/msg00074.html
   3674 
   3675 2017-03-30  Werner Lemberg  <wl (a] gnu.org>
   3676 
   3677 	* src/cff/cffparse.h (CFF2_DEFAULT_STACK): Set to 513 also.
   3678 
   3679 	Requested by Dave Arnold.
   3680 
   3681 2017-03-30  Werner Lemberg  <wl (a] gnu.org>
   3682 
   3683 	[truetype] Fix HVAR and VVAR handling (#50678).
   3684 
   3685 	* src/truetype/ttgxvar.c (tt_hvadvance_adjust): Handle
   3686 	glyph indices larger than `mapCount' as described in the
   3687 	specification.
   3688 
   3689 2017-03-30  Werner Lemberg  <wl (a] gnu.org>
   3690 
   3691 	[truetype] Allow linear scaling for unhinted rendering (#50470).
   3692 
   3693 	* src/truetype/ttdriver.c (tt_size_request): Revert change from
   3694 	2011-07-16; the intended metrics fix seems now to be implemented in
   3695 	a different way, making the patch unnecessary.  Note that this
   3696 	change was usually patched out by all major GNU/Linux distributions
   3697 	due to heavy side effects.
   3698 
   3699 	* src/truetype/ttgload.c (compute_glyph_metrics, TT_Load_Glyph):
   3700 	Refer to the metrics of the `TT_Size' object.
   3701 
   3702 2017-03-29  Werner Lemberg  <wl (a] gnu.org>
   3703 
   3704 	[truetype] Fix thinko related to PS name of default named instance.
   3705 
   3706 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): `strid' and `psid' are
   3707 	name ID values, not indices into the array of name entries.
   3708 
   3709 2017-03-27  Werner Lemberg  <wl (a] gnu.org>
   3710 
   3711 	[cid, truetype] Don't use `index' as a variable name.
   3712 
   3713 	At least on FreeBSD there is a global declaration of `index' in file
   3714 	`/usr/include/strings.h'.
   3715 
   3716 	* src/cff/cf2intrp.c, src/truetype/ttgload.c: s/index/idx/ where
   3717 	appropriate.
   3718 
   3719 2017-03-27  Wojciech Mamrak  <wmamrak (a] gmail.com>
   3720 
   3721 	[sfnt] Minor improvement for handling kern tables.
   3722 
   3723 	* src/sfnt/ttkern.c (tt_face_load_kern): Don't check for
   3724 	cross-stream kerning tables since we reject format 2 tables later
   3725 	on anyways.
   3726 	Modify code for limit test...
   3727 	(tt_face_get_kerning): ... to avoid a limit test here.
   3728 
   3729 2017-03-27  Werner Lemberg  <wl (a] gnu.org>
   3730 
   3731 	[pcf] Fix compiler warnings.
   3732 
   3733 	Reported by Alexander Hedges <ahedges (a] student.ethz.ch>.
   3734 
   3735 	* src/pcf/pcfdrivr.c (pcf_property_set, pcf_property_get): Tag
   3736 	`property_name' with `FT_UNUSED' where necessary.
   3737 
   3738 2017-03-26  Werner Lemberg  <wl (a] gnu.org>
   3739 
   3740 	* src/psaux/psobjs.c (t1_builder_close_contour): Add safety guard.
   3741 
   3742 	Reported as
   3743 
   3744 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=941
   3745 
   3746 2017-03-23  Werner Lemberg  <wl (a] gnu.org>
   3747 
   3748 	[psaux] Better protect `flex' handling.
   3749 
   3750 	Reported as
   3751 
   3752 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=935
   3753 
   3754 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
   3755 	<callothersubr>: Since there is not a single flex operator but a
   3756 	series of subroutine calls, malformed fonts can call arbitrary other
   3757 	operators after the start of a flex, possibly adding points.  For
   3758 	this reason we have to check the available number of points before
   3759 	inserting a point.
   3760 
   3761 2017-03-23  Werner Lemberg  <wl (a] gnu.org>
   3762 
   3763 	[sfnt] Fix check for default named instance.
   3764 
   3765 	* src/sfnt/sfobjs.c (sfnt_init_face): A `fixed' number needs four
   3766 	bytes, not two...
   3767 
   3768 2017-03-23  Werner Lemberg  <wl (a] gnu.org>
   3769 
   3770 	Make MM fonts work (again).
   3771 
   3772 	* src/base/ftmm.c (FT_Set_Var_Design_Coordinates,
   3773 	FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): Ignore
   3774 	return value of `ft_face_get_mvar_service'; instead, check whether a
   3775 	service is actually returned.
   3776 
   3777 2017-03-20  Werner Lemberg  <wl (a] gnu.org>
   3778 
   3779 	[truetype] Some variable renamings.
   3780 
   3781 	Too much local variables holding different structures were called
   3782 	`metrics'.
   3783 
   3784 	* src/truetype/ttdriver.c (tt_size_select): s/metrics/size_metrics/.
   3785 
   3786 	* src/truetype/ttgload.c (tt_get_metrics_incr_overrides,
   3787 	compute_glyph_metrics): s/metrics/incr_metrics/.
   3788 	(load_sbit_image): s/metrics/sbit_metrics/.
   3789 
   3790 	* src/truetype/ttobjs.c (tt_size_run_fpgm): s/metrics/size_metrics/.
   3791 	(tt_size_init_bytecode): s/metrics/tt_metrics/.
   3792 	(tt_size_reset): s/metrics/size_metrics/.
   3793 
   3794 2017-03-20  Werner Lemberg  <wl (a] gnu.org>
   3795 
   3796 	[sfnt] Don't add instances to non-variation fonts.
   3797 
   3798 	* src/sfnt/sfobjs.c (sfnt_init_face): Fix it.
   3799 
   3800 2017-03-20  Werner Lemberg  <wl (a] gnu.org>
   3801 
   3802 	* src/cff/cffgload.c (cff_builder_init): Add safety guard (#50578).
   3803 
   3804 2017-03-18  Werner Lemberg  <wl (a] gnu.org>
   3805 
   3806 	Introduce FT_UINT_TO_POINTER macro (#50560).
   3807 
   3808 	We have to make a separate case for Windows 64's LLP64 data model.
   3809 
   3810 	* builds/unix/ftconfig.in, builds/vms/ftconfig.h,
   3811 	include/freetype/config/ftconfig.h (FT_UINT_TO_POINTER): New macro.
   3812 
   3813 	* src/truetype/ttgload.c (load_truetype_glyph): Use it.
   3814 
   3815 2017-03-18  Werner Lemberg  <wl (a] gnu.org>
   3816 
   3817 	* src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter (#50573).
   3818 
   3819 	The problematic font that exceeds the old limit is Lato-Regular,
   3820 	version 2.007, containing bytecode generated by a buggy version of
   3821 	ttfautohint.
   3822 
   3823 2017-03-18  Werner Lemberg  <wl (a] gnu.org>
   3824 
   3825 	[truetype] Another limitation for bytecode loop count maximum.
   3826 
   3827 	Reported as
   3828 
   3829 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=900
   3830 
   3831 	* src/truetype/ttinterp.c (TT_RunIns): Limit `loopcall_counter_max'
   3832 	by number of glyphs also.
   3833 
   3834 2017-03-18  Werner Lemberg  <wl (a] gnu.org>
   3835 
   3836 	[ftfuzzer] Minor improvement.
   3837 
   3838 	* src/tools/ftfuzzer/ftfuzzer.cc: Don't set intermediate axis if
   3839 	bitmap strikes are active.
   3840 
   3841 2017-03-18  Werner Lemberg  <wl (a] gnu.org>
   3842 
   3843 	Improve `make multi'.
   3844 
   3845 	* src/autofit/aflatin2.c: Guard file with FT_OPTION_AUTOFIT2.
   3846 
   3847 	* src/base/ftmac.c: Guard more parts of the file with FT_MACINTOSH.
   3848 
   3849 	* src/psaux/afmparse.c: Guard file with T1_CONFIG_OPTION_NO_AFM.
   3850 
   3851 	* src/sfnt/pngshim.c: Guard file with
   3852 	TT_CONFIG_OPTION_EMBEDDED_BITMAPS also.
   3853 
   3854 	* src/sfnt/ttbdf.c: Avoid empty source file.
   3855 	* src/sfnt/ttpost.c: Guard file with
   3856 	TT_CONFIG_OPTION_POSTSCRIPT_NAMES.
   3857 	* src/sfnt/ttsbit.c: Guard file with
   3858 	TT_CONFIG_OPTION_EMBEDDED_BITMAPS.
   3859 
   3860 	* src/truetype/ttgxvar.c, src/truetype/ttinterp.c: Avoid empty
   3861 	source file.
   3862 
   3863 	* src/truetype/ttsubpix.c: Guard file with
   3864 	TT_USE_BYTECODE_INTERPRETER also.
   3865 
   3866 	* src/type1/t1afm.c: Guard file with T1_CONFIG_OPTION_NO_AFM.
   3867 
   3868 	* src/autofit/autofit.c, src/base/ftbase.c, src/cache/ftcache.c,
   3869 	src/cff/cff.c, src/cid/type1cid.c, src/gxvalid/gxvalid.c,
   3870 	src/pcf/pcf.c, src/pfr/pfr.c, src/psaux/psaux.c,
   3871 	src/pshinter/pshinter.c, src/psnames/psnames.c, src/raster/raster.c,
   3872 	src/sfnt/sfnt.c, src/smooth/smooth.c, src/truetype/truetype.c,
   3873 	src/type1/type1.c, src/type42/type42.c: Remove conditionals; sort
   3874 	entries.
   3875 
   3876 2017-03-17  Werner Lemberg  <wl (a] gnu.org>
   3877 
   3878 	Fixes for conditional compilation.
   3879 
   3880 	* src/autofit/afcjk.c, src/autofit/afindic.c: Include `afcjk.h'
   3881 	earlier.
   3882 
   3883 	* src/sfnt/sfobjs.c (sfnt_init_face): Put `memory' variable into
   3884 	TT_CONFIG_OPTION_GX_VAR_SUPPORT block.
   3885 	(sfnt_done_face): Protect some code with
   3886 	TT_CONFIG_OPTION_GX_VAR_SUPPORT.
   3887 
   3888 	* src/sfnt/ttsbit.c (tt_face_load_sbix_image): Remove compiler
   3889 	warning.
   3890 
   3891 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Put `tmp' variable
   3892 	into TT_USE_BYTECODE_INTERPRETER block.
   3893 
   3894 	(tt_loader_init): Put `error' variable into
   3895 	TT_USE_BYTECODE_INTERPRETER block.
   3896 
   3897 2017-03-17  Werner Lemberg  <wl (a] gnu.org>
   3898 
   3899 	Fix preprocessor warning.
   3900 
   3901 	* devel/ftoption.h, include/freetype/config/ftoption.h: Test whether
   3902 	TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined before checking its
   3903 	value.
   3904 
   3905 2017-03-17  Werner Lemberg  <wl (a] gnu.org>
   3906 
   3907 	`make multi' fixes; compiler warnings.
   3908 
   3909 	* src/base/ftsnames.c: Include FT_INTERNAL_DEBUG_H.
   3910 
   3911 	* src/cff/cffobjs.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
   3912 	FT_MULTIPLE_MASTERS_H and FT_SERVICE_MULTIPLE_MASTERS_H.
   3913 
   3914 	* src/sfnt/sfdriver.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
   3915 	FT_MULTIPLE_MASTERS_H and FT_SERVICE_MULTIPLE_MASTERS_H.
   3916 	(get_win_string, get_apple_string): Initialize `result'.
   3917 
   3918 2017-03-17  Dave Arnold <darnold (a] adobe.com>
   3919 
   3920 	[cff] Fix potential bugs in default NDV for CFF2.
   3921 
   3922 	* src/cff/cffload.c (cff_blend_build_vector): Explicitly build blend
   3923 	vector when `lenNDV' is zero; don't rely on zero-init.
   3924 	Save `lenNDV' as part of cache key even when `lenNDV' is zero.
   3925 
   3926 2017-03-17  Dave Arnold <darnold (a] adobe.com>
   3927 
   3928 	[cff] Fix CFF2 stack allocation.
   3929 
   3930 	* src/cff/cffparse.c (cff_parser_init) add 1 for operator.
   3931 
   3932 2017-03-16  Werner Lemberg  <wl (a] gnu.org>
   3933 
   3934 	* src/truetype/ttgxvar.c (tt_done_blend): Free `vvar_table'.
   3935 
   3936 	Reported as
   3937 
   3938 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=883
   3939 
   3940 2017-03-15  Werner Lemberg  <wl (a] gnu.org>
   3941 
   3942 	Remove clang compiler warnings (#50548).
   3943 
   3944 	* include/freetype/internal/tttypes.h (TT_FaceRec): Make
   3945 	`var_postscript_prefix_len' unsigned.
   3946 
   3947 	* src/autofit/afwarp.c (af_warper_compute_line_best): Remove
   3948 	redundant assignment.
   3949 
   3950 	* src/cff/cffload.c (cff_subfont_load): Add casts.
   3951 
   3952 	* src/cff/cffparse.c (cff_parse_blend): Remove redundant assignment.
   3953 
   3954 	* src/sfnt/sfdriver.c (fmix32, murmur_hash_3_128): Add `static'
   3955 	keyword.
   3956 	Add casts.
   3957 	(fixed2float): Add cast.
   3958 	(sfnt_get_var_ps_name): Make `p' always initialized.
   3959 	Add casts.
   3960 
   3961 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Add casts.
   3962 
   3963 2017-03-15  Werner Lemberg  <wl (a] gnu.org>
   3964 
   3965 	[ftfuzzer] Limit number of tested faces and instances.
   3966 
   3967 	This is inspired by the discussion in and analysis of
   3968 
   3969 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=859
   3970 
   3971 	* src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Use only
   3972 	up to 20 face indices.
   3973 	Use only up to 20 instance indices.
   3974 
   3975 2017-03-15  Werner Lemberg  <wl (a] gnu.org>
   3976 
   3977 	* src/tools/ftfuzzer/ftfuzzer.cc: Improve readability; formatting.
   3978 
   3979 2017-03-14  Werner Lemberg  <wl (a] gnu.org>
   3980 
   3981 	[sfnt] Implement PS names for font instances [3/3].
   3982 
   3983 	Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT.
   3984 
   3985 	* include/freetype/internal/tttypes.h (TT_FaceRec): New fields
   3986 	`var_postscript_prefix' and `var_postscript_prefix_len'.
   3987 
   3988 	* src/sfnt/sfdriver.c: Include FT_TRUETYPE_IDS_H.
   3989 	(sfnt_is_alphanumeric): New wrapperfunction for `ft_isalnum'.
   3990 	(get_win_string, get_apple_string): Remove `const' from return
   3991 	value.
   3992 	(MAX_VALUE_DESCRIPTOR_LEN, MAX_PS_NAME_LEN): New macros.
   3993 	(hexdigits): New array.
   3994 	(sfnt_get_var_ps_name): New function, implementing Adobe TechNote
   3995 	5902 to construct a PS name for a variation font instance.
   3996 	(sfnt_get_ps_name): Call `sfnt_get_var_ps_name' for font instances.
   3997 
   3998 	* src/sfnt/sfobjs.c (sfnt_done_face): Updated.
   3999 
   4000 	* src/truetype/ttgxvar.c (tt_set_mm_blend): Reset
   4001 	`face->postscript_name' to trigger recalculation for new instance
   4002 	parameters.
   4003 
   4004 2017-03-14  Werner Lemberg  <wl (a] gnu.org>
   4005 
   4006 	[sfnt] Implement PS names for font instances [2/3].
   4007 
   4008 	* src/sfnt/sfdriver.c (fix2float) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]:
   4009 	New function to find the shortest representation of a 16.16
   4010 	fractional number.
   4011 
   4012 2017-03-14  Werner Lemberg  <wl (a] gnu.org>
   4013 
   4014 	[sfnt] Implement PS names for font instances [1/3].
   4015 
   4016 	Add 128bit MurmurHash 3 function.
   4017 
   4018 	Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT.
   4019 
   4020 	* src/sfnt/sfdriver.c (ROTL32): New macro.
   4021 	(fmix32, murmur_hash_3_128): New functions.
   4022 
   4023 2017-03-13  Werner Lemberg  <wl (a] gnu.org>
   4024 
   4025 	[truetype] Ignore invalid MVAR tags.
   4026 
   4027 	Reported as
   4028 
   4029 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=838
   4030 
   4031 	* src/truetype/ttgxvar.c (ft_var_load_mvar): Ignore value and emit
   4032 	warning for invalid tags.
   4033 	(tt_apply_mvar): Ignore invalid tags.
   4034 
   4035 2017-03-12  Werner Lemberg  <wl (a] gnu.org>
   4036 
   4037 	[truetype] Store and use design coordinates also.
   4038 
   4039 	* include/freetype/internal/services/svmm.h (FT_Get_Var_Blend_Func):
   4040 	Add `normalizedcoords' argument.
   4041 
   4042 	* src/truetype/ttgxvar.h (GX_BlendRec): Add `coords' field to store
   4043 	the design coordinates of the current instance.
   4044 	Updated.
   4045 
   4046 	* src/truetype/ttgxvar.c (TT_Set_MM_Blend): Move functionality to...
   4047 	(tt_set_mm_blend): ... New function.
   4048 	Convert data in `normalizedcoords' array to `coords' array on
   4049 	demand.
   4050 	(TT_Set_Var_Design): Store argument data in `coords' array.
   4051 	(TT_Get_Var_Design): Get data from `coords' array.
   4052 	(tt_get_var_blend): Updated.
   4053 	(tt_done_blend): Updated.
   4054 
   4055 	* src/cff/cffload.c, src/cff/cffload.h (cff_get_var_blend): Updated.
   4056 
   4057 	* src/cff/cf2ft.c (cf2_getNormalizedVector): Updated.
   4058 
   4059 	* src/cff/cffobjs.c (cff_face_init): Updated.
   4060 
   4061 2017-03-12  Werner Lemberg  <wl (a] gnu.org>
   4062 
   4063 	src/truetype/ttgxvar.[ch]: s/avar_checked/avar_loaded/.
   4064 
   4065 2017-03-08  Werner Lemberg  <wl (a] gnu.org>
   4066 
   4067 	[sfnt] Another fix for buggy variation fonts.
   4068 
   4069 	Reported as
   4070 
   4071 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=759
   4072 
   4073 	* src/sfnt/sfobjs.c (sfnt_init_face): While setting number of
   4074 	instances to zero for `CFF' fonts table, ensure that there is no
   4075 	`CFF2' present also (which gets priority).
   4076 
   4077 2017-03-07  Werner Lemberg  <wl (a] gnu.org>
   4078 
   4079 	[sfnt] Improve handling for buggy variation fonts.
   4080 
   4081 	Reported as
   4082 
   4083 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=738
   4084 
   4085 	* src/sfnt/sfobjs.c (sfnt_init_face): While setting number of
   4086 	instances to zero for `CFF' fonts table, ensure that there is no
   4087 	`glyf' table present also (which gets priority).
   4088 
   4089 2017-03-06  Werner Lemberg  <wl (a] gnu.org>
   4090 
   4091 	[sfnt, truetype] Always provide default instance.
   4092 
   4093 	As documented in the OpenType specification, an entry for the
   4094 	default instance may be omitted in the named instance table.  In
   4095 	particular this means that even if there is no named instance table
   4096 	in the font we actually do have a named instance, namely the default
   4097 	instance.
   4098 
   4099 	For consistency, we always want the default instance in our list of
   4100 	named instances.  If it is missing, we try to synthesize it.
   4101 
   4102 	* src/sfnt/sfobjs.c (sfnt_init_face): Check whether the default
   4103 	instance is in the table of named instances.  Otherwise adjust
   4104 	number of instances.
   4105 
   4106 	* src/truetype/ttgxvar.c: Include FT_TRUETYPE_IDS_H.
   4107 	(TT_Get_MM_Var): Use `face->root.style_flags' as the number of named
   4108 	instances.
   4109 	Sythesize a named instance entry if necessary.
   4110 	(tt_done_blend): Free `normalized_stylecoords'.
   4111 
   4112 2017-03-05  Werner Lemberg  <wl (a] gnu.org>
   4113 
   4114 	[sfnt] Remove redundant code.
   4115 
   4116 	* src/sfnt/sfobjs.c (sfnt_init_face): Remove second test for
   4117 	`num_instances', which will always succeed.
   4118 
   4119 2017-03-04  Werner Lemberg  <wl (a] gnu.org>
   4120 
   4121 	[sfnt] Add `get_name_id' service.
   4122 
   4123 	* include/freetype/internal/sfnt.h (TT_Get_Name_ID_Func): New
   4124 	typedef.
   4125 	(SFNT_Interface): Add `get_name_id' field.
   4126 	(FT_DEFINE_SFNT_INTERFACE): Updated.
   4127 
   4128 	* src/sfnt/sfdriver.c (search_name_id): Rename to...
   4129 	(sfnt_get_name_id): ... this.
   4130 	(sfnt_get_ps_name, sfnt_interface): Updated.
   4131 
   4132 2017-03-04  Werner Lemberg  <wl (a] gnu.org>
   4133 
   4134 	[truetype] Make `TT_Set_MM_Blend' set named instance index.
   4135 
   4136 	* src/truetype/ttgxvar.h (GX_Blend): New array
   4137 	`normalized_stylecoords'.
   4138 
   4139 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Allocate and fill
   4140 	`normalized_stylecoords'.
   4141 	(TT_Set_MM_Blend): Check instance tuple and adjust `face_index'
   4142 	accordingly.
   4143 
   4144 2017-03-02  Werner Lemberg  <wl (a] gnu.org>
   4145 
   4146 	[truetype] Split off designer/normalized conversion routines.
   4147 
   4148 	* src/truetype/ttgxvar.c (TT_Set_Var_Design): Split off conversion
   4149 	code designer->normalized coordinates to...
   4150 	(ft_var_to_normalized): ... New function.
   4151 	(TT_Get_Var_Design): Split off conversion code normalized->designer
   4152 	coordinates to...
   4153 	(ft_var_to_design): ... New function.
   4154 
   4155 2017-02-28  Werner Lemberg  <wl (a] gnu.org>
   4156 
   4157 	[sfnt] Further generalize `sfnt_get_ps_name'; report invalid data.
   4158 
   4159 	* src/sfnt/sfdriver.c (sfnt_ps_map): New array.
   4160 	(sfnt_is_postscript): New function.
   4161 	(char_type_func): New typedef.
   4162 	(get_win_string, get_apple_string): Add argument to specify
   4163 	character checking function.
   4164 	Add argument whether argument checking failures should be reported.
   4165 	Update callers.
   4166 	(search_name_id): Fix return value.
   4167 
   4168 2017-02-23  Werner Lemberg  <wl (a] gnu.org>
   4169 
   4170 	[sfnt] Split off another bit of `sfnt_get_ps_name'.
   4171 
   4172 	* src/sfnt/sfdriver.c (sfnt_get_ps_name): Split off some
   4173 	functionality into...
   4174 	(search_name_id): ... New function.
   4175 
   4176 2017-02-23  Werner Lemberg  <wl (a] gnu.org>
   4177 
   4178 	[sfnt] Modularize `sfnt_get_ps_name'.
   4179 
   4180 	* src/sfnt/sfdriver.c (sfnt_get_ps_name): Split off some
   4181 	functionality into...
   4182 	(IS_WIN, IS_APPLE): ... New macros.
   4183 	(get_win_string, get_apple_string): ... New functions.
   4184 
   4185 2017-02-23  Werner Lemberg  <wl (a] gnu.org>
   4186 
   4187 	[truetype] Minor improvement.
   4188 
   4189 	* src/truetype/ttgload.c (TT_Process_Simple_Glyph,
   4190 	load_truetype_glyph): Remove unnecessary tests.
   4191 
   4192 2017-02-23  Werner Lemberg  <wl (a] gnu.org>
   4193 
   4194 	* include/freetype/internal/tttypes.h (TT_Face): s/isCFF2/is_cff2/.
   4195 
   4196 	For orthogonality with other structure field names.
   4197 
   4198 	Update all users.
   4199 
   4200 2017-02-22  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4201 
   4202 	* src/smooth/ftgrays.c (gray_hline): Improve code.
   4203 
   4204 2017-02-20  Dominik Rttsches  <drott (a] google.com>
   4205 
   4206 	Fix some `ttnameid.h' entries (#50313).
   4207 
   4208 	* include/freetype/ttnameid.h:
   4209 	s/TT_MS_LANGID_SPANISH_INTERNATIONAL_SORT/TT_MS_LANGID_SPANISH_SPAIN_INTERNATIONAL_SORT/,
   4210 	s/TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIA/TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIAN/.
   4211 
   4212 2017-02-20  Werner Lemberg  <wl (a] gnu.org>
   4213 
   4214 	[cff] Finish support for `random' operator.
   4215 
   4216 	* src/cff/cfftypes.h (CFF_SubFontRec): Add `random' field.
   4217 
   4218 	* src/cff/cffobjs.c: Updated.
   4219 	(cff_driver_init): Initialize random seed value.
   4220 
   4221 	* src/cff/cffload.c (cff_random): New function.
   4222 	(cff_subfont_load): Add `face' argument.
   4223 	Update all callers.
   4224 	Initialize random number generator with a proper seed value.
   4225 	(cff_font_load): Add `face' argument.
   4226 	Update all callers.
   4227 
   4228 	* src/cff/cffload.h: Updated.
   4229 
   4230 	* src/cff/cf2intrp.c (CF2_FIXME): Removed.
   4231 	(cf2_interpT2CharString) <cf2_escRANDOM>: Implement opcode.
   4232 
   4233 	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Don't
   4234 	initialize random seed value.
   4235 	<cff_op_random>: Use new random seed framework.
   4236 
   4237 2017-02-20  Werner Lemberg  <wl (a] gnu.org>
   4238 
   4239 	[cff] Sanitize `initialRandomSeed'.
   4240 
   4241 	* src/cff/cffload.c (cff_load_private_dict): Make
   4242 	`initial_random_seed' value always positive.
   4243 
   4244 2017-02-20  Werner Lemberg  <wl (a] gnu.org>
   4245 
   4246 	[cff] Introduce `random-seed' property (2/2).
   4247 
   4248 	* src/base/ftobjs.c: Include `FT_CFF_DRIVER_H'.
   4249 	(open_face): Initialize `face->internal->random_seed'.
   4250 	(FT_Face_Properties): Handle `FT_PARAM_TAG_RANDOM_SEED'.
   4251 
   4252 	* src/cff/cffdrivr.c (cff_property_set): Handle `random-seed'
   4253 	property.
   4254 
   4255 2017-02-20  Werner Lemberg  <wl (a] gnu.org>
   4256 
   4257 	[cff] Introduce `random-seed' property (1/2).
   4258 
   4259 	We need this for support of the `random' operator.
   4260 
   4261 	* include/freetype/ftcffdrv.h (FT_PARAM_TAG_RANDOM_SEED): New macro.
   4262 
   4263 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
   4264 	field `random_seed'.
   4265 
   4266 	* src/cff/cffobjs.h (CFF_DriverRec): New field `random_seed'.
   4267 
   4268 2017-02-17  Werner Lemberg  <wl (a] gnu.org>
   4269 
   4270 	Remove clang warnings.
   4271 
   4272 	* src/autofit/aflatin.c (af_latin_sort_blue): Add missing `static'
   4273 	keyword.
   4274 
   4275 	* src/base/ftmm.c (FT_Set_Var_Design_Coordinates,
   4276 	FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates):
   4277 	Initialize some variables.
   4278 
   4279 2017-02-16  Nikolaus Waxweiler  <madigens (a] gmail.com>
   4280 	    Werner Lemberg  <wl (a] gnu.org>
   4281 
   4282 	Add face property for stem darkening.
   4283 
   4284 	* include/freetype/ftautoh.h (FT_PARAM_TAG_STEM_DARKENING): New
   4285 	macro.
   4286 
   4287 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Add
   4288 	`no_stem_darkening' field.
   4289 
   4290 	* src/autofit/afloader.c (af_loader_load_glyph),
   4291 	src/autofit/afmodule.c (af_property_set): Updated.
   4292 
   4293 	* src/base/ftobjs.c: Include FT_AUTOHINTER_H.
   4294 	(ft_open_face_internal): Updated.
   4295 	(FT_Face_Properties): Handle FT_PARAM_TAG_STEM_DARKENING.
   4296 
   4297 	* src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Updated.
   4298 
   4299 	* src/cff/cffdrivr.c (cff_property_set): Updated.
   4300 
   4301 2017-02-16  Nikolaus Waxweiler  <madigens (a] gmail.com>
   4302 	    Werner Lemberg  <wl (a] gnu.org>
   4303 
   4304 	Add face property for LCD filter weights.
   4305 
   4306 	* include/freetype/ftlcdfil.h (FT_PARAM_TAG_LCD_FILTER_WEIGHTS,
   4307 	FT_LCD_FILTER_FIVE_TAPS): New macros.
   4308 	(FT_LcdFiveTapFilter): New typedef.
   4309 
   4310 	* include/freetype/ftobjs.h (FT_Face_InternalRec)
   4311 	[FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add `lcd_weights' field.
   4312 	(FT_Bitmap_LcdFilterFunc): Change third argument to weights array.
   4313 	(ft_lcd_filter_fir): New prototype.
   4314 	(FT_LibraryRec): Updated.
   4315 
   4316 	* src/base/ftlcdfil.c (_ft_lcd_filter_fir): Renamed to...
   4317 	(ft_lcd_filter_fir): ... this base function.
   4318 	Updated.
   4319 	(_ft_lcd_filter_legacy): Updated.
   4320 	(FT_Library_SetLcdFilterWeights, FT_Library_SetLcdFilter): Updated.
   4321 
   4322 	* src/base/ftobjs.c (ft_open_face_internal): Updated.
   4323 	(FT_Face_Properties): Handle FT_PARAM_TAG_LCD_FILTER_WEIGHTS.
   4324 
   4325 	* src/smooth/ftsmooth.c (ft_smooth_render_generic)
   4326 	[FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Handle LCD weights from
   4327 	`FT_Face_Internal'.
   4328 
   4329 2017-02-14  Nikolaus Waxweiler  <madigens (a] gmail.com>
   4330 	    Werner Lemberg  <wl (a] gnu.org>
   4331 
   4332 	Add new function `FT_Face_Properties'.
   4333 
   4334 	This commit provides the framework, to be filled with something
   4335 	useful in the next commits.
   4336 
   4337 	* include/freetype/freetype.h (FT_Face_Properties): Declare.
   4338 
   4339 	* src/base/ftobjs.c (FT_Face_Properties): New function.
   4340 
   4341 2017-02-13  Werner Lemberg  <wl (a] gnu.org>
   4342 
   4343 	[autofit] Prevent overlapping blue zones.
   4344 
   4345 	Problem reported as
   4346 
   4347 	  https://github.com/google/fonts/issues/632
   4348 
   4349 	The font in question (Nunito) has values 705 and 713 for the
   4350 	reference and overshoot values, respectively, of the first blue
   4351 	zone.  Blue zone 2, however, has value 710 for both the reference
   4352 	and overshoot.  At 12ppem, reference and overshoot of blue zone 0
   4353 	becomes 8px, while blue zone 2 becomes 9px.
   4354 
   4355 	A peculiarity of this font is that the tops of isolated vertical
   4356 	stems like `N' have a slight overshoot also.  The auto-hinter tries
   4357 	to find the nearest blue zone using the *original* coordinates.  For
   4358 	vertical stems, this is value 713.  For normal horizontal tops like
   4359 	in character `E', this is value 710.  Since value 713 is mapped to
   4360 	8px but value 710 to 9px, `N' and similar characters are one pixel
   4361 	higher than `E', which looks very bad.
   4362 
   4363 	This commit sanitizes blue zones to avoid such a behaviour.
   4364 
   4365 	* src/autofit/aflatin.c (af_latin_sort_blue): New function.
   4366 	(af_latin_metrics_init_blues): Sort blue values and remove overlaps.
   4367 
   4368 2017-02-12  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4369 
   4370 	* src/smooth/ftgrays.c (gray_sweep): Improve code.
   4371 
   4372 2017-02-06  Werner Lemberg  <wl (a] gnu.org>
   4373 
   4374 	[truetype] Implement `VVAR' table support.
   4375 
   4376 	* src/truetype/ttgxvar.h (GX_HVarTable): Renamed to...
   4377 	(GX_HVVarTable): ...This.
   4378 	(GX_Blend): Add fields for `VVAR' table handling.
   4379 	Other minor updates.
   4380 
   4381 	* src/truetype/ttgxvar.c (ft_var_load_hvar): Renamed to...
   4382 	(ft_var_load_hvvar): ...This.
   4383 	Handle VVAR loading also (controlled by an additional parameter).
   4384 	(tt_hadvance_adjust): Renamed to...
   4385 	(tt_hvadvance_adjust): ...This.
   4386 	Handle application of advance height also (controlled by an
   4387 	additional parameter).
   4388 	(tt_hadvance_adjust, tt_vadvance_adjust): Wrappers for
   4389 	`tt_hvadvance_adjust'.
   4390 
   4391 	* src/truetype/ttdriver.c (tt_service_metrics_variations): Updated.
   4392 
   4393 2017-02-05  Werner Lemberg  <wl (a] gnu.org>
   4394 
   4395 	[autofit] Use better blue zone characters for lowercase latin.
   4396 
   4397 	The number of lowercase characters for computing the top flat blue
   4398 	zone value was too small (in most cases only `x' and `z').  If one
   4399 	of the two characters has a large serif, say, it can happen that
   4400 	FreeType must select between two different values, having a 50%
   4401 	chance to use the wrong one.  As a result, rendering at larger PPEM
   4402 	values could yield uneven lowercase glyph heights.
   4403 
   4404 	Problem reported by Christoph Koeberlin <christoph (a] koe.berlin>.
   4405 
   4406 	* src/autofit/afblue.dat (AF_BLUE_STRING_LATIN_SMALL): Replaced
   4407 	with...
   4408 	(AF_BLUE_STRING_LATIN_SMALL_TOP, AF_BLUE_STRING_LATIN_SMALL_BOTTOM):
   4409 	... New, extended sets.
   4410 	(AF_BLUE_STRINGSET_LATN): Updated.
   4411 
   4412 	* src/autofit/afblue.c, scr/autofit/afblue.h: Regenerated.
   4413 
   4414 2017-02-04  Werner Lemberg  <wl (a] gnu.org>
   4415 
   4416 	Make `freetype-config' a wrapper of `pkg-config' if possible.
   4417 
   4418 	Based on ideas taken from
   4419 
   4420 	  http://pkgs.fedoraproject.org/cgit/rpms/freetype.git/tree/freetype-multilib.patch
   4421 	  http://pkgs.fedoraproject.org/cgit/rpms/freetype.git/tree/freetype-2.5.3-freetype-config-prefix.patch
   4422 
   4423 	* builds/unix/freetype-config.in: Rewritten.  Use `pkg-config' to
   4424 	set output variables if program is available.
   4425 
   4426 	* docs/CHANGES, docs/freetype-config.1: Updated.
   4427 
   4428 2017-02-04  Werner Lemberg  <wl (a] gnu.org>
   4429 
   4430 	* builds/unix/unix-def.in (freetype-config): Fix permissions.
   4431 
   4432 2017-02-03  Werner Lemberg  <wl (a] gnu.org>
   4433 
   4434 	* src/autofit/afglobal.c (af_face_globals_free): Erase useless code.
   4435 
   4436 2017-02-03  Werner Lemberg  <wl (a] gnu.org>
   4437 
   4438 	* include/freetype/ftgasp.h (FT_GASP_SYMMETRIC_GRIDFIT): Fix value.
   4439 
   4440 	Reported by Behdad.
   4441 
   4442 2017-02-02  Werner Lemberg  <wl (a] gnu.org>
   4443 
   4444 	[truetype] Fix MVAR post-action handling.
   4445 
   4446 	Reported as
   4447 
   4448 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=509
   4449 
   4450 	* src/truetype/ttobjs.c (tt_size_reset): Do nothing for CFF2.  This
   4451 	is important to make `tt_size_reset_iterator' (called in
   4452 	`tt_apply_mvar') always work.
   4453 
   4454 2017-02-02  Werner Lemberg  <wl (a] gnu.org>
   4455 
   4456 	Make compilation with FT_CONFIG_OPTION_PIC work again.
   4457 
   4458 	All code committed here is guarded with `FT_CONFIG_OPTION_PIC'.
   4459 
   4460 	* include/freetype/internal/services/svmetric.h
   4461 	(FT_DEFINE_SERVICE_METRICSVARIATIONSREC): Remove trailing semicolon.
   4462 
   4463 	* src/autofit/aflatin.c (af_latin_hints_compute_edges,
   4464 	af_latin_hint_edges): Provide `globals' variable.
   4465 
   4466 	* src/autofit/afloader.c (af_loader_load_glyph): Remove shadowing
   4467 	variable.
   4468 
   4469 	* src/autofit/afmodule.c (AF_SCRIPT_CLASSES_GET,
   4470 	AF_STYLE_CLASSES_GET): Redefine.
   4471 
   4472 	* src/autofit/aftypes.h (AF_DEFINE_WRITING_SYSTEM_CLASS): Fix typo.
   4473 
   4474 	* src/cff/cffparse.c (CFF_FIELD_BLEND): Provide it.
   4475 
   4476 	* src/cff/cffpic.h (CffModulePIC): Fix typo.
   4477 
   4478 2017-01-31  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4479 
   4480 	* src/smooth/ftgrays.c (gray_render_scanline): Improve code.
   4481 
   4482 2017-01-31  Werner Lemberg  <wl (a] gnu.org>
   4483 
   4484 	[cff] Provide metrics variation service interface (#50196).
   4485 
   4486 	Only now I've got an OTF with an HVAR table for testing...
   4487 
   4488 	The code in `ftmm.c' uses `FT_FACE_LOOKUP_SERVICE' to get the
   4489 	metrics variations interface.  However, this didn't work with
   4490 	`FT_FACE_FIND_GLOBAL_SERVICE' used in `sfnt_init_face'.
   4491 
   4492 	* src/cff/cffdrivr.c: Include FT_SERVICE_METRICS_VARIATIONS_H.
   4493 	(cff_hadvance_adjust, cff_metrics_adjust): Wrapper functions for
   4494 	metric service functions from the `truetype' module.
   4495 	(cff_service_metrics_variations): New service.
   4496 	(cff_services): Updated.
   4497 
   4498 	* src/cff/cffpic.h (CFF_SERVICE_METRICS_VAR_GET): New macro.
   4499 	[FT_CONFIG_OPTION_PIC]: Synchronize code.
   4500 
   4501 	* src/sfnt/sfobjs.c (sfnt_init_face): Replace call to
   4502 	FT_FACE_FIND_GLOBAL_SERVICE with `ft_module_get_service' to always
   4503 	load the service from the `truetype' module.
   4504 
   4505 2017-01-31  Werner Lemberg  <wl (a] gnu.org>
   4506 
   4507 	Add framework to support services with 9 functions.
   4508 
   4509 	* include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC9):
   4510 	New macro.
   4511 
   4512 2017-01-31  Werner Lemberg  <wl (a] gnu.org>
   4513 
   4514 	[base] Fix error handing in MM functions.
   4515 
   4516 	* src/base/ftmm.c (FT_Set_Var_Design_Coordinates,
   4517 	FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates):
   4518 	Implement it.
   4519 
   4520 2017-01-31  Werner Lemberg  <wl (a] gnu.org>
   4521 
   4522 	[truetype] Fix sanity check for `gvar' table (#50184).
   4523 
   4524 	* src/truetype/ttgxvar.c (ft_var_load_gvar): There might be missing
   4525 	variation data for some glyphs.
   4526 
   4527 2017-01-31  Werner Lemberg  <wl (a] gnu.org>
   4528 
   4529 	[autofit] Avoid uninitialized jumps (#50191).
   4530 
   4531 	* src/autofit/afcjk.c (af_cjk_metrics_check_digits),
   4532 	src/autofit/aflatin.c (af_latin_metrics_check_digits): Initialize
   4533 	`advance'.
   4534 
   4535 2017-01-27  Werner Lemberg  <wl (a] gnu.org>
   4536 
   4537 	s/GB2312/PRC/.
   4538 
   4539 	* include/freetype/freetype.h (FT_ENCODING_PRC): New enum value.
   4540 	(FT_ENCODING_GB2312): Deprecated.
   4541 
   4542 	* include/freetype/ttnameid.h (TT_MS_ID_PRC): New macro.
   4543 	(TT_MS_ID_GB2312): Deprecated.
   4544 
   4545 	* src/sfnt/sfobjs.c (sfnt_find_encoding): Updated.
   4546 
   4547 	* docs/CHANGES: Updated.
   4548 
   4549 2017-01-26  Werner Lemberg  <wl (a] gnu.org>
   4550 
   4551 	[base] Add `FT_Get_Sfnt_LangTag' function.
   4552 
   4553 	* include/freetype/ftsnames.h (FT_SfntLangTag): New structure.
   4554 	(FT_Get_Sfnt_LangTag): New declaration.
   4555 
   4556 	* src/base/ftsnames.c (FT_Get_Sfnt_LangTag): New function.
   4557 
   4558 	* docs/CHANGES: Updated.
   4559 
   4560 2017-01-26  Werner Lemberg  <wl (a] gnu.org>
   4561 
   4562 	[sfnt] Support `name' table format 1.
   4563 
   4564 	* include/freetype/internal/tttypes.h (TT_LangTagRec): New
   4565 	structure.
   4566 	(TT_NameTableRec): Add fields `numLangTagRecords' and `langTags'.
   4567 
   4568 	* src/sfnt/ttload.c (tt_face_load_name): Add support for language
   4569 	tags.
   4570 	Reduce array size of name strings in case of invalid entries.
   4571 	(tt_face_free_name): Updated.
   4572 
   4573 	* docs/CHANGES: Updated.
   4574 
   4575 2017-01-25  Werner Lemberg  <wl (a] gnu.org>
   4576 
   4577 	[sfnt] s/TT_NameEntry/TT_Name/.
   4578 
   4579 	* include/freetype/internal/tttypes.h (TT_NameEntryRec): Renamed
   4580 	to...
   4581 	(TT_NameRec): This.
   4582 	(TT_NameTableRec): Updated.
   4583 
   4584 	* src/base/ftsnames.c (FT_Get_Sfnt_Name): Updated.
   4585 
   4586 	* src/sfnt/sfdriver.c (sfnt_get_ps_name): Updated.
   4587 
   4588 	* src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16,
   4589 	tt_name_entry_ascii_from_other): Renamed to...
   4590 	(tt_name_ascii_from_utf16, tt_name_entry_ascii_from_other): This,
   4591 	respectively.
   4592 	(TT_NameEntry_ConvertFunc): Renamed to...
   4593 	(TT_Name_ConvertFunc): This.
   4594 	(tt_face_get_name): Updated.
   4595 
   4596 	* src/sfnt/ttload.c (tt_face_load_name, tt_face_free_name):
   4597 	Updated.
   4598 
   4599 2017-01-24  Werner Lemberg  <wl (a] gnu.org>
   4600 
   4601 	[sfnt] Fix Postscript name service for symbol fonts.
   4602 
   4603 	* src/sfnt/sfdriver.c (sfnt_get_ps_name): Accept PID/EID=3/0
   4604 	entries also.
   4605 
   4606 2017-01-24  Werner Lemberg  <wl (a] gnu.org>
   4607 
   4608 	[truetype] For OpenType 1.7: s/preferred/typographic/ (sub)family.
   4609 
   4610 	* include/freetype/ftsnames.h
   4611 	(FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY,
   4612 	FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY): New macros.
   4613 	(FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY,
   4614 	FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Deprecated.
   4615 
   4616 	* include/freetype/ttnameid.h (TT_NAME_ID_TYPOGRAPHIC_FAMILY,
   4617 	TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY): New macros.
   4618 	(TT_NAME_ID_PREFERRED_FAMILY, TT_NAME_ID_PREFERRED_SUBFAMILY):
   4619 	Deprecated.
   4620 
   4621 	* src/sfnt/sfobjs.c (sfnt_load_face): Updated.
   4622 
   4623 	* docs/CHANGES: Updated.
   4624 
   4625 2017-01-23  Werner Lemberg  <wl (a] gnu.org>
   4626 
   4627 	[base] Add `FT_Set_Default_Properties' (#49187).
   4628 
   4629 	* include/freetype/ftmodapi.h: Add declaration.
   4630 
   4631 	* src/base/ftinit.c (ft_set_default_properties): Renamed to...
   4632 	(FT_Set_Default_Properties): ... this.
   4633 	(FT_Init_FreeType): Updated.
   4634 
   4635 	* docs/CHANGES: Updated.
   4636 
   4637 2017-01-23  Werner Lemberg  <wl (a] gnu.org>
   4638 
   4639 	[truetype] Minor updates for OpenType 1.8.1.
   4640 
   4641 	* src/truetype/ttgxvar.h (GX_MVarTable): `axisCount' has been
   4642 	removed from the specification; it is now reserved.
   4643 
   4644 	* src/truetype/ttgxvar.c (ft_var_load_mvar): Updated.
   4645 	(GX_FVar_Head): Remove `countSizePairs'; the corresponding data
   4646 	field in the `MVAR' table is now reserved.
   4647 	(fvar_fields): Updated.
   4648 
   4649 2017-01-23  Werner Lemberg  <wl (a] gnu.org>
   4650 
   4651 	[truetype] Avoid segfault for invalid variation data.
   4652 
   4653 	* src/truetype/ttgxvar.c (ft_var_load_item_variation_store): Assure
   4654 	`itemCount' is not zero.
   4655 
   4656 	Reported as
   4657 
   4658 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=441
   4659 
   4660 2017-01-20  Werner Lemberg  <wl (a] gnu.org>
   4661 
   4662 	* src/truetype/ttinterp.c (TT_RunIns): Adjust loop detector limits.
   4663 
   4664 2017-01-17  Werner Lemberg  <wl (a] gnu.org>
   4665 
   4666 	* include/freetype/ttnameid.h: Updated to OpenType 1.8.1.
   4667 
   4668 	(TT_APPLE_ID_FULL_UNICODE): New macro.
   4669 
   4670 	(TT_MS_LANGID_BOSNIAN_BOSNIA_HERZ_CYRILLIC,
   4671 	TT_MS_LANGID_UPPER_SORBIAN_GERMANY,
   4672 	TT_MS_LANGID_LOWER_SORBIAN_GERMANY, TT_MS_LANGID_IRISH_IRELAND,
   4673 	TT_MS_LANGID_INUKTITUT_CANADA_LATIN, TT_MS_LANGID_BASHKIR_RUSSIA,
   4674 	TT_MS_LANGID_LUXEMBOURGISH_LUXEMBOURG,
   4675 	TT_MS_LANGID_GREENLANDIC_GREENLAND, TT_MS_LANGID_MAPUDUNGUN_CHILE,
   4676 	TT_MS_LANGID_MOHAWK_MOHAWK, TT_MS_LANGID_BRETON_FRANCE,
   4677 	TT_MS_LANGID_OCCITAN_FRANCE, TT_MS_LANGID_CORSICAN_FRANCE,
   4678 	TT_MS_LANGID_ALSATIAN_FRANCE, TT_MS_LANGID_YAKUT_RUSSIA,
   4679 	TT_MS_LANGID_KICHE_GUATEMALA, TT_MS_LANGID_KINYARWANDA_RWANDA,
   4680 	TT_MS_LANGID_WOLOF_SENEGAL, TT_MS_LANGID_DARI_AFGHANISTAN): New
   4681 	macros.
   4682 
   4683 	(TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC): Fix value.
   4684 
   4685 	(TT_MS_LANGID_GERMAN_LIECHTENSTEIN, TT_MS_LANGID_CATALAN_CATALAN,
   4686 	TT_MS_LANGID_CHINESE_MACAO, TT_MS_LANGID_SPANISH_SPAIN_MODERN_SORT,
   4687 	TT_MS_LANGID_KOREAN_KOREA, TT_MS_LANGID_ROMANSH_SWITZERLAND,
   4688 	TT_MS_LANGID_SLOVENIAN_SLOVENIA, TT_MS_LANGID_BASQUE_BASQUE,
   4689 	TT_MS_LANGID_SETSWANA_SOUTH_AFRICA,
   4690 	TT_MS_LANGID_ISIXHOSA_SOUTH_AFRICA,
   4691 	TT_MS_LANGID_ISIZULU_SOUTH_AFRICA, TT_MS_LANGID_KAZAKH_KAZAKHSTAN,
   4692 	TT_MS_LANGID_KYRGYZ_KYRGYZSTAN, TT_MS_LANGID_KISWAHILI_KENYA,
   4693 	TT_MS_LANGID_TATAR_RUSSIA, TT_MS_LANGID_ODIA_INDIA,
   4694 	TT_MS_LANGID_MONGOLIAN_PRC, TT_MS_LANGID_TIBETAN_PRC,
   4695 	TT_MS_LANGID_WELSH_UNITED_KINGDOM, TT_MS_LANGID_GALICIAN_GALICIAN,
   4696 	TT_MS_LANGID_SINHALA_SRI_LANKA, TT_MS_LANGID_TAMAZIGHT_ALGERIA,
   4697 	TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA, TT_MS_LANGID_YI_PRC,
   4698 	TT_MS_LANGID_UIGHUR_PRC): New aliases.
   4699 
   4700 	Remove commented out code.
   4701 
   4702 	(TT_NAME_ID_LIGHT_BACKGROUND, TT_NAME_ID_DARK_BACKGROUND,
   4703 	TT_NAME_ID_VARIATIONS_PREFIX): New macros.
   4704 
   4705 	(HAVE_LIMIT_ON_IDENTS): Remove macro (which was useless since many
   4706 	years), use guarded long macros by default and define short versions
   4707 	as aliases for the long ones.
   4708 
   4709 2017-01-15  Werner Lemberg  <wl (a] gnu.org>
   4710 
   4711 	* src/truetype/ttgxvar.c (tt_apply_var): Handle underline parameters
   4712 	also.
   4713 
   4714 2017-01-11  Werner Lemberg  <wl (a] gnu.org>
   4715 
   4716 	* src/base/ftobjs.c (ft_open_face_internal): Improve tracing.
   4717 
   4718 2017-01-11  Werner Lemberg  <wl (a] gnu.org>
   4719 
   4720 	[truetype] Actually use metrics variation service.
   4721 
   4722 	* src/base/ftmm.c: Include FT_SERVICE_METRICS_VARIATIONS_H.
   4723 	(ft_face_get_mvar_service): New auxiliary function to look up
   4724 	metrics variation service.
   4725 	(FT_Set_Var_Design_Coordinates, FT_Set_MM_Blend_Coordinates,
   4726 	FT_Set_Var_Blend_Coordinates): Call metrics variation service.
   4727 
   4728 	* src/truetype/ttobjs.c (tt_face_init): Use metrics variations for
   4729 	named instances.
   4730 
   4731 2017-01-11  Werner Lemberg  <wl (a] gnu.org>
   4732 
   4733 	[truetype] Provide metrics variation service.
   4734 
   4735 	* include/freetype/internal/services/svmetric.h
   4736 	(FT_Metrics_Adjust_Func): Reduce number of necessary parameters.
   4737 
   4738 	* src/truetype/ttgxvar.c: Include FT_LIST_H.
   4739 	(tt_size_reset_iterator): New auxiliary function for...
   4740 	(tt_apply_var): New function.
   4741 
   4742 	* src/truetype/ttgxvar.h: Updated.
   4743 
   4744 	* src/truetype/ttdriver.c (tt_service_metrics_variations): Add
   4745 	`tt_apply_mvar'.
   4746 
   4747 	* include/freetype/internal/ftserv.h (FT_ServiceCache): Add metrics
   4748 	variation service.
   4749 
   4750 2017-01-11  Werner Lemberg  <wl (a] gnu.org>
   4751 
   4752 	[truetype] Parse `MVAR' table.
   4753 
   4754 	* src/truetype/ttgxvar.h (MVAR_TAG_XXX): New macros for MVAR tags.
   4755 	(GX_Value, GX_MVarTable): New structures.
   4756 	(GX_Blend): Add it.
   4757 
   4758 	* src/truetype/ttgxvar.c (GX_VALUE_SIZE, GX_VALUE_CASE,
   4759 	GX_GASP_CASE): New macros.
   4760 	(ft_var_get_value_pointer): New auxiliary function to get a pointer
   4761 	to a value from various SFNT tables already stored in `TT_Face'.
   4762 	(ft_var_load_mvar): New function.
   4763 	(TT_Get_MM_Var): Call it.
   4764 	(tt_done_blend): Updated.
   4765 
   4766 2017-01-11  Werner Lemberg  <wl (a] gnu.org>
   4767 
   4768 	[truetype] More preparations for MVAR support.
   4769 
   4770 	* src/truetype/ttobjs.c (tt_size_reset): Add argument to make
   4771 	function only recompute ascender, descender, and height.
   4772 
   4773 	* src/truetype/ttobjs.h: Updated.
   4774 
   4775 	* src/truetype/ttdriver.c (tt_size_select, tt_size_request):
   4776 	Updated.
   4777 
   4778 2017-01-09  Werner Lemberg  <wl (a] gnu.org>
   4779 
   4780 	[pcf] Disable long family names by default.
   4781 
   4782 	* include/freetype/config/ftoption.h
   4783 	(PCF_CONFIG_OPTION_LONG_FAMILY_NAMES): Comment out.
   4784 
   4785 2017-01-09  Werner Lemberg  <wl (a] gnu.org>
   4786 
   4787 	[pcf] Make long family names configurable.
   4788 
   4789 	The change from 2016-09-29 was too radical (except for people using
   4790 	the openSuSE GNU/Linux distribution).  To ameliorate the situation,
   4791 	PCF_CONFIG_OPTION_LONG_FAMILY_NAMES gets introduced which controls
   4792 	the feature; if set, a new PCF property option
   4793 	`no-long-family-names' can be used to switch this feature off.
   4794 
   4795 	* include/freetype/config/ftoption.h, devel/ftoption.h
   4796 	(PCF_CONFIG_OPTION_LONG_FAMILY_NAMES): New option.
   4797 
   4798 	* include/freetype/ftpcfdrv.h: New header file (only containing
   4799 	comments currently, used for building the documentation).
   4800 
   4801 	* include/freetype/config/ftheader.h (FT_PCF_DRIVER_H): New macro.
   4802 
   4803 	* src/pcf/pcf.h (PCF_Driver): Add `no_long_family_names' field.
   4804 
   4805 	* src/pcf/pcfdrivr.c: Include FT_SERVICE_PROPERTIES_H and
   4806 	FT_PCF_DRIVER_H.
   4807 	(pcf_property_set, pcf_property_get): New functions.
   4808 	(pcf_service_properties): New service.
   4809 	(pcf_services): Updated.
   4810 	(pcf_driver_init) [PCF_CONFIG_OPTION_LONG_FAMILY_NAMES]: Handle
   4811 	`no_long_family_names'.
   4812 
   4813 	* src/pcf/pcfread.c (pcf_load_font): Handle `no_long_family_names'
   4814 	and PCF_CONFIG_OPTION_LONG_FAMILY_NAMES.
   4815 
   4816 	* docs/CHANGES: Updated.
   4817 
   4818 2017-01-09  Werner Lemberg  <wl (a] gnu.org>
   4819 
   4820 	[pcf] Introduce a driver structure.
   4821 
   4822 	To be filled later on with something useful.
   4823 
   4824 	* src/pcf/pcf.h (PCF_Driver): New structure.
   4825 
   4826 	* src/pcf/pcfdrivr.c (pcf_driver_init, pcf_driver_done): New dummy
   4827 	functions.
   4828 	(pcf_driver_class): Updated.
   4829 
   4830 2017-01-08  Werner Lemberg  <wl (a] gnu.org>
   4831 
   4832 	[truetype] Again some GX code shuffling.
   4833 
   4834 	We need this later on for MVAR also.
   4835 
   4836 	* src/truetype/ttgxvar.c (tt_hadvance_adjust): Split off computing
   4837 	an item store variation delta into...
   4838 	(ft_var_get_item_delta): ...new function.
   4839 
   4840 2017-01-08  Werner Lemberg  <wl (a] gnu.org>
   4841 
   4842 	[truetype] Adjust font variation flags for MVAR.
   4843 
   4844 	* include/freetype/internal/tttypes.h (TT_FACE_FLAG_VAR_XXX):
   4845 	Remove all flags related to MVAR; replace it with...
   4846 	(TT_FACE_FLAG_VAR_MVAR): ...this new macro.
   4847 	(TT_Face): Remove `mvar_support' field (which was still unused).
   4848 
   4849 2017-01-06  Werner Lemberg  <wl (a] gnu.org>
   4850 
   4851 	[truetype] More GX code shuffling.
   4852 
   4853 	We need this later on for MVAR also.
   4854 
   4855 	* src/truetype/ttgxvar.c (tt_done_blend): Split off handling of item
   4856 	variation store into...
   4857 	(ft_var_done_item_variation_store): ...new function.
   4858 
   4859 2017-01-06  Werner Lemberg  <wl (a] gnu.org>
   4860 
   4861 	[truetype] More generalization of GX stuff.
   4862 
   4863 	We need this later on for MVAR also.
   4864 
   4865 	* src/truetype/ttgxvar.c (ft_var_load_delta_set_index_mapping): Add
   4866 	parameters for delta-set index mapping and item variation store.
   4867 	(ft_var_load_item_variation_store): Add parameter for item variation
   4868 	store.
   4869 	s/hvarData/varData/.
   4870 	Move allocation of `hvar_table' to...
   4871 	(ft_var_load_hvar): ...this function.
   4872 	Updated.
   4873 
   4874 2017-01-06  Werner Lemberg  <wl (a] gnu.org>
   4875 
   4876 	[truetype] Some GX structure renames for generalization.
   4877 
   4878 	We need this later on for MVAR also.
   4879 
   4880 	* src/truetype/ttgxvar.h (GX_HVarData): Renamed to...
   4881 	(GX_ItemVarData): ...this.
   4882 	(GX_HVarRegion): Renamed to...
   4883 	(GX_VarRegion): ...this.
   4884 	(GX_HVStore): Renamed to...
   4885 	(GX_ItemVarStore): ...this.
   4886 	(GX_WidthMap): Renamed to...
   4887 	(GX_DeltaSetIdxMap): ...this.
   4888 
   4889 	(GX_HVarTable): Updated.
   4890 
   4891 	* src/truetype/ttgxvar.c: Updated.
   4892 
   4893 2017-01-06  Werner Lemberg  <wl (a] gnu.org>
   4894 
   4895 	[truetype] Code shuffling.
   4896 
   4897 	* src/truetype/ttgxvar.c (ft_var_load_hvar): Split off loading of
   4898 	item variation store and delta set index mapping into...
   4899 	(ft_var_load_item_variation_store,
   4900 	ft_var_load_delta_set_index_mapping): ...new functions.
   4901 
   4902 2017-01-06  Werner Lemberg  <wl (a] gnu.org>
   4903 
   4904 	[truetype] Add HVAR access without advance width map.
   4905 
   4906 	* src/truetype/ttgxvar.c (ft_var_load_hvar): Handle case where
   4907 	`offsetToAdvanceWidthMapping' is zero.
   4908 	(tt_hadvance_adjust): Implement direct deltaSet access by glyph
   4909 	index.
   4910 
   4911 2017-01-06  Werner Lemberg  <wl (a] gnu.org>
   4912 
   4913 	[pcf] Revise driver.
   4914 
   4915 	This commit improves tracing and handling of malformed fonts.  In
   4916 	particular, the changes to `pcf_get_properties' fix
   4917 
   4918 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=379
   4919 
   4920 	* src/pcf/pcfread.c (tableNames): Use long names for better
   4921 	readability.
   4922 	(pcf_read_TOC): Allow at most 9 tables.
   4923 	(pcf_get_properties): Allow at most 256 properties.
   4924 	Limit strings array length to 256 * (65536 + 1) bytes.
   4925 	Better tracing.
   4926 	(pcf_get_metric): Trace metric data.
   4927 	(pcf_get_metrics): Allow at most 65536 metrics.
   4928 	Fix comparison of `metrics->ascent' and `metrics->descent' to avoid
   4929 	potential overflow.
   4930 	Better tracing.
   4931 	(pcf_get_bitmaps): Allow at most 65536 bitmaps.
   4932 	Better tracing.
   4933 	(pcf_get_encodings, pcf_get_accel): Better tracing.
   4934 
   4935 	* src/pcf/pcfdrivr.c (PCF_Glyph_Load): Don't trace `format' details.
   4936 	These are now shown by `pcf_get_bitmaps'.
   4937 
   4938 2017-01-04  Werner Lemberg  <wl (a] gnu.org>
   4939 
   4940 	* src/pcf/pcfdrivr.c (PCF_Face_Init): Trace compression format.
   4941 
   4942 2017-01-04  Werner Lemberg  <wl (a] gnu.org>
   4943 
   4944 	[cff] More consistency checks for pure CFFs.
   4945 
   4946 	Reported as
   4947 
   4948 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=378
   4949 
   4950 	* src/cff/cffload.c (cff_font_load): Check element number and size
   4951 	of Name and Top DICT indices.
   4952 
   4953 2017-01-04  Werner Lemberg  <wl (a] gnu.org>
   4954 
   4955 	[cff, truetype] Minor tracing improvement.
   4956 
   4957 	* src/cff/cffobjs.c (cff_face_init), src/truetype/ttobjs.c
   4958 	(tt_face_init): Indent first tracing message from SFNT driver.
   4959 
   4960 2017-01-03  Werner Lemberg  <wl (a] gnu.org>
   4961 
   4962 	[truetype] Various minor fixes.
   4963 
   4964 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check instruction
   4965 	size only if we do native hinting.
   4966 	(TT_Load_Glyph): Trace returned error code.
   4967 
   4968 	* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Trace
   4969 	returned error code.
   4970 	(tt_size_ready_bytecode): Don't run `prep' table if `fpgm' table is
   4971 	invalid.
   4972 
   4973 2017-01-03  Werner Lemberg  <wl (a] gnu.org>
   4974 
   4975 	[sfnt] Don't fail if PCLT, EBLC (and similar tables) are invalid.
   4976 
   4977 	These tables are optional.
   4978 
   4979 	* src/sfnt/sfobjs.c (sfnt_load_face): Implement it.
   4980 
   4981 2017-01-03  Werner Lemberg  <wl (a] gnu.org>
   4982 
   4983 	* src/cff/cffparse.c (cff_parse_num): Simplify.
   4984 
   4985 2017-01-03  Werner Lemberg  <wl (a] gnu.org>
   4986 
   4987 	Various fixes for clang's undefined behaviour sanitizer.
   4988 
   4989 	* src/cff/cffload.c (FT_fdot14ToFixed): Fix casting.
   4990 	(cff_blend_doBlend): Don't left-shift negative numbers.
   4991 	Handle 5-byte numbers byte by byte to avoid alignment issues.
   4992 
   4993 	* src/cff/cffparse.c (cff_parse_num): Handle 5-byte numbers byte by
   4994 	byte to avoid alignment issues.
   4995 
   4996 	* src/cid/cidload (cid_read_subrs): Do nothing if we don't have any
   4997 	subrs.
   4998 
   4999 	* src/psaux/t1decode.c (t1_decode_parse_charstring): Fix tracing.
   5000 
   5001 	* src/tools/glnames.py (main): Put `DEFINE_PSTABLES' guard around
   5002 	definition of `ft_get_adobe_glyph_index'.
   5003 
   5004 	* src/psnames/pstables.h: Regenerated.
   5005 
   5006 	* src/psnames/psmodule.c: Include `pstables.h' twice to get both
   5007 	declaration and definition.
   5008 
   5009 	* src/truetype/ttgxvar.c (FT_fdot14ToFixed, FT_intToFixed): Fix
   5010 	casting.
   5011 
   5012 2017-01-01  Werner Lemberg  <wl (a] gnu.org>
   5013 
   5014 	[cff] Handle multiple `blend' operators in a row correctly.
   5015 
   5016 	Reported as
   5017 
   5018 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=368
   5019 
   5020 	* src/cff/cffload.c (cff_blend_doBlend): Adjust `parser->stack'
   5021 	pointers into `subFont->blend_stack' after reallocation.
   5022 
   5023 2017-01-01  Werner Lemberg  <wl (a] gnu.org>
   5024 
   5025 	[sfnt] Return correct number of named instances for TTCs.
   5026 
   5027 	Without this patch, requesting information for face index N returned
   5028 	the data for face index N+1 (or index 0).
   5029 
   5030 	* src/sfnt/sfobjs.c (sfnt_init_face): Correctly adjust `face_index'
   5031 	for negative `face_instance_index' values.
   5032 
   5033 2016-12-31  Werner Lemberg  <wl (a] gnu.org>
   5034 
   5035 	*/*: Use hex numbers for errors in tracing messages.
   5036 
   5037 2016-12-31  Werner Lemberg  <wl (a] gnu.org>
   5038 
   5039 	[truetype] Check axis count in HVAR table.
   5040 
   5041 	Reported as
   5042 
   5043 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=362
   5044 
   5045 	* src/truetype/ttgxvar.c (ft_var_load_hvar): Check axis count.
   5046 	(ft_var_load_avar): Fix tracing message.
   5047 
   5048 
   5049 ----------------------------------------------------------------------------
   5050 
   5051 Copyright 2016-2018 by
   5052 David Turner, Robert Wilhelm, and Werner Lemberg.
   5053 
   5054 This file is part of the FreeType project, and may only be used, modified,
   5055 and distributed under the terms of the FreeType project license,
   5056 LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   5057 indicate that you have read the license and understand and accept it
   5058 fully.
   5059 
   5060 
   5061 Local Variables:
   5062 version-control: never
   5063 coding: utf-8
   5064 End:
   5065