Home | History | Annotate | Download | only in freetype
      1 2018-08-10  Ben Wagner  <bungeman (a] google.com>
      2 
      3 	* src/sfnt/sfobjs.c (sfnt_done_face): Fix memory leak (#54435).
      4 
      5 2018-08-10  Werner Lemberg  <wl (a] gnu.org>
      6 
      7 	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Improve tracing.
      8 
      9 2018-08-10  Werner Lemberg  <wl (a] gnu.org>
     10 
     11 	Fix clang warnings.
     12 
     13 	* src/base/ftdebug.c (ft_trace_level_enabled,
     14 	ft_trace_level_disabled): Add `static' keyword.
     15 
     16 2018-08-09  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
     17 
     18 	[raster, smooth] Reinstate bitmap size limits.
     19 
     20 	This again moves outline and bitmap size checks one level up.
     21 
     22 	* src/base/ftoutln.c (FT_Outline_Render): Explicitly reject enormous
     23 	outlines.
     24 	* src/raster/ftrend1.c (ft_raster1_render): Reject enormous bitmaps
     25 	and, therefore, outlines that require them.
     26 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
     27 
     28 	* src/raster/ftraster.c (ft_black_render): Remove outline size checks.
     29 	* src/smooth/ftgrays.c (gray_raster_render): Ditto.
     30 	[STANDALONE]: Remove `FT_Outline_Get_CBox' copy.
     31 
     32 2018-08-08  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
     33 
     34 	[pcf] Revert massive unsigning.
     35 
     36 2018-08-08  Werner Lemberg  <wl (a] gnu.org>
     37 
     38 	[smooth] Improve tracing.
     39 
     40 	* src/smooth/ftgrays.c (gray_convert_glyph_inner): Only use tracing
     41 	if called the first time.
     42 	(gray_convert_glyph): Updated.
     43 
     44 2018-08-08  Werner Lemberg  <wl (a] gnu.org>
     45 
     46 	Add internal functions `FT_Trace_Disable' and `FT_Trace_Enable'.
     47 
     48 	It sometimes makes sense to suppress tracing informations, for
     49 	example, if it outputs identical messages again and again.
     50 
     51 	* include/freetype/internal/ftdebug.h: Make `ft_trace_levels' a
     52 	pointer.
     53 	(FT_Trace_Disable, FT_Trace_Enable): New declarations.
     54 
     55 	* src/base/ftdebug.c (ft_trace_levels): Rename to...
     56 	(ft_trace_levels_enabled): ... this.
     57 	(ft_trace_levels_disabled): New array.
     58 	(ft_trace_levels): New pointer.
     59 	(FT_Trace_Disable, FT_Trace_Enable): Implement.
     60 	(ft_debug_init): Updated.
     61 
     62 2018-08-08  Werner Lemberg  <wl (a] gnu.org>
     63 
     64 	Debugging improvements.
     65 
     66 	* src/base/ftobjs.c (pixel_modes): Move this array to top level
     67 	from ...
     68 	(FT_Load_Glyph): ... here.
     69 	(FT_Render_Glyph_Internal): Use `width' x `height' in trace message.
     70 	Use `pixel_modes'.
     71 
     72 2018-08-08  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
     73 
     74 	[pcf] Massive unsigning (part 2).
     75 
     76 	Treat all size related properties as unsigned values.
     77 
     78 	* src/pcf/pcf.h (PCF_ParsePropertyRec): Use unsigned `name' and
     79 	`value'.
     80 	* src/pcf/pcfread.c (pcf_get_propeerties, pcf_load_font): Updated
     81 	parsing code and handling of AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE,
     82 	RESOLUTION_X and RESOLUTION_Y.
     83 
     84 2018-08-08  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
     85 
     86 	[pcf] Massive unsigning (part 1).
     87 
     88 	Unofficial specifications hesitate to use unsigned 32-bit integers.
     89 	Negative values caused a lot of trouble in the past and it is safer
     90 	and easier to treat some properties as unsigned.
     91 
     92 	* src/pcf/pcf.h (PCF_AccelRec): Use unsigned values for `fontAscent',
     93 	`fontDescent', and `maxOverlap'.
     94 	* src/pcf/pcfread.c (pcf_load_font, pcf_get_accel): Updated.
     95 	* src/pcf/pcfdrivr.c (PCF_Glyph_Load, PCF_Size_Select,
     96 	PCF_Size_Request): Updated.
     97 
     98 2018-08-07  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
     99 
    100 	* src/pcf/pcfread.c (pcf_get_bitmaps): Unsign `offsets' and
    101 	`bitmapSizes'.
    102 
    103 2018-08-06  Werner Lemberg  <wl (a] gnu.org>
    104 
    105 	* devel/ftoption.h: Synchronize with main `ftoption.h'.
    106 
    107 2018-08-06  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    108 
    109 	[pcf] Use unsigned types.
    110 
    111 	* src/pcf/pcf.h (PCF_Encoding): Use unsigned `enc'.
    112 	* src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Ditto.
    113 	* src/pcf/pcfread.c (pcf_get_encodings): Use unsigned types.
    114 
    115 2018-08-05  Werner Lemberg  <wl (a] gnu.org>
    116 
    117 	* src/truetype/ttgload.c (compute_glyph_metrics): Fix overflow.
    118 
    119 	Reported as
    120 
    121 	  https://bugs.chromium.org/p/chromium/issues/detail?id=777151
    122 
    123 2018-08-04  Werner Lemberg  <wl (a] gnu.org>
    124 
    125 	* src/truetype/ttinterp.c (opcode_name): Fix typos.
    126 
    127 2018-08-04  Werner Lemberg  <wl (a] gnu.org>
    128 
    129 	Fix clang warnings.
    130 
    131 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Fix type of
    132 	`orientation'.
    133 
    134 	* src/gxvalid/gxvcommn.c (gx_lookup_value_read): Fix signature.
    135 
    136 	* src/pcf/pcfread.c (pcf_get_encodings): Fix type of some variables.
    137 	Add cast.
    138 
    139 	* src/type1/t1load.c (parse_weight_vector): Fix cast.
    140 
    141 2018-07-31  Werner Lemberg  <wl (a] gnu.org>
    142 
    143 	* src/cid/cidtoken.h: Handle `XUID' keyword.
    144 
    145 2018-07-31  Werner Lemberg  <wl (a] gnu.org>
    146 
    147 	[cid] Trace PostScript dictionaries.
    148 
    149 	* src/cid/cidload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H
    150 	(cid_load_keyword, cid_parse_font_matrix, parse_fd_array,
    151 	parse_expansion_factor, cid_parse_dict): Add tracing calls.
    152 	(parse_font_name): New function to trace `/FontName' keywords in
    153 	/FDArray dict.
    154 	(cid_field_records): Register `parse_font_name'.
    155 
    156 2018-07-30  Werner Lemberg  <wl (a] gnu.org>
    157 
    158 	[cff] Fix typo.
    159 
    160 	Reported as
    161 
    162 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9409
    163 
    164 	* src/cff/cffdrivr.c (cff_get_cid_from_glyph_index): Fix boundary
    165 	check.
    166 
    167 2018-07-29  Werner Lemberg  <wl (a] gnu.org>
    168 
    169 	* src/pcf/pcfread.c (pcf_get_encodings): Another thinko.
    170 
    171 	Reported as
    172 
    173 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9608
    174 
    175 2018-07-28  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    176 
    177 	[smooth] Fix Harmony memory management.
    178 
    179 	Reported as
    180 
    181 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9501
    182 
    183 	* src/smooth/ftgrays.c (ft_smooth_render_generic): Restore buffer
    184 	after each rendering in case of failure. 
    185 
    186 2018-07-28  Werner Lemberg  <wl (a] gnu.org>
    187 
    188 	[type1] Avoid segfaults with `FT_Get_PS_Font_Value'.
    189 
    190 	Reported as
    191 
    192 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9610
    193 
    194 	* src/type1/t1driver.c (t1_ps_get_font_value): Protect against NULL.
    195 
    196 2018-07-27  Werner Lemberg  <wl (a] gnu.org>
    197 
    198 	[truetype] Make `TT_Set_MM_Blend' idempotent (#54388).
    199 
    200 	* src/truetype/ttgxvar.c (tt_set_mm_blend): Correctly set
    201 	`face->doblend' if the current call to the function yields the same
    202 	blend coordinates as the previous call.
    203 
    204 2018-07-27  Werner Lemberg  <wl (a] gnu.org>
    205 
    206 	[psaux, type1]: More tracing improvements.
    207 
    208 	* src/psaux/psintrp.c (cf2_interpT2CharString): Trace skipped
    209 	outline commands.
    210 
    211 	* src/psaux/t1decode.c (t1_decoder_parse_charstring): Fix
    212 	missing case.
    213 	(t1_decoder_parse_metrics): Make tracing output more compact.
    214 
    215 	* src/type1/t1gload.c (T1_Compute_Max_Advance): Be less verbose.
    216 	(T1_Get_Advances): Add tracing.
    217 
    218 2018-07-25  Werner Lemberg  <wl (a] gnu.org>
    219 
    220 	[psaux, type1] Trace PostScript dictionaries and other things.
    221 
    222 	The tracing of /Encoding, /Subrs, and /Charstrings is rudimentary
    223 	right now.
    224 
    225 	* src/psaux/psobjs.c (ps_parser_load_field,
    226 	ps_parser_load_field_table): Add tracing calls.
    227 
    228 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Make tracing
    229 	output more compact.
    230 
    231 	* src/type1/t1gload.c (T1_Compute_Max_Advance, T1_Get_Advances): Add
    232 	tracing messages.
    233 
    234 	* src/type1/t1load.c (parse_blend_axis_types,
    235 	parse_blend_design_positions, parse_blend_design_map,
    236 	parse_weight_vector, t1_load_keyword, t1_parse_font_matrix,
    237 	parse_encoding, parse_subrs, parse_charstrings, T1_Open_Face): Add
    238 	tracing calls.
    239 
    240 	* src/type1/t1objs.c (T1_Face_Init): Add tracing call.
    241 
    242 	* src/sfnt/sfobjs.c (sfnt_init_face): Make tracing message more
    243 	verbose.
    244 
    245 2018-07-25  Werner Lemberg  <wl (a] gnu.org>
    246 
    247 	Fix minor ASAN run-time warnings.
    248 
    249 	* src/base/ftutil.c (ft_mem_alloc, ft_mem_realloc): Only call
    250 	`FT_MEM_ZERO' if we actually have a buffer.
    251 	(ft_mem_dup): Only call `ft_memcpy' if we actually have a buffer.
    252 
    253 2018-07-24  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    254 
    255 	[build] Fortify dllexport/dllimport attributes (#53969,#54330).
    256 
    257 	We no longer use predefined _DLL, which can be defined for static
    258 	builds too with /MD. We use DLL_EXPORT and DLL_IMPORT instead,
    259 	following libtool convention.
    260 
    261 	* CMakeLists.txt [WIN32], builds/windows/vc2010/freetype.vcxproj:
    262 	Define DLL_EXPORT manually.
    263 
    264 	* include/freetype/config/ftconfig.h, builds/unix/ftconfig.in,
    265 	builds/vms/ftconfig.h, builds/windows/vc2010/index.html,
    266 	src/base/ftver.rc: /_DLL/d, s/FT2_DLLIMPORT/DLL_IMPORT/.
    267 
    268 2018-07-24  Werner Lemberg  <wl (a] gnu.org>
    269 
    270 	[type1] Check relationship between number of axes and designs.
    271 
    272 	For Multiple Masters fonts We don't support intermediate designs;
    273 	this implies that
    274 
    275 	  number_of_designs == 2 ^^ number_of_axes
    276 
    277 	Reported as
    278 
    279 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9557
    280 
    281 	* src/type1/t1load.c (T1_Open_Face): Ensure above constraint.
    282 	(T1_Get_MM_Var): Remove now redundant test.
    283 
    284 2018-07-24  Hin-Tak Leung  <htl10 (a] users.sourceforge.net>
    285 
    286 	[truetype] Match ttdebug's naming of instruction mnemonics.
    287 
    288 	* src/truetype/ttinterp.c: The form used in ttdebug,
    289 	"MDRP[G,B,W,?]", etc., is slightly more readable than
    290 	"MDRP[00,01,02,03]".
    291 
    292 2018-07-24  Werner Lemberg  <wl (a] gnu.org>
    293 
    294 	* src/pcf/pcfread.c (pcf_get_encodings): Thinko.
    295 
    296 	Reported as
    297 
    298 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9561
    299 
    300 2018-07-22  Werner Lemberg  <wl (a] gnu.org>
    301 
    302 	* src/pcf/pcfread.c (pcf_get_encodings): Check index of defaultChar.
    303 
    304 	Reported as
    305 
    306 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9527
    307 
    308 2018-07-22  Werner Lemberg  <wl (a] gnu.org>
    309 
    310 	* src/pcf/pcfread.c (pcf_load_font): Fix number of glyphs.
    311 
    312 	This is an oversight of the module change 2018-07-21.
    313 
    314 	Reported as
    315 
    316 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9524
    317 
    318 2018-07-22  Werner Lemberg  <wl (a] gnu.org>
    319 
    320 	[cid] Sanitize `BlueShift' and `BlueFuzz'.
    321 
    322 	This code is taken from the type1 module.
    323 
    324 	Reported as
    325 
    326 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9510
    327 
    328 	* src/cid/cidload.c (parse_fd_array): Set some private dict default
    329 	values.
    330 	(cid_face_open): Do the sanitizing.
    331 	Fix some tracing messages.
    332 
    333 2018-07-21  Werner Lemberg  <wl (a] gnu.org>
    334 
    335 	[pcf] Fix handling of the undefined glyph.
    336 
    337 	This change makes the driver use the `defaultChar' property of PCF
    338 	files.
    339 
    340 	* src/pcf/pcf.h (PCF_FaceRec): Change type of `defaultChar' to
    341 	unsigned.
    342 
    343 	* src/pcf/pcfread.c (pcf_get_encodings): Read `defaultChar' as
    344 	unsigned.
    345 	Validate `defaultChar'.
    346 	If `defaultChar' doesn't point to glyph index zero, swap glyphs with
    347 	index zero and index `defaultChar' and adjust the encodings
    348 	accordingly.
    349 
    350 	* src/pcf/pcfdrivr.c (pcf_cmap_char_index, pcf_cmap_char_next,
    351 	PCF_Glyph_Load): Undo change from 2002-06-16 which always enforced
    352 	the first character in the font to be the default character.
    353 
    354 2018-07-20  Armin Hasitzka  <prince.cherusker (a] gmail.com>
    355 
    356 	Move the legacy fuzz target to the `freetype-testing' repository.
    357 
    358 	It can now be found at
    359 
    360 	  https://github.com/freetype/freetype2-testing/tree/master/fuzzing/src/legacy
    361 
    362 	* src/tools/ftfuzzer: Remove this folder and its contents from the
    363 	repository.
    364 
    365 2018-07-20  Werner Lemberg  <wl (a] gnu.org>
    366 
    367 	[cff] Avoid left-shift of negative numbers (#54322).
    368 
    369 	* src/cff/cffgload.c (cff_slot_load): Use multiplication.
    370 
    371 2018-07-17  Werner Lemberg  <wl (a] gnu.org>
    372 
    373 	Allow FT_ENCODING_NONE for `FT_Select_Charmap'.
    374 
    375 	This is a valid encoding tag for BDF, PCF, and Windows FNT, and
    376 	there is no reason to disallow it for these formats.
    377 
    378 	* src/base/ftobjs.c (FT_Select_Charmap): Implement it.
    379 
    380 2018-07-17  Werner Lemberg  <wl (a] gnu.org>
    381 
    382 	* src/pcf/pcfread.c (pcf_get_encodings): Trace `defaultChar'.
    383 
    384 2018-07-16  Armin Hasitzka  <prince.cherusker (a] gmail.com>
    385 
    386 	* include/freetype/internal/ftcalc.h: Add macros for handling
    387 	harmless over-/underflowing `FT_Int' values.
    388 
    389 	* src/sfnt/sfdriver.c (fixed2float): Fix negation of
    390 	`(int)(-2147483648)'.
    391 
    392 	Reported as
    393 
    394 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9423
    395 
    396 2018-07-16  Werner Lemberg  <wl (a] gnu.org>
    397 
    398 	* src/truetype/ttgxvar.c (tt_set_mm_blend): Fix off-by-one error.
    399 
    400 	Reported as
    401 
    402 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9412
    403 
    404 2018-07-12  Werner Lemberg  <wl (a] gnu.org>
    405 
    406 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Init `cbox'.
    407 
    408 	Taken from patch #9667, written by Steve Langasek
    409 	<vorlon (a] debian.org>.
    410 
    411 	This fixes a build failure (most probably a bug in gcc) on ppc64el
    412 	when building with -O3.
    413 
    414 2018-07-05  Werner Lemberg  <wl (a] gnu.org>
    415 
    416 	Fix typo (#54238).
    417 
    418 	* src/base/ftcolor.c (FT_Palette_Set_Foreground_Color)
    419 	[!TT_CONFIG_OPTION_COLOR_LAYERS]: Add return value.
    420 
    421 2018-07-05  Werner Lemberg  <wl (a] gnu.org>
    422 
    423 	Adjust table size comparisons (#54242).
    424 
    425 	* src/sfnt/ttcpal.c (tt_face_load_cpal): Implement it.
    426 
    427 2018-07-05  Werner Lemberg  <wl (a] gnu.org>
    428 
    429 	Fix more 32bit issues (#54208).
    430 
    431 	* src/cff/cffload.c (cff_blend_build_vector): Convert assertion into
    432 	run-time error.
    433 
    434 	* src/truetype/ttgxvar.c (ft_var_to_normalized): Protect against
    435 	numeric overflow.
    436 
    437 2018-07-04  Werner Lemberg  <wl (a] gnu.org>
    438 
    439 	Fix 32bit build warnings (#54239).
    440 
    441 	* src/base/ftbitmap.c (FT_Bitmap_Blend): Add casts to avoid signed
    442 	vs. unsigned comparisons.
    443 
    444 	* srb/sfnt/ttcolr.c (tt_face_get_colr_layer): Ditto.
    445 
    446 2018-07-02  Jeff Carey  <Jeff.Carey (a] monotype.com>
    447 
    448 	* src/psnames/psmodule.c (ps_unicodes_init): Fix alloc debugging.
    449 
    450 2018-07-02  Werner Lemberg  <wl (a] gnu.org>
    451 
    452 	s/palette_types/palette_flags/.
    453 
    454 	Suggested by Behdad.
    455 
    456 2018-07-02  Werner Lemberg  <wl (a] gnu.org>
    457 
    458 	Make `FT_Get_Color_Glyph_Layer' return FT_Bool.
    459 
    460 	* include/freetype/freetype.h, src/base/ftobjs.c
    461 	(FT_Get_Color_Glyph_Layer, FT_Render_Glyph_Internal): Updated.
    462 
    463 	* include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func),
    464 	src/sfnt/ttcolr.h, src/sfnt/ttcolr.c (tt_face_get_colr_layer):
    465 	Updated.
    466 
    467 2018-07-01  Werner Lemberg  <wl (a] gnu.org>
    468 
    469 	* src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Guard SFNT function.
    470 
    471 	Reported by Behdad.
    472 
    473 2018-06-28  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    474 
    475 	* src/base/fttrigon.c (FT_Tan): Improve accuracy.
    476 	(FT_Vector_Rotate): Simplify.
    477 
    478 2018-06-28  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    479 
    480 	* src/base/ftobjs.c (FT_Set_Charmap): Robustify.
    481 
    482 2018-06-25  Werner Lemberg  <wl (a] gnu.org>
    483 
    484 	[truetype] Fix memory leak.
    485 
    486 	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Add initializers.
    487 	Fix typo in `goto' destination.
    488 
    489 	Reported as
    490 
    491 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9071
    492 
    493 2018-06-25  Werner Lemberg  <wl (a] gnu.org>
    494 
    495 	* src/truetype/ttgxvar.c (tt_face_vary_cvt): Add initializers.
    496 
    497 	Reported as
    498 
    499 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9070
    500 
    501 2018-06-24  Werner Lemberg  <wl (a] gnu.org>
    502 
    503 	[truetype] Increase precision while applying VF deltas.
    504 
    505 	It turned out that we incorrectly round CVT and glyph point deltas
    506 	before accumulation, leading to severe positioning errors if there
    507 	are many delta values to sum up.
    508 
    509 	Problem reported by Akiem Helmling <akiem (a] underware.nl> and analyzed
    510 	by Behdad.
    511 
    512 	* src/truetype/ttgxvar.c (ft_var_readpackeddelta): Return deltas in
    513 	16.16 format.
    514 	(tt_face_var_cvt): Collect deltas in `cvt_deltas', which is a 16.16
    515 	format array, and add the accumulated values to the CVT at the end
    516 	of the function.
    517 	(TT_Vary_Apply_Glyph_Deltas): Store data in `points_org' and
    518 	`points_out' in 16.16 format.
    519 	Collect deltas in `point_deltas_x' and `point_deltas_y', which are
    520 	16.16 format arrays, and add the accumulated values to the glyph
    521 	coordinates at the end of the function.
    522 
    523 2018-06-24  Werner Lemberg  <wl (a] gnu.org>
    524 
    525 	New base function `FT_Matrix_Check' (#54019).
    526 
    527 	* src/base/ftcalc.c (FT_Matrix_Check): New base function to properly
    528 	reject degenerate font matrices.
    529 
    530 	* include/freetype/internal/ftcalc.h: Updated.
    531 
    532 	* src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c
    533 	(cid_parse_font_matrix), src/type1/t1load.c (t1_parse_font_matrix),
    534 	src/type42/t42parse.c (t42_parse_font_matrix): Use
    535 	`FT_Matrix_Check'.
    536 
    537 2018-06-23  Werner Lemberg  <wl (a] gnu.org>
    538 
    539 	Fix typo.
    540 
    541 	Reported by Behdad.
    542 
    543 	* src/base/ftcolor.c (FT_Palette_Data_Get)
    544 	[!TT_CONFIG_OPTION_COLOR_LAYERS]: s/apalette/apalette_data/.
    545 
    546 2018-06-21  Werner Lemberg  <wl (a] gnu.org>
    547 
    548 	s/FT_PALETTE_USABLE_WITH_/FT_PALETTE_FOR_/.
    549 
    550 	* include/freetype/ftcolor.h, include/freetype/internal/sfnt.h,
    551 	src/sfnt/ttcolr.c: Do it.
    552 
    553 2018-06-19  Werner Lemberg  <wl (a] gnu.org>
    554 
    555 	[sfnt] Fix CPAL heap buffer overflow.
    556 
    557 	Reported as
    558 
    559 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8968
    560 
    561 	* src/sfnt/ttcpal.c (tt_face_load_cpal): Guard CPAL version 1
    562 	offsets.
    563 
    564 2018-06-19  Werner Lemberg  <wl (a] gnu.org>
    565 
    566 	Doh.  Don't use CPAL or COLR data if tables are missing.
    567 
    568 	Reported by Alexei.
    569 
    570 	* src/sfnt/ttcolr.c (tt_face_get_colr_layer): Return immediately if
    571 	`colr' is NULL.
    572 
    573 	* src/sfnt/ttcpal.c (tt_face_palette_set): Return immediately, if
    574 	`cpal' is NULL.
    575 
    576 2018-06-17  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    577 
    578 	[base] Introduce `FT_New_Glyph'.
    579 
    580 	This function facilitates access to full capabilities of FreeType
    581 	rendering engine for custom glyphs. This can be quite useful for
    582 	consistent rendering of mathematical and chemical formulas, e.g.
    583 
    584 	  https://bugs.chromium.org/p/chromium/issues/detail?id=757078
    585 
    586 	* include/freetype/ftglyph.h, src/base/ftglyph.c (FT_New_Glyph): New
    587 	function.
    588 
    589 2018-06-17  Armin Hasitzka  <prince.cherusker (a] gmail.com>
    590 
    591 	[bdf] Fix underflow of an unsigned value.
    592 
    593 	bdflib.c:1562 could be reached with `font->glyphs_used == 0'.  That
    594 	caused an underflow of the unsigned value which results in undefined
    595 	behaviour.
    596 
    597 	* src/bdf/bdflib.c (_bdf_parse_glyphs): Bail out earlier than before
    598 	if the `ENCODING' keyword cannot be found.
    599 
    600 2018-06-17  Werner Lemberg  <wl (a] gnu.org>
    601 
    602 	[base] Add tracing for `FT_Bitmap_Blend'.
    603 
    604 	* include/freetype/internal/fttrace.h (trace_bitmap): New
    605 	enumeration.
    606 
    607 	* src/base/ftbitmap.c (FT_COMPONENT): Define.
    608 	(FT_Bitmap_Blend): Add `FT_TRACE5' calls.
    609 
    610 2018-06-17  Werner Lemberg  <wl (a] gnu.org>
    611 
    612 	s/trace_bitmap/trace_checksum/.
    613 
    614 	* include/freetype/internal/fttrace.h: s/bitmap/checksum/.
    615 
    616 	* src/base/ftobjs.c (FT_COMPONENT): s/trace_bitmap/trace_checksum/.
    617 	Adjust code.
    618 
    619 2018-06-16  Werner Lemberg  <wl (a] gnu.org>
    620 
    621 	[sfnt] Fix color glyph layer loading.
    622 
    623 	* src/sfnt/ttcolr.c (Colr): Add `table_size' field.
    624 	(tt_face_load_colr): Set it.
    625 	(tt_face_get_colr_layer): Check pointer limit for layer entries.
    626 
    627 2018-06-16  Werner Lemberg  <wl (a] gnu.org>
    628 
    629 	[sfnt] Fix color palette loading.
    630 
    631 	Reported as
    632 
    633 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8933
    634 
    635 	* src/sfnt/ttcpal.c (Cpal): Add `table_size' field.
    636 	(tt_face_load_cpal): Set it.
    637 	(tt_face_palette_set): Check pointer limit for color entries.
    638 
    639 2018-06-16  Werner Lemberg  <wl (a] gnu.org>
    640 
    641 	* src/base/ftbitmap.c (FT_Bitmap_Blend): Avoid integer overflow.
    642 
    643 2018-06-16  Werner Lemberg  <wl (a] gnu.org>
    644 
    645 	Add `FT_Bitmap_Blend' API.
    646 
    647 	Still missing: Support for negative bitmap pitch and subpixel offset
    648 	of source bitmap.
    649 
    650 	* include/freetype/ftbitmap.h, src/base/ftbitmap.c
    651 	(FT_Bitmap_Blend): New function.
    652 
    653 2018-06-14  Werner Lemberg  <wl (a] gnu.org>
    654 
    655 	Replace `FT_Get_GlyphLayers' with `FT_Get_Color_Glyph_Layer'.
    656 
    657 	This avoids any additional allocation of COLR related structures in
    658 	a glyph slot.
    659 
    660 	* include/freetype/freetype.h (FT_Glyph_Layer, FT_Glyph_LayerRec,
    661 	FT_Get_GlyphLayers): Removed.
    662 
    663 	* include/freetype/internal/ftobjs.h (FT_Colr_InternalRec): Removed.
    664 	(FT_Slot_InternalRec): Remove `color_layers'.
    665 
    666 	* include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func):
    667 	Removed.
    668 	(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Remove
    669 	`load_colr_layer'.
    670 
    671 	* src/base/ftobjs.c (ft_glyph_slot_done): Updated.
    672 	(FT_Render_Glyph_Internal): Use `FT_Get_Color_Glyph_Layer'.
    673 	(FT_Get_GlyphLayers): Removed.
    674 
    675 	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
    676 
    677 	* src/sfnt/ttcolr.c (tt_face_load_colr_layers): Removed.
    678 	* src/sfnt/ttcolr.h: Updated.
    679 
    680 	* src/truetype/ttgload.c (TT_Load_Glyph): Updated.
    681 
    682 2018-06-14  Werner Lemberg  <wl (a] gnu.org>
    683 
    684 	Provide iterative API to access `COLR' data.
    685 
    686 	This solution doesn't store any data in an `FT_GlyphSlot' object.
    687 
    688 	* include/freetype/freetype.h (FT_LayerIterator): New structure.
    689 	(FT_Get_Color_Glyph_Layer): New function.
    690 
    691 	* include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func): New
    692 	function type.
    693 	(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it.
    694 
    695 	* src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Implement it.
    696 
    697 	* src/sfnt/ttcolr.c (tt_face_get_colr_layer): New function.
    698 	* src/sfnt/ttcolr.h: Updated.
    699 
    700 	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
    701 
    702 2018-06-14  Werner Lemberg  <wl (a] gnu.org>
    703 
    704 	Add glyph index and glyph load flags to glyph slot.
    705 
    706 	* include/freetype/freetype.h (FT_GlyphSlotRec): Rename unused
    707 	`reserved' field to `glyph_index'.
    708 
    709 	* include/freetype/internal/ftobjs.h (FT_Slot_InternalRec): Add
    710 	`load_flags' field.
    711 
    712 	* src/base/ftobjs.c (FT_Load_Glyph): Set new fields.
    713 
    714 2018-06-14  Werner Lemberg  <wl (a] gnu.org>
    715 
    716 	[sfnt] Move `CPAL' stuff into separate files.
    717 
    718 	* src/sfnt/sfdriver.c: Include `ttcpal.h'.
    719 	* src/sfnt/sfnt.c: Include `ttcpal.c'.
    720 
    721 	* src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: Move CPAL stuff to ...
    722 	* src/sfnt/ttcpal.c, src/sfnt/ttcpal.c: ... these new files.
    723 
    724 	* src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC):
    725 	Updated.
    726 
    727 	* include/freetype/internal/fttrace.h: Add support for `colr' and
    728 	`cpal'.
    729 	Sort entries.
    730 
    731 2018-06-13  Werner Lemberg  <wl (a] gnu.org>
    732 
    733 	[sfnt] Separate `CPAL' and `COLR' table handling.
    734 
    735 	Later on we want to support the `SVG' table also, which needs `CPAL'
    736 	(but not `COLR').
    737 
    738 	* include/freetype/internal/sfnt.h (SFNT_Interface): Add `load_cpal'
    739 	and `free_cpal' fields.
    740 	(FT_DEFINE_SFNT_INTERFACE): Updated.
    741 
    742 	* include/freetype/internal/tttypes.h (TT_FaceRec): Replace
    743 	`colr_and_cpal' fields with `cpal' and `colr'.
    744 
    745 	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
    746 
    747 	* src/sfnt/sfobjs.c (sfnt_load_face, sfnt_done_face): Updated.
    748 
    749 	* src/sfnt/ttcolr.c (Colr, Cpal): Add `table' field.
    750 	(ColrCpal): Removed.
    751 	(tt_face_load_colr): Split off CPAL handling into...
    752 	(tt_face_load_cpal): ... this new function.
    753 	(tt_face_free_colr): Split off CPAL handling into...
    754 	(tt_face_free_cpal): ... this new function.
    755 	(tt_face_load_colr_layers, tt_face_palette_set): Updated.
    756 
    757 	* src/sfnt/ttcolr.h: Updated.
    758 
    759 	* src/truetype/ttgload.c (TT_Load_Glyph): Updated.
    760 
    761 2018-06-12  Werner Lemberg  <wl (a] gnu.org>
    762 
    763 	[sfnt] Fix `sizeof' thinko.
    764 
    765 	* src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_palette_set): Don't
    766 	use `sizeof' for computing array limit.
    767 
    768 2018-06-12  Werner Lemberg  <wl (a] gnu.org>
    769 
    770 	Finish CPAL/COLR support (4/4).
    771 
    772 	* src/sfnt/ttcolr.c (tt_face_find_color): Removed.
    773 	(tt_face_colr_blend_layer): Use `face->palette' instead of calling
    774 	`tt_face_find_color'.
    775 	Use and set text foreground color.
    776 
    777 2018-06-12  Werner Lemberg  <wl (a] gnu.org>
    778 
    779 	Finish CPAL/COLR support (3/4).
    780 
    781 	* src/base/ftcolor.c: Include FT_INTERNAL_SFNT_H.
    782 	(FT_Palette_Select, FT_Palette_Set_Foreground_Color): Implement
    783 	functions.
    784 
    785 2018-06-12  Werner Lemberg  <wl (a] gnu.org>
    786 
    787 	Finish CPAL/COLR support (2/4).
    788 
    789 	* src/sfnt/ttcolr.c (tt_face_palette_set): New function.
    790 	(tt_face_load_colr): Allocate `face->palette' and call
    791 	`tt_face_palette_set'.
    792 	Adjust return error code in case of error.
    793 
    794 	* src/sfnt/ttcolr.h: Updated.
    795 
    796 	* include/freetype/internal/sfnt.h (TT_Set_Palette_Func): New
    797 	function type.
    798 	(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it.
    799 
    800 	* src/sfnt/sfdriver.c (sfnt_interface), src/sfnt/sfobjs.c
    801 	(sfnt_done_face): Updated.
    802 
    803 2018-06-12  Werner Lemberg  <wl (a] gnu.org>
    804 
    805 	Finish CPAL/COLR support (1/4).
    806 
    807 	* include/freetype/internal/tttypes.h (TT_FaceRec): New fields
    808 	`palette_index', `palette', `have_foreground_color' and
    809 	`foreground_color'.
    810 
    811 2018-06-12  Werner Lemberg  <wl (a] gnu.org>
    812 
    813 	[sfnt] Minor.
    814 
    815 	* src/sfnt/ttcolr.c (tt_face_load_colr_layers):
    816 	s/palette_index/palette_entry_index/ for consistency.
    817 	Adjust return error code in case of error.
    818 
    819 2018-06-11  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    820 
    821 	[raster] Clean up.
    822 
    823 	* src/raster/ftraster.c (black_TWorker, SCALED, Set_High_Precision):
    824 	Clean up after 5-level gray removal (8dc8635874).
    825 	(Vertical_Sweep_Span): Be brief.
    826 
    827 2018-06-10  Werner Lemberg  <wl (a] gnu.org>
    828 
    829 	[sfnt] Fix compiler warnings.
    830 
    831 	* src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_load_colr_layers,
    832 	tt_face_colr_blend_layer): Add `NULL' initializers.
    833 
    834 2018-06-10  Werner Lemberg  <wl (a] gnu.org>
    835 
    836 	s/FT_Palette/FT_Palette_Data/, s/palette/palette_data/.
    837 
    838 	* include/freetype/ftcolor.h, include/freetype/internal/tttypes.h,
    839 	src/base/ftcolor.c, src/sfnt/sfobjs.c, src/sfnt/ttcolr.c: Updated.
    840 
    841 2018-06-10  Nikolaus Waxweiler  <madigens (a] gmail.com>
    842 
    843 	CMakeLists: also accept IOS_PLATFORM=SIMULATOR64
    844 
    845 	This might be needed to build FreeType for the iOS simulator. See
    846 	https://savannah.nongnu.org/bugs/index.php?54048. Patch contributed
    847 	by Steve Robinson.
    848 
    849 	* CMakeLists.txt: Accept IOS_PLATFORM=SIMULATOR64
    850 
    851 2018-06-10  Werner Lemberg  <wl (a] gnu.org>
    852 
    853 	Implement `FT_Palette_Get'.
    854 
    855 	* src/base/ftcolor.c: New file.
    856 
    857 	* src/base/Jamefile (_sources), src/base/rules.mk (BASE_SRC),
    858 	src/base/ftbase.c: Add `ftcolor.c'.
    859 
    860 2018-06-10  Werner Lemberg  <wl (a] gnu.org>
    861 
    862 	* src/sfnt/ttcolr.c (tt_face_load_colr): Improve overflow checks.
    863 
    864 2018-06-09  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    865 
    866 	[raster] Deal with pitch sign earlier.
    867 
    868 	* src/raster/ftraster.c (black_TWorker): Remove unused `traceG',
    869 	s/bTarget/bOrigin/.
    870 	(Render_Glyph): Set `ras.bOrigin' at the bottom-left corner.
    871 	(Vertical_Sweep_Init, {Vertical,Horizontal}_Sweep_{Span,Drop}):
    872 	Updated accordingly.
    873 
    874 2018-06-09  Werner Lemberg  <wl (a] gnu.org>
    875 
    876 	[sfnt] Read `CPAL' version 1 tables.
    877 
    878 	* include/freetype/internal.tttypes.h: Include FT_COLOR_H.
    879 	(TT_FaceRec): Add `palette' field.
    880 
    881 	* src/sfnt/ttcolr.c: Include FT_COLOR_H.
    882 	(Cpal): Remove all data covered by the new `palette' field in
    883 	`TT_FaceRec'.
    884 	(tt_face_load_colr): Updated.
    885 	Read `CPAL' version 1 data.
    886 	(tt_face_load_colr_layers, tt_face_find_color): Updated.
    887 
    888 	* src/sfnt/sfobjs.c (sfnt_done_face): Free glyph color palette data.
    889 
    890 2018-06-07  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    891 
    892 	[base] API for Harmony LCD rendering.
    893 
    894 	This introduces `FT_Library_SetLcdGeometry' for setting up arbitrary
    895 	LCD subpixel geometry including non-striped patterns.
    896 
    897 	* src/base/ftlcdfil.c (FT_Library_SetLcdGeometry): New function.
    898 	* include/freetype/ftlcdfil.h: Document it.
    899 	* include/freetype/freetype.h: Minor.
    900 	* include/freetype/ftchapters.h: Minor.
    901 
    902 2018-06-06  Werner Lemberg  <wl (a] gnu.org>
    903 
    904 	ftcolor.h: Redesign API.
    905 
    906 	While going to implement it I noticed that I need access to most of
    907 	the `CPAL' elements; I thus plan to add a `cpal' field to
    908 	`TT_FaceRec', which makes most of the previously suggested API
    909 	functions obsolete because the fields will be directly accessible.
    910 
    911 2018-06-06  Parth Wazurkar  <parthwazurkar (a] gmail.com>
    912 
    913 	[bdf, pcf] Remove deprecated FT_FACE_FLAG_FAST_GLYPHS flag.
    914 
    915 	* src/bdf/bdfdrivr.c (BDF_Face_Init): Remove deprecated
    916 	FT_FACE_FLAG_FAST_GLYPHS flag.
    917 
    918 	* src/pcf/pcfread.c (pcf_load_font): Remove deprecated
    919 	FT_FACE_FLAG_FAST_GLYPHS flag.
    920 
    921 2018-06-06  Werner Lemberg  <wl (a] gnu.org>
    922 
    923 	[smooth, raster] Limit bitmap size (#54019).
    924 
    925 	* src/raster/ftraster.c [STANDALONE] (FT_Outline_Get_CBox): Add
    926 	function.
    927 	[!STANDALONE]: Include FT_OUTLINE_H.
    928 	(ft_black_render): Compute CBox and reject glyphs larger than
    929 	0xFFFF x 0xFFFF.
    930 
    931 	* src/smooth/ftgrays.c (gray_raster_render): Reject glyphs larger
    932 	than 0xFFFF x 0xFFFF.
    933 
    934 2018-06-03  Armin Hasitzka  <prince.cherusker (a] gmail.com>
    935 
    936 	* src/smooth/ftgrays.c (gray_convert_glyph): Remove unused variables.
    937 
    938 2018-06-03  Werner Lemberg  <wl (a] gnu.org>
    939 
    940 	* src/tools/glnames.py (main): Emit header in `light' comment style.
    941 
    942 2018-06-02  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    943 
    944 	[smooth] Attempt to mitigate bug #54019.
    945 
    946 	The robust rendering of estra large glyphs came with unbearable cost.
    947 	The old way of bisecting should fail but fail faster.
    948 
    949 	* src/smooth/ftgrays.c (gray_convert_glyph): Switch back to bisecting
    950 	in y-direction.
    951 
    952 2018-06-02  Werner Lemberg  <wl (a] gnu.org>
    953 
    954 	* src/truetype/ttinterp.c (Ins_MIRP): Use SUB_LONG; avoid FT_ABS.
    955 
    956 	Reported as
    957 
    958 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8706
    959 
    960 2018-06-02  Werner Lemberg  <wl (a] gnu.org>
    961 
    962 	* src/autofit/afwarp.h: Use AF_CONFIG_OPTION_USE_WARPER (#54033).
    963 
    964 2018-05-31  Werner Lemberg  <wl (a] gnu.org>
    965 
    966 	* src/raster/ftraster.c (black_TWorker_): Remove `gTarget' field.
    967 
    968 	This is no longer used.
    969 
    970 2018-05-31  Werner Lemberg  <wl (a] gnu.org>
    971 
    972 	[sfnt] Get colors from `CPAL' table in right order (#54015).
    973 
    974 	* src/sfnt/ttcolr.c (tt_face_find_color): Fix it.
    975 
    976 2018-05-30  Werner Lemberg  <wl (a] gnu.org>
    977 
    978 	ftcolor.h: Improve API design, fix typos (#54011, #54014).
    979 
    980 	* include/freetype/ftcolor.h (FT_Palette_Get_Names): Replace with...
    981 	(FT_Palette_Get_Name_IDs): ... this function.
    982 	(FT_Palette_Get_Entry_Names): Replace with...
    983 	(FT_Palette_Get_Entry_Name_IDs): ... this function
    984 	s/FT_Palette_Set_Foreground_COlor/FT_Palette_Set_Foreground_Color/.
    985 
    986 2018-05-30  Armin Hasitzka  <prince.cherusker (a] gmail.com>
    987 
    988 	Beautify a3cfed5e87232c933bdc64f43e8ebebcfd18b41b.
    989 
    990 	* src/autofit/afloader.c (af_loader_load_glyph): Move the
    991 	initialisationand declaration of variables into the if-block.
    992 
    993 2018-05-30  Armin Hasitzka  <prince.cherusker (a] gmail.com>
    994 
    995 	Fix pointer underflow.
    996 
    997 	The declaration of `edge2' can be reached with `edge1 == NULL' and
    998 	`axis->edges == 0' which results in undefined behaviour.
    999 
   1000 	* src/autofit/afloader.c (af_loader_load_glyph): Initialise `edge2'
   1001 	after checking `axis->num_edges > 1'.  `edge1 != NULL' can be assumed.
   1002 
   1003 2018-05-30  Werner Lemberg  <wl (a] gnu.org>
   1004 
   1005 	Various minor color fixes.
   1006 
   1007 	* include/freetype/config/ftheader.h (FT_COLOR_H): New macro.
   1008 
   1009 	* include/freetype/internal/ftobjs.h (FT_Colr_Internal): Change
   1010 	type of `load_flags' to `FT_Int32'.
   1011 
   1012 	* include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func): Change
   1013 	type of `idx' to `FT_UInt'.
   1014 	(TT_Blend_Colr_Func): Change type of `color_index' to `FT_UInt'.
   1015 
   1016 	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Change type of
   1017 	`load_flags' to `FT_Int32'.
   1018 
   1019 	* src/sfnt/ttcolr.c (find_base_glyph_record,
   1020 	tt_face_load_colr_layers): Change type of `glyph_id' to `FT_UInt'.
   1021 	(tt_face_find_color, tt_face_colr_blend_layer): Change type of
   1022 	`color_index' to `FT_UInt'.
   1023 	Fix signedness and type issues.
   1024 
   1025 	* src/sfnt/ttcolr.h: Updated.
   1026 
   1027 2018-05-25  Nikhil Ramakrishnan  <ramakrishnan.nikhil (a] gmail.com>
   1028 
   1029 	[docmaker] Fix missing `Defined in (...)' under Windows/Cygwin.
   1030 
   1031 	This platform uses backslashes for paths, which docmaker didn't
   1032 	understand correctly.
   1033 
   1034 	* src/tools/docmaker/tohtml.py (HtmlFormatter::blockEnter): Use
   1035 	`os.path.normpath' to normalize the path for the platform being
   1036 	used.
   1037 
   1038 2018-05-24  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1039 
   1040 	[smooth] Formalize Harmony LCD rendering.
   1041 
   1042 	This generalizes magic outline shifts that make Harmony LCD
   1043 	rendering work in terms of precise two-dimensional RGB subpixel
   1044 	positions. These coordinates are now set in time of the `smooth'
   1045 	module initialization and later used to shift a glyph outline for
   1046 	rendering. FT_RENDER_MODE_LCD and FT_RENDER_MODE_LCD_V use the same
   1047 	coordinates. The letter, however, rotates them before using.
   1048 	The LCD bitmap padding is also calculated using these coordinates.
   1049 
   1050 	* include/freetype/internal/ftobjs.h (FT_LibraryRec): New array field
   1051 	`lcd_geometry'.
   1052 	* src/base/ftlcdfil.c (ft_lcd_padding): Reworked.
   1053 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Updated accordingly.
   1054 
   1055 	* src/smooth/ftsmooth.c [!FT_CONFIG_OPTION_SUBPIXEL_RENDERING]
   1056 	(ft_smooth_init): Initialize `lcd_geometry'.
   1057 	(ft_smooth_render_generic): Formalize outline shifts.
   1058 
   1059 2018-05-22  Werner Lemberg  <wl (a] gnu.org>
   1060 
   1061 	[truetype] Reject elements of composites with invalid glyph indices.
   1062 
   1063 	Reported as
   1064 
   1065 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8413
   1066 
   1067 	* src/truetype/ttgload.c (TT_Load_Composite_Glyph): Implement it.
   1068 
   1069 2018-05-22  Werner Lemberg  <wl (a] gnu.org>
   1070 
   1071 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Trace # of points.
   1072 
   1073 2018-05-20  Werner Lemberg  <wl (a] gnu.org>
   1074 
   1075 	* include/freetype/ftcolor.h: New file.
   1076 
   1077 	This is an interface to the `CPAL' OpenType table.  No
   1078 	implementation yet.
   1079 
   1080 2018-05-18  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1081 
   1082 	* include/freetype/internal/ftcalc.h (FT_MSB): Verified `_MSC_VER'.
   1083 
   1084 	Actually `_BitScanReverse' is available since VS2005.
   1085 
   1086 2018-05-18  Werner Lemberg  <wl (a] gnu.org>
   1087 
   1088 	* include/freetype/internal/ftcalc.h (FT_MSB): Use `_MSC_VER' value.
   1089 
   1090 	Older VC versions don't provide `_BitScanReverse'.  We test for VC
   1091 	2013.
   1092 
   1093 	Reported by John Emmas <john (a] creativepost.co.uk>.
   1094 
   1095 2018-05-17  Werner Lemberg  <wl (a] gnu.org>
   1096 
   1097 	s/inline/__inline/ for MSVC.
   1098 
   1099 	Reported by John Emmas <john (a] creativepost.co.uk>.
   1100 
   1101 	* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Do it.
   1102 
   1103 2018-05-16  Werner Lemberg  <wl (a] gnu.org>
   1104 
   1105 	Add function `FT_Get_GlyphLayers' to access `COLR' table data.
   1106 
   1107 	* include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec): Move this
   1108 	structure to...
   1109 	* include/freetype/freetype.h (FT_Glyph_LayerRec): ... this
   1110 	header file.
   1111 	(FT_Glyph_Layer): New typedef.
   1112 	Update code to use it where appropriate.
   1113 
   1114 	* src/base/ftobjs.c (FT_Get_GlyphLayers): New function.
   1115 
   1116 2018-05-15  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1117 
   1118 	[base] Fix mono bitmap presetting (#53896).
   1119 
   1120 	It is rather fundamental to set monochrome bitmap based on rounded
   1121 	CBox because the b/w rasterizer turns on pixels when their centers are
   1122 	inside the glyph outline. The dropout control is unpredictable and can
   1123 	distort narrow glyphs if the bitmap is too wide.
   1124 
   1125 	Reported by Chris Liddell.
   1126 
   1127 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): If BBox boundaries
   1128 	are too close, adjust them before rounding.
   1129 
   1130 2018-05-15  Werner Lemberg  <wl (a] gnu.org>
   1131 
   1132 	[psaux] Fix compiler warning (#53915).
   1133 
   1134 	* src/psaux/psft.c (cf2_freeT1SeacComponent): Do it.
   1135 
   1136 2018-05-15  Werner Lemberg  <wl (a] gnu.org>
   1137 
   1138 	[sfnt] Fix memory leak in handling `COLR' data.
   1139 
   1140 	* src/truetype/ttgload.c (TT_Load_Glyph): Free old `layers' array
   1141 	before reassigning allocated memory.
   1142 	Only allocate `color_layers' if we don't have one already.
   1143 
   1144 2018-05-15  Werner Lemberg  <wl (a] gnu.org>
   1145 
   1146 	[sfnt] If `COLR' is present, don't assume that all glyphs use it.
   1147 
   1148 	* src/sfnt/ttcolr.c (tt_face_load_colr_layers): Return FT_Err_Ok if
   1149 	current glyph is not a `COLR' base glyph.
   1150 
   1151 	* src/truetype/ttgload.c (TT_Load_Glyph): Don't allocate
   1152 	`color_layers' if there are no color layers.
   1153 
   1154 2018-05-14  Werner Lemberg  <wl (a] gnu.org>
   1155 
   1156 	* src/base/ftobjs.c (FT_Load_Glyph): Fix signature of `pixel_modes'.
   1157 
   1158 2018-05-14  Werner Lemberg  <wl (a] gnu.org>
   1159 
   1160 	Provide dummy functions if `TT_CONFIG_OPTION_SFNT_NAMES' is not set.
   1161 
   1162 	* src/base/ftsnames.c [!TT_CONFIG_OPTION_SFNT_NAMES]: Implement it.
   1163 
   1164 2018-05-13  Werner Lemberg  <wl (a] gnu.org>
   1165 
   1166 	* src/base/ftobjs.c (FT_Load_Glyph): Improve tracing.
   1167 
   1168 2018-05-13  Shao Yu Zhang  <shaozhang (a] fb.com>
   1169 	    Werner Lemberg  <wl (a] gnu.org>
   1170 
   1171 	[sfnt] Preliminary support of coloured layer outlines (#44689).
   1172 
   1173 	This commit enables OpenType's COLR/CPAL table handling; a typical
   1174 	application are color emojis that can be scaled to any size.
   1175 
   1176 	If the color palette does not exist or is invalid, the rendering
   1177 	step rasterizes the outline instead.  The current implementation
   1178 	assumes that the foreground is black.
   1179 
   1180 	Enable this by defining option TT_CONFIG_OPTION_COLOR_LAYERS.
   1181 
   1182 	There are still some issues with metrics; additionally, an API to
   1183 	fetch color layers is missing.
   1184 
   1185 	* devel/ftoption.h, include/freetype/config/ftoption.h
   1186 	(TT_CONFIG_OPTION_COLOR_LAYERS): New macro.
   1187 
   1188 	* include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec,
   1189 	FT_Colr_InternalRec): New structures.
   1190 	(FT_Slot_InternalRec): Add `color_layers' field.
   1191 
   1192 	* include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func,
   1193 	TT_Blend_Colr_Func): New function types.
   1194 	(SFNT_Interface): Add `load_colr', `free_colr', `load_colr_layer',
   1195 	and `colr_blend' fields.
   1196 
   1197 	* include/freetype/internal/tttypes.h (TT_FaceRec): Add
   1198 	`colr_and_cpal' field.
   1199 
   1200 	* include/freetype/internal/tttags. (TTAG_COLR, TTAG_CPAL): New
   1201 	macros.
   1202 
   1203 	* src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: New files.
   1204 
   1205 	* src/base/ftobjs.c (ft_glyphslot_done, FT_Render_Glyph_Internal):
   1206 	Handle glyph color layers.
   1207 
   1208 	* src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC): Add
   1209 	`ttcolr.c'.
   1210 
   1211 	* src/sfnt/sfdriver.c: Include `ttcolr.h'.
   1212 	(PUT_COLOR_LAYERS): New macro.
   1213 	Update call to `FT_DEFINE_SFNT_INTERFACE'.
   1214 
   1215 	* src/sfnt/sfnt.c: Include `ttcolr.c'.
   1216 
   1217 	* src/sfnt/sfobjs.c (sfnt_load_face): Load `COLR' and `CPAL' tables.
   1218 	(sfnt_done_face): Updated.
   1219 
   1220 	* src/truetype/ttgload.c (TT_Load_Glyph): Handle color layers.
   1221 
   1222 2018-05-12  Arkady Shapkin  <arkady.shapkin (a] gmail.com>
   1223 
   1224 	Use MS VC++'s _BitScanReverse to calculate MSB (patch #9636).
   1225 
   1226 	* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Implement
   1227 	it.
   1228 
   1229 2018-05-10  Alan Coopersmith  <alan.coopersmith (a] oracle.com>
   1230 
   1231 	Fix DLL compilation on Solaris.
   1232 
   1233 	AC_COMPILE_IFELSE only tries to compile a `*.c' to a `*.o'.  The
   1234 	Solaris Studio 12.1 through 12.5 compilers see the
   1235 	`-fvisibility=hidden' flag, but ignore it with a warning of:
   1236 
   1237 	  cc: Warning: Option -fvisibility=hidden passed to ld,
   1238 	               if ld is invoked, ignored otherwise
   1239 
   1240 	AC_LINK_IFELSE does the compile and then tries to link the result,
   1241 	at which point the Solaris linker will issue an error:
   1242 
   1243 	  ld: fatal: option '-fvisibility=hidden' is incompatible with
   1244 	      building a dynamic executable
   1245 
   1246 	If we don't use AC_LINK_IFELSE to catch the error, then configure
   1247 	will fail further tests which attempt to link, such as those testing
   1248 	dependencies like `libbz2'.
   1249 
   1250 	Also, don't try adding `-fvisibility' if we have already added
   1251 	`-xldscope', just use one of them, since Sun Studio 12 and earlier
   1252 	compilers only issue a warning, and don't try passing through to the
   1253 	linker to generate an error, so AC_LINK_IFELSE doesn't catch them.
   1254 
   1255 	Tested on Solaris 11.4 beta with compiler versions:
   1256 
   1257 	  Sun Studio 8 (Sun C 5.5)
   1258 	  Sun Studio 10 (Sun C 5.7)
   1259 	  Sun Studio 11 (Sun C 5.8)
   1260 	  Sun Studio 12 (Sun C 5.9)
   1261 	  Sun Studio 12.1 (Sun C 5.10)
   1262 	  Oracle Solaris Studio 12.2 (Sun C 5.11)
   1263 	  Oracle Solaris Studio 12.3 (Sun C 5.12)
   1264 	  Oracle Solaris Studio 12.4 (Sun C 5.13)
   1265 	  Oracle Developer Studio 12.5 (Sun C 5.14)
   1266 	  Oracle Developer Studio 12.6 (Sun C 5.15)
   1267 	  gcc 5.5.0
   1268 	  gcc 7.3.0
   1269 
   1270 	and verified the libfreetype.so.6 generated by each of those
   1271 	compilers exported the same set of symbols.
   1272 
   1273 	* builds/unix/configure.raw: Implement it.
   1274 
   1275 2018-05-08  Werner Lemberg  <wl (a] gnu.org>
   1276 
   1277 	[autofit] Avoid potential SEGV if running out of memory.
   1278 
   1279 	Problem reported by Shailesh Mistry <shailesh.mistry (a] hotmail.co.uk>.
   1280 
   1281 	* src/autofit/afshaper.c (af_shaper_buf_create,
   1282 	af_shaper_buf_destroy) [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Don't
   1283 	allocate and free a four-byte buffer.  Instead, make those functions
   1284 	no-ops; the calling functions will provide a pointer to a buffer
   1285 	instead.
   1286 
   1287 	* src/autofit/afcjk.c (af_cjk_metrics_init_widths,
   1288 	af_cjk_metrics_init_blues, af_cjk_metrics_check_digits),
   1289 	src/autofit/aflatin.c (af_latin_metrics_init_widths,
   1290 	af_latin_metrics_init_blues, af_latin_metrics_check_digits)
   1291 	[!FT_CONFIG_OPTION_USE_HARFBUZZ]: Use pointer to local variable for
   1292 	`shaper_buf'.
   1293 
   1294 2018-05-07  Nikolaus Waxweiler  <madigens (a] gmail.com>
   1295 
   1296 	[cmake] Allow using project as subfolder in other project.
   1297 
   1298 	* CMakeLists.txt: Test for CMake build directory being different
   1299 	from source directory.  Provide other parts of the build system
   1300 	access the full include directory.
   1301 
   1302 2018-05-07  Werner Lemberg  <wl (a] gnu.org>
   1303 
   1304 	[build] Suppress configure's `nothing to be done' message.
   1305 
   1306 	This is due to calling the configure script via `make' (within the
   1307 	top-level `configure' wrapper script).  The same can happen for all
   1308 	other secondary make targets that are used to only modify the
   1309 	primary one, e.g., `make setup devel'.
   1310 
   1311 	* builds/dos/detect.mk (emx, turboc, watcom, borlandc, borlandc16),
   1312 	builds/os2/detect (visualage, watcom, borlandc, devel),
   1313 	builds/unix/detect.mk (devel, lcc, unix), builds/windows/detect.mk
   1314 	(visualc, watcom, visualage, lcc, mingw32, bcc32, devel-bcc,
   1315 	devel-gcc): Use no-op recipe.
   1316 
   1317 2018-05-04  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   1318 
   1319 	Support symbol visibility features of Sun / Oracle C compilers.
   1320 
   1321 	Reported by Kiyoshi Kanazawa:
   1322 	https://lists.gnu.org/archive/html/freetype-devel/2018-05/msg00008.html
   1323 	Thanks to the suggestions by Alexei and Alan Coopersmith.
   1324 
   1325 	* builds/unix/configure.raw: Check if "-xldscope=hidden" is
   1326 	accepted, and if so, it is added to CFLAGS.  This is the option
   1327 	making Sun / Oracle C compilers hide the symbols from global
   1328 	scope.
   1329 	* include/freetype/config/ftconfig.h: Use "__global" prefix
   1330 	for FT_EXPORT() macro, if SunPro C is newer than Sun ONE
   1331 	Studio 8 (2003).
   1332 	* builds/unix/ftconfig.in: Ditto.
   1333 	* builds/vms/ftconfig.h: Ditto.
   1334 
   1335 2018-05-02  Nikolaus Waxweiler  <madigens (a] gmail.com>
   1336 
   1337 	Unbreak CMake Windows installation
   1338 
   1339 	* CMakeLists.txt: Generate ftconfig.h on non-UNIX.
   1340 
   1341 2018-05-02  Werner Lemberg  <wl (a] gnu.org>
   1342 
   1343 	Remove FT_CONFIG_OPTION_PIC and related code.
   1344 
   1345 	*/* [FT_CONFIG_OPTION_PIC]: Remove all code guarded by this
   1346 	preprocessor symbol.
   1347 
   1348 	*/*: Replace `XXX_GET' macros (which could be either a function in
   1349 	PIC mode or an array in non-PIC mode) with `xxx' arrays.
   1350 
   1351 	* include/freetype/internal/ftpic.h, src/autofit/afpic.c,
   1352 	src/autofit/afpic.h, src/base/basepic.c, src/base/basepic.h,
   1353 	src/base/ftpic.c, src/cff/cffpic.c, src/cff/cffpic.h,
   1354 	src/pshinter/pshpic.c, src/pshinter/pshpic.h, src/psnames/pspic.c,
   1355 	src/psnames/pspic.h, src/raster/rastpic.c, src/raster/rastpic.h,
   1356 	src/sfnt/sfntpic.c, src/sfnt/sfntpic.h, src/smooth/ftspic.c,
   1357 	src/smooth/ftspic.h, src/truetype/ttpic.c, src/truetype/ttpic.h:
   1358 	Removed.
   1359 
   1360 2018-05-01  Werner Lemberg  <wl (a] gnu.org>
   1361 
   1362 	* Version 2.9.1 released.
   1363 	=========================
   1364 
   1365 
   1366 	Tag sources with `VER-2-9-1'.
   1367 
   1368 	* docs/VERSION.TXT: Add entry for version 2.9.1.
   1369 	* docs/CHANGES: Updated.
   1370 
   1371 	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
   1372 	src/base/ftver.rc, builds/windows/vc2005/index.html,
   1373 	builds/windows/vc2008/freetype.vcproj,
   1374 	builds/windows/vc2008/index.html,
   1375 	builds/windows/vc2010/freetype.vcxproj,
   1376 	builds/windows/vc2010/index.html,
   1377 	builds/windows/visualc/freetype.dsp,
   1378 	builds/windows/visualc/freetype.vcproj,
   1379 	builds/windows/visualc/index.html,
   1380 	builds/windows/visualce/freetype.dsp,
   1381 	builds/windows/visualce/freetype.vcproj,
   1382 	builds/windows/visualce/index.html,
   1383 	builds/wince/vc2005-ce/freetype.vcproj,
   1384 	builds/wince/vc2005-ce/index.html,
   1385 	builds/wince/vc2008-ce/freetype.vcproj,
   1386 	builds/wince/vc2008-ce/index.html: s/2.9/2.9.1/, s/29/291/.
   1387 
   1388 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
   1389 
   1390 	* builds/unix/configure.raw (version_info): Set to 22:1:16.
   1391 	* CMakeLists.txt (VERSION_PATCH): Set to 1.
   1392 
   1393 	* include/freetype/ftgasp.h: Use FT_BEGIN_HEADER and FT_END_HEADER.
   1394 
   1395 2018-04-26  Werner Lemberg  <wl (a] gnu.org>
   1396 
   1397 	Another fix for handling invalid format 2 cmaps.
   1398 
   1399 	Sigh.
   1400 
   1401 	Reported as
   1402 
   1403 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8003
   1404 
   1405 	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid
   1406 	an endless loop.
   1407 
   1408 2018-04-24  Ben Wagner  <bungeman (a] google.com>
   1409 
   1410 	[base] Avoid undefined behaviour in lcd filtering code (#53727).
   1411 
   1412 	* src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy):
   1413 	Ensure `height > 0'.
   1414 
   1415 2018-04-22  Werner Lemberg  <wl (a] gnu.org>
   1416 
   1417 	* src/base/ftoutln.c (FT_Outline_Decompose): Improve error tracing.
   1418 
   1419 2018-04-22  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1420 
   1421 	[base] Fix bitmap emboldening.
   1422 
   1423 	Bug introduced after release 2.8.
   1424 
   1425 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): We use
   1426 	`FT_QALLOC_MULT', which doesn't zero out the buffer.  Adjust the
   1427 	bitmap copying code to take care of this fact.
   1428 
   1429 2018-04-22  Werner Lemberg  <wl (a] gnu.org>
   1430 
   1431 	Another fix for handling invalid format 2 cmaps.
   1432 
   1433 	The previous commit was incomplete.
   1434 
   1435 	Reported as
   1436 
   1437 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7928
   1438 
   1439 	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid
   1440 	an endless loop.
   1441 
   1442 2018-04-19  Werner Lemberg  <wl (a] gnu.org
   1443 
   1444 	[autofit] Add support for Georgian Mtavruli characters.
   1445 
   1446 	This will be part of the forthcoming Unicode 11.0.
   1447 
   1448 	* src/autofit/afblue.dat: Add blue zone data for Mtavruli.
   1449 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   1450 
   1451 	* src/autofit/afscript.h: Add Mtavruli standard character.
   1452 
   1453 2018-04-18  Werner Lemberg  <wl (a] gnu.org>
   1454 
   1455 	Fix handling of invalid format 2 cmaps.
   1456 
   1457 	The problem was introduced after the last release.
   1458 
   1459 	Reported as
   1460 
   1461 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7828
   1462 
   1463 	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Avoid endless loop.
   1464 
   1465 2018-04-17  Werner Lemberg  <wl (a] gnu.org>
   1466 
   1467 	[truetype] Integer overflow issues.
   1468 
   1469 	Reported as
   1470 
   1471 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7739
   1472 
   1473 	* src/truetype/ttinterp.c (Ins_CEILING): Use FT_PIX_CEIL_LONG.
   1474 
   1475 2018-04-16  Werner Lemberg  <wl (a] gnu.org>
   1476 
   1477 	[truetype] Integer overflow issues.
   1478 
   1479 	Reported as
   1480 
   1481 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7718
   1482 
   1483 	* src/truetype/ttinterp.c (Ins_MIRP): Use ADD_LONG.
   1484 
   1485 2018-04-15  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1486 
   1487 	[build] Use `info' function of make 3.81.
   1488 
   1489 	* configure, docs/INSTALL, docs/INSTALL.CROSS, docs/INSTALL.GNU,
   1490 	docs/INSTALL.UNIX, docs/MAKEPP: Bump make version requirements.
   1491 
   1492 	* builds/detect.mk (std_setup): Replace `echo' with `info'.
   1493 	(dos_setup): Removed.
   1494 	* builds/unix/install.mk, builds/modules.mk, builds/dos/detect.mk,
   1495 	builds/windows/detect.mk, builds/os2/detect.mk: Updated.
   1496 	* builds/newline: No longer needed.
   1497 
   1498 2018-04-15  Werner Lemberg  <wl (a] gnu.org>
   1499 
   1500 	[truetype]: Limit `SLOOP' bytecode argument to 16 bits.
   1501 
   1502 	This fixes
   1503 
   1504 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7707
   1505 
   1506 	* src/truetype/ttinterp.c (Ins_SLOOP): Do it.
   1507 
   1508 2018-04-14  Werner Lemberg  <wl (a] gnu.org>
   1509 
   1510 	[truetype] Integer overflow issues.
   1511 
   1512 	Reported as
   1513 
   1514 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7652
   1515 
   1516 	* src/truetype/ttinterp.c (Ins_MDAP): Use SUB_LONG.
   1517 
   1518 2018-04-14  Werner Lemberg  <wl (a] gnu.org>
   1519 
   1520 	[autofit] Update to Unicode 11.0.0.
   1521 
   1522 	But no support new scripts (volunteers welcomed).
   1523 
   1524 	* src/autofit/afranges.c (af_arab_nonbase_uniranges,
   1525 	af_beng_nonbase_uniranges, af_cakm_nonbase_uniranges,
   1526 	af_deva_nonbase_uniranges, af_geor_uniranges,
   1527 	af_gujr_nonbase_uniranges, af_mlym_nonbase_uniranges,
   1528 	af_nkoo_nonbase_uniranges, af_telu_nonbase_uniranges,
   1529 	af_hani_uniranges): Add new data.
   1530 
   1531 2018-04-10  Nikolaus Waxweiler  <madigens (a] gmail.com>
   1532 
   1533 	* CMakeLists.txt, builds/cmake/FindHarfBuzz.cmake: Extensive
   1534 	modernization measures.
   1535 
   1536 	This brings up the minimum required CMake version to 2.8.12.
   1537 
   1538 	The installation paths follow the GNU defaults now, e.g. installing on a
   1539 	64 bit host will place binaries into the lib64/ folder on e.g. Fedora.
   1540 
   1541 	Symbols are hidden by default (e.g. `-fvisibility=hidden' on GCC).
   1542 
   1543 	CMake will no longer look for a C++ compiler.
   1544 
   1545 	Library and .so version now match the Autotools build.
   1546 
   1547 	Comments in the build file and informational messages now use platform
   1548 	agnostic example commands.
   1549 
   1550 	ftoption.h and ftconfig.h are written directly without a redundant `-new'
   1551 	copy.
   1552 
   1553 	External dependencies are expressed as option()s and will turn up as such
   1554 	in cmake-gui.
   1555 
   1556 	Internal: Properties such as dependencies and include directories are now
   1557 	privately set on the freetype library instead of globally.
   1558 
   1559 	The CPack definitions have been cleaned up, the `make dist' has been
   1560 	removed. Source packages generated with CPack don't contain Autotools
   1561 	files and aren't used by the maintainers anyway.
   1562 
   1563 	On Windows, src/base/ftver.rc is compiled to decorate the library with
   1564 	version and copyright information.
   1565 
   1566 	A pkg-config file is now generated and installed.
   1567 
   1568 2018-04-09  Werner Lemberg  <wl (a] gnu.org>
   1569 
   1570 	[truetype] Integer overflow issues.
   1571 
   1572 	Reported as
   1573 
   1574 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7453
   1575 
   1576 	* src/truetype/ttinterp.c (Round_Super, Round_Super_45): Use
   1577 	ADD_LONG and SUB_LONG.
   1578 
   1579 2018-04-06  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1580 
   1581 	[windows, wince] Clean up legacy project files.
   1582 
   1583 	* builds/wince/vc2005-ce/freetype.vcproj,
   1584 	builds/wince/vc2008-ce/freetype.vcproj,
   1585 	builds/windows/vc2005/freetype.vcproj,
   1586 	builds/windows/vc2008/freetype.vcproj,
   1587 	builds/windows/visualce/freetype.vcproj,
   1588 	builds/windows/visualce/freetype.dsp,
   1589 	builds/windows/visualc/freetype.vcproj,
   1590 	builds/windows/visualc/freetype.dsp: Remove per-file compile flags.
   1591 
   1592 2018-04-04  Werner Lemberg  <wl (a] gnu.org>
   1593 
   1594 	[cff, type1] Sanitize `BlueFuzz' and `BlueShift'.
   1595 
   1596 	Reported as
   1597 
   1598 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7371
   1599 
   1600 	* src/cff/cffload.c (cff_load_private_dict): Sanitize
   1601 	`priv->blue_shift' and `priv->blue_fuzz' to avoid overflows later
   1602 	on.
   1603 
   1604 	* src/type1/t1load.c (T1_Open_Face): Ditto.
   1605 
   1606 2018-04-04  Ben Wagner  <bungeman (a] google.com>
   1607 
   1608 	* src/truetype/ttobjs.c (trick_names): Add 3 tricky fonts (#53554),
   1609 	`DFHei-Md-HK-BF', `DFKaiShu-Md-HK-BF' and `DFMing-Bd-HK-BF'.
   1610 	(tt_check_trickyness_sfnt_ids): Add checksums for 3 tricky fonts
   1611 	in above.
   1612 
   1613 2018-04-01  Werner Lemberg  <wl (a] gnu.org>
   1614 
   1615 	* builds/toplevel.mk (work): Use $(SEP).
   1616 
   1617 	This fixes the `make refdoc' using Cygwin: $(CAT) is `type' on this
   1618 	platform, and this program only understands backslashes in paths.
   1619 
   1620 	Reported by Nikhil Ramakrishnan <ramakrishnan.nikhil (a] gmail.com>.
   1621 
   1622 2018-03-30  Werner Lemberg  <wl (a] gnu.org>
   1623 
   1624 	[truetype] Fix memory leak (only if tracing is on).
   1625 
   1626 	* src/truetype/ttgxvar.c (TT_Get_MM_Var) [FT_DEBUG_LEVEL_TRACE}: Fix
   1627 	it.
   1628 
   1629 2018-03-23  Ben Wagner  <bungeman (a] google.com>
   1630 
   1631 	[sfnt] Correctly handle missing bitmaps in sbix format (#53404).
   1632 
   1633 	* src/sfnt/ttfsbit.c (tt_face_load_sbix_image): Fix return value.
   1634 
   1635 2018-03-23  Ben Wagner  <bungeman (a] google.com>
   1636 
   1637 	[truetype] Fix advance of empty glyphs in bitmap fonts (#53393).
   1638 
   1639 	* src/truetype/ttgload.c (TT_Load_Glyph): Apply scaling to metrics
   1640 	for empty bitmaps.
   1641 
   1642 2018-03-22  Werner Lemberg  <wl (a] gnu.org>
   1643 
   1644 	Remove `ftlcdfil.c' and `ftfntfmt.c' from build files (#53415).
   1645 
   1646 	builds/amiga/makefile, builds/amiga/makefile.os4,
   1647 	builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt,
   1648 	builds/mac/FreeType.m68k_far.make.txt,
   1649 	builds/mac/FreeType.ppc_carbon.make.txt,
   1650 	builds/mac/FreeType.ppc_classic.make.txt,
   1651 	builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj,
   1652 	builds/wince/vc2008-ce/freetype.vcproj,
   1653 	builds/windows/vc2005/freetype.vcproj,
   1654 	builds/windows/vc2008/freetype.vcproj,
   1655 	builds/windows/vc2010/freetype.vcxproj,
   1656 	builds/windows/vc2010/freetype.vcxproj.filters,
   1657 	builds/windows/visualc/freetype.dsp,
   1658 	builds/windows/visualc/freetype.vcproj,
   1659 	builds/windows/visualce/freetype.dsp,
   1660 	builds/windows/visualce/freetype.vcproj, vms_make.com: Do it.
   1661 
   1662 2018-03-13  Werner Lemberg  <wl (a] gnu.org>
   1663 
   1664 	* src/sfnt/ttcmap.c (tt_cmap2_validate): Fix potential numeric
   1665 	overflow.
   1666 
   1667 2018-03-13  Werner Lemberg  <wl (a] gnu.org>
   1668 
   1669 	Fix cmap format 2 handling (#53320).
   1670 
   1671 	The patch introduced for #52646 was not correct.
   1672 
   1673 	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition.
   1674 
   1675 2018-03-10  Nikolaus Waxweiler  <madigens (a] gmail.com>
   1676 
   1677 	* CMakeLists.txt (BASE_SRCS): Update to changes from 2018-03-05.
   1678 
   1679 2018-03-09  Chun-wei Fan  <fanc999 (a] yahoo.com.tw>
   1680 
   1681 	* CMakeLists.txt [win32]: Allow MSVC DLL builds (#53287).
   1682 
   1683 	Do not limit DLL builds to MinGW, since we already have
   1684 	`__declspec(dllexport)' directives in `ftconfig.h'.
   1685 	Also suppress more warnings for POSIX functions.
   1686 
   1687 2018-03-08  Hugh McMaster  <hugh.mcmaster (a] outlook.com>
   1688 
   1689 	Make installation of `freetype-config' optional (#53093).
   1690 
   1691 	* builds/unix/configure.raw: Add option `--enable-freetype-config'
   1692 	and set `INSTALL_FT2_CONFIG'.
   1693 	* builds/unix/unix-def.in (INSTALL_FT2_CONFIG): Define.
   1694 	* builds/unix/install.mk (install): Handle it.
   1695 
   1696 2018-03-05  Werner Lemberg  <wl (a] gnu.org>
   1697 
   1698 	Make `ftlcdfil.c' part of the `base' module.
   1699 
   1700 	`ftobjs.c' needs `ft_lcd_padding'.
   1701 
   1702 	Problem reported by duhuanpeng <548708880 (a] qq.com>.
   1703 
   1704 	* modules.cfg (BASE_EXTENSIONS): Don't include `ftlcdfil.c'.
   1705 
   1706 	* src/base/ftbase.c: Include `ftlcdfil.c'.
   1707 	* src/base/rules.mk (BASE_SRC): Add `ftlcdfil.c'.
   1708 	* src/base/Jamfile (_sources): Adjusted.
   1709 
   1710 	* docs/INSTALL.ANY: Updated.
   1711 
   1712 2018-03-05  Werner Lemberg  <wl (a] gnu.org>
   1713 
   1714 	Make `ftfntfmt.c' part of the `base' module.
   1715 
   1716 	`ftobjs.c' needs `FT_Get_Font_Format'.
   1717 
   1718 	Problem reported by duhuanpeng <548708880 (a] qq.com>.
   1719 
   1720 	* modules.cfg (BASE_EXTENSIONS): Don't include `ftfntfmt.c'.
   1721 
   1722 	* src/base/ftbase.c: Include `ftfntfmt.c'.
   1723 	* src/base/rules.mk (BASE_SRC): Add `ftfntfmt.c'.
   1724 	* src/base/Jamfile (_sources): Adjusted.
   1725 
   1726 	* docs/INSTALL.ANY: Updated.
   1727 
   1728 2018-03-01  Werner Lemberg  <wl (a] gnu.org>
   1729 
   1730 	* src/truetype/ttinterp.c (TT_RunIns): Fix tracing arguments.
   1731 
   1732 2018-02-23  Werner Lemberg  <wl (a] gnu.org>
   1733 
   1734 	* builds/unix/configure.raw: Need HarfBuzz 1.3.0 or newer.
   1735 
   1736 	Problem reported by Alan Coopersmith <alan.coopersmith (a] oracle.com>.
   1737 
   1738 2018-02-17  Werner Lemberg  <wl (a] gnu.org>
   1739 
   1740 	[sfnt] Prefer `CBDT'/`CBLC' over `glyf' table (#53154).
   1741 
   1742 2018-02-06  Werner Lemberg  <wl (a] gnu.org>
   1743 
   1744 	[truetype] Integer overflow issues.
   1745 
   1746 	Reported as
   1747 
   1748 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6027
   1749 
   1750 	* src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIAP, Ins_MIRP): Use
   1751 	SUB_LONG; avoid FT_ABS.
   1752 
   1753 2018-02-04  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1754 
   1755 	[unix] Use -fvisibility=hidden.
   1756 
   1757 	It is now widely recommended that ELF shared libraries hide symbols
   1758 	except those with explicit __attribute__((visibility("default"))).
   1759 	This is supported by all major compilers and should rather be an
   1760 	option in libtool.
   1761 
   1762 	* builds/unix/configure.raw: Add -fvisibility=hidden to CFLAGS.
   1763 	* builds/unix/ftconfig.in, builds/vms/ftconfig.h,
   1764 	include/freetype/config/ftconfig.h (FT_EXPORT): Use visibility
   1765 	attribute.
   1766 
   1767 2018-01-27  Werner Lemberg  <wl (a] gnu.org>
   1768 
   1769 	[truetype] Better protection against invalid VF data.
   1770 
   1771 	Reported as
   1772 
   1773 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5739
   1774 
   1775 	Bug introduced in commit 08cd62deedefe217f2ea50e392923ce8b5bc7ac7.
   1776 
   1777 	* src/truetype/ttgxvar.c (TT_Set_Var_Design): Always initialize
   1778 	`normalizedcoords'.
   1779 
   1780 2018-01-27  Werner Lemberg  <wl (a] gnu.org>
   1781 
   1782 	* src/truetype/ttinterp.c (Ins_GETVARIATION): Avoid NULL reference.
   1783 
   1784 	Reported as
   1785 
   1786 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5736
   1787 
   1788 2018-01-27  Werner Lemberg  <wl (a] gnu.org>
   1789 
   1790 	* src/truetype/ttgxvar.c (tt_set_mm_blend): Minor.
   1791 
   1792 2018-01-27  Werner Lemberg  <wl (a] gnu.org>
   1793 
   1794 	[truetype] Better trace VF instances.
   1795 
   1796 	* src/truetype/ttgxvar.c (ft_var_to_normalized): Don't emit number
   1797 	of coordinates.
   1798 	(TT_Get_MM_Var): Trace instance indices names.
   1799 	(TT_Set_Var_Design): Updated.
   1800 
   1801 2018-01-27  Werner Lemberg  <wl (a] gnu.org>
   1802 
   1803 	[truetype] Beautify tracing of VF axis records.
   1804 
   1805 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Show axis records in a
   1806 	table-like manner.
   1807 
   1808 2018-01-26  Ben Wagner  <bungeman (a] google.com>
   1809 
   1810 	[truetype] Fix multiple calls of `FT_Get_MM_Var' (#52955).
   1811 
   1812 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Set
   1813 	`face->blend->num_axis' in case we have to initialize the
   1814 	`face->blend'.
   1815 
   1816 2018-01-23  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1817 
   1818 	[apinames] Anonymous version map for GNU linker.
   1819 
   1820 	* src/tools/apinames.c (PROGRAM_VERSION): Set to 0.3.
   1821 	(OutputFormat): Add `OUTPUT_GNU_VERMAP'.
   1822 	(names_dump): Handle it.
   1823 	(usage): Updated.
   1824 	(main): Handle new command line flag `-wL'.
   1825 
   1826 2018-01-21  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1827 
   1828 	[unix] Call libtool to clean up.
   1829 
   1830 	* builds/unix/install.mk (clean_project_unix, distclean_project_unix):
   1831 	Use libtool.
   1832 	* builds/freetype.mk: Minor.
   1833 
   1834 2018-01-18  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1835 
   1836 	* src/base/ftver.rc: Fix mingw-w64 compilation.
   1837 
   1838 2018-01-18  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1839 
   1840 	[build] Enable VERSIONINFO resource for Cygwin/MinGW.
   1841 
   1842 	* builds/unix/configure.raw: Check for resource compiler.
   1843 	* builds/unix/unix-cc.in: Conditionally set up resource compiler.
   1844 	* builds/freetype.mk: Add conditional rule for `ftver.rc'.
   1845 	* src/base/ftver.rc: Copyright notice and year update.
   1846 
   1847 2018-01-18  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1848 
   1849 	[build] Move VERSIONINFO resource.
   1850 
   1851 	* builds/windows/vc2010/freetype.vcxproj: Updated.
   1852 	* builds/windows/ftver.rc: Move file from here...
   1853 	* src/base/ftver.rc: ... to here.
   1854 
   1855 2018-01-12  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1856 
   1857 	[build] Expand dllexport/dllimport to Cygwin/MinGW.
   1858 
   1859 	* include/freetype/config/ftconfig.h: Respect DLL_EXPORT,
   1860 	s/_MSC_VER/_WIN32/.
   1861 	* builds/unix/ftconfig.in: Replicate here.
   1862 	* builds/vms/ftconfig.h: Replicate here.
   1863 
   1864 2018-01-12  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1865 
   1866 	[build] Improve and document MSVC build.
   1867 
   1868 	* include/freetype/config/ftconfig.h: Guard dllexport/dllimport
   1869 	attributes with _DLL and FT2_DLLIMPORT.
   1870 	* builds/windows/vc2010/index.html: Update documentation.
   1871 
   1872 2018-01-10  Steve Robinson  <ssrobins (a] gmail.com>
   1873 
   1874 	* CMakeLists.txt [win32]: Suppress warnings for POSIX functions.
   1875 
   1876 2018-01-10  Ewald Hew  <ewaldhew (a] gmail.com>
   1877 
   1878 	[psaux] Correctly handle Flex features (#52846).
   1879 
   1880 	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdVMOVETO,
   1881 	cf2_cmdHMOVETO>: Do not move if doing Flex.
   1882 
   1883 2018-01-09  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1884 
   1885 	* builds/windows/vc2010/freetype.sln: Synchronize with the project.
   1886 
   1887 2018-01-08  Werner Lemberg  <wl (a] gnu.org>
   1888 
   1889 	* Version 2.9 released.
   1890 	=======================
   1891 
   1892 
   1893 	Tag sources with `VER-2-9'.
   1894 
   1895 	* docs/VERSION.TXT: Add entry for version 2.9.
   1896 
   1897 	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
   1898 	builds/windows/vc2005/index.html,
   1899 	builds/windows/vc2008/freetype.vcproj,
   1900 	builds/windows/vc2008/index.html,
   1901 	builds/windows/vc2010/freetype.vcxproj,
   1902 	builds/windows/vc2010/index.html,
   1903 	builds/windows/visualc/freetype.dsp,
   1904 	builds/windows/visualc/freetype.vcproj,
   1905 	builds/windows/visualc/index.html,
   1906 	builds/windows/visualce/freetype.dsp,
   1907 	builds/windows/visualce/freetype.vcproj,
   1908 	builds/windows/visualce/index.html,
   1909 	builds/windows/ftver.rc,
   1910 	builds/wince/vc2005-ce/freetype.vcproj,
   1911 	builds/wince/vc2005-ce/index.html,
   1912 	builds/wince/vc2008-ce/freetype.vcproj,
   1913 	builds/wince/vc2008-ce/index.html: s/2.8.1/2.9/, s/281/29/.
   1914 
   1915 	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 9.
   1916 	(FREETYPE_PATCH): Set to 0.
   1917 
   1918 	* builds/unix/configure.raw (version_info): Set to 22:0:16.
   1919 	* CMakeLists.txt (VERSION_PATCH): Set to 0.
   1920 
   1921 2018-01-07  Werner Lemberg  <wl (a] gnu.org>
   1922 
   1923 	Add check for librt, needed for `ftbench' (#52824).
   1924 
   1925 	* builds/unix/configure.raw (LIB_CLOCK_GETTIME): Define; this will
   1926 	hold `-lrt' if necessary.
   1927 
   1928 	* builds/unix/unix-cc.in (LIB_CLOCK_GETTIME): New variable.
   1929 
   1930 2018-01-07  Ewald Hew  <ewaldhew (a] gmail.com>
   1931 
   1932 	[psaux] Fix Type 1 glyphs with too many stem hints.
   1933 
   1934 	According to the CFF specification, charstrings can have up to 96 stem
   1935 	hints. Due to hint replacement routines in Type 1 charstrings, some
   1936 	glyphs are rejected by the Adobe engine, which implements the above
   1937 	limit. This fix turns off hinting for such glyphs.
   1938 
   1939 	* src/psaux/pshints.c (cf2_hintmap_build): Reset the error from calling
   1940 	`cf2_hintmask_setAll' on a problematic Type 1 charstring and turn off
   1941 	hinting.
   1942 
   1943 2018-01-06  Werner Lemberg  <wl (a] gnu.org>
   1944 
   1945 	Add `FT_Done_MM_Var'.
   1946 
   1947 	This is necessary in case the application's memory routines differ
   1948 	from FreeType.  A typical example is a Python application on Windows
   1949 	that calls FreeType compiled as a DLL via the `ctypes' interface.
   1950 
   1951 	* include/freetype/ftmm.h, src/base/ftmm.c (FT_Done_MM_Var): Declare
   1952 	and define.
   1953 
   1954 	* docs/CHANGES: Updated.
   1955 
   1956 2018-01-03  Werner Lemberg  <wl (a] gnu.org>
   1957 
   1958 	[truetype] Round offsets of glyph components only if hinting is on.
   1959 
   1960 	* src/truetype/ttgload.c (TT_Process_Composite_Component): Implement
   1961 	it.
   1962 
   1963 2018-01-03  Werner Lemberg  <wl (a] gnu.org>
   1964 
   1965 	* src/truetype/ttgxvar.c (ft_var_to_design): Remove dead code.
   1966 
   1967 	This is a better fix than the previous commit, which is now
   1968 	reverted.
   1969 
   1970 2018-01-03  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1971 
   1972 	Move internal LCD-related declarations.
   1973 
   1974 	* include/freetype/ftlcdfil.h (ft_lcd_padding, ft_lcd_filter_fir):
   1975 	Move from here...
   1976 	* include/freetype/internal/ftobjs.h: ... to here.
   1977 
   1978 2018-01-03  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1979 
   1980 	* include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF)
   1981 	[_MSC_VER]: Limit Visual C++ attributes.
   1982 
   1983 2018-01-03  Werner Lemberg  <wl (a] gnu.org>
   1984 
   1985 	[truetype] Make blend/design coordinate round-tripping work.
   1986 
   1987 	Behdad reported that setting blend coordinates, then getting design
   1988 	coordinates did incorrectly return the default instance's
   1989 	coordinates.
   1990 
   1991 	* src/truetype/ttgxvar.c (tt_set_mm_blend): Fix it.
   1992 
   1993 2017-12-31  Werner Lemberg  <wl (a] gnu.org>
   1994 
   1995 	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix endless loop.
   1996 
   1997 	Reported as
   1998 
   1999 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4838
   2000 
   2001 2017-12-31  Werner Lemberg  <wl (a] gnu.org>
   2002 
   2003 	Synchronize other Windows project files.
   2004 
   2005 	* builds/windows/*: Add missing files.
   2006 
   2007 2017-12-31  Werner Lemberg  <wl (a] gnu.org>
   2008 
   2009 	Update Visual C 2010 project files.
   2010 
   2011 	Problem reported by Hin-Tak.
   2012 
   2013 	* builds/windows/vc2010/freetype.vcxproj: Add files `ftbdf.c' and
   2014 	`ftcid.c'.
   2015 	Sort entries.
   2016 	* builds/windows/vc2010/freetype.vcxproj.filter: Ditto.
   2017 	Fix members of `FT_MODULE' group.
   2018 
   2019 2017-12-30  Werner Lemberg  <wl (a] gnu.org>
   2020 
   2021 	* builds/vms/ftconfig.h: Synchronize with unix `ftconfig.in' file.
   2022 
   2023 2017-12-28  Werner Lemberg  <wl (a] gnu.org>
   2024 
   2025 	* builds/unix/ftconfig.in: Synchronize with main `ftconfig.h' file.
   2026 
   2027 	Reported by Nikolaus.
   2028 
   2029 2017-12-27  Werner Lemberg  <wl (a] gnu.org>
   2030 
   2031 	Fix compiler warnings.
   2032 
   2033 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Make `pitch' and
   2034 	`new_pitch' unsigned.
   2035 
   2036 	* src/base/ftpsprop.c: Include FT_INTERNAL_POSTSCRIPT_PROPS_H.
   2037 
   2038 2017-12-27  Werner Lemberg  <wl (a] gnu.org>
   2039 
   2040 	Fixes for `make multi'.
   2041 
   2042 	* include/freetype/internal/ftpsprop.h: Use `FT_BASE_CALLBACK'.
   2043 	(ps_property_get): Harmonize declaration with corresponding
   2044 	function typedef.
   2045 
   2046 	* include/freety[e/internal/fttrace.h: Add `trace_psprops'.
   2047 
   2048 	* src/base/ftpsprop.c: Include necessary header files.
   2049 	(FT_COMPONENT): Define.
   2050 	(ps_property_set): Tag with `FT_BASE_CALLBACK_DEF'.
   2051 	(ps_property_get): Tag with `FT_BASE_CALLBACK_DEF'.
   2052 	Harmonize declaration with corresponding function typedef.
   2053 
   2054 2017-12-27  Werner Lemberg  <wl (a] gnu.org>
   2055 
   2056 	Provide support for intra-module callback functions.
   2057 
   2058 	This is needed especially for `make multi' with C++.
   2059 
   2060 	* include/freetype/config/ftconfig.h (FT_BASE_CALLBACK,
   2061 	FT_BASE_CALLBACK_DEF): New macros.
   2062 
   2063 2017-12-25  Ewald Hew  <ewaldhew (a] gmail.com>
   2064 
   2065 	Move PostScript drivers' property handlers to `base'.
   2066 
   2067 	This reduces the amount of duplicated code across PostScript
   2068 	drivers.
   2069 
   2070 	* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
   2071 	({cff,cid,t1}_property_{get,set}): Moved to...
   2072 	* include/freetype/internal/ftpsprop.h: ...this new file.
   2073 	(ps_property_{get,set}): New functions to replace moved ones.
   2074 
   2075 	* src/base/ftpsprop.c: New file that implements above functions.
   2076 
   2077 	* include/freetype/internal/internal.h
   2078 	(FT_INTERNAL_POSTSCRIPT_PROPS_H): New macro.
   2079 
   2080 	* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c:
   2081 	Updated.
   2082 
   2083 	* src/base/Jamfile, src/base/rules.mk (BASE_SRC), src/base/ftbase.c:
   2084 	Updated.
   2085 
   2086 2017-12-20  Werner Lemberg  <wl (a] gnu.org>
   2087 
   2088 	Speed up FT_Set_Var_{Design,Blend}_Coordinates if curr == new.
   2089 
   2090 	We exit early if the current design or blend coordinates are
   2091 	identical to the new ones.
   2092 
   2093 	* src/truetype/ttgxvar.c (tt_set_mm_blend, TT_Set_Var_Design):
   2094 	Implement it, returning internal error code -1 if there will be no
   2095 	variation change.
   2096 
   2097 	* src/type1/t1load.c (t1_set_mm_blend): Ditto.
   2098 
   2099 	* src/base/ftmm.c (FT_Set_Var_Design_Coordinates,
   2100 	FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): Updated.
   2101 
   2102 2017-12-18  Werner Lemberg  <wl (a] gnu.org>
   2103 
   2104 	[sfnt] Fix charmap type 2 iterator (#52646).
   2105 
   2106 	The subsetted demo font of the report that exhibits the bug has a
   2107 	very unusual type 2 cmap for Unicode(!): It contains only two
   2108 	sub-headers, one for one-byte characters (covering the range 0x20 to
   2109 	0xFA), and a second one for higher byte 0x01 (just for character
   2110 	code U+0131).
   2111 
   2112 	Before this commit, the iterator wasn't able to correctly handle a
   2113 	sub-header for higher byte 0x01.
   2114 
   2115 	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix character increment
   2116 	for outer loop.
   2117 
   2118 2017-12-18  Matthias Clasen  <matthias.clasen (a] gmail.com>
   2119 
   2120 	[truetype] Fix clamping, minor tracing code beautification.
   2121 
   2122 	* src/truetype/ttgxvar.c (ft_var_to_normalized): Trace number of
   2123 	design coordinates.
   2124 	Use clamped value.
   2125 
   2126 2017-12-18  Werner Lemberg  <wl (a] gnu.org>
   2127 
   2128 	* src/*/*: Only use `ft_' and `FT_' variants of stdc library stuff.
   2129 
   2130 2017-12-18  Werner Lemberg  <wl (a] gnu.org>
   2131 
   2132 	* src/truetype/ttgxvar.c (tt_face_vary_cvt): Add size guard (#52688).
   2133 
   2134 2017-12-18  Werner Lemberg  <wl (a] gnu.org>
   2135 
   2136 	[truetype] Fix previous commit.
   2137 
   2138 	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Correctly handle
   2139 	unhinted phantom points, which must be properly scaled.
   2140 
   2141 2017-12-18  Werner Lemberg  <wl (a] gnu.org>
   2142 
   2143 	[truetype] Don't apply HVAR and VVAR deltas twice (#52683).
   2144 
   2145 	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Always adjust
   2146 	`pp1' to `pp4', except if we have an HVAR and/or VVAR table.
   2147 
   2148 	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Handle
   2149 	alternative code branch identically w.r.t. presence of an HVAR
   2150 	and/or VVAR table.
   2151 
   2152 2017-12-17  Jonathan Kew  <jfkthame (a] gmail.com>
   2153 
   2154 	[truetype] Correctly handle variation font phantom points (#52683).
   2155 
   2156 	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix phantom
   2157 	point indices.
   2158 
   2159 2017-12-17  Jonathan Kew  <jfkthame (a] gmail.com>
   2160 
   2161 	Fix incorrect advance width scaling (#52683).
   2162 
   2163 	* src/base/ftadvance.c (FT_Get_Advances): Always respect the
   2164 	FT_LOAD_NO_SCALE flag if present.
   2165 
   2166 2017-12-16  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2167 
   2168 	* builds/windows/vc2010/freetype.vcxproj: AfterBuild copy.
   2169 	* objs/.gitignore: Ignore almost everything.
   2170 
   2171 2017-12-11  Werner Lemberg  <wl (a] gnu.org>
   2172 
   2173 	Fix compiler warning (#52640).
   2174 
   2175 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Remove unused
   2176 	variable.
   2177 
   2178 2017-12-08  Azzuro  <azzuro (a] team-mediaportal.com>
   2179 
   2180 	* builds/windows/vc2010/freetype.vcxproj: Adjust output directory.
   2181 
   2182 	This allows builds with different configurations in parallel.
   2183 
   2184 2017-12-08  Werner Lemberg  <wl (a] gnu.org>
   2185 
   2186 	Fix `make setup dos', second try (#52622).
   2187 
   2188 	* builds/detect.mk (dos_setup): Don't use literal `>' character at
   2189 	all.  Mixing the different escaping rules from make, dos, and
   2190 	windows is too fragile.
   2191 
   2192 2017-12-08  Werner Lemberg  <wl (a] gnu.org>
   2193 
   2194 	[docmaker] Fix code section parsing.
   2195 
   2196 	Stuff like
   2197 
   2198 	  {
   2199 	    <bla>
   2200 	  }
   2201 
   2202 	confused the parser, which incorrectly treated `<bla>' as a markup
   2203 	tag.
   2204 
   2205 	* src/tools/docmaker/content.py (ContentProcessor::process_content):
   2206 	Apply `re_markup_tags' only outside of code sections.
   2207 
   2208 2017-12-08  Werner Lemberg  <wl (a] gnu.org>
   2209 
   2210 	New `ftdriver.h' file, covering all driver modules.
   2211 
   2212 	This reduces redundancy and increases synergy; it also reduces the
   2213 	number of header files.
   2214 
   2215 	* include/freetype/config/ftheader.h (FT_DRIVER_H): New macro.
   2216 	(FT_AUTOHINTER_H, FT_CFF_DRIVER_H, FT_TRUETYPE_DRIVER_H,
   2217 	FT_PCF_DRIVER_H, FT_TYPE1_DRIVER_H): Make them aliases to
   2218 	FT_DRIVER_H.
   2219 
   2220 	* include/freetype/ftautoh.h, include/freetype/ftcffdrv.h,
   2221 	include/freetype/ftpcfdrv.h, include/freetype/ftt1drv.h,
   2222 	include/freetype/ftttdrv.h: Replaced with...
   2223 	* include/freetype/ftdriver.h: ...this new file.
   2224 	(FT_CFF_HINTING_ADOBE, FT_T1_HINTING_ADOBE): Renamed to...
   2225 	(FT_HINTING_ADOBE): ... this new macro.
   2226 	(FT_CFF_HINTING_FREETYPE, FT_T1_HINTING_FREETYPE): Renamed to...
   2227 	(FT_HINTING_FREETYPE): ... this new macro.
   2228 
   2229 	* src/*/*: Updated accordingly.
   2230 
   2231 2017-12-08  Werner Lemberg  <wl (a] gnu.org>
   2232 
   2233 	Move `ftdriver.h' to `ftdrv.h'.
   2234 
   2235 	* include/freetype/internal/ftdriver.h: Renamed to...
   2236 	* include/freetype/internal/ftdrv.h: ... this name.
   2237 
   2238 	* include/freetype/internal/internal.h (FT_INTERNAL_DRIVER_H):
   2239 	Updated.
   2240 
   2241 2017-12-08  Werner Lemberg  <wl (a] gnu.org>
   2242 
   2243 	Fix access to uninitalized memory (#52613).
   2244 
   2245 	Also reported as
   2246 
   2247 	  https://bugs.chromium.org/p/chromium/issues/detail?id=791317
   2248 
   2249 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): If increasing the
   2250 	bitmap size needs a larger bitmap buffer, assure that the new memory
   2251 	areas are initialized also.
   2252 
   2253 2017-12-08  Werner Lemberg  <wl (a] gnu.org>
   2254 
   2255 	Fix `make setup dos' (#52622).
   2256 
   2257 	* builds/detect.mk (dos_setup): Properly escape literal `>'
   2258 	character.
   2259 
   2260 2017-12-07  Werner Lemberg  <wl (a] gnu.org>
   2261 
   2262 	Fix C++ compilation.
   2263 
   2264 	* src/psaux/psauxmod.h: Use FT_CALLBACK_TABLE macro where necessary.
   2265 
   2266 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix warning.
   2267 
   2268 2017-12-07  Werner Lemberg  <wl (a] gnu.org>
   2269 
   2270 	Fix `make multi'.
   2271 
   2272 	* include/freetype/internal/fttrace.h: Remove unused tracing macros.
   2273 	s/pshalgo2/pshalgo/.
   2274 	Add `trace_cffdecode'.
   2275 	* src/pshinter/pshalgo.c (FT_COMPONENT): Updated.
   2276 
   2277 	* src/cff/cffload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
   2278 	* src/cff/cffobjs.c: Include FT_SERVICE_METRICS_VARIATIONS_H and
   2279 	FT_SERVICE_CFF_TABLE_LOAD_H.
   2280 
   2281 	* src/cid/cidriver.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
   2282 
   2283 	* src/psaux/cffdecode.c: Include FT_FREETYPE_H and
   2284 	FT_INTERNAL_DEBUG_H.
   2285 	(FT_COMPONENT): Define.
   2286 	* src/psaux/cffdecode.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
   2287 	* src/psaux/psauxmod.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
   2288 	Declare `cff_builder_funcs' and `ps_builder_funcs'.
   2289 	* src/psaux/psft.c: Include `psobjs.h' and `cffdecode.h'.
   2290 	* src/psaux/psobjs.c : Include `psauxmod.h'.
   2291 
   2292 2017-12-07  Werner Lemberg  <wl (a] gnu.org>
   2293 
   2294 	* include/freetype/config/ftheader.h: Some clean-up.
   2295 
   2296 	This commit removes documentation of deprecated macros and does some
   2297 	minor streamlining.
   2298 
   2299 2017-12-06  Werner Lemberg  <wl (a] gnu.org>
   2300 
   2301 	* builds/symbian/bld.inf: Updated.
   2302 
   2303 2017-12-06  Werner Lemberg  <wl (a] gnu.org>
   2304 
   2305 	New header file `ftparams.h' that collects all parameter tags.
   2306 
   2307 	* include/freetype/config/ftheader.h (FT_PARAMETER_TAGS_H): New
   2308 	macro.
   2309 	(FT_TRUETYPE_UNPATENTED_H, FT_UNPATENTED_HINTING_H): Define it to
   2310 	`ftparams.h'.
   2311 
   2312 	* include/freetype/ftautoh.h, include/freetype/ftcffdrv.h,
   2313 	include/freetype/ftincrem.h, include/freetype/ftlcdfil.h,
   2314 	include/freetype/ftsnames.h, include/freetype/ftt1drv.h: Include
   2315 	FT_PARAMETER_TAGS_H.
   2316 	Move FT_PARAM_TAG_XXX definitions to...
   2317 	* include/freetype/ftparams.h: ...this new file.
   2318 
   2319 	* include/freetype/ttunpat.h: Remove.  No longer needed.
   2320 
   2321 2017-12-05  Werner Lemberg  <wl (a] gnu.org>
   2322 
   2323 	Improve tracing messages by using singular and plural forms.
   2324 
   2325 	* src/*/*.c: Implement it.
   2326 
   2327 2017-12-04  Werner Lemberg  <wl (a] gnu.org>
   2328 
   2329 	[truetype] Allow shared points in `cvar' table (#52532).
   2330 
   2331 	* src/truetype/ttgxvar.c (tt_face_vary_cvt): Implement it by copying
   2332 	and adjusting the corresponding code from
   2333 	`TT_Vary_Apply_Glyph_Deltas'.
   2334 
   2335 2017-11-28  Werner Lemberg  <wl (a] gnu.org>
   2336 
   2337 	[truetype] Improving tracing of composite glyphs.
   2338 
   2339 	* src/truetype/ttgload.c (TT_Load_Composite_Glyph)
   2340 	[FT_DEBUG_LEVEL_TRACE]: Show composite glyph information.
   2341 
   2342 2017-11-27  Werner Lemberg  <wl (a] gnu.org>
   2343 
   2344 	[type1] Allow (again) `/Encoding' with >256 elements (#52464).
   2345 
   2346 	In version 2.6.1, this has been disallowed to better reject
   2347 	malformed fonts; however, this restriction was too strong.  This
   2348 	time, we only take the first 256 elements into account, since
   2349 	encoding arrays are always accessed with a 8bit integer, according
   2350 	to the PostScript Language Reference.
   2351 
   2352 	* src/type1/t1load.c (parse_encoding): Implement it.
   2353 
   2354 2017-11-27  Jan Alexander Steffens (heftig)  <jan.steffens (a] gmail.com>
   2355 
   2356 	Fix last commit (#52522).
   2357 
   2358 	* builds/freetype.mk: Set `FT_OPTION_H' and `FTOPTION_FLAG'
   2359 	properly if we have `ftoption.h' in `BUILD_DIR'.
   2360 
   2361 2017-11-24  Werner Lemberg  <wl (a] gnu.org>
   2362 
   2363 	[unix] Install a massaged `ftoption.h' file (#51780).
   2364 
   2365 	* builds/unix/configure.raw (ftoption_set, ftoption_unset): New
   2366 	auxiliary functions to construct...
   2367 	(FTOPTION_H_SED): ... this new variable.
   2368 	Apply it as a sed argument while copying `ftoption.h' to the
   2369 	`builds/unix' directory (using `AC_CONFIG_FILES').
   2370 	Simplify code of test that checks cpp's computation of bit length
   2371 	(the test previously created an empty `ftoption.h' file and deleted
   2372 	it immediately afterwards); without this change, it can happen on my
   2373 	GNU/Linux box that `configure's execution of `config.status' doesn't
   2374 	create `ftoption.h' (no idea why this happens).
   2375 
   2376 	* builds/unix/install.mk (install): Install
   2377 	`builds/unix/ftoption.h'.
   2378 
   2379 	* builds/unix/unix-def.in (DISTCLEAN): Updated.
   2380 
   2381 	* builds/unix/.gitignore: Updated.
   2382 
   2383 2017-11-23  Tor Andersson  <tor.andersson (a] artifex.com>
   2384 
   2385 	Silence unused function warnings (#52465).
   2386 
   2387 	Some static function declarations cause unused function warnings if
   2388 	certain config options are turned off via `ftoption.h'.
   2389 
   2390 	* src/base/ftbase.h, src/base/ftrfork.c, src/sfnt/ttbdf.h,
   2391 	src/truetype/ttgxvar.h: Add #ifdef guards around these sections.
   2392 
   2393 2017-11-22  Ewald Hew  <ewaldhew (a] gmail.com>
   2394 
   2395 	* src/psaux/psft.c (cf2_setGlyphWidth): Check format before setting.
   2396 
   2397 	Reported as
   2398 
   2399 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4377
   2400 
   2401 2017-11-22  Ewald Hew  <ewaldhew (a] gmail.com>
   2402 
   2403 	[psaux] Fix CFF advance widths. (#52466)
   2404 
   2405 	Glyph advance widths were being written to the new `PS_Decoder' but not
   2406 	saved to the underlying format specific decoder. This caused pure CFF
   2407 	fonts to have bad advance width.
   2408 
   2409 	* include/freetype/internal/psaux.h (PS_Decoder): Change `glyph_width'
   2410 	field to pointer.
   2411 	Remove unused fields.
   2412 	* src/psaux/psobjs.c (ps_decoder_init): Change `glyph_width' from copy
   2413 	to reference.
   2414 	Remove unused.
   2415 	* src/psaux/psft.c (cf2_setGlyphWidth): Update code.
   2416 
   2417 2017-11-15  Vlad Tsyrklevich  <vtsyrklevich (a] google.com>
   2418 
   2419 	* include/freetype/ftrender.h: Fix `FT_Renderer_RenderFunc' type.
   2420 
   2421 2017-11-14  Nikolaus Waxweiler  <madigens (a] gmail.com>
   2422 
   2423 	Use Adobe hinting engine for `light' hinting of both CFF and Type 1.
   2424 
   2425 	Since Ewald Hew factored the Adobe hinting engine out of the CFF
   2426 	driver code, we can now use it on Type 1 (and CID) font formats, as
   2427 	both have the same hinting philosophy.
   2428 
   2429 	This change activates the Adobe hinter when in LIGHT mode, and
   2430 	therefore always unless explicitly asking for the auto-hinter.  This
   2431 	makes LIGHT behavior consistent with CFF fonts.  As of this commit,
   2432 	the hinting engine table looks as follows.
   2433 
   2434 	             LIGHT  NORMAL
   2435 	  -------------------------
   2436 	   TrueType  Auto   v40
   2437 	   CFF       Adobe  Adobe
   2438 	   Type 1    Adobe  Adobe
   2439 
   2440 2017-11-10  Yuri Levchenko  <yuri_levchenko (a] boolat.com>
   2441 
   2442 	* CMakeLists.txt: Add `DISABLE_FORCE_DEBUG_PREFIX' option.
   2443 
   2444 2017-11-06  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2445 
   2446 	* src/base/ftobjs.c (FT_Load_Glyph): Relocate condition.
   2447 
   2448 2017-11-06  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2449 
   2450 	* src/smooth/ftgrays.c (gray_set_cell): Fix uninitialized variables.
   2451 
   2452 2017-11-03  Ewald Hew  <ewaldhew (a] gmail.com>
   2453 
   2454 	[psaux] Fix PostScript interpreter rewinding in Type 1 mode. (#52251)
   2455 
   2456 	The interpreter in Type 1 mode rewinds the charstring after collecting
   2457 	all hints for building the initial hintmap (commit d52dd7f). However,
   2458 	some charstrings use `endchar' in a final subroutine call, rewinding to
   2459 	the start of that subroutine, and only a small section of the actual
   2460 	glyph is drawn.
   2461 
   2462 	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdENDCHAR>:
   2463 	Ensure we are on the top level charstring before rewinding.
   2464 
   2465 2017-11-03  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   2466 
   2467 	[truetype] Add more tricky fonts.
   2468 
   2469 	See the report by Yang Yinsen.
   2470 	https://lists.gnu.org/archive/html/freetype-devel/2017-11/msg00000.html
   2471 
   2472 	* src/truetype/ttobjs.c (trick_names): Add `DFGothic-EB',
   2473 	`DFGyoSho-Lt', `DFHSGothic-W5', `DFHSMincho-W3' and `DFHSMincho-W7'.
   2474 	(tt_check_trickyness_sfnt_ids): Add checksums for DFGothic-EB,
   2475 	DFGyoSho-Lt, DFHSGothic-W5, DFHSMincho-W3 and DFHSMincho-W7.  Also
   2476 	add checksums for DLCLiShu and DLCHayBold which their family names
   2477 	were already listed but their checksums were previously unknown.
   2478 
   2479 2017-11-01  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2480 
   2481 	[smooth] Fix complex rendering at high ppem.
   2482 
   2483 	We used to split large glyphs into horizontal bands and continue
   2484 	bisecting them still horizontally if that was not enough.  This is
   2485 	guaranteed to fail when a single scanline cannot fit into the
   2486 	rendering memory pool.  Now we bisect the bands vertically so that
   2487 	the smallest unit is a column of the band height, which is guranteed
   2488 	to fit into memory.
   2489 
   2490 	* src/smooth/ftgrays.c (gray_convert_glyph): Implement it.
   2491 
   2492 2017-10-20  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2493 
   2494 	[smooth] Improve complex rendering at high ppem.
   2495 
   2496 	At large sizes almost but not exactly horizontal segments can quickly
   2497 	drain the rendering pool. This patch at least avoids filling the pool
   2498 	with trivial cells. Beyond this, we can only increase the pool size.
   2499 
   2500 	Reported, analyzed, and tested by Colin Fahey.
   2501 
   2502 	* src/smooth/ftgrays.c (gray_set_cell): Do not record trivial cells.
   2503 
   2504 2017-10-20  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2505 
   2506 	[base] Improve tracing in FT_Load_Glyph, FT_*_Size.
   2507 
   2508 	* src/base/ftobjs.c (FT_Load_Glyph): Tag tracing messages with
   2509 	function name, glyph index, and load flags.
   2510 	(FT_Select_Metrics, FT_Request_Metrics): Remove all tracing.
   2511 	(FT_Select_Size, FT_Request_Size): Improve tracing.
   2512 
   2513 2017-10-18  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2514 
   2515 	[base] Improve tracing in FT_Render_Glyph.
   2516 
   2517 	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Add total coverage
   2518 	calculations and downgrade Netpbm dump to bitmap:7.
   2519 
   2520 2017-10-15  Ewald Hew  <ewaldhew (a] gmail.com>
   2521 
   2522 	[cff] Fix segfault on missing `psaux' (#52218)
   2523 
   2524 	* src/cff/cffload.c (cff_done_blend): Add a check for possible nullptr.
   2525 
   2526 	* modules.cfg: Update dependency list.
   2527 
   2528 2017-10-15  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2529 
   2530 	[base, cff] Fix MSVC warnings.
   2531 
   2532 	* src/base/ftobjs.c (FT_New_Library): C4702: unreachable code.
   2533 	(ft_glyphslot_preset_bitmap): C4244: possible loss of data.
   2534 	* src/cff/cffload.c (cff_blend_doBlend): C4244: possible loss of data.
   2535 	Turn `sum' into unsigned.
   2536 
   2537 2017-10-14  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2538 
   2539 	[base] Netpbm image tracing.
   2540 
   2541 	* src/base/ftobjs.c (FT_Load_Glyph): Trace bitmap size.
   2542 	(FT_Render_Glyph_Internal): Trace bitmap in Netpbm format.
   2543 
   2544 	* src/smooth/ftgrays.c (gray_sweep): Sweep remnants of span tracing.
   2545 
   2546 2017-10-14  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2547 
   2548 	* builds/windows/ftdebug.c (FT_Message): Print to stderr.
   2549 	* builds/wince/ftdebug.c (FT_Message): Ditto.
   2550 
   2551 2017-10-14  Behdad Esfahbod  <behdad (a] behdad.org>
   2552 
   2553 	[afshaper] Delay creating `hb_set' objects until needed.
   2554 
   2555 	In runs on Noto Naskh Arabic, this results in 89 sets created
   2556 	instead of 340 before.  Makes auto-hinter setup with HarfBuzz
   2557 	enabled 20% to 30% faster.
   2558 
   2559 	* src/autofit/afshaper.c (af_shaper_get_coverage): Implement it.
   2560 
   2561 2017-10-12  Ewald Hew  <ewaldhew (a] gmail.com>
   2562 
   2563 	[type1, cid] Add hinting engine switch.
   2564 
   2565 	Implement property service in `type1' and `cid' drivers to allow
   2566 	switching between FreeType or Adobe hinting engine when both are
   2567 	available.
   2568 
   2569 	* src/cid/cidriver.c (cid_property_{set,get}, cid_services),
   2570 	src/type1/t1driver.c (t1_property_{set,get}, t1_services): Add
   2571 	Properties service.
   2572 
   2573 	* src/cid/cidobjs.c (cid_driver_init), src/type1/t1objs.c
   2574 	(T1_Driver_Init): Add default property values.
   2575 
   2576 2017-10-12  Ewald Hew  <ewaldhew (a] gmail.com>
   2577 
   2578 	Add T1_CONFIG_OPTION_OLD_ENGINE configuration option.
   2579 
   2580 	This controls whether the old Type 1 engine gets compiled into FreeType.
   2581 	It is disabled by default.
   2582 
   2583 	* devel/ftoption.h, include/freetype/config/ftoption.h
   2584 	(T1_CONFIG_OPTION_OLD_ENGINE): New macro.
   2585 
   2586 	* include/freetype/internal/psaux.h (PS_Decoder): Remove unused field.
   2587 	* include/freetype/internal/psaux.h, src/cid/cidgload.c
   2588 	(cid_load_glyph), src/psaux/psauxmod.c, src/psaux/psobjs.c
   2589 	(ps_builder_add_point), src/psaux/t1decode.c
   2590 	(t1_lookup_glyph_by_stdcharcode, t1_decoder_parse_glyph,
   2591 	t1operator_seac, t1_decoder_parse_charstrings), src/psaux/t1decode.h,
   2592 	src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Surround
   2593 	relevant code with macro.
   2594 	Minor code changes.
   2595 
   2596 2017-10-12  Ewald Hew  <ewaldhew (a] gmail.com>
   2597 
   2598 	Extract width parsing from Type 1 parser.
   2599 
   2600 	Duplicate the fast advance width calculations from the old parser.
   2601 	This is to facilitate adding options for compiling out the old parser.
   2602 
   2603 	* src/psaux/t1decode.{c,h} (t1_decoder_parse_metrics): New function.
   2604 	* include/freetype/internal/psaux.h (T1_Decoder_Funcs): New entry
   2605 	`parse_metrics'.
   2606 	* src/psaux/psauxmod.c: Set the new entry.
   2607 
   2608 	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String),
   2609 	src/cid/cidgload.c (cid_load_glyph): Separate
   2610 	conditional for selecting engine.
   2611 
   2612 2017-10-09  Werner Lemberg  <wl (a] gnu.org>
   2613 
   2614 	* src/base/ftoutln.c (FT_Outline_Translate): Fix integer overflow.
   2615 
   2616 	Reported as
   2617 
   2618 	  https://bugs.chromium.org/p/chromium/issues/detail?id=772775
   2619 
   2620 2017-10-08  Werner Lemberg  <wl (a] gnu.org>
   2621 
   2622 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Integer overflows.
   2623 
   2624 	Reported as
   2625 
   2626 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3579
   2627 
   2628 2017-10-07  Werner Lemberg  <wl (a] gnu.org>
   2629 
   2630 	[sfnt] Adjust behaviour of PS font names for variation fonts.
   2631 
   2632 	* src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Use a named instance's
   2633 	PS name only if no variation is applied.
   2634 
   2635 2017-10-07  Werner Lemberg  <wl (a] gnu.org>
   2636 
   2637 	[cff, truetype] Adjust behaviour of named instances.
   2638 
   2639 	This commit completely separates the interaction between named
   2640 	instances and variation functions.  In particular, resetting the
   2641 	variation returns to the current named instance (if set) and not to
   2642 	the base font.
   2643 
   2644 	As a side effect, variation functions no longer change the named
   2645 	instance index.
   2646 
   2647 	* src/cff/cffobjs.c (cff_face_init): Use MM service's `set_instance'
   2648 	function.
   2649 	Also apply `MVAR' table to named instances.
   2650 
   2651 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Add cast.
   2652 	(tt_set_mm_blend): No longer check whether requested variation
   2653 	coincides with a named instance.
   2654 	(TT_Set_Var_Design): Use current named instance for default
   2655 	coordinates.
   2656 	* src/truetype/ttobjs.c (tt_face_init): Use `TT_Set_Named_Instance'.
   2657 
   2658 2017-10-07  Werner Lemberg  <wl (a] gnu.org>
   2659 
   2660 	Make `FT_Set_Named_Instance' work.
   2661 
   2662 	* src/cff/cffdrivr.c (cff_set_instance): New function.
   2663 	(cff_service_multi_masters): Register it.
   2664 
   2665 	* src/truetype/ttgxvar.c (TT_Set_Named_Instance): New function.
   2666 	* src/truetype/ttgxvar.h: Updated.
   2667 	* src/truetype/ttdriver.c (tt_service_gx_multi_masters): Register
   2668 	it.
   2669 
   2670 	* src/type1/t1load.c (T1_Reset_MM_Blend): New function.
   2671 	* src/type1/t1load.h: Updated.
   2672 	* src/type1/t1driver.c (t1_service_multi_masters): Register it.
   2673 
   2674 2017-10-07  Werner Lemberg  <wl (a] gnu.org>
   2675 
   2676 	Make `FT_FACE_FLAG_VARIATION' work.
   2677 
   2678 	* include/freetype/internal/tttypes.h (TT_Face): Remove
   2679 	`is_default_instance'; this can be replaced with a combination of
   2680 	`FT_IS_VARIATION' and `FT_IS_INSTANCE'.
   2681 
   2682 	* src/cff/cffdrivr.c (cff_get_advances): Updated.
   2683 
   2684 	* src/sfnt/sfdriver.c (sfnt_get_ps_name), src/sfnt/sfobjs.c
   2685 	(sfnt_init_face): Updated.
   2686 
   2687 	* src/truetype/ttdriver.c (tt_get_advances), src/truetype/ttgload.c
   2688 	(TT_Process_Simple_Glyph, load_truetype_glyph, IS_DEFAULT_INSTANCE),
   2689 	src/truetype/ttgxvar.c (tt_set_mm_blend): Updated.
   2690 	* src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design):
   2691 	Handle `FT_FACE_FLAG_VARIATION'.
   2692 
   2693 	* src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design): Handle
   2694 	`FT_FACE_FLAG_VARIATION'.
   2695 
   2696 2017-10-07  Werner Lemberg  <wl (a] gnu.org>
   2697 
   2698 	New function `FT_Set_Named_Instance'.
   2699 
   2700 	No effect yet.
   2701 
   2702 	* src/base/ftmm.c (FT_Set_Named_Instance): New function.
   2703 
   2704 	* include/freetype/ftmm.h: Updated.
   2705 
   2706 2017-10-07  Werner Lemberg  <wl (a] gnu.org>
   2707 
   2708 	Add macros for checking whether a font variation is active.
   2709 
   2710 	* include/freetype/freetype.h (FT_FACE_FLAG_VARIATION,
   2711 	FT_IS_VARIATION): New macros.
   2712 	No effect yet.
   2713 
   2714 2017-10-07  Werner Lemberg  <wl (a] gnu.org>
   2715 
   2716 	Add framework for setting named instance in MM service.
   2717 
   2718 	* include/freetype/internal/services/svmm.h (FT_Set_Instance_Func):
   2719 	New function typedef.
   2720 	(MultiMasters): Add `set_instance' member.
   2721 	(FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
   2722 
   2723 	* src/cff/cffdrivr.c (cff_service_multi_masters),
   2724 	src/truetype/ttdriver (tt_service_gx_multi_masters),
   2725 	src/type1/t1driver.c (t1_service_multi_masters): Updated.
   2726 
   2727 2017-10-07  Werner Lemberg  <wl (a] gnu.org>
   2728 
   2729 	[type1] Minor code shuffling.
   2730 
   2731 	* src/type1/t1load.c (T1_Set_MM_Blend): Make it a wrapper of...
   2732 	(t1_set_mm_blend): ...this new function.
   2733 	(T1_Set_MM_Design): Use `t1_set_mm_blend'.
   2734 
   2735 2017-10-05  Werner Lemberg  <wl (a] gnu.org>
   2736 
   2737 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Fix integer
   2738 	overflow.
   2739 
   2740 	Reported as
   2741 
   2742 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3539
   2743 
   2744 2017-10-05  Werner Lemberg  <wl (a] gnu.org>
   2745 
   2746 	Fix compiler warnings.
   2747 
   2748 	* src/cff/cffdrivr.c (cff_ps_get_font_extra): Avoid code that relies
   2749 	on numeric overflow.
   2750 	Add cast.
   2751 
   2752 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix variable
   2753 	types, add cast.
   2754 
   2755 2017-10-04  John Tytgat  <John.Tytgat (a] esko.com>
   2756 
   2757 	[cff] Add support for `FSType'.
   2758 
   2759 	* include/freetype/internal/cfftypes.h (CFF_FontRec): Add
   2760 	`font_extra' entry.
   2761 
   2762 	* src/cff/cffdrivr.c (cff_ps_get_font_extra): New function to
   2763 	retrieve FSType info from the embedded PostScript data.
   2764 	(cff_service_ps_info): Register function.
   2765 
   2766 	* src/cff/cffload.c (cff_font_done): Free `font_extra'.
   2767 
   2768 2017-09-30  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2769 
   2770 	Signedness fixes in bitmap presetting.
   2771 
   2772 	Reported as
   2773 
   2774 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3514.
   2775 
   2776 	* src/raster/ftrend1.c (ft_raster1_render): Explicitly signed height.
   2777 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
   2778 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Explicitly unsigned
   2779 	subtraction.
   2780 
   2781 2017-09-29  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2782 
   2783 	Bitmap metrics presetting [2/2].
   2784 
   2785 	* src/base/ftobjs.c (FT_Load_Glyph): Preset the bitmap metrics when
   2786 	appropriate but `FT_Render_Glyph' is not called.
   2787 	* include/freetype/freetype.h (FT_GlyphSlotRec): Document the change.
   2788 
   2789 2017-09-28  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2790 
   2791 	[smooth, raster] Miscellaneous cleanups.
   2792 
   2793 	* src/raster/ftrend1.c (ft_raster1_render): Clean up the exit.
   2794 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Reduce
   2795 	translations and clean up the exit.
   2796 	(ft_smooth_render_lcd, ft_smooth_render_lcd): Remove unused `error'.
   2797 
   2798 2017-09-28  Ben Wagner  <bungeman (a] google.com>
   2799 
   2800 	[truetype] Really, really fix #52082.
   2801 
   2802 	* src/truetype/ttinterp.c (Ins_MDRP): Correct conditional.
   2803 
   2804 2017-09-28  Werner Lemberg  <wl (a] gnu.org>
   2805 
   2806 	* src/psaux/psintrp.c (cf2_doStems): Fix integer overflow.
   2807 
   2808 	Reported as
   2809 
   2810 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3510
   2811 
   2812 2017-09-28  Ewald Hew  <ewaldhew (a] gmail.com>
   2813 
   2814 	* src/cid/cidgload.c (cid_slot_load_glyph): Fix memory leak.
   2815 
   2816 	Reported as
   2817 
   2818 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3489
   2819 
   2820 2017-09-28  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2821 
   2822 	Bitmap metrics presetting [1/2].
   2823 
   2824 	This mainly just extracts the code for presetting the bitmap metrics
   2825 	from the monochrome, grayscale, and LCD renderers into a separate
   2826 	function.
   2827 
   2828 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): New function that
   2829 	calculates prospective bitmap metrics for the given rendering mode.
   2830 	* include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap):
   2831 	Declare it.
   2832 
   2833 	* src/base/ftlcdfil.c (ft_lcd_padding): New helper function that adds
   2834 	padding to CBox taking into account pecularities of LCD rendering.
   2835 	* include/freetype/ftlcdfil.h (ft_lcd_padding): Declare it.
   2836 
   2837 	* src/raster/ftrend1.c (ft_raster1_render): Reworked to use
   2838 	`ft_glyphslot_preset_bitmap'.
   2839 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
   2840 	(ft_smooth_render_lcd, ft_smooth_render_lcd): The pixel_mode setting
   2841 	is moved to `ft_glyphslot_preset_bitmap'.
   2842 
   2843 2017-09-28  Ewald Hew  <ewaldhew (a] gmail.com>
   2844 
   2845 	[psaux] Fix compiler warning.
   2846 
   2847 	* src/psaux/pshints.c (cf2_hintmap_dump): Add switch for tracing
   2848 	code.
   2849 
   2850 2017-09-27  Werner Lemberg  <wl (a] gnu.org>
   2851 
   2852 	* src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning.
   2853 
   2854 2017-09-25  Werner Lemberg  <wl (a] gnu.org>
   2855 
   2856 	[psaux] Fix compiler warnings.
   2857 
   2858 	* src/psaux/psft.c (cf2_initLocalRegionBuffer): Remove redundant
   2859 	test.
   2860 
   2861 	* src/psaux/psintrp.c (cf2_interpT2CharString)
   2862 	<cf2_escCALLOTHERSUBR>: Add casts.
   2863 
   2864 	* src/psaux/psobjs.c (ps_decoder_init): Add cast.
   2865 
   2866 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   2867 
   2868 	[psaux] Minor fixes.
   2869 
   2870 	* include/freetype/internal/psaux.h, src/psaux/psobjs.{c,h}:
   2871 	Rearrange `ps_builder_init' arguments to conventional order.
   2872 
   2873 	* src/psaux/psft.c (cf2_decoder_parse_charstrings): Add a check and
   2874 	notice for `SubFont' in Type 1 mode.
   2875 
   2876 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   2877 
   2878 	[psaux] Move `psdecode' into `psobjs'.
   2879 
   2880 	As the former only contains a single procedure, move it into
   2881 	`psobjs' for simplicity.  Also change the parameter order to the
   2882 	conventional one.
   2883 
   2884 	* src/psaux/psdecode.c (ps_decoder_init): Moved to...
   2885 	* src/psaux/psobjs.c: ...Here.
   2886 	* src/psaux/psdecode.h, src/psaux/psobjs.h: Ditto.
   2887 
   2888 	* include/freetype/internal/psaux.h (PSAux_ServiceRec): Update
   2889 	`ps_decoder_init' function signature.
   2890 
   2891 	* src/cff/cffgload.c, src/cid/cidgload.c, src/type1/t1gload.c:
   2892 	Update calls.
   2893 
   2894 	* src/psaux/psaux.c, src/psaux/psauxmod.c: Update includes.
   2895 
   2896 	* src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRV_SRC):
   2897 	Update file references.
   2898 
   2899 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   2900 
   2901 	[psaux] Fix Type 1 hinting.
   2902 
   2903 	Type 1 hinting breaks sometimes when mid-charstring hints should
   2904 	have been in the initial hintmap.  This fix adds a preprocessing
   2905 	pass that reads all hints and builds the correct initial hintmap
   2906 	first, before proceeding to build the glyph outline.
   2907 
   2908 	* src/psaux/psintrp.c (cf2_interpT2CharString): New
   2909 	`initial_map_ready' boolean flag.
   2910 	Ignore outline commands and hint changes on first pass.
   2911 	<cf2_cmdENDCHAR>: Add section to build hintmap and rewind.
   2912 
   2913 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   2914 
   2915 	[psaux] Add tracing for hints.
   2916 
   2917 	* src/psaux/pshints.c (cf2_hintmap_dump): New function.
   2918 	(cf2_hintmap_insertHint): Trace incoming and inserted hints.
   2919 	(cf2_hintmap_build): Dump hintmap before and after hint adjustment.
   2920 
   2921 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   2922 
   2923 	[psaux] Minor fixes.
   2924 
   2925 	* src/psaux/psintrp.c (cf2_interpT2CharString): Fix check for pop
   2926 	results.
   2927 	s/font->decoder/decoder/ where necessary.
   2928 	<cf2_cmdHSTEM, cf2_cmdVSTEM, cf2_escHSTEM3, cf2_escVSTEM3>: Use
   2929 	offset parameter in `cf2_doStems' instead of doing correction for
   2930 	left-sidebearing.
   2931 
   2932 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   2933 
   2934 	[cid] Use the new engine.
   2935 
   2936 	* src/cid/cidgload.c: Update includes.
   2937 	(cid_load_glyph, cid_slot_load_glyph): Implement changes to glyph
   2938 	loading code as with `type1' module.
   2939 
   2940 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   2941 
   2942 	[cid] Add Adobe engine configuration.
   2943 
   2944 	This is similar to what was done in the `type1' module.
   2945 
   2946 	* src/cid/cidriver.c (t1cid_driver_class): Update declaration.
   2947 	* src/cid/cidobjs.c: Include FT_TYPE1_DRIVER_H.
   2948 	(cid_driver_init): Update code.
   2949 
   2950 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   2951 
   2952 	[psaux] Change subfont synthesis for CID fonts.
   2953 
   2954 	Change `t1_make_subfont' to take in the Private dict record as an
   2955 	argument.  This is because Type 1 and CID font records in FreeType
   2956 	have this in different places.
   2957 
   2958 	* src/psaux/psobjs.c (t1_make_subfont): Change `T1_Face' to
   2959 	`FT_Face' so that CID is also accepted.
   2960 	Take `PS_Private' as an argument and let caller figure out where the
   2961 	Private dict actually is.
   2962 	Update references.
   2963 
   2964 	* include/freetype/internal/psaux.h, src/psaux/psobjs.h: Update
   2965 	declaration.
   2966 
   2967 	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Update
   2968 	call.
   2969 
   2970 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   2971 
   2972 	[type1] Switch to Adobe engine.
   2973 
   2974 	* src/type1/t1objs.c (T1_Driver_Init): Set default to Adobe engine.
   2975 
   2976 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   2977 
   2978 	[psaux] Extend Adobe interpreter (seac).
   2979 
   2980 	This concludes the changes needed to add Type 1 support.
   2981 
   2982 	* src/psaux/psintrp.c: Update includes.
   2983 	(cf2_interpT2CharString) <cf2_escSEAC>: Implement this similarly to
   2984 	implied seac for CFF.
   2985 
   2986 	* src/psaux/t1decode.c (t1_lookup_glyph_by_stdcharcode_ps): New
   2987 	function to look up the glyph index.
   2988 
   2989 	* src/psaux/psft.c (cf2_getT1SeacComponent,
   2990 	cf2_freeT1SeacComponent): New functions to get the charstrings for
   2991 	seac components.
   2992 
   2993 	* src/psaux/t1decode.h, src/psaux/psft.h: Update declarations.
   2994 
   2995 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   2996 
   2997 	[psaux] Extend Adobe interpreter (flex in callothersubr).
   2998 
   2999 	* src/psaux/psintrp.c (cf2_interpT2CharString)
   3000 	<cf2_escCALLOTHERSUBR>: Fix Flex feature handling (OtherSubrs 0, 1,
   3001 	2).
   3002 	<cf2_cmdRMOVETO>: Do not actually move the `glyphPath' while doing
   3003 	flex.  This is to avoid closing the current contour.
   3004 
   3005 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3006 
   3007 	[psaux] Extend Adobe interpreter (callothersubr).
   3008 
   3009 	* src/psaux/psintrp.c (cf2_interpT2CharString)
   3010 	<cf2_escCALLOTHERSUBR>: Copy code from
   3011 	`t1_decoder_parse_charstrings' (in `t1decode.c').
   3012 	OtherSubr 3 (change hints) should reset the hintmask, so that the
   3013 	new hints are applied.
   3014 	Fix function calls and stack access.
   3015 
   3016 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3017 
   3018 	[psaux] Extend Adobe interpreter (pop).
   3019 
   3020 	* src/psaux/psintrp.c (cf2_interpT2CharString): Change how unhandled
   3021 	OtherSubr results are stored.  Implement the PostScript stack using
   3022 	an array.
   3023 	<cf2_escPOP>: Ensure that the stack is not cleared after getting
   3024 	`OtherSubr' results.
   3025 	Fix stack access.
   3026 
   3027 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3028 
   3029 	[psaux] Extend Adobe interpreter (callsubr).
   3030 
   3031 	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdCALLSUBR>:
   3032 	Type 1 mode.
   3033 
   3034 	* src/psaux/psft.c (cf2_initLocalRegionBuffer): Add Type 1 mode.
   3035 
   3036 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3037 
   3038 	[psaux] Extend Adobe interpreter (div, four-byte numbers).
   3039 
   3040 	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_escDIV>: Add
   3041 	Type 1 mode.  Type 1 requires large integers to be followed by
   3042 	`div'; cf. `Adobe Type 1 Font Format', section 6.2.
   3043 	<op == 255>: Push Type 1 four-byte numbers as `Int' always.  This is
   3044 	to ensure `div' and `callsubr' get values they can use.
   3045 
   3046 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3047 
   3048 	[psaux] Extend Adobe interpreter (hints).
   3049 
   3050 	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
   3051 	cf2_cmdVSTEM>: Add correction for left sidebearing in Type 1 mode.
   3052 	Allow adding hints mid-charstring.
   3053 	<cf2_escVSTEM3, cf2_escHSTEM3>: Translate into equivalent commands
   3054 	for three normal stem hints.  This requires some recalculation of
   3055 	stem positions.
   3056 	Correction for left sidebearing.
   3057 
   3058 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3059 
   3060 	[psaux] Extend Adobe interpreter (hsbw, sbw).
   3061 
   3062 	* src/psaux/psintrp.c (cf2_doStems): `hsbw' or `sbw' must be the
   3063 	first operation in a Type 1 charstring.
   3064 	(cf2_interpT2CharString): Remove unused variables.
   3065 	<cf2_cmdHMOVETO, cf2_cmdVMOVETO, cf2_cmdRMOVETO>: `hsbw' or `sbw'
   3066 	must be the first operation in a Type 1 charstring.
   3067 	<cf2_cmdHSBW, cf2_escSBW>: Fix data access and add correction for
   3068 	left sidebearing.
   3069 
   3070 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3071 
   3072 	[psaux] Extend Adobe interpreter (setcurrentpoint).
   3073 
   3074 	* src/psaux/psintrp.c (cf2_interpT2CharString)
   3075 	<cf2_escSETCURRENTPT>: Fix stack access.
   3076 
   3077 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3078 
   3079 	[psaux] Extend Adobe interpreter (closepath).
   3080 
   3081 	* src/psaux/psintrp.c (cf2_interpT2CharString) <c2f_cmdCLOSEPATH>:
   3082 	Use the right builder function.  We can use the `haveWidth' boolean
   3083 	already present, instead of implementing `parse_state'.
   3084 
   3085 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3086 
   3087 	[psaux] Add Type 1 operations to Adobe CFF interpreter.
   3088 
   3089 	The following Type 1 specific ops have been added (copied from
   3090 	`t1decode'):
   3091 
   3092 	  closepath
   3093 	  vstem3
   3094 	  hstem3
   3095 	  seac
   3096 	  sbw
   3097 	  callothersubr
   3098 	  pop
   3099 	  setcurrentpoint
   3100 	  hsbw
   3101 
   3102 	The following require a Type 1 mode, because of differences in
   3103 	specification:
   3104 
   3105 	  hstem
   3106 	  vstem
   3107 	  vmoveto
   3108 	  callsubr
   3109 	  div
   3110 	  rmoveto
   3111 	  hmoveto
   3112 	  Numbers
   3113 
   3114 	The subsequent commits will implement these changes and adapt
   3115 	accesses of data and objects to the new interpreter.
   3116 
   3117 	NOTE: Will not compile in the meantime!
   3118 
   3119 	* src/psaux/psintrp.c: Add opcodes to enum.
   3120 	(cf2_interpT2CharString): Copy relevant code over from
   3121 	`t1_decoder_parse_charstrings' (in `t1decode.c').
   3122 
   3123 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3124 
   3125 	[type1] Fixes for rendering.
   3126 
   3127 	The Type 1 advance width calculation passes null for glyph slot,
   3128 	etc, which can cause null pointer access in the new interpreter.
   3129 	Fall back to the old one for now.
   3130 
   3131 	Fix the large glyph retry code and ensure hinting and scaling flags
   3132 	are set properly.
   3133 
   3134 	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add a
   3135 	check for metrics_only.
   3136 	Set the `force_scaling' flag.
   3137 	(T1_Parse_Glyph): Updated.
   3138 	(T1_Load_Glyph): Add `hinting' and `scaled' flags.
   3139 
   3140 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3141 
   3142 	[psaux] Add missing objects (2/2).
   3143 
   3144 	Synthesize a `SubFont' object for Type 1 fonts.  This is used in the
   3145 	interpreter to access Private dict data, which are stored in
   3146 	different places for Type 1 and CFF.  This allows the same data to
   3147 	be used in either mode.
   3148 
   3149 	* src/psaux/psobjs.c (t1_make_subfont): New procedure to copy
   3150 	required values to a dummy `CFF_SubFont' object.  This is similar to
   3151 	`cff_make_private_dict'.
   3152 	* src/psaux/psobjs.h: Add the new declaration.
   3153 
   3154 	* include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Ditto.
   3155 	Add this to the PSAux Service for future use with CID fonts.
   3156 
   3157 	* src/type1/t1gload.c: Include FT_INTERNAL_CFF_TYPES_H.
   3158 	(T1_Parse_Glyph_And_Get_Char_String): Add the call.
   3159 
   3160 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3161 
   3162 	[psaux] Add missing objects for Type 1 (1/2).
   3163 
   3164 	Move `CF2_Font' instance to `PS_Decoder'.  This is the context for
   3165 	the interpreter and since it is currently stored in `CFF_Font', is
   3166 	unavailable in Type 1 mode.
   3167 
   3168 	* include/freetype/internal/psaux.h (T1_Decoder, PS_Decoder): New
   3169 	`cf2_instance' field.
   3170 
   3171 	* src/psaux/psdecode.c (ps_decoder_init): Copy `cf2_instance' to
   3172 	`PS_Decoder'.
   3173 
   3174 	* src/psaux/t1decode.c (t1_decoder_done): Add finalization code.
   3175 
   3176 	* src/psaux/psft.c (cf2_decoder_parse_charstrings): Update accesses.
   3177 
   3178 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3179 
   3180 	Allow `type1' module to use the Adobe engine.
   3181 
   3182 	Add the callback and some conditionals to switch between the two
   3183 	engines.
   3184 
   3185 	* include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Change
   3186 	function declarations.
   3187 	* src/psaux/psauxmod.c (T1_Decoder_FuncsRec): Register the
   3188 	callbacks.
   3189 
   3190 	* src/psaux/psobjs.c (ps_builder_add_point): Add conditionals for
   3191 	number conversion.
   3192 
   3193 	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add code
   3194 	to choose which renderer to use.
   3195 
   3196 	* src/cid/cidgload.c (cid_load_glyph): Update call.
   3197 	* src/base/ftobjs.c, src/psaux/psobjs.c, src/type1/t1gload.c: Update
   3198 	includes.
   3199 
   3200 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3201 
   3202 	[type1] Add Adobe engine configuration.
   3203 
   3204 	Use the previously changed PS_Driver in type1 module to store
   3205 	hinting engine configuration.
   3206 
   3207 	* include/freetype/ftt1drv.h: New file.
   3208 	Duplicate and rename config options from CFF.
   3209 	* include/freetype/config/ftheader.h (FT_TYPE1_DRIVER_H): New macro.
   3210 
   3211 	* src/type1/t1driver.c (t1_driver_class): Update declaration.
   3212 	* src/type1/t1objs.c: Include FT_TYPE1_DRIVER_H.
   3213 	(T1_Driver_Init): Update code.
   3214 
   3215 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3216 
   3217 	[cff] Move and rename `CFF_Driver'.
   3218 
   3219 	This is so that we can use the same hinting engine parameters for
   3220 	Type 1.
   3221 
   3222 	* include/freetype/internal/cffotypes.h (CFF_Driver): Rename and
   3223 	move to...
   3224 	* include/freetype/internal/psaux.h (PS_Driver): ...here.
   3225 
   3226 	* src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffload.c,
   3227 	src/cff/cffobjs.c, src/cff/cffobjs.h, src/psaux/psft.c,
   3228 	src/psaux/psobjs.c: Update references.
   3229 
   3230 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3231 
   3232 	[psaux, type1] Reorganize object fields.
   3233 
   3234 	Make some fields more generic, so that we can access them the same
   3235 	way regardless of Type 1 or CFF.
   3236 
   3237 	* include/freetype/internal/psaux.h (PS_Builder): Change `TT_Face'
   3238 	to `FT_Face'.
   3239 	Remove unused fields.
   3240 
   3241 	* src/psaux/psft.c: Update all accesses of `PS_Builder.face'.
   3242 	Add some asserts to guard against casting `T1_Face' as `TT_Face'.
   3243 
   3244 	* src/type1/t1objs.h (T1_GlyphSlot): Reorder fields to follow
   3245 	`CFF_GlyphSlot', so that we can pretend they are the same in the
   3246 	interpreter.
   3247 
   3248 	* src/psaux/psobjs.c (ps_builder_init, ps_builder_add_point):
   3249 	Updated with above changes.
   3250 
   3251 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3252 
   3253 	[psaux] Prepare for Type 1 mode.
   3254 
   3255 	Add some checks for Type 1 data passing through.
   3256 
   3257 	* src/psaux/psfont.h (CF2_Font): Add `isT1' flag.
   3258 	* src/psaux/psfont.c (cf2_font_setup): Skip the variations and blend
   3259 	code which is not applicable for Type 1.
   3260 
   3261 	* src/psaux/psft.c (cf2_decoder_parse_charstrings): Avoid accessing
   3262 	`decoder->cff' in Type 1 mode.
   3263 	Copy `is_t1' flag to `CF2_Font'.
   3264 
   3265 2017-09-25  Ewald Hew  <ewaldhew (a] gmail.com>
   3266 
   3267 	[psaux, cff] Use the new objects.
   3268 
   3269 	* include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Fix
   3270 	switching between new and old engines.
   3271 
   3272 	* src/cff/cffgload.c, src/cff/cffparse.c: Update calls.
   3273 
   3274 	* src/psaux/psblues.c, src/psaux/psfont.c, src/psaux/psfont.h,
   3275 	src/psaux/psft.c, src/psaux/psft.h, src/psaux/psintrp.c: Update all
   3276 	to use new objects.
   3277 
   3278 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   3279 
   3280 	[psaux] Objects for new interpreter (part 2).
   3281 
   3282 	Make the new objects copy over values.  They are essentially wrapper
   3283 	types for the different decoders/builders.
   3284 
   3285 	* include/freetype/internal/psaux.h: Update declarations.
   3286 	(PS_Builder): Add `is_t1' flag.
   3287 	(PS_Decoder_{Get,Free}_Glyph_Callback): Renamed to...
   3288 	(CFF_Decoder_{Get,Free}_Glyph_Callback: ... this.
   3289 	(PS_Decoder): Updated.
   3290 	Add `t1_parse_callback' member.
   3291 	(PSAux_ServiceRec): Add `ps_decoder_init' member.
   3292 
   3293 	* src/psaux/psdecode.h, src/psaux/psobjs.h: Update declarations.
   3294 
   3295 	* src/psaux/psdecode.c, src/psaux/psobjs.c: Implement copy with two
   3296 	modes.
   3297 
   3298 	* src/psaux/psauxmod.c: Add builder and decoder functions to `PSAux'
   3299 	service.
   3300 
   3301 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   3302 
   3303 	[psaux] Add objects for new interpreter.
   3304 
   3305 	Introduce `PS_Decoder' and `PS_Builder' which include all fields
   3306 	from either Type 1 or CFF decoders/builders.
   3307 
   3308 	* include/freetype/internal/psaux.h (PS_Builder, PS_Decoder): New
   3309 	structs.
   3310 
   3311 	* src/psaux/psobjs.c, src/psaux/psobjs.h: Add `PS_Builder'
   3312 	functions.
   3313 
   3314 	* src/psaux/psdecode.c, src/psaux/psdecode.h: New files to hold
   3315 	`PS_Decoder' initialization functions.
   3316 
   3317 	* src/psaux/psaux.c, src/psaux/Jamfile (_sources),
   3318 	src/psaux/rules.mk (PSAUX_DRV_SRC): Updated.
   3319 
   3320 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   3321 
   3322 	[psaux] Rename files.
   3323 
   3324 	Replace the `cf2' file name prefix with `ps' as the Adobe engine
   3325 	will be used for both PostScript Types 1 and 2 (CFF) instead of just
   3326 	CFF.
   3327 
   3328 	s/cf2/ps/ for all following.
   3329 
   3330 	* src/psaux/cf2*: Rename files.
   3331 	* src/psaux/*: Update includes.
   3332 
   3333 	* src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRC_SRC,
   3334 	PSAUX_DRV_H): Update file references.
   3335 
   3336 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   3337 
   3338 	[psaux] Minor fix.
   3339 
   3340 	Use `MultiMasters' service in `psaux' instead of a call to `cff'.
   3341 	The project builds if CFF_CONFIG_OPTION_OLD_ENGINE is not defined.
   3342 
   3343 	* src/psaux/cf2ft.c: Update includes.
   3344 	(cf2_getNormalizedVector): Use `mm->get_var_blend' instead of
   3345 	`cff_get_var_blend'.
   3346 
   3347 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   3348 
   3349 	[psaux, cff] Move `cff_random' into `psaux' service.
   3350 
   3351 	NOTE: Does not compile!
   3352 
   3353 	Minor fix to allow both `cff' and `psaux' to use `cff_random'.
   3354 
   3355 	* src/cff/cffload.c (cff_random): Move to...
   3356 	* src/psaux/psobjs.c: Here.
   3357 	* src/cff/cffload.h: Move corresponding declaration to
   3358 	`src/psaux/psobjs.h'.
   3359 
   3360 	* include/freetype/internal/psaux.h (PSAux_ServiceRec): Register the
   3361 	function here...
   3362 	* src/psaux/psauxmod.c: And here.
   3363 
   3364 	* src/cff/cffload.c, src/psaux/cf2intrp.c: Update code.
   3365 
   3366 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   3367 
   3368 	[cff] Move struct declarations to `freetype/internal'.
   3369 
   3370 	NOTE: Does not compile!
   3371 
   3372 	This is so that the CFF functions moved to `psaux' can access the
   3373 	same structs that they need.
   3374 
   3375 	* src/cff/cfftypes.h: Moved to...
   3376 	* include/freetype/internal/cfftypes.h: ...Here.
   3377 
   3378 	* src/cff/cffobjs.h: Moved the struct declarations to...
   3379 	* include/freetype/internal/cffotypes.h: ... this new file.
   3380 
   3381 	* include/freetype/internal/internal.h (FT_INTERNAL_CFF_TYPES_H,
   3382 	FT_INTERNAL_CFF_OBJECT_TYPES_H): New macros.
   3383 
   3384 	* src/cff/cffcmap.h, src/cff/cffdrivr.c, src/cff/cffgload.c,
   3385 	src/cff/cffgload.h, src/cff/cffload.h, src/cff/cffobjs.c,
   3386 	src/cff/cffobjs.h, src/cff/cffparse.h, src/psaux/psobjs.h,
   3387 	include/freetype/internal/psaux.h,
   3388 	include/freetype/internal/services/svcfftl.h: Update includes.
   3389 
   3390 	* src/cff/rules.mk (CFF_DRV_H): Updated.
   3391 
   3392 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   3393 
   3394 	[psaux, cff] Add new service for inter-module calls.
   3395 
   3396 	NOTE: Does not compile!
   3397 
   3398 	This is to allow CFF functions moved to `psaux' to call functions
   3399 	declared in `src/cff/cffload.h'.
   3400 
   3401 	* include/freetype/internal/services/svcfftl.h: New file, setting up
   3402 	a `CFFLoad' service.
   3403 
   3404 	* include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC10,
   3405 	FT_DEFINE_SERVICEDESCREC): New macros.
   3406 	(FT_SERVICE_CFF_TABLE_LOAD_H): New macro.
   3407 
   3408 	* src/cff/cffdrivr.c, src/cff/cffpic.h: Register the new service.
   3409 
   3410 	* src/cff/cfftypes.h (CFF_FontRec), src/psaux/cf2font.h
   3411 	(CF2_FontRec): Add service interface.
   3412 
   3413 	* src/cff/cffobjs.c, src/psaux/cf2font.c, src/psaux/cf2ft.c,
   3414 	src/psaux/cf2intrp.c, src/psaux/cffdecode.c: Use the new service.
   3415 
   3416 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   3417 
   3418 	[psaux, cff] Add callbacks for inter-module calls.
   3419 
   3420 	NOTE: Does not compile!
   3421 
   3422 	* include/freetype/internal/psaux.h: Add function pointer
   3423 	declarations.
   3424 
   3425 	* src/psaux/cffdecode.c (cff_decoder_init): Update to take in
   3426 	callbacks.
   3427 	* src/psaux/cffdecode.h: Ditto.
   3428 
   3429 	* src/cff/cffgload.c (cff_compute_max_advance, cff_slot_load):
   3430 	Update calls to pass in callbacks.
   3431 	* src/psaux/cf2ft.c, src/psaux/cffdecode.c: Use them.
   3432 
   3433 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   3434 
   3435 	[psaux, cff] Create new `PSAux' service interface entries.
   3436 
   3437 	NOTE: Does not compile!
   3438 
   3439 	* include/freetype/internal/psaux.h: Include
   3440 	FT_INTERNAL_TRUETYPE_TYPES_H.
   3441 	(CFF_Builder_FuncsRec, CFF_Decocer_FuncsRec): New function tables.
   3442 	(CFF_Builder): Updated.
   3443 	Fix for forward declaration.
   3444 	(PSAux_ServiceRec): New field `cff_decoder_funcs'.
   3445 
   3446 	* src/psaux/psauxmod.c (cff_builder_funcs, cff_decoder_funcs): New
   3447 	function tables.
   3448 	(PSAux_Interface): Updated.
   3449 
   3450 	* include/freetype/internal/tttypes.h (TT_FaceRec): Add `psaux'
   3451 	service interface.
   3452 
   3453 	* src/cff/cffgload.c, src/cff/cffobjs.c, src/cff/cffparse.c: Update
   3454 	function calls to use psaux service.
   3455 
   3456 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   3457 
   3458 	[psaux, cff] Move CFF builder components into `psaux' module.
   3459 
   3460 	NOTE: Does not compile!
   3461 
   3462 	* src/cff/cffgload.c
   3463 	(cff_builder_{init,done,add_point,add_point1,add_contour,start_point,close_contour},
   3464 	cff_check_points): Move to...
   3465 	* src/psaux/psobjs.c: Here.
   3466 
   3467 	* src/cff/cffgload.h: Move corresponding declarations to
   3468 	`src/psaux/psobjs.h'.
   3469 
   3470 	* src/cff/cffgload.h (CFF_Builder): Move struct declaration to...
   3471 	* include/freetype/internal/psaux.h: Here.
   3472 
   3473 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   3474 
   3475 	[psaux, cff] Move CFF decoder components into `psaux' module.
   3476 
   3477 	NOTE: Does not compile!
   3478 
   3479 	* src/cff/cffgload.c (CFF_Operator,
   3480 	CFF_COUNT_{CHECK_WIDTH,EXACT,CLEAR_STACK}, cff_argument_counts,
   3481 	cff_operator_seac, cff_compute_bias,
   3482 	cff_lookup_glyph_by_stdcharcode,
   3483 	cff_decoder_{parse_charstrings,init,prepare}): Move to...
   3484 	* src/psaux/cffdecode.c: This new file.
   3485 
   3486 	* src/cff/cffgload.h: Move corresponding declarations to...
   3487 	* src/psaux/cffdecode.h: This new file.
   3488 
   3489 	* src/cff/cffgload.h (CFF_MAX_{OPERANDS,SUBRS_CALLS,TRANS_ELEMENTS},
   3490 	CFF_Decoder_Zone, CFF_Decoder): Move declarations to...
   3491 	* include/freetype/internal/psaux.h: Here.
   3492 
   3493 	* src/psaux/cf2ft.h: Update include.
   3494 
   3495 	* src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Update with
   3496 	the new file.
   3497 
   3498 2017-09-24  Ewald Hew  <ewaldhew (a] gmail.com>
   3499 
   3500 	[psaux, cff] Move Adobe's engine components into `psaux' module.
   3501 
   3502 	This is the first patch of a sequence to move the Type 2 charstring
   3503 	processing capability from the `cff' module to the `psaux' module.
   3504 
   3505 	NOTE: Does not compile!
   3506 
   3507 	* src/cff/cf2*: Move these files to...
   3508 	* src/psaux/cf2*: Here.
   3509 
   3510 	* src/cff/Jamfile (_sources), src/cff/rules.mk (CFF_DRV_SRC,
   3511 	CFF_DRV_H), src/cff/cff.c, src/cff/cffgload.c: Remove file
   3512 	references.
   3513 
   3514 	* src/psaux/Jamfile (_sources), src/psaux/rules.mk, src/psaux/psaux.c
   3515 	(PSAUX_DRV_SRC, PSAUX_DRV_H): Add file references.
   3516 
   3517 2017-09-24  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3518 
   3519 	Tweak per-face LCD filtering controls.
   3520 
   3521 	Thing are simpler with a NULL-function pointer.
   3522 
   3523 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
   3524 	pointer to the filter function.
   3525 	(FT_LibraryRec): Remove unused `lcd_filter'.
   3526 	(FT_Bitmap_LcdFilterFunc, ft_lcd_filter_fir):  Move from here...
   3527 	* include/freetype/ftlcdfil.h (FT_Bitmap_LcdFilterFunc,
   3528 	ft_lcd_filter_fir): ... to here.
   3529 
   3530 	* src/base/ftobjs.c (ft_open_face_internal): NULL-initialize the
   3531 	per-face filter.
   3532 	(FT_Face_Properties): Set it.
   3533 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Simplify.
   3534 
   3535 	* src/base/ftlcdfil.c (ft_lcd_filter_fir, FT_Libary_SetLcdFilter):
   3536 	Minor.
   3537 
   3538 2017-09-24  Jonathan Kew  <jfkthame (a] gmail.com>
   3539 
   3540 	[sfnt] Fix `premultiply_data' (#52092).
   3541 
   3542 	* src/sfnt/pngshim.c (premultiply_data): Don't use vector extension
   3543 	if we have less than 16 bytes of data.
   3544 
   3545 2017-09-24  Werner Lemberg  <wl (a] gnu.org>
   3546 
   3547 	[otvalid] Fix handling of ValueRecords.
   3548 
   3549 	For GPOS pair positioning format 1 the description of ValueRecords
   3550 	in the OpenType specification (1.8.2, from today) is wrong  the
   3551 	offset has to be taken from the parent structure; in this case the
   3552 	`PairSet' table.
   3553 
   3554 	* src/otvalid/otvgpos.c (otv_PairSet_validate): Set `extra3'.
   3555 	(otv_PairPos_validate): Adjust.
   3556 
   3557 2017-09-23  Werner Lemberg  <wl (a] gnu.org>
   3558 
   3559 	[otvalid] Handle `GSUB' and `GPOS' v1.1 tables.
   3560 
   3561 	* src/otvalid/otvgsub.c (otv_GSUB_validate), src/otvalid/otvgpos.c
   3562 	(otv_GPOS_validate): Implement it.
   3563 
   3564 2017-09-23  Werner Lemberg  <wl (a] gnu.org>
   3565 
   3566 	[otvalid] Update common table handling to OpenType 1.8.2.
   3567 
   3568 	* src/otvalid/otvcommn.c (otv_Device_validate): Handle
   3569 	VariationIndex subtable.
   3570 	(otv_Lookup_validate): Handle MarkFilteringSet.
   3571 
   3572 2017-09-23  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3573 
   3574 	[build] Windows-style DLL versioning.
   3575 
   3576 	* build/windows/ftver.rc: New VERSIONINFO resource.
   3577 	* build/windows/vc2010/freetype.vcxproj: Further improvements.
   3578 
   3579 2017-09-23  Ben Wagner  <bungeman (a] google.com>
   3580 
   3581 	[truetype] Really fix #52082.
   3582 
   3583 	* src/truetype/ttinterp.c (Ins_MDRP): Correct conditional.
   3584 
   3585 2017-09-23  Werner Lemberg  <wl (a] gnu.org>
   3586 
   3587 	[otvalid] Handle `GDEF' v1.2 and v1.3 tables.
   3588 
   3589 	No validation of variation stuff yet.
   3590 
   3591 	* src/otvalid/otvgdef.c (otv_MarkGlyphSets_validate): New function.
   3592 	(otv_GDEF_validate): Implement it.
   3593 
   3594 2017-09-22  Werner Lemberg  <wl (a] gnu.org>
   3595 
   3596 	[otvalid] Handle `BASE' v1.1 table.
   3597 
   3598 	No validation of variation stuff yet.
   3599 
   3600 	* src/otvalid/otvbase.c (otv_BASE_validate): Implement it.
   3601 
   3602 2017-09-22  Werner Lemberg  <wl (a] gnu.org>
   3603 
   3604 	[otvalid] Macros for 32bit offset support.
   3605 
   3606 	* src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE32,
   3607 	OTV_OPTIONAL_OFFSET32, OTV_SIZE_CHECK32): New macros.
   3608 
   3609 2017-09-21  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3610 
   3611 	[build] Simplify Visual C++ 2010 project.
   3612 
   3613 	* build/windows/vc2010/freetype.vcxproj: Remove fake singlethreaded
   3614 	configurations and tweak.
   3615 
   3616 2017-09-21  Werner Lemberg  <wl (a] gnu.org>
   3617 
   3618 	[truetype] Integer overflow (#52082).
   3619 
   3620 	* src/truetype/ttinterp.c (Ins_MDRP): Avoid FT_ABS.
   3621 
   3622 2017-09-21  Werner Lemberg  <wl (a] gnu.org>
   3623 
   3624 	[sfnt] Fix postscript name for default instance of variation fonts.
   3625 
   3626 	Problem reported by Behdad.
   3627 
   3628 	* src/sfnt/sfdriver.c (sfnt_get_ps_name): Test
   3629 	`is_default_instance'.
   3630 
   3631 2017-09-21  Werner Lemberg  <wl (a] gnu.org>
   3632 
   3633 	[truetype] Fix `mmvar' array pointers, part 2.
   3634 
   3635 	The previous commit was incomplete.
   3636 
   3637 	* src/truetype/ttgxvar.c: Properly initialize sub-array offsets for
   3638 	`master' also.
   3639 
   3640 2017-09-21  Werner Lemberg  <wl (a] gnu.org>
   3641 
   3642 	[truetype] Fix `mmvar' array pointers.
   3643 
   3644 	Without this change, clang's AddressSanitizer reports many runtime
   3645 	errors due to misaligned addresses.
   3646 
   3647 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Use multiples of pointer
   3648 	size for sub-array offsets into `mmvar'.
   3649 
   3650 2017-09-20  Werner Lemberg  <wl (a] gnu.org>
   3651 
   3652 	[truetype] Integer overflows.
   3653 
   3654 	Changes triggered by
   3655 
   3656 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3429
   3657 
   3658 	* src/truetype/ttinterp.c (Ins_SHPIX, Ins_DELTAP): Use NEG_LONG.
   3659 	(Ins_MIAP): Use SUB_LONG.
   3660 
   3661 2017-09-19  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3662 
   3663 	[build] Fix DLL builds in Visual C++ project.
   3664 
   3665 	* build/windows/vc2010/freetype.vcxproj: Use DynamicLibrary in Debug
   3666 	and Release configurations.
   3667 	* include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF)
   3668 	[_DLL]: Use Visual C++ extensions.
   3669 
   3670 2017-09-19  John Tytgat  <John.Tytgat (a] esko.com>
   3671 
   3672 	[cff] Fix family name logic of pure CFF fontdata (#52056).
   3673 
   3674 	1. If `FamilyName' is present in the CFF font, use this for
   3675 	   FT_Face's `family_name'.
   3676 	2. Otherwise, use the face name and chop off any subset prefix.
   3677 	3. If at this point FT_Face's `family_name' is set, use this
   3678 	   together with the full name to determine the style.
   3679 	4. Otherwise, use `CIDFontName' as FT_Face's `family_name'.
   3680 	5. If we don't have a valid style, use "Regular".
   3681 
   3682 	Previously, FT_Face's `family_name' entry for pure CFF fontdata
   3683 	nearly always was the fontname itself, instead of the `FamilyName'
   3684 	entry in the CFF font (assuming there is one).
   3685 
   3686 	* src/cff/cffobjs.c (cff_face_init) [pure_cff]: Implement it.
   3687 
   3688 2017-09-18  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3689 
   3690 	[build] Declutter Visual C++ 2010-2017 project.
   3691 
   3692 	* build/windows/vc2010/freetype.vcxproj: Use MaxSpeed (/02)
   3693 	optimization for Release configuration throughout the project.
   3694 
   3695 
   3696 ----------------------------------------------------------------------------
   3697 
   3698 Copyright 2017-2018 by
   3699 David Turner, Robert Wilhelm, and Werner Lemberg.
   3700 
   3701 This file is part of the FreeType project, and may only be used, modified,
   3702 and distributed under the terms of the FreeType project license,
   3703 LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   3704 indicate that you have read the license and understand and accept it
   3705 fully.
   3706 
   3707 
   3708 Local Variables:
   3709 version-control: never
   3710 coding: utf-8
   3711 End:
   3712