4804 lines
142 KiB
Plaintext
4804 lines
142 KiB
Plaintext
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.
|
||
=========================
|
||
|
||
|
||
Tag sources with `VER-2-9-1'.
|
||
|
||
* docs/VERSION.TXT: Add entry for version 2.9.1.
|
||
* docs/CHANGES: Updated.
|
||
|
||
* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
|
||
src/base/ftver.rc, builds/windows/vc2005/index.html,
|
||
builds/windows/vc2008/freetype.vcproj,
|
||
builds/windows/vc2008/index.html,
|
||
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/2.9.1/, s/29/291/.
|
||
|
||
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
|
||
|
||
* builds/unix/configure.raw (version_info): Set to 22:1:16.
|
||
* CMakeLists.txt (VERSION_PATCH): Set to 1.
|
||
|
||
* include/freetype/ftgasp.h: Use FT_BEGIN_HEADER and FT_END_HEADER.
|
||
|
||
2018-04-26 Werner Lemberg <wl@gnu.org>
|
||
|
||
Another fix for handling invalid format 2 cmaps.
|
||
|
||
Sigh.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8003
|
||
|
||
* src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid
|
||
an endless loop.
|
||
|
||
2018-04-24 Ben Wagner <bungeman@google.com>
|
||
|
||
[base] Avoid undefined behaviour in lcd filtering code (#53727).
|
||
|
||
* src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy):
|
||
Ensure `height > 0'.
|
||
|
||
2018-04-22 Werner Lemberg <wl@gnu.org>
|
||
|
||
* src/base/ftoutln.c (FT_Outline_Decompose): Improve error tracing.
|
||
|
||
2018-04-22 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[base] Fix bitmap emboldening.
|
||
|
||
Bug introduced after release 2.8.
|
||
|
||
* src/base/ftbitmap.c (ft_bitmap_assure_buffer): We use
|
||
`FT_QALLOC_MULT', which doesn't zero out the buffer. Adjust the
|
||
bitmap copying code to take care of this fact.
|
||
|
||
2018-04-22 Werner Lemberg <wl@gnu.org>
|
||
|
||
Another fix for handling invalid format 2 cmaps.
|
||
|
||
The previous commit was incomplete.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7928
|
||
|
||
* src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid
|
||
an endless loop.
|
||
|
||
2018-04-19 Werner Lemberg <wl@gnu.org
|
||
|
||
[autofit] Add support for Georgian Mtavruli characters.
|
||
|
||
This will be part of the forthcoming Unicode 11.0.
|
||
|
||
* src/autofit/afblue.dat: Add blue zone data for Mtavruli.
|
||
* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
|
||
|
||
* src/autofit/afscript.h: Add Mtavruli standard character.
|
||
|
||
2018-04-18 Werner Lemberg <wl@gnu.org>
|
||
|
||
Fix handling of invalid format 2 cmaps.
|
||
|
||
The problem was introduced after the last release.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7828
|
||
|
||
* src/sfnt/ttcmap.c (tt_cmap2_char_next): Avoid endless loop.
|
||
|
||
2018-04-17 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Integer overflow issues.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7739
|
||
|
||
* src/truetype/ttinterp.c (Ins_CEILING): Use FT_PIX_CEIL_LONG.
|
||
|
||
2018-04-16 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Integer overflow issues.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7718
|
||
|
||
* src/truetype/ttinterp.c (Ins_MIRP): Use ADD_LONG.
|
||
|
||
2018-04-15 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[build] Use `info' function of make 3.81.
|
||
|
||
* configure, docs/INSTALL, docs/INSTALL.CROSS, docs/INSTALL.GNU,
|
||
docs/INSTALL.UNIX, docs/MAKEPP: Bump make version requirements.
|
||
|
||
* builds/detect.mk (std_setup): Replace `echo' with `info'.
|
||
(dos_setup): Removed.
|
||
* builds/unix/install.mk, builds/modules.mk, builds/dos/detect.mk,
|
||
builds/windows/detect.mk, builds/os2/detect.mk: Updated.
|
||
* builds/newline: No longer needed.
|
||
|
||
2018-04-15 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype]: Limit `SLOOP' bytecode argument to 16 bits.
|
||
|
||
This fixes
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7707
|
||
|
||
* src/truetype/ttinterp.c (Ins_SLOOP): Do it.
|
||
|
||
2018-04-14 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Integer overflow issues.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7652
|
||
|
||
* src/truetype/ttinterp.c (Ins_MDAP): Use SUB_LONG.
|
||
|
||
2018-04-14 Werner Lemberg <wl@gnu.org>
|
||
|
||
[autofit] Update to Unicode 11.0.0.
|
||
|
||
But no support new scripts (volunteers welcomed).
|
||
|
||
* src/autofit/afranges.c (af_arab_nonbase_uniranges,
|
||
af_beng_nonbase_uniranges, af_cakm_nonbase_uniranges,
|
||
af_deva_nonbase_uniranges, af_geor_uniranges,
|
||
af_gujr_nonbase_uniranges, af_mlym_nonbase_uniranges,
|
||
af_nkoo_nonbase_uniranges, af_telu_nonbase_uniranges,
|
||
af_hani_uniranges): Add new data.
|
||
|
||
2018-04-10 Nikolaus Waxweiler <madigens@gmail.com>
|
||
|
||
* CMakeLists.txt, builds/cmake/FindHarfBuzz.cmake: Extensive
|
||
modernization measures.
|
||
|
||
This brings up the minimum required CMake version to 2.8.12.
|
||
|
||
The installation paths follow the GNU defaults now, e.g. installing on a
|
||
64 bit host will place binaries into the lib64/ folder on e.g. Fedora.
|
||
|
||
Symbols are hidden by default (e.g. `-fvisibility=hidden' on GCC).
|
||
|
||
CMake will no longer look for a C++ compiler.
|
||
|
||
Library and .so version now match the Autotools build.
|
||
|
||
Comments in the build file and informational messages now use platform
|
||
agnostic example commands.
|
||
|
||
ftoption.h and ftconfig.h are written directly without a redundant `-new'
|
||
copy.
|
||
|
||
External dependencies are expressed as option()s and will turn up as such
|
||
in cmake-gui.
|
||
|
||
Internal: Properties such as dependencies and include directories are now
|
||
privately set on the freetype library instead of globally.
|
||
|
||
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 maintainers anyway.
|
||
|
||
On Windows, src/base/ftver.rc is compiled to decorate the library with
|
||
version and copyright information.
|
||
|
||
A pkg-config file is now generated and installed.
|
||
|
||
2018-04-09 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Integer overflow issues.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7453
|
||
|
||
* src/truetype/ttinterp.c (Round_Super, Round_Super_45): Use
|
||
ADD_LONG and SUB_LONG.
|
||
|
||
2018-04-06 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[windows, wince] Clean up legacy project files.
|
||
|
||
* builds/wince/vc2005-ce/freetype.vcproj,
|
||
builds/wince/vc2008-ce/freetype.vcproj,
|
||
builds/windows/vc2005/freetype.vcproj,
|
||
builds/windows/vc2008/freetype.vcproj,
|
||
builds/windows/visualce/freetype.vcproj,
|
||
builds/windows/visualce/freetype.dsp,
|
||
builds/windows/visualc/freetype.vcproj,
|
||
builds/windows/visualc/freetype.dsp: Remove per-file compile flags.
|
||
|
||
2018-04-04 Werner Lemberg <wl@gnu.org>
|
||
|
||
[cff, type1] Sanitize `BlueFuzz' and `BlueShift'.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7371
|
||
|
||
* src/cff/cffload.c (cff_load_private_dict): Sanitize
|
||
`priv->blue_shift' and `priv->blue_fuzz' to avoid overflows later
|
||
on.
|
||
|
||
* src/type1/t1load.c (T1_Open_Face): Ditto.
|
||
|
||
2018-04-04 Ben Wagner <bungeman@google.com>
|
||
|
||
* src/truetype/ttobjs.c (trick_names): Add 3 tricky fonts (#53554),
|
||
`DFHei-Md-HK-BF', `DFKaiShu-Md-HK-BF' and `DFMing-Bd-HK-BF'.
|
||
(tt_check_trickyness_sfnt_ids): Add checksums for 3 tricky fonts
|
||
in above.
|
||
|
||
2018-04-01 Werner Lemberg <wl@gnu.org>
|
||
|
||
* builds/toplevel.mk (work): Use $(SEP).
|
||
|
||
This fixes the `make refdoc' using Cygwin: $(CAT) is `type' on this
|
||
platform, and this program only understands backslashes in paths.
|
||
|
||
Reported by Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>.
|
||
|
||
2018-03-30 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Fix memory leak (only if tracing is on).
|
||
|
||
* src/truetype/ttgxvar.c (TT_Get_MM_Var) [FT_DEBUG_LEVEL_TRACE}: Fix
|
||
it.
|
||
|
||
2018-03-23 Ben Wagner <bungeman@google.com>
|
||
|
||
[sfnt] Correctly handle missing bitmaps in sbix format (#53404).
|
||
|
||
* src/sfnt/ttfsbit.c (tt_face_load_sbix_image): Fix return value.
|
||
|
||
2018-03-23 Ben Wagner <bungeman@google.com>
|
||
|
||
[truetype] Fix advance of empty glyphs in bitmap fonts (#53393).
|
||
|
||
* src/truetype/ttgload.c (TT_Load_Glyph): Apply scaling to metrics
|
||
for empty bitmaps.
|
||
|
||
2018-03-22 Werner Lemberg <wl@gnu.org>
|
||
|
||
Remove `ftlcdfil.c' and `ftfntfmt.c' from build files (#53415).
|
||
|
||
builds/amiga/makefile, builds/amiga/makefile.os4,
|
||
builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt,
|
||
builds/mac/FreeType.m68k_far.make.txt,
|
||
builds/mac/FreeType.ppc_carbon.make.txt,
|
||
builds/mac/FreeType.ppc_classic.make.txt,
|
||
builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj,
|
||
builds/wince/vc2008-ce/freetype.vcproj,
|
||
builds/windows/vc2005/freetype.vcproj,
|
||
builds/windows/vc2008/freetype.vcproj,
|
||
builds/windows/vc2010/freetype.vcxproj,
|
||
builds/windows/vc2010/freetype.vcxproj.filters,
|
||
builds/windows/visualc/freetype.dsp,
|
||
builds/windows/visualc/freetype.vcproj,
|
||
builds/windows/visualce/freetype.dsp,
|
||
builds/windows/visualce/freetype.vcproj, vms_make.com: Do it.
|
||
|
||
2018-03-13 Werner Lemberg <wl@gnu.org>
|
||
|
||
* src/sfnt/ttcmap.c (tt_cmap2_validate): Fix potential numeric
|
||
overflow.
|
||
|
||
2018-03-13 Werner Lemberg <wl@gnu.org>
|
||
|
||
Fix cmap format 2 handling (#53320).
|
||
|
||
The patch introduced for #52646 was not correct.
|
||
|
||
* src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition.
|
||
|
||
2018-03-10 Nikolaus Waxweiler <madigens@gmail.com>
|
||
|
||
* CMakeLists.txt (BASE_SRCS): Update to changes from 2018-03-05.
|
||
|
||
2018-03-09 Chun-wei Fan <fanc999@yahoo.com.tw>
|
||
|
||
* CMakeLists.txt [win32]: Allow MSVC DLL builds (#53287).
|
||
|
||
Do not limit DLL builds to MinGW, since we already have
|
||
`__declspec(dllexport)' directives in `ftconfig.h'.
|
||
Also suppress more warnings for POSIX functions.
|
||
|
||
2018-03-08 Hugh McMaster <hugh.mcmaster@outlook.com>
|
||
|
||
Make installation of `freetype-config' optional (#53093).
|
||
|
||
* builds/unix/configure.raw: Add option `--enable-freetype-config'
|
||
and set `INSTALL_FT2_CONFIG'.
|
||
* builds/unix/unix-def.in (INSTALL_FT2_CONFIG): Define.
|
||
* builds/unix/install.mk (install): Handle it.
|
||
|
||
2018-03-05 Werner Lemberg <wl@gnu.org>
|
||
|
||
Make `ftlcdfil.c' part of the `base' module.
|
||
|
||
`ftobjs.c' needs `ft_lcd_padding'.
|
||
|
||
Problem reported by duhuanpeng <548708880@qq.com>.
|
||
|
||
* modules.cfg (BASE_EXTENSIONS): Don't include `ftlcdfil.c'.
|
||
|
||
* src/base/ftbase.c: Include `ftlcdfil.c'.
|
||
* src/base/rules.mk (BASE_SRC): Add `ftlcdfil.c'.
|
||
* src/base/Jamfile (_sources): Adjusted.
|
||
|
||
* docs/INSTALL.ANY: Updated.
|
||
|
||
2018-03-05 Werner Lemberg <wl@gnu.org>
|
||
|
||
Make `ftfntfmt.c' part of the `base' module.
|
||
|
||
`ftobjs.c' needs `FT_Get_Font_Format'.
|
||
|
||
Problem reported by duhuanpeng <548708880@qq.com>.
|
||
|
||
* modules.cfg (BASE_EXTENSIONS): Don't include `ftfntfmt.c'.
|
||
|
||
* src/base/ftbase.c: Include `ftfntfmt.c'.
|
||
* src/base/rules.mk (BASE_SRC): Add `ftfntfmt.c'.
|
||
* src/base/Jamfile (_sources): Adjusted.
|
||
|
||
* docs/INSTALL.ANY: Updated.
|
||
|
||
2018-03-01 Werner Lemberg <wl@gnu.org>
|
||
|
||
* src/truetype/ttinterp.c (TT_RunIns): Fix tracing arguments.
|
||
|
||
2018-02-23 Werner Lemberg <wl@gnu.org>
|
||
|
||
* builds/unix/configure.raw: Need HarfBuzz 1.3.0 or newer.
|
||
|
||
Problem reported by Alan Coopersmith <alan.coopersmith@oracle.com>.
|
||
|
||
2018-02-17 Werner Lemberg <wl@gnu.org>
|
||
|
||
[sfnt] Prefer `CBDT'/`CBLC' over `glyf' table (#53154).
|
||
|
||
2018-02-06 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Integer overflow issues.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6027
|
||
|
||
* src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIAP, Ins_MIRP): Use
|
||
SUB_LONG; avoid FT_ABS.
|
||
|
||
2018-02-04 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[unix] Use -fvisibility=hidden.
|
||
|
||
It is now widely recommended that ELF shared libraries hide symbols
|
||
except those with explicit __attribute__((visibility("default"))).
|
||
This is supported by all major compilers and should rather be an
|
||
option in libtool.
|
||
|
||
* builds/unix/configure.raw: Add -fvisibility=hidden to CFLAGS.
|
||
* builds/unix/ftconfig.in, builds/vms/ftconfig.h,
|
||
include/freetype/config/ftconfig.h (FT_EXPORT): Use visibility
|
||
attribute.
|
||
|
||
2018-01-27 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Better protection against invalid VF data.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5739
|
||
|
||
Bug introduced in commit 08cd62deedefe217f2ea50e392923ce8b5bc7ac7.
|
||
|
||
* src/truetype/ttgxvar.c (TT_Set_Var_Design): Always initialize
|
||
`normalizedcoords'.
|
||
|
||
2018-01-27 Werner Lemberg <wl@gnu.org>
|
||
|
||
* src/truetype/ttinterp.c (Ins_GETVARIATION): Avoid NULL reference.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5736
|
||
|
||
2018-01-27 Werner Lemberg <wl@gnu.org>
|
||
|
||
* src/truetype/ttgxvar.c (tt_set_mm_blend): Minor.
|
||
|
||
2018-01-27 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Better trace VF instances.
|
||
|
||
* src/truetype/ttgxvar.c (ft_var_to_normalized): Don't emit number
|
||
of coordinates.
|
||
(TT_Get_MM_Var): Trace instance indices names.
|
||
(TT_Set_Var_Design): Updated.
|
||
|
||
2018-01-27 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Beautify tracing of VF axis records.
|
||
|
||
* src/truetype/ttgxvar.c (TT_Get_MM_Var): Show axis records in a
|
||
table-like manner.
|
||
|
||
2018-01-26 Ben Wagner <bungeman@google.com>
|
||
|
||
[truetype] Fix multiple calls of `FT_Get_MM_Var' (#52955).
|
||
|
||
* src/truetype/ttgxvar.c (TT_Get_MM_Var): Set
|
||
`face->blend->num_axis' in case we have to initialize the
|
||
`face->blend'.
|
||
|
||
2018-01-23 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[apinames] Anonymous version map for GNU linker.
|
||
|
||
* src/tools/apinames.c (PROGRAM_VERSION): Set to 0.3.
|
||
(OutputFormat): Add `OUTPUT_GNU_VERMAP'.
|
||
(names_dump): Handle it.
|
||
(usage): Updated.
|
||
(main): Handle new command line flag `-wL'.
|
||
|
||
2018-01-21 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[unix] Call libtool to clean up.
|
||
|
||
* builds/unix/install.mk (clean_project_unix, distclean_project_unix):
|
||
Use libtool.
|
||
* builds/freetype.mk: Minor.
|
||
|
||
2018-01-18 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
* src/base/ftver.rc: Fix mingw-w64 compilation.
|
||
|
||
2018-01-18 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[build] Enable VERSIONINFO resource for Cygwin/MinGW.
|
||
|
||
* builds/unix/configure.raw: Check for resource compiler.
|
||
* builds/unix/unix-cc.in: Conditionally set up resource compiler.
|
||
* builds/freetype.mk: Add conditional rule for `ftver.rc'.
|
||
* src/base/ftver.rc: Copyright notice and year update.
|
||
|
||
2018-01-18 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[build] Move VERSIONINFO resource.
|
||
|
||
* builds/windows/vc2010/freetype.vcxproj: Updated.
|
||
* builds/windows/ftver.rc: Move file from here...
|
||
* src/base/ftver.rc: ... to here.
|
||
|
||
2018-01-12 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[build] Expand dllexport/dllimport to Cygwin/MinGW.
|
||
|
||
* include/freetype/config/ftconfig.h: Respect DLL_EXPORT,
|
||
s/_MSC_VER/_WIN32/.
|
||
* builds/unix/ftconfig.in: Replicate here.
|
||
* builds/vms/ftconfig.h: Replicate here.
|
||
|
||
2018-01-12 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[build] Improve and document MSVC build.
|
||
|
||
* include/freetype/config/ftconfig.h: Guard dllexport/dllimport
|
||
attributes with _DLL and FT2_DLLIMPORT.
|
||
* builds/windows/vc2010/index.html: Update documentation.
|
||
|
||
2018-01-10 Steve Robinson <ssrobins@gmail.com>
|
||
|
||
* CMakeLists.txt [win32]: Suppress warnings for POSIX functions.
|
||
|
||
2018-01-10 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Correctly handle Flex features (#52846).
|
||
|
||
* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdVMOVETO,
|
||
cf2_cmdHMOVETO>: Do not move if doing Flex.
|
||
|
||
2018-01-09 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
* builds/windows/vc2010/freetype.sln: Synchronize with the project.
|
||
|
||
2018-01-08 Werner Lemberg <wl@gnu.org>
|
||
|
||
* Version 2.9 released.
|
||
=======================
|
||
|
||
|
||
Tag sources with `VER-2-9'.
|
||
|
||
* docs/VERSION.TXT: Add entry for version 2.9.
|
||
|
||
* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
|
||
builds/windows/vc2005/index.html,
|
||
builds/windows/vc2008/freetype.vcproj,
|
||
builds/windows/vc2008/index.html,
|
||
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/windows/ftver.rc,
|
||
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.8.1/2.9/, s/281/29/.
|
||
|
||
* include/freetype/freetype.h (FREETYPE_MINOR): Set to 9.
|
||
(FREETYPE_PATCH): Set to 0.
|
||
|
||
* builds/unix/configure.raw (version_info): Set to 22:0:16.
|
||
* CMakeLists.txt (VERSION_PATCH): Set to 0.
|
||
|
||
2018-01-07 Werner Lemberg <wl@gnu.org>
|
||
|
||
Add check for librt, needed for `ftbench' (#52824).
|
||
|
||
* builds/unix/configure.raw (LIB_CLOCK_GETTIME): Define; this will
|
||
hold `-lrt' if necessary.
|
||
|
||
* builds/unix/unix-cc.in (LIB_CLOCK_GETTIME): New variable.
|
||
|
||
2018-01-07 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Fix Type 1 glyphs with too many stem hints.
|
||
|
||
According to the CFF specification, charstrings can have up to 96 stem
|
||
hints. Due to hint replacement routines in Type 1 charstrings, some
|
||
glyphs are rejected by the Adobe engine, which implements the above
|
||
limit. This fix turns off hinting for such glyphs.
|
||
|
||
* src/psaux/pshints.c (cf2_hintmap_build): Reset the error from calling
|
||
`cf2_hintmask_setAll' on a problematic Type 1 charstring and turn off
|
||
hinting.
|
||
|
||
2018-01-06 Werner Lemberg <wl@gnu.org>
|
||
|
||
Add `FT_Done_MM_Var'.
|
||
|
||
This is necessary in case the application's memory routines differ
|
||
from FreeType. A typical example is a Python application on Windows
|
||
that calls FreeType compiled as a DLL via the `ctypes' interface.
|
||
|
||
* include/freetype/ftmm.h, src/base/ftmm.c (FT_Done_MM_Var): Declare
|
||
and define.
|
||
|
||
* docs/CHANGES: Updated.
|
||
|
||
2018-01-03 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Round offsets of glyph components only if hinting is on.
|
||
|
||
* src/truetype/ttgload.c (TT_Process_Composite_Component): Implement
|
||
it.
|
||
|
||
2018-01-03 Werner Lemberg <wl@gnu.org>
|
||
|
||
* src/truetype/ttgxvar.c (ft_var_to_design): Remove dead code.
|
||
|
||
This is a better fix than the previous commit, which is now
|
||
reverted.
|
||
|
||
2018-01-03 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
Move internal LCD-related declarations.
|
||
|
||
* include/freetype/ftlcdfil.h (ft_lcd_padding, ft_lcd_filter_fir):
|
||
Move from here...
|
||
* include/freetype/internal/ftobjs.h: ... to here.
|
||
|
||
2018-01-03 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
* include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF)
|
||
[_MSC_VER]: Limit Visual C++ attributes.
|
||
|
||
2018-01-03 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Make blend/design coordinate round-tripping work.
|
||
|
||
Behdad reported that setting blend coordinates, then getting design
|
||
coordinates did incorrectly return the default instance's
|
||
coordinates.
|
||
|
||
* src/truetype/ttgxvar.c (tt_set_mm_blend): Fix it.
|
||
|
||
2017-12-31 Werner Lemberg <wl@gnu.org>
|
||
|
||
* src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix endless loop.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4838
|
||
|
||
2017-12-31 Werner Lemberg <wl@gnu.org>
|
||
|
||
Synchronize other Windows project files.
|
||
|
||
* builds/windows/*: Add missing files.
|
||
|
||
2017-12-31 Werner Lemberg <wl@gnu.org>
|
||
|
||
Update Visual C 2010 project files.
|
||
|
||
Problem reported by Hin-Tak.
|
||
|
||
* builds/windows/vc2010/freetype.vcxproj: Add files `ftbdf.c' and
|
||
`ftcid.c'.
|
||
Sort entries.
|
||
* builds/windows/vc2010/freetype.vcxproj.filter: Ditto.
|
||
Fix members of `FT_MODULE' group.
|
||
|
||
2017-12-30 Werner Lemberg <wl@gnu.org>
|
||
|
||
* builds/vms/ftconfig.h: Synchronize with unix `ftconfig.in' file.
|
||
|
||
2017-12-28 Werner Lemberg <wl@gnu.org>
|
||
|
||
* builds/unix/ftconfig.in: Synchronize with main `ftconfig.h' file.
|
||
|
||
Reported by Nikolaus.
|
||
|
||
2017-12-27 Werner Lemberg <wl@gnu.org>
|
||
|
||
Fix compiler warnings.
|
||
|
||
* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Make `pitch' and
|
||
`new_pitch' unsigned.
|
||
|
||
* src/base/ftpsprop.c: Include FT_INTERNAL_POSTSCRIPT_PROPS_H.
|
||
|
||
2017-12-27 Werner Lemberg <wl@gnu.org>
|
||
|
||
Fixes for `make multi'.
|
||
|
||
* include/freetype/internal/ftpsprop.h: Use `FT_BASE_CALLBACK'.
|
||
(ps_property_get): Harmonize declaration with corresponding
|
||
function typedef.
|
||
|
||
* include/freety[e/internal/fttrace.h: Add `trace_psprops'.
|
||
|
||
* src/base/ftpsprop.c: Include necessary header files.
|
||
(FT_COMPONENT): Define.
|
||
(ps_property_set): Tag with `FT_BASE_CALLBACK_DEF'.
|
||
(ps_property_get): Tag with `FT_BASE_CALLBACK_DEF'.
|
||
Harmonize declaration with corresponding function typedef.
|
||
|
||
2017-12-27 Werner Lemberg <wl@gnu.org>
|
||
|
||
Provide support for intra-module callback functions.
|
||
|
||
This is needed especially for `make multi' with C++.
|
||
|
||
* include/freetype/config/ftconfig.h (FT_BASE_CALLBACK,
|
||
FT_BASE_CALLBACK_DEF): New macros.
|
||
|
||
2017-12-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
Move PostScript drivers' property handlers to `base'.
|
||
|
||
This reduces the amount of duplicated code across PostScript
|
||
drivers.
|
||
|
||
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
|
||
({cff,cid,t1}_property_{get,set}): Moved to...
|
||
* include/freetype/internal/ftpsprop.h: ...this new file.
|
||
(ps_property_{get,set}): New functions to replace moved ones.
|
||
|
||
* src/base/ftpsprop.c: New file that implements above functions.
|
||
|
||
* include/freetype/internal/internal.h
|
||
(FT_INTERNAL_POSTSCRIPT_PROPS_H): New macro.
|
||
|
||
* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c:
|
||
Updated.
|
||
|
||
* src/base/Jamfile, src/base/rules.mk (BASE_SRC), src/base/ftbase.c:
|
||
Updated.
|
||
|
||
2017-12-20 Werner Lemberg <wl@gnu.org>
|
||
|
||
Speed up FT_Set_Var_{Design,Blend}_Coordinates if curr == new.
|
||
|
||
We exit early if the current design or blend coordinates are
|
||
identical to the new ones.
|
||
|
||
* src/truetype/ttgxvar.c (tt_set_mm_blend, TT_Set_Var_Design):
|
||
Implement it, returning internal error code -1 if there will be no
|
||
variation change.
|
||
|
||
* src/type1/t1load.c (t1_set_mm_blend): Ditto.
|
||
|
||
* src/base/ftmm.c (FT_Set_Var_Design_Coordinates,
|
||
FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): Updated.
|
||
|
||
2017-12-18 Werner Lemberg <wl@gnu.org>
|
||
|
||
[sfnt] Fix charmap type 2 iterator (#52646).
|
||
|
||
The subsetted demo font of the report that exhibits the bug has a
|
||
very unusual type 2 cmap for Unicode(!): It contains only two
|
||
sub-headers, one for one-byte characters (covering the range 0x20 to
|
||
0xFA), and a second one for higher byte 0x01 (just for character
|
||
code U+0131).
|
||
|
||
Before this commit, the iterator wasn't able to correctly handle a
|
||
sub-header for higher byte 0x01.
|
||
|
||
* src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix character increment
|
||
for outer loop.
|
||
|
||
2017-12-18 Matthias Clasen <matthias.clasen@gmail.com>
|
||
|
||
[truetype] Fix clamping, minor tracing code beautification.
|
||
|
||
* src/truetype/ttgxvar.c (ft_var_to_normalized): Trace number of
|
||
design coordinates.
|
||
Use clamped value.
|
||
|
||
2017-12-18 Werner Lemberg <wl@gnu.org>
|
||
|
||
* src/*/*: Only use `ft_' and `FT_' variants of stdc library stuff.
|
||
|
||
2017-12-18 Werner Lemberg <wl@gnu.org>
|
||
|
||
* src/truetype/ttgxvar.c (tt_face_vary_cvt): Add size guard (#52688).
|
||
|
||
2017-12-18 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Fix previous commit.
|
||
|
||
* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Correctly handle
|
||
unhinted phantom points, which must be properly scaled.
|
||
|
||
2017-12-18 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Don't apply HVAR and VVAR deltas twice (#52683).
|
||
|
||
* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Always adjust
|
||
`pp1' to `pp4', except if we have an HVAR and/or VVAR table.
|
||
|
||
* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Handle
|
||
alternative code branch identically w.r.t. presence of an HVAR
|
||
and/or VVAR table.
|
||
|
||
2017-12-17 Jonathan Kew <jfkthame@gmail.com>
|
||
|
||
[truetype] Correctly handle variation font phantom points (#52683).
|
||
|
||
* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix phantom
|
||
point indices.
|
||
|
||
2017-12-17 Jonathan Kew <jfkthame@gmail.com>
|
||
|
||
Fix incorrect advance width scaling (#52683).
|
||
|
||
* src/base/ftadvance.c (FT_Get_Advances): Always respect the
|
||
FT_LOAD_NO_SCALE flag if present.
|
||
|
||
2017-12-16 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
* builds/windows/vc2010/freetype.vcxproj: AfterBuild copy.
|
||
* objs/.gitignore: Ignore almost everything.
|
||
|
||
2017-12-11 Werner Lemberg <wl@gnu.org>
|
||
|
||
Fix compiler warning (#52640).
|
||
|
||
* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Remove unused
|
||
variable.
|
||
|
||
2017-12-08 Azzuro <azzuro@team-mediaportal.com>
|
||
|
||
* builds/windows/vc2010/freetype.vcxproj: Adjust output directory.
|
||
|
||
This allows builds with different configurations in parallel.
|
||
|
||
2017-12-08 Werner Lemberg <wl@gnu.org>
|
||
|
||
Fix `make setup dos', second try (#52622).
|
||
|
||
* builds/detect.mk (dos_setup): Don't use literal `>' character at
|
||
all. Mixing the different escaping rules from make, dos, and
|
||
windows is too fragile.
|
||
|
||
2017-12-08 Werner Lemberg <wl@gnu.org>
|
||
|
||
[docmaker] Fix code section parsing.
|
||
|
||
Stuff like
|
||
|
||
{
|
||
<bla>
|
||
}
|
||
|
||
confused the parser, which incorrectly treated `<bla>' as a markup
|
||
tag.
|
||
|
||
* src/tools/docmaker/content.py (ContentProcessor::process_content):
|
||
Apply `re_markup_tags' only outside of code sections.
|
||
|
||
2017-12-08 Werner Lemberg <wl@gnu.org>
|
||
|
||
New `ftdriver.h' file, covering all driver modules.
|
||
|
||
This reduces redundancy and increases synergy; it also reduces the
|
||
number of header files.
|
||
|
||
* include/freetype/config/ftheader.h (FT_DRIVER_H): New macro.
|
||
(FT_AUTOHINTER_H, FT_CFF_DRIVER_H, FT_TRUETYPE_DRIVER_H,
|
||
FT_PCF_DRIVER_H, FT_TYPE1_DRIVER_H): Make them aliases to
|
||
FT_DRIVER_H.
|
||
|
||
* include/freetype/ftautoh.h, include/freetype/ftcffdrv.h,
|
||
include/freetype/ftpcfdrv.h, include/freetype/ftt1drv.h,
|
||
include/freetype/ftttdrv.h: Replaced with...
|
||
* include/freetype/ftdriver.h: ...this new file.
|
||
(FT_CFF_HINTING_ADOBE, FT_T1_HINTING_ADOBE): Renamed to...
|
||
(FT_HINTING_ADOBE): ... this new macro.
|
||
(FT_CFF_HINTING_FREETYPE, FT_T1_HINTING_FREETYPE): Renamed to...
|
||
(FT_HINTING_FREETYPE): ... this new macro.
|
||
|
||
* src/*/*: Updated accordingly.
|
||
|
||
2017-12-08 Werner Lemberg <wl@gnu.org>
|
||
|
||
Move `ftdriver.h' to `ftdrv.h'.
|
||
|
||
* include/freetype/internal/ftdriver.h: Renamed to...
|
||
* include/freetype/internal/ftdrv.h: ... this name.
|
||
|
||
* include/freetype/internal/internal.h (FT_INTERNAL_DRIVER_H):
|
||
Updated.
|
||
|
||
2017-12-08 Werner Lemberg <wl@gnu.org>
|
||
|
||
Fix access to uninitalized memory (#52613).
|
||
|
||
Also reported as
|
||
|
||
https://bugs.chromium.org/p/chromium/issues/detail?id=791317
|
||
|
||
* src/base/ftbitmap.c (ft_bitmap_assure_buffer): If increasing the
|
||
bitmap size needs a larger bitmap buffer, assure that the new memory
|
||
areas are initialized also.
|
||
|
||
2017-12-08 Werner Lemberg <wl@gnu.org>
|
||
|
||
Fix `make setup dos' (#52622).
|
||
|
||
* builds/detect.mk (dos_setup): Properly escape literal `>'
|
||
character.
|
||
|
||
2017-12-07 Werner Lemberg <wl@gnu.org>
|
||
|
||
Fix C++ compilation.
|
||
|
||
* src/psaux/psauxmod.h: Use FT_CALLBACK_TABLE macro where necessary.
|
||
|
||
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix warning.
|
||
|
||
2017-12-07 Werner Lemberg <wl@gnu.org>
|
||
|
||
Fix `make multi'.
|
||
|
||
* include/freetype/internal/fttrace.h: Remove unused tracing macros.
|
||
s/pshalgo2/pshalgo/.
|
||
Add `trace_cffdecode'.
|
||
* src/pshinter/pshalgo.c (FT_COMPONENT): Updated.
|
||
|
||
* src/cff/cffload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
|
||
* src/cff/cffobjs.c: Include FT_SERVICE_METRICS_VARIATIONS_H and
|
||
FT_SERVICE_CFF_TABLE_LOAD_H.
|
||
|
||
* src/cid/cidriver.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
|
||
|
||
* src/psaux/cffdecode.c: Include FT_FREETYPE_H and
|
||
FT_INTERNAL_DEBUG_H.
|
||
(FT_COMPONENT): Define.
|
||
* src/psaux/cffdecode.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
|
||
* src/psaux/psauxmod.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
|
||
Declare `cff_builder_funcs' and `ps_builder_funcs'.
|
||
* src/psaux/psft.c: Include `psobjs.h' and `cffdecode.h'.
|
||
* src/psaux/psobjs.c : Include `psauxmod.h'.
|
||
|
||
2017-12-07 Werner Lemberg <wl@gnu.org>
|
||
|
||
* include/freetype/config/ftheader.h: Some clean-up.
|
||
|
||
This commit removes documentation of deprecated macros and does some
|
||
minor streamlining.
|
||
|
||
2017-12-06 Werner Lemberg <wl@gnu.org>
|
||
|
||
* builds/symbian/bld.inf: Updated.
|
||
|
||
2017-12-06 Werner Lemberg <wl@gnu.org>
|
||
|
||
New header file `ftparams.h' that collects all parameter tags.
|
||
|
||
* include/freetype/config/ftheader.h (FT_PARAMETER_TAGS_H): New
|
||
macro.
|
||
(FT_TRUETYPE_UNPATENTED_H, FT_UNPATENTED_HINTING_H): Define it to
|
||
`ftparams.h'.
|
||
|
||
* include/freetype/ftautoh.h, include/freetype/ftcffdrv.h,
|
||
include/freetype/ftincrem.h, include/freetype/ftlcdfil.h,
|
||
include/freetype/ftsnames.h, include/freetype/ftt1drv.h: Include
|
||
FT_PARAMETER_TAGS_H.
|
||
Move FT_PARAM_TAG_XXX definitions to...
|
||
* include/freetype/ftparams.h: ...this new file.
|
||
|
||
* include/freetype/ttunpat.h: Remove. No longer needed.
|
||
|
||
2017-12-05 Werner Lemberg <wl@gnu.org>
|
||
|
||
Improve tracing messages by using singular and plural forms.
|
||
|
||
* src/*/*.c: Implement it.
|
||
|
||
2017-12-04 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Allow shared points in `cvar' table (#52532).
|
||
|
||
* src/truetype/ttgxvar.c (tt_face_vary_cvt): Implement it by copying
|
||
and adjusting the corresponding code from
|
||
`TT_Vary_Apply_Glyph_Deltas'.
|
||
|
||
2017-11-28 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Improving tracing of composite glyphs.
|
||
|
||
* src/truetype/ttgload.c (TT_Load_Composite_Glyph)
|
||
[FT_DEBUG_LEVEL_TRACE]: Show composite glyph information.
|
||
|
||
2017-11-27 Werner Lemberg <wl@gnu.org>
|
||
|
||
[type1] Allow (again) `/Encoding' with >256 elements (#52464).
|
||
|
||
In version 2.6.1, this has been disallowed to better reject
|
||
malformed fonts; however, this restriction was too strong. This
|
||
time, we only take the first 256 elements into account, since
|
||
encoding arrays are always accessed with a 8bit integer, according
|
||
to the PostScript Language Reference.
|
||
|
||
* src/type1/t1load.c (parse_encoding): Implement it.
|
||
|
||
2017-11-27 Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
|
||
|
||
Fix last commit (#52522).
|
||
|
||
* builds/freetype.mk: Set `FT_OPTION_H' and `FTOPTION_FLAG'
|
||
properly if we have `ftoption.h' in `BUILD_DIR'.
|
||
|
||
2017-11-24 Werner Lemberg <wl@gnu.org>
|
||
|
||
[unix] Install a massaged `ftoption.h' file (#51780).
|
||
|
||
* builds/unix/configure.raw (ftoption_set, ftoption_unset): New
|
||
auxiliary functions to construct...
|
||
(FTOPTION_H_SED): ... this new variable.
|
||
Apply it as a sed argument while copying `ftoption.h' to the
|
||
`builds/unix' directory (using `AC_CONFIG_FILES').
|
||
Simplify code of test that checks cpp's computation of bit length
|
||
(the test previously created an empty `ftoption.h' file and deleted
|
||
it immediately afterwards); without this change, it can happen on my
|
||
GNU/Linux box that `configure's execution of `config.status' doesn't
|
||
create `ftoption.h' (no idea why this happens).
|
||
|
||
* builds/unix/install.mk (install): Install
|
||
`builds/unix/ftoption.h'.
|
||
|
||
* builds/unix/unix-def.in (DISTCLEAN): Updated.
|
||
|
||
* builds/unix/.gitignore: Updated.
|
||
|
||
2017-11-23 Tor Andersson <tor.andersson@artifex.com>
|
||
|
||
Silence unused function warnings (#52465).
|
||
|
||
Some static function declarations cause unused function warnings if
|
||
certain config options are turned off via `ftoption.h'.
|
||
|
||
* src/base/ftbase.h, src/base/ftrfork.c, src/sfnt/ttbdf.h,
|
||
src/truetype/ttgxvar.h: Add #ifdef guards around these sections.
|
||
|
||
2017-11-22 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
* src/psaux/psft.c (cf2_setGlyphWidth): Check format before setting.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4377
|
||
|
||
2017-11-22 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Fix CFF advance widths. (#52466)
|
||
|
||
Glyph advance widths were being written to the new `PS_Decoder' but not
|
||
saved to the underlying format specific decoder. This caused pure CFF
|
||
fonts to have bad advance width.
|
||
|
||
* include/freetype/internal/psaux.h (PS_Decoder): Change `glyph_width'
|
||
field to pointer.
|
||
Remove unused fields.
|
||
* src/psaux/psobjs.c (ps_decoder_init): Change `glyph_width' from copy
|
||
to reference.
|
||
Remove unused.
|
||
* src/psaux/psft.c (cf2_setGlyphWidth): Update code.
|
||
|
||
2017-11-15 Vlad Tsyrklevich <vtsyrklevich@google.com>
|
||
|
||
* include/freetype/ftrender.h: Fix `FT_Renderer_RenderFunc' type.
|
||
|
||
2017-11-14 Nikolaus Waxweiler <madigens@gmail.com>
|
||
|
||
Use Adobe hinting engine for `light' hinting of both CFF and Type 1.
|
||
|
||
Since Ewald Hew factored the Adobe hinting engine out of the CFF
|
||
driver code, we can now use it on Type 1 (and CID) font formats, as
|
||
both have the same hinting philosophy.
|
||
|
||
This change activates the Adobe hinter when in LIGHT mode, and
|
||
therefore always unless explicitly asking for the auto-hinter. This
|
||
makes LIGHT behavior consistent with CFF fonts. As of this commit,
|
||
the hinting engine table looks as follows.
|
||
|
||
LIGHT NORMAL
|
||
-------------------------
|
||
TrueType Auto v40
|
||
CFF Adobe Adobe
|
||
Type 1 Adobe Adobe
|
||
|
||
2017-11-10 Yuri Levchenko <yuri_levchenko@boolat.com>
|
||
|
||
* CMakeLists.txt: Add `DISABLE_FORCE_DEBUG_PREFIX' option.
|
||
|
||
2017-11-06 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
* src/base/ftobjs.c (FT_Load_Glyph): Relocate condition.
|
||
|
||
2017-11-06 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
* src/smooth/ftgrays.c (gray_set_cell): Fix uninitialized variables.
|
||
|
||
2017-11-03 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Fix PostScript interpreter rewinding in Type 1 mode. (#52251)
|
||
|
||
The interpreter in Type 1 mode rewinds the charstring after collecting
|
||
all hints for building the initial hintmap (commit d52dd7f). However,
|
||
some charstrings use `endchar' in a final subroutine call, rewinding to
|
||
the start of that subroutine, and only a small section of the actual
|
||
glyph is drawn.
|
||
|
||
* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdENDCHAR>:
|
||
Ensure we are on the top level charstring before rewinding.
|
||
|
||
2017-11-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
|
||
|
||
[truetype] Add more tricky fonts.
|
||
|
||
See the report by Yang Yinsen.
|
||
https://lists.gnu.org/archive/html/freetype-devel/2017-11/msg00000.html
|
||
|
||
* src/truetype/ttobjs.c (trick_names): Add `DFGothic-EB',
|
||
`DFGyoSho-Lt', `DFHSGothic-W5', `DFHSMincho-W3' and `DFHSMincho-W7'.
|
||
(tt_check_trickyness_sfnt_ids): Add checksums for DFGothic-EB,
|
||
DFGyoSho-Lt, DFHSGothic-W5, DFHSMincho-W3 and DFHSMincho-W7. Also
|
||
add checksums for DLCLiShu and DLCHayBold which their family names
|
||
were already listed but their checksums were previously unknown.
|
||
|
||
2017-11-01 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[smooth] Fix complex rendering at high ppem.
|
||
|
||
We used to split large glyphs into horizontal bands and continue
|
||
bisecting them still horizontally if that was not enough. This is
|
||
guaranteed to fail when a single scanline cannot fit into the
|
||
rendering memory pool. Now we bisect the bands vertically so that
|
||
the smallest unit is a column of the band height, which is guranteed
|
||
to fit into memory.
|
||
|
||
* src/smooth/ftgrays.c (gray_convert_glyph): Implement it.
|
||
|
||
2017-10-20 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[smooth] Improve complex rendering at high ppem.
|
||
|
||
At large sizes almost but not exactly horizontal segments can quickly
|
||
drain the rendering pool. This patch at least avoids filling the pool
|
||
with trivial cells. Beyond this, we can only increase the pool size.
|
||
|
||
Reported, analyzed, and tested by Colin Fahey.
|
||
|
||
* src/smooth/ftgrays.c (gray_set_cell): Do not record trivial cells.
|
||
|
||
2017-10-20 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[base] Improve tracing in FT_Load_Glyph, FT_*_Size.
|
||
|
||
* src/base/ftobjs.c (FT_Load_Glyph): Tag tracing messages with
|
||
function name, glyph index, and load flags.
|
||
(FT_Select_Metrics, FT_Request_Metrics): Remove all tracing.
|
||
(FT_Select_Size, FT_Request_Size): Improve tracing.
|
||
|
||
2017-10-18 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[base] Improve tracing in FT_Render_Glyph.
|
||
|
||
* src/base/ftobjs.c (FT_Render_Glyph_Internal): Add total coverage
|
||
calculations and downgrade Netpbm dump to bitmap:7.
|
||
|
||
2017-10-15 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[cff] Fix segfault on missing `psaux' (#52218)
|
||
|
||
* src/cff/cffload.c (cff_done_blend): Add a check for possible nullptr.
|
||
|
||
* modules.cfg: Update dependency list.
|
||
|
||
2017-10-15 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[base, cff] Fix MSVC warnings.
|
||
|
||
* src/base/ftobjs.c (FT_New_Library): C4702: unreachable code.
|
||
(ft_glyphslot_preset_bitmap): C4244: possible loss of data.
|
||
* src/cff/cffload.c (cff_blend_doBlend): C4244: possible loss of data.
|
||
Turn `sum' into unsigned.
|
||
|
||
2017-10-14 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[base] Netpbm image tracing.
|
||
|
||
* src/base/ftobjs.c (FT_Load_Glyph): Trace bitmap size.
|
||
(FT_Render_Glyph_Internal): Trace bitmap in Netpbm format.
|
||
|
||
* src/smooth/ftgrays.c (gray_sweep): Sweep remnants of span tracing.
|
||
|
||
2017-10-14 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
* builds/windows/ftdebug.c (FT_Message): Print to stderr.
|
||
* builds/wince/ftdebug.c (FT_Message): Ditto.
|
||
|
||
2017-10-14 Behdad Esfahbod <behdad@behdad.org>
|
||
|
||
[afshaper] Delay creating `hb_set' objects until needed.
|
||
|
||
In runs on Noto Naskh Arabic, this results in 89 sets created
|
||
instead of 340 before. Makes auto-hinter setup with HarfBuzz
|
||
enabled 20% to 30% faster.
|
||
|
||
* src/autofit/afshaper.c (af_shaper_get_coverage): Implement it.
|
||
|
||
2017-10-12 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[type1, cid] Add hinting engine switch.
|
||
|
||
Implement property service in `type1' and `cid' drivers to allow
|
||
switching between FreeType or Adobe hinting engine when both are
|
||
available.
|
||
|
||
* src/cid/cidriver.c (cid_property_{set,get}, cid_services),
|
||
src/type1/t1driver.c (t1_property_{set,get}, t1_services): Add
|
||
Properties service.
|
||
|
||
* src/cid/cidobjs.c (cid_driver_init), src/type1/t1objs.c
|
||
(T1_Driver_Init): Add default property values.
|
||
|
||
2017-10-12 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
Add T1_CONFIG_OPTION_OLD_ENGINE configuration option.
|
||
|
||
This controls whether the old Type 1 engine gets compiled into FreeType.
|
||
It is disabled by default.
|
||
|
||
* devel/ftoption.h, include/freetype/config/ftoption.h
|
||
(T1_CONFIG_OPTION_OLD_ENGINE): New macro.
|
||
|
||
* include/freetype/internal/psaux.h (PS_Decoder): Remove unused field.
|
||
* include/freetype/internal/psaux.h, src/cid/cidgload.c
|
||
(cid_load_glyph), src/psaux/psauxmod.c, src/psaux/psobjs.c
|
||
(ps_builder_add_point), src/psaux/t1decode.c
|
||
(t1_lookup_glyph_by_stdcharcode, t1_decoder_parse_glyph,
|
||
t1operator_seac, t1_decoder_parse_charstrings), src/psaux/t1decode.h,
|
||
src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Surround
|
||
relevant code with macro.
|
||
Minor code changes.
|
||
|
||
2017-10-12 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
Extract width parsing from Type 1 parser.
|
||
|
||
Duplicate the fast advance width calculations from the old parser.
|
||
This is to facilitate adding options for compiling out the old parser.
|
||
|
||
* src/psaux/t1decode.{c,h} (t1_decoder_parse_metrics): New function.
|
||
* include/freetype/internal/psaux.h (T1_Decoder_Funcs): New entry
|
||
`parse_metrics'.
|
||
* src/psaux/psauxmod.c: Set the new entry.
|
||
|
||
* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String),
|
||
src/cid/cidgload.c (cid_load_glyph): Separate
|
||
conditional for selecting engine.
|
||
|
||
2017-10-09 Werner Lemberg <wl@gnu.org>
|
||
|
||
* src/base/ftoutln.c (FT_Outline_Translate): Fix integer overflow.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/chromium/issues/detail?id=772775
|
||
|
||
2017-10-08 Werner Lemberg <wl@gnu.org>
|
||
|
||
* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Integer overflows.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3579
|
||
|
||
2017-10-07 Werner Lemberg <wl@gnu.org>
|
||
|
||
[sfnt] Adjust behaviour of PS font names for variation fonts.
|
||
|
||
* src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Use a named instance's
|
||
PS name only if no variation is applied.
|
||
|
||
2017-10-07 Werner Lemberg <wl@gnu.org>
|
||
|
||
[cff, truetype] Adjust behaviour of named instances.
|
||
|
||
This commit completely separates the interaction between named
|
||
instances and variation functions. In particular, resetting the
|
||
variation returns to the current named instance (if set) and not to
|
||
the base font.
|
||
|
||
As a side effect, variation functions no longer change the named
|
||
instance index.
|
||
|
||
* src/cff/cffobjs.c (cff_face_init): Use MM service's `set_instance'
|
||
function.
|
||
Also apply `MVAR' table to named instances.
|
||
|
||
* src/truetype/ttgxvar.c (TT_Get_MM_Var): Add cast.
|
||
(tt_set_mm_blend): No longer check whether requested variation
|
||
coincides with a named instance.
|
||
(TT_Set_Var_Design): Use current named instance for default
|
||
coordinates.
|
||
* src/truetype/ttobjs.c (tt_face_init): Use `TT_Set_Named_Instance'.
|
||
|
||
2017-10-07 Werner Lemberg <wl@gnu.org>
|
||
|
||
Make `FT_Set_Named_Instance' work.
|
||
|
||
* src/cff/cffdrivr.c (cff_set_instance): New function.
|
||
(cff_service_multi_masters): Register it.
|
||
|
||
* src/truetype/ttgxvar.c (TT_Set_Named_Instance): New function.
|
||
* src/truetype/ttgxvar.h: Updated.
|
||
* src/truetype/ttdriver.c (tt_service_gx_multi_masters): Register
|
||
it.
|
||
|
||
* src/type1/t1load.c (T1_Reset_MM_Blend): New function.
|
||
* src/type1/t1load.h: Updated.
|
||
* src/type1/t1driver.c (t1_service_multi_masters): Register it.
|
||
|
||
2017-10-07 Werner Lemberg <wl@gnu.org>
|
||
|
||
Make `FT_FACE_FLAG_VARIATION' work.
|
||
|
||
* include/freetype/internal/tttypes.h (TT_Face): Remove
|
||
`is_default_instance'; this can be replaced with a combination of
|
||
`FT_IS_VARIATION' and `FT_IS_INSTANCE'.
|
||
|
||
* src/cff/cffdrivr.c (cff_get_advances): Updated.
|
||
|
||
* src/sfnt/sfdriver.c (sfnt_get_ps_name), src/sfnt/sfobjs.c
|
||
(sfnt_init_face): Updated.
|
||
|
||
* src/truetype/ttdriver.c (tt_get_advances), src/truetype/ttgload.c
|
||
(TT_Process_Simple_Glyph, load_truetype_glyph, IS_DEFAULT_INSTANCE),
|
||
src/truetype/ttgxvar.c (tt_set_mm_blend): Updated.
|
||
* src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design):
|
||
Handle `FT_FACE_FLAG_VARIATION'.
|
||
|
||
* src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design): Handle
|
||
`FT_FACE_FLAG_VARIATION'.
|
||
|
||
2017-10-07 Werner Lemberg <wl@gnu.org>
|
||
|
||
New function `FT_Set_Named_Instance'.
|
||
|
||
No effect yet.
|
||
|
||
* src/base/ftmm.c (FT_Set_Named_Instance): New function.
|
||
|
||
* include/freetype/ftmm.h: Updated.
|
||
|
||
2017-10-07 Werner Lemberg <wl@gnu.org>
|
||
|
||
Add macros for checking whether a font variation is active.
|
||
|
||
* include/freetype/freetype.h (FT_FACE_FLAG_VARIATION,
|
||
FT_IS_VARIATION): New macros.
|
||
No effect yet.
|
||
|
||
2017-10-07 Werner Lemberg <wl@gnu.org>
|
||
|
||
Add framework for setting named instance in MM service.
|
||
|
||
* include/freetype/internal/services/svmm.h (FT_Set_Instance_Func):
|
||
New function typedef.
|
||
(MultiMasters): Add `set_instance' member.
|
||
(FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
|
||
|
||
* src/cff/cffdrivr.c (cff_service_multi_masters),
|
||
src/truetype/ttdriver (tt_service_gx_multi_masters),
|
||
src/type1/t1driver.c (t1_service_multi_masters): Updated.
|
||
|
||
2017-10-07 Werner Lemberg <wl@gnu.org>
|
||
|
||
[type1] Minor code shuffling.
|
||
|
||
* src/type1/t1load.c (T1_Set_MM_Blend): Make it a wrapper of...
|
||
(t1_set_mm_blend): ...this new function.
|
||
(T1_Set_MM_Design): Use `t1_set_mm_blend'.
|
||
|
||
2017-10-05 Werner Lemberg <wl@gnu.org>
|
||
|
||
* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Fix integer
|
||
overflow.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3539
|
||
|
||
2017-10-05 Werner Lemberg <wl@gnu.org>
|
||
|
||
Fix compiler warnings.
|
||
|
||
* src/cff/cffdrivr.c (cff_ps_get_font_extra): Avoid code that relies
|
||
on numeric overflow.
|
||
Add cast.
|
||
|
||
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix variable
|
||
types, add cast.
|
||
|
||
2017-10-04 John Tytgat <John.Tytgat@esko.com>
|
||
|
||
[cff] Add support for `FSType'.
|
||
|
||
* include/freetype/internal/cfftypes.h (CFF_FontRec): Add
|
||
`font_extra' entry.
|
||
|
||
* src/cff/cffdrivr.c (cff_ps_get_font_extra): New function to
|
||
retrieve FSType info from the embedded PostScript data.
|
||
(cff_service_ps_info): Register function.
|
||
|
||
* src/cff/cffload.c (cff_font_done): Free `font_extra'.
|
||
|
||
2017-09-30 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
Signedness fixes in bitmap presetting.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3514.
|
||
|
||
* 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.
|
||
|
||
2017-09-29 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
Bitmap metrics presetting [2/2].
|
||
|
||
* src/base/ftobjs.c (FT_Load_Glyph): Preset the bitmap metrics when
|
||
appropriate but `FT_Render_Glyph' is not called.
|
||
* include/freetype/freetype.h (FT_GlyphSlotRec): Document the change.
|
||
|
||
2017-09-28 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[smooth, raster] Miscellaneous cleanups.
|
||
|
||
* src/raster/ftrend1.c (ft_raster1_render): Clean up the exit.
|
||
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Reduce
|
||
translations and clean up the exit.
|
||
(ft_smooth_render_lcd, ft_smooth_render_lcd): Remove unused `error'.
|
||
|
||
2017-09-28 Ben Wagner <bungeman@google.com>
|
||
|
||
[truetype] Really, really fix #52082.
|
||
|
||
* src/truetype/ttinterp.c (Ins_MDRP): Correct conditional.
|
||
|
||
2017-09-28 Werner Lemberg <wl@gnu.org>
|
||
|
||
* src/psaux/psintrp.c (cf2_doStems): Fix integer overflow.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3510
|
||
|
||
2017-09-28 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
* src/cid/cidgload.c (cid_slot_load_glyph): Fix memory leak.
|
||
|
||
Reported as
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3489
|
||
|
||
2017-09-28 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
Bitmap metrics presetting [1/2].
|
||
|
||
This mainly just extracts the code for presetting the bitmap metrics
|
||
from the monochrome, grayscale, and LCD renderers into a separate
|
||
function.
|
||
|
||
* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): New function that
|
||
calculates prospective bitmap metrics for the given rendering mode.
|
||
* include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap):
|
||
Declare it.
|
||
|
||
* src/base/ftlcdfil.c (ft_lcd_padding): New helper function that adds
|
||
padding to CBox taking into account pecularities of LCD rendering.
|
||
* include/freetype/ftlcdfil.h (ft_lcd_padding): Declare it.
|
||
|
||
* src/raster/ftrend1.c (ft_raster1_render): Reworked to use
|
||
`ft_glyphslot_preset_bitmap'.
|
||
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
|
||
(ft_smooth_render_lcd, ft_smooth_render_lcd): The pixel_mode setting
|
||
is moved to `ft_glyphslot_preset_bitmap'.
|
||
|
||
2017-09-28 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Fix compiler warning.
|
||
|
||
* src/psaux/pshints.c (cf2_hintmap_dump): Add switch for tracing
|
||
code.
|
||
|
||
2017-09-27 Werner Lemberg <wl@gnu.org>
|
||
|
||
* src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning.
|
||
|
||
2017-09-25 Werner Lemberg <wl@gnu.org>
|
||
|
||
[psaux] Fix compiler warnings.
|
||
|
||
* src/psaux/psft.c (cf2_initLocalRegionBuffer): Remove redundant
|
||
test.
|
||
|
||
* src/psaux/psintrp.c (cf2_interpT2CharString)
|
||
<cf2_escCALLOTHERSUBR>: Add casts.
|
||
|
||
* src/psaux/psobjs.c (ps_decoder_init): Add cast.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Minor fixes.
|
||
|
||
* include/freetype/internal/psaux.h, src/psaux/psobjs.{c,h}:
|
||
Rearrange `ps_builder_init' arguments to conventional order.
|
||
|
||
* src/psaux/psft.c (cf2_decoder_parse_charstrings): Add a check and
|
||
notice for `SubFont' in Type 1 mode.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Move `psdecode' into `psobjs'.
|
||
|
||
As the former only contains a single procedure, move it into
|
||
`psobjs' for simplicity. Also change the parameter order to the
|
||
conventional one.
|
||
|
||
* src/psaux/psdecode.c (ps_decoder_init): Moved to...
|
||
* src/psaux/psobjs.c: ...Here.
|
||
* src/psaux/psdecode.h, src/psaux/psobjs.h: Ditto.
|
||
|
||
* include/freetype/internal/psaux.h (PSAux_ServiceRec): Update
|
||
`ps_decoder_init' function signature.
|
||
|
||
* src/cff/cffgload.c, src/cid/cidgload.c, src/type1/t1gload.c:
|
||
Update calls.
|
||
|
||
* src/psaux/psaux.c, src/psaux/psauxmod.c: Update includes.
|
||
|
||
* src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRV_SRC):
|
||
Update file references.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Fix Type 1 hinting.
|
||
|
||
Type 1 hinting breaks sometimes when mid-charstring hints should
|
||
have been in the initial hintmap. This fix adds a preprocessing
|
||
pass that reads all hints and builds the correct initial hintmap
|
||
first, before proceeding to build the glyph outline.
|
||
|
||
* src/psaux/psintrp.c (cf2_interpT2CharString): New
|
||
`initial_map_ready' boolean flag.
|
||
Ignore outline commands and hint changes on first pass.
|
||
<cf2_cmdENDCHAR>: Add section to build hintmap and rewind.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Add tracing for hints.
|
||
|
||
* src/psaux/pshints.c (cf2_hintmap_dump): New function.
|
||
(cf2_hintmap_insertHint): Trace incoming and inserted hints.
|
||
(cf2_hintmap_build): Dump hintmap before and after hint adjustment.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Minor fixes.
|
||
|
||
* src/psaux/psintrp.c (cf2_interpT2CharString): Fix check for pop
|
||
results.
|
||
s/font->decoder/decoder/ where necessary.
|
||
<cf2_cmdHSTEM, cf2_cmdVSTEM, cf2_escHSTEM3, cf2_escVSTEM3>: Use
|
||
offset parameter in `cf2_doStems' instead of doing correction for
|
||
left-sidebearing.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[cid] Use the new engine.
|
||
|
||
* src/cid/cidgload.c: Update includes.
|
||
(cid_load_glyph, cid_slot_load_glyph): Implement changes to glyph
|
||
loading code as with `type1' module.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[cid] Add Adobe engine configuration.
|
||
|
||
This is similar to what was done in the `type1' module.
|
||
|
||
* src/cid/cidriver.c (t1cid_driver_class): Update declaration.
|
||
* src/cid/cidobjs.c: Include FT_TYPE1_DRIVER_H.
|
||
(cid_driver_init): Update code.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Change subfont synthesis for CID fonts.
|
||
|
||
Change `t1_make_subfont' to take in the Private dict record as an
|
||
argument. This is because Type 1 and CID font records in FreeType
|
||
have this in different places.
|
||
|
||
* src/psaux/psobjs.c (t1_make_subfont): Change `T1_Face' to
|
||
`FT_Face' so that CID is also accepted.
|
||
Take `PS_Private' as an argument and let caller figure out where the
|
||
Private dict actually is.
|
||
Update references.
|
||
|
||
* include/freetype/internal/psaux.h, src/psaux/psobjs.h: Update
|
||
declaration.
|
||
|
||
* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Update
|
||
call.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[type1] Switch to Adobe engine.
|
||
|
||
* src/type1/t1objs.c (T1_Driver_Init): Set default to Adobe engine.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Extend Adobe interpreter (seac).
|
||
|
||
This concludes the changes needed to add Type 1 support.
|
||
|
||
* src/psaux/psintrp.c: Update includes.
|
||
(cf2_interpT2CharString) <cf2_escSEAC>: Implement this similarly to
|
||
implied seac for CFF.
|
||
|
||
* src/psaux/t1decode.c (t1_lookup_glyph_by_stdcharcode_ps): New
|
||
function to look up the glyph index.
|
||
|
||
* src/psaux/psft.c (cf2_getT1SeacComponent,
|
||
cf2_freeT1SeacComponent): New functions to get the charstrings for
|
||
seac components.
|
||
|
||
* src/psaux/t1decode.h, src/psaux/psft.h: Update declarations.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Extend Adobe interpreter (flex in callothersubr).
|
||
|
||
* src/psaux/psintrp.c (cf2_interpT2CharString)
|
||
<cf2_escCALLOTHERSUBR>: Fix Flex feature handling (OtherSubrs 0, 1,
|
||
2).
|
||
<cf2_cmdRMOVETO>: Do not actually move the `glyphPath' while doing
|
||
flex. This is to avoid closing the current contour.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Extend Adobe interpreter (callothersubr).
|
||
|
||
* src/psaux/psintrp.c (cf2_interpT2CharString)
|
||
<cf2_escCALLOTHERSUBR>: Copy code from
|
||
`t1_decoder_parse_charstrings' (in `t1decode.c').
|
||
OtherSubr 3 (change hints) should reset the hintmask, so that the
|
||
new hints are applied.
|
||
Fix function calls and stack access.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Extend Adobe interpreter (pop).
|
||
|
||
* src/psaux/psintrp.c (cf2_interpT2CharString): Change how unhandled
|
||
OtherSubr results are stored. Implement the PostScript stack using
|
||
an array.
|
||
<cf2_escPOP>: Ensure that the stack is not cleared after getting
|
||
`OtherSubr' results.
|
||
Fix stack access.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Extend Adobe interpreter (callsubr).
|
||
|
||
* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdCALLSUBR>:
|
||
Type 1 mode.
|
||
|
||
* src/psaux/psft.c (cf2_initLocalRegionBuffer): Add Type 1 mode.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Extend Adobe interpreter (div, four-byte numbers).
|
||
|
||
* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_escDIV>: Add
|
||
Type 1 mode. Type 1 requires large integers to be followed by
|
||
`div'; cf. `Adobe Type 1 Font Format', section 6.2.
|
||
<op == 255>: Push Type 1 four-byte numbers as `Int' always. This is
|
||
to ensure `div' and `callsubr' get values they can use.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Extend Adobe interpreter (hints).
|
||
|
||
* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
|
||
cf2_cmdVSTEM>: Add correction for left sidebearing in Type 1 mode.
|
||
Allow adding hints mid-charstring.
|
||
<cf2_escVSTEM3, cf2_escHSTEM3>: Translate into equivalent commands
|
||
for three normal stem hints. This requires some recalculation of
|
||
stem positions.
|
||
Correction for left sidebearing.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Extend Adobe interpreter (hsbw, sbw).
|
||
|
||
* src/psaux/psintrp.c (cf2_doStems): `hsbw' or `sbw' must be the
|
||
first operation in a Type 1 charstring.
|
||
(cf2_interpT2CharString): Remove unused variables.
|
||
<cf2_cmdHMOVETO, cf2_cmdVMOVETO, cf2_cmdRMOVETO>: `hsbw' or `sbw'
|
||
must be the first operation in a Type 1 charstring.
|
||
<cf2_cmdHSBW, cf2_escSBW>: Fix data access and add correction for
|
||
left sidebearing.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Extend Adobe interpreter (setcurrentpoint).
|
||
|
||
* src/psaux/psintrp.c (cf2_interpT2CharString)
|
||
<cf2_escSETCURRENTPT>: Fix stack access.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Extend Adobe interpreter (closepath).
|
||
|
||
* src/psaux/psintrp.c (cf2_interpT2CharString) <c2f_cmdCLOSEPATH>:
|
||
Use the right builder function. We can use the `haveWidth' boolean
|
||
already present, instead of implementing `parse_state'.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Add Type 1 operations to Adobe CFF interpreter.
|
||
|
||
The following Type 1 specific ops have been added (copied from
|
||
`t1decode'):
|
||
|
||
closepath
|
||
vstem3
|
||
hstem3
|
||
seac
|
||
sbw
|
||
callothersubr
|
||
pop
|
||
setcurrentpoint
|
||
hsbw
|
||
|
||
The following require a Type 1 mode, because of differences in
|
||
specification:
|
||
|
||
hstem
|
||
vstem
|
||
vmoveto
|
||
callsubr
|
||
div
|
||
rmoveto
|
||
hmoveto
|
||
Numbers
|
||
|
||
The subsequent commits will implement these changes and adapt
|
||
accesses of data and objects to the new interpreter.
|
||
|
||
NOTE: Will not compile in the meantime!
|
||
|
||
* src/psaux/psintrp.c: Add opcodes to enum.
|
||
(cf2_interpT2CharString): Copy relevant code over from
|
||
`t1_decoder_parse_charstrings' (in `t1decode.c').
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[type1] Fixes for rendering.
|
||
|
||
The Type 1 advance width calculation passes null for glyph slot,
|
||
etc, which can cause null pointer access in the new interpreter.
|
||
Fall back to the old one for now.
|
||
|
||
Fix the large glyph retry code and ensure hinting and scaling flags
|
||
are set properly.
|
||
|
||
* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add a
|
||
check for metrics_only.
|
||
Set the `force_scaling' flag.
|
||
(T1_Parse_Glyph): Updated.
|
||
(T1_Load_Glyph): Add `hinting' and `scaled' flags.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Add missing objects (2/2).
|
||
|
||
Synthesize a `SubFont' object for Type 1 fonts. This is used in the
|
||
interpreter to access Private dict data, which are stored in
|
||
different places for Type 1 and CFF. This allows the same data to
|
||
be used in either mode.
|
||
|
||
* src/psaux/psobjs.c (t1_make_subfont): New procedure to copy
|
||
required values to a dummy `CFF_SubFont' object. This is similar to
|
||
`cff_make_private_dict'.
|
||
* src/psaux/psobjs.h: Add the new declaration.
|
||
|
||
* include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Ditto.
|
||
Add this to the PSAux Service for future use with CID fonts.
|
||
|
||
* src/type1/t1gload.c: Include FT_INTERNAL_CFF_TYPES_H.
|
||
(T1_Parse_Glyph_And_Get_Char_String): Add the call.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Add missing objects for Type 1 (1/2).
|
||
|
||
Move `CF2_Font' instance to `PS_Decoder'. This is the context for
|
||
the interpreter and since it is currently stored in `CFF_Font', is
|
||
unavailable in Type 1 mode.
|
||
|
||
* include/freetype/internal/psaux.h (T1_Decoder, PS_Decoder): New
|
||
`cf2_instance' field.
|
||
|
||
* src/psaux/psdecode.c (ps_decoder_init): Copy `cf2_instance' to
|
||
`PS_Decoder'.
|
||
|
||
* src/psaux/t1decode.c (t1_decoder_done): Add finalization code.
|
||
|
||
* src/psaux/psft.c (cf2_decoder_parse_charstrings): Update accesses.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
Allow `type1' module to use the Adobe engine.
|
||
|
||
Add the callback and some conditionals to switch between the two
|
||
engines.
|
||
|
||
* include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Change
|
||
function declarations.
|
||
* src/psaux/psauxmod.c (T1_Decoder_FuncsRec): Register the
|
||
callbacks.
|
||
|
||
* src/psaux/psobjs.c (ps_builder_add_point): Add conditionals for
|
||
number conversion.
|
||
|
||
* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add code
|
||
to choose which renderer to use.
|
||
|
||
* src/cid/cidgload.c (cid_load_glyph): Update call.
|
||
* src/base/ftobjs.c, src/psaux/psobjs.c, src/type1/t1gload.c: Update
|
||
includes.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[type1] Add Adobe engine configuration.
|
||
|
||
Use the previously changed PS_Driver in type1 module to store
|
||
hinting engine configuration.
|
||
|
||
* include/freetype/ftt1drv.h: New file.
|
||
Duplicate and rename config options from CFF.
|
||
* include/freetype/config/ftheader.h (FT_TYPE1_DRIVER_H): New macro.
|
||
|
||
* src/type1/t1driver.c (t1_driver_class): Update declaration.
|
||
* src/type1/t1objs.c: Include FT_TYPE1_DRIVER_H.
|
||
(T1_Driver_Init): Update code.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[cff] Move and rename `CFF_Driver'.
|
||
|
||
This is so that we can use the same hinting engine parameters for
|
||
Type 1.
|
||
|
||
* include/freetype/internal/cffotypes.h (CFF_Driver): Rename and
|
||
move to...
|
||
* include/freetype/internal/psaux.h (PS_Driver): ...here.
|
||
|
||
* src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffload.c,
|
||
src/cff/cffobjs.c, src/cff/cffobjs.h, src/psaux/psft.c,
|
||
src/psaux/psobjs.c: Update references.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux, type1] Reorganize object fields.
|
||
|
||
Make some fields more generic, so that we can access them the same
|
||
way regardless of Type 1 or CFF.
|
||
|
||
* include/freetype/internal/psaux.h (PS_Builder): Change `TT_Face'
|
||
to `FT_Face'.
|
||
Remove unused fields.
|
||
|
||
* src/psaux/psft.c: Update all accesses of `PS_Builder.face'.
|
||
Add some asserts to guard against casting `T1_Face' as `TT_Face'.
|
||
|
||
* src/type1/t1objs.h (T1_GlyphSlot): Reorder fields to follow
|
||
`CFF_GlyphSlot', so that we can pretend they are the same in the
|
||
interpreter.
|
||
|
||
* src/psaux/psobjs.c (ps_builder_init, ps_builder_add_point):
|
||
Updated with above changes.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Prepare for Type 1 mode.
|
||
|
||
Add some checks for Type 1 data passing through.
|
||
|
||
* src/psaux/psfont.h (CF2_Font): Add `isT1' flag.
|
||
* src/psaux/psfont.c (cf2_font_setup): Skip the variations and blend
|
||
code which is not applicable for Type 1.
|
||
|
||
* src/psaux/psft.c (cf2_decoder_parse_charstrings): Avoid accessing
|
||
`decoder->cff' in Type 1 mode.
|
||
Copy `is_t1' flag to `CF2_Font'.
|
||
|
||
2017-09-25 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux, cff] Use the new objects.
|
||
|
||
* include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Fix
|
||
switching between new and old engines.
|
||
|
||
* src/cff/cffgload.c, src/cff/cffparse.c: Update calls.
|
||
|
||
* src/psaux/psblues.c, src/psaux/psfont.c, src/psaux/psfont.h,
|
||
src/psaux/psft.c, src/psaux/psft.h, src/psaux/psintrp.c: Update all
|
||
to use new objects.
|
||
|
||
2017-09-24 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Objects for new interpreter (part 2).
|
||
|
||
Make the new objects copy over values. They are essentially wrapper
|
||
types for the different decoders/builders.
|
||
|
||
* include/freetype/internal/psaux.h: Update declarations.
|
||
(PS_Builder): Add `is_t1' flag.
|
||
(PS_Decoder_{Get,Free}_Glyph_Callback): Renamed to...
|
||
(CFF_Decoder_{Get,Free}_Glyph_Callback: ... this.
|
||
(PS_Decoder): Updated.
|
||
Add `t1_parse_callback' member.
|
||
(PSAux_ServiceRec): Add `ps_decoder_init' member.
|
||
|
||
* src/psaux/psdecode.h, src/psaux/psobjs.h: Update declarations.
|
||
|
||
* src/psaux/psdecode.c, src/psaux/psobjs.c: Implement copy with two
|
||
modes.
|
||
|
||
* src/psaux/psauxmod.c: Add builder and decoder functions to `PSAux'
|
||
service.
|
||
|
||
2017-09-24 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Add objects for new interpreter.
|
||
|
||
Introduce `PS_Decoder' and `PS_Builder' which include all fields
|
||
from either Type 1 or CFF decoders/builders.
|
||
|
||
* include/freetype/internal/psaux.h (PS_Builder, PS_Decoder): New
|
||
structs.
|
||
|
||
* src/psaux/psobjs.c, src/psaux/psobjs.h: Add `PS_Builder'
|
||
functions.
|
||
|
||
* src/psaux/psdecode.c, src/psaux/psdecode.h: New files to hold
|
||
`PS_Decoder' initialization functions.
|
||
|
||
* src/psaux/psaux.c, src/psaux/Jamfile (_sources),
|
||
src/psaux/rules.mk (PSAUX_DRV_SRC): Updated.
|
||
|
||
2017-09-24 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Rename files.
|
||
|
||
Replace the `cf2' file name prefix with `ps' as the Adobe engine
|
||
will be used for both PostScript Types 1 and 2 (CFF) instead of just
|
||
CFF.
|
||
|
||
s/cf2/ps/ for all following.
|
||
|
||
* src/psaux/cf2*: Rename files.
|
||
* src/psaux/*: Update includes.
|
||
|
||
* src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRC_SRC,
|
||
PSAUX_DRV_H): Update file references.
|
||
|
||
2017-09-24 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux] Minor fix.
|
||
|
||
Use `MultiMasters' service in `psaux' instead of a call to `cff'.
|
||
The project builds if CFF_CONFIG_OPTION_OLD_ENGINE is not defined.
|
||
|
||
* src/psaux/cf2ft.c: Update includes.
|
||
(cf2_getNormalizedVector): Use `mm->get_var_blend' instead of
|
||
`cff_get_var_blend'.
|
||
|
||
2017-09-24 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux, cff] Move `cff_random' into `psaux' service.
|
||
|
||
NOTE: Does not compile!
|
||
|
||
Minor fix to allow both `cff' and `psaux' to use `cff_random'.
|
||
|
||
* src/cff/cffload.c (cff_random): Move to...
|
||
* src/psaux/psobjs.c: Here.
|
||
* src/cff/cffload.h: Move corresponding declaration to
|
||
`src/psaux/psobjs.h'.
|
||
|
||
* include/freetype/internal/psaux.h (PSAux_ServiceRec): Register the
|
||
function here...
|
||
* src/psaux/psauxmod.c: And here.
|
||
|
||
* src/cff/cffload.c, src/psaux/cf2intrp.c: Update code.
|
||
|
||
2017-09-24 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[cff] Move struct declarations to `freetype/internal'.
|
||
|
||
NOTE: Does not compile!
|
||
|
||
This is so that the CFF functions moved to `psaux' can access the
|
||
same structs that they need.
|
||
|
||
* src/cff/cfftypes.h: Moved to...
|
||
* include/freetype/internal/cfftypes.h: ...Here.
|
||
|
||
* src/cff/cffobjs.h: Moved the struct declarations to...
|
||
* include/freetype/internal/cffotypes.h: ... this new file.
|
||
|
||
* include/freetype/internal/internal.h (FT_INTERNAL_CFF_TYPES_H,
|
||
FT_INTERNAL_CFF_OBJECT_TYPES_H): New macros.
|
||
|
||
* src/cff/cffcmap.h, src/cff/cffdrivr.c, src/cff/cffgload.c,
|
||
src/cff/cffgload.h, src/cff/cffload.h, src/cff/cffobjs.c,
|
||
src/cff/cffobjs.h, src/cff/cffparse.h, src/psaux/psobjs.h,
|
||
include/freetype/internal/psaux.h,
|
||
include/freetype/internal/services/svcfftl.h: Update includes.
|
||
|
||
* src/cff/rules.mk (CFF_DRV_H): Updated.
|
||
|
||
2017-09-24 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux, cff] Add new service for inter-module calls.
|
||
|
||
NOTE: Does not compile!
|
||
|
||
This is to allow CFF functions moved to `psaux' to call functions
|
||
declared in `src/cff/cffload.h'.
|
||
|
||
* include/freetype/internal/services/svcfftl.h: New file, setting up
|
||
a `CFFLoad' service.
|
||
|
||
* include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC10,
|
||
FT_DEFINE_SERVICEDESCREC): New macros.
|
||
(FT_SERVICE_CFF_TABLE_LOAD_H): New macro.
|
||
|
||
* src/cff/cffdrivr.c, src/cff/cffpic.h: Register the new service.
|
||
|
||
* src/cff/cfftypes.h (CFF_FontRec), src/psaux/cf2font.h
|
||
(CF2_FontRec): Add service interface.
|
||
|
||
* src/cff/cffobjs.c, src/psaux/cf2font.c, src/psaux/cf2ft.c,
|
||
src/psaux/cf2intrp.c, src/psaux/cffdecode.c: Use the new service.
|
||
|
||
2017-09-24 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux, cff] Add callbacks for inter-module calls.
|
||
|
||
NOTE: Does not compile!
|
||
|
||
* include/freetype/internal/psaux.h: Add function pointer
|
||
declarations.
|
||
|
||
* src/psaux/cffdecode.c (cff_decoder_init): Update to take in
|
||
callbacks.
|
||
* src/psaux/cffdecode.h: Ditto.
|
||
|
||
* src/cff/cffgload.c (cff_compute_max_advance, cff_slot_load):
|
||
Update calls to pass in callbacks.
|
||
* src/psaux/cf2ft.c, src/psaux/cffdecode.c: Use them.
|
||
|
||
2017-09-24 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux, cff] Create new `PSAux' service interface entries.
|
||
|
||
NOTE: Does not compile!
|
||
|
||
* include/freetype/internal/psaux.h: Include
|
||
FT_INTERNAL_TRUETYPE_TYPES_H.
|
||
(CFF_Builder_FuncsRec, CFF_Decocer_FuncsRec): New function tables.
|
||
(CFF_Builder): Updated.
|
||
Fix for forward declaration.
|
||
(PSAux_ServiceRec): New field `cff_decoder_funcs'.
|
||
|
||
* src/psaux/psauxmod.c (cff_builder_funcs, cff_decoder_funcs): New
|
||
function tables.
|
||
(PSAux_Interface): Updated.
|
||
|
||
* include/freetype/internal/tttypes.h (TT_FaceRec): Add `psaux'
|
||
service interface.
|
||
|
||
* src/cff/cffgload.c, src/cff/cffobjs.c, src/cff/cffparse.c: Update
|
||
function calls to use psaux service.
|
||
|
||
2017-09-24 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux, cff] Move CFF builder components into `psaux' module.
|
||
|
||
NOTE: Does not compile!
|
||
|
||
* src/cff/cffgload.c
|
||
(cff_builder_{init,done,add_point,add_point1,add_contour,start_point,close_contour},
|
||
cff_check_points): Move to...
|
||
* src/psaux/psobjs.c: Here.
|
||
|
||
* src/cff/cffgload.h: Move corresponding declarations to
|
||
`src/psaux/psobjs.h'.
|
||
|
||
* src/cff/cffgload.h (CFF_Builder): Move struct declaration to...
|
||
* include/freetype/internal/psaux.h: Here.
|
||
|
||
2017-09-24 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux, cff] Move CFF decoder components into `psaux' module.
|
||
|
||
NOTE: Does not compile!
|
||
|
||
* src/cff/cffgload.c (CFF_Operator,
|
||
CFF_COUNT_{CHECK_WIDTH,EXACT,CLEAR_STACK}, cff_argument_counts,
|
||
cff_operator_seac, cff_compute_bias,
|
||
cff_lookup_glyph_by_stdcharcode,
|
||
cff_decoder_{parse_charstrings,init,prepare}): Move to...
|
||
* src/psaux/cffdecode.c: This new file.
|
||
|
||
* src/cff/cffgload.h: Move corresponding declarations to...
|
||
* src/psaux/cffdecode.h: This new file.
|
||
|
||
* src/cff/cffgload.h (CFF_MAX_{OPERANDS,SUBRS_CALLS,TRANS_ELEMENTS},
|
||
CFF_Decoder_Zone, CFF_Decoder): Move declarations to...
|
||
* include/freetype/internal/psaux.h: Here.
|
||
|
||
* src/psaux/cf2ft.h: Update include.
|
||
|
||
* src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Update with
|
||
the new file.
|
||
|
||
2017-09-24 Ewald Hew <ewaldhew@gmail.com>
|
||
|
||
[psaux, cff] Move Adobe's engine components into `psaux' module.
|
||
|
||
This is the first patch of a sequence to move the Type 2 charstring
|
||
processing capability from the `cff' module to the `psaux' module.
|
||
|
||
NOTE: Does not compile!
|
||
|
||
* src/cff/cf2*: Move these files to...
|
||
* src/psaux/cf2*: Here.
|
||
|
||
* src/cff/Jamfile (_sources), src/cff/rules.mk (CFF_DRV_SRC,
|
||
CFF_DRV_H), src/cff/cff.c, src/cff/cffgload.c: Remove file
|
||
references.
|
||
|
||
* src/psaux/Jamfile (_sources), src/psaux/rules.mk, src/psaux/psaux.c
|
||
(PSAUX_DRV_SRC, PSAUX_DRV_H): Add file references.
|
||
|
||
2017-09-24 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
Tweak per-face LCD filtering controls.
|
||
|
||
Thing are simpler with a NULL-function pointer.
|
||
|
||
* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
|
||
pointer to the filter function.
|
||
(FT_LibraryRec): Remove unused `lcd_filter'.
|
||
(FT_Bitmap_LcdFilterFunc, ft_lcd_filter_fir): Move from here...
|
||
* include/freetype/ftlcdfil.h (FT_Bitmap_LcdFilterFunc,
|
||
ft_lcd_filter_fir): ... to here.
|
||
|
||
* src/base/ftobjs.c (ft_open_face_internal): NULL-initialize the
|
||
per-face filter.
|
||
(FT_Face_Properties): Set it.
|
||
* src/smooth/ftsmooth.c (ft_smooth_render_generic): Simplify.
|
||
|
||
* src/base/ftlcdfil.c (ft_lcd_filter_fir, FT_Libary_SetLcdFilter):
|
||
Minor.
|
||
|
||
2017-09-24 Jonathan Kew <jfkthame@gmail.com>
|
||
|
||
[sfnt] Fix `premultiply_data' (#52092).
|
||
|
||
* src/sfnt/pngshim.c (premultiply_data): Don't use vector extension
|
||
if we have less than 16 bytes of data.
|
||
|
||
2017-09-24 Werner Lemberg <wl@gnu.org>
|
||
|
||
[otvalid] Fix handling of ValueRecords.
|
||
|
||
For GPOS pair positioning format 1 the description of ValueRecords
|
||
in the OpenType specification (1.8.2, from today) is wrong – the
|
||
offset has to be taken from the parent structure; in this case the
|
||
`PairSet' table.
|
||
|
||
* src/otvalid/otvgpos.c (otv_PairSet_validate): Set `extra3'.
|
||
(otv_PairPos_validate): Adjust.
|
||
|
||
2017-09-23 Werner Lemberg <wl@gnu.org>
|
||
|
||
[otvalid] Handle `GSUB' and `GPOS' v1.1 tables.
|
||
|
||
* src/otvalid/otvgsub.c (otv_GSUB_validate), src/otvalid/otvgpos.c
|
||
(otv_GPOS_validate): Implement it.
|
||
|
||
2017-09-23 Werner Lemberg <wl@gnu.org>
|
||
|
||
[otvalid] Update common table handling to OpenType 1.8.2.
|
||
|
||
* src/otvalid/otvcommn.c (otv_Device_validate): Handle
|
||
VariationIndex subtable.
|
||
(otv_Lookup_validate): Handle MarkFilteringSet.
|
||
|
||
2017-09-23 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[build] Windows-style DLL versioning.
|
||
|
||
* build/windows/ftver.rc: New VERSIONINFO resource.
|
||
* build/windows/vc2010/freetype.vcxproj: Further improvements.
|
||
|
||
2017-09-23 Ben Wagner <bungeman@google.com>
|
||
|
||
[truetype] Really fix #52082.
|
||
|
||
* src/truetype/ttinterp.c (Ins_MDRP): Correct conditional.
|
||
|
||
2017-09-23 Werner Lemberg <wl@gnu.org>
|
||
|
||
[otvalid] Handle `GDEF' v1.2 and v1.3 tables.
|
||
|
||
No validation of variation stuff yet.
|
||
|
||
* src/otvalid/otvgdef.c (otv_MarkGlyphSets_validate): New function.
|
||
(otv_GDEF_validate): Implement it.
|
||
|
||
2017-09-22 Werner Lemberg <wl@gnu.org>
|
||
|
||
[otvalid] Handle `BASE' v1.1 table.
|
||
|
||
No validation of variation stuff yet.
|
||
|
||
* src/otvalid/otvbase.c (otv_BASE_validate): Implement it.
|
||
|
||
2017-09-22 Werner Lemberg <wl@gnu.org>
|
||
|
||
[otvalid] Macros for 32bit offset support.
|
||
|
||
* src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE32,
|
||
OTV_OPTIONAL_OFFSET32, OTV_SIZE_CHECK32): New macros.
|
||
|
||
2017-09-21 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[build] Simplify Visual C++ 2010 project.
|
||
|
||
* build/windows/vc2010/freetype.vcxproj: Remove fake singlethreaded
|
||
configurations and tweak.
|
||
|
||
2017-09-21 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Integer overflow (#52082).
|
||
|
||
* src/truetype/ttinterp.c (Ins_MDRP): Avoid FT_ABS.
|
||
|
||
2017-09-21 Werner Lemberg <wl@gnu.org>
|
||
|
||
[sfnt] Fix postscript name for default instance of variation fonts.
|
||
|
||
Problem reported by Behdad.
|
||
|
||
* src/sfnt/sfdriver.c (sfnt_get_ps_name): Test
|
||
`is_default_instance'.
|
||
|
||
2017-09-21 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Fix `mmvar' array pointers, part 2.
|
||
|
||
The previous commit was incomplete.
|
||
|
||
* src/truetype/ttgxvar.c: Properly initialize sub-array offsets for
|
||
`master' also.
|
||
|
||
2017-09-21 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Fix `mmvar' array pointers.
|
||
|
||
Without this change, clang's AddressSanitizer reports many runtime
|
||
errors due to misaligned addresses.
|
||
|
||
* src/truetype/ttgxvar.c (TT_Get_MM_Var): Use multiples of pointer
|
||
size for sub-array offsets into `mmvar'.
|
||
|
||
2017-09-20 Werner Lemberg <wl@gnu.org>
|
||
|
||
[truetype] Integer overflows.
|
||
|
||
Changes triggered by
|
||
|
||
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3429
|
||
|
||
* src/truetype/ttinterp.c (Ins_SHPIX, Ins_DELTAP): Use NEG_LONG.
|
||
(Ins_MIAP): Use SUB_LONG.
|
||
|
||
2017-09-19 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[build] Fix DLL builds in Visual C++ project.
|
||
|
||
* build/windows/vc2010/freetype.vcxproj: Use DynamicLibrary in Debug
|
||
and Release configurations.
|
||
* include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF)
|
||
[_DLL]: Use Visual C++ extensions.
|
||
|
||
2017-09-19 John Tytgat <John.Tytgat@esko.com>
|
||
|
||
[cff] Fix family name logic of pure CFF fontdata (#52056).
|
||
|
||
1. If `FamilyName' is present in the CFF font, use this for
|
||
FT_Face's `family_name'.
|
||
2. Otherwise, use the face name and chop off any subset prefix.
|
||
3. If at this point FT_Face's `family_name' is set, use this
|
||
together with the full name to determine the style.
|
||
4. Otherwise, use `CIDFontName' as FT_Face's `family_name'.
|
||
5. If we don't have a valid style, use "Regular".
|
||
|
||
Previously, FT_Face's `family_name' entry for pure CFF fontdata
|
||
nearly always was the fontname itself, instead of the `FamilyName'
|
||
entry in the CFF font (assuming there is one).
|
||
|
||
* src/cff/cffobjs.c (cff_face_init) [pure_cff]: Implement it.
|
||
|
||
2017-09-18 Alexei Podtelezhnikov <apodtele@gmail.com>
|
||
|
||
[build] Declutter Visual C++ 2010-2017 project.
|
||
|
||
* build/windows/vc2010/freetype.vcxproj: Use MaxSpeed (/02)
|
||
optimization for Release configuration throughout the project.
|
||
|
||
|
||
----------------------------------------------------------------------------
|
||
|
||
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,
|
||
and distributed under the terms of the FreeType project license,
|
||
LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||
indicate that you have read the license and understand and accept it
|
||
fully.
|
||
|
||
|
||
Local Variables:
|
||
version-control: never
|
||
coding: utf-8
|
||
End:
|