ChangeLog


Log

Author Commit Date CI Message
Werner Lemberg 02842872 2018-06-03T09:17:55 * src/tools/glnames.py (main): Emit header in `light' comment style.
Alexei Podtelezhnikov ae248034 2018-06-02T21:42:44 [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.
Werner Lemberg 67994e82 2018-06-02T19:51:03 * 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
Werner Lemberg fab10b6f 2018-06-02T09:53:58 * src/autofit/afwarp.h: Use AF_CONFIG_OPTION_USE_WARPER (#54033).
Werner Lemberg 125b8480 2018-05-31T10:49:05 * src/raster/ftraster.c (black_TWorker_): Remove `gTarget' field. This is no longer used.
Werner Lemberg 0589f6e6 2018-05-31T00:34:38 [sfnt] Get colors from `CPAL' table in right order (#54015). * src/sfnt/ttcolr.c (tt_face_find_color): Fix it.
Werner Lemberg db7c4060 2018-05-30T21:21:19 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/.
Armin Hasitzka d45d4b97 2018-05-30T17:35:39 Beautify a3cfed5e87232c933bdc64f43e8ebebcfd18b41b. * src/autofit/afloader.c (af_loader_load_glyph): Move the initialisation and declaration of variables into the if-block.
Armin Hasitzka a3cfed5e 2018-05-30T12:37:46 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.
Werner Lemberg ae2cd1b7 2018-05-30T09:34:57 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.
Nikhil Ramakrishnan 51fee655 2018-05-25T22:16:11 [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.
Alexei Podtelezhnikov 7b73cb07 2018-05-24T22:38:24 [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.
Werner Lemberg 3360ca58 2018-05-22T09:06:24 [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.
Werner Lemberg 3c99016f 2018-05-22T07:53:49 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Trace # of points.
Werner Lemberg 93363cd7 2018-05-20T22:50:00 * include/freetype/ftcolor.h: New file. This is an interface to the `CPAL' OpenType table. No implementation yet.
Alexei Podtelezhnikov 2f218a4c 2018-05-18T08:57:30 * include/freetype/internal/ftcalc.h (FT_MSB): Verified `_MSC_VER'. Actually `_BitScanReverse' is available since VS2005.
Werner Lemberg 840b8443 2018-05-18T10:57:51 * 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>.
Werner Lemberg 3331b84f 2018-05-18T07:19:57 Minor comment fixes.
Werner Lemberg 2cac1c35 2018-05-17T19:40:44 s/inline/__inline/ for MSVC. Reported by John Emmas <john@creativepost.co.uk>. * include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Do it.
Werner Lemberg 583dabf2 2018-05-16T20:37:43 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.
Alexei Podtelezhnikov f1458d2e 2018-05-15T21:47:18 [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.
Werner Lemberg 49c5e24a 2018-05-15T21:55:28 [psaux] Fix compiler warning (#53915). * src/psaux/psft.c (cf2_freeT1SeacComponent): Do it.
Werner Lemberg befee112 2018-05-15T17:01:22 [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.
Werner Lemberg 2dd20916 2018-05-15T09:05:53 [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.
Werner Lemberg 06820637 2018-05-14T09:45:16 * src/base/ftobjs.c (FT_Load_Glyph): Fix signature of `pixel_modes'.
Werner Lemberg c5a8a535 2018-05-14T09:42:20 Provide dummy functions if `TT_CONFIG_OPTION_SFNT_NAMES' is not set. * src/base/ftsnames.c [!TT_CONFIG_OPTION_SFNT_NAMES]: Implement it.
Werner Lemberg 1b2abda9 2018-05-13T10:58:49 * src/base/ftobjs.c (FT_Load_Glyph): Improve tracing.
Shao Yu Zhang f04d8175 2018-05-13T03:25:09 [sfnt] Preliminary support of coloured layer outlines. 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.
Arkady Shapkin 84eebf48 2018-05-12T06:16:46 Use MS VC++'s _BitScanReverse to calculate MSB (patch #9636). * include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Implement it.
Alan Coopersmith 9e345c91 2018-05-10T10:10:43 Further fix to visibility flag testing with Solaris Studio compilers. 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.
Werner Lemberg e0015f76 2018-05-08T11:51:16 [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'.
Nikolaus Waxweiler f7b4fb3a 2018-05-07T23:10:36 CMake: Allow using project as subfolder in other project * CMakeLists.txt: Test for CMake build directory being diffent from source directory. Provide other parts of the build system access the full include directory.
Werner Lemberg 7702edf7 2018-05-07T08:54:34 [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.
suzuki toshiya 2b3e0ef6 2018-05-04T12:55:48 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.
Nikolaus Waxweiler 660afb5c 2018-05-02T23:19:55 Unbreak CMake Windows installation * CMakeLists.txt: Generate ftconfig.h on non-UNIX.
Werner Lemberg 95149592 2018-05-02T20:27:48 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.
Werner Lemberg 86bc8a95 2018-05-01T20:27:24 * 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.
Werner Lemberg ac97a296 2018-04-26T09:04:39 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.
Ben Wagner 2157d8fa 2018-04-24T10:29:19 [base] Avoid undefined behaviour in lcd filtering code (#53727). * src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy): Ensure `height > 0'.
Werner Lemberg 67697d00 2018-04-22T21:15:10 * src/base/ftoutln.c (FT_Outline_Decompose): Improve error tracing.
Alexei Podtelezhnikov 3b88576b 2018-04-22T17:22:35 [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.
Werner Lemberg c2e2a8e5 2018-04-22T17:13:50 Revert "[base] Fix bitmap copying where the new pitch is smaller." This reverts commit c0f1adedcfaad4f7d2fe912ff4b2933845d61d93.
Werner Lemberg c0f1aded 2018-04-22T11:44:24 [base] Fix bitmap copying where the new pitch is smaller. * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Handle it.
Werner Lemberg 38ecc949 2018-04-22T10:14:03 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.
Werner Lemberg e4b6d853 2018-04-19T17:43:03 [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.
Werner Lemberg 1655e00f 2018-04-19T14:45:19 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.
Werner Lemberg 2a159782 2018-04-17T12:25:17 [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.
Werner Lemberg 70ac167c 2018-04-16T10:39:10 [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.
Alexei Podtelezhnikov 843193b9 2018-04-15T16:27:10 [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.
Werner Lemberg 235b1e2f 2018-04-15T21:55:04 [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.
Werner Lemberg 827ca3bc 2018-04-14T07:20:31 [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.
Werner Lemberg 576670b7 2018-04-14T07:00:30 [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.
Nikolaus Waxweiler 029721d6 2018-04-07T21:34:24 Modernize CMake build. * CMakeLists.txt, builds/cmake/FindHarfBuzz.cmake: Extensive modernization measures. * .gitignore: Add build/, as that's the example directory used in CMakeLists.txt. 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 maintainters 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.
Werner Lemberg bd9400bd 2018-04-09T21:28:37 [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.
Alexei Podtelezhnikov cdddeff0 2018-04-06T21:01:50 [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.
Werner Lemberg 3b8f1680 2018-04-04T20:26:08 [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.
suzuki toshiya 26ad1acb 2018-04-04T16:38:58 * 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.
Werner Lemberg 7109495c 2018-04-01T13:24:59 * 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>.
Werner Lemberg 597cb3b4 2018-03-30T13:46:03 [truetype] Fix memory leak (only if tracing is on). * src/truetype/ttgxvar.c (TT_Get_MM_Var) [FT_DEBUG_LEVEL_TRACE}: Fix it.
Ben Wagner 34e46733 2018-03-23T06:13:25 [sfnt] Correctly handle missing bitmaps in sbix format (#53404). * src/sfnt/ttfsbit.c (tt_face_load_sbix_image): Fix return value.
Ben Wagner 43d4852e 2018-03-23T06:07:24 [truetype] Fix advance of empty glyphs in bitmap fonts (#53393). * src/truetype/ttgload.c (TT_Load_Glyph): Apply scaling to metrics for empty bitmaps.
Werner Lemberg af89e445 2018-03-22T06:00:55 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.
Werner Lemberg 5bd76524 2018-03-13T11:11:16 * src/sfnt/ttcmap.c (tt_cmap2_validate): Fix potential numeric overflow.
Werner Lemberg 78cded2c 2018-03-13T11:09:44 Fix cmap format 2 handling (#53320). The patch introduced for #52646 was not correct. * src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition.
Nikolaus Waxweiler 098dd70c 2018-03-10T14:51:17 * CMakeLists.txt (BASE_SRCS): Update to changes from 2018-03-05.
Chun-wei Fan 6f854692 2018-03-05T12:33:34 * 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.
Werner Lemberg e277267c 2018-03-08T11:33:31 Typo.
Hugh McMaster a7833f26 2018-03-07T22:23:54 Make installation of `freetype-config' optional (#53093). Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
Werner Lemberg 733a21bd 2018-03-05T23:37:17 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.
Werner Lemberg f4a35316 2018-03-05T20:45:12 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.
Werner Lemberg efd13c5d 2018-03-01T22:17:54 * src/truetype/ttinterp.c (TT_RunIns): Fix tracing arguments.
Werner Lemberg 02064791 2018-03-01T21:34:57 * builds/unix/configure.raw: Need HarfBuzz 1.3.0 or newer. Problem reported by Alan Coopersmith <alan.coopersmith@oracle.com>.
Werner Lemberg 713d68ee 2018-02-17T18:35:15 [sfnt] Prefer `CBDT'/`CBLC' over `glyf' table (#53154).
Werner Lemberg 9fbd0041 2018-02-17T10:37:10 Split off ChangeLog.28.
Werner Lemberg 4a03f174 2018-02-06T02:23:19 [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.
Alexei Podtelezhnikov f4a3255d 2018-02-04T00:09:02 [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.
Werner Lemberg 68dddcdc 2018-01-27T23:59:30 [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'.
Werner Lemberg 29c75928 2018-01-27T14:43:43 * src/truetype/ttinterp.c (Ins_GETVARIATION): Avoid NULL reference. Reported as https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5736
Werner Lemberg f438e069 2018-01-27T14:39:15 * src/truetype/ttgxvar.c (tt_set_mm_blend): Minor.
Werner Lemberg ef486530 2018-01-27T11:16:22 [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.
Werner Lemberg 50f693a7 2018-01-27T09:33:17 [truetype] Beautify tracing of VF axis records. * src/truetype/ttgxvar.c (TT_Get_MM_Var): Show axis records in a table-like manner.
Werner Lemberg 994eb2b3 2018-01-26T23:17:43 [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'.
Alexei Podtelezhnikov b1e02098 2018-01-23T22:29:45 [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'.
Alexei Podtelezhnikov c6a965b4 2018-01-21T14:29:58 [unix] Call libtool to clean up. * builds/unix/install.mk (clean_project_unix, distclean_project_unix): Use libtool. * builds/freetype.mk: Minor.
Alexei Podtelezhnikov 6ce66856 2018-01-18T21:29:48 * src/base/ftver.rc: Fix mingw-w64 compilation.
Alexei Podtelezhnikov 4b8ccc56 2018-01-18T04:32:52 [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.
Alexei Podtelezhnikov fd8000f0 2018-01-18T03:58:34 [build] Move VERSIONINFO resource. * builds/windows/vc2010/freetype.vcxproj: Updated. * builds/windows/ftver.rc: Move file from here... * src/base/ftver.rc: ... to here.
Alexei Podtelezhnikov d2d1750e 2018-01-12T23:01:49 [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.
Alexei Podtelezhnikov e8b38f89 2018-01-12T08:57:08 [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.
Steve Robinson 707cd028 2018-01-10T07:48:39 * CMakeLists.txt [win32]: Suppress warnings for POSIX functions.
Ewald Hew cc2f3cde 2018-01-10T13:24:56 [psaux] Correctly handle Flex features (#52846). * src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdVMOVETO, cf2_cmdHMOVETO>: Do not move if doing Flex.
Alexei Podtelezhnikov 3f96c0bc 2018-01-09T22:22:19 * builds/windows/vc2010/freetype.sln: Synchronize with the project.
Werner Lemberg 67a42aa8 2018-01-08T12:15:27 * 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 1.
Werner Lemberg 1d6773e6 2018-01-07T18:41:54 Add check for librt, needed for `ftbench' (#52824). * builds/unix/configure.raw: Call AC_USE_SYSTEM_EXTENSIONS. (LIB_CLOCK_GETTIME): Define; this will hold `-lrt' if necessary. * builds/unix/unix-cc.in (LIB_CLOCK_GETTIME): New variable.
Ewald Hew 21bd9c2f 2018-01-07T16:38:54 [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.
Werner Lemberg 3758aed7 2018-01-06T08:39:36 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.
Werner Lemberg 029c9b23 2018-01-03T19:05:20 [truetype] Round offsets of glyph components only if hinting is on. * src/truetype/ttgload.c (TT_Process_Composite_Component): Implement it.
Werner Lemberg 55d6abea 2018-01-03T19:01:15 * src/truetype/ttgxvar.c (ft_var_to_design): Remove dead code. This is a better fix than the previous commit, which is now reverted.
Alexei Podtelezhnikov 20b3e348 2018-01-02T22:12:09 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.
Alexei Podtelezhnikov c94d042b 2018-01-02T21:38:35 * include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF) [_MSC_VER]: Limit Visual C++ attributes.