summaryrefslogtreecommitdiff
path: root/Build/source/libs/freetype2/freetype-src/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/freetype2/freetype-src/ChangeLog')
-rw-r--r--Build/source/libs/freetype2/freetype-src/ChangeLog2533
1 files changed, 2530 insertions, 3 deletions
diff --git a/Build/source/libs/freetype2/freetype-src/ChangeLog b/Build/source/libs/freetype2/freetype-src/ChangeLog
index 806b8354a90..670e8480550 100644
--- a/Build/source/libs/freetype2/freetype-src/ChangeLog
+++ b/Build/source/libs/freetype2/freetype-src/ChangeLog
@@ -1,3 +1,2530 @@
+2019-03-15 Werner Lemberg <wl@gnu.org>
+
+ * Version 2.10.0 released.
+ ==========================
+
+
+ Tag sources with `VER-2-10-0'.
+
+ * docs/VERSION.TXT: Add entry for version 2.10.0.
+ * docs/CHANGES: Updated.
+
+ * README, Jamfile (RefDoc), src/base/ftver.rc,
+ builds/windows/vc2010/freetype.vcxproj,
+ builds/windows/vc2010/index.html,
+ builds/windows/visualc/freetype.dsp,
+ builds/windows/visualc/freetype.vcproj,
+ builds/windows/visualc/index.html,
+ builds/windows/visualce/freetype.dsp,
+ builds/windows/visualce/freetype.vcproj,
+ builds/windows/visualce/index.html,
+ builds/wince/vc2005-ce/freetype.vcproj,
+ builds/wince/vc2005-ce/index.html,
+ builds/wince/vc2008-ce/freetype.vcproj,
+ builds/wince/vc2008-ce/index.html: s/2.9.1/2.10.0/, s/291/2100/.
+
+ * include/freetype/freetype.h (FREETYPE_MINOR): Set to 10.
+ (FREETYPE_PATCH): Set to 0.
+
+ * builds/unix/configure.raw (version_info): Set to 23:0:17.
+ * CMakeLists.txt (VERSION_MINOR): Set to 10.
+ (VERSION_PATCH): Set to 0.
+
+ * builds/toplevel.mk (version, winversion): Since the minor version
+ number has two digits now, never omit the patch number. We would
+ get ambiguous zip file names otherwise.
+ (dist): Remove remnants of `docmaker' tool.
+ (do-dist): Remove unused intermediate files.
+
+ * src/cff/cffparse.c (destrict_c2s_item): Guard function with
+ CFF_CONFIG_OPTION_OLD_ENGINE macro.
+
+2019-03-07 Andrei Alexeyev <0x416b617269@gmail.com>
+ Werner Lemberg <wl@gnu.org>
+
+ Fix invalid function pointer casts.
+
+ This change should allow Freetype to work on WASM/Emscripten without
+ needing `-s EMULATE_FUNCTION_POINTER_CASTS=1'.
+
+ * src/autofit/afdummy.c (af_dummy_hints_apply): Fix signature.
+
+ * src/cid/cidload.c (cid_parse_font_matrix, parse_fd_array,
+ parse_expansion_factor, parse_font_name): Return `void', not
+ `FT_Error'.
+
+ * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIsDefaultFunc):
+ Fix signature.
+
+2019-03-05 Werner Lemberg <wl@gnu.org>
+
+ [base] Handle numeric overflow (#55827).
+
+ * src/base/ftglyph.c (FT_Glyph_Get_CBox): Use `FT_PIX_CEIL_LONG'.
+
+2019-03-05 Sebastian Rasmussen <sebras@gmail.com>
+
+ [psaux] Fix use of uninitialized memory (#55832).
+
+ * src/psaux/psintrp.c (cf2_interpT2CharString): The call to
+ `cf2_arrstack_setCount' may fail because the allocator ran out of
+ memory. When this happens the stack is still written to before the
+ error condition is checked. This means that FreeType writes outside
+ of allocated memory. This commit moves the error check prior to the
+ stack assignment, hence the function now properly returns with an
+ error condition.
+
+2019-02-23 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftbitmap.c (FT_Bitmap_Blend): No fractional offsets.
+
+ The function only provided a framework without an actual
+ implementation, which this commit removes.
+
+2019-02-23 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/update-copyright-year: Insert `(C)'.
+
+2019-02-21 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ [truetype] Mask numeric overflows.
+
+ * src/truetype/ttinterp.c (Move_CVT, Move_CVT_Stretched, Ins_MIRP):
+ Mask numeric overflows.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11681
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11734
+
+2019-02-21 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ [psaux] Mask numeric overflow.
+
+ * src/psaux/cffdecode.c (cff_decoder_parse_charstrings): Mask numeric
+ overflow.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13041
+
+2019-02-16 Wink Saville <wink@saville.com>
+
+ * src/autofit/afwarp.h (af_warper_compute): Fix declaration.
+
+2019-02-02 Nikolaus Waxweiler <madigens@gmail.com>
+
+ [truetype] Apply MVAR hasc, hdsc and hlgp metrics to current FT_Face metrics.
+
+ Instead of setting typo or win metrics as the new `FT_Face' metrics
+ indiscriminately, apply only typo deltas to the currently active
+ `FT_Face' metrics. This prevents line height differences when the
+ default outlines were used as the regular face and instances for
+ everything else, for example.
+
+ * src/truetype/ttgxvar.c (tt_apply_mvar): Implement.
+
+2019-02-02 Nikolaus Waxweiler <madigens@gmail.com>
+
+ [sfnt] Use typo metrics if OS/2 fsSelection USE_TYPO_METRICS bit is set.
+
+ If the `OS/2' table exists and `fsSelection' bit 7
+ (USE_TYPO_METRICS) is set, use the `sTypo*' set of values to compute
+ the `FT_Face's ascender, descender, and height. Otherwise, fall
+ back to old behavior.
+
+ * src/sfnt/sfobjs.c (sfnt_load_face): Implement.
+
+2019-01-18 John Tytgat <John.Tytgat@esko.com>
+
+ [sfnt] Handle TT fonts having two PostScript font names (#55471).
+
+ * src/sfnt/sfdriver.c (sfnt_get_name_id): Prefer English over any
+ other language found for PostScript font names.
+
+2019-01-08 Chris Liddell <chris.liddell@artifex.com>
+
+ [psaux] Fix closepath (#55414).
+
+ All of the Type 1 path building is done with code common to the
+ revised CFF engine, with the exception of closepath, which was still
+ calling ps_builder_close_contour(), thus previously cached segments
+ were not always written to the path, and glyph corruption, or even
+ invalid outlines were possible.
+
+ * src/psauc/psinterp.c (cf2_interpT2CharString) <cf2_cmdCLOSEPATH>:
+ Switch to calling `cf2_glyphpath_closeOpenPath'.
+
+2018-12-29 Werner Lemberg <wl@gnu.org>
+
+ * src/autofit/aflatin2.c: Some fixes from `aflatin.c' (#55310).
+
+2018-12-25 Werner Lemberg <wl@gnu.org>
+
+ * src/psaux/cffdecode.c (cff_operaor_seac): Fix numeric overflow.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11915
+
+2018-12-12 Werner Lemberg <wl@gnu.org>
+
+ [gxvalid] Fix compiler warnings.
+
+ * src/gxvalid/gxvjust.c (gxv_just_check_max_gid),
+ src/gxvalid/gxvmort.c (gxv_mort_coverage_validate): Use `FT_UNUSED'.
+
+2018-12-11 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttgload.c (TT_Hint_Glyph): Remove useless test.
+
+ `control_len' only gets its value from `n_ins' (and vice versa),
+ which is always read as `unsigned short' and thus can't be larger
+ than 0xFFFF.
+
+2018-12-04 Werner Lemberg <wl@gnu.org>
+
+ [bdf] Ignore data after `ENDFONT'.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10798
+
+ * src/bdf/bdflib.c (_bdf_parse_end): New function.
+ (_bdf_parse_glyphs): Switch to `_bdf_parse_end' after `ENDFONT' has
+ been encountered.
+
+2018-12-02 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * builds/windows/visualc/freetype.dsp: Dust off.
+
+2018-11-27 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * builds/windows/vc2010/freetype.vcxproj: Simplify.
+
+2018-11-27 Chris Liddell <chris.liddell@artifex.com>
+
+ [type1,cff] Add FT_{Set,Get}_MM_WeightVector API calls.
+
+ For multiple master fonts, common usage (in Postscript) is to modify
+ the WeightVector of an existing font instance, this addition
+ supports that use.
+
+ * include/freetype/ftmm.h, src/base/ftmm.c (FT_Set_MM_WeightVector,
+ FT_Get_MM_WeightVector): New API functions.
+
+ * include/freetype/internalservices/svmm.h
+ (FT_Set_MM_WeightVector_Func, FT_Get_MM_WeightVector_Func): New
+ function types.
+ (MultiMasters): Add `set_mm_weightvector' and `get_mm_weightvector'
+ members.
+ (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
+
+ * src/cffcffdrivr.c (cff_set_mm_weightvector,
+ cff_get_mm_weightvector): New functions.
+ (cff_service_multi_masters): Register them.
+
+ * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated.
+ This driver doesn't use the new interface.
+
+ * src/type1/t1load.c (T1_Set_MM_WeightVector,
+ T1_Get_MM_WeightVector): New functions.
+ * src/type1/t1driver.c (t1_service_multi_masters): Register them.
+ * src/type1/t1load.h: Updated.
+
+2018-11-27 Ben Wagner <bungeman@google.com>
+
+ [cff] Fix compiler warning (#55105).
+
+ * src/cff/cffparse.c (cff_parser_run): Guard label only used if
+ CFF_CONFIG_OPTION_OLD_ENGINE is active.
+
+2018-11-27 Ben Wagner <bungeman@google.com>
+
+ [truetype] Fix numeric overflow (#55103).
+
+ * src/truetype/ttgload.c (compute_glyph_metrics): Use `SUB_LONG'.
+
+2018-11-25 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [builds] Belated DLL support with vc2002-vc2008.
+
+ The solution and project files should be automatically upgraded for
+ the approriate Visual C++ version.
+
+ * builds/windows/visualc/freetype.{sln,vcproj}: Major upgrades.
+ * builds/windows/visualc/index.html: Document the change.
+ * builds/windows/vc2005, builds/windows/vc2008: Removed as redundant.
+
+2018-11-22 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ * src/cff/cffparse.c: Please the compiler.
+
+2018-11-22 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ [cff] Fix memory overflow.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9869
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10869
+
+ * src/cff/cffparse.c (destruct_t2s_item, cff_parser_run): Store
+ evaluated T2 charstrings in separately allocated memory.
+
+2018-11-18 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * builds/windows/{visualc,vc2005,vc2008}/freetype.vcproj: Fix it.
+
+2018-11-10 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [smooth] Placeholder only for library-enabled LCD filtering.
+
+ * src/smooth/ftsmooth.c (ft_smooth_init): Add disabled
+ `FT_Library_SetLcdFilter' call.
+
+2018-11-09 Young Xiao <yangx92@hotmail.com>
+
+ [psaux] Add safety guard (#54985).
+
+ * src/psaux/psobjs.c (cff_builder_close_contour): Do it.
+
+2018-11-08 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * builds/unix/configure.raw: Require `windows.h' for windres.
+
+2018-11-08 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [ftstroke] Fix unpredictable failures (#54986).
+
+ * src/base/ftstroke.c (ft_sroke_border_lineto): Fix lineto check.
+
+2018-11-08 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [ftstroke] Fix unpredictable failures (#54976).
+
+ * src/base/ftstroke.c (ft_sroke_border_close): Set the start tags.
+
+2018-11-07 Ben Wagner <bungeman@google.com>
+
+ [truetype] Fix VF check from 2018-09-12 (#54973).
+
+ * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Use correct
+ offsets for estimates.
+
+2018-11-06 Werner Lemberg <wl@gnu.org>
+
+ [pshinter] Fix numeric overflow.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11242
+
+ * src/pshinter/pshrec.c (ps_dimension_add_t1stem): Implement it.
+
+2018-11-06 Werner Lemberg <wl@gnu.org>
+
+ [psaux] Fix timeout in old CFF engine.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11260
+
+ * src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
+ <cff_op_sqrt> [CFF_CONFIG_OPTION_OLD_ENGINE]: Fix potential endless
+ loop.
+
+2018-11-04 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/truetype/ttgxvar.c: Use enum definitions.
+
+2018-11-03 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/truetype/ttgxvar.c (ft_var_apply_tuple): Adjust condition.
+
+2018-11-03 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/truetype/ttgxvar.c (ft_var_apply_tuple): Tracing tweaks.
+
+2018-11-03 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ Revert due to specs: [truetype] Speed up variation IUP.
+
+2018-11-02 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/truetype/ttgxvar.c (ft_var_get_item_delta): Fixed logic.
+
+ Reported and tested by Behdad.
+
+2018-11-02 Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
+
+ [autofit] Prevent SEGV.
+
+ See
+
+ https://bugs.ghostscript.com/show_bug.cgi?id=697545
+
+ for more details on how the bug was found.
+
+ * src/autofit/afloader.c (af_loader_load_glyph): Propagate error
+ code.
+
+2018-10-31 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [truetype] Speed up variation IUP.
+
+ * src/truetype/ttgxvar.c (tt_delta_interpolate): Separate trivial
+ snapping to the same position from true interpolation.
+
+2018-10-31 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/type1/t1load.c (t1_set_mm_blend): Optimized.
+
+2018-10-31 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/truetype/ttgxvar.c (ft_var_get_item_delta): Optimized.
+
+2018-10-29 Werner Lemberg <wl@gnu.org>
+
+ [base] Fix numeric overflow.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11080
+
+ * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use `MUL_LONG'.
+
+2018-10-29 Werner Lemberg <wl@gnu.org>
+
+ [cff] Fix numeric overflow.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10988
+
+ * src/cff/cffparse.c (cff_parser_run)
+ [CFF_CONFIG_OPTION_OLD_ENGINE]: Use `NEG_LONG'.
+
+2018-10-27 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [sfnt] Make `head' timestamps unsigned.
+
+ It's been more than 2^31 seconds since 1904.
+
+ * include/freetype/tttables.h (TT_Header): Change field types.
+ * src/sfnt/ttload.c (tt_face_load_generic_header): Updated.
+
+2018-10-27 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ Revert: Align FreeType with standard C memory management.
+
+2018-10-27 Werner Lemberg <wl@gnu.org>
+
+ [psaux] Fix numeric overflow.
+
+ Triggered by
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11157
+
+ * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_blend>
+ [CFF_CONFIG_OPTION_OLD_ENGINE]: Fix integer overflow.
+
+2018-10-20 Werner Lemberg <wl@gnu.org>
+
+ Avoid endless loop while tracing (#54858).
+
+ * src/type1/t1load.c (parse_buildchar): Guard tracing stuff with
+ FT_DEBUG_LEVEL_TRACE.
+
+2018-10-17 David Demelier <markand@malikania.fr>
+
+ * CMakeLists.txt: Specify `RUNTIME DESTINATION'.
+
+ This is needed for DLL builds.
+
+2018-10-07 Werner Lemberg <wl@gnu.org>
+
+ A missing Unicode cmap is not a fatal error.
+
+ This is a follow-up to the previous commit.
+
+ * src/cff/cffobjs.c (cff_face_init), src/sfnt/sfobjs.c
+ (sfnt_load_face), src/type1/t1objs.c (T1_Face_Init),
+ src/type42/t42objs.c (T42_Face_Init): Implement it.
+
+2018-10-07 Werner Lemberg <wl@gnu.org>
+
+ Fix handling of FT_CONFIG_OPTION_ADOBE_GLYPH_LIST (#54794).
+
+ * src/cff/cffcmap.c (cff_cmap_unicode_init), src/psaux/t1cmap.c
+ (t1_cmap_unicode_init), src/sfnt/ttcmap.c (tt_cmap_unicode_init):
+ Check `unicodes_init' field.
+
+2018-10-03 Werner Lemberg <wl@gnu.org>
+
+ [ftgrays] Fix typo in stand-alone mode (#54771).
+
+ * src/smooth/ftgrays.c (FT_THROW) [STANDALONE_ &&
+ FT_DEBUG_LEVEL_TRACE]: Fix call to `FT_ERR_CAT'.
+
+2018-10-02 Werner Lemberg <wl@gnu.org>
+
+ [psaux] Fix segfault.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10768
+
+ * src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
+ <cff_op_callothersubr> [CFF_CONFIG_OPTION_OLD_ENGINE]: Check
+ argument.
+
+2018-10-02 Werner Lemberg <wl@gnu.org>
+
+ [psaux] Fix numeric overflow.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10740
+
+ * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_roll>
+ [CFF_CONFIG_OPTION_OLD_ENGINE]: Use NEG_INT.
+
+2018-10-02 Werner Lemberg <wl@gnu.org>
+
+ [pshinter] Handle numeric overflow.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10550
+
+ * src/pshinter/pshglob.c (psh_blues_snap_stem): Mask numeric
+ overflow.
+
+2018-09-27 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ Align FreeType with standard C memory management.
+
+ * include/freetype/ftsystem.h: Include FT_TYPES_H.
+ (*FT_Alloc_Func, *FT_Realloc_Func): Use size_t for the size arguments.
+ * src/raster/ftmisc.h: Ditto.
+
+ * builds/amiga/src/base/ftsystem.c, builds/unix/ftsystem.c,
+ * builds/vms/ftsystem.c, src/base/ftsystem.c (ft_alloc, ft_realloc):
+ Use size_t for the size arguments.
+
+ * src/base/ftdbgmem.c (ft_mem_debug_alloc, ft_mem_debug_realloc): Use
+ FT_Offset, aka size_t, for the size arguments.
+
+2018-09-25 Werner Lemberg <wl@gnu.org>
+
+ Fix handling of `FT_Bool'.
+
+ Before this commit we had code like
+
+ (FT_Bool)( globals->glyph_styles[gindex] & 0x8000)
+
+ Since `FT_Bool' is defined to be an `unsigned char', the code
+ evaluated to something like
+
+ (unsigned char)( 0x8532 & 0x8000)
+
+ which in turn expanded to
+
+ (unsigned char)( 0x8000)
+
+ and finally yielded 0x00 – i.e., false – not as expected.
+
+ Problem reported and analyzed by Tony Smith <tony.smith@macro4.com>.
+
+ * include/freetype/fttypes.h (FT_BOOL): Add a comparison against
+ zero so that we always have a Boolean expression.
+
+ */*: Replace castings to `FT_Bool' with calls to `FT_BOOL' where
+ possible.
+
+2018-09-23 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [bdf] Speed up charmap access.
+
+ This makes FT_Get_Char_Index and FT_Get_Next_Char 4-5 times faster.
+
+ * src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Help binary search
+ with continuous prediction.
+
+2018-09-22 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftobjs.c (ft_glyphslot_preset_bimap): Another tweak.
+
+ This one should be clearer. When the rounded monochrome bbox collapses
+ we add a pixel that covers most if not all original cbox.
+
+2018-09-21 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftobjs.c (ft_glyphslot_preset_bimap): Further tweak.
+
+2018-09-21 Ben Wagner <bungeman@google.com>
+
+ Improve auto-hinter handling of bitmap fonts (#54681).
+
+ For bitmap fonts, `FT_Load_Glyph' should either return an error or
+ not set the format to `FT_GLYPH_FORMAT_OUTLINE'. However, in this
+ case `FT_Load_Glyph' calls into the auto-hinter which calls back
+ into `FT_Load_Glyph' with `FT_LOAD_NO_SCALE' in the flags, which
+ marks the glyph as `FT_GLYPH_FORMAT_OUTLINE' with an empty path
+ (even though it doesn't have any path). It appears that the
+ auto-hinter should not be called when the face doesn't have
+ outlines. The current test for using the auto-hinter in
+ `FT_Load_Glyph' checks whether the driver supports scalable
+ outlines, but not if the face supports scalable outlines.
+
+ * src/base/ftobjs.c (FT_Load_Glyph): Directly check whether we have
+ scalable outlines.
+
+2018-09-21 Werner Lemberg <wl@gnu.org>
+
+ [raster] Fix disappearing vertical lines (#54589).
+
+ * src/raster/ftraster.c (Vertical_Sweep_Span): Handle special case
+ where both left and right outline exactly pass pixel centers.
+
+2018-09-20 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftobjs.c (ft_glyphslot_preset_bimap): Tiny rounding tweak.
+
+ This adds pixels in case a contour goes through the center
+ and they need to be turned on in the b/w rasterizer.
+
+2018-09-20 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [pcf] Replace charmap implementation.
+
+ PCF comes with charmap lookup table, aka PCF encodings. Using it
+ directly makes FT_Get_Char_Index and FT_Get_Next_Char 4-5 times
+ faster than the original BDF-like binary searches.
+
+ * src/pcf/pcf.h (PCF_EncodingRec): Removed.
+ (PCF_FaceRec): Remove `nencodings' and `encodings'.
+ * src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Replaced.
+ * src/pcf/pcfread.c (pcf_get_encodings): Store data differently.
+
+2018-09-20 Werner Lemberg <wl@gnu.org>
+
+ [base] Remove unused function `FT_GlyphLoader_CopyPoints'.
+
+ * include/freetype/internal/ftgloadr.h, src/base/ftgloadr.c
+ (FT_GlyphLoader_CopyPoints): Do it.
+
+2018-09-19 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [pcf] Prepare to replace charmap implementation.
+
+ * src/pcf/pcf.h (PCF_FaceRec): Updated to include...
+ (PCF_EncRec): ... this new structure to store charmap geometry.
+
+ * src/pcf/pcfread.c (pcf_get_encodings): Store charmap geometry.
+
+2018-09-18 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ Remove unused fields.
+
+ * src/pcf.h (PCF_FaceRec): Remove `charmap' and `charmap_handle'.
+ * src/bdfdrvr.h (BDF_FaceRec): Ditto.
+ * src/winfonts/winfnt.h (FNT_FaceRec): Ditto.
+
+2018-09-17 Werner Lemberg <wl@gnu.org>
+
+ [pshinter] Handle numeric overflow.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10396
+
+ * src/pshinter/pshglob.c: Include FT_INTERNAL_CALC_H.
+ (psh_blues_snap_stem): Mask numeric overflow.
+
+2018-09-13 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Some fixes for VF checks.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10317
+
+ * src/truetype/ttgxvar.c (ft_var_load_gvar): Properly exit memory
+ frame if we have invalid glyph variation data offsets.
+ (tt_face_vary_cvt): Protect against missing `tuplecoords' array.
+ Fix typo.
+
+2018-09-13 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Fix last commit.
+
+2018-09-13 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Check `result'.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10316
+
+2018-09-12 John Tytgat <John.Tytgat@esko.com>
+
+ [sfnt] Better PS name handling (#54629).
+
+ * src/sfnt/sfdriver (IS_WIN, IS_APPLE): Omit language ID checks.
+ (get_win_string, get_apple_string): Return NULL when the PostScript
+ font name characters is not according to specification.
+ (get_win_string): Make trace output work if the high byte if
+ non-zero.
+ (sfnt_get_var_ps_name, sfnt_get_ps_name): Previously we preferred
+ Win PS name (when there is also an Apple PS name); change this into
+ a fallback to Apple PS name in case the Win PS name is invalid.
+
+2018-09-12 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Improve VF check.
+
+ Triggered by
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10255
+
+ * src/truetype/ttgxvar.c (ft_var_load_gvar): Use better limit check
+ for `tupleCount'.
+
+2018-09-12 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttgxvar.c (ft_var_load_gvar): Check `glyphoffsets'.
+
+2018-09-10 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ * src/pshinter/pshrec.c (t2_hints_stems): Mask numeric overflow.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10215
+
+2018-09-09 Ben Wagner <bungeman@google.com>
+
+ * builds/freetype.mk (refdoc-venv): Ensure python version (#54631).
+
+2018-09-07 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Fix assertion failure.
+
+ Triggered by
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10212
+
+ * src/truetype/ttgload.c (load_truetype_glyph): Reintroduce
+ `opened_frame' (removed in a change from 2018-08-26) to handle
+ deallocation of the second frame.
+
+2018-09-05 Werner Lemberg <wl@gnu.org>
+
+ Synchronize `ftdebug.c' files.
+
+ * builds/amiga/src/base/ftdebug.c, builds/wince/ftdebug.c,
+ builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c'.
+
+2018-09-05 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ Add documentation guidelines file.
+
+ * docs/DOCGUIDE: New file.
+
+2018-09-04 Werner Lemberg <wl@gnu.org>
+
+ * devel/ftoption.h: Synchronize with master `ftoption.h'.
+
+2018-09-03 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [docwriter] Don't break code snippets accross lines.
+
+ Reported as
+
+ https://lists.nongnu.org/archive/html/freetype-devel/2018-08/msg00124.html
+
+ * docs/reference/markdown/stylesheets/extra.css (.md-typeset code):
+ Add rule `white-space'.
+
+2018-09-03 Werner Lemberg <wl@gnu.org>
+
+ */*: s/PSNames/psnames/.
+
+ Only tracing messages are affected.
+
+2018-09-03 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix heap buffer overflow in CPAL handling.
+
+ * src/sfnt/ttcpal.c (tt_face_palette_set): Fix boundary test.
+ (tt_face_load_cpal): Updated.
+
+2018-09-01 Werner Lemberg <wl@gnu.org>
+
+ Remove `FT_Outline_{New,Done}_Internal'.
+
+ These public API functions(!) were always undocumented and have
+ escaped all clean-up efforts until now.
+
+ * include/freetype/ftoutln.h (FT_Outline_New_Internal,
+ FT_Outline_Done_Internal): Removed.
+
+ * src/base/ftoutln.h (FT_Outline_New_Internal,
+ FT_Outline_Done_Internal): Merge into...
+ (FT_Outline_New, FT_Outline_Done): ... these functions.
+
+ * docs/README: Updated.
+
+2018-08-30 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Check glyph format.
+
+2018-08-31 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ [errors] Refine the macro logic surrounding `FT_Error_String'.
+
+ * include/freetype/fterrors.h (FT_INCLUDE_ERR_PROTOS,
+ FT_ERR_PROTOS_DEFINED): Undefine `FT_INCLUDE_ERR_PROTOS' after
+ checking it and introduce a new macro that takes proper care of
+ multiple-inclusion protection.
+
+2018-08-31 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftdebug.c (FT_Throw): Restore missing `FT_UNUSED' calls.
+
+2018-08-31 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftdebug.c (FT_Throw): Reduce chattiness.
+
+2018-08-31 Werner Lemberg <wl@gnu.org>
+
+ * src/autofit/afhints.c (af_glyph_hints_reload): Add initialization.
+
+2018-08-30 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ Consolidate bitmap presetting and size assessment.
+
+ * include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap):
+ Change return type.
+ * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Return the bitmap
+ size assessment.
+
+ * src/raster/ftrend1.c (ft_raster1_render): Use it to refuse the
+ rendering of enourmous or far-fetched outlines.
+ * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
+
+2018-08-30 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Correct mono.
+
+2018-08-30 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ [errors] Introduce a macro to control `FT_Error_String'.
+
+ * devel/ftoption.h (FT_CONFIG_OPTION_ERROR_STRINGS),
+ include/freetype/config/ftoption.h (FT_CONFIG_OPTION_ERROR_STRINGS):
+ New macro.
+
+2018-08-30 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ [errors] Introduce `FT_Error_String'.
+
+ * include/freetype/fterrors.h (FT_Error_String),
+ src/base/fterrors.c (FT_Error_String): Implement `FT_Error_String'.
+
+ * src/base/ftbase.c, src/base/Jamfile (_source),
+ src/base/rules.mk (BASE_SRC): Add `fterrors.c' to the build logic.
+
+ * src/base/ftdebug.c (FT_Throw): Use `FT_Error_String'.
+
+2018-08-30 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Trace `before' and `after' edges of strong points.
+
+ * src/autofit/afhints.h (AF_PointRec) [FT_DEBUG_AUTOFIT]: New arrays
+ `before' and `after'.
+
+ * src/autofit/afhints.c (af_get_strong_edge_index): New auxiliary
+ function.
+ (af_glyph_hints_dump_points): Trace `before' and `after' edges.
+ (af_glyph_hints_align_strong_points) [FT_DEBUG_AUTOFIT]: Set
+ `before' and `after' information.
+
+2018-08-30 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Overflow-resistant bitmap presetting.
+
+ * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Implement it.
+
+2018-08-29 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ Fix numeric overflows.
+
+ * src/pshint/pshalgo.c (psh_hint_align, psh_hint_align_light,
+ psh_hint_table_find_strong_points): Fix numeric overflows.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10083
+
+2018-08-29 Werner Lemberg <wl@gnu.org>
+
+ [cff] Fix handling of `roll' op in old engine.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10080
+
+ * src/psaux/cffdecode.c (cff_decoder_parse_charstrings) <cff_op_roll>
+ [CFF_CONFIG_OPTION_OLD_ENGINE]: Use modulo for loop count, as
+ documented in the specification.
+
+2018-08-26 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttobjs.c (tt_size_read_bytecode): Trace CVT values.
+
+2018-08-26 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ * configure: Copy assets required by docwriter.
+
+ Copy directory `docs/reference/markdown' when FreeType is compiled in a
+ different directory.
+
+ Fixes `make refdoc' if builddir != srcdir.
+
+ Reported as
+
+ https://lists.nongnu.org/archive/html/freetype-devel/2018-08/msg00083.html
+
+2018-08-26 Werner Lemberg <wl@gnu.org>
+
+ * src/pshint/pshalgo.c (psh_hint_overlap): Fix numeric overflow.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10057
+
+2018-08-26 Werner Lemberg <wl@gnu.org>
+
+ Minor tracing adjustments.
+
+ * src/base/ftstream.c (FT_Stream_EnterFrame, FT_Stream_ExitFrame):
+ Trace.
+
+ * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Remove tracing.
+
+2018-08-26 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Avoid nested frames.
+
+ Triggered by
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10054
+
+ * src/truetype/ttgload.c (load_truetype_glyph): Don't use variable
+ `opened_frame' to trace whether a frame must be closed at the end of
+ function: This fails because `TT_Vary_Apply_Glyph_Deltas' (which
+ gets called for space glyphs) uses a frame by itself. Instead,
+ close the frame after loading the header, then use another frame for
+ the remaining part of the glyph later on.
+
+ Also avoid calling `tt_get_metrics' twice under some circumstances.
+
+2018-08-26 Werner Lemberg <wl@gnu.org>
+
+ Various minor clean-ups.
+
+ * src/base/ftapi.c: Remove. Unused.
+ * src/base/Jamfile (_sources): Updated.
+
+ * src/base/ftstream.c (FT_Stream_ReleaseFrame): Remove redundant
+ code.
+
+2018-08-25 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ Convert documentation markup to Markdown.
+
+ It is the result of a GSoC 2018 project; this separate ChangeLog
+ commit covers the last four commits
+
+ ae5d1a4cec37557f31aec270332cfe886a62f9a0
+ 53c69ce04faed3dcc68ca0f54cb8d703d8babf69
+ 195728d5ba38f34fb2c2c20807c01656f2f59b66
+ c962db28ea59225f0105c03d907d4a9b71765687
+
+ * docs/reference/markdown/images/favico.ico,
+ docs/reference/markdown/javascripts/extra.js,
+ docs/reference/markdown/stylesheets/extra.css: New files.
+
+ * docs/reference/.gitignore, docs/reference/README: Updated.
+
+ * src/tools/docmaker/*: Removed. It has been replaced with
+ `docwriter', a python package available at
+
+ https://pypi.org/project/docwriter/
+
+ * Jamfile: Updated.
+ * builds/ansi/ansi-def.mk, builds/beos/beos-def.mk,
+ builds/dos/dos-def.mk, builds/os2/os2-def.mk (BIN),
+ builds/unix/unixddef.mk, builds/windows/win32-def.mk: New variable.
+
+ * builds/unix/configure.raw: Check for `python' and `pip'.
+ If not present, warn that `make refdoc' will fail.
+ * builds/unix/unix-def.in (PYTHON, PIP, BIN): New variables.
+
+ * builds/freetype.mk (PYTHON, PIP, VENV_NAME, VENV_DIR, ENV_PYTHON,
+ ENV_PIP): New variables.
+ (refdoc): Updated.
+ (refdoc-venv): New target.
+ (.PHONY): Updated.
+
+2018-08-23 Werner Lemberg <wl@gnu.org>
+
+ Add macros for handling over-/underflowing `FT_Int64' values.
+
+ * include/freetype/internal/ftcalc.h (ADD_INT64, SUB_INT64,
+ MUL_INT64, DIV_INT64) [FT_LONG64]: New macros.
+
+ * src/base/ftcalc.c (ft_corner_orientation) [FT_LONG64]: Use
+ `SUB_INT64' and `MUL_INT64'.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10028
+
+2018-08-22 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Improve legibility of `glyf' parsing.
+
+ * src/truetype/ttgload.c (ON_CURVE_POINT, X_SHORT_VECTOR,
+ Y_SHORT_VECTOR, REPEAT_FLAG, X_POSITIVE, SAME_X, Y_POSITIVE, SAME_Y,
+ OVERLAP_SIMPLE): New macros.
+ (TT_Load_Simple_Glyph): Use new macros to make code more readable.
+ Remove useless adjustment of `outline->tags' elements.
+
+2018-08-21 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/ttcpal.c (tt_face_load_cpal): Add missing safety check.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9981
+
+2018-08-18 Werner Lemberg <wl@gnu.org>
+
+ [psaux] Avoid slow PS font parsing in case of error.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9955
+
+ * src/psaux/psobjs.c (ps_parser_to_bytes): Set `parser->cursor' even
+ in case of error to avoid potential re-scanning.
+
+2018-08-18 Werner Lemberg <wl@gnu.org>
+
+ [cff] Fix heap buffer overflow in old engine.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9967
+
+ * src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
+ <cff_op_blend> [CFF_CONFIG_OPTION_OLD_ENGINE]: `num_designs' must be
+ non-zero.
+
+2018-08-16 Young Xiao <yangx92@hotmail.com>
+
+ * builds/mac/ftmac.c (parse_fond): Fix buffer overrun.
+
+ Reported as bug #54515, duplicate of #43540.
+
+2018-08-16 Werner Lemberg <wl@gnu.org>
+
+ * builds/*/ftsystem.c (FT_COMPONENT): Updated also.
+
+2018-08-15 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [bdf] Don't track duplicate encodings.
+
+ There is no harm except some umbiguity in broken fonts with duplicate
+ encodings.
+
+ * src/bdf/bdflib.c (_bdf_parse_glyphs): Remove duplicate tracking.
+ (_bdf_parse_t): Remove large `have' bitfield.
+
+2018-08-15 Werner Lemberg <wl@gnu.org>
+
+ Don't use `trace_' prefix for FT_COMPONENT arguments.
+
+ * include/freetype/internal/ftdebug.h (FT_TRACE_COMP,
+ FT_TRACE_COMP_): New auxiliary macros to add `trace_' prefix.
+ (FT_TRACE): Use `FT_TRACE_COMP'.
+
+ */* (FT_COMPONENT): Updated.
+
+2018-08-14 Werner Lemberg <wl@gnu.org>
+
+ Use formatting string in FT_TRACEX calls for non-simple arguments.
+
+ * src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
+ <cff_op_hstem, cff_op_hintmask, cff_op_hlineto, cff_op_vhcurveto>:
+ Do it.
+
+ * src/psaux/pshints.c (cf2_hintmap_build): Ditto.
+
+ * src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
+ cf2_cmdVSTEM, cf2_cmdHLINETO, cf2_cmdRRCURVETO, cf2_cmdCALLSUBR,
+ cf2_escHSTEM3, cf2_cmdHINTMASK, cf2_cmdHVCURVETO>: Ditto.
+
+ * src/truetype/ttinterp.c (TT_RunIns): Ditto.
+
+2018-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [bdf] Remove unused fields.
+
+ * src/bdf/bdf.h (bdf_font_t): Remove `nmod', `umod', and `modified',
+ which were set but never used.
+ * src/bdf/bdflib.c (_bdf_parse_{glyphs,properties}, bdf_load_font):
+ Updated accordingly.
+
+2018-08-14 Werner Lemberg <wl@gnu.org>
+
+ [cff] Fix another segv in old engine.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9872
+
+ * src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
+ [CFF_CONFIG_OPTION_OLD_ENGINE]: Disallow invalid T1 opcodes in
+ dictionaries.
+
+2018-08-14 Werner Lemberg <wl@gnu.org>
+
+ [cff] Fix missing error handling.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9865
+
+ * src/psaux/cffparse.c (cff_parser_run)
+ [CFF_CONFIG_OPTION_OLD_ENGINE]: Don't ignore return value of
+ `parse_charstrings_old'.
+
+2018-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [bdf] Remove unused overflow storage.
+
+ * src/bdf/bdf.h (bdf_glyphlist_t): Remove this type.
+ (bdf_font_t): Remove `overflow' field.
+ * src/bdf/bdflib.c (bdf_free_font): Remove `overflow' freeing.
+
+2018-08-14 Werner Lemberg <wl@gnu.org>
+
+ [cff] Fix segv in old engine.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9864
+
+ * src/psaux/cffdecode.c (cff_decoder_parse_charstrings)
+ <cff_op_random> [CFF_CONFIG_OPTION_OLD_ENGINE]: Use top dict's
+ `random' field directly if parsing dictionaries.
+
+2018-08-13 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [bdf] Use unsigned types.
+
+ * src/bdf/bdf.h (bdf_glyph_t): Unsign `encoding'.
+ (bdf_font_t): Unsign `default_char'.
+ * src/bdf/bdfdrivr.h (BDF_encoding_el): Unsign `enc'.
+
+ * src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_glyphs,
+ _bdf_parse_start): Updated accordingly.
+ * src/bdf/bdfdrivr.c (bdf_cmap_char_{index,next}): Ditto.
+
+2018-08-13 Werner Lemberg <wl@gnu.org>
+
+ * src/type42/t42parse.c (t42_parse_sfnts): One more format check.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9832
+
+2018-08-11 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftcalc.c (FT_Matrix_Check): Fix integer overflow.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9811
+
+2018-08-10 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Follow specs.
+
+2018-08-10 Ben Wagner <bungeman@google.com>
+
+ * src/sfnt/sfobjs.c (sfnt_done_face): Fix memory leak (#54435).
+
+2018-08-10 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftobjs.c (FT_Render_Glyph_Internal): Improve tracing.
+
+2018-08-10 Werner Lemberg <wl@gnu.org>
+
+ Fix clang warnings.
+
+ * src/base/ftdebug.c (ft_trace_level_enabled,
+ ft_trace_level_disabled): Add `static' keyword.
+
+2018-08-09 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [raster, smooth] Reinstate bitmap size limits.
+
+ This again moves outline and bitmap size checks one level up.
+
+ * src/base/ftoutln.c (FT_Outline_Render): Explicitly reject enormous
+ outlines.
+ * src/raster/ftrend1.c (ft_raster1_render): Reject enormous bitmaps
+ and, therefore, outlines that require them.
+ * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
+
+ * src/raster/ftraster.c (ft_black_render): Remove outline size checks.
+ * src/smooth/ftgrays.c (gray_raster_render): Ditto.
+ [STANDALONE]: Remove `FT_Outline_Get_CBox' copy.
+
+2018-08-08 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [pcf] Revert massive unsigning.
+
+2018-08-08 Werner Lemberg <wl@gnu.org>
+
+ [smooth] Improve tracing.
+
+ * src/smooth/ftgrays.c (gray_convert_glyph_inner): Only use tracing
+ if called the first time.
+ (gray_convert_glyph): Updated.
+
+2018-08-08 Werner Lemberg <wl@gnu.org>
+
+ Add internal functions `FT_Trace_Disable' and `FT_Trace_Enable'.
+
+ It sometimes makes sense to suppress tracing informations, for
+ example, if it outputs identical messages again and again.
+
+ * include/freetype/internal/ftdebug.h: Make `ft_trace_levels' a
+ pointer.
+ (FT_Trace_Disable, FT_Trace_Enable): New declarations.
+
+ * src/base/ftdebug.c (ft_trace_levels): Rename to...
+ (ft_trace_levels_enabled): ... this.
+ (ft_trace_levels_disabled): New array.
+ (ft_trace_levels): New pointer.
+ (FT_Trace_Disable, FT_Trace_Enable): Implement.
+ (ft_debug_init): Updated.
+
+2018-08-08 Werner Lemberg <wl@gnu.org>
+
+ Debugging improvements.
+
+ * src/base/ftobjs.c (pixel_modes): Move this array to top level
+ from ...
+ (FT_Load_Glyph): ... here.
+ (FT_Render_Glyph_Internal): Use `width' x `height' in trace message.
+ Use `pixel_modes'.
+
+2018-08-08 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [pcf] Massive unsigning (part 2).
+
+ Treat all size related properties as unsigned values.
+
+ * src/pcf/pcf.h (PCF_ParsePropertyRec): Use unsigned `name' and
+ `value'.
+ * src/pcf/pcfread.c (pcf_get_properties, pcf_load_font): Updated
+ parsing code and handling of AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE,
+ RESOLUTION_X and RESOLUTION_Y.
+
+2018-08-08 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [pcf] Massive unsigning (part 1).
+
+ Unofficial specifications hesitate to use unsigned 32-bit integers.
+ Negative values caused a lot of trouble in the past and it is safer
+ and easier to treat some properties as unsigned.
+
+ * src/pcf/pcf.h (PCF_AccelRec): Use unsigned values for `fontAscent',
+ `fontDescent', and `maxOverlap'.
+ * src/pcf/pcfread.c (pcf_load_font, pcf_get_accel): Updated.
+ * src/pcf/pcfdrivr.c (PCF_Glyph_Load, PCF_Size_Select,
+ PCF_Size_Request): Updated.
+
+2018-08-07 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/pcf/pcfread.c (pcf_get_bitmaps): Unsign `offsets' and
+ `bitmapSizes'.
+
+2018-08-06 Werner Lemberg <wl@gnu.org>
+
+ * devel/ftoption.h: Synchronize with main `ftoption.h'.
+
+2018-08-06 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [pcf] Use unsigned types.
+
+ * src/pcf/pcf.h (PCF_Encoding): Use unsigned `enc'.
+ * src/pcf/pcfdrivr.c (pcf_cmap_char_{index,next}): Ditto.
+ * src/pcf/pcfread.c (pcf_get_encodings): Use unsigned types.
+
+2018-08-05 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttgload.c (compute_glyph_metrics): Fix overflow.
+
+ Reported as
+
+ https://bugs.chromium.org/p/chromium/issues/detail?id=777151
+
+2018-08-04 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttinterp.c (opcode_name): Fix typos.
+
+2018-08-04 Werner Lemberg <wl@gnu.org>
+
+ Fix clang warnings.
+
+ * src/base/ftoutln.c (FT_Outline_EmboldenXY): Fix type of
+ `orientation'.
+
+ * src/gxvalid/gxvcommn.c (gx_lookup_value_read): Fix signature.
+
+ * src/pcf/pcfread.c (pcf_get_encodings): Fix type of some variables.
+ Add cast.
+
+ * src/type1/t1load.c (parse_weight_vector): Fix cast.
+
+2018-07-31 Werner Lemberg <wl@gnu.org>
+
+ * src/cid/cidtoken.h: Handle `XUID' keyword.
+
+2018-07-31 Werner Lemberg <wl@gnu.org>
+
+ [cid] Trace PostScript dictionaries.
+
+ * src/cid/cidload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
+ (cid_load_keyword, cid_parse_font_matrix, parse_fd_array,
+ parse_expansion_factor, cid_parse_dict): Add tracing calls.
+ (parse_font_name): New function to trace `/FontName' keywords in
+ /FDArray dict.
+ (cid_field_records): Register `parse_font_name'.
+
+2018-07-30 Werner Lemberg <wl@gnu.org>
+
+ [cff] Fix typo.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9409
+
+ * src/cff/cffdrivr.c (cff_get_cid_from_glyph_index): Fix boundary
+ check.
+
+2018-07-29 Werner Lemberg <wl@gnu.org>
+
+ * src/pcf/pcfread.c (pcf_get_encodings): Another thinko.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9608
+
+2018-07-28 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [smooth] Fix Harmony memory management.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9501
+
+ * src/smooth/ftgrays.c (ft_smooth_render_generic): Restore buffer
+ after each rendering in case of failure.
+
+2018-07-28 Werner Lemberg <wl@gnu.org>
+
+ [type1] Avoid segfaults with `FT_Get_PS_Font_Value'.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9610
+
+ * src/type1/t1driver.c (t1_ps_get_font_value): Protect against NULL.
+
+2018-07-27 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Make `TT_Set_MM_Blend' idempotent (#54388).
+
+ * src/truetype/ttgxvar.c (tt_set_mm_blend): Correctly set
+ `face->doblend' if the current call to the function yields the same
+ blend coordinates as the previous call.
+
+2018-07-27 Werner Lemberg <wl@gnu.org>
+
+ [psaux, type1]: More tracing improvements.
+
+ * src/psaux/psintrp.c (cf2_interpT2CharString): Trace skipped
+ outline commands.
+
+ * src/psaux/t1decode.c (t1_decoder_parse_charstring): Fix
+ missing case.
+ (t1_decoder_parse_metrics): Make tracing output more compact.
+
+ * src/type1/t1gload.c (T1_Compute_Max_Advance): Be less verbose.
+ (T1_Get_Advances): Add tracing.
+
+2018-07-25 Werner Lemberg <wl@gnu.org>
+
+ [psaux, type1] Trace PostScript dictionaries and other things.
+
+ The tracing of /Encoding, /Subrs, and /Charstrings is rudimentary
+ right now.
+
+ * src/psaux/psobjs.c (ps_parser_load_field,
+ ps_parser_load_field_table): Add tracing calls.
+
+ * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Make tracing
+ output more compact.
+
+ * src/type1/t1gload.c (T1_Compute_Max_Advance, T1_Get_Advances): Add
+ tracing messages.
+
+ * src/type1/t1load.c (parse_blend_axis_types,
+ parse_blend_design_positions, parse_blend_design_map,
+ parse_weight_vector, t1_load_keyword, t1_parse_font_matrix,
+ parse_encoding, parse_subrs, parse_charstrings, T1_Open_Face): Add
+ tracing calls.
+
+ * src/type1/t1objs.c (T1_Face_Init): Add tracing call.
+
+ * src/sfnt/sfobjs.c (sfnt_init_face): Make tracing message more
+ verbose.
+
+2018-07-25 Werner Lemberg <wl@gnu.org>
+
+ Fix minor ASAN run-time warnings.
+
+ * src/base/ftutil.c (ft_mem_alloc, ft_mem_realloc): Only call
+ `FT_MEM_ZERO' if we actually have a buffer.
+ (ft_mem_dup): Only call `ft_memcpy' if we actually have a buffer.
+
+2018-07-24 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [build] Fortify dllexport/dllimport attributes (#53969,#54330).
+
+ We no longer use predefined _DLL, which can be defined for static
+ builds too with /MD. We use DLL_EXPORT and DLL_IMPORT instead,
+ following libtool convention.
+
+ * CMakeLists.txt [WIN32], builds/windows/vc2010/freetype.vcxproj:
+ Define DLL_EXPORT manually.
+
+ * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in,
+ builds/vms/ftconfig.h, builds/windows/vc2010/index.html,
+ src/base/ftver.rc: /_DLL/d, s/FT2_DLLIMPORT/DLL_IMPORT/.
+
+2018-07-24 Werner Lemberg <wl@gnu.org>
+
+ [type1] Check relationship between number of axes and designs.
+
+ For Multiple Masters fonts we don't support intermediate designs;
+ this implies that
+
+ number_of_designs == 2 ^^ number_of_axes
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9557
+
+ * src/type1/t1load.c (T1_Open_Face): Ensure above constraint.
+ (T1_Get_MM_Var): Remove now redundant test.
+
+2018-07-24 Hin-Tak Leung <htl10@users.sourceforge.net>
+
+ [truetype] Match ttdebug's naming of instruction mnemonics.
+
+ * src/truetype/ttinterp.c: The form used in ttdebug,
+ "MDRP[G,B,W,?]", etc., is slightly more readable than
+ "MDRP[00,01,02,03]".
+
+2018-07-24 Werner Lemberg <wl@gnu.org>
+
+ * src/pcf/pcfread.c (pcf_get_encodings): Thinko.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9561
+
+2018-07-22 Werner Lemberg <wl@gnu.org>
+
+ * src/pcf/pcfread.c (pcf_get_encodings): Check index of defaultChar.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9527
+
+2018-07-22 Werner Lemberg <wl@gnu.org>
+
+ * src/pcf/pcfread.c (pcf_load_font): Fix number of glyphs.
+
+ This is an oversight of the module change 2018-07-21.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9524
+
+2018-07-22 Werner Lemberg <wl@gnu.org>
+
+ [cid] Sanitize `BlueShift' and `BlueFuzz'.
+
+ This code is taken from the type1 module.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9510
+
+ * src/cid/cidload.c (parse_fd_array): Set some private dict default
+ values.
+ (cid_face_open): Do the sanitizing.
+ Fix some tracing messages.
+
+2018-07-21 Werner Lemberg <wl@gnu.org>
+
+ [pcf] Fix handling of the undefined glyph.
+
+ This change makes the driver use the `defaultChar' property of PCF
+ files.
+
+ * src/pcf/pcf.h (PCF_FaceRec): Change type of `defaultChar' to
+ unsigned.
+
+ * src/pcf/pcfread.c (pcf_get_encodings): Read `defaultChar' as
+ unsigned.
+ Validate `defaultChar'.
+ If `defaultChar' doesn't point to glyph index zero, swap glyphs with
+ index zero and index `defaultChar' and adjust the encodings
+ accordingly.
+
+ * src/pcf/pcfdrivr.c (pcf_cmap_char_index, pcf_cmap_char_next,
+ PCF_Glyph_Load): Undo change from 2002-06-16 which always enforced
+ the first character in the font to be the default character.
+
+2018-07-20 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ Move the legacy fuzz target to the `freetype-testing' repository.
+
+ It can now be found at
+
+ https://github.com/freetype/freetype2-testing/tree/master/fuzzing/src/legacy
+
+ * src/tools/ftfuzzer: Remove this folder and its contents from the
+ repository.
+
+2018-07-20 Werner Lemberg <wl@gnu.org>
+
+ [cff] Avoid left-shift of negative numbers (#54322).
+
+ * src/cff/cffgload.c (cff_slot_load): Use multiplication.
+
+2018-07-17 Werner Lemberg <wl@gnu.org>
+
+ Allow FT_ENCODING_NONE for `FT_Select_Charmap'.
+
+ This is a valid encoding tag for BDF, PCF, and Windows FNT, and
+ there is no reason to disallow it for these formats.
+
+ * src/base/ftobjs.c (FT_Select_Charmap): Implement it.
+
+2018-07-17 Werner Lemberg <wl@gnu.org>
+
+ * src/pcf/pcfread.c (pcf_get_encodings): Trace `defaultChar'.
+
+2018-07-16 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ * include/freetype/internal/ftcalc.h: Add macros for handling
+ harmless over-/underflowing `FT_Int' values.
+
+ * src/sfnt/sfdriver.c (fixed2float): Fix negation of
+ `(int)(-2147483648)'.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9423
+
+2018-07-16 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttgxvar.c (tt_set_mm_blend): Fix off-by-one error.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9412
+
+2018-07-12 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftoutln.c (FT_Outline_Get_Orientation): Init `cbox'.
+
+ Taken from patch #9667, written by Steve Langasek
+ <vorlon@debian.org>.
+
+ This fixes a build failure (most probably a bug in gcc) on ppc64el
+ when building with -O3.
+
+2018-07-05 Werner Lemberg <wl@gnu.org>
+
+ Fix typo (#54238).
+
+ * src/base/ftcolor.c (FT_Palette_Set_Foreground_Color)
+ [!TT_CONFIG_OPTION_COLOR_LAYERS]: Add return value.
+
+2018-07-05 Werner Lemberg <wl@gnu.org>
+
+ Adjust table size comparisons (#54242).
+
+ * src/sfnt/ttcpal.c (tt_face_load_cpal): Implement it.
+
+2018-07-05 Werner Lemberg <wl@gnu.org>
+
+ Fix more 32bit issues (#54208).
+
+ * src/cff/cffload.c (cff_blend_build_vector): Convert assertion into
+ run-time error.
+
+ * src/truetype/ttgxvar.c (ft_var_to_normalized): Protect against
+ numeric overflow.
+
+2018-07-04 Werner Lemberg <wl@gnu.org>
+
+ Fix 32bit build warnings (#54239).
+
+ * src/base/ftbitmap.c (FT_Bitmap_Blend): Add casts to avoid signed
+ vs. unsigned comparisons.
+
+ * srb/sfnt/ttcolr.c (tt_face_get_colr_layer): Ditto.
+
+2018-07-02 Jeff Carey <Jeff.Carey@monotype.com>
+
+ * src/psnames/psmodule.c (ps_unicodes_init): Fix alloc debugging.
+
+2018-07-02 Werner Lemberg <wl@gnu.org>
+
+ s/palette_types/palette_flags/.
+
+ Suggested by Behdad.
+
+2018-07-02 Werner Lemberg <wl@gnu.org>
+
+ Make `FT_Get_Color_Glyph_Layer' return FT_Bool.
+
+ * include/freetype/freetype.h, src/base/ftobjs.c
+ (FT_Get_Color_Glyph_Layer, FT_Render_Glyph_Internal): Updated.
+
+ * include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func),
+ src/sfnt/ttcolr.h, src/sfnt/ttcolr.c (tt_face_get_colr_layer):
+ Updated.
+
+2018-07-01 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Guard SFNT function.
+
+ Reported by Behdad.
+
+2018-06-28 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/fttrigon.c (FT_Tan): Improve accuracy.
+ (FT_Vector_Rotate): Simplify.
+
+2018-06-28 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftobjs.c (FT_Set_Charmap): Robustify.
+
+2018-06-25 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Fix memory leak.
+
+ * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Add initializers.
+ Fix typo in `goto' destination.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9071
+
+2018-06-25 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttgxvar.c (tt_face_vary_cvt): Add initializers.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9070
+
+2018-06-24 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Increase precision while applying VF deltas.
+
+ It turned out that we incorrectly round CVT and glyph point deltas
+ before accumulation, leading to severe positioning errors if there
+ are many delta values to sum up.
+
+ Problem reported by Akiem Helmling <akiem@underware.nl> and analyzed
+ by Behdad.
+
+ * src/truetype/ttgxvar.c (ft_var_readpackeddelta): Return deltas in
+ 16.16 format.
+ (tt_face_var_cvt): Collect deltas in `cvt_deltas', which is a 16.16
+ format array, and add the accumulated values to the CVT at the end
+ of the function.
+ (TT_Vary_Apply_Glyph_Deltas): Store data in `points_org' and
+ `points_out' in 16.16 format.
+ Collect deltas in `point_deltas_x' and `point_deltas_y', which are
+ 16.16 format arrays, and add the accumulated values to the glyph
+ coordinates at the end of the function.
+
+2018-06-24 Werner Lemberg <wl@gnu.org>
+
+ New base function `FT_Matrix_Check' (#54019).
+
+ * src/base/ftcalc.c (FT_Matrix_Check): New base function to properly
+ reject degenerate font matrices.
+
+ * include/freetype/internal/ftcalc.h: Updated.
+
+ * src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c
+ (cid_parse_font_matrix), src/type1/t1load.c (t1_parse_font_matrix),
+ src/type42/t42parse.c (t42_parse_font_matrix): Use
+ `FT_Matrix_Check'.
+
+2018-06-23 Werner Lemberg <wl@gnu.org>
+
+ Fix typo.
+
+ Reported by Behdad.
+
+ * src/base/ftcolor.c (FT_Palette_Data_Get)
+ [!TT_CONFIG_OPTION_COLOR_LAYERS]: s/apalette/apalette_data/.
+
+2018-06-21 Werner Lemberg <wl@gnu.org>
+
+ s/FT_PALETTE_USABLE_WITH_/FT_PALETTE_FOR_/.
+
+ * include/freetype/ftcolor.h, include/freetype/internal/sfnt.h,
+ src/sfnt/ttcolr.c: Do it.
+
+2018-06-19 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix CPAL heap buffer overflow.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8968
+
+ * src/sfnt/ttcpal.c (tt_face_load_cpal): Guard CPAL version 1
+ offsets.
+
+2018-06-19 Werner Lemberg <wl@gnu.org>
+
+ Doh. Don't use CPAL or COLR data if tables are missing.
+
+ Reported by Alexei.
+
+ * src/sfnt/ttcolr.c (tt_face_get_colr_layer): Return immediately if
+ `colr' is NULL.
+
+ * src/sfnt/ttcpal.c (tt_face_palette_set): Return immediately, if
+ `cpal' is NULL.
+
+2018-06-17 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Introduce `FT_New_Glyph'.
+
+ This function facilitates access to full capabilities of FreeType
+ rendering engine for custom glyphs. This can be quite useful for
+ consistent rendering of mathematical and chemical formulas, e.g.
+
+ https://bugs.chromium.org/p/chromium/issues/detail?id=757078
+
+ * include/freetype/ftglyph.h, src/base/ftglyph.c (FT_New_Glyph): New
+ function.
+
+2018-06-17 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ [bdf] Fix underflow of an unsigned value.
+
+ bdflib.c:1562 could be reached with `font->glyphs_used == 0'. That
+ caused an underflow of the unsigned value which results in undefined
+ behaviour.
+
+ * src/bdf/bdflib.c (_bdf_parse_glyphs): Bail out earlier than before
+ if the `ENCODING' keyword cannot be found.
+
+2018-06-17 Werner Lemberg <wl@gnu.org>
+
+ [base] Add tracing for `FT_Bitmap_Blend'.
+
+ * include/freetype/internal/fttrace.h (trace_bitmap): New
+ enumeration.
+
+ * src/base/ftbitmap.c (FT_COMPONENT): Define.
+ (FT_Bitmap_Blend): Add `FT_TRACE5' calls.
+
+2018-06-17 Werner Lemberg <wl@gnu.org>
+
+ s/trace_bitmap/trace_checksum/.
+
+ * include/freetype/internal/fttrace.h: s/bitmap/checksum/.
+
+ * src/base/ftobjs.c (FT_COMPONENT): s/trace_bitmap/trace_checksum/.
+ Adjust code.
+
+2018-06-16 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix color glyph layer loading.
+
+ * src/sfnt/ttcolr.c (Colr): Add `table_size' field.
+ (tt_face_load_colr): Set it.
+ (tt_face_get_colr_layer): Check pointer limit for layer entries.
+
+2018-06-16 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix color palette loading.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8933
+
+ * src/sfnt/ttcpal.c (Cpal): Add `table_size' field.
+ (tt_face_load_cpal): Set it.
+ (tt_face_palette_set): Check pointer limit for color entries.
+
+2018-06-16 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftbitmap.c (FT_Bitmap_Blend): Avoid integer overflow.
+
+2018-06-16 Werner Lemberg <wl@gnu.org>
+
+ Add `FT_Bitmap_Blend' API.
+
+ Still missing: Support for negative bitmap pitch and subpixel offset
+ of source bitmap.
+
+ * include/freetype/ftbitmap.h, src/base/ftbitmap.c
+ (FT_Bitmap_Blend): New function.
+
+2018-06-14 Werner Lemberg <wl@gnu.org>
+
+ Replace `FT_Get_GlyphLayers' with `FT_Get_Color_Glyph_Layer'.
+
+ This avoids any additional allocation of COLR related structures in
+ a glyph slot.
+
+ * include/freetype/freetype.h (FT_Glyph_Layer, FT_Glyph_LayerRec,
+ FT_Get_GlyphLayers): Removed.
+
+ * include/freetype/internal/ftobjs.h (FT_Colr_InternalRec): Removed.
+ (FT_Slot_InternalRec): Remove `color_layers'.
+
+ * include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func):
+ Removed.
+ (SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Remove
+ `load_colr_layer'.
+
+ * src/base/ftobjs.c (ft_glyph_slot_done): Updated.
+ (FT_Render_Glyph_Internal): Use `FT_Get_Color_Glyph_Layer'.
+ (FT_Get_GlyphLayers): Removed.
+
+ * src/sfnt/sfdriver.c (sfnt_interface): Updated.
+
+ * src/sfnt/ttcolr.c (tt_face_load_colr_layers): Removed.
+ * src/sfnt/ttcolr.h: Updated.
+
+ * src/truetype/ttgload.c (TT_Load_Glyph): Updated.
+
+2018-06-14 Werner Lemberg <wl@gnu.org>
+
+ Provide iterative API to access `COLR' data.
+
+ This solution doesn't store any data in an `FT_GlyphSlot' object.
+
+ * include/freetype/freetype.h (FT_LayerIterator): New structure.
+ (FT_Get_Color_Glyph_Layer): New function.
+
+ * include/freetype/internal/sfnt.h (TT_Get_Colr_Layer_Func): New
+ function type.
+ (SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it.
+
+ * src/base/ftobjs.c (FT_Get_Color_Glyph_Layer): Implement it.
+
+ * src/sfnt/ttcolr.c (tt_face_get_colr_layer): New function.
+ * src/sfnt/ttcolr.h: Updated.
+
+ * src/sfnt/sfdriver.c (sfnt_interface): Updated.
+
+2018-06-14 Werner Lemberg <wl@gnu.org>
+
+ Add glyph index and glyph load flags to glyph slot.
+
+ * include/freetype/freetype.h (FT_GlyphSlotRec): Rename unused
+ `reserved' field to `glyph_index'.
+
+ * include/freetype/internal/ftobjs.h (FT_Slot_InternalRec): Add
+ `load_flags' field.
+
+ * src/base/ftobjs.c (FT_Load_Glyph): Set new fields.
+
+2018-06-14 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Move `CPAL' stuff into separate files.
+
+ * src/sfnt/sfdriver.c: Include `ttcpal.h'.
+ * src/sfnt/sfnt.c: Include `ttcpal.c'.
+
+ * src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: Move CPAL stuff to ...
+ * src/sfnt/ttcpal.c, src/sfnt/ttcpal.c: ... these new files.
+
+ * src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC):
+ Updated.
+
+ * include/freetype/internal/fttrace.h: Add support for `colr' and
+ `cpal'.
+ Sort entries.
+
+2018-06-13 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Separate `CPAL' and `COLR' table handling.
+
+ Later on we want to support the `SVG' table also, which needs `CPAL'
+ (but not `COLR').
+
+ * include/freetype/internal/sfnt.h (SFNT_Interface): Add `load_cpal'
+ and `free_cpal' fields.
+ (FT_DEFINE_SFNT_INTERFACE): Updated.
+
+ * include/freetype/internal/tttypes.h (TT_FaceRec): Replace
+ `colr_and_cpal' fields with `cpal' and `colr'.
+
+ * src/sfnt/sfdriver.c (sfnt_interface): Updated.
+
+ * src/sfnt/sfobjs.c (sfnt_load_face, sfnt_done_face): Updated.
+
+ * src/sfnt/ttcolr.c (Colr, Cpal): Add `table' field.
+ (ColrCpal): Removed.
+ (tt_face_load_colr): Split off CPAL handling into...
+ (tt_face_load_cpal): ... this new function.
+ (tt_face_free_colr): Split off CPAL handling into...
+ (tt_face_free_cpal): ... this new function.
+ (tt_face_load_colr_layers, tt_face_palette_set): Updated.
+
+ * src/sfnt/ttcolr.h: Updated.
+
+ * src/truetype/ttgload.c (TT_Load_Glyph): Updated.
+
+2018-06-12 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix `sizeof' thinko.
+
+ * src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_palette_set): Don't
+ use `sizeof' for computing array limit.
+
+2018-06-12 Werner Lemberg <wl@gnu.org>
+
+ Finish CPAL/COLR support (4/4).
+
+ * src/sfnt/ttcolr.c (tt_face_find_color): Removed.
+ (tt_face_colr_blend_layer): Use `face->palette' instead of calling
+ `tt_face_find_color'.
+ Use and set text foreground color.
+
+2018-06-12 Werner Lemberg <wl@gnu.org>
+
+ Finish CPAL/COLR support (3/4).
+
+ * src/base/ftcolor.c: Include FT_INTERNAL_SFNT_H.
+ (FT_Palette_Select, FT_Palette_Set_Foreground_Color): Implement
+ functions.
+
+2018-06-12 Werner Lemberg <wl@gnu.org>
+
+ Finish CPAL/COLR support (2/4).
+
+ * src/sfnt/ttcolr.c (tt_face_palette_set): New function.
+ (tt_face_load_colr): Allocate `face->palette' and call
+ `tt_face_palette_set'.
+ Adjust return error code in case of error.
+
+ * src/sfnt/ttcolr.h: Updated.
+
+ * include/freetype/internal/sfnt.h (TT_Set_Palette_Func): New
+ function type.
+ (SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): Add it.
+
+ * src/sfnt/sfdriver.c (sfnt_interface), src/sfnt/sfobjs.c
+ (sfnt_done_face): Updated.
+
+2018-06-12 Werner Lemberg <wl@gnu.org>
+
+ Finish CPAL/COLR support (1/4).
+
+ * include/freetype/internal/tttypes.h (TT_FaceRec): New fields
+ `palette_index', `palette', `have_foreground_color' and
+ `foreground_color'.
+
+2018-06-12 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Minor.
+
+ * src/sfnt/ttcolr.c (tt_face_load_colr_layers):
+ s/palette_index/palette_entry_index/ for consistency.
+ Adjust return error code in case of error.
+
+2018-06-11 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [raster] Clean up.
+
+ * src/raster/ftraster.c (black_TWorker, SCALED, Set_High_Precision):
+ Clean up after 5-level gray removal (8dc8635874).
+ (Vertical_Sweep_Span): Be brief.
+
+2018-06-10 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix compiler warnings.
+
+ * src/sfnt/ttcolr.c (tt_face_load_colr, tt_face_load_colr_layers,
+ tt_face_colr_blend_layer): Add `NULL' initializers.
+
+2018-06-10 Werner Lemberg <wl@gnu.org>
+
+ s/FT_Palette/FT_Palette_Data/, s/palette/palette_data/.
+
+ * include/freetype/ftcolor.h, include/freetype/internal/tttypes.h,
+ src/base/ftcolor.c, src/sfnt/sfobjs.c, src/sfnt/ttcolr.c: Updated.
+
+2018-06-10 Nikolaus Waxweiler <madigens@gmail.com>
+
+ CMakeLists: also accept IOS_PLATFORM=SIMULATOR64
+
+ This might be needed to build FreeType for the iOS simulator. See
+ https://savannah.nongnu.org/bugs/index.php?54048. Patch contributed
+ by Steve Robinson.
+
+ * CMakeLists.txt: Accept IOS_PLATFORM=SIMULATOR64
+
+2018-06-10 Werner Lemberg <wl@gnu.org>
+
+ Implement `FT_Palette_Get'.
+
+ * src/base/ftcolor.c: New file.
+
+ * src/base/Jamefile (_sources), src/base/rules.mk (BASE_SRC),
+ src/base/ftbase.c: Add `ftcolor.c'.
+
+2018-06-10 Werner Lemberg <wl@gnu.org>
+
+ * src/sfnt/ttcolr.c (tt_face_load_colr): Improve overflow checks.
+
+2018-06-09 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [raster] Deal with pitch sign earlier.
+
+ * src/raster/ftraster.c (black_TWorker): Remove unused `traceG',
+ s/bTarget/bOrigin/.
+ (Render_Glyph): Set `ras.bOrigin' at the bottom-left corner.
+ (Vertical_Sweep_Init, {Vertical,Horizontal}_Sweep_{Span,Drop}):
+ Updated accordingly.
+
+2018-06-09 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Read `CPAL' version 1 tables.
+
+ * include/freetype/internal.tttypes.h: Include FT_COLOR_H.
+ (TT_FaceRec): Add `palette' field.
+
+ * src/sfnt/ttcolr.c: Include FT_COLOR_H.
+ (Cpal): Remove all data covered by the new `palette' field in
+ `TT_FaceRec'.
+ (tt_face_load_colr): Updated.
+ Read `CPAL' version 1 data.
+ (tt_face_load_colr_layers, tt_face_find_color): Updated.
+
+ * src/sfnt/sfobjs.c (sfnt_done_face): Free glyph color palette data.
+
+2018-06-07 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] API for Harmony LCD rendering.
+
+ This introduces `FT_Library_SetLcdGeometry' for setting up arbitrary
+ LCD subpixel geometry including non-striped patterns.
+
+ * src/base/ftlcdfil.c (FT_Library_SetLcdGeometry): New function.
+ * include/freetype/ftlcdfil.h: Document it.
+ * include/freetype/freetype.h: Minor.
+ * include/freetype/ftchapters.h: Minor.
+
+2018-06-06 Werner Lemberg <wl@gnu.org>
+
+ ftcolor.h: Redesign API.
+
+ While going to implement it I noticed that I need access to most of
+ the `CPAL' elements; I thus plan to add a `cpal' field to
+ `TT_FaceRec', which makes most of the previously suggested API
+ functions obsolete because the fields will be directly accessible.
+
+2018-06-06 Parth Wazurkar <parthwazurkar@gmail.com>
+
+ [bdf, pcf] Remove deprecated FT_FACE_FLAG_FAST_GLYPHS flag.
+
+ * src/bdf/bdfdrivr.c (BDF_Face_Init): Remove deprecated
+ FT_FACE_FLAG_FAST_GLYPHS flag.
+
+ * src/pcf/pcfread.c (pcf_load_font): Remove deprecated
+ FT_FACE_FLAG_FAST_GLYPHS flag.
+
+2018-06-06 Werner Lemberg <wl@gnu.org>
+
+ [smooth, raster] Limit bitmap size (#54019).
+
+ * src/raster/ftraster.c [STANDALONE] (FT_Outline_Get_CBox): Add
+ function.
+ [!STANDALONE]: Include FT_OUTLINE_H.
+ (ft_black_render): Compute CBox and reject glyphs larger than
+ 0xFFFF x 0xFFFF.
+
+ * src/smooth/ftgrays.c (gray_raster_render): Reject glyphs larger
+ than 0xFFFF x 0xFFFF.
+
+2018-06-03 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ * src/smooth/ftgrays.c (gray_convert_glyph): Remove unused variables.
+
+2018-06-03 Werner Lemberg <wl@gnu.org>
+
+ * src/tools/glnames.py (main): Emit header in `light' comment style.
+
+2018-06-02 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [smooth] Attempt to mitigate bug #54019.
+
+ The robust rendering of estra large glyphs came with unbearable cost.
+ The old way of bisecting should fail but fail faster.
+
+ * src/smooth/ftgrays.c (gray_convert_glyph): Switch back to bisecting
+ in y-direction.
+
+2018-06-02 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttinterp.c (Ins_MIRP): Use SUB_LONG; avoid FT_ABS.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8706
+
+2018-06-02 Werner Lemberg <wl@gnu.org>
+
+ * src/autofit/afwarp.h: Use AF_CONFIG_OPTION_USE_WARPER (#54033).
+
+2018-05-31 Werner Lemberg <wl@gnu.org>
+
+ * src/raster/ftraster.c (black_TWorker_): Remove `gTarget' field.
+
+ This is no longer used.
+
+2018-05-31 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Get colors from `CPAL' table in right order (#54015).
+
+ * src/sfnt/ttcolr.c (tt_face_find_color): Fix it.
+
+2018-05-30 Werner Lemberg <wl@gnu.org>
+
+ ftcolor.h: Improve API design, fix typos (#54011, #54014).
+
+ * include/freetype/ftcolor.h (FT_Palette_Get_Names): Replace with...
+ (FT_Palette_Get_Name_IDs): ... this function.
+ (FT_Palette_Get_Entry_Names): Replace with...
+ (FT_Palette_Get_Entry_Name_IDs): ... this function
+ s/FT_Palette_Set_Foreground_COlor/FT_Palette_Set_Foreground_Color/.
+
+2018-05-30 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ Beautify a3cfed5e87232c933bdc64f43e8ebebcfd18b41b.
+
+ * src/autofit/afloader.c (af_loader_load_glyph): Move the
+ initialisationand declaration of variables into the if-block.
+
+2018-05-30 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ Fix pointer underflow.
+
+ The declaration of `edge2' can be reached with `edge1 == NULL' and
+ `axis->edges == 0' which results in undefined behaviour.
+
+ * src/autofit/afloader.c (af_loader_load_glyph): Initialise `edge2'
+ after checking `axis->num_edges > 1'. `edge1 != NULL' can be assumed.
+
+2018-05-30 Werner Lemberg <wl@gnu.org>
+
+ Various minor color fixes.
+
+ * include/freetype/config/ftheader.h (FT_COLOR_H): New macro.
+
+ * include/freetype/internal/ftobjs.h (FT_Colr_Internal): Change
+ type of `load_flags' to `FT_Int32'.
+
+ * include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func): Change
+ type of `idx' to `FT_UInt'.
+ (TT_Blend_Colr_Func): Change type of `color_index' to `FT_UInt'.
+
+ * src/base/ftobjs.c (FT_Render_Glyph_Internal): Change type of
+ `load_flags' to `FT_Int32'.
+
+ * src/sfnt/ttcolr.c (find_base_glyph_record,
+ tt_face_load_colr_layers): Change type of `glyph_id' to `FT_UInt'.
+ (tt_face_find_color, tt_face_colr_blend_layer): Change type of
+ `color_index' to `FT_UInt'.
+ Fix signedness and type issues.
+
+ * src/sfnt/ttcolr.h: Updated.
+
+2018-05-25 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
+
+ [docmaker] Fix missing `Defined in (...)' under Windows/Cygwin.
+
+ This platform uses backslashes for paths, which docmaker didn't
+ understand correctly.
+
+ * src/tools/docmaker/tohtml.py (HtmlFormatter::blockEnter): Use
+ `os.path.normpath' to normalize the path for the platform being
+ used.
+
+2018-05-24 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [smooth] Formalize Harmony LCD rendering.
+
+ This generalizes magic outline shifts that make Harmony LCD
+ rendering work in terms of precise two-dimensional RGB subpixel
+ positions. These coordinates are now set in time of the `smooth'
+ module initialization and later used to shift a glyph outline for
+ rendering. FT_RENDER_MODE_LCD and FT_RENDER_MODE_LCD_V use the same
+ coordinates. The letter, however, rotates them before using.
+ The LCD bitmap padding is also calculated using these coordinates.
+
+ * include/freetype/internal/ftobjs.h (FT_LibraryRec): New array field
+ `lcd_geometry'.
+ * src/base/ftlcdfil.c (ft_lcd_padding): Reworked.
+ * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Updated accordingly.
+
+ * src/smooth/ftsmooth.c [!FT_CONFIG_OPTION_SUBPIXEL_RENDERING]
+ (ft_smooth_init): Initialize `lcd_geometry'.
+ (ft_smooth_render_generic): Formalize outline shifts.
+
+2018-05-22 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Reject elements of composites with invalid glyph indices.
+
+ Reported as
+
+ https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8413
+
+ * src/truetype/ttgload.c (TT_Load_Composite_Glyph): Implement it.
+
+2018-05-22 Werner Lemberg <wl@gnu.org>
+
+ * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Trace # of points.
+
+2018-05-20 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/ftcolor.h: New file.
+
+ This is an interface to the `CPAL' OpenType table. No
+ implementation yet.
+
+2018-05-18 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * include/freetype/internal/ftcalc.h (FT_MSB): Verified `_MSC_VER'.
+
+ Actually `_BitScanReverse' is available since VS2005.
+
+2018-05-18 Werner Lemberg <wl@gnu.org>
+
+ * include/freetype/internal/ftcalc.h (FT_MSB): Use `_MSC_VER' value.
+
+ Older VC versions don't provide `_BitScanReverse'. We test for VC
+ 2013.
+
+ Reported by John Emmas <john@creativepost.co.uk>.
+
+2018-05-17 Werner Lemberg <wl@gnu.org>
+
+ s/inline/__inline/ for MSVC.
+
+ Reported by John Emmas <john@creativepost.co.uk>.
+
+ * include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Do it.
+
+2018-05-16 Werner Lemberg <wl@gnu.org>
+
+ Add function `FT_Get_GlyphLayers' to access `COLR' table data.
+
+ * include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec): Move this
+ structure to...
+ * include/freetype/freetype.h (FT_Glyph_LayerRec): ... this
+ header file.
+ (FT_Glyph_Layer): New typedef.
+ Update code to use it where appropriate.
+
+ * src/base/ftobjs.c (FT_Get_GlyphLayers): New function.
+
+2018-05-15 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [base] Fix mono bitmap presetting (#53896).
+
+ It is rather fundamental to set monochrome bitmap based on rounded
+ CBox because the b/w rasterizer turns on pixels when their centers are
+ inside the glyph outline. The dropout control is unpredictable and can
+ distort narrow glyphs if the bitmap is too wide.
+
+ Reported by Chris Liddell.
+
+ * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): If BBox boundaries
+ are too close, adjust them before rounding.
+
+2018-05-15 Werner Lemberg <wl@gnu.org>
+
+ [psaux] Fix compiler warning (#53915).
+
+ * src/psaux/psft.c (cf2_freeT1SeacComponent): Do it.
+
+2018-05-15 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Fix memory leak in handling `COLR' data.
+
+ * src/truetype/ttgload.c (TT_Load_Glyph): Free old `layers' array
+ before reassigning allocated memory.
+ Only allocate `color_layers' if we don't have one already.
+
+2018-05-15 Werner Lemberg <wl@gnu.org>
+
+ [sfnt] If `COLR' is present, don't assume that all glyphs use it.
+
+ * src/sfnt/ttcolr.c (tt_face_load_colr_layers): Return FT_Err_Ok if
+ current glyph is not a `COLR' base glyph.
+
+ * src/truetype/ttgload.c (TT_Load_Glyph): Don't allocate
+ `color_layers' if there are no color layers.
+
+2018-05-14 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftobjs.c (FT_Load_Glyph): Fix signature of `pixel_modes'.
+
+2018-05-14 Werner Lemberg <wl@gnu.org>
+
+ Provide dummy functions if `TT_CONFIG_OPTION_SFNT_NAMES' is not set.
+
+ * src/base/ftsnames.c [!TT_CONFIG_OPTION_SFNT_NAMES]: Implement it.
+
+2018-05-13 Werner Lemberg <wl@gnu.org>
+
+ * src/base/ftobjs.c (FT_Load_Glyph): Improve tracing.
+
+2018-05-13 Shao Yu Zhang <shaozhang@fb.com>
+ Werner Lemberg <wl@gnu.org>
+
+ [sfnt] Preliminary support of coloured layer outlines (#44689).
+
+ This commit enables OpenType's COLR/CPAL table handling; a typical
+ application are color emojis that can be scaled to any size.
+
+ If the color palette does not exist or is invalid, the rendering
+ step rasterizes the outline instead. The current implementation
+ assumes that the foreground is black.
+
+ Enable this by defining option TT_CONFIG_OPTION_COLOR_LAYERS.
+
+ There are still some issues with metrics; additionally, an API to
+ fetch color layers is missing.
+
+ * devel/ftoption.h, include/freetype/config/ftoption.h
+ (TT_CONFIG_OPTION_COLOR_LAYERS): New macro.
+
+ * include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec,
+ FT_Colr_InternalRec): New structures.
+ (FT_Slot_InternalRec): Add `color_layers' field.
+
+ * include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func,
+ TT_Blend_Colr_Func): New function types.
+ (SFNT_Interface): Add `load_colr', `free_colr', `load_colr_layer',
+ and `colr_blend' fields.
+
+ * include/freetype/internal/tttypes.h (TT_FaceRec): Add
+ `colr_and_cpal' field.
+
+ * include/freetype/internal/tttags. (TTAG_COLR, TTAG_CPAL): New
+ macros.
+
+ * src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: New files.
+
+ * src/base/ftobjs.c (ft_glyphslot_done, FT_Render_Glyph_Internal):
+ Handle glyph color layers.
+
+ * src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC): Add
+ `ttcolr.c'.
+
+ * src/sfnt/sfdriver.c: Include `ttcolr.h'.
+ (PUT_COLOR_LAYERS): New macro.
+ Update call to `FT_DEFINE_SFNT_INTERFACE'.
+
+ * src/sfnt/sfnt.c: Include `ttcolr.c'.
+
+ * src/sfnt/sfobjs.c (sfnt_load_face): Load `COLR' and `CPAL' tables.
+ (sfnt_done_face): Updated.
+
+ * src/truetype/ttgload.c (TT_Load_Glyph): Handle color layers.
+
+2018-05-12 Arkady Shapkin <arkady.shapkin@gmail.com>
+
+ Use MS VC++'s _BitScanReverse to calculate MSB (patch #9636).
+
+ * include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Implement
+ it.
+
+2018-05-10 Alan Coopersmith <alan.coopersmith@oracle.com>
+
+ Fix DLL compilation on Solaris.
+
+ AC_COMPILE_IFELSE only tries to compile a `*.c' to a `*.o'. The
+ Solaris Studio 12.1 through 12.5 compilers see the
+ `-fvisibility=hidden' flag, but ignore it with a warning of:
+
+ cc: Warning: Option -fvisibility=hidden passed to ld,
+ if ld is invoked, ignored otherwise
+
+ AC_LINK_IFELSE does the compile and then tries to link the result,
+ at which point the Solaris linker will issue an error:
+
+ ld: fatal: option '-fvisibility=hidden' is incompatible with
+ building a dynamic executable
+
+ If we don't use AC_LINK_IFELSE to catch the error, then configure
+ will fail further tests which attempt to link, such as those testing
+ dependencies like `libbz2'.
+
+ Also, don't try adding `-fvisibility' if we have already added
+ `-xldscope', just use one of them, since Sun Studio 12 and earlier
+ compilers only issue a warning, and don't try passing through to the
+ linker to generate an error, so AC_LINK_IFELSE doesn't catch them.
+
+ Tested on Solaris 11.4 beta with compiler versions:
+
+ Sun Studio 8 (Sun C 5.5)
+ Sun Studio 10 (Sun C 5.7)
+ Sun Studio 11 (Sun C 5.8)
+ Sun Studio 12 (Sun C 5.9)
+ Sun Studio 12.1 (Sun C 5.10)
+ Oracle Solaris Studio 12.2 (Sun C 5.11)
+ Oracle Solaris Studio 12.3 (Sun C 5.12)
+ Oracle Solaris Studio 12.4 (Sun C 5.13)
+ Oracle Developer Studio 12.5 (Sun C 5.14)
+ Oracle Developer Studio 12.6 (Sun C 5.15)
+ gcc 5.5.0
+ gcc 7.3.0
+
+ and verified the libfreetype.so.6 generated by each of those
+ compilers exported the same set of symbols.
+
+ * builds/unix/configure.raw: Implement it.
+
+2018-05-08 Werner Lemberg <wl@gnu.org>
+
+ [autofit] Avoid potential SEGV if running out of memory.
+
+ Problem reported by Shailesh Mistry <shailesh.mistry@hotmail.co.uk>.
+
+ * src/autofit/afshaper.c (af_shaper_buf_create,
+ af_shaper_buf_destroy) [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Don't
+ allocate and free a four-byte buffer. Instead, make those functions
+ no-ops; the calling functions will provide a pointer to a buffer
+ instead.
+
+ * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
+ af_cjk_metrics_init_blues, af_cjk_metrics_check_digits),
+ src/autofit/aflatin.c (af_latin_metrics_init_widths,
+ af_latin_metrics_init_blues, af_latin_metrics_check_digits)
+ [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Use pointer to local variable for
+ `shaper_buf'.
+
+2018-05-07 Nikolaus Waxweiler <madigens@gmail.com>
+
+ [cmake] Allow using project as subfolder in other project.
+
+ * CMakeLists.txt: Test for CMake build directory being different
+ from source directory. Provide other parts of the build system
+ access the full include directory.
+
+2018-05-07 Werner Lemberg <wl@gnu.org>
+
+ [build] Suppress configure's `nothing to be done' message.
+
+ This is due to calling the configure script via `make' (within the
+ top-level `configure' wrapper script). The same can happen for all
+ other secondary make targets that are used to only modify the
+ primary one, e.g., `make setup devel'.
+
+ * builds/dos/detect.mk (emx, turboc, watcom, borlandc, borlandc16),
+ builds/os2/detect (visualage, watcom, borlandc, devel),
+ builds/unix/detect.mk (devel, lcc, unix), builds/windows/detect.mk
+ (visualc, watcom, visualage, lcc, mingw32, bcc32, devel-bcc,
+ devel-gcc): Use no-op recipe.
+
+2018-05-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ Support symbol visibility features of Sun / Oracle C compilers.
+
+ Reported by Kiyoshi Kanazawa:
+ https://lists.gnu.org/archive/html/freetype-devel/2018-05/msg00008.html
+ Thanks to the suggestions by Alexei and Alan Coopersmith.
+
+ * builds/unix/configure.raw: Check if "-xldscope=hidden" is
+ accepted, and if so, it is added to CFLAGS. This is the option
+ making Sun / Oracle C compilers hide the symbols from global
+ scope.
+ * include/freetype/config/ftconfig.h: Use "__global" prefix
+ for FT_EXPORT() macro, if SunPro C is newer than Sun ONE
+ Studio 8 (2003).
+ * builds/unix/ftconfig.in: Ditto.
+ * builds/vms/ftconfig.h: Ditto.
+
+2018-05-02 Nikolaus Waxweiler <madigens@gmail.com>
+
+ Unbreak CMake Windows installation
+
+ * CMakeLists.txt: Generate ftconfig.h on non-UNIX.
+
+2018-05-02 Werner Lemberg <wl@gnu.org>
+
+ Remove FT_CONFIG_OPTION_PIC and related code.
+
+ */* [FT_CONFIG_OPTION_PIC]: Remove all code guarded by this
+ preprocessor symbol.
+
+ */*: Replace `XXX_GET' macros (which could be either a function in
+ PIC mode or an array in non-PIC mode) with `xxx' arrays.
+
+ * include/freetype/internal/ftpic.h, src/autofit/afpic.c,
+ src/autofit/afpic.h, src/base/basepic.c, src/base/basepic.h,
+ src/base/ftpic.c, src/cff/cffpic.c, src/cff/cffpic.h,
+ src/pshinter/pshpic.c, src/pshinter/pshpic.h, src/psnames/pspic.c,
+ src/psnames/pspic.h, src/raster/rastpic.c, src/raster/rastpic.h,
+ src/sfnt/sfntpic.c, src/sfnt/sfntpic.h, src/smooth/ftspic.c,
+ src/smooth/ftspic.h, src/truetype/ttpic.c, src/truetype/ttpic.h:
+ Removed.
+
2018-05-01 Werner Lemberg <wl@gnu.org>
* Version 2.9.1 released.
@@ -199,7 +2726,7 @@
The CPack definitions have been cleaned up, the `make dist' has been
removed. Source packages generated with CPack don't contain Autotools
- files and aren't used by the maintainters anyway.
+ files and aren't used by the maintainers anyway.
On Windows, src/base/ftver.rc is compiled to decorate the library with
version and copyright information.
@@ -1414,7 +3941,7 @@
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3514.
- * src/raster/ftrend1.c (ft_raster1_render): Exlicitly signed height.
+ * src/raster/ftrend1.c (ft_raster1_render): Explicitly signed height.
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Explicitly unsigned
subtraction.
@@ -2336,7 +4863,7 @@
----------------------------------------------------------------------------
-Copyright 2017-2018 by
+Copyright (C) 2017-2019 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used, modified,