"Fossies" - the Fresh Open Source Software Archive

Member "firefox-69.0.1/modules/freetype2/ChangeLog" (17 Sep 2019, 147748 Bytes) of package /linux/www/firefox-69.0.1.source.tar.xz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "ChangeLog": 68.0.2_vs_69.0.

    1 2019-03-15  Werner Lemberg  <wl@gnu.org>
    2 
    3 	* Version 2.10.0 released.
    4 	==========================
    5 
    6 
    7 	Tag sources with `VER-2-10-0'.
    8 
    9 	* docs/VERSION.TXT: Add entry for version 2.10.0.
   10 	* docs/CHANGES: Updated.
   11 
   12 	* README, Jamfile (RefDoc), src/base/ftver.rc,
   13 	builds/windows/vc2010/freetype.vcxproj,
   14 	builds/windows/vc2010/index.html,
   15 	builds/windows/visualc/freetype.dsp,
   16 	builds/windows/visualc/freetype.vcproj,
   17 	builds/windows/visualc/index.html,
   18 	builds/windows/visualce/freetype.dsp,
   19 	builds/windows/visualce/freetype.vcproj,
   20 	builds/windows/visualce/index.html,
   21 	builds/wince/vc2005-ce/freetype.vcproj,
   22 	builds/wince/vc2005-ce/index.html,
   23 	builds/wince/vc2008-ce/freetype.vcproj,
   24 	builds/wince/vc2008-ce/index.html: s/2.9.1/2.10.0/, s/291/2100/.
   25 
   26 	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 10.
   27 	(FREETYPE_PATCH): Set to 0.
   28 
   29 	* builds/unix/configure.raw (version_info): Set to 23:0:17.
   30 	* CMakeLists.txt (VERSION_MINOR): Set to 10.
   31 	(VERSION_PATCH): Set to 0.
   32 
   33 	* builds/toplevel.mk (version, winversion): Since the minor version
   34 	number has two digits now, never omit the patch number.  We would
   35 	get ambiguous zip file names otherwise.
   36 	(dist): Remove remnants of `docmaker' tool.
   37 	(do-dist): Remove unused intermediate files.
   38 
   39 	* src/cff/cffparse.c (destrict_c2s_item): Guard function with
   40 	CFF_CONFIG_OPTION_OLD_ENGINE macro.
   41 
   42 2019-03-07  Andrei Alexeyev  <0x416b617269@gmail.com>
   43             Werner Lemberg  <wl@gnu.org>
   44 
   45 	Fix invalid function pointer casts.
   46 
   47 	This change should allow Freetype to work on WASM/Emscripten without
   48 	needing `-s EMULATE_FUNCTION_POINTER_CASTS=1'.
   49 
   50 	* src/autofit/afdummy.c (af_dummy_hints_apply): Fix signature.
   51 
   52 	* src/cid/cidload.c (cid_parse_font_matrix, parse_fd_array,
   53 	parse_expansion_factor, parse_font_name): Return `void', not
   54 	`FT_Error'.
   55 
   56 	* include/freetype/internal/ftobjs.h (FT_CMap_CharVarIsDefaultFunc):
   57 	Fix signature.
   58 
   59 2019-03-05  Werner Lemberg  <wl@gnu.org>
   60 
   61 	[base] Handle numeric overflow (#55827).
   62 
   63 	* src/base/ftglyph.c (FT_Glyph_Get_CBox): Use `FT_PIX_CEIL_LONG'.
   64 
   65 2019-03-05  Sebastian Rasmussen  <sebras@gmail.com>
   66 
   67 	[psaux] Fix use of uninitialized memory (#55832).
   68 
   69 	* src/psaux/psintrp.c (cf2_interpT2CharString): The call to
   70 	`cf2_arrstack_setCount' may fail because the allocator ran out of
   71 	memory.  When this happens the stack is still written to before the
   72 	error condition is checked.  This means that FreeType writes outside
   73 	of allocated memory.  This commit moves the error check prior to the
   74 	stack assignment, hence the function now properly returns with an
   75 	error condition.
   76 
   77 2019-02-23  Werner Lemberg  <wl@gnu.org>
   78 
   79 	* src/base/ftbitmap.c (FT_Bitmap_Blend): No fractional offsets.
   80 
   81 	The function only provided a framework without an actual
   82 	implementation, which this commit removes.
   83 
   84 2019-02-23  Werner Lemberg  <wl@gnu.org>
   85 
   86 	* src/tools/update-copyright-year: Insert `(C)'.
   87 
   88 2019-02-21  Armin Hasitzka  <prince.cherusker@gmail.com>
   89 
   90 	[truetype] Mask numeric overflows.
   91 
   92 	* src/truetype/ttinterp.c (Move_CVT, Move_CVT_Stretched, Ins_MIRP):
   93 	Mask numeric overflows.
   94 
   95 	Reported as
   96 
   97 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11681
   98 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11734
   99 
  100 2019-02-21  Armin Hasitzka  <prince.cherusker@gmail.com>
  101 
  102 	[psaux] Mask numeric overflow.
  103 
  104 	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings): Mask numeric
  105 	overflow.
  106 
  107 	Reported as
  108 
  109 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13041
  110 
  111 2019-02-16  Wink Saville  <wink@saville.com>
  112 
  113 	* src/autofit/afwarp.h (af_warper_compute): Fix declaration.
  114 
  115 2019-02-02  Nikolaus Waxweiler  <madigens@gmail.com>
  116 
  117 	[truetype] Apply MVAR hasc, hdsc and hlgp metrics to current FT_Face metrics.
  118 
  119 	Instead of setting typo or win metrics as the new `FT_Face' metrics
  120 	indiscriminately, apply only typo deltas to the currently active
  121 	`FT_Face' metrics.  This prevents line height differences when the
  122 	default outlines were used as the regular face and instances for
  123 	everything else, for example.
  124 
  125 	* src/truetype/ttgxvar.c (tt_apply_mvar): Implement.
  126 
  127 2019-02-02  Nikolaus Waxweiler  <madigens@gmail.com>
  128 
  129 	[sfnt] Use typo metrics if OS/2 fsSelection USE_TYPO_METRICS bit is set.
  130 
  131 	If the `OS/2' table exists and `fsSelection' bit 7
  132 	(USE_TYPO_METRICS) is set, use the `sTypo*' set of values to compute
  133 	the `FT_Face's ascender, descender, and height.  Otherwise, fall
  134 	back to old behavior.
  135 
  136 	* src/sfnt/sfobjs.c (sfnt_load_face): Implement.
  137 
  138 2019-01-18  John Tytgat  <John.Tytgat@esko.com>
  139 
  140 	[sfnt] Handle TT fonts having two PostScript font names (#55471).
  141 
  142 	* src/sfnt/sfdriver.c (sfnt_get_name_id): Prefer English over any
  143 	other language found for PostScript font names.
  144 
  145 2019-01-08  Chris Liddell <chris.liddell@artifex.com>
  146 
  147 	[psaux] Fix closepath (#55414).
  148 
  149 	All of the Type 1 path building is done with code common to the
  150 	revised CFF engine, with the exception of closepath, which was still
  151 	calling ps_builder_close_contour(), thus previously cached segments
  152 	were not always written to the path, and glyph corruption, or even
  153 	invalid outlines were possible.
  154 
  155 	* src/psauc/psinterp.c (cf2_interpT2CharString) <cf2_cmdCLOSEPATH>:
  156 	Switch to calling `cf2_glyphpath_closeOpenPath'.
  157 
  158 2018-12-29  Werner Lemberg  <wl@gnu.org>
  159 
  160 	* src/autofit/aflatin2.c: Some fixes from `aflatin.c' (#55310).
  161 
  162 2018-12-25  Werner Lemberg  <wl@gnu.org>
  163 
  164 	* src/psaux/cffdecode.c (cff_operaor_seac): Fix numeric overflow.
  165 
  166 	Reported as
  167 
  168 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11915
  169 
  170 2018-12-12  Werner Lemberg  <wl@gnu.org>
  171 
  172 	[gxvalid] Fix compiler warnings.
  173 
  174 	* src/gxvalid/gxvjust.c (gxv_just_check_max_gid),
  175 	src/gxvalid/gxvmort.c (gxv_mort_coverage_validate): Use `FT_UNUSED'.
  176 
  177 2018-12-11  Werner Lemberg  <wl@gnu.org>
  178 
  179 	* src/truetype/ttgload.c (TT_Hint_Glyph): Remove useless test.
  180 
  181 	`control_len' only gets its value from `n_ins' (and vice versa),
  182 	which is always read as `unsigned short' and thus can't be larger
  183 	than 0xFFFF.
  184 
  185 2018-12-04  Werner Lemberg  <wl@gnu.org>
  186 
  187 	[bdf] Ignore data after `ENDFONT'.
  188 
  189 	Reported as
  190 
  191 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10798
  192 
  193 	* src/bdf/bdflib.c (_bdf_parse_end): New function.
  194 	(_bdf_parse_glyphs): Switch to `_bdf_parse_end' after `ENDFONT' has
  195 	been encountered.
  196 
  197 2018-12-02  Alexei Podtelezhnikov  <apodtele@gmail.com>
  198 
  199 	* builds/windows/visualc/freetype.dsp: Dust off.
  200 
  201 2018-11-27  Alexei Podtelezhnikov  <apodtele@gmail.com>
  202 
  203 	* builds/windows/vc2010/freetype.vcxproj: Simplify.
  204 
  205 2018-11-27  Chris Liddell  <chris.liddell@artifex.com>
  206 
  207 	[type1,cff] Add FT_{Set,Get}_MM_WeightVector API calls.
  208 
  209 	For multiple master fonts, common usage (in Postscript) is to modify
  210 	the WeightVector of an existing font instance, this addition
  211 	supports that use.
  212 
  213 	* include/freetype/ftmm.h, src/base/ftmm.c (FT_Set_MM_WeightVector,
  214 	FT_Get_MM_WeightVector): New API functions.
  215 
  216 	* include/freetype/internalservices/svmm.h
  217 	(FT_Set_MM_WeightVector_Func, FT_Get_MM_WeightVector_Func): New
  218 	function types.
  219 	(MultiMasters): Add `set_mm_weightvector' and `get_mm_weightvector'
  220 	members.
  221 	(FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
  222 
  223 	* src/cffcffdrivr.c (cff_set_mm_weightvector,
  224 	cff_get_mm_weightvector): New functions.
  225 	(cff_service_multi_masters): Register them.
  226 
  227 	* src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated.
  228 	This driver doesn't use the new interface.
  229 
  230 	* src/type1/t1load.c (T1_Set_MM_WeightVector,
  231 	T1_Get_MM_WeightVector): New functions.
  232 	* src/type1/t1driver.c (t1_service_multi_masters): Register them.
  233 	* src/type1/t1load.h: Updated.
  234 
  235 2018-11-27  Ben Wagner  <bungeman@google.com>
  236 
  237 	[cff] Fix compiler warning (#55105).
  238 
  239 	* src/cff/cffparse.c (cff_parser_run): Guard label only used if
  240 	CFF_CONFIG_OPTION_OLD_ENGINE is active.
  241 
  242 2018-11-27  Ben Wagner  <bungeman@google.com>
  243 
  244 	[truetype] Fix numeric overflow (#55103).
  245 
  246 	* src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'.
  247 
  248 2018-11-25  Alexei Podtelezhnikov  <apodtele@gmail.com>
  249 
  250 	[builds] Belated DLL support with vc2002-vc2008.
  251 
  252 	The solution and project files should be automatically upgraded for
  253 	the approriate Visual C++ version.
  254 
  255 	* builds/windows/visualc/freetype.{sln,vcproj}: Major upgrades.
  256 	* builds/windows/visualc/index.html: Document the change.
  257 	* builds/windows/vc2005, builds/windows/vc2008: Removed as redundant.
  258 
  259 2018-11-22  Armin Hasitzka  <prince.cherusker@gmail.com>
  260 
  261 	* src/cff/cffparse.c: Please the compiler.
  262 
  263 2018-11-22  Armin Hasitzka  <prince.cherusker@gmail.com>
  264 
  265 	[cff] Fix memory overflow.
  266 
  267 	Reported as
  268 
  269 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9869
  270 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10869
  271 
  272 	* src/cff/cffparse.c (destruct_t2s_item, cff_parser_run): Store
  273 	evaluated T2 charstrings in separately allocated memory.
  274 
  275 2018-11-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
  276 
  277 	* builds/windows/{visualc,vc2005,vc2008}/freetype.vcproj: Fix it.
  278 
  279 2018-11-10  Alexei Podtelezhnikov  <apodtele@gmail.com>
  280 
  281 	[smooth] Placeholder only for library-enabled LCD filtering.
  282 
  283 	* src/smooth/ftsmooth.c (ft_smooth_init): Add disabled
  284 	`FT_Library_SetLcdFilter' call.
  285 
  286 2018-11-09  Young Xiao  <yangx92@hotmail.com>
  287 
  288 	[psaux] Add safety guard (#54985).
  289 
  290 	* src/psaux/psobjs.c (cff_builder_close_contour): Do it.
  291 
  292 2018-11-08  Alexei Podtelezhnikov  <apodtele@gmail.com>
  293 
  294 	* builds/unix/configure.raw: Require `windows.h' for windres.
  295 
  296 2018-11-08  Alexei Podtelezhnikov  <apodtele@gmail.com>
  297 
  298 	[ftstroke] Fix unpredictable failures (#54986).
  299 
  300 	* src/base/ftstroke.c (ft_sroke_border_lineto): Fix lineto check.
  301 
  302 2018-11-08  Alexei Podtelezhnikov  <apodtele@gmail.com>
  303 
  304 	[ftstroke] Fix unpredictable failures (#54976).
  305 
  306 	* src/base/ftstroke.c (ft_sroke_border_close): Set the start tags.
  307 
  308 2018-11-07  Ben Wagner  <bungeman@google.com>
  309 
  310 	[truetype] Fix VF check from 2018-09-12 (#54973).
  311 
  312 	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Use correct
  313 	offsets for estimates.
  314 
  315 2018-11-06  Werner Lemberg  <wl@gnu.org>
  316 
  317 	[pshinter] Fix numeric overflow.
  318 
  319 	Reported as
  320 
  321 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11242
  322 
  323 	* src/pshinter/pshrec.c (ps_dimension_add_t1stem): Implement it.
  324 
  325 2018-11-06  Werner Lemberg  <wl@gnu.org>
  326 
  327 	[psaux] Fix timeout in old CFF engine.
  328 
  329 	Reported as
  330 
  331 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11260
  332 
  333 	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
  334 	<cff_op_sqrt> [CFF_CONFIG_OPTION_OLD_ENGINE]: Fix potential endless
  335 	loop.
  336 
  337 2018-11-04  Alexei Podtelezhnikov  <apodtele@gmail.com>
  338 
  339 	* src/truetype/ttgxvar.c: Use enum definitions.
  340 
  341 2018-11-03  Alexei Podtelezhnikov  <apodtele@gmail.com>
  342 
  343 	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Adjust condition.
  344 
  345 2018-11-03  Alexei Podtelezhnikov  <apodtele@gmail.com>
  346 
  347 	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Tracing tweaks.
  348 
  349 2018-11-03  Alexei Podtelezhnikov  <apodtele@gmail.com>
  350 
  351 	Revert due to specs: [truetype] Speed up variation IUP.
  352 
  353 2018-11-02  Alexei Podtelezhnikov  <apodtele@gmail.com>
  354 
  355 	* src/truetype/ttgxvar.c (ft_var_get_item_delta): Fixed logic.
  356 
  357 	Reported and tested by Behdad.
  358 
  359 2018-11-02  Shailesh Mistry  <shailesh.mistry@hotmail.co.uk>
  360 
  361 	[autofit] Prevent SEGV.
  362 
  363 	See
  364 
  365 	  https://bugs.ghostscript.com/show_bug.cgi?id=697545
  366 
  367 	for more details on how the bug was found.
  368 
  369 	* src/autofit/afloader.c (af_loader_load_glyph): Propagate error
  370 	code.
  371 
  372 2018-10-31  Alexei Podtelezhnikov <apodtele@gmail.com>
  373 
  374 	[truetype] Speed up variation IUP.
  375 
  376 	* src/truetype/ttgxvar.c (tt_delta_interpolate): Separate trivial
  377 	snapping to the same position from true interpolation.
  378 
  379 2018-10-31  Alexei Podtelezhnikov  <apodtele@gmail.com>
  380 
  381 	* src/type1/t1load.c (t1_set_mm_blend): Optimized.
  382 
  383 2018-10-31  Alexei Podtelezhnikov  <apodtele@gmail.com>
  384 
  385 	* src/truetype/ttgxvar.c (ft_var_get_item_delta): Optimized.
  386 
  387 2018-10-29  Werner Lemberg  <wl@gnu.org>
  388 
  389 	[base] Fix numeric overflow.
  390 
  391 	Reported as
  392 
  393 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11080
  394 
  395 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Use `MUL_LONG'.
  396 
  397 2018-10-29  Werner Lemberg  <wl@gnu.org>
  398 
  399 	[cff] Fix numeric overflow.
  400 
  401 	Reported as
  402 
  403 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10988
  404 
  405 	* src/cff/cffparse.c (cff_parser_run)
  406 	[CFF_CONFIG_OPTION_OLD_ENGINE]: Use `NEG_LONG'.
  407 
  408 2018-10-27  Alexei Podtelezhnikov  <apodtele@gmail.com>
  409 
  410 	[sfnt] Make `head' timestamps unsigned.
  411 
  412 	It's been more than 2^31 seconds since 1904.
  413 
  414 	* include/freetype/tttables.h (TT_Header): Change field types.
  415 	* src/sfnt/ttload.c (tt_face_load_generic_header): Updated.
  416 
  417 2018-10-27  Alexei Podtelezhnikov  <apodtele@gmail.com>
  418 
  419 	Revert: Align FreeType with standard C memory management.
  420 
  421 2018-10-27  Werner Lemberg  <wl@gnu.org>
  422 
  423 	[psaux] Fix numeric overflow.
  424 
  425 	Triggered by
  426 
  427 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11157
  428 
  429 	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_blend>
  430 	[CFF_CONFIG_OPTION_OLD_ENGINE]: Fix integer overflow.
  431 
  432 2018-10-20  Werner Lemberg  <wl@gnu.org>
  433 
  434 	Avoid endless loop while tracing (#54858).
  435 
  436 	* src/type1/t1load.c (parse_buildchar): Guard tracing stuff with
  437 	FT_DEBUG_LEVEL_TRACE.
  438 
  439 2018-10-17  David Demelier  <markand@malikania.fr>
  440 
  441 	* CMakeLists.txt: Specify `RUNTIME DESTINATION'.
  442 
  443 	This is needed for DLL builds.
  444 
  445 2018-10-07  Werner Lemberg  <wl@gnu.org>
  446 
  447 	A missing Unicode cmap is not a fatal error.
  448 
  449 	This is a follow-up to the previous commit.
  450 
  451 	* src/cff/cffobjs.c (cff_face_init), src/sfnt/sfobjs.c
  452 	(sfnt_load_face), src/type1/t1objs.c (T1_Face_Init),
  453 	src/type42/t42objs.c (T42_Face_Init): Implement it.
  454 
  455 2018-10-07  Werner Lemberg  <wl@gnu.org>
  456 
  457 	Fix handling of FT_CONFIG_OPTION_ADOBE_GLYPH_LIST (#54794).
  458 
  459 	* src/cff/cffcmap.c (cff_cmap_unicode_init), src/psaux/t1cmap.c
  460 	(t1_cmap_unicode_init), src/sfnt/ttcmap.c (tt_cmap_unicode_init):
  461 	Check `unicodes_init' field.
  462 
  463 2018-10-03  Werner Lemberg  <wl@gnu.org>
  464 
  465 	[ftgrays] Fix typo in stand-alone mode (#54771).
  466 
  467 	* src/smooth/ftgrays.c (FT_THROW) [STANDALONE_ &&
  468 	FT_DEBUG_LEVEL_TRACE]: Fix call to `FT_ERR_CAT'.
  469 
  470 2018-10-02  Werner Lemberg  <wl@gnu.org>
  471 
  472 	[psaux] Fix segfault.
  473 
  474 	Reported as
  475 
  476 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10768
  477 
  478 	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
  479 	<cff_op_callothersubr> [CFF_CONFIG_OPTION_OLD_ENGINE]: Check
  480 	argument.
  481 
  482 2018-10-02  Werner Lemberg  <wl@gnu.org>
  483 
  484 	[psaux] Fix numeric overflow.
  485 
  486 	Reported as
  487 
  488 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10740
  489 
  490 	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_roll>
  491 	[CFF_CONFIG_OPTION_OLD_ENGINE]: Use NEG_INT.
  492 
  493 2018-10-02  Werner Lemberg  <wl@gnu.org>
  494 
  495 	[pshinter] Handle numeric overflow.
  496 
  497 	Reported as
  498 
  499 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10550
  500 
  501 	* src/pshinter/pshglob.c (psh_blues_snap_stem): Mask numeric
  502 	overflow.
  503 
  504 2018-09-27  Alexei Podtelezhnikov  <apodtele@gmail.com>
  505 
  506 	Align FreeType with standard C memory management.
  507 
  508 	* include/freetype/ftsystem.h: Include FT_TYPES_H.
  509 	(*FT_Alloc_Func, *FT_Realloc_Func): Use size_t for the size arguments.
  510 	* src/raster/ftmisc.h: Ditto.
  511 
  512 	* builds/amiga/src/base/ftsystem.c, builds/unix/ftsystem.c,
  513 	* builds/vms/ftsystem.c, src/base/ftsystem.c (ft_alloc, ft_realloc):
  514 	Use size_t for the size arguments.
  515 
  516 	* src/base/ftdbgmem.c (ft_mem_debug_alloc, ft_mem_debug_realloc): Use
  517 	FT_Offset, aka size_t, for the size arguments.
  518 
  519 2018-09-25  Werner Lemberg  <wl@gnu.org>
  520 
  521 	Fix handling of `FT_Bool'.
  522 
  523 	Before this commit we had code like
  524 
  525 	  (FT_Bool)( globals->glyph_styles[gindex] & 0x8000)
  526 
  527 	Since `FT_Bool' is defined to be an `unsigned char', the code
  528 	evaluated to something like
  529 
  530 	  (unsigned char)( 0x8532 & 0x8000)
  531 
  532 	which in turn expanded to
  533 
  534 	  (unsigned char)( 0x8000)
  535 
  536 	and finally yielded 0x00 – i.e., false – not as expected.
  537 
  538 	Problem reported and analyzed by Tony Smith <tony.smith@macro4.com>.
  539 
  540 	* include/freetype/fttypes.h (FT_BOOL): Add a comparison against
  541 	zero so that we always have a Boolean expression.
  542 
  543 	*/*: Replace castings to `FT_Bool' with calls to `FT_BOOL' where
  544 	possible.
  545 
  546 2018-09-23  Alexei Podtelezhnikov  <apodtele@gmail.com>
  547 
  548 	[bdf] Speed up charmap access.
  549 
  550 	This makes FT_Get_Char_Index and FT_Get_Next_Char 4-5 times faster.
  551 
  552 	* src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Help binary search
  553 	with continuous prediction.
  554 
  555 2018-09-22  Alexei Podtelezhnikov  <apodtele@gmail.com>
  556 
  557 	* src/base/ftobjs.c (ft_glyphslot_preset_bimap): Another tweak.
  558 
  559 	This one should be clearer. When the rounded monochrome bbox collapses
  560 	we add a pixel that covers most if not all original cbox.
  561 
  562 2018-09-21  Alexei Podtelezhnikov  <apodtele@gmail.com>
  563 
  564 	* src/base/ftobjs.c (ft_glyphslot_preset_bimap): Further tweak.
  565 
  566 2018-09-21  Ben Wagner  <bungeman@google.com>
  567 
  568 	Improve auto-hinter handling of bitmap fonts (#54681).
  569 
  570 	For bitmap fonts, `FT_Load_Glyph' should either return an error or
  571 	not set the format to `FT_GLYPH_FORMAT_OUTLINE'.  However, in this
  572 	case `FT_Load_Glyph' calls into the auto-hinter which calls back
  573 	into `FT_Load_Glyph' with `FT_LOAD_NO_SCALE' in the flags, which
  574 	marks the glyph as `FT_GLYPH_FORMAT_OUTLINE' with an empty path
  575 	(even though it doesn't have any path).  It appears that the
  576 	auto-hinter should not be called when the face doesn't have
  577 	outlines.  The current test for using the auto-hinter in
  578 	`FT_Load_Glyph' checks whether the driver supports scalable
  579 	outlines, but not if the face supports scalable outlines.
  580 
  581 	* src/base/ftobjs.c (FT_Load_Glyph): Directly check whether we have
  582 	scalable outlines.
  583 
  584 2018-09-21  Werner Lemberg  <wl@gnu.org>
  585 
  586 	[raster] Fix disappearing vertical lines (#54589).
  587 
  588 	* src/raster/ftraster.c (Vertical_Sweep_Span): Handle special case
  589 	where both left and right outline exactly pass pixel centers.
  590 
  591 2018-09-20  Alexei Podtelezhnikov  <apodtele@gmail.com>
  592 
  593 	* src/base/ftobjs.c (ft_glyphslot_preset_bimap): Tiny rounding tweak.
  594 
  595 	This adds pixels in case a contour goes through the center
  596 	and they need to be turned on in the b/w rasterizer.
  597 
  598 2018-09-20  Alexei Podtelezhnikov  <apodtele@gmail.com>
  599 
  600 	[pcf] Replace charmap implementation.
  601 
  602 	PCF comes with charmap lookup table, aka PCF encodings.  Using it
  603 	directly makes FT_Get_Char_Index and FT_Get_Next_Char 4-5 times
  604 	faster than the original BDF-like binary searches.
  605 
  606 	* src/pcf/pcf.h (PCF_EncodingRec): Removed.
  607 	(PCF_FaceRec): Remove `nencodings' and `encodings'.
  608 	* src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Replaced.
  609 	* src/pcf/pcfread.c (pcf_get_encodings): Store data differently.
  610 
  611 2018-09-20  Werner Lemberg  <wl@gnu.org>
  612 
  613 	[base] Remove unused function `FT_GlyphLoader_CopyPoints'.
  614 
  615 	* include/freetype/internal/ftgloadr.h, src/base/ftgloadr.c
  616 	(FT_GlyphLoader_CopyPoints): Do it.
  617 
  618 2018-09-19  Alexei Podtelezhnikov  <apodtele@gmail.com>
  619 
  620 	[pcf] Prepare to replace charmap implementation.
  621 
  622 	* src/pcf/pcf.h (PCF_FaceRec): Updated to include...
  623 	(PCF_EncRec): ... this new structure to store charmap geometry.
  624 
  625 	* src/pcf/pcfread.c (pcf_get_encodings): Store charmap geometry.
  626 
  627 2018-09-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
  628 
  629 	Remove unused fields.
  630 
  631 	* src/pcf.h (PCF_FaceRec): Remove `charmap' and `charmap_handle'.
  632 	* src/bdfdrvr.h (BDF_FaceRec): Ditto.
  633 	* src/winfonts/winfnt.h (FNT_FaceRec): Ditto.
  634 
  635 2018-09-17  Werner Lemberg  <wl@gnu.org>
  636 
  637 	[pshinter] Handle numeric overflow.
  638 
  639 	Reported as
  640 
  641 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10396
  642 
  643 	* src/pshinter/pshglob.c: Include FT_INTERNAL_CALC_H.
  644 	(psh_blues_snap_stem): Mask numeric overflow.
  645 
  646 2018-09-13  Werner Lemberg  <wl@gnu.org>
  647 
  648 	[truetype] Some fixes for VF checks.
  649 
  650 	Reported as
  651 
  652 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10317
  653 
  654 	* src/truetype/ttgxvar.c (ft_var_load_gvar): Properly exit memory
  655 	frame if we have invalid glyph variation data offsets.
  656 	(tt_face_vary_cvt): Protect against missing `tuplecoords' array.
  657 	Fix typo.
  658 
  659 2018-09-13  Werner Lemberg  <wl@gnu.org>
  660 
  661 	* src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Fix last commit.
  662 
  663 2018-09-13  Werner Lemberg  <wl@gnu.org>
  664 
  665 	* src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Check `result'.
  666 
  667 	Reported as
  668 
  669 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10316
  670 
  671 2018-09-12  John Tytgat  <John.Tytgat@esko.com>
  672 
  673 	[sfnt] Better PS name handling (#54629).
  674 
  675 	* src/sfnt/sfdriver (IS_WIN, IS_APPLE): Omit language ID checks.
  676 	(get_win_string, get_apple_string): Return NULL when the PostScript
  677 	font name characters is not according to specification.
  678 	(get_win_string): Make trace output work if the high byte if
  679 	non-zero.
  680 	(sfnt_get_var_ps_name, sfnt_get_ps_name): Previously we preferred
  681 	Win PS name (when there is also an Apple PS name); change this into
  682 	a fallback to Apple PS name in case the Win PS name is invalid.
  683 
  684 2018-09-12  Werner Lemberg  <wl@gnu.org>
  685 
  686 	[truetype] Improve VF check.
  687 
  688 	Triggered by
  689 
  690 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10255
  691 
  692 	* src/truetype/ttgxvar.c (ft_var_load_gvar): Use better limit check
  693 	for `tupleCount'.
  694 
  695 2018-09-12  Werner Lemberg  <wl@gnu.org>
  696 
  697 	* src/truetype/ttgxvar.c (ft_var_load_gvar): Check `glyphoffsets'.
  698 
  699 2018-09-10  Armin Hasitzka  <prince.cherusker@gmail.com>
  700 
  701 	* src/pshinter/pshrec.c (t2_hints_stems): Mask numeric overflow.
  702 
  703 	Reported as
  704 
  705 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10215
  706 
  707 2018-09-09  Ben Wagner  <bungeman@google.com>
  708 
  709 	* builds/freetype.mk (refdoc-venv): Ensure python version (#54631).
  710 
  711 2018-09-07  Werner Lemberg  <wl@gnu.org>
  712 
  713 	[truetype] Fix assertion failure.
  714 
  715 	Triggered by
  716 
  717 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10212
  718 
  719 	* src/truetype/ttgload.c (load_truetype_glyph): Reintroduce
  720 	`opened_frame' (removed in a change from 2018-08-26) to handle
  721 	deallocation of the second frame.
  722 
  723 2018-09-05  Werner Lemberg  <wl@gnu.org>
  724 
  725 	Synchronize `ftdebug.c' files.
  726 
  727 	* builds/amiga/src/base/ftdebug.c, builds/wince/ftdebug.c,
  728 	builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c'.
  729 
  730 2018-09-05  Nikhil Ramakrishnan  <ramakrishnan.nikhil@gmail.com>
  731 
  732 	Add documentation guidelines file.
  733 
  734 	* docs/DOCGUIDE: New file.
  735 
  736 2018-09-04  Werner Lemberg  <wl@gnu.org>
  737 
  738 	* devel/ftoption.h: Synchronize with master `ftoption.h'.
  739 
  740 2018-09-03  Nikhil Ramakrishnan  <ramakrishnan.nikhil@gmail.com>
  741 
  742 	[docwriter] Don't break code snippets accross lines.
  743 
  744 	Reported as
  745 
  746 	  https://lists.nongnu.org/archive/html/freetype-devel/2018-08/msg00124.html
  747 
  748 	* docs/reference/markdown/stylesheets/extra.css (.md-typeset code):
  749 	Add rule `white-space'.
  750 
  751 2018-09-03  Werner Lemberg  <wl@gnu.org>
  752 
  753 	*/*: s/PSNames/psnames/.
  754 
  755 	Only tracing messages are affected.
  756 
  757 2018-09-03  Werner Lemberg  <wl@gnu.org>
  758 
  759 	[sfnt] Fix heap buffer overflow in CPAL handling.
  760 
  761 	* src/sfnt/ttcpal.c (tt_face_palette_set): Fix boundary test.
  762 	(tt_face_load_cpal): Updated.
  763 
  764 2018-09-01  Werner Lemberg  <wl@gnu.org>
  765 
  766 	Remove `FT_Outline_{New,Done}_Internal'.
  767 
  768 	These public API functions(!) were always undocumented and have
  769 	escaped all clean-up efforts until now.
  770 
  771 	* include/freetype/ftoutln.h (FT_Outline_New_Internal,
  772 	FT_Outline_Done_Internal): Removed.
  773 
  774 	* src/base/ftoutln.h (FT_Outline_New_Internal,
  775 	FT_Outline_Done_Internal): Merge into...
  776 	(FT_Outline_New, FT_Outline_Done): ... these functions.
  777 
  778 	* docs/README: Updated.
  779 
  780 2018-08-30  Alexei Podtelezhnikov  <apodtele@gmail.com>
  781 
  782 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Check glyph format.
  783 
  784 2018-08-31  Armin Hasitzka  <prince.cherusker@gmail.com>
  785 
  786 	[errors] Refine the macro logic surrounding `FT_Error_String'.
  787 
  788 	* include/freetype/fterrors.h (FT_INCLUDE_ERR_PROTOS,
  789 	FT_ERR_PROTOS_DEFINED): Undefine `FT_INCLUDE_ERR_PROTOS' after
  790 	checking it and introduce a new macro that takes proper care of
  791 	multiple-inclusion protection.
  792 
  793 2018-08-31  Werner Lemberg  <wl@gnu.org>
  794 
  795 	* src/base/ftdebug.c (FT_Throw): Restore missing `FT_UNUSED' calls.
  796 
  797 2018-08-31  Werner Lemberg  <wl@gnu.org>
  798 
  799 	* src/base/ftdebug.c (FT_Throw): Reduce chattiness.
  800 
  801 2018-08-31  Werner Lemberg  <wl@gnu.org>
  802 
  803 	* src/autofit/afhints.c (af_glyph_hints_reload): Add initialization.
  804 
  805 2018-08-30  Alexei Podtelezhnikov  <apodtele@gmail.com>
  806 
  807 	Consolidate bitmap presetting and size assessment.
  808 
  809 	* include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap):
  810 	Change return type.
  811 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Return the bitmap
  812 	size assessment.
  813 
  814 	* src/raster/ftrend1.c (ft_raster1_render): Use it to refuse the
  815 	rendering of enourmous or far-fetched outlines.
  816 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
  817 
  818 2018-08-30  Alexei Podtelezhnikov  <apodtele@gmail.com>
  819 
  820 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Correct mono.
  821 
  822 2018-08-30  Armin Hasitzka  <prince.cherusker@gmail.com>
  823 
  824 	[errors] Introduce a macro to control `FT_Error_String'.
  825 
  826 	* devel/ftoption.h (FT_CONFIG_OPTION_ERROR_STRINGS),
  827 	include/freetype/config/ftoption.h (FT_CONFIG_OPTION_ERROR_STRINGS):
  828 	New macro.
  829 
  830 2018-08-30  Armin Hasitzka  <prince.cherusker@gmail.com>
  831 
  832 	[errors] Introduce `FT_Error_String'.
  833 
  834 	* include/freetype/fterrors.h (FT_Error_String),
  835 	src/base/fterrors.c (FT_Error_String): Implement `FT_Error_String'.
  836 
  837 	* src/base/ftbase.c, src/base/Jamfile (_source),
  838 	src/base/rules.mk (BASE_SRC): Add `fterrors.c' to the build logic.
  839 
  840 	* src/base/ftdebug.c (FT_Throw): Use `FT_Error_String'.
  841 
  842 2018-08-30  Werner Lemberg  <wl@gnu.org>
  843 
  844 	[autofit] Trace `before' and `after' edges of strong points.
  845 
  846 	* src/autofit/afhints.h (AF_PointRec) [FT_DEBUG_AUTOFIT]: New arrays
  847 	`before' and `after'.
  848 
  849 	* src/autofit/afhints.c (af_get_strong_edge_index): New auxiliary
  850 	function.
  851 	(af_glyph_hints_dump_points): Trace `before' and `after' edges.
  852 	(af_glyph_hints_align_strong_points) [FT_DEBUG_AUTOFIT]: Set
  853 	`before' and `after' information.
  854 
  855 2018-08-30  Alexei Podtelezhnikov  <apodtele@gmail.com>
  856 
  857 	[base] Overflow-resistant bitmap presetting.
  858 
  859 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Implement it.
  860 
  861 2018-08-29  Armin Hasitzka  <prince.cherusker@gmail.com>
  862 
  863 	Fix numeric overflows.
  864 
  865 	* src/pshint/pshalgo.c (psh_hint_align, psh_hint_align_light,
  866 	psh_hint_table_find_strong_points): Fix numeric overflows.
  867 
  868 	Reported as
  869 
  870 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10083
  871 
  872 2018-08-29  Werner Lemberg  <wl@gnu.org>
  873 
  874 	[cff] Fix handling of `roll' op in old engine.
  875 
  876 	Reported as
  877 
  878 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10080
  879 
  880 	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_roll>
  881 	[CFF_CONFIG_OPTION_OLD_ENGINE]: Use modulo for loop count, as
  882 	documented in the specification.
  883 
  884 2018-08-26  Werner Lemberg  <wl@gnu.org>
  885 
  886 	* src/truetype/ttobjs.c (tt_size_read_bytecode): Trace CVT values.
  887 
  888 2018-08-26  Nikhil Ramakrishnan  <ramakrishnan.nikhil@gmail.com>
  889 
  890 	* configure: Copy assets required by docwriter.
  891 
  892 	Copy directory `docs/reference/markdown' when FreeType is compiled in a
  893 	different directory.
  894 
  895 	Fixes `make refdoc' if builddir != srcdir.
  896 
  897 	Reported as
  898 
  899 	  https://lists.nongnu.org/archive/html/freetype-devel/2018-08/msg00083.html
  900 
  901 2018-08-26  Werner Lemberg  <wl@gnu.org>
  902 
  903 	* src/pshint/pshalgo.c (psh_hint_overlap): Fix numeric overflow.
  904 
  905 	Reported as
  906 
  907 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10057
  908 
  909 2018-08-26  Werner Lemberg  <wl@gnu.org>
  910 
  911 	Minor tracing adjustments.
  912 
  913 	* src/base/ftstream.c (FT_Stream_EnterFrame, FT_Stream_ExitFrame):
  914 	Trace.
  915 
  916 	* src/truetype/ttgload.c (TT_Access_Glyph_Frame): Remove tracing.
  917 
  918 2018-08-26  Werner Lemberg  <wl@gnu.org>
  919 
  920 	[truetype] Avoid nested frames.
  921 
  922 	Triggered by
  923 
  924 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10054
  925 
  926 	* src/truetype/ttgload.c (load_truetype_glyph): Don't use variable
  927 	`opened_frame' to trace whether a frame must be closed at the end of
  928 	function: This fails because `TT_Vary_Apply_Glyph_Deltas' (which
  929 	gets called for space glyphs) uses a frame by itself.  Instead,
  930 	close the frame after loading the header, then use another frame for
  931 	the remaining part of the glyph later on.
  932 
  933 	Also avoid calling `tt_get_metrics' twice under some circumstances.
  934 
  935 2018-08-26  Werner Lemberg  <wl@gnu.org>
  936 
  937 	Various minor clean-ups.
  938 
  939 	* src/base/ftapi.c: Remove.  Unused.
  940 	* src/base/Jamfile (_sources): Updated.
  941 
  942 	* src/base/ftstream.c (FT_Stream_ReleaseFrame): Remove redundant
  943 	code.
  944 
  945 2018-08-25  Nikhil Ramakrishnan  <ramakrishnan.nikhil@gmail.com>
  946 
  947 	Convert documentation markup to Markdown.
  948 
  949 	It is the result of a GSoC 2018 project; this separate ChangeLog
  950 	commit covers the last four commits
  951 
  952 	  ae5d1a4cec37557f31aec270332cfe886a62f9a0
  953 	  53c69ce04faed3dcc68ca0f54cb8d703d8babf69
  954 	  195728d5ba38f34fb2c2c20807c01656f2f59b66
  955 	  c962db28ea59225f0105c03d907d4a9b71765687
  956 
  957 	* docs/reference/markdown/images/favico.ico,
  958 	docs/reference/markdown/javascripts/extra.js,
  959 	docs/reference/markdown/stylesheets/extra.css: New files.
  960 
  961 	* docs/reference/.gitignore, docs/reference/README: Updated.
  962 
  963 	* src/tools/docmaker/*: Removed.  It has been replaced with
  964 	`docwriter', a python package available at
  965 
  966 	  https://pypi.org/project/docwriter/
  967 
  968 	* Jamfile: Updated.
  969 	* builds/ansi/ansi-def.mk, builds/beos/beos-def.mk,
  970 	builds/dos/dos-def.mk, builds/os2/os2-def.mk (BIN),
  971 	builds/unix/unixddef.mk, builds/windows/win32-def.mk: New variable.
  972 
  973 	* builds/unix/configure.raw: Check for `python' and `pip'.
  974 	If not present, warn that `make refdoc' will fail.
  975 	* builds/unix/unix-def.in (PYTHON, PIP, BIN): New variables.
  976 
  977 	* builds/freetype.mk (PYTHON, PIP, VENV_NAME, VENV_DIR, ENV_PYTHON,
  978 	ENV_PIP): New variables.
  979 	(refdoc): Updated.
  980 	(refdoc-venv): New target.
  981 	(.PHONY): Updated.
  982 
  983 2018-08-23  Werner Lemberg  <wl@gnu.org>
  984 
  985 	Add macros for handling over-/underflowing `FT_Int64' values.
  986 
  987 	* include/freetype/internal/ftcalc.h (ADD_INT64, SUB_INT64,
  988 	MUL_INT64, DIV_INT64) [FT_LONG64]: New macros.
  989 
  990 	* src/base/ftcalc.c (ft_corner_orientation) [FT_LONG64]: Use
  991 	`SUB_INT64' and `MUL_INT64'.
  992 
  993 	Reported as
  994 
  995 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10028
  996 
  997 2018-08-22  Werner Lemberg  <wl@gnu.org>
  998 
  999 	[truetype] Improve legibility of `glyf' parsing.
 1000 
 1001 	* src/truetype/ttgload.c (ON_CURVE_POINT, X_SHORT_VECTOR,
 1002 	Y_SHORT_VECTOR, REPEAT_FLAG, X_POSITIVE, SAME_X, Y_POSITIVE, SAME_Y,
 1003 	OVERLAP_SIMPLE): New macros.
 1004 	(TT_Load_Simple_Glyph): Use new macros to make code more readable.
 1005 	Remove useless adjustment of `outline->tags' elements.
 1006 
 1007 2018-08-21  Werner Lemberg  <wl@gnu.org>
 1008 
 1009 	* src/sfnt/ttcpal.c (tt_face_load_cpal): Add missing safety check.
 1010 
 1011 	Reported as
 1012 
 1013 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9981
 1014 
 1015 2018-08-18  Werner Lemberg  <wl@gnu.org>
 1016 
 1017 	[psaux] Avoid slow PS font parsing in case of error.
 1018 
 1019 	Reported as
 1020 
 1021 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9955
 1022 
 1023 	* src/psaux/psobjs.c (ps_parser_to_bytes): Set `parser->cursor' even
 1024 	in case of error to avoid potential re-scanning.
 1025 
 1026 2018-08-18  Werner Lemberg  <wl@gnu.org>
 1027 
 1028 	[cff] Fix heap buffer overflow in old engine.
 1029 
 1030 	Reported as
 1031 
 1032 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9967
 1033 
 1034 	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
 1035 	<cff_op_blend> [CFF_CONFIG_OPTION_OLD_ENGINE]: `num_designs' must be
 1036 	non-zero.
 1037 
 1038 2018-08-16  Young Xiao  <yangx92@hotmail.com>
 1039 
 1040 	* builds/mac/ftmac.c (parse_fond): Fix buffer overrun.
 1041 
 1042 	Reported as bug #54515, duplicate of #43540.
 1043 
 1044 2018-08-16  Werner Lemberg  <wl@gnu.org>
 1045 
 1046 	* builds/*/ftsystem.c (FT_COMPONENT): Updated also.
 1047 
 1048 2018-08-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1049 
 1050 	[bdf] Don't track duplicate encodings.
 1051 
 1052 	There is no harm except some umbiguity in broken fonts with duplicate
 1053 	encodings.
 1054 
 1055 	* src/bdf/bdflib.c (_bdf_parse_glyphs): Remove duplicate tracking.
 1056 	(_bdf_parse_t): Remove large `have' bitfield.
 1057 
 1058 2018-08-15  Werner Lemberg  <wl@gnu.org>
 1059 
 1060 	Don't use `trace_' prefix for FT_COMPONENT arguments.
 1061 
 1062 	* include/freetype/internal/ftdebug.h (FT_TRACE_COMP,
 1063 	FT_TRACE_COMP_): New auxiliary macros to add `trace_' prefix.
 1064 	(FT_TRACE): Use `FT_TRACE_COMP'.
 1065 
 1066 	*/* (FT_COMPONENT): Updated.
 1067 
 1068 2018-08-14  Werner Lemberg  <wl@gnu.org>
 1069 
 1070 	Use formatting string in FT_TRACEX calls for non-simple arguments.
 1071 
 1072 	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
 1073 	<cff_op_hstem, cff_op_hintmask, cff_op_hlineto, cff_op_vhcurveto>:
 1074 	Do it.
 1075 
 1076 	* src/psaux/pshints.c (cf2_hintmap_build): Ditto.
 1077 
 1078 	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
 1079 	cf2_cmdVSTEM, cf2_cmdHLINETO, cf2_cmdRRCURVETO, cf2_cmdCALLSUBR,
 1080 	cf2_escHSTEM3, cf2_cmdHINTMASK, cf2_cmdHVCURVETO>: Ditto.
 1081 
 1082 	* src/truetype/ttinterp.c (TT_RunIns): Ditto.
 1083 
 1084 2018-08-14  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1085 
 1086 	[bdf] Remove unused fields.
 1087 
 1088 	* src/bdf/bdf.h (bdf_font_t): Remove `nmod', `umod', and `modified',
 1089 	which were set but never used.
 1090 	* src/bdf/bdflib.c (_bdf_parse_{glyphs,properties}, bdf_load_font):
 1091 	Updated accordingly.
 1092 
 1093 2018-08-14  Werner Lemberg  <wl@gnu.org>
 1094 
 1095 	[cff] Fix another segv in old engine.
 1096 
 1097 	Reported as
 1098 
 1099 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9872
 1100 
 1101 	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
 1102 	[CFF_CONFIG_OPTION_OLD_ENGINE]: Disallow invalid T1 opcodes in
 1103 	dictionaries.
 1104 
 1105 2018-08-14  Werner Lemberg  <wl@gnu.org>
 1106 
 1107 	[cff] Fix missing error handling.
 1108 
 1109 	Reported as
 1110 
 1111 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9865
 1112 
 1113 	* src/psaux/cffparse.c (cff_parser_run)
 1114 	[CFF_CONFIG_OPTION_OLD_ENGINE]: Don't ignore return value of
 1115 	`parse_charstrings_old'.
 1116 
 1117 2018-08-14  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1118 
 1119 	[bdf] Remove unused overflow storage.
 1120 
 1121 	* src/bdf/bdf.h (bdf_glyphlist_t): Remove this type.
 1122 	(bdf_font_t): Remove `overflow' field.
 1123 	* src/bdf/bdflib.c (bdf_free_font): Remove `overflow' freeing.
 1124 
 1125 2018-08-14  Werner Lemberg  <wl@gnu.org>
 1126 
 1127 	[cff] Fix segv in old engine.
 1128 
 1129 	Reported as
 1130 
 1131 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9864
 1132 
 1133 	* src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
 1134 	<cff_op_random> [CFF_CONFIG_OPTION_OLD_ENGINE]: Use top dict's
 1135 	`random' field directly if parsing dictionaries.
 1136 
 1137 2018-08-13  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1138 
 1139 	[bdf] Use unsigned types.
 1140 
 1141 	* src/bdf/bdf.h (bdf_glyph_t): Unsign `encoding'.
 1142 	(bdf_font_t): Unsign `default_char'.
 1143 	* src/bdf/bdfdrivr.h (BDF_encoding_el): Unsign `enc'.
 1144 
 1145 	* src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_glyphs,
 1146 	_bdf_parse_start): Updated accordingly.
 1147 	* src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Ditto.
 1148 
 1149 2018-08-13  Werner Lemberg  <wl@gnu.org>
 1150 
 1151 	* src/type42/t42parse.c (t42_parse_sfnts): One more format check.
 1152 
 1153 	Reported as
 1154 
 1155 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9832
 1156 
 1157 2018-08-11  Werner Lemberg  <wl@gnu.org>
 1158 
 1159 	* src/base/ftcalc.c (FT_Matrix_Check): Fix integer overflow.
 1160 
 1161 	Reported as
 1162 
 1163 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9811
 1164 
 1165 2018-08-10  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1166 
 1167 	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Follow specs.
 1168 
 1169 2018-08-10  Ben Wagner  <bungeman@google.com>
 1170 
 1171 	* src/sfnt/sfobjs.c (sfnt_done_face): Fix memory leak (#54435).
 1172 
 1173 2018-08-10  Werner Lemberg  <wl@gnu.org>
 1174 
 1175 	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Improve tracing.
 1176 
 1177 2018-08-10  Werner Lemberg  <wl@gnu.org>
 1178 
 1179 	Fix clang warnings.
 1180 
 1181 	* src/base/ftdebug.c (ft_trace_level_enabled,
 1182 	ft_trace_level_disabled): Add `static' keyword.
 1183 
 1184 2018-08-09  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1185 
 1186 	[raster, smooth] Reinstate bitmap size limits.
 1187 
 1188 	This again moves outline and bitmap size checks one level up.
 1189 
 1190 	* src/base/ftoutln.c (FT_Outline_Render): Explicitly reject enormous
 1191 	outlines.
 1192 	* src/raster/ftrend1.c (ft_raster1_render): Reject enormous bitmaps
 1193 	and, therefore, outlines that require them.
 1194 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
 1195 
 1196 	* src/raster/ftraster.c (ft_black_render): Remove outline size checks.
 1197 	* src/smooth/ftgrays.c (gray_raster_render): Ditto.
 1198 	[STANDALONE]: Remove `FT_Outline_Get_CBox' copy.
 1199 
 1200 2018-08-08  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1201 
 1202 	[pcf] Revert massive unsigning.
 1203 
 1204 2018-08-08  Werner Lemberg  <wl@gnu.org>
 1205 
 1206 	[smooth] Improve tracing.
 1207 
 1208 	* src/smooth/ftgrays.c (gray_convert_glyph_inner): Only use tracing
 1209 	if called the first time.
 1210 	(gray_convert_glyph): Updated.
 1211 
 1212 2018-08-08  Werner Lemberg  <wl@gnu.org>
 1213 
 1214 	Add internal functions `FT_Trace_Disable' and `FT_Trace_Enable'.
 1215 
 1216 	It sometimes makes sense to suppress tracing informations, for
 1217 	example, if it outputs identical messages again and again.
 1218 
 1219 	* include/freetype/internal/ftdebug.h: Make `ft_trace_levels' a
 1220 	pointer.
 1221 	(FT_Trace_Disable, FT_Trace_Enable): New declarations.
 1222 
 1223 	* src/base/ftdebug.c (ft_trace_levels): Rename to...
 1224 	(ft_trace_levels_enabled): ... this.
 1225 	(ft_trace_levels_disabled): New array.
 1226 	(ft_trace_levels): New pointer.
 1227 	(FT_Trace_Disable, FT_Trace_Enable): Implement.
 1228 	(ft_debug_init): Updated.
 1229 
 1230 2018-08-08  Werner Lemberg  <wl@gnu.org>
 1231 
 1232 	Debugging improvements.
 1233 
 1234 	* src/base/ftobjs.c (pixel_modes): Move this array to top level
 1235 	from ...
 1236 	(FT_Load_Glyph): ... here.
 1237 	(FT_Render_Glyph_Internal): Use `width' x `height' in trace message.
 1238 	Use `pixel_modes'.
 1239 
 1240 2018-08-08  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1241 
 1242 	[pcf] Massive unsigning (part 2).
 1243 
 1244 	Treat all size related properties as unsigned values.
 1245 
 1246 	* src/pcf/pcf.h (PCF_ParsePropertyRec): Use unsigned `name' and
 1247 	`value'.
 1248 	* src/pcf/pcfread.c (pcf_get_properties, pcf_load_font): Updated
 1249 	parsing code and handling of AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE,
 1250 	RESOLUTION_X and RESOLUTION_Y.
 1251 
 1252 2018-08-08  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1253 
 1254 	[pcf] Massive unsigning (part 1).
 1255 
 1256 	Unofficial specifications hesitate to use unsigned 32-bit integers.
 1257 	Negative values caused a lot of trouble in the past and it is safer
 1258 	and easier to treat some properties as unsigned.
 1259 
 1260 	* src/pcf/pcf.h (PCF_AccelRec): Use unsigned values for `fontAscent',
 1261 	`fontDescent', and `maxOverlap'.
 1262 	* src/pcf/pcfread.c (pcf_load_font, pcf_get_accel): Updated.
 1263 	* src/pcf/pcfdrivr.c (PCF_Glyph_Load, PCF_Size_Select,
 1264 	PCF_Size_Request): Updated.
 1265 
 1266 2018-08-07  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1267 
 1268 	* src/pcf/pcfread.c (pcf_get_bitmaps): Unsign `offsets' and
 1269 	`bitmapSizes'.
 1270 
 1271 2018-08-06  Werner Lemberg  <wl@gnu.org>
 1272 
 1273 	* devel/ftoption.h: Synchronize with main `ftoption.h'.
 1274 
 1275 2018-08-06  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1276 
 1277 	[pcf] Use unsigned types.
 1278 
 1279 	* src/pcf/pcf.h (PCF_Encoding): Use unsigned `enc'.
 1280 	* src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Ditto.
 1281 	* src/pcf/pcfread.c (pcf_get_encodings): Use unsigned types.
 1282 
 1283 2018-08-05  Werner Lemberg  <wl@gnu.org>
 1284 
 1285 	* src/truetype/ttgload.c (compute_glyph_metrics): Fix overflow.
 1286 
 1287 	Reported as
 1288 
 1289 	  https://bugs.chromium.org/p/chromium/issues/detail?id=777151
 1290 
 1291 2018-08-04  Werner Lemberg  <wl@gnu.org>
 1292 
 1293 	* src/truetype/ttinterp.c (opcode_name): Fix typos.
 1294 
 1295 2018-08-04  Werner Lemberg  <wl@gnu.org>
 1296 
 1297 	Fix clang warnings.
 1298 
 1299 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Fix type of
 1300 	`orientation'.
 1301 
 1302 	* src/gxvalid/gxvcommn.c (gx_lookup_value_read): Fix signature.
 1303 
 1304 	* src/pcf/pcfread.c (pcf_get_encodings): Fix type of some variables.
 1305 	Add cast.
 1306 
 1307 	* src/type1/t1load.c (parse_weight_vector): Fix cast.
 1308 
 1309 2018-07-31  Werner Lemberg  <wl@gnu.org>
 1310 
 1311 	* src/cid/cidtoken.h: Handle `XUID' keyword.
 1312 
 1313 2018-07-31  Werner Lemberg  <wl@gnu.org>
 1314 
 1315 	[cid] Trace PostScript dictionaries.
 1316 
 1317 	* src/cid/cidload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
 1318 	(cid_load_keyword, cid_parse_font_matrix, parse_fd_array,
 1319 	parse_expansion_factor, cid_parse_dict): Add tracing calls.
 1320 	(parse_font_name): New function to trace `/FontName' keywords in
 1321 	/FDArray dict.
 1322 	(cid_field_records): Register `parse_font_name'.
 1323 
 1324 2018-07-30  Werner Lemberg  <wl@gnu.org>
 1325 
 1326 	[cff] Fix typo.
 1327 
 1328 	Reported as
 1329 
 1330 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9409
 1331 
 1332 	* src/cff/cffdrivr.c (cff_get_cid_from_glyph_index): Fix boundary
 1333 	check.
 1334 
 1335 2018-07-29  Werner Lemberg  <wl@gnu.org>
 1336 
 1337 	* src/pcf/pcfread.c (pcf_get_encodings): Another thinko.
 1338 
 1339 	Reported as
 1340 
 1341 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9608
 1342 
 1343 2018-07-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1344 
 1345 	[smooth] Fix Harmony memory management.
 1346 
 1347 	Reported as
 1348 
 1349 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9501
 1350 
 1351 	* src/smooth/ftgrays.c (ft_smooth_render_generic): Restore buffer
 1352 	after each rendering in case of failure.
 1353 
 1354 2018-07-28  Werner Lemberg  <wl@gnu.org>
 1355 
 1356 	[type1] Avoid segfaults with `FT_Get_PS_Font_Value'.
 1357 
 1358 	Reported as
 1359 
 1360 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9610
 1361 
 1362 	* src/type1/t1driver.c (t1_ps_get_font_value): Protect against NULL.
 1363 
 1364 2018-07-27  Werner Lemberg  <wl@gnu.org>
 1365 
 1366 	[truetype] Make `TT_Set_MM_Blend' idempotent (#54388).
 1367 
 1368 	* src/truetype/ttgxvar.c (tt_set_mm_blend): Correctly set
 1369 	`face->doblend' if the current call to the function yields the same
 1370 	blend coordinates as the previous call.
 1371 
 1372 2018-07-27  Werner Lemberg  <wl@gnu.org>
 1373 
 1374 	[psaux, type1]: More tracing improvements.
 1375 
 1376 	* src/psaux/psintrp.c (cf2_interpT2CharString): Trace skipped
 1377 	outline commands.
 1378 
 1379 	* src/psaux/t1decode.c (t1_decoder_parse_charstring): Fix
 1380 	missing case.
 1381 	(t1_decoder_parse_metrics): Make tracing output more compact.
 1382 
 1383 	* src/type1/t1gload.c (T1_Compute_Max_Advance): Be less verbose.
 1384 	(T1_Get_Advances): Add tracing.
 1385 
 1386 2018-07-25  Werner Lemberg  <wl@gnu.org>
 1387 
 1388 	[psaux, type1] Trace PostScript dictionaries and other things.
 1389 
 1390 	The tracing of /Encoding, /Subrs, and /Charstrings is rudimentary
 1391 	right now.
 1392 
 1393 	* src/psaux/psobjs.c (ps_parser_load_field,
 1394 	ps_parser_load_field_table): Add tracing calls.
 1395 
 1396 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Make tracing
 1397 	output more compact.
 1398 
 1399 	* src/type1/t1gload.c (T1_Compute_Max_Advance, T1_Get_Advances): Add
 1400 	tracing messages.
 1401 
 1402 	* src/type1/t1load.c (parse_blend_axis_types,
 1403 	parse_blend_design_positions, parse_blend_design_map,
 1404 	parse_weight_vector, t1_load_keyword, t1_parse_font_matrix,
 1405 	parse_encoding, parse_subrs, parse_charstrings, T1_Open_Face): Add
 1406 	tracing calls.
 1407 
 1408 	* src/type1/t1objs.c (T1_Face_Init): Add tracing call.
 1409 
 1410 	* src/sfnt/sfobjs.c (sfnt_init_face): Make tracing message more
 1411 	verbose.
 1412 
 1413 2018-07-25  Werner Lemberg  <wl@gnu.org>
 1414 
 1415 	Fix minor ASAN run-time warnings.
 1416 
 1417 	* src/base/ftutil.c (ft_mem_alloc, ft_mem_realloc): Only call
 1418 	`FT_MEM_ZERO' if we actually have a buffer.
 1419 	(ft_mem_dup): Only call `ft_memcpy' if we actually have a buffer.
 1420 
 1421 2018-07-24  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1422 
 1423 	[build] Fortify dllexport/dllimport attributes (#53969,#54330).
 1424 
 1425 	We no longer use predefined _DLL, which can be defined for static
 1426 	builds too with /MD. We use DLL_EXPORT and DLL_IMPORT instead,
 1427 	following libtool convention.
 1428 
 1429 	* CMakeLists.txt [WIN32], builds/windows/vc2010/freetype.vcxproj:
 1430 	Define DLL_EXPORT manually.
 1431 
 1432 	* include/freetype/config/ftconfig.h, builds/unix/ftconfig.in,
 1433 	builds/vms/ftconfig.h, builds/windows/vc2010/index.html,
 1434 	src/base/ftver.rc: /_DLL/d, s/FT2_DLLIMPORT/DLL_IMPORT/.
 1435 
 1436 2018-07-24  Werner Lemberg  <wl@gnu.org>
 1437 
 1438 	[type1] Check relationship between number of axes and designs.
 1439 
 1440 	For Multiple Masters fonts we don't support intermediate designs;
 1441 	this implies that
 1442 
 1443 	  number_of_designs == 2 ^^ number_of_axes
 1444 
 1445 	Reported as
 1446 
 1447 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9557
 1448 
 1449 	* src/type1/t1load.c (T1_Open_Face): Ensure above constraint.
 1450 	(T1_Get_MM_Var): Remove now redundant test.
 1451 
 1452 2018-07-24  Hin-Tak Leung  <htl10@users.sourceforge.net>
 1453 
 1454 	[truetype] Match ttdebug's naming of instruction mnemonics.
 1455 
 1456 	* src/truetype/ttinterp.c: The form used in ttdebug,
 1457 	"MDRP[G,B,W,?]", etc., is slightly more readable than
 1458 	"MDRP[00,01,02,03]".
 1459 
 1460 2018-07-24  Werner Lemberg  <wl@gnu.org>
 1461 
 1462 	* src/pcf/pcfread.c (pcf_get_encodings): Thinko.
 1463 
 1464 	Reported as
 1465 
 1466 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9561
 1467 
 1468 2018-07-22  Werner Lemberg  <wl@gnu.org>
 1469 
 1470 	* src/pcf/pcfread.c (pcf_get_encodings): Check index of defaultChar.
 1471 
 1472 	Reported as
 1473 
 1474 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9527
 1475 
 1476 2018-07-22  Werner Lemberg  <wl@gnu.org>
 1477 
 1478 	* src/pcf/pcfread.c (pcf_load_font): Fix number of glyphs.
 1479 
 1480 	This is an oversight of the module change 2018-07-21.
 1481 
 1482 	Reported as
 1483 
 1484 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9524
 1485 
 1486 2018-07-22  Werner Lemberg  <wl@gnu.org>
 1487 
 1488 	[cid] Sanitize `BlueShift' and `BlueFuzz'.
 1489 
 1490 	This code is taken from the type1 module.
 1491 
 1492 	Reported as
 1493 
 1494 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9510
 1495 
 1496 	* src/cid/cidload.c (parse_fd_array): Set some private dict default
 1497 	values.
 1498 	(cid_face_open): Do the sanitizing.
 1499 	Fix some tracing messages.
 1500 
 1501 2018-07-21  Werner Lemberg  <wl@gnu.org>
 1502 
 1503 	[pcf] Fix handling of the undefined glyph.
 1504 
 1505 	This change makes the driver use the `defaultChar' property of PCF
 1506 	files.
 1507 
 1508 	* src/pcf/pcf.h (PCF_FaceRec): Change type of `defaultChar' to
 1509 	unsigned.
 1510 
 1511 	* src/pcf/pcfread.c (pcf_get_encodings): Read `defaultChar' as
 1512 	unsigned.
 1513 	Validate `defaultChar'.
 1514 	If `defaultChar' doesn't point to glyph index zero, swap glyphs with
 1515 	index zero and index `defaultChar' and adjust the encodings
 1516 	accordingly.
 1517 
 1518 	* src/pcf/pcfdrivr.c (pcf_cmap_char_index, pcf_cmap_char_next,
 1519 	PCF_Glyph_Load): Undo change from 2002-06-16 which always enforced
 1520 	the first character in the font to be the default character.
 1521 
 1522 2018-07-20  Armin Hasitzka  <prince.cherusker@gmail.com>
 1523 
 1524 	Move the legacy fuzz target to the `freetype-testing' repository.
 1525 
 1526 	It can now be found at
 1527 
 1528 	  https://github.com/freetype/freetype2-testing/tree/master/fuzzing/src/legacy
 1529 
 1530 	* src/tools/ftfuzzer: Remove this folder and its contents from the
 1531 	repository.
 1532 
 1533 2018-07-20  Werner Lemberg  <wl@gnu.org>
 1534 
 1535 	[cff] Avoid left-shift of negative numbers (#54322).
 1536 
 1537 	* src/cff/cffgload.c (cff_slot_load): Use multiplication.
 1538 
 1539 2018-07-17  Werner Lemberg  <wl@gnu.org>
 1540 
 1541 	Allow FT_ENCODING_NONE for `FT_Select_Charmap'.
 1542 
 1543 	This is a valid encoding tag for BDF, PCF, and Windows FNT, and
 1544 	there is no reason to disallow it for these formats.
 1545 
 1546 	* src/base/ftobjs.c (FT_Select_Charmap): Implement it.
 1547 
 1548 2018-07-17  Werner Lemberg  <wl@gnu.org>
 1549 
 1550 	* src/pcf/pcfread.c (pcf_get_encodings): Trace `defaultChar'.
 1551 
 1552 2018-07-16  Armin Hasitzka  <prince.cherusker@gmail.com>
 1553 
 1554 	* include/freetype/internal/ftcalc.h: Add macros for handling
 1555 	harmless over-/underflowing `FT_Int' values.
 1556 
 1557 	* src/sfnt/sfdriver.c (fixed2float): Fix negation of
 1558 	`(int)(-2147483648)'.
 1559 
 1560 	Reported as
 1561 
 1562 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9423
 1563 
 1564 2018-07-16  Werner Lemberg  <wl@gnu.org>
 1565 
 1566 	* src/truetype/ttgxvar.c (tt_set_mm_blend): Fix off-by-one error.
 1567 
 1568 	Reported as
 1569 
 1570 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9412
 1571 
 1572 2018-07-12  Werner Lemberg  <wl@gnu.org>
 1573 
 1574 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Init `cbox'.
 1575 
 1576 	Taken from patch #9667, written by Steve Langasek
 1577 	<vorlon@debian.org>.
 1578 
 1579 	This fixes a build failure (most probably a bug in gcc) on ppc64el
 1580 	when building with -O3.
 1581 
 1582 2018-07-05  Werner Lemberg  <wl@gnu.org>
 1583 
 1584 	Fix typo (#54238).
 1585 
 1586 	* src/base/ftcolor.c (FT_Palette_Set_Foreground_Color)
 1587 	[!TT_CONFIG_OPTION_COLOR_LAYERS]: Add return value.
 1588 
 1589 2018-07-05  Werner Lemberg  <wl@gnu.org>
 1590 
 1591 	Adjust table size comparisons (#54242).
 1592 
 1593 	* src/sfnt/ttcpal.c (tt_face_load_cpal): Implement it.
 1594 
 1595 2018-07-05  Werner Lemberg  <wl@gnu.org>
 1596 
 1597 	Fix more 32bit issues (#54208).
 1598 
 1599 	* src/cff/cffload.c (cff_blend_build_vector): Convert assertion into
 1600 	run-time error.
 1601 
 1602 	* src/truetype/ttgxvar.c (ft_var_to_normalized): Protect against
 1603 	numeric overflow.
 1604 
 1605 2018-07-04  Werner Lemberg  <wl@gnu.org>
 1606 
 1607 	Fix 32bit build warnings (#54239).
 1608 
 1609 	* src/base/ftbitmap.c (FT_Bitmap_Blend): Add casts to avoid signed
 1610 	vs. unsigned comparisons.
 1611 
 1612 	* srb/sfnt/ttcolr.c (tt_face_get_colr_layer): Ditto.
 1613 
 1614 2018-07-02  Jeff Carey  <Jeff.Carey@monotype.com>
 1615 
 1616 	* src/psnames/psmodule.c (ps_unicodes_init): Fix alloc debugging.
 1617 
 1618 2018-07-02  Werner Lemberg  <wl@gnu.org>
 1619 
 1620 	s/palette_types/palette_flags/.
 1621 
 1622 	Suggested by Behdad.
 1623 
 1624 2018-07-02  Werner Lemberg  <wl@gnu.org>
 1625 
 1626 	Make `FT_Get_Color_Glyph_Layer' return FT_Bool.
 1627 
 1628 	* include/freetype/freetype.h, src/base/ftobjs.c
 1629 	(FT_Get_Color_Glyph_Layer, FT_Render_Glyph_Internal): Updated.
 1630 
 1631 	* include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func),
 1632 	src/sfnt/ttcolr.h, src/sfnt/ttcolr.c (tt_face_get_colr_layer):
 1633 	Updated.
 1634 
 1635 2018-07-01  Werner Lemberg  <wl@gnu.org>
 1636 
 1637 	* src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Guard SFNT function.
 1638 
 1639 	Reported by Behdad.
 1640 
 1641 2018-06-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1642 
 1643 	* src/base/fttrigon.c (FT_Tan): Improve accuracy.
 1644 	(FT_Vector_Rotate): Simplify.
 1645 
 1646 2018-06-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1647 
 1648 	* src/base/ftobjs.c (FT_Set_Charmap): Robustify.
 1649 
 1650 2018-06-25  Werner Lemberg  <wl@gnu.org>
 1651 
 1652 	[truetype] Fix memory leak.
 1653 
 1654 	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Add initializers.
 1655 	Fix typo in `goto' destination.
 1656 
 1657 	Reported as
 1658 
 1659 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9071
 1660 
 1661 2018-06-25  Werner Lemberg  <wl@gnu.org>
 1662 
 1663 	* src/truetype/ttgxvar.c (tt_face_vary_cvt): Add initializers.
 1664 
 1665 	Reported as
 1666 
 1667 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9070
 1668 
 1669 2018-06-24  Werner Lemberg  <wl@gnu.org>
 1670 
 1671 	[truetype] Increase precision while applying VF deltas.
 1672 
 1673 	It turned out that we incorrectly round CVT and glyph point deltas
 1674 	before accumulation, leading to severe positioning errors if there
 1675 	are many delta values to sum up.
 1676 
 1677 	Problem reported by Akiem Helmling <akiem@underware.nl> and analyzed
 1678 	by Behdad.
 1679 
 1680 	* src/truetype/ttgxvar.c (ft_var_readpackeddelta): Return deltas in
 1681 	16.16 format.
 1682 	(tt_face_var_cvt): Collect deltas in `cvt_deltas', which is a 16.16
 1683 	format array, and add the accumulated values to the CVT at the end
 1684 	of the function.
 1685 	(TT_Vary_Apply_Glyph_Deltas): Store data in `points_org' and
 1686 	`points_out' in 16.16 format.
 1687 	Collect deltas in `point_deltas_x' and `point_deltas_y', which are
 1688 	16.16 format arrays, and add the accumulated values to the glyph
 1689 	coordinates at the end of the function.
 1690 
 1691 2018-06-24  Werner Lemberg  <wl@gnu.org>
 1692 
 1693 	New base function `FT_Matrix_Check' (#54019).
 1694 
 1695 	* src/base/ftcalc.c (FT_Matrix_Check): New base function to properly
 1696 	reject degenerate font matrices.
 1697 
 1698 	* include/freetype/internal/ftcalc.h: Updated.
 1699 
 1700 	* src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c
 1701 	(cid_parse_font_matrix), src/type1/t1load.c (t1_parse_font_matrix),
 1702 	src/type42/t42parse.c (t42_parse_font_matrix): Use
 1703 	`FT_Matrix_Check'.
 1704 
 1705 2018-06-23  Werner Lemberg  <wl@gnu.org>
 1706 
 1707 	Fix typo.
 1708 
 1709 	Reported by Behdad.
 1710 
 1711 	* src/base/ftcolor.c (FT_Palette_Data_Get)
 1712 	[!TT_CONFIG_OPTION_COLOR_LAYERS]: s/apalette/apalette_data/.
 1713 
 1714 2018-06-21  Werner Lemberg  <wl@gnu.org>
 1715 
 1716 	s/FT_PALETTE_USABLE_WITH_/FT_PALETTE_FOR_/.
 1717 
 1718 	* include/freetype/ftcolor.h, include/freetype/internal/sfnt.h,
 1719 	src/sfnt/ttcolr.c: Do it.
 1720 
 1721 2018-06-19  Werner Lemberg  <wl@gnu.org>
 1722 
 1723 	[sfnt] Fix CPAL heap buffer overflow.
 1724 
 1725 	Reported as
 1726 
 1727 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8968
 1728 
 1729 	* src/sfnt/ttcpal.c (tt_face_load_cpal): Guard CPAL version 1
 1730 	offsets.
 1731 
 1732 2018-06-19  Werner Lemberg  <wl@gnu.org>
 1733 
 1734 	Doh.  Don't use CPAL or COLR data if tables are missing.
 1735 
 1736 	Reported by Alexei.
 1737 
 1738 	* src/sfnt/ttcolr.c (tt_face_get_colr_layer): Return immediately if
 1739 	`colr' is NULL.
 1740 
 1741 	* src/sfnt/ttcpal.c (tt_face_palette_set): Return immediately, if
 1742 	`cpal' is NULL.
 1743 
 1744 2018-06-17  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1745 
 1746 	[base] Introduce `FT_New_Glyph'.
 1747 
 1748 	This function facilitates access to full capabilities of FreeType
 1749 	rendering engine for custom glyphs. This can be quite useful for
 1750 	consistent rendering of mathematical and chemical formulas, e.g.
 1751 
 1752 	  https://bugs.chromium.org/p/chromium/issues/detail?id=757078
 1753 
 1754 	* include/freetype/ftglyph.h, src/base/ftglyph.c (FT_New_Glyph): New
 1755 	function.
 1756 
 1757 2018-06-17  Armin Hasitzka  <prince.cherusker@gmail.com>
 1758 
 1759 	[bdf] Fix underflow of an unsigned value.
 1760 
 1761 	bdflib.c:1562 could be reached with `font->glyphs_used == 0'.  That
 1762 	caused an underflow of the unsigned value which results in undefined
 1763 	behaviour.
 1764 
 1765 	* src/bdf/bdflib.c (_bdf_parse_glyphs): Bail out earlier than before
 1766 	if the `ENCODING' keyword cannot be found.
 1767 
 1768 2018-06-17  Werner Lemberg  <wl@gnu.org>
 1769 
 1770 	[base] Add tracing for `FT_Bitmap_Blend'.
 1771 
 1772 	* include/freetype/internal/fttrace.h (trace_bitmap): New
 1773 	enumeration.
 1774 
 1775 	* src/base/ftbitmap.c (FT_COMPONENT): Define.
 1776 	(FT_Bitmap_Blend): Add `FT_TRACE5' calls.
 1777 
 1778 2018-06-17  Werner Lemberg  <wl@gnu.org>
 1779 
 1780 	s/trace_bitmap/trace_checksum/.
 1781 
 1782 	* include/freetype/internal/fttrace.h: s/bitmap/checksum/.
 1783 
 1784 	* src/base/ftobjs.c (FT_COMPONENT): s/trace_bitmap/trace_checksum/.
 1785 	Adjust code.
 1786 
 1787 2018-06-16  Werner Lemberg  <wl@gnu.org>
 1788 
 1789 	[sfnt] Fix color glyph layer loading.
 1790 
 1791 	* src/sfnt/ttcolr.c (Colr): Add `table_size' field.
 1792 	(tt_face_load_colr): Set it.
 1793 	(tt_face_get_colr_layer): Check pointer limit for layer entries.
 1794 
 1795 2018-06-16  Werner Lemberg  <wl@gnu.org>
 1796 
 1797 	[sfnt] Fix color palette loading.
 1798 
 1799 	Reported as
 1800 
 1801 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8933
 1802 
 1803 	* src/sfnt/ttcpal.c (Cpal): Add `table_size' field.
 1804 	(tt_face_load_cpal): Set it.
 1805 	(tt_face_palette_set): Check pointer limit for color entries.
 1806 
 1807 2018-06-16  Werner Lemberg  <wl@gnu.org>
 1808 
 1809 	* src/base/ftbitmap.c (FT_Bitmap_Blend): Avoid integer overflow.
 1810 
 1811 2018-06-16  Werner Lemberg  <wl@gnu.org>
 1812 
 1813 	Add `FT_Bitmap_Blend' API.
 1814 
 1815 	Still missing: Support for negative bitmap pitch and subpixel offset
 1816 	of source bitmap.
 1817 
 1818 	* include/freetype/ftbitmap.h, src/base/ftbitmap.c
 1819 	(FT_Bitmap_Blend): New function.
 1820 
 1821 2018-06-14  Werner Lemberg  <wl@gnu.org>
 1822 
 1823 	Replace `FT_Get_GlyphLayers' with `FT_Get_Color_Glyph_Layer'.
 1824 
 1825 	This avoids any additional allocation of COLR related structures in
 1826 	a glyph slot.
 1827 
 1828 	* include/freetype/freetype.h (FT_Glyph_Layer, FT_Glyph_LayerRec,
 1829 	FT_Get_GlyphLayers): Removed.
 1830 
 1831 	* include/freetype/internal/ftobjs.h (FT_Colr_InternalRec): Removed.
 1832 	(FT_Slot_InternalRec): Remove `color_layers'.
 1833 
 1834 	* include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func):
 1835 	Removed.
 1836 	(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Remove
 1837 	`load_colr_layer'.
 1838 
 1839 	* src/base/ftobjs.c (ft_glyph_slot_done): Updated.
 1840 	(FT_Render_Glyph_Internal): Use `FT_Get_Color_Glyph_Layer'.
 1841 	(FT_Get_GlyphLayers): Removed.
 1842 
 1843 	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
 1844 
 1845 	* src/sfnt/ttcolr.c (tt_face_load_colr_layers): Removed.
 1846 	* src/sfnt/ttcolr.h: Updated.
 1847 
 1848 	* src/truetype/ttgload.c (TT_Load_Glyph): Updated.
 1849 
 1850 2018-06-14  Werner Lemberg  <wl@gnu.org>
 1851 
 1852 	Provide iterative API to access `COLR' data.
 1853 
 1854 	This solution doesn't store any data in an `FT_GlyphSlot' object.
 1855 
 1856 	* include/freetype/freetype.h (FT_LayerIterator): New structure.
 1857 	(FT_Get_Color_Glyph_Layer): New function.
 1858 
 1859 	* include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func): New
 1860 	function type.
 1861 	(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it.
 1862 
 1863 	* src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Implement it.
 1864 
 1865 	* src/sfnt/ttcolr.c (tt_face_get_colr_layer): New function.
 1866 	* src/sfnt/ttcolr.h: Updated.
 1867 
 1868 	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
 1869 
 1870 2018-06-14  Werner Lemberg  <wl@gnu.org>
 1871 
 1872 	Add glyph index and glyph load flags to glyph slot.
 1873 
 1874 	* include/freetype/freetype.h (FT_GlyphSlotRec): Rename unused
 1875 	`reserved' field to `glyph_index'.
 1876 
 1877 	* include/freetype/internal/ftobjs.h (FT_Slot_InternalRec): Add
 1878 	`load_flags' field.
 1879 
 1880 	* src/base/ftobjs.c (FT_Load_Glyph): Set new fields.
 1881 
 1882 2018-06-14  Werner Lemberg  <wl@gnu.org>
 1883 
 1884 	[sfnt] Move `CPAL' stuff into separate files.
 1885 
 1886 	* src/sfnt/sfdriver.c: Include `ttcpal.h'.
 1887 	* src/sfnt/sfnt.c: Include `ttcpal.c'.
 1888 
 1889 	* src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: Move CPAL stuff to ...
 1890 	* src/sfnt/ttcpal.c, src/sfnt/ttcpal.c: ... these new files.
 1891 
 1892 	* src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC):
 1893 	Updated.
 1894 
 1895 	* include/freetype/internal/fttrace.h: Add support for `colr' and
 1896 	`cpal'.
 1897 	Sort entries.
 1898 
 1899 2018-06-13  Werner Lemberg  <wl@gnu.org>
 1900 
 1901 	[sfnt] Separate `CPAL' and `COLR' table handling.
 1902 
 1903 	Later on we want to support the `SVG' table also, which needs `CPAL'
 1904 	(but not `COLR').
 1905 
 1906 	* include/freetype/internal/sfnt.h (SFNT_Interface): Add `load_cpal'
 1907 	and `free_cpal' fields.
 1908 	(FT_DEFINE_SFNT_INTERFACE): Updated.
 1909 
 1910 	* include/freetype/internal/tttypes.h (TT_FaceRec): Replace
 1911 	`colr_and_cpal' fields with `cpal' and `colr'.
 1912 
 1913 	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
 1914 
 1915 	* src/sfnt/sfobjs.c (sfnt_load_face, sfnt_done_face): Updated.
 1916 
 1917 	* src/sfnt/ttcolr.c (Colr, Cpal): Add `table' field.
 1918 	(ColrCpal): Removed.
 1919 	(tt_face_load_colr): Split off CPAL handling into...
 1920 	(tt_face_load_cpal): ... this new function.
 1921 	(tt_face_free_colr): Split off CPAL handling into...
 1922 	(tt_face_free_cpal): ... this new function.
 1923 	(tt_face_load_colr_layers, tt_face_palette_set): Updated.
 1924 
 1925 	* src/sfnt/ttcolr.h: Updated.
 1926 
 1927 	* src/truetype/ttgload.c (TT_Load_Glyph): Updated.
 1928 
 1929 2018-06-12  Werner Lemberg  <wl@gnu.org>
 1930 
 1931 	[sfnt] Fix `sizeof' thinko.
 1932 
 1933 	* src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_palette_set): Don't
 1934 	use `sizeof' for computing array limit.
 1935 
 1936 2018-06-12  Werner Lemberg  <wl@gnu.org>
 1937 
 1938 	Finish CPAL/COLR support (4/4).
 1939 
 1940 	* src/sfnt/ttcolr.c (tt_face_find_color): Removed.
 1941 	(tt_face_colr_blend_layer): Use `face->palette' instead of calling
 1942 	`tt_face_find_color'.
 1943 	Use and set text foreground color.
 1944 
 1945 2018-06-12  Werner Lemberg  <wl@gnu.org>
 1946 
 1947 	Finish CPAL/COLR support (3/4).
 1948 
 1949 	* src/base/ftcolor.c: Include FT_INTERNAL_SFNT_H.
 1950 	(FT_Palette_Select, FT_Palette_Set_Foreground_Color): Implement
 1951 	functions.
 1952 
 1953 2018-06-12  Werner Lemberg  <wl@gnu.org>
 1954 
 1955 	Finish CPAL/COLR support (2/4).
 1956 
 1957 	* src/sfnt/ttcolr.c (tt_face_palette_set): New function.
 1958 	(tt_face_load_colr): Allocate `face->palette' and call
 1959 	`tt_face_palette_set'.
 1960 	Adjust return error code in case of error.
 1961 
 1962 	* src/sfnt/ttcolr.h: Updated.
 1963 
 1964 	* include/freetype/internal/sfnt.h (TT_Set_Palette_Func): New
 1965 	function type.
 1966 	(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it.
 1967 
 1968 	* src/sfnt/sfdriver.c (sfnt_interface), src/sfnt/sfobjs.c
 1969 	(sfnt_done_face): Updated.
 1970 
 1971 2018-06-12  Werner Lemberg  <wl@gnu.org>
 1972 
 1973 	Finish CPAL/COLR support (1/4).
 1974 
 1975 	* include/freetype/internal/tttypes.h (TT_FaceRec): New fields
 1976 	`palette_index', `palette', `have_foreground_color' and
 1977 	`foreground_color'.
 1978 
 1979 2018-06-12  Werner Lemberg  <wl@gnu.org>
 1980 
 1981 	[sfnt] Minor.
 1982 
 1983 	* src/sfnt/ttcolr.c (tt_face_load_colr_layers):
 1984 	s/palette_index/palette_entry_index/ for consistency.
 1985 	Adjust return error code in case of error.
 1986 
 1987 2018-06-11  Alexei Podtelezhnikov  <apodtele@gmail.com>
 1988 
 1989 	[raster] Clean up.
 1990 
 1991 	* src/raster/ftraster.c (black_TWorker, SCALED, Set_High_Precision):
 1992 	Clean up after 5-level gray removal (8dc8635874).
 1993 	(Vertical_Sweep_Span): Be brief.
 1994 
 1995 2018-06-10  Werner Lemberg  <wl@gnu.org>
 1996 
 1997 	[sfnt] Fix compiler warnings.
 1998 
 1999 	* src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_load_colr_layers,
 2000 	tt_face_colr_blend_layer): Add `NULL' initializers.
 2001 
 2002 2018-06-10  Werner Lemberg  <wl@gnu.org>
 2003 
 2004 	s/FT_Palette/FT_Palette_Data/, s/palette/palette_data/.
 2005 
 2006 	* include/freetype/ftcolor.h, include/freetype/internal/tttypes.h,
 2007 	src/base/ftcolor.c, src/sfnt/sfobjs.c, src/sfnt/ttcolr.c: Updated.
 2008 
 2009 2018-06-10  Nikolaus Waxweiler  <madigens@gmail.com>
 2010 
 2011 	CMakeLists: also accept IOS_PLATFORM=SIMULATOR64
 2012 
 2013 	This might be needed to build FreeType for the iOS simulator. See
 2014 	https://savannah.nongnu.org/bugs/index.php?54048. Patch contributed
 2015 	by Steve Robinson.
 2016 
 2017 	* CMakeLists.txt: Accept IOS_PLATFORM=SIMULATOR64
 2018 
 2019 2018-06-10  Werner Lemberg  <wl@gnu.org>
 2020 
 2021 	Implement `FT_Palette_Get'.
 2022 
 2023 	* src/base/ftcolor.c: New file.
 2024 
 2025 	* src/base/Jamefile (_sources), src/base/rules.mk (BASE_SRC),
 2026 	src/base/ftbase.c: Add `ftcolor.c'.
 2027 
 2028 2018-06-10  Werner Lemberg  <wl@gnu.org>
 2029 
 2030 	* src/sfnt/ttcolr.c (tt_face_load_colr): Improve overflow checks.
 2031 
 2032 2018-06-09  Alexei Podtelezhnikov  <apodtele@gmail.com>
 2033 
 2034 	[raster] Deal with pitch sign earlier.
 2035 
 2036 	* src/raster/ftraster.c (black_TWorker): Remove unused `traceG',
 2037 	s/bTarget/bOrigin/.
 2038 	(Render_Glyph): Set `ras.bOrigin' at the bottom-left corner.
 2039 	(Vertical_Sweep_Init, {Vertical,Horizontal}_Sweep_{Span,Drop}):
 2040 	Updated accordingly.
 2041 
 2042 2018-06-09  Werner Lemberg  <wl@gnu.org>
 2043 
 2044 	[sfnt] Read `CPAL' version 1 tables.
 2045 
 2046 	* include/freetype/internal.tttypes.h: Include FT_COLOR_H.
 2047 	(TT_FaceRec): Add `palette' field.
 2048 
 2049 	* src/sfnt/ttcolr.c: Include FT_COLOR_H.
 2050 	(Cpal): Remove all data covered by the new `palette' field in
 2051 	`TT_FaceRec'.
 2052 	(tt_face_load_colr): Updated.
 2053 	Read `CPAL' version 1 data.
 2054 	(tt_face_load_colr_layers, tt_face_find_color): Updated.
 2055 
 2056 	* src/sfnt/sfobjs.c (sfnt_done_face): Free glyph color palette data.
 2057 
 2058 2018-06-07  Alexei Podtelezhnikov  <apodtele@gmail.com>
 2059 
 2060 	[base] API for Harmony LCD rendering.
 2061 
 2062 	This introduces `FT_Library_SetLcdGeometry' for setting up arbitrary
 2063 	LCD subpixel geometry including non-striped patterns.
 2064 
 2065 	* src/base/ftlcdfil.c (FT_Library_SetLcdGeometry): New function.
 2066 	* include/freetype/ftlcdfil.h: Document it.
 2067 	* include/freetype/freetype.h: Minor.
 2068 	* include/freetype/ftchapters.h: Minor.
 2069 
 2070 2018-06-06  Werner Lemberg  <wl@gnu.org>
 2071 
 2072 	ftcolor.h: Redesign API.
 2073 
 2074 	While going to implement it I noticed that I need access to most of
 2075 	the `CPAL' elements; I thus plan to add a `cpal' field to
 2076 	`TT_FaceRec', which makes most of the previously suggested API
 2077 	functions obsolete because the fields will be directly accessible.
 2078 
 2079 2018-06-06  Parth Wazurkar  <parthwazurkar@gmail.com>
 2080 
 2081 	[bdf, pcf] Remove deprecated FT_FACE_FLAG_FAST_GLYPHS flag.
 2082 
 2083 	* src/bdf/bdfdrivr.c (BDF_Face_Init): Remove deprecated
 2084 	FT_FACE_FLAG_FAST_GLYPHS flag.
 2085 
 2086 	* src/pcf/pcfread.c (pcf_load_font): Remove deprecated
 2087 	FT_FACE_FLAG_FAST_GLYPHS flag.
 2088 
 2089 2018-06-06  Werner Lemberg  <wl@gnu.org>
 2090 
 2091 	[smooth, raster] Limit bitmap size (#54019).
 2092 
 2093 	* src/raster/ftraster.c [STANDALONE] (FT_Outline_Get_CBox): Add
 2094 	function.
 2095 	[!STANDALONE]: Include FT_OUTLINE_H.
 2096 	(ft_black_render): Compute CBox and reject glyphs larger than
 2097 	0xFFFF x 0xFFFF.
 2098 
 2099 	* src/smooth/ftgrays.c (gray_raster_render): Reject glyphs larger
 2100 	than 0xFFFF x 0xFFFF.
 2101 
 2102 2018-06-03  Armin Hasitzka  <prince.cherusker@gmail.com>
 2103 
 2104 	* src/smooth/ftgrays.c (gray_convert_glyph): Remove unused variables.
 2105 
 2106 2018-06-03  Werner Lemberg  <wl@gnu.org>
 2107 
 2108 	* src/tools/glnames.py (main): Emit header in `light' comment style.
 2109 
 2110 2018-06-02  Alexei Podtelezhnikov  <apodtele@gmail.com>
 2111 
 2112 	[smooth] Attempt to mitigate bug #54019.
 2113 
 2114 	The robust rendering of estra large glyphs came with unbearable cost.
 2115 	The old way of bisecting should fail but fail faster.
 2116 
 2117 	* src/smooth/ftgrays.c (gray_convert_glyph): Switch back to bisecting
 2118 	in y-direction.
 2119 
 2120 2018-06-02  Werner Lemberg  <wl@gnu.org>
 2121 
 2122 	* src/truetype/ttinterp.c (Ins_MIRP): Use SUB_LONG; avoid FT_ABS.
 2123 
 2124 	Reported as
 2125 
 2126 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8706
 2127 
 2128 2018-06-02  Werner Lemberg  <wl@gnu.org>
 2129 
 2130 	* src/autofit/afwarp.h: Use AF_CONFIG_OPTION_USE_WARPER (#54033).
 2131 
 2132 2018-05-31  Werner Lemberg  <wl@gnu.org>
 2133 
 2134 	* src/raster/ftraster.c (black_TWorker_): Remove `gTarget' field.
 2135 
 2136 	This is no longer used.
 2137 
 2138 2018-05-31  Werner Lemberg  <wl@gnu.org>
 2139 
 2140 	[sfnt] Get colors from `CPAL' table in right order (#54015).
 2141 
 2142 	* src/sfnt/ttcolr.c (tt_face_find_color): Fix it.
 2143 
 2144 2018-05-30  Werner Lemberg  <wl@gnu.org>
 2145 
 2146 	ftcolor.h: Improve API design, fix typos (#54011, #54014).
 2147 
 2148 	* include/freetype/ftcolor.h (FT_Palette_Get_Names): Replace with...
 2149 	(FT_Palette_Get_Name_IDs): ... this function.
 2150 	(FT_Palette_Get_Entry_Names): Replace with...
 2151 	(FT_Palette_Get_Entry_Name_IDs): ... this function
 2152 	s/FT_Palette_Set_Foreground_COlor/FT_Palette_Set_Foreground_Color/.
 2153 
 2154 2018-05-30  Armin Hasitzka  <prince.cherusker@gmail.com>
 2155 
 2156 	Beautify a3cfed5e87232c933bdc64f43e8ebebcfd18b41b.
 2157 
 2158 	* src/autofit/afloader.c (af_loader_load_glyph): Move the
 2159 	initialisationand declaration of variables into the if-block.
 2160 
 2161 2018-05-30  Armin Hasitzka  <prince.cherusker@gmail.com>
 2162 
 2163 	Fix pointer underflow.
 2164 
 2165 	The declaration of `edge2' can be reached with `edge1 == NULL' and
 2166 	`axis->edges == 0' which results in undefined behaviour.
 2167 
 2168 	* src/autofit/afloader.c (af_loader_load_glyph): Initialise `edge2'
 2169 	after checking `axis->num_edges > 1'.  `edge1 != NULL' can be assumed.
 2170 
 2171 2018-05-30  Werner Lemberg  <wl@gnu.org>
 2172 
 2173 	Various minor color fixes.
 2174 
 2175 	* include/freetype/config/ftheader.h (FT_COLOR_H): New macro.
 2176 
 2177 	* include/freetype/internal/ftobjs.h (FT_Colr_Internal): Change
 2178 	type of `load_flags' to `FT_Int32'.
 2179 
 2180 	* include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func): Change
 2181 	type of `idx' to `FT_UInt'.
 2182 	(TT_Blend_Colr_Func): Change type of `color_index' to `FT_UInt'.
 2183 
 2184 	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Change type of
 2185 	`load_flags' to `FT_Int32'.
 2186 
 2187 	* src/sfnt/ttcolr.c (find_base_glyph_record,
 2188 	tt_face_load_colr_layers): Change type of `glyph_id' to `FT_UInt'.
 2189 	(tt_face_find_color, tt_face_colr_blend_layer): Change type of
 2190 	`color_index' to `FT_UInt'.
 2191 	Fix signedness and type issues.
 2192 
 2193 	* src/sfnt/ttcolr.h: Updated.
 2194 
 2195 2018-05-25  Nikhil Ramakrishnan  <ramakrishnan.nikhil@gmail.com>
 2196 
 2197 	[docmaker] Fix missing `Defined in (...)' under Windows/Cygwin.
 2198 
 2199 	This platform uses backslashes for paths, which docmaker didn't
 2200 	understand correctly.
 2201 
 2202 	* src/tools/docmaker/tohtml.py (HtmlFormatter::blockEnter): Use
 2203 	`os.path.normpath' to normalize the path for the platform being
 2204 	used.
 2205 
 2206 2018-05-24  Alexei Podtelezhnikov  <apodtele@gmail.com>
 2207 
 2208 	[smooth] Formalize Harmony LCD rendering.
 2209 
 2210 	This generalizes magic outline shifts that make Harmony LCD
 2211 	rendering work in terms of precise two-dimensional RGB subpixel
 2212 	positions. These coordinates are now set in time of the `smooth'
 2213 	module initialization and later used to shift a glyph outline for
 2214 	rendering. FT_RENDER_MODE_LCD and FT_RENDER_MODE_LCD_V use the same
 2215 	coordinates. The letter, however, rotates them before using.
 2216 	The LCD bitmap padding is also calculated using these coordinates.
 2217 
 2218 	* include/freetype/internal/ftobjs.h (FT_LibraryRec): New array field
 2219 	`lcd_geometry'.
 2220 	* src/base/ftlcdfil.c (ft_lcd_padding): Reworked.
 2221 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Updated accordingly.
 2222 
 2223 	* src/smooth/ftsmooth.c [!FT_CONFIG_OPTION_SUBPIXEL_RENDERING]
 2224 	(ft_smooth_init): Initialize `lcd_geometry'.
 2225 	(ft_smooth_render_generic): Formalize outline shifts.
 2226 
 2227 2018-05-22  Werner Lemberg  <wl@gnu.org>
 2228 
 2229 	[truetype] Reject elements of composites with invalid glyph indices.
 2230 
 2231 	Reported as
 2232 
 2233 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8413
 2234 
 2235 	* src/truetype/ttgload.c (TT_Load_Composite_Glyph): Implement it.
 2236 
 2237 2018-05-22  Werner Lemberg  <wl@gnu.org>
 2238 
 2239 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Trace # of points.
 2240 
 2241 2018-05-20  Werner Lemberg  <wl@gnu.org>
 2242 
 2243 	* include/freetype/ftcolor.h: New file.
 2244 
 2245 	This is an interface to the `CPAL' OpenType table.  No
 2246 	implementation yet.
 2247 
 2248 2018-05-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
 2249 
 2250 	* include/freetype/internal/ftcalc.h (FT_MSB): Verified `_MSC_VER'.
 2251 
 2252 	Actually `_BitScanReverse' is available since VS2005.
 2253 
 2254 2018-05-18  Werner Lemberg  <wl@gnu.org>
 2255 
 2256 	* include/freetype/internal/ftcalc.h (FT_MSB): Use `_MSC_VER' value.
 2257 
 2258 	Older VC versions don't provide `_BitScanReverse'.  We test for VC
 2259 	2013.
 2260 
 2261 	Reported by John Emmas <john@creativepost.co.uk>.
 2262 
 2263 2018-05-17  Werner Lemberg  <wl@gnu.org>
 2264 
 2265 	s/inline/__inline/ for MSVC.
 2266 
 2267 	Reported by John Emmas <john@creativepost.co.uk>.
 2268 
 2269 	* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Do it.
 2270 
 2271 2018-05-16  Werner Lemberg  <wl@gnu.org>
 2272 
 2273 	Add function `FT_Get_GlyphLayers' to access `COLR' table data.
 2274 
 2275 	* include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec): Move this
 2276 	structure to...
 2277 	* include/freetype/freetype.h (FT_Glyph_LayerRec): ... this
 2278 	header file.
 2279 	(FT_Glyph_Layer): New typedef.
 2280 	Update code to use it where appropriate.
 2281 
 2282 	* src/base/ftobjs.c (FT_Get_GlyphLayers): New function.
 2283 
 2284 2018-05-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
 2285 
 2286 	[base] Fix mono bitmap presetting (#53896).
 2287 
 2288 	It is rather fundamental to set monochrome bitmap based on rounded
 2289 	CBox because the b/w rasterizer turns on pixels when their centers are
 2290 	inside the glyph outline. The dropout control is unpredictable and can
 2291 	distort narrow glyphs if the bitmap is too wide.
 2292 
 2293 	Reported by Chris Liddell.
 2294 
 2295 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): If BBox boundaries
 2296 	are too close, adjust them before rounding.
 2297 
 2298 2018-05-15  Werner Lemberg  <wl@gnu.org>
 2299 
 2300 	[psaux] Fix compiler warning (#53915).
 2301 
 2302 	* src/psaux/psft.c (cf2_freeT1SeacComponent): Do it.
 2303 
 2304 2018-05-15  Werner Lemberg  <wl@gnu.org>
 2305 
 2306 	[sfnt] Fix memory leak in handling `COLR' data.
 2307 
 2308 	* src/truetype/ttgload.c (TT_Load_Glyph): Free old `layers' array
 2309 	before reassigning allocated memory.
 2310 	Only allocate `color_layers' if we don't have one already.
 2311 
 2312 2018-05-15  Werner Lemberg  <wl@gnu.org>
 2313 
 2314 	[sfnt] If `COLR' is present, don't assume that all glyphs use it.
 2315 
 2316 	* src/sfnt/ttcolr.c (tt_face_load_colr_layers): Return FT_Err_Ok if
 2317 	current glyph is not a `COLR' base glyph.
 2318 
 2319 	* src/truetype/ttgload.c (TT_Load_Glyph): Don't allocate
 2320 	`color_layers' if there are no color layers.
 2321 
 2322 2018-05-14  Werner Lemberg  <wl@gnu.org>
 2323 
 2324 	* src/base/ftobjs.c (FT_Load_Glyph): Fix signature of `pixel_modes'.
 2325 
 2326 2018-05-14  Werner Lemberg  <wl@gnu.org>
 2327 
 2328 	Provide dummy functions if `TT_CONFIG_OPTION_SFNT_NAMES' is not set.
 2329 
 2330 	* src/base/ftsnames.c [!TT_CONFIG_OPTION_SFNT_NAMES]: Implement it.
 2331 
 2332 2018-05-13  Werner Lemberg  <wl@gnu.org>
 2333 
 2334 	* src/base/ftobjs.c (FT_Load_Glyph): Improve tracing.
 2335 
 2336 2018-05-13  Shao Yu Zhang  <shaozhang@fb.com>
 2337 	    Werner Lemberg  <wl@gnu.org>
 2338 
 2339 	[sfnt] Preliminary support of coloured layer outlines (#44689).
 2340 
 2341 	This commit enables OpenType's COLR/CPAL table handling; a typical
 2342 	application are color emojis that can be scaled to any size.
 2343 
 2344 	If the color palette does not exist or is invalid, the rendering
 2345 	step rasterizes the outline instead.  The current implementation
 2346 	assumes that the foreground is black.
 2347 
 2348 	Enable this by defining option TT_CONFIG_OPTION_COLOR_LAYERS.
 2349 
 2350 	There are still some issues with metrics; additionally, an API to
 2351 	fetch color layers is missing.
 2352 
 2353 	* devel/ftoption.h, include/freetype/config/ftoption.h
 2354 	(TT_CONFIG_OPTION_COLOR_LAYERS): New macro.
 2355 
 2356 	* include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec,
 2357 	FT_Colr_InternalRec): New structures.
 2358 	(FT_Slot_InternalRec): Add `color_layers' field.
 2359 
 2360 	* include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func,
 2361 	TT_Blend_Colr_Func): New function types.
 2362 	(SFNT_Interface): Add `load_colr', `free_colr', `load_colr_layer',
 2363 	and `colr_blend' fields.
 2364 
 2365 	* include/freetype/internal/tttypes.h (TT_FaceRec): Add
 2366 	`colr_and_cpal' field.
 2367 
 2368 	* include/freetype/internal/tttags. (TTAG_COLR, TTAG_CPAL): New
 2369 	macros.
 2370 
 2371 	* src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: New files.
 2372 
 2373 	* src/base/ftobjs.c (ft_glyphslot_done, FT_Render_Glyph_Internal):
 2374 	Handle glyph color layers.
 2375 
 2376 	* src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC): Add
 2377 	`ttcolr.c'.
 2378 
 2379 	* src/sfnt/sfdriver.c: Include `ttcolr.h'.
 2380 	(PUT_COLOR_LAYERS): New macro.
 2381 	Update call to `FT_DEFINE_SFNT_INTERFACE'.
 2382 
 2383 	* src/sfnt/sfnt.c: Include `ttcolr.c'.
 2384 
 2385 	* src/sfnt/sfobjs.c (sfnt_load_face): Load `COLR' and `CPAL' tables.
 2386 	(sfnt_done_face): Updated.
 2387 
 2388 	* src/truetype/ttgload.c (TT_Load_Glyph): Handle color layers.
 2389 
 2390 2018-05-12  Arkady Shapkin  <arkady.shapkin@gmail.com>
 2391 
 2392 	Use MS VC++'s _BitScanReverse to calculate MSB (patch #9636).
 2393 
 2394 	* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Implement
 2395 	it.
 2396 
 2397 2018-05-10  Alan Coopersmith  <alan.coopersmith@oracle.com>
 2398 
 2399 	Fix DLL compilation on Solaris.
 2400 
 2401 	AC_COMPILE_IFELSE only tries to compile a `*.c' to a `*.o'.  The
 2402 	Solaris Studio 12.1 through 12.5 compilers see the
 2403 	`-fvisibility=hidden' flag, but ignore it with a warning of:
 2404 
 2405 	  cc: Warning: Option -fvisibility=hidden passed to ld,
 2406 	               if ld is invoked, ignored otherwise
 2407 
 2408 	AC_LINK_IFELSE does the compile and then tries to link the result,
 2409 	at which point the Solaris linker will issue an error:
 2410 
 2411 	  ld: fatal: option '-fvisibility=hidden' is incompatible with
 2412 	      building a dynamic executable
 2413 
 2414 	If we don't use AC_LINK_IFELSE to catch the error, then configure
 2415 	will fail further tests which attempt to link, such as those testing
 2416 	dependencies like `libbz2'.
 2417 
 2418 	Also, don't try adding `-fvisibility' if we have already added
 2419 	`-xldscope', just use one of them, since Sun Studio 12 and earlier
 2420 	compilers only issue a warning, and don't try passing through to the
 2421 	linker to generate an error, so AC_LINK_IFELSE doesn't catch them.
 2422 
 2423 	Tested on Solaris 11.4 beta with compiler versions:
 2424 
 2425 	  Sun Studio 8 (Sun C 5.5)
 2426 	  Sun Studio 10 (Sun C 5.7)
 2427 	  Sun Studio 11 (Sun C 5.8)
 2428 	  Sun Studio 12 (Sun C 5.9)
 2429 	  Sun Studio 12.1 (Sun C 5.10)
 2430 	  Oracle Solaris Studio 12.2 (Sun C 5.11)
 2431 	  Oracle Solaris Studio 12.3 (Sun C 5.12)
 2432 	  Oracle Solaris Studio 12.4 (Sun C 5.13)
 2433 	  Oracle Developer Studio 12.5 (Sun C 5.14)
 2434 	  Oracle Developer Studio 12.6 (Sun C 5.15)
 2435 	  gcc 5.5.0
 2436 	  gcc 7.3.0
 2437 
 2438 	and verified the libfreetype.so.6 generated by each of those
 2439 	compilers exported the same set of symbols.
 2440 
 2441 	* builds/unix/configure.raw: Implement it.
 2442 
 2443 2018-05-08  Werner Lemberg  <wl@gnu.org>
 2444 
 2445 	[autofit] Avoid potential SEGV if running out of memory.
 2446 
 2447 	Problem reported by Shailesh Mistry <shailesh.mistry@hotmail.co.uk>.
 2448 
 2449 	* src/autofit/afshaper.c (af_shaper_buf_create,
 2450 	af_shaper_buf_destroy) [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Don't
 2451 	allocate and free a four-byte buffer.  Instead, make those functions
 2452 	no-ops; the calling functions will provide a pointer to a buffer
 2453 	instead.
 2454 
 2455 	* src/autofit/afcjk.c (af_cjk_metrics_init_widths,
 2456 	af_cjk_metrics_init_blues, af_cjk_metrics_check_digits),
 2457 	src/autofit/aflatin.c (af_latin_metrics_init_widths,
 2458 	af_latin_metrics_init_blues, af_latin_metrics_check_digits)
 2459 	[!FT_CONFIG_OPTION_USE_HARFBUZZ]: Use pointer to local variable for
 2460 	`shaper_buf'.
 2461 
 2462 2018-05-07  Nikolaus Waxweiler  <madigens@gmail.com>
 2463 
 2464 	[cmake] Allow using project as subfolder in other project.
 2465 
 2466 	* CMakeLists.txt: Test for CMake build directory being different
 2467 	from source directory.  Provide other parts of the build system
 2468 	access the full include directory.
 2469 
 2470 2018-05-07  Werner Lemberg  <wl@gnu.org>
 2471 
 2472 	[build] Suppress configure's `nothing to be done' message.
 2473 
 2474 	This is due to calling the configure script via `make' (within the
 2475 	top-level `configure' wrapper script).  The same can happen for all
 2476 	other secondary make targets that are used to only modify the
 2477 	primary one, e.g., `make setup devel'.
 2478 
 2479 	* builds/dos/detect.mk (emx, turboc, watcom, borlandc, borlandc16),
 2480 	builds/os2/detect (visualage, watcom, borlandc, devel),
 2481 	builds/unix/detect.mk (devel, lcc, unix), builds/windows/detect.mk
 2482 	(visualc, watcom, visualage, lcc, mingw32, bcc32, devel-bcc,
 2483 	devel-gcc): Use no-op recipe.
 2484 
 2485 2018-05-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 2486 
 2487 	Support symbol visibility features of Sun / Oracle C compilers.
 2488 
 2489 	Reported by Kiyoshi Kanazawa:
 2490 	https://lists.gnu.org/archive/html/freetype-devel/2018-05/msg00008.html
 2491 	Thanks to the suggestions by Alexei and Alan Coopersmith.
 2492 
 2493 	* builds/unix/configure.raw: Check if "-xldscope=hidden" is
 2494 	accepted, and if so, it is added to CFLAGS.  This is the option
 2495 	making Sun / Oracle C compilers hide the symbols from global
 2496 	scope.
 2497 	* include/freetype/config/ftconfig.h: Use "__global" prefix
 2498 	for FT_EXPORT() macro, if SunPro C is newer than Sun ONE
 2499 	Studio 8 (2003).
 2500 	* builds/unix/ftconfig.in: Ditto.
 2501 	* builds/vms/ftconfig.h: Ditto.
 2502 
 2503 2018-05-02  Nikolaus Waxweiler  <madigens@gmail.com>
 2504 
 2505 	Unbreak CMake Windows installation
 2506 
 2507 	* CMakeLists.txt: Generate ftconfig.h on non-UNIX.
 2508 
 2509 2018-05-02  Werner Lemberg  <wl@gnu.org>
 2510 
 2511 	Remove FT_CONFIG_OPTION_PIC and related code.
 2512 
 2513 	*/* [FT_CONFIG_OPTION_PIC]: Remove all code guarded by this
 2514 	preprocessor symbol.
 2515 
 2516 	*/*: Replace `XXX_GET' macros (which could be either a function in
 2517 	PIC mode or an array in non-PIC mode) with `xxx' arrays.
 2518 
 2519 	* include/freetype/internal/ftpic.h, src/autofit/afpic.c,
 2520 	src/autofit/afpic.h, src/base/basepic.c, src/base/basepic.h,
 2521 	src/base/ftpic.c, src/cff/cffpic.c, src/cff/cffpic.h,
 2522 	src/pshinter/pshpic.c, src/pshinter/pshpic.h, src/psnames/pspic.c,
 2523 	src/psnames/pspic.h, src/raster/rastpic.c, src/raster/rastpic.h,
 2524 	src/sfnt/sfntpic.c, src/sfnt/sfntpic.h, src/smooth/ftspic.c,
 2525 	src/smooth/ftspic.h, src/truetype/ttpic.c, src/truetype/ttpic.h:
 2526 	Removed.
 2527 
 2528 2018-05-01  Werner Lemberg  <wl@gnu.org>
 2529 
 2530 	* Version 2.9.1 released.
 2531 	=========================
 2532 
 2533 
 2534 	Tag sources with `VER-2-9-1'.
 2535 
 2536 	* docs/VERSION.TXT: Add entry for version 2.9.1.
 2537 	* docs/CHANGES: Updated.
 2538 
 2539 	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
 2540 	src/base/ftver.rc, builds/windows/vc2005/index.html,
 2541 	builds/windows/vc2008/freetype.vcproj,
 2542 	builds/windows/vc2008/index.html,
 2543 	builds/windows/vc2010/freetype.vcxproj,
 2544 	builds/windows/vc2010/index.html,
 2545 	builds/windows/visualc/freetype.dsp,
 2546 	builds/windows/visualc/freetype.vcproj,
 2547 	builds/windows/visualc/index.html,
 2548 	builds/windows/visualce/freetype.dsp,
 2549 	builds/windows/visualce/freetype.vcproj,
 2550 	builds/windows/visualce/index.html,
 2551 	builds/wince/vc2005-ce/freetype.vcproj,
 2552 	builds/wince/vc2005-ce/index.html,
 2553 	builds/wince/vc2008-ce/freetype.vcproj,
 2554 	builds/wince/vc2008-ce/index.html: s/2.9/2.9.1/, s/29/291/.
 2555 
 2556 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
 2557 
 2558 	* builds/unix/configure.raw (version_info): Set to 22:1:16.
 2559 	* CMakeLists.txt (VERSION_PATCH): Set to 1.
 2560 
 2561 	* include/freetype/ftgasp.h: Use FT_BEGIN_HEADER and FT_END_HEADER.
 2562 
 2563 2018-04-26  Werner Lemberg  <wl@gnu.org>
 2564 
 2565 	Another fix for handling invalid format 2 cmaps.
 2566 
 2567 	Sigh.
 2568 
 2569 	Reported as
 2570 
 2571 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8003
 2572 
 2573 	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid
 2574 	an endless loop.
 2575 
 2576 2018-04-24  Ben Wagner  <bungeman@google.com>
 2577 
 2578 	[base] Avoid undefined behaviour in lcd filtering code (#53727).
 2579 
 2580 	* src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy):
 2581 	Ensure `height > 0'.
 2582 
 2583 2018-04-22  Werner Lemberg  <wl@gnu.org>
 2584 
 2585 	* src/base/ftoutln.c (FT_Outline_Decompose): Improve error tracing.
 2586 
 2587 2018-04-22  Alexei Podtelezhnikov  <apodtele@gmail.com>
 2588 
 2589 	[base] Fix bitmap emboldening.
 2590 
 2591 	Bug introduced after release 2.8.
 2592 
 2593 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): We use
 2594 	`FT_QALLOC_MULT', which doesn't zero out the buffer.  Adjust the
 2595 	bitmap copying code to take care of this fact.
 2596 
 2597 2018-04-22  Werner Lemberg  <wl@gnu.org>
 2598 
 2599 	Another fix for handling invalid format 2 cmaps.
 2600 
 2601 	The previous commit was incomplete.
 2602 
 2603 	Reported as
 2604 
 2605 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7928
 2606 
 2607 	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid
 2608 	an endless loop.
 2609 
 2610 2018-04-19  Werner Lemberg  <wl@gnu.org
 2611 
 2612 	[autofit] Add support for Georgian Mtavruli characters.
 2613 
 2614 	This will be part of the forthcoming Unicode 11.0.
 2615 
 2616 	* src/autofit/afblue.dat: Add blue zone data for Mtavruli.
 2617 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
 2618 
 2619 	* src/autofit/afscript.h: Add Mtavruli standard character.
 2620 
 2621 2018-04-18  Werner Lemberg  <wl@gnu.org>
 2622 
 2623 	Fix handling of invalid format 2 cmaps.
 2624 
 2625 	The problem was introduced after the last release.
 2626 
 2627 	Reported as
 2628 
 2629 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7828
 2630 
 2631 	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Avoid endless loop.
 2632 
 2633 2018-04-17  Werner Lemberg  <wl@gnu.org>
 2634 
 2635 	[truetype] Integer overflow issues.
 2636 
 2637 	Reported as
 2638 
 2639 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7739
 2640 
 2641 	* src/truetype/ttinterp.c (Ins_CEILING): Use FT_PIX_CEIL_LONG.
 2642 
 2643 2018-04-16  Werner Lemberg  <wl@gnu.org>
 2644 
 2645 	[truetype] Integer overflow issues.
 2646 
 2647 	Reported as
 2648 
 2649 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7718
 2650 
 2651 	* src/truetype/ttinterp.c (Ins_MIRP): Use ADD_LONG.
 2652 
 2653 2018-04-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
 2654 
 2655 	[build] Use `info' function of make 3.81.
 2656 
 2657 	* configure, docs/INSTALL, docs/INSTALL.CROSS, docs/INSTALL.GNU,
 2658 	docs/INSTALL.UNIX, docs/MAKEPP: Bump make version requirements.
 2659 
 2660 	* builds/detect.mk (std_setup): Replace `echo' with `info'.
 2661 	(dos_setup): Removed.
 2662 	* builds/unix/install.mk, builds/modules.mk, builds/dos/detect.mk,
 2663 	builds/windows/detect.mk, builds/os2/detect.mk: Updated.
 2664 	* builds/newline: No longer needed.
 2665 
 2666 2018-04-15  Werner Lemberg  <wl@gnu.org>
 2667 
 2668 	[truetype]: Limit `SLOOP' bytecode argument to 16 bits.
 2669 
 2670 	This fixes
 2671 
 2672 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7707
 2673 
 2674 	* src/truetype/ttinterp.c (Ins_SLOOP): Do it.
 2675 
 2676 2018-04-14  Werner Lemberg  <wl@gnu.org>
 2677 
 2678 	[truetype] Integer overflow issues.
 2679 
 2680 	Reported as
 2681 
 2682 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7652
 2683 
 2684 	* src/truetype/ttinterp.c (Ins_MDAP): Use SUB_LONG.
 2685 
 2686 2018-04-14  Werner Lemberg  <wl@gnu.org>
 2687 
 2688 	[autofit] Update to Unicode 11.0.0.
 2689 
 2690 	But no support new scripts (volunteers welcomed).
 2691 
 2692 	* src/autofit/afranges.c (af_arab_nonbase_uniranges,
 2693 	af_beng_nonbase_uniranges, af_cakm_nonbase_uniranges,
 2694 	af_deva_nonbase_uniranges, af_geor_uniranges,
 2695 	af_gujr_nonbase_uniranges, af_mlym_nonbase_uniranges,
 2696 	af_nkoo_nonbase_uniranges, af_telu_nonbase_uniranges,
 2697 	af_hani_uniranges): Add new data.
 2698 
 2699 2018-04-10  Nikolaus Waxweiler  <madigens@gmail.com>
 2700 
 2701 	* CMakeLists.txt, builds/cmake/FindHarfBuzz.cmake: Extensive
 2702 	modernization measures.
 2703 
 2704 	This brings up the minimum required CMake version to 2.8.12.
 2705 
 2706 	The installation paths follow the GNU defaults now, e.g. installing on a
 2707 	64 bit host will place binaries into the lib64/ folder on e.g. Fedora.
 2708 
 2709 	Symbols are hidden by default (e.g. `-fvisibility=hidden' on GCC).
 2710 
 2711 	CMake will no longer look for a C++ compiler.
 2712 
 2713 	Library and .so version now match the Autotools build.
 2714 
 2715 	Comments in the build file and informational messages now use platform
 2716 	agnostic example commands.
 2717 
 2718 	ftoption.h and ftconfig.h are written directly without a redundant `-new'
 2719 	copy.
 2720 
 2721 	External dependencies are expressed as option()s and will turn up as such
 2722 	in cmake-gui.
 2723 
 2724 	Internal: Properties such as dependencies and include directories are now
 2725 	privately set on the freetype library instead of globally.
 2726 
 2727 	The CPack definitions have been cleaned up, the `make dist' has been
 2728 	removed. Source packages generated with CPack don't contain Autotools
 2729 	files and aren't used by the maintainers anyway.
 2730 
 2731 	On Windows, src/base/ftver.rc is compiled to decorate the library with
 2732 	version and copyright information.
 2733 
 2734 	A pkg-config file is now generated and installed.
 2735 
 2736 2018-04-09  Werner Lemberg  <wl@gnu.org>
 2737 
 2738 	[truetype] Integer overflow issues.
 2739 
 2740 	Reported as
 2741 
 2742 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7453
 2743 
 2744 	* src/truetype/ttinterp.c (Round_Super, Round_Super_45): Use
 2745 	ADD_LONG and SUB_LONG.
 2746 
 2747 2018-04-06  Alexei Podtelezhnikov  <apodtele@gmail.com>
 2748 
 2749 	[windows, wince] Clean up legacy project files.
 2750 
 2751 	* builds/wince/vc2005-ce/freetype.vcproj,
 2752 	builds/wince/vc2008-ce/freetype.vcproj,
 2753 	builds/windows/vc2005/freetype.vcproj,
 2754 	builds/windows/vc2008/freetype.vcproj,
 2755 	builds/windows/visualce/freetype.vcproj,
 2756 	builds/windows/visualce/freetype.dsp,
 2757 	builds/windows/visualc/freetype.vcproj,
 2758 	builds/windows/visualc/freetype.dsp: Remove per-file compile flags.
 2759 
 2760 2018-04-04  Werner Lemberg  <wl@gnu.org>
 2761 
 2762 	[cff, type1] Sanitize `BlueFuzz' and `BlueShift'.
 2763 
 2764 	Reported as
 2765 
 2766 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7371
 2767 
 2768 	* src/cff/cffload.c (cff_load_private_dict): Sanitize
 2769 	`priv->blue_shift' and `priv->blue_fuzz' to avoid overflows later
 2770 	on.
 2771 
 2772 	* src/type1/t1load.c (T1_Open_Face): Ditto.
 2773 
 2774 2018-04-04  Ben Wagner  <bungeman@google.com>
 2775 
 2776 	* src/truetype/ttobjs.c (trick_names): Add 3 tricky fonts (#53554),
 2777 	`DFHei-Md-HK-BF', `DFKaiShu-Md-HK-BF' and `DFMing-Bd-HK-BF'.
 2778 	(tt_check_trickyness_sfnt_ids): Add checksums for 3 tricky fonts
 2779 	in above.
 2780 
 2781 2018-04-01  Werner Lemberg  <wl@gnu.org>
 2782 
 2783 	* builds/toplevel.mk (work): Use $(SEP).
 2784 
 2785 	This fixes the `make refdoc' using Cygwin: $(CAT) is `type' on this
 2786 	platform, and this program only understands backslashes in paths.
 2787 
 2788 	Reported by Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>.
 2789 
 2790 2018-03-30  Werner Lemberg  <wl@gnu.org>
 2791 
 2792 	[truetype] Fix memory leak (only if tracing is on).
 2793 
 2794 	* src/truetype/ttgxvar.c (TT_Get_MM_Var) [FT_DEBUG_LEVEL_TRACE}: Fix
 2795 	it.
 2796 
 2797 2018-03-23  Ben Wagner  <bungeman@google.com>
 2798 
 2799 	[sfnt] Correctly handle missing bitmaps in sbix format (#53404).
 2800 
 2801 	* src/sfnt/ttfsbit.c (tt_face_load_sbix_image): Fix return value.
 2802 
 2803 2018-03-23  Ben Wagner  <bungeman@google.com>
 2804 
 2805 	[truetype] Fix advance of empty glyphs in bitmap fonts (#53393).
 2806 
 2807 	* src/truetype/ttgload.c (TT_Load_Glyph): Apply scaling to metrics
 2808 	for empty bitmaps.
 2809 
 2810 2018-03-22  Werner Lemberg  <wl@gnu.org>
 2811 
 2812 	Remove `ftlcdfil.c' and `ftfntfmt.c' from build files (#53415).
 2813 
 2814 	builds/amiga/makefile, builds/amiga/makefile.os4,
 2815 	builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt,
 2816 	builds/mac/FreeType.m68k_far.make.txt,
 2817 	builds/mac/FreeType.ppc_carbon.make.txt,
 2818 	builds/mac/FreeType.ppc_classic.make.txt,
 2819 	builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj,
 2820 	builds/wince/vc2008-ce/freetype.vcproj,
 2821 	builds/windows/vc2005/freetype.vcproj,
 2822 	builds/windows/vc2008/freetype.vcproj,
 2823 	builds/windows/vc2010/freetype.vcxproj,
 2824 	builds/windows/vc2010/freetype.vcxproj.filters,
 2825 	builds/windows/visualc/freetype.dsp,
 2826 	builds/windows/visualc/freetype.vcproj,
 2827 	builds/windows/visualce/freetype.dsp,
 2828 	builds/windows/visualce/freetype.vcproj, vms_make.com: Do it.
 2829 
 2830 2018-03-13  Werner Lemberg  <wl@gnu.org>
 2831 
 2832 	* src/sfnt/ttcmap.c (tt_cmap2_validate): Fix potential numeric
 2833 	overflow.
 2834 
 2835 2018-03-13  Werner Lemberg  <wl@gnu.org>
 2836 
 2837 	Fix cmap format 2 handling (#53320).
 2838 
 2839 	The patch introduced for #52646 was not correct.
 2840 
 2841 	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition.
 2842 
 2843 2018-03-10  Nikolaus Waxweiler  <madigens@gmail.com>
 2844 
 2845 	* CMakeLists.txt (BASE_SRCS): Update to changes from 2018-03-05.
 2846 
 2847 2018-03-09  Chun-wei Fan  <fanc999@yahoo.com.tw>
 2848 
 2849 	* CMakeLists.txt [win32]: Allow MSVC DLL builds (#53287).
 2850 
 2851 	Do not limit DLL builds to MinGW, since we already have
 2852 	`__declspec(dllexport)' directives in `ftconfig.h'.
 2853 	Also suppress more warnings for POSIX functions.
 2854 
 2855 2018-03-08  Hugh McMaster  <hugh.mcmaster@outlook.com>
 2856 
 2857 	Make installation of `freetype-config' optional (#53093).
 2858 
 2859 	* builds/unix/configure.raw: Add option `--enable-freetype-config'
 2860 	and set `INSTALL_FT2_CONFIG'.
 2861 	* builds/unix/unix-def.in (INSTALL_FT2_CONFIG): Define.
 2862 	* builds/unix/install.mk (install): Handle it.
 2863 
 2864 2018-03-05  Werner Lemberg  <wl@gnu.org>
 2865 
 2866 	Make `ftlcdfil.c' part of the `base' module.
 2867 
 2868 	`ftobjs.c' needs `ft_lcd_padding'.
 2869 
 2870 	Problem reported by duhuanpeng <548708880@qq.com>.
 2871 
 2872 	* modules.cfg (BASE_EXTENSIONS): Don't include `ftlcdfil.c'.
 2873 
 2874 	* src/base/ftbase.c: Include `ftlcdfil.c'.
 2875 	* src/base/rules.mk (BASE_SRC): Add `ftlcdfil.c'.
 2876 	* src/base/Jamfile (_sources): Adjusted.
 2877 
 2878 	* docs/INSTALL.ANY: Updated.
 2879 
 2880 2018-03-05  Werner Lemberg  <wl@gnu.org>
 2881 
 2882 	Make `ftfntfmt.c' part of the `base' module.
 2883 
 2884 	`ftobjs.c' needs `FT_Get_Font_Format'.
 2885 
 2886 	Problem reported by duhuanpeng <548708880@qq.com>.
 2887 
 2888 	* modules.cfg (BASE_EXTENSIONS): Don't include `ftfntfmt.c'.
 2889 
 2890 	* src/base/ftbase.c: Include `ftfntfmt.c'.
 2891 	* src/base/rules.mk (BASE_SRC): Add `ftfntfmt.c'.
 2892 	* src/base/Jamfile (_sources): Adjusted.
 2893 
 2894 	* docs/INSTALL.ANY: Updated.
 2895 
 2896 2018-03-01  Werner Lemberg  <wl@gnu.org>
 2897 
 2898 	* src/truetype/ttinterp.c (TT_RunIns): Fix tracing arguments.
 2899 
 2900 2018-02-23  Werner Lemberg  <wl@gnu.org>
 2901 
 2902 	* builds/unix/configure.raw: Need HarfBuzz 1.3.0 or newer.
 2903 
 2904 	Problem reported by Alan Coopersmith <alan.coopersmith@oracle.com>.
 2905 
 2906 2018-02-17  Werner Lemberg  <wl@gnu.org>
 2907 
 2908 	[sfnt] Prefer `CBDT'/`CBLC' over `glyf' table (#53154).
 2909 
 2910 2018-02-06  Werner Lemberg  <wl@gnu.org>
 2911 
 2912 	[truetype] Integer overflow issues.
 2913 
 2914 	Reported as
 2915 
 2916 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6027
 2917 
 2918 	* src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIAP, Ins_MIRP): Use
 2919 	SUB_LONG; avoid FT_ABS.
 2920 
 2921 2018-02-04  Alexei Podtelezhnikov  <apodtele@gmail.com>
 2922 
 2923 	[unix] Use -fvisibility=hidden.
 2924 
 2925 	It is now widely recommended that ELF shared libraries hide symbols
 2926 	except those with explicit __attribute__((visibility("default"))).
 2927 	This is supported by all major compilers and should rather be an
 2928 	option in libtool.
 2929 
 2930 	* builds/unix/configure.raw: Add -fvisibility=hidden to CFLAGS.
 2931 	* builds/unix/ftconfig.in, builds/vms/ftconfig.h,
 2932 	include/freetype/config/ftconfig.h (FT_EXPORT): Use visibility
 2933 	attribute.
 2934 
 2935 2018-01-27  Werner Lemberg  <wl@gnu.org>
 2936 
 2937 	[truetype] Better protection against invalid VF data.
 2938 
 2939 	Reported as
 2940 
 2941 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5739
 2942 
 2943 	Bug introduced in commit 08cd62deedefe217f2ea50e392923ce8b5bc7ac7.
 2944 
 2945 	* src/truetype/ttgxvar.c (TT_Set_Var_Design): Always initialize
 2946 	`normalizedcoords'.
 2947 
 2948 2018-01-27  Werner Lemberg  <wl@gnu.org>
 2949 
 2950 	* src/truetype/ttinterp.c (Ins_GETVARIATION): Avoid NULL reference.
 2951 
 2952 	Reported as
 2953 
 2954 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5736
 2955 
 2956 2018-01-27  Werner Lemberg  <wl@gnu.org>
 2957 
 2958 	* src/truetype/ttgxvar.c (tt_set_mm_blend): Minor.
 2959 
 2960 2018-01-27  Werner Lemberg  <wl@gnu.org>
 2961 
 2962 	[truetype] Better trace VF instances.
 2963 
 2964 	* src/truetype/ttgxvar.c (ft_var_to_normalized): Don't emit number
 2965 	of coordinates.
 2966 	(TT_Get_MM_Var): Trace instance indices names.
 2967 	(TT_Set_Var_Design): Updated.
 2968 
 2969 2018-01-27  Werner Lemberg  <wl@gnu.org>
 2970 
 2971 	[truetype] Beautify tracing of VF axis records.
 2972 
 2973 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Show axis records in a
 2974 	table-like manner.
 2975 
 2976 2018-01-26  Ben Wagner  <bungeman@google.com>
 2977 
 2978 	[truetype] Fix multiple calls of `FT_Get_MM_Var' (#52955).
 2979 
 2980 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Set
 2981 	`face->blend->num_axis' in case we have to initialize the
 2982 	`face->blend'.
 2983 
 2984 2018-01-23  Alexei Podtelezhnikov  <apodtele@gmail.com>
 2985 
 2986 	[apinames] Anonymous version map for GNU linker.
 2987 
 2988 	* src/tools/apinames.c (PROGRAM_VERSION): Set to 0.3.
 2989 	(OutputFormat): Add `OUTPUT_GNU_VERMAP'.
 2990 	(names_dump): Handle it.
 2991 	(usage): Updated.
 2992 	(main): Handle new command line flag `-wL'.
 2993 
 2994 2018-01-21  Alexei Podtelezhnikov  <apodtele@gmail.com>
 2995 
 2996 	[unix] Call libtool to clean up.
 2997 
 2998 	* builds/unix/install.mk (clean_project_unix, distclean_project_unix):
 2999 	Use libtool.
 3000 	* builds/freetype.mk: Minor.
 3001 
 3002 2018-01-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3003 
 3004 	* src/base/ftver.rc: Fix mingw-w64 compilation.
 3005 
 3006 2018-01-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3007 
 3008 	[build] Enable VERSIONINFO resource for Cygwin/MinGW.
 3009 
 3010 	* builds/unix/configure.raw: Check for resource compiler.
 3011 	* builds/unix/unix-cc.in: Conditionally set up resource compiler.
 3012 	* builds/freetype.mk: Add conditional rule for `ftver.rc'.
 3013 	* src/base/ftver.rc: Copyright notice and year update.
 3014 
 3015 2018-01-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3016 
 3017 	[build] Move VERSIONINFO resource.
 3018 
 3019 	* builds/windows/vc2010/freetype.vcxproj: Updated.
 3020 	* builds/windows/ftver.rc: Move file from here...
 3021 	* src/base/ftver.rc: ... to here.
 3022 
 3023 2018-01-12  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3024 
 3025 	[build] Expand dllexport/dllimport to Cygwin/MinGW.
 3026 
 3027 	* include/freetype/config/ftconfig.h: Respect DLL_EXPORT,
 3028 	s/_MSC_VER/_WIN32/.
 3029 	* builds/unix/ftconfig.in: Replicate here.
 3030 	* builds/vms/ftconfig.h: Replicate here.
 3031 
 3032 2018-01-12  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3033 
 3034 	[build] Improve and document MSVC build.
 3035 
 3036 	* include/freetype/config/ftconfig.h: Guard dllexport/dllimport
 3037 	attributes with _DLL and FT2_DLLIMPORT.
 3038 	* builds/windows/vc2010/index.html: Update documentation.
 3039 
 3040 2018-01-10  Steve Robinson  <ssrobins@gmail.com>
 3041 
 3042 	* CMakeLists.txt [win32]: Suppress warnings for POSIX functions.
 3043 
 3044 2018-01-10  Ewald Hew  <ewaldhew@gmail.com>
 3045 
 3046 	[psaux] Correctly handle Flex features (#52846).
 3047 
 3048 	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdVMOVETO,
 3049 	cf2_cmdHMOVETO>: Do not move if doing Flex.
 3050 
 3051 2018-01-09  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3052 
 3053 	* builds/windows/vc2010/freetype.sln: Synchronize with the project.
 3054 
 3055 2018-01-08  Werner Lemberg  <wl@gnu.org>
 3056 
 3057 	* Version 2.9 released.
 3058 	=======================
 3059 
 3060 
 3061 	Tag sources with `VER-2-9'.
 3062 
 3063 	* docs/VERSION.TXT: Add entry for version 2.9.
 3064 
 3065 	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
 3066 	builds/windows/vc2005/index.html,
 3067 	builds/windows/vc2008/freetype.vcproj,
 3068 	builds/windows/vc2008/index.html,
 3069 	builds/windows/vc2010/freetype.vcxproj,
 3070 	builds/windows/vc2010/index.html,
 3071 	builds/windows/visualc/freetype.dsp,
 3072 	builds/windows/visualc/freetype.vcproj,
 3073 	builds/windows/visualc/index.html,
 3074 	builds/windows/visualce/freetype.dsp,
 3075 	builds/windows/visualce/freetype.vcproj,
 3076 	builds/windows/visualce/index.html,
 3077 	builds/windows/ftver.rc,
 3078 	builds/wince/vc2005-ce/freetype.vcproj,
 3079 	builds/wince/vc2005-ce/index.html,
 3080 	builds/wince/vc2008-ce/freetype.vcproj,
 3081 	builds/wince/vc2008-ce/index.html: s/2.8.1/2.9/, s/281/29/.
 3082 
 3083 	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 9.
 3084 	(FREETYPE_PATCH): Set to 0.
 3085 
 3086 	* builds/unix/configure.raw (version_info): Set to 22:0:16.
 3087 	* CMakeLists.txt (VERSION_PATCH): Set to 0.
 3088 
 3089 2018-01-07  Werner Lemberg  <wl@gnu.org>
 3090 
 3091 	Add check for librt, needed for `ftbench' (#52824).
 3092 
 3093 	* builds/unix/configure.raw (LIB_CLOCK_GETTIME): Define; this will
 3094 	hold `-lrt' if necessary.
 3095 
 3096 	* builds/unix/unix-cc.in (LIB_CLOCK_GETTIME): New variable.
 3097 
 3098 2018-01-07  Ewald Hew  <ewaldhew@gmail.com>
 3099 
 3100 	[psaux] Fix Type 1 glyphs with too many stem hints.
 3101 
 3102 	According to the CFF specification, charstrings can have up to 96 stem
 3103 	hints. Due to hint replacement routines in Type 1 charstrings, some
 3104 	glyphs are rejected by the Adobe engine, which implements the above
 3105 	limit. This fix turns off hinting for such glyphs.
 3106 
 3107 	* src/psaux/pshints.c (cf2_hintmap_build): Reset the error from calling
 3108 	`cf2_hintmask_setAll' on a problematic Type 1 charstring and turn off
 3109 	hinting.
 3110 
 3111 2018-01-06  Werner Lemberg  <wl@gnu.org>
 3112 
 3113 	Add `FT_Done_MM_Var'.
 3114 
 3115 	This is necessary in case the application's memory routines differ
 3116 	from FreeType.  A typical example is a Python application on Windows
 3117 	that calls FreeType compiled as a DLL via the `ctypes' interface.
 3118 
 3119 	* include/freetype/ftmm.h, src/base/ftmm.c (FT_Done_MM_Var): Declare
 3120 	and define.
 3121 
 3122 	* docs/CHANGES: Updated.
 3123 
 3124 2018-01-03  Werner Lemberg  <wl@gnu.org>
 3125 
 3126 	[truetype] Round offsets of glyph components only if hinting is on.
 3127 
 3128 	* src/truetype/ttgload.c (TT_Process_Composite_Component): Implement
 3129 	it.
 3130 
 3131 2018-01-03  Werner Lemberg  <wl@gnu.org>
 3132 
 3133 	* src/truetype/ttgxvar.c (ft_var_to_design): Remove dead code.
 3134 
 3135 	This is a better fix than the previous commit, which is now
 3136 	reverted.
 3137 
 3138 2018-01-03  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3139 
 3140 	Move internal LCD-related declarations.
 3141 
 3142 	* include/freetype/ftlcdfil.h (ft_lcd_padding, ft_lcd_filter_fir):
 3143 	Move from here...
 3144 	* include/freetype/internal/ftobjs.h: ... to here.
 3145 
 3146 2018-01-03  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3147 
 3148 	* include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF)
 3149 	[_MSC_VER]: Limit Visual C++ attributes.
 3150 
 3151 2018-01-03  Werner Lemberg  <wl@gnu.org>
 3152 
 3153 	[truetype] Make blend/design coordinate round-tripping work.
 3154 
 3155 	Behdad reported that setting blend coordinates, then getting design
 3156 	coordinates did incorrectly return the default instance's
 3157 	coordinates.
 3158 
 3159 	* src/truetype/ttgxvar.c (tt_set_mm_blend): Fix it.
 3160 
 3161 2017-12-31  Werner Lemberg  <wl@gnu.org>
 3162 
 3163 	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix endless loop.
 3164 
 3165 	Reported as
 3166 
 3167 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4838
 3168 
 3169 2017-12-31  Werner Lemberg  <wl@gnu.org>
 3170 
 3171 	Synchronize other Windows project files.
 3172 
 3173 	* builds/windows/*: Add missing files.
 3174 
 3175 2017-12-31  Werner Lemberg  <wl@gnu.org>
 3176 
 3177 	Update Visual C 2010 project files.
 3178 
 3179 	Problem reported by Hin-Tak.
 3180 
 3181 	* builds/windows/vc2010/freetype.vcxproj: Add files `ftbdf.c' and
 3182 	`ftcid.c'.
 3183 	Sort entries.
 3184 	* builds/windows/vc2010/freetype.vcxproj.filter: Ditto.
 3185 	Fix members of `FT_MODULE' group.
 3186 
 3187 2017-12-30  Werner Lemberg  <wl@gnu.org>
 3188 
 3189 	* builds/vms/ftconfig.h: Synchronize with unix `ftconfig.in' file.
 3190 
 3191 2017-12-28  Werner Lemberg  <wl@gnu.org>
 3192 
 3193 	* builds/unix/ftconfig.in: Synchronize with main `ftconfig.h' file.
 3194 
 3195 	Reported by Nikolaus.
 3196 
 3197 2017-12-27  Werner Lemberg  <wl@gnu.org>
 3198 
 3199 	Fix compiler warnings.
 3200 
 3201 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Make `pitch' and
 3202 	`new_pitch' unsigned.
 3203 
 3204 	* src/base/ftpsprop.c: Include FT_INTERNAL_POSTSCRIPT_PROPS_H.
 3205 
 3206 2017-12-27  Werner Lemberg  <wl@gnu.org>
 3207 
 3208 	Fixes for `make multi'.
 3209 
 3210 	* include/freetype/internal/ftpsprop.h: Use `FT_BASE_CALLBACK'.
 3211 	(ps_property_get): Harmonize declaration with corresponding
 3212 	function typedef.
 3213 
 3214 	* include/freety[e/internal/fttrace.h: Add `trace_psprops'.
 3215 
 3216 	* src/base/ftpsprop.c: Include necessary header files.
 3217 	(FT_COMPONENT): Define.
 3218 	(ps_property_set): Tag with `FT_BASE_CALLBACK_DEF'.
 3219 	(ps_property_get): Tag with `FT_BASE_CALLBACK_DEF'.
 3220 	Harmonize declaration with corresponding function typedef.
 3221 
 3222 2017-12-27  Werner Lemberg  <wl@gnu.org>
 3223 
 3224 	Provide support for intra-module callback functions.
 3225 
 3226 	This is needed especially for `make multi' with C++.
 3227 
 3228 	* include/freetype/config/ftconfig.h (FT_BASE_CALLBACK,
 3229 	FT_BASE_CALLBACK_DEF): New macros.
 3230 
 3231 2017-12-25  Ewald Hew  <ewaldhew@gmail.com>
 3232 
 3233 	Move PostScript drivers' property handlers to `base'.
 3234 
 3235 	This reduces the amount of duplicated code across PostScript
 3236 	drivers.
 3237 
 3238 	* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
 3239 	({cff,cid,t1}_property_{get,set}): Moved to...
 3240 	* include/freetype/internal/ftpsprop.h: ...this new file.
 3241 	(ps_property_{get,set}): New functions to replace moved ones.
 3242 
 3243 	* src/base/ftpsprop.c: New file that implements above functions.
 3244 
 3245 	* include/freetype/internal/internal.h
 3246 	(FT_INTERNAL_POSTSCRIPT_PROPS_H): New macro.
 3247 
 3248 	* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c:
 3249 	Updated.
 3250 
 3251 	* src/base/Jamfile, src/base/rules.mk (BASE_SRC), src/base/ftbase.c:
 3252 	Updated.
 3253 
 3254 2017-12-20  Werner Lemberg  <wl@gnu.org>
 3255 
 3256 	Speed up FT_Set_Var_{Design,Blend}_Coordinates if curr == new.
 3257 
 3258 	We exit early if the current design or blend coordinates are
 3259 	identical to the new ones.
 3260 
 3261 	* src/truetype/ttgxvar.c (tt_set_mm_blend, TT_Set_Var_Design):
 3262 	Implement it, returning internal error code -1 if there will be no
 3263 	variation change.
 3264 
 3265 	* src/type1/t1load.c (t1_set_mm_blend): Ditto.
 3266 
 3267 	* src/base/ftmm.c (FT_Set_Var_Design_Coordinates,
 3268 	FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): Updated.
 3269 
 3270 2017-12-18  Werner Lemberg  <wl@gnu.org>
 3271 
 3272 	[sfnt] Fix charmap type 2 iterator (#52646).
 3273 
 3274 	The subsetted demo font of the report that exhibits the bug has a
 3275 	very unusual type 2 cmap for Unicode(!): It contains only two
 3276 	sub-headers, one for one-byte characters (covering the range 0x20 to
 3277 	0xFA), and a second one for higher byte 0x01 (just for character
 3278 	code U+0131).
 3279 
 3280 	Before this commit, the iterator wasn't able to correctly handle a
 3281 	sub-header for higher byte 0x01.
 3282 
 3283 	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix character increment
 3284 	for outer loop.
 3285 
 3286 2017-12-18  Matthias Clasen  <matthias.clasen@gmail.com>
 3287 
 3288 	[truetype] Fix clamping, minor tracing code beautification.
 3289 
 3290 	* src/truetype/ttgxvar.c (ft_var_to_normalized): Trace number of
 3291 	design coordinates.
 3292 	Use clamped value.
 3293 
 3294 2017-12-18  Werner Lemberg  <wl@gnu.org>
 3295 
 3296 	* src/*/*: Only use `ft_' and `FT_' variants of stdc library stuff.
 3297 
 3298 2017-12-18  Werner Lemberg  <wl@gnu.org>
 3299 
 3300 	* src/truetype/ttgxvar.c (tt_face_vary_cvt): Add size guard (#52688).
 3301 
 3302 2017-12-18  Werner Lemberg  <wl@gnu.org>
 3303 
 3304 	[truetype] Fix previous commit.
 3305 
 3306 	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Correctly handle
 3307 	unhinted phantom points, which must be properly scaled.
 3308 
 3309 2017-12-18  Werner Lemberg  <wl@gnu.org>
 3310 
 3311 	[truetype] Don't apply HVAR and VVAR deltas twice (#52683).
 3312 
 3313 	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Always adjust
 3314 	`pp1' to `pp4', except if we have an HVAR and/or VVAR table.
 3315 
 3316 	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Handle
 3317 	alternative code branch identically w.r.t. presence of an HVAR
 3318 	and/or VVAR table.
 3319 
 3320 2017-12-17  Jonathan Kew  <jfkthame@gmail.com>
 3321 
 3322 	[truetype] Correctly handle variation font phantom points (#52683).
 3323 
 3324 	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix phantom
 3325 	point indices.
 3326 
 3327 2017-12-17  Jonathan Kew  <jfkthame@gmail.com>
 3328 
 3329 	Fix incorrect advance width scaling (#52683).
 3330 
 3331 	* src/base/ftadvance.c (FT_Get_Advances): Always respect the
 3332 	FT_LOAD_NO_SCALE flag if present.
 3333 
 3334 2017-12-16  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3335 
 3336 	* builds/windows/vc2010/freetype.vcxproj: AfterBuild copy.
 3337 	* objs/.gitignore: Ignore almost everything.
 3338 
 3339 2017-12-11  Werner Lemberg  <wl@gnu.org>
 3340 
 3341 	Fix compiler warning (#52640).
 3342 
 3343 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Remove unused
 3344 	variable.
 3345 
 3346 2017-12-08  Azzuro  <azzuro@team-mediaportal.com>
 3347 
 3348 	* builds/windows/vc2010/freetype.vcxproj: Adjust output directory.
 3349 
 3350 	This allows builds with different configurations in parallel.
 3351 
 3352 2017-12-08  Werner Lemberg  <wl@gnu.org>
 3353 
 3354 	Fix `make setup dos', second try (#52622).
 3355 
 3356 	* builds/detect.mk (dos_setup): Don't use literal `>' character at
 3357 	all.  Mixing the different escaping rules from make, dos, and
 3358 	windows is too fragile.
 3359 
 3360 2017-12-08  Werner Lemberg  <wl@gnu.org>
 3361 
 3362 	[docmaker] Fix code section parsing.
 3363 
 3364 	Stuff like
 3365 
 3366 	  {
 3367 	    <bla>
 3368 	  }
 3369 
 3370 	confused the parser, which incorrectly treated `<bla>' as a markup
 3371 	tag.
 3372 
 3373 	* src/tools/docmaker/content.py (ContentProcessor::process_content):
 3374 	Apply `re_markup_tags' only outside of code sections.
 3375 
 3376 2017-12-08  Werner Lemberg  <wl@gnu.org>
 3377 
 3378 	New `ftdriver.h' file, covering all driver modules.
 3379 
 3380 	This reduces redundancy and increases synergy; it also reduces the
 3381 	number of header files.
 3382 
 3383 	* include/freetype/config/ftheader.h (FT_DRIVER_H): New macro.
 3384 	(FT_AUTOHINTER_H, FT_CFF_DRIVER_H, FT_TRUETYPE_DRIVER_H,
 3385 	FT_PCF_DRIVER_H, FT_TYPE1_DRIVER_H): Make them aliases to
 3386 	FT_DRIVER_H.
 3387 
 3388 	* include/freetype/ftautoh.h, include/freetype/ftcffdrv.h,
 3389 	include/freetype/ftpcfdrv.h, include/freetype/ftt1drv.h,
 3390 	include/freetype/ftttdrv.h: Replaced with...
 3391 	* include/freetype/ftdriver.h: ...this new file.
 3392 	(FT_CFF_HINTING_ADOBE, FT_T1_HINTING_ADOBE): Renamed to...
 3393 	(FT_HINTING_ADOBE): ... this new macro.
 3394 	(FT_CFF_HINTING_FREETYPE, FT_T1_HINTING_FREETYPE): Renamed to...
 3395 	(FT_HINTING_FREETYPE): ... this new macro.
 3396 
 3397 	* src/*/*: Updated accordingly.
 3398 
 3399 2017-12-08  Werner Lemberg  <wl@gnu.org>
 3400 
 3401 	Move `ftdriver.h' to `ftdrv.h'.
 3402 
 3403 	* include/freetype/internal/ftdriver.h: Renamed to...
 3404 	* include/freetype/internal/ftdrv.h: ... this name.
 3405 
 3406 	* include/freetype/internal/internal.h (FT_INTERNAL_DRIVER_H):
 3407 	Updated.
 3408 
 3409 2017-12-08  Werner Lemberg  <wl@gnu.org>
 3410 
 3411 	Fix access to uninitalized memory (#52613).
 3412 
 3413 	Also reported as
 3414 
 3415 	  https://bugs.chromium.org/p/chromium/issues/detail?id=791317
 3416 
 3417 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): If increasing the
 3418 	bitmap size needs a larger bitmap buffer, assure that the new memory
 3419 	areas are initialized also.
 3420 
 3421 2017-12-08  Werner Lemberg  <wl@gnu.org>
 3422 
 3423 	Fix `make setup dos' (#52622).
 3424 
 3425 	* builds/detect.mk (dos_setup): Properly escape literal `>'
 3426 	character.
 3427 
 3428 2017-12-07  Werner Lemberg  <wl@gnu.org>
 3429 
 3430 	Fix C++ compilation.
 3431 
 3432 	* src/psaux/psauxmod.h: Use FT_CALLBACK_TABLE macro where necessary.
 3433 
 3434 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix warning.
 3435 
 3436 2017-12-07  Werner Lemberg  <wl@gnu.org>
 3437 
 3438 	Fix `make multi'.
 3439 
 3440 	* include/freetype/internal/fttrace.h: Remove unused tracing macros.
 3441 	s/pshalgo2/pshalgo/.
 3442 	Add `trace_cffdecode'.
 3443 	* src/pshinter/pshalgo.c (FT_COMPONENT): Updated.
 3444 
 3445 	* src/cff/cffload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
 3446 	* src/cff/cffobjs.c: Include FT_SERVICE_METRICS_VARIATIONS_H and
 3447 	FT_SERVICE_CFF_TABLE_LOAD_H.
 3448 
 3449 	* src/cid/cidriver.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
 3450 
 3451 	* src/psaux/cffdecode.c: Include FT_FREETYPE_H and
 3452 	FT_INTERNAL_DEBUG_H.
 3453 	(FT_COMPONENT): Define.
 3454 	* src/psaux/cffdecode.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
 3455 	* src/psaux/psauxmod.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
 3456 	Declare `cff_builder_funcs' and `ps_builder_funcs'.
 3457 	* src/psaux/psft.c: Include `psobjs.h' and `cffdecode.h'.
 3458 	* src/psaux/psobjs.c : Include `psauxmod.h'.
 3459 
 3460 2017-12-07  Werner Lemberg  <wl@gnu.org>
 3461 
 3462 	* include/freetype/config/ftheader.h: Some clean-up.
 3463 
 3464 	This commit removes documentation of deprecated macros and does some
 3465 	minor streamlining.
 3466 
 3467 2017-12-06  Werner Lemberg  <wl@gnu.org>
 3468 
 3469 	* builds/symbian/bld.inf: Updated.
 3470 
 3471 2017-12-06  Werner Lemberg  <wl@gnu.org>
 3472 
 3473 	New header file `ftparams.h' that collects all parameter tags.
 3474 
 3475 	* include/freetype/config/ftheader.h (FT_PARAMETER_TAGS_H): New
 3476 	macro.
 3477 	(FT_TRUETYPE_UNPATENTED_H, FT_UNPATENTED_HINTING_H): Define it to
 3478 	`ftparams.h'.
 3479 
 3480 	* include/freetype/ftautoh.h, include/freetype/ftcffdrv.h,
 3481 	include/freetype/ftincrem.h, include/freetype/ftlcdfil.h,
 3482 	include/freetype/ftsnames.h, include/freetype/ftt1drv.h: Include
 3483 	FT_PARAMETER_TAGS_H.
 3484 	Move FT_PARAM_TAG_XXX definitions to...
 3485 	* include/freetype/ftparams.h: ...this new file.
 3486 
 3487 	* include/freetype/ttunpat.h: Remove.  No longer needed.
 3488 
 3489 2017-12-05  Werner Lemberg  <wl@gnu.org>
 3490 
 3491 	Improve tracing messages by using singular and plural forms.
 3492 
 3493 	* src/*/*.c: Implement it.
 3494 
 3495 2017-12-04  Werner Lemberg  <wl@gnu.org>
 3496 
 3497 	[truetype] Allow shared points in `cvar' table (#52532).
 3498 
 3499 	* src/truetype/ttgxvar.c (tt_face_vary_cvt): Implement it by copying
 3500 	and adjusting the corresponding code from
 3501 	`TT_Vary_Apply_Glyph_Deltas'.
 3502 
 3503 2017-11-28  Werner Lemberg  <wl@gnu.org>
 3504 
 3505 	[truetype] Improving tracing of composite glyphs.
 3506 
 3507 	* src/truetype/ttgload.c (TT_Load_Composite_Glyph)
 3508 	[FT_DEBUG_LEVEL_TRACE]: Show composite glyph information.
 3509 
 3510 2017-11-27  Werner Lemberg  <wl@gnu.org>
 3511 
 3512 	[type1] Allow (again) `/Encoding' with >256 elements (#52464).
 3513 
 3514 	In version 2.6.1, this has been disallowed to better reject
 3515 	malformed fonts; however, this restriction was too strong.  This
 3516 	time, we only take the first 256 elements into account, since
 3517 	encoding arrays are always accessed with a 8bit integer, according
 3518 	to the PostScript Language Reference.
 3519 
 3520 	* src/type1/t1load.c (parse_encoding): Implement it.
 3521 
 3522 2017-11-27  Jan Alexander Steffens (heftig)  <jan.steffens@gmail.com>
 3523 
 3524 	Fix last commit (#52522).
 3525 
 3526 	* builds/freetype.mk: Set `FT_OPTION_H' and `FTOPTION_FLAG'
 3527 	properly if we have `ftoption.h' in `BUILD_DIR'.
 3528 
 3529 2017-11-24  Werner Lemberg  <wl@gnu.org>
 3530 
 3531 	[unix] Install a massaged `ftoption.h' file (#51780).
 3532 
 3533 	* builds/unix/configure.raw (ftoption_set, ftoption_unset): New
 3534 	auxiliary functions to construct...
 3535 	(FTOPTION_H_SED): ... this new variable.
 3536 	Apply it as a sed argument while copying `ftoption.h' to the
 3537 	`builds/unix' directory (using `AC_CONFIG_FILES').
 3538 	Simplify code of test that checks cpp's computation of bit length
 3539 	(the test previously created an empty `ftoption.h' file and deleted
 3540 	it immediately afterwards); without this change, it can happen on my
 3541 	GNU/Linux box that `configure's execution of `config.status' doesn't
 3542 	create `ftoption.h' (no idea why this happens).
 3543 
 3544 	* builds/unix/install.mk (install): Install
 3545 	`builds/unix/ftoption.h'.
 3546 
 3547 	* builds/unix/unix-def.in (DISTCLEAN): Updated.
 3548 
 3549 	* builds/unix/.gitignore: Updated.
 3550 
 3551 2017-11-23  Tor Andersson  <tor.andersson@artifex.com>
 3552 
 3553 	Silence unused function warnings (#52465).
 3554 
 3555 	Some static function declarations cause unused function warnings if
 3556 	certain config options are turned off via `ftoption.h'.
 3557 
 3558 	* src/base/ftbase.h, src/base/ftrfork.c, src/sfnt/ttbdf.h,
 3559 	src/truetype/ttgxvar.h: Add #ifdef guards around these sections.
 3560 
 3561 2017-11-22  Ewald Hew  <ewaldhew@gmail.com>
 3562 
 3563 	* src/psaux/psft.c (cf2_setGlyphWidth): Check format before setting.
 3564 
 3565 	Reported as
 3566 
 3567 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4377
 3568 
 3569 2017-11-22  Ewald Hew  <ewaldhew@gmail.com>
 3570 
 3571 	[psaux] Fix CFF advance widths. (#52466)
 3572 
 3573 	Glyph advance widths were being written to the new `PS_Decoder' but not
 3574 	saved to the underlying format specific decoder. This caused pure CFF
 3575 	fonts to have bad advance width.
 3576 
 3577 	* include/freetype/internal/psaux.h (PS_Decoder): Change `glyph_width'
 3578 	field to pointer.
 3579 	Remove unused fields.
 3580 	* src/psaux/psobjs.c (ps_decoder_init): Change `glyph_width' from copy
 3581 	to reference.
 3582 	Remove unused.
 3583 	* src/psaux/psft.c (cf2_setGlyphWidth): Update code.
 3584 
 3585 2017-11-15  Vlad Tsyrklevich  <vtsyrklevich@google.com>
 3586 
 3587 	* include/freetype/ftrender.h: Fix `FT_Renderer_RenderFunc' type.
 3588 
 3589 2017-11-14  Nikolaus Waxweiler  <madigens@gmail.com>
 3590 
 3591 	Use Adobe hinting engine for `light' hinting of both CFF and Type 1.
 3592 
 3593 	Since Ewald Hew factored the Adobe hinting engine out of the CFF
 3594 	driver code, we can now use it on Type 1 (and CID) font formats, as
 3595 	both have the same hinting philosophy.
 3596 
 3597 	This change activates the Adobe hinter when in LIGHT mode, and
 3598 	therefore always unless explicitly asking for the auto-hinter.  This
 3599 	makes LIGHT behavior consistent with CFF fonts.  As of this commit,
 3600 	the hinting engine table looks as follows.
 3601 
 3602 	             LIGHT  NORMAL
 3603 	  -------------------------
 3604 	   TrueType  Auto   v40
 3605 	   CFF       Adobe  Adobe
 3606 	   Type 1    Adobe  Adobe
 3607 
 3608 2017-11-10  Yuri Levchenko  <yuri_levchenko@boolat.com>
 3609 
 3610 	* CMakeLists.txt: Add `DISABLE_FORCE_DEBUG_PREFIX' option.
 3611 
 3612 2017-11-06  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3613 
 3614 	* src/base/ftobjs.c (FT_Load_Glyph): Relocate condition.
 3615 
 3616 2017-11-06  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3617 
 3618 	* src/smooth/ftgrays.c (gray_set_cell): Fix uninitialized variables.
 3619 
 3620 2017-11-03  Ewald Hew  <ewaldhew@gmail.com>
 3621 
 3622 	[psaux] Fix PostScript interpreter rewinding in Type 1 mode. (#52251)
 3623 
 3624 	The interpreter in Type 1 mode rewinds the charstring after collecting
 3625 	all hints for building the initial hintmap (commit d52dd7f). However,
 3626 	some charstrings use `endchar' in a final subroutine call, rewinding to
 3627 	the start of that subroutine, and only a small section of the actual
 3628 	glyph is drawn.
 3629 
 3630 	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdENDCHAR>:
 3631 	Ensure we are on the top level charstring before rewinding.
 3632 
 3633 2017-11-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3634 
 3635 	[truetype] Add more tricky fonts.
 3636 
 3637 	See the report by Yang Yinsen.
 3638 	https://lists.gnu.org/archive/html/freetype-devel/2017-11/msg00000.html
 3639 
 3640 	* src/truetype/ttobjs.c (trick_names): Add `DFGothic-EB',
 3641 	`DFGyoSho-Lt', `DFHSGothic-W5', `DFHSMincho-W3' and `DFHSMincho-W7'.
 3642 	(tt_check_trickyness_sfnt_ids): Add checksums for DFGothic-EB,
 3643 	DFGyoSho-Lt, DFHSGothic-W5, DFHSMincho-W3 and DFHSMincho-W7.  Also
 3644 	add checksums for DLCLiShu and DLCHayBold which their family names
 3645 	were already listed but their checksums were previously unknown.
 3646 
 3647 2017-11-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3648 
 3649 	[smooth] Fix complex rendering at high ppem.
 3650 
 3651 	We used to split large glyphs into horizontal bands and continue
 3652 	bisecting them still horizontally if that was not enough.  This is
 3653 	guaranteed to fail when a single scanline cannot fit into the
 3654 	rendering memory pool.  Now we bisect the bands vertically so that
 3655 	the smallest unit is a column of the band height, which is guranteed
 3656 	to fit into memory.
 3657 
 3658 	* src/smooth/ftgrays.c (gray_convert_glyph): Implement it.
 3659 
 3660 2017-10-20  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3661 
 3662 	[smooth] Improve complex rendering at high ppem.
 3663 
 3664 	At large sizes almost but not exactly horizontal segments can quickly
 3665 	drain the rendering pool. This patch at least avoids filling the pool
 3666 	with trivial cells. Beyond this, we can only increase the pool size.
 3667 
 3668 	Reported, analyzed, and tested by Colin Fahey.
 3669 
 3670 	* src/smooth/ftgrays.c (gray_set_cell): Do not record trivial cells.
 3671 
 3672 2017-10-20  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3673 
 3674 	[base] Improve tracing in FT_Load_Glyph, FT_*_Size.
 3675 
 3676 	* src/base/ftobjs.c (FT_Load_Glyph): Tag tracing messages with
 3677 	function name, glyph index, and load flags.
 3678 	(FT_Select_Metrics, FT_Request_Metrics): Remove all tracing.
 3679 	(FT_Select_Size, FT_Request_Size): Improve tracing.
 3680 
 3681 2017-10-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3682 
 3683 	[base] Improve tracing in FT_Render_Glyph.
 3684 
 3685 	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Add total coverage
 3686 	calculations and downgrade Netpbm dump to bitmap:7.
 3687 
 3688 2017-10-15  Ewald Hew  <ewaldhew@gmail.com>
 3689 
 3690 	[cff] Fix segfault on missing `psaux' (#52218)
 3691 
 3692 	* src/cff/cffload.c (cff_done_blend): Add a check for possible nullptr.
 3693 
 3694 	* modules.cfg: Update dependency list.
 3695 
 3696 2017-10-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3697 
 3698 	[base, cff] Fix MSVC warnings.
 3699 
 3700 	* src/base/ftobjs.c (FT_New_Library): C4702: unreachable code.
 3701 	(ft_glyphslot_preset_bitmap): C4244: possible loss of data.
 3702 	* src/cff/cffload.c (cff_blend_doBlend): C4244: possible loss of data.
 3703 	Turn `sum' into unsigned.
 3704 
 3705 2017-10-14  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3706 
 3707 	[base] Netpbm image tracing.
 3708 
 3709 	* src/base/ftobjs.c (FT_Load_Glyph): Trace bitmap size.
 3710 	(FT_Render_Glyph_Internal): Trace bitmap in Netpbm format.
 3711 
 3712 	* src/smooth/ftgrays.c (gray_sweep): Sweep remnants of span tracing.
 3713 
 3714 2017-10-14  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3715 
 3716 	* builds/windows/ftdebug.c (FT_Message): Print to stderr.
 3717 	* builds/wince/ftdebug.c (FT_Message): Ditto.
 3718 
 3719 2017-10-14  Behdad Esfahbod  <behdad@behdad.org>
 3720 
 3721 	[afshaper] Delay creating `hb_set' objects until needed.
 3722 
 3723 	In runs on Noto Naskh Arabic, this results in 89 sets created
 3724 	instead of 340 before.  Makes auto-hinter setup with HarfBuzz
 3725 	enabled 20% to 30% faster.
 3726 
 3727 	* src/autofit/afshaper.c (af_shaper_get_coverage): Implement it.
 3728 
 3729 2017-10-12  Ewald Hew  <ewaldhew@gmail.com>
 3730 
 3731 	[type1, cid] Add hinting engine switch.
 3732 
 3733 	Implement property service in `type1' and `cid' drivers to allow
 3734 	switching between FreeType or Adobe hinting engine when both are
 3735 	available.
 3736 
 3737 	* src/cid/cidriver.c (cid_property_{set,get}, cid_services),
 3738 	src/type1/t1driver.c (t1_property_{set,get}, t1_services): Add
 3739 	Properties service.
 3740 
 3741 	* src/cid/cidobjs.c (cid_driver_init), src/type1/t1objs.c
 3742 	(T1_Driver_Init): Add default property values.
 3743 
 3744 2017-10-12  Ewald Hew  <ewaldhew@gmail.com>
 3745 
 3746 	Add T1_CONFIG_OPTION_OLD_ENGINE configuration option.
 3747 
 3748 	This controls whether the old Type 1 engine gets compiled into FreeType.
 3749 	It is disabled by default.
 3750 
 3751 	* devel/ftoption.h, include/freetype/config/ftoption.h
 3752 	(T1_CONFIG_OPTION_OLD_ENGINE): New macro.
 3753 
 3754 	* include/freetype/internal/psaux.h (PS_Decoder): Remove unused field.
 3755 	* include/freetype/internal/psaux.h, src/cid/cidgload.c
 3756 	(cid_load_glyph), src/psaux/psauxmod.c, src/psaux/psobjs.c
 3757 	(ps_builder_add_point), src/psaux/t1decode.c
 3758 	(t1_lookup_glyph_by_stdcharcode, t1_decoder_parse_glyph,
 3759 	t1operator_seac, t1_decoder_parse_charstrings), src/psaux/t1decode.h,
 3760 	src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Surround
 3761 	relevant code with macro.
 3762 	Minor code changes.
 3763 
 3764 2017-10-12  Ewald Hew  <ewaldhew@gmail.com>
 3765 
 3766 	Extract width parsing from Type 1 parser.
 3767 
 3768 	Duplicate the fast advance width calculations from the old parser.
 3769 	This is to facilitate adding options for compiling out the old parser.
 3770 
 3771 	* src/psaux/t1decode.{c,h} (t1_decoder_parse_metrics): New function.
 3772 	* include/freetype/internal/psaux.h (T1_Decoder_Funcs): New entry
 3773 	`parse_metrics'.
 3774 	* src/psaux/psauxmod.c: Set the new entry.
 3775 
 3776 	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String),
 3777 	src/cid/cidgload.c (cid_load_glyph): Separate
 3778 	conditional for selecting engine.
 3779 
 3780 2017-10-09  Werner Lemberg  <wl@gnu.org>
 3781 
 3782 	* src/base/ftoutln.c (FT_Outline_Translate): Fix integer overflow.
 3783 
 3784 	Reported as
 3785 
 3786 	  https://bugs.chromium.org/p/chromium/issues/detail?id=772775
 3787 
 3788 2017-10-08  Werner Lemberg  <wl@gnu.org>
 3789 
 3790 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Integer overflows.
 3791 
 3792 	Reported as
 3793 
 3794 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3579
 3795 
 3796 2017-10-07  Werner Lemberg  <wl@gnu.org>
 3797 
 3798 	[sfnt] Adjust behaviour of PS font names for variation fonts.
 3799 
 3800 	* src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Use a named instance's
 3801 	PS name only if no variation is applied.
 3802 
 3803 2017-10-07  Werner Lemberg  <wl@gnu.org>
 3804 
 3805 	[cff, truetype] Adjust behaviour of named instances.
 3806 
 3807 	This commit completely separates the interaction between named
 3808 	instances and variation functions.  In particular, resetting the
 3809 	variation returns to the current named instance (if set) and not to
 3810 	the base font.
 3811 
 3812 	As a side effect, variation functions no longer change the named
 3813 	instance index.
 3814 
 3815 	* src/cff/cffobjs.c (cff_face_init): Use MM service's `set_instance'
 3816 	function.
 3817 	Also apply `MVAR' table to named instances.
 3818 
 3819 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Add cast.
 3820 	(tt_set_mm_blend): No longer check whether requested variation
 3821 	coincides with a named instance.
 3822 	(TT_Set_Var_Design): Use current named instance for default
 3823 	coordinates.
 3824 	* src/truetype/ttobjs.c (tt_face_init): Use `TT_Set_Named_Instance'.
 3825 
 3826 2017-10-07  Werner Lemberg  <wl@gnu.org>
 3827 
 3828 	Make `FT_Set_Named_Instance' work.
 3829 
 3830 	* src/cff/cffdrivr.c (cff_set_instance): New function.
 3831 	(cff_service_multi_masters): Register it.
 3832 
 3833 	* src/truetype/ttgxvar.c (TT_Set_Named_Instance): New function.
 3834 	* src/truetype/ttgxvar.h: Updated.
 3835 	* src/truetype/ttdriver.c (tt_service_gx_multi_masters): Register
 3836 	it.
 3837 
 3838 	* src/type1/t1load.c (T1_Reset_MM_Blend): New function.
 3839 	* src/type1/t1load.h: Updated.
 3840 	* src/type1/t1driver.c (t1_service_multi_masters): Register it.
 3841 
 3842 2017-10-07  Werner Lemberg  <wl@gnu.org>
 3843 
 3844 	Make `FT_FACE_FLAG_VARIATION' work.
 3845 
 3846 	* include/freetype/internal/tttypes.h (TT_Face): Remove
 3847 	`is_default_instance'; this can be replaced with a combination of
 3848 	`FT_IS_VARIATION' and `FT_IS_INSTANCE'.
 3849 
 3850 	* src/cff/cffdrivr.c (cff_get_advances): Updated.
 3851 
 3852 	* src/sfnt/sfdriver.c (sfnt_get_ps_name), src/sfnt/sfobjs.c
 3853 	(sfnt_init_face): Updated.
 3854 
 3855 	* src/truetype/ttdriver.c (tt_get_advances), src/truetype/ttgload.c
 3856 	(TT_Process_Simple_Glyph, load_truetype_glyph, IS_DEFAULT_INSTANCE),
 3857 	src/truetype/ttgxvar.c (tt_set_mm_blend): Updated.
 3858 	* src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design):
 3859 	Handle `FT_FACE_FLAG_VARIATION'.
 3860 
 3861 	* src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design): Handle
 3862 	`FT_FACE_FLAG_VARIATION'.
 3863 
 3864 2017-10-07  Werner Lemberg  <wl@gnu.org>
 3865 
 3866 	New function `FT_Set_Named_Instance'.
 3867 
 3868 	No effect yet.
 3869 
 3870 	* src/base/ftmm.c (FT_Set_Named_Instance): New function.
 3871 
 3872 	* include/freetype/ftmm.h: Updated.
 3873 
 3874 2017-10-07  Werner Lemberg  <wl@gnu.org>
 3875 
 3876 	Add macros for checking whether a font variation is active.
 3877 
 3878 	* include/freetype/freetype.h (FT_FACE_FLAG_VARIATION,
 3879 	FT_IS_VARIATION): New macros.
 3880 	No effect yet.
 3881 
 3882 2017-10-07  Werner Lemberg  <wl@gnu.org>
 3883 
 3884 	Add framework for setting named instance in MM service.
 3885 
 3886 	* include/freetype/internal/services/svmm.h (FT_Set_Instance_Func):
 3887 	New function typedef.
 3888 	(MultiMasters): Add `set_instance' member.
 3889 	(FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
 3890 
 3891 	* src/cff/cffdrivr.c (cff_service_multi_masters),
 3892 	src/truetype/ttdriver (tt_service_gx_multi_masters),
 3893 	src/type1/t1driver.c (t1_service_multi_masters): Updated.
 3894 
 3895 2017-10-07  Werner Lemberg  <wl@gnu.org>
 3896 
 3897 	[type1] Minor code shuffling.
 3898 
 3899 	* src/type1/t1load.c (T1_Set_MM_Blend): Make it a wrapper of...
 3900 	(t1_set_mm_blend): ...this new function.
 3901 	(T1_Set_MM_Design): Use `t1_set_mm_blend'.
 3902 
 3903 2017-10-05  Werner Lemberg  <wl@gnu.org>
 3904 
 3905 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Fix integer
 3906 	overflow.
 3907 
 3908 	Reported as
 3909 
 3910 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3539
 3911 
 3912 2017-10-05  Werner Lemberg  <wl@gnu.org>
 3913 
 3914 	Fix compiler warnings.
 3915 
 3916 	* src/cff/cffdrivr.c (cff_ps_get_font_extra): Avoid code that relies
 3917 	on numeric overflow.
 3918 	Add cast.
 3919 
 3920 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix variable
 3921 	types, add cast.
 3922 
 3923 2017-10-04  John Tytgat  <John.Tytgat@esko.com>
 3924 
 3925 	[cff] Add support for `FSType'.
 3926 
 3927 	* include/freetype/internal/cfftypes.h (CFF_FontRec): Add
 3928 	`font_extra' entry.
 3929 
 3930 	* src/cff/cffdrivr.c (cff_ps_get_font_extra): New function to
 3931 	retrieve FSType info from the embedded PostScript data.
 3932 	(cff_service_ps_info): Register function.
 3933 
 3934 	* src/cff/cffload.c (cff_font_done): Free `font_extra'.
 3935 
 3936 2017-09-30  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3937 
 3938 	Signedness fixes in bitmap presetting.
 3939 
 3940 	Reported as
 3941 
 3942 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3514.
 3943 
 3944 	* src/raster/ftrend1.c (ft_raster1_render): Explicitly signed height.
 3945 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
 3946 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Explicitly unsigned
 3947 	subtraction.
 3948 
 3949 2017-09-29  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3950 
 3951 	Bitmap metrics presetting [2/2].
 3952 
 3953 	* src/base/ftobjs.c (FT_Load_Glyph): Preset the bitmap metrics when
 3954 	appropriate but `FT_Render_Glyph' is not called.
 3955 	* include/freetype/freetype.h (FT_GlyphSlotRec): Document the change.
 3956 
 3957 2017-09-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3958 
 3959 	[smooth, raster] Miscellaneous cleanups.
 3960 
 3961 	* src/raster/ftrend1.c (ft_raster1_render): Clean up the exit.
 3962 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Reduce
 3963 	translations and clean up the exit.
 3964 	(ft_smooth_render_lcd, ft_smooth_render_lcd): Remove unused `error'.
 3965 
 3966 2017-09-28  Ben Wagner  <bungeman@google.com>
 3967 
 3968 	[truetype] Really, really fix #52082.
 3969 
 3970 	* src/truetype/ttinterp.c (Ins_MDRP): Correct conditional.
 3971 
 3972 2017-09-28  Werner Lemberg  <wl@gnu.org>
 3973 
 3974 	* src/psaux/psintrp.c (cf2_doStems): Fix integer overflow.
 3975 
 3976 	Reported as
 3977 
 3978 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3510
 3979 
 3980 2017-09-28  Ewald Hew  <ewaldhew@gmail.com>
 3981 
 3982 	* src/cid/cidgload.c (cid_slot_load_glyph): Fix memory leak.
 3983 
 3984 	Reported as
 3985 
 3986 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3489
 3987 
 3988 2017-09-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
 3989 
 3990 	Bitmap metrics presetting [1/2].
 3991 
 3992 	This mainly just extracts the code for presetting the bitmap metrics
 3993 	from the monochrome, grayscale, and LCD renderers into a separate
 3994 	function.
 3995 
 3996 	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): New function that
 3997 	calculates prospective bitmap metrics for the given rendering mode.
 3998 	* include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap):
 3999 	Declare it.
 4000 
 4001 	* src/base/ftlcdfil.c (ft_lcd_padding): New helper function that adds
 4002 	padding to CBox taking into account pecularities of LCD rendering.
 4003 	* include/freetype/ftlcdfil.h (ft_lcd_padding): Declare it.
 4004 
 4005 	* src/raster/ftrend1.c (ft_raster1_render): Reworked to use
 4006 	`ft_glyphslot_preset_bitmap'.
 4007 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
 4008 	(ft_smooth_render_lcd, ft_smooth_render_lcd): The pixel_mode setting
 4009 	is moved to `ft_glyphslot_preset_bitmap'.
 4010 
 4011 2017-09-28  Ewald Hew  <ewaldhew@gmail.com>
 4012 
 4013 	[psaux] Fix compiler warning.
 4014 
 4015 	* src/psaux/pshints.c (cf2_hintmap_dump): Add switch for tracing
 4016 	code.
 4017 
 4018 2017-09-27  Werner Lemberg  <wl@gnu.org>
 4019 
 4020 	* src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning.
 4021 
 4022 2017-09-25  Werner Lemberg  <wl@gnu.org>
 4023 
 4024 	[psaux] Fix compiler warnings.
 4025 
 4026 	* src/psaux/psft.c (cf2_initLocalRegionBuffer): Remove redundant
 4027 	test.
 4028 
 4029 	* src/psaux/psintrp.c (cf2_interpT2CharString)
 4030 	<cf2_escCALLOTHERSUBR>: Add casts.
 4031 
 4032 	* src/psaux/psobjs.c (ps_decoder_init): Add cast.
 4033 
 4034 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4035 
 4036 	[psaux] Minor fixes.
 4037 
 4038 	* include/freetype/internal/psaux.h, src/psaux/psobjs.{c,h}:
 4039 	Rearrange `ps_builder_init' arguments to conventional order.
 4040 
 4041 	* src/psaux/psft.c (cf2_decoder_parse_charstrings): Add a check and
 4042 	notice for `SubFont' in Type 1 mode.
 4043 
 4044 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4045 
 4046 	[psaux] Move `psdecode' into `psobjs'.
 4047 
 4048 	As the former only contains a single procedure, move it into
 4049 	`psobjs' for simplicity.  Also change the parameter order to the
 4050 	conventional one.
 4051 
 4052 	* src/psaux/psdecode.c (ps_decoder_init): Moved to...
 4053 	* src/psaux/psobjs.c: ...Here.
 4054 	* src/psaux/psdecode.h, src/psaux/psobjs.h: Ditto.
 4055 
 4056 	* include/freetype/internal/psaux.h (PSAux_ServiceRec): Update
 4057 	`ps_decoder_init' function signature.
 4058 
 4059 	* src/cff/cffgload.c, src/cid/cidgload.c, src/type1/t1gload.c:
 4060 	Update calls.
 4061 
 4062 	* src/psaux/psaux.c, src/psaux/psauxmod.c: Update includes.
 4063 
 4064 	* src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRV_SRC):
 4065 	Update file references.
 4066 
 4067 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4068 
 4069 	[psaux] Fix Type 1 hinting.
 4070 
 4071 	Type 1 hinting breaks sometimes when mid-charstring hints should
 4072 	have been in the initial hintmap.  This fix adds a preprocessing
 4073 	pass that reads all hints and builds the correct initial hintmap
 4074 	first, before proceeding to build the glyph outline.
 4075 
 4076 	* src/psaux/psintrp.c (cf2_interpT2CharString): New
 4077 	`initial_map_ready' boolean flag.
 4078 	Ignore outline commands and hint changes on first pass.
 4079 	<cf2_cmdENDCHAR>: Add section to build hintmap and rewind.
 4080 
 4081 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4082 
 4083 	[psaux] Add tracing for hints.
 4084 
 4085 	* src/psaux/pshints.c (cf2_hintmap_dump): New function.
 4086 	(cf2_hintmap_insertHint): Trace incoming and inserted hints.
 4087 	(cf2_hintmap_build): Dump hintmap before and after hint adjustment.
 4088 
 4089 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4090 
 4091 	[psaux] Minor fixes.
 4092 
 4093 	* src/psaux/psintrp.c (cf2_interpT2CharString): Fix check for pop
 4094 	results.
 4095 	s/font->decoder/decoder/ where necessary.
 4096 	<cf2_cmdHSTEM, cf2_cmdVSTEM, cf2_escHSTEM3, cf2_escVSTEM3>: Use
 4097 	offset parameter in `cf2_doStems' instead of doing correction for
 4098 	left-sidebearing.
 4099 
 4100 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4101 
 4102 	[cid] Use the new engine.
 4103 
 4104 	* src/cid/cidgload.c: Update includes.
 4105 	(cid_load_glyph, cid_slot_load_glyph): Implement changes to glyph
 4106 	loading code as with `type1' module.
 4107 
 4108 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4109 
 4110 	[cid] Add Adobe engine configuration.
 4111 
 4112 	This is similar to what was done in the `type1' module.
 4113 
 4114 	* src/cid/cidriver.c (t1cid_driver_class): Update declaration.
 4115 	* src/cid/cidobjs.c: Include FT_TYPE1_DRIVER_H.
 4116 	(cid_driver_init): Update code.
 4117 
 4118 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4119 
 4120 	[psaux] Change subfont synthesis for CID fonts.
 4121 
 4122 	Change `t1_make_subfont' to take in the Private dict record as an
 4123 	argument.  This is because Type 1 and CID font records in FreeType
 4124 	have this in different places.
 4125 
 4126 	* src/psaux/psobjs.c (t1_make_subfont): Change `T1_Face' to
 4127 	`FT_Face' so that CID is also accepted.
 4128 	Take `PS_Private' as an argument and let caller figure out where the
 4129 	Private dict actually is.
 4130 	Update references.
 4131 
 4132 	* include/freetype/internal/psaux.h, src/psaux/psobjs.h: Update
 4133 	declaration.
 4134 
 4135 	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Update
 4136 	call.
 4137 
 4138 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4139 
 4140 	[type1] Switch to Adobe engine.
 4141 
 4142 	* src/type1/t1objs.c (T1_Driver_Init): Set default to Adobe engine.
 4143 
 4144 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4145 
 4146 	[psaux] Extend Adobe interpreter (seac).
 4147 
 4148 	This concludes the changes needed to add Type 1 support.
 4149 
 4150 	* src/psaux/psintrp.c: Update includes.
 4151 	(cf2_interpT2CharString) <cf2_escSEAC>: Implement this similarly to
 4152 	implied seac for CFF.
 4153 
 4154 	* src/psaux/t1decode.c (t1_lookup_glyph_by_stdcharcode_ps): New
 4155 	function to look up the glyph index.
 4156 
 4157 	* src/psaux/psft.c (cf2_getT1SeacComponent,
 4158 	cf2_freeT1SeacComponent): New functions to get the charstrings for
 4159 	seac components.
 4160 
 4161 	* src/psaux/t1decode.h, src/psaux/psft.h: Update declarations.
 4162 
 4163 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4164 
 4165 	[psaux] Extend Adobe interpreter (flex in callothersubr).
 4166 
 4167 	* src/psaux/psintrp.c (cf2_interpT2CharString)
 4168 	<cf2_escCALLOTHERSUBR>: Fix Flex feature handling (OtherSubrs 0, 1,
 4169 	2).
 4170 	<cf2_cmdRMOVETO>: Do not actually move the `glyphPath' while doing
 4171 	flex.  This is to avoid closing the current contour.
 4172 
 4173 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4174 
 4175 	[psaux] Extend Adobe interpreter (callothersubr).
 4176 
 4177 	* src/psaux/psintrp.c (cf2_interpT2CharString)
 4178 	<cf2_escCALLOTHERSUBR>: Copy code from
 4179 	`t1_decoder_parse_charstrings' (in `t1decode.c').
 4180 	OtherSubr 3 (change hints) should reset the hintmask, so that the
 4181 	new hints are applied.
 4182 	Fix function calls and stack access.
 4183 
 4184 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4185 
 4186 	[psaux] Extend Adobe interpreter (pop).
 4187 
 4188 	* src/psaux/psintrp.c (cf2_interpT2CharString): Change how unhandled
 4189 	OtherSubr results are stored.  Implement the PostScript stack using
 4190 	an array.
 4191 	<cf2_escPOP>: Ensure that the stack is not cleared after getting
 4192 	`OtherSubr' results.
 4193 	Fix stack access.
 4194 
 4195 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4196 
 4197 	[psaux] Extend Adobe interpreter (callsubr).
 4198 
 4199 	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdCALLSUBR>:
 4200 	Type 1 mode.
 4201 
 4202 	* src/psaux/psft.c (cf2_initLocalRegionBuffer): Add Type 1 mode.
 4203 
 4204 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4205 
 4206 	[psaux] Extend Adobe interpreter (div, four-byte numbers).
 4207 
 4208 	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_escDIV>: Add
 4209 	Type 1 mode.  Type 1 requires large integers to be followed by
 4210 	`div'; cf. `Adobe Type 1 Font Format', section 6.2.
 4211 	<op == 255>: Push Type 1 four-byte numbers as `Int' always.  This is
 4212 	to ensure `div' and `callsubr' get values they can use.
 4213 
 4214 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4215 
 4216 	[psaux] Extend Adobe interpreter (hints).
 4217 
 4218 	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
 4219 	cf2_cmdVSTEM>: Add correction for left sidebearing in Type 1 mode.
 4220 	Allow adding hints mid-charstring.
 4221 	<cf2_escVSTEM3, cf2_escHSTEM3>: Translate into equivalent commands
 4222 	for three normal stem hints.  This requires some recalculation of
 4223 	stem positions.
 4224 	Correction for left sidebearing.
 4225 
 4226 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4227 
 4228 	[psaux] Extend Adobe interpreter (hsbw, sbw).
 4229 
 4230 	* src/psaux/psintrp.c (cf2_doStems): `hsbw' or `sbw' must be the
 4231 	first operation in a Type 1 charstring.
 4232 	(cf2_interpT2CharString): Remove unused variables.
 4233 	<cf2_cmdHMOVETO, cf2_cmdVMOVETO, cf2_cmdRMOVETO>: `hsbw' or `sbw'
 4234 	must be the first operation in a Type 1 charstring.
 4235 	<cf2_cmdHSBW, cf2_escSBW>: Fix data access and add correction for
 4236 	left sidebearing.
 4237 
 4238 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4239 
 4240 	[psaux] Extend Adobe interpreter (setcurrentpoint).
 4241 
 4242 	* src/psaux/psintrp.c (cf2_interpT2CharString)
 4243 	<cf2_escSETCURRENTPT>: Fix stack access.
 4244 
 4245 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4246 
 4247 	[psaux] Extend Adobe interpreter (closepath).
 4248 
 4249 	* src/psaux/psintrp.c (cf2_interpT2CharString) <c2f_cmdCLOSEPATH>:
 4250 	Use the right builder function.  We can use the `haveWidth' boolean
 4251 	already present, instead of implementing `parse_state'.
 4252 
 4253 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4254 
 4255 	[psaux] Add Type 1 operations to Adobe CFF interpreter.
 4256 
 4257 	The following Type 1 specific ops have been added (copied from
 4258 	`t1decode'):
 4259 
 4260 	  closepath
 4261 	  vstem3
 4262 	  hstem3
 4263 	  seac
 4264 	  sbw
 4265 	  callothersubr
 4266 	  pop
 4267 	  setcurrentpoint
 4268 	  hsbw
 4269 
 4270 	The following require a Type 1 mode, because of differences in
 4271 	specification:
 4272 
 4273 	  hstem
 4274 	  vstem
 4275 	  vmoveto
 4276 	  callsubr
 4277 	  div
 4278 	  rmoveto
 4279 	  hmoveto
 4280 	  Numbers
 4281 
 4282 	The subsequent commits will implement these changes and adapt
 4283 	accesses of data and objects to the new interpreter.
 4284 
 4285 	NOTE: Will not compile in the meantime!
 4286 
 4287 	* src/psaux/psintrp.c: Add opcodes to enum.
 4288 	(cf2_interpT2CharString): Copy relevant code over from
 4289 	`t1_decoder_parse_charstrings' (in `t1decode.c').
 4290 
 4291 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4292 
 4293 	[type1] Fixes for rendering.
 4294 
 4295 	The Type 1 advance width calculation passes null for glyph slot,
 4296 	etc, which can cause null pointer access in the new interpreter.
 4297 	Fall back to the old one for now.
 4298 
 4299 	Fix the large glyph retry code and ensure hinting and scaling flags
 4300 	are set properly.
 4301 
 4302 	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add a
 4303 	check for metrics_only.
 4304 	Set the `force_scaling' flag.
 4305 	(T1_Parse_Glyph): Updated.
 4306 	(T1_Load_Glyph): Add `hinting' and `scaled' flags.
 4307 
 4308 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4309 
 4310 	[psaux] Add missing objects (2/2).
 4311 
 4312 	Synthesize a `SubFont' object for Type 1 fonts.  This is used in the
 4313 	interpreter to access Private dict data, which are stored in
 4314 	different places for Type 1 and CFF.  This allows the same data to
 4315 	be used in either mode.
 4316 
 4317 	* src/psaux/psobjs.c (t1_make_subfont): New procedure to copy
 4318 	required values to a dummy `CFF_SubFont' object.  This is similar to
 4319 	`cff_make_private_dict'.
 4320 	* src/psaux/psobjs.h: Add the new declaration.
 4321 
 4322 	* include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Ditto.
 4323 	Add this to the PSAux Service for future use with CID fonts.
 4324 
 4325 	* src/type1/t1gload.c: Include FT_INTERNAL_CFF_TYPES_H.
 4326 	(T1_Parse_Glyph_And_Get_Char_String): Add the call.
 4327 
 4328 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4329 
 4330 	[psaux] Add missing objects for Type 1 (1/2).
 4331 
 4332 	Move `CF2_Font' instance to `PS_Decoder'.  This is the context for
 4333 	the interpreter and since it is currently stored in `CFF_Font', is
 4334 	unavailable in Type 1 mode.
 4335 
 4336 	* include/freetype/internal/psaux.h (T1_Decoder, PS_Decoder): New
 4337 	`cf2_instance' field.
 4338 
 4339 	* src/psaux/psdecode.c (ps_decoder_init): Copy `cf2_instance' to
 4340 	`PS_Decoder'.
 4341 
 4342 	* src/psaux/t1decode.c (t1_decoder_done): Add finalization code.
 4343 
 4344 	* src/psaux/psft.c (cf2_decoder_parse_charstrings): Update accesses.
 4345 
 4346 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4347 
 4348 	Allow `type1' module to use the Adobe engine.
 4349 
 4350 	Add the callback and some conditionals to switch between the two
 4351 	engines.
 4352 
 4353 	* include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Change
 4354 	function declarations.
 4355 	* src/psaux/psauxmod.c (T1_Decoder_FuncsRec): Register the
 4356 	callbacks.
 4357 
 4358 	* src/psaux/psobjs.c (ps_builder_add_point): Add conditionals for
 4359 	number conversion.
 4360 
 4361 	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add code
 4362 	to choose which renderer to use.
 4363 
 4364 	* src/cid/cidgload.c (cid_load_glyph): Update call.
 4365 	* src/base/ftobjs.c, src/psaux/psobjs.c, src/type1/t1gload.c: Update
 4366 	includes.
 4367 
 4368 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4369 
 4370 	[type1] Add Adobe engine configuration.
 4371 
 4372 	Use the previously changed PS_Driver in type1 module to store
 4373 	hinting engine configuration.
 4374 
 4375 	* include/freetype/ftt1drv.h: New file.
 4376 	Duplicate and rename config options from CFF.
 4377 	* include/freetype/config/ftheader.h (FT_TYPE1_DRIVER_H): New macro.
 4378 
 4379 	* src/type1/t1driver.c (t1_driver_class): Update declaration.
 4380 	* src/type1/t1objs.c: Include FT_TYPE1_DRIVER_H.
 4381 	(T1_Driver_Init): Update code.
 4382 
 4383 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4384 
 4385 	[cff] Move and rename `CFF_Driver'.
 4386 
 4387 	This is so that we can use the same hinting engine parameters for
 4388 	Type 1.
 4389 
 4390 	* include/freetype/internal/cffotypes.h (CFF_Driver): Rename and
 4391 	move to...
 4392 	* include/freetype/internal/psaux.h (PS_Driver): ...here.
 4393 
 4394 	* src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffload.c,
 4395 	src/cff/cffobjs.c, src/cff/cffobjs.h, src/psaux/psft.c,
 4396 	src/psaux/psobjs.c: Update references.
 4397 
 4398 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4399 
 4400 	[psaux, type1] Reorganize object fields.
 4401 
 4402 	Make some fields more generic, so that we can access them the same
 4403 	way regardless of Type 1 or CFF.
 4404 
 4405 	* include/freetype/internal/psaux.h (PS_Builder): Change `TT_Face'
 4406 	to `FT_Face'.
 4407 	Remove unused fields.
 4408 
 4409 	* src/psaux/psft.c: Update all accesses of `PS_Builder.face'.
 4410 	Add some asserts to guard against casting `T1_Face' as `TT_Face'.
 4411 
 4412 	* src/type1/t1objs.h (T1_GlyphSlot): Reorder fields to follow
 4413 	`CFF_GlyphSlot', so that we can pretend they are the same in the
 4414 	interpreter.
 4415 
 4416 	* src/psaux/psobjs.c (ps_builder_init, ps_builder_add_point):
 4417 	Updated with above changes.
 4418 
 4419 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4420 
 4421 	[psaux] Prepare for Type 1 mode.
 4422 
 4423 	Add some checks for Type 1 data passing through.
 4424 
 4425 	* src/psaux/psfont.h (CF2_Font): Add `isT1' flag.
 4426 	* src/psaux/psfont.c (cf2_font_setup): Skip the variations and blend
 4427 	code which is not applicable for Type 1.
 4428 
 4429 	* src/psaux/psft.c (cf2_decoder_parse_charstrings): Avoid accessing
 4430 	`decoder->cff' in Type 1 mode.
 4431 	Copy `is_t1' flag to `CF2_Font'.
 4432 
 4433 2017-09-25  Ewald Hew  <ewaldhew@gmail.com>
 4434 
 4435 	[psaux, cff] Use the new objects.
 4436 
 4437 	* include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Fix
 4438 	switching between new and old engines.
 4439 
 4440 	* src/cff/cffgload.c, src/cff/cffparse.c: Update calls.
 4441 
 4442 	* src/psaux/psblues.c, src/psaux/psfont.c, src/psaux/psfont.h,
 4443 	src/psaux/psft.c, src/psaux/psft.h, src/psaux/psintrp.c: Update all
 4444 	to use new objects.
 4445 
 4446 2017-09-24  Ewald Hew  <ewaldhew@gmail.com>
 4447 
 4448 	[psaux] Objects for new interpreter (part 2).
 4449 
 4450 	Make the new objects copy over values.  They are essentially wrapper
 4451 	types for the different decoders/builders.
 4452 
 4453 	* include/freetype/internal/psaux.h: Update declarations.
 4454 	(PS_Builder): Add `is_t1' flag.
 4455 	(PS_Decoder_{Get,Free}_Glyph_Callback): Renamed to...
 4456 	(CFF_Decoder_{Get,Free}_Glyph_Callback: ... this.
 4457 	(PS_Decoder): Updated.
 4458 	Add `t1_parse_callback' member.
 4459 	(PSAux_ServiceRec): Add `ps_decoder_init' member.
 4460 
 4461 	* src/psaux/psdecode.h, src/psaux/psobjs.h: Update declarations.
 4462 
 4463 	* src/psaux/psdecode.c, src/psaux/psobjs.c: Implement copy with two
 4464 	modes.
 4465 
 4466 	* src/psaux/psauxmod.c: Add builder and decoder functions to `PSAux'
 4467 	service.
 4468 
 4469 2017-09-24  Ewald Hew  <ewaldhew@gmail.com>
 4470 
 4471 	[psaux] Add objects for new interpreter.
 4472 
 4473 	Introduce `PS_Decoder' and `PS_Builder' which include all fields
 4474 	from either Type 1 or CFF decoders/builders.
 4475 
 4476 	* include/freetype/internal/psaux.h (PS_Builder, PS_Decoder): New
 4477 	structs.
 4478 
 4479 	* src/psaux/psobjs.c, src/psaux/psobjs.h: Add `PS_Builder'
 4480 	functions.
 4481 
 4482 	* src/psaux/psdecode.c, src/psaux/psdecode.h: New files to hold
 4483 	`PS_Decoder' initialization functions.
 4484 
 4485 	* src/psaux/psaux.c, src/psaux/Jamfile (_sources),
 4486 	src/psaux/rules.mk (PSAUX_DRV_SRC): Updated.
 4487 
 4488 2017-09-24  Ewald Hew  <ewaldhew@gmail.com>
 4489 
 4490 	[psaux] Rename files.
 4491 
 4492 	Replace the `cf2' file name prefix with `ps' as the Adobe engine
 4493 	will be used for both PostScript Types 1 and 2 (CFF) instead of just
 4494 	CFF.
 4495 
 4496 	s/cf2/ps/ for all following.
 4497 
 4498 	* src/psaux/cf2*: Rename files.
 4499 	* src/psaux/*: Update includes.
 4500 
 4501 	* src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRC_SRC,
 4502 	PSAUX_DRV_H): Update file references.
 4503 
 4504 2017-09-24  Ewald Hew  <ewaldhew@gmail.com>
 4505 
 4506 	[psaux] Minor fix.
 4507 
 4508 	Use `MultiMasters' service in `psaux' instead of a call to `cff'.
 4509 	The project builds if CFF_CONFIG_OPTION_OLD_ENGINE is not defined.
 4510 
 4511 	* src/psaux/cf2ft.c: Update includes.
 4512 	(cf2_getNormalizedVector): Use `mm->get_var_blend' instead of
 4513 	`cff_get_var_blend'.
 4514 
 4515 2017-09-24  Ewald Hew  <ewaldhew@gmail.com>
 4516 
 4517 	[psaux, cff] Move `cff_random' into `psaux' service.
 4518 
 4519 	NOTE: Does not compile!
 4520 
 4521 	Minor fix to allow both `cff' and `psaux' to use `cff_random'.
 4522 
 4523 	* src/cff/cffload.c (cff_random): Move to...
 4524 	* src/psaux/psobjs.c: Here.
 4525 	* src/cff/cffload.h: Move corresponding declaration to
 4526 	`src/psaux/psobjs.h'.
 4527 
 4528 	* include/freetype/internal/psaux.h (PSAux_ServiceRec): Register the
 4529 	function here...
 4530 	* src/psaux/psauxmod.c: And here.
 4531 
 4532 	* src/cff/cffload.c, src/psaux/cf2intrp.c: Update code.
 4533 
 4534 2017-09-24  Ewald Hew  <ewaldhew@gmail.com>
 4535 
 4536 	[cff] Move struct declarations to `freetype/internal'.
 4537 
 4538 	NOTE: Does not compile!
 4539 
 4540 	This is so that the CFF functions moved to `psaux' can access the
 4541 	same structs that they need.
 4542 
 4543 	* src/cff/cfftypes.h: Moved to...
 4544 	* include/freetype/internal/cfftypes.h: ...Here.
 4545 
 4546 	* src/cff/cffobjs.h: Moved the struct declarations to...
 4547 	* include/freetype/internal/cffotypes.h: ... this new file.
 4548 
 4549 	* include/freetype/internal/internal.h (FT_INTERNAL_CFF_TYPES_H,
 4550 	FT_INTERNAL_CFF_OBJECT_TYPES_H): New macros.
 4551 
 4552 	* src/cff/cffcmap.h, src/cff/cffdrivr.c, src/cff/cffgload.c,
 4553 	src/cff/cffgload.h, src/cff/cffload.h, src/cff/cffobjs.c,
 4554 	src/cff/cffobjs.h, src/cff/cffparse.h, src/psaux/psobjs.h,
 4555 	include/freetype/internal/psaux.h,
 4556 	include/freetype/internal/services/svcfftl.h: Update includes.
 4557 
 4558 	* src/cff/rules.mk (CFF_DRV_H): Updated.
 4559 
 4560 2017-09-24  Ewald Hew  <ewaldhew@gmail.com>
 4561 
 4562 	[psaux, cff] Add new service for inter-module calls.
 4563 
 4564 	NOTE: Does not compile!
 4565 
 4566 	This is to allow CFF functions moved to `psaux' to call functions
 4567 	declared in `src/cff/cffload.h'.
 4568 
 4569 	* include/freetype/internal/services/svcfftl.h: New file, setting up
 4570 	a `CFFLoad' service.
 4571 
 4572 	* include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC10,
 4573 	FT_DEFINE_SERVICEDESCREC): New macros.
 4574 	(FT_SERVICE_CFF_TABLE_LOAD_H): New macro.
 4575 
 4576 	* src/cff/cffdrivr.c, src/cff/cffpic.h: Register the new service.
 4577 
 4578 	* src/cff/cfftypes.h (CFF_FontRec), src/psaux/cf2font.h
 4579 	(CF2_FontRec): Add service interface.
 4580 
 4581 	* src/cff/cffobjs.c, src/psaux/cf2font.c, src/psaux/cf2ft.c,
 4582 	src/psaux/cf2intrp.c, src/psaux/cffdecode.c: Use the new service.
 4583 
 4584 2017-09-24  Ewald Hew  <ewaldhew@gmail.com>
 4585 
 4586 	[psaux, cff] Add callbacks for inter-module calls.
 4587 
 4588 	NOTE: Does not compile!
 4589 
 4590 	* include/freetype/internal/psaux.h: Add function pointer
 4591 	declarations.
 4592 
 4593 	* src/psaux/cffdecode.c (cff_decoder_init): Update to take in
 4594 	callbacks.
 4595 	* src/psaux/cffdecode.h: Ditto.
 4596 
 4597 	* src/cff/cffgload.c (cff_compute_max_advance, cff_slot_load):
 4598 	Update calls to pass in callbacks.
 4599 	* src/psaux/cf2ft.c, src/psaux/cffdecode.c: Use them.
 4600 
 4601 2017-09-24  Ewald Hew  <ewaldhew@gmail.com>
 4602 
 4603 	[psaux, cff] Create new `PSAux' service interface entries.
 4604 
 4605 	NOTE: Does not compile!
 4606 
 4607 	* include/freetype/internal/psaux.h: Include
 4608 	FT_INTERNAL_TRUETYPE_TYPES_H.
 4609 	(CFF_Builder_FuncsRec, CFF_Decocer_FuncsRec): New function tables.
 4610 	(CFF_Builder): Updated.
 4611 	Fix for forward declaration.
 4612 	(PSAux_ServiceRec): New field `cff_decoder_funcs'.
 4613 
 4614 	* src/psaux/psauxmod.c (cff_builder_funcs, cff_decoder_funcs): New
 4615 	function tables.
 4616 	(PSAux_Interface): Updated.
 4617 
 4618 	* include/freetype/internal/tttypes.h (TT_FaceRec): Add `psaux'
 4619 	service interface.
 4620 
 4621 	* src/cff/cffgload.c, src/cff/cffobjs.c, src/cff/cffparse.c: Update
 4622 	function calls to use psaux service.
 4623 
 4624 2017-09-24  Ewald Hew  <ewaldhew@gmail.com>
 4625 
 4626 	[psaux, cff] Move CFF builder components into `psaux' module.
 4627 
 4628 	NOTE: Does not compile!
 4629 
 4630 	* src/cff/cffgload.c
 4631 	(cff_builder_{init,done,add_point,add_point1,add_contour,start_point,close_contour},
 4632 	cff_check_points): Move to...
 4633 	* src/psaux/psobjs.c: Here.
 4634 
 4635 	* src/cff/cffgload.h: Move corresponding declarations to
 4636 	`src/psaux/psobjs.h'.
 4637 
 4638 	* src/cff/cffgload.h (CFF_Builder): Move struct declaration to...
 4639 	* include/freetype/internal/psaux.h: Here.
 4640 
 4641 2017-09-24  Ewald Hew  <ewaldhew@gmail.com>
 4642 
 4643 	[psaux, cff] Move CFF decoder components into `psaux' module.
 4644 
 4645 	NOTE: Does not compile!
 4646 
 4647 	* src/cff/cffgload.c (CFF_Operator,
 4648 	CFF_COUNT_{CHECK_WIDTH,EXACT,CLEAR_STACK}, cff_argument_counts,
 4649 	cff_operator_seac, cff_compute_bias,
 4650 	cff_lookup_glyph_by_stdcharcode,
 4651 	cff_decoder_{parse_charstrings,init,prepare}): Move to...
 4652 	* src/psaux/cffdecode.c: This new file.
 4653 
 4654 	* src/cff/cffgload.h: Move corresponding declarations to...
 4655 	* src/psaux/cffdecode.h: This new file.
 4656 
 4657 	* src/cff/cffgload.h (CFF_MAX_{OPERANDS,SUBRS_CALLS,TRANS_ELEMENTS},
 4658 	CFF_Decoder_Zone, CFF_Decoder): Move declarations to...
 4659 	* include/freetype/internal/psaux.h: Here.
 4660 
 4661 	* src/psaux/cf2ft.h: Update include.
 4662 
 4663 	* src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Update with
 4664 	the new file.
 4665 
 4666 2017-09-24  Ewald Hew  <ewaldhew@gmail.com>
 4667 
 4668 	[psaux, cff] Move Adobe's engine components into `psaux' module.
 4669 
 4670 	This is the first patch of a sequence to move the Type 2 charstring
 4671 	processing capability from the `cff' module to the `psaux' module.
 4672 
 4673 	NOTE: Does not compile!
 4674 
 4675 	* src/cff/cf2*: Move these files to...
 4676 	* src/psaux/cf2*: Here.
 4677 
 4678 	* src/cff/Jamfile (_sources), src/cff/rules.mk (CFF_DRV_SRC,
 4679 	CFF_DRV_H), src/cff/cff.c, src/cff/cffgload.c: Remove file
 4680 	references.
 4681 
 4682 	* src/psaux/Jamfile (_sources), src/psaux/rules.mk, src/psaux/psaux.c
 4683 	(PSAUX_DRV_SRC, PSAUX_DRV_H): Add file references.
 4684 
 4685 2017-09-24  Alexei Podtelezhnikov  <apodtele@gmail.com>
 4686 
 4687 	Tweak per-face LCD filtering controls.
 4688 
 4689 	Thing are simpler with a NULL-function pointer.
 4690 
 4691 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
 4692 	pointer to the filter function.
 4693 	(FT_LibraryRec): Remove unused `lcd_filter'.
 4694 	(FT_Bitmap_LcdFilterFunc, ft_lcd_filter_fir):  Move from here...
 4695 	* include/freetype/ftlcdfil.h (FT_Bitmap_LcdFilterFunc,
 4696 	ft_lcd_filter_fir): ... to here.
 4697 
 4698 	* src/base/ftobjs.c (ft_open_face_internal): NULL-initialize the
 4699 	per-face filter.
 4700 	(FT_Face_Properties): Set it.
 4701 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Simplify.
 4702 
 4703 	* src/base/ftlcdfil.c (ft_lcd_filter_fir, FT_Libary_SetLcdFilter):
 4704 	Minor.
 4705 
 4706 2017-09-24  Jonathan Kew  <jfkthame@gmail.com>
 4707 
 4708 	[sfnt] Fix `premultiply_data' (#52092).
 4709 
 4710 	* src/sfnt/pngshim.c (premultiply_data): Don't use vector extension
 4711 	if we have less than 16 bytes of data.
 4712 
 4713 2017-09-24  Werner Lemberg  <wl@gnu.org>
 4714 
 4715 	[otvalid] Fix handling of ValueRecords.
 4716 
 4717 	For GPOS pair positioning format 1 the description of ValueRecords
 4718 	in the OpenType specification (1.8.2, from today) is wrong – the
 4719 	offset has to be taken from the parent structure; in this case the
 4720 	`PairSet' table.
 4721 
 4722 	* src/otvalid/otvgpos.c (otv_PairSet_validate): Set `extra3'.
 4723 	(otv_PairPos_validate): Adjust.
 4724 
 4725 2017-09-23  Werner Lemberg  <wl@gnu.org>
 4726 
 4727 	[otvalid] Handle `GSUB' and `GPOS' v1.1 tables.
 4728 
 4729 	* src/otvalid/otvgsub.c (otv_GSUB_validate), src/otvalid/otvgpos.c
 4730 	(otv_GPOS_validate): Implement it.
 4731 
 4732 2017-09-23  Werner Lemberg  <wl@gnu.org>
 4733 
 4734 	[otvalid] Update common table handling to OpenType 1.8.2.
 4735 
 4736 	* src/otvalid/otvcommn.c (otv_Device_validate): Handle
 4737 	VariationIndex subtable.
 4738 	(otv_Lookup_validate): Handle MarkFilteringSet.
 4739 
 4740 2017-09-23  Alexei Podtelezhnikov  <apodtele@gmail.com>
 4741 
 4742 	[build] Windows-style DLL versioning.
 4743 
 4744 	* build/windows/ftver.rc: New VERSIONINFO resource.
 4745 	* build/windows/vc2010/freetype.vcxproj: Further improvements.
 4746 
 4747 2017-09-23  Ben Wagner  <bungeman@google.com>
 4748 
 4749 	[truetype] Really fix #52082.
 4750 
 4751 	* src/truetype/ttinterp.c (Ins_MDRP): Correct conditional.
 4752 
 4753 2017-09-23  Werner Lemberg  <wl@gnu.org>
 4754 
 4755 	[otvalid] Handle `GDEF' v1.2 and v1.3 tables.
 4756 
 4757 	No validation of variation stuff yet.
 4758 
 4759 	* src/otvalid/otvgdef.c (otv_MarkGlyphSets_validate): New function.
 4760 	(otv_GDEF_validate): Implement it.
 4761 
 4762 2017-09-22  Werner Lemberg  <wl@gnu.org>
 4763 
 4764 	[otvalid] Handle `BASE' v1.1 table.
 4765 
 4766 	No validation of variation stuff yet.
 4767 
 4768 	* src/otvalid/otvbase.c (otv_BASE_validate): Implement it.
 4769 
 4770 2017-09-22  Werner Lemberg  <wl@gnu.org>
 4771 
 4772 	[otvalid] Macros for 32bit offset support.
 4773 
 4774 	* src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE32,
 4775 	OTV_OPTIONAL_OFFSET32, OTV_SIZE_CHECK32): New macros.
 4776 
 4777 2017-09-21  Alexei Podtelezhnikov  <apodtele@gmail.com>
 4778 
 4779 	[build] Simplify Visual C++ 2010 project.
 4780 
 4781 	* build/windows/vc2010/freetype.vcxproj: Remove fake singlethreaded
 4782 	configurations and tweak.
 4783 
 4784 2017-09-21  Werner Lemberg  <wl@gnu.org>
 4785 
 4786 	[truetype] Integer overflow (#52082).
 4787 
 4788 	* src/truetype/ttinterp.c (Ins_MDRP): Avoid FT_ABS.
 4789 
 4790 2017-09-21  Werner Lemberg  <wl@gnu.org>
 4791 
 4792 	[sfnt] Fix postscript name for default instance of variation fonts.
 4793 
 4794 	Problem reported by Behdad.
 4795 
 4796 	* src/sfnt/sfdriver.c (sfnt_get_ps_name): Test
 4797 	`is_default_instance'.
 4798 
 4799 2017-09-21  Werner Lemberg  <wl@gnu.org>
 4800 
 4801 	[truetype] Fix `mmvar' array pointers, part 2.
 4802 
 4803 	The previous commit was incomplete.
 4804 
 4805 	* src/truetype/ttgxvar.c: Properly initialize sub-array offsets for
 4806 	`master' also.
 4807 
 4808 2017-09-21  Werner Lemberg  <wl@gnu.org>
 4809 
 4810 	[truetype] Fix `mmvar' array pointers.
 4811 
 4812 	Without this change, clang's AddressSanitizer reports many runtime
 4813 	errors due to misaligned addresses.
 4814 
 4815 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Use multiples of pointer
 4816 	size for sub-array offsets into `mmvar'.
 4817 
 4818 2017-09-20  Werner Lemberg  <wl@gnu.org>
 4819 
 4820 	[truetype] Integer overflows.
 4821 
 4822 	Changes triggered by
 4823 
 4824 	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3429
 4825 
 4826 	* src/truetype/ttinterp.c (Ins_SHPIX, Ins_DELTAP): Use NEG_LONG.
 4827 	(Ins_MIAP): Use SUB_LONG.
 4828 
 4829 2017-09-19  Alexei Podtelezhnikov  <apodtele@gmail.com>
 4830 
 4831 	[build] Fix DLL builds in Visual C++ project.
 4832 
 4833 	* build/windows/vc2010/freetype.vcxproj: Use DynamicLibrary in Debug
 4834 	and Release configurations.
 4835 	* include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF)
 4836 	[_DLL]: Use Visual C++ extensions.
 4837 
 4838 2017-09-19  John Tytgat  <John.Tytgat@esko.com>
 4839 
 4840 	[cff] Fix family name logic of pure CFF fontdata (#52056).
 4841 
 4842 	1. If `FamilyName' is present in the CFF font, use this for
 4843 	   FT_Face's `family_name'.
 4844 	2. Otherwise, use the face name and chop off any subset prefix.
 4845 	3. If at this point FT_Face's `family_name' is set, use this
 4846 	   together with the full name to determine the style.
 4847 	4. Otherwise, use `CIDFontName' as FT_Face's `family_name'.
 4848 	5. If we don't have a valid style, use "Regular".
 4849 
 4850 	Previously, FT_Face's `family_name' entry for pure CFF fontdata
 4851 	nearly always was the fontname itself, instead of the `FamilyName'
 4852 	entry in the CFF font (assuming there is one).
 4853 
 4854 	* src/cff/cffobjs.c (cff_face_init) [pure_cff]: Implement it.
 4855 
 4856 2017-09-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
 4857 
 4858 	[build] Declutter Visual C++ 2010-2017 project.
 4859 
 4860 	* build/windows/vc2010/freetype.vcxproj: Use MaxSpeed (/02)
 4861 	optimization for Release configuration throughout the project.
 4862 
 4863 
 4864 ----------------------------------------------------------------------------
 4865 
 4866 Copyright (C) 2017-2019 by
 4867 David Turner, Robert Wilhelm, and Werner Lemberg.
 4868 
 4869 This file is part of the FreeType project, and may only be used, modified,
 4870 and distributed under the terms of the FreeType project license,
 4871 LICENSE.TXT.  By continuing to use, modify, or distribute this file you
 4872 indicate that you have read the license and understand and accept it
 4873 fully.
 4874 
 4875 
 4876 Local Variables:
 4877 version-control: never
 4878 coding: utf-8
 4879 End: