| 2016-07-12 Werner Lemberg <wl@gnu.org> |
| |
| * Version 2.6.5 released. |
| ========================= |
| |
| |
| Tag sources with `VER-2-6-5'. |
| |
| This commit immediately follows `[mac] Fix ftexport.sym target in |
| Jamfile.' on a separate branch, which was then merged with master |
| after the release. |
| |
| * include/freetype/config/ftoption.h |
| (TT_CONFIG_OPTION_SUBPIXEL_HINTING): Comment out. |
| |
| * docs/VERSION.TXT: Add entry for version 2.6.5. |
| |
| * 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/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.6.4/2.6.5/, s/264/265/. |
| |
| * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5. |
| |
| * builds/unix/configure.raw (version_info): Set to 18:5:12. |
| * CMakeLists.txt (VERSION_PATCH): Set to 5. |
| |
| * docs/CHANGES: Updated. |
| |
| 2016-07-11 Werner Lemberg <wl@gnu.org> |
| |
| Conditionally compile environment support. |
| |
| * include/freetype/internal/ftobjs.h, src/autofit/afmodule.c, |
| src/base/ftobjs.c, src/cff/cffdrivr.c, src/truetype/ttdriver.c: |
| Decorate with `FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES' where |
| necessary. |
| |
| 2016-07-11 Werner Lemberg <wl@gnu.org> |
| |
| Handle properties in `FREETYPE_PROPERTIES' environment variable. |
| |
| This commit covers the most important one. |
| |
| * src/autofit/afmodule.c (af_property_set): Handle `warping', |
| `darkening-parameters', and `no-stem-darkening'. |
| |
| * src/cff/cffdrivr.c (cff_property_set): Handle |
| `darkening-parameters', `hinting-engine', and `no-stem-darkening'. |
| |
| * src/truetype/ttdriver.c (tt_property_set): Handle |
| `interpreter-version'. |
| |
| 2016-07-11 Werner Lemberg <wl@gnu.org> |
| |
| Replace calls to `atol' with `strtol'. |
| |
| We later on need strtol's `endptr' feature. |
| |
| * include/freetype/config/ftstdlib.h (ft_atol): Replace with... |
| (ft_strtol): ... this. |
| |
| * src/base/ftdbgmem.c (ft_mem_debug_init): Updated. |
| * src/cid/cidparse.c (cid_parser_new): Ditto. |
| * src/type42/t42drivr.c (t42_get_name_index), src/type42/t42objs.c |
| (T42_GlyphSlot_Load): Ditto. |
| |
| 2016-07-10 Werner Lemberg <wl@gnu.org> |
| |
| Implement handling of `FREETYPE_PROPERTIES' environment variable. |
| |
| Recognizing properties follows in another commit. |
| |
| * devel/ftoption.h, include/freetype/config/ftoption.h |
| (FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES): New macro. |
| |
| * include/freetype/config/ftstdlib.h (ft_getenv): New macro. |
| |
| * src/base/ftinit.c (ft_set_default_properties): New function to |
| parse `FREETYPE_PROPERTIES' and calling `ft_property_string_set'. |
| (FT_Init_FreeType): Updated. |
| |
| 2016-07-09 Werner Lemberg <wl@gnu.org> |
| |
| Add function `ft_property_string_set'. |
| |
| This is a preparation for handling an `FREETYPE_PROPERTIES' |
| environment variable to control (some) driver properties. |
| |
| No change in functionality. |
| |
| * src/base/ftobjs.c (ft_property_do): Add `value_is_string' |
| parameter. |
| (ft_property_string_set): New function. |
| (FT_Property_Set, FT_Property_Get): Updated. |
| |
| * include/freetype/internal/ftobjs.h: Updated. |
| |
| * include/freetype/internal/services/svprop.h |
| (FT_Properties_SetFunc): Add `value_is_string' parameter. |
| |
| * src/autofit/afmodule.c (af_property_set), src/cff/cffdrivr.c |
| (cff_property_set), src/truetype/ttdriver.c (tt_property_set): |
| Updated, emitting an error currently if `value_is_string' is set. |
| |
| 2016-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
| |
| [mac] Fix ftexport.sym target in Jamfile. |
| |
| * Jamfile: Update the directories of the header files scanned for |
| ftexport.sym. They were incorrect since the migration of the |
| header files, on 2015-06-22. Either inexisting include/cache |
| (removed on 2006-03-20) is not needed to be listed explicitly. |
| Now ftmac.h is scanned only in the case of Mac OS & Mac OS X. |
| |
| 2016-07-08 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Sub-banding protocol revision. |
| |
| Rasterization sub-banding is utilized at large sizes while using a |
| rather small fixed memory pool. Indeed it is possible to make an |
| educated guess how much memory is necessary at a given size for a |
| given glyph. It turns out that, for a large majority of European |
| glyphs, you should store about 8 times more boundary pixels than |
| their height. Or, vice versa, if your memory pool can hold 800 |
| pixels the band height should be 100 and you should sub-band |
| anything larger than that. Should you still run out of memory, |
| FreeType bisects the band but you have wasted some time. This is |
| what has been implemented in FreeType since the beginning. |
| |
| It was overlooked, however, that the top band could grow to twice |
| the default band size leading to unnecessary memory overflows there. |
| This commit fixes that. Now the bands are distributed more evenly |
| and cannot exceed the default size. |
| |
| Now the magic number 8 is really suitable for rather simple European |
| scripts. For complex Chinese logograms the magic number should be |
| 13 but that is subject for another day. |
| |
| * src/smooth/ftgrays.c (gray_convert_glyph): Revise sub-banding |
| protocol. |
| |
| 2016-07-07 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
| |
| [mac] Fix Savannah bug #48417. |
| |
| Mac OS X linker throws errors when `-exported_symbol_list' input |
| file includes non-existing symbols. Reported by Ryan Schmidt. |
| |
| * builds/exports.mk: Exclude ftmac.h from the headers for apinames |
| by default. Include it when ftmac.c would be compiled. |
| |
| 2016-07-06 Werner Lemberg <wl@gnu.org> |
| |
| * src/truetype/ttinterp.c (TInstruction_Function): Removed, unused. |
| |
| 2016-07-05 Werner Lemberg <wl@gnu.org> |
| |
| * Version 2.6.4 released. |
| ========================= |
| |
| |
| Tag sources with `VER-2-6-4'. |
| |
| * docs/VERSION.TXT: Update documentation and bump version number to |
| 2.6.4. |
| |
| * 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/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.6.3/2.6.4/, s/263/264/. |
| |
| * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4. |
| |
| * builds/unix/configure.raw (version_info): Set to 18:4:12. |
| * CMakeLists.txt (VERSION_PATCH): Set to 4. |
| |
| * docs/CHANGES: Updated. |
| |
| 2016-07-05 Werner Lemberg <wl@gnu.org> |
| |
| * src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Fix compiler warning. |
| |
| 2016-07-04 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Variable type revision (part 2). |
| |
| * src/smooth/ftgrays.c (TArea): Restore original definition as `int'. |
| (gray_render_line) [FT_LONG64]: Updated. |
| (gray_convert_glyph): 32-bit band bisection stack should be 32 bands. |
| (gray_convert_glyph_inner): Trace successes and failures. |
| |
| 2016-07-04 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Handle single-point contours as segments. |
| |
| Doing so allows us to link them to edges – some fonts like |
| `NotoSansGurmukhi-Regular' have such isolated points sitting exactly |
| on other outlines. |
| |
| * src/autofit/aflatin.c (af_latin_hints_compute_segments): Don't |
| ignore one-point contours but handle them specially as one-point |
| segments. |
| (af_latin_hints_compute_edges): Append one-point segments to edges |
| if possible. |
| |
| 2016-07-02 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Remove unused structure members. |
| |
| * src/autofit/afhints.h (AF_SegmentRec, AF_EdgeRec): Remove |
| `num_linked'. |
| |
| * src/autofit/afcjk.c (af_cjk_hints_link_segments): Updated. |
| |
| 2016-07-02 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Update to Unicode 9.0.0. |
| |
| * src/autofit/afranges.c (af_arab_nonbase_uniranges, |
| af_cyrl_uniranges): Add new data. |
| |
| 2016-07-01 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Variable type revision (part 1). |
| |
| This patch restores original `TCoord' definition as `int' so that the |
| rendering pool is used more efficiently on LP64 platforms (unix). |
| |
| * src/smooth/ftgrays.c (gray_TWorker, TCell, gray_TBand): Switch some |
| fields to `TCoord'. |
| (gray_find_cell, gray_render_scanline, gray_render_line, gray_hline, |
| gray_sweep, gray_convert_glyph): Updated. |
| |
| 2016-06-28 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Minor clean-ups. |
| |
| * src/smooth/ftgrays.c (gray_TWorker): Remove redundant `ycount'. |
| (gray_sweep, gray_convert_glyph, gray_dump_cells): Updated. |
| |
| 2016-06-27 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Minor clean-ups. |
| |
| * src/smooth/ftgrays.c (gray_convert_glyph): Do not use volatile |
| qualifier. |
| (gray_raster_render): Move span initializations from here. |
| (gray_sweep): ... to here and remove unused `target' argument. |
| |
| 2016-06-26 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [pcf] Fix handling of very large fonts (#47708). |
| |
| * src/pcf/pcfread.c (pcf_get_encodings): Make `encodingOffset' an |
| unsigned short. |
| Only reject `0xFFFF' as an invalid encoding offset. |
| |
| 2016-06-25 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Really fix deallocation in case of error (#47726). |
| |
| * src/truetype/ttgload.c (load_truetype_glyph): Thinko; initialize |
| `outline.points' also. |
| |
| 2016-06-23 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Consolidate memory management. |
| |
| * src/smooth/ftgrays.c (gray_init_cells): Remove function. |
| (gray_TWorker): Remove fields that become local variables. |
| (gray_raster_render): Move rendering buffer declaration from here. |
| (gray_convert_glyph): ... to here and update accordingly. |
| |
| 2016-06-22 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Consolidate boundary checks. |
| |
| Removing the checks from `gray_hline' shaves 1% off rendering speed. |
| |
| * src/smooth/ftgrays.c [STANDALONE_]: Duplicate `FT_MIN' and `FT_MAX'. |
| (gray_TWorker): No need to store `clip_box'. |
| (gray_hline): Remove unnecessary boundary checks. |
| (gray_convert_glyph): Move boundary checks from here. |
| (gray_raster_render): ... to here and consolidate. |
| |
| 2016-06-21 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Use `FT_Outline_Get_CBox'. |
| |
| * src/smooth/ftgrays.c [STANDALONE_]: Duplicate `FT_Outline_Get_CBox'. |
| (gray_compute_cbox): Remove this function. |
| (gray_convert_glyph): Update to use `FT_Outline_Get_CBox'. |
| |
| 2016-06-20 Werner Lemberg <wl@gnu.org> |
| |
| [smooth] Remove compiler warnings. |
| |
| * src/smooth/ftgrays.c (gray_convert_glyph): Fix reports from clang. |
| |
| 2016-06-20 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Sanitize memory management. |
| |
| * src/smooth/ftgrays.c (gray_convert_glyph): Cleaned up. |
| |
| 2016-06-18 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Remove `band_shoot' that never worked. |
| |
| * src/smooth/ftgrays.c (gray_TWorker): Remove `band_shoot'. |
| (gray_convert_glyph): Updated. |
| |
| 2016-06-17 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [raster, smooth] Handle FT_RENDER_POOL_SIZE better. |
| |
| * src/raster/ftraster.c (FT_MAX_BLACK_POOL): New macro. |
| (ft_black_render): Updated. |
| * src/smooth/ftgrays.c (FT_MAX_GRAY_POOL): New macro. |
| (gray_raster_render): Updated. |
| |
| 2016-06-16 Werner Lemberg <wl@gnu.org> |
| |
| * src/base/md5.c: Updated to recent version. |
| |
| 2016-06-14 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| * src/smooth/ftgrays.c (gray_hline): Optimize if-condition. |
| |
| 2016-06-13 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Add support for Cherokee script. |
| |
| * src/autofit/afblue.dat: Add blue zone data for Cherokee. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/afscript.h: Add Cherokee standard characters. |
| |
| * src/autofit/afranges.c: Add Cherokee data. |
| |
| * src/autofit/afstyles.h: Add Cherokee data. |
| |
| 2016-06-09 David Capello <davidcapello@gmail.com> |
| |
| [cmake] Avoid modifying `ftconfig.h' and `ftoption.h' files. |
| |
| * CMakeLists.txt: Each time cmake is run those files are |
| modified and the whole FreeType library is recompiled. With this |
| change we change the files only if there are real modifications, so |
| we can avoid recompilations. |
| |
| 2016-06-09 Werner Lemberg <wl@gnu.org> |
| |
| [bdf] Check number of properties (#48166). |
| |
| * src/bdf/bdflib.c (_bdf_parse_start): Implement. |
| |
| 2016-06-08 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Re-enable new line renderer on 64-bit archs. |
| |
| * src/smooth/ftgrays.c (gray_render_line): Conditionally re-enable new |
| implementation, where it is safe from overflows. |
| |
| 2016-06-08 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Minor clean-ups. |
| |
| * src/smooth/ftgrays.c (gray_dump_cells): Move out of the way. |
| (gray_render_span): Remove spurious casts and streamline. |
| |
| 2016-06-07 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Add support for Ethiopic script. |
| |
| * src/autofit/afblue.dat: Add blue zone data for Ethiopic. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/afscript.h: Add Ethiopic standard characters. |
| |
| * src/autofit/afranges.c: Add Ethiopic data. |
| |
| * src/autofit/afstyles.h: Add Ethiopic data. |
| |
| 2016-06-07 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Fix compilation with VS2016 (#48126). |
| |
| This compiler doesn't recognize the end-of-comment sequence `*/' if |
| it immediately follows non-ASCII characters. |
| |
| * src/autofit/afscript.h: Ensure whitespace before `*/'. |
| |
| 2016-06-04 Werner Lemberg <wl@gnu.org> |
| |
| Fix a test for named instances (#48122). |
| |
| This was missed while giving negative face indices an extended |
| meaning. |
| |
| * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Implement. |
| |
| 2016-05-31 Nikolaus Waxweiler <madigens@gmail.com> |
| |
| [truetype] Let SHPIX move points in the twilight zone in v40. |
| |
| * src/truetype/ttinterp.c (Ins_SHPIX): Allow SHPIX to move points in |
| the twilight zone. Otherwise, treat SHPIX the same as DELTAP. |
| Unbreaks various fonts such as older versions of Rokkitt and DTL |
| Argo T Light that would glitch severely after calling ALIGNRP after a |
| blocked SHPIX. |
| |
| 2016-05-30 Werner Lemberg <wl@gnu.org> |
| |
| [type42] Support `CharStrings' entry format as created by LilyPond. |
| |
| * src/type42/t42parse.c (t42_parse_charstrings): Handle entries |
| having the format |
| |
| (foo) cvn 12345 def |
| |
| 2016-05-28 Werner Lemberg <wl@gnu.org> |
| |
| * src/autofit/afranges.c: Remove `UL' postfix from hex numbers. |
| |
| Suggested by Alexei. `UL' is only needed for 16bit compilers, but |
| it seems noone is using this anymore (and we no longer test whether |
| FreeType compiles in such an environment). Otherwise, it is easy to |
| add the postfix to the `AF_UNICODE_RANGE' macro. |
| |
| 2016-05-26 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Shrink bisection stack. |
| |
| The convergence of Bézier flatteners is fast with the deviation |
| from straight line being asymptotically cut 4-fold on each bisection. |
| This justifies smaller bisection stack size. |
| |
| * src/smooth/ftgrays.c (gray_TWorker): Remove common `bez_stack'. |
| (gray_render_conic): Create and use conic `bez_stack'. Move back the |
| band analysis from... |
| (gray_conic_to): ... here. |
| (gray_render_cubic): Create and use cubic `bez_stack'. Move back the |
| band analysis from... |
| (gray_cubic_to): ... here. |
| (gray_move_to): Updated. |
| |
| 2016-05-25 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Fixes for Armenian and Gujarati ranges. |
| |
| * src/autofit/afranges.c (af_armn_uniranges): Corrected. |
| (af_guru_nonbase_uniranges): Make U+0A3E a base character. |
| |
| 2016-05-24 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Add support for Armenian script. |
| |
| * src/autofit/afblue.dat: Add blue zone data for Armenian. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/afscript.h: Add Armenian standard characters. |
| |
| * src/autofit/afranges.c: Add Armenian data. |
| |
| * src/autofit/afstyles.h: Add Armenian data. |
| |
| 2016-05-23 Werner Lemberg <wl@gnu.org> |
| |
| * builds/unix/unix-cc.in (LINK_LIBRARY): Use `-export-symbols'. |
| |
| This was commented about 10 years ago – I think the reason then to |
| disable libtool's `-export-symbols' option was to give some badly |
| programmed applications access to internal FreeType functions. |
| |
| I believe that we should no longer take care of such programs; the |
| number of symbols exported should be rather restricted as much as |
| possible. |
| |
| 2016-05-22 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Add blue-zone support for Gurmukhi script. |
| |
| This essentially moves the Gurmukhi script from the `Indic' hinter to |
| the `Latin' hinter. |
| |
| * src/autofit/afblue.dat: Add blue zone data for Gurmukhi. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/afscript.h: Add Gurmukhi standard characters and move |
| data out of AF_CONFIG_OPTION_INDIC block. |
| |
| * src/autofit/afranges.c: Move Gurmukhi data out of |
| AF_CONFIG_OPTION_INDIC block. |
| |
| * src/autofit/afstyles.h: Update Gurmukhi data; in particular, use |
| AF_WRITING_SYSTEM_LATIN. |
| |
| 2016-05-21 Werner Lemberg <wl@gnu.org> |
| |
| Minor clang++ fixes. |
| |
| * src/base/ftobjs.c (FT_Add_Module), src/psaux/psobjs.c |
| (ps_parser_load_field), src/type1/t1load.c (parse_subrs): Add |
| initializer. |
| |
| * src/cache/ftccache.h (FTC_CACHE_TRYLOOP_END): Avoid implicit |
| conversion from NULL to boolean. |
| |
| 2016-05-21 Werner Lemberg <wl@gnu.org> |
| |
| Work around a bug of the C 8.0.0.1 compiler on AIX 5.3 (#47955). |
| |
| * include/freetype/internal/ftmemory.h (cplusplus_typeof): Use |
| braces for `extern "C++"'. |
| |
| 2016-05-17 Nikolaus Waxweiler <madigens@gmail.com> |
| |
| [truetype] Make TT_LOADER_SET_PP support subpixel hinting [3/3]. |
| |
| * src/truetype/ttgload.c (TT_LOADER_SET_PP): Replace macro with... |
| (tt_loader_set_pp): ... this new function. |
| Update all callers. |
| |
| 2016-05-17 Nikolaus Waxweiler <madigens@gmail.com> |
| |
| [truetype] New implementation of v38 bytecode interpreter [2/3]. |
| |
| This patch actually modifies the bytecode interpreter. |
| |
| See added comments in `ttinterp.h' for more information on this and |
| the following commit in the series. |
| |
| * src/truetype/ttinterp.c (SUBPIXEL_HINTING): Replaced by... |
| (NO_SUBPIXEL_HINTING, SUBPIXEL_HINTING_INFINALITY, |
| SUBPIXEL_HINTING_MINIMAL): ...new macros. |
| (Direct_Move, Direct_Move_X, Direct_Move_Y): Handle backward |
| compatibility. |
| Updated. |
| (Ins_RS, Ins_FDEF, Ins_ENDF, Ins_CALL, Ins_LOOPCALL, Ins_MD): |
| Updated. |
| (Ins_INSTCTRL): Handle native ClearType mode flag. |
| Updated. |
| (Ins_FLIPPT, Ins_FLIPRGON, Ins_FLIPRGOFF): Handle backward |
| compatibility. |
| (Move_Zp2_Point): Ditto. |
| (Ins_SHP): Updated. |
| (Ins_SHPIX): Handle backward compatibility. |
| Updated. |
| (Ins_MSIRP, Ins_MDAP, Ins_MIAP, Ins_MDRP, Ins_MIRP): Updated. |
| (Ins_ALIGNRP): Updated. |
| (Ins_IUP, Ins_DELTAP): Handle backward compatibility. |
| Updated. |
| (Ins_GETINFO): Handle v38 flags. |
| Updated. |
| (TT_RunIns): Handle backward compatibility mode. |
| Updated. |
| |
| 2016-05-17 Nikolaus Waxweiler <madigens@gmail.com> |
| |
| [truetype] New implementation of v38 bytecode interpreter [1/3]. |
| |
| This patch prepares data structures and the like. |
| |
| See added comments in `ttinterp.h' for more information on this and |
| the following commits in the series. |
| |
| * devel/ftoption.h, include/freetype/config/ftoption.h |
| (TT_CONFIG_OPTION_SUBPIXEL_HINTING): Assign values to differentiate |
| between subpixel versions. |
| (TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY, |
| TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL): New macros. |
| |
| * include/freetype/ftttdrv.h (TT_INTERPRETER_VERSION_40): New macro. |
| |
| * include/freetype/internal/tttypes.h (TT_FaceRec): Updated. |
| |
| * src/truetype/ttinterp.h (TT_ExecContextRec): Define new fields |
| `subpixel_hinting_lean', `vertical_lcd_lean', |
| `backward_compatibility', `iupx_called', iupy_called', and |
| `grayscale_cleartype' for new hinting mode. |
| |
| * src/truetype/ttdriver.c (tt_property_set): Handle v38 and v40 |
| interpreters conditionally. |
| |
| * src/truetype/ttgload.c (TT_Hint_Glyph): Save phantom points unless |
| in v38 backward compatibility mode. |
| Updated. |
| (compute_glyph_metrics): Add v38 backward compatibility mode |
| constraint for adjusting advance widths. |
| Updated. |
| (tt_loader_init): Handle new flags `subpixel_hinting_lean', |
| `grayscale_cleartype', and `vertical_lcd_lean'. |
| Updated. |
| (tt_get_metrics, TT_Process_Simple_Glyph, TT_LOADER_SET_PP): |
| Updated. |
| |
| * src/truetype/ttobjs.c (tt_driver_init): Conditionally set |
| default interpreter version number. |
| |
| * src/truetype/ttsubpix.c, src/truetype/ttsubpix.h: Updated. |
| |
| 2016-05-17 Werner Lemberg <wl@gnu.org> |
| |
| [cff] Fix matrix scaling (#47848). |
| |
| * include/freetype/config/ftstdlib.h (FT_LONG_MIN): New macro. |
| |
| * src/cff/cffparse.c (cff_parse_font_matrix): Use largest scaling |
| value of all matrix coefficients to scale matrix. |
| |
| * src/cff/cffobjs.c (cff_face_init): Use `matrix->yx' member for |
| matrix normalization if `matrix->yy' is zero. |
| |
| 2016-05-16 Werner Lemberg <wl@gnu.org> |
| |
| [base] Reject invalid sfnt Mac resource (#47891). |
| |
| * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Check validity |
| of `CID ' and `TYPE1' table offset and length. |
| |
| 2016-05-16 Werner Lemberg <wl@gnu.org> |
| |
| [cid] Fix scanning for `StartData' and `/sfnts' (#47892). |
| |
| * src/cid/cidparse.c (STARTDATA, STARTDATA_LEN, SFNTS, SFNTS_LEN): |
| New macros. |
| (cid_parser_new): Fix and document algorithm. |
| |
| 2016-05-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
| |
| [truetype] Improve the recursive reference detector. |
| |
| The previous fix for #46372 misunderstood a composite glyph referring |
| same component twice as a recursive reference. See the discussion |
| |
| https://lists.gnu.org/archive/html/freetype/2016-05/msg00000.html |
| |
| Thanks to Khaled Hosny for finding this issue. |
| |
| * src/truetype/ttgload.c (ft_list_get_node_at): A function to get |
| the i-th node from FT_List. |
| (load_truetype_glyph): In the traversal scan of the reference tree |
| in the composite glyph, we clear the nodes filled by previous |
| sibling chain. |
| |
| 2016-05-07 Werner Lemberg <wl@gnu.org> |
| |
| [cache] Allow value 0 for face ID. |
| |
| We never dereference `face_id', and some implementations might use a |
| running number instead of a pointer. Additionally, disallowing |
| value zero was undocumented. |
| |
| * src/cache/ftccmap.c (FTC_CMapCache_Lookup), src/cache/ftcmanag.c |
| (FTC_Manager_LookupFace, FTC_Manager_RemoveFaceID): Remove test for |
| `face_id'. |
| |
| 2016-05-05 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] More efficient accounting of conic splits and draws. |
| |
| A single decrement counter of segments to draw, instead of an array, |
| contains all the information necessary to decide when to split and |
| when to draw a conic segment. The number of splits before each draw is |
| equal to the number of trailing zeros in the counter. |
| |
| * src/smooth/ftgrays.c (gray_TWorker): Remove `lev_stack'. |
| (gray_render_conic): Updated to use decrement counter of segments. |
| |
| 2016-05-05 Werner Lemberg <wl@gnu.org> |
| |
| [cff, truetype] Fix logic for `FT_Property_Set'. |
| |
| Otherwise some properties could be set to arbitrary values, which is |
| harmless, but querying could give wrong positive results. |
| |
| * src/cff/cffdrivr.c (cff_property_set) [hinting-engine], |
| * src/truetype/ttdriver.c (tt_property_set) [interpreter-version]: |
| Only allow defined values. |
| |
| 2016-04-25 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Add blue-zone support for Gujarati script. |
| |
| This essentially moves the Gujarati script from the `Indic' hinter to |
| the `Latin' hinter. |
| |
| * src/autofit/afblue.dat: Add blue zone data for Gujarati. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/afscript.h: Add Gujarati standard characters and move |
| data out of AF_CONFIG_OPTION_INDIC block. |
| |
| * src/autofit/afranges.c: Move Gujarati data out of |
| AF_CONFIG_OPTION_INDIC block. |
| |
| * src/autofit/afstyles.h: Update Gujarati data; in particular, use |
| AF_WRITING_SYSTEM_LATIN. |
| |
| 2016-04-24 Werner Lemberg <wl@gnu.org> |
| |
| Minor. |
| |
| * include/freetype/freetype.h (FT_HAS_*, FT_IS_*): Protect macro |
| argument with parentheses. |
| |
| 2016-04-24 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Fix deallocation in case of error (#47726). |
| |
| * src/truetype/ttgload.c (load_truetype_glyph): Initialize fields in |
| `outline' that are going to be deallocated in case of error. |
| |
| 2016-04-23 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Improve Georgian blue zone characters. |
| |
| Suggested by Akaki Razmadze <razmadzekoko@gmail.com>. |
| |
| * src/autofit/afblue.dat (AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM): |
| Updated. |
| |
| * src/autofit/afblue.c: Regenerated. |
| |
| 2016-04-16 David Capello <davidcapello@gmail.com> |
| |
| [cmake] Honor SKIP_INSTALL_* settings (as used in zlib). |
| |
| As FreeType depends on zlib, if we don't install zlib (e.g., because |
| we defined SKIP_INSTALL_ALL), FreeType cannot be installed, too |
| (cmake triggers an error saying that FreeType cannot be installed |
| because zlib target isn't in the export set). |
| |
| * CMakeLists.txt: Honor `SKIP_INSTALL_HEADERS', |
| `SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL' settings. |
| |
| 2016-04-16 Behdad Esfahbod <behdad@behdad.org> |
| |
| [truetype] Another fix for non-intermediate GX tuples. |
| |
| * src/truetype/ttgxvar.c (ft_var_apply_tuple): Add some missing |
| cases. |
| |
| 2016-04-12 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| Remove forgotten macro. |
| |
| * include/freetype/internal/internal.h |
| [FT_INTERNAL_POSTSCRIPT_GLOBALS_H]: Remove. |
| |
| 2016-04-09 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Add support for Georgian scripts. |
| |
| Georgian is problematic, since `uppercase' forms of Mkhedruli |
| (called Mtavruli) are not yet defined in Unicode, which means that |
| proper blue zones can't be defined. However, there is already a |
| proposal submitted to Unicode; see |
| |
| https://www.unicode.org/L2/L2016/16034-n4707-georgian.pdf |
| |
| Additionally, due to historical reasons, Unicode treats Khutsuri as |
| the same script as Mkhedruli, and so does OpenType. However, since |
| the two scripts have completely different shapes it can happen that |
| blue zones differ considerably. The tag `geok' used here (derived |
| from ISO 15924) to differentiate the two scripts is not an OpenType |
| tag in use. If we now have a font that contains both glyphs for |
| Mkhedruli and Khutsuri, and it uses OpenType features for both also, |
| HarfBuzz unavoidably treats all glyphs as `geor'. As a consequence, |
| blue zones for `geok' are not used for glyphs involved in the |
| OpenType features. |
| |
| An issue not yet resolved is which OpenType feature should be used |
| to access Mtavruli glyph shapes; right now, FreeType doesn't set up |
| support for them, but it is easy to add them later on as soon as |
| more information is available. |
| |
| * src/autofit/afblue.dat: Add blue zone data for Georgian. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/afscript.h: Add Georgian standard characters. |
| |
| * src/autofit/afranges.c: Add Georgian data. |
| |
| * src/autofit/afstyles.h: Add Georgian data. |
| |
| 2016-04-05 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Provide dummy blue zone for pseudo script `none'. |
| |
| Even if the dummy hinter is used as the handler for `none' (which |
| doesn't use blue zones), it is more consistent than the old value |
| (which was 0), pointing to Arabic... |
| |
| * src/autofit/afblue.dat: Add `AF_BLUE_STRINGSET_NONE'. |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/afstyles.h (none_dflt): Use AF_BLUE_STRINGSET_NONE. |
| |
| 2016-03-30 Werner Lemberg <wl@gnu.org> |
| |
| * src/pfr/pfrload.c (pfr_aux_name_load): Thinko (#47567). |
| |
| 2016-03-30 Werner Lemberg <wl@gnu.org> |
| |
| * src/pfr/pfrload.c (pfr_log_font_count): Better font size estimate. |
| |
| 2016-03-30 Werner Lemberg <wl@gnu.org> |
| |
| * src/pfr/pfrload.c (pfr_aux_name_load): Fix memory leak (#47567). |
| |
| 2016-03-29 Werner Lemberg <wl@gnu.org> |
| |
| * src/base/ftadvanc.c (FT_Get_Advances): Fix invalid left shift. |
| |
| 2016-03-29 Werner Lemberg <wl@gnu.org> |
| |
| [pfr] Fix binary search (#47514). |
| |
| * src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Handle border |
| conditions correctly. |
| |
| 2016-03-29 Werner Lemberg <wl@gnu.org> |
| |
| [pfr] Minor. |
| |
| * src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Replace `left', |
| `right', and `middle' with `min', `max', and `mid' as used in other |
| FreeType binary search code. |
| (pfr_load_bitmap_metrics): Fix invalid left shift. |
| |
| 2016-03-29 Werner Lemberg <wl@gnu.org> |
| |
| * src/pfr/pfrtypes.h: Replace all enums with macros. |
| |
| We need `~FOO' to unset bits, and only with unsigned values (which |
| `enum' isn't normally) this works cleanly. |
| |
| 2016-03-26 Werner Lemberg <wl@gnu.org> |
| |
| [pfr] Robustify bitmap strike handling (#47514). |
| |
| We did a binary search for a charcode without ensuring that the |
| searched data is ordered. Validating the order is now done lazily, |
| this is, the first access to a bitmap glyph triggers the order check |
| in the corresponding bitmap strike. |
| |
| * src/pfr/pfrtypes.h (PFR_BitmapFlags): New values |
| `PFR_BITMAP_VALID_CHARCODES' and `PFR_BITMAP_CHARCODES_VALIDATED'. |
| |
| * src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Make `flags' argument |
| a pointer. Handle new PFR_BITMAP_XXX flags. |
| (pfr_slot_load_bitmap): Updated. |
| |
| 2016-03-26 Werner Lemberg <wl@gnu.org> |
| |
| [pfr] Fix handling of compound glyphs. |
| |
| Extra items are indicated with different bit positions. |
| |
| * src/pfr/pfrtypes.h (PFR_GlyphFlags): Replace |
| `PFR_GLYPH_EXTRA_ITEMS' with `PFR_GLYPH_SIMPLE_EXTRA_ITEMS' and |
| `PFR_GLYPH_COMPOUND_EXTRA_ITEMS'. |
| |
| * src/pfr/pfrgload.c (pfr_glyph_load_simple, |
| pfr_glyph_load_compound): Use them. |
| |
| 2016-03-25 Werner Lemberg <wl@gnu.org> |
| |
| [pfr] Minor. |
| |
| * src/pfr/pfrsbit.c, src/pfr/pfrobjs.c: Use flag names instead of |
| bare numbers. |
| |
| 2016-03-25 Werner Lemberg <wl@gnu.org> |
| |
| [pfr] Various clang sanitizer fixes. |
| |
| * src/pfr/pfrsbit.c (pfr_load_bitmap_metrics): Correctly handle |
| signed nibbles. |
| (pfr_slot_load_bitmap): Correctly exit frame in case of error. |
| Fix invalid left shifts. |
| |
| 2016-03-23 Werner Lemberg <wl@gnu.org> |
| |
| Rename `VERSION.DLL' (#47472). |
| |
| * docs/VERSION.DLL: Renamed to... |
| * docs/VERSIONS.TXT: ...this. |
| |
| 2016-03-23 Werner Lemberg <wl@gnu.org> |
| |
| [raster, smooth] Directly test outline size (#47500). |
| |
| This improves stand-alone compilation. |
| |
| * src/base/ftoutln.c (FT_Outline_Render): Move cbox size test to... |
| |
| * src/raster/ftraster.c (ft_black_render), src/smooth/ftgrays.c |
| (gray_raster_render): ...these functions. |
| |
| 2016-03-23 Werner Lemberg <wl@gnu.org> |
| |
| [raster, smooth] Fix some clang sanitizer runtime issues. |
| |
| * src/raster/ftraster.c (ft_black_reset, ft_black_set_mode, |
| ft_black_render): Harmonize signatures with `ftimage.h'. |
| |
| * src/smooth/ftgrays.c (gray_raster_render, gray_raster_reset): |
| Ditto. |
| |
| 2016-03-22 Werner Lemberg <wl@gnu.org> |
| |
| * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Minor. |
| |
| This fixes an AddressSanitizer issue: |
| |
| ttgload.c:430:7: runtime error: null pointer passed as argument 1, |
| which is declared to never be null |
| |
| 2016-03-21 Werner Lemberg <wl@gnu.org> |
| |
| * src/autofit/afhints.c (af_glyph_hints_reload): Thinko. |
| |
| This fixes the previous commit to this file. |
| |
| 2016-03-21 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Partly revert recent changes. |
| |
| * src/smooth/ftgrays.c (gray_conic_to, gray_cubic_to): Rework |
| conditions to fix rendering issues. |
| |
| 2016-03-20 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Show `near' points in tracing. |
| |
| * src/autofit/afhints.h (AF_FLAG_NEAR): New macro. |
| |
| * src/autofit/afhints.c (af_glyph_hints_dump_points): Implement it. |
| (af_glyph_hints_reload): Handle AF_FLAG_NEAR. |
| |
| 2016-03-18 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Minor refactoring and microoptimizations. |
| |
| * src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move |
| band clipping from here. |
| (gray_conic_to, gray_cubic_to): ... to here. |
| (gray_render_line, gray_render_scanline): Initialize variables closer |
| to their use. |
| |
| 2016-03-17 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Minor refactoring. |
| |
| * src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move |
| upscaling from here. |
| (gray_conic_to, gray_cubic_to): ... to here. |
| |
| 2016-03-15 Werner Lemberg <wl@gnu.org> |
| |
| * src/autofit/aflatin.c (af_latin_compute_stem_width): Optimize. |
| |
| 2016-03-14 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Temporarily revert 6eb6158dd787 (#47114). |
| |
| * src/smooth/ftgrays.c (gray_render_line): Old implementation. |
| |
| 2016-03-12 Werner Lemberg <wl@gnu.org> |
| |
| [ftfuzzer] Improve coverage of rasterfuzzer. |
| |
| * src/tools/ftfuzzer/rasterfuzzer.cc (LLVMFuzzerTestOneInput): Use |
| input data for `tags' array also. |
| Trim input data to get more positive hits. |
| |
| 2016-03-11 Pavlo Denysov <paul.kiev+savannah@gmail.com> |
| |
| Fix CMake issues for iOS (patch #8941). |
| |
| * CMakeLists.txt (CMAKE_TOOLCHAIN_FILE): Fix directory. |
| * builds/cmake/iOS.cmake: No longer enforce gcc. |
| |
| 2016-03-09 Behdad Esfahbod <behdad@behdad.org> |
| |
| [truetype] Fix handling of non-intermediate GX tuples. |
| |
| We probably did not notice this as all fonts we tested had only |
| tuple_coords[i] be +1 or -1 for non-intermediate tuples. |
| |
| * src/truetype/ttgxvar.c (ft_var_apply_tuple): Implement it. |
| |
| 2016-03-06 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [base] Refuse to render enormous outlines (#47114). |
| |
| The goal is to avoid integer overflows in the rendering algorithms. |
| The limit is chosen arbitrarily at some 2^18 pixels, which should be |
| enough for modern devices including printers. |
| |
| * src/base/ftoutln.c (FT_Outline_Render): Check CBox and reject |
| enormous outlines. |
| |
| 2016-03-06 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Replace left shifts with multiplications (#47114). |
| |
| * src/smooth/ftgrays.c (SUBPIXELS, UPSCALE, DOWNSCALE): Do it. |
| |
| 2016-03-05 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Avoid excessive stem length rounding (#25392). |
| |
| * src/autofit/aflatin.c (af_latin_compute_stem_width): Add argument |
| to pass difference between hinted and unhinted position of base |
| point; use this to adjust the stem width depending on the PPEM so |
| that it doesn't become too large under certain circumstances. |
| Update all callers using value 0 for this argument except... |
| (af_latin_align_linked_edge): Pass position delta of base point to |
| `af_latin_compute_stem_width'. |
| |
| 2016-03-05 J Raynor <jxraynor@gmail.com> |
| |
| Make FreeType compile on AIX out of the box. |
| |
| * builds/unix/configure.raw (XX_ANSIFLAGS): Don't use `-ansi' on |
| AIX. |
| |
| 2016-03-01 Werner Lemberg <wl@gnu.org> |
| Kostya Serebryany <kcc@google.com> |
| |
| [ftfuzzer] Add unit for testing smooth and black rasterizers. |
| |
| * src/tools/ftfuzzer/rasterfuzzer.cc: New file. |
| |
| 2016-03-01 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Fix reallocation error introduced in 2016-02-27 (#47310). |
| |
| * src/autofit/aflatin.c (af_latin_hints_compute_segments): Reassign |
| `prev_segment' after reallocation. |
| |
| 2016-03-01 Werner Lemberg <wl@gnu.org> |
| |
| Fix clang warnings. |
| |
| * src/autofit/aflatin.c (af_latin_hints_compute_segments): Use |
| FT_UShort for `min_flags' and `max_flags'. |
| Initialize `prev_*' variables. |
| |
| * src/cff/cffobjs.c (cff_face_init) [FT_DEBUG_LEVEL_TRACE]: Fix |
| types of local variables. |
| |
| * src/smooth/ftgrays.c (gray_dump_cells) [FT_DEBUG_LEVEL_TRACE]: |
| Update `printf' format string. |
| |
| * src/tools/ftfuzzer/ftfuzzer.cc (setIntermediateAxis): Add cast. |
| (LLVMFuzzerTestOneInput): Fix loop type. |
| |
| 2016-02-29 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Add blue-zone support for Sinhala script. |
| |
| This essentially moves the Sinhala script from the `Indic' hinter to |
| the `Latin' hinter. |
| |
| * src/autofit/afblue.dat: Add blue zone data for Sinhala. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/afscript.h: Add Sinhala standard character and move data |
| out of AF_CONFIG_OPTION_INDIC block. |
| |
| * src/autofit/afranges.c: Move Sinhala data out of |
| AF_CONFIG_OPTION_INDIC block. |
| |
| * src/autofit/afstyles.h: Update Sinhala data; in particular, use |
| AF_WRITING_SYSTEM_LATIN. |
| |
| 2016-02-27 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Properly handle spikes pointing to the x-axis. |
| |
| An example that gets better rendered is glyph `uusignTaml' (glyph |
| index 2286) in font `FreeSerif.ttf' (Version 0412.2263) at 22ppem. |
| |
| * src/autofit/aflatin.c (af_latin_hints_compute_segments): Properly |
| handle segments where the last point of the first segment is |
| identical to the first point in the second one. This can happen for |
| malformed fonts or spikes. We either merge the new segment with the |
| previous one (both segments point into the same direction), or we |
| discard the shorter segment if they point into different directions. |
| |
| 2016-02-27 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Minor code clean-up. |
| |
| * src/autofit/aflatin.c (af_latin_hints_compute_segments): Change |
| some local variable names to better differentiate between values |
| along a segment and values orthogonal to it. |
| |
| 2016-02-26 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Improve BOUND action. |
| |
| In complex glyph shapes, the original logic was too simple to cater |
| for situations that would actually need something similar to PS Hint |
| masks. This fix should alleviate the worst cases. |
| |
| * src/autofit/aflatin.c (af_latin_hint_edges): Don't allow |
| complete disappearance of stems. |
| |
| 2016-02-25 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Add blue-zone support for Tamil script. |
| |
| This essentially moves the Tamil script from the `Indic' hinter to |
| the `Latin' hinter. |
| |
| * src/autofit/afblue.dat: Add blue zone data for Tamil. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/afscript.h: Add Tamil standard character and move data |
| out of AF_CONFIG_OPTION_INDIC block. |
| |
| * src/autofit/afranges.c: Move Tamil data out of |
| AF_CONFIG_OPTION_INDIC block. |
| |
| * src/autofit/afstyles.h: Update Tamil data; in particular, use |
| AF_WRITING_SYSTEM_LATIN. |
| |
| 2016-02-18 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Add blue-zone support for Malayalam script. |
| |
| This essentially moves the Malayalam script from the `Indic' hinter |
| to the `Latin' hinter. |
| |
| * src/autofit/afblue.dat: Add blue zone data for Malayalam. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/afscript.h: Add Malayalam standard characters and move |
| data out of AF_CONFIG_OPTION_INDIC block. |
| |
| * src/autofit/afranges.c: Move Malayalam data out of |
| AF_CONFIG_OPTION_INDIC block. |
| |
| * src/autofit/afstyles.h: Update Malayalam data; in particular, use |
| AF_WRITING_SYSTEM_LATIN. |
| |
| 2016-02-16 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Fix integer overflow (#47114). |
| |
| * src/smooth/ftgrays.c (TArea): Make it unconditionally `long'. |
| |
| 2016-02-15 Werner Lemberg <wl@gnu.org> |
| |
| * src/cff/cffparse.c (cff_parse_multiple_master): Improve tracing. |
| |
| 2016-02-15 Werner Lemberg <wl@gnu.org> |
| |
| [cff] Handle T2 operator only with old CFF engine (#47157). |
| |
| * src/cff/cffparse.c (cff_parser_run) <opcode 31>: Enclose with |
| #ifdef CFF_CONFIG_OPTION_OLD_ENGINE...#endif. |
| |
| 2016-02-15 Werner Lemberg <wl@gnu.org> |
| |
| [cff] Partially handle `load' and `store' ops in old CFF engine. |
| |
| Now all glyphs of MM CFFs like `ITCGaramondMM-It.otf' can be |
| displayed. |
| |
| * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_store, |
| cff_op_load>: Partially implement it. |
| |
| * src/cff/cffparse.c (cff_parser_init): Add new parameter to pass |
| the number of Multiple Master axes. |
| Update all callers. |
| (cff_parse_multiple_master): Get number of axes. |
| (cff_parser_run) <opcode 31>: Updated. |
| * src/cff/cffparse.h: Updated. |
| (CFF_ParserRec): Add `num_axes' field. |
| |
| * src/cff/cffload.c: Updated. |
| |
| * src/cff/cfftypes.h (CFF_FontRecDictRec): Add `num_axes' field. |
| |
| 2016-02-15 Werner Lemberg <wl@gnu.org> |
| |
| [cff] Correctly trace SIDs that contain NULL bytes. |
| |
| We need this to properly trace Multiple Master CFFs, which contain |
| two SIDs that are charstrings. |
| |
| This commit makes FreeType also show the last SID, omitted |
| previously due to a bug. |
| |
| * src/cff/cfftypes.h (CFF_FontRec): Add `string_pool_size' field. |
| |
| * src/cff/cffload.c (cff_index_get_pointers): Add argument to return |
| the pool size. |
| Update all callers. |
| |
| * src/cff/cffobjs.c (cff_face_init) [FT_DEBUG_LEVEL_TRACE]: Directly |
| access `cff->strings' to display the non-default strings. |
| |
| 2016-02-14 Werner Lemberg <wl@gnu.org> |
| |
| * src/base/fthash.c: Include FT_INTERNAL_MEMORY_H. |
| |
| 2016-02-14 Werner Lemberg <wl@gnu.org> |
| |
| * src/cff/cffparse.c: Include `cffgload.h'. |
| |
| Problem reported by Colin Walters <walters@verbum.org>. |
| |
| 2016-02-14 Werner Lemberg <wl@gnu.org> |
| |
| [cff] Make old CFF engine show MM CFFs (without variations). |
| |
| The new code only displays the first master in the font. |
| |
| * src/cff/cffgload.c (cff_decode_parse_charstrings): Add new |
| parameter to allow function calls from dictionaries also. |
| <cff_op_blend>: Partially implement it. |
| Update all callers. |
| * src/cff/cffgload.h: Updated. |
| |
| * src/cff/cffparse.c (cff_parser_init): Add new parameter to pass the |
| number of Multiple Master designs. |
| Update all callers. |
| (cff_parse_multiple_master): New function to rudimentarily parse |
| operator. |
| (cff_parser_run): Handle `T2' operator. |
| * src/cff/cffparse.h: Updated. |
| (CFF_ParserRec): Add `num_designs' field. |
| |
| * src/cff/cffload.c: Updated. |
| |
| * src/cff/cfftoken.h: Handle `MultipleMaster' operator. |
| |
| * src/cff/cfftypes.h (CFF_FontRecDictRec): Add `num_designs' field. |
| |
| * src/sfnt/sfobjs.c (sfnt_init_face): Don't handle `fvar' table for |
| MM CFFs. |
| |
| 2016-02-09 Werner Lemberg <wl@gnu.org> |
| |
| [docmaker] Don't emit trailing newlines. |
| |
| * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_code): |
| Use `rstrip'. |
| |
| 2016-02-07 Werner Lemberg <wl@gnu.org> |
| |
| * Version 2.6.3 released. |
| ========================= |
| |
| |
| Tag sources with `VER-2-6-3'. |
| |
| * docs/VERSION.DLL: Update documentation and bump version number to |
| 2.6.3. |
| |
| * 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/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.6.2/2.6.3/, s/262/263/. |
| |
| * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. |
| |
| * builds/unix/configure.raw (version_info): Set to 18:3:12. |
| * CMakeLists.txt (VERSION_PATCH): Set to 3. |
| |
| * docs/CHANGES: Updated. |
| |
| 2016-02-07 Werner Lemberg <wl@gnu.org> |
| |
| Fix another runtime error found by clang's sanitizer (#47082). |
| |
| * src/base/ftstroke.c (ft_stroke_border_export): Properly handle |
| empty input buffer. |
| |
| 2016-02-07 Werner Lemberg <wl@gnu.org> |
| |
| Fix runtime errors found by clang's sanitizer (#47082). |
| |
| * src/base/ftobjs.c (FT_Render_Glyph_Internal), src/base/ftoutln.c |
| (FT_Outline_Copy), src/cache/ftcsbits.c (ftc_sbit_copy_bitmap): |
| Properly handle empty input buffer. |
| |
| 2016-02-07 Werner Lemberg <wl@gnu.org> |
| |
| [cff] Minor. |
| |
| * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_sqrt>: |
| Remove dead code. |
| |
| 2016-02-07 Werner Lemberg <wl@gnu.org> |
| |
| [cff] Implement missing operators in new engine (except `random'). |
| |
| * src/cff/cf2font.h (CF2_STORAGE_SIZE): New macro. |
| |
| * src/cff/cf2intrp.c (cf2_interpT2CharString): Implement the |
| following operators: abs, add, and, div, drop, dup, eq, exch, get, |
| ifelse, index, mul, neg, not, or, put, roll, sqrt, sub. |
| |
| * src/cff/cf2stack.h, src/cff/cf2stack.c (cf2_stack_roll): New |
| auxiliary function for `roll' operator. |
| |
| 2016-02-06 Werner Lemberg <wl@gnu.org> |
| |
| [cff] Fix some Type 2 operators in old CFF engine. |
| |
| * src/cff/cffgload.c (cff_decoder_parse_charstrings): Fix `eq' |
| operator, add `not' and (unsupported) `blend' operators. |
| |
| 2016-02-05 Sebastian Rasmussen <sebras@gmail.com> |
| |
| Make direct call of `make install' work (#47072). |
| |
| * builds/unix/unix-def.in (freetype-config): Make sure |
| `freetype-config' is generated for both make targets (`all' and |
| `install'). |
| |
| 2016-02-05 Werner Lemberg <wl@gnu.org> |
| |
| [base] Fix advance width loading for MM and GX fonts (#47064). |
| |
| * src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Return false for |
| MM and GX fonts. |
| Update callers. |
| |
| 2016-02-03 Werner Lemberg <wl@gnu.org> |
| |
| [cff] Fix handling of face_index == -1 for pure CFF. |
| |
| * src/cff/cffobjs.c (cff_face_init): Return correct number of faces. |
| |
| 2016-01-30 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Minor tracing improvement. |
| |
| * src/autofit/afhints.c (af_glyph_hints_dump_points): Insert newline |
| at the start of a new contour. |
| |
| 2016-01-28 Nikolaus Waxweiler <madigens@gmail.com> |
| |
| Remove unpatented hinter (3/3). |
| |
| * include/freetype/config/ftoption.h |
| (TT_CONFIG_OPTION_UNPATENTED_HINTING): Remove. |
| |
| * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove |
| `ignore_unpatented_hinter' field. |
| Update users. |
| (FT_DEBUG_HOOK_UNPATENTED_HINTING): Remove. |
| Update users. |
| |
| * include/freetype/internal/tttypes.h (TT_FaceRec): Remove |
| `unpatented_hinting' field. |
| Update users. |
| |
| * src/base/ftpatent.c (_tt_check_patents_in_range, |
| _tt_check_patents_in_table, _tt_face_check_patents): Remove. |
| (FT_Face_CheckTrueTypePatents, FT_Face_SetUnpatentedHinting): |
| Replace code with dummies. |
| |
| * src/truetype/ttobjs.c (tt_face_init): Remove now defunct code. |
| * src/truetype/ttobjs.h (TT_GraphicsState): Remove `both_x_axis' |
| field. |
| |
| 2016-01-28 Nikolaus Waxweiler <madigens@gmail.com> |
| |
| Remove unpatented hinter (2/3). |
| |
| * devel/ftoption.h (TT_CONFIG_OPTION_UNPATENTED_HINTING): Remove. |
| |
| 2016-01-28 Nikolaus Waxweiler <madigens@gmail.com> |
| |
| Remove unpatented hinter (1/3). |
| |
| * src/truetype/ttinterp.c [TT_CONFIG_OPTION_UNPATENTED_HINTING]: |
| Remove all code related to this macro. |
| |
| 2016-01-28 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Add blue-zone support for Kannada script. |
| |
| This essentially moves the Kannada script from the `Indic' hinter to |
| the `Latin' hinter. |
| |
| * src/autofit/afblue.dat: Add blue zone data for Kannada. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/afscript.h: Add Kannada standard characters and move |
| data out of AF_CONFIG_OPTION_INDIC block. |
| |
| * src/autofit/afranges.c: Move Kannada data out of |
| AF_CONFIG_OPTION_INDIC block. |
| |
| * src/autofit/afstyles.h: Update Kannada data; in particular, use |
| AF_WRITING_SYSTEM_LATIN. |
| |
| 2016-01-22 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| Better access to 64-bit integers for C99 compilers. |
| |
| * include/freetype/config/ftconfig.h [FT_LONG64]: Use |
| __STDC_VERSION__ to define 64-bit integers. |
| * builds/unix/ftconfig.in [FT_LONG64]: Ditto. |
| * builds/vms/ftconfig.h [FT_LONG64]: Ditto. |
| |
| 2016-01-21 Werner Lemberg <wl@gnu.org> |
| |
| [gxvalid] Remove commented out code. |
| |
| * src/gxvalid/gxvcommn.c (gxv_EntryTable_validate): Do it. |
| |
| 2016-01-20 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Complete last autofit commit. |
| |
| Problem reported by Kostya Serebryany <kcc@google.com>. |
| |
| * src/autofit/afshaper.c (af_shaper_get_coverage) |
| [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Update signature. |
| |
| 2016-01-20 Werner Lemberg <wl@gnu.org> |
| |
| Still handle `__FTERRORS_H__'. |
| |
| We need this for backward compatibility. |
| |
| Problem reported by John Emmas <johne53@tiscali.co.uk>. |
| |
| * include/freetype/fterrors.h: Fix inclusion guard so that |
| undefining either `FTERRORS_H_' or `__FTERRORS_H__' works as |
| expected. |
| |
| 2016-01-19 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Fix handling of default script. |
| |
| Patch taken from ttfautohint, commit |
| 071ae2c00e0d67f9d19418f4fade1c23d27dc185. |
| |
| There were two bugs. |
| |
| - We now use non-standard script tags like `khms' for special |
| purposes. However, HarfBuzz maps such tags to `DFLT', and |
| without this commit the associated lookups were incorrectly |
| assigned to the non-standard tags. |
| |
| - Let's assume we have a Bengali font, and the font's `DFLT' |
| script tag handles the necessary lookups for Bengali, too. |
| Without this commit, the `DFLT' lookups were assigned to |
| ttfautohint's default script (usually `latn') before the |
| standard lookups for Bengali were handled. |
| |
| We now have the following order while searching for covered |
| glyph indices. |
| |
| special features of scripts (e.g. `sups' for Cyrillic) |
| Unicode mappings of scripts |
| remaining features of scripts (especially important for Indic |
| scripts) |
| default features of default script |
| |
| * src/autofit/afshaper.c, src/autofit/afshaper.h |
| (af_shaper_get_coverage): Add boolean parameter to indicate default |
| script. |
| Update all callers. |
| |
| * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): |
| Fix search order for coverages. |
| |
| 2016-01-19 Werner Lemberg <wl@gnu.org> |
| |
| Various minor clang fixes. |
| |
| * src/autofit/afcjk.c (af_cjk_metrics_init_widths), |
| src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize |
| `ch'. |
| |
| * src/base/ftcalc.c (FT_MulFix) [FT_LONG64]: Add cast. |
| |
| * src/base/ftdbgmem.c (ft_mem_table_destroy): Add cast. |
| |
| * src/base/fthash.c (hash_num_lookup): Add cast. |
| |
| * src/base/fttrigon.c (ft_trig_downscale) [FT_LONG64]: Fix cast. |
| |
| * src/gxvalid/gxvcommn.c (gxv_EntryTable_validate): Comment out |
| redundant code. |
| |
| * src/type1/t1driver.c (t1_get_ps_font_value) <PS_DICT_SUBR>: Add |
| cast. |
| |
| * src/type1/t1load.c (parse_subrs): Fix type of `count'. |
| |
| 2016-01-19 Derek B. Noonburg <derekn@glyphandcog.com> |
| |
| [truetype] Add another tricky font. |
| |
| * src/truetype/ttobjs.c (TRICK_SFNT_IDS_NUM_FACES): Increase. |
| (sfnt_id): Add variant of `DFKaiShu'. |
| |
| 2016-01-14 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [base] Empower `FT_Library_SetLcdFilterWeights'. |
| |
| * src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights): Enable filter |
| in addition to setting weights. |
| (FT_Library_SetLcdFilter): Clean out FT_FORCE_LIGHT_LCD_FILTER and |
| FT_FORCE_LEGACY_LCD_FILTER. |
| * include/freetype/ftlcdfil.h: Documentation update. |
| |
| 2016-01-12 Werner Lemberg <wl@gnu.org> |
| |
| Don't use macro names that start with `_[A-Z]' [3/3]. |
| |
| Such macro names are reserved for both C and C++. |
| |
| * src/cache/ftccache.h: s/_FTC_FACE_ID_HASH/FTC_FACE_ID_HASH/. |
| Update all callers. |
| (FTC_CACHE_LOOKUP_CMP): Replace `_XXX' with `XXX_'. |
| * src/cache/ftcmru.c (FTC_MRULIST_LOOKUP_CMP): Ditto. |
| |
| 2016-01-12 Werner Lemberg <wl@gnu.org> |
| |
| Don't use macro names that start with `_[A-Z]' [2/3]. |
| |
| Such macro names are reserved for both C and C++. |
| |
| * include/freetype/ftimage.h, src/raster/ftraster.c, |
| src/smooth/ftgrays.c, src/smooth/ftgrays.h: |
| s/_STANDALONE_/STANDALONE_/. |
| |
| 2016-01-12 Werner Lemberg <wl@gnu.org> |
| |
| Don't use macro names that start with `_[A-Z]' [1/3]. |
| |
| Such macro names are reserved for both C and C++. |
| |
| * src/bdf/bdflib.c: Replace macros of the form `_BDF_XXX' with |
| `BDF_XXX_'. |
| |
| 2016-01-12 Werner Lemberg <wl@gnu.org> |
| |
| Don't use macro names that contain `__' [2/2]. |
| |
| Such macro names are reserved for both C and C++. |
| |
| * src/cache/*: s/__/_/. |
| |
| 2016-01-12 Werner Lemberg <wl@gnu.org> |
| |
| Don't use macro names that contain `__' [1/2]. |
| |
| Such macro names are reserved for both C and C++. |
| |
| * */*: Replace macros of the form `__XXX_H__' with `XXX_H_'. |
| |
| 2016-01-10 Jered Gray <jegray@google.com> |
| |
| [cff] Fix usage of `|' operator. |
| |
| * src/cff/cf2intrp.c (cf2_interpT2CharString) [cf2_cmdEXTENDEDNMBR, |
| default]: `|' is not guaranteed to be processed from left to right |
| by the compiler. However, the code repeatedly calls |
| `cf2_buf_readByte' to get the arguments to `|' ... Fix this. |
| |
| 2015-12-25 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Make top-to-bottom hinting work in latin auto-hinter. |
| |
| This improves rendering of scripts like Bengali or Devanagari. |
| |
| * src/autofit/afhints.c (af_axis_hints_new_edge): Add parameter to |
| pass top-to-bottom hinting flag. This makes the function sort edges |
| in descending vertical position. |
| |
| * src/autofit/afhints.c: Updated. |
| |
| * src/autofit/aflatin.c (af_latin_hints_compute_edges, |
| af_latin_hint_edges): Use `top_to_bottom_hinting' flag. |
| |
| * src/autofit/afcjk.c (af_cjk_hints_compute_edges), |
| src/autofit/aflatin2.c (af_latin2_hints_compute_edges): Updated. |
| |
| 2015-12-24 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Add hinting direction to `AF_ScriptClassRec'. |
| |
| Still unused. |
| |
| * src/autofit/afglobal.c (SCRIPT): Handle hinting direction. |
| |
| * src/autofit/aftypes.h (AF_ScriptClassRec): Add |
| `top_to_bottom_hinting' field. |
| (AF_HINTING_BOTTOM_TO_TOP, AF_HINTING_TOP_TO_BOTTOM): New macros. |
| (AF_DEFINE_SCRIPT_CLASS): Updated. |
| |
| 2015-12-23 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Start implementing hinting direction (up/down, down/up). |
| |
| Right now, it does nothing. |
| |
| * src/autofit/afscript.h: Add another parameter to `SCRIPT', |
| specifying hinting direction. |
| |
| * src/autofit/afglobal.c, src/autofit/afglobal.h, |
| src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/afshaper.c, |
| src/autofit/aftypes.h: Extend `SCRIPT' definitions. |
| |
| 2015-12-22 Werner Lemberg <wl@gnu.org> |
| |
| * src/type1/t1load.c (parse_subrs): Fix memory leak (#46744). |
| |
| 2015-12-22 Werner Lemberg <wl@gnu.org> |
| |
| [base] Make hash interface symmetric. |
| |
| Use `num' and `str' infixes everywhere. |
| |
| * src/base/fthash.c (ft_hash_init): Renamed to... |
| (hash_init): ... This. |
| (ft_hash_str_init, ft_hash_num_init): New functions. |
| (ft_hash_free): Renamed to... |
| (ft_hash_str_free): ... This. |
| |
| * include/freetype/internal/fthash.h: Updated. |
| |
| * src/bdf/bdflib.c, src/type1/t1load.c, src/type1/t1objs.c: Updated. |
| |
| 2015-12-21 Werner Lemberg <wl@gnu.org> |
| |
| [type1] Avoid shift of negative numbers (#46732). |
| |
| * src/type1/t1load.c (parse_subrs): Do it. |
| |
| 2015-12-20 Werner Lemberg <wl@gnu.org> |
| |
| [type1, psaux] Handle large values of num_subrs correctly (#46692). |
| |
| We now use a hash to map from subr indices to array elements holding |
| the subroutines, if necessary. |
| |
| * include/freetype/internal/t1types.h: Include FT_INTERNAL_HASH_H. |
| (T1_FontRec): Add `subrs_hash' field. |
| |
| * include/freetype/internal/psaux.h: Include FT_INTERNAL_HASH_H. |
| (T1_DecoderRec): Add `subrs_hash' field. |
| |
| * src/type1/t1load.h (T1_LoaderRec): Add `subrs_hash' field. |
| |
| * src/type1/t1driver.c: Include FT_INTERNAL_HASH_H. |
| (t1_ps_get_font_value) [PS_DICT_SUBR]: Look up hash if necessary. |
| |
| * src/type1/t1load.c: Include FT_INTERNAL_HASH_H. |
| (parse_subrs): Use hash for subr indices that exceed the allocated |
| number of subr slots. |
| (t1_init_loader): Remove unnecessary code. |
| (t1_done_loader, T1_Open_Face): Updated. |
| |
| * src/type1/t1gload.c (T1_Compute_Max_Advance, T1_Get_Advances, |
| T1_Load_Glyph): Updated. |
| |
| * src/type1/t1objs.c (T1_Face_Done): Updated. |
| |
| * src/psaux/t1decode.c: Include FT_INTERNAL_HASH_H. |
| (t1_decoder_parse_charstrings) [op_callsubr]: Look up hash if |
| necessary. |
| |
| * src/cid/cidgload.c (cid_load_glyph): Updated. |
| |
| 2015-12-20 Werner Lemberg <wl@gnu.org> |
| |
| [base] Thinko: Remove free function pointer. |
| |
| We don't copy keys or values while hashing. |
| |
| * include/freetype/internal/fthash.h (FT_Hash_FreeFunc): Removed. |
| (FT_HashRec): Remove `free' field. |
| |
| * src/base/fthash.c (hash_str_free): Removed. |
| (ft_hash_init, ft_hash_free): Updated. |
| |
| 2015-12-20 Werner Lemberg <wl@gnu.org> |
| |
| [base, bdf] Don't expose `FT_Hashnode' in hash functions. |
| |
| * src/base/fthash.c (hash_lookup, ft_hash_str_lookup, |
| ft_hash_num_lookup): Return pointer to `size_t' instead of |
| `FT_Hashnode'. |
| |
| * include/freetype/internal/fthash.h: Updated. |
| |
| * src/bdf/bdflib.c (bdf_get_property, _bdf_add_property, |
| bdf_get_font_property): Updated. |
| |
| 2015-12-20 Werner Lemberg <wl@gnu.org> |
| |
| [base, bdf] Add number hashing. |
| |
| * src/base/fthash.c (hash_num_lookup, hash_num_compare): New |
| functions. |
| (ft_hash_init): Add argument to select between number and string |
| hashing. |
| (ft_hash_num_insert, ft_hash_num_lookup): New functions. |
| |
| * include/freetype/internal/fthash.h: Updated. |
| |
| * src/bdf/bdflib.c (_bdf_parse_start): Updated. |
| |
| 2015-12-20 Werner Lemberg <wl@gnu.org> |
| |
| [base] Introduce hash lookup, compare, and free function pointers. |
| |
| * include/freetype/internal/fthash.c (FT_Hash_LookupFunc, |
| FT_Hash_CompareFunc, FT_Hash_FreeFunc): New typedefs. |
| (FT_HashRec): Add `lookup', `compare', and `free' fields. |
| |
| * src/base/fthash.c (hash_str_lookup, hash_str_compare, |
| hash_str_free): New functions. |
| (ft_hash_init): Set function pointers. |
| (hash_bucket, ft_hash_free): Use them. |
| |
| 2015-12-20 Werner Lemberg <wl@gnu.org> |
| |
| [base, bdf] Use a union as a hash key. |
| |
| We want to support both an integer and a string key later on. |
| |
| * include/freetype/internal/fthash.h (FT_Hashkey): New union. |
| (FT_HashnodeRec): Updated. |
| (ft_hash_insert, ft_hash_lookup): Renamed to ... |
| (ft_hash_str_insert, ft_hash_str_lookup): ... this. |
| |
| * src/base/fthash.c (hash_bucket): Updated. |
| (ft_hash_insert, ft_hash_lookup): Renamed to ... |
| (hash_insert, hash_lookup): ... this. |
| (ft_hash_str_insert, ft_hash_str_lookup): New wrapper functions. |
| |
| * src/bdf/bdflib.c: Updated. |
| |
| 2015-12-19 Werner Lemberg <wl@gnu.org> |
| |
| [bdf] Use new hash functions. |
| |
| * src/bdf/bdf.h: Include FT_INTERNAL_HASH_H. |
| (hashnode, hashtable): Removed. |
| (bdf_font_t): Use `FT_HashRec' type for `proptbl'. |
| |
| * src/bdf/bdflib.c: Remove all hash functions. |
| Update code for new hash structure and function names. |
| |
| 2015-12-19 Werner Lemberg <wl@gnu.org> |
| |
| [bdf, base] Lift hash functions from bdf driver to base module. |
| |
| * src/base/fthash.c, include/freetype/internal/fthash.h: New files, |
| containing (massaged) code from `bdflib.c' and `bdf.h'. |
| |
| * include/freetype/internal/internal.h (FT_INTERNAL_HASH_H): New |
| macro. |
| |
| * src/base/ftbase.c: Include `fthash.c'. |
| |
| * src/base/Jamfile (_sources): Add `fthash'. |
| |
| * src/base/rules.mk (BASE_SRC): Add `fthash.c'. |
| |
| * docs/LICENSE.TXT: Updated. |
| |
| 2015-12-15 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Add blue-zone support for Bengali script. |
| |
| This essentially moves the Bengali script from the `Indic' hinter to |
| the `Latin' hinter. |
| |
| * src/autofit/afblue.dat: Add blue zone data for Bengali. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/afscript.h: Add Bengali standard characters and move |
| data out of AF_CONFIG_OPTION_INDIC block. |
| |
| * src/autofit/afranges.c: Move Bengali data out of |
| AF_CONFIG_OPTION_INDIC block. |
| |
| * src/autofit/afstyles.h: Update Bengali data; in particular, use |
| AF_WRITING_SYSTEM_LATIN. |
| |
| 2015-12-14 Ben Wagner <bungeman@gmail.com> |
| |
| [bdf] Remove dead code (#46625). |
| |
| The BDF specification only allows decimal numbers, no octal or |
| hexadecimal decoding is needed. |
| |
| * src/bdf/bdflib.c (_bdf_atoul, _bdf_atol, _bdf_atous, |
| _bdf_atos): Remove unused code and parameters. |
| Update all callers. |
| (odigits): Remove. |
| |
| 2015-12-14 Werner Lemberg <wl@gnu.org> |
| |
| [base] Fix calls to `FT_Stream_Seek'. |
| |
| * src/base/ftobjs.c (Mac_Read_sfnt_Resource, FT_Open_Face): Set |
| `error'. |
| |
| 2015-12-14 Ben Wagner <bungeman@gmail.com> |
| |
| [base] Check error when seeking to data supplied offset (#46635). |
| |
| * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): |
| `ft_lookup_PS_in_sfnt_stream' returns offset and length from |
| user supplied data. Use of this these values must be checked. |
| |
| 2015-12-13 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Add support for Myanmar script. |
| |
| * src/autofit/afblue.dat: Add blue zone data for Myanmar. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/afscript.h: Add Myanmar standard characters. |
| |
| * src/autofit/afranges.c: Add Myanmar data. |
| |
| * src/autofit/afstyles.h: Add Myanmar data. |
| |
| 2015-12-12 Werner Lemberg <wl@gnu.org> |
| |
| * src/autofit/aflatin.c (af_latin_metrics_init_blues): Minor. |
| |
| 2015-12-12 Werner Lemberg <wl@gnu.org> |
| |
| * src/autofit/afscript.h: Avoid potential crash. |
| |
| 2015-12-10 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Restore OpenType feature check. |
| |
| This was removed while rewriting the HarfBuzz interface. |
| |
| * src/autofit/afglobal.h (AF_FaceGlobalsRec): Add `hb_buf' field to |
| hold internal HarfBuzz buffer, needed for feature comparison. |
| |
| * src/autofit/afglobal.c (af_face_globals_new, |
| af_face_globals_free): Initialize and destroy `hb_buf'. |
| |
| * src/autofit/afshaper.c (af_shaper_get_cluster): Compare character |
| (cluster) with and without applied feature. |
| |
| * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix tracing |
| message. |
| |
| 2015-12-10 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Remove redundant code. |
| |
| * src/autofit/aflatin.c (af_latin_metrics_init_widths): Do it. |
| |
| 2015-12-09 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Thinko. |
| |
| * src/autofit/aflatin.c (af_latin_metrics_init_blues): Don't count |
| empty blue zones (bug introduced 2015-12-06). |
| |
| 2015-12-09 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Introduce subscript top blue zones. |
| |
| This feature is mainly for Khmer: The idea is to avoid a clash |
| between the top of subscript glyphs and the bottom of normal |
| baseline glyphs. |
| |
| This only works for character clusters mapped to multiple glyphs. |
| |
| * src/autofit/afblue.dat: Add subscript top blue zone for Khmer. |
| |
| * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_SUB_TOP): New |
| macro. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/aflatin.h (AF_LATIN_IS_SUB_TOP_BLUE, |
| AF_LATIN_BLUE_SUB_TOP): New macros. |
| |
| * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle new |
| blue zone property. |
| Update tracing messages. |
| (af_latin_metrics_scale_dim): Handle new blue zone property. |
| (af_latin_hints_compute_blue_edges): Updated. |
| |
| 2015-12-09 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Fix tracing message. |
| |
| * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Display |
| inactive blue zones also. |
| |
| 2015-12-06 Werner Lemberg <wl@gnu.org> |
| |
| * src/autofit/afblue.dat: Add more Khmer clusters. |
| |
| Some fonts have incorrect ligatures; we need more samples to get a |
| good mean value. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| 2015-12-06 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Typos. |
| |
| * src/autofit/afshaper.c (af_shaper_buf_create, af_shaper_get_elem) |
| [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Make it compile. |
| |
| 2015-12-06 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Add support for Khmer script. |
| |
| We split Khmer into two auto-hinter scripts: `Khmer' (`khmr') and |
| `Khmer symbols' (`khms', U+19E0-U+19FF). |
| |
| * src/autofit/afblue.dat: Add blue zone data for Khmer. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/afscript.h: Add Khmer standard characters. |
| |
| * src/autofit/afranges.c: Add Khmer data. |
| |
| * src/autofit/afstyles.h: Add Khmer data. |
| |
| 2015-12-06 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Rewrite HarfBuzz interface to support character clusters. |
| |
| Scripts like Khmer have blue zones that can't be directly |
| represented by Unicode characters. Instead, it is necessary to let |
| HarfBuzz convert character clusters into proper glyph representation |
| forms, then deriving the blue zone information from the resulting |
| glyphs. |
| |
| * src/autofit/hbshim.c, src/autofit/hbshim.h: Replaced by... |
| * src/autofit/afshaper.c, src/autofit/afshaper.h: ... these two new |
| files, providing a new API to access HarfBuzz. |
| |
| The new API manages a HarfBuzz buffer with `af_shaper_buf_create' |
| and `af_shaper_buf_destroy'. The buffer receives a UTF8 encoded |
| string with function `af_shaper_get_cluster', and the resulting |
| glyph data (indices, advance widths, vertical offsets) can be |
| iteratively accessed with function `af_shaper_get_elem'. |
| |
| * src/autofit/afcjk.c (af_cjk_metrics_init_widths, |
| af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated. |
| |
| * src/autofit/aflatin.c (af_latin_metrics_init_widths, |
| af_latin_metrics_init_blues, af_latin_metrics_check_digits): |
| Updated. |
| |
| * include/freetype/internal/fttrace.h: s/afharfbuzz/afshaper/. |
| |
| * src/autofit/afglobal.c: s/hbshim.h/afshaper.h/. |
| (af_face_globals_compute_style_coverage): Updated. |
| |
| * src/autofit/afglobal.h: s/hbshim.h/afshaper.h/. |
| |
| * src/autofit/autofit.c: s/hbshim.c/afshaper.c/. |
| |
| * src/autofit/Jamfile, src/autofit/rules.mk (AUTOF_DRV_SRC): |
| Updated. |
| |
| 2015-12-06 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Prepare forthcoming changes. |
| |
| This makes it easier to control the commits. |
| |
| * src/autofit/aflatin.c (af_latin_metrics_init_blues): Add dummy |
| loop. No functional change. |
| |
| 2015-12-06 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Use string of standard characters. |
| |
| This is more flexible; additionally, it would allow character |
| clusters. |
| |
| * src/autofit/aftypes.h (SCRIPT, AF_DEFINE_SCRIPT_CLASS): Updated. |
| (AF_ScriptClassRec): Replace `standard_char[123]' with |
| `standard_charstring'. |
| |
| * src/autofit/afscript.h: Replace last three character arguments |
| of the `SCRIPT' calls with a string parameter, holding the standard |
| characters (in UTF-8 encoding) separated with spaces. |
| |
| * src/autofit/afglobal.c, src/autofit/afglobal.h, |
| src/autofit/afpic.c, src/autofit/afranges.c, src/autofit/hbshim.c |
| (SCRIPT): Updated. |
| |
| * src/autofit/afcjk.c (af_cjk_metrics_init_widths), |
| src/autofit/aflatin.c (af_latin_metrics_init_widths): Updated. |
| |
| 2015-12-05 Werner Lemberg <wl@gnu.org> |
| |
| * src/autofit/afblue.dat: Separate blue zone characters with spaces. |
| |
| Another preparation for character cluster support. |
| |
| * src/autofit/afblue.c, src/autofit.afblue.h: Regenerated. |
| |
| 2015-12-05 Werner Lemberg <wl@gnu.org> |
| |
| * src/tools/afblue.pl (convert_ascii_chars): Don't ignore spaces. |
| |
| Instead, reduce multiple spaces to a single one. We need this later |
| for supporting character clusters in `afblue.dat'. |
| |
| 2015-12-05 Werner Lemberg <wl@gnu.org> |
| |
| * src/autofit/afblue.hin (GET_UTF8_CHAR): Use `do...while(0)'. |
| |
| * src/autofit/afblue.h: Regenerated. |
| |
| 2015-12-05 Werner Lemberg <wl@gnu.org> |
| |
| * src/autofit/afwarp.c: s/INT_MIN/FT_INT_MIN/. |
| |
| 2015-12-03 Werner Lemberg <wl@gnu.org> |
| |
| * builds/unix/install.mk (install): Remove stale `ft2build.h'. |
| |
| 2015-12-01 Werner Lemberg <wl@gnu.org> |
| |
| [type1] Avoid dangling pointer (#46572). |
| |
| * src/type1/t1afm.c (T1_Read_Metrics): Properly reset |
| `face->afm_data'. |
| |
| 2015-11-28 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| * include/freetype/ftlcdfil.h: Documentation tweak. |
| |
| 2015-11-28 Werner Lemberg <wl@gnu.org> |
| |
| * Version 2.6.2 released. |
| ========================= |
| |
| |
| Tag sources with `VER-2-6-2'. |
| |
| * docs/VERSION.DLL: Update documentation and bump version number to |
| 2.6.2. |
| |
| * 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/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.6.1/2.6.2/, s/261/262/. |
| |
| * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2. |
| |
| * builds/unix/configure.raw (version_info): Set to 18:2:12. |
| * CMakeLists.txt (VERSION_PATCH): Set to 2. |
| |
| * docs/CHANGES: Updated. |
| |
| 2015-11-28 Werner Lemberg <wl@gnu.org> |
| |
| Fix C++ compilation. |
| |
| * src/autofit/afloader.c: Include FT_INTERNAL_CALC_H. |
| |
| * src/truetype/ttgload.c (load_truetype_glyph): Pacify compiler. |
| |
| 2015-11-28 Nikolaus Waxweiler <madigens@gmail.com> |
| |
| Change default LCD filter to be normalized and color-balanced. |
| |
| * src/base/ftlcdfil.c (FT_Library_SetLcdFilter): Update |
| `default_filter'. |
| |
| 2015-11-28 Werner Lemberg <wl@gnu.org> |
| |
| [docmaker] Allow references to section names. |
| |
| In the reference, we show the section's title enclosed in single |
| quotes. |
| |
| * src/tools/docmaker/formatter.py (Formatter::__init__): Collect |
| section names as identifiers. |
| |
| * src/tools/docmaker/tohtml.py (section_title_header): Split into... |
| (section_title_header1, section_title_header2): ... these two |
| strings. |
| (HtmlFormatter::make_block_url, make_html_word, html_source_quote): |
| Handle sections. |
| (HtmlFormatter::section_enter): Updated to add `id' HTML attribute. |
| |
| 2015-11-27 Tamas Kenez <tamas.kenez@adasworks.com> |
| |
| [cmake] Add script to test the config module. |
| |
| * builds/cmake/testbuild.sh: New file. |
| |
| 2015-11-27 Tamas Kenez <tamas.kenez@adasworks.com> |
| |
| * CMakeLists.txt: Create `freetype-config.cmake' config module. |
| |
| 2015-11-27 Tamas Kenez <tamas.kenez@adasworks.com> |
| |
| * CMakeLists.txt: Set CMAKE_DEBUG_POSTFIX to `d'. |
| |
| 2015-11-27 Tamas Kenez <tamas.kenez@adasworks.com> |
| |
| [cmake] Add better control of library dependencies. |
| |
| * CMakeLists.txt: Add `WITH_*' variables to force/auto/omit |
| ZLIB/BZip2/PNG/HarfBuzz. |
| |
| 2015-11-27 Tamas Kenez <tamas.kenez@adasworks.com> |
| |
| [cmake] Make `FindHarfBuzz' observe the REQUIRED option. |
| |
| * builds/cmake/FindHarfBuzz.cmake: Implement it. |
| |
| 2015-11-27 Werner Lemberg <wl@gnu.org> |
| |
| [cmake] Collect files specific to cmake in `builds/cmake'. |
| |
| * builds/FindHarfBuzz.cmake: Move to ... |
| * builds/cmake/FindHarfBuzz.cmake: ... this place. |
| |
| * CMakeLists.txt (CMAKE_MODULE_PATH): Updated. |
| |
| 2015-11-27 Alexander Bock <alexander.j.bock@nasa.gov> |
| |
| CMakeLists.txt: Honour new command line flag `FREETYPE_NO_DIST'. |
| |
| 2015-11-26 Werner Lemberg <wl@gnu.org> |
| |
| [docmaker] Allow `foo[bar]' as identifier. |
| |
| We need this to handle equally named properties in different |
| modules. |
| |
| * src/tools/docmaker/content.py (re_identifier), |
| src/tools/docmaker/sources.py (re_crossref): Allow `foo[bar]'. |
| |
| * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word, |
| HtmlFormatter::index_exit, HtmlFormatter::section_enter, |
| HtmlFormatter::block_enter): Handle `foo[bar]'. |
| |
| 2015-11-25 Werner Lemberg <wl@gnu.org> |
| |
| * src/bdf/bdflib.c (bdf_load_font): Fix small memory leak (#46480). |
| |
| (_bdf_parse_glyphs): Always reset `p->glyph_name' after moving its |
| contents. |
| |
| 2015-11-21 Werner Lemberg <wl@gnu.org> |
| |
| * include/freetype/internal/ftcalc.h: Don't use `register' keyword. |
| |
| This fixes compiler warnings. |
| |
| Reported by Behdad. |
| |
| 2015-11-20 Werner Lemberg <wl@gnu.org> |
| |
| Add `FT_LCD_FILTER_LEGACY1' enum value. |
| |
| This does the same as `FT_LCD_FILTER_LEGACY'. |
| |
| See |
| |
| https://bugs.freedesktop.org/show_bug.cgi?id=92981 |
| |
| for the reasoning. |
| |
| * include/freetype/ftlcdfil.h (FT_LcdFilter): New value |
| `FT_LCD_FILTER_LEGACY1'. |
| |
| * src/base/ftlcdfil.c (FT_Library_SetLcdFilter): Use it. |
| |
| 2015-11-15 Werner Lemberg <wl@gnu.org> |
| |
| * src/autofit/afhints.c (af_get_segment_index): Fix it. |
| |
| The old code was too simple, returning invalid values in most cases |
| where a segment crosses the contour start. |
| |
| 2015-11-15 Werner Lemberg <wl@gnu.org> |
| |
| * src/bdf/bdflib.c (bdf_load_font): Fix small memory leak (#46439). |
| |
| 2015-11-11 Werner Lemberg <wl@gnu.org> |
| |
| [cff, autofit] Switch off stem darkening by default. |
| |
| * src/autofit/afmodule.c (af_autofitter_init), src/cff/cffobjs.c |
| (cff_driver_init): Do it. |
| |
| 2015-11-10 Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> |
| |
| Allow native CFF hinter in FT_RENDER_MODE_LIGHT. |
| |
| Both the native CFF hinter and the auto-hinter now have a very |
| similar rendering style. |
| |
| * include/freetype/freetype.h: Mention that FT_LOAD_TARGET_LIGHT no |
| longer implies FT_LOAD_FORCE_AUTOHINT. |
| |
| * include/freetype/ftmodapi.h (FT_MODULE_DRIVER_HINTS_LIGHTLY): New |
| macro. |
| |
| * include/freetype/internal/ftobjs.h (FT_DRIVER_HINTS_LIGHTLY): New |
| macro. |
| |
| * src/cff/cffdrivr.c (cff_driver_class): Use it. |
| |
| * src/base/ftobjs.c (FT_Load_Glyph): Update auto-hinter selection |
| logic. |
| |
| 2015-11-09 Werner Lemberg <wl@gnu.org> |
| |
| * src/cid/cidload.c (cid_face_open): Fix GDBytes guard (#46408). |
| |
| 2015-11-09 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Remove integer to pointer conversion compiler warning. |
| |
| Problem reported by Alexei. |
| |
| * src/truetype/ttgload.c (load_truetype_glyph): Use a solution found |
| in the glib library to fix the issue. |
| |
| 2015-11-08 Behdad Esfahbod <behdad@behdad.org> |
| |
| [sfnt] Accept version 3 of `EBLC' and `CBLC' tables also. |
| |
| * src/sfnt/ttsbit.c (tt_face_load_sbit): Implement it. |
| |
| 2015-11-08 Philipp Knechtges <philipp-dev@knechtges.com> |
| |
| [autofit] Don't distort (latin) glyphs too much (#46195). |
| |
| * src/autofit/aflatin.h (AF_LatinBlueRec): Add `ascender' and |
| `descender' fields. |
| |
| * src/autofit/aflatin.c (af_latin_metrics_init_blues): Collect |
| ascender and descender data for blue zones. |
| (af_latin_metrics_scale_dim): Reject vertical scaling values that |
| change the result by more than two pixels. |
| |
| 2015-11-05 Werner Lemberg <wl@gnu.org> |
| |
| [sfnt] Ignore embedded bitmaps with zero size (#46379). |
| |
| * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bit_aligned): Implement |
| it. |
| |
| 2015-11-04 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Catch infinite recursion in subglyphs (#46372). |
| |
| * include/freetype/internal/tttypes.h (TT_LoaderRec): New field |
| `composites'. |
| |
| * src/truetype/ttgload.c: Include FT_LIST_H. |
| (load_truetype_glyph): Add composite subglyph index to a list; |
| abort if index is already in list. |
| (tt_loader_init): Updated. |
| (tt_loader_done): New function. |
| (TT_Load_Glyph): Call `tt_loader_done'. |
| |
| 2015-11-04 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Better tracing of composite glyphs. |
| |
| * src/truetype/ttgload.c (TT_Load_Composite_Glyph, |
| load_truetype_glyph): Implement it. |
| |
| 2015-11-03 Werner Lemberg <wl@gnu.org> |
| |
| [sfnt] Protect against zero-size bitmaps (#46345). |
| |
| * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Check |
| `glyph_size'. |
| |
| 2015-11-02 Nikolaus Waxweiler <madigens@gmail.com> |
| |
| * src/autofit/afloader.c (af_loader_load_g): Implement emboldening. |
| |
| 2015-11-02 Nikolaus Waxweiler <madigens@gmail.com> |
| |
| [autofit] Implement darkening computation function. |
| |
| This is a crude adaption of the original `cf2_computeDarkening' |
| function. |
| |
| * src/autofit/afloader.c (af_intToFixed, af_fixedToInt, |
| af_floatToFixed): New macros, taken from `cf2fixed.h'. |
| (af_loader_compute_darkening): New function. |
| * src/autofit/afloader.h: Updated. |
| |
| 2015-11-02 Nikolaus Waxweiler <madigens@gmail.com> |
| |
| [autofit] Add functions to get standard widths for writing systems. |
| |
| We need the computed standard horizontal and vertical widths for the |
| emboldening calculation. This method provides a convenient way to |
| extract it from writing-system-specific metrics structures, which |
| all script definitions must implement. |
| |
| * src/autofit/aftypes.h (AF_WritingSystem_GetStdWidthsFunc): New |
| function type. |
| (AF_WritingSystemClassRec): New member `style_metrics_getstdw'. |
| (AF_DEFINE_WRITING_SYSTEM_CLASS): Updated. |
| |
| * src/autofit/afcjk.c (af_cjk_get_standard_width): New function. |
| (af_cjk_writing_system_class): Updated. |
| * src/autofit/afdummy.c (af_dummy_writing_system_class): Updated. |
| * src/autofit/afindic.c (af_cjk_get_standard_width): New function. |
| (af_indic_writing_system_class): Updated. |
| * src/autofit/aflatin.c (af_latin_get_standard_width): New function. |
| (af_indic_writing_system_class): Updated. |
| * src/autofit/aflatin.c (af_latin_get_standard_width): New function. |
| (af_indic_writing_system_class): Updated. |
| |
| 2015-11-02 Nikolaus Waxweiler <madigens@gmail.com> |
| |
| [autofit] Extend `AF_FaceGlobalsRec' to hold emboldening data. |
| |
| * src/autofit/afglobal.h (AF_FaceGlobalsRec): Add fields. |
| |
| * src/autofit/afglobal.c (af_face_globals_new): Initialize new |
| fields. |
| (af_face_globals_free): Reset new fields. |
| |
| 2015-11-02 Nikolaus Waxweiler <madigens@gmail.com> |
| |
| [autofit] Add stem-darkening properties. |
| |
| Actual code follows in a later commit. |
| |
| * include/freetype/ftautoh.h: Document `no-stem-darkening' and |
| `darkening-parameters'. |
| |
| * src/autofit/afmodule.h: New fields `no_stem_darkening' and |
| `darken_params'. |
| |
| * src/autofit/afmodule.c (af_property_set, af_property_get): |
| Handle them. |
| (af_autofitter_init): Initialize them. |
| |
| 2015-11-02 Ben Wagner <bungeman@gmail.com> |
| |
| [ftfuzzer] Add support for multiple files (patch #8779). |
| |
| Currently, libFuzzer only supports mutation of a single file. We |
| circumvent this problem by using an uncompressed tar archive as |
| multiple-file input for the fuzzer. |
| |
| This patch enables tests of `FT_Attach_Stream' and AFM/PFM parsing; |
| a constructed tarball should contain a font file as the first |
| element, and files to be attached as further elements. |
| |
| * src/tools/ftfuzzer/ftfuzzer.cc: Include libarchive headers. |
| (archive_read_entry_data, parse_data): New functions. |
| (LLVMFuzzerTestOneInput): Updated. |
| |
| * src/tools/ftfuzzer/ftmutator.cc: New file, providing a custom |
| mutator for libFuzzer that can mutate tarballs in a sensible way. |
| |
| 2015-10-31 Werner Lemberg <wl@gnu.org> |
| |
| [sfnt] Fix cmap 14 validation (#46346). |
| |
| * src/sfnt/ttcmap.c (tt_cmap14_validate): Check limit before |
| accessing `numRanges' and `numMappings'. |
| Fix size check for non-default UVS table. |
| |
| 2015-10-31 Werner Lemberg <wl@gnu.org> |
| |
| [sfnt] Handle infinite recursion in bitmap strikes (#46344). |
| |
| * src/sfnt/ttsbit.c (TT_SBitDecoder_LoadFunc, |
| tt_sbit_decoder_load_bitmap, tt_sbit_decoder_load_byte_aligned, |
| tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_png): Add |
| argument for recursion depth. |
| (tt_sbit_decoder_load_compound): Add argument for recursion depth. |
| Increase recursion counter for recursive call. |
| (tt_sbit_decoder_load_image): Add argument for recursion depth. |
| Check recurse depth. |
| (tt_face_load_sbit_image): Updated. |
| |
| 2015-10-29 Werner Lemberg <wl@gnu.org> |
| |
| * src/autofit/afhints.c (af_glyph_hints_dump_points): Minor. |
| |
| 2015-10-29 Werner Lemberg <wl@gnu.org> |
| |
| * CMakeLists.txt: Remove code to set MSVC's /FD compiler switch. |
| |
| Problem reported by David Capello <davidcapello@gmail.com>; see |
| |
| https://lists.nongnu.org/archive/html/freetype-devel/2015-10/msg00108.html |
| |
| for details. |
| |
| 2015-10-27 Werner Lemberg <wl@gnu.org> |
| |
| [pfr] Add some safety guards (#46302). |
| |
| * src/pfr/pfrload.h (PFR_CHECK): Rename to... |
| (PFR_CHECK_SIZE): ... this. |
| (PFR_SIZE): [!PFR_CONFIG_NO_CHECKS]: Define to PFR_CHECK_SIZE. |
| |
| * src/pfr/pfrload.c (pfr_log_font_count): Check `count'. |
| (pfr_extra_item_load_kerning_pairs): Remove tracing message. |
| (pfr_phy_font_load): Use PFR_CHECK_SIZE where appropriate. |
| Allocate `chars' after doing a size checks. |
| |
| * src/pfr/pfrsbit.c (pfr_load_bitmap_bits): Move test for invalid |
| bitmap format to... |
| (pfr_slot_load_bitmap): ... this function. |
| Check bitmap size. |
| |
| 2015-10-26 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Fix sanitizing logic for `loca' (#46223). |
| |
| * src/truetype/ttpload.c (tt_face_load_loca): A thinko caused an |
| incorrect adjustment of the number of glyphs, most often using far |
| too large values. |
| |
| 2015-10-25 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Improve tracing. |
| |
| * src/autofit/afhints.c (af_print_idx, af_get_segment_index, |
| af_get_edge_index): New functions. |
| |
| (af_glyph_hints_dump_points): Remove unnecessary `|', `[', and `]'. |
| Add segment and edge index for each point. |
| Slightly change printing order of some elements. |
| Don't print `-1' but `--' for missing elements. |
| |
| (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Remove |
| unnecessary `|', `[', and `]'. |
| Don't print `-1' but `--' for missing elements. |
| |
| 2015-10-24 Werner Lemberg <wl@gnu.org> |
| |
| [sfnt] Sanitize bitmap strike glyph height. |
| |
| Problem reported by Nikolay Sivov <bunglehead@gmail.com>. |
| |
| * src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Avoid zero value |
| for `metrics->height' by applying some heuristics. |
| |
| 2015-10-22 Werner Lemberg <wl@gnu.org> |
| |
| [sfnt, type42] Fix clang compiler warnings. |
| |
| * src/sfnt/sfobjs.c (sfnt_init_face): Initialize `offset'. |
| |
| * src/type42/t42parse.c (t42_parse_sfnts): Use proper cast. |
| |
| 2015-10-22 Dave Arnold <darnold@adobe.com> |
| Werner Lemberg <wl@gnu.org> |
| |
| [cff] Avoid overflow/module arithmetic. |
| |
| This modifies the addition of subroutine number to subroutine bias |
| from unsigned to signed, but does not change any results. |
| |
| * src/cff/cf2ft.c (cf2_initGlobalRegionBuffer, |
| cf2_initLocalRegionBuffer): Change variable names from (unsigned) |
| `idx' to (signed) `subrNum', since it is not an index until after |
| the bias is added. |
| * src/cff/cf2ft.h: Updated. |
| |
| * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdCALLSUBR>: |
| Updated similarly. |
| |
| 2015-10-22 Werner Lemberg <wl@gnu.org> |
| |
| [cid] Better check of `SubrCount' dictionary entry (#46272). |
| |
| * src/cid/cidload.c (cid_face_open): Add more sanity tests for |
| `fd_bytes', `gd_bytes', `sd_bytes', and `num_subrs'. |
| |
| 2015-10-21 Werner Lemberg <wl@gnu.org> |
| |
| [base] Pacify compiler (#46266). |
| |
| * src/base/ftoutln.c (FT_Outline_EmboldenXY): Initialize `in' and |
| `anchor'. |
| |
| 2015-10-21 Werner Lemberg <wl@gnu.org> |
| |
| [type42] Fix heap buffer overflow (#46269). |
| |
| * src/type42/t42parse.c (t42_parse_sfnts): Fix off-by-one error in |
| bounds checking. |
| |
| 2015-10-21 Dave Arnold <darnold@adobe.com> |
| |
| [cff] Fix limit in assert for max hints. |
| |
| * src/cff/cf2interp.c (cf2_hintmask_setAll): Allow mask equal to the |
| limit (96 bits). |
| |
| 2015-10-21 Dave Arnold <darnold@adobe.com> |
| |
| [cff] Remove an assert (#46107). |
| |
| * src/cff/cf2hints.c (cf2_hintmap_insertHint): Ignore paired edges |
| in wrong order. |
| |
| 2015-10-21 Werner Lemberg <wl@gnu.org> |
| |
| [sfnt] Avoid unnecessarily large allocation for WOFFs (#46257). |
| |
| * src/sfnt/sfobjs.c (woff_open_font): Use WOFF's `totalSfntSize' |
| only after thorough checks. |
| Add tracing messages. |
| |
| 2015-10-21 Werner Lemberg <wl@gnu.org> |
| |
| [type42] Better check invalid `sfnts' array data (#46255). |
| |
| * src/type42/t42parse.c (t42_parse_sfnts): Table lengths must be |
| checked individually against available data size. |
| |
| 2015-10-20 Werner Lemberg <wl@gnu.org> |
| |
| [cid] Add a bunch of safety checks. |
| |
| * src/cid/cidload.c (parse_fd_array): Check `num_dicts' against |
| stream size. |
| (cid_read_subrs): Check largest offset against stream size. |
| (cid_parse_dict): Move safety check to ... |
| (cid_face_open): ... this function. |
| Also test length of binary data and values of `SDBytes', |
| `SubrMapOffset', `SubrCount', `CIDMapOffset', and `CIDCount'. |
| |
| 2015-10-20 Werner Lemberg <wl@gnu.org> |
| |
| [cid] Avoid segfault with malformed input (#46250). |
| |
| * src/cid/cidload.c (cid_read_subrs): Return a proper error code for |
| unsorted offsets. |
| |
| 2015-10-20 StudioEtrange <nomorgan@gmail.com> |
| |
| * CMakeLists.txt: Enable shared library builds on MinGW (#46233). |
| |
| 2015-10-20 Werner Lemberg <wl@gnu.org> |
| |
| * src/type1/t1afm.c (T1_Read_Metrics): Fix memory leak (#46229). |
| |
| 2015-10-19 Ben Wagner <bungeman@gmail.com> |
| |
| [cid] Better handle invalid glyph stream offsets (#46221). |
| |
| * src/cid/cidgload.c (cid_load_glyph): Check minimum size of glyph |
| length. |
| |
| 2015-10-18 Werner Lemberg <wl@gnu.org> |
| |
| [psaux] Fix tracing of negative numbers. |
| |
| Due to incorrect casting negative numbers were shown as very large |
| (positive) integers on 64bit systems. |
| |
| * src/psaux/t1decode.c (t1_decoder_parse_charstrings) <op_none>: |
| Use division instead of shift. |
| |
| 2015-10-18 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Improve TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES (#46223). |
| |
| * devel/ftoption.h, include/freetype/config/ftoption.h: Surround it |
| with #ifndef ... #endif, as suggested in the tracker issue. |
| |
| 2015-10-18 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Better protection against malformed `fpgm' (#46223). |
| |
| * src/truetype/ttobjs.c (tt_size_init_bytecode): Don't execute a |
| malformed `fpgm' table more than once. |
| |
| 2015-10-17 Werner Lemberg <wl@gnu.org> |
| |
| * src/cid/cidgload.c (cid_load_glyph): Fix memory leak. |
| |
| Reported by Kostya Serebryany <kcc@google.com>. |
| |
| 2015-10-17 Werner Lemberg <wl@gnu.org> |
| |
| [bdf] Prevent memory leak (#46217). |
| |
| * src/bdf/bdflib.c (_bdf_parse_glyphs) <STARTCHAR>: Check |
| _BDF_GLYPH_BITS. |
| |
| 2015-10-17 Werner Lemberg <wl@gnu.org> |
| |
| [bdf] Use stream size to adjust number of glyphs. |
| |
| * src/bdf/bdflib.c (ACMSG17): New message macro. |
| (_bdf_parse_t): Add member `size'. |
| (bdf_load_font): Set `size'. |
| (_bdf_parse_glyphs): Adjust `cnt' if necessary. |
| |
| 2015-10-17 Werner Lemberg <wl@gnu.org> |
| |
| * src/cid/cidload.c (cid_parse_dict): Check `[FG]DBytes' size. |
| |
| 2015-10-17 Werner Lemberg <wl@gnu.org> |
| |
| * src/cid/cidgload.c (cid_glyph_load): Check file offsets (#46222). |
| |
| 2015-10-17 Werner Lemberg <wl@gnu.org> |
| |
| [psaux] Fix heap buffer overflow (#46221). |
| |
| * src/psaux/t1decode.c (t1_decoder_parse_charstring) <operator 12>: |
| Fix limit check. |
| |
| 2015-10-17 Werner Lemberg <wl@gnu.org> |
| |
| * src/cid/cidload.c (cid_parse_dict): Handle invalid input (#46220). |
| |
| 2015-10-15 Kostya Serebryany <kcc@google.com> |
| |
| [ftfuzzer] Add README. |
| |
| * src/tools/ftfuzzer/README: New file. |
| |
| 2015-10-15 Ben Wagner <bungeman@gmail.com> |
| |
| [bdf] Fix memory leak (#46213). |
| |
| * src/bdf/bdflib.c (bdf_load_font): Always go to label `Fail' in |
| case of error. |
| |
| 2015-10-15 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Add TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES (#46208). |
| |
| * devel/ftoption.h, include/freetype/config/ftoption.h |
| (TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES): New configuration macro. |
| |
| * src/truetype/ttinterp.c (MAX_RUNNABLE_OPCODES): Removed. |
| (TT_RunIns): Updated. |
| |
| 2015-10-15 Werner Lemberg <wl@gnu.org> |
| |
| * src/truetype/ttinterp.c (TT_RunIns): Fix bytecode stack tracing. |
| |
| The used indices were off by 1. |
| |
| 2015-10-15 Ben Wagner <bungeman@gmail.com> |
| Werner Lemberg <wl@gnu.org> |
| |
| * src/tools/ftfuzzer/ftfuzzer.cc: Handle fixed sizes (#46211). |
| |
| 2015-10-15 Werner Lemberg <wl@gnu.org> |
| |
| [base] Compute MD5 checksums only if explicitly requested. |
| |
| This improves profiling accuracy. |
| |
| * src/base/ftobjs.c (FT_Render_Glyph_Internal): Implement it. |
| |
| 2015-10-14 Werner Lemberg <wl@gnu.org> |
| |
| [base] Use `FT_' namespace for MD5 functions (#42366). |
| |
| * src/base/ftobjs.c (MD5_*): Define as `FT_MD5_*'. |
| Undefine HAVE_OPENSSL. |
| |
| 2015-10-13 Werner Lemberg <wl@gnu.org> |
| |
| [type1] Correctly handle missing MM axis names (#46202). |
| |
| * src/type1/t1load.c (T1_Get_MM_Var): Implement it. |
| |
| 2015-10-13 Werner Lemberg <wl@gnu.org> |
| |
| [pcf] Quickly exit if font index < 0. |
| |
| Similar to other font formats, this commit makes the parser no |
| longer check the whole PCF file but only the header and the TOC if |
| we just want to get the number of available faces (and a proper |
| recognition of the font format). |
| |
| * src/pcf/pcfdrivr.c (PCF_Face_Init): Updated. |
| Exit quickly if face_index < 0. |
| |
| * src/pcfread.c (pcf_load_font): Add `face_index' argument. |
| Exit quickly if face_index < 0. |
| |
| * src/pcf/pcf.h: Updated. |
| |
| 2015-10-13 Werner Lemberg <wl@gnu.org> |
| |
| [ftfuzzer] Handle TTCs and MM/GX variations. |
| |
| This patch also contains various other improvements. |
| |
| * src/tools/ftfuzzer/ftfuzzer.cc: Add preprocessor guard to reject |
| pre-C++11 compilers. |
| (FT_Global): New class. Use it to provide a global constructor and |
| destructor for the `FT_Library' object. |
| (setIntermediateAxis): New function to select an (arbitrary) |
| instance. |
| (LLVMFuzzerTestOneInput): Loop over all faces and named instances. |
| Also call `FT_Set_Char_Size'. |
| |
| 2015-10-13 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Refine some GX sanity tests. |
| |
| Use the `gvar' table size instead of the remaining bytes in the |
| stream. |
| |
| * src/truetype/ttgxvar.h (GX_BlendRec): New field `gvar_size'. |
| |
| * src/truetype/ttgxvar.c (ft_var_load_gvar): Set `gvar_size'. |
| (ft_var_readpackedpoints, ft_var_readpackeddeltas: New argument |
| `size'. |
| (tt_face_vary_cvt, TT_Vary_Apply_Glyph_Deltas): Updated. |
| |
| 2015-10-13 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Another GX sanity test. |
| |
| * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Check |
| `tupleCount'. |
| Add tracing message. |
| |
| 2015-10-13 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Fix memory leak for broken GX fonts (#46188). |
| |
| * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix scope of |
| deallocation. |
| |
| 2015-10-13 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Fix commit from 2015-10-10. |
| |
| * src/truetype/ttgxvar.c (ft_var_load_gvar): Add missing error |
| handling body to condition. |
| |
| 2015-10-12 Werner Lemberg <wl@gnu.org> |
| |
| [unix] Make MKDIR_P actually work. |
| |
| * builds/unix/configure.raw: Fix underquoting of `INSTALL' and |
| `MKDIR_P'. |
| |
| Problem reported by Dan Liddell <lddll@yahoo.com>. |
| |
| 2015-10-11 Werner Lemberg <wl@gnu.org> |
| |
| [sfnt] Improve extraction of number of named instances. |
| |
| * src/sfnt/sfobjs.c (sfnt_init_face) |
| [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Check number of instances against |
| `fvar' table size. |
| |
| 2015-10-10 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix overflow |
| (#46149). |
| |
| 2015-10-10 Werner Lemberg <wl@gnu.org> |
| |
| [sfnt] Fix infinite loops with broken cmaps (#46167). |
| |
| * src/sfnt/ttcmap.c (tt_cmap8_char_next, tt_cmap12_next): Take care |
| of border conditions (i.e., if the loops exit naturally). |
| |
| 2015-10-10 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] More sanity tests for GX handling. |
| |
| These tests should mainly help avoid unnecessarily large memory |
| allocations in case of malformed fonts. |
| |
| * src/truetype/ttgxvar.c (ft_var_readpackedpoints, |
| ft_var_readpackeddeltas): Check number of points against stream |
| size. |
| (ft_var_load_avar): Check `pairCount' against table length. |
| (ft_var_load_gvar): Check `globalCoordCount' and `glyphCount' |
| against table length. |
| (tt_face_vary_cvt): Check `tupleCount' and `offsetToData'. |
| Fix trace. |
| (TT_Vary_Apply_Glyph_Deltas): Fix trace. |
| Free `sharedpoints' to avoid memory leak. |
| |
| 2015-10-10 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Better protection against malformed GX data (#46166). |
| |
| * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Correctly |
| handle empty `localpoints' array. |
| |
| 2015-10-10 Werner Lemberg <wl@gnu.org> |
| |
| * src/pcf/pcfread.c (pcf_read_TOC): Check stream size (#46162). |
| |
| 2015-10-09 Werner Lemberg <wl@gnu.org> |
| |
| * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Use real stream size. |
| |
| 2015-10-08 Werner Lemberg <wl@gnu.org> |
| |
| [pcf] Protect against invalid number of TOC entries (#46159). |
| |
| * src/pcf/pcfread.c (pcf_read_TOC): Check number of TOC entries |
| against size of data stream. |
| |
| 2015-10-08 Werner Lemberg <wl@gnu.org> |
| |
| [type42] Protect against invalid number of glyphs (#46159). |
| |
| * src/type42/t42parse.c (t42_parse_charstrings): Check number of |
| `CharStrings' dictionary entries against size of data stream. |
| |
| 2015-10-08 Werner Lemberg <wl@gnu.org> |
| |
| [sfnt] Fix some signed overflows (#46149). |
| |
| * src/sfnt/ttsbit.c (tt_face_load_strike_metrics) |
| <TT_SBIT_TABLE_TYPE_SBIX>: Use `FT_MulDiv'. |
| |
| 2015-10-08 Werner Lemberg <wl@gnu.org> |
| |
| [type1] Protect against invalid number of subroutines (#46150). |
| |
| * src/type1/t1load.c (parse_subrs): Check number of |
| `Subrs' dictionary entries against size of data stream. |
| |
| 2015-10-07 Kostya Serebryany <kcc@google.com> |
| |
| [ftfuzzer] Add support for LLVM's LibFuzzer. |
| |
| * src/tools/ftfuzzer/ftfuzzer.cc, src/tools/runinput.cc: New files. |
| |
| 2015-10-06 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Faster alternative line renderer. |
| |
| This implementation renders the entire line segment at once without |
| subdividing it into scanlines. The main speed improvement comes from |
| reducing the number of divisions to just two per line segment, which |
| is a bare minimum to calculate cell coverage in a smooth rasterizer. |
| Notably, the progression from cell to cell does not itself require any |
| divisions at all. The speed improvement is more noticeable at larger |
| sizes. |
| |
| * src/smooth/ftgrays.c (gray_render_line): New implementation. |
| |
| 2015-10-06 Werner Lemberg <wl@gnu.org> |
| |
| [cff] Return correct PS names from pure CFF (#46130). |
| |
| * src/cff/cffdrivr.c (cff_get_ps_name): Use SFNT service only for |
| SFNT. |
| |
| 2015-10-04 Werner Lemberg <wl@gnu.org> |
| |
| [base] Replace left shifts with multiplication (#46118). |
| |
| * src/base/ftglyph.c (ft_bitmap_glyph_bbox, FT_Get_Glyph): Do it. |
| |
| 2015-10-04 Werner Lemberg <wl@gnu.org> |
| |
| * Version 2.6.1 released. |
| ========================= |
| |
| |
| Tag sources with `VER-2-6-1'. |
| |
| * docs/VERSION.DLL: Update documentation and bump version number to |
| 2.6.1. |
| |
| * 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/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.6/2.6.1/, s/26/261/. |
| |
| * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. |
| |
| * builds/unix/configure.raw (version_info): Set to 18:1:12. |
| * CMakeLists.txt (VERSION_PATCH): Set to 1. |
| |
| * src/autofit/afmodule.c [AF_DEBUG_AUTOFIT]: Ensure C linking for |
| dumping functions. |
| |
| 2015-10-04 Werner Lemberg <wl@gnu.org> |
| |
| [bzip2, gzip] Avoid access of uninitialized memory (#46109). |
| |
| * src/bzip2/ftbzip2.c (ft_bzip2_file_fill_input), src/gzip/ftgzip.c |
| (ft_gzip_file_fill_input): In case of an error, adjust the limit to |
| avoid copying uninitialized memory. |
| |
| 2015-10-03 Werner Lemberg <wl@gnu.org> |
| |
| [bzip2, gzip] Avoid access of uninitialized memory (#46109). |
| |
| * src/bzip2/ftbzip2.c (ft_bzip2_file_fill_output), src/gzip/ftgzip.c |
| (ft_gzip_file_fill_output): In case of an error, adjust the limit to |
| avoid copying uninitialized memory. |
| |
| 2015-10-01 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Clean up worker. |
| |
| * src/smooth/ftgrays.c (gray_TWorker): Remove never used fields. |
| |
| 2015-10-01 Werner Lemberg <wl@gnu.org> |
| |
| [sfnt] Make `tt_cmap4_char_map_linear' more robust (#46078). |
| |
| * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Take care of |
| border conditions (i.e., if the loop exits naturally). |
| |
| 2015-10-01 Werner Lemberg <wl@gnu.org> |
| |
| * src/autofit/afranges.c (af_deva_nonbase_uniranges): Fix ranges. |
| They should be a subset of `af_deva_uniranges'. |
| |
| 2015-10-01 Werner Lemberg <wl@gnu.org> |
| |
| [sfnt] Make `tt_cmap4_char_map_linear' faster (#46078). |
| |
| * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Use inner loop to |
| reject too large glyph indices. |
| |
| 2015-09-30 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [smooth] Clean up worker. |
| |
| * src/smooth/ftgrays.c (gray_TWorker): Remove lightly used `last_ey'. |
| (gray_start_cell, gray_render_line): Update. |
| |
| 2015-09-30 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Replace `no-base' with `non-base'. |
| |
| * src/autofit/*: Do it. |
| |
| 2015-09-30 Werner Lemberg <wl@gnu.org> |
| |
| [sfnt] Rewrite `tt_cmap4_char_map_linear' (#46078). |
| |
| * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Add code to better |
| skip invalid segments. |
| If searching the next character, provide a more efficient logic to |
| speed up the code. |
| |
| 2015-09-30 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Adjust number of glyphs for malformed `loca' tables. |
| |
| * src/truetype/ttpload.c (tt_face_load_loca): Implement it. |
| |
| 2015-09-29 Werner Lemberg <wl@gnu.org> |
| |
| [pshinter] Avoid harmless overflow (#45984). |
| |
| * src/pshinter/pshglob.c (psh_blues_set_zones): Fix it. |
| |
| 2015-09-28 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Add support for Lao script. |
| |
| Thanks to Danh Hong <danhhong@gmail.com> for guidance with blue zone |
| characters! |
| |
| * src/autofit/afblue.dat: Add blue zone data for Lao. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/afscript.h: Add Lao standard characters. |
| |
| * src/autofit/afranges.c: Add Lao data. |
| |
| * src/autofit/afstyles.h: Add Lao data. |
| |
| 2015-09-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
| |
| [base] Fix a leak by broken sfnt-PS or resource fork (#46028). |
| |
| open_face_from_buffer() frees passed buffer if valid font |
| is not found. But if copying to the buffer is failed, |
| the allocated buffer should be freed within the caller. |
| |
| * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Free |
| the buffer `sfnt_ps' if an error caused before calling |
| open_face_from_buffer(). |
| (Mac_Read_sfnt_Resource): Free the buffer `sfnt_data' if |
| an error caused before calling open_face_from_buffer(); |
| |
| 2015-09-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
| |
| [mac] Fix buffer size calculation for LWFN font. |
| |
| * src/base/ftmac.c (read_lwfn): Cast post_size to FT_ULong |
| to prevent confused copy by too large chunk size. |
| |
| 2015-09-26 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| * src/smooth/ftgrays.c (PIXEL_MASK): Remove unused macro. |
| |
| 2015-09-26 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Minor tracing improvement. |
| |
| * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Don't emit |
| blue zones header line if there are no blue zones. |
| |
| 2015-09-26 Werner Lemberg <wl@gnu.org> |
| |
| [bzip2, gzip, lzw] Harmonize function signatures with prototype. |
| |
| Suggested by Hin-Tak Leung. |
| |
| * src/bzip2/ftbzip2.c (ft_bzip2_stream_io), src/gzip/ftgzip.c |
| (ft_gzip_stream_io), src/lzw/ftlzw.c (ft_lzw_stream_io): Do it. |
| |
| 2015-09-26 Hin-Tak Leung <htl10@users.sourceforge.net> |
| |
| Add new FT_LOAD_COMPUTE_METRICS load flag. |
| |
| * include/freetype/freetype.h (FT_LOAD_COMPUTE_METRICS): New macro. |
| * src/truetype/ttgload.c (compute_glyph_metrics): Usage. |
| |
| 2015-09-26 Werner Lemberg <wl@gnu.org> |
| |
| * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add cast. |
| |
| 2015-09-25 Werner Lemberg <wl@gnu.org> |
| |
| [type1] Protect against invalid number of glyphs (#46029). |
| |
| * src/type1/t1load.c (parse_charstrings): Check number of |
| `CharStrings' dictionary entries against size of data stream. |
| |
| 2015-09-23 Werner Lemberg <wl@gnu.org> |
| |
| [sfnt] Better checks for invalid cmaps (2/2) (#46019). |
| |
| While the current code in `FT_Get_Next_Char' correctly rejects |
| out-of-bounds glyph indices, it can be extremely slow for malformed |
| cmaps that use 32bit values. This commit tries to improve that. |
| |
| * src/sfnt/ttcmap.c (tt_cmap8_char_next, tt_cmap12_next, |
| tt_cmap12_char_map_binary, tt_cmap13_next, |
| tt_cmap13_char_map_binary): Reject glyph indices larger than or |
| equal to the number of glyphs. |
| |
| 2015-09-23 Werner Lemberg <wl@gnu.org> |
| |
| [base, sfnt] Better checks for invalid cmaps (1/2). |
| |
| * src/base/ftobjs.c (FT_Get_Char_Index): Don't return out-of-bounds |
| glyph indices. |
| (FT_Get_First_Char): Updated. |
| |
| * src/sfnt/ttcmap.c (tt_cmap6_char_next): Don't return character |
| codes greater than 0xFFFF. |
| |
| (tt_cmap8_char_index): Avoid integer overflow in computation of |
| glyph index. |
| (tt_cmap8_char_next): Avoid integer overflows in computation of |
| both next character code and glyph index. |
| |
| (tt_cmap10_char_index): Fix unsigned integer logic. |
| (tt_cmap10_char_next): Avoid integer overflow in computation of |
| next character code. |
| |
| (tt_cmap12_next): Avoid integer overflows in computation of both |
| next character code and glyph index. |
| (tt_cmap12_char_map_binary): Ditto. |
| (tt_cmap12_char_next): Simplify. |
| |
| (tt_cmap13_char_map_binary): Avoid integer overflow in computation |
| of next character code. |
| (tt_cmap13_char_next): Simplify. |
| |
| 2015-09-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> |
| |
| [base] Check too long POST and sfnt resource (#45919). |
| |
| * src/base/ftbase.h (FT_MAC_RFORK_MAX_LEN): Maximum length of the |
| resource fork for Mac OS. Resource forks larger than 16 MB can be |
| written but can't be handled correctly, at least in Carbon routine. |
| See https://support.microsoft.com/en-us/kb/130437. |
| |
| * src/base/ftobjs.c (Mac_Read_POST_Resource): No need to use `0x' |
| prefix for `%p' formatter. |
| |
| * src/base/ftbase.c (Mac_Read_POST_Resource): Check the fragment and |
| total size of the concatenated POST resource before buffer |
| allocation. |
| (Mac_Read_sfnt_Resource): Check the declared size of sfnt resource |
| before buffer allocation. |
| |
| * src/base/ftmac.c (read_lwfn, FT_New_Face_From_SFNT): Check the |
| total resource size before buffer allocation. |
| |
| 2015-09-19 Werner Lemberg <wl@gnu.org> |
| |
| [sfnt] Improve handling of invalid SFNT table entries (#45987). |
| |
| This patch fixes weaknesses in function `tt_face_load_font_dir'. |
| |
| - It incorrectly assumed that valid tables are always at the |
| beginning. As a consequence, some valid tables after invalid |
| entries (which are ignored) were never seen. |
| |
| - Duplicate table entries (this is, having the same tag) were not |
| rejected. |
| |
| - The number of valid tables was sometimes too large, leading to |
| access of invalid tables. |
| |
| * src/sfnt/ttload.c (check_table_dir): Add argument to return number |
| of valid tables. |
| Add another tracing message. |
| (tt_face_load_font_dir): Only allocate table array for valid |
| entries as returned by `check_table_dir'. |
| Reject duplicate tables and adjust number of valid tables |
| accordingly. |
| |
| 2015-09-19 Werner Lemberg <wl@gnu.org> |
| |
| [pcf] Improve `FT_ABS' fix from 2015-09-17 (#45999). |
| |
| * src/pcf/pcfread.c (pcf_load_font): Do first the cast to FT_Short, |
| then take the absolute value. |
| Also apply FT_ABS to `height'. |
| |
| 2015-09-17 Werner Lemberg <wl@gnu.org> |
| |
| [type42] Fix memory leak (#45989). |
| |
| * src/type42/t42parse.c (t42_parse_charstrings): Allow only a single |
| `CharStrings' array. |
| |
| 2015-09-17 Werner Lemberg <wl@gnu.org> |
| |
| [psaux] Fix memory leak (#45986). |
| |
| * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_MM_BBOX>: |
| Free `temp' in case of error. |
| |
| 2015-09-17 Werner Lemberg <wl@gnu.org> |
| |
| [psaux] Improve tracing message. |
| |
| * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_MM_BBOX>: |
| Handle plural correctly. |
| |
| 2015-09-17 Werner Lemberg <wl@gnu.org> |
| |
| [pcf] Fix integer overflows (#45985). |
| |
| * src/pcf/pcfread.c (pcf_load_font): Use FT_MulDiv. |
| |
| 2015-09-17 Werner Lemberg <wl@gnu.org> |
| |
| [pcf] Use FT_ABS for some property values (#45893). |
| |
| * src/pcf/pcfread.c (pcf_load_font): Take absolute values for |
| AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE, RESOLUTION_X, and |
| RESOLUTION_Y. In tracing mode, add warnings. |
| |
| 2015-09-16 Werner Lemberg <wl@gnu.org> |
| |
| Minor fixes for some clang warnings. |
| |
| * src/base/ftoutln.c (FT_Outline_EmboldenXY): Cast, possible missing |
| initialization. |
| |
| * src/truetype/ttgload.c (TT_Process_Composite_Component): Cast. |
| |
| 2015-09-15 Werner Lemberg <wl@gnu.org> |
| |
| [type1, type42] Fix memory leaks (#45966). |
| |
| * src/type1/t1load.c (parse_blend_axis_types): Handle multiple axis |
| names. |
| (parse_blend_design_map): Allow only a single design map. |
| (parse_encoding): Handle multiple encoding vectors. |
| |
| * src/type42/t42parse.c (t42_parse_encoding): Handle multiple |
| encoding vectors. |
| |
| 2015-09-15 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Fix integer type (#45965). |
| |
| * src/truetype/ttobjs.c (tt_synth_sfnt_checksum): Implement it. |
| |
| 2015-09-15 Werner Lemberg <wl@gnu.org> |
| |
| * src/pcf/pcfread.c (pcf_load_font): Fix integer overflow (#45964). |
| |
| 2015-09-15 Werner Lemberg <wl@gnu.org> |
| |
| [type1, type42] Check encoding array size (#45961). |
| |
| * src/type1/t1load.c (parse_encoding), src/type42/t42parse.c |
| (t42_parse_encoding): Do it. |
| |
| 2015-09-14 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| * src/base/ftcalc.c (FT_MulFix) [FT_LONG64]: Improve. |
| |
| 2015-09-14 Werner Lemberg <wl@gnu.org> |
| |
| [type1] Fix another potential buffer overflow (#45955). |
| |
| * src/type1/t1parse (T1_Get_Private_Dict): Assure that check for |
| `eexec' doesn't exceed `limit'. |
| |
| 2015-09-13 Werner Lemberg <wl@gnu.org> |
| |
| Replace `mkinstalldirs' with AC_PROG_MKDIR_P. |
| |
| * builds/unix/mkinstalldirs: Removed, no longer needed. |
| |
| * builds/unix/configure.raw: Call `AC_PROG_MKDIR_P'. |
| Update pwd call for `$INSTALL'. |
| |
| * builds/unix/unix-def.in (MKINSTALLDIRS): Use `@MKDIR_P@'. |
| |
| * autogen.sh: Updated. |
| |
| 2015-09-13 Werner Lemberg <wl@gnu.org> |
| |
| [winfonts] Check alignment shift count for resource data (#45938). |
| |
| * src/winfonts/winfnt.c (fnt_face_get_dll_font): Implement it. |
| |
| 2015-09-13 Werner Lemberg <wl@gnu.org> |
| |
| [type1] Fix potential buffer overflow (#45923). |
| |
| * src/type1/t1parse.c (T1_Get_Private_Dict): Assure `cur' doesn't |
| point to end of file buffer. |
| |
| 2015-09-13 Werner Lemberg <wl@gnu.org> |
| |
| [gzip] Fix access of small compressed files (#45937). |
| |
| * src/gzip/ftgzip.c (ft_gzip_stream_close): Avoid memory leak. |
| |
| (ft_gzip_get_uncompressed_file): Correct byte order while reading |
| unsigned long value. Without this change, the whole optimization of |
| accessing small files in `FT_Stream_OpenGzip' is never executed! As |
| a consequence, access to PCF files in general (which are normally |
| small files) should be much improved now as originally intended. |
| |
| 2015-09-11 Werner Lemberg <wl@gnu.org> |
| |
| [psaux] Fix potential buffer overflow (#45922). |
| |
| * src/psaux/psobjs.c (ps_parser_skip_PS_token): If a token is |
| enclosed in balanced expressions, ensure that the cursor position |
| doesn't get larger than the current limit. |
| |
| 2015-09-11 Werner Lemberg <wl@gnu.org> |
| |
| [base] Avoid crash while tracing `load_mac_face'. |
| |
| Reported in Savannah bug #45919. |
| |
| * src/base/ftobjs.c (load_mac_face): Honour FT_OPEN_MEMORY while |
| tracing. |
| |
| 2015-09-11 Werner Lemberg <wl@gnu.org> |
| |
| [type42] Fix endless loop (#45920). |
| |
| * src/type42/t42parse.c (t42_parse_encoding): Synchronize with |
| type1's `parse_encoding'. |
| |
| 2015-09-10 Werner Lemberg <wl@gnu.org> |
| |
| [docmaker] Allow `-' in bold and italic markup. |
| |
| * src/tools/docmaker/sources.py (re_italic, re_bold): Adjust |
| accordingly. |
| |
| 2015-09-09 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| * src/base/ftcalc.c (FT_RoundFix): Improve. |
| |
| 2015-09-09 Wojciech Mamrak <wmamrak@gmail.com> |
| |
| * src/base/ftcalc.c (FT_CeilFix, FT_FloorFix): Normalize. |
| |
| This commit makes the functions behave as expected, this is, |
| rounding towards plus or minus infinity. |
| |
| 2015-09-07 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| * src/smooth/ftgrays.c (gray_render_line): Simplify clipping. |
| |
| 2015-09-04 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [raster,smooth] Microoptimizations. |
| |
| * src/raster/ftraster.c (Insert_Y_Turn, Finalize_Profile_Table, |
| Bezier_Up): Use do-while loops. |
| |
| * src/smooth/ftgrays.c (gray_render_scanline, gray_render_line, |
| gray_convert_glyph): Ditto. |
| |
| 2015-09-04 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Redesign code ranges (2/2). |
| |
| This commit adds two fallback scripts (`latb', `latp') and |
| implements support for the no-base character ranges introduced in |
| the previous commit. |
| |
| * src/autofit/aftypes.h (AF_ScriptClassRec): Add |
| `script_uni_nobase_ranges' field. |
| (AF_DEFINE_SCRIPT_CLASS): Updated. |
| |
| * src/autofit/afscript.h, src/autofit/afstyles.h: Add `latb' and |
| `latp' fallback scripts. |
| |
| * src/autofit/afblue.dat: Add blue zones for Latin subscript and |
| superscript fallback scripts. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| * src/autofit/afglobal.h (AF_NOBASE): New style flag for no-base |
| characters. |
| (AF_STYLE_MASK): Updated. |
| |
| * src/autofit/afglobal.c (SCRIPT): Updated. |
| (af_face_globals_compute_style_coverage): Handle new style flag. |
| |
| * src/autofit/aflatin.c (af_latin_hints_apply): Handle new style |
| flag. |
| |
| * src/autofit/afranges.h (SCRIPT): Use it to export no-base ranges. |
| |
| 2015-09-04 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Redesign code ranges (1/2). |
| |
| This patch introduces auxiliary code ranges that identify no-base |
| characters; they refer to glyphs of a script that should be hinted |
| without alignments to blue zones (mostly diacritics). |
| |
| It also splits off ranges for fallback scripts that handle subscript |
| and superscript characters not covered by OpenType features. For |
| example, this greatly helps improve the hinting of various phonetic |
| alphabets, which contain a large amount characters that look like |
| superscript glyphs. |
| |
| Finally, code ranges are updated to Unicode 8.0, and enclosed |
| characters are removed in general since they normally look better if |
| they stay unhinted. |
| |
| * src/autofit/afranges.c (af_latn_uniranges): Updated to Unicode |
| 8.0. |
| Split off superscript-like and subscript-like glyphs into... |
| |
| (af_latb_uniranges, af_latp_uniranges): ... these two new arrays. |
| |
| (af_xxxx_nobase_uniranges): New arrays that hold no-base characters |
| of the corresponding character ranges. |
| |
| 2015-09-03 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Pass glyph index to hinting function. |
| |
| No functionality change yet. |
| |
| * src/autofit/aftypes.h (AF_WritingSystem_ApplyHintsFunc): Pass |
| glyph index. |
| |
| * src/autofit/afcjk.c, src/autofit/afcjk.h (af_cjk_hints_apply), |
| src/autofit/afdummy.c (af_dummy_hints_apply), src/autofit/afindic.c |
| (af_indic_hints_apply), src/autofit/aflatin.c |
| (af_latin_hints_apply), src/autofit/aflatin2.c |
| (af_latin2_hints_apply), src/autofit/afloader.c (af_loader_load_g): |
| Updated. |
| |
| 2015-08-30 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Code clean-up. |
| |
| * src/autofit/afglobal.h (AF_STYLE_MASK): New macro. |
| (AF_STYLE_UNASSIGNED): Use AF_STYLE_MASK for definition. |
| |
| * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): |
| Updated. |
| |
| 2015-08-30 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Make glyph style array use 16bit values. |
| |
| * include/freetype/ftautoh.h (FT_Prop_GlyphToScriptMap): Use |
| `FT_UShort' for `map' field. |
| |
| * src/autofit/afglobal.c (af_face_globals_compute_style_coverage, |
| af_face_globals_new), src/autofit/hbshim.c, src/autofit/hbshim.h |
| (af_get_coverage): Use FT_UShort for `glyph_styles' array. |
| |
| * src/autofit/afglobal.h (AF_STYLE_UNASSIGNED, AF_DIGIT): Extend to |
| 16 bits. |
| (AF_FaceGlobalsRec): Use `FT_UShort' for `glyph_styles' field. |
| |
| 2015-08-26 Werner Lemberg <wl@gnu.org> |
| |
| * builds/unix/configure.raw: Need harfbuzz >= 0.9.21 (#45828). |
| |
| 2015-08-25 Werner Lemberg <wl@gnu.org> |
| |
| [base] Improve kerning tracing and documentation. |
| |
| * src/base/ftobjs.c (FT_Get_Kerning): Emit tracing message if |
| scaled-down kerning values differ. |
| |
| 2015-08-18 Werner Lemberg <wl@gnu.org> |
| |
| [raster] Remove last remnants of `raster5' driver. |
| |
| * src/raster/ftrend1.h (ft_raster5_renderer_class): Removed. |
| |
| * src/raster/rastpic.c, src/raster/rastpic.h |
| (ft_raster5_renderer_class_pic_init, |
| ft_raster5_renderer_class_pic_free): Removed. |
| |
| 2015-08-17 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [base] Improve emboldener (#45596). |
| |
| * src/base/ftoutln.c (FT_Outline_EmboldenXY): Correct displacement |
| of zero-length segments. |
| |
| 2015-08-16 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [base] Reoptimize arithmetic. |
| |
| * src/base/ftcalc.c (FT_MulDiv, FT_MulFix) [!FT_LONG64]: Remove |
| special cases that slow down the general use. |
| |
| 2015-08-15 pazer <ibemad@gmail.com> |
| |
| Fix C++ compilation (#45762). |
| |
| * src/base/ftstroke.c (ft_outline_glyph_class): Use |
| FT_CALLBACK_TABLE. |
| |
| 2015-08-14 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [truetype] Clean up. |
| |
| * src/truetype/ttgload.c (TT_Process_Composite_Component): Use |
| `FT_Outline_Transform' and `FT_Outline_Translate'. |
| (translate_array): Dropped. |
| |
| 2015-08-14 Andreas Enge <andreas.enge@inria.fr> |
| |
| * builds/unix/detect.mk (CONFIG_SHELL): Don't handle it (#44261). |
| |
| 2015-08-13 Werner Lemberg <wl@gnu.org> |
| |
| [truetype] Introduce named instance access to GX fonts. |
| |
| For functions querying a face, bits 16-30 of the face index can hold |
| the named instance index if we have a GX font. The indices start |
| with value 1; value 0 indicates font access without GX variation |
| data. |
| |
| * include/freetype/freetype.h (FT_FaceRec): Update documentation. |
| * include/freetype/internal/sfnt.h: Ditto. |
| |
| * src/sfnt/sfobjs.c (sfnt_init_face) |
| [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Get number of named instances and |
| do argument checks. |
| (sfnt_load_face): Updated. |
| |
| * src/truetype/ttobjs.c (tt_face_init) |
| [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Use named instance, overwriting |
| the style name. |
| |
| * src/base/ftobjs.c (open_face_from_buffer, |
| open_face_PS_from_sfnt_stream): Updated. |
| * src/bdf/bdfdrivr.c (BDF_Face_Init): Updated. |
| * src/cff/cffload.c (cff_font_load): Updated. |
| |
| * src/cff/cffobjs.c (cff_face_init): Make function exit early for |
| pure CFF fonts if `font_index < 0'. |
| Updated. |
| |
| * src/cid/cidobjs.c (cid_face_init): Updated. |
| * src/pcf/pcfdrivr.c (PCF_Face_Init): Updated. |
| * src/pfr/pfrobjs.c (pfr_face_init): Updated. |
| * src/type1/t1objs.c (T1_Face_Init): Updated. |
| * src/type42/t42objs.c (T42_Face_Init): Updated. |
| * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init): |
| Updated. |
| |
| * docs/CHANGES: Updated. |
| |
| 2015-08-12 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [type1,cff,cid] Streamline font matrix application. |
| |
| * src/type1/t1gload.c (T1_Load_Glyph): Directly modify advances only |
| if font matrix is not trivial. |
| * src/cff/cffgload.c (cff_slot_load): Ditto. |
| * src/cid/cidgload.c (cid_slot_load_glyph): Ditto for advances and the |
| entire outline. |
| |
| 2015-08-11 Werner Lemberg <wl@gnu.org> |
| |
| [builds/unix] Minor. |
| |
| * builds/unix/configure.raw: |
| s/lib{priv,staticconf}/libs{priv,staticconf}/ for orthogonality with |
| similarly named uppercase variables. |
| |
| 2015-08-10 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [type1,cid,type42] Minor improvements. |
| |
| * src/type1/t1load.c (t1_parse_font_matrix): Scale units per EM only |
| when necessary. Refresh comments. |
| * src/cid/cidload.c (cid_parse_font_matrix): Ditto. |
| * src/type42/t42parse.c (t42_parse_font_matrix): Refresh comments. |
| |
| 2015-08-08 Werner Lemberg <wl@gnu.org> |
| |
| [type42] Fix glyph access. |
| |
| This is a severe bug: We've missed one level of indirection, as |
| described in the Type 42 specification. As a result, ftview |
| sometimes showed incorrect glyphs for given glyph names, and even |
| displayed `error 0x0006' (invalid argument!) in case the number of |
| glyph indices differed between the Type 42 font and the embedded |
| TTF. |
| |
| Apparently, noone ever noticed it; this shows how much Type 42 fonts |
| are in use... |
| |
| * src/type42/t42objs.c (T42_GlyphSlot_Load): Map Type 42 glyph index |
| to embedded TTF's glyph index. |
| |
| 2015-08-08 Werner Lemberg <wl@gnu.org> |
| |
| [type42] Minor clean-up. |
| |
| * src/type42/t42parse.c (t42_parse_font_matrix): Remove unused |
| variable. |
| |
| 2015-08-06 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [type42] Parse FontMatrix according to specifications. |
| |
| * src/type42/t42parse.c (t42_parse_font_matrix): Type 42 FontMatrix |
| does not need scaling by 1000. Units_per_EM are taken from the |
| embedded TrueType. |
| |
| 2015-08-06 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Improve Arabic hinting. |
| |
| Problem reported by Titus Nemeth <tn@tntypography.eu> (by using |
| ttfautohint). |
| |
| * src/autofit/afblue.dat: Add neutral blue zone for the tatweel |
| character. |
| |
| * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. |
| |
| 2015-08-05 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [truetype] Clean up types. |
| |
| * src/truetype/ttobjs.c (TT_Size): Move declaration from here. |
| * include/freetype/internal/tttypes.h (TT_Size): ... to here. |
| (TT_LoaderRec): Switch to appropriate types for `face' and `size'. |
| * src/truetype/ttgload.c: Remove corresponding type casts. |
| * src/truetype/ttsubpix.c: Ditto. |
| |
| 2015-08-05 Werner Lemberg <wl@gnu.org> |
| |
| [autofit] Improve recognition of flat vs. rounded segments. |
| |
| Lower the flatness threshold from upem/8 to upem/14, making the |
| auto-hinter accept shorter elements. |
| |
| Synchronize flat/round stem selection algorithm with blue zone code. |
| |
| * src/autofit/aflatin.c (FLAT_THRESHOLD): New macro. |
| (af_latin_metrics_init_blues): Use it. |
| (af_latin_hints_compute_segments): Collect information on maximum |
| and minimum coordinates of `on' points; use this to add a constraint |
| for the flat/round decision similar to |
| `af_latin_metrics_init_blues'. |
| |
| 2015-08-04 Werner Lemberg <wl@gnu.org> |
| |
| Another left-shift bug (#45681). |
| |
| * src/base/ftobjs.c (IsMacBinary): Only accept positive values for |
| `dlen'. |
| |
| 2015-08-03 Alexei Podtelezhnikov <apodtele@gmail.com> |
| |
| [base] Fix `ft_corner_orientation'. |
| |
| Remove casting from `FT_Long' to `FT_Int' that might change the sign |
| of the return value and make it faster too. |
| |
| * src/base/ftcalc.c (ft_corner_orientation): On 32-bit systems, stay |
| with 32-bit arithmetic when safe. Use plain math on 64-bit systems. |
| * src/pshinter/pshalgo.c: Remove old unused code. |
| |
| 2015-08-03 Werner Lemberg <wl@gnu.org> |
| |