summaryrefslogtreecommitdiff
path: root/Build/source/libs/freetype2/freetype-src/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/freetype2/freetype-src/ChangeLog')
-rw-r--r--Build/source/libs/freetype2/freetype-src/ChangeLog1366
1 files changed, 0 insertions, 1366 deletions
diff --git a/Build/source/libs/freetype2/freetype-src/ChangeLog b/Build/source/libs/freetype2/freetype-src/ChangeLog
index cc7c5f36147..e419b471e0c 100644
--- a/Build/source/libs/freetype2/freetype-src/ChangeLog
+++ b/Build/source/libs/freetype2/freetype-src/ChangeLog
@@ -1,1369 +1,3 @@
-2022-03-31 Werner Lemberg <wl@gnu.org>
-
- * Version 2.12.0 released.
- ==========================
-
- Tag sources with `VER-2-12-0'.
-
- * docs/VERSION.TXT: Add entry for version 2.12.0.
- * docs/CHANGES, docs/release: Updated.
-
- * README, src/base/ftver.rc, builds/windows/vc2010/index.html,
- builds/windows/visualc/index.html, builds/windows/visualce/index.html,
- builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/index.html,
- docs/freetype-config.1: s/2.11.1/2.12.0/, s/2111/2120/.
-
- * include/freetype/freetype.h (FREETYPE_MINOR): Set to 12.
- (FREETYPE_PATCH): Set to 0.
-
- * builds/unix/configure.raw (version_info): Set to 24:2:18.
- * CMakeLists.txt (VERSION_MINOR): Set to 12.
- (VERSION_PATCH): Set to 0.
-
- * builds/toplevel.mk (do-dist): Generate `ChangeLog` entries for all commits
- since version 2.11.0 (when we stopped creating this file manually).
-
-2022-03-31 Werner Lemberg <wl@gnu.org>
-
- Fix clang++ warnings.
-
- * src/base/ftglyph.c (ft_svg_glyph_prepare), src/base/ftobj.c
- (ft_glyphslot_init), src/cache/ftccmap.c (ftc_cmap_node_new),
- src/cache/ftcimage.c (FTC_INode_New), src/lzw/ftlzw.c (FT_Stream_OpenLZW),
- src/psaux/psobjs.c (ps_parser_load_field), src/pshinter/pshglob.c
- (psh_globals_new), src/sfnt/ttsvg.c (tt_face_load_svg_doc): Initialize
- variables used for allocation.
-
- * src/sdf/ftsdf.c (split_sdf_conic, split_sdf_cubic): Change type of
- `max_splits` to FT_UInt.
- (sdf_generate_bounding_box): Add cast.
-
-2022-03-30 Werner Lemberg <wl@gnu.org>
-
- Whitespace.
-
-2022-03-30 Werner Lemberg <wl@gnu.org>
-
- [builds] Fix creation of `freetype2.pc` for static-only builds.
-
- We have to help `pkg-config` since it can't recognize that there is no
- shared library installed.
-
- Note that meson already does exactly the same.
-
- * builds/unix/configure.raw (REQUIRES_PRIVATE, LIBS_PRIVATE): Rename to...
- (PKGCONFIG_REQUIRES_PRIVATE, PKGCONFIG_LIBS_PRIVATE): This. Adjust them
- depending on `$enable_shared`.
- (PKGCONFIG_REQUIRES, PKGCONFIG_LIBS): New variables.
-
- * builds/unix/freetype2.in, builds/unix/unix-def.in: Use new and updated
- variables.
-
-2022-03-25 Werner Lemberg <wl@gnu.org>
-
- Add `FT_FACE_FLAG_SBIX_OVERLAY` and `FT_HAS_SBIX_OVERLAY`.
-
- * include/freetype/freetype.h (FT_FACE_FLAG_SBIX_OVERLAY,
- FT_HAS_SBIX_OVERLAY): New macro.
-
- * src/sfnt/ttsbit.c (tt_face_load_sbit): Handle `FT_FACE_FLAG_SBIX_OVERLAY`.
- Remove obsolete tracing message.
-
-2022-03-25 Werner Lemberg <wl@gnu.org>
-
- Add `FT_PARAM_TAG_IGNORE_SBIX`.
-
- This is another bit to handle 'sbix' tables as described in the OpenType
- specification.
-
- * include/freetype/ftparams.h (FT_PARAM_TAG_IGNORE_SBIX): New macro.
-
- * src/sfnt/sfobjc.c (is_apple_sbix): Rename to...
- (has_sbix): ... this.
- Check for more sbit tables.
- Handle `FT_PARAM_TAG_IGNORE_SBIX` to eventually control `has_sbix`.
- Only call sbit table loader if an sbit table is present.
-
-2022-03-25 Werner Lemberg <wl@gnu.org>
-
- [truetype] Fix 'sbix' table handling.
-
- * src/sfnt/ttsbit.c (tt_face_load_sbix_image): Correct calculation of
- 'metrics->horiBearingY'.
- Set vertical metrics.
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Adjust setting of `FT_FACE_FLAG_SBIX`.
- Handle metrics of fonts with 'sbix' table.
-
- * src/truetype/ttgload.c (TT_Load_Glyph): For 'sbix' embedded bitmaps, apply
- bbox offset and bearing values of the corresponding glyph in the 'glyf'
- table if it exists and has a contour.
-
- * src/truetype/ttobjs.c (tt_face_init): Handle font with 'sbix' table.
-
- Fixes issue #998.
-
-2022-03-25 Werner Lemberg <wl@gnu.org>
-
- Add `FT_FACE_FLAG_SBIX` and `FT_HAS_SBIX`.
-
- Fonts with 'sbix' tables need special handling by the application.
-
- * include/freetype/freetype.h (FT_FACE_FLAG_SBIX, FT_HAS_SBIX): New macros.
-
- * src/sfnt/sfobjs.c (sfnt_load_face): Set `FT_FACE_FLAG_SBIX` if 'sbix'
- table is present.
-
-2022-03-25 Werner Lemberg <wl@gnu.org>
-
- * include/freetype/freetype.h (FT_LOAD_SBITS_ONLY): Tag macro as public.
-
-2022-03-24 Carlo Bramini <carlo.bramix@libero.it>
-
- [builds/windows] Fix WCE support.
-
- * builds/windows/ftsystem.c [_WIN32_WCE]: Include <malloc.h> needed by
- _alloca.
-
-2022-03-24 Steve Lhomme <robux4@ycbcr.xyz>
-
- [build/windows] Improve UWP support.
-
- * builds/windows/ftsystem.c [UWP]: Wrap CreateFile2 into CreateFileA.
-
-2022-03-21 Werner Lemberg <wl@gnu.org>
-
- * src/sfnt/ttkern.c (tt_face_get_kerning): Exit early if no table.
-
- Fixes #1141.
-
-2022-03-20 Ben Wagner <bungeman@chromium.org>
-
- [woff2] Support overlap flag for simple glyphs.
-
- In the woff2 spec it has been proposed to allow the OVERLAP_SIMPLE flag
- to be retained through the woff2 format [0].
-
- [0] https://www.w3.org/TR/WOFF2/#glyf_table_format
-
- * src/sfnt/sfwoff2.h (GLYF_OVERLAP_SIMPLE): add glyf flag.
-
- * src/sfnt/sfwoff2.c (reconstruct_glyf): parse optionFlags and
- overlapSimpleBitmap[]. (store_points): set OVERLAP_SIMPLE on first point's
- flag if the overlap bit is set.
-
-2022-03-19 Werner Lemberg <wl@gnu.org>
-
- [cff] Synchronize `cff_slot_load` with `TT_Load_Glyph`.
-
- * src/cff/cffgload.c (IS_DEFAULT_INSTANCE): New macro.
- (cff_slot_load): Use it.
-
-2022-03-19 Werner Lemberg <wl@gnu.org>
-
- * src/base/ftobjs.c (FT_Request_Size): Guard `face->size`.
-
- Fixes #1140.
-
-2022-03-19 Werner Lemberg <wl@gnu.org>
-
- * src/base/ftobjs.c (ft_open_face_internal): Thinko.
-
-2022-03-19 Ben Wagner <bungeman@chromium.org>
-
- [doc] FT_OUTLINE_OVERLAP was introduced in 2.10.3.
-
- * include/freetype/ftimage.h (FT_OUTLINE_OVERLAP): Document when added.
-
-2022-03-19 Werner Lemberg <wl@gnu.org>
-
- * src/base/ftobjs.c (ft_open_face_internal): Properly guard `face_index`.
-
- We must ensure that the cast to `FT_Int` doesn't change the sign.
-
- Fixes #1139.
-
-2022-03-17 Werner Lemberg <wl@gnu.org>
-
- [sfnt] Avoid invalid face index.
-
- Fixes #1138.
-
- * src/sfnt/sfobjs.c (sfnt_init_face), src/sfnt/sfwoff2.c (woff2_open_font):
- Check `face_index` before decrementing.
-
-2022-03-07 Werner Lemberg <wl@gnu.org>
-
- Documentation, whitespace.
-
-2022-03-05 Anuj Verma <anuj@womp.xyz>
-
- [sdf] Fix corner checks and improve performance.
-
- * src/sdf/ftsdf.c (sdf_generate_bounding_box): Always check for a corner if
- two distances (for different curves) are very close.
-
- (sdf_conic_to): Check whether the conic curve can be treated as a line
- (which happens if the control point coincides with any end point).
-
-2022-03-05 Anuj Verma <anuj@womp.xyz>
-
- [sdf] Implement deviation-based splitting for Bezier curves.
-
- * src/sdf/ftsdf.c (split_sdf_cubic, split_sdf_shape): Add checks to figure
- out the deviation of Bezier curves and stop splitting if the curve is flat
- enough.
-
- * src/sdf/ftsdfcommon.h (ONE_PIXEL): New macro.
-
-2022-03-05 Anuj Verma <anuj@womp.xyz>
-
- * include/freetype/freetype.h: Improve SDF documentation.
-
-2022-03-03 Ben Wagner <bungeman@chromium.org>
-
- [sfnt] Fix bounds check in SVG.
-
- The `SVG_DOCUMENT_LIST_MINIMUM_SIZE` macro is non trivial and not
- protected by parentheses. As a result, the expression
- `table_size - SVG_DOCUMENT_LIST_MINIMUM_SIZE` expands to
- `table_size - 2U + SVG_DOCUMENT_RECORD_SIZE` instead of the expected
- `table_size - (2U + SVG_DOCUMENT_RECORD_SIZE)`. This causes an incorrect
- bounds check which may lead to reading past the end of the `SVG ` table.
-
- * src/sfnt/ttsvg.c (tt_face_load_svg): wrap macro definitions in
- parentheses.
-
- Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=45179
-
-2022-02-23 Ben Wagner <bungeman@chromium.org>
-
- [psaux] Full bounds check for OtherSubr 19.
-
- It is possible for OtherSubr 19 to be invoked when `decoder->buildchar` is
- NULL (so that `decoder->len_buildchar` is 0), the `blend` is non-NULL with
- `blend->num_designs` set to 2, and the user supplied `idx` to be large (for
- example 0xFFFFFFFE). Since these are all `FT_UInt32` the existing bounds
- check overflows in a well defined manner, allowing for an invalid call to
- `memcpy`.
-
- In addition, it is possible to call OtherSubr 19 with
- `decoder->len_buildchar`, `blend->num_designs`, and `idx` all zero (implying
- that `blend->weight_vector` and `decoder->buildchar` are NULL). This passes
- the bounds check (it is logically always fine to copy nothing starting at
- index zero) but may invoke undefined behavior in `ft_memcpy` if it is backed
- by `memcpy`. Calling `memcpy` with either the `src` or `dst` NULL is
- undefined behavior (even if `count` is zero).
-
- * src/psaux/psintrp.c (cf2_interpT2CharString): Correctly check that
- `blend->num_designs` can be copied to `decoder->buildchar[idx]`.
- Also avoid passing NULL to `ft_memcpy`.
-
- Bug: https://crbug.com/1299259
-
-2022-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-
- [cmake] Drop the support of CMake 2.x.
-
- * CMakeLists.txt: Require CMake 3.0 (released on 2014) or newer.
-
- The issue #1059 reports the difficulty to support both of
- CMake 2.x and newer one by single CMakeLists.txt without
- the inflation of cmake_policy() workarounds.
-
- For better maintainability, the support of CMake 2.x is
- dropped.
-
-2022-02-19 Werner Lemberg <wl@gnu.org>
-
- * src/bdf/README: Updated.
-
-2022-02-19 Werner Lemberg <wl@gnu.org>
-
- * builds/mac/ftmac.c, src/base/ftmac.c: s|FT_MAC_H|<freetype/ftmac.h>|.
-
-2022-02-19 Werner Lemberg <wl@gnu.org>
-
- src/sfnt/ttkern.c (tt_face_load_kern): Micro-optimize.
-
- A kerning table can be handled by binary search if it has equal entries.
-
- Fixes #1132.
-
-2022-02-17 Steve Lhomme <robux4@ycbcr.xyz>
- Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [builds/windows] Add support for legacy UWP builds.
-
- * builds/windows/ftsystem.c: Add neccessary macro substitutions to
- enable strict UWP builds.
-
- See !141.
-
-2022-02-16 Werner Lemberg <wl@gnu.org>
-
- ftmm.h: Minor documentation improvement.
-
-2022-02-13 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [pshinter] Tune PSH_STRONG_THRESHOLD_MAXIMUM value.
-
- Before the change, the hinting engine frequently confused horizontal
- stem and serif hints making some stems too thin and some serifs too
- thick. The value was tuned using serif fonts from the URW+ base 35
- collection.
-
- * src/pshinter/pshalgo.c [PSH_STRONG_THRESHOLD_MAXIMUM]: s/30/12/.
-
-2022-02-12 Werner Lemberg <wl@gnu.org>
-
- t1tables.h: Documentation improvements.
-
-2022-02-12 Werner Lemberg <wl@gnu.org>
-
- t1tables.h: Whitespace.
-
-2022-02-11 Werner Lemberg <wl@gnu.org>
-
- [type42] Fix `FT_Get_PS_Font_Private` for this format.
-
- Since Type42 fonts don't have a 'Private' dictionary, the return value
- should be `FT_Err_Invalid_Argument`.
-
- * src/type42/t42drivr.c (t42_ps_get_font_private): Removed.
- (t42_service_ps_info): Updated.
-
-2022-02-09 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [pshinter] Clear reused mask.
-
- In PS hinter, memory allocations persist until the module is done.
- Therefore, we have to clear reused masks.
-
- * src/pshinter/pshrec.c (ps_mask_table_alloc): Clear reused mask.
-
-2022-02-09 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [pshinter] Use unsigned indices.
-
- This reduces casting and eliminates some checks.
-
- * src/pshinter/pshrec.c (ps_mask_test_bit, ps_mask_table_merge,
- ps_dimension_add_t1stem, ps_hints_t1stem3): Updated.
- (ps_dimension_add_counter): Updated, unnecessary checks removed.
-
-2022-02-08 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [pshinter] Fix mask merging.
-
- We forgot to update the number of bits when merging a larger mask
- into a smaller one. This fix might have rendering effects.
-
- * src/pshinter/pshrec.c (ps_mask_table_merge): Inherit the number
- of bits from a larger mask. There is no need to zero unused bits,
- already zeroed during allocation.
- (ps_mask_clear_bit): Removed.
- (ps_mask_ensure): Minor.
-
-2022-02-08 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [pshinter] Revise the hint table handling.
-
- * src/pshinter/pshrec.c (ps_hint_table_ensure): Remove redundant size
- check; avoid array zeroing because it is fully initialized when used.
- (ps_hint_table_alloc): Fix off-by-one comparison and remove another
- zeroing of the array elements.
-
-2022-02-06 Werner Lemberg <wl@gnu.org>
-
- Various minor doc fixes.
-
-2022-02-06 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [builds/windows] Add SVG to to project files.
-
- * builds/windows/vc2010/freetype.vcxproj: Updated.
- * builds/windows/vc2010/freetype.vcxproj.filters: Updated.
- * builds/windows/visualc/freetype.vcproj: Updated.
-
-2022-02-03 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- * src/winfonts/winfnt.c (fnt_face_get_dll_font): Trace font resources.
-
-2022-02-02 Eric Jing <@CPUcontrol>
-
- [cmake] Fix build on MacOS.
-
- * CMakeLists.txt (CMAKE_OSX_ARCHITECTURES): Update value to fix the building
- of a framework on MacOS.
-
- * builds/mac/freetype-Info.plist (CFBundleExecutable): Make identifier
- lowercase only.
-
- Fixes #1127.
-
-2022-02-02 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [psaux] Revise `PS_Table` handling.
-
- The old impleemntation was not using `FT_REALLOC`, buing too careful
- with the offset rebasing. It shoudl be safe to rely on the base
- movements.
-
- * src/psaux/psobjs.c (reallocate_t1_table, shift_elements): Combine
- into...
- (ps_table_realloc): ... this function based on `FT_REALLOC`.
- (ps_table_done): Simplified.
- (ps_table_add): Updated.
-
-2022-02-02 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- * src/cache/ftcmru.c (FTC_MruList_New): Explain zeroing.
-
-2022-01-31 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [cache] Partially revert 9870b6c07e2c.
-
- Fix crashes reported by Werner.
-
- * src/cache/ftcmru.c (FTC_MruList_New): Use `FT_ALLOC` again.
-
-2022-01-31 Werner Lemberg <wl@gnu.org>
-
- freetype.h: Minor documentation improvement.
-
-2022-01-31 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [cache] Fix fallouts from edd4fedc5427.
-
- Reported by Werner.
-
- * src/cache/ftcimage.c (FTC_INode_New): Always initialize FT_Glyph.
- * src/cache/ftcsbits.c (FTC_SNode_New): Always initialize FT_SBit.
-
-2022-01-31 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- Clean-up - do not doubt FT_FREE.
-
- * src/base/ftobjs.c (memory_stream_close): Do not reassign zero
- after `FT_FREE`.
- * src/sfnt/sfwoff.c (sfnt_stream_close): Ditto.
- * src/sfnt/sfwoff2.c (stream_close): Ditto.
- * src/psaux/psobjs.c (ps_parser_load_field): Ditto.
- * src/truetype/ttgxvar.c (ft_var_load_avar, tt_set_mm_blend,
- tt_set_mm_blend): Ditto.
-
-2022-01-30 Werner Lemberg <wl@gnu.org>
-
- * CMakeLists.txt: Include 'FindPkgConfig' module.
-
- Older cmake versions don't provide `pkg_check_modules` by default.
-
- Fixes #1126.
-
-2022-01-30 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- * src/psaux/psobjs.c (ps_parser_load_field): Reduce `string` scope.
-
-2022-01-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-
- [cmake] Check the availability of `bzip2.pc'.
-
- (CMakeLists.txt): Check the availability of `bzip2.pc'.
-
- * If `bzip2.pc' is available, Requires.private should include
- bzip2, but Libs.private should not include -lbz2.
-
- * If `bzip2.pc' is unavailable, Requires.private cannot include
- bzip2, but Libs.private should include -lbz2.
-
- Fix #897.
-
-2022-01-28 Werner Lemberg <wl@gnu.org>
-
- * unix/configure.raw: We need 'librsvg' version 2.46.0 or newer.
-
- Older versions don't have function `rsvg_handle_get_intrinsic_dimensions`.
-
-2022-01-28 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- Minor clean-ups.
-
- * src/base/ftrfork.c (raccess_make_file_name): Do not set error.
- * src/sfnt/sfdriver.c (get_win_string, get_apple_string): Ditto.
- * src/cff/cffobjs.c (cff_strcpy): Do not confuse about error.
- * src/psaux/psobjs.c (ps_table_done): Ditto.
- * src/truetype/ttgxvar.c (ft_var_readpacked*, ft_var_load_avar): Ditto.
-
-2022-01-27 Ben Wagner <bungeman@chromium.org>
-
- Document `FT_Outline_Decompose` degenerate segments.
-
- `FT_Outline_Decompose` does not filter out and can return degenerate
- segments in an outline. This can be surprising when attemping to
- stroke such an outline. Clarify the existing documentation on this
- matter to cover all forms of degeneracy (without specifying exactly
- how they will be reported), why they might arise, and better explain in
- what cases they may be an issue.
-
- * include/freetype/ftoutlin.h (FT_Outline_Decompose): update
- documentation.
-
- Fixes #952.
-
-2022-01-27 Anuj Verma <anujv@posteo.net>
-
- Fix sdf computation while `USE_SQUARED_DISTANCES`.
-
- Function `map_fixed_to_sdf` expects spread to be absolute
- and not squared.
-
- * src/sdf/ftbsdf.c (finalize_sdf): Pass absolute spread
- while `map_fixed_to_sdf`.
-
- * src/sdf/ftsdf.c (sdf_generate_bounding_box): Ditto.
-
-2022-01-27 Tapish Ojha <tapishojha2000@gmail.com>
-
- [sfnt] Improve sRGB constants.
-
- * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use slightly
- more precise values.
-
- Fixes #1018.
-
-2022-01-27 Werner Lemberg <wl@gnu.org>
-
- docs/release: Updated.
-
-2022-01-26 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- * src/pfr/pfrload.c (pfr_phy_font_load): Use FT_QNEW_ARRAY.
-
-2022-01-26 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- * src/sdf/ftsdf.c (sdf_*_new): Use standard macro.
-
-2022-01-26 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [pcf] Delay encoding allocation and avoid its zeroing.
-
- * src/pcf/pcfread.c (pcf_get_encodings): Refactor and use FT_QNEW_ARRAY.
-
-2022-01-25 Werner Lemberg <wl@gnu.org>
-
- Aarg, typo.
-
-2022-01-25 Werner Lemberg <wl@gnu.org>
-
- freetype.h: More updates to `FT_LOAD_COLOR` description.
-
-2022-01-25 Werner Lemberg <wl@gnu.org>
-
- * builds/unix/configure.raw (FT_DEMO_CFLAGS): Pass `-DHAVE-LIBRSVG`.
-
- This helps in decoupling library support from `pkg-config` for other
- platforms.
-
-2022-01-25 Werner Lemberg <wl@gnu.org>
-
- Update documentation for `FT_LOAD_COLOR`.
-
-2022-01-24 Ben Wagner <bungeman@chromium.org>
-
- [pshinter] Ensure all point flags are initialized.
-
- Only off curve point flags were fully initialized.
-
- * src/pshinter/pshalgo.c (psh_glyph_init): always initialize flags.
-
- Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43930
-
-2022-01-24 Werner Lemberg <wl@gnu.org>
-
- .mailmap: Typo.
-
-2022-01-23 Werner Lemberg <wl@gnu.org>
-
- * src/svg/ftsvg.c (ft_svg_property_set): Disallow NULL pointers.
-
-2022-01-23 Werner Lemberg <wl@gnu.org>
-
- .mailmap: Updated.
-
-2022-01-23 Werner Lemberg <wl@gnu.org>
-
- More documentation on handling OT-SVG.
-
-2022-01-23 Werner Lemberg <wl@gnu.org>
-
- * src/svg/ftsvg.c: Rename `svg_hooks` to `svg-hooks` for consistency.
-
-2022-01-22 Werner Lemberg <wl@gnu.org>
-
- [sfnt] Reject malformed SVG tables.
-
- * src/sfnt/ttsvg.c (SVG_TABLE_HEADER_SIZE, SVG_DOCUMENT_RECORD_SIZE,
- SVG_DOCUMENT_LIST_MINIMUM_SIZE, SVG_MINIMUM_SIZE): New macros.
- (tt_face_load_svg): Check offsets.
- Check table and record sizes.
-
- Reported as
-
- https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43918
-
-2022-01-22 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- * src/psaux/psobjs.c (ps_table_new): Revert to zeroing.
-
-2022-01-20 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [psaux, type1, type42] Avoid annecessary zeroing.
-
- * src/psaux/psobjs.c (ps_table_new): Use FT_QNEW_ARRAY.
- * src/type1/t1load.c (parse_encoding): Ditto.
- * src/type42/t42parse.c (t42_parse_encoding): Ditto.
-
-2022-01-20 Werner Lemberg <wl@gnu.org>
-
- [builds/unix] Handle 'librsvg' for demo programs.
-
- * builds/unix/configure.raw: Check for 'librsvg'.
- (LIB_CLOCK_GETTIME): Don't call `AC_SUBST` on this but on...
- (FT_DEMO_CFLAGS, FT_DEMO_LDFLAGS): ... these two new variables.
-
- * builds/unix/unix-cc.in (LIB_CLOCK_GETTIME): Replaced by...
- (FT_DEMO_CFLAGS, FT_DEMO_LDFLAGS): ... these two new variables.
-
-2022-01-20 Moazin Khatti <moazinkhatri@gmail.com>
-
- Add 'svg' module for OT-SVG rendering.
-
- * CMakeLists.txt (BASE_SRCS): Add svg module file.
- * meson.build (ft2_public_headers): Add `otsvg.h`.
-
- * modules.cfg (RASTER_MODULES): Add `svg` module.
-
- * builds/meson/parse_modules_cfg.py: Add svg module.
-
- * include/freetype/config/ftmodule.h: Add `ft_svg_renderer_class`.
- * include/freetype/fterrdef.h: Add `Invalid_SVG_Document` and
- `Missing_SVG_Hooks` error codes.
- * include/freetype/internal/fttrace.h: Add tracing for `otsvg`.
- * include/freetype/internal/svginterface.h: New file. It adds an interface
- to enable the presetting hook from the `base` module.
- * include/freetype/otsvg.h (SVG_Lib_Init_Func, SVG_Lib_Free_Func,
- SVG_Lib_Render_Func, SVG_Lib_Preset_Slot_Func): New hooks for SVG rendering.
- (SVG_RendererHooks): New structure to access them.
-
- * src/base/ftobjs.c: Include `svginterface.h`.
- (ft_glyphslot_preset_bitmap): Add code for presetting the slot for SVG
- glyphs.
- (ft_add_renderer): Updated.
-
- * src/svg/*: New files.
-
-2022-01-20 Moazin Khatti <moazinkhatri@gmail.com>
-
- Add `FT_Glyph` support for OT-SVG glyphs.
-
- * include/freetype/ftglyph.h (FT_SvgGlyphRec, FT_SvgGlyph): New structure.
-
- * src/base/ftglyph.c: Include `otsvg.h`.
- (ft_svg_glyph_init, ft_svg_glyph_done, ft_svg_glyph_copy,
- ft_svg_glyph_transform, ft_svg_glyph_prepare): New function.
- (ft_svg_glyph_class): New class.
- (FT_New_Glyph, FT_Glyph_To_Bitmap): Updated to handle OT-SVG glyphs.
- * src/base/ftglyph.h: Updated.
-
-2022-01-20 Moazin Khatti <moazinkhatri@gmail.com>
-
- [truetype, cff] Add code to load SVG document.
-
- * src/cff/cffgload.c (cff_slot_load): Add code to load SVG doc.
- * src/truetype/ttgload.c (TT_Load_Glyph): Add code to load SVG doc.
-
-2022-01-20 Moazin Khatti <moazinkhatri@gmail.com>
-
- Add code to load OT-SVG glyph documents.
-
- * include/freetype/config/ftheader.h (FT_OTSVG_H): New macro.
- * include/freetype/freetype.h (FT_FACE_FLAG_SVG, FT_HAS_SVG): New macros.
- (FT_LOAD_SVG_ONLY): New internal macro.
- * include/freetype/ftimage.h (FT_Glyph_Format): New enumeration value
- `FT_GLYPH_FORMAT_SVG`.
- * include/freetype/internal/ftobjs.h (FT_GLYPH_OWN_GZIP_SVG): New macro.
- * include/freetype/internal/fttrace.h: Add `ttsvg` for `ttsvg.c`.
- * include/freetype/internal/sfnt.h(load_svg, free_svg, load_svg_doc): New
- functions.
- * include/freetype/internal/tttypes.h (TT_FaceRec): Add `svg` for
- the SVG table.
- * include/freetype/otsvg.h (FT_SVG_DocumentRec): New structure to hold the
- SVG document and other necessary information of an OT-SVG glyph in a glyph
- slot.
- * include/freetype/tttags.h (TTAG_SVG): New macro.
-
- * src/base/ftobjs.c: Include `otsvg.h`.
- (ft_glyphslot_init): Allocate `FT_SVG_DocumentRec` in `slot->other`
- if the SVG table exists.
- (ft_glyphslot_clear): Free it upon clean-up if it is a GZIP compressed
- glyph.
- (ft_glyphslot_done): Free the document data if it is a GZIP compressed
- glyph.
- (FT_Load_Glyph): Don't auto-hint SVG documents.
-
- * src/cache/ftcbasic.c (ftc_basic_family_load_glyph): Add support for
- FT_GLYPH_FORMAT_SVG.
-
- * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `ttsvg.c`.
- * src/sfnt/sfdriver.c: Include `ttsvg.h`.
- (sfnt_interface): Add `tt_face_load_svg`, `tt_face_free_svg` and
- `tt_face_load_svg_doc`.
- * src/sfnt/sfnt.c: Include `ttsvg.c`.
- * src/sfnt/sfobjs.c (sfnt_load_face, sfnt_done_face): Add code to load and
- free data of the the SVG table.
- * src/sfnt/ttsvg.c: New file, implementing `tt_face_load_svg`,
- `tt_face_free_svg` and `tt_face_load_svg_doc`.
- * src/sfnt/ttsvg.h: Declarations of the SVG functions in
- `ttsvg.c`.
-
-2022-01-20 Moazin Khatti <moazinkhatri@gmail.com>
-
- Add flag `FT_CONFIG_OPTION_SVG`.
-
- This flag is going to be used to conditionally compile support for OT-SVG
- glyphs. FreeType will do the parsing and rely on external hooks for
- rendering of OT-SVG glyphs.
-
- * devel/ftoption.h, include/freetype/config/ftoption.h
- (FT_CONFIG_OPTION_SVG): New flag.
-
-2022-01-20 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [pshinter] Avoid unnecessary zeroing.
-
- * src/pshinter/pshalgo.c (psh_hint_table_init,psh_glyph_init,
- psh_glyph_interpolate_normal_points): Use FT_QNEW_ARRAY.
-
-2022-01-20 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- * include/freetype/freetype.h: Clarify `FT_Size` life cycle.
-
-2022-01-20 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [base] Undefined scale means no scale.
-
- It might be surprising that FreeType does not have default ppem and
- the size has to be set explicitly or face undefined behavior with
- undefined variables and errors. This offers an alternative to
- missing or zero scale by simply setting FT_LOAD_NO_SCALE. Defined
- behavior is bettr than undefined one.
-
- This is alternative to !132 and discussed in
- https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43708
-
- * src/base/ftobjs.c (FT_Load_Glyph): Deal with zero scale.
- * include/freetype/freetype.h: Document it.
-
-2022-01-18 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- * src/autofit/afglobal.c (af_face_globals_new): Reduce zeroing.
-
- Everything in AF_FaceGlobals is initialized except metrics. Those
- are zeroed here and initialized on demand later.
-
-2022-01-16 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [bdf,type1] Avoid unnecessary hash zeroing.
-
- * src/bdf/bdflib.c (_bdf_parse_start): Use `FT_QALLOC`.
- * src/type1/t1load.c (parse_subrs): Use `FT_QNEW`.
-
-2022-01-16 Ozkan Sezer <sezeroz@gmail.com>
-
- Add Watcom C/C++ calling.
-
- In the unlikely case the source is built with OpenWatcom's -ec?
- switches to enforce a calling convention, the qsort() compare
- function must still be set to __watcall.
-
- * include/freetype/internal/compiler-macros.h (FT_COMPARE_DEF):
- Updated.
-
-2022-01-15 Ben Wagner <bungeman@chromium.org>
-
- [pshinter] Avoid accessing uninitialized zone.
-
- The `normal_top.count` may be 0, implying no `normal_top.zones` exist.
- The code must not access these (non-existent) `normal_top.zones`.
-
- * src/pshinter/pshalgo.c (ps_hints_apply): Do not assume that
- `normal_top.zones[0]` is initialized. Test `normal_top.count`
- before using `normal_top.zones[0]`. Do not rescale if there are no
- `zones`.
-
- Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43675
-
-2022-01-15 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [cache] Avoid unnecessary zeroing.
-
- * src/cache/ftccmap.c (ftc_cmap_node_new): Use `FT_QNEW`.
- * src/cache/ftcimage.c (FTC_INode_New): Ditto.
- * src/cache/ftcsbits.c (FTC_SNode_New): Ditto.
-
-2022-01-15 Ozkan Sezer <sezeroz@gmail.com>
-
- Add Watcom C/C++ support.
-
- * include/freetype/config/integer-types.h: Make sure `long long` is
- used then available.
- * include/freetype/internal/ftcalc.h (FT_MSB): Add Watcom C/C++ pragma.
-
-2022-01-15 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- * src/sdf/ftbsdf.c (ED): s/near/prox/.
-
- This works around the Watcom C definition of `near` as restricted
- __near.
-
-2022-01-15 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- * include/freetype/internal/compiler-macros.h [FT_COMPARE_DEF]: Tighten.
-
- This works around Watcom C library using __watcall.
-
-2022-01-14 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- * src/pshinter/pshglob.c (psh_globals_new): Avoid zeroing.
-
- This large allocation is followed by careful initialization. Whatever
- is missed should be initialized manually.
-
-2022-01-14 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- * src/base/fthash.c (hash_insert): Avoid unnecessary zeroing.
-
-2022-01-14 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- * src/bdf/bdflib.c (_bdf_parse_glyphs): Remove redundant assignment.
-
-2022-01-13 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- * src/lzw/ftlzw.c (FT_Stream_OpenLZW): Avoid unnecessary zeroing.
-
-2022-01-13 Ben Wagner <bungeman@chromium.org>
-
- [bzip2] Reset bzip stream on any error.
-
- According to the bzip documentation it is undefined what will happen if
- `BZ2_bzDecompress` is called on a `bz_stream` it has previously returned an
- error against. If `BZ2_bzDecompress` returns anything other than `BZ_OK`
- the only valid next action is `BZ2_bzDecompressEnd`.
-
- Reported as
-
- https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43564
-
- * src/bzip2/ftbzip2.c (FT_BZip2FileRec_): Add `reset` to track the need to
- reset the stream.
- (ft_bzip2_file_init): Initialize `reset` to 0.
- (ft_bzip2_file_reset): Set `reset` to 0 after resetting.
- (ft_bzip2_file_fill_output): Set `reset` to 1 when `BZ2_bzDecompress`
- returns anything other than `BZ_OK`.
-
-2022-01-12 Werner Lemberg <wl@gnu.org>
-
- .gitlab-ci.yml: Minor comment cleanups.
-
-2022-01-12 Azamat H. Hackimov <azamat.hackimov@gmail.com>
-
- .gitlab-ci.yml: Add steps to `before_script` to ensure recent CA.
-
- Fetch current list of valid CAs from Windows Update and manually import them
- to trusted datastore. This action is required to make downloads work from
- sites that need recent Let's Encrypt ISRG Root X1 certificate.
-
-2022-01-11 Ben Wagner <bungeman@chromium.org>
-
- Revert "[bzip2] Avoid use of uninitialized memory."
-
- This reverts commit d276bcb7f0c02c20d3585b2e5626702df6d140a6.
-
- The original commit did avoid the use of uninitialized memory. However,
- it appears that the original commit is no longer required. The
- underlying issue was resolved by a change in freetype2-testing "Build
- bzip2 correctly." [0]. Prior to [0] bzip2 was built without msan, so
- bzip2 writes were not tracked or considered initialized. Clearing
- `buffer` in the original commit allowed msan to see the `buffer` content
- initialized once in FreeType code, but msan saw no writes into buffer
- from bzip2. With bzip2 now built with msan, the bzip2 writes are
- properly instrumented and msan sees the bzip2 writes into the buffer. As
- a result the original commit can be safely reverted to allow for better
- detection of other uninitialized data scenarios.
-
- * src/bzip2/ftbzip2.c (FT_Stream_OpenBzip2): Revert to using `FT_QNEW`.
-
- [0] https://github.com/freetype/freetype2-testing/commit/3c052a837a3c960709227a0d6ddd256e87b88853
-
-2022-01-11 Ben Wagner <bungeman@chromium.org>
-
- [type42] Track how much type42 ttf data is available.
-
- Currently `T42_Open_Face` eagerly allocates 12 bytes for the ttf header
- data which it expects `t42_parse_sfnts` to fill out from /sfnts data.
- However, there is no guarantee that `t42_parse_sfnts` will actually be
- called while parsing the type42 data as the /sfnts array may be missing
- or very short. This is also confusing behavior as it means
- `T42_Open_Face` is tightly coupled to the implementation of the very
- distant `t42_parse_sfnts` code which requires at least 12 bytes to
- already be reserved in `face->ttf_data`.
-
- `t42_parse_sfnts` itself eagerly updates `face->ttf_size` to track how
- much space is reserved for ttf data instead of traking how much data has
- actually been written into `face->ttf_data`. It will also act strangely
- in the presense of multiple /sfnts arrays.
-
- * src/type42/t42objs.c (T42_Open_Face): ensure `ttf_data` is initialized
- to NULL. Free `ttf_data` on error.
-
- * src/type42/t42parse.c (t42_parse_sfnts): delay setting `ttf_size` and
- set it to the actual number of bytes read. Ensure `ttf_data` is freed
- if there are multiple /sfnts arrays or there are any errors.
-
-2022-01-11 Dominik Röttsches <drott@chromium.org>
-
- [sfnt] Fix limit checks for `COLR` v1 ClipBoxes
-
- * src/sfnt/ttcolr.c (tt_face_get_color_glyph_clipbox): Fix off-by-one in
- limit checks.
-
-2022-01-11 Werner Lemberg <wl@gnu.org>
-
- Update all copyright notices.
-
-2022-01-11 Werner Lemberg <wl@gnu.org>
-
- * src/sfnt/ttcolr.c (read_paint): Fix undefined left-shift operation.
-
- Reported as
-
- https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43151
-
-2022-01-11 Werner Lemberg <wl@gnu.org>
-
- * src/type42/t42objs.c (T42_Open_Face): Avoid use of uninitialized memory.
-
- Reported as
-
- https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43508
-
-2022-01-11 Werner Lemberg <wl@gnu.org>
-
- .gitlab-ci.yml: Fix typo in previous commit.
-
-2022-01-11 Werner Lemberg <wl@gnu.org>
-
- .gitlab-ci.yml: Update Windows image.
-
- The old image produced errors like
-
- ```
- Downloading zlib patch from
- https://wrapdb.mesonbuild.com/v2/zlib_1.2.11-5/get_patch
- A fallback URL could be specified using patch_fallback_url key in the wrap file
- WrapDB connection failed to
- https://wrapdb.mesonbuild.com/v2/zlib_1.2.11-5/get_patch
- with error
- <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify
- failed: certificate has expired (_ssl.c:1122)>
- ```
-
-2022-01-11 Werner Lemberg <wl@gnu.org>
-
- * subprojects/zlib.wrap: Update from upstream.
-
-2022-01-10 Werner Lemberg <wl@gnu.org>
-
- * src/sfnt/ttcolr.c (tt_face_get_color_glyph_clipbox): Add limit checks.
-
- Reported as
-
- https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40716
-
-2022-01-10 Werner Lemberg <wl@gnu.org>
-
- [zlib] Don't typedef `ptrdiff_t`.
-
- While using zlib in 'solo' mode (via the `Z_SOLO` macro), we actually
- include some standard header files, making the typedef fail on systems where
- the native `ptrdiff_t` type differs.
-
- Fixes #1124.
-
- * src/zlib/zutil.h: Comment out definition; it doesn't work on Windows.
-
- * src/zlib/patches/freetype-zlib.diff: Updated.
-
-2022-01-10 Werner Lemberg <wl@gnu.org>
-
- [zlib] Some organizational changes.
-
- We now first apply zlib's `zlib2ansi` script, then FreeType's patch file.
-
- * src/gzip/README.freetype: Updated.
-
- * patches/0001-zlib-Fix-zlib-sources-to-compile-for-FreeType.patch: Renamed
- to...
- * patches/freetype-zlib.diff: This.
- Clean up description, then regenerate it as follows:
-
- - Copy unmodified files from `zlib` repository.
- - Run `zlib2ansi` script.
- - Run `git diff -R > patches/freetype-zlib.diff.new`.
- - Insert patch description of old diff file, then replace old diff with
- new diff file.
-
-2022-01-09 David Turner <david@freetype.org>
-
- [gzip] Update sources to zlib 1.2.11
-
- This can be tested by building with the Unix development build
-
- make setup devel
- make
-
- or by building the freetype-demos programs with
-
- meson setup build -Dfreetype2:zlib=internal
- meson compile -C out
-
- and trying to run `ftview` with a `.pcf.gz` font file.
-
- * src/gzip/ftgzip.c, src/gzip/rules.mk: Update for new zlib sources. Also
- remove the temporary fix introduced in commit 6a431038 to work around the
- fact that the internal sources were too old.
-
- * src/gzip/README.freetype: New file describing the origin of the sources
- and how they were modified.
-
- * src/gzip/patches/*: Patch files applied to original sources.
-
- * src/gzip/*: Updated zlib sources with the patch file(s) from
- `src/gzip/patches/` applied, followed by a conversion with zlib's
- `zlib2ansi` script.
-
-2022-01-09 David Turner <david@freetype.org>
-
- [meson] Change Zlib configuration option.
-
- * meson_options.txt, meson.build: Change the format of the 'zlib' meson
- build configuration option to be a combo with the following choices:
-
- - none: Do not support gzip-compressed streams at all.
-
- - internal: Support gzip-compressed streams using the copy of the gzip
- sources under `src/gzip/`; this should only be used during development
- to ensure these work properly.
-
- - external: Support gzip-compressed streams using the 'zlib' Meson
- subproject, linked as a static library.
-
- - system: Support gzip-compressed streams using a system-installed version
- of zlib.
-
- - auto: Support gzip-compressed streams using a system-installed version
- of zlib, if available, or using the 'zlib' subproject otherwise. This
- is the default.
-
- - disabled: Backward-compatible alias for 'none'.
-
- - enabled: Backward-compatible alias for 'auto'.
-
-2022-01-09 Werner Lemberg <wl@gnu.org>
-
- [bzip2] Avoid use of uninitialized memory.
-
- * src/bzip2/ftbzip2.c (FT_Stream_OpenBzip2): Don't use `FT_QNEW` but
- `FT_NEW` for setting up `zip` to avoid uninitialized memory access while
- handling malformed PCF fonts later on.
-
- Fixes
-
- https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=42800
-
-2022-01-09 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [sfnt] Fix off-by-one error.
-
- The 0-base index is equal to the number of previosly parsed entries.
- It is an error to adjust it by one to get the number truncated by
- a stream error. This is probably inconsequential because valid
- entries are correctly accounted for.
-
- * src/sfnt/ttload.c (check_table_dir): Do not adjust the truncated
- number of tables.
-
-2022-01-08 Werner Lemberg <wl@gnu.org>
-
- [sfnt, type42] Correct previous commit.
-
- Really fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=42773.
-
- * src/sfnt/ttload.c (check_table_dir): Revert change.
-
- * src/type42/t42.parse.c (t42_parse_sfnts): Don't use `FT_QREALLOC` but
- `FT_REALLOC` for setting up `ttf_data` to avoid uninitialized memory access
- while handling malformed TrueType fonts later on.
-
-2022-01-07 Werner Lemberg <wl@gnu.org>
-
- * src/sfnt/ttload.c (check_table_dir): Initialize `table`.
-
- Reported as
-
- https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=42773
-
-2022-01-07 Werner Lemberg <wl@gnu.org>
-
- [sfnt] Avoid 'runtime error: applying zero offset to null pointer'.
-
- * src/sfnt/ttsbit.c (tt_sbit_decoder_load_byte_aligned): Exit early if
- `line` is NULL.
-
-2022-01-07 Werner Lemberg <wl@gnu.org>
-
- [autofit, pshinter] Use `FT_OFFSET`.
-
- This avoids
-
- ```
- runtime error: applying zero offset to null pointer
- ```
-
- warnings of clang's undefined behaviour sanitizer.
-
- * src/autofit/afcjk.c (af_cjk_hints_link_segments,
- af_cjk_hints_compute_edges, af_cjk_hints_compute_blue_edges,
- af_cjk_hint_edges, af_cjk_align_edge_points): Do it.
-
- * src/autofit/afhints.c (af_glyph_hints_align_edge_points,
- af_glyph_hints_align_strong_points): Ditto.
-
- * src/autofit/aflatin.c (af_latin_metrics_init_widths,
- af_latin_hints_link_segments, af_latin_hints_compute_edges,
- af_latin_hints_compute_blue_edges, af_latin_hint_edges): Ditto.
-
- * src/pshinter/pshalgo.c (psh_hint_table_init): Ditto.
-
-2022-01-06 Ben Wagner <bungeman@chromium.org>
-
- [truetype] Reset localpoints when varying cvt.
-
- When iterating over the cvt tuples and reading in the points it is necessary
- to set all of `localpoints`, `points`, and `point_count` in all cases. The
- existing code did not reset `localpoints` to `NULL` when there were no
- private point numbers. If the previous tuple did have private point numbers
- and set `localpoints` to `ALL_POINTS` this would not be cleared and the
- wrong branch would be taken later, leading to possible heap buffer overflow.
-
- * src/truetype/ttgxvar.c (tt_face_vary_cvt): Reset `localpoints` to `NULL`
- when it isn't valid.
-
- Fixes: https://crbug.com/1284742
-
-2022-01-02 Werner Lemberg <wl@gnu.org>
-
- * builds/unix/configure.raw: Restore `SYSTEM_ZLIB` variable.
-
- This was accidentally removed with commit 93ebcbd0 almost eight years ago.
-
-2021-12-27 Alexander Borsuk <me@alex.bio>
-
- Fix warnings for CMake Unity builds.
-
- * src/cache/ftcbasic.c (FT_COMPONENT): Undefine macro before redefinition.
- * src/smooth/ftgrays.c (TRUNC, FRACT): Ditto.
-
-2021-12-18 Alexander Borsuk <alexander.borsuk@qnective.com>
-
- Clang-Tidy warning fixes.
-
- * src/base/ftobjs.c (FT_Get_Paint): Operator has equivalent nested operands.
- * src/bdf/bdflib.c (_bdf_add_property): Value stored to `fp` is never read.
- * src/sdf/ftbsdf.c (bsdf_init_distance_map): Value stored to `pixel` is
- never read.
- * src/sdf/ftsdf.c (split_sdf_shape): Value stored to `error` is never read.
-
-2021-12-17 Eli Schwartz <eschwartz@archlinux.org>
-
- * meson.build: Optimize lookup for `python3` program.
-
- The python module's `find_installation` method is intended to provide
- routines for compiling and installing python modules into the
- `site-packages` directory. It does a couple of slow things, including run
- an introspection command to scrape sysconfig info from the detected
- interpreter, which are not needed for the sole use case of invoking the
- found installation as an executable.
-
- Furthermore, when invoked without the name or path of a python binary, it is
- hardcoded to always look for `python3` corresponding to the interpreter
- meson itself uses to run. So using `find_installation` did not even allow
- detecting `python2` as a fallback.
-
- Instead, switch to a simple `find_program` lookup that finishes as soon as
- the program is found.
-
-2021-12-17 Eli Schwartz <eschwartz@archlinux.org>
-
- * builds/meson/*.py: Fix name of python executable for auxiliary scripts.
-
- The previous change to check the return code of `run_command` invocations
- caused the CI to fail. Although most scripts used `python_exe` as the
- program command, the script to determine the project version did not.
-
- But, all scripts used `python` as the shebang, and this is not available on
- all systems. Particularly Debian does not provide a `python` command,
- though `python3` does exist. This meant that formerly the version number
- was lacking, and now the build simply fails.
-
- Instead, rely on `python3` since it is guaranteed to exist when running
- meson, and `python2` is end of life anyway.
-
-2021-12-17 Eli Schwartz <eschwartz@archlinux.org>
-
- * meson.build: Check the return value of `run_command`.
-
- By default, errors are not checked and a command that is somehow broken will
- just capture incorrect output (likely an empty string). Current development
- versions of meson now raise a warning for this implicit behavior, and advise
- explicitly setting the `check:` keyword argumend to determine whether a
- failing return code should be considered an error.
-
- Since none of the commands in this project are expected to fail, mark them
- as required to succeed.
-
-2021-12-13 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [truetype] Upstream the hdmx binary search.
-
- * src/truetype/ttobjs.h (TT_SizeRec): Add `widthp` for the hdmx
- widths.
- * src/truetype/ttobjs.c (tt_size_reset): Initialize `widthp` even
- though it might never be used by the interpreter.
- * src/truetype/ttgload.c (tt_loader_init): Avoid repeated searches
- in the hdmx table.
-
-2021-12-12 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [truetype] Reset the IUP-called flags for each subglyph.
-
- This fixes fall-out from 7809007a5b88b15, where the composite
- accents were no longer hinted.
-
- * src/truetype/ttgload.c (ttloader_init): Move the IUP-called flag
- initialization from here...
- * src/truetype/ttinterp.c (TT_Run_Context): ... to here.
-
-2021-12-12 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [truetype] Binary search through the `hdmx` records.
-
- The `hdmx` table is supposed to be sorted by ppem size, which
- enables binary search. We also drop the check for the sufficient
- length of the record because it is now enforced when the table
- is loaded.
-
- * include/freetype/internal/tttypes.h (TT_FaceRec): Store the `hdmx`
- record pointers sorted by ppem instead of ppem's themselves.
- * src/truetype/ttpload.c (tt_face_load_hdmx): Prudently sort records.
- (tt_face_get_device_metrics): Implement binary search to retrieve
- advances.
-
-2021-12-12 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [truetype] Honor FT_LOAD_ADVANCE_ONLY if `hdmx` is usable.
-
- This simply shortcuts the glyph loading if FT_LOAD_ADVANCE_ONLY
- is specified by FT_Get_Advances and the `hdmx` data are located.
- Particularly, the classic v35 interpreter or "verified" ClearType
- fonts might see 100x speed up in retrieving the hdmx cache.
-
- * src/truetype/ttgload.c (TT_Load_Glyph): Insert the shortcut.
-
-2021-12-12 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [truetype] Initialize the loader with `hdmx` data.
-
- The `hdmx` matching can be done before the glyph is loaded.
-
- * include/freetype/internal/tttypes.h (TT_LoaderRec): Add a field.
- * src/truetype/ttgload.c (compute_glyph_metrics): Relocate the `hdmx`
- code from here...
- (tt_loader_init): ... to here, before the glyph is loaded.
-
-2021-12-12 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [truetype] Relocate subpixel flag setting.
-
- `TT_RunIns` is too busy to deal with subpixel flags. It is better
- to set them in `tt_loader_init`, which is executed before each
- glyph program.
-
- * src/truetype/ttinterp.c (TT_RunIns): Move the flag setting from
- here...
- * src/truetype/ttgload.c (tt_loader_init): ... to here.
-
-2021-12-12 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [truetype] Limit INSTCTRL appication within specs.
-
- * src/truetype/ttinterp.c (Ins_INSTCTRL): Limit its global effects
- to the CVT program and local effects to the glyph program.
-
- This also fixes an Infinality buglet. The `ignore_x_mode` should be
- locally unset by the glyph program.
-
-2021-12-09 Ben Wagner <bungeman@chromium.org>
-
- [bdf] Fix use of uninitialized value.
-
- In _bdf_readstream if the data contained no newline then the buffer
- would continue to grow and uninitialized data read until either the
- uninitialized data contained a newline or the buffer reached its
- maxiumum size. The assumption was that the line was always too long and
- the buffer had been filled, however this case can also happen when there
- is not enough data to fill the buffer.
-
- Correct this by properly setting the cursor to the end of the available
- data, which may be different from the end of the buffer. This may still
- result in one extra allocation, but only on malformed fonts.
-
- * src/bdf/bdflib.c (_bfd_readstream): Correctly update cursor. Remove
- unread set of `avail`.
-
- Bug: https://lists.nongnu.org/archive/html/freetype-devel/2021-12/msg00001.html
-
-2021-12-07 Alexei Podtelezhnikov <apodtele@gmail.com>
-
- [truetype] Reduce Infinality footprint again.
-
- * src/truetype/ttgload.c (compute_glyph_metrics): Streamline and
- prioritize the Infinality checks to use `hdmx`.
-
-2021-12-07 Cameron Cawley <ccawley2011@gmail.com>
-
- [builds/windows] Guard some non-ancient API.
-
- We can support Windows 98 and NT 4.0 in principle...
-
- * builds/windows/ftdebug.c, builds/windows/ftsystem.c: Check for the
- ancient SDK using _WIN32_WINDOWS, _WIN32_WCE, or _WIN32_WINNT.
-
-2021-12-07 Cameron Cawley <ccawley2011@gmail.com>
-
- * builds/windows/visualc/freetype.vcproj: Add missing file.
-
2021-12-02 Werner Lemberg <wl@gnu.org>
* Version 2.11.1 released.